/*

font mixin
$key: type style key (ex. bold-24 or roman-24). See typography.json for options.
$breakpoint: (optional) breakpoint key (ex. full or tablet). See breakpoints.json for options.

@include font(bold-24);

When used without a breakpoint specified this mixin will produce font properties
wrapped in media queries. It's a simple way to apply fully responsive type styles
to a class or element.

@include font(bold-24, full);

If a breakpoint is specified there will be only a single set of font properties
that are NOT wrapped in any media queries.

*/
/*

  color(yellow) single argument defaults to dark colors
  color(light, yellow) returns light yellow

*/
/* rounded corners
  usage: border-radius( baseline( n ) )
*/
/*

https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/

The mixin assumes you'll be nesting an element with the class of content inside your initial block

<div class="sixteen-nine">
  <div class="content">
    insert content here
    this will maintain a 16:9 aspect ratio
  </div>
</div>

*/
.Tweet-quoted-body .Tweet-body .Tweet-text {
  margin-bottom: 0rem; }

.Tweet-quoted {
  display: block;
  margin-top: 1.5rem;
  border: solid 1px #CCD6DD;
  border-radius: 0.25rem; }
  .Tweet-quoted .embedded-tweet {
    position: relative;
    height: 15.75rem; }
    .Tweet-quoted .embedded-tweet .embedded-tweet__loader {
      position: absolute;
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      opacity: 1;
      pointer-events: none;
      fill: #71C9F8; }
    .Tweet-quoted .embedded-tweet .embedded-tweet__container {
      position: absolute;
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      opacity: 0; }
      .Tweet-quoted .embedded-tweet .embedded-tweet__container iframe {
        height: auto;
        margin: 0 !important;
        border-radius: 0.25rem; }
    .Tweet-quoted .embedded-tweet .embedded-tweet__deleted {
      position: absolute;
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      opacity: 0;
      pointer-events: none; }

.tweet-InformationCircle, .tweet-InformationCircle--top {
  top: inherit;
  bottom: 1.2rem !important;
  margin: 3px 20px !important;
  padding: 0 !important; }
  @media (max-width: 402px) {
    .tweet-InformationCircle, .tweet-InformationCircle--top {
      bottom: 1.2rem !important; } }

.EmbeddedTweet {
  border: none !important;
  max-width: none; }

.EmbeddedTweet-tweet {
  padding: 1.5rem !important;
  border: none !important; }

.EmbeddedTweet-ancestor + .EmbeddedTweet-tweet {
  position: relative; }
  .EmbeddedTweet-ancestor + .EmbeddedTweet-tweet .MediaCard {
    margin-top: 0;
    margin-bottom: 0; }

.EmbeddedTweet-ancestor {
  position: relative; }
  .EmbeddedTweet-ancestor .Tweet-header .TweetAuthor-screenName {
    position: relative;
    top: -5px; }
  .EmbeddedTweet-ancestor .Tweet-header .Tweet-metadata {
    top: 0;
    right: 0;
    bottom: inherit; }
  .EmbeddedTweet-ancestor .Tweet-header .Tweet-metadata time {
    right: 0;
    top: 0; }
  .EmbeddedTweet-ancestor .Tweet-body .Tweet-text {
    margin-top: 1.5rem; }

.Tweet--compact {
  padding-left: 0; }

.Tweet-header {
  position: absolute;
  top: 1.5rem;
  width: calc(100% - 3rem);
  padding-left: 0; }
  .Tweet-header .Tweet-brand .u-hiddenInNarrowEnv {
    display: none; }
  .Tweet-header .Tweet-brand .u-hiddenInWideEnv {
    display: block !important; }
  .Tweet-header .Tweet-brand .Icon--twitter {
    fill: #1DA1F2;
    background-image: none;
    width: 1.875rem;
    height: 1.875rem; }
  .Tweet-header .TweetAuthor {
    margin-top: 0; }
    .Tweet-header .TweetAuthor .TweetAuthor-avatar {
      border-radius: 50%;
      width: 2.25rem;
      height: 2.25rem; }
    .Tweet-header .TweetAuthor .TweetAuthor-name {
      font-family: "Helvetica Neue LT", "Helvetica Neue", Helvetica, Arial, sans-serif;
      font-weight: 700;
      font-size: 0.87rem;
      line-height: 1.5rem;
      letter-spacing: 0.03rem;
      margin: 0;
      padding: 0 0 0rem 0;
      padding-left: 3rem;
      display: inline-block;
      height: 1rem;
      position: relative;
      top: -0.1875rem;
      text-decoration: none; }
    .Tweet-header .TweetAuthor .TweetAuthor-screenName {
      font-family: "Helvetica Neue LT", "Helvetica Neue", Helvetica, Arial, sans-serif;
      font-weight: 400;
      font-size: 0.87rem;
      line-height: 1.5rem;
      letter-spacing: 0.025rem;
      margin: 0;
      padding: 0 0 0rem 0;
      color: #AAB8C2;
      padding-left: 3rem;
      display: block;
      transition: color 0.3s ease-out; }
      .Tweet-header .TweetAuthor .TweetAuthor-screenName:before {
        white-space: normal;
        content: ""; }
    .Tweet-header .TweetAuthor .Icon--verified {
      position: relative;
      left: 4px;
      top: -1px; }
    .Tweet-header .TweetAuthor .TweetAuthor-link:hover, .Tweet-header .TweetAuthor .TweetAuthor-link:active, .Tweet-header .TweetAuthor .TweetAuthor-link:focus {
      color: inherit; }
      .Tweet-header .TweetAuthor .TweetAuthor-link:hover .TweetAuthor-screenName, .Tweet-header .TweetAuthor .TweetAuthor-link:active .TweetAuthor-screenName, .Tweet-header .TweetAuthor .TweetAuthor-link:focus .TweetAuthor-screenName {
        color: #657786; }

.Tweet-body {
  margin-top: 0;
  word-wrap: break-word; }
  .Tweet-body .Tweet-text {
    font-family: "Helvetica Neue LT", "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-weight: 700;
    font-size: 1.5rem;
    line-height: 1.5rem;
    letter-spacing: 0rem;
    margin: 0;
    padding: 0 0 0rem 0;
    color: #657786;
    margin-top: 4.5rem;
    margin-bottom: 2.25rem; }
    .Tweet-body .Tweet-text a {
      color: #1DA1F2;
      transition: color 0.3s ease-out; }
      .Tweet-body .Tweet-text a:hover {
        color: #005FD1; }
  .Tweet-body .Tweet-card {
    margin-bottom: 2.25rem; }

.Tweet-actions {
  position: absolute;
  left: 1.5rem;
  bottom: calc(1.5rem - 8px); }
  .Tweet-actions .Tweet-action + .Tweet-action {
    margin-left: 0.375rem !important; }
    @media (min-width: 768px) {
      .Tweet-actions .Tweet-action + .Tweet-action {
        margin-left: 0.75rem !important; } }
  .Tweet-actions .TweetAction-stat {
    font-family: "Helvetica Neue LT", "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-weight: 700;
    font-size: 0.87rem;
    line-height: 1.5rem;
    letter-spacing: 0.03rem;
    margin: 0;
    padding: 0 0 0rem 0;
    color: #AAB8C2;
    transition: color 0.3s ease-out; }
  .Tweet-actions .Icon {
    fill: #AAB8C2;
    transition: fill 0.3s ease-out;
    background-image: inherit !important;
    position: relative;
    top: 0px; }
  .Tweet-actions .TweetAction:hover .TweetAction-stat {
    color: #657786; }
  .Tweet-actions .TweetAction:hover .Icon {
    fill: #657786; }

.Tweet-metadata {
  font-family: "Helvetica Neue LT", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 700;
  font-size: 0.87rem;
  line-height: 1.5rem;
  letter-spacing: 0.03rem;
  margin: 0;
  padding: 0 0 0rem 0;
  color: #AAB8C2;
  position: absolute;
  bottom: calc(1.5rem - 8px);
  right: 1.5rem;
  margin-top: 0 !important; }
  .Tweet-metadata a {
    position: relative;
    right: 1.125rem;
    top: -2px;
    text-decoration: none;
    transition: color 0.3s ease-out; }
  .Tweet-metadata a:hover, .Tweet-metadata a:active, .Tweet-metadata a:visited {
    text-decoration: none;
    color: #AAB8C2; }

.MediaCard {
  margin-top: 5.25rem;
  margin-bottom: -3.75rem; }
  .MediaCard .MediaCard-media {
    background-color: #FFFFFF; }

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjazovLy9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItamNyLW1vZHVsZXMvYmxvZy10d2l0dGVyLXZpZXcvc3JjL3dlYnBhY2svd2VicGFjay9jb3JlL3N0eWxlL19taXhpbi5zY3NzPzBkNTciLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL3dlYnBhY2svZW1iZWQuc2NzcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItamNyLW1vZHVsZXMvYmxvZy10d2l0dGVyLXZpZXcvc3JjL3ZhcmlhYmxlcy9jb2xvcnMuanNvbiIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItamNyLW1vZHVsZXMvYmxvZy10d2l0dGVyLXZpZXcvc3JjL3dlYnBhY2svd2VicGFjay9+L3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2JyZWFrcG9pbnQtcGx1Z2luLnNjc3M/ZGE2YyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItamNyLW1vZHVsZXMvYmxvZy10d2l0dGVyLXZpZXcvc3JjL3ZhcmlhYmxlcy90eXBvZ3JhcGh5Lmpzb24/N2ViOSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBeUJGOzs7OztFQUtFO0FBYUY7O0VBRUU7QUFPRjs7Ozs7Ozs7Ozs7OztFQWFFO0FDOUdGO0VBR00sb0JEWWlCLEVDWGxCOztBQUlMO0VBQ0UsZUFBZTtFQUNmLG1CREtxQjtFQ0pyQiwwQkNsQjJmO0VEbUIzZix1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QWRIO0lBaUJJLHNCQUFzQjtJQUN0QixlQ3ZTK2QsRUR3U2hlOztBQUdIO0VBQ0Usb0JBQXVCO0VBQ3ZCLHdCRHZScUIsRUM0UnRCO0VBUEQ7SUFLSSwwQkNoVHdpQixFRGlUemlCIiwiZmlsZSI6ImNzcy9lbWJlZC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICcuLi92YXJpYWJsZXMvYnJlYWtwb2ludHMuanNvbic7XG5AaW1wb3J0ICcuLi92YXJpYWJsZXMvdHlwb2dyYXBoeS5qc29uJztcbkBpbXBvcnQgJy4uL3ZhcmlhYmxlcy9jb2xvcnMuanNvbic7XG5cbkBpbXBvcnQgJy4vZ3JpZCc7XG5cbi8vJGJhc2VsaW5lVW5pdDogbWFwLWdldChtYXAtZ2V0KCRncmlkLCBkZXNrdG9wKSwgYmFzZWxpbmUpO1xuJGJhc2VsaW5lVW5pdDogMC43NXJlbTsgLy8gMTJweFxuXG5AbWl4aW4gcmVzcG9uZC10bygkc2l6ZSkge1xuICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKSkge1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuQG1peGluIHZlcnRpY2FsLWFsaWduIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG5AZnVuY3Rpb24gYmFzZWxpbmUoJG11bHRpcGxpZXI6IDEpIHtcbiAgQHJldHVybiAkYmFzZWxpbmVVbml0ICogJG11bHRpcGxpZXI7XG59XG5cbkBtaXhpbiB0eXBlU3R5bGVzKCR0eXBlZmFjZSkge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZSBMVFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR0eXBlZmFjZSwgd2VpZ2h0KTtcbiAgZm9udC1zaXplOiBiYXNlbGluZShtYXAtZ2V0KCR0eXBlZmFjZSwgc2l6ZSkpO1xuICBsaW5lLWhlaWdodDogYmFzZWxpbmUobWFwLWdldCgkdHlwZWZhY2UsIGxpbmUtaGVpZ2h0KSk7XG4gIGxldHRlci1zcGFjaW5nOiAje21hcC1nZXQoJHR5cGVmYWNlLCB0cmFja2luZykgLyAxMDAwfXJlbTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDAgYmFzZWxpbmUobWFwLWdldCgkdHlwZWZhY2UsIG1hcmdpbi1ib3R0b20pKSAwO1xufVxuXG4vKlxuXG5mb250IG1peGluXG4ka2V5OiB0eXBlIHN0eWxlIGtleSAoZXguIGJvbGQtMjQgb3Igcm9tYW4tMjQpLiBTZWUgdHlwb2dyYXBoeS5qc29uIGZvciBvcHRpb25zLlxuJGJyZWFrcG9pbnQ6IChvcHRpb25hbCkgYnJlYWtwb2ludCBrZXkgKGV4LiBmdWxsIG9yIHRhYmxldCkuIFNlZSBicmVha3BvaW50cy5qc29uIGZvciBvcHRpb25zLlxuXG5AaW5jbHVkZSBmb250KGJvbGQtMjQpO1xuXG5XaGVuIHVzZWQgd2l0aG91dCBhIGJyZWFrcG9pbnQgc3BlY2lmaWVkIHRoaXMgbWl4aW4gd2lsbCBwcm9kdWNlIGZvbnQgcHJvcGVydGllc1xud3JhcHBlZCBpbiBtZWRpYSBxdWVyaWVzLiBJdCdzIGEgc2ltcGxlIHdheSB0byBhcHBseSBmdWxseSByZXNwb25zaXZlIHR5cGUgc3R5bGVzXG50byBhIGNsYXNzIG9yIGVsZW1lbnQuXG5cbkBpbmNsdWRlIGZvbnQoYm9sZC0yNCwgZnVsbCk7XG5cbklmIGEgYnJlYWtwb2ludCBpcyBzcGVjaWZpZWQgdGhlcmUgd2lsbCBiZSBvbmx5IGEgc2luZ2xlIHNldCBvZiBmb250IHByb3BlcnRpZXNcbnRoYXQgYXJlIE5PVCB3cmFwcGVkIGluIGFueSBtZWRpYSBxdWVyaWVzLlxuXG4qL1xuXG5AbWl4aW4gZm9udCgka2V5LCAkYnJlYWtwb2ludDogbnVsbCkge1xuICBAaWYgJGJyZWFrcG9pbnQge1xuICAgIEBpZiBtYXAtaGFzLWtleShtYXAtZ2V0KCR0eXBvZ3JhcGh5LCByZXNwb25zaXZlKSwgJGJyZWFrcG9pbnQpIHtcbiAgICAgICRyZXNwb25zaXZlVHlwZTogbWFwLWdldChtYXAtZ2V0KG1hcC1nZXQoJHR5cG9ncmFwaHksIHJlc3BvbnNpdmUpLCAkYnJlYWtwb2ludCksICRrZXkpO1xuICAgICAgQGluY2x1ZGUgdHlwZVN0eWxlcygkcmVzcG9uc2l2ZVR5cGUpO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJHR5cGVmYWNlOiBtYXAtZ2V0KG1hcC1nZXQoJHR5cG9ncmFwaHksIGRlZmF1bHQpLCAka2V5KTtcbiAgICBAaW5jbHVkZSB0eXBlU3R5bGVzKCR0eXBlZmFjZSk7XG4gICAgQGVhY2ggJGJyZWFrcG9pbnRLZXksICRicmVha3BvaW50VmFsIGluICRicmVha3BvaW50cyB7XG4gICAgICBAaWYgbWFwLWhhcy1rZXkobWFwLWdldCgkdHlwb2dyYXBoeSwgcmVzcG9uc2l2ZSksICRicmVha3BvaW50S2V5KSB7XG5cbiAgICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRicmVha3BvaW50VmFsKSB7XG4gICAgICAgICAgJHJlc3BvbnNpdmVUeXBlOiBtYXAtZ2V0KG1hcC1nZXQobWFwLWdldCgkdHlwb2dyYXBoeSwgcmVzcG9uc2l2ZSksICRicmVha3BvaW50S2V5KSwgJGtleSk7XG4gICAgICAgICAgQGluY2x1ZGUgdHlwZVN0eWxlcygkcmVzcG9uc2l2ZVR5cGUpO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLypcblxuICBjb2xvcih5ZWxsb3cpIHNpbmdsZSBhcmd1bWVudCBkZWZhdWx0cyB0byBkYXJrIGNvbG9yc1xuICBjb2xvcihsaWdodCwgeWVsbG93KSByZXR1cm5zIGxpZ2h0IHllbGxvd1xuXG4qL1xuQGZ1bmN0aW9uIGNvbG9yKCRjb2xvci1jYXRlZ29yeSwgJGNvbG9yLW5hbWU6bnVsbCkge1xuICAvLyBpZiB0aGUgc2Vjb25kIGFyZ3VtZW50IGlzIG51bGwgdGhlcmUgc2hvdWxkIGJlIGEgY29sb3IgYXMgdGhlIGZpcnN0IGFyZ3VtZW50XG4gIEBpZiAoJGNvbG9yLW5hbWUgIT0gbnVsbCkge1xuICAgIC8vIG1hcCBpbmNlcHRpb25cbiAgICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAkY29sb3ItY2F0ZWdvcnkpLCAkY29sb3ItbmFtZSk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsIGRhcmspLCAkY29sb3ItbmFtZSk7XG4gIH1cblxuICBAd2FybiBcIkNvbG9yICcjeyRjb2xvci1jYXRlZ29yeX0nICcjeyRjb2xvci1uYW1lfScgbm90IGZvdW5kIGluICRjb2xvcnNcIjtcbn1cblxuLyogcm91bmRlZCBjb3JuZXJzXG4gIHVzYWdlOiBib3JkZXItcmFkaXVzKCBiYXNlbGluZSggbiApIClcbiovXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkcmFkaXVzKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDsgIC8qIHN0b3BzIGJnIGNvbG9yIGZyb20gbGVha2luZyBvdXRzaWRlIHRoZSBib3JkZXI6ICovXG59XG5cbi8qXG5cbmh0dHBzOi8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvc2Fzcy9tYWludGFpbi1hc3BlY3QtcmF0aW8tbWl4aW4vXG5cblRoZSBtaXhpbiBhc3N1bWVzIHlvdSdsbCBiZSBuZXN0aW5nIGFuIGVsZW1lbnQgd2l0aCB0aGUgY2xhc3Mgb2YgY29udGVudCBpbnNpZGUgeW91ciBpbml0aWFsIGJsb2NrXG5cbjxkaXYgY2xhc3M9XCJzaXh0ZWVuLW5pbmVcIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICBpbnNlcnQgY29udGVudCBoZXJlXG4gICAgdGhpcyB3aWxsIG1haW50YWluIGEgMTY6OSBhc3BlY3QgcmF0aW9cbiAgPC9kaXY+XG48L2Rpdj5cblxuKi9cblxuQG1peGluIGFzcGVjdC1yYXRpbygkd2lkdGgsICRoZWlnaHQpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAmOmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29udGVudDogXCJcIjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogKCRoZWlnaHQgLyAkd2lkdGgpICogMTAwJTtcbiAgfVxuICA+IC5jb250ZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICB9XG59XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrOi8vL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvd2VicGFjay93ZWJwYWNrL2NvcmUvc3R5bGUvX21peGluLnNjc3NcbiAqKi8iLCJAaW1wb3J0ICdjb3JlL3N0eWxlL2dyaWQnO1xuQGltcG9ydCAnY29yZS9zdHlsZS9taXhpbic7XG5AaW1wb3J0ICdjb3JlL3ZhcmlhYmxlcy9icmVha3BvaW50cy5qc29uJztcbkBpbXBvcnQgJ2NvcmUvdmFyaWFibGVzL21vdGlvbi5qc29uJztcbiR0cmFuc2l0aW9uVGltaW5nOiBtYXAtZ2V0KCR0cmFuc2l0aW9ucywgaG92ZXItdGltaW5nKTtcbiR0cmFuc2l0aW9uRWFzaW5nOiBtYXAtZ2V0KCR0cmFuc2l0aW9ucywgaG92ZXItZWFzaW5nKTtcblxuLlR3ZWV0LXF1b3RlZC1ib2R5IHtcbiAgLlR3ZWV0LWJvZHkge1xuICAgIC5Ud2VldC10ZXh0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IGJhc2VsaW5lKDApO1xuICAgIH1cbiAgfVxufVxuXG4uVHdlZXQtcXVvdGVkIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IGJhc2VsaW5lKDIpO1xuICBib3JkZXI6IHNvbGlkIDFweCBjb2xvcihuZXV0cmFsLCBleHRyYS1saWdodC1ncmF5KTtcbiAgYm9yZGVyLXJhZGl1czogYmFzZWxpbmUoMS8zKTtcblxuICAuZW1iZWRkZWQtdHdlZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IGJhc2VsaW5lKDIxKTtcblxuICAgIC5lbWJlZGRlZC10d2VldF9fbG9hZGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcblxuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICBmaWxsOiBjb2xvcihsaWdodCwgYmx1ZSk7XG4gICAgfVxuXG4gICAgLmVtYmVkZGVkLXR3ZWV0X19jb250YWluZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuXG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICBvcGFjaXR5OiAwO1xuXG4gICAgICBpZnJhbWUge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OyAvLyBuZWVkcyB0byBvdmVycmlkZSB0aGUgaW5saW5lIHN0eWxlc1xuICAgICAgICBib3JkZXItcmFkaXVzOiBiYXNlbGluZSgxLzMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5lbWJlZGRlZC10d2VldF9fZGVsZXRlZCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG5cbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuJGhlYWRlclNpemU6IGJhc2VsaW5lKDUpO1xuJHByb2ZpbGVJbWFnZVNpemU6IGJhc2VsaW5lKDMpO1xuJGxvZ29TaXplOiBiYXNlbGluZSgyLjUpO1xuXG4vLyBoaWRlIHRoZSBpbmZvcm1hdGlvbiBpY29uXG4udHdlZXQtSW5mb3JtYXRpb25DaXJjbGUsIC50d2VldC1JbmZvcm1hdGlvbkNpcmNsZS0tdG9wIHtcbiAgLy8gZGlzcGxheTogbm9uZTtcbiAgdG9wOiBpbmhlcml0O1xuICBib3R0b206IGJhc2VsaW5lKDEuNikgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAzcHggMjBweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG5cbiAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KG1heC13aWR0aCA0MDJweCkge1xuICAgIGJvdHRvbTogMS4ycmVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLkVtYmVkZGVkVHdlZXQge1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuXG4uRW1iZWRkZWRUd2VldC10d2VldCB7XG4gIHBhZGRpbmc6IGJhc2VsaW5lKDIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uRW1iZWRkZWRUd2VldC1hbmNlc3RvciArIC5FbWJlZGRlZFR3ZWV0LXR3ZWV0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC5NZWRpYUNhcmQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4uRW1iZWRkZWRUd2VldC1hbmNlc3RvciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAuVHdlZXQtaGVhZGVyIHtcbiAgICAuVHdlZXRBdXRob3Itc2NyZWVuTmFtZSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IC01cHg7XG4gICAgfVxuICAgIC5Ud2VldC1tZXRhZGF0YSB7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogaW5oZXJpdDtcbiAgICB9XG4gICAgLlR3ZWV0LW1ldGFkYXRhIHRpbWUge1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgLlR3ZWV0LWJvZHkge1xuICAgIC5Ud2VldC10ZXh0IHtcbiAgICAgIG1hcmdpbi10b3A6IGJhc2VsaW5lKDIpO1xuICAgIH1cbiAgfVxufVxuXG4uVHdlZXQtLWNvbXBhY3Qge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi8vIG1vZGlmeSB0aGUgdHdlZXQgaGVhZGVyIGJ5IHB1bGxpbmcgdXAgdG8gdGhlIHRvcFxuLlR3ZWV0LWhlYWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBiYXNlbGluZSgyKTtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtICN7YmFzZWxpbmUoNCl9KTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gIC8vIGhpZGUgdGhlIGZvbGxvdyBidXR0b24gYW5kIHNob3cgdGhlIHR3aXR0ZXIgbG9nb1xuICAuVHdlZXQtYnJhbmQge1xuICAgIC51LWhpZGRlbkluTmFycm93RW52IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC51LWhpZGRlbkluV2lkZUVudiB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5JY29uLS10d2l0dGVyIHtcbiAgICAgIGZpbGw6IGNvbG9yKGRhcmssIGJsdWUpO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgIHdpZHRoOiAkbG9nb1NpemU7XG4gICAgICBoZWlnaHQ6ICRsb2dvU2l6ZTtcbiAgICB9XG4gIH1cblxuICAuVHdlZXRBdXRob3Ige1xuICAgIG1hcmdpbi10b3A6IDA7XG5cbiAgICAuVHdlZXRBdXRob3ItYXZhdGFyIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIHdpZHRoOiAkcHJvZmlsZUltYWdlU2l6ZTtcbiAgICAgIGhlaWdodDogJHByb2ZpbGVJbWFnZVNpemU7XG4gICAgfVxuICAgIC5Ud2VldEF1dGhvci1uYW1lIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQoYm9sZC0xNCwgZnVsbCk7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRwcm9maWxlSW1hZ2VTaXplICsgYmFzZWxpbmUoMSk7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBoZWlnaHQ6IGJhc2VsaW5lKDEgKyAxLzMpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiBiYXNlbGluZSgtMS80KTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gICAgLlR3ZWV0QXV0aG9yLXNjcmVlbk5hbWUge1xuICAgICAgQGluY2x1ZGUgZm9udChyb21hbi0xNCwgZnVsbCk7XG4gICAgICBjb2xvcjogY29sb3IobmV1dHJhbCwgbGlnaHQtZ3JheSk7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRwcm9maWxlSW1hZ2VTaXplICsgYmFzZWxpbmUoMSk7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZS1vdXQ7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB9XG4gICAgfVxuICAgIC5JY29uLS12ZXJpZmllZCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsZWZ0OiA0cHg7XG4gICAgICB0b3A6IC0xcHg7XG4gICAgfVxuXG4gICAgLlR3ZWV0QXV0aG9yLWxpbms6aG92ZXIsIC5Ud2VldEF1dGhvci1saW5rOmFjdGl2ZSwgLlR3ZWV0QXV0aG9yLWxpbms6Zm9jdXMge1xuICAgICAgICBjb2xvcjogaW5oZXJpdDsgLy8gb3ZlcnJpZGUgdGhlIGNvbG9yIGhvdmVyXG5cbiAgICAgICAgLlR3ZWV0QXV0aG9yLXNjcmVlbk5hbWUge1xuICAgICAgICAgIGNvbG9yOiBjb2xvcihuZXV0cmFsLCBkYXJrLWdyYXkpO1xuICAgICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5Ud2VldC1ib2R5IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuXG4gIC5Ud2VldC10ZXh0IHtcbiAgICBAaW5jbHVkZSBmb250KGJvbGQtMjQsIGZ1bGwpO1xuICAgIGNvbG9yOiBjb2xvcihuZXV0cmFsLCBkYXJrLWdyYXkpO1xuICAgIG1hcmdpbi10b3A6ICRoZWFkZXJTaXplICsgYmFzZWxpbmUoMSk7XG4gICAgbWFyZ2luLWJvdHRvbTogYmFzZWxpbmUoMyk7XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiBjb2xvcihkYXJrLCBibHVlKTtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZS1vdXQ7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogY29sb3IoZXh0cmEtZGFyaywgYmx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLlR3ZWV0LWNhcmQge1xuICAgIG1hcmdpbi1ib3R0b206IGJhc2VsaW5lKDMpO1xuICB9XG59XG5cbi5Ud2VldC1hY3Rpb25zIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiBiYXNlbGluZSgyKTtcbiAgYm90dG9tOiBjYWxjKCN7YmFzZWxpbmUoMil9IC0gOHB4KTtcblxuICAuVHdlZXQtYWN0aW9uICsgLlR3ZWV0LWFjdGlvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IGJhc2VsaW5lKDEvMikgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oZnVsbCkge1xuICAgICAgICBtYXJnaW4tbGVmdDogYmFzZWxpbmUoMSkgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuVHdlZXRBY3Rpb24tc3RhdCB7XG4gICAgQGluY2x1ZGUgZm9udChib2xkLTE0LCBmdWxsKTtcbiAgICBjb2xvcjogY29sb3IobmV1dHJhbCwgbGlnaHQtZ3JheSk7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlLW91dDtcbiAgfVxuICAuSWNvbiB7XG4gICAgZmlsbDogY29sb3IobmV1dHJhbCwgbGlnaHQtZ3JheSk7XG4gICAgdHJhbnNpdGlvbjogZmlsbCAwLjNzIGVhc2Utb3V0O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwcHg7XG4gIH1cbiAgLkljb24tLXJldHdlZXQge1xuICAgIC8vIHRvcDogLTJweDtcbiAgfVxuXG4gIC5Ud2VldEFjdGlvbjpob3ZlciB7XG4gICAgLlR3ZWV0QWN0aW9uLXN0YXQge1xuICAgICAgY29sb3I6IGNvbG9yKG5ldXRyYWwsIGRhcmstZ3JheSk7XG4gICAgfVxuICAgIC5JY29uIHtcbiAgICAgIGZpbGw6IGNvbG9yKG5ldXRyYWwsIGRhcmstZ3JheSk7XG4gICAgfVxuICB9XG59XG5cbi5Ud2VldC1tZXRhZGF0YSB7XG4gIEBpbmNsdWRlIGZvbnQoYm9sZC0xNCwgZnVsbCk7XG4gIGNvbG9yOiBjb2xvcihuZXV0cmFsLCBsaWdodC1ncmF5KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IGNhbGMoI3tiYXNlbGluZSgyKX0gLSA4cHgpO1xuICByaWdodDogYmFzZWxpbmUoMik7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcblxuICBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcmlnaHQ6IGJhc2VsaW5lKDEuNSk7XG4gICAgdG9wOiAtMnB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2Utb3V0O1xuICB9XG5cbiAgYTpob3ZlciwgYTphY3RpdmUsIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiBjb2xvcihuZXV0cmFsLCBsaWdodC1ncmF5KTtcbiAgfVxufVxuXG4uTWVkaWFDYXJkIHtcbiAgbWFyZ2luLXRvcDogJGhlYWRlclNpemUgKyBiYXNlbGluZSgyKTsgLy8gbWFrZSByb29tIGZvciB0aGUgVHdlZXQtaGVhZGVyXG4gIG1hcmdpbi1ib3R0b206IC0kaGVhZGVyU2l6ZTsgLy8gY29sbGFwc2UgdGhlIHRvcCBtYXJnaW4gb2YgdGhlIHR3ZWV0LXRleHQgYmVsb3cgdGhlIG1lZGlhIGNhcmQuXG5cbiAgLk1lZGlhQ2FyZC1tZWRpYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IobmV1dHJhbCwgd2hpdGUpO1xuICB9XG59XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrOi8vL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvd2VicGFjay93ZWJwYWNrL2VtYmVkLnNjc3NcbiAqKi8iLCIkY29sb3JzOiAoZXh0cmEtZGFyazogKG9yYW5nZTogI0Q4MkUxOCx5ZWxsb3c6ICNGOThFMDAsZ3JlZW46ICMwMDg5NTEsYmx1ZTogIzAwNUZEMSxwdXJwbGU6ICM0RjAyOTkscGluazogI0EwMTc0NCksZGFyazogKG9yYW5nZTogI0Y0NUQyMix5ZWxsb3c6ICNGRkFEMUYsZ3JlZW46ICMxRkI2NTAsYmx1ZTogIzFEQTFGMixwdXJwbGU6ICM3OTRCQzQscGluazogI0UwMjQ1RSksbGlnaHQ6IChvcmFuZ2U6ICNGRjhENTcseWVsbG93OiAjRkZEMDNGLGdyZWVuOiAjNjhFMDkwLGJsdWU6ICM3MUM5RjgscHVycGxlOiAjQTM3Q0VELHBpbms6ICNGNjgwOUEpLGV4dHJhLWxpZ2h0OiAob3JhbmdlOiAjRkZCRTc4LHllbGxvdzogI0ZGRTc2RSxncmVlbjogI0E1RjJBQSxibHVlOiAjOTdFM0ZGLHB1cnBsZTogI0M3QjRGQSxwaW5rOiAjRkZCOEMyKSxuZXV0cmFsOiAoYmxhY2s6ICMxNDE3MUEsZGFyay1ncmF5OiAjNjU3Nzg2LGxpZ2h0LWdyYXk6ICNBQUI4QzIsZXh0cmEtbGlnaHQtZ3JheTogI0NDRDZERCxleHRyYS1leHRyYS1saWdodC1ncmF5OiAjRjVGOEZBLHdoaXRlOiAjRkZGRkZGKSk7XG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjazovLy9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItamNyLW1vZHVsZXMvYmxvZy10d2l0dGVyLXZpZXcvc3JjL3ZhcmlhYmxlcy9jb2xvcnMuanNvblxuICoqLyIsIi8vIEJyZWFrcG9pbnQgSW50ZWdyYXRpb25cbi8vID09PT09PT09PT09PT09PT09PT09PT1cblxuJHN1c3ktbWVkaWE6ICgpICFkZWZhdWx0O1xuJHN1c3ktbWVkaWEtZmFsbGJhY2s6IGZhbHNlICFkZWZhdWx0O1xuXG4kX3N1c3ktbWVkaWEtY29udGV4dDogKCk7XG5cblxuLy8gU3VzeSBCcmVha3BvaW50XG4vLyAtLS0tLS0tLS0tLS0tLS1cbi8vIENoYW5nZSBncmlkcyBhdCBkaWZmZXJlbnQgbWVkaWEgcXVlcnkgYnJlYWtwb2ludHMuXG4vLyAtICRxdWVyeSAgICAgOiA8bWluLXdpZHRoPiBbPG1heC13aWR0aD5dIHwgPHByb3BlcnR5PiA8dmFsdWU+IHwgPG1hcD5cbi8vIC0gJGxheW91dCAgICA6IDxzZXR0aW5ncz5cbi8vIC0gJG5vLXF1ZXJ5ICA6IDxib29sZWFuPiB8IDxzZWxlY3Rvcj5cbkBtaXhpbiBzdXN5LWJyZWFrcG9pbnQoXG4gICRxdWVyeSxcbiAgJGxheW91dDogZmFsc2UsXG4gICRuby1xdWVyeTogJHN1c3ktbWVkaWEtZmFsbGJhY2tcbikge1xuICBAaW5jbHVkZSBzdXN5LW1lZGlhLXJvdXRlcigkcXVlcnksICRuby1xdWVyeSkge1xuICAgIEBpZiAkbGF5b3V0IHtcbiAgICAgIEBpbmNsdWRlIHdpdGgtbGF5b3V0KCRsYXlvdXQpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBTdXN5IE1lZGlhXG4vLyAtLS0tLS0tLS0tXG4vLyAtICRxdWVyeTogPG1pbi13aWR0aD4gWzxtYXgtd2lkdGg+XSB8IDxwcm9wZXJ0eT4gPHZhbHVlPlxuLy8gLSAkbm8tcXVlcnk6IDxib29sZWFuPiB8IDxzZWxlY3Rvcj5cbkBtaXhpbiBzdXN5LW1lZGlhKFxuICAkcXVlcnksXG4gICRuby1xdWVyeTogJHN1c3ktbWVkaWEtZmFsbGJhY2tcbikge1xuICAkb2xkLWNvbnRleHQ6ICRfc3VzeS1tZWRpYS1jb250ZXh0O1xuICAkbmFtZTogaWYobWFwLWhhcy1rZXkoJHN1c3ktbWVkaWEsICRxdWVyeSksICRxdWVyeSwgbnVsbCk7XG4gICRxdWVyeTogc3VzeS1nZXQtbWVkaWEoJHF1ZXJ5KTtcbiAgJHF1ZXJ5OiBzdXN5LXBhcnNlLW1lZGlhKCRxdWVyeSk7XG5cbiAgQGluY2x1ZGUgc3VzeS1tZWRpYS1jb250ZXh0KCRxdWVyeSwgJG5hbWUpO1xuXG4gIEBpZiAkbm8tcXVlcnkgYW5kIHR5cGUtb2YoJG5vLXF1ZXJ5KSAhPSBzdHJpbmcge1xuICAgIEBjb250ZW50O1xuICB9IEBlbHNlIHtcbiAgICBAbWVkaWEgI3tzdXN5LXJlbmRlci1tZWRpYSgkcXVlcnkpfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICBAaWYgdHlwZS1vZigkbm8tcXVlcnkpID09IHN0cmluZyB7XG4gICAgICAjeyRuby1xdWVyeX0gJiB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktbWVkaWEtY29udGV4dCgkb2xkLWNvbnRleHQsICRjbGVhbjogdHJ1ZSk7XG59XG5cblxuLy8gTWVkaWEgUm91dGVyXG4vLyAtLS0tLS0tLS0tLS1cbi8vIFJvdXQgbWVkaWEgYXJndW1lbnRzIHRvIHRoZSBjb3JyZWN0IG1peGluLlxuQG1peGluIHN1c3ktbWVkaWEtcm91dGVyKFxuICAkcXVlcnksXG4gICRuby1xdWVyeTogJHN1c3ktbWVkaWEtZmFsbGJhY2tcbikge1xuICBAaWYgc3VzeS1zdXBwb3J0KGJyZWFrcG9pbnQsIChtaXhpbjogYnJlYWtwb2ludCksICR3YXJuOiBmYWxzZSkge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnkpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgc3VzeS1tZWRpYSgkcXVlcnksICRuby1xdWVyeSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8gVXBkYXRlIENvbnRleHRcbi8vIC0tLS0tLS0tLS0tLS1cbi8vIFNldCB0aGUgbmV3IG1lZGlhIGNvbnRleHRcbkBtaXhpbiBzdXN5LW1lZGlhLWNvbnRleHQoXG4gICRxdWVyeSxcbiAgJG5hbWU6IG51bGwsXG4gICRjbGVhbjogZmFsc2Vcbikge1xuICAkcXVlcnk6IG1hcC1tZXJnZSgobmFtZTogJG5hbWUpLCAkcXVlcnkpO1xuXG4gIEBpZiAkY2xlYW4ge1xuICAgICRfc3VzeS1tZWRpYS1jb250ZXh0OiAkcXVlcnkgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJF9zdXN5LW1lZGlhLWNvbnRleHQ6IG1hcC1tZXJnZSgkX3N1c3ktbWVkaWEtY29udGV4dCwgJHF1ZXJ5KSAhZ2xvYmFsO1xuICB9XG59XG5cblxuLy8gTWVkaWEgQ29udGV4dFxuLy8gLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSBmdWxsIG1lZGlhIGNvbnRleHQsIG9yIGEgc2luZ2xlIG1lZGlhIHByb3BlcnR5IChlLmcuIG1pbi13aWR0aClcbkBmdW5jdGlvbiBzdXN5LW1lZGlhLWNvbnRleHQoXG4gICRwcm9wZXJ0eTogZmFsc2Vcbikge1xuICBAaWYgJHByb3BlcnR5IHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJF9zdXN5LW1lZGlhLWNvbnRleHQsICRwcm9wZXJ0eSk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJF9zdXN5LW1lZGlhLWNvbnRleHQ7XG4gIH1cbn1cblxuXG4vLyBHZXQgTWVkaWFcbi8vIC0tLS0tLS0tLVxuLy8gUmV0dXJuIGEgbmFtZWQgbWVkaWEtcXVlcnkgZnJvbSAkc3VzeS1tZWRpYS5cbi8vIC0gJG5hbWU6IDxrZXk+XG5AZnVuY3Rpb24gc3VzeS1nZXQtbWVkaWEoXG4gICRuYW1lXG4pIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRzdXN5LW1lZGlhLCAkbmFtZSkge1xuICAgICRtYXAtdmFsdWU6IG1hcC1nZXQoJHN1c3ktbWVkaWEsICRuYW1lKTtcbiAgICBAaWYgKCRuYW1lID09ICRtYXAtdmFsdWUpIHtcbiAgICAgICRuYW1lOiAkbWFwLXZhbHVlO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJG5hbWU6IHN1c3ktZ2V0LW1lZGlhKCRtYXAtdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG5hbWU7XG59XG5cblxuLy8gUmVuZGVyIE1lZGlhXG4vLyAtLS0tLS0tLS0tLS1cbi8vIEJ1aWxkIGEgbWVkaWEtcXVlcnkgc3RyaW5nIGZyb20gdmFyaW91cyBtZWRpYSBzZXR0aW5nc1xuQGZ1bmN0aW9uIHN1c3ktcmVuZGVyLW1lZGlhKFxuICAkcXVlcnlcbikge1xuICAkb3V0cHV0OiBudWxsO1xuICBAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiAkcXVlcnkge1xuICAgICRzdHJpbmc6IG51bGw7XG5cbiAgICBAaWYgJHByb3BlcnR5ID09IG1lZGlhIHtcbiAgICAgICRzdHJpbmc6ICR2YWx1ZTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRzdHJpbmc6ICcoI3skcHJvcGVydHl9OiAjeyR2YWx1ZX0pJztcbiAgICB9XG5cbiAgICAkb3V0cHV0OiBpZigkb3V0cHV0LCAnI3skb3V0cHV0fSBhbmQgI3skc3RyaW5nfScsICRzdHJpbmcpO1xuICB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuXG5cbi8vIFBhcnNlIE1lZGlhXG4vLyAtLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHBhcnNlZCBtZWRpYS1xdWVyeSBzZXR0aW5ncyBiYXNlZCBvbiBzaG9ydGhhbmRcbkBmdW5jdGlvbiBzdXN5LXBhcnNlLW1lZGlhKFxuICAkcXVlcnlcbikge1xuICAkbXE6IG51bGw7XG4gIEBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gbWFwIHtcbiAgICAkbXE6ICRxdWVyeTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gbnVtYmVyIHtcbiAgICAkbXE6IChtaW4td2lkdGg6ICRxdWVyeSk7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkcXVlcnkpID09IGxpc3QgYW5kIGxlbmd0aCgkcXVlcnkpID09IDIge1xuICAgIEBpZiB0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSBudW1iZXIge1xuICAgICAgJG1xOiAoXG4gICAgICAgIG1pbi13aWR0aDogbWluKCRxdWVyeS4uLiksXG4gICAgICAgIG1heC13aWR0aDogbWF4KCRxdWVyeS4uLiksXG4gICAgICApO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJG1xOiAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICRtcTogKG1lZGlhOiAnI3skcXVlcnl9Jyk7XG4gIH1cblxuICBAcmV0dXJuICRtcTtcbn1cblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIHdlYnBhY2s6Ly8vYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL3dlYnBhY2svfi9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19icmVha3BvaW50LXBsdWdpbi5zY3NzXG4gKiovIiwiJHR5cG9ncmFwaHk6IChkZWZhdWx0OiAoYm9sZC0xNDQ6ICh3ZWlnaHQ6IDcwMCxzaXplOiA4LGxpbmUtaGVpZ2h0OiA4LHRyYWNraW5nOiAtMjUsbWFyZ2luLWJvdHRvbTogMCksYm9sZC05NjogKHdlaWdodDogNzAwLHNpemU6IDYsbGluZS1oZWlnaHQ6IDYsdHJhY2tpbmc6IC0yNSxtYXJnaW4tYm90dG9tOiAwKSxib2xkLTcyOiAod2VpZ2h0OiA3MDAsc2l6ZTogNSxsaW5lLWhlaWdodDogNSx0cmFja2luZzogLTI1LG1hcmdpbi1ib3R0b206IDApLHJvbWFuLTcyOiAod2VpZ2h0OiA0MDAsc2l6ZTogNSxsaW5lLWhlaWdodDogNSx0cmFja2luZzogLTI1LG1hcmdpbi1ib3R0b206IDApLGJvbGQtNDg6ICh3ZWlnaHQ6IDcwMCxzaXplOiA0LGxpbmUtaGVpZ2h0OiA0LHRyYWNraW5nOiAtMjUsbWFyZ2luLWJvdHRvbTogMCkscm9tYW4tNDg6ICh3ZWlnaHQ6IDQwMCxzaXplOiA0LGxpbmUtaGVpZ2h0OiA0LHRyYWNraW5nOiAtMjUsbWFyZ2luLWJvdHRvbTogMCksYm9sZC0zNjogKHdlaWdodDogNzAwLHNpemU6IDMsbGluZS1oZWlnaHQ6IDMsdHJhY2tpbmc6IC0yNSxtYXJnaW4tYm90dG9tOiAwKSxyb21hbi0zNjogKHdlaWdodDogNDAwLHNpemU6IDMsbGluZS1oZWlnaHQ6IDMsdHJhY2tpbmc6IC0yNSxtYXJnaW4tYm90dG9tOiAwKSxib2xkLTI0OiAod2VpZ2h0OiA3MDAsc2l6ZTogMixsaW5lLWhlaWdodDogMix0cmFja2luZzogMCxtYXJnaW4tYm90dG9tOiAwKSxyb21hbi0yNDogKHdlaWdodDogNDAwLHNpemU6IDIsbGluZS1oZWlnaHQ6IDIsdHJhY2tpbmc6IDE1LG1hcmdpbi1ib3R0b206IDApLGJvbGQtMTY6ICh3ZWlnaHQ6IDcwMCxzaXplOiAxLjMzLGxpbmUtaGVpZ2h0OiAyLHRyYWNraW5nOiAyNSxtYXJnaW4tYm90dG9tOiAwKSxyb21hbi0xNjogKHdlaWdodDogNDAwLHNpemU6IDEuMzMsbGluZS1oZWlnaHQ6IDIsdHJhY2tpbmc6IDI1LG1hcmdpbi1ib3R0b206IDApLGJvbGQtMTQ6ICh3ZWlnaHQ6IDcwMCxzaXplOiAxLjE2LGxpbmUtaGVpZ2h0OiAyLHRyYWNraW5nOiAzMCxtYXJnaW4tYm90dG9tOiAwKSxyb21hbi0xNDogKHdlaWdodDogNDAwLHNpemU6IDEuMTYsbGluZS1oZWlnaHQ6IDIsdHJhY2tpbmc6IDI1LG1hcmdpbi1ib3R0b206IDApKSxyZXNwb25zaXZlOiAoZnVsbDogKGJvbGQtMTQ0OiAod2VpZ2h0OiA3MDAsc2l6ZTogMTIsbGluZS1oZWlnaHQ6IDEyLHRyYWNraW5nOiAtMjAwLG1hcmdpbi1ib3R0b206IDApLGJvbGQtOTY6ICh3ZWlnaHQ6IDcwMCxzaXplOiA4LGxpbmUtaGVpZ2h0OiA4LHRyYWNraW5nOiAtMjUsbWFyZ2luLWJvdHRvbTogMCksYm9sZC03MjogKHdlaWdodDogNzAwLHNpemU6IDYsbGluZS1oZWlnaHQ6IDYsdHJhY2tpbmc6IC0yNSxtYXJnaW4tYm90dG9tOiAwKSxyb21hbi03MjogKHdlaWdodDogNDAwLHNpemU6IDYsbGluZS1oZWlnaHQ6IDYsdHJhY2tpbmc6IC0yNSxtYXJnaW4tYm90dG9tOiAwKSxib2xkLTQ4OiAod2VpZ2h0OiA3MDAsc2l6ZTogNCxsaW5lLWhlaWdodDogNCx0cmFja2luZzogLTI1LG1hcmdpbi1ib3R0b206IDApLHJvbWFuLTQ4OiAod2VpZ2h0OiA0MDAsc2l6ZTogNCxsaW5lLWhlaWdodDogNCx0cmFja2luZzogLTI1LG1hcmdpbi1ib3R0b206IDApLGJvbGQtMzY6ICh3ZWlnaHQ6IDcwMCxzaXplOiAzLGxpbmUtaGVpZ2h0OiAzLHRyYWNraW5nOiAtMjUsbWFyZ2luLWJvdHRvbTogMCkscm9tYW4tMzY6ICh3ZWlnaHQ6IDQwMCxzaXplOiAzLGxpbmUtaGVpZ2h0OiAzLHRyYWNraW5nOiAtMjUsbWFyZ2luLWJvdHRvbTogMCksYm9sZC0yNDogKHdlaWdodDogNzAwLHNpemU6IDIsbGluZS1oZWlnaHQ6IDIsdHJhY2tpbmc6IDAsbWFyZ2luLWJvdHRvbTogMCkscm9tYW4tMjQ6ICh3ZWlnaHQ6IDQwMCxzaXplOiAyLGxpbmUtaGVpZ2h0OiAyLHRyYWNraW5nOiAxNSxtYXJnaW4tYm90dG9tOiAwKSxib2xkLTE2OiAod2VpZ2h0OiA3MDAsc2l6ZTogMS4zMyxsaW5lLWhlaWdodDogMix0cmFja2luZzogMjUsbWFyZ2luLWJvdHRvbTogMCkscm9tYW4tMTY6ICh3ZWlnaHQ6IDQwMCxzaXplOiAxLjMzLGxpbmUtaGVpZ2h0OiAyLHRyYWNraW5nOiAyNSxtYXJnaW4tYm90dG9tOiAwKSxib2xkLTE0OiAod2VpZ2h0OiA3MDAsc2l6ZTogMS4xNixsaW5lLWhlaWdodDogMix0cmFja2luZzogMzAsbWFyZ2luLWJvdHRvbTogMCkscm9tYW4tMTQ6ICh3ZWlnaHQ6IDQwMCxzaXplOiAxLjE2LGxpbmUtaGVpZ2h0OiAyLHRyYWNraW5nOiAyNSxtYXJnaW4tYm90dG9tOiAwKSkpKTtcblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrOi8vL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvdmFyaWFibGVzL3R5cG9ncmFwaHkuanNvblxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0=*/