.compare-button.selected i:before {
  content: "\EC4F"; }

.compare-header .compare-products {
  display: block; }
  .compare-header .compare-products i {
    font-size: 1.5rem;
    line-height: 1; }
  .compare-header .compare-products > span {
    display: none; }

#compare-footer [data-off-canvas] {
  background: black; }

#compare-footer .compare-footer-grover {
  width: 3.125rem;
  height: 3.125rem;
  position: fixed;
  left: 0;
  top: calc(100% - 3.125rem);
  background: #000;
  z-index: 5;
  text-align: center;
  cursor: pointer;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out; }
  #compare-footer .compare-footer-grover i {
    font-size: 1.25rem;
    line-height: 3.125rem; }
  #compare-footer .compare-footer-grover span {
    vertical-align: 0.625rem; }
  #compare-footer .compare-footer-grover:hover {
    color: #fff; }
  #compare-footer .compare-footer-grover.open-slidebar i:before {
    content: '\EC35'; }

#compare-footer #compare-list-footer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  overflow-y: auto; }
  #compare-footer #compare-list-footer li:not(.no-products) {
    width: 5.3125rem;
    margin-right: 0.625rem; }
    #compare-footer #compare-list-footer li:not(.no-products):last-child {
      margin-right: 0; }

#compare-footer .buttons a {
  text-transform: uppercase;
  font-weight: bold;
  margin-right: 1.25rem;
  color: #fff; }
  #compare-footer .buttons a:hover {
    color: #c0de01; }

#modal-compare .modal-dialog.modal-lg .close {
  right: auto;
  left: 0.25rem;
  color: #fff;
  top: 0.3125rem; }
  #modal-compare .modal-dialog.modal-lg .close:before {
    color: #fff;
    font-size: 0.75rem; }
  #modal-compare .modal-dialog.modal-lg .close:hover, #modal-compare .modal-dialog.modal-lg .close:hover:before {
    color: #a2a2a2; }

#modal-compare .close:before {
  font-size: 0.9375rem;
  line-height: 1; }

#modal-compare:not(.with-products) #compare-products, #modal-compare:not(.with-products) #compare-features {
  display: none;
  margin: 0 50%; }

#modal-compare.with-products[style^="display: block;"], #modal-compare.with-products[style*="display: block; "] {
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important; }

