/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#input-compare {
  height: 100%;
  width: 100%;
}
#input-compare #collection.table thead tr > th:first-child {
  z-index: 11;
}
#input-compare #collection.table tbody #collection-item,
#input-compare #collection.cards tbody #collection-item {
  background: #F4F8FC;
  margin: 5px;
  padding: 0;
  border: 0;
  min-width: 20rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  max-width: 25rem;
}
#input-compare #collection.table tbody #collection-item #cell-content,
#input-compare #collection.cards tbody #collection-item #cell-content {
  align-items: initial;
  position: relative;
}
#input-compare #collection.table tbody #collection-item #cell-content .input-compare__property-value svg,
#input-compare #collection.cards tbody #collection-item #cell-content .input-compare__property-value svg {
  position: absolute;
  right: 5px;
  top: 5px;
}
#input-compare #collection.table tbody #collection-item #cell-content .input-compare__property-value.source-state-unique,
#input-compare #collection.cards tbody #collection-item #cell-content .input-compare__property-value.source-state-unique {
  background-color: #E4FDF1;
}
#input-compare #collection.table tbody #collection-item #cell-content .input-compare__property-value.source-state-arbitrary,
#input-compare #collection.cards tbody #collection-item #cell-content .input-compare__property-value.source-state-arbitrary {
  background-color: #FDF5E0;
}
#input-compare #collection.table tbody #collection-item #cell-content .input-compare__property-value.source-state-candidate,
#input-compare #collection.cards tbody #collection-item #cell-content .input-compare__property-value.source-state-candidate {
  background-color: #DFF4FE;
}
#input-compare #collection.table tbody #collection-item #cell-content .input-compare__property-value #detailed-header__value,
#input-compare #collection.cards tbody #collection-item #cell-content .input-compare__property-value #detailed-header__value {
  text-transform: none;
}
#input-compare #collection.table tbody #collection-item #cell-content .input-compare__property-value #detailed-header__top-detail,
#input-compare #collection.cards tbody #collection-item #cell-content .input-compare__property-value #detailed-header__top-detail {
  text-transform: none;
}
#input-compare.vertical #input-compare__source-header {
  background-color: #4b6987;
  min-width: 15rem;
}
#input-compare.vertical #input-compare__source-header #source {
  padding-bottom: 0;
}
#input-compare.vertical #input-compare__merged-record {
  background: #0f2d4c;
  border-left: 0.5rem solid #0b9bdc;
  padding: 1rem;
  position: relative;
  min-width: 15rem;
}
#input-compare.vertical #input-compare__remove-record-button {
  top: -1px;
  right: -5px;
  position: absolute;
  padding: 5px 1px;
  -webkit-transform: scale(0.8);
          transform: scale(0.8);
}
#input-compare.vertical .scroll-control {
  height: 100%;
  max-height: 70vh;
}
#input-compare.vertical .scroll-control #collection #collection__items {
  overflow: scroll;
}
#input-compare.vertical .scroll-control #collection #collection__items th,
#input-compare.vertical .scroll-control #collection #collection__items td {
  min-width: 20rem;
  width: 20rem;
  max-width: 20rem;
}
#input-compare.vertical .scroll-control #collection #collection__items th #cell-content,
#input-compare.vertical .scroll-control #collection #collection__items td #cell-content {
  padding: 0rem;
  height: 4rem;
  max-height: 4rem;
  min-height: 4rem;
}
#input-compare.vertical .scroll-control #collection #collection__items #collection-item:hover {
  background: #DFF4FE;
}
#input-compare.horizontal #input-compare__source-header {
  background-color: #4b6987;
  min-width: 15rem;
}
#input-compare.horizontal #input-compare__source-header #source {
  padding-bottom: 0;
}
#input-compare.horizontal #input-compare__merged-record {
  background: #0f2d4c;
  border-left: 0.5rem solid #0b9bdc;
  padding: 1rem;
}
#input-compare.horizontal #input-compare__remove-record-button {
  top: -5px;
  right: -1px;
  position: absolute;
  padding: 5px 1px;
  -webkit-transform: scale(0.8);
          transform: scale(0.8);
}
#input-compare.horizontal .scroll-control .horizontal-scroll-wrapper #local-collection #local-collection__body #collection {
  display: flex;
  flex-direction: row;
  height: 100%;
  max-height: 70vh;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
#input-compare.horizontal .scroll-control .horizontal-scroll-wrapper #local-collection #local-collection__body #collection #collection__items {
  flex-wrap: nowrap;
  height: 100%;
}
#input-compare.horizontal .scroll-control .horizontal-scroll-wrapper #local-collection #local-collection__body #collection #collection__items #collection-item {
  display: flex;
}
#input-compare.horizontal .scroll-control .horizontal-scroll-wrapper #local-collection #local-collection__body #collection #collection__items #collection-item #cell-content {
  max-height: 3rem;
}
#input-compare.horizontal .scroll-control .horizontal-scroll-wrapper #local-collection #local-collection__body #collection #collection__items #collection-item td {
  padding: 0px;
  height: 4rem;
  max-height: 4rem;
}
#input-compare.horizontal .scroll-control .horizontal-scroll-wrapper #local-collection #local-collection__body #collection #collection__items #collection-item td:first-child {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  padding-bottom: 0.5rem;
  z-index: 11;
}
#input-compare.horizontal .scroll-control .horizontal-scroll-wrapper #local-collection #local-collection__body #collection #collection__items #collection-item:hover {
  background: #DFF4FE;
}
#input-compare.horizontal .scroll-control .horizontal-scroll-wrapper #local-collection #local-collection__body #collection #collection__property-filters {
  padding: 1rem 0rem 1rem 1rem;
  display: flex;
  flex-direction: column;
  position: -webkit-sticky;
  position: sticky;
  left: 0;
  z-index: 11;
  height: 100%;
  background-color: #2E5275;
}
#input-compare.horizontal .scroll-control .horizontal-scroll-wrapper #local-collection #local-collection__body #collection #collection__property-filters tr {
  display: flex;
  flex-direction: column;
}
#input-compare.horizontal .scroll-control .horizontal-scroll-wrapper #local-collection #local-collection__body #collection #collection__property-filters tr #header-content {
  min-width: 20rem;
  width: 20rem;
  max-width: 20rem;
}
#input-compare.horizontal .scroll-control .horizontal-scroll-wrapper #local-collection #local-collection__body #collection #collection__property-filters tr th {
  position: unset;
}
#input-compare.horizontal .scroll-control .horizontal-scroll-wrapper #local-collection #local-collection__body #collection #collection__property-filters tr th:first-child {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  background-color: #2E5275;
  z-index: 11;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#source {
  padding: 0.5rem;
  border-radius: 3px;
  display: flex;
  align-items: center;
  width: 100%;
  position: relative;
  background: rgba(255, 255, 255, 0.13);
  border-left-width: 5px;
  border-left-style: solid;
}
#source.clickable:hover {
  background: #0f2d4c;
}
#source #source__title {
  margin-left: 0.5rem;
  display: flex;
  flex-direction: column;
}
#source #source-status-progress {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 100%;
  display: flex;
  align-content: center;
}
#source.empty-source {
  cursor: pointer;
  pointer-events: none;
}
#source.empty-source .plugin-image-editor {
  background: transparent;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#time-series-line-chart {
  width: 100%;
  height: auto;
  padding: 1rem;
  padding-top: 3rem;
  overflow: hidden;
}
#time-series-line-chart > svg {
  max-width: 100%;
}
#time-series-line-chart > svg > g:first-child {
  -webkit-transform: scale(0.9755, 1) translate(50px, 0px);
          transform: scale(0.9755, 1) translate(50px, 0px);
}
#time-series-line-chart g.yaxis text,
#time-series-line-chart g.tick text {
  fill: #ffffffbf !important;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#changed-records-graph {
  width: 100%;
  position: relative;
}
#changed-records-graph #changed-records-graph__header {
  padding: 0.25rem;
  padding-left: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: rgba(24, 56, 88, 0.4);
}
#changed-records-graph #changed-records-graph__content {
  width: 100%;
  position: relative;
}
#changed-records-graph #changed-records-graph__time-select {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  z-index: 1000;
}
#changed-records-graph #changed-records-graph__time-select .text {
  color: white;
}
#changed-records-graph #collection.table.dark #collection__property-filters th:not(.multi-select-area) {
  min-width: 8rem;
}
#changed-records-graph .colored-source {
  border-left-width: 0.5rem;
  border-left-style: solid;
}
#changed-records-graph .colored-source #source {
  min-width: 20rem;
}
#changed-records-graph #collection__property-filters > tr > th {
  position: relative;
}
#changed-records-graph #changed-records-graph__chart {
  padding: 5px 5px 0px 5px;
  box-sizing: content-box;
}
#changed-records-graph #changed-records-graph__chart > div {
  padding: 0px;
  margin: 0px;
}
#graph {
  position: relative;
  padding-top: 2.4rem !important;
  background-color: #0f2d4c;
  border: 1px solid;
}
.timestamp-container {
  position: absolute;
  bottom: 0;
  right: 5px;
  color: white;
  font-weight: 100;
  font-size: 12px;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#source-status-progress {
  width: 100%;
  display: flex;
}
#source-status-progress .progress {
  width: 100%;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#source-status-preview {
  z-index: 1;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
#source-status-preview__popup,
#source-status-preview__popup #source-status-details {
  padding: 0 !important;
  margin: 0;
  border: 0;
  border-radius: 1rem;
  overflow: hidden;
  z-index: 1;
}
#source-status-preview__popup #source-status-details__header,
#source-status-preview__popup #source-status-details #source-status-details__header {
  background-color: #0f2d4c;
}
#source-status-preview__popup .label,
#source-status-preview__popup #source-status-details .label {
  width: 100%;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#source-status-details {
  z-index: 1;
  display: flex;
  flex-direction: column;
  min-width: 30rem;
}
#source-status-details #source-status-details__header {
  padding: 0.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: rgba(24, 56, 88, 0.4);
}
#source-status-details #source-status-details__time {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
#source-status-details #source-status-details__to-bad-records {
  display: inline-flex;
}
#source-status-details #source-status-details__errors {
  width: 100%;
}
#source-status-details #source-status-details__errors #error-message,
#source-status-details #source-status-details__errors #error-message #error-message__header,
#source-status-details #source-status-details__errors #error-message #error-message__content {
  width: 100%;
  border-radius: unset;
}
#source-status-details #source-status-details__error-sample {
  display: none;
}
#source-status-details #source-status-details__stats {
  display: flex;
  justify-content: space-evenly;
}
#source-status-details #source-status-details__progress .progress .bar {
  min-width: 3.5rem;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#bad-record-sample #local-collection #local-collection__header {
  display: none;
}
#bad-record-sample #collection tbody tr > td:first-child {
  background: #214364;
}
#bad-record-sample .value-cell {
  color: unset !important;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#output-replication-graph {
  margin-bottom: 1rem;
  width: 100%;
  position: relative;
}
#output-replication-graph #output-replication-graph__header {
  padding: 0.25rem;
  padding-left: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: rgba(24, 56, 88, 0.4);
}
#output-replication-graph #output-replication-graph__content {
  position: relative;
  width: 100%;
}
#output-replication-graph #output-replication-graph__content #header-title {
  min-width: 5rem;
}
#output-replication-graph #output-replication-graph__welcome {
  padding: 3rem;
}
#output-replication-graph #output-replication-graph__time-select {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  z-index: 1000;
}
#output-replication-graph #output-replication-graph__time-select .text {
  color: white;
}
#output-replication-graph.minimized #source {
  max-width: 15rem;
}
#output-replication-graph #collection.table tbody tr > td #cell-content {
  padding: 0.5rem 0rem 0.5rem 1rem;
}
#output-replication-graph #output-replication-graph__chart {
  padding: 5px 5px 0px 5px;
  box-sizing: content-box;
}
#output-replication-graph #output-replication-graph__chart > div {
  padding: 0px;
  margin: 0px;
}
#graph {
  position: relative;
  padding-top: 2.4rem !important;
  background-color: #0f2d4c;
  border: 1px solid;
}
.timestamp-container {
  position: absolute;
  bottom: 0;
  right: 5px;
  color: white;
  font-weight: 100;
  font-size: 12px;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#monitor-shape-overview-diagram {
  width: 100%;
  padding: 0.25rem;
  margin-top: -0.75rem;
}
#monitor-shape-overview-diagram #monitor-shape-overview-diagram__content {
  display: flex;
  flex-wrap: wrap;
  height: 100%;
  width: 100%;
  justify-content: space-between;
}
#monitor-shape-overview-diagram #monitor-shape-overview-diagram__content #monitor-shape-overview-diagram__section {
  min-width: 25rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
