/**
 * Import Compass
 */
/* ==========================================================================
   Icon Library Mixin
   ========================================================================== */
/* ==========================================================================
   Shadows
   ========================================================================== */
/* ==========================================================================
   Regions
   ========================================================================== */
/**
 * Region Component
 *
 * This is a region component which provides a container to place other components in.
 * Using a region will provide you with a header and body which you can style and
 * use within your UI.
 *
 * Example HTML:
 *
 * <div class="t-Region [modifiers]">
 *  <div class="t-Region-header">
 *    <h2 class="t-Region-title">Region Title</h2>
 *  </div>
 *  <div class="t-Region-body">
 *    Body
 *  </div>
 * </div>
 *
 * <div class="t-Region [modifiers]">
 *  <div class="t-Region-header">
 *    <div class="t-Region-headerItems t-Region-headerItems--left">
 *      <h2 class="t-Region-title">Region Title</h2>
 *    </div>
 *    <div class="t-Region-headerItems t-Region-headerItems--right">
 *      [Optional Buttons]
 *    </div>
 *  </div>
 *  <div class="t-Region-body">
 *    Body
 *  </div>
 * </div>
 *
 */
/* ==========================================================================
   Region
   ========================================================================== */
.t-Region {
  display: block;
  border: 1px solid rgba(0, 0, 0, 0.1);
  box-shadow: 0 2px 4px -2px rgba(0, 0, 0, 0.075); }

/* Sub-section comment block
   ========================================================================== */
/**
 * Modifier: Padded Region
 *
 * This applies a 16px padding to the region body
 */
.t-Region .t-Region-body {
  padding: 16px; }

.t-Region {
  margin-bottom: 16px; }

/**
 * Modifier: Transparent Background
 *
 * This removes the background from the region
 */
/**
 * Modifier: No Border
 *
 * Remove borders and shadows from the region.
 */
.t-Region--noBorder {
  border: none !important;
  box-shadow: none !important; }
  .t-Region--noBorder > .t-Region-header {
    border-bottom: none !important; }
  .t-Region--noBorder > .t-Region-bodyWrap > .t-Region-body {
    padding-top: 0; }

/**
 * Modifier: No Padding
 *
 * Remove borders and shadows from the region.
 */
.t-Region--noPadding > .t-Region-bodyWrap > .t-Region-body {
  padding: 0 !important;
  /* When region has no Padding, remove borders on IRR */ }
  .t-Region--noPadding > .t-Region-bodyWrap > .t-Region-body > .a-IRR-container .a-IRR {
    border-width: 0; }

.t-Region--noPadding > .t-Region-bodyWrap > .t-Region-body > .t-MediaList {
  border-width: 0; }

/**
 * Modifier: Stacked Regions
 *
 * Remove side borders and shadows.  This is useful for accordions,
 * and regions that can be grouped togehter into stacks.
 */
.t-Region--stacked {
  box-shadow: none !important;
  border-width: 1px 0 !important;
  border-radius: 0 !important;
  margin-bottom: 0; }
  .t-Region--stacked:first-child {
    border-top: 0 !important; }
  .t-Region--stacked + .t-Region--stacked {
    margin-top: -1px; }

/**
 * Modifier: Text Content Regions
 *
 * This region style is used for displaying text content.
 */
.t-Region--textContent {
  box-shadow: none;
  border-width: 0;
  margin-bottom: 0;
  background-color: transparent !important; }
  .t-Region--textContent > .t-Region-header {
    border-width: 0;
    font-size: 2.0rem;
    line-height: 2.4rem;
    font-weight: bold; }
  .t-Region--textContent > .t-Region-header,
  .t-Region--textContent > .t-Region-bodyWrap > .t-Region-body {
    background-color: transparent !important; }

/**
 * Side Column Regions
 */
.t-Body-side .t-Region,
.t-Body-actions .t-Region {
  box-shadow: none !important;
  border-width: 1px 0 !important;
  border-radius: 0 !important;
  margin-bottom: 0;
  border-bottom-width: 0 !important; }
  .t-Body-side .t-Region:first-child,
  .t-Body-actions .t-Region:first-child {
    border-top: 0 !important; }
  .t-Body-side .t-Region + .t-Region,
  .t-Body-actions .t-Region + .t-Region {
    margin-top: -1px; }

.t-Body-side .t-Region .t-Region-buttons-left {
  padding-left: 1.6rem; }

.t-Body-side .t-Region .t-Region-buttons-right {
  padding-right: 1.6rem; }

.t-Body-actions .t-Region > .t-Region-header {
  border-bottom-width: 0; }

/**
 * Modifier: Hide Header
 *
 * Hides region header (Accessible)
 */
.t-Region--hideHeader > .t-Region-header {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

/**
 * Modifier: Remove Header
 *
 * Removes region header (Not Accesible)
 */
.t-Region--removeHeader > .t-Region-header {
  display: none; }

/**
 * Modifier: No UI
 *
 * Remove borders and shadows from the region.
 */
.t-Region--noUI,
.t-Region--noUI > .t-Region-header {
  background: none transparent !important;
  box-shadow: none;
  border-width: 0; }

.t-Region--noUI > .t-Region-bodyWrap > .t-Region-body {
  padding: 0;
  background: none transparent !important; }

.t-Region--noUI > .t-Region-header .t-Region-headerItems--title {
  padding-right: 0;
  padding-left: 0; }

/* Region Header
   ========================================================================== */
.t-Region-header {
  border-bottom-right-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.075);
  box-sizing: border-box;
  display: table;
  /* 1 */
  table-layout: auto;
  width: 100%;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.6rem; }

.t-Region-title {
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit; }

.t-Region-headerItems {
  display: table-cell;
  vertical-align: middle; }

.t-Region-headerItems--controls {
  width: 1%;
  white-space: nowrap;
  padding-left: .8rem;
  text-align: left; }
  .u-RTL .t-Region-headerItems--controls {
    text-align: right; }
  .u-RTL .t-Region-headerItems--controls {
    padding-left: 0;
    padding-right: .8rem; }

.t-Region-headerItems--title {
  text-align: left;
  padding: 1.6rem 1.2rem; }
  .u-RTL .t-Region-headerItems--title {
    text-align: right; }

.t-Region-headerItems--buttons {
  text-align: right; }
  .u-RTL .t-Region-headerItems--buttons {
    text-align: left; }

.t-Region-body {
  font-size: 1.4rem;
  line-height: 2.0rem;
  overflow: auto;
  position: relative; }
  .t-Region-body > .container {
    /* hide horizontal scrollbars due to updated grid settings */
    overflow: hidden; }

.t-Region-body--noBorder {
  border: none !important; }

.t-Region-buttons {
  overflow: hidden; }

.t-Region-buttons-left {
  float: left; }

.t-Region-buttons-right {
  float: right; }

