britebelt.com Open in urlscan Pro
151.101.2.159  Public Scan

Submitted URL: https://britebelt.lt.acemlnc.com/Prod/link-tracker?redirectUrl=aHR0cHMlM0ElMkYlMkZicml0ZWJlbHQuY29tJTJGcHJvZHVjdCUyRmN1c3RvbS1idW...
Effective URL: https://britebelt.com/product/brick-custom-scrubber/
Submission: On March 14 via api from US — Scanned from DE

Form analysis 1 forms found in the DOM

POST https://britebelt.com/product/brick-custom-scrubber/

<form class="cart" action="https://britebelt.com/product/brick-custom-scrubber/" method="post" enctype="multipart/form-data">
  <script defer="" src="data:text/javascript;base64,CgkJdmFyIHBld2NfY29zdF90cmlnZ2VycyA9IFtdOwoJCXZhciBwZXdjX3F1YW50aXR5X3RyaWdnZXJzID0gW107Cgk="></script>
  <div class="pewc-product-extra-groups-wrap pewc-groups-standard pewc-teaser-options-5">
    <style type="text/css">
      form.cart .pewc-groups-lightbox.pewc-teaser-options-5 .pewc-radio-image-wrapper:nth-child(n+6),
      form.cart .pewc-groups-lightbox.pewc-teaser-options-5 .pewc-checkbox-image-wrapper:nth-child(n+6) {
        display: none
      }

      .pewc-lightbox .pewc-lightbox-field {
        display: none;
      }
    </style><input type="hidden" name="pewc_product_hash" value="pewc_641093ed83395">
    <div id="pewc-group-4383" class="pewc-group-wrap pewc-group-wrap-4383 pewc-group-index-0 first-group group-active" data-group-id="4383" data-group-index="0" data-condition-action="hide" data-condition-match="all" data-conditions="[]">
      <div class="pewc-group-heading-wrapper">
        <h3>Scrubber Unit Width</h3>
      </div>
      <div class="pewc-group-content-wrapper ">
        <p class="pewc-group-description">(Unless add-ons are selected below, the Scrubber Unit does not come with any pads, brushes, or bungee)</p>
        <ul class="pewc-product-extra-groups ">
          <li class="pewc-item pewc-group pewc_group_4383_4384 pewc-group-number pewc-item-number pewc-field-4384 pewc-field-count-0 pewc-calculation-trigger pewc-active-field" data-price="0" data-id="pewc_group_4383_4384"
            data-selected-option-price="" data-field-id="4384" data-field-type="number" data-field-price="0" data-field-label="Width of BRICK Custom Scrubber (1/2in Increments)" data-field-value="4" data-option-price-visibility="visible"
            data-trigger-calculations="[4389]" data-default-value="">
            <div class="pewc-item-field-wrapper">
              <h4 class="pewc-field-label" for="pewc_group_4383_4384">Width of BRICK Custom Scrubber (1/2in Increments)<span class="required"> *</span></h4><input type="number" class="pewc-form-field pewc-number-field pewc-number-field-4384"
                id="pewc_group_4383_4384" name="pewc_group_4383_4384" value="4" min="4" max="96" step="0.5" autocomplete="off" data-require-required="no">
              <p class="pewc-description"><small>Min: 4</small><small>Max: 96</small></p>
            </div>
          </li>
          <li class="pewc-item pewc-group pewc_group_4383_4385 pewc-group-calculation pewc-item-calculation pewc-field-4385 pewc-field-count-1 pewc-active-field" data-price="212.00" data-id="pewc_group_4383_4385" data-selected-option-price=""
            data-field-id="4385" data-field-type="calculation" data-field-price="212" data-field-label="Base Cost of Scrubber Unit" data-field-value="212.00" data-option-price-visibility="visible" data-default-value="">
            <div class="pewc-item-field-wrapper">
              <h4 class="pewc-field-label" for="pewc_group_4383_4385">Base Cost of Scrubber Unit<span class="required"> *</span></h4>
              <div class="pewc-calculation-field-wrapper pewc-calculation-price-wrapper"> <input type="hidden" class="pewc-data-formula" value="180.00+{field_4384}*8.00"> <input type="hidden" class="pewc-data-fields" value="[&quot;4384&quot;]">
                <input type="hidden" class="pewc-data-tag" value="[&quot;field_4384&quot;]"> <input type="hidden" class="pewc-action" value="cost"> <input type="hidden" class="pewc-formula-round" value="no-rounding"> <input type="hidden"
                  class="pewc-decimal-places" value="2"> <span class="pewc-calculation-span" id="pewc-calculation-value"><span class="woocommerce-Price-amount amount"><bdi><span
                        class="woocommerce-Price-currencySymbol">$</span>212.00</bdi></span></span><input type="hidden" class="pewc-form-field pewc-calculation-value pewc-number-field pewc-number-field-4385" id="pewc_group_4383_4385"
                  name="pewc_group_4383_4385" value="212.00"></div>
            </div>
          </li>
          <li class="pewc-item pewc-group pewc_group_4383_4461 pewc-group-calculation pewc-item-calculation pewc-field-4461 pewc-field-count-2 pewc-hidden-calculation pewc-calculation-trigger pewc-active-field" data-price="0"
            data-id="pewc_group_4383_4461" data-selected-option-price="" data-field-id="4461" data-field-type="calculation" data-field-price="0" data-field-label="Weight of Scrubber Unit" data-field-value="7.00" data-option-price-visibility="visible"
            data-trigger-calculations="[4460]" data-default-value="">
            <div class="pewc-item-field-wrapper">
              <h4 class="pewc-field-label" for="pewc_group_4383_4461">Weight of Scrubber Unit<span class="required"> *</span></h4>
              <div class="pewc-calculation-field-wrapper pewc-calculation-price-wrapper"> <input type="hidden" class="pewc-data-formula" value="{field_4384}*.25+6"> <input type="hidden" class="pewc-data-fields" value="[&quot;4384&quot;]"> <input
                  type="hidden" class="pewc-data-tag" value="[&quot;field_4384&quot;]"> <input type="hidden" class="pewc-action" value="no-action"> <input type="hidden" class="pewc-formula-round" value="no-rounding"> <input type="hidden"
                  class="pewc-decimal-places" value="2"> <span class="pewc-calculation-span" id="pewc-calculation-value">7.00</span><input type="hidden" class="pewc-form-field pewc-calculation-value pewc-number-field pewc-number-field-4461"
                  id="pewc_group_4383_4461" name="pewc_group_4383_4461" value="7.00"></div>
            </div>
          </li>
        </ul>
      </div>
    </div>
    <div id="pewc-group-4386" class="pewc-group-wrap pewc-group-wrap-4386 pewc-group-index-1 " data-group-id="4386" data-group-index="1" data-condition-action="hide" data-condition-match="all" data-conditions="[]">
      <div class="pewc-group-heading-wrapper">
        <h3>Add-Ons</h3>
      </div>
      <div class="pewc-group-content-wrapper ">
        <p class="pewc-group-description">Please select the items below you'd like included with your base unit.</p>
        <ul class="pewc-product-extra-groups ">
          <li class="pewc-item pewc-group pewc_group_4386_4387 pewc-group-radio pewc-item-radio pewc-field-4387 pewc-field-count-3 pewc-option-list required-field pewc-has-field-image pewc-field-triggers-condition pewc-active-field" data-price="0"
            data-id="pewc_group_4386_4387" data-selected-option-price="" data-field-id="4387" data-field-type="radio" data-field-price="0" data-field-label="Please select the scrubber pads you need" data-field-value=""
            data-option-price-visibility="visible" data-triggers-for="[4388,4388,5360,5360,4389,4389]" data-default-value="">
            <div data-image-full-size="https://ml5ezhggewx6.i.optimole.com/w:auto/h:auto/q:mauto/https://britebelt.com/wp-content/uploads/2021/01/scrubber-pads-woocommerce.jpg" class="pewc-item-field-image-wrapper"><img
                data-opt-src="https://ml5ezhggewx6.i.optimole.com/w:150/h:150/q:mauto/rt:fill/g:ce/https://britebelt.com/wp-content/uploads/2021/01/scrubber-pads-woocommerce.jpg" width="150" height="150"
                src="https://ml5ezhggewx6.i.optimole.com/w:102/h:102/q:mauto/rt:fill/g:ce/https://britebelt.com/wp-content/uploads/2021/01/scrubber-pads-woocommerce.jpg" class="attachment-thumbnail size-thumbnail" alt="" decoding="async"
                data-opt-lazy-loaded="true" data-opt-optimized-width="102" data-opt-optimized-height="102"><noscript><img width="150" height="150"
                  src="https://ml5ezhggewx6.i.optimole.com/w:150/h:150/q:mauto/rt:fill/g:ce/https://britebelt.com/wp-content/uploads/2021/01/scrubber-pads-woocommerce.jpg" class="attachment-thumbnail size-thumbnail" alt=""
                  decoding="async"></noscript></div>
            <div class="pewc-item-field-wrapper">
              <h4 class="pewc-field-label" for="pewc_group_4386_4387">Please select the scrubber pads you need<span class="required"> *</span>&nbsp;<span class="dashicons dashicons-editor-help tooltip tooltipstered"></span></h4>
              <ul class="pewc-checkbox-group-wrapper">
                <li><label class="pewc-radio-form-label" for="pewc_group_4386_4387_blue_scrubber_pads_(qty_100)"><input data-option-cost="0" type="radio" name="pewc_group_4386_4387[]" id="pewc_group_4386_4387_blue_scrubber_pads_(qty_100)"
                      class="pewc-radio-form-field" data-option-percentage="" value="Blue Scrubber Pads (Qty 100)">&nbsp;<span>Blue Scrubber Pads (Qty 100)</span><span class="pewc-theme-element"></span></label></li>
                <li><label class="pewc-radio-form-label" for="pewc_group_4386_4387_white_scrubber_pads_(qty_100)"><input data-option-cost="0" type="radio" name="pewc_group_4386_4387[]" id="pewc_group_4386_4387_white_scrubber_pads_(qty_100)"
                      class="pewc-radio-form-field" data-option-percentage="" value="White Scrubber Pads (Qty 100)">&nbsp;<span>White Scrubber Pads (Qty 100)</span><span class="pewc-theme-element"></span></label></li>
                <li><label class="pewc-radio-form-label" for="pewc_group_4386_4387_blue_scrubber_pads_(qty_50)"><input data-option-cost="0" type="radio" name="pewc_group_4386_4387[]" id="pewc_group_4386_4387_blue_scrubber_pads_(qty_50)"
                      class="pewc-radio-form-field" data-option-percentage="" value="Blue Scrubber Pads (Qty 50)">&nbsp;<span>Blue Scrubber Pads (Qty 50)</span><span class="pewc-theme-element"></span></label></li>
                <li><label class="pewc-radio-form-label" for="pewc_group_4386_4387_white_scrubber_pads_(qyt_50)"><input data-option-cost="0" type="radio" name="pewc_group_4386_4387[]" id="pewc_group_4386_4387_white_scrubber_pads_(qyt_50)"
                      class="pewc-radio-form-field" data-option-percentage="" value="White Scrubber Pads (Qyt 50)">&nbsp;<span>White Scrubber Pads (Qyt 50)</span><span class="pewc-theme-element"></span></label></li>
              </ul>
              <p class="pewc-description"></p>
            </div>
          </li>
          <li class="pewc-item pewc-group pewc_group_4386_4388 pewc-group-calculation pewc-item-calculation pewc-field-4388 pewc-field-count-4 pewc-hidden-field pewc-field-has-condition" data-price="0" data-id="pewc_group_4386_4388"
            data-selected-option-price="" data-field-id="4388" data-field-type="calculation" data-field-price="0" data-field-label="100 Scrubber Pads Cost: $50.00 + $9.00 / Inch of width =" data-field-value="" data-option-price-visibility="visible"
            data-trigger-fields="[4387,4387]" data-field-conditions-match="any" data-field-conditions-action="show"
            data-field-conditions="[{&quot;field&quot;:&quot;pewc_group_4386_4387&quot;,&quot;rule&quot;:&quot;is&quot;,&quot;value&quot;:&quot;Blue Scrubber Pads (Qty 100)&quot;,&quot;key&quot;:&quot;Blue Scrubber Pads (Qty 100)&quot;,&quot;field_type&quot;:&quot;radio&quot;},{&quot;field&quot;:&quot;pewc_group_4386_4387&quot;,&quot;rule&quot;:&quot;is&quot;,&quot;value&quot;:&quot;White Scrubber Pads (Qty 100)&quot;,&quot;key&quot;:&quot;White Scrubber Pads (Qty 100)&quot;,&quot;field_type&quot;:&quot;radio&quot;}]"
            data-default-value="">
            <div class="pewc-item-field-wrapper">
              <h4 class="pewc-field-label" for="pewc_group_4386_4388">100 Scrubber Pads Cost: $50.00 + $9.00 / Inch of width =<span class="required"> *</span></h4>
              <div class="pewc-calculation-field-wrapper pewc-calculation-price-wrapper"> <input type="hidden" class="pewc-data-formula" value="50.00+{field_4384}*9.00"> <input type="hidden" class="pewc-data-fields" value="[&quot;4384&quot;]"> <input
                  type="hidden" class="pewc-data-tag" value="[&quot;field_4384&quot;]"> <input type="hidden" class="pewc-action" value="cost"> <input type="hidden" class="pewc-formula-round" value="no-rounding"> <input type="hidden"
                  class="pewc-decimal-places" value="2"> <span class="pewc-calculation-span" id="pewc-calculation-value"></span><input type="hidden" class="pewc-form-field pewc-calculation-value pewc-number-field pewc-number-field-4388"
                  id="pewc_group_4386_4388" name="pewc_group_4386_4388" value=""></div>
            </div>
          </li>
          <li class="pewc-item pewc-group pewc_group_4386_5360 pewc-group-calculation pewc-item-calculation pewc-field-5360 pewc-field-count-5 pewc-hidden-field pewc-field-has-condition" data-price="0" data-id="pewc_group_4386_5360"
            data-selected-option-price="" data-field-id="5360" data-field-type="calculation" data-field-price="0" data-field-label="50 Scrubber Pads Cost: $35.00 + $9.00 / Inch of width =" data-field-value="" data-option-price-visibility="visible"
            data-trigger-fields="[4387,4387]" data-field-conditions-match="any" data-field-conditions-action="show"
            data-field-conditions="[{&quot;field&quot;:&quot;pewc_group_4386_4387&quot;,&quot;rule&quot;:&quot;is&quot;,&quot;value&quot;:&quot;Blue Scrubber Pads (Qty 50)&quot;,&quot;key&quot;:&quot;Blue Scrubber Pads (Qty 50)&quot;,&quot;field_type&quot;:&quot;radio&quot;},{&quot;field&quot;:&quot;pewc_group_4386_4387&quot;,&quot;rule&quot;:&quot;is&quot;,&quot;value&quot;:&quot;White Scrubber Pads (Qyt 50)&quot;,&quot;key&quot;:&quot;White Scrubber Pads (Qyt 50)&quot;,&quot;field_type&quot;:&quot;radio&quot;}]"
            data-default-value="">
            <div class="pewc-item-field-wrapper">
              <h4 class="pewc-field-label" for="pewc_group_4386_5360">50 Scrubber Pads Cost: $35.00 + $9.00 / Inch of width =<span class="required"> *</span></h4>
              <div class="pewc-calculation-field-wrapper pewc-calculation-price-wrapper"> <input type="hidden" class="pewc-data-formula" value="35.00+{field_4384}*9.00"> <input type="hidden" class="pewc-data-fields" value="[&quot;4384&quot;]"> <input
                  type="hidden" class="pewc-data-tag" value="[&quot;field_4384&quot;]"> <input type="hidden" class="pewc-action" value="cost"> <input type="hidden" class="pewc-formula-round" value="no-rounding"> <input type="hidden"
                  class="pewc-decimal-places" value="2"> <span class="pewc-calculation-span" id="pewc-calculation-value"></span><input type="hidden" class="pewc-form-field pewc-calculation-value pewc-number-field pewc-number-field-5360"
                  id="pewc_group_4386_5360" name="pewc_group_4386_5360" value=""></div>
            </div>
          </li>
          <li class="pewc-item pewc-group pewc_group_4386_4390 pewc-group-radio pewc-item-radio pewc-field-4390 pewc-field-count-6 pewc-option-list pewc-has-field-image pewc-field-triggers-condition pewc-active-field" data-price="0"
            data-id="pewc_group_4386_4390" data-selected-option-price="" data-field-id="4390" data-field-type="radio" data-field-price="0" data-field-label="Do you need Brushes?" data-field-value="" data-option-price-visibility="visible"
            data-triggers-for="[4433,4433,4563,4563,4563]" data-default-value="">
            <div data-image-full-size="https://ml5ezhggewx6.i.optimole.com/w:auto/h:auto/q:mauto/https://britebelt.com/wp-content/uploads/2022/01/IMG_9192.jpg" class="pewc-item-field-image-wrapper"><img
                data-opt-src="https://ml5ezhggewx6.i.optimole.com/w:150/h:150/q:mauto/rt:fill/g:ce/https://britebelt.com/wp-content/uploads/2022/01/IMG_9192.jpg" width="150" height="150"
                src="https://ml5ezhggewx6.i.optimole.com/w:118/h:118/q:mauto/rt:fill/g:ce/https://britebelt.com/wp-content/uploads/2022/01/IMG_9192.jpg" class="attachment-thumbnail size-thumbnail" alt="" decoding="async" data-opt-lazy-loaded="true"
                data-opt-optimized-width="118" data-opt-optimized-height="118"><noscript><img width="150" height="150"
                  src="https://ml5ezhggewx6.i.optimole.com/w:150/h:150/q:mauto/rt:fill/g:ce/https://britebelt.com/wp-content/uploads/2022/01/IMG_9192.jpg" class="attachment-thumbnail size-thumbnail" alt="" decoding="async"></noscript></div>
            <div class="pewc-item-field-wrapper">
              <h4 class="pewc-field-label" for="pewc_group_4386_4390">Do you need Brushes?<span class="required"> *</span>&nbsp;<span class="dashicons dashicons-editor-help tooltip tooltipstered"></span></h4>
              <ul class="pewc-checkbox-group-wrapper">
                <li><label class="pewc-radio-form-label" for="pewc_group_4386_4390_1_brush"><input data-option-cost="0" type="radio" name="pewc_group_4386_4390[]" id="pewc_group_4386_4390_1_brush" class="pewc-radio-form-field"
                      data-option-percentage="" value="1 Brush">&nbsp;<span>1 Brush</span><span class="pewc-theme-element"></span></label></li>
                <li><label class="pewc-radio-form-label" for="pewc_group_4386_4390_2_brushes"><input data-option-cost="0" type="radio" name="pewc_group_4386_4390[]" id="pewc_group_4386_4390_2_brushes" class="pewc-radio-form-field"
                      data-option-percentage="" value="2 Brushes">&nbsp;<span>2 Brushes</span><span class="pewc-theme-element"></span></label></li>
                <li><label class="pewc-radio-form-label" for="pewc_group_4386_4390_no_brushes_needed"><input data-option-cost="0" type="radio" name="pewc_group_4386_4390[]" id="pewc_group_4386_4390_no_brushes_needed" class="pewc-radio-form-field"
                      data-option-percentage="" value="No Brushes Needed">&nbsp;<span>No Brushes Needed</span><span class="pewc-theme-element"></span></label></li>
              </ul>
              <p class="pewc-description"></p>
            </div>
          </li>
          <li class="pewc-item pewc-group pewc_group_4386_4459 pewc-group-information pewc-item-information pewc-field-4459 pewc-field-count-7" data-price="0" data-id="pewc_group_4386_4459" data-selected-option-price="" data-field-id="4459"
            data-field-type="information" data-field-price="0" data-field-label="Our recommendation on when do you need brushes." data-field-value="" data-option-price-visibility="visible" data-default-value="">
            <div class="pewc-item-field-wrapper">
              <h4 class="pewc-field-label" for="pewc_group_4386_4459">Our recommendation on when do you need brushes.<span class="required"> *</span></h4>
              <table class="pewc-information-fields">
                <tbody>
                  <tr>
                    <td class="pewc-information-image"></td>
                    <td class="pewc-information-label">1 Brush</td>
                    <td class="pewc-information-data">Under 30" OR Neoprene Flat Belt.*</td>
                  </tr>
                  <tr>
                    <td class="pewc-information-image"></td>
                    <td class="pewc-information-label">2 Brushes</td>
                    <td class="pewc-information-data">Over 30" OR on all sizes that run on a conveyor belt with mesh, wire, interlock, or orifices, etc...</td>
                  </tr>
                  <tr>
                    <td class="pewc-information-image"></td>
                    <td class="pewc-information-label">No Brushes</td>
                    <td class="pewc-information-data">*Some Flat Neoprene Belts may or may not require a brush assembly. This is dependent upon the scrubbing action required for the removal of the medium/product on the conveyor belt.</td>
                  </tr>
                </tbody>
              </table>
            </div>
          </li>
          <li class="pewc-item pewc-group pewc_group_4386_4433 pewc-group-calculation pewc-item-calculation pewc-field-4433 pewc-field-count-8 pewc-field-has-condition pewc-hidden-field" data-price="0" data-id="pewc_group_4386_4433"
            data-selected-option-price="" data-field-id="4433" data-field-type="calculation" data-field-price="0" data-field-label="Brush Attachment Cost: $5.00 per inch" data-field-value="" data-option-price-visibility="visible"
            data-trigger-fields="[4390,4390]" data-field-conditions-match="any" data-field-conditions-action="hide"
            data-field-conditions="[{&quot;field&quot;:&quot;pewc_group_4386_4390&quot;,&quot;rule&quot;:&quot;is&quot;,&quot;value&quot;:&quot;No Brushes Needed&quot;,&quot;key&quot;:&quot;No Brushes Needed&quot;,&quot;field_type&quot;:&quot;radio&quot;},{&quot;field&quot;:&quot;pewc_group_4386_4390&quot;,&quot;rule&quot;:&quot;is&quot;,&quot;value&quot;:&quot;&quot;,&quot;key&quot;:&quot;&quot;,&quot;field_type&quot;:&quot;radio&quot;}]"
            data-default-value="">
            <div class="pewc-item-field-wrapper">
              <h4 class="pewc-field-label" for="pewc_group_4386_4433">Brush Attachment Cost: $5.00 per inch<span class="required"> *</span></h4>
              <div class="pewc-calculation-field-wrapper pewc-calculation-price-wrapper"> <input type="hidden" class="pewc-data-formula" value="{field_4384}*5.00"> <input type="hidden" class="pewc-data-fields" value="[&quot;4384&quot;]"> <input
                  type="hidden" class="pewc-data-tag" value="[&quot;field_4384&quot;]"> <input type="hidden" class="pewc-action" value="cost"> <input type="hidden" class="pewc-formula-round" value="no-rounding"> <input type="hidden"
                  class="pewc-decimal-places" value="2"> <span class="pewc-calculation-span" id="pewc-calculation-value"></span><input type="hidden" class="pewc-form-field pewc-calculation-value pewc-number-field pewc-number-field-4433"
                  id="pewc_group_4386_4433" name="pewc_group_4386_4433" value=""></div>
            </div>
          </li>
          <li class="pewc-item pewc-group pewc_group_4386_4563 pewc-group-calculation pewc-item-calculation pewc-field-4563 pewc-field-count-9 pewc-field-has-condition pewc-hidden-field" data-price="0" data-id="pewc_group_4386_4563"
            data-selected-option-price="" data-field-id="4563" data-field-type="calculation" data-field-price="0" data-field-label="Second Brush Attachment Cost: $5.00 per inch" data-field-value="" data-option-price-visibility="visible"
            data-trigger-fields="[4390,4390,4390]" data-field-conditions-match="any" data-field-conditions-action="hide"
            data-field-conditions="[{&quot;field&quot;:&quot;pewc_group_4386_4390&quot;,&quot;rule&quot;:&quot;is&quot;,&quot;value&quot;:&quot;No Brushes Needed&quot;,&quot;key&quot;:&quot;No Brushes Needed&quot;,&quot;field_type&quot;:&quot;radio&quot;},{&quot;field&quot;:&quot;pewc_group_4386_4390&quot;,&quot;rule&quot;:&quot;is&quot;,&quot;value&quot;:&quot;&quot;,&quot;key&quot;:&quot;&quot;,&quot;field_type&quot;:&quot;radio&quot;},{&quot;field&quot;:&quot;pewc_group_4386_4390&quot;,&quot;rule&quot;:&quot;is&quot;,&quot;value&quot;:&quot;1 Brush&quot;,&quot;key&quot;:&quot;1 Brush&quot;,&quot;field_type&quot;:&quot;radio&quot;}]"
            data-default-value="">
            <div class="pewc-item-field-wrapper">
              <h4 class="pewc-field-label" for="pewc_group_4386_4563">Second Brush Attachment Cost: $5.00 per inch<span class="required"> *</span></h4>
              <div class="pewc-calculation-field-wrapper pewc-calculation-price-wrapper"> <input type="hidden" class="pewc-data-formula" value="{field_4384}*5.00"> <input type="hidden" class="pewc-data-fields" value="[&quot;4384&quot;]"> <input
                  type="hidden" class="pewc-data-tag" value="[&quot;field_4384&quot;]"> <input type="hidden" class="pewc-action" value="cost"> <input type="hidden" class="pewc-formula-round" value="no-rounding"> <input type="hidden"
                  class="pewc-decimal-places" value="2"> <span class="pewc-calculation-span" id="pewc-calculation-value"></span><input type="hidden" class="pewc-form-field pewc-calculation-value pewc-number-field pewc-number-field-4563"
                  id="pewc_group_4386_4563" name="pewc_group_4386_4563" value=""></div>
            </div>
          </li>
          <li class="pewc-item pewc-group pewc_group_4386_4434 pewc-group-radio pewc-item-radio pewc-field-4434 pewc-field-count-10 pewc-option-list pewc-has-field-image pewc-field-triggers-condition pewc-active-field" data-price="0"
            data-id="pewc_group_4386_4434" data-selected-option-price="" data-field-id="4434" data-field-type="radio" data-field-price="0" data-field-label="Do you need a Bungee Cord?" data-field-value="" data-option-price-visibility="visible"
            data-triggers-for="[4435,4435]" data-default-value="">
            <div data-image-full-size="https://ml5ezhggewx6.i.optimole.com/w:auto/h:auto/q:mauto/https://britebelt.com/wp-content/uploads/2021/01/Double-Bungee-1.jpg" class="pewc-item-field-image-wrapper"><img
                data-opt-src="https://ml5ezhggewx6.i.optimole.com/w:150/h:150/q:mauto/rt:fill/g:ce/https://britebelt.com/wp-content/uploads/2021/01/Double-Bungee-1.jpg" width="150" height="150"
                src="https://ml5ezhggewx6.i.optimole.com/w:150/h:150/q:eco/https://britebelt.com/wp-content/uploads/2021/01/Double-Bungee-1.jpg" class="attachment-thumbnail size-thumbnail" alt="" decoding="async"><noscript><img width="150"
                  height="150" src="https://ml5ezhggewx6.i.optimole.com/w:150/h:150/q:mauto/rt:fill/g:ce/https://britebelt.com/wp-content/uploads/2021/01/Double-Bungee-1.jpg" class="attachment-thumbnail size-thumbnail" alt=""
                  decoding="async"></noscript></div>
            <div class="pewc-item-field-wrapper">
              <h4 class="pewc-field-label" for="pewc_group_4386_4434">Do you need a Bungee Cord?<span class="required"> *</span>&nbsp;<span class="dashicons dashicons-editor-help tooltip tooltipstered"></span></h4>
              <ul class="pewc-checkbox-group-wrapper">
                <li><label class="pewc-radio-form-label" for="pewc_group_4386_4434_yes"><input data-option-cost="0" type="radio" name="pewc_group_4386_4434[]" id="pewc_group_4386_4434_yes" class="pewc-radio-form-field" data-option-percentage=""
                      value="Yes">&nbsp;<span>Yes</span><span class="pewc-theme-element"></span></label></li>
                <li><label class="pewc-radio-form-label" for="pewc_group_4386_4434_no"><input data-option-cost="0" type="radio" name="pewc_group_4386_4434[]" id="pewc_group_4386_4434_no" class="pewc-radio-form-field" data-option-percentage=""
                      value="No">&nbsp;<span>No</span><span class="pewc-theme-element"></span></label></li>
              </ul>
              <p class="pewc-description"></p>
            </div>
          </li>
          <li class="pewc-item pewc-group pewc_group_4386_4435 pewc-group-calculation pewc-item-calculation pewc-field-4435 pewc-field-count-11 pewc-field-has-condition pewc-hidden-field" data-price="0" data-id="pewc_group_4386_4435"
            data-selected-option-price="" data-field-id="4435" data-field-type="calculation" data-field-price="0" data-field-label="Bungee Cord Cost: $20.00 + $0.50 per inch =" data-field-value="" data-option-price-visibility="visible"
            data-trigger-fields="[4434,4434]" data-field-conditions-match="any" data-field-conditions-action="hide"
            data-field-conditions="[{&quot;field&quot;:&quot;pewc_group_4386_4434&quot;,&quot;rule&quot;:&quot;is&quot;,&quot;value&quot;:&quot;&quot;,&quot;key&quot;:&quot;&quot;,&quot;field_type&quot;:&quot;radio&quot;},{&quot;field&quot;:&quot;pewc_group_4386_4434&quot;,&quot;rule&quot;:&quot;is&quot;,&quot;value&quot;:&quot;No&quot;,&quot;key&quot;:&quot;No&quot;,&quot;field_type&quot;:&quot;radio&quot;}]"
            data-default-value="">
            <div class="pewc-item-field-wrapper">
              <h4 class="pewc-field-label" for="pewc_group_4386_4435">Bungee Cord Cost: $20.00 + $0.50 per inch =<span class="required"> *</span></h4>
              <div class="pewc-calculation-field-wrapper pewc-calculation-price-wrapper"> <input type="hidden" class="pewc-data-formula" value="20.00+{field_4384}*.50"> <input type="hidden" class="pewc-data-fields" value="[&quot;4384&quot;]"> <input
                  type="hidden" class="pewc-data-tag" value="[&quot;field_4384&quot;]"> <input type="hidden" class="pewc-action" value="cost"> <input type="hidden" class="pewc-formula-round" value="no-rounding"> <input type="hidden"
                  class="pewc-decimal-places" value="2"> <span class="pewc-calculation-span" id="pewc-calculation-value"></span><input type="hidden" class="pewc-form-field pewc-calculation-value pewc-number-field pewc-number-field-4435"
                  id="pewc_group_4386_4435" name="pewc_group_4386_4435" value=""></div>
            </div>
          </li>
          <li class="pewc-item pewc-group pewc_group_4386_4389 pewc-group-calculation pewc-item-calculation pewc-field-4389 pewc-field-count-12 pewc-hidden-calculation pewc-calculation-trigger pewc-field-has-condition pewc-hidden-field"
            data-price="0" data-id="pewc_group_4386_4389" data-selected-option-price="" data-field-id="4389" data-field-type="calculation" data-field-price="0" data-field-label="Scrubber Pads Weight Calc" data-field-value=""
            data-option-price-visibility="visible" data-trigger-calculations="[4460]" data-trigger-fields="[4387,4387]" data-field-conditions-match="any" data-field-conditions-action="hide"
            data-field-conditions="[{&quot;field&quot;:&quot;pewc_group_4386_4387&quot;,&quot;rule&quot;:&quot;is&quot;,&quot;value&quot;:&quot;&quot;,&quot;key&quot;:&quot;&quot;,&quot;field_type&quot;:&quot;radio&quot;},{&quot;field&quot;:&quot;pewc_group_4386_4387&quot;,&quot;rule&quot;:&quot;is&quot;,&quot;value&quot;:&quot;&quot;,&quot;key&quot;:&quot;&quot;,&quot;field_type&quot;:&quot;radio&quot;}]"
            data-default-value="">
            <div class="pewc-item-field-wrapper">
              <h4 class="pewc-field-label" for="pewc_group_4386_4389">Scrubber Pads Weight Calc<span class="required"> *</span></h4>
              <div class="pewc-calculation-field-wrapper pewc-calculation-price-wrapper"> <input type="hidden" class="pewc-data-formula" value="{field_4384}*.15+2"> <input type="hidden" class="pewc-data-fields" value="[&quot;4384&quot;]"> <input
                  type="hidden" class="pewc-data-tag" value="[&quot;field_4384&quot;]"> <input type="hidden" class="pewc-action" value="no-action"> <input type="hidden" class="pewc-formula-round" value="no-rounding"> <input type="hidden"
                  class="pewc-decimal-places" value="2"> <span class="pewc-calculation-span" id="pewc-calculation-value"></span><input type="hidden" class="pewc-form-field pewc-calculation-value pewc-number-field pewc-number-field-4389"
                  id="pewc_group_4386_4389" name="pewc_group_4386_4389" value=""></div>
            </div>
          </li>
          <li class="pewc-item pewc-group pewc_group_4386_4460 pewc-group-calculation pewc-item-calculation pewc-field-4460 pewc-field-count-13 pewc-hidden-calculation pewc-active-field" data-price="0" data-id="pewc_group_4386_4460"
            data-selected-option-price="" data-field-id="4460" data-field-type="calculation" data-field-price="0" data-field-label="Total Weight Calc" data-field-value="7.00" data-option-price-visibility="visible" data-default-value="">
            <div class="pewc-item-field-wrapper">
              <h4 class="pewc-field-label" for="pewc_group_4386_4460">Total Weight Calc<span class="required"> *</span></h4>
              <div class="pewc-calculation-field-wrapper pewc-calculation-price-wrapper"> <input type="hidden" class="pewc-data-formula" value="{field_4461}+{field_4389}"> <input type="hidden" class="pewc-data-fields"
                  value="[&quot;4461&quot;,&quot;4389&quot;]"> <input type="hidden" class="pewc-data-tag" value="[&quot;field_4461&quot;,&quot;field_4389&quot;]"> <input type="hidden" class="pewc-action" value="no-action"> <input type="hidden"
                  class="pewc-formula-round" value="no-rounding"> <input type="hidden" class="pewc-decimal-places" value="2"> <span class="pewc-calculation-span" id="pewc-calculation-value">7.00</span><input type="hidden"
                  class="pewc-form-field pewc-calculation-value pewc-number-field pewc-number-field-4460" id="pewc_group_4386_4460" name="pewc_group_4386_4460" value="7.00"></div>
            </div>
          </li>
        </ul>
      </div>
    </div><input type="hidden" id="pewc-product-price" name="pewc-product-price" value="0.00"><input type="hidden" id="pewc_calc_set_price" name="pewc_calc_set_price" data-calc-set="" value=""><input type="hidden" id="pewc_total_calc_price"
      name="pewc_total_calc_price" value="212.00"><input type="hidden" id="pewc_variation_price" name="pewc_variation_price" value=""><input type="hidden" id="pewc_product_length" name="pewc_product_length" value="6"><input type="hidden"
      id="pewc_product_width" name="pewc_product_width" value="24"><input type="hidden" id="pewc_product_height" name="pewc_product_height" value="12"><input type="hidden" id="pewc_product_weight" name="pewc_product_weight" value="16"><input
      type="hidden" id="pewc_product_id" name="pewc_product_id" value="4195"><input type="hidden" name="pewc-grid-total-variations" id="pewc-grid-total-variations" value=""><input type="hidden" id="pewc_file_upload" name="pewc_file_upload"
      value="6e38893bf4"><input type="hidden" name="_wp_http_referer" value="/product/brick-custom-scrubber/"><input type="hidden" id="pewc_total" name="pewc_total" value="4d2b662ee6"><input type="hidden" name="_wp_http_referer"
      value="/product/brick-custom-scrubber/">
    <p class="pewc-total-only"><span id="pewc-grand-total" class="pewc-total-field"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol">$</span>212.00</bdi></span></span></p>
  </div>
  <script defer=""
    src="data:text/javascript;base64,CgkJalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKSB7CgkJCXZhciBjb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDM4OCA9IFswLDBdOwpmdW5jdGlvbiBwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNDM4OCggZmllbGRfdmFsdWUgKSB7CnZhciBhY3Rpb25fcGV3Y19ncm91cF80Mzg2XzQzODggPSAnc2hvdyc7CnZhciBtYXRjaF9wZXdjX2dyb3VwXzQzODZfNDM4OCA9ICdhbnknOwp2YXIgZmllbGRfdmFsdWVfMCA9ICQoJyNwZXdjX2dyb3VwXzQzODZfNDM4NycpLnZhbCgpOwp2YXIgY29uZGl0aW9uX3ZhbHVlXzAgPSAnQmx1ZSBTY3J1YmJlciBQYWRzIChRdHkgMTAwKSc7CmlmKCAkKCcucGV3Y19ncm91cF80Mzg2XzQzODcnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXJhZGlvJykgKXsKZmllbGRfdmFsdWVfMCA9ICQoJy5wZXdjX2dyb3VwXzQzODZfNDM4NyBpbnB1dDpyYWRpbzpjaGVja2VkJykudmFsKCk7CmlmKCBmaWVsZF92YWx1ZV8wID09IHVuZGVmaW5lZCApewpmaWVsZF92YWx1ZV8wID0gJyc7Cn0KfQppZigkKCcucGV3Y19ncm91cF80Mzg2XzQzODcnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLXJhZGlvJykpewpmaWVsZF92YWx1ZV8wID0gJCgnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3IGlucHV0OnJhZGlvOmNoZWNrZWQnKS52YWwoKTsKfQppZigkKCcucGV3Y19ncm91cF80Mzg2XzQzODcnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLWNoZWNrYm94ZXMnKSB8fCAkKCcucGV3Y19ncm91cF80Mzg2XzQzODcnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLWNvbHVtbicpKXsKdmFyIGZpZWxkX3ZhbHVlXzAgPSBbXTsKJC5lYWNoKCAkKCJpbnB1dFtuYW1lPSdwZXdjX2dyb3VwXzQzODZfNDM4N19jaGlsZF9wcm9kdWN0W10nXTpjaGVja2VkIiksIGZ1bmN0aW9uKCl7CgoJCQkJCQkJCQkJCQlmaWVsZF92YWx1ZV8wLnB1c2goJCh0aGlzKS52YWwoKSk7CgoJCQkJCQkJCQkJCX0pOwp9CmlmKCQoJy5wZXdjX2dyb3VwXzQzODZfNDM4NycpLmhhc0NsYXNzKCdwZXdjLWl0ZW0taW1hZ2Utc3dhdGNoLWNoZWNrYm94JykgfHwgJCgnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3JykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1jaGVja2JveF9ncm91cCcpICl7CnZhciBmaWVsZF92YWx1ZV8wID0gW107CiQuZWFjaCggJCgiaW5wdXRbbmFtZT0ncGV3Y19ncm91cF80Mzg2XzQzODdbXSddOmNoZWNrZWQiKSwgZnVuY3Rpb24oKXsKCgkJCQkJCQkJCQkJCWZpZWxkX3ZhbHVlXzAucHVzaCgkKHRoaXMpLnZhbCgpKTsKCgkJCQkJCQkJCQkJfSk7Cn0KaWYoICQoICcucGV3Y19ncm91cF80Mzg2XzQzODcnICkuaGFzQ2xhc3MoICdwZXdjLWl0ZW0tdXBsb2FkJyApICl7CmZpZWxkX3ZhbHVlXzAgPSAkKCAnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3JyApLmZpbmQoICcucGV3Yy1udW1iZXItdXBsb2FkcycgKS52YWwoKTsKfQppZiggY29uZGl0aW9uX3ZhbHVlXzAgIT0gdW5kZWZpbmVkICkgewoKCQkJCQkJCQkJCQkJY29uZGl0aW9uX3ZhbHVlXzAgPSBjb25kaXRpb25fdmFsdWVfMC5yZXBsYWNlKCAvJy9nLCAnXycgKTsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbl92YWx1ZV8wID0gY29uZGl0aW9uX3ZhbHVlXzAucmVwbGFjZSggLyIvZywgJ18nICk7CgoJCQkJCQkJCQkJCX0KaWYoIGZpZWxkX3ZhbHVlXzAgIT0gdW5kZWZpbmVkICkgewoKCQkJCQkJCQkJCQkJZmllbGRfdmFsdWVfMCA9IGZpZWxkX3ZhbHVlXzAucmVwbGFjZSggLycvZywgJ18nICk7CgoJCQkJCQkJCQkJCQlmaWVsZF92YWx1ZV8wID0gZmllbGRfdmFsdWVfMC5yZXBsYWNlKCAvIi9nLCAnXycgKTsKCgkJCQkJCQkJCQkJfQoKCQkJCQkJCQkJCQlpZiggZmllbGRfdmFsdWVfMCA9PSAnX19jaGVja2VkX18nICkgewoKCQkJCQkJCQkJCQkJLyogSXQncyBhIGNoZWNrYm94ICovCgoJCQkJCQkJCQkJCQl2YXIgY2hlY2tlZCA9ICQoJyNwZXdjX2dyb3VwXzQzODZfNDM4NycpLnByb3AoJ2NoZWNrZWQnKTsKCgkJCQkJCQkJCQkJCWlmKCBjaGVja2VkID09IHRydWUgKSB7CgoJCQkJCQkJCQkJCQkJLyogVGhpcyBjb25kaXRpb24gaXMgbWV0ICovCgoJCQkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQzODhbMF0gPSAxOwoKCQkJCQkJCQkJCQkJfSBlbHNlIHsKCgkJCQkJCQkJCQkJCQljb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDM4OFswXSA9IDA7CgoJCQkJCQkJCQkJCQl9CgoJCQkJCQkJCQkJCX0gZWxzZSBpZiggZmllbGRfdmFsdWVfMCA9PSBjb25kaXRpb25fdmFsdWVfMCApIHsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80Mzg4WzBdID0gMTsKCgkJCQkJCQkJCQkJfSBlbHNlIHsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80Mzg4WzBdID0gMDsKCgkJCQkJCQkJCQkJfQppZiggY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQzODhbMF0gPT0gMCAmJiBtYXRjaF9wZXdjX2dyb3VwXzQzODZfNDM4OCA9PSAnYWxsJyApIHsKCgkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQzODhbMF0gPSAwOwoKCQkJCQkJCQkJCQkvKiByZXR1cm4gY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQzODg7ICovCgoJCQkJCQkJCQkJfQpwZXdjX2NoZWNrX2FsbF9jb25kaXRpb25zKCAncGV3Y19ncm91cF80Mzg2XzQzODgnLCBjb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDM4OCwgYWN0aW9uX3Bld2NfZ3JvdXBfNDM4Nl80Mzg4LCBtYXRjaF9wZXdjX2dyb3VwXzQzODZfNDM4OCApOwp2YXIgZmllbGRfdmFsdWVfMSA9ICQoJyNwZXdjX2dyb3VwXzQzODZfNDM4NycpLnZhbCgpOwp2YXIgY29uZGl0aW9uX3ZhbHVlXzEgPSAnV2hpdGUgU2NydWJiZXIgUGFkcyAoUXR5IDEwMCknOwppZiggJCgnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3JykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1yYWRpbycpICl7CmZpZWxkX3ZhbHVlXzEgPSAkKCcucGV3Y19ncm91cF80Mzg2XzQzODcgaW5wdXQ6cmFkaW86Y2hlY2tlZCcpLnZhbCgpOwppZiggZmllbGRfdmFsdWVfMSA9PSB1bmRlZmluZWQgKXsKZmllbGRfdmFsdWVfMSA9ICcnOwp9Cn0KaWYoJCgnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3JykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1wcm9kdWN0cy1yYWRpbycpKXsKZmllbGRfdmFsdWVfMSA9ICQoJy5wZXdjX2dyb3VwXzQzODZfNDM4NyBpbnB1dDpyYWRpbzpjaGVja2VkJykudmFsKCk7Cn0KaWYoJCgnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3JykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1wcm9kdWN0cy1jaGVja2JveGVzJykgfHwgJCgnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3JykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1wcm9kdWN0cy1jb2x1bW4nKSl7CnZhciBmaWVsZF92YWx1ZV8xID0gW107CiQuZWFjaCggJCgiaW5wdXRbbmFtZT0ncGV3Y19ncm91cF80Mzg2XzQzODdfY2hpbGRfcHJvZHVjdFtdJ106Y2hlY2tlZCIpLCBmdW5jdGlvbigpewoKCQkJCQkJCQkJCQkJZmllbGRfdmFsdWVfMS5wdXNoKCQodGhpcykudmFsKCkpOwoKCQkJCQkJCQkJCQl9KTsKfQppZigkKCcucGV3Y19ncm91cF80Mzg2XzQzODcnKS5oYXNDbGFzcygncGV3Yy1pdGVtLWltYWdlLXN3YXRjaC1jaGVja2JveCcpIHx8ICQoJy5wZXdjX2dyb3VwXzQzODZfNDM4NycpLmhhc0NsYXNzKCdwZXdjLWl0ZW0tY2hlY2tib3hfZ3JvdXAnKSApewp2YXIgZmllbGRfdmFsdWVfMSA9IFtdOwokLmVhY2goICQoImlucHV0W25hbWU9J3Bld2NfZ3JvdXBfNDM4Nl80Mzg3W10nXTpjaGVja2VkIiksIGZ1bmN0aW9uKCl7CgoJCQkJCQkJCQkJCQlmaWVsZF92YWx1ZV8xLnB1c2goJCh0aGlzKS52YWwoKSk7CgoJCQkJCQkJCQkJCX0pOwp9CmlmKCAkKCAnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3JyApLmhhc0NsYXNzKCAncGV3Yy1pdGVtLXVwbG9hZCcgKSApewpmaWVsZF92YWx1ZV8xID0gJCggJy5wZXdjX2dyb3VwXzQzODZfNDM4NycgKS5maW5kKCAnLnBld2MtbnVtYmVyLXVwbG9hZHMnICkudmFsKCk7Cn0KaWYoIGNvbmRpdGlvbl92YWx1ZV8xICE9IHVuZGVmaW5lZCApIHsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbl92YWx1ZV8xID0gY29uZGl0aW9uX3ZhbHVlXzEucmVwbGFjZSggLycvZywgJ18nICk7CgoJCQkJCQkJCQkJCQljb25kaXRpb25fdmFsdWVfMSA9IGNvbmRpdGlvbl92YWx1ZV8xLnJlcGxhY2UoIC8iL2csICdfJyApOwoKCQkJCQkJCQkJCQl9CmlmKCBmaWVsZF92YWx1ZV8xICE9IHVuZGVmaW5lZCApIHsKCgkJCQkJCQkJCQkJCWZpZWxkX3ZhbHVlXzEgPSBmaWVsZF92YWx1ZV8xLnJlcGxhY2UoIC8nL2csICdfJyApOwoKCQkJCQkJCQkJCQkJZmllbGRfdmFsdWVfMSA9IGZpZWxkX3ZhbHVlXzEucmVwbGFjZSggLyIvZywgJ18nICk7CgoJCQkJCQkJCQkJCX0KCgkJCQkJCQkJCQkJaWYoIGZpZWxkX3ZhbHVlXzEgPT0gJ19fY2hlY2tlZF9fJyApIHsKCgkJCQkJCQkJCQkJCS8qIEl0J3MgYSBjaGVja2JveCAqLwoKCQkJCQkJCQkJCQkJdmFyIGNoZWNrZWQgPSAkKCcjcGV3Y19ncm91cF80Mzg2XzQzODcnKS5wcm9wKCdjaGVja2VkJyk7CgoJCQkJCQkJCQkJCQlpZiggY2hlY2tlZCA9PSB0cnVlICkgewoKCQkJCQkJCQkJCQkJCS8qIFRoaXMgY29uZGl0aW9uIGlzIG1ldCAqLwoKCQkJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80Mzg4WzFdID0gMTsKCgkJCQkJCQkJCQkJCX0gZWxzZSB7CgoJCQkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQzODhbMV0gPSAwOwoKCQkJCQkJCQkJCQkJfQoKCQkJCQkJCQkJCQl9IGVsc2UgaWYoIGZpZWxkX3ZhbHVlXzEgPT0gY29uZGl0aW9uX3ZhbHVlXzEgKSB7CgoJCQkJCQkJCQkJCQljb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDM4OFsxXSA9IDE7CgoJCQkJCQkJCQkJCX0gZWxzZSB7CgoJCQkJCQkJCQkJCQljb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDM4OFsxXSA9IDA7CgoJCQkJCQkJCQkJCX0KaWYoIGNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80Mzg4WzFdID09IDAgJiYgbWF0Y2hfcGV3Y19ncm91cF80Mzg2XzQzODggPT0gJ2FsbCcgKSB7CgoJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80Mzg4WzFdID0gMDsKCgkJCQkJCQkJCQkJLyogcmV0dXJuIGNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80Mzg4OyAqLwoKCQkJCQkJCQkJCX0KcGV3Y19jaGVja19hbGxfY29uZGl0aW9ucyggJ3Bld2NfZ3JvdXBfNDM4Nl80Mzg4JywgY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQzODgsIGFjdGlvbl9wZXdjX2dyb3VwXzQzODZfNDM4OCwgbWF0Y2hfcGV3Y19ncm91cF80Mzg2XzQzODggKTsKcmV0dXJuIGNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80Mzg4Owp9CiQoICdib2R5JyApLm9uKCAnY2hhbmdlIHVwZGF0ZSBrZXl1cCBwYXN0ZSBjbGljaycsICcjcGV3Y19ncm91cF80Mzg2XzQzODcsIC5wZXdjX2dyb3VwXzQzODZfNDM4NyAucGV3Yy1yYWRpby1mb3JtLWZpZWxkJywgZnVuY3Rpb24oIGUgKSB7CgoJCQkJCQkJCQkJCXBld2NfY2hlY2tfcnVsZXNfZm9yX3Bld2NfZ3JvdXBfNDM4Nl80Mzg4KCBwYXJzZUZsb2F0KCAkKHRoaXMpLnZhbCgpICkgKTsKCgkJCQkJCQkJCQl9KTsKJCggJ2JvZHknICkub24oICdjYWxjdWxhdGlvbl9maWVsZF91cGRhdGVkJywgZnVuY3Rpb24oKSB7CgoJCQkJCQkJCQkJCXBld2NfY2hlY2tfcnVsZXNfZm9yX3Bld2NfZ3JvdXBfNDM4Nl80Mzg4KCBwYXJzZUZsb2F0KCAkKHRoaXMpLnZhbCgpICkgKTsKCgkJCQkJCQkJCQl9KTsKJCgnYm9keScpLm9uKCdjaGFuZ2UnLCcucGV3Y19ncm91cF80Mzg2XzQzODcgLnBld2MtY2hlY2tib3gtZm9ybS1maWVsZCcsZnVuY3Rpb24oKXsKCgkJCQkJCQkJCQkJcGV3Y19jaGVja19ydWxlc19mb3JfcGV3Y19ncm91cF80Mzg2XzQzODgoICQodGhpcykudmFsKCkgKTsKCgkJCQkJCQkJCQl9KTsKJCggJ2JvZHknICkub24oICdjaGFuZ2UgdXBkYXRlIGtleXVwIHBhc3RlIGNsaWNrJywgJyNwZXdjX2dyb3VwXzQzODZfNDM4NywgLnBld2NfZ3JvdXBfNDM4Nl80Mzg3IC5wZXdjLXJhZGlvLWZvcm0tZmllbGQnLCBmdW5jdGlvbiggZSApIHsKCgkJCQkJCQkJCQkJcGV3Y19jaGVja19ydWxlc19mb3JfcGV3Y19ncm91cF80Mzg2XzQzODgoIHBhcnNlRmxvYXQoICQodGhpcykudmFsKCkgKSApOwoKCQkJCQkJCQkJCX0pOwokKCAnYm9keScgKS5vbiggJ2NhbGN1bGF0aW9uX2ZpZWxkX3VwZGF0ZWQnLCBmdW5jdGlvbigpIHsKCgkJCQkJCQkJCQkJcGV3Y19jaGVja19ydWxlc19mb3JfcGV3Y19ncm91cF80Mzg2XzQzODgoIHBhcnNlRmxvYXQoICQodGhpcykudmFsKCkgKSApOwoKCQkJCQkJCQkJCX0pOwokKCdib2R5Jykub24oJ2NoYW5nZScsJy5wZXdjX2dyb3VwXzQzODZfNDM4NyAucGV3Yy1jaGVja2JveC1mb3JtLWZpZWxkJyxmdW5jdGlvbigpewoKCQkJCQkJCQkJCQlwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNDM4OCggJCh0aGlzKS52YWwoKSApOwoKCQkJCQkJCQkJCX0pOwp2YXIgY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzUzNjAgPSBbMCwwXTsKZnVuY3Rpb24gcGV3Y19jaGVja19ydWxlc19mb3JfcGV3Y19ncm91cF80Mzg2XzUzNjAoIGZpZWxkX3ZhbHVlICkgewp2YXIgYWN0aW9uX3Bld2NfZ3JvdXBfNDM4Nl81MzYwID0gJ3Nob3cnOwp2YXIgbWF0Y2hfcGV3Y19ncm91cF80Mzg2XzUzNjAgPSAnYW55JzsKdmFyIGZpZWxkX3ZhbHVlXzAgPSAkKCcjcGV3Y19ncm91cF80Mzg2XzQzODcnKS52YWwoKTsKdmFyIGNvbmRpdGlvbl92YWx1ZV8wID0gJ0JsdWUgU2NydWJiZXIgUGFkcyAoUXR5IDUwKSc7CmlmKCAkKCcucGV3Y19ncm91cF80Mzg2XzQzODcnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXJhZGlvJykgKXsKZmllbGRfdmFsdWVfMCA9ICQoJy5wZXdjX2dyb3VwXzQzODZfNDM4NyBpbnB1dDpyYWRpbzpjaGVja2VkJykudmFsKCk7CmlmKCBmaWVsZF92YWx1ZV8wID09IHVuZGVmaW5lZCApewpmaWVsZF92YWx1ZV8wID0gJyc7Cn0KfQppZigkKCcucGV3Y19ncm91cF80Mzg2XzQzODcnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLXJhZGlvJykpewpmaWVsZF92YWx1ZV8wID0gJCgnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3IGlucHV0OnJhZGlvOmNoZWNrZWQnKS52YWwoKTsKfQppZigkKCcucGV3Y19ncm91cF80Mzg2XzQzODcnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLWNoZWNrYm94ZXMnKSB8fCAkKCcucGV3Y19ncm91cF80Mzg2XzQzODcnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLWNvbHVtbicpKXsKdmFyIGZpZWxkX3ZhbHVlXzAgPSBbXTsKJC5lYWNoKCAkKCJpbnB1dFtuYW1lPSdwZXdjX2dyb3VwXzQzODZfNDM4N19jaGlsZF9wcm9kdWN0W10nXTpjaGVja2VkIiksIGZ1bmN0aW9uKCl7CgoJCQkJCQkJCQkJCQlmaWVsZF92YWx1ZV8wLnB1c2goJCh0aGlzKS52YWwoKSk7CgoJCQkJCQkJCQkJCX0pOwp9CmlmKCQoJy5wZXdjX2dyb3VwXzQzODZfNDM4NycpLmhhc0NsYXNzKCdwZXdjLWl0ZW0taW1hZ2Utc3dhdGNoLWNoZWNrYm94JykgfHwgJCgnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3JykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1jaGVja2JveF9ncm91cCcpICl7CnZhciBmaWVsZF92YWx1ZV8wID0gW107CiQuZWFjaCggJCgiaW5wdXRbbmFtZT0ncGV3Y19ncm91cF80Mzg2XzQzODdbXSddOmNoZWNrZWQiKSwgZnVuY3Rpb24oKXsKCgkJCQkJCQkJCQkJCWZpZWxkX3ZhbHVlXzAucHVzaCgkKHRoaXMpLnZhbCgpKTsKCgkJCQkJCQkJCQkJfSk7Cn0KaWYoICQoICcucGV3Y19ncm91cF80Mzg2XzQzODcnICkuaGFzQ2xhc3MoICdwZXdjLWl0ZW0tdXBsb2FkJyApICl7CmZpZWxkX3ZhbHVlXzAgPSAkKCAnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3JyApLmZpbmQoICcucGV3Yy1udW1iZXItdXBsb2FkcycgKS52YWwoKTsKfQppZiggY29uZGl0aW9uX3ZhbHVlXzAgIT0gdW5kZWZpbmVkICkgewoKCQkJCQkJCQkJCQkJY29uZGl0aW9uX3ZhbHVlXzAgPSBjb25kaXRpb25fdmFsdWVfMC5yZXBsYWNlKCAvJy9nLCAnXycgKTsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbl92YWx1ZV8wID0gY29uZGl0aW9uX3ZhbHVlXzAucmVwbGFjZSggLyIvZywgJ18nICk7CgoJCQkJCQkJCQkJCX0KaWYoIGZpZWxkX3ZhbHVlXzAgIT0gdW5kZWZpbmVkICkgewoKCQkJCQkJCQkJCQkJZmllbGRfdmFsdWVfMCA9IGZpZWxkX3ZhbHVlXzAucmVwbGFjZSggLycvZywgJ18nICk7CgoJCQkJCQkJCQkJCQlmaWVsZF92YWx1ZV8wID0gZmllbGRfdmFsdWVfMC5yZXBsYWNlKCAvIi9nLCAnXycgKTsKCgkJCQkJCQkJCQkJfQoKCQkJCQkJCQkJCQlpZiggZmllbGRfdmFsdWVfMCA9PSAnX19jaGVja2VkX18nICkgewoKCQkJCQkJCQkJCQkJLyogSXQncyBhIGNoZWNrYm94ICovCgoJCQkJCQkJCQkJCQl2YXIgY2hlY2tlZCA9ICQoJyNwZXdjX2dyb3VwXzQzODZfNDM4NycpLnByb3AoJ2NoZWNrZWQnKTsKCgkJCQkJCQkJCQkJCWlmKCBjaGVja2VkID09IHRydWUgKSB7CgoJCQkJCQkJCQkJCQkJLyogVGhpcyBjb25kaXRpb24gaXMgbWV0ICovCgoJCQkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzUzNjBbMF0gPSAxOwoKCQkJCQkJCQkJCQkJfSBlbHNlIHsKCgkJCQkJCQkJCQkJCQljb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNTM2MFswXSA9IDA7CgoJCQkJCQkJCQkJCQl9CgoJCQkJCQkJCQkJCX0gZWxzZSBpZiggZmllbGRfdmFsdWVfMCA9PSBjb25kaXRpb25fdmFsdWVfMCApIHsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl81MzYwWzBdID0gMTsKCgkJCQkJCQkJCQkJfSBlbHNlIHsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl81MzYwWzBdID0gMDsKCgkJCQkJCQkJCQkJfQppZiggY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzUzNjBbMF0gPT0gMCAmJiBtYXRjaF9wZXdjX2dyb3VwXzQzODZfNTM2MCA9PSAnYWxsJyApIHsKCgkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzUzNjBbMF0gPSAwOwoKCQkJCQkJCQkJCQkvKiByZXR1cm4gY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzUzNjA7ICovCgoJCQkJCQkJCQkJfQpwZXdjX2NoZWNrX2FsbF9jb25kaXRpb25zKCAncGV3Y19ncm91cF80Mzg2XzUzNjAnLCBjb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNTM2MCwgYWN0aW9uX3Bld2NfZ3JvdXBfNDM4Nl81MzYwLCBtYXRjaF9wZXdjX2dyb3VwXzQzODZfNTM2MCApOwp2YXIgZmllbGRfdmFsdWVfMSA9ICQoJyNwZXdjX2dyb3VwXzQzODZfNDM4NycpLnZhbCgpOwp2YXIgY29uZGl0aW9uX3ZhbHVlXzEgPSAnV2hpdGUgU2NydWJiZXIgUGFkcyAoUXl0IDUwKSc7CmlmKCAkKCcucGV3Y19ncm91cF80Mzg2XzQzODcnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXJhZGlvJykgKXsKZmllbGRfdmFsdWVfMSA9ICQoJy5wZXdjX2dyb3VwXzQzODZfNDM4NyBpbnB1dDpyYWRpbzpjaGVja2VkJykudmFsKCk7CmlmKCBmaWVsZF92YWx1ZV8xID09IHVuZGVmaW5lZCApewpmaWVsZF92YWx1ZV8xID0gJyc7Cn0KfQppZigkKCcucGV3Y19ncm91cF80Mzg2XzQzODcnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLXJhZGlvJykpewpmaWVsZF92YWx1ZV8xID0gJCgnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3IGlucHV0OnJhZGlvOmNoZWNrZWQnKS52YWwoKTsKfQppZigkKCcucGV3Y19ncm91cF80Mzg2XzQzODcnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLWNoZWNrYm94ZXMnKSB8fCAkKCcucGV3Y19ncm91cF80Mzg2XzQzODcnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLWNvbHVtbicpKXsKdmFyIGZpZWxkX3ZhbHVlXzEgPSBbXTsKJC5lYWNoKCAkKCJpbnB1dFtuYW1lPSdwZXdjX2dyb3VwXzQzODZfNDM4N19jaGlsZF9wcm9kdWN0W10nXTpjaGVja2VkIiksIGZ1bmN0aW9uKCl7CgoJCQkJCQkJCQkJCQlmaWVsZF92YWx1ZV8xLnB1c2goJCh0aGlzKS52YWwoKSk7CgoJCQkJCQkJCQkJCX0pOwp9CmlmKCQoJy5wZXdjX2dyb3VwXzQzODZfNDM4NycpLmhhc0NsYXNzKCdwZXdjLWl0ZW0taW1hZ2Utc3dhdGNoLWNoZWNrYm94JykgfHwgJCgnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3JykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1jaGVja2JveF9ncm91cCcpICl7CnZhciBmaWVsZF92YWx1ZV8xID0gW107CiQuZWFjaCggJCgiaW5wdXRbbmFtZT0ncGV3Y19ncm91cF80Mzg2XzQzODdbXSddOmNoZWNrZWQiKSwgZnVuY3Rpb24oKXsKCgkJCQkJCQkJCQkJCWZpZWxkX3ZhbHVlXzEucHVzaCgkKHRoaXMpLnZhbCgpKTsKCgkJCQkJCQkJCQkJfSk7Cn0KaWYoICQoICcucGV3Y19ncm91cF80Mzg2XzQzODcnICkuaGFzQ2xhc3MoICdwZXdjLWl0ZW0tdXBsb2FkJyApICl7CmZpZWxkX3ZhbHVlXzEgPSAkKCAnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3JyApLmZpbmQoICcucGV3Yy1udW1iZXItdXBsb2FkcycgKS52YWwoKTsKfQppZiggY29uZGl0aW9uX3ZhbHVlXzEgIT0gdW5kZWZpbmVkICkgewoKCQkJCQkJCQkJCQkJY29uZGl0aW9uX3ZhbHVlXzEgPSBjb25kaXRpb25fdmFsdWVfMS5yZXBsYWNlKCAvJy9nLCAnXycgKTsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbl92YWx1ZV8xID0gY29uZGl0aW9uX3ZhbHVlXzEucmVwbGFjZSggLyIvZywgJ18nICk7CgoJCQkJCQkJCQkJCX0KaWYoIGZpZWxkX3ZhbHVlXzEgIT0gdW5kZWZpbmVkICkgewoKCQkJCQkJCQkJCQkJZmllbGRfdmFsdWVfMSA9IGZpZWxkX3ZhbHVlXzEucmVwbGFjZSggLycvZywgJ18nICk7CgoJCQkJCQkJCQkJCQlmaWVsZF92YWx1ZV8xID0gZmllbGRfdmFsdWVfMS5yZXBsYWNlKCAvIi9nLCAnXycgKTsKCgkJCQkJCQkJCQkJfQoKCQkJCQkJCQkJCQlpZiggZmllbGRfdmFsdWVfMSA9PSAnX19jaGVja2VkX18nICkgewoKCQkJCQkJCQkJCQkJLyogSXQncyBhIGNoZWNrYm94ICovCgoJCQkJCQkJCQkJCQl2YXIgY2hlY2tlZCA9ICQoJyNwZXdjX2dyb3VwXzQzODZfNDM4NycpLnByb3AoJ2NoZWNrZWQnKTsKCgkJCQkJCQkJCQkJCWlmKCBjaGVja2VkID09IHRydWUgKSB7CgoJCQkJCQkJCQkJCQkJLyogVGhpcyBjb25kaXRpb24gaXMgbWV0ICovCgoJCQkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzUzNjBbMV0gPSAxOwoKCQkJCQkJCQkJCQkJfSBlbHNlIHsKCgkJCQkJCQkJCQkJCQljb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNTM2MFsxXSA9IDA7CgoJCQkJCQkJCQkJCQl9CgoJCQkJCQkJCQkJCX0gZWxzZSBpZiggZmllbGRfdmFsdWVfMSA9PSBjb25kaXRpb25fdmFsdWVfMSApIHsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl81MzYwWzFdID0gMTsKCgkJCQkJCQkJCQkJfSBlbHNlIHsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl81MzYwWzFdID0gMDsKCgkJCQkJCQkJCQkJfQppZiggY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzUzNjBbMV0gPT0gMCAmJiBtYXRjaF9wZXdjX2dyb3VwXzQzODZfNTM2MCA9PSAnYWxsJyApIHsKCgkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzUzNjBbMV0gPSAwOwoKCQkJCQkJCQkJCQkvKiByZXR1cm4gY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzUzNjA7ICovCgoJCQkJCQkJCQkJfQpwZXdjX2NoZWNrX2FsbF9jb25kaXRpb25zKCAncGV3Y19ncm91cF80Mzg2XzUzNjAnLCBjb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNTM2MCwgYWN0aW9uX3Bld2NfZ3JvdXBfNDM4Nl81MzYwLCBtYXRjaF9wZXdjX2dyb3VwXzQzODZfNTM2MCApOwpyZXR1cm4gY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzUzNjA7Cn0KJCggJ2JvZHknICkub24oICdjaGFuZ2UgdXBkYXRlIGtleXVwIHBhc3RlIGNsaWNrJywgJyNwZXdjX2dyb3VwXzQzODZfNDM4NywgLnBld2NfZ3JvdXBfNDM4Nl80Mzg3IC5wZXdjLXJhZGlvLWZvcm0tZmllbGQnLCBmdW5jdGlvbiggZSApIHsKCgkJCQkJCQkJCQkJcGV3Y19jaGVja19ydWxlc19mb3JfcGV3Y19ncm91cF80Mzg2XzUzNjAoIHBhcnNlRmxvYXQoICQodGhpcykudmFsKCkgKSApOwoKCQkJCQkJCQkJCX0pOwokKCAnYm9keScgKS5vbiggJ2NhbGN1bGF0aW9uX2ZpZWxkX3VwZGF0ZWQnLCBmdW5jdGlvbigpIHsKCgkJCQkJCQkJCQkJcGV3Y19jaGVja19ydWxlc19mb3JfcGV3Y19ncm91cF80Mzg2XzUzNjAoIHBhcnNlRmxvYXQoICQodGhpcykudmFsKCkgKSApOwoKCQkJCQkJCQkJCX0pOwokKCdib2R5Jykub24oJ2NoYW5nZScsJy5wZXdjX2dyb3VwXzQzODZfNDM4NyAucGV3Yy1jaGVja2JveC1mb3JtLWZpZWxkJyxmdW5jdGlvbigpewoKCQkJCQkJCQkJCQlwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNTM2MCggJCh0aGlzKS52YWwoKSApOwoKCQkJCQkJCQkJCX0pOwokKCAnYm9keScgKS5vbiggJ2NoYW5nZSB1cGRhdGUga2V5dXAgcGFzdGUgY2xpY2snLCAnI3Bld2NfZ3JvdXBfNDM4Nl80Mzg3LCAucGV3Y19ncm91cF80Mzg2XzQzODcgLnBld2MtcmFkaW8tZm9ybS1maWVsZCcsIGZ1bmN0aW9uKCBlICkgewoKCQkJCQkJCQkJCQlwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNTM2MCggcGFyc2VGbG9hdCggJCh0aGlzKS52YWwoKSApICk7CgoJCQkJCQkJCQkJfSk7CiQoICdib2R5JyApLm9uKCAnY2FsY3VsYXRpb25fZmllbGRfdXBkYXRlZCcsIGZ1bmN0aW9uKCkgewoKCQkJCQkJCQkJCQlwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNTM2MCggcGFyc2VGbG9hdCggJCh0aGlzKS52YWwoKSApICk7CgoJCQkJCQkJCQkJfSk7CiQoJ2JvZHknKS5vbignY2hhbmdlJywnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3IC5wZXdjLWNoZWNrYm94LWZvcm0tZmllbGQnLGZ1bmN0aW9uKCl7CgoJCQkJCQkJCQkJCXBld2NfY2hlY2tfcnVsZXNfZm9yX3Bld2NfZ3JvdXBfNDM4Nl81MzYwKCAkKHRoaXMpLnZhbCgpICk7CgoJCQkJCQkJCQkJfSk7CnZhciBjb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDQzMyA9IFswLDBdOwpmdW5jdGlvbiBwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNDQzMyggZmllbGRfdmFsdWUgKSB7CnZhciBhY3Rpb25fcGV3Y19ncm91cF80Mzg2XzQ0MzMgPSAnaGlkZSc7CnZhciBtYXRjaF9wZXdjX2dyb3VwXzQzODZfNDQzMyA9ICdhbnknOwp2YXIgZmllbGRfdmFsdWVfMCA9ICQoJyNwZXdjX2dyb3VwXzQzODZfNDM5MCcpLnZhbCgpOwp2YXIgY29uZGl0aW9uX3ZhbHVlXzAgPSAnTm8gQnJ1c2hlcyBOZWVkZWQnOwppZiggJCgnLnBld2NfZ3JvdXBfNDM4Nl80MzkwJykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1yYWRpbycpICl7CmZpZWxkX3ZhbHVlXzAgPSAkKCcucGV3Y19ncm91cF80Mzg2XzQzOTAgaW5wdXQ6cmFkaW86Y2hlY2tlZCcpLnZhbCgpOwppZiggZmllbGRfdmFsdWVfMCA9PSB1bmRlZmluZWQgKXsKZmllbGRfdmFsdWVfMCA9ICcnOwp9Cn0KaWYoJCgnLnBld2NfZ3JvdXBfNDM4Nl80MzkwJykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1wcm9kdWN0cy1yYWRpbycpKXsKZmllbGRfdmFsdWVfMCA9ICQoJy5wZXdjX2dyb3VwXzQzODZfNDM5MCBpbnB1dDpyYWRpbzpjaGVja2VkJykudmFsKCk7Cn0KaWYoJCgnLnBld2NfZ3JvdXBfNDM4Nl80MzkwJykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1wcm9kdWN0cy1jaGVja2JveGVzJykgfHwgJCgnLnBld2NfZ3JvdXBfNDM4Nl80MzkwJykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1wcm9kdWN0cy1jb2x1bW4nKSl7CnZhciBmaWVsZF92YWx1ZV8wID0gW107CiQuZWFjaCggJCgiaW5wdXRbbmFtZT0ncGV3Y19ncm91cF80Mzg2XzQzOTBfY2hpbGRfcHJvZHVjdFtdJ106Y2hlY2tlZCIpLCBmdW5jdGlvbigpewoKCQkJCQkJCQkJCQkJZmllbGRfdmFsdWVfMC5wdXNoKCQodGhpcykudmFsKCkpOwoKCQkJCQkJCQkJCQl9KTsKfQppZigkKCcucGV3Y19ncm91cF80Mzg2XzQzOTAnKS5oYXNDbGFzcygncGV3Yy1pdGVtLWltYWdlLXN3YXRjaC1jaGVja2JveCcpIHx8ICQoJy5wZXdjX2dyb3VwXzQzODZfNDM5MCcpLmhhc0NsYXNzKCdwZXdjLWl0ZW0tY2hlY2tib3hfZ3JvdXAnKSApewp2YXIgZmllbGRfdmFsdWVfMCA9IFtdOwokLmVhY2goICQoImlucHV0W25hbWU9J3Bld2NfZ3JvdXBfNDM4Nl80MzkwW10nXTpjaGVja2VkIiksIGZ1bmN0aW9uKCl7CgoJCQkJCQkJCQkJCQlmaWVsZF92YWx1ZV8wLnB1c2goJCh0aGlzKS52YWwoKSk7CgoJCQkJCQkJCQkJCX0pOwp9CmlmKCAkKCAnLnBld2NfZ3JvdXBfNDM4Nl80MzkwJyApLmhhc0NsYXNzKCAncGV3Yy1pdGVtLXVwbG9hZCcgKSApewpmaWVsZF92YWx1ZV8wID0gJCggJy5wZXdjX2dyb3VwXzQzODZfNDM5MCcgKS5maW5kKCAnLnBld2MtbnVtYmVyLXVwbG9hZHMnICkudmFsKCk7Cn0KaWYoIGNvbmRpdGlvbl92YWx1ZV8wICE9IHVuZGVmaW5lZCApIHsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbl92YWx1ZV8wID0gY29uZGl0aW9uX3ZhbHVlXzAucmVwbGFjZSggLycvZywgJ18nICk7CgoJCQkJCQkJCQkJCQljb25kaXRpb25fdmFsdWVfMCA9IGNvbmRpdGlvbl92YWx1ZV8wLnJlcGxhY2UoIC8iL2csICdfJyApOwoKCQkJCQkJCQkJCQl9CmlmKCBmaWVsZF92YWx1ZV8wICE9IHVuZGVmaW5lZCApIHsKCgkJCQkJCQkJCQkJCWZpZWxkX3ZhbHVlXzAgPSBmaWVsZF92YWx1ZV8wLnJlcGxhY2UoIC8nL2csICdfJyApOwoKCQkJCQkJCQkJCQkJZmllbGRfdmFsdWVfMCA9IGZpZWxkX3ZhbHVlXzAucmVwbGFjZSggLyIvZywgJ18nICk7CgoJCQkJCQkJCQkJCX0KCgkJCQkJCQkJCQkJaWYoIGZpZWxkX3ZhbHVlXzAgPT0gJ19fY2hlY2tlZF9fJyApIHsKCgkJCQkJCQkJCQkJCS8qIEl0J3MgYSBjaGVja2JveCAqLwoKCQkJCQkJCQkJCQkJdmFyIGNoZWNrZWQgPSAkKCcjcGV3Y19ncm91cF80Mzg2XzQzOTAnKS5wcm9wKCdjaGVja2VkJyk7CgoJCQkJCQkJCQkJCQlpZiggY2hlY2tlZCA9PSB0cnVlICkgewoKCQkJCQkJCQkJCQkJCS8qIFRoaXMgY29uZGl0aW9uIGlzIG1ldCAqLwoKCQkJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80NDMzWzBdID0gMTsKCgkJCQkJCQkJCQkJCX0gZWxzZSB7CgoJCQkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ0MzNbMF0gPSAwOwoKCQkJCQkJCQkJCQkJfQoKCQkJCQkJCQkJCQl9IGVsc2UgaWYoIGZpZWxkX3ZhbHVlXzAgPT0gY29uZGl0aW9uX3ZhbHVlXzAgKSB7CgoJCQkJCQkJCQkJCQljb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDQzM1swXSA9IDE7CgoJCQkJCQkJCQkJCX0gZWxzZSB7CgoJCQkJCQkJCQkJCQljb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDQzM1swXSA9IDA7CgoJCQkJCQkJCQkJCX0KaWYoIGNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80NDMzWzBdID09IDAgJiYgbWF0Y2hfcGV3Y19ncm91cF80Mzg2XzQ0MzMgPT0gJ2FsbCcgKSB7CgoJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80NDMzWzBdID0gMDsKCgkJCQkJCQkJCQkJLyogcmV0dXJuIGNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80NDMzOyAqLwoKCQkJCQkJCQkJCX0KcGV3Y19jaGVja19hbGxfY29uZGl0aW9ucyggJ3Bld2NfZ3JvdXBfNDM4Nl80NDMzJywgY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ0MzMsIGFjdGlvbl9wZXdjX2dyb3VwXzQzODZfNDQzMywgbWF0Y2hfcGV3Y19ncm91cF80Mzg2XzQ0MzMgKTsKdmFyIGZpZWxkX3ZhbHVlXzEgPSAkKCcjcGV3Y19ncm91cF80Mzg2XzQzOTAnKS52YWwoKTsKdmFyIGNvbmRpdGlvbl92YWx1ZV8xID0gJyc7CmlmKCAkKCcucGV3Y19ncm91cF80Mzg2XzQzOTAnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXJhZGlvJykgKXsKZmllbGRfdmFsdWVfMSA9ICQoJy5wZXdjX2dyb3VwXzQzODZfNDM5MCBpbnB1dDpyYWRpbzpjaGVja2VkJykudmFsKCk7CmlmKCBmaWVsZF92YWx1ZV8xID09IHVuZGVmaW5lZCApewpmaWVsZF92YWx1ZV8xID0gJyc7Cn0KfQppZigkKCcucGV3Y19ncm91cF80Mzg2XzQzOTAnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLXJhZGlvJykpewpmaWVsZF92YWx1ZV8xID0gJCgnLnBld2NfZ3JvdXBfNDM4Nl80MzkwIGlucHV0OnJhZGlvOmNoZWNrZWQnKS52YWwoKTsKfQppZigkKCcucGV3Y19ncm91cF80Mzg2XzQzOTAnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLWNoZWNrYm94ZXMnKSB8fCAkKCcucGV3Y19ncm91cF80Mzg2XzQzOTAnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLWNvbHVtbicpKXsKdmFyIGZpZWxkX3ZhbHVlXzEgPSBbXTsKJC5lYWNoKCAkKCJpbnB1dFtuYW1lPSdwZXdjX2dyb3VwXzQzODZfNDM5MF9jaGlsZF9wcm9kdWN0W10nXTpjaGVja2VkIiksIGZ1bmN0aW9uKCl7CgoJCQkJCQkJCQkJCQlmaWVsZF92YWx1ZV8xLnB1c2goJCh0aGlzKS52YWwoKSk7CgoJCQkJCQkJCQkJCX0pOwp9CmlmKCQoJy5wZXdjX2dyb3VwXzQzODZfNDM5MCcpLmhhc0NsYXNzKCdwZXdjLWl0ZW0taW1hZ2Utc3dhdGNoLWNoZWNrYm94JykgfHwgJCgnLnBld2NfZ3JvdXBfNDM4Nl80MzkwJykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1jaGVja2JveF9ncm91cCcpICl7CnZhciBmaWVsZF92YWx1ZV8xID0gW107CiQuZWFjaCggJCgiaW5wdXRbbmFtZT0ncGV3Y19ncm91cF80Mzg2XzQzOTBbXSddOmNoZWNrZWQiKSwgZnVuY3Rpb24oKXsKCgkJCQkJCQkJCQkJCWZpZWxkX3ZhbHVlXzEucHVzaCgkKHRoaXMpLnZhbCgpKTsKCgkJCQkJCQkJCQkJfSk7Cn0KaWYoICQoICcucGV3Y19ncm91cF80Mzg2XzQzOTAnICkuaGFzQ2xhc3MoICdwZXdjLWl0ZW0tdXBsb2FkJyApICl7CmZpZWxkX3ZhbHVlXzEgPSAkKCAnLnBld2NfZ3JvdXBfNDM4Nl80MzkwJyApLmZpbmQoICcucGV3Yy1udW1iZXItdXBsb2FkcycgKS52YWwoKTsKfQppZiggY29uZGl0aW9uX3ZhbHVlXzEgIT0gdW5kZWZpbmVkICkgewoKCQkJCQkJCQkJCQkJY29uZGl0aW9uX3ZhbHVlXzEgPSBjb25kaXRpb25fdmFsdWVfMS5yZXBsYWNlKCAvJy9nLCAnXycgKTsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbl92YWx1ZV8xID0gY29uZGl0aW9uX3ZhbHVlXzEucmVwbGFjZSggLyIvZywgJ18nICk7CgoJCQkJCQkJCQkJCX0KaWYoIGZpZWxkX3ZhbHVlXzEgIT0gdW5kZWZpbmVkICkgewoKCQkJCQkJCQkJCQkJZmllbGRfdmFsdWVfMSA9IGZpZWxkX3ZhbHVlXzEucmVwbGFjZSggLycvZywgJ18nICk7CgoJCQkJCQkJCQkJCQlmaWVsZF92YWx1ZV8xID0gZmllbGRfdmFsdWVfMS5yZXBsYWNlKCAvIi9nLCAnXycgKTsKCgkJCQkJCQkJCQkJfQoKCQkJCQkJCQkJCQlpZiggZmllbGRfdmFsdWVfMSA9PSAnX19jaGVja2VkX18nICkgewoKCQkJCQkJCQkJCQkJLyogSXQncyBhIGNoZWNrYm94ICovCgoJCQkJCQkJCQkJCQl2YXIgY2hlY2tlZCA9ICQoJyNwZXdjX2dyb3VwXzQzODZfNDM5MCcpLnByb3AoJ2NoZWNrZWQnKTsKCgkJCQkJCQkJCQkJCWlmKCBjaGVja2VkID09IHRydWUgKSB7CgoJCQkJCQkJCQkJCQkJLyogVGhpcyBjb25kaXRpb24gaXMgbWV0ICovCgoJCQkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ0MzNbMV0gPSAxOwoKCQkJCQkJCQkJCQkJfSBlbHNlIHsKCgkJCQkJCQkJCQkJCQljb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDQzM1sxXSA9IDA7CgoJCQkJCQkJCQkJCQl9CgoJCQkJCQkJCQkJCX0gZWxzZSBpZiggZmllbGRfdmFsdWVfMSA9PSBjb25kaXRpb25fdmFsdWVfMSApIHsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80NDMzWzFdID0gMTsKCgkJCQkJCQkJCQkJfSBlbHNlIHsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80NDMzWzFdID0gMDsKCgkJCQkJCQkJCQkJfQppZiggY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ0MzNbMV0gPT0gMCAmJiBtYXRjaF9wZXdjX2dyb3VwXzQzODZfNDQzMyA9PSAnYWxsJyApIHsKCgkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ0MzNbMV0gPSAwOwoKCQkJCQkJCQkJCQkvKiByZXR1cm4gY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ0MzM7ICovCgoJCQkJCQkJCQkJfQpwZXdjX2NoZWNrX2FsbF9jb25kaXRpb25zKCAncGV3Y19ncm91cF80Mzg2XzQ0MzMnLCBjb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDQzMywgYWN0aW9uX3Bld2NfZ3JvdXBfNDM4Nl80NDMzLCBtYXRjaF9wZXdjX2dyb3VwXzQzODZfNDQzMyApOwpyZXR1cm4gY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ0MzM7Cn0KJCggJ2JvZHknICkub24oICdjaGFuZ2UgdXBkYXRlIGtleXVwIHBhc3RlIGNsaWNrJywgJyNwZXdjX2dyb3VwXzQzODZfNDM5MCwgLnBld2NfZ3JvdXBfNDM4Nl80MzkwIC5wZXdjLXJhZGlvLWZvcm0tZmllbGQnLCBmdW5jdGlvbiggZSApIHsKCgkJCQkJCQkJCQkJcGV3Y19jaGVja19ydWxlc19mb3JfcGV3Y19ncm91cF80Mzg2XzQ0MzMoIHBhcnNlRmxvYXQoICQodGhpcykudmFsKCkgKSApOwoKCQkJCQkJCQkJCX0pOwokKCAnYm9keScgKS5vbiggJ2NhbGN1bGF0aW9uX2ZpZWxkX3VwZGF0ZWQnLCBmdW5jdGlvbigpIHsKCgkJCQkJCQkJCQkJcGV3Y19jaGVja19ydWxlc19mb3JfcGV3Y19ncm91cF80Mzg2XzQ0MzMoIHBhcnNlRmxvYXQoICQodGhpcykudmFsKCkgKSApOwoKCQkJCQkJCQkJCX0pOwokKCdib2R5Jykub24oJ2NoYW5nZScsJy5wZXdjX2dyb3VwXzQzODZfNDM5MCAucGV3Yy1jaGVja2JveC1mb3JtLWZpZWxkJyxmdW5jdGlvbigpewoKCQkJCQkJCQkJCQlwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNDQzMyggJCh0aGlzKS52YWwoKSApOwoKCQkJCQkJCQkJCX0pOwokKCAnYm9keScgKS5vbiggJ2NoYW5nZSB1cGRhdGUga2V5dXAgcGFzdGUgY2xpY2snLCAnI3Bld2NfZ3JvdXBfNDM4Nl80MzkwLCAucGV3Y19ncm91cF80Mzg2XzQzOTAgLnBld2MtcmFkaW8tZm9ybS1maWVsZCcsIGZ1bmN0aW9uKCBlICkgewoKCQkJCQkJCQkJCQlwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNDQzMyggcGFyc2VGbG9hdCggJCh0aGlzKS52YWwoKSApICk7CgoJCQkJCQkJCQkJfSk7CiQoICdib2R5JyApLm9uKCAnY2FsY3VsYXRpb25fZmllbGRfdXBkYXRlZCcsIGZ1bmN0aW9uKCkgewoKCQkJCQkJCQkJCQlwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNDQzMyggcGFyc2VGbG9hdCggJCh0aGlzKS52YWwoKSApICk7CgoJCQkJCQkJCQkJfSk7CiQoJ2JvZHknKS5vbignY2hhbmdlJywnLnBld2NfZ3JvdXBfNDM4Nl80MzkwIC5wZXdjLWNoZWNrYm94LWZvcm0tZmllbGQnLGZ1bmN0aW9uKCl7CgoJCQkJCQkJCQkJCXBld2NfY2hlY2tfcnVsZXNfZm9yX3Bld2NfZ3JvdXBfNDM4Nl80NDMzKCAkKHRoaXMpLnZhbCgpICk7CgoJCQkJCQkJCQkJfSk7CnZhciBjb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDU2MyA9IFswLDAsMF07CmZ1bmN0aW9uIHBld2NfY2hlY2tfcnVsZXNfZm9yX3Bld2NfZ3JvdXBfNDM4Nl80NTYzKCBmaWVsZF92YWx1ZSApIHsKdmFyIGFjdGlvbl9wZXdjX2dyb3VwXzQzODZfNDU2MyA9ICdoaWRlJzsKdmFyIG1hdGNoX3Bld2NfZ3JvdXBfNDM4Nl80NTYzID0gJ2FueSc7CnZhciBmaWVsZF92YWx1ZV8wID0gJCgnI3Bld2NfZ3JvdXBfNDM4Nl80MzkwJykudmFsKCk7CnZhciBjb25kaXRpb25fdmFsdWVfMCA9ICdObyBCcnVzaGVzIE5lZWRlZCc7CmlmKCAkKCcucGV3Y19ncm91cF80Mzg2XzQzOTAnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXJhZGlvJykgKXsKZmllbGRfdmFsdWVfMCA9ICQoJy5wZXdjX2dyb3VwXzQzODZfNDM5MCBpbnB1dDpyYWRpbzpjaGVja2VkJykudmFsKCk7CmlmKCBmaWVsZF92YWx1ZV8wID09IHVuZGVmaW5lZCApewpmaWVsZF92YWx1ZV8wID0gJyc7Cn0KfQppZigkKCcucGV3Y19ncm91cF80Mzg2XzQzOTAnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLXJhZGlvJykpewpmaWVsZF92YWx1ZV8wID0gJCgnLnBld2NfZ3JvdXBfNDM4Nl80MzkwIGlucHV0OnJhZGlvOmNoZWNrZWQnKS52YWwoKTsKfQppZigkKCcucGV3Y19ncm91cF80Mzg2XzQzOTAnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLWNoZWNrYm94ZXMnKSB8fCAkKCcucGV3Y19ncm91cF80Mzg2XzQzOTAnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLWNvbHVtbicpKXsKdmFyIGZpZWxkX3ZhbHVlXzAgPSBbXTsKJC5lYWNoKCAkKCJpbnB1dFtuYW1lPSdwZXdjX2dyb3VwXzQzODZfNDM5MF9jaGlsZF9wcm9kdWN0W10nXTpjaGVja2VkIiksIGZ1bmN0aW9uKCl7CgoJCQkJCQkJCQkJCQlmaWVsZF92YWx1ZV8wLnB1c2goJCh0aGlzKS52YWwoKSk7CgoJCQkJCQkJCQkJCX0pOwp9CmlmKCQoJy5wZXdjX2dyb3VwXzQzODZfNDM5MCcpLmhhc0NsYXNzKCdwZXdjLWl0ZW0taW1hZ2Utc3dhdGNoLWNoZWNrYm94JykgfHwgJCgnLnBld2NfZ3JvdXBfNDM4Nl80MzkwJykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1jaGVja2JveF9ncm91cCcpICl7CnZhciBmaWVsZF92YWx1ZV8wID0gW107CiQuZWFjaCggJCgiaW5wdXRbbmFtZT0ncGV3Y19ncm91cF80Mzg2XzQzOTBbXSddOmNoZWNrZWQiKSwgZnVuY3Rpb24oKXsKCgkJCQkJCQkJCQkJCWZpZWxkX3ZhbHVlXzAucHVzaCgkKHRoaXMpLnZhbCgpKTsKCgkJCQkJCQkJCQkJfSk7Cn0KaWYoICQoICcucGV3Y19ncm91cF80Mzg2XzQzOTAnICkuaGFzQ2xhc3MoICdwZXdjLWl0ZW0tdXBsb2FkJyApICl7CmZpZWxkX3ZhbHVlXzAgPSAkKCAnLnBld2NfZ3JvdXBfNDM4Nl80MzkwJyApLmZpbmQoICcucGV3Yy1udW1iZXItdXBsb2FkcycgKS52YWwoKTsKfQppZiggY29uZGl0aW9uX3ZhbHVlXzAgIT0gdW5kZWZpbmVkICkgewoKCQkJCQkJCQkJCQkJY29uZGl0aW9uX3ZhbHVlXzAgPSBjb25kaXRpb25fdmFsdWVfMC5yZXBsYWNlKCAvJy9nLCAnXycgKTsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbl92YWx1ZV8wID0gY29uZGl0aW9uX3ZhbHVlXzAucmVwbGFjZSggLyIvZywgJ18nICk7CgoJCQkJCQkJCQkJCX0KaWYoIGZpZWxkX3ZhbHVlXzAgIT0gdW5kZWZpbmVkICkgewoKCQkJCQkJCQkJCQkJZmllbGRfdmFsdWVfMCA9IGZpZWxkX3ZhbHVlXzAucmVwbGFjZSggLycvZywgJ18nICk7CgoJCQkJCQkJCQkJCQlmaWVsZF92YWx1ZV8wID0gZmllbGRfdmFsdWVfMC5yZXBsYWNlKCAvIi9nLCAnXycgKTsKCgkJCQkJCQkJCQkJfQoKCQkJCQkJCQkJCQlpZiggZmllbGRfdmFsdWVfMCA9PSAnX19jaGVja2VkX18nICkgewoKCQkJCQkJCQkJCQkJLyogSXQncyBhIGNoZWNrYm94ICovCgoJCQkJCQkJCQkJCQl2YXIgY2hlY2tlZCA9ICQoJyNwZXdjX2dyb3VwXzQzODZfNDM5MCcpLnByb3AoJ2NoZWNrZWQnKTsKCgkJCQkJCQkJCQkJCWlmKCBjaGVja2VkID09IHRydWUgKSB7CgoJCQkJCQkJCQkJCQkJLyogVGhpcyBjb25kaXRpb24gaXMgbWV0ICovCgoJCQkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ1NjNbMF0gPSAxOwoKCQkJCQkJCQkJCQkJfSBlbHNlIHsKCgkJCQkJCQkJCQkJCQljb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDU2M1swXSA9IDA7CgoJCQkJCQkJCQkJCQl9CgoJCQkJCQkJCQkJCX0gZWxzZSBpZiggZmllbGRfdmFsdWVfMCA9PSBjb25kaXRpb25fdmFsdWVfMCApIHsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80NTYzWzBdID0gMTsKCgkJCQkJCQkJCQkJfSBlbHNlIHsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80NTYzWzBdID0gMDsKCgkJCQkJCQkJCQkJfQppZiggY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ1NjNbMF0gPT0gMCAmJiBtYXRjaF9wZXdjX2dyb3VwXzQzODZfNDU2MyA9PSAnYWxsJyApIHsKCgkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ1NjNbMF0gPSAwOwoKCQkJCQkJCQkJCQkvKiByZXR1cm4gY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ1NjM7ICovCgoJCQkJCQkJCQkJfQpwZXdjX2NoZWNrX2FsbF9jb25kaXRpb25zKCAncGV3Y19ncm91cF80Mzg2XzQ1NjMnLCBjb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDU2MywgYWN0aW9uX3Bld2NfZ3JvdXBfNDM4Nl80NTYzLCBtYXRjaF9wZXdjX2dyb3VwXzQzODZfNDU2MyApOwp2YXIgZmllbGRfdmFsdWVfMSA9ICQoJyNwZXdjX2dyb3VwXzQzODZfNDM5MCcpLnZhbCgpOwp2YXIgY29uZGl0aW9uX3ZhbHVlXzEgPSAnJzsKaWYoICQoJy5wZXdjX2dyb3VwXzQzODZfNDM5MCcpLmhhc0NsYXNzKCdwZXdjLWl0ZW0tcmFkaW8nKSApewpmaWVsZF92YWx1ZV8xID0gJCgnLnBld2NfZ3JvdXBfNDM4Nl80MzkwIGlucHV0OnJhZGlvOmNoZWNrZWQnKS52YWwoKTsKaWYoIGZpZWxkX3ZhbHVlXzEgPT0gdW5kZWZpbmVkICl7CmZpZWxkX3ZhbHVlXzEgPSAnJzsKfQp9CmlmKCQoJy5wZXdjX2dyb3VwXzQzODZfNDM5MCcpLmhhc0NsYXNzKCdwZXdjLWl0ZW0tcHJvZHVjdHMtcmFkaW8nKSl7CmZpZWxkX3ZhbHVlXzEgPSAkKCcucGV3Y19ncm91cF80Mzg2XzQzOTAgaW5wdXQ6cmFkaW86Y2hlY2tlZCcpLnZhbCgpOwp9CmlmKCQoJy5wZXdjX2dyb3VwXzQzODZfNDM5MCcpLmhhc0NsYXNzKCdwZXdjLWl0ZW0tcHJvZHVjdHMtY2hlY2tib3hlcycpIHx8ICQoJy5wZXdjX2dyb3VwXzQzODZfNDM5MCcpLmhhc0NsYXNzKCdwZXdjLWl0ZW0tcHJvZHVjdHMtY29sdW1uJykpewp2YXIgZmllbGRfdmFsdWVfMSA9IFtdOwokLmVhY2goICQoImlucHV0W25hbWU9J3Bld2NfZ3JvdXBfNDM4Nl80MzkwX2NoaWxkX3Byb2R1Y3RbXSddOmNoZWNrZWQiKSwgZnVuY3Rpb24oKXsKCgkJCQkJCQkJCQkJCWZpZWxkX3ZhbHVlXzEucHVzaCgkKHRoaXMpLnZhbCgpKTsKCgkJCQkJCQkJCQkJfSk7Cn0KaWYoJCgnLnBld2NfZ3JvdXBfNDM4Nl80MzkwJykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1pbWFnZS1zd2F0Y2gtY2hlY2tib3gnKSB8fCAkKCcucGV3Y19ncm91cF80Mzg2XzQzOTAnKS5oYXNDbGFzcygncGV3Yy1pdGVtLWNoZWNrYm94X2dyb3VwJykgKXsKdmFyIGZpZWxkX3ZhbHVlXzEgPSBbXTsKJC5lYWNoKCAkKCJpbnB1dFtuYW1lPSdwZXdjX2dyb3VwXzQzODZfNDM5MFtdJ106Y2hlY2tlZCIpLCBmdW5jdGlvbigpewoKCQkJCQkJCQkJCQkJZmllbGRfdmFsdWVfMS5wdXNoKCQodGhpcykudmFsKCkpOwoKCQkJCQkJCQkJCQl9KTsKfQppZiggJCggJy5wZXdjX2dyb3VwXzQzODZfNDM5MCcgKS5oYXNDbGFzcyggJ3Bld2MtaXRlbS11cGxvYWQnICkgKXsKZmllbGRfdmFsdWVfMSA9ICQoICcucGV3Y19ncm91cF80Mzg2XzQzOTAnICkuZmluZCggJy5wZXdjLW51bWJlci11cGxvYWRzJyApLnZhbCgpOwp9CmlmKCBjb25kaXRpb25fdmFsdWVfMSAhPSB1bmRlZmluZWQgKSB7CgoJCQkJCQkJCQkJCQljb25kaXRpb25fdmFsdWVfMSA9IGNvbmRpdGlvbl92YWx1ZV8xLnJlcGxhY2UoIC8nL2csICdfJyApOwoKCQkJCQkJCQkJCQkJY29uZGl0aW9uX3ZhbHVlXzEgPSBjb25kaXRpb25fdmFsdWVfMS5yZXBsYWNlKCAvIi9nLCAnXycgKTsKCgkJCQkJCQkJCQkJfQppZiggZmllbGRfdmFsdWVfMSAhPSB1bmRlZmluZWQgKSB7CgoJCQkJCQkJCQkJCQlmaWVsZF92YWx1ZV8xID0gZmllbGRfdmFsdWVfMS5yZXBsYWNlKCAvJy9nLCAnXycgKTsKCgkJCQkJCQkJCQkJCWZpZWxkX3ZhbHVlXzEgPSBmaWVsZF92YWx1ZV8xLnJlcGxhY2UoIC8iL2csICdfJyApOwoKCQkJCQkJCQkJCQl9CgoJCQkJCQkJCQkJCWlmKCBmaWVsZF92YWx1ZV8xID09ICdfX2NoZWNrZWRfXycgKSB7CgoJCQkJCQkJCQkJCQkvKiBJdCdzIGEgY2hlY2tib3ggKi8KCgkJCQkJCQkJCQkJCXZhciBjaGVja2VkID0gJCgnI3Bld2NfZ3JvdXBfNDM4Nl80MzkwJykucHJvcCgnY2hlY2tlZCcpOwoKCQkJCQkJCQkJCQkJaWYoIGNoZWNrZWQgPT0gdHJ1ZSApIHsKCgkJCQkJCQkJCQkJCQkvKiBUaGlzIGNvbmRpdGlvbiBpcyBtZXQgKi8KCgkJCQkJCQkJCQkJCQljb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDU2M1sxXSA9IDE7CgoJCQkJCQkJCQkJCQl9IGVsc2UgewoKCQkJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80NTYzWzFdID0gMDsKCgkJCQkJCQkJCQkJCX0KCgkJCQkJCQkJCQkJfSBlbHNlIGlmKCBmaWVsZF92YWx1ZV8xID09IGNvbmRpdGlvbl92YWx1ZV8xICkgewoKCQkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ1NjNbMV0gPSAxOwoKCQkJCQkJCQkJCQl9IGVsc2UgewoKCQkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ1NjNbMV0gPSAwOwoKCQkJCQkJCQkJCQl9CmlmKCBjb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDU2M1sxXSA9PSAwICYmIG1hdGNoX3Bld2NfZ3JvdXBfNDM4Nl80NTYzID09ICdhbGwnICkgewoKCQkJCQkJCQkJCQljb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDU2M1sxXSA9IDA7CgoJCQkJCQkJCQkJCS8qIHJldHVybiBjb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDU2MzsgKi8KCgkJCQkJCQkJCQl9CnBld2NfY2hlY2tfYWxsX2NvbmRpdGlvbnMoICdwZXdjX2dyb3VwXzQzODZfNDU2MycsIGNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80NTYzLCBhY3Rpb25fcGV3Y19ncm91cF80Mzg2XzQ1NjMsIG1hdGNoX3Bld2NfZ3JvdXBfNDM4Nl80NTYzICk7CnZhciBmaWVsZF92YWx1ZV8yID0gJCgnI3Bld2NfZ3JvdXBfNDM4Nl80MzkwJykudmFsKCk7CnZhciBjb25kaXRpb25fdmFsdWVfMiA9ICcxIEJydXNoJzsKaWYoICQoJy5wZXdjX2dyb3VwXzQzODZfNDM5MCcpLmhhc0NsYXNzKCdwZXdjLWl0ZW0tcmFkaW8nKSApewpmaWVsZF92YWx1ZV8yID0gJCgnLnBld2NfZ3JvdXBfNDM4Nl80MzkwIGlucHV0OnJhZGlvOmNoZWNrZWQnKS52YWwoKTsKaWYoIGZpZWxkX3ZhbHVlXzIgPT0gdW5kZWZpbmVkICl7CmZpZWxkX3ZhbHVlXzIgPSAnJzsKfQp9CmlmKCQoJy5wZXdjX2dyb3VwXzQzODZfNDM5MCcpLmhhc0NsYXNzKCdwZXdjLWl0ZW0tcHJvZHVjdHMtcmFkaW8nKSl7CmZpZWxkX3ZhbHVlXzIgPSAkKCcucGV3Y19ncm91cF80Mzg2XzQzOTAgaW5wdXQ6cmFkaW86Y2hlY2tlZCcpLnZhbCgpOwp9CmlmKCQoJy5wZXdjX2dyb3VwXzQzODZfNDM5MCcpLmhhc0NsYXNzKCdwZXdjLWl0ZW0tcHJvZHVjdHMtY2hlY2tib3hlcycpIHx8ICQoJy5wZXdjX2dyb3VwXzQzODZfNDM5MCcpLmhhc0NsYXNzKCdwZXdjLWl0ZW0tcHJvZHVjdHMtY29sdW1uJykpewp2YXIgZmllbGRfdmFsdWVfMiA9IFtdOwokLmVhY2goICQoImlucHV0W25hbWU9J3Bld2NfZ3JvdXBfNDM4Nl80MzkwX2NoaWxkX3Byb2R1Y3RbXSddOmNoZWNrZWQiKSwgZnVuY3Rpb24oKXsKCgkJCQkJCQkJCQkJCWZpZWxkX3ZhbHVlXzIucHVzaCgkKHRoaXMpLnZhbCgpKTsKCgkJCQkJCQkJCQkJfSk7Cn0KaWYoJCgnLnBld2NfZ3JvdXBfNDM4Nl80MzkwJykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1pbWFnZS1zd2F0Y2gtY2hlY2tib3gnKSB8fCAkKCcucGV3Y19ncm91cF80Mzg2XzQzOTAnKS5oYXNDbGFzcygncGV3Yy1pdGVtLWNoZWNrYm94X2dyb3VwJykgKXsKdmFyIGZpZWxkX3ZhbHVlXzIgPSBbXTsKJC5lYWNoKCAkKCJpbnB1dFtuYW1lPSdwZXdjX2dyb3VwXzQzODZfNDM5MFtdJ106Y2hlY2tlZCIpLCBmdW5jdGlvbigpewoKCQkJCQkJCQkJCQkJZmllbGRfdmFsdWVfMi5wdXNoKCQodGhpcykudmFsKCkpOwoKCQkJCQkJCQkJCQl9KTsKfQppZiggJCggJy5wZXdjX2dyb3VwXzQzODZfNDM5MCcgKS5oYXNDbGFzcyggJ3Bld2MtaXRlbS11cGxvYWQnICkgKXsKZmllbGRfdmFsdWVfMiA9ICQoICcucGV3Y19ncm91cF80Mzg2XzQzOTAnICkuZmluZCggJy5wZXdjLW51bWJlci11cGxvYWRzJyApLnZhbCgpOwp9CmlmKCBjb25kaXRpb25fdmFsdWVfMiAhPSB1bmRlZmluZWQgKSB7CgoJCQkJCQkJCQkJCQljb25kaXRpb25fdmFsdWVfMiA9IGNvbmRpdGlvbl92YWx1ZV8yLnJlcGxhY2UoIC8nL2csICdfJyApOwoKCQkJCQkJCQkJCQkJY29uZGl0aW9uX3ZhbHVlXzIgPSBjb25kaXRpb25fdmFsdWVfMi5yZXBsYWNlKCAvIi9nLCAnXycgKTsKCgkJCQkJCQkJCQkJfQppZiggZmllbGRfdmFsdWVfMiAhPSB1bmRlZmluZWQgKSB7CgoJCQkJCQkJCQkJCQlmaWVsZF92YWx1ZV8yID0gZmllbGRfdmFsdWVfMi5yZXBsYWNlKCAvJy9nLCAnXycgKTsKCgkJCQkJCQkJCQkJCWZpZWxkX3ZhbHVlXzIgPSBmaWVsZF92YWx1ZV8yLnJlcGxhY2UoIC8iL2csICdfJyApOwoKCQkJCQkJCQkJCQl9CgoJCQkJCQkJCQkJCWlmKCBmaWVsZF92YWx1ZV8yID09ICdfX2NoZWNrZWRfXycgKSB7CgoJCQkJCQkJCQkJCQkvKiBJdCdzIGEgY2hlY2tib3ggKi8KCgkJCQkJCQkJCQkJCXZhciBjaGVja2VkID0gJCgnI3Bld2NfZ3JvdXBfNDM4Nl80MzkwJykucHJvcCgnY2hlY2tlZCcpOwoKCQkJCQkJCQkJCQkJaWYoIGNoZWNrZWQgPT0gdHJ1ZSApIHsKCgkJCQkJCQkJCQkJCQkvKiBUaGlzIGNvbmRpdGlvbiBpcyBtZXQgKi8KCgkJCQkJCQkJCQkJCQljb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDU2M1syXSA9IDE7CgoJCQkJCQkJCQkJCQl9IGVsc2UgewoKCQkJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80NTYzWzJdID0gMDsKCgkJCQkJCQkJCQkJCX0KCgkJCQkJCQkJCQkJfSBlbHNlIGlmKCBmaWVsZF92YWx1ZV8yID09IGNvbmRpdGlvbl92YWx1ZV8yICkgewoKCQkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ1NjNbMl0gPSAxOwoKCQkJCQkJCQkJCQl9IGVsc2UgewoKCQkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ1NjNbMl0gPSAwOwoKCQkJCQkJCQkJCQl9CmlmKCBjb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDU2M1syXSA9PSAwICYmIG1hdGNoX3Bld2NfZ3JvdXBfNDM4Nl80NTYzID09ICdhbGwnICkgewoKCQkJCQkJCQkJCQljb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDU2M1syXSA9IDA7CgoJCQkJCQkJCQkJCS8qIHJldHVybiBjb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDU2MzsgKi8KCgkJCQkJCQkJCQl9CnBld2NfY2hlY2tfYWxsX2NvbmRpdGlvbnMoICdwZXdjX2dyb3VwXzQzODZfNDU2MycsIGNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80NTYzLCBhY3Rpb25fcGV3Y19ncm91cF80Mzg2XzQ1NjMsIG1hdGNoX3Bld2NfZ3JvdXBfNDM4Nl80NTYzICk7CnJldHVybiBjb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDU2MzsKfQokKCAnYm9keScgKS5vbiggJ2NoYW5nZSB1cGRhdGUga2V5dXAgcGFzdGUgY2xpY2snLCAnI3Bld2NfZ3JvdXBfNDM4Nl80MzkwLCAucGV3Y19ncm91cF80Mzg2XzQzOTAgLnBld2MtcmFkaW8tZm9ybS1maWVsZCcsIGZ1bmN0aW9uKCBlICkgewoKCQkJCQkJCQkJCQlwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNDU2MyggcGFyc2VGbG9hdCggJCh0aGlzKS52YWwoKSApICk7CgoJCQkJCQkJCQkJfSk7CiQoICdib2R5JyApLm9uKCAnY2FsY3VsYXRpb25fZmllbGRfdXBkYXRlZCcsIGZ1bmN0aW9uKCkgewoKCQkJCQkJCQkJCQlwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNDU2MyggcGFyc2VGbG9hdCggJCh0aGlzKS52YWwoKSApICk7CgoJCQkJCQkJCQkJfSk7CiQoJ2JvZHknKS5vbignY2hhbmdlJywnLnBld2NfZ3JvdXBfNDM4Nl80MzkwIC5wZXdjLWNoZWNrYm94LWZvcm0tZmllbGQnLGZ1bmN0aW9uKCl7CgoJCQkJCQkJCQkJCXBld2NfY2hlY2tfcnVsZXNfZm9yX3Bld2NfZ3JvdXBfNDM4Nl80NTYzKCAkKHRoaXMpLnZhbCgpICk7CgoJCQkJCQkJCQkJfSk7CiQoICdib2R5JyApLm9uKCAnY2hhbmdlIHVwZGF0ZSBrZXl1cCBwYXN0ZSBjbGljaycsICcjcGV3Y19ncm91cF80Mzg2XzQzOTAsIC5wZXdjX2dyb3VwXzQzODZfNDM5MCAucGV3Yy1yYWRpby1mb3JtLWZpZWxkJywgZnVuY3Rpb24oIGUgKSB7CgoJCQkJCQkJCQkJCXBld2NfY2hlY2tfcnVsZXNfZm9yX3Bld2NfZ3JvdXBfNDM4Nl80NTYzKCBwYXJzZUZsb2F0KCAkKHRoaXMpLnZhbCgpICkgKTsKCgkJCQkJCQkJCQl9KTsKJCggJ2JvZHknICkub24oICdjYWxjdWxhdGlvbl9maWVsZF91cGRhdGVkJywgZnVuY3Rpb24oKSB7CgoJCQkJCQkJCQkJCXBld2NfY2hlY2tfcnVsZXNfZm9yX3Bld2NfZ3JvdXBfNDM4Nl80NTYzKCBwYXJzZUZsb2F0KCAkKHRoaXMpLnZhbCgpICkgKTsKCgkJCQkJCQkJCQl9KTsKJCgnYm9keScpLm9uKCdjaGFuZ2UnLCcucGV3Y19ncm91cF80Mzg2XzQzOTAgLnBld2MtY2hlY2tib3gtZm9ybS1maWVsZCcsZnVuY3Rpb24oKXsKCgkJCQkJCQkJCQkJcGV3Y19jaGVja19ydWxlc19mb3JfcGV3Y19ncm91cF80Mzg2XzQ1NjMoICQodGhpcykudmFsKCkgKTsKCgkJCQkJCQkJCQl9KTsKJCggJ2JvZHknICkub24oICdjaGFuZ2UgdXBkYXRlIGtleXVwIHBhc3RlIGNsaWNrJywgJyNwZXdjX2dyb3VwXzQzODZfNDM5MCwgLnBld2NfZ3JvdXBfNDM4Nl80MzkwIC5wZXdjLXJhZGlvLWZvcm0tZmllbGQnLCBmdW5jdGlvbiggZSApIHsKCgkJCQkJCQkJCQkJcGV3Y19jaGVja19ydWxlc19mb3JfcGV3Y19ncm91cF80Mzg2XzQ1NjMoIHBhcnNlRmxvYXQoICQodGhpcykudmFsKCkgKSApOwoKCQkJCQkJCQkJCX0pOwokKCAnYm9keScgKS5vbiggJ2NhbGN1bGF0aW9uX2ZpZWxkX3VwZGF0ZWQnLCBmdW5jdGlvbigpIHsKCgkJCQkJCQkJCQkJcGV3Y19jaGVja19ydWxlc19mb3JfcGV3Y19ncm91cF80Mzg2XzQ1NjMoIHBhcnNlRmxvYXQoICQodGhpcykudmFsKCkgKSApOwoKCQkJCQkJCQkJCX0pOwokKCdib2R5Jykub24oJ2NoYW5nZScsJy5wZXdjX2dyb3VwXzQzODZfNDM5MCAucGV3Yy1jaGVja2JveC1mb3JtLWZpZWxkJyxmdW5jdGlvbigpewoKCQkJCQkJCQkJCQlwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNDU2MyggJCh0aGlzKS52YWwoKSApOwoKCQkJCQkJCQkJCX0pOwp2YXIgY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ0MzUgPSBbMCwwXTsKZnVuY3Rpb24gcGV3Y19jaGVja19ydWxlc19mb3JfcGV3Y19ncm91cF80Mzg2XzQ0MzUoIGZpZWxkX3ZhbHVlICkgewp2YXIgYWN0aW9uX3Bld2NfZ3JvdXBfNDM4Nl80NDM1ID0gJ2hpZGUnOwp2YXIgbWF0Y2hfcGV3Y19ncm91cF80Mzg2XzQ0MzUgPSAnYW55JzsKdmFyIGZpZWxkX3ZhbHVlXzAgPSAkKCcjcGV3Y19ncm91cF80Mzg2XzQ0MzQnKS52YWwoKTsKdmFyIGNvbmRpdGlvbl92YWx1ZV8wID0gJyc7CmlmKCAkKCcucGV3Y19ncm91cF80Mzg2XzQ0MzQnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXJhZGlvJykgKXsKZmllbGRfdmFsdWVfMCA9ICQoJy5wZXdjX2dyb3VwXzQzODZfNDQzNCBpbnB1dDpyYWRpbzpjaGVja2VkJykudmFsKCk7CmlmKCBmaWVsZF92YWx1ZV8wID09IHVuZGVmaW5lZCApewpmaWVsZF92YWx1ZV8wID0gJyc7Cn0KfQppZigkKCcucGV3Y19ncm91cF80Mzg2XzQ0MzQnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLXJhZGlvJykpewpmaWVsZF92YWx1ZV8wID0gJCgnLnBld2NfZ3JvdXBfNDM4Nl80NDM0IGlucHV0OnJhZGlvOmNoZWNrZWQnKS52YWwoKTsKfQppZigkKCcucGV3Y19ncm91cF80Mzg2XzQ0MzQnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLWNoZWNrYm94ZXMnKSB8fCAkKCcucGV3Y19ncm91cF80Mzg2XzQ0MzQnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLWNvbHVtbicpKXsKdmFyIGZpZWxkX3ZhbHVlXzAgPSBbXTsKJC5lYWNoKCAkKCJpbnB1dFtuYW1lPSdwZXdjX2dyb3VwXzQzODZfNDQzNF9jaGlsZF9wcm9kdWN0W10nXTpjaGVja2VkIiksIGZ1bmN0aW9uKCl7CgoJCQkJCQkJCQkJCQlmaWVsZF92YWx1ZV8wLnB1c2goJCh0aGlzKS52YWwoKSk7CgoJCQkJCQkJCQkJCX0pOwp9CmlmKCQoJy5wZXdjX2dyb3VwXzQzODZfNDQzNCcpLmhhc0NsYXNzKCdwZXdjLWl0ZW0taW1hZ2Utc3dhdGNoLWNoZWNrYm94JykgfHwgJCgnLnBld2NfZ3JvdXBfNDM4Nl80NDM0JykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1jaGVja2JveF9ncm91cCcpICl7CnZhciBmaWVsZF92YWx1ZV8wID0gW107CiQuZWFjaCggJCgiaW5wdXRbbmFtZT0ncGV3Y19ncm91cF80Mzg2XzQ0MzRbXSddOmNoZWNrZWQiKSwgZnVuY3Rpb24oKXsKCgkJCQkJCQkJCQkJCWZpZWxkX3ZhbHVlXzAucHVzaCgkKHRoaXMpLnZhbCgpKTsKCgkJCQkJCQkJCQkJfSk7Cn0KaWYoICQoICcucGV3Y19ncm91cF80Mzg2XzQ0MzQnICkuaGFzQ2xhc3MoICdwZXdjLWl0ZW0tdXBsb2FkJyApICl7CmZpZWxkX3ZhbHVlXzAgPSAkKCAnLnBld2NfZ3JvdXBfNDM4Nl80NDM0JyApLmZpbmQoICcucGV3Yy1udW1iZXItdXBsb2FkcycgKS52YWwoKTsKfQppZiggY29uZGl0aW9uX3ZhbHVlXzAgIT0gdW5kZWZpbmVkICkgewoKCQkJCQkJCQkJCQkJY29uZGl0aW9uX3ZhbHVlXzAgPSBjb25kaXRpb25fdmFsdWVfMC5yZXBsYWNlKCAvJy9nLCAnXycgKTsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbl92YWx1ZV8wID0gY29uZGl0aW9uX3ZhbHVlXzAucmVwbGFjZSggLyIvZywgJ18nICk7CgoJCQkJCQkJCQkJCX0KaWYoIGZpZWxkX3ZhbHVlXzAgIT0gdW5kZWZpbmVkICkgewoKCQkJCQkJCQkJCQkJZmllbGRfdmFsdWVfMCA9IGZpZWxkX3ZhbHVlXzAucmVwbGFjZSggLycvZywgJ18nICk7CgoJCQkJCQkJCQkJCQlmaWVsZF92YWx1ZV8wID0gZmllbGRfdmFsdWVfMC5yZXBsYWNlKCAvIi9nLCAnXycgKTsKCgkJCQkJCQkJCQkJfQoKCQkJCQkJCQkJCQlpZiggZmllbGRfdmFsdWVfMCA9PSAnX19jaGVja2VkX18nICkgewoKCQkJCQkJCQkJCQkJLyogSXQncyBhIGNoZWNrYm94ICovCgoJCQkJCQkJCQkJCQl2YXIgY2hlY2tlZCA9ICQoJyNwZXdjX2dyb3VwXzQzODZfNDQzNCcpLnByb3AoJ2NoZWNrZWQnKTsKCgkJCQkJCQkJCQkJCWlmKCBjaGVja2VkID09IHRydWUgKSB7CgoJCQkJCQkJCQkJCQkJLyogVGhpcyBjb25kaXRpb24gaXMgbWV0ICovCgoJCQkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ0MzVbMF0gPSAxOwoKCQkJCQkJCQkJCQkJfSBlbHNlIHsKCgkJCQkJCQkJCQkJCQljb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDQzNVswXSA9IDA7CgoJCQkJCQkJCQkJCQl9CgoJCQkJCQkJCQkJCX0gZWxzZSBpZiggZmllbGRfdmFsdWVfMCA9PSBjb25kaXRpb25fdmFsdWVfMCApIHsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80NDM1WzBdID0gMTsKCgkJCQkJCQkJCQkJfSBlbHNlIHsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80NDM1WzBdID0gMDsKCgkJCQkJCQkJCQkJfQppZiggY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ0MzVbMF0gPT0gMCAmJiBtYXRjaF9wZXdjX2dyb3VwXzQzODZfNDQzNSA9PSAnYWxsJyApIHsKCgkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ0MzVbMF0gPSAwOwoKCQkJCQkJCQkJCQkvKiByZXR1cm4gY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ0MzU7ICovCgoJCQkJCQkJCQkJfQpwZXdjX2NoZWNrX2FsbF9jb25kaXRpb25zKCAncGV3Y19ncm91cF80Mzg2XzQ0MzUnLCBjb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDQzNSwgYWN0aW9uX3Bld2NfZ3JvdXBfNDM4Nl80NDM1LCBtYXRjaF9wZXdjX2dyb3VwXzQzODZfNDQzNSApOwp2YXIgZmllbGRfdmFsdWVfMSA9ICQoJyNwZXdjX2dyb3VwXzQzODZfNDQzNCcpLnZhbCgpOwp2YXIgY29uZGl0aW9uX3ZhbHVlXzEgPSAnTm8nOwppZiggJCgnLnBld2NfZ3JvdXBfNDM4Nl80NDM0JykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1yYWRpbycpICl7CmZpZWxkX3ZhbHVlXzEgPSAkKCcucGV3Y19ncm91cF80Mzg2XzQ0MzQgaW5wdXQ6cmFkaW86Y2hlY2tlZCcpLnZhbCgpOwppZiggZmllbGRfdmFsdWVfMSA9PSB1bmRlZmluZWQgKXsKZmllbGRfdmFsdWVfMSA9ICcnOwp9Cn0KaWYoJCgnLnBld2NfZ3JvdXBfNDM4Nl80NDM0JykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1wcm9kdWN0cy1yYWRpbycpKXsKZmllbGRfdmFsdWVfMSA9ICQoJy5wZXdjX2dyb3VwXzQzODZfNDQzNCBpbnB1dDpyYWRpbzpjaGVja2VkJykudmFsKCk7Cn0KaWYoJCgnLnBld2NfZ3JvdXBfNDM4Nl80NDM0JykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1wcm9kdWN0cy1jaGVja2JveGVzJykgfHwgJCgnLnBld2NfZ3JvdXBfNDM4Nl80NDM0JykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1wcm9kdWN0cy1jb2x1bW4nKSl7CnZhciBmaWVsZF92YWx1ZV8xID0gW107CiQuZWFjaCggJCgiaW5wdXRbbmFtZT0ncGV3Y19ncm91cF80Mzg2XzQ0MzRfY2hpbGRfcHJvZHVjdFtdJ106Y2hlY2tlZCIpLCBmdW5jdGlvbigpewoKCQkJCQkJCQkJCQkJZmllbGRfdmFsdWVfMS5wdXNoKCQodGhpcykudmFsKCkpOwoKCQkJCQkJCQkJCQl9KTsKfQppZigkKCcucGV3Y19ncm91cF80Mzg2XzQ0MzQnKS5oYXNDbGFzcygncGV3Yy1pdGVtLWltYWdlLXN3YXRjaC1jaGVja2JveCcpIHx8ICQoJy5wZXdjX2dyb3VwXzQzODZfNDQzNCcpLmhhc0NsYXNzKCdwZXdjLWl0ZW0tY2hlY2tib3hfZ3JvdXAnKSApewp2YXIgZmllbGRfdmFsdWVfMSA9IFtdOwokLmVhY2goICQoImlucHV0W25hbWU9J3Bld2NfZ3JvdXBfNDM4Nl80NDM0W10nXTpjaGVja2VkIiksIGZ1bmN0aW9uKCl7CgoJCQkJCQkJCQkJCQlmaWVsZF92YWx1ZV8xLnB1c2goJCh0aGlzKS52YWwoKSk7CgoJCQkJCQkJCQkJCX0pOwp9CmlmKCAkKCAnLnBld2NfZ3JvdXBfNDM4Nl80NDM0JyApLmhhc0NsYXNzKCAncGV3Yy1pdGVtLXVwbG9hZCcgKSApewpmaWVsZF92YWx1ZV8xID0gJCggJy5wZXdjX2dyb3VwXzQzODZfNDQzNCcgKS5maW5kKCAnLnBld2MtbnVtYmVyLXVwbG9hZHMnICkudmFsKCk7Cn0KaWYoIGNvbmRpdGlvbl92YWx1ZV8xICE9IHVuZGVmaW5lZCApIHsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbl92YWx1ZV8xID0gY29uZGl0aW9uX3ZhbHVlXzEucmVwbGFjZSggLycvZywgJ18nICk7CgoJCQkJCQkJCQkJCQljb25kaXRpb25fdmFsdWVfMSA9IGNvbmRpdGlvbl92YWx1ZV8xLnJlcGxhY2UoIC8iL2csICdfJyApOwoKCQkJCQkJCQkJCQl9CmlmKCBmaWVsZF92YWx1ZV8xICE9IHVuZGVmaW5lZCApIHsKCgkJCQkJCQkJCQkJCWZpZWxkX3ZhbHVlXzEgPSBmaWVsZF92YWx1ZV8xLnJlcGxhY2UoIC8nL2csICdfJyApOwoKCQkJCQkJCQkJCQkJZmllbGRfdmFsdWVfMSA9IGZpZWxkX3ZhbHVlXzEucmVwbGFjZSggLyIvZywgJ18nICk7CgoJCQkJCQkJCQkJCX0KCgkJCQkJCQkJCQkJaWYoIGZpZWxkX3ZhbHVlXzEgPT0gJ19fY2hlY2tlZF9fJyApIHsKCgkJCQkJCQkJCQkJCS8qIEl0J3MgYSBjaGVja2JveCAqLwoKCQkJCQkJCQkJCQkJdmFyIGNoZWNrZWQgPSAkKCcjcGV3Y19ncm91cF80Mzg2XzQ0MzQnKS5wcm9wKCdjaGVja2VkJyk7CgoJCQkJCQkJCQkJCQlpZiggY2hlY2tlZCA9PSB0cnVlICkgewoKCQkJCQkJCQkJCQkJCS8qIFRoaXMgY29uZGl0aW9uIGlzIG1ldCAqLwoKCQkJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80NDM1WzFdID0gMTsKCgkJCQkJCQkJCQkJCX0gZWxzZSB7CgoJCQkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ0MzVbMV0gPSAwOwoKCQkJCQkJCQkJCQkJfQoKCQkJCQkJCQkJCQl9IGVsc2UgaWYoIGZpZWxkX3ZhbHVlXzEgPT0gY29uZGl0aW9uX3ZhbHVlXzEgKSB7CgoJCQkJCQkJCQkJCQljb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDQzNVsxXSA9IDE7CgoJCQkJCQkJCQkJCX0gZWxzZSB7CgoJCQkJCQkJCQkJCQljb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDQzNVsxXSA9IDA7CgoJCQkJCQkJCQkJCX0KaWYoIGNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80NDM1WzFdID09IDAgJiYgbWF0Y2hfcGV3Y19ncm91cF80Mzg2XzQ0MzUgPT0gJ2FsbCcgKSB7CgoJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80NDM1WzFdID0gMDsKCgkJCQkJCQkJCQkJLyogcmV0dXJuIGNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80NDM1OyAqLwoKCQkJCQkJCQkJCX0KcGV3Y19jaGVja19hbGxfY29uZGl0aW9ucyggJ3Bld2NfZ3JvdXBfNDM4Nl80NDM1JywgY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQ0MzUsIGFjdGlvbl9wZXdjX2dyb3VwXzQzODZfNDQzNSwgbWF0Y2hfcGV3Y19ncm91cF80Mzg2XzQ0MzUgKTsKcmV0dXJuIGNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80NDM1Owp9CiQoICdib2R5JyApLm9uKCAnY2hhbmdlIHVwZGF0ZSBrZXl1cCBwYXN0ZSBjbGljaycsICcjcGV3Y19ncm91cF80Mzg2XzQ0MzQsIC5wZXdjX2dyb3VwXzQzODZfNDQzNCAucGV3Yy1yYWRpby1mb3JtLWZpZWxkJywgZnVuY3Rpb24oIGUgKSB7CgoJCQkJCQkJCQkJCXBld2NfY2hlY2tfcnVsZXNfZm9yX3Bld2NfZ3JvdXBfNDM4Nl80NDM1KCBwYXJzZUZsb2F0KCAkKHRoaXMpLnZhbCgpICkgKTsKCgkJCQkJCQkJCQl9KTsKJCggJ2JvZHknICkub24oICdjYWxjdWxhdGlvbl9maWVsZF91cGRhdGVkJywgZnVuY3Rpb24oKSB7CgoJCQkJCQkJCQkJCXBld2NfY2hlY2tfcnVsZXNfZm9yX3Bld2NfZ3JvdXBfNDM4Nl80NDM1KCBwYXJzZUZsb2F0KCAkKHRoaXMpLnZhbCgpICkgKTsKCgkJCQkJCQkJCQl9KTsKJCgnYm9keScpLm9uKCdjaGFuZ2UnLCcucGV3Y19ncm91cF80Mzg2XzQ0MzQgLnBld2MtY2hlY2tib3gtZm9ybS1maWVsZCcsZnVuY3Rpb24oKXsKCgkJCQkJCQkJCQkJcGV3Y19jaGVja19ydWxlc19mb3JfcGV3Y19ncm91cF80Mzg2XzQ0MzUoICQodGhpcykudmFsKCkgKTsKCgkJCQkJCQkJCQl9KTsKJCggJ2JvZHknICkub24oICdjaGFuZ2UgdXBkYXRlIGtleXVwIHBhc3RlIGNsaWNrJywgJyNwZXdjX2dyb3VwXzQzODZfNDQzNCwgLnBld2NfZ3JvdXBfNDM4Nl80NDM0IC5wZXdjLXJhZGlvLWZvcm0tZmllbGQnLCBmdW5jdGlvbiggZSApIHsKCgkJCQkJCQkJCQkJcGV3Y19jaGVja19ydWxlc19mb3JfcGV3Y19ncm91cF80Mzg2XzQ0MzUoIHBhcnNlRmxvYXQoICQodGhpcykudmFsKCkgKSApOwoKCQkJCQkJCQkJCX0pOwokKCAnYm9keScgKS5vbiggJ2NhbGN1bGF0aW9uX2ZpZWxkX3VwZGF0ZWQnLCBmdW5jdGlvbigpIHsKCgkJCQkJCQkJCQkJcGV3Y19jaGVja19ydWxlc19mb3JfcGV3Y19ncm91cF80Mzg2XzQ0MzUoIHBhcnNlRmxvYXQoICQodGhpcykudmFsKCkgKSApOwoKCQkJCQkJCQkJCX0pOwokKCdib2R5Jykub24oJ2NoYW5nZScsJy5wZXdjX2dyb3VwXzQzODZfNDQzNCAucGV3Yy1jaGVja2JveC1mb3JtLWZpZWxkJyxmdW5jdGlvbigpewoKCQkJCQkJCQkJCQlwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNDQzNSggJCh0aGlzKS52YWwoKSApOwoKCQkJCQkJCQkJCX0pOwp2YXIgY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQzODkgPSBbMCwwXTsKZnVuY3Rpb24gcGV3Y19jaGVja19ydWxlc19mb3JfcGV3Y19ncm91cF80Mzg2XzQzODkoIGZpZWxkX3ZhbHVlICkgewp2YXIgYWN0aW9uX3Bld2NfZ3JvdXBfNDM4Nl80Mzg5ID0gJ2hpZGUnOwp2YXIgbWF0Y2hfcGV3Y19ncm91cF80Mzg2XzQzODkgPSAnYW55JzsKdmFyIGZpZWxkX3ZhbHVlXzAgPSAkKCcjcGV3Y19ncm91cF80Mzg2XzQzODcnKS52YWwoKTsKdmFyIGNvbmRpdGlvbl92YWx1ZV8wID0gJyc7CmlmKCAkKCcucGV3Y19ncm91cF80Mzg2XzQzODcnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXJhZGlvJykgKXsKZmllbGRfdmFsdWVfMCA9ICQoJy5wZXdjX2dyb3VwXzQzODZfNDM4NyBpbnB1dDpyYWRpbzpjaGVja2VkJykudmFsKCk7CmlmKCBmaWVsZF92YWx1ZV8wID09IHVuZGVmaW5lZCApewpmaWVsZF92YWx1ZV8wID0gJyc7Cn0KfQppZigkKCcucGV3Y19ncm91cF80Mzg2XzQzODcnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLXJhZGlvJykpewpmaWVsZF92YWx1ZV8wID0gJCgnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3IGlucHV0OnJhZGlvOmNoZWNrZWQnKS52YWwoKTsKfQppZigkKCcucGV3Y19ncm91cF80Mzg2XzQzODcnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLWNoZWNrYm94ZXMnKSB8fCAkKCcucGV3Y19ncm91cF80Mzg2XzQzODcnKS5oYXNDbGFzcygncGV3Yy1pdGVtLXByb2R1Y3RzLWNvbHVtbicpKXsKdmFyIGZpZWxkX3ZhbHVlXzAgPSBbXTsKJC5lYWNoKCAkKCJpbnB1dFtuYW1lPSdwZXdjX2dyb3VwXzQzODZfNDM4N19jaGlsZF9wcm9kdWN0W10nXTpjaGVja2VkIiksIGZ1bmN0aW9uKCl7CgoJCQkJCQkJCQkJCQlmaWVsZF92YWx1ZV8wLnB1c2goJCh0aGlzKS52YWwoKSk7CgoJCQkJCQkJCQkJCX0pOwp9CmlmKCQoJy5wZXdjX2dyb3VwXzQzODZfNDM4NycpLmhhc0NsYXNzKCdwZXdjLWl0ZW0taW1hZ2Utc3dhdGNoLWNoZWNrYm94JykgfHwgJCgnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3JykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1jaGVja2JveF9ncm91cCcpICl7CnZhciBmaWVsZF92YWx1ZV8wID0gW107CiQuZWFjaCggJCgiaW5wdXRbbmFtZT0ncGV3Y19ncm91cF80Mzg2XzQzODdbXSddOmNoZWNrZWQiKSwgZnVuY3Rpb24oKXsKCgkJCQkJCQkJCQkJCWZpZWxkX3ZhbHVlXzAucHVzaCgkKHRoaXMpLnZhbCgpKTsKCgkJCQkJCQkJCQkJfSk7Cn0KaWYoICQoICcucGV3Y19ncm91cF80Mzg2XzQzODcnICkuaGFzQ2xhc3MoICdwZXdjLWl0ZW0tdXBsb2FkJyApICl7CmZpZWxkX3ZhbHVlXzAgPSAkKCAnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3JyApLmZpbmQoICcucGV3Yy1udW1iZXItdXBsb2FkcycgKS52YWwoKTsKfQppZiggY29uZGl0aW9uX3ZhbHVlXzAgIT0gdW5kZWZpbmVkICkgewoKCQkJCQkJCQkJCQkJY29uZGl0aW9uX3ZhbHVlXzAgPSBjb25kaXRpb25fdmFsdWVfMC5yZXBsYWNlKCAvJy9nLCAnXycgKTsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbl92YWx1ZV8wID0gY29uZGl0aW9uX3ZhbHVlXzAucmVwbGFjZSggLyIvZywgJ18nICk7CgoJCQkJCQkJCQkJCX0KaWYoIGZpZWxkX3ZhbHVlXzAgIT0gdW5kZWZpbmVkICkgewoKCQkJCQkJCQkJCQkJZmllbGRfdmFsdWVfMCA9IGZpZWxkX3ZhbHVlXzAucmVwbGFjZSggLycvZywgJ18nICk7CgoJCQkJCQkJCQkJCQlmaWVsZF92YWx1ZV8wID0gZmllbGRfdmFsdWVfMC5yZXBsYWNlKCAvIi9nLCAnXycgKTsKCgkJCQkJCQkJCQkJfQoKCQkJCQkJCQkJCQlpZiggZmllbGRfdmFsdWVfMCA9PSAnX19jaGVja2VkX18nICkgewoKCQkJCQkJCQkJCQkJLyogSXQncyBhIGNoZWNrYm94ICovCgoJCQkJCQkJCQkJCQl2YXIgY2hlY2tlZCA9ICQoJyNwZXdjX2dyb3VwXzQzODZfNDM4NycpLnByb3AoJ2NoZWNrZWQnKTsKCgkJCQkJCQkJCQkJCWlmKCBjaGVja2VkID09IHRydWUgKSB7CgoJCQkJCQkJCQkJCQkJLyogVGhpcyBjb25kaXRpb24gaXMgbWV0ICovCgoJCQkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQzODlbMF0gPSAxOwoKCQkJCQkJCQkJCQkJfSBlbHNlIHsKCgkJCQkJCQkJCQkJCQljb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDM4OVswXSA9IDA7CgoJCQkJCQkJCQkJCQl9CgoJCQkJCQkJCQkJCX0gZWxzZSBpZiggZmllbGRfdmFsdWVfMCA9PSBjb25kaXRpb25fdmFsdWVfMCApIHsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80Mzg5WzBdID0gMTsKCgkJCQkJCQkJCQkJfSBlbHNlIHsKCgkJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80Mzg5WzBdID0gMDsKCgkJCQkJCQkJCQkJfQppZiggY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQzODlbMF0gPT0gMCAmJiBtYXRjaF9wZXdjX2dyb3VwXzQzODZfNDM4OSA9PSAnYWxsJyApIHsKCgkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQzODlbMF0gPSAwOwoKCQkJCQkJCQkJCQkvKiByZXR1cm4gY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQzODk7ICovCgoJCQkJCQkJCQkJfQpwZXdjX2NoZWNrX2FsbF9jb25kaXRpb25zKCAncGV3Y19ncm91cF80Mzg2XzQzODknLCBjb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDM4OSwgYWN0aW9uX3Bld2NfZ3JvdXBfNDM4Nl80Mzg5LCBtYXRjaF9wZXdjX2dyb3VwXzQzODZfNDM4OSApOwp2YXIgZmllbGRfdmFsdWVfMSA9ICQoJyNwZXdjX2dyb3VwXzQzODZfNDM4NycpLnZhbCgpOwp2YXIgY29uZGl0aW9uX3ZhbHVlXzEgPSAnJzsKaWYoICQoJy5wZXdjX2dyb3VwXzQzODZfNDM4NycpLmhhc0NsYXNzKCdwZXdjLWl0ZW0tcmFkaW8nKSApewpmaWVsZF92YWx1ZV8xID0gJCgnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3IGlucHV0OnJhZGlvOmNoZWNrZWQnKS52YWwoKTsKaWYoIGZpZWxkX3ZhbHVlXzEgPT0gdW5kZWZpbmVkICl7CmZpZWxkX3ZhbHVlXzEgPSAnJzsKfQp9CmlmKCQoJy5wZXdjX2dyb3VwXzQzODZfNDM4NycpLmhhc0NsYXNzKCdwZXdjLWl0ZW0tcHJvZHVjdHMtcmFkaW8nKSl7CmZpZWxkX3ZhbHVlXzEgPSAkKCcucGV3Y19ncm91cF80Mzg2XzQzODcgaW5wdXQ6cmFkaW86Y2hlY2tlZCcpLnZhbCgpOwp9CmlmKCQoJy5wZXdjX2dyb3VwXzQzODZfNDM4NycpLmhhc0NsYXNzKCdwZXdjLWl0ZW0tcHJvZHVjdHMtY2hlY2tib3hlcycpIHx8ICQoJy5wZXdjX2dyb3VwXzQzODZfNDM4NycpLmhhc0NsYXNzKCdwZXdjLWl0ZW0tcHJvZHVjdHMtY29sdW1uJykpewp2YXIgZmllbGRfdmFsdWVfMSA9IFtdOwokLmVhY2goICQoImlucHV0W25hbWU9J3Bld2NfZ3JvdXBfNDM4Nl80Mzg3X2NoaWxkX3Byb2R1Y3RbXSddOmNoZWNrZWQiKSwgZnVuY3Rpb24oKXsKCgkJCQkJCQkJCQkJCWZpZWxkX3ZhbHVlXzEucHVzaCgkKHRoaXMpLnZhbCgpKTsKCgkJCQkJCQkJCQkJfSk7Cn0KaWYoJCgnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3JykuaGFzQ2xhc3MoJ3Bld2MtaXRlbS1pbWFnZS1zd2F0Y2gtY2hlY2tib3gnKSB8fCAkKCcucGV3Y19ncm91cF80Mzg2XzQzODcnKS5oYXNDbGFzcygncGV3Yy1pdGVtLWNoZWNrYm94X2dyb3VwJykgKXsKdmFyIGZpZWxkX3ZhbHVlXzEgPSBbXTsKJC5lYWNoKCAkKCJpbnB1dFtuYW1lPSdwZXdjX2dyb3VwXzQzODZfNDM4N1tdJ106Y2hlY2tlZCIpLCBmdW5jdGlvbigpewoKCQkJCQkJCQkJCQkJZmllbGRfdmFsdWVfMS5wdXNoKCQodGhpcykudmFsKCkpOwoKCQkJCQkJCQkJCQl9KTsKfQppZiggJCggJy5wZXdjX2dyb3VwXzQzODZfNDM4NycgKS5oYXNDbGFzcyggJ3Bld2MtaXRlbS11cGxvYWQnICkgKXsKZmllbGRfdmFsdWVfMSA9ICQoICcucGV3Y19ncm91cF80Mzg2XzQzODcnICkuZmluZCggJy5wZXdjLW51bWJlci11cGxvYWRzJyApLnZhbCgpOwp9CmlmKCBjb25kaXRpb25fdmFsdWVfMSAhPSB1bmRlZmluZWQgKSB7CgoJCQkJCQkJCQkJCQljb25kaXRpb25fdmFsdWVfMSA9IGNvbmRpdGlvbl92YWx1ZV8xLnJlcGxhY2UoIC8nL2csICdfJyApOwoKCQkJCQkJCQkJCQkJY29uZGl0aW9uX3ZhbHVlXzEgPSBjb25kaXRpb25fdmFsdWVfMS5yZXBsYWNlKCAvIi9nLCAnXycgKTsKCgkJCQkJCQkJCQkJfQppZiggZmllbGRfdmFsdWVfMSAhPSB1bmRlZmluZWQgKSB7CgoJCQkJCQkJCQkJCQlmaWVsZF92YWx1ZV8xID0gZmllbGRfdmFsdWVfMS5yZXBsYWNlKCAvJy9nLCAnXycgKTsKCgkJCQkJCQkJCQkJCWZpZWxkX3ZhbHVlXzEgPSBmaWVsZF92YWx1ZV8xLnJlcGxhY2UoIC8iL2csICdfJyApOwoKCQkJCQkJCQkJCQl9CgoJCQkJCQkJCQkJCWlmKCBmaWVsZF92YWx1ZV8xID09ICdfX2NoZWNrZWRfXycgKSB7CgoJCQkJCQkJCQkJCQkvKiBJdCdzIGEgY2hlY2tib3ggKi8KCgkJCQkJCQkJCQkJCXZhciBjaGVja2VkID0gJCgnI3Bld2NfZ3JvdXBfNDM4Nl80Mzg3JykucHJvcCgnY2hlY2tlZCcpOwoKCQkJCQkJCQkJCQkJaWYoIGNoZWNrZWQgPT0gdHJ1ZSApIHsKCgkJCQkJCQkJCQkJCQkvKiBUaGlzIGNvbmRpdGlvbiBpcyBtZXQgKi8KCgkJCQkJCQkJCQkJCQljb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDM4OVsxXSA9IDE7CgoJCQkJCQkJCQkJCQl9IGVsc2UgewoKCQkJCQkJCQkJCQkJCWNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80Mzg5WzFdID0gMDsKCgkJCQkJCQkJCQkJCX0KCgkJCQkJCQkJCQkJfSBlbHNlIGlmKCBmaWVsZF92YWx1ZV8xID09IGNvbmRpdGlvbl92YWx1ZV8xICkgewoKCQkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQzODlbMV0gPSAxOwoKCQkJCQkJCQkJCQl9IGVsc2UgewoKCQkJCQkJCQkJCQkJY29uZGl0aW9uc19tZXRfcGV3Y19ncm91cF80Mzg2XzQzODlbMV0gPSAwOwoKCQkJCQkJCQkJCQl9CmlmKCBjb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDM4OVsxXSA9PSAwICYmIG1hdGNoX3Bld2NfZ3JvdXBfNDM4Nl80Mzg5ID09ICdhbGwnICkgewoKCQkJCQkJCQkJCQljb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDM4OVsxXSA9IDA7CgoJCQkJCQkJCQkJCS8qIHJldHVybiBjb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDM4OTsgKi8KCgkJCQkJCQkJCQl9CnBld2NfY2hlY2tfYWxsX2NvbmRpdGlvbnMoICdwZXdjX2dyb3VwXzQzODZfNDM4OScsIGNvbmRpdGlvbnNfbWV0X3Bld2NfZ3JvdXBfNDM4Nl80Mzg5LCBhY3Rpb25fcGV3Y19ncm91cF80Mzg2XzQzODksIG1hdGNoX3Bld2NfZ3JvdXBfNDM4Nl80Mzg5ICk7CnJldHVybiBjb25kaXRpb25zX21ldF9wZXdjX2dyb3VwXzQzODZfNDM4OTsKfQokKCAnYm9keScgKS5vbiggJ2NoYW5nZSB1cGRhdGUga2V5dXAgcGFzdGUgY2xpY2snLCAnI3Bld2NfZ3JvdXBfNDM4Nl80Mzg3LCAucGV3Y19ncm91cF80Mzg2XzQzODcgLnBld2MtcmFkaW8tZm9ybS1maWVsZCcsIGZ1bmN0aW9uKCBlICkgewoKCQkJCQkJCQkJCQlwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNDM4OSggcGFyc2VGbG9hdCggJCh0aGlzKS52YWwoKSApICk7CgoJCQkJCQkJCQkJfSk7CiQoICdib2R5JyApLm9uKCAnY2FsY3VsYXRpb25fZmllbGRfdXBkYXRlZCcsIGZ1bmN0aW9uKCkgewoKCQkJCQkJCQkJCQlwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNDM4OSggcGFyc2VGbG9hdCggJCh0aGlzKS52YWwoKSApICk7CgoJCQkJCQkJCQkJfSk7CiQoJ2JvZHknKS5vbignY2hhbmdlJywnLnBld2NfZ3JvdXBfNDM4Nl80Mzg3IC5wZXdjLWNoZWNrYm94LWZvcm0tZmllbGQnLGZ1bmN0aW9uKCl7CgoJCQkJCQkJCQkJCXBld2NfY2hlY2tfcnVsZXNfZm9yX3Bld2NfZ3JvdXBfNDM4Nl80Mzg5KCAkKHRoaXMpLnZhbCgpICk7CgoJCQkJCQkJCQkJfSk7CiQoICdib2R5JyApLm9uKCAnY2hhbmdlIHVwZGF0ZSBrZXl1cCBwYXN0ZSBjbGljaycsICcjcGV3Y19ncm91cF80Mzg2XzQzODcsIC5wZXdjX2dyb3VwXzQzODZfNDM4NyAucGV3Yy1yYWRpby1mb3JtLWZpZWxkJywgZnVuY3Rpb24oIGUgKSB7CgoJCQkJCQkJCQkJCXBld2NfY2hlY2tfcnVsZXNfZm9yX3Bld2NfZ3JvdXBfNDM4Nl80Mzg5KCBwYXJzZUZsb2F0KCAkKHRoaXMpLnZhbCgpICkgKTsKCgkJCQkJCQkJCQl9KTsKJCggJ2JvZHknICkub24oICdjYWxjdWxhdGlvbl9maWVsZF91cGRhdGVkJywgZnVuY3Rpb24oKSB7CgoJCQkJCQkJCQkJCXBld2NfY2hlY2tfcnVsZXNfZm9yX3Bld2NfZ3JvdXBfNDM4Nl80Mzg5KCBwYXJzZUZsb2F0KCAkKHRoaXMpLnZhbCgpICkgKTsKCgkJCQkJCQkJCQl9KTsKJCgnYm9keScpLm9uKCdjaGFuZ2UnLCcucGV3Y19ncm91cF80Mzg2XzQzODcgLnBld2MtY2hlY2tib3gtZm9ybS1maWVsZCcsZnVuY3Rpb24oKXsKCgkJCQkJCQkJCQkJcGV3Y19jaGVja19ydWxlc19mb3JfcGV3Y19ncm91cF80Mzg2XzQzODkoICQodGhpcykudmFsKCkgKTsKCgkJCQkJCQkJCQl9KTsKZnVuY3Rpb24gcGV3Y19kb19pbml0aWFsX2NoZWNrKCkgewpwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNDM4OCgpOwpwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNTM2MCgpOwpwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNDQzMygpOwpwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNDU2MygpOwpwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNDQzNSgpOwpwZXdjX2NoZWNrX3J1bGVzX2Zvcl9wZXdjX2dyb3VwXzQzODZfNDM4OSgpOwp9CmlmKCB0eXBlb2YgcGV3Y19kb19pbml0aWFsX2NoZWNrID09ICdmdW5jdGlvbicgKSB7CgoJCQkJCXBld2NfZG9faW5pdGlhbF9jaGVjaygpOwoKCQkJCX0KJCggJ2JvZHknICkub24oICdwZXdjX2NoZWNrX2NvbmRpdGlvbnMnLCBmdW5jdGlvbigpIHsKCQkJCQlpZiggdHlwZW9mIHBld2NfZG9faW5pdGlhbF9jaGVjayA9PSAnZnVuY3Rpb24nICkgewoJCQkJCQlwZXdjX2RvX2luaXRpYWxfY2hlY2soKTsKCQkJCQl9CgkJCQl9KTsKCgkJCS8vIFRoZXNlIGZ1bmN0aW9ucyBhcmUgZmlyZWQgd2hlbiBhIHNldCBvZiBydWxlcyBhcmUgbWV0IGZvciBhIGZpZWxkCgkJCWZ1bmN0aW9uIHBld2NfY2hlY2tfYWxsX2NvbmRpdGlvbnMoIGlkLCBjb25kaXRpb25zX21ldCwgYWN0aW9uLCBtYXRjaCApIHsKCQkJCWlmKCBtYXRjaCA9PSAnYWxsJyApIHsKCQkJCQl2YXIgYWxsX21ldD10cnVlOwoJCQkJCW51bV9yZXEgPSBjb25kaXRpb25zX21ldC5sZW5ndGg7CgkJCQkJZm9yKHZhciBpPTA7aTxudW1fcmVxO2krKykgewoJCQkJCQlpZihjb25kaXRpb25zX21ldFtpXSAhPSAxKSB7CgkJCQkJCQlhbGxfbWV0PWZhbHNlOwoJCQkJCQkJYnJlYWs7CgkJCQkJCX0KCQkJCQl9CgkJCQkJaWYoIGFsbF9tZXQgKSB7CgkJCQkJCXBld2NfY29uZGl0aW9uc19tZXQoIGlkLCBhY3Rpb24gKTsKCQkJCQl9IGVsc2UgewoJCQkJCQlwZXdjX2NvbmRpdGlvbnNfbm90X21ldCggaWQsIGFjdGlvbiApOwoJCQkJCX0KCQkJCX0gZWxzZSB7CgkJCQkJdmFyIGFueV9tZXQ9ZmFsc2U7CgkJCQkJbnVtX3JlcSA9IGNvbmRpdGlvbnNfbWV0Lmxlbmd0aDsKCQkJCQlmb3IodmFyIGk9MDtpPG51bV9yZXE7aSsrKSB7CgkJCQkJCWlmKGNvbmRpdGlvbnNfbWV0W2ldID09IDEpewoJCQkJCQkJYW55X21ldD10cnVlOwoJCQkJCQkJYnJlYWs7CgkJCQkJCX0KCQkJCQl9CgkJCQkJaWYoIGFueV9tZXQgKSB7CgkJCQkJCXBld2NfY29uZGl0aW9uc19tZXQoIGlkLCBhY3Rpb24gKTsKCQkJCQl9IGVsc2UgewoJCQkJCQlwZXdjX2NvbmRpdGlvbnNfbm90X21ldCggaWQsIGFjdGlvbiApOwoJCQkJCX0KCQkJCX0KCQkJCWlmKCB0eXBlb2YgcGV3Y191cGRhdGVfdG90YWxfanMgPT0gJ2Z1bmN0aW9uJyApIHsKCQkJCQlwZXdjX3VwZGF0ZV90b3RhbF9qcygpOwoJCQkJfQoJCQkJLy8gVXNlIHRoaXMgdG8gY2hlY2sgZm9yIGhpZGRlbiBncm91cHMKCQkJCSQoICdib2R5JyApLm9uZSggJ3Bld2NfY29uZGl0aW9uc19jaGVja2VkJyApOwoJCQl9CgkJCWZ1bmN0aW9uIHBld2NfY29uZGl0aW9uc19tZXQoIGlkLCBhY3Rpb24gKSB7CgkJCQkvLyBDaGVjayB0aGUgb3V0Y29tZSBmb3IgY29uZGl0aW9ucyBiZWluZyBtZXQsIGUuZy4gc2hvdyBmaWVsZCAvIGhpZGUgZmllbGQKCQkJCWlmKCBhY3Rpb24gPT0gJ3Nob3cnICkgewoJCQkJCSQoJy4nK2lkKS5yZW1vdmVDbGFzcygncGV3Yy1oaWRkZW4tZmllbGQnKTsKCQkJCX0gZWxzZSBpZiggYWN0aW9uID09ICdoaWRlJyApIHsKCQkJCQkkKCcuJytpZCkuYWRkQ2xhc3MoJ3Bld2MtaGlkZGVuLWZpZWxkJyk7CgkJCQkJcGV3Y19yZXNldF9maWVsZF92YWx1ZSggaWQsIGFjdGlvbiApOwoJCQkJfQoJCQkJLy8gVXNlIHRoaXMgdG8gcmV0cmlnZ2VyIGNhbGN1bGF0aW9ucwoJCQkJJCggJ2JvZHknICkudHJpZ2dlciggJ3Bld2NfZmllbGRfdmlzaWJpbGl0eV91cGRhdGVkJywgWyBpZCwgYWN0aW9uIF0gKTsKCQkJfQoJCQlmdW5jdGlvbiBwZXdjX2NvbmRpdGlvbnNfbm90X21ldCggaWQsIGFjdGlvbiApIHsKCQkJCS8vIENoZWNrIHRoZSBvdXRjb21lIGZvciBjb25kaXRpb25zIGJlaW5nIG1ldCwgZS5nLiBzaG93IGZpZWxkIC8gaGlkZSBmaWVsZAoJCQkJaWYoIGFjdGlvbiA9PSAnc2hvdycgKSB7CgkJCQkJJCgnLicraWQpLmFkZENsYXNzKCdwZXdjLWhpZGRlbi1maWVsZCcpOwoJCQkJCXBld2NfcmVzZXRfZmllbGRfdmFsdWUoIGlkLCBhY3Rpb24gKTsKCQkJCX0gZWxzZSBpZiggYWN0aW9uID09ICdoaWRlJyApIHsKCQkJCQkkKCcuJytpZCkucmVtb3ZlQ2xhc3MoJ3Bld2MtaGlkZGVuLWZpZWxkJyk7CgkJCQl9CgkJCQkvLyBVc2UgdGhpcyB0byByZXRyaWdnZXIgY2FsY3VsYXRpb25zCgkJCQkkKCAnYm9keScgKS50cmlnZ2VyKCAncGV3Y19maWVsZF92aXNpYmlsaXR5X3VwZGF0ZWQnLCBbIGlkLCBhY3Rpb24gXSApOwoJCQl9CgkJCWZ1bmN0aW9uIHBld2NfcmVzZXRfZmllbGRfdmFsdWUoIGlkLCBhY3Rpb24gKSB7CgkJCQlpZiggcGV3Y192YXJzLnJlc2V0X2ZpZWxkcyA9PSAneWVzJyApIHsKCQkJCQkvLyBSZXNldCB0aGUgZmllbGQgdmFsdWUKCQkJCQl2YXIgZmllbGQgPSAnLicgKyBpZDsKCQkJCQl2YXIgaW5wdXRzID0gWydkYXRlJywgJ25hbWVfcHJpY2UnLCAnbnVtYmVyJywgJ3RleHQnLCAndGV4dGFyZWEnLCAnYWR2YW5jZWQtcHJldmlldyddOwoJCQkJCXZhciBjaGVja3MgPSBbJ2NoZWNrYm94JywgJ2NoZWNrYm94X2dyb3VwJywgJ3JhZGlvJ107CgkJCQkJdmFyIGZpZWxkX3R5cGUgPSAkKCBmaWVsZCApLmF0dHIoICdkYXRhLWZpZWxkLXR5cGUnICk7CgkJCQkJaWYoIGlucHV0cy5pbmNsdWRlcyggZmllbGRfdHlwZSApICkgewoJCQkJCQkkKCBmaWVsZCApLmZpbmQoICcucGV3Yy1mb3JtLWZpZWxkJyApLnZhbCggJycgKS50cmlnZ2VyKCAnY2hhbmdlJyApOwoJCQkJCX0gZWxzZSBpZiggZmllbGRfdHlwZSA9PSAnaW1hZ2Vfc3dhdGNoJyApIHsKCQkJCQkJJCggZmllbGQgKS5maW5kKCAnaW5wdXQnICkucHJvcCggJ2NoZWNrZWQnLCBmYWxzZSApOwoJCQkJCQkkKCBmaWVsZCApLmZpbmQoICcucGV3Yy1yYWRpby1pbWFnZS13cmFwcGVyLCAucGV3Yy1jaGVja2JveC1pbWFnZS13cmFwcGVyJyApLnJlbW92ZUNsYXNzKCAnY2hlY2tlZCcgKS50cmlnZ2VyKCAnY2hhbmdlJyApOwoJCQkJCX0gZWxzZSBpZiggZmllbGRfdHlwZSA9PSAncHJvZHVjdHMnICkgewoJCQkJCQkkKCBmaWVsZCApLmZpbmQoICdpbnB1dCcgKS5wcm9wKCAnY2hlY2tlZCcsIGZhbHNlICk7CgkJCQkJCSQoIGZpZWxkICkuZmluZCggJy5wZXdjLWZvcm0tZmllbGQnICkudmFsKCAnJyApLnRyaWdnZXIoICdjaGFuZ2UnICk7CgkJCQkJCSQoIGZpZWxkICkuZmluZCggJy5wZXdjLXJhZGlvLWltYWdlLXdyYXBwZXIsIC5wZXdjLWNoZWNrYm94LWltYWdlLXdyYXBwZXInICkucmVtb3ZlQ2xhc3MoICdjaGVja2VkJyApOwoJCQkJCX0gZWxzZSBpZiggY2hlY2tzLmluY2x1ZGVzKCBmaWVsZF90eXBlICkgKSB7CgkJCQkJCSQoIGZpZWxkICkuZmluZCggJ2lucHV0JyApLnByb3AoICdjaGVja2VkJywgZmFsc2UgKTsKCQkJCQl9IGVsc2UgaWYoIGZpZWxkX3R5cGUgPT0gJ3NlbGVjdCcgKSB7CgkJCQkJCSQoIGZpZWxkICkuZmluZCggJy5wZXdjLWZvcm0tZmllbGQnICkucHJvcCggJ3NlbGVjdGVkSW5kZXgnLCAwICkudHJpZ2dlciggJ2NoYW5nZScgKTsKCQkJCQl9CgoJCQkJfQoJCQl9CgkJfSk7Cgk=">
  </script>
  <div class="quantity"> <label class="screen-reader-text" for="quantity_641093ed860c6">BRICK Custom Scrubber quantity</label> <input type="number" id="quantity_641093ed860c6" class="input-text qty text" name="quantity" value="1" title="Qty" size="4"
      min="1" max="" step="1" placeholder="" inputmode="" autocomplete="off"></div> <button type="submit" name="add-to-cart" value="4195" class="single_add_to_cart_button button alt wp-element-button">Add to cart</button> <input type="hidden"
    name="gtm4wp_id" value="4195"> <input type="hidden" name="gtm4wp_name" value="BRICK Custom Scrubber"> <input type="hidden" name="gtm4wp_sku" value="BRICK-1"> <input type="hidden" name="gtm4wp_category" value="BRICK"> <input type="hidden"
    name="gtm4wp_price" value="0"> <input type="hidden" name="gtm4wp_stocklevel" value="">
</form>

Text Content

FREE SHIPPING ON ALL USA ORDERS OVER $1500

No products in the cart.
$0.00 0 Cart
 * Home
 * Shop
 * How It Works
 * About
 * Contact

Menu
 * Home
 * Shop
 * How It Works
 * About
 * Contact




612.479.3606


SALES@BRITEBELT.COM

No products in the cart.
$0.00 0 Cart

Home / Scrubbers / BRICK Custom Scrubber


BRICK CUSTOM SCRUBBER

 1.  
 2.  
 3.  
 4.  
 5.  
 6.  
 7.  
 8.  
 9.  
 10. 
 11. 

Home / Scrubbers / BRICK Custom Scrubber


BRICK CUSTOM SCRUBBER

$180 Base Tank + $8/inch of Width (or /25mm)

SKU BRICK-1 Categories BRICK, Scrubbers


The Custom Built BRICK Scrubber is designed to fit where space is limited and
for use on wide belts.

The unit is 7″ tall, 7″ long, and is custom-built from 4″ to 96″ wide to fit
your conveyor belt.

Shop Accessories


SCRUBBER UNIT WIDTH

(Unless add-ons are selected below, the Scrubber Unit does not come with any
pads, brushes, or bungee)

 * WIDTH OF BRICK CUSTOM SCRUBBER (1/2IN INCREMENTS) *
   
   Min: 4Max: 96

 * BASE COST OF SCRUBBER UNIT *
   
   $212.00

 * WEIGHT OF SCRUBBER UNIT *
   
   7.00


ADD-ONS

Please select the items below you'd like included with your base unit.

 * PLEASE SELECT THE SCRUBBER PADS YOU NEED * 
   
    *  Blue Scrubber Pads (Qty 100)
    *  White Scrubber Pads (Qty 100)
    *  Blue Scrubber Pads (Qty 50)
    *  White Scrubber Pads (Qyt 50)
   
   

 * 100 SCRUBBER PADS COST: $50.00 + $9.00 / INCH OF WIDTH = *
   
   

 * 50 SCRUBBER PADS COST: $35.00 + $9.00 / INCH OF WIDTH = *
   
   

 * DO YOU NEED BRUSHES? * 
   
    *  1 Brush
    *  2 Brushes
    *  No Brushes Needed
   
   

 * OUR RECOMMENDATION ON WHEN DO YOU NEED BRUSHES. *
   
   1 BrushUnder 30" OR Neoprene Flat Belt.*2 BrushesOver 30" OR on all sizes
   that run on a conveyor belt with mesh, wire, interlock, or orifices, etc...No
   Brushes*Some Flat Neoprene Belts may or may not require a brush assembly.
   This is dependent upon the scrubbing action required for the removal of the
   medium/product on the conveyor belt.

 * BRUSH ATTACHMENT COST: $5.00 PER INCH *
   
   

 * SECOND BRUSH ATTACHMENT COST: $5.00 PER INCH *
   
   

 * DO YOU NEED A BUNGEE CORD? * 
   
    *  Yes
    *  No
   
   

 * BUNGEE CORD COST: $20.00 + $0.50 PER INCH = *
   
   

 * SCRUBBER PADS WEIGHT CALC *
   
   

 * TOTAL WEIGHT CALC *
   
   7.00

$212.00

BRICK Custom Scrubber quantity
Add to cart
 * Description
 * Additional information


DESCRIPTION

The Custom Built BRICK Scrubber is designed to fit where space is limited and
for use on wide belts.

The unit is 7″ tall, 7″ long, and is custom-built from 4″ to 96″ wide to fit
your conveyor belt.


ADDITIONAL INFORMATION

Weight16 lbsDimensions6 × 24 × 12 inWidth (Inches)

4", 4.5", 5", 5.5", 6", 6.5", 7", 7.5", 8", 8.5", 9", 9.5", 10", 10.5", 11",
11.5", 12", 12.5", 13", 13.5", 14", 14.5", 15", 15.5", 16", 16.5", 17", 17.5",
18", 18.5", 19", 19.5", 20", 20.5", 21", 21.5", 22", 22.5", 23", 23.5", 24",
24.5", 25", 25.5", 26", 26.5", 27", 27.5", 28", 28.5", 29", 29.5", 30", 30.5",
31", 31.5", 32", 32.5", 33", 33.5", 34", 34.5", 35", 35.5", 36", 36.5", 37",
37.5", 38", 38.5", 39", 39.5", 40", 40.5", 41", 41.5", 42", 42.5", 43", 43.5",
44", 44.5", 45", 45.5", 46", 46.5", 47", 47.5", 48", 48.5", 49", 49.5", 50",
50.5", 51", 51.5", 52", 52.5", 53", 53.5", 54", 54.5", 55", 55.5", 56", 56.5",
57", 57.5", 58", 58.5", 59", 59.5", 60", 60.5", 61", 61.5", 62", 62.5", 63",
63.5", 64", 64.5", 65", 65.5", 66", 66.5", 67", 67.5", 68", 68.5", 69", 69.5",
70", 70.5", 71", 71.5", 72", 72.5", 73", 73.5", 74", 74.5", 75", 75.5", 76",
76.5", 77", 77.5", 78", 78.5", 79", 79.5", 80", 80.5", 81", 81.5", 82", 82.5",
83", 83.5", 84", 84.5", 85", 85.5", 86", 86.5", 87", 87.5", 88", 88.5", 89",
89.5", 90", 90.5", 91", 91.5", 92", 92.5", 93", 93.5", 94", 94.5", 95", 95.5",
96"



BRICK RELATED PRODUCTS


 * BRICK WHITE CUSTOM SCRUBBER PADS (100/CASE)
   
   $9.52 - $21.50 / inch Select options


 * BRICK CUSTOM SCRUBBER BRUSH ATTACHMENT (ONE-BRUSH)
   
   $5.00 / Inch Select options


 * BRICK CUSTOM DOUBLE BUNGEE CORD
   
   $0.71 - $5.50 / inch Select options

Shop
Quick Order Form
How it Works
About
Blog
Contact

My Account
Customer Service
FAQs
Privacy Policy

612.479.3606 sales@britebelt.com

PO Box 319
Chaska, MN 55318

Linkedin

Copyright © 2023. All rights reserved. | Privacy Policy | Terms & Conditions
| Website Design by Running Robots



View Cart Checkout Continue Shopping

0
0
Your Cart
Your cart is emptyReturn to Shop
Continue Shopping


Terms and Conditions - Privacy Policy