#monitor-shape-overview-diagram #monitor-shape-overview-diagram__content #monitor-shape-overview-diagram__section.shape {
  min-width: 15rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  max-width: 30rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 1rem;
}
@media (max-width: 1300px) {
  #monitor-shape-overview-diagram {
    margin-top: 1rem;
  }
  #monitor-shape-overview-diagram__content {
    justify-content: center !important;
  }
  #monitor-shape-overview-diagram > div > svg {
    opacity: 0;
  }
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#published-shape-node__wrapper {
  margin-top: 1rem;
  margin-bottom: 1rem;
}
#published-shape-node__wrapper > a:first-child {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
#published-shape-node {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #0f2d4c;
  border-top-right-radius: 1rem;
  border-top-left-radius: 1rem;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  min-width: -webkit-fit-content;
  min-width: -moz-fit-content;
  min-width: fit-content;
  width: 100%;
  align-self: center;
}
#published-shape-node #published-shape-node__main {
  display: flex;
  align-items: center;
  padding: 0.5rem;
}
#published-shape-node #published-shape-node__main img {
  width: 5rem;
  height: auto;
  margin-right: 1rem;
}
#published-shape-node:hover #published-shape-node__edit-hint {
  color: white;
  opacity: 0.9;
  -webkit-transition: all 300ms ease-in-out;
  transition: all 300ms ease-in-out;
}
#published-shape-node #published-shape-node__edit-hint {
  color: transparent;
  position: absolute;
  bottom: 0.5rem;
  right: 0.2rem;
}
#published-shape-node__actions {
  width: 100%;
  margin: 0;
  border-bottom-left-radius: 1rem;
  border-bottom-right-radius: 1rem;
  z-index: 1;
  display: flex;
  justify-content: center;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#actionable-source {
  cursor: pointer;
  -webkit-transition: all 300ms ease-in-out;
  transition: all 300ms ease-in-out;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  border-radius: 8px;
  border: 1px solid #0f2d4c;
  position: relative;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  min-width: -webkit-fit-content;
  min-width: -moz-fit-content;
  min-width: fit-content;
  width: 100%;
}
#actionable-source #source {
  padding-right: 2rem;
}
#actionable-source:hover {
  border: 1px solid #0b9bdc;
  opacity: 1;
}
#actionable-source:hover:focus-within {
  z-index: 100000;
}
#actionable-source:hover #actionable-source__actions,
#actionable-source:hover #actionable-source__edit-hint {
  opacity: 1;
  -webkit-transition: all 300ms ease-in-out;
  transition: all 300ms ease-in-out;
}
#actionable-source.expand-options {
  opacity: 1;
}
#actionable-source.expand-options #actionable-source__actions,
#actionable-source.expand-options #actionable-source__edit-hint {
  opacity: 1;
  position: relative;
  color: #0f2d4c;
}
#actionable-source.hide-source #source {
  display: none;
}
#actionable-source #actionable-source__edit-hint {
  color: white;
  position: absolute;
  right: 0;
  bottom: 0;
  margin: 0.5rem;
  opacity: 0;
  -webkit-transition: all 300ms ease-in-out;
  transition: all 300ms ease-in-out;
}
#actionable-source #actionable-source__actions {
  position: absolute;
  color: white;
  right: 0rem;
  top: 0;
  margin: 0.5rem;
  opacity: 0;
  -webkit-transition: all 300ms ease-in-out;
  transition: all 300ms ease-in-out;
}
#actionable-source #actionable-source__actions #ellipsis-menu {
  padding: 0;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#published-source-type-node {
  display: flex;
  padding-bottom: 1.25rem;
  padding-top: 1rem;
}
#published-source-type-node.read {
  padding-right: 0rem;
}
#published-source-type-node.replication,
#published-source-type-node.write {
  padding-left: 1.5rem;
}
#published-source-type-node #batch-status-summary__content {
  width: 100%;
}
#published-source-type-node #published-source-type-node__source {
  width: -webkit-fill-available;
}
.read#published-source-type-node #published-source-type-node__source {
  padding-right: 0rem;
}
#published-source-type-node #published-source-type-node__source #actionable-source {
  border-top-left-radius: 5rem;
  border-bottom-left-radius: 5rem;
  border-top-right-radius: 0rem;
  border-bottom-right-radius: 0rem;
  max-width: 22rem;
}
#published-source-type-node #published-source-type-node__source #actionable-source #source {
  background: rgba(15, 45, 76, 0.8);
  border-top-left-radius: 5rem;
  border-bottom-left-radius: 5rem;
  padding-left: 1rem;
  border-left-width: 0px;
  border-left-style: none;
}
#published-source-type-node #published-source-type-node__source #actionable-source #source #source-status-progress {
  padding-left: 3.5rem;
}
#published-source-type-node #published-source-type-node__source #actionable-source #source #source__title {
  padding-left: 3.5rem;
}
#published-source-type-node #published-source-type-node__source #actionable-source #source #plugin-image-editor {
  position: absolute;
  left: -1rem;
}
#published-source-type-node #published-source-type-node__source #actionable-source #source #plugin-image-editor #plugin-image-editor__image-render {
  min-width: 5.5rem;
  min-height: 5.5rem;
}
#published-source-type-node #published-source-type-node__source #actionable-source #source #plugin-image-editor #plugin-image-editor__image-render img {
  min-width: 5.5rem;
}
#published-source-type-node #published-source-type-node__statistic {
  background: #183858;
  display: flex;
  flex-grow: 1;
  min-width: 11rem;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 0.25rem;
  padding-right: 1rem;
  border-top-right-radius: 5rem;
  border-bottom-right-radius: 5rem;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#connection-node {
  display: flex;
  padding-bottom: 1.25rem;
  padding-top: 1rem;
}
#connection-node #published-connection {
  background: rgba(15, 45, 76, 0.8);
  border-radius: 5rem;
  padding: 0.25rem;
  padding-left: 5rem;
  margin-left: 2rem;
  min-width: 20rem;
}
#connection-node #published-connection #source__title {
  padding-left: 3.5rem;
}
#connection-node #published-connection #plugin-image-editor {
  position: absolute;
  left: -1rem;
}
#connection-node #published-connection #plugin-image-editor #plugin-image-editor__image-render {
  min-width: 5.5rem;
  min-height: 5.5rem;
}
#connection-node #published-connection #plugin-image-editor #plugin-image-editor__image-render img {
  min-width: 5.5rem;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#published-connection {
  padding: 0.5rem;
  border-radius: 3px;
  display: flex;
  align-items: center;
  width: 100%;
  position: relative;
  background: rgba(255, 255, 255, 0.13);
}
#published-connection.clickable:hover {
  background: #0f2d4c;
}
#published-connection #published-connection_title {
  margin-left: 0.5rem;
  display: flex;
  flex-direction: column;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#published-source-type-group {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
  background: rgba(15, 45, 76, 0.1);
  width: auto;
  min-width: 17rem;
  display: flex;
  flex-direction: column;
}
#published-source-type-group #published-source-type-group__display-actions {
  display: flex;
}
#published-source-type-group #published-source-type-group__summarized-content {
  display: flex;
  width: 100%;
  background: #0f2d4c;
  justify-content: space-around;
  padding: 0.25rem;
}
#published-source-type-group #published-source-type-group__top {
  display: flex;
  justify-content: space-between;
  background: #2E5275;
  padding: 0.25rem;
}
#published-source-type-group #published-source-type-group__view-switch,
#published-source-type-group #published-source-type-group__summarize-toggle {
  cursor: pointer;
  z-index: 1;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  padding: 0.25rem;
}
#published-source-type-group #published-source-type-group__view-switch:hover,
#published-source-type-group #published-source-type-group__summarize-toggle:hover {
  background: #0b9bdc;
}
#published-source-type-group #published-source-type-group__content {
  padding: 0.25rem;
  padding-top: 0;
}
.read#published-source-type-group #published-source-type-group__content {
  padding-left: 2rem;
}

#detailed-header.composite-record-totals {
  position: relative;
}
#detailed-header.composite-record-totals > #detailed-header__left-image {
  position: absolute;
  left: -30px;
  top: 10px;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#cross-system-table #cross-system-table__header {
  padding: 0.25rem;
  padding-left: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: rgba(15, 45, 76, 0.1);
}
#cross-system-table.minimized-view #cross-system-stats {
  background: rgba(0, 0, 0, 0.13);
  color: #FFFFFF;
}
#cross-system-table.minimized-view #cross-system-stats .ui.statistic:not(.red):not(.green) > .value,
#cross-system-table.minimized-view #cross-system-stats .ui.statistic > .label {
  color: #FFFFFF;
  opacity: 0.9;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#group-size-distribution {
  width: 100%;
}
#group-size-distribution #group-size-distribution__bars {
  margin-top: 3rem;
}
#group-size-distribution #group-size-distribution__header {
  padding: 0.25rem;
  padding-left: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: rgba(24, 56, 88, 0.4);
}
#group-size-distribution.small #group-size-distribution__bars > div {
  min-height: 25vh;
  max-height: 25vh;
}
#group-size-distribution.medium #group-size-distribution__bars > div {
  min-height: 50vh;
  max-height: 50vh;
}
#group-size-distribution.large #group-size-distribution__bars > div {
  min-height: 75vh;
  max-height: 75vh;
}
#group-size-distribution line {
  opacity: 0.25;
}
#group-size-distribution svg text {
  fill: white !important;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#composites-graph {
  width: 100%;
  position: relative;
}
#composites-graph line {
  opacity: 0.25;
}
#composites-graph #composites-graph__header {
  padding: 0.25rem;
  padding-left: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: rgba(24, 56, 88, 0.4);
}
#composites-graph #composites-graph__no-results {
  min-height: 30vh;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
#composites-graph #composites-graph__filters {
  top: 3rem;
  right: 0;
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
#composites-graph #composites-graph__filters > div {
  margin: 0.1rem;
}
#composites-graph #composites-graph__filters .text {
  color: white;
}
#composites-graph #composites-graph__filters #source:hover {
  background: rgba(255, 255, 255, 0.13);
}
#composites-graph #composites-graph__filters #dark.dropdown .menu > .item:hover {
  background: rgba(255, 255, 255, 0.13) !important;
}
#composites-graph #composites-graph__filters > div.dropdown:first-of-type {
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
}
#composites-graph #composites-graph__filters > div.dropdown:last-of-type {
  min-width: 20rem;
}
#composites-graph.small #composites-graph__bars > div {
  min-height: 25vh;
  max-height: 25vh;
}
#composites-graph.medium #composites-graph__bars > div {
  min-height: 50vh;
  max-height: 50vh;
}
#composites-graph.large #composites-graph__bars > div {
  min-height: 75vh;
  max-height: 75vh;
}
#composites-graph #composites-graph__bars > div {
  width: 100%;
}
#composites-graph #composites-graph__change-details {
  display: flex;
  justify-content: space-between;
  padding-right: 5rem;
  padding-left: 5rem;
  padding-bottom: 1rem;
}
#composites-graph svg text {
  fill: white !important;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#individual-writebacks #individual-writebacks__header {
  padding: 0.25rem;
  padding-left: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: rgba(24, 56, 88, 0.4);
}
#individual-writebacks.minimized {
  max-height: 50vh;
  overflow: hidden;
}
#individual-writebacks.minimized .value-cell {
  color: white;
}
#individual-writebacks #individual-writebacks__pagination {
  display: flex;
  align-items: center;
  flex-direction: row;
  justify-items: center;
  justify-content: space-evenly;
  background: #0f2d4c;
  position: fixed;
  bottom: 0;
  right: 0;
  left: 0;
  opacity: 1;
  z-index: 5;
}
#individual-writebacks #individual-writebacks__pagination .item {
  align-self: center;
}
#individual-writebacks #individual-writebacks__pagination .active.item {
  border-bottom: 1px solid #0b9bdc;
  font-weight: bold;
}
#individual-writebacks .horizontal-scroll-wrapper {
  height: 88vh !important;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#schema-profile-link {
  padding: 1rem;
  padding-bottom: 5rem;
}
#schema-profile-link #schema-profile-link__samples {
  display: flex;
  justify-content: space-around;
  flex-wrap: wrap;
}
#schema-profile-link #schema-profile-link__samples #schema-profile-link__sample {
  padding: 2rem;
  display: flex;
  flex-direction: column;
}
#schema-profile-link #schema-profile-link__samples #schema-profile-link__sample:hover {
  background: #0f2d4c;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  -webkit-transform: scale(1.15);
          transform: scale(1.15);
}
#schema-profile-link #schema-profile-link__samples #schema-profile-link__sample:hover svg > g > rect {
  fill: #0b9bdc !important;
}
#schema-profile-link #schema-profile-link__samples #schema-profile-link__sample #schema-profile-link__sample-value {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
#schema-profile-link #schema-profile-link__samples #schema-profile-link__sample #schema-profile-link__sample-value #schema-profile-link__boxplot {
  min-width: 3rem;
  display: flex;
  flex-direction: column;
  padding-left: 1rem;
}
#schema-profile-link #schema-profile-link__samples #schema-profile-link__sample svg {
  width: 100%;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#past-bad-records {
  padding: 0.25rem;
  color: #FFFFFF;
  min-height: 100%;
  overflow-y: scroll;
}
#past-bad-records #local-collection {
  height: 42vh !important;
}
#past-bad-records #collection tbody tr > td:first-child {
  position: relative;
  width: 37%;
  max-width: 49rem;
  min-width: 20rem;
}
#past-bad-records #collection tbody tr > td:nth-child(2) {
  position: relative;
  width: 25%;
  min-width: 15rem;
}
#past-bad-records .horizontal-scroll-wrapper {
  background: #FFFFFF;
  overflow-y: scroll;
  height: 88vh !important;
}
#past-bad-records #local-collection__header {
  display: none;
}
#past-bad-records #past-bad-records__header {
  padding: 0.25rem;
  padding-left: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: rgba(24, 56, 88, 0.4);
}
#past-bad-records.minimized {
  max-height: 50vh;
  overflow-y: scroll;
}
#past-bad-records.minimized .horizontal-scroll-wrapper {
  background: rgba(24, 56, 88, 0.4);
  overflow-y: scroll;
  height: 41vh !important;
}
#past-bad-records.minimized .value-cell {
  color: white;
}
#past-bad-records__pagination {
  display: flex;
  align-items: center;
  flex-direction: row;
  justify-items: center;
  justify-content: space-evenly;
  background: #0f2d4c;
  position: fixed;
  bottom: 0;
  right: 0;
  left: 0;
  opacity: 1;
  z-index: 5;
}
#past-bad-records__pagination .download-bad-records {
  position: absolute;
  left: 5rem;
}
#past-bad-records__pagination .item {
  align-self: center;
}
#past-bad-records__pagination .active.item {
  border-bottom: 1px solid #0b9bdc;
  font-weight: bold;
}