.t-Region-buttons-left,
.t-Region-buttons-right {
  padding: .8rem 1.1rem; }
  .t-Region-buttons-left:empty,
  .t-Region-buttons-right:empty {
    display: none; }

.t-Region--hiddenOverflow > .t-Region-bodyWrap > .t-Region-body,
.t-Region--hiddenOverflow > .t-Region-body {
  overflow: hidden; }

.t-Region--hideShow > .t-Region-header .t-Region-headerIcon {
  transition: -webkit-transform .2s;
  transition: transform .2s;
  transition: transform .2s, -webkit-transform .2s; }
  .t-Region--hideShow > .t-Region-header .t-Region-headerIcon:before {
    padding-left: 1px; }

.t-Region--hideShow > .t-Region-header .t-Region-headerIcon:before {
  content: "\e016"; }

.t-Region--hideShow.is-expanded > .t-Region-bodyWrap {
  display: block;
  height: auto; }

.t-Region--hideShow.is-expanded > .t-Region-header .t-Button--hideShow:hover .t-Region-headerIcon {
  -webkit-transform: rotate(0deg);
          transform: rotate(0deg); }

.t-Region--hideShow.is-expanded > .t-Region-header .t-Region-headerIcon {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg); }

.t-Region--hideShow.is-collapsed > .t-Region-bodyWrap {
  height: 0;
  overflow: hidden; }

.t-Region--hideShow.is-collapsed > .t-Region-header .t-Button--hideShow:hover .t-Region-headerIcon {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg); }

.t-Region--hideShow > .t-Region-header .t-Region-headerItems--title {
  padding-left: .4rem; }

.t-Region--scrollBody > .t-Region-bodyWrap > .t-Region-body {
  overflow: auto;
  -webkit-overflow-scrolling: touch; }

.t-Region--shadowScroll {
  position: relative;
  overflow: hidden; }

.t-Region--shadowScroll > .t-Region-bodyWrap > .t-Region-body {
  overflow: auto;
  -webkit-overflow-scrolling: touch; }

/* Action Regions
   ========================================================================== */
.t-Body-actions .t-Region {
  font-size: 1.2rem; }

.t-Body-actions .t-Region--scrollBody > .t-Region-bodyWrap > .t-Region-body {
  background: transparent;
  box-shadow: none; }

.t-Body-actions .t-Region-header {
  font-size: 1.4rem;
  line-height: 1.4rem; }

.t-Body-actions .t-Region .t-Region-body {
  padding: 0 12px 12px 12px; }

.t-Region-title {
  display: inline-block;
  margin: 0; }

.t-Region-title--withBadge {
  padding: 10px 0;
  line-height: 20px; }

/* Carousel Region
   ========================================================================== */
