PageSourceSearch

https://shop.vjlab.ai/p/beatsage/

html vjlab.ai collected 2026-10-05 17:07:51 UTC 68,010 bytes, 1,268 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3  <head><meta charset="utf-8">
4      <meta http-equiv="X-UA-Compatible" content="IE=edge">
5      <meta name="viewport" content="width=device-width, initial-scale=1">
6      <meta name="theme-color" content="rgba(245, 245, 245, 1.0)"><title>BeatSage: an automatic beat tracking and tempo tapper for visual artists using Resolume</title><meta property="og:image" content="https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png?w=674">
7<meta name="twitter:image" content="https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png?w=674"><meta name="description" content="an automatic beat tracking and tempo tapper for visual artists using Resolume, TouchDesigner, MadMapper, and much more">
8<meta property="og:title" content="BeatSage: an automatic beat tracking and tempo tapper for visual artists using Resolume">
9<meta property="og:description" content="an automatic beat tracking and tempo tapper for visual artists using Resolume, TouchDesigner, MadMapper, and much more">
10<meta property="og:type" content="product">
11<meta property="product:price:amount" content="49.95">
12<meta property="product:price:currency" content="USD"><meta name="twitter:card" content="summary_large_image">
13<meta name="twitter:url" content="https://shop.vjlab.ai/p/beatsage/">
14<meta name="twitter:title" content="BeatSage: an automatic beat tracking and tempo tapper for visual artists using Resolume">
15<meta name="twitter:description" content="an automatic beat tracking and tempo tapper for visual artists using Resolume, TouchDesigner, MadMapper, and much more"><link rel="icon" href="https://media.sellfy.store/images/UmASCDCP/aADG/VJLabAI.jpg" type="image/png">
16        <link
17          rel="apple-touch-icon-precomposed"
18          sizes="144x144"
19          href="https://media.sellfy.store/images/UmASCDCP/aADG/VJLabAI.jpg"
20        ><meta name="robots" content="index, follow"><link rel="stylesheet" href="https://assets.sellfy.store/static/gen/packed_store.libs.e5897d24.css"><link rel="stylesheet" href="https://assets.sellfy.store/static/gen/packed_store.e6473513.css">
21<link rel="canonical" href="https://shop.vjlab.ai/p/beatsage/">
22<link rel="stylesheet" href="https://assets.sellfy.store/static/gen/packed_productpage.72ca5686.css"><style>
23  html[lang]{
24    background-color: rgba(245, 245, 245, 1.0);
25    --global-background: rgba(245, 245, 245, 1.0);
26  }
27  :root{
28    --base-font-family: DM Sans, 'Nunito Sans', -apple-system, system-ui, sans-serif;
29    --base-font-size: 16px;
30    --heading-font-family: Syne, 'Nunito Sans', -apple-system, system-ui, sans-serif;
31    --store-width: 980px;
32    --button-color: rgba(34, 34, 34, 1.0);
33    --button-text-color: rgba(245, 245, 245, 1.0);
34    --button-radius: 30px;
35    --interface-radius: 30px;
36    --button-outline: 0px;
37    --store-bg-color: rgba(245, 245, 245, 1.0);
38  }
39  .ui.input input,
40  .ui.form textarea,
41  .ui.form input:not([type]),
42  .ui.form input[type='text'],
43  .ui.form input[type='email'],
44  .ui.form input[type='search'],
45  .ui.form input[type='password'],
46  .ui.form input[type='date'],
47  .ui.form input[type='datetime-local'],
48  .ui.form input[type='tel'],
49  .ui.form input[type='time'],
50  .ui.form input[type='url'],
51  .ui.form input[type='number'],
52  .ui.form select,
53  .ui.form select option,
54  .ui.button,
55  .ui.modal,
56  .ui.popup,
57  [class$="store-content"],
58  .ui.label,
59  .embed-button .slfy-store,
60  .ui.embed-popup *,
61  .embed {
62    font-family: DM Sans, 'Nunito Sans', -apple-system, system-ui, sans-serif;
63  }
64  .ui.header:not(h2),
65  .ui.modal > .header,
66  .header:not(h2){
67    font-family: Syne, 'Nunito Sans', -apple-system, system-ui, sans-serif;
68  }
69  .fr_primary_button, a.fr_primary_button{
70    background-color: rgba(34, 34, 34, 1.0);
71    border-radius: 30px;
72    color: rgba(245, 245, 245, 1.0);}
73  .fr_secondary_button{
74    background-color: rgba(245, 245, 245, 1.0);
75    border-radius: 30px;
76    color: rgba(34, 34, 34, 1.0);}
77  .button{
78    border-radius: 30px !important;
79  }.breadcrumbs .item{
80    color: currentColor !important;
81    opacity: 0.7;
82  }
83  .breadcrumbs .item:last-child,
84  .breadcrumbs .item:hover,
85  .breadcrumbs .item:focus{
86    opacity: 1;
87  }
88  .breadcrumbs .item::after{
89    opacity: 0.7;
90    color: currentColor !important;
91  }
92  .ui.button{
93    background: rgba(34, 34, 34, 1.0) !important;
94    color: rgba(245, 245, 245, 1.0) !important;
95    border-radius: 30px !important;
96    transition: 0.2s ease;}
97  .ui.button:hover,
98  .ui.button:focus{
99    background-color: rgba(34, 34, 34, 1.0) !important;
100    filter: brightness(1.15);
101  }
102  .error.module{
103    padding-bottom: 5rem;
104    padding-top: 2.5rem;
105    text-align: center;
106    flex-grow: 1;
107  }
108  .error.module h2{
109    font-weight: bold;
110    font-size: 2.5em;
111  }
112  .error.module p.description{
113    font-size: 1em;
114    margin-top: 0.75em;
115    opacity: 0.8;
116  }
117</style>
117<script>
118  
119
120window.GLOBALS = {
121  ADMIN_URL: 'https://sellfy.com/user/',
122  CAPTCHA_SITEKEY: '0d1404b7-e163-42b4-90fc-b6107b5f0cc5',
123  CAPTCHA_TYPE: 'h-captcha',
124  CHECKOUT_URL: 'https://shop.vjlab.ai/checkout/',
125  IS_PRODUCTION: true,
126  SELLER_ID: '680eb8b5d994d2ac2d48fa54',
127  STORE_HAS_SIGNIN: false,
128  STORE_IN_MAINTENANCE: false,
129  STORE_URL: 'https://shop.vjlab.ai/',
130  STORE_USER_AUTHORIZED: false,
131  AFFILIATE_PROGRAM_ENABLED: false,
132  SHOW_AFFILIATE_PROGRAM_UI: false,
133  PAYPAL_ENABLED: false,
134  STORE_CUSTOMIZE_ALLOWED: true,
135};
136</script>
136
137    
138
139    
140    <link rel="preconnect" href="https://assets.sellfy.store/" crossorigin>
141    <link rel="preconnect" href="https://media.sellfy.store/" crossorigin>
142    <link rel="preload" href="https://assets.sellfy.store/static/assets/fonts/dripicons-v2.woff" as="font" type="font/woff" crossorigin>
143    <link rel="preload" href="https://assets.sellfy.store/static/assets/themes/default/assets/fonts/icons.woff2" as="font" type="font/woff2" crossorigin>
144          <link rel="preconnect" href="https://hcaptcha.com">
145        
146      
146<script>
147        window.GLOBALS.CHECKOUT_CUSTOM_FIELDS = {};
148      </script>
148</head>
149  <body class="">
150    <div itemscope itemtype="https://schema.org/WebSite">
151      <meta itemprop="url" content="https://shop.vjlab.ai/">
152      <meta itemprop="name" content="VJ Lab">
153    </div><div
154        class="slfy-store
155        p-dm-sans
156        h-syne
157        b-16
158        width-960
159        
160        product
161        "
162        style="background-color:rgba(245, 245, 245, 1.0);background-image:url();background-position:center center;background-size:cover;"
163      >
164        <div class="user-panel"></div>
165          <div class="warning-container"></div>
166              <style>
167  .navigation.module{
168    --cart-background: rgba(245, 245, 245, 0.9);
169  }
170  .navigation.module .actions {
171      /* background: rgba(245, 245, 245, 0.9); */
172      color: rgba(34, 34, 34, 1.0);
173  }
174  .ui.popup.checkout.shopping-cart-content .ui.segment .header h6.ui.header,
175  .ui.popup.checkout.shopping-cart-content .ui.segment h3.ui.header,
176  .ui.popup.sign-in-content .ui.segment.content .basic.header h6.ui.header {
177      font-family: DM Sans, 'Nunito Sans', -apple-system, system-ui, sans-serif;
178  }
179  .navmenu .item > .menu{
180      background: rgba(245, 245, 245, 0.9);
181      --menu-bg: rgba(245, 245, 245, 0.9);
182  }
183  .navmenu:not(.dropdown) .item.more-items{
184    display: none !important;
185  }
186  .navmenu .more-items > .menu > .item > a > .icon{
187    transform: rotate(-90deg);
188  }
189  .navmenu .more-items > .more > .icon {
190    font-size: 0.875rem;
191  }
192  .navmenu .more-items > .menu > .item > .menu > .item a{
193    display: flex;
194    justify-content: space-between;
195  }
196  .divider{
197    height: 100%;
198    width: 1px;
199    background: rgba(34, 34, 34, 1.0);
200  }
201  .open-mobile-menu{
202    margin: -1em;
203    padding: 1em;
204  }
205</style>
206<div
207  class="navigation module
208  large
209  sticky-store-nav sticky
210  
211  
212  large-logo"
213style="
214  color: rgba(34, 34, 34, 1.0);
215  background-color: rgba(245, 245, 245, 0.9);
216  box-shadow: 0 0 0 0px rgba(34, 34, 34, 1.0);
217  background-image: url();
218  background-position: center center;
219  background-size: cover;
220  --backdrop-filter: blur(16.0px);
221  --height: 60.0px;
222--padding: 60.0px 20.0px 60.0px 20.0px;
223--max-width: 100.0%;"
224>
225  
226  <div class="container">
227    <div class="content-wrapper center-logo" >
228      <div class="logo-container"><a class="store-logo" href="https://shop.vjlab.ai/" data-disabled="false">
229            <img
230              src="https://media.sellfy.store/images/UmASCDCP/aADG/VJLabAI.jpg"
231              class="logo-image locked-ratio"
232              alt="VJ Lab"
233              style="
234                --border-radius: 120.0px;
235                --aspect-ratio: 1 / 1;
236              ">
237          </a></div>
238      <div class="navmenu menu left navigation-overflow overflow"><div class="item store-nav-item ">
239          <a href="https://vjlab.ai/docs/"
240             target="_blank"
241             rel="noopener">
242            VJLab Documentation</a></div><div class="item more-items">
243          <span class="more">More<i class="icon dripicons-chevron-down"></i>
244          </span>
245          <div class="menu" tabindex="-1"></div>
246        </div>
247      </div>
248      <div class="actions">
249        
250        <div class="item cart shopping-cart-widget cart-items"
251          data-href="/cart/680eb8b5d994d2ac2d48fa54/"
252          data-base-template='#shoppingCartWidgetView'>
253          <div class="ui bottom right popup checkout shopping-cart-content"></div>
254          <a class="shopping-cart-button" href="https://shop.vjlab.ai/checkout/" aria-label="Shopping cart widget">
255            <svg
256              xmlns="http://www.w3.org/2000/svg"
257              width="18"
258              height="18"
259              viewBox="0 0 24 24"
260              fill="none"
261              stroke="currentColor"
262              stroke-width="2"
263              stroke-linecap="round"
264              stroke-linejoin="round"
265            >
266              <path
267                d="M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"
268              ></path>
269              <line x1="3" y1="6" x2="21" y2="6"></line>
270              <path d="M16 10a4 4 0 0 1-8 0"></path>
271            </svg>
272            <div class="cart-indicator item-count"></div>
273          </a>
274        </div><div class="divider"></div>
275        <div class="item mobile-menu">
276          <div class="icon-container open-mobile-menu">
277            <svg
278              xmlns="http://www.w3.org/2000/svg"
279              width="18"
280              height="18"
281              viewBox="0 0 24 24"
282              fill="none"
283              stroke="currentColor"
284              stroke-width="2"
285              stroke-linecap="round"
286              stroke-linejoin="round"
287              class="icon"
288            >
289              <line x1="3" y1="12" x2="21" y2="12"></line>
290              <line x1="3" y1="6" x2="21" y2="6"></line>
291              <line x1="3" y1="18" x2="21" y2="18"></line>
292            </svg>
293          </div>
294          <div class="menu-container">
295            <div class="close spacer"></div>
296            <div class="menu-panel" style="color:rgba(34, 34, 34, 1.0);--background-color:rgba(245, 245, 245, 0.9);">
297              <div class="header">
298                <div class="left panel">
299                  <div class="back-action">
300                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
301                      <path d="M9 5.25L2.25 12L9 18.75" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
302                      <path d="M3 12L22 12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
303                      </svg>
304                  </div>
305                </div>
306                <div class="right panel"><div class="language-switcher store-language">
307                      <select class="auto-width" aria-label="Select language"><option value="en" selected=&#34;selected&#34;>
308                          English
309                        </option><option value="es" >
310                          Español
311                        </option><option value="pt" >
312                          Português
313                        </option><option value="fr" >
314                          Français
315                        </option><option value="de" >
316                          Deutsch
317                        </option><option value="it" >
318                          Italiano
319                        </option><option value="ru" >
320                          Русский
321                        </option></select>
322                      <div class="icon-container">
323                        <svg
324                          xmlns="http://www.w3.org/2000/svg"
325
326
327                          viewBox="0 0 24 24"
328                          fill="none"
329                          stroke="currentColor"
330                          stroke-width="2"
331                          stroke-linecap="round"
332                          stroke-linejoin="round"
333                          class="icon"
334                        >
335                          <polyline points="6 9 12 15 18 9"></polyline>
336                        </svg>
337                      </div>
338                    </div><div class="action close">
339                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="currentColor"><title>close</title><polygon class="cls-1" points="24 9.4 22.6 8 16 14.6 9.4 8 8 9.4 14.6 16 8 22.6 9.4 24 16 17.4 22.6 24 24 22.6 17.4 16 24 9.4"/></svg>
340                  </div>
341                </div>
342              </div>
343              <div class="item-wrapper">
344                <div class="item-grid">
345                  <div class="column first">
346                    <div class="items"><a
347                        class="item "
348                        data-id="ba352530-ab94-47f1-a863-9c99ad08e6c3"
349                        href="https://vjlab.ai/docs/"
350                        target="_blank"
351                        rel="noopener"
352                      >
353                        VJLab Documentation</a></div>
354                  </div>
355                  <div class="column second"></div>
356                  <div class="column third"></div>
357                </div>
358              </div>
359              
360            </div>
361          </div>
362        </div>
363        
364      </div>
365    </div>
366  </div>
367</div>
368            
369              
370
371
372
373<div
374  class="productpage module unsegmented"
375  style="
376  background-color:rgba(0, 0, 0, 0);
377  background-image:url();
378  background-position:center center;
379  background-size:cover;
380  color:rgba(34, 34, 34, 1.0);
381  --card-background: #ffffff;
382  --title-color: rgba(34, 34, 34, 1.0);
383  --sidebar-text-color: rgba(34, 34, 34, 1.0);
384  --tint-background: rgba(0, 0, 0, 0.04);
385  --divider-color: rgba(0, 0, 0, 0.12);
386  --product-page-bg-color: rgba(0, 0, 0, 0);
387  --card-radius: var(--interface-radius);"
388>
389  
390  <div class="mobile-add-to-cart">
391    <div class="product-data ">
392      <div class="starts-from">Starting from:</div>
393      <div class="price-container">
394        <del class="old-price "></del><p class="current-price">
395            $49.95
396          </p></div></div>
397    <div class="actions">
398      <button class="fr_primary_button sticky-buy-now-button "
399              data-text="Add to cart"
400              data-cart-type="Cart"
401              data-href="/cart/subscription/680eb8b5d994d2ac2d48fa54/"
402              type="submit"
403              data-variable=""
404              data-pwyw=""
405               >
406        Add to cart
407      </button></div>
408  </div>
409  <div class="container">
410    
411    <div class="product-wrap">
412      <div
413        class="ui equal height stackable grid content-grid"
414        itemtype="https://schema.org/Product"
415        itemscope
416      >
417        <div class="product-details column rounded-corner left-content">
418          <div class="product-info">
419            <div
420              class="ui segment product-item feed-view productpage-view"
421              data-key="2pa7eg"
422            >
423              <div class="product-image" id="productImageView"></div>
424              <div class="product-meta">
425                <div class="product-meta-info">
426                  <h1
427                    class="product-top-header"
428                    itemprop="name"
429                    title="BeatSage"
430                  >
431                    BeatSage
432                  </h1>
433                  
434                  
435                  <div class="product-description" itemprop="description">
436                    <p>Automatic beat tracker and tempo tapper for Resolume, TouchDesigner, or anything that works with Ableton Sync!</p>
437<p></p>
438<p>BeatSage uses a lightweight neural network trained on thousands of hours of all types of genres of music to understand music in realtime (~5ms latency) and lock to the beat.</p><p></p><p>It can listen to either computer audio, or even just your laptop's microphone, even in a loud, clipping club or concert environment! We've tested it.</p>
439<p></p>
440<p>Reliably taps out tempo and syncs to TouchDesigner or Resolume with Ableton Sync, or even OSC messages if you prefer.</p>
441<p></p>
442<p>
442Runs in realtime and won't freeze your visuals rig!</p>
443<p></p>
444<p>Mac only, but reach out if you'd like to try our upcoming Windows beta!</p>
445                  </div>
446                </div>
447              </div>
448            </div>
449            
450            
450<script>
451              if (window._ga) {
452                ga('clientTracker.ec:addProduct', {
453                  id: '2pa7eg',
454                });
455                ga('clientTracker.ec:setAction', 'detail');
456              }
457              if (window._ga4) {
458                try {
459                  gtag("event", "view_item", {
460                    currency: 'USD',
461                    value: '49.95',
462                    items: [
463                      {
464                        item_id: '2pa7eg',
465                        item_name: 'BeatSage',
466                        index: 0,
467                        item_category: '',
468                        price: '49.95',
469                        quantity: 1
470                      }
471                    ]
472                  });
473                } catch (e) {}
474              }
475              if (window._fb) {
476                fbq('track', 'ViewContent', {
477                  content_type: 'product',
478                  content_ids: '2pa7eg',
479                });
480              }
481            </script>
481
482          </div>
483        </div>
484        <div class="buy-button column right-sidebar">
485          <div class="sidebar-product-info sticky">
486            <div class="ui segments ">
487              <div
488                class="ui segment primary sidebar-price-wrap"
489                itemtype="https://schema.org/Offer"
490                itemprop="offers"
491                itemscope
492              >
493                <del
494                  class="old-price "
495                >
496                  
497                </del><form
498                  class="shopping-cart-item-add-form"
499                  action="https://shop.vjlab.ai/checkout/"
500                >
501                  <p class="current-price ">
502                      <span class="starts-from">Starting from:</span>
503                      $49.95
504                    </p>
505                    <div id="sidebar_product_fields" class="ui form fields-form"></div><button class="fr_primary_button fr_fluid fr_large buy-now-button preload  add-to-cart"
506          data-text="Add to cart"
507          data-cart-type="Cart"
508          data-href="/cart/subscription/680eb8b5d994d2ac2d48fa54/"
509          type="submit" >
510    Add to cart
511  </button>
512<input name="product" type="hidden" value="2pa7eg"></form>
513                <meta
514                  itemprop="priceCurrency"
515                  content="USD"
516                />
517                <meta
518                  itemprop="price"
519                  content="49.95"
520                />
521                <link itemprop="url" href="https://shop.vjlab.ai/p/beatsage/" />
522                <meta
523                  itemprop="availability"
524                  content="https://schema.org/InStock"
525                />
526              </div>
527              <div class="ui centered secondary segment sidebar-product-meta">
528                <div class="file-info">
529                  <div class="file-info-label">
530                    1 file (18.9MB)
531                  </div>
532                </div>
533              </div>
534            </div>
535          </div>
536        </div>
537        <meta itemprop="sku" content="2pa7eg">
538        <meta itemprop="productID" content="2pa7eg">
539      </div>
540    </div>
541  </div>
542</div>
543<style>
544  .productpage .fr_primary_button.fr_fluid{
545    font-size: 1em;
546  }
547  .productpage .ui.form select{
548    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="rgba(34, 34, 34, 1.0)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" vector-effect="non-scaling-stroke"><polyline points="6 9 12 15 18 9"></polyline></svg>') !important;
549  }
550  .productpage .ui.form select option{
551    background: #ffffff;
552    color: #111111;
553  }
554  .productpage .ui.form select option:disabled{
555    background: #ffffff;
556    color: #999999;
557  }
558  .productpage.module.unsegmented .ui.segment,
559  .productpage.module.unsegmented .ui.segments{
560    box-shadow: none !important;
561  }
562  .productpage.module.unsegmented .sidebar-product-meta::before{
563    content: none;
564  }
565  .productpage.module .ui.form select,
566  .productpage.module .ui.form select:focus,
567  .productpage.module .ui.form select:hover{
568      background-color: transparent;
569      box-shadow: 0 0 0 1px currentColor inset !important;
570  }
571  .productpage.module .ui.loading.segment > *,
572  .productpage.module .ui.loading.form .ui.segment > *{
573      visibility: hidden;
574  }
575  .productpage.module .ui.loading.segment::before,
576  .productpage.module .ui.loading.form::before{
577    background: transparent;
578  }
579  .productpage.module .ui.loading.segment::after,
580  .productpage.module .ui.loading.form::after{
581    position: absolute;
582    content: "";
583    top: 50%;
584    left: 50%;
585    margin: -1.5em 0em 0em -1.5em;
586    width: 2em;
587    height: 2em;
588    -webkit-animation: segment-spin 0.6s linear;
589    animation: segment-spin 0.6s linear;
590        animation-iteration-count: 1;
591    -webkit-animation-iteration-count: infinite;
592    animation-iteration-count: infinite;
593    border-radius: 500rem;
594    border-color: #aaaaaa rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1);
595    border-style: solid;
596    border-width: 0.2em;
597    box-shadow: 0px 0px 0px 1px transparent;
598    visibility: visible;
599    background-image: unset;
600    z-index: 101;
601  }
602
603  .productpage.module .right-sidebar{
604    color: var(--sidebar-text-color)
605  }
606  .productpage.module .reviews-loading{
607    min-height: 12em;
608    margin-top: 1.25rem;
609  }
610  .productpage.module .review-totals.description{
611    margin-top: 1em;
612    display: flex;
613    gap: 1ch;
614    cursor: pointer;
615    align-items: center;
616    line-height: normal;
617  }
618  .productpage.module .review-totals.description .totals{
619    text-decoration: underline;
620  }
621  .productpage.module .review-totals.description:hover .totals{
622    text-decoration: none;
623  }
624  .productpage.module .review-totals.description .stars{
625    display: flex;
626    gap: 0.125em;
627  }
628  .productpage.module .review-totals.description .stars .star{
629    position: relative;
630  }
631  .productpage.module .review-totals.description .stars .star svg{
632    display: block;
633  }
634  .productpage.module .review-totals.description .stars .star .half{
635    opacity: 0.24;
636    width: 50%;
637    contain: paint;
638  }
639  .productpage.module .review-totals.description .stars .star .half:nth-child(2){
640    direction: rtl;
641    top: 0;
642    left: 50%;
643    position: absolute;
644  }
645  .productpage.module .review-totals.description .stars .star .half.selected{
646    opacity: 1;
647  }
648</style>
649<script>window.GLOBALS.gallery = {
650    items: [{
651        html: "\u003cimg\n  itemprop=\"image\"\n  alt=\"BeatSage\"\n  style=\"--width: 620px;--height: 606px;\"\n  width=\"620px\"\n  height=\"606px\"\n  src=\"https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png?w=620\"\n  srcset=\"https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png?w=2840 2840w,https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png?w=2120 2120w,https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png?w=1880 1880w,https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png?w=1640 1640w,https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png?w=1400 1400w,https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png?w=1240 1240w,https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png?w=1160 1160w,https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png?w=1040 1040w,https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png?w=800 800w,https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png?w=620 620w,https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png?w=600 600w,https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png?w=580 580w,https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png?w=460 460w,https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png?w=440 440w,https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png?w=300 300w,https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png?w=260 260w\"\n  sizes=\"(min-width: 620px) 620px, 100w\"\n  data-width=\"674\"\n  data-height=\"658\"\n  data-original=\"https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png\"\n  onload=\"this.style.height=\u0027auto\u0027\"\u003e",
652        kind: 'image',
653        url: 'https://media.sellfy.store/images/UmASCDCP/tJKn/screenshot_2025-04-27_at_4.28.47_pm.png?w=620',
654        id: '680ff569eda96cc23f4e0d8b'
655      },{
656        html: "\u003cimg\n  itemprop=\"image\"\n  alt=\"BeatSage\"\n  style=\"--width: 620px;--height: 302px;\"\n  width=\"620px\"\n  height=\"302px\"\n  src=\"https://media.sellfy.store/images/UmASCDCP/TeOI/screenshot_2025-04-27_at_4.28.03_pm.png?w=620\"\n  srcset=\"https://media.sellfy.store/images/UmASCDCP/TeOI/screenshot_2025-04-27_at_4.28.03_pm.png?w=2840 2840w,https://media.sellfy.store/images/UmASCDCP/TeOI/screenshot_2025-04-27_at_4.28.03_pm.png?w=2120 2120w,https://media.sellfy.store/images/UmASCDCP/TeOI/screenshot_2025-04-27_at_4.28.03_pm.png?w=1880 1880w,https://media.sellfy.store/images/UmASCDCP/TeOI/screenshot_2025-04-27_at_4.28.03_pm.png?w=1640 1640w,https://media.sellfy.store/images/UmASCDCP/TeOI/screenshot_2025-04-27_at_4.28.03_pm.png?w=1400 1400w,https://media.sellfy.store/images/UmASCDCP/TeOI/screenshot_2025-04-27_at_4.28.03_pm.png?w=1240 1240w,https://media.sellfy.store/images/UmASCDCP/TeOI/screenshot_2025-04-27_at_4.28.03_pm.png?w=1160 1160w,https://media.sellfy.store/images/UmASCDCP/TeOI/screenshot_2025-04-27_at_4.28.03_pm.png?w=1040 1040w,https://media.sellfy.store/images/UmASCDCP/TeOI/screenshot_2025-04-27_at_4.28.03_pm.png?w=800 800w,https://media.sellfy.store/images/UmASCDCP/TeOI/screenshot_2025-04-27_at_4.28.03_pm.png?w=620 620w,https://media.sellfy.store/images/UmASCDCP/TeOI/screenshot_2025-04-27_at_4.28.03_pm.png?w=600 600w,https://media.sellfy.store/images/UmASCDCP/TeOI/screenshot_2025-04-27_at_4.28.03_pm.png?w=580 580w,https://media.sellfy.store/images/UmASCDCP/TeOI/screenshot_2025-04-27_at_4.28.03_pm.png?w=460 460w,https://media.sellfy.store/images/UmASCDCP/TeOI/screenshot_2025-04-27_at_4.28.03_pm.png?w=440 440w,https://media.sellfy.store/images/UmASCDCP/TeOI/screenshot_2025-04-27_at_4.28.03_pm.png?w=300 300w,https://media.sellfy.store/images/UmASCDCP/TeOI/screenshot_2025-04-27_at_4.28.03_pm.png?w=260 260w\"\n  sizes=\"(min-width: 620px) 620px, 100w\"\n  data-width=\"2676\"\n  data-height=\"1300\"\n  data-original=\"https://media.sellfy.store/images/UmASCDCP/TeOI/screenshot_2025-04-27_at_4.28.03_pm.png\"\n  onload=\"this.style.height=\u0027auto\u0027\"\u003e",
657        kind: 'image',
658        url: 'https://media.sellfy.store/images/UmASCDCP/TeOI/screenshot_2025-04-27_at_4.28.03_pm.png?w=620',
659        id: '680ff5725a54f26dc25b149f'
660      },{
661        html: "\u003cimg\n  itemprop=\"image\"\n  alt=\"BeatSage\"\n  style=\"--width: 620px;--height: 511px;\"\n  width=\"620px\"\n  height=\"511px\"\n  src=\"https://media.sellfy.store/images/UmASCDCP/fdiI/screenshot_2025-04-18_at_4.15.21_pm.png?w=620\"\n  srcset=\"https://media.sellfy.store/images/UmASCDCP/fdiI/screenshot_2025-04-18_at_4.15.21_pm.png?w=2840 2840w,https://media.sellfy.store/images/UmASCDCP/fdiI/screenshot_2025-04-18_at_4.15.21_pm.png?w=2120 2120w,https://media.sellfy.store/images/UmASCDCP/fdiI/screenshot_2025-04-18_at_4.15.21_pm.png?w=1880 1880w,https://media.sellfy.store/images/UmASCDCP/fdiI/screenshot_2025-04-18_at_4.15.21_pm.png?w=1640 1640w,https://media.sellfy.store/images/UmASCDCP/fdiI/screenshot_2025-04-18_at_4.15.21_pm.png?w=1400 1400w,https://media.sellfy.store/images/UmASCDCP/fdiI/screenshot_2025-04-18_at_4.15.21_pm.png?w=1240 1240w,https://media.sellfy.store/images/UmASCDCP/fdiI/screenshot_2025-04-18_at_4.15.21_pm.png?w=1160 1160w,https://media.sellfy.store/images/UmASCDCP/fdiI/screenshot_2025-04-18_at_4.15.21_pm.png?w=1040 1040w,https://media.sellfy.store/images/UmASCDCP/fdiI/screenshot_2025-04-18_at_4.15.21_pm.png?w=800 8
66100w,https://media.sellfy.store/images/UmASCDCP/fdiI/screenshot_2025-04-18_at_4.15.21_pm.png?w=620 620w,https://media.sellfy.store/images/UmASCDCP/fdiI/screenshot_2025-04-18_at_4.15.21_pm.png?w=600 600w,https://media.sellfy.store/images/UmASCDCP/fdiI/screenshot_2025-04-18_at_4.15.21_pm.png?w=580 580w,https://media.sellfy.store/images/UmASCDCP/fdiI/screenshot_2025-04-18_at_4.15.21_pm.png?w=460 460w,https://media.sellfy.store/images/UmASCDCP/fdiI/screenshot_2025-04-18_at_4.15.21_pm.png?w=440 440w,https://media.sellfy.store/images/UmASCDCP/fdiI/screenshot_2025-04-18_at_4.15.21_pm.png?w=300 300w,https://media.sellfy.store/images/UmASCDCP/fdiI/screenshot_2025-04-18_at_4.15.21_pm.png?w=260 260w\"\n  sizes=\"(min-width: 620px) 620px, 100w\"\n  data-width=\"970\"\n  data-height=\"798\"\n  data-original=\"https://media.sellfy.store/images/UmASCDCP/fdiI/screenshot_2025-04-18_at_4.15.21_pm.png\"\n  onload=\"this.style.height=\u0027auto\u0027\"\u003e",
662        kind: 'image',
663        url: 'https://media.sellfy.store/images/UmASCDCP/fdiI/screenshot_2025-04-18_at_4.15.21_pm.png?w=620',
664        id: '680ff5855a54f26dc25b14a8'
665      },]
666  };
667</script>
667
668
669
670<script async defer src="https://assets.sellfy.store/static/gen/packed_store_account.9f9efe87.js"></script>
670
671            
672              <div
673  class="footer module small "
674  style="background-color:rgba(0, 0, 0, 0);background-image:url();background-position:center center;background-size:cover;color:rgba(34, 34, 34, 1.0);--height: 60.0px;
675--padding: 60.0px 20.0px 60.0px 20.0px;
676--max-width: 100.0%;">
677  
678  <div class="container">
679    <div class="footer-items">
680      <div class="left">
681        <div class="menu"><a class="item store-nav-item"
682               href="https://shop.vjlab.ai/vj-streaming-app-privacy-policy/"
683               target="_self"
684               rel="noopener"
685              >
686              VJ App Privacy Policy
687            </a><a class="item store-nav-item"
688               href="https://shop.vjlab.ai/tutorials/"
689               target="_self"
690               rel="noopener"
691              >
692              VJLab Software Tutorials
693            </a></div></div>
694      <div class="spacer"></div>
695      <div class="right"><div class="menu"><a class="item" href="https://www.instagram.com/vjlabai" rel="noopener noreferrer" target="_blank">
696                <span class="icon-container">
697                  <svg
698xmlns="http://www.w3.org/2000/svg"
699fill="currentColor"
700viewBox="0 0 24 24"
701>
702<title>Instagram</title>
703<path
704  d="M12 0C8.74 0 8.333.015 7.053.072 5.775.132 4.905.333 4.14.63c-.789.306-1.459.717-2.126 1.384S.935 3.35.63 4.14C.333 4.905.131 5.775.072 7.053.012 8.333 0 8.74 0 12s.015 3.667.072 4.947c.06 1.277.261 2.148.558 2.913.306.788.717 1.459 1.384 2.126.667.666 1.336 1.079 2.126 1.384.766.296 1.636.499 2.913.558C8.333 23.988 8.74 24 12 24s3.667-.015 4.947-.072c1.277-.06 2.148-.262 2.913-.558.788-.306 1.459-.718 2.126-1.384.666-.667 1.079-1.335 1.384-2.126.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913-.306-.789-.718-1.459-1.384-2.126C21.319 1.347 20.651.935 19.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012 15.26 0 12 0zm0 2.16c3.203 0 3.585.016 4.85.071 1.17.055 1.805.249 2.227.415.562.217.96.477 1.382.896.419.42.679.819.896 1.381.164.422.36 1.057.413 2.227.057 1.266.07 1.646.07 4.85s-.015 3.585-.074 4.85c-.061 1.17-.256 1.805-.421 2.227-.224.562-.479.96-.899 1.382-.419.419-.824.679-1.38.896-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211 0-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421-.569-.224-.96-.479-1.379-.899-.421-.419-.69-.824-.9-1.38-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844 0-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689 1.379-.898.42-.166 1.051-.361 2.221-.421 1.275-.045 1.65-.06 4.859-.06l.045.03zm0 3.678c-3.405 0-6.162 2.76-6.162 6.162 0 3.405 2.76 6.162 6.162 6.162 3.405 0 6.162-2.76 6.162-6.162 0-3.405-2.76-6.162-6.162-6.162zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm7.846-10.405c0 .795-.646 1.44-1.44 1.44-.795 0-1.44-.646-1.44-1.44 0-.794.646-1.439 1.44-1.439.793-.001 1.44.645 1.44 1.439z"
705></path></svg
706>
707                </span>
708              </a></div><div class="basic-select language-switcher store-language">
709            <select aria-label="Select language"><option value="en" selected>
710                English
711              </option><option value="es" >
712                Español
713              </option><option value="pt" >
714                Português
715              </option><option value="fr" >
716                Français
717              </option><option value="de" >
718                Deutsch
719              </option><option value="it" >
720                Italiano
721              </option><option value="ru" >
722                Русский
723              </option></select>
724            <div class="icon-container">
725              <svg
726                xmlns="http://www.w3.org/2000/svg"
727
728
729                viewBox="0 0 24 24"
730                fill="none"
731                stroke="currentColor"
732                stroke-width="2"
733                stroke-linecap="round"
734                stroke-linejoin="round"
735                class="icon"
736              >
737                <polyline points="6 9 12 15 18 9"></polyline>
738              </svg>
739            </div>
740          </div></div>
741    </div>
742  </div><hr style="background-color: rgba(34, 34, 34, 0.08)!important;">
743    <div class="bottom-container">
744      <div class="copyright-container">
745        <div class="copyright" style="color: rgba(34, 34, 34, 0.4);">© 2025. All rights reserved.</div><a class="powered-by" rel="noopener noreferrer" aria-label="Made with Sellfy" href="https://sellfy.com/?utm_source=sellfy+stores&utm_medium=poweredby&utm_campaign=vjlab" target="_blank">
746            <svg class="slfy-logo" viewBox="0 0 136 24" aria-hidden="true" focusable="false">
747              <path d="M0 17.2787V6.07869H1.888L5.68 13.6467L9.456 6.07869H11.36V17.2787H9.76V8.87869L6.288 15.7107H5.056L1.6 8.89469V17.2787H0Z" fill="currentColor"/>
748              <path d="M16.2795 17.4707C15.6182 17.4707 15.0688 17.3587 14.6315 17.1347C14.1942 16.9107 13.8688 16.612 13.6555 16.2387C13.4422 15.8547 13.3355 15.444 13.3355 15.0067C13.3355 14.4734 13.4742 14.02 13.7515 13.6467C14.0288 13.2627 14.4235 12.9694 14.9355 12.7667C15.4475 12.564 16.0608 12.4627 16.7755 12.4627H18.8715C18.8715 11.9934 18.8022 11.604 18.6635 11.2947C18.5248 10.9854 18.3168 10.756 18.0395 10.6067C17.7728 10.4467 17.4315 10.3667 17.0155 10.3667C16.5355 10.3667 16.1248 10.484 15.7835 10.7187C15.4422 10.9427 15.2288 11.2787 15.1435 11.7267H13.5435C13.6075 11.1614 13.7995 10.6814 14.1195 10.2867C14.4502 9.88136 14.8715 9.57202 15.3835 9.35869C15.8955 9.13469 16.4395 9.02269 17.0155 9.02269C17.7728 9.02269 18.4075 9.15602 18.9195 9.42269C19.4315 9.68936 19.8155 10.068 20.0715 10.5587C20.3382 11.0387 20.4715 11.6147 20.4715 12.2867V17.2787H19.0795L18.9515 15.9187C18.8342 16.132 18.6955 16.3347 18.5355 16.5267C18.3755 16.7187 18.1835 16.884 17.9595 17.0227C17.7462 17.1614 17.4955 17.268 17.2075 17.3427C16.9302 17.428 16.6208 17.4707 16.2795 17.4707ZM16.5835 16.1747C16.9248 16.1747 17.2342 16.1054 17.5115 15.9667C17.7888 15.828 18.0235 15.6414 18.2155 15.4067C18.4182 15.1614 18.5675 14.8894 18.6635 14.5907C18.7702 14.2814 18.8288 13.9667 18.8395 13.6467V13.5987H16.9355C16.4768 13.5987 16.1035 13.6574 15.8155 13.7747C15.5382 13.8814 15.3355 14.0307 15.2075 14.2227C15.0795 14.4147 15.0155 14.6387 15.0155 14.8947C15.0155 15.1614 15.0742 15.3907 15.1915 15.5827C15.3195 15.764 15.5008 15.908 15.7355 16.0147C15.9702 16.1214 16.2528 16.1747 16.5835 16.1747Z" fill="currentColor"/>
749              <path d="M26.0977 17.4707C25.3298 17.4707 24.6524 17.2894 24.0658 16.9267C23.4791 16.5534 23.0204 16.052 22.6898 15.4227C22.3698 14.7827 22.2097 14.0574 22.2097 13.2467C22.2097 12.4254 22.3698 11.7 22.6898 11.0707C23.0204 10.4414 23.4791 9.94536 24.0658 9.58269C24.6631 9.20936 25.3458 9.02269 26.1138 9.02269C26.7431 9.02269 27.2978 9.15069 27.7778 9.40669C28.2577 9.65202 28.6311 10.004 28.8978 10.4627V5.75869H30.4978V17.2787H29.0578L28.8978 16.0307C28.7378 16.276 28.5298 16.5107 28.2738 16.7347C28.0177 16.948 27.7084 17.124 27.3458 17.2627C26.9831 17.4014 26.5671 17.4707 26.0977 17.4707ZM26.3538 16.0787C26.8551 16.0787 27.2978 15.9614 27.6818 15.7267C28.0658 15.492 28.3591 15.1614 28.5618 14.7347C28.7751 14.308 28.8818 13.812 28.8818 13.2467C28.8818 12.6814 28.7751 12.1907 28.5618 11.7747C28.3591 11.348 28.0658 11.0174 27.6818 10.7827C27.2978 10.5374 26.8551 10.4147 26.3538 10.4147C25.8738 10.4147 25.4418 10.5374 25.0578 10.7827C24.6737 11.0174 24.3751 11.348 24.1618 11.7747C23.9484 12.1907 23.8417 12.6814 23.8417 13.2467C23.8417 13.812 23.9484 14.308 24.1618 14.7347C24.3751 15.1614 24.6737 15.492 25.0578 15.7267C25.4418 15.9614 25.8738 16.0787 26.3538 16.0787Z" fill="currentColor"/>
750              <path d="M36.3336 17.4707C35.5656 17.4707 34.883 17.2947 34.2856 16.9427C33.6883 16.5907 33.219 16.1 32.8776 15.4707C32.547 14.8414 32.3816 14.1107 32.3816 13.2787C32.3816 12.4254 32.547 11.684 32.8776 11.0547C33.219 10.4147 33.6883 9.91869 34.2856 9.56669C34.883 9.20402 35.5763 9.02269 36.3656 9.02269C37.155 9.02269 37.8323 9.19869 38.3976 9.55069C38.963 9.90269 39.4003 10.372 39.7096 10.9587C40.019 11.5347 40.1736 12.1747 40.1736 12.8787C40.1736 12.9854 40.1683 13.1027 40.1576 13.2307C40.1576 13.348 40.1523 13.4814 40.1416 13.6307H33.5496V12.4947H38.5736C38.5416 11.8227 38.3176 11.3 37.9016 10.9267C37.4856 10.5427 36.9683 10.3507 36.3496 10.3507C35.9123 10.3507 35.5123 10.452 35.1496 10.6547C34.787 10.8467 34.4936 11.1347 34.2696 11.5187C34.0563 11.892 33.9496 12.3667 33.9496 12.9427V13.3907C33.9496 13.988 34.0563 14.4947 34.2696 14.9107C34.4936 15.316 34.787 15.6254 35.1496 15.8387C35.5123 16.0414 35.907 16.1427 36.3336 16.1427C36.8456 16.1427 37.267 16.0307 37.5976 15.8067C37.9283 15.5827 38.1736 15.2787 38.3336 14.8947H39.9336C39.795 15.3854 39.5603 15.828 39.2296 16.2227C38.899 16.6067 38.4883 16.9107 37.9976 17.1347C37.5176 17.3587 36.963 17.4707 36.3336 17.4707Z" fill="currentColor"/>
751              <path d="M47.677 17.2787L45.309 9.21469H46.893L48.653 15.9347L48.349 15.9187L50.301 9.21469H52.093L54.045 15.9187L53.741 15.9347L55.485 9.21469H57.101L54.733 17.2787H53.085L51.037 10.2867H51.357L49.309 17.2787H47.677Z" fill="currentColor"/>
752              <path d="M58.657 17.2787V9.21469H60.257V17.2787H58.657ZM59.473 7.69469C59.1637 7.69469 58.9077 7.59869 58.705 7.40669C58.513 7.21469 58.417 6.96936 58.417 6.67069C58.417 6.38269 58.513 6.14802 58.705 5.96669C58.9077 5.77469 59.1637 5.67869 59.473 5.67869C59.7717 5.67869 60.0223 5.77469 60.225 5.96669C60.4277 6.14802 60.529 6.38269 60.529 6.67069C60.529 6.96936 60.4277 7.21469 60.225 7.40669C60.0223 7.59869 59.7717 7.69469 59.473 7.69469Z" fill="currentColor"/>
753              <path d="M65.873 17.2787C65.361 17.2787 64.9183 17.1987 64.545 17.0387C64.1717 16.8787 63.8837 16.612 63.681 16.2387C63.4783 15.8654 63.377 15.3587 63.377 14.7187V10.5747H61.985V9.21469H63.377L63.569 7.19869H64.977V9.21469H67.265V10.5747H64.977V14.7347C64.977 15.1934 65.073 15.508 65.265 15.6787C65.457 15.8387 65.7877 15.9187 66.257 15.9187H67.185V17.2787H65.873Z" fill="currentColor"/>
754              <path d="M69.0294 17.2787V5.75869H70.6294V10.5267C70.896 10.0574 71.264 9.68936 71.7334 9.42269C72.2134 9.15602 72.7414 9.02269 73.3174 9.02269C73.9574 9.02269 74.5067 9.15602 74.9654 9.42269C75.424 9.67869 75.776 10.068 76.0214 10.5907C76.2667 11.1027 76.3894 11.748 76.3894 12.5267V17.2787H74.8054V12.6867C74.8054 11.94 74.6454 11.3747 74.3254 10.9907C74.0054 10.596 73.5307 10.3987 72.9014 10.3987C72.4747 10.3987 72.0907 10.5 71.7494 10.7027C71.408 10.9054 71.136 11.204 70.9334 11.5987C70.7307 11.9827 70.6294 12.452 70.6294 13.0067V17.2787H69.0294Z" fill="currentColor"/>
755              <path d="M93.2277 11.09C92.4523 10.4228 91.3795 9.86091 90.04 9.41977C89.8662 9.36601 89.5314 9.27061 89.0449 9.13621C88.5574 9.00129 87.8253 8.77307 87.4281 8.62549C86.9981 8.46527 86.7889 8.20754 86.7889 7.9029C86.7889 7.23091 87.4455 6.8899 88.7401 6.8899C89.5314 6.8899 90.3881 7.02746 91.2866 7.29942C92.1037 7.54134 92.8289 7.84756 93.4443 8.21018V4.88393C91.9949 4.12286 90.3992 3.73706 88.7 3.73706C87.0007 3.73706 85.6211 4.10758 84.636 4.83808C83.6709 5.56383 83.1818 6.6016 83.1818 7.92346C83.1818 10.0206 84.1437 11.2139 86.8903 12.0519L87.9288 12.356
7555L89.2134 12.7428C89.337 12.784 89.4437 12.8203 89.5366 12.8535C90.2275 13.1207 90.6976 13.5197 90.7309 13.9651C90.732 13.982 90.733 13.9988 90.733 14.0157C90.733 14.8089 89.974 15.2116 88.4765 15.2116C87.5353 15.2116 86.5401 15.0187 85.5181 14.6381C84.534 14.2729 83.7491 13.8433 83.1818 13.359V16.8786C84.6349 17.8648 86.4641 18.3644 88.6186 18.3644C90.3157 18.3644 91.7102 17.9533 92.7629 17.1422C93.823 16.3226 94.3607 15.2226 94.3607 13.8739C94.3607 12.6717 93.9794 11.7346 93.2277 11.09ZM100.493 7.65677C98.8806 7.65677 97.5648 8.17486 96.5808 9.1963C95.5962 10.2188 95.0965 11.4985 95.0965 13.0006C95.0965 14.6213 95.649 15.9336 96.7382 16.9013C97.8442 17.859 99.2033 18.3444 100.777 18.3444C102.483 18.3444 103.84 17.9949 104.81 17.3066V14.7167C103.754 15.2743 102.665 15.5573 101.571 15.5573C100.788 15.5573 100.112 15.4182 99.5598 15.142C98.9999 14.8484 98.6376 14.4294 98.4828 13.896L98.4538 13.7954H105.4V12.9805C105.4 11.411 104.934 10.1244 104.015 9.15413C103.126 8.16063 101.941 7.65677 100.493 7.65677ZM98.449 12.0434L98.4601 11.9549C98.5298 11.3973 98.7364 10.9514 99.0739 10.6283C99.413 10.3036 99.8356 10.1392 100.329 10.1392C100.797 10.1392 101.2 10.3115 101.526 10.651C101.851 10.9888 102.023 11.43 102.037 11.9623L102.039 12.0429L98.449 12.0434ZM109.932 14.5643V4.02167H106.487V15.4177C106.487 17.3873 107.426 18.3444 109.359 18.3444C110.147 18.3444 110.791 18.2247 111.275 17.9886V15.3381C111.115 15.4024 110.937 15.435 110.743 15.435C110.212 15.435 109.932 15.1341 109.932 14.5643ZM132.442 8.15167L130.31 14.2903L128.038 8.15167H122.309V7.6594C122.309 6.87936 122.753 6.48407 123.629 6.48407C124.22 6.48407 124.788 6.57578 125.32 6.75603V4.16029C124.543 3.87937 123.618 3.73706 122.571 3.73706C121.377 3.73706 120.451 4.06383 119.818 4.70842C119.185 5.35354 118.864 6.22318 118.864 7.29363V8.15115H117.134V10.9603H118.864V18.0798H122.309V10.9603H125.643L128.664 17.8121L128.651 17.8432C128.429 18.3823 128.16 18.7697 127.853 18.9927C127.541 19.2325 127.142 19.3542 126.665 19.3542C126.102 19.3542 125.568 19.2109 125.075 18.9273V21.8245C125.716 22.1155 126.463 22.263 127.296 22.263C129.26 22.263 130.681 21.2205 131.518 19.1645L136 8.15115H132.443L132.442 8.15167ZM115.694 14.5643V4.02167H112.249V15.4177C112.249 17.3873 113.189 18.3444 115.122 18.3444C115.909 18.3444 116.554 18.2247 117.038 17.9886V15.3381C116.878 15.4024 116.7 15.435 116.506 15.435C115.975 15.435 115.694 15.1341 115.694 14.5643Z" fill="currentColor"/>
756            </svg>
757          </a></div>
758    </div></div>
759            </div><div>
759<script class="template" type="text/template" id="shoppingCartItemsView">
760  <div class="items scrollable product-listing">
761    <% _.each(model.items, function(item){ %>
762      <% const outOfStock = !item.stock.unlimited && item.quantity > item.stock.quantity %>
763      <div class="ui product item <% if(outOfStock) { %> out-of-stock<% } %>">
764        <div class="details column">
765          <a class="preview-description" href="<%- item.product.url %>">
766            <h3 class="product-title">
767              <%- item.product.name %>
768            </h3>
769            <div class="variant-info">
770              <% if(item.product.variants.length > 1) { %>
771                <% if(item.filled_forms && !item.filled_forms.length) { %>
772                  <div class="info-line"><%- item.product.selected_variant %></div>
773                <% } else { %>
774                  <div class="info-line">Variant: <%- item.product.selected_variant %></div>
775                <% } %>
776              <% } %>
777              <% if(item.filled_forms && item.filled_forms.length) { %>
778                <% item.filled_forms.map((form) => { %>
779                  <% form.fields.map((field) => { %>
780                    <% if(field.value) { %>
781                      <div class="info-line" title="<%- field.value %>">
782                        <%- field.label %>: <%- formatDisplayField(field.value, field._cls) %>
783                      </div>
784                    <% } %>
785                  <% }); %>
786                <% }); %>
787              <% } %>
788              <div class="info-line oos-message">Only <%- item.stock.quantity %>  items left in stock.</div>
789            </div>
790          </a>
791        </div>
792        <div class="price column">
793          <div class="product-price">
794            <% if(item.discount && item.discount.amount) { %>
795              <span class="old-price"><%= item.original_price.label %></span>
796            <% } %>
797            <div class="price">
798              <% if(item.quantity > 1) { %>
799                <span class="locked-quantity"><%- item.quantity %> ×</span>
800              <% } %>
801              <%= item.adjusted_price.label %>
802            </div>
803          </div>
804          <div class="remove-item" data-id="<%- item.id %>">Remove</div>
805        </div>
806      </div>
807    <% }) %>
808  </div>
809  <div class="no-items">
810    <p>
811      Your shopping cart is empty.
812    </p>
813    <p class="continue-column">
814      <a class="ui tiny basic button" href="<%- storeUrl %>"> <i class="icon dripicons-chevron-left"></i>Continue shopping</a>
815    </p>
816  </div>
817</script>
817
818
819<script class="template" type="text/template" id="shoppingCartTotalsView">
820  <div class="ui middle aligned stackable grid totals-row">
821
822    <% if(model.is_coupon_available){ %>
823      <div class="row coupon-code">
824        <div class="six wide mobile six wide tablet seven wide computer column text-column">
825          Have a coupon code?
826        </div>
827        <div class="six wide mobile six wide tablet five wide computer column input-column">
828          <form class="cart-form">
829            <div class="discount-code-wrap">
830              <div class="ui fluid action tiny input discount-code">
831                <input type="text" name="discount_code" placeholder="Coupon code">
832                <button class="ui basic button apply-discount-code">Apply</button>
833              </div>
834            </div>
835          </form>
836        </div>
837      </div>
838    <% } %>
839    <div class="row summary">
840      <div class="six wide mobile six wide tablet four wide computer column continue-column"></div>
841      <div class="six wide mobile six wide tablet eight wide computer column content-column">
842        <div class="ui grid">
843          <div class="six wide mobile four wide tablet six wide computer right aligned column">
844            <div class="subtotal-text">Subtotal:</div>
845            <% if(model.discount.amount) { %>
846              <div class="discount-text">Discount:</div>
847            <% } %>
848            <% if(model.is_shipping_required) { %>
849            <div class="shipping-text">Shipping:</div>
850            <% } %>
851            <% if(model.handling_fee.amount) { %>
852              <div class="handle-fee-text">Handling fee:</div>
853            <% } %>
854            <% if(model.setup_fee.amount) { %>
855            <div class="handle-fee-text">Setup fee:</div>
856          <% } %>
857          <% if(model.tax.amount) { %>
858              <div class="tax-text">Tax (<%= model.tax.percents %>%):</div>
859            <% } %>
860            </div>
861          <div class="six wide mobile eight wide tablet six wide computer right aligned column">
862            <div class="subtotal"><%= model.sub_total.label %></div>
863            <% if(model.discount.amount) { %>
864              <div class="discount"><%= model.discount.label %></div>
865            <% } %>
866            <% if(model.is_shipping_required) { %>
867              <div class="shipping"><%= model.shipping.label %></div>
868            <% } %>
869            <% if(model.handling_fee.amount) { %>
870              <div class="handle-fee"><%= model.handling_fee.label %></div>
871          <% } %>
872          <% if(model.setup_fee.amount) { %>
873            <div class="setup-fee"><%= model.setup_fee.label %></div>
874            <% } %>
875            <% if(model.tax.amount) { %>
876              <div class="tax"><%= model.tax.label %></div>
877            <% } %>
878          </div>
879        </div>
880      </div>
881    </div>
882    <div class="row total">
883      <div class="six wide mobile six wide tablet four wide computer column continue-column"></div>
884      <div class="six wide mobile six wide tablet eight wide computer column content-column">
885        <div class="ui grid">
886          <% if(model.setup_fee.amount) { %>
887            <div class="row">
888              <div class="six wide mobile four wide tablet six wide computer right aligned column">
889                <div class="title total-text">Total:</div>
890              </div>
891              <div class="six wide mobile eight wide tablet six wide computer right aligned column total-amount" id="total_amount">
892                <div class="title total">
893                  <%= model.total.label %>
894                  <% if (model.interval_short) { %>
895                  <div class="subtitle">
896                    <%= model.total_wo_setup_fee %> billed <%= model.interval %>ly
897                  </div>
898                  <% } %>
899                </div>
900              </div>
901            </div>
902          <% } else { %>
903          <div class="row">
904            <div class="six wide mobile four wide tablet six wide computer right aligned column">
905              <div class="title total-text">Total:</div>
906            </div>
907            <div class="six wide mobile eight wide tablet six wide computer right aligned column total-amount" id="total_amount">
908              <div class="title total">
909                <%= model.total.label %><% if (model.interval_short) { %>/<%= model.interval_short %><% } %>
910              </div>
911            </div>
912          </div>
913          <% } %>
914        </div>
915      </div>
916    </div>
917    <% if (model.interval) { %>
918    <div class="row right aligned">
919      <div class="twelve wide column">
920        <p class="subscription-notice">
921          Note: Your subscription is automatically renewed unless cancelled during the subscription period.
922        </p>
923      </div>
924    </div>
925    <% } %>
926  </div>
927</script>
927
928
929<script class="template" type="text/template" id="shoppingCartSubTotalsView">
930  <div class="totals-layout">
931    <div class="left-column">
932      <h3 class="ui paragraph header"><span class="subtotal"><%= model.total.label %></span></h3>
933    </div>
934    <div class="right-column">
935      <a class="cart-link" href="<%= checkoutUrl %>cart">
936        View cart
937      </a>
938      <a class="fr_primary_button centered checkout-button" href="<%= checkoutUrl %>">
939        Checkout
940      </a>
941    </div>
942  </div>
943</script>
943
944
945<script class="template" type="text/template" id="shoppingCartWidgetView">
946  <div class="ui segment content">
947    <div class="header">
948      <h4 class="ui header">Shopping cart</h4>
949    </div>
950    <%= items %>
951    <div class="order-totals">
952      <%= subtotals %>
953    </div>
954  </div>
955</script>
955
956
957<script class="template" type="text/template" id="upsellApproveText">Adding...</script>
957
958
959<script class="template" type="text/template" id="userPanel">
960  <div class="panel-content">
961    <div class="panel-info-block">
962      <% if(window.GLOBALS.STORE_IN_MAINTENANCE) { %>Your store is in maintenance mode<% } else { %>This is your store<% } %>
963      <span> (customers won't see this banner)</span>
964    </div>
965    <div class="panel-action-block">
966      <div class="ui large circular black labels">
967        <% if(window.GLOBALS.STORE_IN_MAINTENANCE) { %>
968          <a class="ui label customize" href="<%- window.GLOBALS.ADMIN_URL %>settings/general#storeMaintenance">
969            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" fill="currentColor">
970              <path d="M288 64c-140.8 0-229.3 128-256 192 26.7 64 115.2 192 256 192 140.8 0 229.3-128 256-192-26.7-64-115.2-192-256-192zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1 3.3 7.9 3.3 16.7 0 24.6-14.9 35.7-46.2 87.7-93 131.1-47.1 43.7-111.8 80.6-192.6 80.6S142.5 443.2 95.4 399.4c-46.8-43.5-78.1-95.4-93-131.1-3.3-7.9-3.3-16.7 0-24.6 14.9-35.7 46.2-87.7 93-131.1zM288 352c53 0 96-43 96-96 0-43.3-28.7-79.9-68.1-91.9 2.7 8.8 4.1 18.2 4.1 27.9 0 53-43 96-96 96-9.7 0-19.1-1.4-27.9-4.1 11.9 39.4 48.6 68.1 91.9 68.1zM160.2 263.8c-.2-2.6-.2-5.2-.2-7.8 0-12.2 1.7-23.9 4.9-35 .3-.9 .5-1.8 .8-2.7 12.4-40.4 44.3-72.2 84.7-84.7 11.9-3.7 24.6-5.6 37.7-5.6 2.5 0 5 .1 7.4 .2l.4 0c67.1 4 120.2 59.7 120.2 127.8 0 70.7-57.3 128-128 128-68.1 0-123.8-53.2-127.8-120.2zm32.1-16.1c9.3 5.3 20.1 8.4 31.6 8.4 35.3 0 64-28.7 64-64 0-11.5-3-22.3-8.4-31.6-46.4 4-83.3 40.9-87.3 87.3z"/>
971            </svg>Stop maintenance</a>
972        <% } %>
973        <% if(product_id) { %>
974          <a class="ui label customize" href="<%- window.GLOBALS.ADMIN_URL %>products/<%- product_type %>/<%- product_id %>">
975            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor">
976              <path d="M404 32c-10.7 0-20.9 4.2-28.5 11.8l-58.5 58.5 92.7 92.7 58.5-58.5c7.6-7.6 11.8-17.8 11.8-28.5s-4.2-20.9-11.8-28.5L432.5 43.8C424.9 36.2 414.7 32 404 32zM93 326.3L185.7 419 387 217.7 294.3 125 93 326.3zM72 350.6c-2 3.7-3.6 7.7-4.8 11.8L35.5 476.5 149.6 444.8c4.1-1.1 8.1-2.7 11.8-4.8L72 350.6zM352.9 21.2C366.4 7.6 384.8 0 404 0s37.6 7.6 51.1 21.2l35.7 35.7C504.4 70.4 512 88.8 512 108s-7.6 37.6-21.2 51.1l-294 294c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 511.1c-8.3 2.3-17.3 0-23.4-6.2s-8.5-15.1-6.2-23.4L36.4 353.8c4.1-14.6 11.8-27.9 22.6-38.7l294-294z"/>
977            </svg>Edit product</a>
978        <% } %>
979        <% if(window.GLOBALS.STORE_CUSTOMIZE_ALLOWED) { %>
980          <a class="ui label customize" href="<%- window.GLOBALS.ADMIN_URL %>store/edit/">
981            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor">
982              <path d="M0 416c0-8.8 7.2-16 16-16l65.6 0c7.4-36.5 39.7-64 78.4-64s71 27.5 78.4 64L496 400c8.8 0 16 7.2 16 16s-7.2 16-16 16l-257.6 0c-7.4 36.5-39.7 64-78.4 64s-71-27.5-78.4-64L16 432c-8.8 0-16-7.2-16-16zm208 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 256a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-48-80c38.7 0 71 27.5 78.4 64l65.6 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-65.6 0c-7.4 36.5-39.7 64-78.4 64s-71-27.5-78.4-64L16 272c-8.8 0-16-7.2-16-16s7.2-16 16-16l257.6 0c7.4-36.5 39.7-64 78.4-64zM192 48a48 48 0 1 0 0 96 48 48 0 1 0 0-96zm78.4 32L496 80c8.8 0 16 7.2 16 16s-7.2 16-16 16l-225.6 0c-7.4 36.5-39.7 64-78.4 64s-71-27.5-78.4-64L16 112c-8.8 0-16-7.2-16-16S7.2 80 16 80l97.6 0C121 43.5 153.3 16 192 16s71 27.5 78.4 64z"/>
983            </svg>Customize</a>
984        <% } %>
985        <a class="ui label" href="<%- window.GLOBALS.ADMIN_URL %>dashboard">
986          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor">
987            <path d="M32 256c0-123.7 100.3-224 224-224 8.8 0 16-7.2 16-16S264.8 0 256 0C114.6 0 0 114.6 0 256S114.6 512 256 512c8.8 0 16-7.2 16-16s-7.2-16-16-16C132.3 480 32 379.7 32 256zM395.3 132.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L457.4 240 176 240c-8.8 0-16 7.2-16 16s7.2 16 16 16l281.4 0-84.7 84.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l112-112c6.2-6.2 6.2-16.4 0-22.6l-112-112z"/>
988          </svg>Dashboard</a>
989      </div>
990    </div>
991  </div>
992</script>
992
993
994<script class="template" type="text/template" id="paypalWarning">
995  <div class="warning-content">
996    <div class="warning-info-block">Please use a different credit card and email address than what's saved to the PayPal account that you're using to receive payments<span> (customers won't see this banner)</span>
997    </div>
998    <div class="warning-action-block">
999      <span class="ui label circular close-icon">
1000        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" fill="currentColor">
1001          <path d="M379.3 91.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L192 233.4 27.3 68.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L169.4 256 4.7 420.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L192 278.6 356.7 443.3c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L214.6 256 379.3 91.3z"/>
1002        </svg>
1003      </span>
1004    </div>
1005  </div>
1006</script>
1006
1007
1008<script class="template" type="text/template" id="upsellModal">
1009  <form class="ui modal upsell-modal">
1010    <i class="icon close"></i>
1011    <div class="header">
1012      <%- upsell.message %>
1013    </div>
1014    <div class="content">
1015
1016      <div class="product-card">
1017        <div class="image-container">
1018          <%= item.product.image.html %>
1019        </div>
1020          <h4 class="ui header name"><%- item.product.name %></h4>
1021        <% if (item.discount.amount) { %>
1022          <div class="price-old"><%= item.original_price.label %></div>
1023        <% } %>
1024        <% if (item.is_free) { %>
1025          <h3 class="ui header price">FREE</h3>
1026        <% } else { %>
1027          <h3 class="ui header price"><%= item.adjusted_price.label %></h3>
1028        <% } %>
1029      </div>
1030
1031      <% if (item.product.variants && item.product.variants.length > 1) { %>
1032        <div class="ui form product-variant">
1033          <div class="field">
1034            <label for="product_variant">Select variant:</label>
1035            <select id="product_variant" name="variant">
1036              <option selected disabled>
1037                Please select...
1038              </option>
1039              <% item.product.variants.forEach(variant => { %>
1040              <option value="<%- variant.id %>"
1041                      data-price="<%- variant.upsell_original_price.label %>"
1042                      data-total="<%- variant.upsell_adjusted_price.label %>"
1043                      data-image-html="<%- variant.image.html %>"
1044                      data-image-url="<%- variant.image.html %>"
1045                      data-outofstock="<%- variant.out_of_stock %>"
1046              >
1047                <%- variant.name %>
1048              </option>
1049              <% }); %>
1050            </select>
1051          </div>
1052        </div>
1053      <% } %>
1054    </div>
1055    <div class="actions">
1056      <a class="fr_primary_button fr_large approve button <%- item.product.variants && item.product.variants.length > 1 || item.product.variants[0].out_of_stock ? 'ui disabled' : '' %>">
1057        <% if(item.product.variants && item.product.variants[0].out_of_stock) { %>
1058          Out of stock
1059        <% } else { %>
1060          Add to cart
1061        <% } %>
1062      </a>
1063      <div class="cancel-action close">
1064        <span>No thanks</span>
1065      </div>
1066    </div>
1067    <input type="hidden" name="product" value="<%- item.product.key %>">
1068    <input type="hidden" name="discount_id" value="<%- upsell.id %>">
1069  </form>
1070</script>
1070
1071
1072<script class="template" type="text/template" id="failedToSendMessageError">Failed sending message!</script>
vendor: 1 bytes, line 1072
1072
1073<script class="template" type="text/template" id="defaultErrorHeader">Something went wrong.</script>
vendor: 1 bytes, line 1073
1073
1074<script class="template" type="text/template" id="defaultErrorBody">Something went wrong. Please reload page and try again</script>
vendor: 1 bytes, line 1074
1074
1075<script class="template" type="text/template" id="addToCart">Add to cart</script>
vendor: 1 bytes, line 1075
1075
1076<script class="template" type="text/template" id="outOfStock">Out of stock</script>
vendor: 1 bytes, line 1076
1076
1077<script class="template" type="text/template" id="itemAdded">Item added!</script>
vendor: 1 bytes, line 1077
1077
1078<script class="template" type="text/template" id="lowStock">Only {0} items left in stock.</script>
1078
1079
1080<script class="template" type="text/template" id="PODSizeGuideView">
1081  <div class="modal-title">Size guide</div>
1082  <div class="ui pointing secondary menu">
1083    <% if (product_measure) { %>
1084    <a class="item" data-tab="product_measure">Product measurements</a>
1085    <% } %>
1086    <% if (measure_yourself) { %>
1087    <a class="item" data-tab="measure_yourself">Measure yourself</a>
1088    <% } %>
1089  </div>
1090
1091  <% if (product_measure) { %>
1092    <div class="ui tab" data-tab="product_measure">
1093      <div class="tab-content">
1094        <div class="description">
1095          <%= product_measure.description %>
1096        </div>
1097        <% if (product_measure.image_url || product_measure.image_description) { %>
1098        <div class="image-box">
1099          <div class="ui grid stackable">
1100            <div class="four wide column">
1101              <img src="<%- product_measure.image_url %>" alt="">
1102            </div>
1103            <div class="eight wide column">
1104              <div class="description">
1105                <%= product_measure.image_description %>
1106              </div>
1107            </div>
1108          </div>
1109        </div>
1110        <% } %>
1111        <div class="units">
1112          <div class="column">
1113            <h3>Find your size</h3>
1114          </div>
1115          <div class="column">
1116            <select class="ui dropdown select-unit">
1117              <option value="inches" <%= selected(unit, 'inches') %>>Inches</option>
1118              <option value="cm" <%= selected(unit, 'cm') %>>Centimeters</option>
1119            </select>
1120          </div>
1121        </div>
1122        <div class="sizes-table">
1123          <table class="ui very basic table striped unstackable">
1124            <thead>
1125              <tr>
1126                <th>Size Label</th>
1127                <% product_measure.measurements.forEach(function(item){ %>
1128                  <th><%= item.type_label %></th>
1129                <% }) %>
1130              </tr>
1131            </thead>
1132            <tbody>
1133              <% product_measure_table.forEach(function(row){ %>
1134                <tr>
1135                <% row.forEach(function(item) { %>
1136                  <td><%= item %></td>
1137                <% }) %>
1138                </tr>
1139              <% }) %>
1140            </tbody>
1141          </table>
1142        </div>
1143      </div>
1144    </div>
1145  <% } %>
1146  <% if (measure_yourself) { %>
1147    <div class="ui tab" data-tab="measure_yourself">
1148      <div class="tab-content">
1149        <div class="description">
1150          <%= measure_yourself.description %>
1151        </div>
1152        <% if (measure_yourself.image_url || measure_yourself.image_description) { %>
1153        <div class="image-box">
1154          <div class="ui grid stackable">
1155            <div class="four wide column">
1156              <img src="<%- measure_yourself.image_url %>" alt="">
1157            </div>
1158            <div class="eight wide column">
1159              <div class="description">
1160                <%= measure_yourself.image_description %>
1161              </div>
1162            </div>
1163          </div>
1164        </div>
1165        <% } %>
1166        <div class="units">
1167          <div class="column">
1168            <h3>Find your size</h3>
1169          </div>
1170          <div class="column">
1171            <select class="ui dropdown select-unit">
1172              <option value="inches" <%= selected(unit, 'inches') %>>Inches</option>
1173              <option value="cm" <%= selected(unit, 'cm') %>>Centimeters</option>
1174            </select>
1175          </div>
1176        </div>
1177        <div class="sizes-table">
1178          <table class="ui very basic table striped unstackable">
1179            <thead>
1180              <tr>
1181                <th>Size Label</th>
1182                <% measure_yourself.measurements.forEach(function(item){ %>
1183                  <th><%= item.type_label %></th>
1184                <% }) %>
1185              </tr>
1186            </thead>
1187            <tbody>
1188              <% measure_yourself_table.forEach(function(row){ %>
1189                <tr>
1190                <% row.forEach(function(item) { %>
1191                  <td><%- item %></td>
1192                <% }) %>
1193                </tr>
1194              <% }) %>
1195            </tbody>
1196          </table>
1197        </div>
1198      </div>
1199    </div>
1200  <% } %>
1201</script>
1201</div>
1201<script src="https://assets.sellfy.store/static/gen/packed_store.libs.e6099e70.js"></script>
1201<script src="https://assets.sellfy.store/static/gen/packed_store.68d54223.js"></script>
1201<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
1202  <div class="pswp__bg"></div>
1203  <div class="pswp__scroll-wrap">
1204    <div class="pswp__container">
1205      <div class="pswp__item"></div>
1206      <div class="pswp__item"></div>
1207      <div class="pswp__item"></div>
1208    </div>
1209    <div class="pswp__ui pswp__ui--hidden">
1210      <div class="pswp__top-bar">
1211          <div class="pswp__counter"></div>
1212          <button type="button" class="pswp__button pswp__button--close" title="Close (Esc)">
1213          </button>
1214          <div class="pswp__preloader">
1215            <div class="pswp__preloader__icn">
1216              <div class="pswp__preloader__cut">
1217                <div class="pswp__preloader__donut"></div>
1218              </div>
1219            </div>
1220          </div>
1221      </div>
1222      <button type="button" class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
1223      </button>
1224      <button type="button" class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
1225      </button>
1226    </div>
1227  </div>
1228</div>
1228<script class="template" type="text/template" id="productPageGalleryView">
1229  <div class="carousel">
1230    <div class="slides">
1231      <% _.each(gallery.models, function(item, index){ %>
1232        <div class="slide <%- index === 1 ? 'active' : '' %>" data-kind="<%- item.get('kind') %>">
1233          <%= item.get('html') %>
1234        </div>
1235      <% }) %>
1236      <% if(gallery.models.length > 1) { %>
1237        <div class="control prev" data-action="prev">
1238          <i class="icon dripicons-chevron-left"></i>
1239        </div>
1240        <div class="control next" data-action="next">
1241          <i class="icon dripicons-chevron-right"></i>
1242        </div>
1243        <% } %>
1244      <div class="control fullscreen" data-action="fullscreen">
1245        <i class="icon dripicons-expand-2"></i>
1246      </div>
1247    </div>
1248    <% if(gallery.length > 1) { %>
1249      <div class="thumbnails">
1250        <div class="rail">
1251        <% _.each(gallery.models, function(item, index){ %>
1252          <div class="gi thumbnail <%- index === 1 ? 'active' : '' %>" style="background-image:url(<%- item.get('url') %>)">
1253          </div>
1254        <% }); %>
1255        </div>
1256      </div>
1257      <div class="ui divider"></div>
1258    <% } %>
1259  </div>
1260</script>
1260<script>
1261    window.GLOBALS.PRODUCT_ID = '680ebe23e13eab626a6ddd3a';
1262    window.GLOBALS.PRODUCT_TYPE = 'product';
1263    window.GLOBALS.PRODUCT_CUSTOM_FIELDS = {"custom_forms": []};
1264  </script>
1264
1265  
1265<script type="text/javascript" src="https://assets.sellfy.store/static/gen/packed_productpage.d8d6812f.js"></script>
1265<script async defer src="https://assets.sellfy.store/static/gen/packed_store_checkout.ec233270.js"></script>
1265
1266
1267    </body>
1268</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.