#modal-compare.with-products .modal-content {
  background: none;
  border: none;
  width: auto;
  max-width: 100%; }
  #modal-compare.with-products .modal-content .modal-content-compare {
    border-right: 0.0625rem solid #e7e7e7;
    padding-left: 1.25rem;
    overflow-x: scroll;
    background: #141414; }
    #modal-compare.with-products .modal-content .modal-content-compare #compare-products {
      background: #fff;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-products > div {
        min-width: 12.5rem;
        max-width: 12.5rem;
        text-align: center;
        background: #fff;
        border-left: 0.0625rem solid #e7e7e7;
        border-top: 0.0625rem solid #e7e7e7; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-products > div:first-child {
          background: none;
          border: none;
          -webkit-transition: all .2s;
          transition: all .2s;
          -webkit-transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25);
                  transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25); }
          #modal-compare.with-products .modal-content .modal-content-compare #compare-products > div:first-child > div {
            min-width: 12.5rem;
            -webkit-transition: all .2s;
            transition: all .2s;
            -webkit-transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25);
                    transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25); }
        @media (max-width: 767px) {
          #modal-compare.with-products .modal-content .modal-content-compare #compare-products > div {
            min-width: 9.375rem;
            max-width: 9.375rem; }
            #modal-compare.with-products .modal-content .modal-content-compare #compare-products > div:first-child > div {
              min-width: 12.5rem; } }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-products > div .product-flags {
          display: none; }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-products .product-thumbnail .close {
        top: 0.3125rem; }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-products.close-titles > div:first-child {
        min-width: 0;
        max-width: 100%; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-products.close-titles > div:first-child > div {
          margin-left: -12.5rem; }
    #modal-compare.with-products .modal-content .modal-content-compare #compare-features {
      position: relative;
      text-transform: uppercase;
      font-size: 0.75rem;
      color: #141414; }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-features .features-toggle {
        position: absolute;
        right: 100%;
        top: 0;
        bottom: 0;
        width: 1.25rem;
        background: #141414;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -ms-flex-pack: distribute;
            justify-content: space-around;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        color: #fff;
        cursor: pointer;
        -webkit-transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25);
                transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25);
        -webkit-transition: all 0.3s ease-in-out;
        transition: all 0.3s ease-in-out; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .features-toggle:hover {
          color: #a2a2a2; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .features-toggle span {
          letter-spacing: 0.8em;
          -webkit-writing-mode: vertical-rl;
              -ms-writing-mode: tb-rl;
                  writing-mode: vertical-rl;
          text-orientation: upright; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .features-toggle i {
          font-size: 1rem; }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-title {
        -webkit-transition: all .2s;
        transition: all .2s;
        -webkit-transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25);
                transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25); }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-features.close-titles .features-toggle {
        color: #888888; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features.close-titles .features-toggle i {
          -webkit-transform: rotate(180deg);
                  transform: rotate(180deg); }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features.close-titles .features-toggle:hover {
          color: #fff; }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-features.close-titles .compare-features-row .compare-features-title {
        margin-left: -12.5rem;
        color: #f1f1f1; }
        @media (max-width: 767px) {
          #modal-compare.with-products .modal-content .modal-content-compare #compare-features.close-titles .compare-features-row .compare-features-title {
            margin-left: -9.375rem; } }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row:nth-child(even) .compare-features-item {
          background: #f1f1f1; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row:nth-child(odd) .compare-features-item {
          background: #fff; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row:last-child > div:not(:first-child) {
          border-bottom: 0.0625rem solid #e7e7e7; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row > div {
          min-width: 12.5rem;
          max-width: 12.5rem;
          padding: 1.0625rem 0.625rem 0.875rem;
          text-align: center;
          border-left: 0.0625rem solid #e7e7e7; }
          #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row > div:first-child {
            text-align: left;
            background: #f1f1f1;
            border: none;
            font-weight: bold;
            padding-left: 1.875rem; }
          @media (max-width: 767px) {
            #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row > div {
              min-width: 9.375rem;
              max-width: 9.375rem;
              padding: 0.5625rem 0.3125rem 0.5rem; }
              #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row > div:first-child {
                padding-left: 0.9375rem; } }

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9tb2R1bGVzL2p4Y29tcGFyZXByb2R1Y3Qvdmlld3MvY3NzL0M6L09wZW5TZXJ2ZXIvZG9tYWlucy9sb2NhbGhvc3QvQmlrZUlkb2wvdGhlbWVzL3RoZW1lMTUxOS9fZGV2L21vZHVsZXMvanhjb21wYXJlcHJvZHVjdC92aWV3cy9jc3MvQzovT3BlblNlcnZlci9kb21haW5zL2xvY2FsaG9zdC9CaWtlSWRvbC90aGVtZXMvdGhlbWUxNTE5L19kZXYvbW9kdWxlcy9qeGNvbXBhcmVwcm9kdWN0L3ZpZXdzL2Nzcy9qeGNvbXBhcmVwcm9kdWN0LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbW9kdWxlcy9qeGNvbXBhcmVwcm9kdWN0L3ZpZXdzL2Nzcy9DOi9PcGVuU2VydmVyL2RvbWFpbnMvbG9jYWxob3N0L0Jpa2VJZG9sL3RoZW1lcy90aGVtZTE1MTkvX2Rldi9tb2R1bGVzL2p4Y29tcGFyZXByb2R1Y3Qvdmlld3MvY3NzL0M6L09wZW5TZXJ2ZXIvZG9tYWlucy9sb2NhbGhvc3QvQmlrZUlkb2wvdGhlbWVzL3RoZW1lMTUxOS9fZGV2L2Nzcy9wYXJ0aWFscy9fdmFyaWFibGVzX2NvbG9yLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbW9kdWxlcy9qeGNvbXBhcmVwcm9kdWN0L3ZpZXdzL2Nzcy9DOi9PcGVuU2VydmVyL2RvbWFpbnMvbG9jYWxob3N0L0Jpa2VJZG9sL3RoZW1lcy90aGVtZTE1MTkvX2Rldi9tb2R1bGVzL2p4Y29tcGFyZXByb2R1Y3Qvdmlld3MvY3NzL0M6L09wZW5TZXJ2ZXIvZG9tYWlucy9sb2NhbGhvc3QvQmlrZUlkb2wvdGhlbWVzL3RoZW1lMTUxOS9fZGV2L25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JyZWFrcG9pbnRzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFFSSxpQkFBZ0IsRUFDakI7O0FBRUg7RUFFSSxlQUFjLEVBUWY7RUFWSDtJQUlNLGtCQUFlO0lBQ2YsZUFBYyxFQUNm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LEVBQzFCO1FBcEhiO1VBc0hjLGdCQUFlLEVBQ2hCO01BdkhiO1FBMEhZLDRCQUFtQjtRQUFuQixvQkFBbUI7UUFDbkIsc0VBQTZEO2dCQUE3RCw4REFBNkQsRUFDOUQ7TUE1SFg7UUErSGMsZUMvTEksRURzTUw7UUF0SWI7VUFpSWdCLGtDQUF5QjtrQkFBekIsMEJBQXlCLEVBQzFCO1FBbElmO1VBb0lnQixZQzFNSCxFRDJNRTtNQXJJZjtRQXdJYyxzQkFBbUI7UUFDbkIsZUM3TUksRURpTkw7UUVqSlQ7VUZJSjtZQTJJZ0IsdUJBQW1CLEVBRXRCO01BN0liO1FBZ0pZLHFCQUFhO1FBQWIscUJBQWE7UUFBYixjQUFhLEVBa0NkO1FBbExYO1VBa0pjLG9CQ3ROSSxFRHVOTDtRQW5KYjtVQXFKYyxpQkMzTkQsRUQ0TkE7UUF0SmI7VUF5SmdCLHVDQzVORSxFRDZOSDtRQTFKZjtVQTZKYyxtQkFBZ0I7VUFDaEIsbUJBQWdCO1VBQ2hCLHFDQUF1QjtVQUN2QixtQkFBa0I7VUFDbEIscUNDcE9JLEVEb1BMO1VBakxiO1lBbUtnQixpQkFBZ0I7WUFDaEIsb0JDeE9FO1lEeU9GLGFBQVk7WUFDWixrQkFBaUI7WUFDakIsdUJBQWtCLEVBQ25CO1VFNUtYO1lGSUo7Y0EwS2dCLG9CQUFnQjtjQUNoQixvQkFBZ0I7Y0FDaEIsb0NBQW9CLEVBS3ZCO2NBakxiO2dCQThLa0Isd0JBQWtCLEVBQ25CIiwiZmlsZSI6Ii4uXFxtb2R1bGVzXFxqeGNvbXBhcmVwcm9kdWN0XFx2aWV3c1xcY3NzXFxqeGNvbXBhcmVwcm9kdWN0LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgXCJjc3MvcGFydGlhbHMvX3ZhcmlhYmxlc1wiO1xyXG4uY29tcGFyZS1idXR0b24uc2VsZWN0ZWQge1xyXG4gIGk6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXFxlYzRmXCI7XHJcbiAgfVxyXG59XHJcbi5jb21wYXJlLWhlYWRlciB7XHJcbiAgLmNvbXBhcmUtcHJvZHVjdHMge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBpIHtcclxuICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgIH1cclxuICAgID4gc3BhbiB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiNjb21wYXJlLWZvb3RlciB7XHJcbiAgW2RhdGEtb2ZmLWNhbnZhc10ge1xyXG4gICAgYmFja2dyb3VuZDogYmxhY2s7XHJcbiAgfVxyXG4gIC5jb21wYXJlLWZvb3Rlci1ncm92ZXIge1xyXG4gICAgd2lkdGg6IDUwcHg7XHJcbiAgICBoZWlnaHQ6IDUwcHg7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiBjYWxjKDEwMCUgLSA1MHB4KTtcclxuICAgIGJhY2tncm91bmQ6ICRibGFjaztcclxuICAgIHotaW5kZXg6IDU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcclxuICAgIGkge1xyXG4gICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xyXG4gICAgfVxyXG4gICAgc3BhbiB7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiAxMHB4O1xyXG4gICAgfVxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICB9XHJcbiAgICAmLm9wZW4tc2xpZGViYXIge1xyXG4gICAgICBpOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJ1xcZWMzNSc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgI2NvbXBhcmUtbGlzdC1mb290ZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICBsaTpub3QoLm5vLXByb2R1Y3RzKSB7XHJcbiAgICAgIHdpZHRoOiA4NXB4O1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5idXR0b25zIHtcclxuICAgIGEge1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG4gICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogJGJyYW5kLXByaW1hcnk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiNtb2RhbC1jb21wYXJlIHtcclxuICAubW9kYWwtZGlhbG9nIHtcclxuICAgICYubW9kYWwtbGcge1xyXG4gICAgICAuY2xvc2Uge1xyXG4gICAgICAgIHJpZ2h0OiBhdXRvO1xyXG4gICAgICAgIGxlZnQ6IDRweDtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIHRvcDogNXB4O1xyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6aG92ZXIsICY6aG92ZXI6YmVmb3JlIHtcclxuICAgICAgICAgIGNvbG9yOiAkZ3JheS01MDA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5jbG9zZTpiZWZvcmUge1xyXG4gICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgfVxyXG4gIFxyXG4gICAgJjpub3QoLndpdGgtcHJvZHVjdHMpIHtcclxuICAgICNjb21wYXJlLXByb2R1Y3RzLCAjY29tcGFyZS1mZWF0dXJlcyB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIG1hcmdpbjogMCA1MCU7XHJcbiAgICB9XHJcbiAgfVxyXG4gICYud2l0aC1wcm9kdWN0cyB7XHJcbiAgICAmW3N0eWxlXj1cImRpc3BsYXk6IGJsb2NrO1wiXSwgJltzdHlsZSo9XCJkaXNwbGF5OiBibG9jazsgXCJdIHtcclxuICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgLm1vZGFsLWNvbnRlbnQge1xyXG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgIFxyXG4gICAgICAubW9kYWwtY29udGVudC1jb21wYXJlIHtcclxuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkZ3JheS0zMDA7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JheS05MDA7XHJcbiAgICAgICAgI2NvbXBhcmUtcHJvZHVjdHMge1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xyXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgID4gZGl2IHtcclxuICAgICAgICAgICAgbWluLXdpZHRoOiAyMDBweDtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGdyYXktMzAwO1xyXG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGdyYXktMzAwO1xyXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjJzO1xyXG4gICAgICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yLCAwLCAwLjA2NSwgMC4yNSk7XHJcbiAgICAgICAgICAgICAgPiBkaXYge1xyXG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAyMDBweDtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAuMnM7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMiwgMCwgMC4wNjUsIDAuMjUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oc20pIHtcclxuICAgICAgICAgICAgICBtaW4td2lkdGg6IDE1MHB4O1xyXG4gICAgICAgICAgICAgIG1heC13aWR0aDogMTUwcHg7XHJcbiAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICA+IGRpdiB7XHJcbiAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMjAwcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5wcm9kdWN0LWZsYWdzIHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAucHJvZHVjdC10aHVtYm5haWwgLmNsb3NlIHtcclxuICAgICAgICAgICAgdG9wOiA1cHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAmLmNsb3NlLXRpdGxlcyA+IGRpdjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICA+IGRpdiB7XHJcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMDBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAjY29tcGFyZS1mZWF0dXJlcyB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgICAgY29sb3I6ICRncmF5LTkwMDtcclxuICAgICAgICAgIC5mZWF0dXJlcy10b2dnbGUge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRncmF5LTkwMDtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIsIDAsIDAuMDY1LCAwLjI1KTtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiAkZ3JheS01MDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuOGVtO1xyXG4gICAgICAgICAgICAgIHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7XHJcbiAgICAgICAgICAgICAgdGV4dC1vcmllbnRhdGlvbjogdXByaWdodDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpIHtcclxuICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC5jb21wYXJlLWZlYXR1cmVzLXRpdGxlIHtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4ycztcclxuICAgICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIsIDAsIDAuMDY1LCAwLjI1KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgICYuY2xvc2UtdGl0bGVzIHtcclxuICAgICAgICAgICAgLmZlYXR1cmVzLXRvZ2dsZSB7XHJcbiAgICAgICAgICAgICAgY29sb3I6ICRncmF5LTYwMDtcclxuICAgICAgICAgICAgICBpIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmNvbXBhcmUtZmVhdHVyZXMtcm93IC5jb21wYXJlLWZlYXR1cmVzLXRpdGxlIHtcclxuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTIwMHB4O1xyXG4gICAgICAgICAgICAgIGNvbG9yOiAkZ3JheS0yMDA7XHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHNtKSB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTE1MHB4O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLmNvbXBhcmUtZmVhdHVyZXMtcm93IHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikgLmNvbXBhcmUtZmVhdHVyZXMtaXRlbSB7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGdyYXktMjAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKG9kZCkgLmNvbXBhcmUtZmVhdHVyZXMtaXRlbSB7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgPiBkaXY6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRncmF5LTMwMDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPiBkaXYge1xyXG4gICAgICAgICAgICAgIG1pbi13aWR0aDogMjAwcHg7XHJcbiAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcclxuICAgICAgICAgICAgICBwYWRkaW5nOiAxN3B4IDEwcHggMTRweDtcclxuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkZ3JheS0zMDA7XHJcbiAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGdyYXktMjAwO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSkge1xyXG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxNTBweDtcclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTUwcHg7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA5cHggNXB4IDhweDtcclxuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbW9kdWxlcy9qeGNvbXBhcmVwcm9kdWN0L3ZpZXdzL2Nzcy9DOi9PcGVuU2VydmVyL2RvbWFpbnMvbG9jYWxob3N0L0Jpa2VJZG9sL3RoZW1lcy90aGVtZTE1MTkvX2Rldi9tb2R1bGVzL2p4Y29tcGFyZXByb2R1Y3Qvdmlld3MvY3NzL0M6L09wZW5TZXJ2ZXIvZG9tYWlucy9sb2NhbGhvc3QvQmlrZUlkb2wvdGhlbWVzL3RoZW1lMTUxOS9fZGV2L21vZHVsZXMvanhjb21wYXJlcHJvZHVjdC92aWV3cy9jc3Mvanhjb21wYXJlcHJvZHVjdC5zY3NzIiwiLy9cclxuLy8gQ29sb3Igc3lzdGVtXHJcbi8vXHJcbiR3aGl0ZTogICNmZmYgIWRlZmF1bHQ7XHJcbiRncmF5LTEwMDogI2ZhZmFmYSAgIWRlZmF1bHQ7XHJcbiRncmF5LTIwMDogI2YxZjFmMSAhZGVmYXVsdDtcclxuJGdyYXktMzAwOiAjZTdlN2U3ICFkZWZhdWx0O1xyXG4kZ3JheS00MDA6ICNkZGRkZGQgIWRlZmF1bHQ7XHJcbiRncmF5LTUwMDogI2EyYTJhMiAhZGVmYXVsdDtcclxuJGdyYXktNjAwOiAjODg4ODg4ICFkZWZhdWx0O1xyXG4kZ3JheS03MDA6ICM1NTU1NTUgIWRlZmF1bHQ7XHJcbiRncmF5LTgwMDogIzNhM2EzYSAhZGVmYXVsdDtcclxuJGdyYXktOTAwOiAjMTQxNDE0ICFkZWZhdWx0O1xyXG4kYmxhY2s6ICAjMDAwICFkZWZhdWx0O1xyXG4kZ3JheS04MDogI2NjY2NjYztcclxuJGdyYXktNjg6ICNhZGFkYWQ7XHJcbiRncmF5LTYyOiAjOWU5ZTllO1xyXG4kZ3JheS05MDogI2U1ZTVlNTtcclxuJGdyYXktOTE6ICNlOWU5ZTk7XHJcbiRncmF5LTkyOiAjZWRlZGVkO1xyXG4kYm9yZGVyLWNvbG9yOiAkZ3JheS05MTtcclxuXHJcbiRncmF5czogKFxyXG4gIDEwMDogJGdyYXktMTAwLFxyXG4gIDIwMDogJGdyYXktMjAwLFxyXG4gIDMwMDogJGdyYXktMzAwLFxyXG4gIDQwMDogJGdyYXktNDAwLFxyXG4gIDUwMDogJGdyYXktNTAwLFxyXG4gIDYwMDogJGdyYXktNjAwLFxyXG4gIDcwMDogJGdyYXktNzAwLFxyXG4gIDgwMDogJGdyYXktODAwLFxyXG4gIDkwMDogJGdyYXktOTAwXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4kYmx1ZTogICAgIzJhYmRmYyAhZGVmYXVsdDtcclxuJGluZGlnbzogICM2NjEwZjIgIWRlZmF1bHQ7XHJcbiRwdXJwbGU6ICAjNmY0MmMxICFkZWZhdWx0O1xyXG4kcGluazogICAgI2RlNmQ2ZCAhZGVmYXVsdDtcclxuJHJlZDogICAgICNkMDU2NTYgIWRlZmF1bHQ7XHJcbiRvcmFuZ2U6ICAjZmViMzgwICFkZWZhdWx0O1xyXG4keWVsbG93OiAgI2ZmZWQwMSAhZGVmYXVsdDtcclxuJGdyZWVuOiAgICNjMGRlMDEgIWRlZmF1bHQ7XHJcbiR0ZWFsOiAgICAjMjBjOTk3ICFkZWZhdWx0O1xyXG4kY3lhbjogICAgI2M1ZjJmZCAhZGVmYXVsdDtcclxuJG1hZ2VudGE6ICNiZDQxYjggIWRlZmF1bHQ7XHJcblxyXG4kY29sb3JzOiAoXHJcbiAgYmx1ZTogJGJsdWUsXHJcbiAgaW5kaWdvOiAkaW5kaWdvLFxyXG4gIHB1cnBsZTogJHB1cnBsZSxcclxuICBwaW5rOiAkcGluayxcclxuICByZWQ6ICRyZWQsXHJcbiAgb3JhbmdlOiAkb3JhbmdlLFxyXG4gIHllbGxvdzogJHllbGxvdyxcclxuICBncmVlbjogJGdyZWVuLFxyXG4gIHRlYWw6ICR0ZWFsLFxyXG4gIGN5YW46ICRjeWFuLFxyXG4gIG1hZ2VudGE6ICRtYWdlbnRhLFxyXG4gIHdoaXRlOiAkd2hpdGUsXHJcbiAgZ3JheTogJGdyYXktNjAwLFxyXG4gIGdyYXktZGFyazogJGdyYXktODAwLFxyXG4gIGdyYXktZGFya2VyOiAkZ3JheS05MDAsXHJcbiAgZ3JheS1saWdodDogJGdyYXktMjAwLFxyXG4gIGdyYXktbGlnaHRlcjogJGdyYXktMTAwXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4kdGhlbWUtY29sb3JzOiAoXHJcbiAgcHJpbWFyeTogJGdyZWVuLFxyXG4gIHNlY29uZGFyeTogJGdyYXktODAwLFxyXG4gIHN1Y2Nlc3M6ICRncmVlbixcclxuICBpbmZvOiAkYmx1ZSxcclxuICB3YXJuaW5nOiAkeWVsbG93LFxyXG4gIGRhbmdlcjogJHBpbmssXHJcbiAgbGlnaHQ6ICRncmF5LTIwMCxcclxuICB3aGl0ZTogJHdoaXRlXHJcbikgIWRlZmF1bHQ7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbW9kdWxlcy9qeGNvbXBhcmVwcm9kdWN0L3ZpZXdzL2Nzcy9DOi9PcGVuU2VydmVyL2RvbWFpbnMvbG9jYWxob3N0L0Jpa2VJZG9sL3RoZW1lcy90aGVtZTE1MTkvX2Rldi9tb2R1bGVzL2p4Y29tcGFyZXByb2R1Y3Qvdmlld3MvY3NzL0M6L09wZW5TZXJ2ZXIvZG9tYWlucy9sb2NhbGhvc3QvQmlrZUlkb2wvdGhlbWVzL3RoZW1lMTUxOS9fZGV2L2Nzcy9wYXJ0aWFscy9fdmFyaWFibGVzX2NvbG9yLnNjc3MiLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwpKVxuLy8gICAgbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNTc2cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIGxhcmdlc3QgKGxhc3QpIGJyZWFrcG9pbnQuXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyBjYWxjdWxhdGVkIGFzIHRoZSBtaW5pbXVtIG9mIHRoZSBuZXh0IG9uZSBsZXNzIDAuMS5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDc2N3B4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAxcHgsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluZnJvbnQuXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHhzLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgXCItc21cIlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQHJldHVybiBpZihicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKSA9PSBudWxsLCBcIlwiLCBcIi0jeyRuYW1lfVwiKTtcbn1cblxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1pbiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIGxhcmdlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1heCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgdGhhdCBzcGFucyBtdWx0aXBsZSBicmVha3BvaW50IHdpZHRocy5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heCBicmVha3BvaW50c1xuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtYmV0d2VlbigkbG93ZXIsICR1cHBlciwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCR1cHBlciwgJGJyZWFrcG9pbnRzKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lKVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lKVxuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9tb2R1bGVzL2p4Y29tcGFyZXByb2R1Y3Qvdmlld3MvY3NzL0M6L09wZW5TZXJ2ZXIvZG9tYWlucy9sb2NhbGhvc3QvQmlrZUlkb2wvdGhlbWVzL3RoZW1lMTUxOS9fZGV2L21vZHVsZXMvanhjb21wYXJlcHJvZHVjdC92aWV3cy9jc3MvQzovT3BlblNlcnZlci9kb21haW5zL2xvY2FsaG9zdC9CaWtlSWRvbC90aGVtZXMvdGhlbWUxNTE5L19kZXYvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyJdLCJzb3VyY2VSb290IjoiIn0=*/