/*---  Named colors (do not import)  ---*/
/*-------------------
Site Colors To Import
--------------------*/
/*-------------------
    Overall
--------------------*/
/*-------------------
    Shading
--------------------*/
/*-------------------
    Backgrounds
--------------------*/
/*-------------------
    Transparent backgrounds
--------------------*/
/*-------------------
    Borders
--------------------*/
/*-------------------
       TEXT
--------------------*/
/*-------------------
       Inputs
--------------------*/
/*-------------------
    Global Modifier 
--------------------*/
/*--- Draft Figma Colors --*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
#monitor-loader {
  position: fixed;
  left: 0;
  top: inherit !important;
  height: 100%;
  width: 100%;
  background: rgba(0, 0, 0, 0.13);
}
#monitor-golden-record {
  color: white;
  min-height: 100%;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  max-height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
}
#monitor-golden-record #monitor-golden-record__top-bar {
  display: flex;
  justify-content: space-between;
}
#monitor-golden-record #monitor-golden-record__top-bar #monitor-golden-record__agents {
  padding: 0.25rem;
  height: 0;
}
#monitor-golden-record #monitor-golden-record__top-bar #monitor-golden-record__agents .ui.basic.green.label {
  background: transparent !important;
}
#monitor-golden-record .breadcrumb {
  padding-left: 1rem;
  padding-top: 0.5rem;
}
#monitor-golden-record .breadcrumb .divider {
  color: white;
  opacity: 0.5;
}
#monitor-golden-record .breadcrumb #route-to.on-dark {
  opacity: 0.75;
  font-weight: 600;
  font-size: 10pt;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY29udGFpbmVycy9Hb2xkZW5SZWNvcmQvY29tcG9uZW50cy9pbnB1dC1jb21wYXJlL2lucHV0LWNvbXBhcmUubGVzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29udGFpbmVycy9Hb2xkZW5SZWNvcmQvY29tcG9uZW50cy9zb3VyY2Uvc291cmNlLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbnRhaW5lcnMvR29sZGVuUmVjb3JkL2NvbXBvbmVudHMvdGltZS1zZXJpZXMtbGluZS1jaGFydC9pbmRleC5sZXNzIiwid2VicGFjazovLy8uL3NyYy9jb250YWluZXJzL0dvbGRlblJlY29yZC9jb21wb25lbnRzL3RpbWUtc2VyaWVzLWxpbmUtY2hhcnQvaW1wbGVtZW50YXRpb25zL2NoYW5nZWQtY29tcG9zaXRlcy1ncmFwaC9pbmRleC5sZXNzIiwid2VicGFjazovLy8uL3NyYy9jb250YWluZXJzL0dvbGRlblJlY29yZC9jb21wb25lbnRzL1NvdXJjZVN0YXR1cy9jb21wb25lbnRzL1Byb2dyZXNzL3Byb2dyZXNzLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbnRhaW5lcnMvR29sZGVuUmVjb3JkL2NvbXBvbmVudHMvU291cmNlU3RhdHVzL2NvbXBvbmVudHMvUHJldmlldy9wcmV2aWV3Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbnRhaW5lcnMvR29sZGVuUmVjb3JkL2NvbXBvbmVudHMvU291cmNlU3RhdHVzL2NvbXBvbmVudHMvU291cmNlU3RhdHVzRGV0YWlscy9zb3VyY2Utc3RhdHVzLWRldGFpbHMubGVzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29udGFpbmVycy9Hb2xkZW5SZWNvcmQvY29tcG9uZW50cy9CYWRSZWNvcmRTYW1wbGUvYmFkLXJlY29yZC1zYW1wbGUubGVzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29udGFpbmVycy9Hb2xkZW5SZWNvcmQvY29tcG9uZW50cy90aW1lLXNlcmllcy1saW5lLWNoYXJ0L2ltcGxlbWVudGF0aW9ucy9vdXRwdXQtcmVwbGljYXRpb24tZ3JhcGgvaW5kZXgubGVzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29udGFpbmVycy9Hb2xkZW5SZWNvcmQvY29tcG9uZW50cy9tb25pdG9yLWRpYWdyYW0vaW5kZXgubGVzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29udGFpbmVycy9Hb2xkZW5SZWNvcmQvY29tcG9uZW50cy9tb25pdG9yLWRpYWdyYW0vY29tcG9uZW50cy9zaGFwZS1ub2RlL2luZGV4Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbnRhaW5lcnMvR29sZGVuUmVjb3JkL2NvbXBvbmVudHMvYWN0aW9uYWJsZS1zb3VyY2UvYWN0aW9uYWJsZS1zb3VyY2UubGVzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29udGFpbmVycy9Hb2xkZW5SZWNvcmQvY29tcG9uZW50cy9tb25pdG9yLWRpYWdyYW0vY29tcG9uZW50cy9zb3VyY2UtdHlwZS1ub2RlL2luZGV4Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbnRhaW5lcnMvR29sZGVuUmVjb3JkL2NvbXBvbmVudHMvbW9uaXRvci1kaWFncmFtL2NvbXBvbmVudHMvY29ubmVjdGlvbi1ub2RlL2Nvbm5lY3Rpb24tbm9kZS5sZXNzIiwid2VicGFjazovLy8uL3NyYy9jb250YWluZXJzL0dvbGRlblJlY29yZC9jb21wb25lbnRzL3B1Ymxpc2hlZC1jb25uZWN0aW9uL3B1Ymxpc2hlZC1jb25uZWN0aW9uLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbnRhaW5lcnMvR29sZGVuUmVjb3JkL2NvbXBvbmVudHMvbW9uaXRvci1kaWFncmFtL2NvbXBvbmVudHMvc291cmNlLXR5cGUtZ3JvdXAvaW5kZXgubGVzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29udGFpbmVycy9Hb2xkZW5SZWNvcmQvY29tcG9uZW50cy9nb2xkZW4tcmVjb3JkLXRvdGFsLWNvdW50cy9pbmRleC5sZXNzIiwid2VicGFjazovLy8uL3NyYy9jb250YWluZXJzL0dvbGRlblJlY29yZC9jb21wb25lbnRzL2Nyb3NzLXN5c3RlbS10YWJsZS9jcm9zcy1zeXN0ZW0tdGFibGUubGVzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29udGFpbmVycy9Hb2xkZW5SZWNvcmQvY29tcG9uZW50cy9Hcm91cFNpemVEaXN0cmlidXRpb24vZ3JvdXAtc2l6ZS1kaXN0cmlidXRpb24ubGVzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29udGFpbmVycy9Hb2xkZW5SZWNvcmQvY29tcG9uZW50cy9Db21wb3NpdGVzR3JhcGgvY29tcG9zaXRlcy1ncmFwaC5sZXNzIiwid2VicGFjazovLy8uL3NyYy9jb250YWluZXJzL0dvbGRlblJlY29yZC9jb21wb25lbnRzL2luZGl2aWR1YWwtd3JpdGViYWNrcy9pbmRpdmlkdWFsLXdyaXRlYmFja3MubGVzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29udGFpbmVycy9Hb2xkZW5SZWNvcmQvY29tcG9uZW50cy9TY2hlbWFQcm9maWxlTGluay9zY2hlbWEtcHJvZmlsZS1saW5rLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbnRhaW5lcnMvR29sZGVuUmVjb3JkL2NvbXBvbmVudHMvcGFzdC1iYWQtcmVjb3Jkcy9pbmRleC5sZXNzIiwid2VicGFjazovLy8uL3NyYy9jb250YWluZXJzL0dvbGRlblJlY29yZC9pbmRleC5sZXNzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlDQUF5QztBQUN6Qzs7cUJBRXFCO0FBQ3JCOztxQkFFcUI7QUFDckI7O3FCQUVxQjtBQUNyQjs7cUJBRXFCO0FBQ3JCOztxQkFFcUI7QUFDckI7O3FCQUVxQjtBQUNyQjs7cUJBRXFCO0FBQ3JCOztxQkFFcUI7QUFDckI7O3FCQUVxQjtBQUNyQiw0QkFBNEI7QUFDNUIsbUJBQW1CO0FBQ25CLHlCQUF5QjtBQUN6QixzQkFBc0I7QUFDdEIsOEJBQThCO0FBQzlCLDBCQUEwQjtBQUMxQix1QkFBdUI7QUFDdkIseUJBQXlCO0FBL0J6QjtFQUNJO0VBQ0E7QUFpQ0o7QUFuQ0E7RUFLUTtBQWlDUjtBQXRDQTs7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O3FCQUVxQjtBQUNyQjs7cUJBRXFCO0FBQ3JCOztxQkFFcUI7QUFDckI7O3FCQUVxQjtBQUNyQjs7cUJBRXFCO0FBQ3JCOztxQkFFcUI7QUFDckI7O3FCQUVxQjtBQUNyQiw0QkFBNEI7QUFDNUIsbUJBQW1CO0FBQ25CLHlCQUF5QjtBQUN6QixzQkFBc0I7QUFDdEIsOEJBQThCO0FBQzlCLDBCQUEwQjtBQUMxQix1QkFBdUI7QUFDdkIseUJBQXlCO0FBaEN6QjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQWtDRjtBQS9CQTtFQUNFO0VBQ0E7RUFDQTtFQUFBO0VBQUE7RUFDQTtFQUNBO0VBQ0E7QUFpQ0Y7QUF2Q0E7RUFTSTtFQUNBO0FBaUNKO0FBM0NBO0VBYU07RUFDQTtBQWlDTjtBQS9DQTtFQWlCUTtBQWlDUjtBQWxEQTtFQXVCSTtFQUNBO0FBOEJKO0FBdERBO0VBMkJNO0VBQ0E7QUE4Qk47QUExREE7RUFnQ007RUFDQTtFQUNBO0FBNkJOIiwiZmlsZSI6InN0YXRpYy9jc3MvbWFpbn41OWU2MDIzNC44N2U4Njg2OS5jaHVuay5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKi0tLSAgTmFtZWQgY29sb3JzIChkbyBub3QgaW1wb3J0KSAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuU2l0ZSBDb2xvcnMgVG8gSW1wb3J0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBPdmVyYWxsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTaGFkaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCYWNrZ3JvdW5kc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgVHJhbnNwYXJlbnQgYmFja2dyb3VuZHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRFWFRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIElucHV0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgR2xvYmFsIE1vZGlmaWVyIFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gRHJhZnQgRmlnbWEgQ29sb3JzIC0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuI2lucHV0LWNvbXBhcmUge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xufVxuI2lucHV0LWNvbXBhcmUgI2NvbGxlY3Rpb24udGFibGUgdGhlYWQgdHIgPiB0aDpmaXJzdC1jaGlsZCB7XG4gIHotaW5kZXg6IDExO1xufVxuI2lucHV0LWNvbXBhcmUgI2NvbGxlY3Rpb24udGFibGUgdGJvZHkgI2NvbGxlY3Rpb24taXRlbSxcbiNpbnB1dC1jb21wYXJlICNjb2xsZWN0aW9uLmNhcmRzIHRib2R5ICNjb2xsZWN0aW9uLWl0ZW0ge1xuICBiYWNrZ3JvdW5kOiAjRjRGOEZDO1xuICBtYXJnaW46IDVweDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBtaW4td2lkdGg6IDIwcmVtO1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIG1heC13aWR0aDogMjVyZW07XG59XG4jaW5wdXQtY29tcGFyZSAjY29sbGVjdGlvbi50YWJsZSB0Ym9keSAjY29sbGVjdGlvbi1pdGVtICNjZWxsLWNvbnRlbnQsXG4jaW5wdXQtY29tcGFyZSAjY29sbGVjdGlvbi5jYXJkcyB0Ym9keSAjY29sbGVjdGlvbi1pdGVtICNjZWxsLWNvbnRlbnQge1xuICBhbGlnbi1pdGVtczogaW5pdGlhbDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI2lucHV0LWNvbXBhcmUgI2NvbGxlY3Rpb24udGFibGUgdGJvZHkgI2NvbGxlY3Rpb24taXRlbSAjY2VsbC1jb250ZW50IC5pbnB1dC1jb21wYXJlX19wcm9wZXJ0eS12YWx1ZSBzdmcsXG4jaW5wdXQtY29tcGFyZSAjY29sbGVjdGlvbi5jYXJkcyB0Ym9keSAjY29sbGVjdGlvbi1pdGVtICNjZWxsLWNvbnRlbnQgLmlucHV0LWNvbXBhcmVfX3Byb3BlcnR5LXZhbHVlIHN2ZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDVweDtcbiAgdG9wOiA1cHg7XG59XG4jaW5wdXQtY29tcGFyZSAjY29sbGVjdGlvbi50YWJsZSB0Ym9keSAjY29sbGVjdGlvbi1pdGVtICNjZWxsLWNvbnRlbnQgLmlucHV0LWNvbXBhcmVfX3Byb3BlcnR5LXZhbHVlLnNvdXJjZS1zdGF0ZS11bmlxdWUsXG4jaW5wdXQtY29tcGFyZSAjY29sbGVjdGlvbi5jYXJkcyB0Ym9keSAjY29sbGVjdGlvbi1pdGVtICNjZWxsLWNvbnRlbnQgLmlucHV0LWNvbXBhcmVfX3Byb3BlcnR5LXZhbHVlLnNvdXJjZS1zdGF0ZS11bmlxdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTRGREYxO1xufVxuI2lucHV0LWNvbXBhcmUgI2NvbGxlY3Rpb24udGFibGUgdGJvZHkgI2NvbGxlY3Rpb24taXRlbSAjY2VsbC1jb250ZW50IC5pbnB1dC1jb21wYXJlX19wcm9wZXJ0eS12YWx1ZS5zb3VyY2Utc3RhdGUtYXJiaXRyYXJ5LFxuI2lucHV0LWNvbXBhcmUgI2NvbGxlY3Rpb24uY2FyZHMgdGJvZHkgI2NvbGxlY3Rpb24taXRlbSAjY2VsbC1jb250ZW50IC5pbnB1dC1jb21wYXJlX19wcm9wZXJ0eS12YWx1ZS5zb3VyY2Utc3RhdGUtYXJiaXRyYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZERjVFMDtcbn1cbiNpbnB1dC1jb21wYXJlICNjb2xsZWN0aW9uLnRhYmxlIHRib2R5ICNjb2xsZWN0aW9uLWl0ZW0gI2NlbGwtY29udGVudCAuaW5wdXQtY29tcGFyZV9fcHJvcGVydHktdmFsdWUuc291cmNlLXN0YXRlLWNhbmRpZGF0ZSxcbiNpbnB1dC1jb21wYXJlICNjb2xsZWN0aW9uLmNhcmRzIHRib2R5ICNjb2xsZWN0aW9uLWl0ZW0gI2NlbGwtY29udGVudCAuaW5wdXQtY29tcGFyZV9fcHJvcGVydHktdmFsdWUuc291cmNlLXN0YXRlLWNhbmRpZGF0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNERkY0RkU7XG59XG4jaW5wdXQtY29tcGFyZSAjY29sbGVjdGlvbi50YWJsZSB0Ym9keSAjY29sbGVjdGlvbi1pdGVtICNjZWxsLWNvbnRlbnQgLmlucHV0LWNvbXBhcmVfX3Byb3BlcnR5LXZhbHVlICNkZXRhaWxlZC1oZWFkZXJfX3ZhbHVlLFxuI2lucHV0LWNvbXBhcmUgI2NvbGxlY3Rpb24uY2FyZHMgdGJvZHkgI2NvbGxlY3Rpb24taXRlbSAjY2VsbC1jb250ZW50IC5pbnB1dC1jb21wYXJlX19wcm9wZXJ0eS12YWx1ZSAjZGV0YWlsZWQtaGVhZGVyX192YWx1ZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuI2lucHV0LWNvbXBhcmUgI2NvbGxlY3Rpb24udGFibGUgdGJvZHkgI2NvbGxlY3Rpb24taXRlbSAjY2VsbC1jb250ZW50IC5pbnB1dC1jb21wYXJlX19wcm9wZXJ0eS12YWx1ZSAjZGV0YWlsZWQtaGVhZGVyX190b3AtZGV0YWlsLFxuI2lucHV0LWNvbXBhcmUgI2NvbGxlY3Rpb24uY2FyZHMgdGJvZHkgI2NvbGxlY3Rpb24taXRlbSAjY2VsbC1jb250ZW50IC5pbnB1dC1jb21wYXJlX19wcm9wZXJ0eS12YWx1ZSAjZGV0YWlsZWQtaGVhZGVyX190b3AtZGV0YWlsIHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG4jaW5wdXQtY29tcGFyZS52ZXJ0aWNhbCAjaW5wdXQtY29tcGFyZV9fc291cmNlLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0YjY5ODc7XG4gIG1pbi13aWR0aDogMTVyZW07XG59XG4jaW5wdXQtY29tcGFyZS52ZXJ0aWNhbCAjaW5wdXQtY29tcGFyZV9fc291cmNlLWhlYWRlciAjc291cmNlIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG4jaW5wdXQtY29tcGFyZS52ZXJ0aWNhbCAjaW5wdXQtY29tcGFyZV9fbWVyZ2VkLXJlY29yZCB7XG4gIGJhY2tncm91bmQ6ICMwZjJkNGM7XG4gIGJvcmRlci1sZWZ0OiAwLjVyZW0gc29saWQgIzBiOWJkYztcbiAgcGFkZGluZzogMXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4td2lkdGg6IDE1cmVtO1xufVxuI2lucHV0LWNvbXBhcmUudmVydGljYWwgI2lucHV0LWNvbXBhcmVfX3JlbW92ZS1yZWNvcmQtYnV0dG9uIHtcbiAgdG9wOiAtMXB4O1xuICByaWdodDogLTVweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBwYWRkaW5nOiA1cHggMXB4O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG59XG4jaW5wdXQtY29tcGFyZS52ZXJ0aWNhbCAuc2Nyb2xsLWNvbnRyb2wge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDcwdmg7XG59XG4jaW5wdXQtY29tcGFyZS52ZXJ0aWNhbCAuc2Nyb2xsLWNvbnRyb2wgI2NvbGxlY3Rpb24gI2NvbGxlY3Rpb25fX2l0ZW1zIHtcbiAgb3ZlcmZsb3c6IHNjcm9sbDtcbn1cbiNpbnB1dC1jb21wYXJlLnZlcnRpY2FsIC5zY3JvbGwtY29udHJvbCAjY29sbGVjdGlvbiAjY29sbGVjdGlvbl9faXRlbXMgdGgsXG4jaW5wdXQtY29tcGFyZS52ZXJ0aWNhbCAuc2Nyb2xsLWNvbnRyb2wgI2NvbGxlY3Rpb24gI2NvbGxlY3Rpb25fX2l0ZW1zIHRkIHtcbiAgbWluLXdpZHRoOiAyMHJlbTtcbiAgd2lkdGg6IDIwcmVtO1xuICBtYXgtd2lkdGg6IDIwcmVtO1xufVxuI2lucHV0LWNvbXBhcmUudmVydGljYWwgLnNjcm9sbC1jb250cm9sICNjb2xsZWN0aW9uICNjb2xsZWN0aW9uX19pdGVtcyB0aCAjY2VsbC1jb250ZW50LFxuI2lucHV0LWNvbXBhcmUudmVydGljYWwgLnNjcm9sbC1jb250cm9sICNjb2xsZWN0aW9uICNjb2xsZWN0aW9uX19pdGVtcyB0ZCAjY2VsbC1jb250ZW50IHtcbiAgcGFkZGluZzogMHJlbTtcbiAgaGVpZ2h0OiA0cmVtO1xuICBtYXgtaGVpZ2h0OiA0cmVtO1xuICBtaW4taGVpZ2h0OiA0cmVtO1xufVxuI2lucHV0LWNvbXBhcmUudmVydGljYWwgLnNjcm9sbC1jb250cm9sICNjb2xsZWN0aW9uICNjb2xsZWN0aW9uX19pdGVtcyAjY29sbGVjdGlvbi1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI0RGRjRGRTtcbn1cbiNpbnB1dC1jb21wYXJlLmhvcml6b250YWwgI2lucHV0LWNvbXBhcmVfX3NvdXJjZS1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGI2OTg3O1xuICBtaW4td2lkdGg6IDE1cmVtO1xufVxuI2lucHV0LWNvbXBhcmUuaG9yaXpvbnRhbCAjaW5wdXQtY29tcGFyZV9fc291cmNlLWhlYWRlciAjc291cmNlIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG4jaW5wdXQtY29tcGFyZS5ob3Jpem9udGFsICNpbnB1dC1jb21wYXJlX19tZXJnZWQtcmVjb3JkIHtcbiAgYmFja2dyb3VuZDogIzBmMmQ0YztcbiAgYm9yZGVyLWxlZnQ6IDAuNXJlbSBzb2xpZCAjMGI5YmRjO1xuICBwYWRkaW5nOiAxcmVtO1xufVxuI2lucHV0LWNvbXBhcmUuaG9yaXpvbnRhbCAjaW5wdXQtY29tcGFyZV9fcmVtb3ZlLXJlY29yZC1idXR0b24ge1xuICB0b3A6IC01cHg7XG4gIHJpZ2h0OiAtMXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBhZGRpbmc6IDVweCAxcHg7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcbn1cbiNpbnB1dC1jb21wYXJlLmhvcml6b250YWwgLnNjcm9sbC1jb250cm9sIC5ob3Jpem9udGFsLXNjcm9sbC13cmFwcGVyICNsb2NhbC1jb2xsZWN0aW9uICNsb2NhbC1jb2xsZWN0aW9uX19ib2R5ICNjb2xsZWN0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXgtaGVpZ2h0OiA3MHZoO1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG59XG4jaW5wdXQtY29tcGFyZS5ob3Jpem9udGFsIC5zY3JvbGwtY29udHJvbCAuaG9yaXpvbnRhbC1zY3JvbGwtd3JhcHBlciAjbG9jYWwtY29sbGVjdGlvbiAjbG9jYWwtY29sbGVjdGlvbl9fYm9keSAjY29sbGVjdGlvbiAjY29sbGVjdGlvbl9faXRlbXMge1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuI2lucHV0LWNvbXBhcmUuaG9yaXpvbnRhbCAuc2Nyb2xsLWNvbnRyb2wgLmhvcml6b250YWwtc2Nyb2xsLXdyYXBwZXIgI2xvY2FsLWNvbGxlY3Rpb24gI2xvY2FsLWNvbGxlY3Rpb25fX2JvZHkgI2NvbGxlY3Rpb24gI2NvbGxlY3Rpb25fX2l0ZW1zICNjb2xsZWN0aW9uLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuI2lucHV0LWNvbXBhcmUuaG9yaXpvbnRhbCAuc2Nyb2xsLWNvbnRyb2wgLmhvcml6b250YWwtc2Nyb2xsLXdyYXBwZXIgI2xvY2FsLWNvbGxlY3Rpb24gI2xvY2FsLWNvbGxlY3Rpb25fX2JvZHkgI2NvbGxlY3Rpb24gI2NvbGxlY3Rpb25fX2l0ZW1zICNjb2xsZWN0aW9uLWl0ZW0gI2NlbGwtY29udGVudCB7XG4gIG1heC1oZWlnaHQ6IDNyZW07XG59XG4jaW5wdXQtY29tcGFyZS5ob3Jpem9udGFsIC5zY3JvbGwtY29udHJvbCAuaG9yaXpvbnRhbC1zY3JvbGwtd3JhcHBlciAjbG9jYWwtY29sbGVjdGlvbiAjbG9jYWwtY29sbGVjdGlvbl9fYm9keSAjY29sbGVjdGlvbiAjY29sbGVjdGlvbl9faXRlbXMgI2NvbGxlY3Rpb24taXRlbSB0ZCB7XG4gIHBhZGRpbmc6IDBweDtcbiAgaGVpZ2h0OiA0cmVtO1xuICBtYXgtaGVpZ2h0OiA0cmVtO1xufVxuI2lucHV0LWNvbXBhcmUuaG9yaXpvbnRhbCAuc2Nyb2xsLWNvbnRyb2wgLmhvcml6b250YWwtc2Nyb2xsLXdyYXBwZXIgI2xvY2FsLWNvbGxlY3Rpb24gI2xvY2FsLWNvbGxlY3Rpb25fX2JvZHkgI2NvbGxlY3Rpb24gI2NvbGxlY3Rpb25fX2l0ZW1zICNjb2xsZWN0aW9uLWl0ZW0gdGQ6Zmlyc3QtY2hpbGQge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gIHotaW5kZXg6IDExO1xufVxuI2lucHV0LWNvbXBhcmUuaG9yaXpvbnRhbCAuc2Nyb2xsLWNvbnRyb2wgLmhvcml6b250YWwtc2Nyb2xsLXdyYXBwZXIgI2xvY2FsLWNvbGxlY3Rpb24gI2xvY2FsLWNvbGxlY3Rpb25fX2JvZHkgI2NvbGxlY3Rpb24gI2NvbGxlY3Rpb25fX2l0ZW1zICNjb2xsZWN0aW9uLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjREZGNEZFO1xufVxuI2lucHV0LWNvbXBhcmUuaG9yaXpvbnRhbCAuc2Nyb2xsLWNvbnRyb2wgLmhvcml6b250YWwtc2Nyb2xsLXdyYXBwZXIgI2xvY2FsLWNvbGxlY3Rpb24gI2xvY2FsLWNvbGxlY3Rpb25fX2JvZHkgI2NvbGxlY3Rpb24gI2NvbGxlY3Rpb25fX3Byb3BlcnR5LWZpbHRlcnMge1xuICBwYWRkaW5nOiAxcmVtIDByZW0gMXJlbSAxcmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkU1Mjc1O1xufVxuI2lucHV0LWNvbXBhcmUuaG9yaXpvbnRhbCAuc2Nyb2xsLWNvbnRyb2wgLmhvcml6b250YWwtc2Nyb2xsLXdyYXBwZXIgI2xvY2FsLWNvbGxlY3Rpb24gI2xvY2FsLWNvbGxlY3Rpb25fX2JvZHkgI2NvbGxlY3Rpb24gI2NvbGxlY3Rpb25fX3Byb3BlcnR5LWZpbHRlcnMgdHIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuI2lucHV0LWNvbXBhcmUuaG9yaXpvbnRhbCAuc2Nyb2xsLWNvbnRyb2wgLmhvcml6b250YWwtc2Nyb2xsLXdyYXBwZXIgI2xvY2FsLWNvbGxlY3Rpb24gI2xvY2FsLWNvbGxlY3Rpb25fX2JvZHkgI2NvbGxlY3Rpb24gI2NvbGxlY3Rpb25fX3Byb3BlcnR5LWZpbHRlcnMgdHIgI2hlYWRlci1jb250ZW50IHtcbiAgbWluLXdpZHRoOiAyMHJlbTtcbiAgd2lkdGg6IDIwcmVtO1xuICBtYXgtd2lkdGg6IDIwcmVtO1xufVxuI2lucHV0LWNvbXBhcmUuaG9yaXpvbnRhbCAuc2Nyb2xsLWNvbnRyb2wgLmhvcml6b250YWwtc2Nyb2xsLXdyYXBwZXIgI2xvY2FsLWNvbGxlY3Rpb24gI2xvY2FsLWNvbGxlY3Rpb25fX2JvZHkgI2NvbGxlY3Rpb24gI2NvbGxlY3Rpb25fX3Byb3BlcnR5LWZpbHRlcnMgdHIgdGgge1xuICBwb3NpdGlvbjogdW5zZXQ7XG59XG4jaW5wdXQtY29tcGFyZS5ob3Jpem9udGFsIC5zY3JvbGwtY29udHJvbCAuaG9yaXpvbnRhbC1zY3JvbGwtd3JhcHBlciAjbG9jYWwtY29sbGVjdGlvbiAjbG9jYWwtY29sbGVjdGlvbl9fYm9keSAjY29sbGVjdGlvbiAjY29sbGVjdGlvbl9fcHJvcGVydHktZmlsdGVycyB0ciB0aDpmaXJzdC1jaGlsZCB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJFNTI3NTtcbiAgei1pbmRleDogMTE7XG59XG4iLCIvKi0tLSAgTmFtZWQgY29sb3JzIChkbyBub3QgaW1wb3J0KSAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuU2l0ZSBDb2xvcnMgVG8gSW1wb3J0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBPdmVyYWxsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTaGFkaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCYWNrZ3JvdW5kc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgVHJhbnNwYXJlbnQgYmFja2dyb3VuZHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRFWFRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIElucHV0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgR2xvYmFsIE1vZGlmaWVyIFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gRHJhZnQgRmlnbWEgQ29sb3JzIC0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuI3NvdXJjZSB7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTMpO1xuICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xuICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG59XG4jc291cmNlLmNsaWNrYWJsZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICMwZjJkNGM7XG59XG4jc291cmNlICNzb3VyY2VfX3RpdGxlIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbiNzb3VyY2UgI3NvdXJjZS1zdGF0dXMtcHJvZ3Jlc3Mge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG59XG4jc291cmNlLmVtcHR5LXNvdXJjZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4jc291cmNlLmVtcHR5LXNvdXJjZSAucGx1Z2luLWltYWdlLWVkaXRvciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuIiwiLyotLS0gIE5hbWVkIGNvbG9ycyAoZG8gbm90IGltcG9ydCkgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cblNpdGUgQ29sb3JzIFRvIEltcG9ydFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgT3ZlcmFsbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2hhZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQmFja2dyb3VuZHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFRyYW5zcGFyZW50IGJhY2tncm91bmRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBURVhUXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnB1dHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEdsb2JhbCBNb2RpZmllciBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tIERyYWZ0IEZpZ21hIENvbG9ycyAtLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbiN0aW1lLXNlcmllcy1saW5lLWNoYXJ0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZzogMXJlbTtcbiAgcGFkZGluZy10b3A6IDNyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4jdGltZS1zZXJpZXMtbGluZS1jaGFydCA+IHN2ZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbiN0aW1lLXNlcmllcy1saW5lLWNoYXJ0ID4gc3ZnID4gZzpmaXJzdC1jaGlsZCB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NzU1LCAxKSB0cmFuc2xhdGUoNTBweCwgMHB4KTtcbn1cbiN0aW1lLXNlcmllcy1saW5lLWNoYXJ0IGcueWF4aXMgdGV4dCxcbiN0aW1lLXNlcmllcy1saW5lLWNoYXJ0IGcudGljayB0ZXh0IHtcbiAgZmlsbDogI2ZmZmZmZmJmICFpbXBvcnRhbnQ7XG59XG4iLCIvKi0tLSAgTmFtZWQgY29sb3JzIChkbyBub3QgaW1wb3J0KSAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuU2l0ZSBDb2xvcnMgVG8gSW1wb3J0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBPdmVyYWxsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTaGFkaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCYWNrZ3JvdW5kc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgVHJhbnNwYXJlbnQgYmFja2dyb3VuZHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRFWFRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIElucHV0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgR2xvYmFsIE1vZGlmaWVyIFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gRHJhZnQgRmlnbWEgQ29sb3JzIC0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuI2NoYW5nZWQtcmVjb3Jkcy1ncmFwaCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4jY2hhbmdlZC1yZWNvcmRzLWdyYXBoICNjaGFuZ2VkLXJlY29yZHMtZ3JhcGhfX2hlYWRlciB7XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI0LCA1NiwgODgsIDAuNCk7XG59XG4jY2hhbmdlZC1yZWNvcmRzLWdyYXBoICNjaGFuZ2VkLXJlY29yZHMtZ3JhcGhfX2NvbnRlbnQge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI2NoYW5nZWQtcmVjb3Jkcy1ncmFwaCAjY2hhbmdlZC1yZWNvcmRzLWdyYXBoX190aW1lLXNlbGVjdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjVyZW07XG4gIHJpZ2h0OiAwLjVyZW07XG4gIHotaW5kZXg6IDEwMDA7XG59XG4jY2hhbmdlZC1yZWNvcmRzLWdyYXBoICNjaGFuZ2VkLXJlY29yZHMtZ3JhcGhfX3RpbWUtc2VsZWN0IC50ZXh0IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuI2NoYW5nZWQtcmVjb3Jkcy1ncmFwaCAjY29sbGVjdGlvbi50YWJsZS5kYXJrICNjb2xsZWN0aW9uX19wcm9wZXJ0eS1maWx0ZXJzIHRoOm5vdCgubXVsdGktc2VsZWN0LWFyZWEpIHtcbiAgbWluLXdpZHRoOiA4cmVtO1xufVxuI2NoYW5nZWQtcmVjb3Jkcy1ncmFwaCAuY29sb3JlZC1zb3VyY2Uge1xuICBib3JkZXItbGVmdC13aWR0aDogMC41cmVtO1xuICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG59XG4jY2hhbmdlZC1yZWNvcmRzLWdyYXBoIC5jb2xvcmVkLXNvdXJjZSAjc291cmNlIHtcbiAgbWluLXdpZHRoOiAyMHJlbTtcbn1cbiNjaGFuZ2VkLXJlY29yZHMtZ3JhcGggI2NvbGxlY3Rpb25fX3Byb3BlcnR5LWZpbHRlcnMgPiB0ciA+IHRoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI2NoYW5nZWQtcmVjb3Jkcy1ncmFwaCAjY2hhbmdlZC1yZWNvcmRzLWdyYXBoX19jaGFydCB7XG4gIHBhZGRpbmc6IDVweCA1cHggMHB4IDVweDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG4jY2hhbmdlZC1yZWNvcmRzLWdyYXBoICNjaGFuZ2VkLXJlY29yZHMtZ3JhcGhfX2NoYXJ0ID4gZGl2IHtcbiAgcGFkZGluZzogMHB4O1xuICBtYXJnaW46IDBweDtcbn1cbiNncmFwaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy10b3A6IDIuNHJlbSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYyZDRjO1xuICBib3JkZXI6IDFweCBzb2xpZDtcbn1cbi50aW1lc3RhbXAtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiA1cHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuIiwiLyotLS0gIE5hbWVkIGNvbG9ycyAoZG8gbm90IGltcG9ydCkgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cblNpdGUgQ29sb3JzIFRvIEltcG9ydFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgT3ZlcmFsbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2hhZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQmFja2dyb3VuZHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFRyYW5zcGFyZW50IGJhY2tncm91bmRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBURVhUXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnB1dHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEdsb2JhbCBNb2RpZmllciBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tIERyYWZ0IEZpZ21hIENvbG9ycyAtLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbiNzb3VyY2Utc3RhdHVzLXByb2dyZXNzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4jc291cmNlLXN0YXR1cy1wcm9ncmVzcyAucHJvZ3Jlc3Mge1xuICB3aWR0aDogMTAwJTtcbn1cbiIsIi8qLS0tICBOYW1lZCBjb2xvcnMgKGRvIG5vdCBpbXBvcnQpICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG5TaXRlIENvbG9ycyBUbyBJbXBvcnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIE92ZXJhbGxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNoYWRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJhY2tncm91bmRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBUcmFuc3BhcmVudCBiYWNrZ3JvdW5kc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVEVYVFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSW5wdXRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBHbG9iYWwgTW9kaWZpZXIgXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBEcmFmdCBGaWdtYSBDb2xvcnMgLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4jc291cmNlLXN0YXR1cy1wcmV2aWV3IHtcbiAgei1pbmRleDogMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4jc291cmNlLXN0YXR1cy1wcmV2aWV3X19wb3B1cCxcbiNzb3VyY2Utc3RhdHVzLXByZXZpZXdfX3BvcHVwICNzb3VyY2Utc3RhdHVzLWRldGFpbHMge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiAxO1xufVxuI3NvdXJjZS1zdGF0dXMtcHJldmlld19fcG9wdXAgI3NvdXJjZS1zdGF0dXMtZGV0YWlsc19faGVhZGVyLFxuI3NvdXJjZS1zdGF0dXMtcHJldmlld19fcG9wdXAgI3NvdXJjZS1zdGF0dXMtZGV0YWlscyAjc291cmNlLXN0YXR1cy1kZXRhaWxzX19oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYyZDRjO1xufVxuI3NvdXJjZS1zdGF0dXMtcHJldmlld19fcG9wdXAgLmxhYmVsLFxuI3NvdXJjZS1zdGF0dXMtcHJldmlld19fcG9wdXAgI3NvdXJjZS1zdGF0dXMtZGV0YWlscyAubGFiZWwge1xuICB3aWR0aDogMTAwJTtcbn1cbiIsIi8qLS0tICBOYW1lZCBjb2xvcnMgKGRvIG5vdCBpbXBvcnQpICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG5TaXRlIENvbG9ycyBUbyBJbXBvcnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIE92ZXJhbGxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNoYWRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJhY2tncm91bmRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBUcmFuc3BhcmVudCBiYWNrZ3JvdW5kc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVEVYVFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSW5wdXRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBHbG9iYWwgTW9kaWZpZXIgXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBEcmFmdCBGaWdtYSBDb2xvcnMgLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4jc291cmNlLXN0YXR1cy1kZXRhaWxzIHtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAzMHJlbTtcbn1cbiNzb3VyY2Utc3RhdHVzLWRldGFpbHMgI3NvdXJjZS1zdGF0dXMtZGV0YWlsc19faGVhZGVyIHtcbiAgcGFkZGluZzogMC41cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNCwgNTYsIDg4LCAwLjQpO1xufVxuI3NvdXJjZS1zdGF0dXMtZGV0YWlscyAjc291cmNlLXN0YXR1cy1kZXRhaWxzX190aW1lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuI3NvdXJjZS1zdGF0dXMtZGV0YWlscyAjc291cmNlLXN0YXR1cy1kZXRhaWxzX190by1iYWQtcmVjb3JkcyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuI3NvdXJjZS1zdGF0dXMtZGV0YWlscyAjc291cmNlLXN0YXR1cy1kZXRhaWxzX19lcnJvcnMge1xuICB3aWR0aDogMTAwJTtcbn1cbiNzb3VyY2Utc3RhdHVzLWRldGFpbHMgI3NvdXJjZS1zdGF0dXMtZGV0YWlsc19fZXJyb3JzICNlcnJvci1tZXNzYWdlLFxuI3NvdXJjZS1zdGF0dXMtZGV0YWlscyAjc291cmNlLXN0YXR1cy1kZXRhaWxzX19lcnJvcnMgI2Vycm9yLW1lc3NhZ2UgI2Vycm9yLW1lc3NhZ2VfX2hlYWRlcixcbiNzb3VyY2Utc3RhdHVzLWRldGFpbHMgI3NvdXJjZS1zdGF0dXMtZGV0YWlsc19fZXJyb3JzICNlcnJvci1tZXNzYWdlICNlcnJvci1tZXNzYWdlX19jb250ZW50IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IHVuc2V0O1xufVxuI3NvdXJjZS1zdGF0dXMtZGV0YWlscyAjc291cmNlLXN0YXR1cy1kZXRhaWxzX19lcnJvci1zYW1wbGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuI3NvdXJjZS1zdGF0dXMtZGV0YWlscyAjc291cmNlLXN0YXR1cy1kZXRhaWxzX19zdGF0cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xufVxuI3NvdXJjZS1zdGF0dXMtZGV0YWlscyAjc291cmNlLXN0YXR1cy1kZXRhaWxzX19wcm9ncmVzcyAucHJvZ3Jlc3MgLmJhciB7XG4gIG1pbi13aWR0aDogMy41cmVtO1xufVxuIiwiLyotLS0gIE5hbWVkIGNvbG9ycyAoZG8gbm90IGltcG9ydCkgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cblNpdGUgQ29sb3JzIFRvIEltcG9ydFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgT3ZlcmFsbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2hhZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQmFja2dyb3VuZHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFRyYW5zcGFyZW50IGJhY2tncm91bmRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBURVhUXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnB1dHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEdsb2JhbCBNb2RpZmllciBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tIERyYWZ0IEZpZ21hIENvbG9ycyAtLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbiNiYWQtcmVjb3JkLXNhbXBsZSAjbG9jYWwtY29sbGVjdGlvbiAjbG9jYWwtY29sbGVjdGlvbl9faGVhZGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNiYWQtcmVjb3JkLXNhbXBsZSAjY29sbGVjdGlvbiB0Ym9keSB0ciA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgYmFja2dyb3VuZDogIzIxNDM2NDtcbn1cbiNiYWQtcmVjb3JkLXNhbXBsZSAudmFsdWUtY2VsbCB7XG4gIGNvbG9yOiB1bnNldCAhaW1wb3J0YW50O1xufVxuIiwiLyotLS0gIE5hbWVkIGNvbG9ycyAoZG8gbm90IGltcG9ydCkgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cblNpdGUgQ29sb3JzIFRvIEltcG9ydFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgT3ZlcmFsbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2hhZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQmFja2dyb3VuZHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFRyYW5zcGFyZW50IGJhY2tncm91bmRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBURVhUXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnB1dHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEdsb2JhbCBNb2RpZmllciBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tIERyYWZ0IEZpZ21hIENvbG9ycyAtLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbiNvdXRwdXQtcmVwbGljYXRpb24tZ3JhcGgge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI291dHB1dC1yZXBsaWNhdGlvbi1ncmFwaCAjb3V0cHV0LXJlcGxpY2F0aW9uLWdyYXBoX19oZWFkZXIge1xuICBwYWRkaW5nOiAwLjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogcmdiYSgyNCwgNTYsIDg4LCAwLjQpO1xufVxuI291dHB1dC1yZXBsaWNhdGlvbi1ncmFwaCAjb3V0cHV0LXJlcGxpY2F0aW9uLWdyYXBoX19jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbn1cbiNvdXRwdXQtcmVwbGljYXRpb24tZ3JhcGggI291dHB1dC1yZXBsaWNhdGlvbi1ncmFwaF9fY29udGVudCAjaGVhZGVyLXRpdGxlIHtcbiAgbWluLXdpZHRoOiA1cmVtO1xufVxuI291dHB1dC1yZXBsaWNhdGlvbi1ncmFwaCAjb3V0cHV0LXJlcGxpY2F0aW9uLWdyYXBoX193ZWxjb21lIHtcbiAgcGFkZGluZzogM3JlbTtcbn1cbiNvdXRwdXQtcmVwbGljYXRpb24tZ3JhcGggI291dHB1dC1yZXBsaWNhdGlvbi1ncmFwaF9fdGltZS1zZWxlY3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMC41cmVtO1xuICByaWdodDogMC41cmVtO1xuICB6LWluZGV4OiAxMDAwO1xufVxuI291dHB1dC1yZXBsaWNhdGlvbi1ncmFwaCAjb3V0cHV0LXJlcGxpY2F0aW9uLWdyYXBoX190aW1lLXNlbGVjdCAudGV4dCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbiNvdXRwdXQtcmVwbGljYXRpb24tZ3JhcGgubWluaW1pemVkICNzb3VyY2Uge1xuICBtYXgtd2lkdGg6IDE1cmVtO1xufVxuI291dHB1dC1yZXBsaWNhdGlvbi1ncmFwaCAjY29sbGVjdGlvbi50YWJsZSB0Ym9keSB0ciA+IHRkICNjZWxsLWNvbnRlbnQge1xuICBwYWRkaW5nOiAwLjVyZW0gMHJlbSAwLjVyZW0gMXJlbTtcbn1cbiNvdXRwdXQtcmVwbGljYXRpb24tZ3JhcGggI291dHB1dC1yZXBsaWNhdGlvbi1ncmFwaF9fY2hhcnQge1xuICBwYWRkaW5nOiA1cHggNXB4IDBweCA1cHg7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuI291dHB1dC1yZXBsaWNhdGlvbi1ncmFwaCAjb3V0cHV0LXJlcGxpY2F0aW9uLWdyYXBoX19jaGFydCA+IGRpdiB7XG4gIHBhZGRpbmc6IDBweDtcbiAgbWFyZ2luOiAwcHg7XG59XG4jZ3JhcGgge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiAyLjRyZW0gIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmMmQ0YztcbiAgYm9yZGVyOiAxcHggc29saWQ7XG59XG4udGltZXN0YW1wLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICByaWdodDogNXB4O1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtd2VpZ2h0OiAxMDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbiIsIi8qLS0tICBOYW1lZCBjb2xvcnMgKGRvIG5vdCBpbXBvcnQpICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG5TaXRlIENvbG9ycyBUbyBJbXBvcnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIE92ZXJhbGxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNoYWRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJhY2tncm91bmRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBUcmFuc3BhcmVudCBiYWNrZ3JvdW5kc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVEVYVFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSW5wdXRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBHbG9iYWwgTW9kaWZpZXIgXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBEcmFmdCBGaWdtYSBDb2xvcnMgLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4jbW9uaXRvci1zaGFwZS1vdmVydmlldy1kaWFncmFtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIG1hcmdpbi10b3A6IC0wLjc1cmVtO1xufVxuI21vbml0b3Itc2hhcGUtb3ZlcnZpZXctZGlhZ3JhbSAjbW9uaXRvci1zaGFwZS1vdmVydmlldy1kaWFncmFtX19jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4jbW9uaXRvci1zaGFwZS1vdmVydmlldy1kaWFncmFtICNtb25pdG9yLXNoYXBlLW92ZXJ2aWV3LWRpYWdyYW1fX2NvbnRlbnQgI21vbml0b3Itc2hhcGUtb3ZlcnZpZXctZGlhZ3JhbV9fc2VjdGlvbiB7XG4gIG1pbi13aWR0aDogMjVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuI21vbml0b3Itc2hhcGUtb3ZlcnZpZXctZGlhZ3JhbSAjbW9uaXRvci1zaGFwZS1vdmVydmlldy1kaWFncmFtX19jb250ZW50ICNtb25pdG9yLXNoYXBlLW92ZXJ2aWV3LWRpYWdyYW1fX3NlY3Rpb24uc2hhcGUge1xuICBtaW4td2lkdGg6IDE1cmVtO1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIG1heC13aWR0aDogMzByZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAxcmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEzMDBweCkge1xuICAjbW9uaXRvci1zaGFwZS1vdmVydmlldy1kaWFncmFtIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICB9XG4gICNtb25pdG9yLXNoYXBlLW92ZXJ2aWV3LWRpYWdyYW1fX2NvbnRlbnQge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgI21vbml0b3Itc2hhcGUtb3ZlcnZpZXctZGlhZ3JhbSA+IGRpdiA+IHN2ZyB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuIiwiLyotLS0gIE5hbWVkIGNvbG9ycyAoZG8gbm90IGltcG9ydCkgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cblNpdGUgQ29sb3JzIFRvIEltcG9ydFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgT3ZlcmFsbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2hhZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQmFja2dyb3VuZHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFRyYW5zcGFyZW50IGJhY2tncm91bmRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBURVhUXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnB1dHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEdsb2JhbCBNb2RpZmllciBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tIERyYWZ0IEZpZ21hIENvbG9ycyAtLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbiNwdWJsaXNoZWQtc2hhcGUtbm9kZV9fd3JhcHBlciB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG4jcHVibGlzaGVkLXNoYXBlLW5vZGVfX3dyYXBwZXIgPiBhOmZpcnN0LWNoaWxkIHtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xufVxuI3B1Ymxpc2hlZC1zaGFwZS1ub2RlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogIzBmMmQ0YztcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDFyZW07XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDFyZW07XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBtaW4td2lkdGg6IGZpdC1jb250ZW50O1xuICB3aWR0aDogMTAwJTtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuI3B1Ymxpc2hlZC1zaGFwZS1ub2RlICNwdWJsaXNoZWQtc2hhcGUtbm9kZV9fbWFpbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbn1cbiNwdWJsaXNoZWQtc2hhcGUtbm9kZSAjcHVibGlzaGVkLXNoYXBlLW5vZGVfX21haW4gaW1nIHtcbiAgd2lkdGg6IDVyZW07XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xufVxuI3B1Ymxpc2hlZC1zaGFwZS1ub2RlOmhvdmVyICNwdWJsaXNoZWQtc2hhcGUtbm9kZV9fZWRpdC1oaW50IHtcbiAgY29sb3I6IHdoaXRlO1xuICBvcGFjaXR5OiAwLjk7XG4gIHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluLW91dDtcbn1cbiNwdWJsaXNoZWQtc2hhcGUtbm9kZSAjcHVibGlzaGVkLXNoYXBlLW5vZGVfX2VkaXQtaGludCB7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDAuNXJlbTtcbiAgcmlnaHQ6IDAuMnJlbTtcbn1cbiNwdWJsaXNoZWQtc2hhcGUtbm9kZV9fYWN0aW9ucyB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDFyZW07XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxcmVtO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbiIsIi8qLS0tICBOYW1lZCBjb2xvcnMgKGRvIG5vdCBpbXBvcnQpICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG5TaXRlIENvbG9ycyBUbyBJbXBvcnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIE92ZXJhbGxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNoYWRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJhY2tncm91bmRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBUcmFuc3BhcmVudCBiYWNrZ3JvdW5kc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVEVYVFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSW5wdXRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBHbG9iYWwgTW9kaWZpZXIgXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBEcmFmdCBGaWdtYSBDb2xvcnMgLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4jYWN0aW9uYWJsZS1zb3VyY2Uge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluLW91dDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwZjJkNGM7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgbWluLXdpZHRoOiBmaXQtY29udGVudDtcbiAgd2lkdGg6IDEwMCU7XG59XG4jYWN0aW9uYWJsZS1zb3VyY2UgI3NvdXJjZSB7XG4gIHBhZGRpbmctcmlnaHQ6IDJyZW07XG59XG4jYWN0aW9uYWJsZS1zb3VyY2U6aG92ZXIge1xuICBib3JkZXI6IDFweCBzb2xpZCAjMGI5YmRjO1xuICBvcGFjaXR5OiAxO1xufVxuI2FjdGlvbmFibGUtc291cmNlOmhvdmVyOmZvY3VzLXdpdGhpbiB7XG4gIHotaW5kZXg6IDEwMDAwMDtcbn1cbiNhY3Rpb25hYmxlLXNvdXJjZTpob3ZlciAjYWN0aW9uYWJsZS1zb3VyY2VfX2FjdGlvbnMsXG4jYWN0aW9uYWJsZS1zb3VyY2U6aG92ZXIgI2FjdGlvbmFibGUtc291cmNlX19lZGl0LWhpbnQge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZS1pbi1vdXQ7XG59XG4jYWN0aW9uYWJsZS1zb3VyY2UuZXhwYW5kLW9wdGlvbnMge1xuICBvcGFjaXR5OiAxO1xufVxuI2FjdGlvbmFibGUtc291cmNlLmV4cGFuZC1vcHRpb25zICNhY3Rpb25hYmxlLXNvdXJjZV9fYWN0aW9ucyxcbiNhY3Rpb25hYmxlLXNvdXJjZS5leHBhbmQtb3B0aW9ucyAjYWN0aW9uYWJsZS1zb3VyY2VfX2VkaXQtaGludCB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6ICMwZjJkNGM7XG59XG4jYWN0aW9uYWJsZS1zb3VyY2UuaGlkZS1zb3VyY2UgI3NvdXJjZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jYWN0aW9uYWJsZS1zb3VyY2UgI2FjdGlvbmFibGUtc291cmNlX19lZGl0LWhpbnQge1xuICBjb2xvcjogd2hpdGU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiAwLjVyZW07XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluLW91dDtcbn1cbiNhY3Rpb25hYmxlLXNvdXJjZSAjYWN0aW9uYWJsZS1zb3VyY2VfX2FjdGlvbnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcmlnaHQ6IDByZW07XG4gIHRvcDogMDtcbiAgbWFyZ2luOiAwLjVyZW07XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluLW91dDtcbn1cbiNhY3Rpb25hYmxlLXNvdXJjZSAjYWN0aW9uYWJsZS1zb3VyY2VfX2FjdGlvbnMgI2VsbGlwc2lzLW1lbnUge1xuICBwYWRkaW5nOiAwO1xufVxuIiwiLyotLS0gIE5hbWVkIGNvbG9ycyAoZG8gbm90IGltcG9ydCkgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cblNpdGUgQ29sb3JzIFRvIEltcG9ydFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgT3ZlcmFsbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2hhZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQmFja2dyb3VuZHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFRyYW5zcGFyZW50IGJhY2tncm91bmRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBURVhUXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnB1dHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEdsb2JhbCBNb2RpZmllciBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tIERyYWZ0IEZpZ21hIENvbG9ycyAtLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbiNwdWJsaXNoZWQtc291cmNlLXR5cGUtbm9kZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmctYm90dG9tOiAxLjI1cmVtO1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbn1cbiNwdWJsaXNoZWQtc291cmNlLXR5cGUtbm9kZS5yZWFkIHtcbiAgcGFkZGluZy1yaWdodDogMHJlbTtcbn1cbiNwdWJsaXNoZWQtc291cmNlLXR5cGUtbm9kZS5yZXBsaWNhdGlvbixcbiNwdWJsaXNoZWQtc291cmNlLXR5cGUtbm9kZS53cml0ZSB7XG4gIHBhZGRpbmctbGVmdDogMS41cmVtO1xufVxuI3B1Ymxpc2hlZC1zb3VyY2UtdHlwZS1ub2RlICNiYXRjaC1zdGF0dXMtc3VtbWFyeV9fY29udGVudCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuI3B1Ymxpc2hlZC1zb3VyY2UtdHlwZS1ub2RlICNwdWJsaXNoZWQtc291cmNlLXR5cGUtbm9kZV9fc291cmNlIHtcbiAgd2lkdGg6IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7XG59XG4ucmVhZCNwdWJsaXNoZWQtc291cmNlLXR5cGUtbm9kZSAjcHVibGlzaGVkLXNvdXJjZS10eXBlLW5vZGVfX3NvdXJjZSB7XG4gIHBhZGRpbmctcmlnaHQ6IDByZW07XG59XG4jcHVibGlzaGVkLXNvdXJjZS10eXBlLW5vZGUgI3B1Ymxpc2hlZC1zb3VyY2UtdHlwZS1ub2RlX19zb3VyY2UgI2FjdGlvbmFibGUtc291cmNlIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXJlbTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNXJlbTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDByZW07XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcmVtO1xuICBtYXgtd2lkdGg6IDIycmVtO1xufVxuI3B1Ymxpc2hlZC1zb3VyY2UtdHlwZS1ub2RlICNwdWJsaXNoZWQtc291cmNlLXR5cGUtbm9kZV9fc291cmNlICNhY3Rpb25hYmxlLXNvdXJjZSAjc291cmNlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxNSwgNDUsIDc2LCAwLjgpO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cmVtO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwcHg7XG4gIGJvcmRlci1sZWZ0LXN0eWxlOiBub25lO1xufVxuI3B1Ymxpc2hlZC1zb3VyY2UtdHlwZS1ub2RlICNwdWJsaXNoZWQtc291cmNlLXR5cGUtbm9kZV9fc291cmNlICNhY3Rpb25hYmxlLXNvdXJjZSAjc291cmNlICNzb3VyY2Utc3RhdHVzLXByb2dyZXNzIHtcbiAgcGFkZGluZy1sZWZ0OiAzLjVyZW07XG59XG4jcHVibGlzaGVkLXNvdXJjZS10eXBlLW5vZGUgI3B1Ymxpc2hlZC1zb3VyY2UtdHlwZS1ub2RlX19zb3VyY2UgI2FjdGlvbmFibGUtc291cmNlICNzb3VyY2UgI3NvdXJjZV9fdGl0bGUge1xuICBwYWRkaW5nLWxlZnQ6IDMuNXJlbTtcbn1cbiNwdWJsaXNoZWQtc291cmNlLXR5cGUtbm9kZSAjcHVibGlzaGVkLXNvdXJjZS10eXBlLW5vZGVfX3NvdXJjZSAjYWN0aW9uYWJsZS1zb3VyY2UgI3NvdXJjZSAjcGx1Z2luLWltYWdlLWVkaXRvciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTFyZW07XG59XG4jcHVibGlzaGVkLXNvdXJjZS10eXBlLW5vZGUgI3B1Ymxpc2hlZC1zb3VyY2UtdHlwZS1ub2RlX19zb3VyY2UgI2FjdGlvbmFibGUtc291cmNlICNzb3VyY2UgI3BsdWdpbi1pbWFnZS1lZGl0b3IgI3BsdWdpbi1pbWFnZS1lZGl0b3JfX2ltYWdlLXJlbmRlciB7XG4gIG1pbi13aWR0aDogNS41cmVtO1xuICBtaW4taGVpZ2h0OiA1LjVyZW07XG59XG4jcHVibGlzaGVkLXNvdXJjZS10eXBlLW5vZGUgI3B1Ymxpc2hlZC1zb3VyY2UtdHlwZS1ub2RlX19zb3VyY2UgI2FjdGlvbmFibGUtc291cmNlICNzb3VyY2UgI3BsdWdpbi1pbWFnZS1lZGl0b3IgI3BsdWdpbi1pbWFnZS1lZGl0b3JfX2ltYWdlLXJlbmRlciBpbWcge1xuICBtaW4td2lkdGg6IDUuNXJlbTtcbn1cbiNwdWJsaXNoZWQtc291cmNlLXR5cGUtbm9kZSAjcHVibGlzaGVkLXNvdXJjZS10eXBlLW5vZGVfX3N0YXRpc3RpYyB7XG4gIGJhY2tncm91bmQ6ICMxODM4NTg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZ3JvdzogMTtcbiAgbWluLXdpZHRoOiAxMXJlbTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cmVtO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNXJlbTtcbn1cbiIsIi8qLS0tICBOYW1lZCBjb2xvcnMgKGRvIG5vdCBpbXBvcnQpICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG5TaXRlIENvbG9ycyBUbyBJbXBvcnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIE92ZXJhbGxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNoYWRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJhY2tncm91bmRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBUcmFuc3BhcmVudCBiYWNrZ3JvdW5kc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVEVYVFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSW5wdXRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBHbG9iYWwgTW9kaWZpZXIgXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBEcmFmdCBGaWdtYSBDb2xvcnMgLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4jY29ubmVjdGlvbi1ub2RlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZy1ib3R0b206IDEuMjVyZW07XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xufVxuI2Nvbm5lY3Rpb24tbm9kZSAjcHVibGlzaGVkLWNvbm5lY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCA0NSwgNzYsIDAuOCk7XG4gIGJvcmRlci1yYWRpdXM6IDVyZW07XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIHBhZGRpbmctbGVmdDogNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDJyZW07XG4gIG1pbi13aWR0aDogMjByZW07XG59XG4jY29ubmVjdGlvbi1ub2RlICNwdWJsaXNoZWQtY29ubmVjdGlvbiAjc291cmNlX190aXRsZSB7XG4gIHBhZGRpbmctbGVmdDogMy41cmVtO1xufVxuI2Nvbm5lY3Rpb24tbm9kZSAjcHVibGlzaGVkLWNvbm5lY3Rpb24gI3BsdWdpbi1pbWFnZS1lZGl0b3Ige1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0xcmVtO1xufVxuI2Nvbm5lY3Rpb24tbm9kZSAjcHVibGlzaGVkLWNvbm5lY3Rpb24gI3BsdWdpbi1pbWFnZS1lZGl0b3IgI3BsdWdpbi1pbWFnZS1lZGl0b3JfX2ltYWdlLXJlbmRlciB7XG4gIG1pbi13aWR0aDogNS41cmVtO1xuICBtaW4taGVpZ2h0OiA1LjVyZW07XG59XG4jY29ubmVjdGlvbi1ub2RlICNwdWJsaXNoZWQtY29ubmVjdGlvbiAjcGx1Z2luLWltYWdlLWVkaXRvciAjcGx1Z2luLWltYWdlLWVkaXRvcl9faW1hZ2UtcmVuZGVyIGltZyB7XG4gIG1pbi13aWR0aDogNS41cmVtO1xufVxuIiwiLyotLS0gIE5hbWVkIGNvbG9ycyAoZG8gbm90IGltcG9ydCkgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cblNpdGUgQ29sb3JzIFRvIEltcG9ydFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgT3ZlcmFsbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2hhZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQmFja2dyb3VuZHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFRyYW5zcGFyZW50IGJhY2tncm91bmRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBURVhUXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnB1dHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEdsb2JhbCBNb2RpZmllciBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tIERyYWZ0IEZpZ21hIENvbG9ycyAtLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbiNwdWJsaXNoZWQtY29ubmVjdGlvbiB7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTMpO1xufVxuI3B1Ymxpc2hlZC1jb25uZWN0aW9uLmNsaWNrYWJsZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICMwZjJkNGM7XG59XG4jcHVibGlzaGVkLWNvbm5lY3Rpb24gI3B1Ymxpc2hlZC1jb25uZWN0aW9uX3RpdGxlIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbiIsIi8qLS0tICBOYW1lZCBjb2xvcnMgKGRvIG5vdCBpbXBvcnQpICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG5TaXRlIENvbG9ycyBUbyBJbXBvcnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIE92ZXJhbGxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNoYWRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJhY2tncm91bmRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBUcmFuc3BhcmVudCBiYWNrZ3JvdW5kc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVEVYVFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSW5wdXRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBHbG9iYWwgTW9kaWZpZXIgXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBEcmFmdCBGaWdtYSBDb2xvcnMgLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4jcHVibGlzaGVkLXNvdXJjZS10eXBlLWdyb3VwIHtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGJhY2tncm91bmQ6IHJnYmEoMTUsIDQ1LCA3NiwgMC4xKTtcbiAgd2lkdGg6IGF1dG87XG4gIG1pbi13aWR0aDogMTdyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4jcHVibGlzaGVkLXNvdXJjZS10eXBlLWdyb3VwICNwdWJsaXNoZWQtc291cmNlLXR5cGUtZ3JvdXBfX2Rpc3BsYXktYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4jcHVibGlzaGVkLXNvdXJjZS10eXBlLWdyb3VwICNwdWJsaXNoZWQtc291cmNlLXR5cGUtZ3JvdXBfX3N1bW1hcml6ZWQtY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjMGYyZDRjO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgcGFkZGluZzogMC4yNXJlbTtcbn1cbiNwdWJsaXNoZWQtc291cmNlLXR5cGUtZ3JvdXAgI3B1Ymxpc2hlZC1zb3VyY2UtdHlwZS1ncm91cF9fdG9wIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBiYWNrZ3JvdW5kOiAjMkU1Mjc1O1xuICBwYWRkaW5nOiAwLjI1cmVtO1xufVxuI3B1Ymxpc2hlZC1zb3VyY2UtdHlwZS1ncm91cCAjcHVibGlzaGVkLXNvdXJjZS10eXBlLWdyb3VwX192aWV3LXN3aXRjaCxcbiNwdWJsaXNoZWQtc291cmNlLXR5cGUtZ3JvdXAgI3B1Ymxpc2hlZC1zb3VyY2UtdHlwZS1ncm91cF9fc3VtbWFyaXplLXRvZ2dsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogMTtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICBwYWRkaW5nOiAwLjI1cmVtO1xufVxuI3B1Ymxpc2hlZC1zb3VyY2UtdHlwZS1ncm91cCAjcHVibGlzaGVkLXNvdXJjZS10eXBlLWdyb3VwX192aWV3LXN3aXRjaDpob3ZlcixcbiNwdWJsaXNoZWQtc291cmNlLXR5cGUtZ3JvdXAgI3B1Ymxpc2hlZC1zb3VyY2UtdHlwZS1ncm91cF9fc3VtbWFyaXplLXRvZ2dsZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICMwYjliZGM7XG59XG4jcHVibGlzaGVkLXNvdXJjZS10eXBlLWdyb3VwICNwdWJsaXNoZWQtc291cmNlLXR5cGUtZ3JvdXBfX2NvbnRlbnQge1xuICBwYWRkaW5nOiAwLjI1cmVtO1xuICBwYWRkaW5nLXRvcDogMDtcbn1cbi5yZWFkI3B1Ymxpc2hlZC1zb3VyY2UtdHlwZS1ncm91cCAjcHVibGlzaGVkLXNvdXJjZS10eXBlLWdyb3VwX19jb250ZW50IHtcbiAgcGFkZGluZy1sZWZ0OiAycmVtO1xufVxuIiwiI2RldGFpbGVkLWhlYWRlci5jb21wb3NpdGUtcmVjb3JkLXRvdGFscyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgPiNkZXRhaWxlZC1oZWFkZXJfX2xlZnQtaW1hZ2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQgICAgOiAtMzBweDtcbiAgICAgICAgdG9wICAgICA6IDEwcHg7XG4gICAgfVxufSIsIi8qLS0tICBOYW1lZCBjb2xvcnMgKGRvIG5vdCBpbXBvcnQpICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG5TaXRlIENvbG9ycyBUbyBJbXBvcnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIE92ZXJhbGxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNoYWRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJhY2tncm91bmRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBUcmFuc3BhcmVudCBiYWNrZ3JvdW5kc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVEVYVFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSW5wdXRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBHbG9iYWwgTW9kaWZpZXIgXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBEcmFmdCBGaWdtYSBDb2xvcnMgLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4jY3Jvc3Mtc3lzdGVtLXRhYmxlICNjcm9zcy1zeXN0ZW0tdGFibGVfX2hlYWRlciB7XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCA0NSwgNzYsIDAuMSk7XG59XG4jY3Jvc3Mtc3lzdGVtLXRhYmxlLm1pbmltaXplZC12aWV3ICNjcm9zcy1zeXN0ZW0tc3RhdHMge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTMpO1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbiNjcm9zcy1zeXN0ZW0tdGFibGUubWluaW1pemVkLXZpZXcgI2Nyb3NzLXN5c3RlbS1zdGF0cyAudWkuc3RhdGlzdGljOm5vdCgucmVkKTpub3QoLmdyZWVuKSA+IC52YWx1ZSxcbiNjcm9zcy1zeXN0ZW0tdGFibGUubWluaW1pemVkLXZpZXcgI2Nyb3NzLXN5c3RlbS1zdGF0cyAudWkuc3RhdGlzdGljID4gLmxhYmVsIHtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIG9wYWNpdHk6IDAuOTtcbn1cbiIsIi8qLS0tICBOYW1lZCBjb2xvcnMgKGRvIG5vdCBpbXBvcnQpICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG5TaXRlIENvbG9ycyBUbyBJbXBvcnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIE92ZXJhbGxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNoYWRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJhY2tncm91bmRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBUcmFuc3BhcmVudCBiYWNrZ3JvdW5kc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVEVYVFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSW5wdXRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBHbG9iYWwgTW9kaWZpZXIgXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBEcmFmdCBGaWdtYSBDb2xvcnMgLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4jZ3JvdXAtc2l6ZS1kaXN0cmlidXRpb24ge1xuICB3aWR0aDogMTAwJTtcbn1cbiNncm91cC1zaXplLWRpc3RyaWJ1dGlvbiAjZ3JvdXAtc2l6ZS1kaXN0cmlidXRpb25fX2JhcnMge1xuICBtYXJnaW4tdG9wOiAzcmVtO1xufVxuI2dyb3VwLXNpemUtZGlzdHJpYnV0aW9uICNncm91cC1zaXplLWRpc3RyaWJ1dGlvbl9faGVhZGVyIHtcbiAgcGFkZGluZzogMC4yNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjQsIDU2LCA4OCwgMC40KTtcbn1cbiNncm91cC1zaXplLWRpc3RyaWJ1dGlvbi5zbWFsbCAjZ3JvdXAtc2l6ZS1kaXN0cmlidXRpb25fX2JhcnMgPiBkaXYge1xuICBtaW4taGVpZ2h0OiAyNXZoO1xuICBtYXgtaGVpZ2h0OiAyNXZoO1xufVxuI2dyb3VwLXNpemUtZGlzdHJpYnV0aW9uLm1lZGl1bSAjZ3JvdXAtc2l6ZS1kaXN0cmlidXRpb25fX2JhcnMgPiBkaXYge1xuICBtaW4taGVpZ2h0OiA1MHZoO1xuICBtYXgtaGVpZ2h0OiA1MHZoO1xufVxuI2dyb3VwLXNpemUtZGlzdHJpYnV0aW9uLmxhcmdlICNncm91cC1zaXplLWRpc3RyaWJ1dGlvbl9fYmFycyA+IGRpdiB7XG4gIG1pbi1oZWlnaHQ6IDc1dmg7XG4gIG1heC1oZWlnaHQ6IDc1dmg7XG59XG4jZ3JvdXAtc2l6ZS1kaXN0cmlidXRpb24gbGluZSB7XG4gIG9wYWNpdHk6IDAuMjU7XG59XG4jZ3JvdXAtc2l6ZS1kaXN0cmlidXRpb24gc3ZnIHRleHQge1xuICBmaWxsOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuIiwiLyotLS0gIE5hbWVkIGNvbG9ycyAoZG8gbm90IGltcG9ydCkgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cblNpdGUgQ29sb3JzIFRvIEltcG9ydFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgT3ZlcmFsbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2hhZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQmFja2dyb3VuZHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFRyYW5zcGFyZW50IGJhY2tncm91bmRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBURVhUXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnB1dHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEdsb2JhbCBNb2RpZmllciBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tIERyYWZ0IEZpZ21hIENvbG9ycyAtLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbiNjb21wb3NpdGVzLWdyYXBoIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiNjb21wb3NpdGVzLWdyYXBoIGxpbmUge1xuICBvcGFjaXR5OiAwLjI1O1xufVxuI2NvbXBvc2l0ZXMtZ3JhcGggI2NvbXBvc2l0ZXMtZ3JhcGhfX2hlYWRlciB7XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI0LCA1NiwgODgsIDAuNCk7XG59XG4jY29tcG9zaXRlcy1ncmFwaCAjY29tcG9zaXRlcy1ncmFwaF9fbm8tcmVzdWx0cyB7XG4gIG1pbi1oZWlnaHQ6IDMwdmg7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbiNjb21wb3NpdGVzLWdyYXBoICNjb21wb3NpdGVzLWdyYXBoX19maWx0ZXJzIHtcbiAgdG9wOiAzcmVtO1xuICByaWdodDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbiNjb21wb3NpdGVzLWdyYXBoICNjb21wb3NpdGVzLWdyYXBoX19maWx0ZXJzID4gZGl2IHtcbiAgbWFyZ2luOiAwLjFyZW07XG59XG4jY29tcG9zaXRlcy1ncmFwaCAjY29tcG9zaXRlcy1ncmFwaF9fZmlsdGVycyAudGV4dCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbiNjb21wb3NpdGVzLWdyYXBoICNjb21wb3NpdGVzLWdyYXBoX19maWx0ZXJzICNzb3VyY2U6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTMpO1xufVxuI2NvbXBvc2l0ZXMtZ3JhcGggI2NvbXBvc2l0ZXMtZ3JhcGhfX2ZpbHRlcnMgI2RhcmsuZHJvcGRvd24gLm1lbnUgPiAuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMykgIWltcG9ydGFudDtcbn1cbiNjb21wb3NpdGVzLWdyYXBoICNjb21wb3NpdGVzLWdyYXBoX19maWx0ZXJzID4gZGl2LmRyb3Bkb3duOmZpcnN0LW9mLXR5cGUge1xuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xufVxuI2NvbXBvc2l0ZXMtZ3JhcGggI2NvbXBvc2l0ZXMtZ3JhcGhfX2ZpbHRlcnMgPiBkaXYuZHJvcGRvd246bGFzdC1vZi10eXBlIHtcbiAgbWluLXdpZHRoOiAyMHJlbTtcbn1cbiNjb21wb3NpdGVzLWdyYXBoLnNtYWxsICNjb21wb3NpdGVzLWdyYXBoX19iYXJzID4gZGl2IHtcbiAgbWluLWhlaWdodDogMjV2aDtcbiAgbWF4LWhlaWdodDogMjV2aDtcbn1cbiNjb21wb3NpdGVzLWdyYXBoLm1lZGl1bSAjY29tcG9zaXRlcy1ncmFwaF9fYmFycyA+IGRpdiB7XG4gIG1pbi1oZWlnaHQ6IDUwdmg7XG4gIG1heC1oZWlnaHQ6IDUwdmg7XG59XG4jY29tcG9zaXRlcy1ncmFwaC5sYXJnZSAjY29tcG9zaXRlcy1ncmFwaF9fYmFycyA+IGRpdiB7XG4gIG1pbi1oZWlnaHQ6IDc1dmg7XG4gIG1heC1oZWlnaHQ6IDc1dmg7XG59XG4jY29tcG9zaXRlcy1ncmFwaCAjY29tcG9zaXRlcy1ncmFwaF9fYmFycyA+IGRpdiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuI2NvbXBvc2l0ZXMtZ3JhcGggI2NvbXBvc2l0ZXMtZ3JhcGhfX2NoYW5nZS1kZXRhaWxzIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nLXJpZ2h0OiA1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuI2NvbXBvc2l0ZXMtZ3JhcGggc3ZnIHRleHQge1xuICBmaWxsOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuIiwiLyotLS0gIE5hbWVkIGNvbG9ycyAoZG8gbm90IGltcG9ydCkgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cblNpdGUgQ29sb3JzIFRvIEltcG9ydFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgT3ZlcmFsbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2hhZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQmFja2dyb3VuZHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFRyYW5zcGFyZW50IGJhY2tncm91bmRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBURVhUXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnB1dHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEdsb2JhbCBNb2RpZmllciBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tIERyYWZ0IEZpZ21hIENvbG9ycyAtLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbiNpbmRpdmlkdWFsLXdyaXRlYmFja3MgI2luZGl2aWR1YWwtd3JpdGViYWNrc19faGVhZGVyIHtcbiAgcGFkZGluZzogMC4yNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjQsIDU2LCA4OCwgMC40KTtcbn1cbiNpbmRpdmlkdWFsLXdyaXRlYmFja3MubWluaW1pemVkIHtcbiAgbWF4LWhlaWdodDogNTB2aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbiNpbmRpdmlkdWFsLXdyaXRlYmFja3MubWluaW1pemVkIC52YWx1ZS1jZWxsIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuI2luZGl2aWR1YWwtd3JpdGViYWNrcyAjaW5kaXZpZHVhbC13cml0ZWJhY2tzX19wYWdpbmF0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcbiAgYmFja2dyb3VuZDogIzBmMmQ0YztcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAxO1xuICB6LWluZGV4OiA1O1xufVxuI2luZGl2aWR1YWwtd3JpdGViYWNrcyAjaW5kaXZpZHVhbC13cml0ZWJhY2tzX19wYWdpbmF0aW9uIC5pdGVtIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuI2luZGl2aWR1YWwtd3JpdGViYWNrcyAjaW5kaXZpZHVhbC13cml0ZWJhY2tzX19wYWdpbmF0aW9uIC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMGI5YmRjO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbiNpbmRpdmlkdWFsLXdyaXRlYmFja3MgLmhvcml6b250YWwtc2Nyb2xsLXdyYXBwZXIge1xuICBoZWlnaHQ6IDg4dmggIWltcG9ydGFudDtcbn1cbiIsIi8qLS0tICBOYW1lZCBjb2xvcnMgKGRvIG5vdCBpbXBvcnQpICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG5TaXRlIENvbG9ycyBUbyBJbXBvcnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIE92ZXJhbGxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNoYWRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJhY2tncm91bmRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBUcmFuc3BhcmVudCBiYWNrZ3JvdW5kc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVEVYVFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSW5wdXRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBHbG9iYWwgTW9kaWZpZXIgXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBEcmFmdCBGaWdtYSBDb2xvcnMgLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4jc2NoZW1hLXByb2ZpbGUtbGluayB7XG4gIHBhZGRpbmc6IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiA1cmVtO1xufVxuI3NjaGVtYS1wcm9maWxlLWxpbmsgI3NjaGVtYS1wcm9maWxlLWxpbmtfX3NhbXBsZXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuI3NjaGVtYS1wcm9maWxlLWxpbmsgI3NjaGVtYS1wcm9maWxlLWxpbmtfX3NhbXBsZXMgI3NjaGVtYS1wcm9maWxlLWxpbmtfX3NhbXBsZSB7XG4gIHBhZGRpbmc6IDJyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4jc2NoZW1hLXByb2ZpbGUtbGluayAjc2NoZW1hLXByb2ZpbGUtbGlua19fc2FtcGxlcyAjc2NoZW1hLXByb2ZpbGUtbGlua19fc2FtcGxlOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzBmMmQ0YztcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7XG59XG4jc2NoZW1hLXByb2ZpbGUtbGluayAjc2NoZW1hLXByb2ZpbGUtbGlua19fc2FtcGxlcyAjc2NoZW1hLXByb2ZpbGUtbGlua19fc2FtcGxlOmhvdmVyIHN2ZyA+IGcgPiByZWN0IHtcbiAgZmlsbDogIzBiOWJkYyAhaW1wb3J0YW50O1xufVxuI3NjaGVtYS1wcm9maWxlLWxpbmsgI3NjaGVtYS1wcm9maWxlLWxpbmtfX3NhbXBsZXMgI3NjaGVtYS1wcm9maWxlLWxpbmtfX3NhbXBsZSAjc2NoZW1hLXByb2ZpbGUtbGlua19fc2FtcGxlLXZhbHVlIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuI3NjaGVtYS1wcm9maWxlLWxpbmsgI3NjaGVtYS1wcm9maWxlLWxpbmtfX3NhbXBsZXMgI3NjaGVtYS1wcm9maWxlLWxpbmtfX3NhbXBsZSAjc2NoZW1hLXByb2ZpbGUtbGlua19fc2FtcGxlLXZhbHVlICNzY2hlbWEtcHJvZmlsZS1saW5rX19ib3hwbG90IHtcbiAgbWluLXdpZHRoOiAzcmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG59XG4jc2NoZW1hLXByb2ZpbGUtbGluayAjc2NoZW1hLXByb2ZpbGUtbGlua19fc2FtcGxlcyAjc2NoZW1hLXByb2ZpbGUtbGlua19fc2FtcGxlIHN2ZyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuIiwiLyotLS0gIE5hbWVkIGNvbG9ycyAoZG8gbm90IGltcG9ydCkgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cblNpdGUgQ29sb3JzIFRvIEltcG9ydFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgT3ZlcmFsbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2hhZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQmFja2dyb3VuZHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFRyYW5zcGFyZW50IGJhY2tncm91bmRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBURVhUXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnB1dHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEdsb2JhbCBNb2RpZmllciBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tIERyYWZ0IEZpZ21hIENvbG9ycyAtLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbiNwYXN0LWJhZC1yZWNvcmRzIHtcbiAgcGFkZGluZzogMC4yNXJlbTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cbiNwYXN0LWJhZC1yZWNvcmRzICNsb2NhbC1jb2xsZWN0aW9uIHtcbiAgaGVpZ2h0OiA0MnZoICFpbXBvcnRhbnQ7XG59XG4jcGFzdC1iYWQtcmVjb3JkcyAjY29sbGVjdGlvbiB0Ym9keSB0ciA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMzclO1xuICBtYXgtd2lkdGg6IDQ5cmVtO1xuICBtaW4td2lkdGg6IDIwcmVtO1xufVxuI3Bhc3QtYmFkLXJlY29yZHMgI2NvbGxlY3Rpb24gdGJvZHkgdHIgPiB0ZDpudGgtY2hpbGQoMikge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAyNSU7XG4gIG1pbi13aWR0aDogMTVyZW07XG59XG4jcGFzdC1iYWQtcmVjb3JkcyAuaG9yaXpvbnRhbC1zY3JvbGwtd3JhcHBlciB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgaGVpZ2h0OiA4OHZoICFpbXBvcnRhbnQ7XG59XG4jcGFzdC1iYWQtcmVjb3JkcyAjbG9jYWwtY29sbGVjdGlvbl9faGVhZGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNwYXN0LWJhZC1yZWNvcmRzICNwYXN0LWJhZC1yZWNvcmRzX19oZWFkZXIge1xuICBwYWRkaW5nOiAwLjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogcmdiYSgyNCwgNTYsIDg4LCAwLjQpO1xufVxuI3Bhc3QtYmFkLXJlY29yZHMubWluaW1pemVkIHtcbiAgbWF4LWhlaWdodDogNTB2aDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuI3Bhc3QtYmFkLXJlY29yZHMubWluaW1pemVkIC5ob3Jpem9udGFsLXNjcm9sbC13cmFwcGVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNCwgNTYsIDg4LCAwLjQpO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIGhlaWdodDogNDF2aCAhaW1wb3J0YW50O1xufVxuI3Bhc3QtYmFkLXJlY29yZHMubWluaW1pemVkIC52YWx1ZS1jZWxsIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuI3Bhc3QtYmFkLXJlY29yZHNfX3BhZ2luYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xuICBiYWNrZ3JvdW5kOiAjMGYyZDRjO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIG9wYWNpdHk6IDE7XG4gIHotaW5kZXg6IDU7XG59XG4jcGFzdC1iYWQtcmVjb3Jkc19fcGFnaW5hdGlvbiAuZG93bmxvYWQtYmFkLXJlY29yZHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDVyZW07XG59XG4jcGFzdC1iYWQtcmVjb3Jkc19fcGFnaW5hdGlvbiAuaXRlbSB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cbiNwYXN0LWJhZC1yZWNvcmRzX19wYWdpbmF0aW9uIC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMGI5YmRjO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbiIsIi8qLS0tICBOYW1lZCBjb2xvcnMgKGRvIG5vdCBpbXBvcnQpICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG5TaXRlIENvbG9ycyBUbyBJbXBvcnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIE92ZXJhbGxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNoYWRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJhY2tncm91bmRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBUcmFuc3BhcmVudCBiYWNrZ3JvdW5kc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVEVYVFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSW5wdXRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBHbG9iYWwgTW9kaWZpZXIgXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBEcmFmdCBGaWdtYSBDb2xvcnMgLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4jbW9uaXRvci1sb2FkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHRvcDogaW5oZXJpdCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTMpO1xufVxuI21vbml0b3ItZ29sZGVuLXJlY29yZCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuI21vbml0b3ItZ29sZGVuLXJlY29yZCAjbW9uaXRvci1nb2xkZW4tcmVjb3JkX190b3AtYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuI21vbml0b3ItZ29sZGVuLXJlY29yZCAjbW9uaXRvci1nb2xkZW4tcmVjb3JkX190b3AtYmFyICNtb25pdG9yLWdvbGRlbi1yZWNvcmRfX2FnZW50cyB7XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIGhlaWdodDogMDtcbn1cbiNtb25pdG9yLWdvbGRlbi1yZWNvcmQgI21vbml0b3ItZ29sZGVuLXJlY29yZF9fdG9wLWJhciAjbW9uaXRvci1nb2xkZW4tcmVjb3JkX19hZ2VudHMgLnVpLmJhc2ljLmdyZWVuLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbiNtb25pdG9yLWdvbGRlbi1yZWNvcmQgLmJyZWFkY3J1bWIge1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIHBhZGRpbmctdG9wOiAwLjVyZW07XG59XG4jbW9uaXRvci1nb2xkZW4tcmVjb3JkIC5icmVhZGNydW1iIC5kaXZpZGVyIHtcbiAgY29sb3I6IHdoaXRlO1xuICBvcGFjaXR5OiAwLjU7XG59XG4jbW9uaXRvci1nb2xkZW4tcmVjb3JkIC5icmVhZGNydW1iICNyb3V0ZS10by5vbi1kYXJrIHtcbiAgb3BhY2l0eTogMC43NTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxMHB0O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==*/