.t-Region--carousel {
  overflow: hidden; }
  .t-Region--carousel .t-Region-body {
    padding: 0; }
  .t-Region--carousel .a-Region-carouselNav {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 110;
    margin: 8px 0;
    text-align: center; }
  .t-Region--carousel .a-Region-carouselItems {
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    margin: 0; }
  .t-Region--carousel .a-Region-carouselItem {
    overflow: hidden;
    position: absolute;
    opacity: 0;
    top: 0;
    left: 0;
    right: 0; }
  .t-Region--carousel .a-Region-carouselItem {
    transition: all .5s ease; }
  .t-Region--carousel .a-Region-carouselItem.a-Tabs-element-selected {
    opacity: 1;
    z-index: 10; }
  .t-Region--carousel.t-Region--carouselSlide > .t-Region-bodyWrap .a-Region-carouselItem.a-Tabs-before {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%); }
  .t-Region--carousel.t-Region--carouselSlide > .t-Region-bodyWrap .a-Region-carouselItem.a-Tabs-after {
    -webkit-transform: translateX(100%);
            transform: translateX(100%); }
  .t-Region--carousel.t-Region--carouselSlide > .t-Region-bodyWrap .a-Region-carouselItem.a-Tabs-element-selected {
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  .t-Region--carousel.t-Region--carouselSpin > .t-Region-bodyWrap .a-Region-carouselItem.a-Tabs-before {
    -webkit-transform: rotateY(90deg);
            transform: rotateY(90deg); }
  .t-Region--carousel.t-Region--carouselSpin > .t-Region-bodyWrap .a-Region-carouselItem.a-Tabs-after {
    -webkit-transform: rotateY(-90deg);
            transform: rotateY(-90deg); }
  .t-Region--carousel.t-Region--carouselSpin > .t-Region-bodyWrap .a-Region-carouselItem.a-Tabs-element-selected {
    -webkit-transform: rotateY(0);
            transform: rotateY(0); }
  .t-Region--carousel .a-Tabs-button {
    border: none;
    display: none;
    position: absolute;
    top: 50%;
    width: 24px;
    height: 64px;
    padding: 16px 4px;
    border-radius: 2px;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset;
    margin-top: -32px;
    z-index: 100;
    opacity: .5;
    transition: all .2s ease; }
    .t-Region--carousel .a-Tabs-button:hover {
      opacity: 1;
      box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset, 0 1px 1px rgba(0, 0, 0, 0.05);
      -webkit-transform: translateX(0);
              transform: translateX(0); }
    .t-Region--carousel .a-Tabs-button:active, .t-Region--carousel .a-Tabs-button:active:focus {
      opacity: 1;
      box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset, 0 1px 1px rgba(0, 0, 0, 0.05) inset; }
    .t-Region--carousel .a-Tabs-button:focus {
      opacity: 1;
      box-shadow: 0 0 0 1px #4696FC;
      outline: none; }
  .t-Region--carousel .a-Tabs-next-region {
    right: 8px; }
  .t-Region--carousel .a-Tabs-previous-region {
    left: 8px; }
  .t-Region--carousel .a-Region-carouselNavItem {
    display: inline-block;
    margin: 0 4px; }
    .t-Region--carousel .a-Region-carouselNavItem.a-Tabs-selected .a-Region-carouselLink:focus {
      outline: none;
      box-shadow: 0 0 1px 1px #4696FC; }
  .t-Region--carousel .a-Region-carouselLink {
    display: block;
    width: 8px;
    height: 8px;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset;
    border-radius: 100%; }
  .t-Region--carousel .a-Region-carouselLabel {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px; }

.t-Region--showCarouselControls > .t-Region-bodyWrap > .t-Region-body > .t-Region-carouselRegions > .a-Region-carouselControl .a-Tabs-button {
  display: block; }

.js-showMaximizeButton.is-maximized {
  z-index: 500;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: 0; }

.t-Region.is-maximized .t-Report {
  overflow: visible; }
  .t-Region.is-maximized .t-Report .t-Report-wrap {
    float: none; }

.t-Region.is-maximized > .t-Region-bodyWrap > .t-Region-body {
  overflow: visible !important;
  height: auto !important; }

.t-Region.is-maximized > .t-Region-bodyWrap {
  position: absolute;
  overflow: auto;
  left: 0;
  right: 0;
  bottom: 0;
  top: 49px; }

.t-Region.is-maximized .a-Region-carouselControl .a-Tabs-button {
  position: fixed;
  z-index: 500; }

.js-regionIsMaximized .a-Menu,
.js-regionIsMaximized .ui-widget,
.js-regionIsMaximized .ui-dialog,
.js-regionIsMaximized .a-IRR-sortWidget,
.js-regionIsMaximized .ui-widget-overlay {
  visibility: visible; }

.js-regionIsMaximized {
  visibility: hidden; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlJlZ2lvbi5zY3NzIiwiLi4vbW9kdWxlcy9fY29tbW9uLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUM0T0g7O2dGQUVnRjtBQWNoRjs7Z0ZBRWdGO0FEM1BoRjs7Z0ZBRWdGO0FBRWhGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdDRztBQUVIOztnRkFFZ0Y7QUFFaEY7RUFDRSxlQUFlO0VBQ2YscUNBQXNCO0VDaU50QixnREFBK0IsRUQvTWhDOztBQUVEO2dGQUNnRjtBQUdoRjs7OztHQUlHO0FBRUg7RUFFSSxjQUFjLEVBQ2Y7O0FBR0g7RUFDRSxvQkFBb0IsRUFDckI7O0FBRUQ7Ozs7R0FJRztBQU1IOzs7O0dBSUc7QUFFSDtFQUNFLHdCQUF3QjtFQUN4Qiw0QkFBNEIsRUFPN0I7RUFURDtJQUlJLCtCQUErQixFQUNoQztFQUxIO0lBT0ksZUFBZSxFQUNoQjs7QUFHSDs7OztHQUlHO0FBRUg7RUFFSSxzQkFBc0I7RUFDdEIsdURBQXVELEVBSXhEO0VBUEg7SUFLTSxnQkFBZ0IsRUFDakI7O0FBR0w7RUFDRSxnQkFBZ0IsRUFDakI7O0FBRUQ7Ozs7O0dBS0c7QUFFSDtFQUlFLDRCQUE0QjtFQUM1QiwrQkFBK0I7RUFDL0IsNEJBQTRCO0VBQzVCLGlCQUFpQixFQUlsQjtFQVhEO0lBRUkseUJBQXlCLEVBQzFCO0VBSEg7SUFTSSxpQkFBaUIsRUFDbEI7O0FBR0g7Ozs7R0FJRztBQUNIO0VBQ0UsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIseUNBQXlDLEVBZ0IxQztFQXBCRDtJQU1JLGdCQUFnQjtJQUNoQixrQkFBa0I7SUFDbEIsb0JBQW9CO0lBQ3BCLGtCQUFrQixFQUduQjtFQVpIOztJQWVJLHlDQUF5QyxFQUMxQzs7QUFNSDs7R0FFRztBQUNIOztFQUtFLDRCQUE0QjtFQUM1QiwrQkFBK0I7RUFDL0IsNEJBQTRCO0VBRzVCLGlCQUFpQjtFQUlqQixrQ0FBa0MsRUFDbkM7RUFm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R0g7SUFnSEksc0JBQXNCO0lBQ3RCLGNBQWMsRUFPZjtJQXhISDtNQW9IUSxjQUFjO01BQ2QsZ0NBQWdDLEVBQ2pDO0VBdEhQO0lBMEhJLGVBQWU7SUFDZixXQUFXO0lBQ1gsWUFBWTtJQUNaLCtDQUEwQztJQUMxQyxvQkFBb0IsRUFDckI7RUEvSEg7SUN4V0UsVUFBVTtJQUNWLG9CQUFVO0lBQ1YsWUFBWTtJQUNaLGFBQWE7SUFDYixpQkFBaUI7SUFDakIsV0FBVztJQUNYLG1CQUFtQjtJQUNuQixXQUFXLEVEbWVWOztBQUdIO0VBRUksZUFBZSxFQUNoQjs7QUFFSDtFQUNFLGFBQWE7RUFDYixnQkFBZ0I7RUFDaEIsT0FBTztFQUNQLFFBQVE7RUFDUixTQUFTO0VBQ1QsVUFBVTtFQUNWLFVBQVUsRUFLWDs7QUFDRDtFQUVJLGtCQUFrQixFQUluQjtFQU5IO0lBSU0sWUFBWSxFQUNiOztBQUxMO0VBUUksNkJBQTZCO0VBQzdCLHdCQUF3QixFQUN6Qjs7QUFWSDtFQVlJLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsUUFBUTtFQUNSLFNBQVM7RUFDVCxVQUFVO0VBQ1YsVUFBVSxFQUNYOztBQWxCSDtFQXNCSSxnQkFBZ0I7RUFDaEIsYUFBYSxFQUNkOztBQUdIOzs7OztFQUtFLG9CQUFvQixFQUNyQjs7QUFDRDtFQUNFLG1CQUFtQixFQUNwQiIsImZpbGUiOiJSZWdpb24uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJbXBvcnQgQ29tcGFzc1xuICovXG5AaW1wb3J0IFwiLi4vbW9kdWxlcy9jb21tb25cIjtcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFJlZ2lvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVnaW9uIENvbXBvbmVudFxuICpcbiAqIFRoaXMgaXMgYSByZWdpb24gY29tcG9uZW50IHdoaWNoIHByb3ZpZGVzIGEgY29udGFpbmVyIHRvIHBsYWNlIG90aGVyIGNvbXBvbmVudHMgaW4uXG4gKiBVc2luZyBhIHJlZ2lvbiB3aWxsIHByb3ZpZGUgeW91IHdpdGggYSBoZWFkZXIgYW5kIGJvZHkgd2hpY2ggeW91IGNhbiBzdHlsZSBhbmRcbiAqIHVzZSB3aXRoaW4geW91ciBVSS5cbiAqXG4gKiBFeGFtcGxlIEhUTUw6XG4gKlxuICogPGRpdiBjbGFzcz1cInQtUmVnaW9uIFttb2RpZmllcnNdXCI+XG4gKiAgPGRpdiBjbGFzcz1cInQtUmVnaW9uLWhlYWRlclwiPlxuICogICAgPGgyIGNsYXNzPVwidC1SZWdpb24tdGl0bGVcIj5SZWdpb24gVGl0bGU8L2gyPlxuICogIDwvZGl2PlxuICogIDxkaXYgY2xhc3M9XCJ0LVJlZ2lvbi1ib2R5XCI+XG4gKiAgICBCb2R5XG4gKiAgPC9kaXY+XG4gKiA8L2Rpdj5cbiAqXG4gKiA8ZGl2IGNsYXNzPVwidC1SZWdpb24gW21vZGlmaWVyc11cIj5cbiAqICA8ZGl2IGNsYXNzPVwidC1SZWdpb24taGVhZGVyXCI+XG4gKiAgICA8ZGl2IGNsYXNzPVwidC1SZWdpb24taGVhZGVySXRlbXMgdC1SZWdpb24taGVhZGVySXRlbXMtLWxlZnRcIj5cbiAqICAgICAgPGgyIGNsYXNzPVwidC1SZWdpb24tdGl0bGVcIj5SZWdpb24gVGl0bGU8L2gyPlxuICogICAgPC9kaXY+XG4gKiAgICA8ZGl2IGNsYXNzPVwidC1SZWdpb24taGVhZGVySXRlbXMgdC1SZWdpb24taGVhZGVySXRlbXMtLXJpZ2h0XCI+XG4gKiAgICAgIFtPcHRpb25hbCBCdXR0b25zXVxuICogICAgPC9kaXY+XG4gKiAgPC9kaXY+XG4gKiAgPGRpdiBjbGFzcz1cInQtUmVnaW9uLWJvZHlcIj5cbiAqICAgIEJvZHlcbiAqICA8L2Rpdj5cbiAqIDwvZGl2PlxuICpcbiAqL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUmVnaW9uXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udC1SZWdpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLDAsMCwuMSk7XG4gIEBpbmNsdWRlIHV0LWJsb2NrLXNoYWRvdygpO1xufVxuXG4vKiBTdWItc2VjdGlvbiBjb21tZW50IGJsb2NrXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5cbi8qKlxuICogTW9kaWZpZXI6IFBhZGRlZCBSZWdpb25cbiAqXG4gKiBUaGlzIGFwcGxpZXMgYSAxNnB4IHBhZGRpbmcgdG8gdGhlIHJlZ2lvbiBib2R5XG4gKi9cblxuLnQtUmVnaW9uIHtcbiAgLnQtUmVnaW9uLWJvZHkge1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gIH1cbn1cblxuLnQtUmVnaW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cblxuLyoqXG4gKiBNb2RpZmllcjogVHJhbnNwYXJlbnQgQmFja2dyb3VuZFxuICpcbiAqIFRoaXMgcmVtb3ZlcyB0aGUgYmFja2dyb3VuZCBmcm9tIHRoZSByZWdpb25cbiAqL1xuXG4udC1SZWdpb24tLW5vQkcge1xuXG59XG5cbi8qKlxuICogTW9kaWZpZXI6IE5vIEJvcmRlclxuICpcbiAqIFJlbW92ZSBib3JkZXJzIGFuZCBzaGFkb3dzIGZyb20gdGhlIHJlZ2lvbi5cbiAqL1xuXG4udC1SZWdpb24tLW5vQm9yZGVyIHtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgJiA+IC50LVJlZ2lvbi1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAmID4gLnQtUmVnaW9uLWJvZHlXcmFwID4gLnQtUmVnaW9uLWJvZHkge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG59XG5cbi8qKlxuICogTW9kaWZpZXI6IE5vIFBhZGRpbmdcbiAqXG4gKiBSZW1vdmUgYm9yZGVycyBhbmQgc2hhZG93cyBmcm9tIHRoZSByZWdpb24uXG4gKi9cblxuLnQtUmVnaW9uLS1ub1BhZGRpbmcge1xuICAmID4gLnQtUmVnaW9uLWJvZHlXcmFwID4gLnQtUmVnaW9uLWJvZHkge1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAvKiBXaGVuIHJlZ2lvbiBoYXMgbm8gUGFkZGluZywgcmVtb3ZlIGJvcmRlcnMgb24gSVJSICovXG4gICAgJiA+IC5hLUlSUi1jb250YWluZXIgLmEtSVJSIHtcbiAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICB9XG4gIH1cbn1cbi50LVJlZ2lvbi0tbm9QYWRkaW5nID4gLnQtUmVnaW9uLWJvZHlXcmFwID4gLnQtUmVnaW9uLWJvZHkgPiAudC1NZWRpYUxpc3Qge1xuICBib3JkZXItd2lkdGg6IDA7XG59XG5cbi8qKlxuICogTW9kaWZpZXI6IFN0YWNrZWQgUmVnaW9uc1xuICpcbiAqIFJlbW92ZSBzaWRlIGJvcmRlcnMgYW5kIHNoYWRvd3MuICBUaGlzIGlzIHVzZWZ1bCBmb3IgYWNjb3JkaW9ucyxcbiAqIGFuZCByZWdpb25zIHRoYXQgY2FuIGJlIGdyb3VwZWQgdG9nZWh0ZXIgaW50byBzdGFja3MuXG4gKi9cblxuLnQtUmVnaW9uLS1zdGFja2VkIHtcbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcDogMCAhaW1wb3J0YW50O1xuICB9XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXdpZHRoOiAxcHggMCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gICYgKyAudC1SZWdpb24tLXN0YWNrZWQge1xuICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gIH1cbn1cblxuLyoqXG4gKiBNb2RpZmllcjogVGV4dCBDb250ZW50IFJlZ2lvbnNcbiAqXG4gKiBUaGlzIHJlZ2lvbiBzdHlsZSBpcyB1c2VkIGZvciBkaXNwbGF5aW5nIHRleHQgY29udGVudC5cbiAqL1xuLnQtUmVnaW9uLS10ZXh0Q29udGVudCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci13aWR0aDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgJiA+IC50LVJlZ2lvbi1oZWFkZXIge1xuICAgIGJvcmRlci13aWR0aDogMDtcbiAgICBmb250LXNpemU6IDIuMHJlbTtcbiAgICBsaW5lLWhlaWdodDogMi40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIC50LVJlZ2lvbi1oZWFkZXJJdGVtcy0tdGl0bGUge1xuICAgIH1cbiAgfVxuICAmID4gLnQtUmVnaW9uLWhlYWRlcixcbiAgJiA+IC50LVJlZ2lvbi1ib2R5V3JhcCA+IC50LVJlZ2lvbi1ib2R5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICB9XG4gICYsXG4gICYgPiAudC1SZWdpb24taGVhZGVyIHtcbiAgfVxufVxuXG4vKipcbiAqIFNpZGUgQ29sdW1uIFJlZ2lvbnNcbiAqL1xuLnQtQm9keS1zaWRlIC50LVJlZ2lvbixcbi50LUJvZHktYWN0aW9ucyAudC1SZWdpb24ge1xuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItd2lkdGg6IDFweCAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgJiA+IC50LVJlZ2lvbi1oZWFkZXIge1xuICB9XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gICYgKyAudC1SZWdpb24ge1xuICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gIH1cbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMCAhaW1wb3J0YW50O1xufVxuLnQtQm9keS1zaWRlIC50LVJlZ2lvbiB7XG4gIC50LVJlZ2lvbi1idXR0b25zLWxlZnQge1xuICAgIHBhZGRpbmctbGVmdDogMS42cmVtO1xuICB9XG4gIC50LVJlZ2lvbi1idXR0b25zLXJpZ2h0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjZyZW07XG4gIH1cbn1cbi50LUJvZHktYWN0aW9ucyAudC1SZWdpb24ge1xuICAmID4gLnQtUmVnaW9uLWhlYWRlciB7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgfVxufVxuXG4vKipcbiAqIE1vZGlmaWVyOiBIaWRlIEhlYWRlclxuICpcbiAqIEhpZGVzIHJlZ2lvbiBoZWFkZXIgKEFjY2Vzc2libGUpXG4gKi9cblxuLnQtUmVnaW9uLS1oaWRlSGVhZGVyIHtcbiAgJiA+IC50LVJlZ2lvbi1oZWFkZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gIH1cbn1cblxuLyoqXG4gKiBNb2RpZmllcjogUmVtb3ZlIEhlYWRlclxuICpcbiAqIFJlbW92ZXMgcmVnaW9uIGhlYWRlciAoTm90IEFjY2VzaWJsZSlcbiAqL1xuXG4udC1SZWdpb24tLXJlbW92ZUhlYWRlciB7XG4gICYgPiAudC1SZWdpb24taGVhZGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8qKlxuICogTW9kaWZpZXI6IE5vIFVJXG4gKlxuICogUmVtb3ZlIGJvcmRlcnMgYW5kIHNoYWRvd3MgZnJvbSB0aGUgcmVnaW9uLlxuICovXG5cbi50LVJlZ2lvbi0tbm9VSSxcbi50LVJlZ2lvbi0tbm9VSSA+IC50LVJlZ2lvbi1oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci13aWR0aDogMDtcbn1cbi50LVJlZ2lvbi0tbm9VSSB7XG4gICYgPiAudC1SZWdpb24tYm9keVdyYXAgPiAudC1SZWdpb24tYm9keSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIH1cbiAgJiA+IC50LVJlZ2lvbi1oZWFkZXIgLnQtUmVnaW9uLWhlYWRlckl0ZW1zLS10aXRsZSB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cblxuLyogUmVnaW9uIEhlYWRlclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi50LVJlZ2lvbi1oZWFkZXIge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsMCwwLC4wNzUpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICB0YWJsZS1sYXlvdXQ6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuXG4gIC8vIHBhZGRpbmc6IDEuMnJlbTtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjZyZW07XG59XG5cbi8vIEhlYWRpbmcgVGV4dFxuLnQtUmVnaW9uLXRpdGxlIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG59XG5cblxuLy8gUmVnaW9uIEhlYWRlciBJdGVtc1xuLnQtUmVnaW9uLWhlYWRlckl0ZW1zIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi50LVJlZ2lvbi1oZWFkZXJJdGVtcy0tY29udHJvbHMge1xuICAvLyB0ZXh0LWFsaWduOiBsZWZ0O1xuICB3aWR0aDogMSU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHBhZGRpbmctbGVmdDogLjhyZW07XG4gIEBpbmNsdWRlIHRleHQtYWxpZ24tbGVmdC1kaXJlY3Rpb24oKTtcbiAgLnUtUlRMICYge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuOHJlbTtcbiAgfVxufVxuLnQtUmVnaW9uLWhlYWRlckl0ZW1zLS10aXRsZSB7XG4gIEBpbmNsdWRlIHRleHQtYWxpZ24tbGVmdC1kaXJlY3Rpb24oKTtcbiAgcGFkZGluZzogMS42cmVtIDEuMnJlbTtcbn1cbi50LVJlZ2lvbi1oZWFkZXJJdGVtcy0tYnV0dG9ucyB7XG4gICAgQGluY2x1ZGUgdGV4dC1hbGlnbi1yaWdodC1kaXJlY3Rpb24oKTtcbn1cblxuXG4vLyBCb2R5XG4udC1SZWdpb24tYm9keSB7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBsaW5lLWhlaWdodDogMi4wcmVtO1xuICBvdmVyZmxvdzogYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAmID4gLmNvbnRhaW5lciB7XG4gICAgLyogaGlkZSBob3Jpem9udGFsIHNjcm9sbGJhcnMgZHVlIHRvIHVwZGF0ZWQgZ3JpZCBzZXR0aW5ncyAqL1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbn1cbi50LVJlZ2lvbi1ib2R5LS1ub0JvcmRlciB7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vLyBSZWdpb24gQm9keSBCdXR0b25zXG4udC1SZWdpb24tYnV0dG9ucyB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4udC1SZWdpb24tYnV0dG9ucy0tdG9wIHtcbn1cbi50LVJlZ2lvbi1idXR0b25zLS1ib3R0b20ge1xufVxuLnQtUmVnaW9uLWJ1dHRvbnMtbGVmdCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLnQtUmVnaW9uLWJ1dHRvbnMtcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi50LVJlZ2lvbi1idXR0b25zLWxlZnQsXG4udC1SZWdpb24tYnV0dG9ucy1yaWdodCB7XG4gIHBhZGRpbmc6IC44cmVtIDEuMXJlbTtcbiAgJjplbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vL1xuLy8gSGlkZGVuIE92ZXJmbG93XG4vL1xuLnQtUmVnaW9uLS1oaWRkZW5PdmVyZmxvdyB7XG4gICYgPiAudC1SZWdpb24tYm9keVdyYXAgPiAudC1SZWdpb24tYm9keSxcbiAgJiA+IC50LVJlZ2lvbi1ib2R5IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG59XG5cbi8vXG4vLyBIaWRlIFNob3cgUmVnaW9uXG4vL1xuLnQtUmVnaW9uLS1oaWRlU2hvdyB7XG4gICYgPiAudC1SZWdpb24taGVhZGVyIC50LVJlZ2lvbi1oZWFkZXJJY29uIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzO1xuICAgICY6YmVmb3JlIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMXB4O1xuICAgIH1cbiAgfVxuICAmID4gLnQtUmVnaW9uLWhlYWRlciAudC1SZWdpb24taGVhZGVySWNvbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlMDE2XCI7XG4gIH1cbiAgJi5pcy1leHBhbmRlZCB7XG4gICAgJiA+IC50LVJlZ2lvbi1ib2R5V3JhcCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gICAgJiA+IC50LVJlZ2lvbi1oZWFkZXIgLnQtQnV0dG9uLS1oaWRlU2hvdzpob3ZlciB7XG4gICAgICAudC1SZWdpb24taGVhZGVySWNvbiB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgfVxuICAgIH1cbiAgICAmID4gLnQtUmVnaW9uLWhlYWRlciAudC1SZWdpb24taGVhZGVySWNvbiB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgfVxuICB9XG4gICYuaXMtY29sbGFwc2VkIHtcbiAgICAmID4gLnQtUmVnaW9uLWJvZHlXcmFwIHtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICAgICYgPiAudC1SZWdpb24taGVhZGVyIC50LUJ1dHRvbi0taGlkZVNob3c6aG92ZXIge1xuICAgICAgLnQtUmVnaW9uLWhlYWRlckljb24ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICYgPiAudC1SZWdpb24taGVhZGVyIC50LVJlZ2lvbi1oZWFkZXJJdGVtcy0tdGl0bGUge1xuICAgIHBhZGRpbmctbGVmdDogLjRyZW07XG4gIH1cbn1cblxuLy9cbi8vIFNjcm9sbGluZyBSZWdpb25cbi8vXG4udC1SZWdpb24tLXNjcm9sbEJvZHkge1xuICAvLyBSZW1vdmluZyB0aGVzZSBzdHlsZXMgYXMgdGhleSBjb25mbGljdGVkIHdpdGggSUUxMSBhbmQgbWF4aW1pemUgZnVuY3Rpb25hbGl0eVxuICAvLyBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8vIG92ZXJmbG93OiBoaWRkZW47XG4gICYgPiAudC1SZWdpb24tYm9keVdyYXAgPiAudC1SZWdpb24tYm9keSB7XG4gICAgLy8gYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xuICAgIC8vIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMnB4LCAxMDAlIDEycHgsIDEwMCUgNnB4LCAxMDAlIDZweCAhaW1wb3J0YW50O1xuICAgIC8vIGJhY2tncm91bmQtYXR0YWNobWVudDogbG9jYWwsIGxvY2FsLCBzY3JvbGwsIHNjcm9sbCAhaW1wb3J0YW50OyBcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIH1cbn1cblxuLy8gU2hhZG93IFNjcm9sbGluZ1xuLnQtUmVnaW9uLS1zaGFkb3dTY3JvbGwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4udC1SZWdpb24tLXNoYWRvd1Njcm9sbCA+IC50LVJlZ2lvbi1ib2R5V3JhcCA+IC50LVJlZ2lvbi1ib2R5IHtcbiAgLy8gYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xuICAvLyBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTJweCwgMTAwJSAxMnB4LCAxMDAlIDZweCwgMTAwJSA2cHggIWltcG9ydGFudDtcbiAgLy8gYmFja2dyb3VuZC1hdHRhY2htZW50OiBsb2NhbCwgbG9jYWwsIHNjcm9sbCwgc2Nyb2xsICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi8qIEFjdGlvbiBSZWdpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnQtQm9keS1hY3Rpb25zIHtcbiAgLnQtUmVnaW9uIHtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgfVxuICAudC1SZWdpb24tLXNjcm9sbEJvZHkgPiAudC1SZWdpb24tYm9keVdyYXAgPiAudC1SZWdpb24tYm9keSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAudC1SZWdpb24taGVhZGVyIHtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40cmVtO1xuICB9XG4gIC50LVJlZ2lvbiAudC1SZWdpb24tYm9keSB7XG4gICAgcGFkZGluZzogMCAxMnB4IDEycHggMTJweDtcbiAgfVxufVxuXG4vL1xuLy8gUmVnaW9ucyBmcm9tIFRoZW1lXG4vL1xuLnQtUmVnaW9uIHtcbn1cbi50LUJvZHktc2lkZSB7XG59XG5cbi50LVJlZ2lvbi1oZWFkZXIge1xufVxuXG4udC1SZWdpb24tdGl0bGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMDtcbn1cbi50LVJlZ2lvbi10aXRsZSB7XG4gIC8vIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuLnQtUmVnaW9uLXRpdGxlLS13aXRoQmFkZ2Uge1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4udC1SZWdpb24tLW5vQkcge1xufVxuXG4udC1Cb2R5LWFjdGlvbnMge1xuICAudC1SZWdpb24ge1xuICB9XG59XG5cblxuLyogQ2Fyb3VzZWwgUmVnaW9uXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udC1SZWdpb24tLWNhcm91c2VsIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLnQtUmVnaW9uLWJvZHkge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAuYS1SZWdpb24tY2Fyb3VzZWxOYXZJdGVtIHtcbiAgfVxuICAuYS1SZWdpb24tY2Fyb3VzZWxOYXZJdGVtIGEge1xuICB9XG4gIC5hLVJlZ2lvbi1jYXJvdXNlbE5hdiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDExMDtcbiAgICBtYXJnaW46IDhweCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuYS1SZWdpb24tY2Fyb3VzZWxJdGVtcyB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICAvLyBoZWlnaHQ6IDQwMHB4O1xuICB9XG4gIC5hLVJlZ2lvbi1jYXJvdXNlbEl0ZW0ge1xuICAvLyBoZWlnaHQ6IDQwMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9wYWNpdHk6IDA7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIH1cbiAgLmEtUmVnaW9uLWNhcm91c2VsSXRlbSB7XG4gIHRyYW5zaXRpb246IGFsbCAuNXMgZWFzZTtcbiAgfVxuICAuYS1SZWdpb24tY2Fyb3VzZWxJdGVtLmEtVGFicy1lbGVtZW50LXNlbGVjdGVkIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHotaW5kZXg6IDEwO1xuICB9XG5cbiAgJi50LVJlZ2lvbi0tY2Fyb3VzZWxTbGlkZSA+IC50LVJlZ2lvbi1ib2R5V3JhcCAuYS1SZWdpb24tY2Fyb3VzZWxJdGVtLmEtVGFicy1iZWZvcmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIH1cbiAgJi50LVJlZ2lvbi0tY2Fyb3VzZWxTbGlkZSA+IC50LVJlZ2lvbi1ib2R5V3JhcCAuYS1SZWdpb24tY2Fyb3VzZWxJdGVtLmEtVGFicy1hZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICB9XG4gICYudC1SZWdpb24tLWNhcm91c2VsU2xpZGUgPiAudC1SZWdpb24tYm9keVdyYXAgLmEtUmVnaW9uLWNhcm91c2VsSXRlbS5hLVRhYnMtZWxlbWVudC1zZWxlY3RlZCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG5cbiAgJi50LVJlZ2lvbi0tY2Fyb3VzZWxTcGluID4gLnQtUmVnaW9uLWJvZHlXcmFwIC5hLVJlZ2lvbi1jYXJvdXNlbEl0ZW0uYS1UYWJzLWJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDkwZGVnKTtcbiAgfVxuICAmLnQtUmVnaW9uLS1jYXJvdXNlbFNwaW4gPiAudC1SZWdpb24tYm9keVdyYXAgLmEtUmVnaW9uLWNhcm91c2VsSXRlbS5hLVRhYnMtYWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogcm90YXRlWSgtOTBkZWcpO1xuICB9XG4gICYudC1SZWdpb24tLWNhcm91c2VsU3BpbiA+IC50LVJlZ2lvbi1ib2R5V3JhcCAuYS1SZWdpb24tY2Fyb3VzZWxJdGVtLmEtVGFicy1lbGVtZW50LXNlbGVjdGVkIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoMCk7XG4gIH1cblxuICAuYS1UYWJzLWJ1dHRvbiB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogNjRweDtcbiAgICBwYWRkaW5nOiAxNnB4IDRweDtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMCwwLDAsLjEpIGluc2V0O1xuICAgIG1hcmdpbi10b3A6IC0zMnB4O1xuICAgIHotaW5kZXg6IDEwMDtcbiAgICBvcGFjaXR5OiAuNTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2U7XG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMCwwLDAsLjEpIGluc2V0LCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDUpO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIH1cbiAgICAmOmFjdGl2ZSxcbiAgICAmOmFjdGl2ZTpmb2N1cyB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMCwwLDAsLjEpIGluc2V0LCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDUpIGluc2V0O1xuICAgIH1cbiAgICAmOmZvY3VzIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggIzQ2OTZGQztcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG4gIC5hLVRhYnMtbmV4dC1yZWdpb257XG4gICAgLy8gcmlnaHQ6IC0xcHg7XG4gICAgLy8gYm9yZGVyLXJhZGl1czogMnB4IDAgMCAycHg7XG4gICAgLy8gdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE2cHgpO1xuICAgIHJpZ2h0OiA4cHg7XG4gIH1cbiAgLmEtVGFicy1wcmV2aW91cy1yZWdpb257XG4gICAgLy8gbGVmdDogLTFweDtcbiAgICAvLyBib3JkZXItcmFkaXVzOiAwIDJweCAycHggMDtcbiAgICAvLyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTE2cHgpO1xuICAgIGxlZnQ6IDhweDtcbiAgfVxuICAuYS1SZWdpb24tY2Fyb3VzZWxDb250cm9sIHtcbiAgICAvLyBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgLmEtUmVnaW9uLWNhcm91c2VsTmF2SXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMCA0cHg7XG4gICAgJi5hLVRhYnMtc2VsZWN0ZWQgLmEtUmVnaW9uLWNhcm91c2VsTGluayB7XG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDFweCAxcHggIzQ2OTZGQztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmEtUmVnaW9uLWNhcm91c2VsTGluayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgwLDAsMCwuMSkgaW5zZXQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgfVxuICAuYS1SZWdpb24tY2Fyb3VzZWxMYWJlbCB7XG4gICAgQGluY2x1ZGUgdmlzdWFsbHlIaWRkZW47XG4gIH1cbn1cblxuLnQtUmVnaW9uLS1zaG93Q2Fyb3VzZWxDb250cm9scyB7XG4gICYgPiAudC1SZWdpb24tYm9keVdyYXAgPiAudC1SZWdpb24tYm9keSA+IC50LVJlZ2lvbi1jYXJvdXNlbFJlZ2lvbnMgPiAuYS1SZWdpb24tY2Fyb3VzZWxDb250cm9sIC5hLVRhYnMtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLmpzLXNob3dNYXhpbWl6ZUJ1dHRvbi5pcy1tYXhpbWl6ZWQge1xuICB6LWluZGV4OiA1MDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IDA7XG4gIC8vICYudC1SZWdpb24tLXNjcm9sbEJvZHkge1xuICAvLyAgIC8qIEZpeCBJRSBpc3N1ZSB3aGVyZSBtYXhpbWl6ZWQgcmVnaW9ucyBkbyBub3QgZmlsbCB0aGUgd2luZG93ICovXG4gIC8vICAgb3ZlcmZsb3c6IGF1dG87XG4gIC8vIH1cbn1cbi50LVJlZ2lvbi5pcy1tYXhpbWl6ZWQge1xuICAudC1SZXBvcnQge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIC50LVJlcG9ydC13cmFwIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgIH1cbiAgfVxuICAmID4gLnQtUmVnaW9uLWJvZHlXcmFwID4gLnQtUmVnaW9uLWJvZHkge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgJiA+IC50LVJlZ2lvbi1ib2R5V3JhcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHRvcDogNDlweDtcbiAgfVxuXG4gIC8vIENhcm91c2VsIFJlZ2lvbiBDb250cm9sc1xuICAuYS1SZWdpb24tY2Fyb3VzZWxDb250cm9sIC5hLVRhYnMtYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogNTAwO1xuICB9XG59XG5cbi5qcy1yZWdpb25Jc01heGltaXplZCAuYS1NZW51LFxuLmpzLXJlZ2lvbklzTWF4aW1pemVkIC51aS13aWRnZXQsXG4uanMtcmVnaW9uSXNNYXhpbWl6ZWQgLnVpLWRpYWxvZyxcbi5qcy1yZWdpb25Jc01heGltaXplZCAuYS1JUlItc29ydFdpZGdldCxcbi5qcy1yZWdpb25Jc01heGltaXplZCAudWktd2lkZ2V0LW92ZXJsYXkge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLmpzLXJlZ2lvbklzTWF4aW1pemVkIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufSIsIkBpbXBvcnQgJ3Njc3NfZnVuY3Rpb25zJztcblxuQG1peGluIGNsZWFyZml4IHtcbiAgJjpiZWZvcmUsXG4gICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxuXG4gICY6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gIH1cbiAgLy8gKnpvb206IDE7XG59XG5cblxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBNZWRpYSBRdWVyaWVzXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vU1RBUlRfVEhFTUVST0xMRVJfSUdOT1JFXG4kZGlzcGxheS14eHM6IDQ4MHB4O1xuJGRpc3BsYXkteHNzOiA2NDBweDtcbiRkaXNwbGF5LXhzOiA3NjhweDtcbiRkaXNwbGF5LXNtYWxsOiA5OTJweDtcbiRkaXNwbGF5LW1lZGl1bTogMTIwMHB4O1xuJGRpc3BsYXktbGFyZ2U6IDE5MjBweDtcblxuQG1peGluIHJlc3BvbmQtdG8oJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0geHhzLXNjcmVlbnMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGRpc3BsYXkteHhzKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSB4c3Mtc2NyZWVucyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkZGlzcGxheS14c3MpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IHhzLXNjcmVlbnMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGRpc3BsYXkteHMpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuXG4gIEBpZiAkbWVkaWEgPT0geHMtdG8teHNzLXNjcmVlbnMge1xuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRkaXNwbGF5LXhzcyArIDEpIGFuZCAobWF4LXdpZHRoOiAkZGlzcGxheS14cyAtIDEpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuXG4gIEBpZiAkbWVkaWEgPT0gc21hbGwtc2NyZWVucy1pbiB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkZGlzcGxheS1zbWFsbCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbWVkaXVtLXNjcmVlbnMtaW4ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGRpc3BsYXktbWVkaXVtKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsYXJnZS1zY3JlZW5zLWluIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRkaXNwbGF5LWxhcmdlKSB7IEBjb250ZW50OyB9XG4gIH1cblxuXG4gIEBpZiAkbWVkaWEgPT0geHNzLXNtYWxsLXNjcmVlbnMtb3V0IHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRkaXNwbGF5LXhzcyArIDEpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IHhzLXNtYWxsLXNjcmVlbnMtb3V0IHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRkaXNwbGF5LXhzICsgMSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gc21hbGwtc2NyZWVucy1vdXQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGRpc3BsYXktc21hbGwgKyAxKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBtZWRpdW0tc2NyZWVucy1vdXQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGRpc3BsYXktbWVkaXVtICsgMSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGFyZ2Utc2NyZWVucy1vdXQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGRpc3BsYXktbGFyZ2UgKyAxKSB7IEBjb250ZW50OyB9XG4gIH1cblxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc21hbGwtc2NyZWVucyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkZGlzcGxheS14cyArIDEpIGFuZCAobWF4LXdpZHRoOiAkZGlzcGxheS1zbWFsbCAtIDEpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWVkaXVtLXNjcmVlbnMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGRpc3BsYXktc21hbGwgKyAxKSBhbmQgKG1heC13aWR0aDogJGRpc3BsYXktbWVkaXVtIC0gMSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBsYXJnZS1zY3JlZW5zIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRkaXNwbGF5LW1lZGl1bSArIDEpIGFuZCAobWF4LXdpZHRoOiAkZGlzcGxheS1sYXJnZSAtIDEpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuXG4gIEBlbHNlIGlmICRtZWRpYSA9PSBsYXJnZXN0LXNjcmVlbnMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGRpc3BsYXktbGFyZ2UpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuLy9FTkRfVEhFTUVST0xMRVJfSUdOT1JFXG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gRm9udCBBd2Vzb21lIEVtYmVkZGluZ1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbkBtaXhpbiBhcGV4NWljb24ge1xuICBmb250LWZhbWlseTogXCJhcGV4LTUtaWNvbi1mb250XCIgIWltcG9ydGFudDtcbiAgZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWwgIWltcG9ydGFudDtcbiAgZm9udC12YXJpYW50OiBub3JtYWwgIWltcG9ydGFudDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgc3BlYWs6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xufVxuXG5AbWl4aW4gYXBleDVpY29uLWJhc2ljIHtcbiAgZm9udC1mYW1pbHk6IFwiYXBleC01LWljb24tZm9udFwiICFpbXBvcnRhbnQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIHNwZWFrOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbkBtaXhpbiB2aXN1YWxseUhpZGRlbiB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xufVxuXG5AbWl4aW4gdmVydGljYWwtYWxpZ24gIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG5AbWl4aW4gZm9jdXNhYmxlVmlzdWFsbHlIaWRkZW4ge1xuICBAaW5jbHVkZSB2aXN1YWxseUhpZGRlbjtcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGNsaXA6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbkBtaXhpbiB0cmFuc2xhdGUzZC1sZXNzKCR4LCAkeTogMCwgJHo6IDApIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogICAgICAgdHJhbnNsYXRlM2QoJHgsICR5LCAkeik7XG4gICAgLW1zLXRyYW5zZm9ybTogXHRcdCB0cmFuc2xhdGUoJHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoJHgsICR5LCAkeik7XG59XG5cbkBtaXhpbiBhcGV4LWRpcmVjdGlvbi1sZWZ0KCR2YWwpIHtcbiAgbGVmdDogJHZhbDtcbiAgLnUtUlRMICYge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6ICR2YWw7XG4gIH1cbn1cblxuQG1peGluIGFwZXgtZGlyZWN0aW9uLW1hcmdpbi1sZWZ0KCR2YWwpIHtcbiAgbWFyZ2luLWxlZnQ6ICR2YWw7XG4gIC51LVJUTCAmIHtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIG1hcmdpbi1yaWdodDogJHZhbDtcbiAgfVxufVxuXG5AbWl4aW4gYXBleC1kaXJlY3Rpb24tcGFkZGluZy1sZWZ0KCR2YWwpIHtcbiAgcGFkZGluZy1sZWZ0OiAkdmFsO1xuICAudS1SVEwgJiB7XG4gICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgcGFkZGluZy1yaWdodDogJHZhbDtcbiAgfVxufVxuXG5AbWl4aW4gYXBleC1kaXJlY3Rpb24tcmlnaHQoJHZhbCkge1xuICByaWdodDogJHZhbDtcbiAgLnUtUlRMICYge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6ICR2YWw7XG4gIH1cbn1cblxuQG1peGluIGFwZXgtZGlyZWN0aW9uLW1hcmdpbi1yaWdodCgkdmFsKSB7XG4gIG1hcmdpbi1yaWdodDogJHZhbDtcbiAgLnUtUlRMICYge1xuICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAkdmFsO1xuICB9XG59XG5cbkBtaXhpbiBhcGV4LWRpcmVjdGlvbi1wYWRkaW5nLXJpZ2h0KCR2YWwpIHtcbiAgcGFkZGluZy1yaWdodDogJHZhbDtcbiAgLnUtUlRMICYge1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcbiAgICBwYWRkaW5nLWxlZnQ6ICR2YWw7XG4gIH1cbn1cblxuQG1peGluIGFwZXgtZGlyZWN0aW9uLWZsb2F0LWVuZCB7XG4gIGZsb2F0OiByaWdodDtcbiAgLnUtUlRMICYge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG5cbkBtaXhpbiBhcGV4LWRpcmVjdGlvbi1mbG9hdC1zdGFydCB7XG4gIGZsb2F0OiBsZWZ0O1xuICAudS1SVEwgJiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG59XG5cblxuXG5AbWl4aW4gYXBleC1kaXJlY3Rpb24tdHJhbnNsYXRlKCR2YWwpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZC1sZXNzKCR2YWwsIDAsIDApO1xuICAgIC51LVJUTCAmIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QtbGVzcygtJHZhbCwgMCwwICk7XG4gICAgfVxufVxuXG5AbWl4aW4gdGV4dC1hbGlnbi1sZWZ0LWRpcmVjdGlvbigpIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgLnUtUlRMICYge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG59XG5cblxuQG1peGluIHRleHQtYWxpZ24tcmlnaHQtZGlyZWN0aW9uKCkge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgLnUtUlRMICYge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEljb24gTGlicmFyeSBNaXhpblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBtaXhpbiBpY29uLWxpYigkbGlicmFyeSkge1xuICBAaWYgJGxpYnJhcnkgPT0gYXdlc29tZSB7XG4gICAgLmFwZXgtaWNvbnMtZm9udGF3ZXNvbWUgJiB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gXG4gIEBlbHNlIGlmICRsaWJyYXJ5ID09IGFwZXgge1xuICAgIC5hcGV4LWljb25zLWZvbnRhcGV4ICYge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBTaGFkb3dzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1peGluIHV0LWJsb2NrLXNoYWRvdygpIHtcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG59Il0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */
