/**
 * Foundation for Sites
 * Version 6.7.5
 * https://get.foundation
 * Licensed under MIT Open Source
 */
.card-iconed {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  height: 100%;
  min-height: 240px;
  padding: 40px 24px;
  overflow: hidden;
  background-color: #F6F6F6;
  border-bottom: 1px solid #E5E5E5;
  position: relative; }
  @media print, screen and (min-width: 48em) {
    .card-iconed {
      min-height: 300px; } }
  @media print, screen and (min-width: 82.5em) {
    .card-iconed {
      padding: 64px 48px; } }
  .card-iconed .card-title,
  .card-iconed h5 {
    max-width: 57%;
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    font-weight: 600;
    color: #0D0D0D;
    z-index: 1; }
    @media print, screen and (min-width: 48em) {
      .card-iconed .card-title,
      .card-iconed h5 {
        font-size: 16px; } }
    .card-iconed .card-title b, .card-iconed .card-title strong,
    .card-iconed h5 b,
    .card-iconed h5 strong {
      font-size: 64px;
      font-weight: 600; }
  .card-iconed .card-content {
    max-width: 50%;
    margin-top: auto;
    margin-bottom: 0;
    font-size: 12px;
    line-height: 1.6;
    color: #535353;
    z-index: 1; }
    @media print, screen and (min-width: 82.5em) {
      .card-iconed .card-content {
        font-size: 14px; } }
  .card-iconed .card-icon {
    max-width: 33%;
    height: auto;
    position: absolute;
    right: -2%;
    bottom: -9%;
    color: #E7E7E7;
    z-index: 0; }
    @media print, screen and (min-width: 82.5em) {
      .card-iconed .card-icon {
        height: auto;
        right: 4%; } }
    .card-iconed .card-icon .icon, .card-iconed .card-icon img, .card-iconed .card-icon svg {
      display: block;
      width: 100%;
      height: 100%;
      -o-object-fit: contain;
         object-fit: contain;
      -o-object-position: center;
         object-position: center;
      font-family: 'object-fit: contain; object-position: center;'; }
  .card-iconed.small {
    min-height: 200px;
    padding: 24px; }
    @media print, screen and (min-width: 48em) {
      .card-iconed.small {
        min-height: 280px; } }
    @media print, screen and (min-width: 82.5em) {
      .card-iconed.small {
        padding: 48px; } }
    .card-iconed.small .card-title,
    .card-iconed.small h5 {
      max-width: 100%;
      color: #A8AD00; }
      .card-iconed.small .card-title b, .card-iconed.small .card-title strong,
      .card-iconed.small h5 b,
      .card-iconed.small h5 strong {
        font-size: 48px; }
        @media print, screen and (min-width: 48em) {
          .card-iconed.small .card-title b, .card-iconed.small .card-title strong,
          .card-iconed.small h5 b,
          .card-iconed.small h5 strong {
            font-size: 64px; } }
    .card-iconed.small .card-content {
      max-width: 70%;
      font-size: 16px;
      font-weight: 600;
      padding-right: 20px; }
      @media print, screen and (min-width: 48em) {
        .card-iconed.small .card-content {
          font-size: 18px; } }
    .card-iconed.small .card-icon {
      max-width: 24%;
      bottom: -5%;
      right: 4%; }
      @media print, screen and (min-width: 48em) {
        .card-iconed.small .card-icon {
          max-width: 28%; } }
      @media print, screen and (min-width: 82.5em) {
        .card-iconed.small .card-icon {
          right: 9%; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwic3RhbmRhbG9uZS9ibG9ja3MvY2FyZHMvY2FyZC1pY29uZWQuY3NzIiwic3RhbmRhbG9uZS9ibG9ja3MvY2FyZHMvY2FyZC1pY29uZWQuc2NzcyIsIl9jb2xvcnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztFQ0tFO0FDR0Y7RUFDSSxvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDRCQUFzQjtFQUF0Qiw2QkFBc0I7TUFBdEIsMEJBQXNCO1VBQXRCLHNCQUFzQjtFQUN0QixZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFFaEIseUJDYWlCO0VEWmpCLGdDQ1FpQjtFRE5qQixrQkFBa0IsRUFBQTtFRWdLZDtJRjNLUjtNQWNRLGlCQUFpQixFQUFBLEVBc0h4QjtFRXVDTztJRjNLUjtNQWtCUSxrQkFBa0IsRUFBQSxFQWtIekI7RUFwSUQ7O0lBdUJRLGNBQWM7SUFDZCxTQUFTO0lBQ1QsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsY0NsQmE7SURvQmIsVUFBVSxFQUFBO0lFNklWO01GM0tSOztRQWlDWSxlQUFlLEVBQUEsRUFPdEI7SUF4Q0w7OztNQXFDWSxlQUFlO01BQ2YsZ0JBQWdCLEVBQUE7RUF0QzVCO0lBMkNRLGNBQWM7SUFDZCxnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsY0NwQ2E7SURxQ2IsVUFBVSxFQUFBO0lFMEhWO01GM0tSO1FBb0RZLGVBQWUsRUFBQSxFQUV0QjtFQXRETDtJQXlEUSxjQUFjO0lBQ2QsWUFBWTtJQUVaLGtCQUFrQjtJQUNsQixVQUFVO0lBQ1YsV0FBVztJQUNYLGNDN0NhO0lEOENiLFVBQVUsRUFBQTtJRTJHVjtNRjNLUjtRQW1FWSxZQUFZO1FBQ1osU0FBUyxFQUFBLEVBY2hCO0lBbEZMO01Bd0VZLGNBQWM7TUFDZCxXQUFXO01BQ1gsWUFBWTtNQUVaLHNCQUFtQjtTQUFuQixtQkFBbUI7TUFDbkIsMEJBQXVCO1NBQXZCLHVCQUF1QjtNQUN2Qiw0REFBNEQsRUFBQTtFQTlFeEU7SUFxRlEsaUJBQWlCO0lBQ2pCLGFBQWEsRUFBQTtJRXFGYjtNRjNLUjtRQXlGWSxpQkFBaUIsRUFBQSxFQXlDeEI7SUV5Q0c7TUYzS1I7UUE2RlksYUFBYSxFQUFBLEVBcUNwQjtJQWxJTDs7TUFrR1ksZUFBZTtNQUNmLGNDcEdPLEVBQUE7TURDbkI7OztRQXFHZ0IsZUFBZSxFQUFBO1FFc0V2QjtVRjNLUjs7O1lBdUdvQixlQUFlLEVBQUEsRUFFdEI7SUF6R2I7TUE2R1ksY0FBYztNQUNkLGVBQWU7TUFDZixnQkFBZ0I7TUFDaEIsbUJBQW1CLEVBQUE7TUUyRHZCO1FGM0tSO1VBbUhnQixlQUFlLEVBQUEsRUFFdEI7SUFySFQ7TUF3SFksY0FBYztNQUNkLFdBQVc7TUFDWCxTQUFTLEVBQUE7TUVpRGI7UUYzS1I7VUE0SGdCLGNBQWMsRUFBQSxFQUtyQjtNRTBDRDtRRjNLUjtVQStIZ0IsU0FBUyxFQUFBLEVBRWhCIiwiZmlsZSI6InN0YW5kYWxvbmUvYmxvY2tzL2NhcmRzL2NhcmQtaWNvbmVkLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXNcbiAqIFZlcnNpb24gNi43LjVcbiAqIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG5cbi8vIC0tLSBEZXBlbmRlbmNpZXMgLS0tXG5AaW1wb3J0ICd2ZW5kb3Ivbm9ybWFsaXplJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy9taXNzaW5nLWRlcGVuZGVuY2llcyc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvdHJ1ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9jb250YWluJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3B1cmdlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlbW92ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZXBsYWNlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3RvLWxpc3QnO1xuXG4vLyAtLS0gU2V0dGluZ3MgLS0tXG4vLyBpbXBvcnQgeW91ciBvd24gYHNldHRpbmdzYCBoZXJlIG9yXG4vLyBpbXBvcnQgYW5kIG1vZGlmeSB0aGUgZGVmYXVsdCBzZXR0aW5ncyB0aHJvdWdoXG4vLyBAaW1wb3J0ICdzZXR0aW5ncy9zZXR0aW5ncyc7XG5cbi8vIC0tLSBDb21wb25lbnRzIC0tLVxuLy8gVXRpbGl0aWVzXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuLy8gR2xvYmFsIHN0eWxlc1xuQGltcG9ydCAnZ2xvYmFsJztcbkBpbXBvcnQgJ2Zvcm1zL2Zvcm1zJztcbkBpbXBvcnQgJ3R5cG9ncmFwaHkvdHlwb2dyYXBoeSc7XG5cbi8vIEdyaWRzXG5AaW1wb3J0ICdncmlkL2dyaWQnO1xuQGltcG9ydCAneHktZ3JpZC94eS1ncmlkJztcbi8vIEdlbmVyaWMgY29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24tZ3JvdXAnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jbG9zZS1idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9sYWJlbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Byb2dyZXNzLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NsaWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N3aXRjaCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYmxlJztcbi8vIEJhc2ljIGNvbXBvbmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UnO1xuQGltcG9ydCAnY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhbGxvdXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYXJkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wYWdpbmF0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbHRpcCc7XG5cbi8vIENvbnRhaW5lcnNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVkaWEtb2JqZWN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb3JiaXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXNwb25zaXZlLWVtYmVkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFicyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RodW1ibmFpbCc7XG4vLyBNZW51LWJhc2VkIGNvbnRhaW5lcnNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUtaWNvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJpbGxkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24tbWVudSc7XG5cbi8vIExheW91dCBjb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL29mZi1jYW52YXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXZlYWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zdGlja3knO1xuQGltcG9ydCAnY29tcG9uZW50cy90aXRsZS1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90b3AtYmFyJztcblxuLy8gSGVscGVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9mbG9hdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZsZXgnO1xuQGltcG9ydCAnY29tcG9uZW50cy92aXNpYmlsaXR5JztcbkBpbXBvcnQgJ3Byb3RvdHlwZS9wcm90b3R5cGUnO1xuXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWV2ZXJ5dGhpbmcoXG4gICRmbGV4OiB0cnVlLFxuICAkcHJvdG90eXBlOiBmYWxzZSxcbiAgJHh5LWdyaWQ6ICR4eS1ncmlkXG4pIHtcbiAgQGlmICRmbGV4IHtcbiAgICAkZ2xvYmFsLWZsZXhib3g6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIEBpZiAkeHktZ3JpZCB7XG4gICAgJHh5LWdyaWQ6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIC8vIEdsb2JhbCBzdHlsZXNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXR5cG9ncmFwaHk7XG5cbiAgLy8gR3JpZHNcbiAgQGlmIG5vdCAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgJHh5LWdyaWQge1xuICAgICAgQGluY2x1ZGUgZm91bmRhdGlvbi14eS1ncmlkLWNsYXNzZXM7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1ncmlkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEdlbmVyaWMgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b24tZ3JvdXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWxhYmVsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb2dyZXNzLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zbGlkZXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xuICAvLyBCYXNpYyBjb21wb25lbnRzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYmFkZ2U7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnJlYWRjcnVtYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FsbG91dDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYXJkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXBhZ2luYXRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcblxuICAvLyBDb250YWluZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vcmJpdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGh1bWJuYWlsO1xuICAvLyBNZW51LWJhc2VkIGNvbnRhaW5lcnNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuXG4gIC8vIExheW91dCBjb21wb25lbnRzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb2ZmLWNhbnZhcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3RpY2t5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xuXG4gIC8vIEhlbHBlcnNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuICBAaWYgJGZsZXggeyBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlczsgfVxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcztcbiAgQGlmICRwcm90b3R5cGUgeyBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1jbGFzc2VzOyB9XG59XG4iLCIvKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4gKiBWZXJzaW9uIDYuNy41XG4gKiBodHRwczovL2dldC5mb3VuZGF0aW9uXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuLmNhcmQtaWNvbmVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAyNDBweDtcbiAgcGFkZGluZzogNDBweCAyNHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjZGNkY2O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0U1RTVFNTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNhcmQtaWNvbmVkIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgyLjVlbSkge1xuICAgIC5jYXJkLWljb25lZCB7XG4gICAgICBwYWRkaW5nOiA2NHB4IDQ4cHg7IH0gfVxuICAuY2FyZC1pY29uZWQgLmNhcmQtdGl0bGUsXG4gIC5jYXJkLWljb25lZCBoNSB7XG4gICAgbWF4LXdpZHRoOiA1NyU7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMwRDBEMEQ7XG4gICAgei1pbmRleDogMTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY2FyZC1pY29uZWQgLmNhcmQtdGl0bGUsXG4gICAgICAuY2FyZC1pY29uZWQgaDUge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7IH0gfVxuICAgIC5jYXJkLWljb25lZCAuY2FyZC10aXRsZSBiLCAuY2FyZC1pY29uZWQgLmNhcmQtdGl0bGUgc3Ryb25nLFxuICAgIC5jYXJkLWljb25lZCBoNSBiLFxuICAgIC5jYXJkLWljb25lZCBoNSBzdHJvbmcge1xuICAgICAgZm9udC1zaXplOiA2NHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAuY2FyZC1pY29uZWQgLmNhcmQtY29udGVudCB7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGNvbG9yOiAjNTM1MzUzO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODIuNWVtKSB7XG4gICAgICAuY2FyZC1pY29uZWQgLmNhcmQtY29udGVudCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDsgfSB9XG4gIC5jYXJkLWljb25lZCAuY2FyZC1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDMzJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAtMiU7XG4gICAgYm90dG9tOiAtOSU7XG4gICAgY29sb3I6ICNFN0U3RTc7XG4gICAgei1pbmRleDogMDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4Mi41ZW0pIHtcbiAgICAgIC5jYXJkLWljb25lZCAuY2FyZC1pY29uIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICByaWdodDogNCU7IH0gfVxuICAgIC5jYXJkLWljb25lZCAuY2FyZC1pY29uIC5pY29uLCAuY2FyZC1pY29uZWQgLmNhcmQtaWNvbiBpbWcsIC5jYXJkLWljb25lZCAuY2FyZC1pY29uIHN2ZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgIG9iamVjdC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgZm9udC1mYW1pbHk6ICdvYmplY3QtZml0OiBjb250YWluOyBvYmplY3QtcG9zaXRpb246IGNlbnRlcjsnOyB9XG4gIC5jYXJkLWljb25lZC5zbWFsbCB7XG4gICAgbWluLWhlaWdodDogMjAwcHg7XG4gICAgcGFkZGluZzogMjRweDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY2FyZC1pY29uZWQuc21hbGwge1xuICAgICAgICBtaW4taGVpZ2h0OiAyODBweDsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgyLjVlbSkge1xuICAgICAgLmNhcmQtaWNvbmVkLnNtYWxsIHtcbiAgICAgICAgcGFkZGluZzogNDhweDsgfSB9XG4gICAgLmNhcmQtaWNvbmVkLnNtYWxsIC5jYXJkLXRpdGxlLFxuICAgIC5jYXJkLWljb25lZC5zbWFsbCBoNSB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBjb2xvcjogI0E4QUQwMDsgfVxuICAgICAgLmNhcmQtaWNvbmVkLnNtYWxsIC5jYXJkLXRpdGxlIGIsIC5jYXJkLWljb25lZC5zbWFsbCAuY2FyZC10aXRsZSBzdHJvbmcsXG4gICAgICAuY2FyZC1pY29uZWQuc21hbGwgaDUgYixcbiAgICAgIC5jYXJkLWljb25lZC5zbWFsbCBoNSBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDQ4cHg7IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgICAuY2FyZC1pY29uZWQuc21hbGwgLmNhcmQtdGl0bGUgYiwgLmNhcmQtaWNvbmVkLnNtYWxsIC5jYXJkLXRpdGxlIHN0cm9uZyxcbiAgICAgICAgICAuY2FyZC1pY29uZWQuc21hbGwgaDUgYixcbiAgICAgICAgICAuY2FyZC1pY29uZWQuc21hbGwgaDUgc3Ryb25nIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNjRweDsgfSB9XG4gICAgLmNhcmQtaWNvbmVkLnNtYWxsIC5jYXJkLWNvbnRlbnQge1xuICAgICAgbWF4LXdpZHRoOiA3MCU7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMjBweDsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNhcmQtaWNvbmVkLnNtYWxsIC5jYXJkLWNvbnRlbnQge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsgfSB9XG4gICAgLmNhcmQtaWNvbmVkLnNtYWxsIC5jYXJkLWljb24ge1xuICAgICAgbWF4LXdpZHRoOiAyNCU7XG4gICAgICBib3R0b206IC01JTtcbiAgICAgIHJpZ2h0OiA0JTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNhcmQtaWNvbmVkLnNtYWxsIC5jYXJkLWljb24ge1xuICAgICAgICAgIG1heC13aWR0aDogMjglOyB9IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4Mi41ZW0pIHtcbiAgICAgICAgLmNhcmQtaWNvbmVkLnNtYWxsIC5jYXJkLWljb24ge1xuICAgICAgICAgIHJpZ2h0OiA5JTsgfSB9XG4iLCJAY2hhcnNldCAndXRmLTgnO1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9mdW5jdGlvbnNcIjtcblxuQGltcG9ydCBcImZvdW5kYXRpb25cIjtcblxuLmNhcmQtaWNvbmVkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDI0MHB4O1xuICAgIHBhZGRpbmc6IDQwcHggMjRweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGMtYmxhY2stMDI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjLWJsYWNrLTEwO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBwYWRkaW5nOiA2NHB4IDQ4cHg7XG4gICAgfVxuXG4gICAgLmNhcmQtdGl0bGUsIFxuICAgIGg1IHtcbiAgICAgICAgbWF4LXdpZHRoOiA1NyU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogJGMtYmxhY2stOTg7XG5cbiAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgYixzdHJvbmcge1xuICAgICAgICAgICAgZm9udC1zaXplOiA2NHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYXJkLWNvbnRlbnQge1xuICAgICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgICAgICBjb2xvcjogJGMtYmxhY2stNzA7XG4gICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNhcmQtaWNvbiB7XG4gICAgICAgIG1heC13aWR0aDogMzMlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLTIlO1xuICAgICAgICBib3R0b206IC05JTtcbiAgICAgICAgY29sb3I6ICRjLWJsYWNrLTA4O1xuICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICBcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDQlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmljb24sIGltZywgc3ZnIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgICAgICBvYmplY3QtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnb2JqZWN0LWZpdDogY29udGFpbjsgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXI7JzsgLy8gcG9saWZpbGxcblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmLnNtYWxsIHtcbiAgICAgICAgbWluLWhlaWdodDogMjAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDI0cHg7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDI4MHB4O1xuICAgICAgICB9XG4gICAgXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDQ4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAuY2FyZC10aXRsZSxcbiAgICAgICAgaDUge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRjLXNlY29uZGFyeTtcbiAgICAgICAgICAgIGIsIHN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiA0OHB4O1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogNjRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY2FyZC1jb250ZW50IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogNzAlO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNhcmQtaWNvbiB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDI0JTtcbiAgICAgICAgICAgIGJvdHRvbTogLTUlO1xuICAgICAgICAgICAgcmlnaHQ6IDQlO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDI4JTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICByaWdodDogOSU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn0iLCIvLyBjb2xvciBwYWxldHRzXG4kcHJpbWFyeS1wYWxldHRlOiAoXG5cdG5vcm1hbDogIzAwNjA3MixcbiAgICBkYXJrOiAjMDA1MjYyLFxuKTtcblxuJHNlY29uZGFyeS1wYWxldHRlOiAoXG4gICAgbm9ybWFsOiAjQThBRDAwLFxuICAgIGRhcms6ICM5ODlDMDAsXG4gICAgbGlnaHQ6ICNDQUNFNDJcbik7XG5cbiR0ZXJ0aWFyeS1wYWxldHRlOiAoXG4gICAgbm9ybWFsOiAjMUEyOTVCXG4pO1xuXG4kZ3JheXNjYWxlLXBhbGV0dGU6IChcblx0YmxhY2s6ICMwMDAwMDAsXG4gICAgYmxhY2stOTg6ICMwRDBEMEQsXG4gICAgYmxhY2stODU6ICMyQzJDMkMsIFxuICAgIGJsYWNrLTcwOiAjNTM1MzUzLFxuICAgIGJsYWNrLTYwOiAjNjg2ODY4LFxuICAgIGJsYWNrLTQwOiAjOUI5QjlCLFxuICAgIGJsYWNrLTI1OiAjQzJDMkMyLFxuICAgIGJsYWNrLTEyOiAjRERERERELFxuICAgIGJsYWNrLTEwOiAjRTVFNUU1LFxuICAgIGJsYWNrLTA4OiAjRTdFN0U3LFxuICAgIGJsYWNrLTA3OiAjRUVFRUVFLFxuICAgIGJsYWNrLTAzOiAjRjRGNEY0LFxuICAgIGJsYWNrLTAyOiAjRjZGNkY2LFxuICAgIGJsYWNrLTAxOiAjRkFGQUZBLFxuXG4gICAgd2hpdGU6ICNGRkZGRkYsXG4pO1xuXG4kZ3JhZGllbnQtcGFsZXR0ZTogKFxuXG4pO1xuXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gICAgXCJwcmltYXJ5XCI6IG1hcC1nZXQoJHByaW1hcnktcGFsZXR0ZSwgbm9ybWFsKSxcbiAgICBcInNlY29uZGFyeVwiOiBtYXAtZ2V0KCRwcmltYXJ5LXBhbGV0dGUsIG5vcm1hbCksXG4gICAgXCJzdWNjZXNzXCI6ICM2OEM4NEQsXG4gICAgXCJ3YXJuaW5nXCI6ICNGRkNGMDIsXG4gICAgXCJhbGVydFwiOiAjRDIzMzJBLFxuKTtcblxuJHRyYW5zcGFyZW50LXBhbGV0dGU6IChcbiAgICBibGFjay0wLTU6IHJnYmEobWFwLWdldCgkZ3JheXNjYWxlLXBhbGV0dGUsIGJsYWNrKSwgMC41KSxcbiAgICBibGFjay0wLTQ6IHJnYmEobWFwLWdldCgkZ3JheXNjYWxlLXBhbGV0dGUsIGJsYWNrKSwgMC40KSxcbiAgICBibGFjay0wLTM6IHJnYmEobWFwLWdldCgkZ3JheXNjYWxlLXBhbGV0dGUsIGJsYWNrKSwgMC4zKSxcbiAgICBibGFjay0wLTI6IHJnYmEobWFwLWdldCgkZ3JheXNjYWxlLXBhbGV0dGUsIGJsYWNrKSwgMC4yKSxcbiAgICBibGFjay0wLTE6IHJnYmEobWFwLWdldCgkZ3JheXNjYWxlLXBhbGV0dGUsIGJsYWNrKSwgMC4xKSxcbiAgICBibGFjay0wLTA1OiByZ2JhKG1hcC1nZXQoJGdyYXlzY2FsZS1wYWxldHRlLCBibGFjayksIDAuMDUpLFxuICAgIGJsYWNrLTAtMDI6IHJnYmEobWFwLWdldCgkZ3JheXNjYWxlLXBhbGV0dGUsIGJsYWNrKSwgMC4wMiksXG5cbiAgICB3aGl0ZS0wLTg6IHJnYmEobWFwLWdldCgkZ3JheXNjYWxlLXBhbGV0dGUsIHdoaXRlKSwgMC44KSxcbiAgICB3aGl0ZS0wLTY6IHJnYmEobWFwLWdldCgkZ3JheXNjYWxlLXBhbGV0dGUsIHdoaXRlKSwgMC42KSxcbiAgICB3aGl0ZS0wLTQ6IHJnYmEobWFwLWdldCgkZ3JheXNjYWxlLXBhbGV0dGUsIHdoaXRlKSwgMC40KSxcbiAgICB3aGl0ZS0wLTM6IHJnYmEobWFwLWdldCgkZ3JheXNjYWxlLXBhbGV0dGUsIHdoaXRlKSwgMC4zKSxcbiAgICB3aGl0ZS0wLTI6IHJnYmEobWFwLWdldCgkZ3JheXNjYWxlLXBhbGV0dGUsIHdoaXRlKSwgMC4yKSxcbiAgICB3aGl0ZS0wLTE6IHJnYmEobWFwLWdldCgkZ3JheXNjYWxlLXBhbGV0dGUsIHdoaXRlKSwgMC4xKSxcbiAgICB3aGl0ZS0wLTA1OiByZ2JhKG1hcC1nZXQoJGdyYXlzY2FsZS1wYWxldHRlLCB3aGl0ZSksIDAuMDUpLFxuKTtcblxuLy8gY29sb3IgdmFyaWFibGVzXG4kYy1wcmltYXJ5OiBtYXAtZ2V0KCRwcmltYXJ5LXBhbGV0dGUsIG5vcm1hbCk7XG4kYy1wcmltYXJ5LWRhcms6IG1hcC1nZXQoJHByaW1hcnktcGFsZXR0ZSwgZGFyayk7XG5cbiRjLXNlY29uZGFyeTogbWFwLWdldCgkc2Vjb25kYXJ5LXBhbGV0dGUsIG5vcm1hbCk7XG4kYy1zZWNvbmRhcnktZGFyazogbWFwLWdldCgkc2Vjb25kYXJ5LXBhbGV0dGUsIGRhcmspO1xuJGMtc2Vjb25kYXJ5LWxpZ2h0OiBtYXAtZ2V0KCRzZWNvbmRhcnktcGFsZXR0ZSwgbGlnaHQpO1xuXG4kYy10ZXJ0aWFyeTogbWFwLWdldCgkdGVydGlhcnktcGFsZXR0ZSwgbm9ybWFsKTtcblxuJGMtYmxhY2s6IG1hcC1nZXQoJGdyYXlzY2FsZS1wYWxldHRlLCBibGFjayk7XG4kYy1ibGFjay05ODogbWFwLWdldCgkZ3JheXNjYWxlLXBhbGV0dGUsIGJsYWNrLTk4KTtcbiRjLWJsYWNrLTg1OiBtYXAtZ2V0KCRncmF5c2NhbGUtcGFsZXR0ZSwgYmxhY2stODUpO1xuJGMtYmxhY2stNzA6IG1hcC1nZXQoJGdyYXlzY2FsZS1wYWxldHRlLCBibGFjay03MCk7XG4kYy1ibGFjay02MDogbWFwLWdldCgkZ3JheXNjYWxlLXBhbGV0dGUsIGJsYWNrLTYwKTtcbiRjLWJsYWNrLTQwOiBtYXAtZ2V0KCRncmF5c2NhbGUtcGFsZXR0ZSwgYmxhY2stNDApO1xuJGMtYmxhY2stMjU6IG1hcC1nZXQoJGdyYXlzY2FsZS1wYWxldHRlLCBibGFjay0yNSk7XG4kYy1ibGFjay0xMjogbWFwLWdldCgkZ3JheXNjYWxlLXBhbGV0dGUsIGJsYWNrLTEyKTtcbiRjLWJsYWNrLTEwOiBtYXAtZ2V0KCRncmF5c2NhbGUtcGFsZXR0ZSwgYmxhY2stMTApO1xuJGMtYmxhY2stMDg6IG1hcC1nZXQoJGdyYXlzY2FsZS1wYWxldHRlLCBibGFjay0wOCk7XG4kYy1ibGFjay0wNzogbWFwLWdldCgkZ3JheXNjYWxlLXBhbGV0dGUsIGJsYWNrLTA3KTtcbiRjLWJsYWNrLTAzOiBtYXAtZ2V0KCRncmF5c2NhbGUtcGFsZXR0ZSwgYmxhY2stMDMpO1xuJGMtYmxhY2stMDI6IG1hcC1nZXQoJGdyYXlzY2FsZS1wYWxldHRlLCBibGFjay0wMik7XG4kYy1ibGFjay0wMTogbWFwLWdldCgkZ3JheXNjYWxlLXBhbGV0dGUsIGJsYWNrLTAxKTtcblxuJGMtZ3JheTogbWFwLWdldCgkZ3JheXNjYWxlLXBhbGV0dGUsIGJsYWNrLTI1KTtcbiRjLWdyYXktZGFyazogbWFwLWdldCgkZ3JheXNjYWxlLXBhbGV0dGUsIGJsYWNrLTYwKTtcbiRjLWdyYXktbGlnaHQ6IG1hcC1nZXQoJGdyYXlzY2FsZS1wYWxldHRlLCBibGFjay0xMCk7XG5cbiRjLXdoaXRlOiBtYXAtZ2V0KCRncmF5c2NhbGUtcGFsZXR0ZSwgd2hpdGUpO1xuXG4vL3RyYW5zcGFyZW50IHZhcmlhYmxlc1xuJGMtYmxhY2stMC01OiBtYXAtZ2V0KCR0cmFuc3BhcmVudC1wYWxldHRlLCBibGFjay0wLTUpO1xuJGMtYmxhY2stMC00OiBtYXAtZ2V0KCR0cmFuc3BhcmVudC1wYWxldHRlLCBibGFjay0wLTQpO1xuJGMtYmxhY2stMC0zOiBtYXAtZ2V0KCR0cmFuc3BhcmVudC1wYWxldHRlLCBibGFjay0wLTMpO1xuJGMtYmxhY2stMC0yOiBtYXAtZ2V0KCR0cmFuc3BhcmVudC1wYWxldHRlLCBibGFjay0wLTIpO1xuJGMtYmxhY2stMC0xOiBtYXAtZ2V0KCR0cmFuc3BhcmVudC1wYWxldHRlLCBibGFjay0wLTEgKTtcbiRjLWJsYWNrLTAtMDU6IG1hcC1nZXQoJHRyYW5zcGFyZW50LXBhbGV0dGUsIGJsYWNrLTAtMDUpO1xuJGMtYmxhY2stMC0wMjogbWFwLWdldCgkdHJhbnNwYXJlbnQtcGFsZXR0ZSwgYmxhY2stMC0wMik7XG4kYy13aGl0ZS0wLTg6IG1hcC1nZXQoJHRyYW5zcGFyZW50LXBhbGV0dGUsIHdoaXRlLTAtOCk7XG4kYy13aGl0ZS0wLTY6IG1hcC1nZXQoJHRyYW5zcGFyZW50LXBhbGV0dGUsIHdoaXRlLTAtNik7XG4kYy13aGl0ZS0wLTQ6IG1hcC1nZXQoJHRyYW5zcGFyZW50LXBhbGV0dGUsIHdoaXRlLTAtNCk7XG4kYy13aGl0ZS0wLTM6IG1hcC1nZXQoJHRyYW5zcGFyZW50LXBhbGV0dGUsIHdoaXRlLTAtMyk7XG4kYy13aGl0ZS0wLTI6IG1hcC1nZXQoJHRyYW5zcGFyZW50LXBhbGV0dGUsIHdoaXRlLTAtMik7XG4kYy13aGl0ZS0wLTE6IG1hcC1nZXQoJHRyYW5zcGFyZW50LXBhbGV0dGUsIHdoaXRlLTAtMSk7XG4kYy13aGl0ZS0wLTA1OiBtYXAtZ2V0KCR0cmFuc3BhcmVudC1wYWxldHRlLCB3aGl0ZS0wLTA1KTtcblxuJGMtYWxlcnQ6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpO1xuJGMtd2FybmluZzogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKTtcbiRjLXN1Y2Nlc3M6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2Vzcyk7XG5cbi8vIGNvbG9yIHVzZWQgaW4gaGVscGVyZXNcbiRjb2xvci1jbGFzc2VzOiAoXG4gICAgcHJpbWFyeTogJGMtcHJpbWFyeSxcbiAgICBzZWNvbmRhcnk6ICRjLXNlY29uZGFyeSxcbiAgICBzZWNvbmRhcnktZGFyazogJGMtc2Vjb25kYXJ5LWRhcmssXG4gICAgdGVydGlhcnk6ICRjLXRlcnRpYXJ5LFxuXG4gICAgYmxhY2s6ICRjLWJsYWNrLFxuICAgIGJsYWNrLTk4OiAkYy1ibGFjay05OCxcbiAgICBibGFjay04NTogJGMtYmxhY2stODUsXG4gICAgYmxhY2stNzA6ICRjLWJsYWNrLTcwLFxuICAgIGJsYWNrLTYwOiAkYy1ibGFjay02MCxcbiAgICBibGFjay00MDogJGMtYmxhY2stNDAsXG4gICAgYmxhY2stMjU6ICRjLWJsYWNrLTI1LFxuICAgIGJsYWNrLTEyOiRjLWJsYWNrLTEyLFxuICAgIGJsYWNrLTAtNTogJGMtYmxhY2stMC01LFxuICAgIGJsYWNrLTAtMzogJGMtYmxhY2stMC0zLFxuICAgIGJsYWNrLTAtMjogJGMtYmxhY2stMC0yLFxuICAgIGJsYWNrLTAtMDU6ICRjLWJsYWNrLTAtMDUsXG4gICAgYmxhY2stMC0wMjogJGMtYmxhY2stMC0wMixcbiAgICBcbiAgICB3aGl0ZTogJGMtd2hpdGUsXG4gICAgd2hpdGUtMC04OiAkYy13aGl0ZS0wLTgsXG4gICAgd2hpdGUtMC02OiAkYy13aGl0ZS0wLTYsXG4gICAgd2hpdGUtMC00OiAkYy13aGl0ZS0wLTQsXG4gICAgd2hpdGUtMC0zOiAkYy13aGl0ZS0wLTMsXG4gICAgd2hpdGUtMC0yOiAkYy13aGl0ZS0wLTIsXG4gICAgd2hpdGUtMC0xOiAkYy13aGl0ZS0wLTEsXG4gICAgd2hpdGUtMC0wNTogJGMtd2hpdGUtMC0wNSxcbik7XG5cbiRiYWNrZ3JvdW5kLWNsYXNzZXM6IChcbiAgICBwcmltYXJ5OiAkYy1wcmltYXJ5LFxuICAgIHNlY29uZGFyeTogJGMtc2Vjb25kYXJ5LFxuICAgIHRlcnRpYXJ5OiAkYy10ZXJ0aWFyeSxcblxuICAgIGJsYWNrOiAkYy1ibGFjayxcbiAgICBibGFjay0xMDogJGMtYmxhY2stMTAsXG4gICAgYmxhY2stMDM6ICRjLWJsYWNrLTAzLFxuICAgIGJsYWNrLTAyOiAkYy1ibGFjay0wMixcbiAgICBcbiAgICBibGFjay0wLTU6ICRjLWJsYWNrLTAtNSxcbiAgICBibGFjay0wLTQ6ICRjLWJsYWNrLTAtNCxcbiAgICBibGFjay0wLTM6ICRjLWJsYWNrLTAtMyxcbiAgICBibGFjay0wLTI6ICRjLWJsYWNrLTAtMixcbiAgICBibGFjay0wLTA1OiAkYy1ibGFjay0wLTA1LFxuICAgIGJsYWNrLTAtMDI6ICRjLWJsYWNrLTAtMDIsXG4gICAgXG4gICAgd2hpdGU6ICRjLXdoaXRlLFxuICAgIHdhcm5pbmc6ICRjLXdhcm5pbmcsXG4gICAgYWxlcnQ6ICRjLWFsZXJ0XG4pO1xuXG4vLyBvdmVycmlkZSBmb3VuZGF0aW9uIGNvbG9yc1xuJGJsYWNrOiAkYy1ibGFjaztcbiRkYXJrLWdyYXk6ICRjLWJsYWNrLTYwO1xuJG1lZGl1bS1ncmF5OiAkYy1ibGFjay0yNTtcbiRsaWdodC1ncmF5OiAkYy1ibGFjay0xMDtcbiR3aGl0ZTogJGMtd2hpdGU7XG5cbiRhbGVydDogJGMtYWxlcnQ7XG4kd2FybmluZzogJGMtd2FybmluZztcbiRzdWNjZXNzOiAkYy1zdWNjZXNzOyIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLy8gUGF0Y2ggdG8gZml4IGlzc3VlICMxMjA4MFxuJC16Zi1zaXplOiBudWxsO1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG4gIFwic21hbGxcIjogMCxcbiAgXCJtZWRpdW1cIjogNjQwcHgsXG4gIFwibGFyZ2VcIjogMTAyNHB4LFxuICBcInhsYXJnZVwiOiAxMjAwcHgsXG4gIFwieHhsYXJnZVwiOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIEhpRFBJIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzIGZvciByZXNvbHV0aW9ucy5cbi8vLyBWYWx1ZXMgbXVzdCByZXByZXNlbnQgdGhlIGRldmljZSBwaXhlbHMgLyB3ZWIgcGl4ZWxzIHJhdGlvbiBhbmQgYmUgdW5pdGxlc3Mgb3IgaW4gRFBQWC5cbi8vLyBAdHlwZSBNYXBcbiRicmVha3BvaW50cy1oaWRwaTogKFxuICBcImhpZHBpLTFcIjogMSxcbiAgXCJoaWRwaS0xLTVcIjogMS41LFxuICBcImhpZHBpLTJcIjogMixcbiAgXCJyZXRpbmFcIjogMixcbiAgXCJoaWRwaS0zXCI6IDNcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGFyZ2VzdCBuYW1lZCBicmVha3BvaW50IGluIHdoaWNoIHRvIGluY2x1ZGUgcHJpbnQgYXMgYSBtZWRpYSB0eXBlXG4vLy8gQHR5cGUgS2V5d29yZFxuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlICFkZWZhdWx0O1xuXG4kLXpmLXplcm8tYnJlYWtwb2ludDogc21hbGwgIWRlZmF1bHQ7XG5cbiQtemYtYnJlYWtwb2ludHMta2V5czogbWFwLXRvLWxpc3QoJGJyZWFrcG9pbnRzLCAna2V5cycpO1xuXG5AaWYgbnRoKG1hcC12YWx1ZXMoJGJyZWFrcG9pbnRzKSwgMSkgIT0gMCB7XG4gIEBlcnJvciAnVGhlIGZpcnN0IGtleSBpbiB0aGUgJGJyZWFrcG9pbnRzIG1hcCBtdXN0IGhhdmUgYSB2YWx1ZSBvZiBcIjBcIi4nO1xufVxuQGVsc2Uge1xuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gV2ViIHN0YW5kYXJkIFBpeGVscyBwZXIgaW5jaC4gKDFkZHB4IC8gJHN0ZC13ZWItZHBpKSA9IDFkcGlcbiAgLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtdmFsdWVzLTMvI2Fic29sdXRlLWxlbmd0aHNcbiAgJHN0ZC13ZWItZHBpOiA5NjtcblxuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIG9mIHRoZSBmb2xsb3dpbmcgYnJlYWtwb2ludFxuICAkYnAtbmV4dDogbnVsbDtcbiAgLy8gVmFsdWUgZm9yIG1heC13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1taW46IG51bGw7XG4gIC8vIFZhbHVlIGZvciBtaW4td2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWF4OiBudWxsO1xuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAkZGlyOiBpZihsZW5ndGgoJHZhbCkgPiAxLCBudGgoJHZhbCwgMiksIHVwKTtcbiAgLy8gSWYgbmFtZWQsIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnRcbiAgJG5hbWU6IG51bGw7XG4gIC8vIElmIHRoZSBicmVha3BvaW50IGlzIGEgSGlEUEkgYnJlYWtwb2ludFxuICAkaGlkcGk6IGZhbHNlO1xuXG4gIC8vIE9yaWVudGF0aW9uIG1lZGlhIHF1ZXJpZXMgaGF2ZSBhIHVuaXF1ZSBzeW50YXhcbiAgQGlmICRicCA9PSAnbGFuZHNjYXBlJyBvciAkYnAgPT0gJ3BvcnRyYWl0JyB7XG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcbiAgfVxuXG4gIC8vIElmIGEgYnJlYWtwb2ludCBuYW1lIGlzIGdpdmVuLCBnZXQgaXRzIHZhbHVlIGZyb20gdGhlICRicmVha3BvaW50cy8kYnJlYWtwb2ludHMtaGlkcGkgbWFwLlxuICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcbiAgICAgICRuYW1lOiAkYnA7XG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgICAkYnAtbmV4dDogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICAgIH1cbiAgICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMtaGlkcGksICRicCkge1xuICAgICAgJG5hbWU6ICRicDtcbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMtaGlkcGksICRuYW1lKTtcbiAgICAgICRicC1uZXh0OiAtemYtbWFwLW5leHQtbnVtYmVyKCRicmVha3BvaW50cy1oaWRwaSwgJGJwKTtcbiAgICAgICRoaWRwaTogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGJwOiAwO1xuICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogXCIjeyR2YWx9XCIgaXMgbm90IGRlZmluZWQgaW4geW91ciBgJGJyZWFrcG9pbnRzYCBvciBgJGJyZWFrcG9pbnRzLWhpZHBpYCBzZXR0aW5nLic7XG4gICAgfVxuICB9XG5cbiAgQGlmIG5vdCAkbmFtZSBhbmQgJGRpciA9PSAnb25seScge1xuICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBPbmx5ICdvbmx5JyBhbmQgJ3VwJyBoYXZlIGEgbWluIGxpbWl0LlxuICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAndXAnIHtcbiAgICAkYnAtbWluOiBpZigkaGlkcGksIHN0cmlwLXVuaXQoJGJwKSwgLXpmLWJwLXRvLWVtKCRicCkpO1xuICB9XG4gIC8vIE9ubHkgJ29ubHknIGFuZCAnZG93bicgaGF2ZSBhIG1heCBsaW1pdC5cbiAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBhIHZhbHVlLCB1c2UgaXQgYXMgbWF4IGxpbWl0LlxuICAgIEBpZiBub3QgJG5hbWUge1xuICAgICAgJGJwLW1heDogaWYoJGhpZHBpLCBzdHJpcC11bml0KCRicCksIC16Zi1icC10by1lbSgkYnApKTtcbiAgICB9XG4gICAgLy8gSWYgdGhlIGJyZWFrcG9pbnQgaXMgbmFtZWQsIHRoZSBtYXggbGltaXQgaXMgdGhlIGZvbGxvd2luZyBicmVha3BvaW50IC0gMXB4LlxuICAgIEBlbHNlIGlmICRicC1uZXh0IHtcbiAgICAgIC8vIE1heCB2YWx1ZSBpcyAwLjJweCB1bmRlciB0aGUgbmV4dCBicmVha3BvaW50ICgwLjAyIC8gMTYgPSAwLjAwMTI1KS5cbiAgICAgIC8vIFVzZSBhIHByZWNpc2lvbiB1bmRlciAxcHggdG8gc3VwcG9ydCBicm93c2VyIHpvb20sIGJ1dCBub3QgdG8gbG93IHRvIGF2b2lkIHJvdW5kaW5nLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzExMzEzXG4gICAgICAkYnAtbWF4OiBpZigkaGlkcGksICRicC1uZXh0IC0gZGl2aWRlKDEsICRzdGQtd2ViLWRwaSksIC16Zi1icC10by1lbSgkYnAtbmV4dCkgLSAwLjAwMTI1KTtcbiAgICB9XG4gIH1cblxuICAvLyBHZW5lcmF0ZSB0aGUgbWVkaWEgcXVlcnkgc3RyaW5nIGZyb20gbWluIGFuZCBtYXggbGltaXRzLlxuICBAaWYgJGhpZHBpIHtcbiAgICAvLyBHZW5lcmF0ZSB2YWx1ZXMgaW4gRFBJIGluc3RlYWQgb2YgRFBQWCBmb3IgYW4gSUU5LTExL09wZXJhIG1pbmkgY29tcGF0aWJpbGl0eS5cbiAgICAvLyBTZWUgaHR0cHM6Ly9jYW5pdXNlLmNvbS8jZmVhdD1jc3MtbWVkaWEtcmVzb2x1dGlvblxuICAgICRicC1taW4tZHBpOiBpZigkYnAtbWluLCAkYnAtbWluICogJHN0ZC13ZWItZHBpICogMWRwaSwgJGJwLW1pbik7XG4gICAgJGJwLW1heC1kcGk6IGlmKCRicC1tYXgsICRicC1tYXggKiAkc3RkLXdlYi1kcGkgKiAxZHBpLCAkYnAtbWF4KTtcbiAgICBAcmV0dXJuIHpmLXN0ci1qb2luKFxuICAgICAgLXpmLWJwLWpvaW4oJGJwLW1pbiwgJGJwLW1heCwgJy13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbycsICctd2Via2l0LW1heC1kZXZpY2UtcGl4ZWwtcmF0aW8nKSxcbiAgICAgIC16Zi1icC1qb2luKCRicC1taW4tZHBpLCAkYnAtbWF4LWRwaSwgJ21pbi1yZXNvbHV0aW9uJywgJ21heC1yZXNvbHV0aW9uJyksXG4gICAgICAnLCAnKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAtemYtYnAtam9pbigkYnAtbWluLCAkYnAtbWF4KTtcbiAgfVxufVxuXG4vLy8gV3JhcHMgYSBtZWRpYSBxdWVyeSBhcm91bmQgdGhlIGNvbnRlbnQgeW91IHB1dCBpbnNpZGUgdGhlIG1peGluLiBUaGlzIG1peGluIGFjY2VwdHMgYSBudW1iZXIgb2YgdmFsdWVzOlxuLy8vICAtIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgbG9vayBmb3IgaXQgaW4gdGhlIGAkYnJlYWtwb2ludHNgIGFuZCBgJGJyZWFrcG9pbnRzLWhpZHBpYCBtYXBzLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gSWYgbXVsdGlwbGUgdmFsdWVzIGFyZSBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGdlbmVyYXRlIGEgbWVkaWEgcXVlcnkgZm9yIGVhY2ggb2YgdGhlbSBhcyBkZXNjcmliZWQgYWJvdmUuXG4vLy8gU2luY2UgdGhlIGNvbnRlbnQgaXMgZHVwbGljYXRlZCBmb3IgZWFjaCBicmVha3BvaW50LCB0aGlzIG1peGluIHNob3VsZCBvbmx5IGJlIHVzZWQgd2l0aCBwcm9wZXJ0aWVzIHRoYXRcbi8vLyBjaGFuZ2UgYWNyb3NzIGJyZWFrcG9pbnRzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlcy4uLiAtIEJyZWFrcG9pbnQgbmFtZSBvciBweC9yZW0vZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbi8vL1xuLy8vIEBvdXRwdXQgSWYgdGhlIGJyZWFrcG9pbnQgaXMgXCIwcHggYW5kIGxhcmdlclwiLCBvdXRwdXRzIHRoZSBjb250ZW50IGFzLWlzLiBPdGhlcndpc2UsIG91dHB1dHMgdGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGJyZWFrcG9pbnQoJHZhbHVlcy4uLikge1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkdmFsdWVzKSB7XG4gICAgJHZhbHVlOiBudGgoJHZhbHVlcywgJGkpO1xuICAgICRzdHI6IGJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgICAkYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgbnRoKCR2YWx1ZSwgMSkpO1xuICAgICRwYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHByaW50LWJyZWFrcG9pbnQpO1xuICAgIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICAgJGRpcjogaWYobGVuZ3RoKCR2YWx1ZSkgPiAxLCBudGgoJHZhbHVlLCAyKSwgdXApO1xuXG4gICAgJG9sZC16Zi1zaXplOiBudWxsO1xuXG4gICAgLy8gTWFrZSBicmVha3BvaW50IHNpemUgYXZhaWxhYmxlIGFzIGEgdmFyaWFibGVcbiAgICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xuICAgICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XG4gICAgfVxuICAgICQtemYtc2l6ZTogbnRoKCR2YWx1ZSwgMSkgIWdsb2JhbDsgLy8gZ2V0IHRoZSBmaXJzdCB2YWx1ZSB0byBhY2NvdW50IGZvciBgb25seWAgYW5kIGBkb3duYCBrZXl3b3Jkc1xuXG4gICAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxuICAgIEBpZiAkc3RyID09ICcnIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gICAgQGVsc2Uge1xuICAgICAgLy8gRm9yIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAkcHJpbnQtYnJlYWtwb2ludCwgYWRkIHByaW50IHRvIHRoZSBtZWRpYSB0eXBlc1xuICAgICAgLy8gZ2VuZXJhdGUgcHJpbnQgaWYgdGhlIGJyZWFrcG9pbnQgYWZmZWN0cyB0aGUgcHJpbnQtYnJlYWtwb2ludCAob3Igc21hbGxlcikuXG4gICAgICAvLyBUaGlzIG1lYW5zIHRoZSBjdXJyZW50IGNvbmRpdGlvbiBvbmx5IG5lZWRzIHRvIGJlIGV4dGVuZGVkIHNvICdkb3duJyBhbHdheXMgZ2VuZXJhdGVzIHByaW50LlxuICAgICAgQGlmICRicCAhPSBudWxsIGFuZCAoJGJwIDw9ICRwYnAgb3IgJGRpciA9PSBkb3duKSB7XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH1cbn1cblxuLy8vIENvbnZlcnRzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcbiAgJHN0cjogJyc7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xuICB9XG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuXG4gIC8vIFN0b3JlIHRoZSBrZXlzIG9mIHRoZSBtYXAgYXMgYSBsaXN0XG4gICR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICRpOiAwO1xuXG4gIC8vIElmIHRoZSBLZXkgRXhpc3RzLCBHZXQgdGhlIGluZGV4IG9mIHRoZSBrZXkgd2l0aGluIHRoZSBtYXAgYW5kIGFkZCAxIHRvIGl0IGZvciB0aGUgbmV4dCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAoJGkgPiBsZW5ndGgoJG1hcCkgb3IgJGkgPT0gMCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcbiAgfVxuXG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IG51bWJlciBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRudW1iZXIgLSBOdW1iZXIgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSBudW1iZXIgZm9sbG93aW5nIGAkbnVtYmVyYCwgaWYgYCRudW1iZXJgIHdhcyBmb3VuZC4gSWYgYCRudW1iZXJgIHdhcyBub3QgZm91bmQsIG9yIGAkbnVtYmVyYCB3YXMgdGhlIGJpZ2dlc3QgbnVtYmVyIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dC1udW1iZXIoJG1hcCwgJG51bWJlcikge1xuXG4gICRuZXh0LW51bWJlcjogbnVsbDtcblxuICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgQGlmIHR5cGUtb2YoJHYpID09ICdudW1iZXInIGFuZCAkdiA+ICRudW1iZXIgYW5kICgkbmV4dC1udW1iZXIgPT0gbnVsbCBvciAkdiA8ICRuZXh0LW51bWJlcikge1xuICAgICAgJG5leHQtbnVtYmVyOiAkdjtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRuZXh0LW51bWJlcjtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGtleSAtIEtleSB0byB1c2UgYXMgbGFzdCBicmVha3BvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJGtleSkge1xuICAkbGlzdDogKCk7XG4gICRmb3VuZC1rZXk6IGZhbHNlO1xuXG4gIEBlYWNoICRuYW1lIGluICQtemYtYnJlYWtwb2ludHMta2V5cyB7XG4gICAgQGlmICgkbmFtZSA9PSAka2V5KSB7XG4gICAgICAkZm91bmQta2V5OiB0cnVlO1xuICAgIH1cbiAgICBAaWYgbm90ICRmb3VuZC1rZXkge1xuICAgICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJG5hbWUpO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRsaXN0O1xufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCAtIGEgbmFtZWQgb3Igbm9uLW5hbWVkIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAkbGFzdDogJC16Zi16ZXJvLWJyZWFrcG9pbnQ7XG4gICRmb3VuZDogZmFsc2U7XG5cbiAgJHZhbHVlOiB1bml0bGVzcy1jYWxjKCRicmVha3BvaW50LCAxcHgpO1xuICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgQGlmIHVuaXRsZXNzLWNhbGMoJHZhbCkgPiAkdmFsdWUge1xuICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJGxhc3Q6ICRrZXk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbGFzdDtcbn1cblxuLy8vIEdldCBhIHZhbHVlIGZvciBhIGJyZWFrcG9pbnQgZnJvbSBhIHJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXQgcmVnYXJkbGVzcyBvZiBgJHZhbHVlYC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGRvZXMgKm5vdCogaGF2ZSB0aGUgYnJlYWtwb2ludCwgdGhlIHZhbHVlIG1hdGNoaW5nIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGluIHRoZSBjb25maWcgbWFwIGlzIHJldHVybmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gUmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtNaXhlZH0gVGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZS5cbkBmdW5jdGlvbiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkdmFsdWUpIHtcbiAgLy8gSWYgdGhlIGdpdmVuIG1hcCBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0XG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICRtYXA7XG4gIH1cblxuXG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGdsb2JhbGx5XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAgICR2YWx1ZTogLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkdmFsdWUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBpbiB0aGUgbG9jYWwgY29uZmlnIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkbWFwLCAkdmFsdWUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJHZhbHVlKTtcbiAgfVxuICAvLyBPdGhlcndpc2UsIGZpbmQgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgYW5kIHJldHVybiB0aGF0IHZhbHVlXG4gIEBlbHNlIHtcbiAgICAkYW5jaG9yOiBudWxsO1xuICAgICRmb3VuZDogZmFsc2U7XG5cbiAgICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkbWFwLCAka2V5KSB7XG4gICAgICAgICAgJGFuY2hvcjogJGtleTtcbiAgICAgICAgfVxuICAgICAgICBAaWYgJGtleSA9PSAkdmFsdWUge1xuICAgICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkYW5jaG9yKTtcbiAgfVxufVxuXG4vLy8gUmV0dXJuIHRoZSBiZXN0IGJyZWFrcG9pbnQgdG8gdXNlIGFjY29yZGluZyB0byB0aGUgY2FsbGluZyBjb250ZXh0LiBJdCByZXR1cm5zIGluIG9yZGVyOlxuLy8vIDEuIHRoZSBnaXZlbiBgJHZhbHVlYCBhcmd1bWVudCBpZiBpdCBpcyBub3QgbnVsbC5cbi8vLyAyLiB0aGUgZ2xvYmFsIGJyZWFrcG9pbnQgY29udGV4dCBgJC16Zi1zaXplYCBpZiBpdCBpcyBub3QgbnVsbCAobGlrZSBpZiBjYWxsZWQgaW5zaWRlIHRoZW4gYGJyZWFrcG9pbnQoKWAgbWl4aW4pXG4vLy8gMy4gdGhlIGdpdmVuIGAkZGVmYXVsdGAgYXJndW1lbnQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSBbbnVsbF0gLSBCcmVha3BvaW50IHRvIHVzZSBpbiBwcmlvcml0eSBpZiBub24tbnVsbC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkZWZhdWx0IFtudWxsXSAtIEJyZWFrcG9pbnQgdG8gdXNlIGJ5IGRlZmF1bHQgaWYgbm8gb3RoZXIgdmFsdWUgY2FuIGJlIHVzZWQuXG4vLy9cbi8vLyBAcmV0dXJuIHtLZXl3b3JkfSBUaGUgcmVzb2x2ZWQgYnJlYWtwb2ludC5cbkBmdW5jdGlvbiAtemYtY3VycmVudC1icmVha3BvaW50KCR2YWx1ZTogbnVsbCwgJGRlZmF1bHQ6IG51bGwpIHtcbiAgQGlmICgkdmFsdWUgIT0gbnVsbCkge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG4gIEBlbHNlIGlmICh2YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIGFuZCB0eXBlLW9mKCQtemYtc2l6ZSkgIT0gJ251bWJlcicpIGFuZCAkLXpmLXNpemUgIT0gbnVsbCB7XG4gICAgQHJldHVybiAkLXpmLXNpemU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJGRlZmF1bHQ7XG4gIH1cbn1cblxuLy8vIFJldHVybiBtZWRpYSBxdWVyeSBzdHJpbmcgZnJvbSB0aGUgZ2l2ZW4gbWluIGFuZC9vciBtYXggbGltaXRzLlxuLy8vIElmIGEgbGltaXQgaXMgZXF1YWwgdG8gYG51bGxgIG9yIGAwYCwgaXQgaXMgaWdub3JlZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWluIFswXSAtIE1pbiBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCBbMF0gLSBNYXggbWVkaWEgcXVlcnkgbGltaXQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtaW4tbmFtZSBbJ21pbi13aWR0aCddIC0gTmFtZSBvZiB0aGUgbWluIG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGVsaW1pdGVyIFsnbWF4LXdpZHRoJ10gLSBOYW1lIG9mIHRoZSBtYXggbWVkaWEgcXVlcnkgbGltaXQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBNZWRpYSBRdWVyeSBzdHJpbmcuXG5AZnVuY3Rpb24gLXpmLWJwLWpvaW4oXG4gICRtaW46IDAsXG4gICRtYXg6IDAsXG4gICRtaW4tbmFtZTogJ21pbi13aWR0aCcsXG4gICRtYXgtbmFtZTogJ21heC13aWR0aCdcbikge1xuICBAcmV0dXJuIHpmLXN0ci1qb2luKFxuICAgIGlmKCRtaW4gYW5kICRtaW4gPiAwLCAnKCN7JG1pbi1uYW1lfTogI3skbWlufSknLCBudWxsKSxcbiAgICBpZigkbWF4IGFuZCAkbWF4ID4gMCwgJygjeyRtYXgtbmFtZX06ICN7JG1heH0pJywgbnVsbCksXG4gICAgJyBhbmQgJyk7XG59XG5cbiRzbWFsbC11cDogJyc7XG4kc21hbGwtb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbiRtZWRpdW0tdXA6ICcnO1xuJG1lZGl1bS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG4kbGFyZ2UtdXA6ICcnO1xuJGxhcmdlLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG4keGxhcmdlLXVwOiAnJztcbiR4bGFyZ2Utb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHhsYXJnZSkge1xuICAkeGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2UpfScpO1xuICAkeGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSBvbmx5KX0nKTtcbn1cblxuJHh4bGFyZ2UtdXA6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiJdfQ== */
