/* ==========================================================================
   Main
   ========================================================================== */
/**
 * Following Necolas' Principles of writing consistent, idiomatic CSS:
 * https://github.com/necolas/idiomatic-css
 */
/**
 * Prefix wpe-* used as unique identifier:
 * Stands for "Washington Post Elections".
 */
/* Libraries
   ========================================================================== */
/**
 * Using Bourbon for extended SASS functionality:
 * http://bourbon.io/
 */
/* Settings
   ========================================================================== */
/* ==========================================================================
   Colors
   ========================================================================== */
/* WaPo politics color palette */
/* ==========================================================================
   Typography
   ========================================================================== */
/**
 * $base-* refers to the base styles when there's nothing else to override them.
 */
/* ==========================================================================
   Decoration
   ========================================================================== */
/* Border radius */
/* ==========================================================================
   Metrics
   ========================================================================== */
/* Spacing */
/* ==========================================================================
   Naming
   ========================================================================== */
/**
 * Prefix wpe-* used as unique identifier:
 * Stands for "Washington Post Elections".
 */
/* Media Queries mixins
 * Write a style that applies to only a breakpoint range,
 * or starting from a breakpoint onwards.
 *
 * USAGE
 * .some-class {
 *   display: block;
 *   @include media(md-up) {
 *     display: none;
 *   }
 * }
 *
 * Options:
 * screen, landscape, portrait
 * xs-up, sm-up, md-up, lg-up
 * xs-only, sm-only, md-only
 *
 * (see below for size ranges; they match what WaPo uses)
 */
/* Main
   ========================================================================== */
/* ==========================================================================
   Card
   ========================================================================== */
.wpe-card {
  background: #fff;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
  border-radius: 4px;
  text-align: left;
  color: #333333;
  font-family: "FranklinITCProLight", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5; }
  .wpe-card a:focus {
    outline: 0; }

/* Card header
   ========================================================================== */
.wpe-card_header {
  padding: 16px;
  box-shadow: inset 0 -1px 0 0 rgba(0, 0, 0, 0.1); }

/* card meta */
.wpe-card_meta {
  margin: -16px -16px 16px -16px;
  padding: 8px 16px;
  box-shadow: inset 0 -1px 0 0 rgba(0, 0, 0, 0.1);
  background: whitesmoke;
  color: #7a7a7a;
  font-size: 14px;
  line-height: 16px; }
  .wpe-card_header .wpe-card_meta {
    border-radius: 4px 4px 0 0; }

.wpe-card_reporting {
  float: right; }

.wpe-card_timekeeper {
  position: relative;
  float: left;
  font-family: "FranklinITCProBold", "Helvetica Neue", Helvetica, Arial, sans-serif;
  padding-left: 20px; }
  .wpe-card_timekeeper .fa {
    display: block;
    line-height: inherit;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1; }

.wpe-card_timekeeper-online {
  color: #D8070E; }

.wpe-card_timekeeper-loading .fa {
  -webkit-animation: spin-c 1s linear 0s infinite;
  animation: spin-c 1s linear 0s infinite; }

/* card headline */
.wpe-card_headline {
  margin-bottom: 8px; }
  .pb-cr-min-md .wpe-card_headline {
    float: left;
    margin-bottom: 0;
    max-width: 288px;
    padding-right: 16px; }

.wpe-card_prime-title {
  font-family: "FranklinITCProBold", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: normal;
  font-size: 28px;
  line-height: 32px;
  color: inherit; }

/* card prime nav */
.wpe-card_prime-nav {
  margin-bottom: -16px;
  font-size: 0; }
  .pb-cr-min-md .wpe-card_prime-nav {
    float: left; }
  .pb-cr-min-md .wpe-card_headline + .wpe-card_prime-nav {
    float: right; }
  .wpe-card_prime-nav .wpe-badge {
    margin-left: 4px; }

.wpe-card_party-menu {
  overflow: hidden;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 14px;
  line-height: 16px; }

.wpe-card_party-menu_option {
  float: left;
  width: calc(50% - 10px);
  margin: 0 10px; }
  .wpe-card_party-menu_option:first-child {
    margin-left: 0; }
  .wpe-card_party-menu_option:last-child {
    margin-right: 0; }
  .pb-cr-min-md .wpe-card_party-menu_option {
    width: auto; }

.wpe-card_party-menu_option a {
  position: relative;
  display: block;
  padding-bottom: 16px;
  overflow: hidden;
  opacity: 0.48; }
  .wpe-card_party-menu_option a, .wpe-card_party-menu_option a:hover, .wpe-card_party-menu_option a:visited, .wpe-card_party-menu_option a:focus {
    color: inherit; }
  .wpe-card_party-menu_option a:after {
    position: absolute;
    z-index: 1;
    bottom: 0;
    left: 50%;
    width: 0;
    height: 3px;
    content: '';
    background: #a3a3a3;
    transition: all 0.24s ease 0s;
    -webkit-transform: translate(-50%, 0);
        -ms-transform: translate(-50%, 0);
            transform: translate(-50%, 0); }

.wpe-card_party-menu_option a:hover:after,
.wpe-card_party-menu_option_active a:after {
  width: 100%; }

.wpe-card_party-menu_option_active a {
  opacity: 1; }
  .wpe-card_party-menu_option_active a:after {
    background: #333333; }

.wpe-card_party-menu-media {
  display: none;
  width: 32px;
  height: 32px;
  float: left;
  margin-right: 6px; }
  .wpe-card_party-menu-media img {
    display: inline-block;
    width: 100%;
    height: auto;
    vertical-align: middle; }
  .pb-cr-min-sm .wpe-card_party-menu-media {
    display: block; }

.wpe-card_party-menu-text {
  float: left;
  line-height: 16px; }

.wpe-card_party-menu-title {
  font-family: "FranklinITCProBold", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: normal; }

/* Card body
   ========================================================================== */
.wpe-card_body {
  padding: 16px; }
  .wpe-card_body > *:last-child {
    margin-bottom: 0; }

.wpe-card_col {
  float: left;
  min-height: 1px;
  width: 100%; }
  .wpe-card_col > *:last-child {
    margin-bottom: 0; }

/* Card footer
   ========================================================================== */
.wpe-card_footer {
  padding: 8px 16px;
  box-shadow: inset 0 1px 0 0 rgba(0, 0, 0, 0.1);
  background: whitesmoke;
  color: #7a7a7a;
  font-size: 14px;
  line-height: 16px;
  border-radius: 0 0 4px 4px;
  text-align: center; }
  .wpe-card_footer > *:last-child {
    margin-bottom: 0; }

.wpe-card_full-results-link {
  display: inline-block;
  font-family: "FranklinITCProBold", "Helvetica Neue", Helvetica, Arial, sans-serif;
  color: #333333;
  font-size: 14px;
  line-height: 20px;
  text-transform: uppercase; }
  .wpe-card_full-results-link .fa {
    margin-left: 4px; }

/* ==========================================================================
   State card
   ========================================================================== */
.pb-cr-min-md .wpe-card_map-col {
  width: 52%;
  padding-right: 8px; }

.pb-cr-min-lg .wpe-card_map-col {
  width: 64%; }

.pb-cr-min-md .wpe-card_table-col {
  width: 48%;
  padding-left: 8px; }

.pb-cr-min-lg .wpe-card_table-col {
  width: 36%; }

/* ==========================================================================
   Tables
   ========================================================================== */
.wpe-table {
  width: 100%;
  max-width: 100%;
  margin: 0;
  background-color: transparent;
  border-spacing: 0;
  border-collapse: collapse;
  font-family: inherit;
  font-size: 14px;
  line-height: 20px;
  margin-bottom: 16px; }
  .wpe-table td, .wpe-table th {
    padding: 0; }
  .wpe-table th {
    text-align: left; }
  .wpe-table tr {
    transition: all 0.24s ease 0s; }
  .wpe-table > thead > tr > th,
  .wpe-table > tbody > tr > th,
  .wpe-table > tfoot > tr > th,
  .wpe-table > thead > tr > td,
  .wpe-table > tbody > tr > td,
  .wpe-table > tfoot > tr > td {
    padding: 8px;
    vertical-align: middle;
    box-shadow: inset 0 -1px 0 0 rgba(0, 0, 0, 0.1); }
  .wpe-table > thead > tr > th:first-child,
  .wpe-table > tbody > tr > th:first-child,
  .wpe-table > tfoot > tr > th:first-child,
  .wpe-table > thead > tr > td:first-child,
  .wpe-table > tbody > tr > td:first-child,
  .wpe-table > tfoot > tr > td:first-child {
    padding-left: 0; }
  .wpe-table > thead > tr > th:last-child,
  .wpe-table > tbody > tr > th:last-child,
  .wpe-table > tfoot > tr > th:last-child,
  .wpe-table > thead > tr > td:last-child,
  .wpe-table > tbody > tr > td:last-child,
  .wpe-table > tfoot > tr > td:last-child {
    padding-right: 0; }
  .wpe-table > thead > tr > th {
    vertical-align: bottom; }
    .wpe-table > thead > tr > th a {
      display: inline-block; }
    .wpe-table > thead > tr > th a, .wpe-table > thead > tr > th a:visited, .wpe-table > thead > tr > th a:hover {
      color: inherit; }

/* table contents */
.wpe-table_row_leader,
.wpe-table_row_winner {
  font-family: "FranklinITCProBold", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: normal; }
  .wpe-table_row_leader .wpe-table_cell_candidate,
  .wpe-table_row_winner .wpe-table_cell_candidate {
    position: relative;
    padding-right: 20px; }
  .wpe-table_row_leader .fa,
  .wpe-table_row_winner .fa {
    font-size: 14px;
    position: absolute;
    top: 50%;
    right: -4px;
    -webkit-transform: translate(0, -50%);
        -ms-transform: translate(0, -50%);
            transform: translate(0, -50%); }

.wpe-table .wpe-table_head_votes,
.wpe-table .wpe-table_head_percent,
.wpe-table .wpe-table_cell_votes,
.wpe-table .wpe-table_cell_percent {
  text-align: right; }

.wpe-table_head_candidate {
  width: 100%; }

.wpe-table_cell_candidate {
  font-size: 0; }

.wpe-table_candidate-block {
  display: table; }
  .wpe-table_candidate-block > * {
    display: table-cell;
    vertical-align: middle; }

.wpe-table_candidate-head {
  display: inline-block;
  height: 32px;
  width: 32px;
  margin: -4px 8px -4px 0;
  vertical-align: middle; }
  .wpe-table_candidate-head img {
    display: inline-block;
    width: 100%;
    height: auto;
    vertical-align: middle; }

.wpe-table_candidate-name {
  display: table-cell;
  font-size: 16px;
  vertical-align: middle; }

/* table more/less toggle */
.wpe-result-table_toggle {
  padding: 0 16px;
  text-align: center;
  color: #2A2A2A;
  cursor: pointer;
  transition: color .2s;
  outline: none;
  margin-bottom: 16px; }
  .wpe-result-table_toggle:hover {
    color: #505050; }

.wpe-result-table_toggle_option {
  padding: 0;
  margin: 0;
  background: none;
  border: none;
  display: inline-block; }

.wpe-result-table_toggle_option_active {
  display: none; }

/* ==========================================================================
   Tooltip tables
   ========================================================================== */
.wpe-tooltip-result_table {
  margin-bottom: 0; }
  .wpe-tooltip-result_table > tbody tr:last-child > td {
    box-shadow: none; }

.wpe-tooltip-result_table_candidate-head {
  display: none; }

.wpe-tooltip-result_table_cell_candidate {
  width: 100%; }

/* ==========================================================================
   Tooltips
   ========================================================================== */
.wpe-tooltip {
  z-index: 100;
  background: #fff;
  border-radius: 4px;
  box-shadow: 0 2px 12px 2px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.1);
  padding: 16px;
  width: 224px;
  text-align: left;
  color: #333333;
  font-family: "FranklinITCProLight", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5; }

/* these classnames need to match those in tooltip.js */
.wpe-tooltip-nub {
  position: absolute;
  width: 32px;
  height: 32px;
  overflow: hidden;
  pointer-events: none; }

.wpe-tooltip-nub:before {
  content: '';
  position: absolute;
  width: 12px;
  height: 12px;
  background: #fff;
  -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
          transform: rotate(45deg);
  box-shadow: 0 2px 12px 2px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.1); }

.wpe-tooltip-nub_top,
.wpe-tooltip-nub_bottom {
  left: 50%;
  -webkit-transform: translate(-50%, 0);
      -ms-transform: translate(-50%, 0);
          transform: translate(-50%, 0); }

.wpe-tooltip-nub_left,
.wpe-tooltip-nub_right {
  top: 50%;
  -webkit-transform: translate(0, -50%);
      -ms-transform: translate(0, -50%);
          transform: translate(0, -50%); }

.wpe-tooltip-nub_top {
  bottom: -32px; }
  .wpe-tooltip-nub_top:before {
    bottom: 26px;
    left: 10px; }

.wpe-tooltip-nub_bottom {
  top: -32px; }
  .wpe-tooltip-nub_bottom:before {
    top: 26px;
    left: 10px; }

.wpe-tooltip-nub_left {
  right: -32px; }
  .wpe-tooltip-nub_left:before {
    top: 10px;
    right: 26px; }

.wpe-tooltip-nub_right {
  left: -32px; }
  .wpe-tooltip-nub_right:before {
    top: 10px;
    left: 26px; }

/* Tooltip content
   ========================================================================== */
.wpe-tooltip-result_prime-title {
  font-family: "FranklinITCProBold", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: normal;
  font-size: 18px;
  line-height: 24px;
  color: inherit;
  margin-bottom: 0; }

.wpe-tooltip-result_meta {
  color: #7a7a7a;
  font-size: 14px;
  line-height: 20px;
  margin-bottom: 4px; }

@media only screen and (min-width: 768px) {
  .b-toggle,
  .b-party-toggle {
    text-align: left; } }

.b-toggle_option,
.b-party-toggle_option {
  background: #FFF;
  color: #2A2A2A;
  cursor: pointer;
  display: inline-block;
  height: 36px;
  outline: none;
  padding: 6px 14px;
  border-width: 1px;
  border-style: solid;
  transition: border-color .2s, background-color .2s;
  border-color: #2A2A2A transparent #2A2A2A #2A2A2A; }
  .b-toggle_option:hover,
  .b-party-toggle_option:hover {
    border-color: #2A2A2A transparent #2A2A2A #2A2A2A; }
  .b-toggle_option:first-child,
  .b-party-toggle_option:first-child {
    border-width: 1px;
    border-style: solid;
    transition: border-color .2s, background-color .2s;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
    border-color: #2A2A2A transparent #2A2A2A #2A2A2A; }
    .b-toggle_option:first-child:hover,
    .b-party-toggle_option:first-child:hover {
      border-color: #2A2A2A transparent #2A2A2A #2A2A2A; }
  .b-toggle_option:last-child,
  .b-party-toggle_option:last-child {
    border-width: 1px;
    border-style: solid;
    transition: border-color .2s, background-color .2s;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
    border-color: #2A2A2A; }
    .b-toggle_option:last-child:hover,
    .b-party-toggle_option:last-child:hover {
      border-color: #2A2A2A; }
  .b-toggle_option:hover,
  .b-party-toggle_option:hover {
    background-color: #F1F1F1; }

.b-toggle_option_active,
.b-party-toggle_option_active {
  background: #D5D5D5; }
  .b-toggle_option_active:hover,
  .b-party-toggle_option_active:hover {
    background: #D5D5D5; }

@-webkit-keyframes pulse {
  0% {
    stroke-opacity: 0.45; }
  25% {
    stroke-opacity: 0.7; }
  75% {
    stroke-opacity: 0.7; }
  100% {
    stroke-opacity: 0.45; } }

@keyframes pulse {
  0% {
    stroke-opacity: 0.45; }
  25% {
    stroke-opacity: 0.7; }
  75% {
    stroke-opacity: 0.7; }
  100% {
    stroke-opacity: 0.45; } }

.wpe-map path {
  transition: fill .2s; }

/* Map layers
   ========================================================================== */
.wpe-map_boundaries {
  fill: none;
  stroke: #d1d1d1; }

.wpe-map_city-markers {
  fill: #222; }

.wpe-map_city-labels {
  fill: #eee;
  stroke: #222;
  stroke-opacity: .4; }

.wpe-map_highlight {
  fill: none;
  stroke: none; }

.wpe-map_highlight_active {
  stroke: #FFF;
  -webkit-animation: pulse 4s infinite;
          animation: pulse 4s infinite; }

/* Map actions
   ========================================================================== */
.wpe-map_actions {
  box-shadow: inset 0 -1px 0 0 rgba(0, 0, 0, 0.1);
  margin-bottom: 16px; }

.wpe-map_views-menu {
  float: left;
  list-style: none;
  padding: 0;
  margin: 0; }

.wpe-map_views-menu_label,
.wpe-map_views-menu_option {
  float: left;
  margin-right: 8px; }

.wpe-map_views-menu_label {
  text-transform: none !important;
  padding: 8px 0; }

.wpe-map_views-menu_option a {
  position: relative;
  display: block;
  color: inherit;
  padding: 8px 0; }
  .wpe-map_views-menu_option a:focus {
    outline: none; }

.wpe-map_views-menu_option_active a, .wpe-map_views-menu_option_active a:focus {
  color: #333333; }

.wpe-map_views-menu_option_active a:after {
  position: absolute;
  z-index: 1;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  content: '';
  background: #333333; }

/* ==========================================================================
   Legend
   ========================================================================== */
.wpe-legend_swatch {
  display: inline-block;
  vertical-align: middle;
  width: 12px;
  height: 20px;
  border-radius: 4px;
  margin-right: 8px;
  overflow: hidden; }

/* temp */
.b-inlinelegend,
.b-legend_list {
  list-style-type: none; }

/*
making legend go horizontally -- TODO: either make this configurable or
intelligently responsive to the available width.  cc Ricardo
*/
.b-legend {
  clear: left; }

.b-legend_label {
  margin-right: 16px; }

.b-legend_list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: inline-block;
  vertical-align: middle; }

.b-legend_entry {
  float: left;
  width: 108px;
  margin: 0 16px 4px 0; }

.b-legend-circle_entry {
  width: 81px;
  /* need the following because we're not wrapping these in the
   * .wpe-legend-swatch class */ }
  .b-legend-circle_entry svg {
    display: inline-block;
    vertical-align: middle;
    margin-right: 8px; }

.b-inlinelegend_entry {
  display: inline-block;
  margin-left: 0.5em; }
  .b-inlinelegend_entry:first-child {
    margin-left: 0; }

.b-inlinelegend_swatch,
.b-legend_swatch {
  display: inline-block;
  vertical-align: middle;
  width: 12px;
  height: 20px;
  border-radius: 4px;
  margin-right: 8px; }

/* ==========================================================================
   Base
   ========================================================================== */
/**
 * Common elements styles
 */
.heading-alt, .wpe-table > thead > tr > th, .wpe-map_views-menu_label,
.wpe-map_views-menu_option {
  font-family: "FranklinITCProLight", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: normal;
  line-height: 20px;
  text-transform: uppercase;
  color: rgba(51, 51, 51, 0.48); }

/* temp */
#elections-content,
#elections-content-state-card {
  padding: 16px !important; }

/* Badges
   ========================================================================== */
.wpe-badge {
  display: inline-block;
  border-radius: 4px;
  background: rgba(0, 0, 0, 0.48);
  color: #fff;
  font-size: 14px;
  line-height: 1;
  padding: 1px 4px; }
  .wpe-badge sup {
    vertical-align: -2px; }

/* Animation
   ========================================================================== */
@-webkit-keyframes spin-c {
  from {
    -webkit-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg); }
  to {
    -webkit-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg); } }
@keyframes spin-c {
  from {
    -webkit-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg); }
  to {
    -webkit-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg); } }

/* Utilities */
/* ==========================================================================
   Utils
   ========================================================================== */
/* Font smoothing
   ========================================================================== */
/**
 * Antialiased font smoothing works best for light text on a dark background.
 * Apply to single elements instead of globally to body.
 * Note this only applies to webkit-based desktop browsers and Firefox 25 (and later) on the Mac.
 */
.antialiased, .wpe-badge {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

/* Truncated text
   ========================================================================== */
.truncated, .b-legend_entry {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

/* Hidden content
   ========================================================================== */
/* Hide from both screenreaders and browsers */
.hidden {
  display: none !important;
  visibility: hidden; }

/* Hide only visually, but have it available for screenreaders */
.visually-hidden {
  border: 0 none;
  clip: rect(0px, 0px, 0px, 0px);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

/**
 * Extends the .visually-hidden class to allow the element
 * to be focusable when navigated to via the keyboard
 */
.visually-hidden.focusable:active,
.visually-hidden.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto; }

/* Undo visually-hidden */
.visually-hidden-undo {
  position: inherit;
  overflow: visible;
  height: auto;
  width: auto;
  margin: auto; }

/* Hide visually and from screenreaders, but maintain layout */
.invisible {
  visibility: hidden; }

/* Clearfix
   ========================================================================== */
.clearfix:before, .wpe-card:before, .wpe-card_header:before, .wpe-card_meta:before, .wpe-card_body:before, .wpe-card_footer:before, .wpe-map_actions:before, .b-legend_list:before, .clearfix:after, .wpe-card:after, .wpe-card_header:after, .wpe-card_meta:after, .wpe-card_body:after, .wpe-card_footer:after, .wpe-map_actions:after, .b-legend_list:after {
  content: ' ';
  display: table; }

.clearfix:after, .wpe-card:after, .wpe-card_header:after, .wpe-card_meta:after, .wpe-card_body:after, .wpe-card_footer:after, .wpe-map_actions:after, .b-legend_list:after {
  clear: both; }

/* Disabled
   ========================================================================== */
.disabled {
  opacity: 0.48;
  pointer-events: none;
  cursor: not-allowed; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsIl92YXJpYWJsZXMuc2NzcyIsIm1peGlucy9fYnJlYWtwb2ludHMuc2NzcyIsIl9jYXJkcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdGludC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsIl90YWJsZXMuc2NzcyIsIm1peGlucy9fYmFzZS5zY3NzIiwiX3Rvb2x0aXBzLnNjc3MiLCJlbGVtZW50cy9fdG9nZ2xlLnNjc3MiLCJtaXhpbnMvX2FuaW1hdGlvbi5zY3NzIiwiZWxlbWVudHMvX21hcC5zY3NzIiwiZWxlbWVudHMvX2xlZ2VuZC5zY3NzIiwiX2Jhc2Uuc2NzcyIsIl91dGlscy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztnRkFFZ0Y7QUFFaEY7OztHQUdHO0FBRUg7OztHQUdHO0FBR0g7Z0ZBQ2dGO0FBRWhGOzs7R0FHRztBQUlIO2dGQUNnRjtBQzFCaEY7O2dGQUVnRjtBQU9oRixpQ0FBaUM7QUFhakM7O2dGQUVnRjtBQUVoRjs7R0FFRztBQVNIOztnRkFFZ0Y7QUFFaEYsbUJBQW1CO0FBTW5COztnRkFFZ0Y7QUFFaEYsYUFBYTtBQUtiOztnRkFFZ0Y7QUFFaEY7OztHQUdHO0FDL0RIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUZlSDtnRkFDZ0Y7QUdsQ2hGOztnRkFFZ0Y7QUFFaEY7RUFFRSxpQkFBaUI7RUFDakIseUNGSGU7RUVJZixtQkZtQ2lCO0VFbENqQixpQkFBaUI7RUFDakIsZUNZVztFRFhYLG1GRm9CcUY7RUVuQnJGLGdCRnFCbUI7RUVwQm5CLGlCRnFCb0IsRUVqQnJCO0VBYkQ7SUFXSSxXQUFXLEVBQ1o7O0FBSUg7Z0ZBQ2dGO0FB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MEI7SVJIMUIsNEJRRzBCO0lSSzFCLHdCUUwwQixFQUFBO0VBQzlCO0lSWkksa0NRWTBCO0lSSjFCLDhCUUkwQjtJUkkxQiwwQlFKMEIsRUFBQSxFQUFBOztBYkRsQyxlQUFlO0FjOUNmOztnRkFFZ0Y7QUFFaEY7Z0ZBQ2dGO0FBRWhGOzs7O0dBSUc7QUFFSDtFQUNFLG9DQUFvQztFQUNwQyxtQ0FBbUMsRUFDcEM7O0FBRUQ7Z0ZBQ2dGO0FBRWhGO0VBQ0Usb0JBQW9CO0VBQ3BCLGlCQUFpQjtFQUNqQix3QkFBd0IsRUFDekI7O0FBRUQ7Z0ZBQ2dGO0FBRWhGLCtDQUErQztBQUUvQztFQUNFLHlCQUF5QjtFQUN6QixtQkFBbUIsRUFDcEI7O0FBRUQsaUVBQWlFO0FBRWpFO0VBQ0UsZUFBZTtFQUNmLCtCQUFVO0VBQ1YsWUFBWTtFQUNaLGFBQWE7RUFDYixpQkFBaUI7RUFDakIsV0FBVztFQUNYLG1CQUFtQjtFQUNuQixXQUFXLEVBQ1o7O0FBRUQ7OztHQUdHO0FBRUg7O0VBRUUsV0FBVztFQUNYLGFBQWE7RUFDYixVQUFVO0VBQ1Ysa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixZQUFZLEVBQ2I7O0FBRUQsMEJBQTBCO0FBRTFCO0VBQ0Usa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixhQUFhO0VBQ2IsWUFBWTtFQUNaLGFBQWEsRUFDZDs7QUFFRCwrREFBK0Q7QUFFL0Q7RUFDRSxtQkFBbUIsRUFDcEI7O0FBR0Q7Z0ZBQ2dGO0FBRWhGO0VBR0ksYUFBYTtFQUNiLGVBQWUsRUFDaEI7O0FBTEg7RUFPSSxZQUFZLEVBQ2I7O0FBSUg7Z0ZBQ2dGO0FBRWhGO0VBQ0UsY0FBYztFQUNkLHFCQUFxQjtFQUNyQixvQkFBb0IsRUFDckIiLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTWFpblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBGb2xsb3dpbmcgTmVjb2xhcycgUHJpbmNpcGxlcyBvZiB3cml0aW5nIGNvbnNpc3RlbnQsIGlkaW9tYXRpYyBDU1M6XG4gKiBodHRwczovL2dpdGh1Yi5jb20vbmVjb2xhcy9pZGlvbWF0aWMtY3NzXG4gKi9cblxuLyoqXG4gKiBQcmVmaXggd3BlLSogdXNlZCBhcyB1bmlxdWUgaWRlbnRpZmllcjpcbiAqIFN0YW5kcyBmb3IgXCJXYXNoaW5ndG9uIFBvc3QgRWxlY3Rpb25zXCIuXG4gKi9cblxuXG4vKiBMaWJyYXJpZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogVXNpbmcgQm91cmJvbiBmb3IgZXh0ZW5kZWQgU0FTUyBmdW5jdGlvbmFsaXR5OlxuICogaHR0cDovL2JvdXJib24uaW8vXG4gKi9cblxuQGltcG9ydCAnYm91cmJvbic7XG5cbi8qIFNldHRpbmdzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AaW1wb3J0ICd2YXJpYWJsZXMnO1xuQGltcG9ydCAnbWl4aW5zL2Jhc2UnO1xuQGltcG9ydCAnbWl4aW5zL2JyZWFrcG9pbnRzJztcblxuXG4vKiBNYWluXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AaW1wb3J0ICdjYXJkcyc7XG5AaW1wb3J0ICd0YWJsZXMnO1xuQGltcG9ydCAndG9vbHRpcHMnO1xuXG5AaW1wb3J0ICdlbGVtZW50cy90b2dnbGUnO1xuQGltcG9ydCAnZWxlbWVudHMvbWFwJztcbkBpbXBvcnQgJ2VsZW1lbnRzL2xlZ2VuZCc7XG5cbkBpbXBvcnQgJ2Jhc2UnO1xuXG4vKiBVdGlsaXRpZXMgKi9cblxuQGltcG9ydCAndXRpbHMnO1xuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbG9yc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuJGJhc2UtY29sb3I6ICMwMDA7ICAgICAgICAgICAgICAgICAgIFx0XHRcdC8vIEJsYWNrXG4kYmFzZS1hbHBoYS1jb2xvcjogcmdiYSgkYmFzZS1jb2xvciwgMC4xKTtcblxuJGxpdmUtY29sb3I6ICNEODA3MEU7XG5cbi8qIFdhUG8gcG9saXRpY3MgY29sb3IgcGFsZXR0ZSAqL1xuXG4kZGVtb2NyYXQtMDogIzAwODFjNTtcbiRkZW1vY3JhdC0xOiAjNjZiN2U2O1xuJGRlbW9jcmF0LTI6ICNiNGQ2ZjE7XG4kZGVtb2NyYXQtMzogI2UxZWJmNztcblxuJHJlcHVibGljYW4tMDogI2VkMWMyNDtcbiRyZXB1YmxpY2FuLTE6ICNmMzg0ODc7XG4kcmVwdWJsaWNhbi0yOiAjZjliZmJlO1xuJHJlcHVibGljYW4tMzogI2ZkZWNlYjtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVHlwb2dyYXBoeVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAkYmFzZS0qIHJlZmVycyB0byB0aGUgYmFzZSBzdHlsZXMgd2hlbiB0aGVyZSdzIG5vdGhpbmcgZWxzZSB0byBvdmVycmlkZSB0aGVtLlxuICovXG5cbiRiYXNlLWZvbnQtY29sb3I6IHRpbnQoJGJhc2UtY29sb3IsIDIwJSk7XG4kYmFzZS1mb250LWxpZ2h0OiAnRnJhbmtsaW5JVENQcm9MaWdodCcsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kYmFzZS1mb250LWJvbGQ6ICdGcmFua2xpbklUQ1Byb0JvbGQnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGJhc2UtZm9udC1zaXplOiAxNnB4O1xuJGJhc2UtbGluZS1oZWlnaHQ6IDEuNTtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRGVjb3JhdGlvblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogQm9yZGVyIHJhZGl1cyAqL1xuXG4kZ2xvYmFsLXJhZGl1czogNHB4O1xuJGdsb2JhbC1yb3VuZGVkOiA5NjBweDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTWV0cmljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogU3BhY2luZyAqL1xuXG4kZ2xvYmFsLXNwYWNpbmc6IDE2cHg7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIE5hbWluZ1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBQcmVmaXggd3BlLSogdXNlZCBhcyB1bmlxdWUgaWRlbnRpZmllcjpcbiAqIFN0YW5kcyBmb3IgXCJXYXNoaW5ndG9uIFBvc3QgRWxlY3Rpb25zXCIuXG4gKi9cblxuJGdsb2JhbC1wcmVmaXg6ICd3cGUtJzsiLCIvKiBNZWRpYSBRdWVyaWVzIG1peGluc1xuICogV3JpdGUgYSBzdHlsZSB0aGF0IGFwcGxpZXMgdG8gb25seSBhIGJyZWFrcG9pbnQgcmFuZ2UsXG4gKiBvciBzdGFydGluZyBmcm9tIGEgYnJlYWtwb2ludCBvbndhcmRzLlxuICpcbiAqIFVTQUdFXG4gKiAuc29tZS1jbGFzcyB7XG4gKiAgIGRpc3BsYXk6IGJsb2NrO1xuICogICBAaW5jbHVkZSBtZWRpYShtZC11cCkge1xuICogICAgIGRpc3BsYXk6IG5vbmU7XG4gKiAgIH1cbiAqIH1cbiAqXG4gKiBPcHRpb25zOlxuICogc2NyZWVuLCBsYW5kc2NhcGUsIHBvcnRyYWl0XG4gKiB4cy11cCwgc20tdXAsIG1kLXVwLCBsZy11cFxuICogeHMtb25seSwgc20tb25seSwgbWQtb25seVxuICpcbiAqIChzZWUgYmVsb3cgZm9yIHNpemUgcmFuZ2VzOyB0aGV5IG1hdGNoIHdoYXQgV2FQbyB1c2VzKVxuICovXG5cbiRjb2wteHM6ICgwLCA3NjdweCk7XG4kY29sLXNtOiAoNzY4cHgsIDk5MXB4KTtcbiRjb2wtbWQ6ICg5OTJweCwgMTE5OXB4KTtcbiRjb2wtbGc6ICgxMjAwcHgpO1xuJHNjcmVlbjogXCJvbmx5IHNjcmVlblwiO1xuQGZ1bmN0aW9uIGxvd2VyLWJvdW5kKCRyYW5nZSkge1xuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPD0gMCB7XG4gICAgQHJldHVybiAwO1xuICB9XG4gIEByZXR1cm4gbnRoKCRyYW5nZSwgMSk7XG59XG5AZnVuY3Rpb24gdXBwZXItYm91bmQoJHJhbmdlKSB7XG4gIEBpZiBsZW5ndGgoJHJhbmdlKSA8IDIge1xuICAgIEByZXR1cm4gJGNvbC1sZztcbiAgfVxuICBAcmV0dXJuIG50aCgkcmFuZ2UsIDIpO1xufVxuQG1peGluIG1lZGlhKCRhcmcpIHtcbiAgQGlmICRhcmcgPT0gc2NyZWVuIHtcbiAgICBAbWVkaWEgI3skc2NyZWVufSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRhcmcgPT0gbGFuZHNjYXBlIHtcbiAgICBAbWVkaWEgI3skc2NyZWVufSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJGFyZyA9PSBwb3J0cmFpdCB7XG4gICAgQG1lZGlhICN7JHNjcmVlbn0gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJGFyZyA9PSB4cy11cCB7XG4gICAgQG1lZGlhICN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6ICN7bG93ZXItYm91bmQoJGNvbC14cyl9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRhcmcgPT0geHMtb25seSB7XG4gICAgQG1lZGlhICN7JHNjcmVlbn0gYW5kIChtYXgtd2lkdGg6ICN7dXBwZXItYm91bmQoJGNvbC14cyl9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRhcmcgPT0gc20tdXAge1xuICAgIEBtZWRpYSAjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiAje2xvd2VyLWJvdW5kKCRjb2wtc20pfSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkYXJnID09IHNtLW9ubHkge1xuICAgIEBtZWRpYSAjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiAje2xvd2VyLWJvdW5kKCRjb2wtc20pfSkgYW5kIChtYXgtd2lkdGg6ICN7dXBwZXItYm91bmQoJGNvbC1zbSl9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRhcmcgPT0gbWQtdXAge1xuICAgIEBtZWRpYSAjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiAje2xvd2VyLWJvdW5kKCRjb2wtbWQpfSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkYXJnID09IG1kLW9ubHkge1xuICAgIEBtZWRpYSAjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiAje2xvd2VyLWJvdW5kKCRjb2wtbWQpfSkgYW5kIChtYXgtd2lkdGg6ICN7dXBwZXItYm91bmQoJGNvbC1tZCl9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRhcmcgPT0gbGctdXAge1xuICAgIEBtZWRpYSAjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiAje2xvd2VyLWJvdW5kKCRjb2wtbGcpfSkgeyBAY29udGVudDsgfVxuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ2FyZFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLndwZS1jYXJkIHtcbiAgQGV4dGVuZCAuY2xlYXJmaXg7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkYmFzZS1hbHBoYS1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAkYmFzZS1mb250LWNvbG9yO1xuICBmb250LWZhbWlseTogJGJhc2UtZm9udC1saWdodDtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkYmFzZS1saW5lLWhlaWdodDtcbiAgYTpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG5cbi8qIENhcmQgaGVhZGVyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ud3BlLWNhcmRfaGVhZGVyIHtcbiAgQGV4dGVuZCAuY2xlYXJmaXg7XG4gIHBhZGRpbmc6ICRnbG9iYWwtc3BhY2luZztcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgMCAkYmFzZS1hbHBoYS1jb2xvcjtcbn1cblxuIC8qIGNhcmQgbWV0YSAqL1xuXG4ud3BlLWNhcmRfbWV0YSB7XG4gIEBleHRlbmQgLmNsZWFyZml4O1xuICBtYXJnaW46ICgtJGdsb2JhbC1zcGFjaW5nKSAoLSRnbG9iYWwtc3BhY2luZykgJGdsb2JhbC1zcGFjaW5nICgtJGdsb2JhbC1zcGFjaW5nKTtcbiAgcGFkZGluZzogKCRnbG9iYWwtc3BhY2luZyAvIDIpICRnbG9iYWwtc3BhY2luZztcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgMCAkYmFzZS1hbHBoYS1jb2xvcjtcbiAgYmFja2dyb3VuZDogdGludCgkYmFzZS1jb2xvciwgOTYlKTtcbiAgY29sb3I6IHRpbnQoJGJhc2UtY29sb3IsIDQ4JSk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIC53cGUtY2FyZF9oZWFkZXIgJiB7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXMgMCAwO1xuICB9XG59XG5cbi53cGUtY2FyZF9yZXBvcnRpbmcge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi53cGUtY2FyZF90aW1la2VlcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogbGVmdDtcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtYm9sZDtcbiAgcGFkZGluZy1sZWZ0OiAoJGdsb2JhbC1zcGFjaW5nICogMS4yNSk7XG4gIC5mYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cbn1cblxuLndwZS1jYXJkX3RpbWVrZWVwZXItb25saW5lIHtcbiAgY29sb3I6ICRsaXZlLWNvbG9yO1xufVxuXG4ud3BlLWNhcmRfdGltZWtlZXBlci1sb2FkaW5nIHtcbiAgLmZhIHtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24oc3Bpbi1jIDFzIGxpbmVhciAwcyBpbmZpbml0ZSk7XG4gIH1cbn1cblxuLyogY2FyZCBoZWFkbGluZSAqL1xuXG4ud3BlLWNhcmRfaGVhZGxpbmUge1xuICBtYXJnaW4tYm90dG9tOiAoJGdsb2JhbC1zcGFjaW5nIC8gMik7XG4gIC5wYi1jci1taW4tbWQgJiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXgtd2lkdGg6IDI4OHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6ICRnbG9iYWwtc3BhY2luZztcbiAgfVxufVxuXG4ud3BlLWNhcmRfcHJpbWUtdGl0bGUge1xuICBmb250LWZhbWlseTogJGJhc2UtZm9udC1ib2xkO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDI4cHg7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLyogY2FyZCBwcmltZSBuYXYgKi9cblxuLndwZS1jYXJkX3ByaW1lLW5hdiB7XG4gIG1hcmdpbi1ib3R0b206ICgtICRnbG9iYWwtc3BhY2luZyk7XG4gIGZvbnQtc2l6ZTogMDtcbiAgLnBiLWNyLW1pbi1tZCAmIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAucGItY3ItbWluLW1kIC53cGUtY2FyZF9oZWFkbGluZSArICYge1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxuICAud3BlLWJhZGdlIHtcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xuICB9XG59XG5cbi53cGUtY2FyZF9wYXJ0eS1tZW51IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuXG4ud3BlLWNhcmRfcGFydHktbWVudV9vcHRpb24ge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IGNhbGMoNTAlIC0gMTBweCk7XG4gIG1hcmdpbjogMCAxMHB4O1xuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICAmOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxuICAucGItY3ItbWluLW1kICYge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbi53cGUtY2FyZF9wYXJ0eS1tZW51X29wdGlvbiBhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy1ib3R0b206ICRnbG9iYWwtc3BhY2luZztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3BhY2l0eTogMC40ODtcbiAgJiwgJjpob3ZlciwgJjp2aXNpdGVkLCAmOmZvY3VzIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuICAmOmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogM3B4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJhY2tncm91bmQ6IHRpbnQoJGJhc2UtY29sb3IsIDY0JSk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMjRzIGVhc2UgMHM7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7XG4gIH1cbn1cblxuLndwZS1jYXJkX3BhcnR5LW1lbnVfb3B0aW9uIGE6aG92ZXIsXG4ud3BlLWNhcmRfcGFydHktbWVudV9vcHRpb25fYWN0aXZlIGEge1xuICAmOmFmdGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfSBcbn1cblxuLndwZS1jYXJkX3BhcnR5LW1lbnVfb3B0aW9uX2FjdGl2ZSBhIHtcbiAgb3BhY2l0eTogMTtcbiAgJjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogdGludCgkYmFzZS1jb2xvciwgMjAlKTtcbiAgfSBcbn1cblxuLndwZS1jYXJkX3BhcnR5LW1lbnUtbWVkaWEge1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIGltZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5wYi1jci1taW4tc20gJiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLndwZS1jYXJkX3BhcnR5LW1lbnUtdGV4dCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBsaW5lLWhlaWdodDogMTZweDtcbn1cblxuLndwZS1jYXJkX3BhcnR5LW1lbnUtdGl0bGUge1xuICBmb250LWZhbWlseTogJGJhc2UtZm9udC1ib2xkO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG5cbi8qIENhcmQgYm9keVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuIC53cGUtY2FyZF9ib2R5IHtcbiAgQGV4dGVuZCAuY2xlYXJmaXg7XG4gIHBhZGRpbmc6ICRnbG9iYWwtc3BhY2luZztcbiAgPiAqOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLndwZS1jYXJkX2NvbCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHdpZHRoOiAxMDAlO1xuICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5cbi8qIENhcmQgZm9vdGVyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ud3BlLWNhcmRfZm9vdGVyIHtcbiAgQGV4dGVuZCAuY2xlYXJmaXg7XG4gIHBhZGRpbmc6ICgkZ2xvYmFsLXNwYWNpbmcgLyAyKSAkZ2xvYmFsLXNwYWNpbmc7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkYmFzZS1hbHBoYS1jb2xvcjtcbiAgYmFja2dyb3VuZDogdGludCgkYmFzZS1jb2xvciwgOTYlKTtcbiAgY29sb3I6IHRpbnQoJGJhc2UtY29sb3IsIDQ4JSk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4ud3BlLWNhcmRfZnVsbC1yZXN1bHRzLWxpbmsge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWJvbGQ7XG4gIGNvbG9yOiAkYmFzZS1mb250LWNvbG9yO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAuZmEge1xuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIH1cbn1cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgU3RhdGUgY2FyZFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLndwZS1jYXJkX21hcC1jb2wge1xuICAucGItY3ItbWluLW1kICYge1xuICAgIHdpZHRoOiA1MiU7XG4gICAgcGFkZGluZy1yaWdodDogKCRnbG9iYWwtc3BhY2luZyAvIDIpO1xuICB9XG4gIC5wYi1jci1taW4tbGcgJiB7XG4gICAgd2lkdGg6IDY0JTtcbiAgfVxufVxuXG4ud3BlLWNhcmRfdGFibGUtY29sIHtcbiAgLnBiLWNyLW1pbi1tZCAmIHtcbiAgICB3aWR0aDogNDglO1xuICAgIHBhZGRpbmctbGVmdDogKCRnbG9iYWwtc3BhY2luZyAvIDIpO1xuICB9XG4gIC5wYi1jci1taW4tbGcgJiB7XG4gICAgd2lkdGg6IDM2JTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIHdoaXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIHdoaXRlIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoIzZlY2FhNiwgNDAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZGZjOTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCNmZmYsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBtaXhpbiBmb3IgZ2VuZXJhdGluZyB2ZW5kb3IgcHJlZml4ZXMgb24gbm9uLXN0YW5kYXJkaXplZCBwcm9wZXJ0aWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eVxuLy8vICAgUHJvcGVydHkgdG8gcHJlZml4XG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZVxuLy8vICAgVmFsdWUgdG8gdXNlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRwcmVmaXhlc1xuLy8vICAgUHJlZml4ZXMgdG8gZGVmaW5lXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgMTBweCwgd2Via2l0IG1zIHNwZWMpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itd2Via2l0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1tb3ppbGxhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1taWNyb3NvZnRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW9wZXJhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1zcGVjXG5cbkBtaXhpbiBwcmVmaXhlcigkcHJvcGVydHksICR2YWx1ZSwgJHByZWZpeGVzKSB7XG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcbiAgICBAaWYgJHByZWZpeCA9PSB3ZWJraXQge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1veiB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgICAgIC1tb3otI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1zIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1taWNyb3NvZnQge1xuICAgICAgICAtbXMtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG8ge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW9wZXJhIHtcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IHNwZWMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXNwZWMge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlICB7XG4gICAgICBAd2FybiBcIlVucmVjb2duaXplZCBwcmVmaXg6ICN7JHByZWZpeH1cIjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKSB7XG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6IGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICBmYWxzZSAhZ2xvYmFsO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLndwZS10YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1zcGFjaW5nO1xuXG4gIHRkLCB0aCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIHRoIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG5cbiAgdHIge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDAuMjRzIGVhc2UgMHMpO1xuICB9XG5cbiAgPiB0aGVhZCA+IHRyID4gdGgsXG4gID4gdGJvZHkgPiB0ciA+IHRoLFxuICA+IHRmb290ID4gdHIgPiB0aCxcbiAgPiB0aGVhZCA+IHRyID4gdGQsXG4gID4gdGJvZHkgPiB0ciA+IHRkLFxuICA+IHRmb290ID4gdHIgPiB0ZCB7XG4gICAgcGFkZGluZzogKCRnbG9iYWwtc3BhY2luZyAvIDIpO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgMCAkYmFzZS1hbHBoYS1jb2xvcjtcbiAgfVxuXG4gID4gdGhlYWQgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuICA+IHRib2R5ID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbiAgPiB0Zm9vdCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4gID4gdGhlYWQgPiB0ciA+IHRkOmZpcnN0LWNoaWxkLFxuICA+IHRib2R5ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbiAgPiB0Zm9vdCA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gID4gdGhlYWQgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4gID4gdGJvZHkgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4gID4gdGZvb3QgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4gID4gdGhlYWQgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4gID4gdGJvZHkgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4gID4gdGZvb3QgPiB0ciA+IHRkOmxhc3QtY2hpbGQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cblxuICA+IHRoZWFkID4gdHIgPiB0aCB7XG4gICAgQGV4dGVuZCAuaGVhZGluZy1hbHQ7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICBhIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gICAgYSwgYTp2aXNpdGVkLCBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbiAgfVxufVxuXG4vKiB0YWJsZSBjb250ZW50cyAqL1xuXG4ud3BlLXRhYmxlX3Jvd19sZWFkZXIsXG4ud3BlLXRhYmxlX3Jvd193aW5uZXIge1xuICBmb250LWZhbWlseTogJGJhc2UtZm9udC1ib2xkO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICAud3BlLXRhYmxlX2NlbGxfY2FuZGlkYXRlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgfVxuICAuZmEge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6ICgtICRnbG9iYWwtc3BhY2luZyAvIDQpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICB9XG59XG5cbi53cGUtdGFibGUge1xuICAud3BlLXRhYmxlX2hlYWRfdm90ZXMsXG4gIC53cGUtdGFibGVfaGVhZF9wZXJjZW50LFxuICAud3BlLXRhYmxlX2NlbGxfdm90ZXMsXG4gIC53cGUtdGFibGVfY2VsbF9wZXJjZW50IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxufVxuXG4ud3BlLXRhYmxlX2hlYWRfY2FuZGlkYXRlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi53cGUtdGFibGVfY2VsbF9jYW5kaWRhdGUge1xuICBmb250LXNpemU6IDA7XG59XG5cbi53cGUtdGFibGVfY2FuZGlkYXRlLWJsb2NrIHtcbiAgZGlzcGxheTogdGFibGU7XG4gID4gKiB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG5cbi53cGUtdGFibGVfY2FuZGlkYXRlLWhlYWQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMzJweDtcbiAgd2lkdGg6IDMycHg7XG4gIG1hcmdpbjogLTRweCA4cHggLTRweCAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBpbWcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuXG4ud3BlLXRhYmxlX2NhbmRpZGF0ZS1uYW1lIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKiB0YWJsZSBtb3JlL2xlc3MgdG9nZ2xlICovXG5cbi53cGUtcmVzdWx0LXRhYmxlX3RvZ2dsZSB7XG4gIHBhZGRpbmc6IDAgJGdsb2JhbC1zcGFjaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIEBpbmNsdWRlIGNhbi1jbGljaygkYmxhY2spO1xuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLXNwYWNpbmc7XG59XG5cbi53cGUtcmVzdWx0LXRhYmxlX3RvZ2dsZV9vcHRpb24ge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ud3BlLXJlc3VsdC10YWJsZV90b2dnbGVfb3B0aW9uX2FjdGl2ZSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVG9vbHRpcCB0YWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi53cGUtdG9vbHRpcC1yZXN1bHRfdGFibGUge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICA+IHRib2R5IHRyOmxhc3QtY2hpbGQgPiB0ZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG4ud3BlLXRvb2x0aXAtcmVzdWx0X3RhYmxlX2NhbmRpZGF0ZS1oZWFkIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLndwZS10b29sdGlwLXJlc3VsdF90YWJsZV9jZWxsX2NhbmRpZGF0ZSB7XG4gIHdpZHRoOiAxMDAlO1xufSIsIi8vIFdhUG8gYXBwbGllcyB0aGVzZSB0byBib2R5LCB1c2VmdWwgdG8ga2VlcCBoZXJlLlxuJGJsYWNrOiAjMkEyQTJBO1xuJHdoaXRlOiAjRjdGN0Y3O1xuXG5AbWl4aW4gY2FuLWNsaWNrKCRjKSB7XG4gIGNvbG9yOiAkYztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBjb2xvciAuMnM7XG4gIG91dGxpbmU6IG5vbmU7XG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiBsaWdodGVuKCRjLCAxNSUpO1xuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVG9vbHRpcHNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi53cGUtdG9vbHRpcCB7XG4gIHotaW5kZXg6IDEwMDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDEycHggMnB4ICRiYXNlLWFscGhhLWNvbG9yLCAwIDAgMCAxcHggJGJhc2UtYWxwaGEtY29sb3I7XG4gIHBhZGRpbmc6ICRnbG9iYWwtc3BhY2luZztcbiAgd2lkdGg6ICgkZ2xvYmFsLXNwYWNpbmcgKiAxNCk7XG5cbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6ICRiYXNlLWZvbnQtY29sb3I7XG4gIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWxpZ2h0O1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0O1xufVxuXG4vKiB0aGVzZSBjbGFzc25hbWVzIG5lZWQgdG8gbWF0Y2ggdGhvc2UgaW4gdG9vbHRpcC5qcyAqL1xuXG4ud3BlLXRvb2x0aXAtbnViIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLndwZS10b29sdGlwLW51YjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDEycHggMnB4ICRiYXNlLWFscGhhLWNvbG9yLCAwIDAgMCAxcHggJGJhc2UtYWxwaGEtY29sb3I7XG59XG5cbi53cGUtdG9vbHRpcC1udWJfdG9wLFxuLndwZS10b29sdGlwLW51Yl9ib3R0b20ge1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xufVxuXG4ud3BlLXRvb2x0aXAtbnViX2xlZnQsXG4ud3BlLXRvb2x0aXAtbnViX3JpZ2h0IHtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xufVxuXG4ud3BlLXRvb2x0aXAtbnViX3RvcCB7XG4gIGJvdHRvbTogLTMycHg7XG4gICY6YmVmb3JlIHtcbiAgICBib3R0b206IDI2cHg7XG4gICAgbGVmdDogMTBweDtcbiAgfVxufVxuXG4ud3BlLXRvb2x0aXAtbnViX2JvdHRvbSB7XG4gIHRvcDogLTMycHg7XG4gICY6YmVmb3JlIHtcbiAgICB0b3A6IDI2cHg7XG4gICAgbGVmdDogMTBweDtcbiAgfVxufVxuXG4ud3BlLXRvb2x0aXAtbnViX2xlZnQge1xuICByaWdodDogLTMycHg7XG4gICY6YmVmb3JlIHtcbiAgICB0b3A6IDEwcHg7XG4gICAgcmlnaHQ6IDI2cHg7XG4gIH1cbn1cblxuLndwZS10b29sdGlwLW51Yl9yaWdodCB7XG4gIGxlZnQ6IC0zMnB4O1xuICAmOmJlZm9yZSB7XG4gICAgdG9wOiAxMHB4O1xuICAgIGxlZnQ6IDI2cHg7XG4gIH1cbn1cblxuLyogVG9vbHRpcCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ud3BlLXRvb2x0aXAtcmVzdWx0X3ByaW1lLXRpdGxlIHtcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtYm9sZDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi53cGUtdG9vbHRpcC1yZXN1bHRfbWV0YSB7XG4gIGNvbG9yOiB0aW50KCRiYXNlLWNvbG9yLCA0OCUpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAoJGdsb2JhbC1zcGFjaW5nIC8gNCk7XG59IiwiJGJvcmRlcjogJGJsYWNrO1xuJGJvcmRlcl9vdmVyOiAkYmxhY2s7XG4kYm9yZGVyX2FjdGl2ZTogJGJsYWNrO1xuJGJvcmRlcl9yYWRpdXM6IDRweDtcbiR0b2dnbGVfYmc6ICNGRkY7XG4kdG9nZ2xlX292ZXI6ICNGMUYxRjE7XG4kdG9nZ2xlX2FjdGl2ZTogI0Q1RDVENTtcblxuQG1peGluIGJvcmRlcl9ydHJhbnMoJGMpIHtcbiAgYm9yZGVyLWNvbG9yOiAkYyB0cmFuc3BhcmVudCAkYyAkYztcbn1cblxuQG1peGluIGJ0bl9saXN0KCRwbGFjZW1lbnQpIHtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMnMsXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgLjJzO1xuXG4gIEBpZiAkcGxhY2VtZW50ID09ICdsZWZ0JyB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGJvcmRlcl9yYWRpdXM7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGJvcmRlcl9yYWRpdXM7XG4gICAgQGluY2x1ZGUgYm9yZGVyX3J0cmFucygkYm9yZGVyKTtcbiAgICAmOmhvdmVyIHsgQGluY2x1ZGUgYm9yZGVyX3J0cmFucygkYm9yZGVyX292ZXIpOyB9XG4gIH1cblxuICBAZWxzZSBpZiAkcGxhY2VtZW50ID09ICdsYXN0JyB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXJfcmFkaXVzO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkYm9yZGVyX3JhZGl1cztcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gICAgJjpob3ZlciB7IGJvcmRlci1jb2xvcjogJGJvcmRlcl9vdmVyOyB9XG4gIH1cblxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgYm9yZGVyX3J0cmFucygkYm9yZGVyKTtcbiAgICAmOmhvdmVyIHsgQGluY2x1ZGUgYm9yZGVyX3J0cmFucygkYm9yZGVyX292ZXIpOyB9XG4gIH1cbn1cblxuLmItdG9nZ2xlLFxuLmItcGFydHktdG9nZ2xlIHtcbiAgQGluY2x1ZGUgbWVkaWEoc20tdXApIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG59XG5cbi5iLXRvZ2dsZV9vcHRpb24sXG4uYi1wYXJ0eS10b2dnbGVfb3B0aW9uIHtcbiAgYmFja2dyb3VuZDogJHRvZ2dsZV9iZztcbiAgY29sb3I6ICRibGFjaztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMzZweDtcbiAgb3V0bGluZTogbm9uZTtcbiAgcGFkZGluZzogNnB4IDE0cHg7XG4gIEBpbmNsdWRlIGJ0bl9saXN0KCdjZW50ZXInKTtcbiAgJjpmaXJzdC1jaGlsZCB7IEBpbmNsdWRlIGJ0bl9saXN0KCdsZWZ0Jyk7IH1cbiAgJjpsYXN0LWNoaWxkIHsgQGluY2x1ZGUgYnRuX2xpc3QoJ2xhc3QnKTsgfVxuICAmOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjogJHRvZ2dsZV9vdmVyOyB9XG59XG5cbi5iLXRvZ2dsZV9vcHRpb25fYWN0aXZlLFxuLmItcGFydHktdG9nZ2xlX29wdGlvbl9hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAkdG9nZ2xlX2FjdGl2ZTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHRvZ2dsZV9hY3RpdmU7XG4gIH1cbn1cbiIsIi8vIGh0dHA6Ly96ZXJvc2l4dGhyZWUuc2UvOC1zYXNzLW1peGlucy15b3UtbXVzdC1oYXZlLWluLXlvdXItdG9vbGJveC9cbkBtaXhpbiBrZXlmcmFtZXMoJGFuaW1hdGlvbi1uYW1lKSB7XG4gIEBrZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gYW5pbWF0aW9uKCRzdHIpIHtcbiAgYW5pbWF0aW9uOiAjeyRzdHJ9O1xufVxuIiwiQGltcG9ydCBcIi4uL21peGlucy9hbmltYXRpb25cIjtcblxuJHN0cm9rZS1yZWd1bGFyOiBkYXJrZW4oJHdoaXRlLCAyMCUpO1xuJHN0cm9rZS1oaWdobGlnaHQ6ICNGRkY7XG5cbkBpbmNsdWRlIGtleWZyYW1lcyhwdWxzZSkge1xuICAwJSB7XG4gICAgc3Ryb2tlLW9wYWNpdHk6IDAuNDU7XG4gIH1cbiAgMjUlIHtcbiAgICBzdHJva2Utb3BhY2l0eTogMC43O1xuICB9XG4gIDc1JSB7XG4gICAgc3Ryb2tlLW9wYWNpdHk6IDAuNztcbiAgfVxuICAxMDAlIHtcbiAgICBzdHJva2Utb3BhY2l0eTogMC40NTtcbiAgfVxufVxuXG4ud3BlLW1hcCB7XG4gIHBhdGgge1xuICAgIHRyYW5zaXRpb246IGZpbGwgLjJzO1xuICB9XG59XG5cbi8qIE1hcCBsYXllcnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi53cGUtbWFwX2JvdW5kYXJpZXMge1xuICBmaWxsOiBub25lO1xuICBzdHJva2U6IGRhcmtlbigkd2hpdGUsIDE1JSk7XG59XG5cbi8vIHN2ZyA8Y2lyY2xlPiBlbGVtZW50XG4ud3BlLW1hcF9jaXR5LW1hcmtlcnMge1xuICBmaWxsOiAjMjIyO1xufVxuXG4vLyBzdmcgPHRleHQ+IGVsZW1lbnRcbi53cGUtbWFwX2NpdHktbGFiZWxzIHtcbiAgZmlsbDogI2VlZTtcbiAgc3Ryb2tlOiAjMjIyO1xuICBzdHJva2Utb3BhY2l0eTogLjQ7XG59XG5cbi53cGUtbWFwX2hpZ2hsaWdodCB7XG4gIGZpbGw6IG5vbmU7XG4gIHN0cm9rZTogbm9uZTtcbn1cblxuLndwZS1tYXBfaGlnaGxpZ2h0X2FjdGl2ZSB7XG4gIHN0cm9rZTogJHN0cm9rZS1oaWdobGlnaHQ7XG4gIEBpbmNsdWRlIGFuaW1hdGlvbigncHVsc2UgNHMgaW5maW5pdGUnKTtcbn1cblxuXG4vKiBNYXAgYWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLndwZS1tYXBfYWN0aW9ucyB7XG4gIEBleHRlbmQgLmNsZWFyZml4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCAwICRiYXNlLWFscGhhLWNvbG9yO1xuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLXNwYWNpbmc7XG59XG5cbi53cGUtbWFwX3ZpZXdzLW1lbnUge1xuICBmbG9hdDogbGVmdDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xufVxuXG4ud3BlLW1hcF92aWV3cy1tZW51X2xhYmVsLFxuLndwZS1tYXBfdmlld3MtbWVudV9vcHRpb24ge1xuICBAZXh0ZW5kIC5oZWFkaW5nLWFsdDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogKCRnbG9iYWwtc3BhY2luZyAvIDIpO1xuICAgIFxufVxuXG4ud3BlLW1hcF92aWV3cy1tZW51X2xhYmVsIHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgcGFkZGluZzogKCRnbG9iYWwtc3BhY2luZyAvIDIpIDA7XG59XG5cbi53cGUtbWFwX3ZpZXdzLW1lbnVfb3B0aW9uIGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgcGFkZGluZzogKCRnbG9iYWwtc3BhY2luZyAvIDIpIDA7XG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbn1cblxuLndwZS1tYXBfdmlld3MtbWVudV9vcHRpb25fYWN0aXZlIGEge1xuICAmLCAmOmZvY3VzIHtcbiAgICBjb2xvcjogcmdiYSgkYmFzZS1mb250LWNvbG9yLCAxKTtcbiAgfVxuICAmOmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBiYWNrZ3JvdW5kOiAkYmFzZS1mb250LWNvbG9yO1xuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTGVnZW5kXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ud3BlLWxlZ2VuZF9zd2F0Y2gge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogdGVtcCAqL1xuXG4kZG90X3NpemU6IDFlbTtcblxuLmItaW5saW5lbGVnZW5kLFxuLmItbGVnZW5kX2xpc3Qge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi8qXG5tYWtpbmcgbGVnZW5kIGdvIGhvcml6b250YWxseSAtLSBUT0RPOiBlaXRoZXIgbWFrZSB0aGlzIGNvbmZpZ3VyYWJsZSBvclxuaW50ZWxsaWdlbnRseSByZXNwb25zaXZlIHRvIHRoZSBhdmFpbGFibGUgd2lkdGguICBjYyBSaWNhcmRvXG4qL1xuXG4uYi1sZWdlbmQgeyBjbGVhcjogbGVmdCB9XG5cbi5iLWxlZ2VuZF9sYWJlbCB7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbn1cblxuLmItbGVnZW5kX2xpc3Qge1xuICBAZXh0ZW5kIC5jbGVhcmZpeDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5iLWxlZ2VuZF9lbnRyeSB7XG4gIEBleHRlbmQgLnRydW5jYXRlZDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDhweDtcbiAgbWFyZ2luOiAwIDE2cHggNHB4IDA7XG59XG5cbi5iLWxlZ2VuZC1jaXJjbGVfZW50cnkge1xuICB3aWR0aDogODFweDtcblxuICAvKiBuZWVkIHRoZSBmb2xsb3dpbmcgYmVjYXVzZSB3ZSdyZSBub3Qgd3JhcHBpbmcgdGhlc2UgaW4gdGhlXG4gICAqIC53cGUtbGVnZW5kLXN3YXRjaCBjbGFzcyAqL1xuICBzdmcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICB9XG59XG5cbi5iLWlubGluZWxlZ2VuZF9lbnRyeSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICAmOmZpcnN0LWNoaWxkIHsgbWFyZ2luLWxlZnQ6IDA7IH1cbn1cblxuLmItaW5saW5lbGVnZW5kX3N3YXRjaCxcbi5iLWxlZ2VuZF9zd2F0Y2gge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCYXNlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvbW1vbiBlbGVtZW50cyBzdHlsZXNcbiAqL1xuXG4uaGVhZGluZy1hbHQge1xuICBmb250LWZhbWlseTogJGJhc2UtZm9udC1saWdodDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHJnYmEoJGJhc2UtZm9udC1jb2xvciwgMC40OCk7XG59XG5cbi8qIHRlbXAgKi9cblxuI2VsZWN0aW9ucy1jb250ZW50LFxuI2VsZWN0aW9ucy1jb250ZW50LXN0YXRlLWNhcmQge1xuICBwYWRkaW5nOiAxNnB4ICFpbXBvcnRhbnQ7XG59XG5cblxuLyogQmFkZ2VzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ud3BlLWJhZGdlIHtcbiAgQGV4dGVuZCAuYW50aWFsaWFzZWQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIGJhY2tncm91bmQ6IHJnYmEoJGJhc2UtY29sb3IsIDAuNDgpO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZzogMXB4IDRweDtcbiAgc3VwIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogLTJweDtcbiAgfVxufVxuXG4vKiBBbmltYXRpb25cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBpbmNsdWRlIGtleWZyYW1lcyhzcGluLWMpIHtcbiAgZnJvbSB7IEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoMGRlZykpOyB9XG4gICAgdG8geyBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDM2MGRlZykpOyB9XG59IiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFV0aWxzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiBGb250IHNtb290aGluZ1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBbnRpYWxpYXNlZCBmb250IHNtb290aGluZyB3b3JrcyBiZXN0IGZvciBsaWdodCB0ZXh0IG9uIGEgZGFyayBiYWNrZ3JvdW5kLlxuICogQXBwbHkgdG8gc2luZ2xlIGVsZW1lbnRzIGluc3RlYWQgb2YgZ2xvYmFsbHkgdG8gYm9keS5cbiAqIE5vdGUgdGhpcyBvbmx5IGFwcGxpZXMgdG8gd2Via2l0LWJhc2VkIGRlc2t0b3AgYnJvd3NlcnMgYW5kIEZpcmVmb3ggMjUgKGFuZCBsYXRlcikgb24gdGhlIE1hYy5cbiAqL1xuXG4uYW50aWFsaWFzZWQge1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLyogVHJ1bmNhdGVkIHRleHRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi50cnVuY2F0ZWQge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLyogSGlkZGVuIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIEhpZGUgZnJvbSBib3RoIHNjcmVlbnJlYWRlcnMgYW5kIGJyb3dzZXJzICovXG5cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLyogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbnJlYWRlcnMgKi9cblxuLnZpc3VhbGx5LWhpZGRlbiB7XG4gIGJvcmRlcjogMCBub25lO1xuICBjbGlwOiByZWN0KDBweCwgMHB4LCAwcHgsIDBweCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbn1cblxuLyoqXG4gKiBFeHRlbmRzIHRoZSAudmlzdWFsbHktaGlkZGVuIGNsYXNzIHRvIGFsbG93IHRoZSBlbGVtZW50XG4gKiB0byBiZSBmb2N1c2FibGUgd2hlbiBuYXZpZ2F0ZWQgdG8gdmlhIHRoZSBrZXlib2FyZFxuICovXG5cbi52aXN1YWxseS1oaWRkZW4uZm9jdXNhYmxlOmFjdGl2ZSxcbi52aXN1YWxseS1oaWRkZW4uZm9jdXNhYmxlOmZvY3VzIHtcbiAgY2xpcDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBwb3NpdGlvbjogc3RhdGljO1xuICB3aWR0aDogYXV0bztcbn1cblxuLyogVW5kbyB2aXN1YWxseS1oaWRkZW4gKi9cblxuLnZpc3VhbGx5LWhpZGRlbi11bmRvIHtcbiAgcG9zaXRpb246IGluaGVyaXQ7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IGF1dG87XG59XG5cbi8qIEhpZGUgdmlzdWFsbHkgYW5kIGZyb20gc2NyZWVucmVhZGVycywgYnV0IG1haW50YWluIGxheW91dCAqL1xuXG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG5cbi8qIENsZWFyZml4XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uY2xlYXJmaXgge1xuICAmOmJlZm9yZSxcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogJyAnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG4gICY6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cblxuLyogRGlzYWJsZWRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNDg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufSJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
