1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16<!doctype html> 17<html 18 class="no-js" 19 lang="en" 20 21> 22 <head>
22<script data-source-attribution="shopify.event_observer.bootstrap"> 23(function(){let e=navigator,t=`prototype`,n=`sendBeacon`,r=e[n],i=fetch,a=XMLHttpRequest[t],{open:o,send:s}=a,c=`EventListener`,l=`add${c}`,u=`remove${c}`,d=EventTarget[t],f=d[l],p=d[u],m=e=>Error((e=document.currentScript)&&[e?.src,e?.id||e?.dataset?.sourceAttribution]),h=(e=[],t=0)=>(e.p=n=>e[t++%1e3]=n,[e,t=>(e.forEach(e.p=t),e.length=0)]),[g,_]=h(),[v,y]=h(),b,x=new WeakMap,S=e=>e&&g.p([e,b||[m()]]);d[l]=function(e,t,n){let r=this,i=t?.handleEvent||t,a=x.get(t),o=m();i?.call&&!a&&x.set(t,a=function(e){b=[o,e.type];try{i.call(t==i?this:t,e)}finally{b=null}}),v.p([e,o,a,r?.tagName||r+``,r?.id]),f.call(r,e,a||t,n)},d[u]=function(e,t,n){p.call(this,e,x.get(t)||t,n)},a.open=function(e,t){x.set(this,[t+``,e]),o.apply(this,arguments)},a.send=function(e){S(x.get(this)),s.call(this,e)},fetch=(e,t)=>(S([(e?.url||e)+``,t?.method]),i(e,t)),e[n]=(t,n)=>(S([t+``,``]),r.call(e,t,n)),setTimeout(()=>import("//www.getquip.com/cdn/shopifycloud/storefront/assets/storefront/event_observer_reporter-ed358274.js").then(e=>e.$(_,y,f,i,`57677807690`)))})(); 24//# sourceURL=event-observer-collector.js 25</script>
25 26 27 <!-- Google Consent Mode V2 Consentmo --> 28 <!-- Google Consent Mode V2 Advanced Mode integration script for Consentmo GDPR Compliance App -->
29<script id="consentmo-gcmv2-advanced-mode-integration"> 30 const consentOutOfRegion = { 31 analytics: true, 32 marketing: true, 33 functionality: true, 34 adsDataRedaction: false, 35 urlPassthrough: false, 36 }; 37 38 window.dataLayer = window.dataLayer || []; 39 function gtag() { 40 41 42 43 dataLayer.push(arguments); 44 } 45 46 gtag('consent', 'default', { 47 ad_storage: 'granted', 48 ad_personalization: 'granted', 49 ad_user_data: 'granted', 50 analytics_storage: 'granted', 51 functionality_storage: 'granted', 52 personalization_storage:'granted', 53 security_storage: 'granted', 54 wait_for_update: 1500 55 }); 56 57 document.addEventListener('consentmoSignal_onLoad', function(eventData) { 58 const csmLoadSignal = eventData.detail || {isActive:false}; 59 console.log('LIQUID - consentmoSignal_onLoad event', csmLoadSignal); 60 61 if (!csmLoadSignal.isActive) { 62 console.log('LIQUID - isActive false - use consentOutOfRegion'); 63 gtag('consent', 'update', { 64 ad_storage: consentOutOfRegion.marketing ? 'granted' : 'denied', 65 ad_personalization: consentOutOfRegion.marketing ? 'granted' : 'denied', 66 ad_user_data: consentOutOfRegion.marketing ? 'granted' : 'denied', 67 analytics_storage: consentOutOfRegion.analytics ? 'granted' : 'denied', 68 functionality_storage: consentOutOfRegion.functionality ? 'granted' : 'denied', 69 personalization_storage: consentOutOfRegion.functionality ? 'granted' : 'denied', 70 security_storage: 'granted', 71 }); 72 gtag('set', 'ads_data_redaction', consentOutOfRegion.adsDataRedaction); 73 gtag('set', 'url_passthrough', consentOutOfRegion.urlPassthrough); 74 console.log('LIQUID - dataLayer', window.dataLayer); 75 } else { 76 console.log('LIQUID - set default-consent and subscribe consentmoSignal for consent-update'); 77 document.addEventListener('consentmoSignal', function(event) { 78 const csmSignal = event.detail; 79 const consentState = csmSignal.integration?.gcm?.isEnabled ? csmSignal.integration.gcm.state : csmSignal.state; 80 console.log('LIQUID - consentmoSignal event', csmSignal); 81 console.log('LIQUID - dataLayer', window.dataLayer); 82 83 gtag('consent', 'update', consentState); 84 if (csmSignal.integration?.gcm?.isEnabled) { 85 gtag('set', 'ads_data_redaction', csmSignal.integration.gcm.adsDataRedaction); 86 gtag('set', 'url_passthrough', csmSignal.integration.gcm.urlPassthrough); 87 } 88 }); 89 } 90 }); 91</script>
91 92 93 94 <!-- Start of Shoplift scripts --> 95 <!-- 2026-06-03T13:16:06.6661079Z --> 96<style>.shoplift-hide { opacity: 0 !important; }</style> 97<style id="sl-preview-bar-hide">#preview-bar-iframe, #PBarNextFrameWrapper { display: none !important; }</style>
98<script type="text/javascript">(function(rootPath, template, themeRole, themeId, isThemePreview){ /* Generated on 2026-09-24T17:15:01.6045818Z */(function(){"use strict";var te=document.createElement("style");te.textContent=`#shoplift-preview-control{position:fixed;max-width:332px;height:56px;background-color:#141414;z-index:9999;bottom:20px;display:flex;border-radius:8px;box-shadow:13px 22px 7px #0000,9px 14px 7px #00000003,5px 8px 6px #0000000d,2px 4px 4px #00000017,1px 1px 2px #0000001a,0 0 #0000001a;align-items:center;margin:0 auto;left:16px;right:16px;opacity:0;transform:translateY(20px);visibility:hidden;transition:opacity .4s ease-in-out,transform .4s ease-in-out,visibility 0s .4s}#shoplift-preview-control.visible{opacity:1;transform:translateY(0);visibility:visible;transition:opacity .4s ease-in-out,transform .4s ease-in-out,visibility 0s 0s}#shoplift-preview-control *{font-family:Inter,sans-serif;color:#fff;box-sizing:border-box;font-size:16px}#shoplift-preview-variant-title{font-weight:400;line-height:140%;font-size:16px;text-align:start;letter-spacing:-.16px;flex-grow:1;text-wrap:nowrap;overflow:hidden;text-overflow:ellipsis}#shoplift-preview-variant-selector{position:relative;display:block;padding:6px 0;height:100%;min-width:0;flex:1 1 auto}#shoplift-preview-variant-menu-trigger{border:none;cursor:pointer;width:100%;background-color:transparent;padding:0 16px;border-left:1px solid #333;border-right:1px solid #333;height:100%;display:flex;align-items:center;justify-content:start;gap:8px}#shoplift-preview-variant-selector .menu-variant-label{width:24px;height:24px;border-radius:50%;padding:6px;display:flex;justify-content:center;align-items:center;font-size:12px;font-style:normal;font-weight:600;line-height:100%;letter-spacing:-.12px;flex-shrink:0}#shoplift-preview-variant-selector .preview-variant-menu{position:absolute;bottom:110%;transform:translate3d(0,20px,0);visibility:hidden;pointer-events:none;opacity:0;cursor:pointer;background-color:#141414;border:1px solid #141414;border-radius:6px;width:100%;max-height:156px;overflow-y:auto;box-shadow:0 8px 16px #0003;z-index:1;transition:opacity .3s ease-in-out,transform .3s ease-in-out,visibility 0s .3s}#shoplift-preview-variant-selector .preview-variant-menu.preview-variant-menu__visible{visibility:visible;pointer-events:auto;opacity:100;transform:translateZ(0);transition:opacity .3s ease-in-out,transform .3s ease-in-out,visibility 0s 0s}@media screen and (max-width:400px){#shoplift-preview-variant-selector .preview-variant-menu{position:fixed;left:0;right:0;width:auto;bottom:110%}}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item{padding:12px 16px;display:flex;overflow:hidden}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item .menu-variant-label{margin-right:6px}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item span{overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap;white-space:nowrap;color:#f6f6f6;font-size:14px;font-style:normal;font-weight:500}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:hover{background-color:#545454}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:last-of-type{border-bottom-left-radius:6px;border-bottom-right-radius:6px}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:first-of-type{border-top-left-radius:6px;border-top-right-radius:6px}#shoplift-preview-control div:has(#shoplift-exit-preview-button){padding:0 16px}#shoplift-exit-preview-button{padding:6px 8px;font-weight:500;line-height:75%;border-radius:4px;background-color:transparent;border:none;text-decoration:none}#shoplift-exit-preview-button:hover{cursor:pointer;background-color:#333}#shoplift-preview-subscription-warning{position:relative;display:flex;align-items:center;gap:6px;padding:6px 10px;margin:0 4px;border-left:1px solid #333;cursor:help;outline:none}#shoplift-preview-subscription-warning__icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background-color:#f59e0b;color:#141414!important;font-weight:700;font-size:12px!important;line-height:1;flex-shrink:0}#shoplift-preview-subscription-warning__label{font-size:13px!important;font-weight:500;color:#fbbf24!important;text-wrap:nowrap;white-space:nowrap}#shoplift-preview-subscription-warning__tooltip{position:absolute;bottom:calc(100% + 8px);right:0;max-width:320px;width:max-content;padding:10px 12px;border-radius:6px;background-color:#1f1f1f;color:#fff!important;font-size:12px!important;line-height:1.4!important;box-shadow:0 8px 16px #0000004d;z-index:10000;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .2s ease-in-out,transform .2s ease-in-out,visibility 0s .2s;pointer-events:none}#shoplift-preview-subscription-warning__tooltip.shoplift-preview-subscription-warning__tooltip--visible{opacity:1;visibility:visible;transform:translateY(0);transition:opacity .2s ease-in-out,transform .2s ease-in-out,visibility 0s 0s}#shoplift-preview-subscription-warning:focus-visible{box-shadow:inset 0 0 0 2px #f59e0b;border-radius:4px}#shoplift-preview-control:has(#shoplift-preview-subscription-warning){max-width:480px}/*$vite$:1*/`,document.head.appendChild(te);var fe=" daum[ /]| deusu/|(?:^|[^g])news(?!sapphire)|(?<! channel/|google/)google(?!(?:wv|app|/google| pixel))|(?<! cu)bots?(?:\\b|_)|(?<!cam)scan|(?<!lib)http|24x
987|;\\s\\w+;$|@[a-z][\\w-]+\\.|\\(\\)|\\.com\\b|\\b\\w+/1\\.0;|\\bbw/|\\bdlc\\b|\\bort/|\\bperl\\b|\\btime/|\\||^[<\\(;]|^[\\w \\.\\-\\(?:\\):%]+(?:/v?\\d+(?:\\.\\d+)?(?:\\.\\d{1,10})*?)?(?:,|$)|^[\\w\\-]+/[\\w]+$|^[^ ]{50,}$|^\\d+\\b|^\\w*search\\b|^\\w+/[\\w\\(\\)]*$|^\\w+/\\d\\.\\d\\s\\([\\w@]+\\)$|^active|^ad muncher|^amaya|^apache/|^avsdevicesdk/|^azure|^biglotron|^blackbox exporter|^bot|^clamav[ /]|^claude-code/|^client/|^cobweb/|^custom|^ddg[_-]android|^discourse|^dispatch/\\d|^downcast/|^duckduckgo|^email|^exodusmovement|^facebook|^getright/|^gozilla/|^hobbit|^hotzonu|^hwcdn/|^igetter/|^jeode/|^jetty/|^jigsaw|^microsoft bits|^movabletype|^mozilla/\\d\\.\\d\\s[\\w\\.-]+$|^mozilla/\\d\\.\\d\\s\\((?:compatible;)?(?:\\s?[\\w\\d-.]+\\/\\d+\\.\\d+)?\\)$|^navermailapp|^netsurf|^offline|^openai/|^owler|^php|^postman|^ps_daily/|^python|^rank|^read|^reed|^remove\\.bg/|^rest|^rss|^snapchat|^sora |^space bison|^stape/|^svn|^swcd |^taringa|^thumbor/|^track|^w3c|^webbandit/|^webcopier|^wget|^whatsapp|^wordpress|^xenu link sleuth|^yahoo|^yandex|^zdm/\\d|^zoom marketplace/|abuse|advisor|agent\\b|analyzer|archive|ask jeeves/teoma|attracta|audit|bluecoat drtr|browsex|burpcollaborator|capture|catch|check\\b|checker|chrome-lighthouse|chromeframe|classifier|cloudflare|collapsify\\b|convertify|cookiehubverify/|crawl|cursor/|cypress/|dareboost|datanyze|dejaclick|detect|discovery|dmbrowser|download|exaleadcloudview|feed|firephp|foregenix|functionize|grab|hardenize\\b|headless|hotjar|httrack|hubspot marketing grader|ibisbrowser|infrawatch|insight|inspect|iplabel|java(?!;)|library|linkcheck|linktiger|mail\\.ru/|manager|manus-user/|marketgoo/|measure|monitor\\b|neustar wpm|node\\b|nutch|offbyone|openvas|optimize|pageburst|pagespeed|parser|phantomjs|pingdom|playwright|powermarks|preview|productfinder|prospectingstudio|proxy|ptst[ /]\\d|radar|readable/|retriever|rexx;|rigor|rss\\b|scrape|securityheaders|selenium|server|silktide|sindup/|sogou|sparkler/|speedcurve|spider|splash|statuscake|supercleaner|synapse|synthetic|testlocally|tools|torrent|transcoder|url|validator|virtuoso|wappalyzer|watchtowr|webglance|webkit2png|whatcms/|xtate/",ge=/bot|crawl|http|lighthouse|scan|search|spider/i,z;function me(){if(z instanceof RegExp)return z;try{z=new RegExp(fe,"i")}catch{z=ge}return z}var ye=a=>typeof a=="string"&&a!=="";function ve(a){return ye(a)&&me().test(a)}var we=ve;class X{timestamp;constructor(){this.timestamp=new Date}}class be extends X{type;testId;hypothesisId;constructor(e,t,i){super(),this.type=3,this.testId=e,this.hypothesisId=t,this.timestamp=i}}class Se extends X{type;path;constructor(e){super(),this.type=4,this.path=e}}class Ce extends X{type;cart;constructor(e){super(),this.type=5,this.cart=e}}class ie extends Error{isBot;constructor(){super(),this.isBot=!0}}function Te(a,e,t){for(const i of e.selectors){const s=a.querySelectorAll(i.cssSelector);for(let r=0;r<s.length;r++)t(e.testId,e.hypothesisId)}re(a,e,(i,s,r,o,n)=>n(s,r),t)}function U(a,e,t){for(const i of e.selectors)ne(a,e.testId,e.hypothesisId,i,t??(()=>{}));re(a,e,ne,t??(()=>{}))}function se(a){return a.urlPatterns.reduce((e,t)=>{switch(t.operator){case"contains":return e+`.*${t}.*`;case"endsWith":return e+`.*${t}`;case"startsWith":return e+`${t}.*`}},"")}function re(a,e,t,i){new MutationObserver(()=>{for(const r of e.selectors)t(a,e.testId,e.hypothesisId,r,i)}).observe(a.documentElement,{childList:!0,subtree:!0})}function ne(a,e,t,i,s){const r=a.querySelectorAll(i.cssSelector);for(let o=0;o<r.length;o++){let n=r.item(o);if(n instanceof HTMLElement&&n.dataset.shoplift!==""){n.dataset.shoplift="";for(const l of i.actions.sort(Re))n=Ie(a,i.cssSelector,n,l)}}return r.length>0&&s?(s(e,t),!0):!1}function Ie(a,e,t,i){switch(i.type){case"innerHtml":t.innerHTML=i.value;break;case"attribute":Pe(t,i.scope,i.value);break;case"css":Ae(a,e,i.value);break;case"js":ke(a,t,i);break;case"copy":return Ee(t);case"remove":xe(t);break;case"move":_e(t,parseInt(i.value));break}return t}function Pe(a,e,t){a.setAttribute(e,t)}function Ae(a,e,t){const i=a.createElement("style");i.innerHTML=`${e} { ${t} }`,a.getElementsByTagName("head")[0]?.appendChild(i)}function ke(a,e,t){Function("document","element",`"use strict"; ${t.value}`)(a,e)}function Ee(a){const e=a.cloneNode(!0);if(!a.parentNode)throw"Can't copy node outside of DOM";return a.parentNode.insertBefore(e,a.nextSibling),e}function xe(a){a.remove()}function _e(a,e){if(e===0)return;const t=Array.prototype.slice.call(a.parentElement.children).indexOf(a),i=Math.min(Math.max(t+e,0),a.parentElement.children.length-1);a.parentElement.children.item(i).insertAdjacentElement(e>0?"afterend":"beforebegin",a)}function Re(a,e){return oe(a)-oe(e)}function oe(a){return a.type==="copy"||a.type==="remove"?0:1}
98const M={Template:0,UrlRedirect:2,Script:3,Price:5},De="data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.96001%207.90004C9.86501%207.90004%209.77001%207.86504%209.69501%207.79004L6.43501%204.53004C6.19501%204.29004%205.80501%204.29004%205.56501%204.53004L2.30501%207.79004C2.16001%207.93504%201.92001%207.93504%201.77501%207.79004C1.63001%207.64504%201.63001%207.40504%201.77501%207.26004L5.03501%204.00004C5.56501%203.47004%206.43001%203.47004%206.96501%204.00004L10.225%207.26004C10.37%207.40504%2010.37%207.64504%2010.225%207.79004C10.15%207.86004%2010.055%207.90004%209.96001%207.90004Z'%20fill='white'/%3e%3c/svg%3e",Ve="data:image/svg+xml,%3csvg%20width='14'%20height='24'%20viewBox='0%200%2014%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12.3976%2014.5255C12.2833%2013.8788%2012.0498%2013.3024%2011.6952%2012.7961C11.3416%2012.2898%2010.9209%2011.8353%2010.4353%2011.4317C9.94868%2011.0291%209.43546%2010.6488%208.89565%2010.292C8.48487%2010.049%208.09577%209.78565%207.72637%209.50402C7.35697%209.2224%207.08016%208.89503%206.89694%208.51987C6.71273%208.14471%206.67826%207.69533%206.79055%207.1697C6.86345%206.83216%206.97476%206.54647%207.12351%206.31162C7.27324%206.07778%207.47124%205.89986%207.7175%205.77684C7.96377%205.65483%208.21989%205.59383%208.48389%205.59383C8.88087%205.59383%209.17639%205.7016%209.3734%205.91714C9.56943%206.13268%209.68271%206.42345%209.71424%206.78946C9.74576%207.15547%209.72015%207.55401%209.63839%207.98509C9.55663%208.41617%209.43645%208.84724%209.27687%209.27934L13.5127%208.80149C13.9638%207.52656%2014.1017%206.42447%2013.9264%205.49725C13.751%204.56901%2013.2664%203.85122%2012.4724%203.34491C12.239%203.19648%2011.9779%203.07041%2011.6893%202.96569L12.0026%201.50979L9.86397%200L7.3875%201.50979L7.11169%202.78878C6.65166%202.8874%206.21724%203.01957%205.8114%203.19038C4.85292%203.594%204.06684%204.15115%203.45117%204.86385C2.83452%205.57655%202.42571%206.40108%202.22378%207.33847C2.06616%208.06947%202.04942%208.70796%202.17551%209.25087C2.30061%209.7948%202.52028%2010.2828%202.8355%2010.7139C3.14974%2011.145%203.51816%2011.5344%203.93977%2011.881C4.36039%2012.2288%204.782%2012.5521%205.20164%2012.851C5.68334%2013.1702%206.13844%2013.5169%206.56497%2013.8921C6.99052%2014.2672%207.31954%2014.7125%207.55004%2015.228C7.78055%2015.7445%207.81502%2016.3769%207.65347%2017.1262C7.56482%2017.5389%207.43676%2017.8765%207.27028%2018.1388C7.10381%2018.4011%206.89596%2018.5983%206.64772%2018.7295C6.3985%2018.8606%206.12071%2018.9267%205.8114%2018.9267C5.21641%2018.9267%204.79776%2018.6034%204.62833%2018.1632C4.4589%2017.7229%204.47367%2017.2583%204.60075%2016.5639C4.72782%2015.8705%205.05092%2015.1395%205.37107%2014.3699H1.17665C1.17665%2014.3699%200.207341%2016.1115%200.0310135%2017.6762C-0.0655232%2018.5302%200.0635208%2019.2653%200.41519%2019.8844C0.76686%2020.5036%201.33032%2020.9814%202.10655%2021.319C2.39222%2021.443%202.7104%2021.5447%203.05813%2021.623L2.54589%2024H7.17473L7.7047%2021.5386C8.08493%2021.442%208.43857%2021.3231%208.76562%2021.1787C9.73985%2020.7476%2010.52%2020.1427%2011.1071%2019.3649C11.6932%2018.5871%2012.0873%2017.7291%2012.2892%2016.7917C12.4744%2015.9295%2012.5099%2015.1741%2012.3966%2014.5275L12.3976%2014.5255Z'%20fill='white'/%3e%3c/svg%3e";async function Oe(a){let e=a.replace(/-/g,"+").replace(/_/g,"/");for(;e.length%4;)e+="=";const t=atob(e),i=Uint8Array.from(t,o=>
98o.charCodeAt(0)),s=new Blob([i]).stream().pipeThrough(new DecompressionStream("gzip")),r=await new Response(s).text();return JSON.parse(r)}function F(a,e){return typeof e=="string"&&/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d+(?:Z|[+-]\d+)/.test(e)?new Date(e):e}function ee(a,e){return e}function q(a,e=!1,t=!1,i=","){const s=a/100;if(t){const o=Math.round(s).toLocaleString("en-US");return i!==","?o.replace(/,/g,i):o}else{const r=e?",":".",o=s.toFixed(2).split("."),n=parseInt(o[0],10),l=o[1]??"00",c=n.toLocaleString("en-US");return i!==","?`${c.replace(/,/g,i)}${r}${l}`:e?`${c.replace(/,/g,".")}${r}${l}`:`${c}${r}${l}`}}function H(a,e,t,i){const s=e.replace("{{amount}}",q(a,!1,!1)).replace("{{amount_no_decimals}}",q(a,!1,!0)).replace("{{amount_with_comma_separator}}",q(a,!0,!1)).replace("{{amount_no_decimals_with_comma_separator}}",q(a,!0,!0)).replace("{{amount_with_space_separator}}",q(a,!1,!1," ")).replace("{{amount_no_decimals_with_space_separator}}",q(a,!1,!0," ")).replace("{{amount_with_apostrophe_separator}}",q(a,!1,!1,"'")).replace("{{amount_no_decimals_with_apostrophe_separator}}",q(a,!1,!0,"'")).replace("{{amount_with_period_and_space_separator}}",q(a,!1,!1,". ")).replace("{{amount_no_decimals_with_period_and_space_separator}}",q(a,!1,!0,". "));return i?`${s} ${t}`:s}function ae(a){return a.replace(/[^\d.,\s-]/g,"").trim()}function j(a){const e=new Map;for(const[t,i,s]of a.variants)e.set(t,{priceInCents:i,compareAtPriceInCents:s});return e}function Le(a,e,t,i){const{priceInCents:s,compareAtPriceInCents:r}=t,{moneyFormat:o,currency:n,currencyCodeEnabled:l}=i;if(a.getAttribute("data-sl-attribute-p")===e)a.innerHTML=H(s,o,n,l);else if(a.getAttribute("data-sl-attribute-cap")===e)r<=0||r<=s?a.remove():a.innerHTML=H(r,o,n,l);else if(a.getAttribute("data-sl-attribute-discount")===e&&!(r<=0||r<=s)){const d=Math.round((r-s)/r*100),u=ae(H(r-s,o,n,!1)),h=a.getAttribute("data-sl-format")||"percent";h==="percent"?a.textContent=`-${d}%`:h==="amount"?a.textContent=`-${u}`:h==="both"&&(a.textContent=`-${d}% (-${u})`)}}function $e(a){const e=[],t={id:"url-pattern",operator:"contains",value:"/"};for(const[i,s,r]of a.variants){e.push({id:`p-${i}`,cssSelector:`[data-sl-attribute-p="${i}"]`,urlPatterns:[t],actions:[{id:`p-action-${i}`,type:"innerHtml",scope:"price",value:H(s,a.moneyFormat,a.currency,a.currencyCodeEnabled)}]});const o=r<=0||r<=s;if(e.push({id:`cap-${i}`,cssSelector:`[data-sl-attribute-cap="${i}"]`,urlPatterns:[t],actions:[{id:`cap-action-${i}`,type:o?"remove":"innerHtml",scope:"compare-at-price",value:o?"":H(r,a.moneyFormat,a.currency,a.currencyCodeEnabled)}]}),!o&&r>s){const n=Math.round((r-s)/r*100),l=ae(H(r-s,a.moneyFormat,a.currency,!1));e.push({id:`d-${i}`,cssSelector:`[data-sl-attribute-discount="${i}"]`,urlPatterns:[t],actions:[{id:`d-action-${i}`,type:"js",scope:null,value:`var format = element.getAttribute('data-sl-format') || 'percent'; if (format === 'percent') { element.textContent = '-${n}%'; } else if (format === 'amount') { element.textContent = '-${l}'; } else if (format === 'both') { element.textContent = '-${n}% (-${l})'; }`}]})}}return e}const Me=a=>{let e=5381;for(let t=0;t<a.length;t++)e=(e*33^a.charCodeAt(t))>>>0;return e.toString(36)},qe=()=>Math.random().toString(36).slice(2,10)+Date.now().toString(36).slice(-4),He=a=>btoa(JSON.stringify(a)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),K=a=>a.replace(/#slr-[a-z0-9]+$/,""),tt="modulepreload",it=function(a){return"/"+a},st={},Ne=function(e,t,i){let s=Promise.resolve();function r(o){const n=new Event("vite:preloadError",{cancelable:!0});if(n.payload=o,window.dispatchEvent(n),!n.defaultPrevented)throw o}return s.then(o=>{for(const n of o||[])n.status==="rejected"&&r(n.reason);return e().catch(r)})};function le(a,e,t){const i=t?a.plans.filter(c=>!c.variantId||c.variantId===t):a.plans,s=[],r=[];for(const c of i)c.direction==="decrease"?(s.push(c.existingShopifyPlanId),r.push(c.createdShopifyPlanId)):(s.push(c.createdShopifyPlanId),r.push(c.existingShopifyPlanId));const o=e?s:r,n=e?r:s;if(t)for(const c of a.plans)for(const d of[c.existingShopifyPlanId,c.createdShopifyPlanId])d&&!o.includes(d)&&!n.includes(d)&&n.push(d);const l={};for(let c=0;c<n.length;c++){const d=n[c],u=o[c];d&&u&&(l[d]=u)}return{showPlanIds:o,hidePlanIds:n,swapMap:l}}function ce(a,e,t){const i=e?a.plans.find(r=>r.variantId===e):void 0;if(i)return i.direction;if(t){const r=a.plans.find(o=>o.productId===t);if(r)return r.direction}return a.plans.find(r=>!r.variantId)?.direction??null}function J(a,e){const t=e?a.plans.filter(r=>!r.productId||r.productId===e):a.plans,i={};for(const r of t)i[r.existingShopifyPlanId]=r.existingDiscountAmount,i[r.createdShopifyPlanId]=r.existingDiscountAmount;
98const s=Math.max(...Object.values(i),0);return{discountMap:i,maxDiscount:s}}function W(a){const e=document.querySelector('form[action*="/cart/add"] input[name="product-id"]')?.value;if(e)return e;if(a){for(const r of Array.from(document.querySelectorAll("[data-sl-attribute-p]"))){const o=r.getAttribute("data-sl-attribute-p");if(!o)continue;const n=a.variants.find(l=>l[0]===o);if(n?.[3])return n[3]}const s=document.querySelector('form[action*="/cart/add"] input[name="id"]')?.value;if(s){const r=a.variants.find(o=>o[0]===s);if(r?.[3])return r[3]}}const t=window,i=t.ShopifyAnalytics?.meta?.product?.id??t.meta?.product?.id;return i!=null?String(i):null}function D(a,e){return a.widget.selectors[e]??[]}function N(a,e){return a.replace(/[\d.]+%/,`${e}%`)}function $(a,e){const t=document.createTreeWalker(a,NodeFilter.SHOW_TEXT);let i=t.nextNode();for(;i;){if(i.nodeValue!==null){const s=e(i.nodeValue);if(s!==i.nodeValue){i.nodeValue=s;return}}i=t.nextNode()}}function de(a,e){return a===null?!1:a==="decrease"?!e:e}async function Ue(a){if(a.subscriptionSwapDone)return;const e=a.getActiveAssignment();if(!e)return;const t=a.getHypothesis(e.hypothesisId);if(!t?.subscriptionData)return;a.subscriptionSwapDone=!0;const i=t.subscriptionData,s=t.isControl,r=[...new Set(i.plans.map(d=>d.direction))].join(",");a.log(`[SUB-SWAP] ${s?"A":"B"} side, directions=${r}`);const o=i.plans.some(d=>d.variantId);let n=!1,l=!1;function c(){if(!l){l=!0;try{const d=o?document.querySelector("select[name='id'], input[name='id']")?.value:void 0,{showPlanIds:u,hidePlanIds:h,swapMap:p}=le(i,s,d);a.swapMap=p;const b=D(i,"widgetParent"),E=D(i,"subscriptionPlans"),S=D(i,"subscriptionInput");if(!b.length||!E.length||!S.length)return;const C=document.querySelector(b[0].selector);if(!C?.shadowRoot)return;const _=C.shadowRoot.querySelector(E[0].selector);if(!_?.shadowRoot)return;const T=S[0].selector;let m=null;if(i.widget.widgetType==="buttons"||i.widget.widgetType==="radio"){const y=Array.from(_.shadowRoot.querySelectorAll(T));if(!y.length)return;for(const v of y){const g=v.closest("label");g&&(u.includes(v.value)?g.style.display="":h.includes(v.value)&&(g.style.display="none"))}const w=y.some(v=>u.includes(v.value)&&v.checked),I=y.some(v=>h.includes(v.value)&&v.checked);if((w||I)&&(n=!1),!w&&!n){n=!0;for(const v of y)if(u.includes(v.value)){v.closest("label")?.click(),v.dispatchEvent(new Event("change",{bubbles:!0}));break}}const f=y.find(v=>v.checked);m=f&&u.includes(f.value)?f.value:u[0]??null}else if(i.widget.widgetType==="dropdown"){const y=_.shadowRoot.querySelector("select");if(!y)return;for(const w of Array.from(y.options))h.includes(w.value)&&(w.style.display="none",w.disabled=!0);if(h.includes(y.value)){const w=Array.from(y.options).find(I=>u.includes(I.value));w&&(y.value=w.value,y.dispatchEvent(new Event("change",{bubbles:!0})))}m=u.includes(y.value)?y.value:u[0]??null}if(m){const y=Array.from(document.querySelectorAll('input[name="selling_plan"]'));for(const w of y)w.value!==m&&(w.value=m)}}finally{l=!1}}}if(a.subscriptionHideWrongPlans=c,a.swapMap=le(i,s).swapMap,c(),o){const d=document.querySelector("select[name='id'], input[name='id']");d&&d.addEventListener("change",c)}}function B(a){const e=D(a,"widgetParent");return e.length?document.querySelector(e[0].selector)?.shadowRoot??null:null}function Y(a,e){const t=D(a,"subscriptionPlans");return t.length?e.querySelector(t[0].selector)?.shadowRoot??null:null}function Z(a,e){const t=new URLSearchParams(window.location.search).get("variant");if(t)return t;{const i=document.querySelector('form[action*="/cart/add"] input[name="id"]')?.value;if(i)return i}return a.size>0?[...a.keys()][0]:void 0}function G(a,e){return H(a,e.moneyFormat,e.currency,e.currencyCodeEnabled)}function Fe({originalFetch:a,swapMap:e,slptValue:t,getSelectedPlanId:i,log:s}){if(window.fetch.__shoplift_intercepted)return s("[SUB-INTERCEPT] already installed â skipping"),()=>{};function r(n){if(i){const l=i();if(l)return e[l]??l}return e[n]??n}const o=function(n,l){if((typeof n=="string"?n:n instanceof URL?n.href:n.url).includes("/cart/add")&&l?.body)try{if(l.body instanceof FormData){const d=l.body.get("selling_plan");d?l.body.set("selling_plan",r(String(d))):(!d||d==="")&&t&&l.body.set("properties[_slpt]",t)}
98else if(typeof l.body=="string"){const d=JSON.parse(l.body);if(d.items)for(const u of d.items){const h=String(u.selling_plan??"");h?u.selling_plan=r(h):!u.selling_plan&&t&&(u.properties||(u.properties={}),u.properties._slpt=t)}else if(d.id){const u=String(d.selling_plan??"");u?d.selling_plan=r(u):!d.selling_plan&&t&&(d.properties||(d.properties={}),d.properties._slpt=t)}l.body=JSON.stringify(d)}}catch(d){s("[SUB-INTERCEPT] body parse failed; cart-add proceeds with un-swapped plan",d)}return a.call(window,n,l)};return o.__shoplift_intercepted=!0,window.fetch=o,function(){window.fetch===o&&(window.fetch=a)}}function Be({log:a}){if(window.fetch.__shoplift_intercepted)return a("[SUB-PREVIEW-BLOCK] already installed â skipping"),()=>{};const e=window.fetch,t=function(i,s){const r=typeof i=="string"?i:i instanceof URL?i.href:i.url;return r.includes("/cart/add")?(a("[SUB-PREVIEW-BLOCK] cart-add blocked in preview mode",{url:r}),Promise.resolve(new Response(JSON.stringify({id:0,properties:{},quantity:0,variant_id:0,key:"preview",title:"Preview â cart-add blocked",price:0,original_price:0,line_price:0,original_line_price:0,total_discount:0,discounts:[],preview:!0}),{status:200,headers:{"Content-Type":"application/json"}}))):e.call(window,i,s)};return t.__shoplift_intercepted=!0,window.fetch=t,function(){window.fetch===t&&(window.fetch=e)}}function pe({data:a,runUpdates:e,debounceMs:t=150}){let i=null;function s(){i&&clearTimeout(i),e(),i=setTimeout(e,t)}let r=null;const o=[],n={childList:!0,subtree:!0,characterData:!0,attributes:!0};function l(h){for(const p of o)p.disconnect();o.length=0;for(const p of Array.from(h.querySelectorAll("*")))if(p.shadowRoot){const b=new MutationObserver(s);b.observe(p.shadowRoot,n),o.push(b)}}function c(){const h=B(a);return h?(r&&r.disconnect(),l(h),r=new MutationObserver(p=>{p.some(b=>b.type==="childList"&&b.addedNodes.length>0)&&l(h),s()}),r.observe(h,n),!0):!1}const d=document.body||document.documentElement,u=new MutationObserver(()=>{c()&&s()});return u.observe(d,{childList:!0,subtree:!0}),c()&&s(),e(),function(){i&&(clearTimeout(i),i=null),u.disconnect(),r&&(r.disconnect(),r=null);for(const p of o)p.disconnect();o.length=0}}async function ze(a){if(a.subscriptionPriceDone)return;const e=a.getActiveAssignment(),t=e?a.getHypothesis(e.hypothesisId):void 0,i=t?.subscriptionData?null:a.findActiveSubscriptionTestControl(),s=t?.subscriptionData?t:i?.hypothesis;if(!s?.subscriptionData)return;const r=t?.subscriptionData?e.testId:i.testId;a.subscriptionPriceDone=!0;const o=s.subscriptionData,n=s.isControl,l=s.priceData,c=o.widget.widgetType;let d=W(l),u=J(o,d),h=u.discountMap,p=u.maxDiscount;function b(){const g=W(l);g!==d&&(d=g,u=J(o,d),h=u.discountMap,p=u.maxDiscount,a.log(`[SUB-PRICE] scope refreshed side=${n?"A":"B"}, currentProductId=${d??"n/a"}, maxDiscount=${p}`))}a.log(`[SUB-PRICE] side=${n?"A":"B"}, currentProductId=${d??"n/a"}, maxDiscount=${p}`),a.updatePriceTestHiddenInputs(r,n?"control":"variant",!1);function E(){if(!l)return null;const g=j(l),P=Z(g),A=ce(o,P,d);if(!de(A,n))return null;const k=P?g.get(P):void 0;return k?{formattedVariantPrice:G(k.priceInCents,l),formattedDiscounted:G(k.priceInCents*(1-p/100),l)}:null}Fe({originalFetch:a.fetch,swapMap:a.swapMap??{},slptValue:a.slptValue??void 0,log:a.log,getSelectedPlanId:()=>{const g=B(o);if(!g)return null;const P=Y(o,g);if(!P)return null;const A=D(o,"subscriptionInput"),k=A.length?A[0].selector:'input[name="rc_plan"]';return P.querySelector(`${k}:checked`)?.value??null}});function S(g){const P=D(o,"subscriptionDiscount");for(const A of P)if(A.selector.includes("badge")||A.selector.includes("__badge")){const k=g.querySelector(A.selector);k?.textContent&&!k.textContent.includes(`${p}%`)&&$(k,x=>N(x,p))}}function C(g){const P=E();if(!P)return;const A=D(o,"subscriptionCompareAt");for(const k of A){const x=g.querySelector(k.selector)||g.querySelector(`[part~="${k.selector}"]`);x?.textContent&&!x.textContent.includes(P.formattedVariantPrice)&&$(x,R=>/\d/.test(R)?P.formattedVariantPrice:R)}}function _(g,P){const A=D(o,"subscriptionCompareAt"),k=P===0?"none":"";for(const x of A){const R=g.querySelector(x.selector)||g.querySelector(`[part~="${x.selector}"]`);R&&(k==="none"?R.style.display!=="none"&&(R.style.display="none"):R.style.display==="none"&&(R.style.display=""))}}function T(g){const P=D(o,"subscriptionInput"),A=P.length?P[0].selector:'input[name="rc_plan"]',k=D(o,"subscriptionPlanDiscount"),x=k.length?k[0].selector:".rc-plans-button__discount";for(const R of Array.from(g.querySelectorAll("label"))){const O=R.querySelector(A),V=R.querySelector(x);
98if(O&&V){const L=h[O.value];if(L!==void 0){if(L===0)V.style.display!=="none"&&(V.style.display="none");else if(V.style.display==="none"&&(V.style.display=""),V.textContent){const Q=V.textContent.match(/[\d.]+%/)?.[0];Q&&Q!==`${L}%`&&$(V,et=>N(et,L))}}}}}function m(g){const P=g.querySelector("select");if(P)for(const A of Array.from(P.options)){const k=h[A.value];if(k!==void 0&&A.textContent){const x=A.textContent.match(/[\d.]+%/)?.[0];x&&x!==`${k}%`&&(A.textContent=N(A.textContent,k))}}}function y(g,P){const k=D(o,"subscriptionDiscount").filter(x=>x.selector.includes("benefit")||x.selector==="rc-benefits");for(const x of k){const R=g.querySelector(x.selector);if(R?.shadowRoot){for(const O of Array.from(R.shadowRoot.querySelectorAll("li")))if(O.textContent?.includes("Save")){const V=O;if(P===0)V.style.display!=="none"&&(V.style.display="none");else{V.style.display==="none"&&(V.style.display="");const L=O.textContent.match(/[\d.]+%/)?.[0];L&&L!==`${P}%`&&$(O,Q=>N(Q,P))}}}}}let w=!1;function I(){if(!w){w=!0;try{if(b(),d!==null&&Object.keys(h).length===0)return;const g=B(o);if(!g)return;S(g),l&&C(g);const P=Y(o,g);let A=p;if(P){const k=D(o,"subscriptionInput"),x=k.length?k[0].selector:'input[name="rc_plan"]',R=P.querySelector(`${x}:checked`);if(R){const O=h[R.value];O!==void 0&&(A=O)}c==="buttons"||c==="radio"?T(P):m(P)}_(g,A),y(g,A)}finally{w=!1}}}function f(){const g=E();if(!g)return;const P=B(o);if(!P)return;const A=D(o,"onetimeToggle"),k=A.length?A[0].selector:'input[value="onetime"]';if(!P.querySelector(k)?.checked)return;const R=D(o,"subscriptionPrice");for(const O of R){const V=P.querySelector(O.selector)||P.querySelector(`[part~="${O.selector}"]`);V?.textContent&&!V.textContent.includes(g.formattedDiscounted)&&$(V,L=>/\d/.test(L)?g.formattedDiscounted:L)}}function v(){a.subscriptionHideWrongPlans&&a.subscriptionHideWrongPlans(),I(),a.subscriptionUpdateOneTime&&a.subscriptionUpdateOneTime(),f()}pe({data:o,runUpdates:v})}async function We(a){if(a.subscriptionOneTimeDone)return;const e=a.getActiveAssignment(),t=e?a.getHypothesis(e.hypothesisId):void 0,i=!!(t?.subscriptionData&&t.priceData),s=i?null:a.findActiveSubscriptionTestControl(),r=i?t:s?.hypothesis;if(!r?.subscriptionData||!r.priceData)return;const o=i?e.testId:s.testId;a.subscriptionOneTimeDone=!0;const n=r.subscriptionData,l=r.priceData,c=j(l),d=r.isControl,u=d?"control":"variant";a.slptValue=`${o}:${u}:f`,a.updatePriceTestHiddenInputs(o,u,!1);function h(){const p=B(n);if(!p)return;const b=Z(c);if(!b)return;const E=W(l),S=ce(n,b,E);if(!de(S,d))return;const C=c.get(b);if(!C)return;const _=H(C.priceInCents,l.moneyFormat,l.currency,l.currencyCodeEnabled),T=D(n,"onetimePrice");if(!T.length)return;const m=D(n,"onetimeContainer"),y=m.length?m[0].selector:'[part~="rc-purchase-option__onetime"]',I=p.querySelector(y)??p;for(const f of T){let v=null;try{v=I.querySelector(f.selector)}catch{v=null}v??=I.querySelector(`[part~="${f.selector}"]`),v&&v.textContent&&!v.textContent.includes(_)&&$(v,g=>/\d/.test(g)?_:g)}}a.subscriptionUpdateOneTime=h,h()}async function Ge(a,e){const{subscriptionPreviewRender:t}=await Ne(async()=>{const{subscriptionPreviewRender:i}=await Promise.resolve().then(()=>Xe);return{subscriptionPreviewRender:i}},void 0);return t(a.subscriptionData,a.priceData,a.isControl,e)}function je(a,e){const t=a.widget.selectors.widgetParent??[],i=a.widget.selectors.subscriptionPlans??[],s=a.widget.selectors.subscriptionInput??[];if(!t.length||!i.length||!s.length){e("[SUB-GLOBAL-HIDE] Missing required selectors â skipping");return}const r=t[0].selector,o=i[0].selector,n=s[0].selector;let l=!1,c=null,d=!1;function u(){if(!d){d=!0;try{h()}finally{d=!1}}}function h(){const C=document.querySelector(r);if(!C?.shadowRoot)return;const _=C.shadowRoot.querySelector(o);if(!_?.shadowRoot)return;_.shadowRoot!==c&&(c=_.shadowRoot,l=!1);let T=0;if(a.widget.widgetType==="buttons"||a.widget.widgetType==="radio"){const m=Array.from(_.shadowRoot.querySelectorAll(n));for(const f of m)if(a.planIds.includes(f.value)){f.disabled||(f.disabled=!0);const v=f.closest("label");v&&v.style.display!=="none"&&(v.style.display="none",T++)}const y=m.filter(f=>!a.planIds.includes(f.value));if(!y.some(f=>f.checked)&&!l&&y.length>0){l=!0;const f=y[0];f.closest("label")?.click(),f.dispatchEvent(new Event("change",{bubbles:!0})),e(`[SUB-GLOBAL-HIDE] Preselected first visible plan input=${f.value}`)}const I=y.find(f=>f.checked)??y[0];
98if(I){const f=Array.from(document.querySelectorAll('input[name="selling_plan"]'));for(const v of f)v.value!==I.value&&(v.value=I.value,e(`[SUB-GLOBAL-HIDE] Mirrored plan id ${I.value} to form selling_plan input`))}}else if(a.widget.widgetType==="dropdown"){const m=_.shadowRoot.querySelector("select");if(!m)return;for(const I of Array.from(m.options))a.planIds.includes(I.value)&&(I.style.display!=="none"&&(I.style.display="none"),I.disabled||(I.disabled=!0),T++);const y=Array.from(m.options).filter(I=>!a.planIds.includes(I.value)),w=y.some(I=>I.value===m.value);y.length>0&&!w&&!l&&(l=!0,m.value=y[0].value,m.dispatchEvent(new Event("change",{bubbles:!0})),e(`[SUB-GLOBAL-HIDE] Preselected first visible option=${y[0].value}`))}T>0&&e(`[SUB-GLOBAL-HIDE] Hidden ${T} B-side plan buttons`)}const p={childList:!0,subtree:!0,characterData:!0};let b=null;function E(C){b?.disconnect(),b=new MutationObserver(()=>u()),b.observe(C,p)}function S(){const C=document.querySelector(r);if(!C?.shadowRoot)return!1;u(),new MutationObserver(()=>{u();const m=C.shadowRoot.querySelector(o);m?.shadowRoot&&E(m.shadowRoot)}).observe(C.shadowRoot,p);const T=C.shadowRoot.querySelector(o);return T?.shadowRoot&&E(T.shadowRoot),!0}if(!S()){e("[SUB-GLOBAL-HIDE] Widget not in DOM yet â waiting via MutationObserver");const C=new MutationObserver(()=>{S()&&C.disconnect()});C.observe(document.body??document.documentElement,{childList:!0,subtree:!0})}}const ue="Limited preview",Ke="Add-to-cart and checkout prices won't reflect this test until it launches â test selling plans are not created in your subscription app until after a test is launched.",Je=5e3;function Ye(){const a=document.createElement("div");a.id="shoplift-preview-subscription-warning";const e=document.createElement("span");e.id="shoplift-preview-subscription-warning__icon",e.setAttribute("aria-hidden","true"),e.textContent="!";const t=document.createElement("span");t.id="shoplift-preview-subscription-warning__label",t.textContent=ue;const i=document.createElement("div");i.id="shoplift-preview-subscription-warning__tooltip",i.setAttribute("role","tooltip"),i.textContent=Ke,a.appendChild(e),a.appendChild(t),a.appendChild(i),a.setAttribute("tabindex","0"),a.setAttribute("aria-describedby",i.id),a.setAttribute("aria-label",ue);let s=null;function r(){s!==null&&(clearTimeout(s),s=null)}function o(){i.classList.add("shoplift-preview-subscription-warning__tooltip--visible")}function n(){i.classList.remove("shoplift-preview-subscription-warning__tooltip--visible")}function l(){o(),r(),s=setTimeout(()=>{n(),s=null},Je)}function c(){r(),o()}function d(){s===null&&n()}a.addEventListener("mouseenter",c),a.addEventListener("mouseleave",d),a.addEventListener("focus",c),a.addEventListener("blur",d);function u(p){try{const b=p.target;if(!(b instanceof Element))return;(b.closest('form[action*="/cart/add"] button[type="submit"], form[action*="/cart/add"] input[type="submit"]')!==null||b.closest('[name="add"], button[name="add"], [data-add-to-cart], button[data-add-to-cart]')!==null)&&l()}catch{}}document.addEventListener("click",u,!0);function h(){r(),document.removeEventListener("click",u,!0),a.removeEventListener("mouseenter",c),a.removeEventListener("mouseleave",d),a.removeEventListener("focus",c),a.removeEventListener("blur",d),a.remove()}return{root:a,tooltip:i,cleanup:h}}let he=!1;class Ze{DATA_SL_ATTRIBUTE_P="data-sl-attribute-p";DATA_SL_TEST_ID="data-sl-test-id";VIEWPORT_TRACK_THRESHOLD=.5;temporarySessionKey="Shoplift_Session";essentialSessionKey="Shoplift_Essential";analyticsSessionKey="Shoplift_Analytics";priceSelectorsSessionKey="Shoplift_PriceSelectors_v2";shop;host;eventHost;disableReferrerOverride;legacySessionKey;cssHideClass;testConfigs;inactiveTestConfigs;hiddenSubscriptionPlans;testsFilteredByAudience;sendPageView;shopliftDebug;gaConfig;telemetryEnabled;getCountryTimeout;geoViaShopify;resolvedRegion=null;state;subscriptionPreviewWarningCleanup=null;shopifyAnalyticsId;cookie=document.cookie;isSyncing=!1;isSyncingGA=!1;fetch;localStorageSet;localStorageGet;sessionStorageSet=window.sessionStorage.setItem.bind(window.sessionStorage);sessionStorageGet=window.sessionStorage.getItem.bind(window.sessionStorage);
98urlParams=new URLSearchParams(window.location.search);device;logHistory;activeViewportObservers=new Map;clientIdRetryCount=0;constructor(e,t,i,s,r,o,n,l,c,d,u,h,p,b=!1){this.shop=e,this.host=t,this.eventHost=i,this.disableReferrerOverride=l,this.logHistory=[],this.legacySessionKey=`SHOPLIFT_SESSION_${this.shop}`,this.cssHideClass=s?"shoplift-hide":"",this.testConfigs=u.map(S=>({...S,startAt:new Date(S.startAt),statusHistory:S.statusHistory.map(C=>({...C,createdAt:new Date(C.createdAt)}))})),this.inactiveTestConfigs=h,this.hiddenSubscriptionPlans=p,this.sendPageView=!!r,this.shopliftDebug=o===!0,this.telemetryEnabled=c===!0,this.geoViaShopify=b===!0,this.gaConfig=n!=={"sendEvents":false,"mode":"gtag"}?n:{sendEvents:!1},this.fetch=window.fetch.bind(window),this.localStorageSet=window.localStorage.setItem.bind(window.localStorage),this.localStorageGet=window.localStorage.getItem.bind(window.localStorage);const E=this.getDeviceType();this.device=E!=="tablet"?E:"mobile",this.state=this.loadState(),this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.testsFilteredByAudience=u.filter(S=>
98S.status=="active"),this.getCountryTimeout=d===1000?1e3:d,window.__slReadCookie=S=>{const C=this.getCookie(S);if(C===null)return null;try{return decodeURIComponent(C)}catch{return C}},this.log("State Loaded",JSON.stringify(this.state))}deriveCategoryFromExistingTests(){if(!this.state.temporary.testCategory&&this.state.essential.visitorTests.length>0){const e=this.state.essential.visitorTests.some(t=>{if(!t.hypothesisId)return!1;const i=this.getHypothesis(t.hypothesisId);return i&&["theme","basicScript","price"].includes(i.type)});this.state.temporary.testCategory=e?"global":"conditional",this.persistTemporaryState(),this.log("Derived test category from existing visitorTests: %s",this.state.temporary.testCategory)}}async init(){try{if(this.log("Shoplift script initializing"),window.Shopify&&window.Shopify.designMode){this.log("Skipping script for design mode");return}if(window.location.href.includes("slScreenshot=true")){this.log("Skipping script for screenshot");return}if(window.location.hostname.endsWith(".edgemesh.com")){this.log("Skipping script for preview");return}if(window.location.href.includes("isShopliftMerchant")){const o=this.urlParams.get("isShopliftMerchant")==="true";this.log("Setting merchant session to %s",o),this.state.temporary.isMerchant=o,this.persistTemporaryState()}if(this.state.temporary.isMerchant){this.log("Setting up preview for merchant"),typeof window.shoplift!="object"&&this.setShopliftStub(),this.state.temporary.previewConfig||this.hidePage(),await this.initPreview(),document.querySelector("#sl-preview-bar-hide")?.remove();return}if(this.state.temporary.previewConfig=void 0,we(navigator.userAgent))return;const e=Date.now(),t=!this.state.temporary.lastSeen||e-this.state.temporary.lastSeen>1800*1e3;(!this.state.temporary.entryPage||t)&&(this.state.temporary.entryPage=K(window.location.href)),this.state.temporary.lastSeen=e,this.persistTemporaryState(),window.__slEntryPage=this.state.temporary.entryPage??"";const i=this.state.essential.visitorTests.filter(o=>o.hypothesisId&&+o.createdAt>Date.now()-6e4);if(i.length===0)this.sendDiagnosticTelemetry("page-landed",null);else for(const o of i)this.sendDiagnosticTelemetry("page-landed",o.testId,{hypothesisId:o.hypothesisId,isControl:o.assignedTo==="control",testType:o.testType??"unknown"});if(navigator.userAgent.includes("Chrome/118")){this.log("Random: %o",[Math.random(),Math.random(),Math.random()]);const o=await this.makeRequest({url:`${this.eventHost}/api/v0/events/ip`,method:"get"}).then(n=>n?.json());this.log(`IP: ${o}`),this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify(this.debugState(),ee)}).catch()}if(this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.monitorConsentChange(),this.checkForThemePreview())return;if(!this.disableReferrerOverride&&this.state.temporary.originalReferrer!=null){this.log(`Overriding referrer from '${document.referrer}' to '${this.state.temporary.originalReferrer}'`);const o=this.state.temporary.originalReferrer;delete this.state.temporary.originalReferrer,this.persistTemporaryState(),Object.defineProperty(document,"referrer",{get:()=>o,enumerable:!0,configurable:!0})}if(await this.refreshVisitor(this.shopifyAnalyticsId),await this.handleVisitorTest()){this.log("Redirecting for visitor test");return}this.setShoplift(),this.showPage(),this.ensureCartAttributesForExistingPriceTests(!1);const r=this.state.essential.visitorTests.some(o=>(o.hypothesisId?this.getHypothesis(o.hypothesisId):void 0)?.subscriptionData!=null)||Object.values(this.state.temporary.testReservations??{}).some(o=>this.getHypothesis(o.hypothesisId)?.subscriptionData!=null);this.hiddenSubscriptionPlans&&!r&&(this.log(`[SUB-GLOBAL] Visitor not in subscription test â hiding ${this.hiddenSubscriptionPlans.planIds.length} B-side plans`),je(this.hiddenSubscriptionPlans,o=>this.log(o))),await this.subscriptionSwap(),await this.subscriptionOneTimePrice(),await this.subscriptionPriceChange(),await this.finalize(),console.log("SHOPLIFT SCRIPT INITIALIZED!")}catch(e){if(e instanceof ie)return;throw e}finally{typeof window.shoplift!="object"&&this.setShopliftStub()}}getVariantColor(e){switch(e){case"a":return{text:"#141414",bg:"#E2E2E2"};case"b":return{text:"rgba(255, 255, 255, 1)",bg:"rgba(37, 99, 235, 1)"}}}getDefaultVariantTitle(e){return e.title?e.title:e.type==="price"?e.isControl?"Original prices":"Variant prices":e.isControl?"Original":"Untitled variant "+e.label.toUpperCase()}
98async initPreview(){const e=this.urlParams.get("previewConfig");if(e){this.state.temporary.previewConfig=void 0,this.log("Setting up the preview"),this.log("Found preview config, writing to temporary state");const t=await Oe(e);if(this.state.temporary.previewConfig=t,this.state.temporary.previewConfig.testTypeCategory===M.Price){this.hidePage(!0);const s=this.state.temporary.previewConfig;let r=`${this.host}/api/dom-selectors/${s.storeId}/${s.testId}/${s.isDraft||!1}`;s.shopifyProductId&&(r+=`?productId=${s.shopifyProductId}`);const o=await this.makeJsonRequest({method:"get",url:r}).catch(n=>(this.log("Error getting domSelectors",n),null));if(s.variants.forEach(n=>n.domSelectors=o[n.id]?.domSelectors),s.isDraft){const n=`${this.host}/api/dom-selectors/${s.storeId}/${s.testId}/subscription-preview`,l=await this.makeJsonRequest({method:"get",url:n}).catch(c=>(this.log("No subscription preview data for draft (test may not have a subscription widget)",c),null));l?.subscriptionData&&s.variants.forEach(c=>{c.subscriptionData=l.subscriptionData,c.priceData=l.priceData})}}this.persistTemporaryState();const i=new URL(window.location.toString());i.searchParams.delete("previewConfig"),this.queueRedirect(i)}else if(this.state.temporary.previewConfig){this.showPage();const t=this.state.temporary.previewConfig;if(t.testTypeCategory===M.Template&&this.handleTemplatePreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.UrlRedirect&&this.handleUrlPreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.Script&&this.handleScriptPreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.Price){const i=await this.handlePricePreview(t);t.isDraft?await this.handleSubscriptionPricePreview(t):await this.handleSubscriptionLivePreview(t),i&&this.initPreviewControls(t)}}}initPreviewControls(e){document.addEventListener("DOMContentLoaded",()=>{const t=e.variants.find(b=>b.id===e.currentVariant),i=t?.label||"a",s=e.variants,r=document.createElement("div");r.id="shoplift-preview-control";const o=document.createElement("div"),n=document.createElement("img");n.src=Ve,n.height=24,n.width=14,o.style.padding="0 16px",o.style.lineHeight="100%",o.appendChild(n),r.appendChild(o);const l=document.createElement("div");l.id="shoplift-preview-variant-selector";const c=document.createElement("button");c.id="shoplift-preview-variant-menu-trigger";const d=document.createElement("div");d.className="menu-variant-label",d.style.backgroundColor=this.getVariantColor(i).bg,d.style.color=this.getVariantColor(i).text,d.innerText=i.toUpperCase(),c.appendChild(d);const u=document.createElement("span");if(u.id="shoplift-preview-variant-title",u.innerText=t?this.getDefaultVariantTitle(t):"Untitled variant "+i.toUpperCase(),c.appendChild(u),s.length>1){const b=document.createElement("img");b.src=De,b.width=12,b.height=12,b.style.height="12px",b.style.width="12px",c.appendChild(b);const E=document.createElement("div");E.className="preview-variant-menu";for(const S of e.variants.filter(C=>C.id!==e.currentVariant)){const C=document.createElement("div");C.className="preview-variant-menu--item";const _=document.createElement("div");_.className="menu-variant-label",_.style.backgroundColor=this.getVariantColor(S.label).bg,_.style.color=this.getVariantColor(S.label).text,_.style.flexShrink="0",_.innerText=S.label.toUpperCase(),C.appendChild(_);const T=document.createElement("span");T.innerText=this.getDefaultVariantTitle(S),C.appendChild(T),C.addEventListener("click",()=>{this.pickVariant(S.id)}),E.appendChild(C)}l.appendChild(E),c.addEventListener("click",()=>{E.className!=="preview-variant-menu preview-variant-menu__visible"?E.classList.add("preview-variant-menu__visible"):E.classList.remove("preview-variant-menu__visible")}),document.addEventListener("click",S=>{S.target instanceof Element&&!c.contains(S.target)&&E.className==="preview-variant-menu preview-variant-menu__visible"&&E.classList.remove("preview-variant-menu__visible")})}else c.style.pointerEvents="none",d.style.margin="0";if(l.appendChild(c),r.appendChild(l),e.hasSubscription){this.subscriptionPreviewWarningCleanup?.();const b=Ye();r.appendChild(b.root),this.subscriptionPreviewWarningCleanup=b.cleanup}const h=document.createElement("div"),p=document.createElement("button");p.id="shoplift-exit-preview-button",p.innerText="Exit",h.appendChild(p),p.addEventListener("click",()=>{this.exitPreview()}),r.appendChild(h),document.body.appendChild(r),requestAnimationFrame(()=>{r.classList.add("visible")})}),this.ensureCartAttributesForExistingPriceTests(!0)}pickVariant(e){if(this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig,i=new URL(window.location.toString());if(t.testTypeCategory===M.UrlRedirect){const s=t.variants.find(r=>r.id===t.currentVariant)?.redirectUrl;if(i.pathname===s){const r=t.variants.find(o=>o.id===e)?.redirectUrl;r&&(i.pathname=r)}}if(t.testTypeCategory===M.Template){const s=t.variants.find(r=>r.id===t.currentVariant)?.pathName;if(s&&i.pathname===s){const r=t.variants.find(o=>o.id===e)?.pathName;r&&r!==s&&(i.pathname=r)}}t.currentVariant=e,this.persistTemporaryState(),this.queueRedirect(i)}}exitPreview(){const e=new URL(window.location.toString());if(this.state.temporary.previewConfig?.testTypeCategory===M.Template&&e.searchParams.delete("view"),this.state.temporary.previewConfig?.testTypeCategory===M.Script&&e.searchParams.delete("slVariant"),this.state.temporary.previewConfig?.testTypeCategory===M.UrlRedirect){const i=this.state.temporary.previewConfig.variants.filter(r=>!r.isControl&&r.redirectUrl!==null).map(r=>r.redirectUrl),s=this.state.temporary.previewConfig.variants.find(r=>r.label==="a")?.redirectUrl;i.includes(e.pathname)&&s&&(e.pathname=s)}this.state.temporary.isMerchant=!1,e.searchParams.delete("isShopliftMerchant"),this.state.temporary.previewConfig=void 0,this.persistTemporaryState(),this.subscriptionPreviewWarningCleanup?.(),this.subscriptionPreviewWarningCleanup=null,this.hidePage(),this.queueRedirect(e)}handleTemplatePreview(e){const t=e.currentVariant,i=e.variants.find(l=>l.id===t);if(!i)return!1;const s=e.variants.find(l=>l.isControl);if(!s)return!1;this.log("Setting up template preview for type",s.type);
98const r=new URL(window.location.toString()),o=r.searchParams.get("view"),n=i.type===s.type;return!n&&!i.isControl&&template.suffix===s.affix&&this.typeFromTemplate()===s.type&&i.pathName!==null?(this.log("Hit control template type, redirecting to the variant url"),this.hidePage(),r.pathname=i.pathName,this.queueRedirect(r),!0):(!i.isControl&&this.typeFromTemplate()==i.type&&template.suffix===s.affix&&n&&o!==(i.affix||"__DEFAULT__")&&(this.log("Template type and affix match control, updating the view param"),r.searchParams.delete("view"),this.log("Setting the new viewParam to",i.affix||"__DEFAULT__"),this.hidePage(),r.searchParams.set("view",i.affix||"__DEFAULT__"),this.queueRedirect(r)),o!==null&&o!==(i.affix||"__DEFAULT__")&&(r.searchParams.delete("view"),this.hidePage(),this.queueRedirect(r)),!0)}handleUrlPreview(e){const t=e.currentVariant,i=e.variants.find(o=>o.id===t),s=e.variants.find(o=>o.isControl)?.redirectUrl;if(!i)return!1;this.log("Setting up URL redirect preview");const r=new URL(window.location.toString());return r.pathname===s&&!i.isControl&&i.redirectUrl!==null&&(this.log("Url matches control, redirecting"),this.hidePage(),r.pathname=i.redirectUrl,this.queueRedirect(r)),!0}handleScriptPreview(e){const t=e.currentVariant,i=e.variants.find(o=>o.id===t);if(!i)return!1;this.log("Setting up script preview");const s=new URL(window.location.toString());return s.searchParams.get("slVariant")!==i.id&&(this.log("current id doesn't match the variant, redirecting"),s.searchParams.delete("slVariant"),this.log("Setting the new slVariantParam"),this.hidePage(),s.searchParams.set("slVariant",i.id),this.queueRedirect(s)),!0}async handlePricePreview(e){const t=e.currentVariant,i=e.variants.find(s=>s.id===t);return i?(this.log("Setting up price preview"),i.domSelectors&&i.domSelectors.length>0&&(U(document,{testId:e.testId,hypothesisId:i.id,selectors:i.domSelectors}),this.ensureCartAttributesForExistingPriceTests(!0)),!0):!1}async handleSubscriptionPricePreview(e){const t=e.variants.find(i=>i.id===e.currentVariant);t?.subscriptionData&&(this.log("Setting up subscription price preview"),await Ge({id:t.id,isControl:t.isControl,subscriptionData:t.subscriptionData,priceData:t.priceData},(i,...s)=>this.log(i,...s)))}async handleSubscriptionLivePreview(e){this.testConfigs.find(s=>s.id===e.testId)?.hypotheses.find(s=>s.id===e.currentVariant)?.subscriptionData&&(this.log("Setting up subscription live preview"),this.subscriptionSwapDone=!1,this.subscriptionOneTimeDone=!1,this.subscriptionPriceDone=!1,await this.subscriptionSwap(),await this.subscriptionOneTimePrice(),await this.subscriptionPriceChange())}async finalize(){const e=await this.getCartState();e!==null&&this.queueCartUpdate(e),this.pruneStateAndSave(),await this.syncAllEvents()}setShoplift(){this.log("Setting up public API");const t=this.urlParams.get("slVariant")==="true",i=t?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:async s=>{if(this.log("Script checking variant for hypothesis '%s'",s),t)return this.log("Forcing variant for hypothesis '%s'",s),!0;if(i!==null)return this.log("Forcing hypothesis '%s'",i),s===i;const r=this.testConfigs.find(n=>n.hypotheses.some(l=>l.id===s));if(!r)return this.log("No test found for hypothesis '%s'",s),!1;const o=this.state.essential.visitorTests.find(n=>n.testId===r.id);return o?(this.log("Active visitor test found",s),o.hypothesisId===s):(await this.manuallySplitVisitor(r),this.testConfigs.some(n=>n.hypotheses.some(l=>l.id===s&&this.state.essential.visitorTests.some(c=>c.hypothesisId===l.id))))},setAnalyticsConsent:async s=>{await this.onConsentChange(s,!0)},getVisitorData:()=>({visitor:this.state.analytics.visitor,visitorTests:this.state.essential.visitorTests.filter(s=>!s.isInvalid).map(s=>{const{shouldSendToGa:r,savedAt:o,...n}=s;return n})})}}setShopliftStub(){this.log("Setting up stubbed public API");const t=this.urlParams.get("slVariant")==="true",i=t?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:s=>Promise.resolve(t||s===i),setAnalyticsConsent:()=>Promise.resolve(),getVisitorData:()=>({visitor:null,visitorTests:[]})}}async manuallySplitVisitor(e){this.log("Starting manual split for test '%s'",e.id),await this.handleVisitorTest([e]);const t=this.getReservationForTest(e.id);t&&!t.isRealized&&t.entryCriteriaKey&&(this.log("Realizing manual API reservation for test '%s'",e.id),this.realizeReservationForCriteria(t.entryCriteriaKey)),this.saveState(),this.syncAllEvents()}async handleVisitorTest(e){await this.filterTestsByAudience(this.testConfigs,this.state.analytics.visitor??this.buildBaseVisitor(),this.state.essential.visitorTests),this.pruneStaleVisitorTests(),this.deriveC
98ategoryFromExistingTests(),this.clearStaleReservations();let t=e?e.filter(i=>this.testsFilteredByAudience.some(s=>s.id===i.id)):[...this.testsForUrl(this.testsFilteredByAudience),...this.domTestsForUrl(this.testsFilteredByAudience)];try{if(t.length===0)return this.log("No tests found"),!1;this.log("Checking for existing visitor test on page");const i=this.getCurrentVisitorHypothesis(t);if(i){this.log("Found current visitor test");const l=this.considerRedirect(i);return l&&(this.log("Redirecting for current visitor test"),this.redirect(i)),l}const s=this.getReservationForCurrentPage();if(s){this.log("Found matching reservation for current page: %s",s.testId);const l=this.getHypothesis(s.hypothesisId);if(l){l.type!=="price"&&this.realizeReservationForCriteria(s.entryCriteriaKey);const c=this.considerRedirect(l);return c&&this.redirect(l),c}}this.log("No active test relation for test page");const r=this.testsForUrl(this.inactiveTestConfigs.filter(l=>this.testIsPaused(l)&&l.hypotheses.some(c=>this.state.essential.visitorTests.some(d=>d.hypothesisId===c.id)))).map(l=>l.id);if(r.length>0)return this.log("Visitor has paused tests for test page, skipping test assignment: %o",r),!1;if(!this.state.temporary.testCategory){const l=this.testsFilteredByAudience.filter(d=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(d))),c=this.testsFilteredByAudience.filter(d=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(d)));if(this.log("Category dice roll - global tests: %o, conditional tests: %o",l.map(d=>({id:d.id,title:d.title,criteria:this.getEntryCriteriaKey(d)})),c.map(d=>({id:d.id,title:d.title,criteria:this.getEntryCriteriaKey(d)}))),l.length>0&&c.length>0){const d=l.length,u=c.length,h=d+u,p=Math.random()*h;this.state.temporary.testCategory=p<d?"global":"conditional",this.log("Category dice roll: rolled %.2f of %d (global weight: %d, conditional weight: %d), selected '%s'",p,h,d,u,this.state.temporary.testCategory)}else l.length>0?(this.state.temporary.testCategory="global",this.log("Only global tests available, setting category to global")):(this.state.temporary.testCategory="conditional",this.log("Only conditional tests available, setting category to conditional"));this.persistTemporaryState()}const o=this.state.temporary.testCategory;if(this.log("Visitor test category: %s",o),o==="global"){const l=this.testsFilteredByAudience.filter(c=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)));for(const c of l)this.markTestAsBlocked(c,"category:global");t=t.filter(c=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)))}else{const l=this.testsFilteredByAudience.filter(c=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)));for(const c of l)this.markTestAsBlocked(c,"category:conditional");t=t.filter(c=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)))}if(t.length===0)return this.log("No tests remaining after category filter"),!1;this.createReservations(t);const n=this.getReservationForCurrentPage();if(n&&!n.isRealized){const l=this.getHypothesis(n.hypothesisId);if(l){l.type!=="price"&&this.realizeReservationForCriteria(n.entryCriteriaKey);const c=this.considerRedirect(l);return c&&(this.log("Redirecting for new test"),this.redirect(l)),c}}return!1}finally{this.includeInDomTests(),this.saveState()}}includeInDomTests(){this.applyControlForAudienceFilteredPriceTests();const e=this.getDomTestsForCurrentUrl(),t=this.getVisitorDomHypothesis(e);for(const i of e){this.log("Evaluating dom test '%s'",i.id);const s=i.hypotheses.some(p=>p.type==="price");if(this.state.essential.visitorTests.find(p=>p.testId===i.id&&p.isInvalid&&!p.hypothesisId)){if(this.log("Visitor is blocked from test '%s', applying control prices if price test",i.id),s){const p=i.hypotheses.find(b=>b.isControl);p?.priceData&&(this.applyPriceTestWithMapLookup(i.id,p,[p],()=>{this.log("Control prices applied for blocked visitor, no metrics tracked")}),this.updatePriceTestHiddenInputs(i.id,"control",!1))}continue}const o=this.getReservationForTest(i.id);let n=null,l=!1;const c=t.find(p=>i.hypotheses.some(b=>p.id===b.id));if(o)n=this.getHypothesis(o.hypothesisId)??null,this.log("Using reserved hypothesis '%s' for test '%s'",o.hypothesisId,i.id);else if(c)n=c,this.log("Using existing hypothesis assignment for test '%s'",i.id);else if(s){const p=this.visitorActiveTestTypeWithReservations();p?(l=!0,this.log("Visitor already in test type '%s', treating as non-test for price test '%s'",p,i.id)):n=this.pickHypothesis(i)}else n=this.pickHypothesis(i);if(l&&s){const p=i.hypotheses.find(b=>b.isControl);p?.priceData&&(this.log("Applying control prices for non-test visitor on price test '%s' (Map-based)",i.id),this.applyPriceTestWithMapLookup(i.id,p,[p],()=>{this.log("Control prices applied for non-test visitor, no metrics tracked")}
98),this.updatePriceTestHiddenInputs(i.id,"control",!1));continue}if(!n){this.log("Failed to pick hypothesis for test");continue}this.sendDiagnosticTelemetry("assignment",i.id,{hypothesisId:n.id,isControl:n.isControl,testType:n.type});const d=i.bayesianRevision??4,u=n.type==="price",h=d>=5;if(u&&h){if(this.log(`Price test with Map-based lookup (v${d}): ${i.id}`),!n.priceData){this.log("No price data for hypothesis '%s', skipping",n.id);continue}const p=n.isControl?"control":"variant";this.log(`Setting up Map-based price test for ${p} (test: ${i.id})`),this.applyPriceTestWithMapLookup(i.id,n,i.hypotheses,b=>{const E=this.getReservationForTest(b);E&&!E.isRealized&&E.entryCriteriaKey?this.realizeReservationForCriteria(E.entryCriteriaKey):this.queueAddVisitorToTest(b,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(u&&!h){this.log(`Price test without viewport tracking (v${d}): ${i.id}`);const p=this.getDomSelectorsForHypothesis(n);if(p.length===0)continue;U(document,{testId:i.id,hypothesisId:n.id,selectors:p},b=>{this.queueAddVisitorToTest(b,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(!n.domSelectors||n.domSelectors.length===0){this.log("No selectors found, skipping hypothesis");continue}U(document,{testId:i.id,hypothesisId:n.id,selectors:n.domSelectors},p=>{this.queueAddVisitorToTest(p,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()})}}considerRedirect(e){if(this.log("Considering redirect for hypothesis '%s'",e.id),e.isControl)return this.log("Skipping redirect for control"),!1;if(e.type==="basicScript"||e.type==="manualScript")return this.log("Skipping redirect for script test"),!1;const t=this.state.essential.visitorTests.find(o=>o.hypothesisId===e.id),i=new URL(window.location.toString()),r=new URLSearchParams(window.location.search).get("view");if(e.type==="theme"){if(!(e.themeId===themeId)){if(this.log("Theme id '%s' is not hypothesis theme ID '%s'",e.themeId,themeId),this.isAppProxyPath())return this.log("On App Proxy path, skipping theme redirect to avoid infinite loop"),!1;if(t&&t.themeId!==e.themeId&&(t.themeId===themeId||!this.isThemePreview()))this.log("On old theme, redirecting and updating local visitor"),t.themeId=e.themeId;else if(this.isThemePreview())return this.log("On non-test theme, skipping redirect"),!1;return this.log("Hiding page to redirect for theme test"),this.hidePage(),!0}return!1}else if(e.type!=="dom"&&e.type!=="price"&&e.affix!==template.suffix&&e.affix!==r||e.redirectPath&&!i.pathname.endsWith(e.redirectPath))return this.log("Hiding page to redirect for template test"),this.hidePage(),!0;return this.log("Not redirecting"),!1}redirect(e){if(this.log("Redirecting to hypothesis '%s'",e.id),e.isControl)return;const t=new URL(window.location.toString());if(t.searchParams.delete("view"),e.redirectPath){const n=RegExp("^(/w{2}-w{2})/").exec(t.pathname);if(n&&n.length>1){const l=n[1];t.pathname=`${l}${e.redirectPath}`}else t.pathname=e.redirectPath}else e.type==="theme"?(t.searchParams.set("_ab","0"),t.searchParams.set("_fd","0"),t.searchParams.set("_sc","1"),t.searchParams.set("preview_theme_id",e.themeId.toString())):e.type!=="urlRedirect"&&t.searchParams.set("view",e.affix);const i=this.state.essential.visitorTests.find(n=>n.hypothesisId===e.id)?.testId,s=t.pathname+t.search,r=window.location.pathname+window.location.search,o=K(t.hash);if(i&&s!==r&&!o){const n=qe(),l=He({v:2,t:i,n,fh:Me(window.location.pathname+window.location.search)});t.hash=`slr-${n}`;const c=new Date(Date.now()+3e4).toUTCString();document.cookie=`shoplift_redirect=${l};domain=.${window.location.hostname};path=/;SameSite=Strict;expires=${c}`}s===r&&this.showPage(),this.queueRedirect(t)}async refreshVisitor(e){if(e===null||!this.state.essential.isFirstLoad||!this.testConfigs.some(i=>i.visitorOption!=="all"))return;this.log("Refreshing visitor"),this.hidePage();const t=await this.getVisitor(e);t&&t.id&&this.updateLocalVisitor(t)}buildBaseVisitor(){return{shopifyAnalyticsId:this.shopifyAnalyticsId,device:this.device,country:null,...this.state.essential.initialState}}getInitialState(){const e=this.getUTMValue("utm_source")??"",t=this.getUTMValue("utm_medium")??"",i=this.getUTMValue("utm_campaign")??"",s=this.getUTMValue("utm_content")??"",r=window.document.referrer,o=this.device;return{createdAt:new Date,utmSource:e,utmMedium:t,utmCampaign:i,utmContent:s,referrer:r,device:o}}checkForThemePreview(){return this.log("Checking for theme preview"),window.location.hostname.endsWith(".shopifypreview.com")?(this.log("on shopify preview domain"),this.clearThemeBar(!0,!1,this.state),document.querySelector("#sl-preview-bar-hide")?.remove(),!1):this.isThemePreview()?this.state.essential.visitorTests.some(e=>e.isThemeTest&&e.hypothesisId!=null&&this.getHypothesis(e.hypothesisId)&&e.themeId===themeId)?(this.log("On active theme test, remov
98ing theme bar"),this.clearThemeBar(!1,!0,this.state),!1):this.state.essential.visitorTests.some(e=>e.isThemeTest&&e.hypothesisId!=null&&!this.getHypothesis(e.hypothesisId)&&e.themeId===themeId)?(this.log("Visitor is on an inactive theme test, redirecting to main theme"),this.redirectToMainTheme(),!0):this.state.essential.isFirstLoad?(this.log("No visitor found on theme preview, redirecting to main theme"),this.redirectToMainTheme(),!0):this.inactiveTestConfigs.some(e=>e.hypotheses.some(t=>t.themeId===themeId))?(this.log("Current theme is an inactive theme test, redirecting to main theme"),this.redirectToMainTheme(),!0):this.testConfigs.some(e=>e.hypotheses.some(t=>t.themeId===themeId))?(this.log("Falling back to clearing theme bar"),this.clearThemeBar(!1,!0,this.state),!1):(this.log("No tests on current theme, skipping script"),this.clearThemeBar(!0,!1,this.state),document.querySelector("#sl-preview-bar-hide")?.remove(),!0):(this.log("Not on theme preview"),this.clearThemeBar(!0,!1,this.state),!1)}redirectToMainTheme(){this.hidePage();const e=new URL(window.location.toString());e.searchParams.set("preview_theme_id",""),this.queueRedirect(e)}testsForUrl(e){const t=new URL(window.location.href),i=this.typeFromTemplate();return e.filter(s=>s.hypotheses.some(r=>r.type!=="dom"&&r.type!=="price"&&(r.isControl&&r.type===i&&r.affix===template.suffix||r.type==="theme"||r.isControl&&r.type==="urlRedirect"&&r.redirectPath&&t.pathname.endsWith(r.redirectPath)||r.type==="basicScript"))&&(s.ignoreTestViewParameterEnforcement||!t.searchParams.has("view")||s.hypotheses.map(r=>r.affix).includes(t.searchParams.get("view")??"")))}domTestsForUrl(e){const t=new URL(window.location.href);return e.filter(i=>i.hypotheses.some(s=>s.type!=="dom"&&s.type!=="price"?!1:s.type==="price"&&s.priceData&&s.priceData.variants.length>0?!0:s.domSelectors&&s.domSelectors.some(r=>new RegExp(se(r)).test(K(t.toString())))))}async filterTestsByAudience(e,t,i){const s=[],r=e.some(n=>(n.requiresRegion||this.geoViaShopify&&n.requiresCountry)&&!i.some(l=>l.testId===n.id));this.resolvedRegion===null&&r&&(this.log("Hiding page to wait for Shopify region resolution"),this.hidePage(),await this.waitForResolvedRegion()),window.__slRegion=this.resolvedRegion??"";let o=t.country;this.geoViaShopify?o=this.resolvedRegion?this.resolvedRegion.slice(0,2):o:!o&&e.some(n=>n.requiresCountry&&!i.some(l=>l.testId===n.id))&&(this.log("Hiding page to check geoip"),this.hidePage(),o=await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/get-country`,signal:AbortSignal.timeout(this.getCountryTimeout)}).catch(n=>(this.log("Error getting country",n),null)));for(const n of e){if(this.log("Checking audience for test '%s'",n.id),this.state.essential.visitorTests.some(d=>d.testId===n.id&&d.hypothesisId==null)){console.log(`Skipping blocked test '${n.id}'`);continue}const l=this.visitorCreatedDuringTestActive(n.statusHistory);(i.some(d=>d.testId===n.id&&(n.device==="all"||n.device===t.device&&n.device===this.device))||this.isTargetAudience(n,t,l,o))&&(this.log("Visitor is in audience for test '%s'",n.id),s.push(n))}this.testsFilteredByAudience=s}async waitForResolvedRegion(e=1500,t=50){const i=Date.now();for(;this.resolvedRegion===null&&Date.now()-i<e;)await new Promise(s=>window.setTimeout(s,t))}isTargetAudience(e,t,i,s){const r=this.getChannel(t);return(e.device==="all"||e.device===t.device&&e.device===this.device)&&(e.visitorOption==="all"||e.visitorOption==="new"&&i||e.visitorOption==="returning"&&!i)&&(e.targetAudiences.length===0||e.targetAudiences.reduce((o,n)=>o||n.reduce((l,c)=>l&&c(t,i,r,s),!0),!1))}visitorCreatedDuringTestActive(e){let t="";for(const i of e){if(this.state.analytics.visitor!==null&&this.state.analytics.visitor.createdAt<i.createdAt||this.state.essential.initialState.createdAt<i.createdAt)break;t=i.status}return t==="active"}getDomTestsForCurrentUrl(){return this.domTestsForUrl(this.testsFilteredByAudience)}getCurrentVisitorHypothesis(e){return e.flatMap(t=>t.hypotheses).find(t=>t.type!=="dom"&&t.type!=="price"&&this.state.essential.visitorTests.some(i=>i.hypothesisId===t.id))}getVisitorDomHypothesis(e){return e.flatMap(t=>t.hypotheses).filter(t=>(t.type==="dom"||t.type==="price")&&this.state.essential.visitorTests.some(i=>i.hypothesisId===t.id))}getHypothesis(e){return this.testConfigs.filter(t=>t.hypotheses.some(i=>i.id===e)).map(t=>t.hypotheses.find(i=>i.id===e))[0]}getActiveAssignment(){if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig;return t.currentVariant&&t.testId?{testId:t.testId,hypothesisId:t.currentVariant}:null}const e=this.state.essential.visitorTests.find(t=>t.hypothesisId);return e?.hypothesisId?{testId:e.testId,hypothesisId:e.hypothesisId}:null}findActiveSubscriptionTestControl(){for(const e of this.testConfigs){const t=e.hypotheses.find(i=>i.isControl);if(t?.subscriptionData)return{testId:e.id,hypothesis:t}}return null}getDomSelectorsForHypothesis(e){if(!e)return[];if(e.domSelectors&&e.domSelectors.length>0)return e.domSelectors;if(e.priceData){const t=`${this.priceSelectorsSessionKey}_${e.id}`;try{const s=sessionStorage.getItem(t);if(s){const r=JSON.parse(s);return e.domSelectors=r,this.log("Loaded %d price selectors from cache for hypothesis '%s'",r.length,e.id),r}}catch{}const i=$e(e.priceData);e.domSelectors=i;try{sessionStorage.setItem(t,JSON.stringify(i)),this.log("Generated and cached %d price selectors for hypothesis '%s'",i.length,e.id)}catch{this.log("Generated %d price selectors for hypothesis '%s' (cache unavailable)",i.length,e.id)}return i}return[]}hasThemeTest(e){return e.some(t=>t.hypotheses.some(i=>i.type==="theme"))}hasTestThatIsNotThemeTest(e){return e.some(t=>t.hypotheses.some(i=>i.type!=="theme"&&i.type!=="dom"&&i.type!=="price"))}hasThemeAndOtherTestTypes(e){return this.hasThemeTest(e)&&this.hasTestThatIsNotThemeTest(e)}testIsPaused(e){return e.status==="paused"||e.status==="incompatible"||e.status==="suspended"}visitorActiveTestType(){const e=this.state.essential.visitorTests.filter(t=>this.testConfigs.some(i=>i.hypotheses.some(s=>s.id==t.hypothesisId)));return e.length===0?null:e.some(t=>t.isThemeTest)?"theme":"templateOrUrlRedirect"}getReservationType(e){return e==="price"||this.isTemplateTestType(e)?"deferred":"immediate"}isTemplateTestType(e){return["product","collection","landing","index","cart","search","blog","article","collectionList"].includes(e)}getEntryCriteriaKey(e){const t=e.hypotheses.find(i=>i.isControl);if(!t)return`unknown:${e.id}`;switch(t.type){case"theme":return"global:theme";case"basicScript":return"global:autoApi";case"price":return"global:price";case"manualScript":return`conditional:manualApi:${e.id}`;case"urlRedirect":return`conditional:url:${t.redirectPath||"unknown"}`;default:return`conditional:template:${t.type}`}}isGlobalEntryCriteria(e){return e.startsWith("global:")}groupTestsByEntryCriteria(e){const t=new Map;for(const i of e){const s=this.getEntryCriteriaKey(i),r=t.get(s)||[];r.push(i),t.set(s,r)}return t}doesCurrentPageMatchEntryCriteria(e){if(this.isGlobalEntryCriteria(e))return!0;
98if(e==="conditional:manualApi")return!1;if(e.startsWith("conditional:url:")){const t=e.replace("conditional:url:","");return window.location.pathname.endsWith(t)}if(e.startsWith("conditional:template:")){const t=e.replace("conditional:template:","");return this.typeFromTemplate()===t}return!1}hasActiveReservation(){const e=this.getActiveReservations();return Object.values(e).some(t=>!t.isRealized)}getActiveReservation(){const e=this.getActiveReservations();return Object.values(e).find(t=>!t.isRealized)??null}clearStaleReservations(){const e=this.state.temporary.testReservations;if(!e)return;let t=!1;for(const[i,s]of Object.entries(e)){const r=this.testConfigs.find(n=>n.id===s.testId);if(!r){this.log("Test '%s' no longer in config, clearing reservation for criteria '%s'",s.testId,i),delete e[i],t=!0;continue}if(r.status!=="active"){this.log("Test '%s' status is '%s', clearing reservation for criteria '%s'",s.testId,r.status,i),delete e[i],t=!0;continue}this.testsFilteredByAudience.some(n=>n.id===s.testId)||(this.log("Visitor no longer passes audience for test '%s', clearing reservation for criteria '%s'",s.testId,i),delete e[i],t=!0)}t&&this.persistTemporaryState()}createReservations(e){if(this.state.temporary.testReservations||(this.state.temporary.testReservations={}),this.state.temporary.rolledEntryCriteria||(this.state.temporary.rolledEntryCriteria=[]),this.state.temporary.testCategory==="global"){this.createSingleReservation(e,"global");return}const i=e.filter(n=>this.doesCurrentPageMatchEntryCriteria(this.getEntryCriteriaKey(n))),s=e.filter(n=>!this.doesCurrentPageMatchEntryCriteria(this.getEntryCriteriaKey(n)));this.log("Conditional tests split - matching current page: %d, not matching: %d",i.length,s.length),i.length>0&&this.log("Tests matching current page (same pool): %o",i.map(n=>({id:n.id,title:n.title,criteria:this.getEntryCriteriaKey(n)})));const r=`conditional:current-page:${this.typeFromTemplate()}`;if(i.length>0&&!this.state.temporary.rolledEntryCriteria.includes(r)){this.createSingleReservation(i,r);for(const n of i){const l=this.getEntryCriteriaKey(n);this.state.temporary.rolledEntryCriteria.includes(l)||this.state.temporary.rolledEntryCriteria.push(l)}}const o=this.groupTestsByEntryCriteria(s);for(const[n,l]of o){if(this.state.temporary.rolledEntryCriteria.includes(n)){this.log("Already rolled for criteria '%s', skipping",n);continue}if(l.some(S=>this.state.essential.visitorTests.some(C=>C.testId===S.id))){this.log("Visitor already has VT for criteria '%s', skipping",n),this.state.temporary.rolledEntryCriteria.push(n);continue}const d=[...l].sort((S,C)=>S.id.localeCompare(C.id));this.log("Test dice roll for criteria '%s' - available tests: %o",n,d.map(S=>({id:S.id,title:S.title})));const u=Math.floor(Math.random()*d.length),h=d[u];this.log("Test dice roll: picked index %d of %d, selected test '%s' (%s)",u+1,l.length,h.id,h.title);const p=this.pickHypothesis(h);if(!p){this.log("No hypothesis picked for test '%s'",h.id);continue}this.sendDiagnosticTelemetry("assignment",h.id,{hypothesisId:p.id,isControl:p.isControl,testType:p.type});const b=this.getReservationType(p.type),E={testId:h.id,hypothesisId:p.id,testType:p.type,reservationType:b,isThemeTest:p.type==="theme",themeId:p.themeId,createdAt:new Date,isRealized:!1,entryCriteriaKey:n};this.state.temporary.testReservations[n]=E,this.state.temporary.rolledEntryCriteria.push(n),this.log("Created %s reservation for test '%s' (criteria: %s)",b,h.id,n);for(const S of l)S.id!==h.id&&this.markTestAsBlocked(S,n)}this.persistTemporaryState()}createSingleReservation(e,t){if(this.state.temporary.rolledEntryCriteria.includes(t)){this.log("Already rolled for pool '%s', skipping",t);return}if(e.some(u=>this.state.essential.visitorTests.some(h=>h.testId===u.id&&!h.isInvalid))){this.log("Visitor already has VT for pool '%s', skipping",t),this.state.temporary.rolledEntryCriteria.push(t);return}if(e.length===0){this.log("No tests in pool '%s'",t);return}const s=[...e].sort((u,h)=>u.id.localeCompare(h.id));this.log("Test dice roll for pool '%s' - available tests: %o",t,s.map(u=>({id:u.id,title:u.title,criteria:this.getEntryCriteriaKey(u)})));const r=Math.floor(Math.random()*s.length),o=s[r];this.log("Test dice roll: picked index %d of %d, selected test '%s' (%s)",r,e.length,o.id,o.title);const n=this.pickHypothesis(o);if(!n){this.log("No hypothesis picked for test '%s'",o.id);return}this.sendDiagnosticTelemetry("assignment",o.id,{hypothesisId:n.id,isControl:n.isControl,testType:n.type});const l=this.getReservationType(n.type),c=this.getEntryCriteriaKey(o),d={testId:o.id,hypothesisId:n.id,testType:n.type,reservationType:l,isThemeTest:n.type==="theme",themeId:n.themeId,createdAt:new Date,isRealized:!1,entryCriteriaKey:c};this.state.temporary.testReservations[c]=d,this.state.temporary.rolledEntryCriteria.push(t),this.log("Created %s reservation for test '%s' from pool '%s' (criteria: %s)",l,o.id,t,c);for(const u of e)u.id!==o.id&&this.markTestAsBlocked(u,`pool:${t}`);this.persistTemporaryState()}markTestAsBlocked(e,t){this.state.essential.visitorTests.some(i=>i.testId===e.id)||(this.log("Blocking visitor from test '%s' (reason: %s)",e.id,t),this.state.essential.visitorTests.push({createdAt:new Date,testId:e.id,hypothesisId:null,isThemeTest:e.hypotheses.some(i=>
98i.type==="theme"),shouldSendToGa:!1,isSaved:!0,isInvalid:!0,themeId:void 0}))}realizeReservationForCriteria(e){const t=this.state.temporary.testReservations?.[e];if(!t)return this.log("No reservation found for criteria '%s'",e),!1;if(t.isRealized)return this.log("Reservation already realized for criteria '%s'",e),!1;if(this.state.essential.visitorTests.some(s=>s.testId===t.testId&&!s.isInvalid))return this.log("Visitor already assigned to test '%s'",t.testId),!1;const i=this.getHypothesis(t.hypothesisId);return i?(t.isRealized=!0,this.persistTemporaryState(),this.queueAddVisitorToTest(t.testId,i),this.saveState(),this.log("Realized reservation for test '%s' (criteria: %s)",t.testId,e),!0):(this.log("Hypothesis '%s' not found",t.hypothesisId),!1)}getActiveReservations(){return this.state.temporary.testReservations??{}}getReservationForCurrentPage(){const e=this.getActiveReservations();for(const[t,i]of Object.entries(e)){if(i.isRealized)continue;const s=this.testConfigs.find(r=>r.id===i.testId);if(!(!s||s.status!=="active")&&this.doesCurrentPageMatchEntryCriteria(t))return i}return null}getReservationForTest(e){const t=this.getActiveReservations();return Object.values(t).find(i=>i.testId===e)??null}getReservationTestType(){const e=this.getActiveReservations(),t=Object.values(e);if(t.length===0)return null;for(const i of t)if(i.isThemeTest)return"theme";for(const i of t)if(i.testType==="price")return"price";return t.some(i=>!i.isRealized)?"templateOrUrlRedirect":null}hasPriceTests(e){return e.some(t=>t.hypotheses.some(i=>i.type==="price"))}_priceTestProductIds=null;getPriceTestProductIds(){if(this._priceTestProductIds)return this._priceTestProductIds;const e=new Set;for(const t of this.testConfigs)for(const i of t.hypotheses)if(i.type==="price"){for(const s of i.domSelectors||[]){const r=s.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);r?.[1]&&e.add(r[1])}if(i.priceData?.variants)for(const[s]of i.priceData.variants)e.add(s)}return this._priceTestProductIds=e,this.log("Built price test product ID cache with %d products",e.size),e}isProductInAnyPriceTest(e){return this.getPriceTestProductIds().has(e)}visitorActiveTestTypeWithReservations(){const e=this.getActiveReservations();for(const r of Object.values(e)){if(r.isThemeTest)return"theme";if(r.testType==="price")return"price"}if(Object.values(e).some(r=>!r.isRealized)){if(this.state.temporary.testCategory==="global")for(const o of Object.values(e)){if(o.testType==="theme")return"theme";if(o.testType==="price")return"price";if(o.testType==="basicScript")return"theme"}return"templateOrUrlRedirect"}const i=this.state.essential.visitorTests.filter(r=>!r.isInvalid&&this.testConfigs.some(o=>o.hypotheses.some(n=>n.id===r.hypothesisId)));return i.length===0?null:i.some(r=>this.getHypothesis(r.hypothesisId)?.type==="price")?"price":i.some(r=>r.isThemeTest)?"theme":"templateOrUrlRedirect"}applyControlForAudienceFilteredPriceTests(){const e=this.testConfigs.filter(s=>s.status==="active"&&s.hypotheses.some(r=>r.type==="price"));if(e.length===0)return;const t=this.testsFilteredByAudience.filter(s=>s.hypotheses.some(r=>r.type==="price")),i=e.filter(s=>!t.some(r=>r.id===s.id));if(i.length!==0){this.log("Found %d price tests filtered by audience, applying control selectors",i.length);for(const s of i){const r=s.hypotheses.find(c=>c.isControl),o=this.getDomSelectorsForHypothesis(r);if(o.length===0){this.log("No control selectors for audience-filtered price test '%s'",s.id);continue}const n=new URL(window.location.href);o.some(c=>{try{return new RegExp(se(c)).test(K(n.toString()))}catch{return!1}})&&(this.log("Applying control selectors for audience-filtered price test '%s'",s.id),U(document,{testId:s.id,hypothesisId:r.id,selectors:o},()=>{}),this.updatePriceTestHiddenInputs(s.id,"control",!1))}}}pickHypothesis(e){let t=Math.random();const i=e.hypotheses.reduce((r,o)=>r+o.visitorCount,0);return e.hypotheses.sort((r,o)=>r.isControl?o.isControl?0:-1:o.isControl?1:0).reduce((r,o)=>{if(r!==null)return r;const l=e.hypotheses.reduce((c,d)=>c&&d.visitorCount>20,!0)?o.visitorCount/i-o.trafficPercentage:0;return t<=o.trafficPercentage-l?o:(t-=o.trafficPercentage-l,null)},null)}typeFromTemplate(){switch(template.type){case"list-collections":return"collectionList";case"page":return"landing";case"article":case"blog":case"cart":case"collection":case"index":case"product":case"search":return template.type;default:return null}}queueRedirect(e){this.saveState(),this.disableReferrerOverride||(this.log(`Saving temporary referrer override '${document.referrer}'`),this.state.temporary.originalReferrer=document.referrer,this.persistTemporaryState()),window.setTimeout(()=>window.location.assign(e),0),window.setTimeout(()=>{this.syncAllEvents()},2e3)}scheduleRetrySync(){this.clientIdRetryCount>=5||(this.clientIdRetryCount++,window.setTimeout(()=>{this.syncAllEvents()},500))}async syncAllEvents(){const e=async()=>
98{if(this.isSyncing){window.setTimeout(()=>{(async()=>await e())()},500);return}try{if(this.isSyncing=!0,this.syncGAEvents(),this.shopifyAnalyticsId||(this.shopifyAnalyticsId=this.getShopifyAnalyticsId()),!this.shopifyAnalyticsId){this.scheduleRetrySync();return}await this.syncEvents()}finally{this.isSyncing=!1}};await e()}async syncEvents(){if(!this.state.essential.consentApproved||!this.shopifyAnalyticsId||this.state.analytics.queue.length===0)return;const e=this.state.analytics.queue.length,t=this.state.analytics.queue.splice(0,e);this.log("Syncing %s events",e);try{const i={shop:this.shop,visitorDetails:{shopifyAnalyticsId:this.shopifyAnalyticsId,device:this.state.analytics.visitor?.device??this.device,country:this.state.analytics.visitor?.country??null,...this.state.essential.initialState},events:this.state.essential.visitorTests.filter(r=>!r.isInvalid&&!r.isSaved&&r.hypothesisId!=null).map(r=>new be(r.testId,r.hypothesisId,r.createdAt)).concat(t)};await this.sendEvents(i);for(const r of this.state.essential.visitorTests.filter(o=>!o.isInvalid&&!o.isSaved&&o.hypothesisId!=null))this.sendDiagnosticTelemetry("event-delivered",r.testId,{hypothesisId:r.hypothesisId,isControl:r.assignedTo==="control",testType:r.testType??"unknown"});const s=await this.getVisitor(this.shopifyAnalyticsId);s!==null&&this.updateLocalVisitor(s);for(const r of this.state.essential.visitorTests.filter(o=>!o.isInvalid&&!o.isSaved))r.isSaved=!0,r.savedAt=Date.now()}catch{this.state.analytics.queue.splice(0,0,...t)}finally{this.saveState()}}syncGAEvents(){if(!this.gaConfig.sendEvents){if(he)return;he=!0,this.log("UseGtag is false â skipping GA Events");return}if(this.isSyncingGA){this.log("Already syncing GA - skipping GA events");return}const e=this.state.essential.visitorTests.filter(t=>t.shouldSendToGa);e.length!==0&&(this.isSyncingGA=!0,this.log("Syncing %s GA Events",e.length),Promise.allSettled(e.map(t=>this.sendGAEvent(t))).then(()=>this.log("All gtag events sent")).finally(()=>this.isSyncingGA=!1))}sendGAEvent(e){return new Promise(t=>{this.log("Sending GA Event for test %s, hypothesis %s",e.testId,e.hypothesisId);const i=()=>{this.log("GA acknowledged event for hypothesis %s",e.hypothesisId),e.shouldSendToGa=!1,this.persistEssentialState(),t()},s={exp_variant_string:`SL-${e.testId}-${e.hypothesisId}`};
98this.shopliftDebug&&Object.assign(s,{debug_mode:!0});function r(o,n,l){window.dataLayer=window.dataLayer||[],window.dataLayer.push(arguments)}this.gaConfig.mode==="gtag"?r("event","experience_impression",{...s,event_callback:i}):(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"experience_impression",...s,eventCallback:i}))})}updateLocalVisitor(e){let t;({visitorTests:t,...this.state.analytics.visitor}=e),this.log("updateLocalVisitor - server returned %d tests: %o",t.length,t.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isInvalid:s.isInvalid}))),this.log("updateLocalVisitor - local has %d tests: %o",this.state.essential.visitorTests.length,this.state.essential.visitorTests.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isSaved:s.isSaved,isInvalid:s.isInvalid})));const i=300*1e3;for(const s of this.state.essential.visitorTests.filter(r=>r.isSaved&&(!r.savedAt||Date.now()-r.savedAt>i)&&!t.some(o=>o.testId===r.testId)))this.log("updateLocalVisitor - marking LOCAL test as INVALID (isSaved && not in server): testId=%s, hypothesisId=%s",s.testId,s.hypothesisId),s.isInvalid=!0;for(const s of t){const r=this.state.essential.visitorTests.findIndex(n=>n.testId===s.testId);if(!(r!==-1))this.log("updateLocalVisitor - ADDING server test (not found locally): testId=%s, hypothesisId=%s",s.testId,s.hypothesisId),this.state.essential.visitorTests.push(s);else{const n=this.state.essential.visitorTests.at(r);this.log("updateLocalVisitor - REPLACING local test with server test: testId=%s, local hypothesisId=%s -> server hypothesisId=%s, local isInvalid=%s -> false",s.testId,n?.hypothesisId,s.hypothesisId,n?.isInvalid),s.isInvalid=!1,s.shouldSendToGa=n?.shouldSe
98ndToGa??!1,s.testType=n?.testType,s.assignedTo=n?.assignedTo,s.testTitle=n?.testTitle,this.state.essential.visitorTests.splice(r,1,s)}}this.log("updateLocalVisitor - FINAL local tests: %o",this.state.essential.visitorTests.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isSaved:s.isSaved,isInvalid:s.isInvalid}))),this.state.analytics.visitor.storedAt=new Date}async getVisitor(e){try{return await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/by-key/${this.shop}/${e}`})}catch{return null}}async sendEvents(e){await this.makeRequest({method:"post",url:`${this.eventHost}/api/v0/events`,data:JSON.stringify(e)})}sendDiagnosticTelemetry(e,t,i){if(!this.telemetryEnabled||!navigator.sendBeacon)return;const s=this.state.essential.consentApproved,r=JSON.stringify({shop:this.shop,testId:t,checkpoint:e,device:this.device,...s?{visitorId:this.shopifyAnalyticsId??"unknown"}:{},clientTimestamp:Date.now(),consentApproved:s,hasConsentInteraction:this.state.essential.hasConsentInteraction,...i});navigator.sendBeacon(`${this.eventHost}/api/v0/telemetry`,new Blob([r],{type:"text/plain"}))}getUTMValue(e){const i=decodeURIComponent(window.location.search.substring(1)).split("&");for(let s=0;s<i.length;s++){const r=i[s].split("=");if(r[0]===e)return r[1]||null}return null}hidePage(e){this.log("Hiding page"),this.cssHideClass&&!window.document.documentElement.classList.contains(this.cssHideClass)&&(window.document.documentElement.classList.add(this.cssHideClass),e||setTimeout(this.removeAsyncHide(this.cssHideClass),2e3))}showPage(){this.cssHideClass&&this.removeAsyncHide(this.cssHideClass)()}getDeviceType(){function e(){let i=!1;return(function(s){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(s)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(s.substr(0,4)))&&(i=!0)})(navigator.userAgent||navigator.vendor),i}function t(){let i=!1;return(function(s){(/android|ipad|playbook|silk/i.test(s)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
98sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(s.substr(0,4)))&&(i=!0)})(navigator.userAgent||navigator.vendor),i}return e()?"mobile":t()?"tablet":"desktop"}removeAsyncHide(e){return()=>{e&&window.document.documentElement.classList.remove(e)}}async getCartState(){try{let e=await this.makeJsonRequest({method:"get",url:`${window.location.origin}/cart.js`});return e===null||(e.note===null&&(e=await this.makeJsonRequest({method:"post",url:`${window.location.origin}/cart/update.js`,data:JSON.stringify({note:""})})),e==null)?null:{token:e.token,total_price:e.total_price,total_discount:e.total_discount,currency:e.currency,items_subtotal_price:e.items_subtotal_price,items:e.items.map(t=>({quantity:t.quantity,variant_id:t.variant_id,key:t.key,price:t.price,final_line_price:t.final_line_price,sku:t.sku,product_id:t.product_id}))}}catch(e){return this.log("Error sending cart info",e),null}}ensureCartAttributesForExistingPriceTests(e){try{if(this.log("Checking visitor assignments for active price tests"),e&&this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig;this.log("Using preview config for merchant:",t.testId);let i="variant";if(t.variants&&t.variants.length>0){const s=t.variants.find(r=>r.id===t.currentVariant);s&&s.isControl&&(i="control")}this.log("Merchant preview - updating hidden inputs:",t.testId,i),this.updatePriceTestHiddenInputs(t.testId,i,!0);return}for(const t of this.state.essential.visitorTests){const i=this.testConfigs.find(o=>o.id===t.testId);if(!i){this.log("Test config not found:",t.testId);continue}const s=i.hypotheses.find(o=>o.id===t.hypothesisId);if(!s||s.type!=="price")continue;const r=s.isControl?"control":"variant";this.log("Updating hidden inputs for price test:",t.testId,r),this.updatePriceTestHiddenInputs(t.testId,r,e)}}catch(t){this.log("Error ensuring cart attributes for existing price tests:",t)}}subscriptionSwapDone=!1;subscriptionHideWrongPlans=null;subscriptionPriceDone=!1;subscriptionUpdateOneTime=null;subscriptionOneTimeDone=!1;swapMap=null;slptValue=null;async subscriptionSwap(){await Ue(this)}async subscriptionPriceChange(){await ze(this)}async subscriptionOneTimePrice(){await We(this)}updatePriceTestHiddenInputs(e,t,i){try{this.cleanupPriceTestObservers();const s=`${e}:${t}:${i?"t":"f"}`,r=T=>{const m=T.getAttribute("data-sl-pid");if(!m)return!0;if(i&&this.state.temporary.previewConfig){const w=this.state.temporary.previewConfig,I=t==="control"?"a":"b",f=w.variants.find(v=>v.label===I);if(!f)return!1;for(const v of f.domSelectors||[]){const g=v.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(g){const P=g[1];if(this.log(`Extracted ID from selector: ${P}, comparing to: ${m}`),P===m)return this.log("Product ID match found in preview config:",m,"variant:",f.label),!0}else this.log(`Could not extract ID from selector: ${v.cssSelector}`)}return this.log("No product ID match in preview config for:",m,"variant:",I),!1}const y=this.testConfigs.find(w=>w.id===e);if(!y)return this.log("Test config not found for testId:",e),!1;for(const w of y.hypotheses||[]){for(const I of w.domSelectors||[]){const f=I.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(f&&f[1]===m)return this.log("Product ID match found in domSelectors:",m,"for test:",e),!0}if(w.priceData?.variants){for(const I of w.priceData.variants)if(I[0]===m)return this.log("Product ID match found in priceData:",m,"for test:",e),!0}}return this.log("No product ID match for:",m,"in test:",e),!1},o=new Set;let n=!1,l=null;const c=(T,m)=>{if(document.querySelectorAll("[data-sl-attribute-p]").forEach(w=>{if(w instanceof Element&&w.nodeType===Node.ELEMENT_NODE&&w.isConnected&&document.contains(w))try{T.observe(w,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(I){this.log(`Failed to observe element (${m}):`,I)}}),document.body&&document.body.isConnected)try{T.observe(document.body,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(w){this.log(`Failed to observe document.body (${m}):`,w)}},d=(T,m,y,w)=>{const I=T.filter(f=>{const v=f.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);return v&&v[1]===w});this.log(`Applying ${y} DOM selectors, total: ${T.length}, filtered: ${I.length}`),I.length>0&&U(document,{testId:e,hypothesisId:m,selectors:I})},u=(T,m)=>{this.log(`Applying DOM selector changes for product ID: ${T}`),m.disconnect(),n=!0;try{if(i&&this.state.temporary.previewConfig){const y=t==="control"?"a":"b",w=this.state.temporary.previewConfig.variants.find(I=>I.label===y);if(!w?.domSelectors){this.log(`No DOM selectors found for preview variant: ${y}`);return}d(w.domSelectors,w.id,"preview config",T)}else{const y=this.testConfigs.find(I=>I.id===e);if(!y){this.log(`No test config found for testId: ${e}`);return}const w=y.hypotheses.find(I=>t==="control"?I.isControl:!I.isControl);if(!w?.domSelectors){this.log(`No DOM selectors found for assignment: ${t}`);return}d(w.domSelectors,w.id,"live config",T)}}finally{l!==null&&clearTimeout(l),l=window.setTimeout(()=>{n=!1,l=null,c(m,"reconnection"),this.log("Re-established innerHTML observer after DOM changes")}
98,50)}},h=new MutationObserver(T=>{if(!n)for(const m of T){if(m.type!=="childList"&&m.type!=="characterData")continue;let y=m.target;m.type==="characterData"&&(y=m.target.parentElement||m.target.parentNode);let w=y,I=w.getAttribute("data-sl-attribute-p");for(;!I&&w.parentElement;)w=w.parentElement,I=w.getAttribute("data-sl-attribute-p");if(!I)continue;const f=w.innerHTML||w.textContent||"";let v="";m.type==="characterData"&&m.oldValue!==null&&(v=m.oldValue),this.log(`innerHTML changed on element with data-sl-attribute-p="${I}"`),v&&this.log(`Previous content: "${v}"`),this.log(`Current content: "${f}"`),u(I,h)}});c(h,"initial setup"),o.add(h);const p=new MutationObserver(T=>{T.forEach(m=>{m.addedNodes.forEach(y=>{if(y.nodeType===Node.ELEMENT_NODE){const w=y;E(w);const I=w.matches('input[name="properties[_slpt]"]')?[w]:w.querySelectorAll('input[name="properties[_slpt]"]');I.length>0&&this.log(`MutationObserver found ${I.length} new hidden input(s)`),I.forEach(f=>{const v=f.getAttribute("data-sl-pid");if(this.log(`MutationObserver checking new input with data-sl-pid="${v}"`),r(f))f.value!==s&&(f.value=s,this.log("Updated newly added hidden input:",s)),S(f);else{const g=f.getAttribute("data-sl-pid");g&&this.isProductInAnyPriceTest(g)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",g):(f.remove(),this.log("Removed newly added non-matching hidden input for product ID:",g))}})}})})});o.add(p);const b=new MutationObserver(T=>{T.forEach(m=>{if(m.type==="attributes"&&m.attributeName==="data-sl-pid"){const y=m.target;if(this.log("AttributeObserver detected data-sl-pid attribute change on:",y.tagName),y.matches('input[name="properties[_slpt]"]')){const w=y,I=m.oldValue,f=w.getAttribute("data-sl-pid");this.log(`data-sl-pid changed from "${I}" to "${f}" - triggering payment placement updates`),r(w)?(w.value!==s&&(w.value=s,this.log("Updated hidden input after data-sl-pid change:",s)),f&&u(f,h),this.log("Re-running payment placement updates after variant change"),E(document.body)):f&&this.isProductInAnyPriceTest(f)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",f):(w.remove(),this.log("Removed non-matching hidden input after data-sl-pid change:",f))}}})});o.add(b);const E=T=>{T.tagName==="SHOPIFY-PAYMENT-TERMS"&&(this.log("MutationObserver found new shopify-payment-terms element"),this.updateShopifyPaymentTerms(e,t));const m=T.querySelectorAll("shopify-payment-terms");m.length>0&&(this.log(`MutationObserver found ${m.length} shopify-payment-terms in added node`),this.updateShopifyPaymentTerms(e,t)),T.tagName==="AFTERPAY-PLACEMENT"&&(this.log("MutationObserver found new afterpay-placement element"),this.updateAfterpayPlacements(e,t,"afterpay"));const y=T.querySelectorAll("afterpay-placement");y.length>0&&(this.log(`MutationObserver found ${y.length} afterpay-placement in added node`),this.updateAfterpayPlacements(e,t,"afterpay")),T.tagName==="SQUARE-PLACEMENT"&&(this.log("MutationObserver found new square-placement element"),this.updateAfterpayPlacements(e,t,"square"));const w=T.querySelectorAll("square-placement");w.length>0&&(this.log(`MutationObserver found ${w.length} square-placement in added node`),this.updateAfterpayPlacements(e,t,"square")),T.tagName==="KLARNA-PLACEMENT"&&(this.log("MutationObserver found new klarna-placement element"),this.updateKlarnaPlacements(e,t));const I=T.querySelectorAll("klarna-placement");I.length>0&&(this.log(`MutationObserver found ${I.length} klarna-placement in added node`),this.updateKlarnaPlacements(e,t))},S=T=>{b.observe(T,{attributes:!0,attributeFilter:["data-sl-pid"],attributeOldValue:!0,subtree:!1});const m=T.getAttribute("data-sl-pid");this.log(`Started AttributeObserver on specific input with data-sl-pid="${m}"`)},C=()=>{const T=document.querySelectorAll('input[name="properties[_slpt]"]');this.log(`Found ${T.length} existing hidden inputs to check`),T.forEach(m=>{const y=m.getAttribute("data-sl-pid");this.log(`Checking existing input with data-sl-pid="${y}"`),r(m)?(m.value=s,this.log("Updated existing hidden input:",s),y&&(this.log("Applying initial DOM selector changes for existing product"),u(y,h)),S(m)):y&&this.isProductInAnyPriceTest(y)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",
98y):(m.remove(),this.log("Removed non-matching hidden input for product ID:",y))})},_=()=>{document.body?(p.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver on document.body"),C(),E(document.body)):document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{document.body&&(p.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver after DOMContentLoaded"),C(),E(document.body))}):(this.log("Set timeout on observer"),setTimeout(_,10))};_(),window.__shopliftPriceTestObservers=o,window.__shopliftPriceTestValue=s,this.log("Set up DOM observer for price test hidden inputs")}catch(s){this.log("Error updating price test hidden inputs:",s)}}updateKlarnaPlacements(e,t){this.updatePlacementElements(e,t,"klarna-placement",(i,s)=>{i.setAttribute("data-purchase-amount",s.toString())})}cleanupPriceTestObservers(){const e=window.__shopliftPriceTestObservers;e&&(e.forEach(t=>{t.disconnect()}),e.clear(),this.log("Cleaned up existing price test observers")),delete window.__shopliftPriceTestObservers,delete window.__shopliftPriceTestValue}updateAfterpayPlacements(e,t,i="afterpay"){const s=i==="square"?"square-placement":"afterpay-placement";if(document.querySelectorAll(s).length===0){this.log(`No ${s} elements found on page - early return`);return}this.updatePlacementElements(e,t,s,(o,n)=>{if(i==="afterpay"){const l=(n/100).toFixed(2);o.setAttribute("data-amount",l)}else o.setAttribute("data-amount",n.toString())}),this.log("updateAfterpayPlacements completed")}updatePlacementElements(e,t,i,s){const r=document.querySelectorAll(i);if(r.length===0){this.log(`No ${i} elements found - early return`);return}let o;if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const l=t==="control"?"a":"b",c=this.state.temporary.previewConfig.variants.find(d=>d.label===l);if(!c?.domSelectors){this.log(`No variant found for label ${l} in preview config for ${i}`);return}o=c.domSelectors,this.log(`Using preview config for ${i} in merchant mode, variant: ${l}`)}else{const l=this.testConfigs.find(d=>d.id===e);if(!l){this.log(`No testConfig found for id: ${e} - early return`);return}
98const c=l.hypotheses.find(d=>t==="control"?d.isControl:!d.isControl);if(!c?.domSelectors){this.log(`No hypothesis or domSelectors found for assignment: ${t} - early return`);return}o=c.domSelectors}const n=new RegExp(`${this.DATA_SL_ATTRIBUTE_P}=["'](\\d+)["']`);r.forEach(l=>{let c=null;const d=l.parentElement;if(d&&(c=d.querySelector('input[name="properties[_slpt]"]')),c||(c=l.querySelector('input[name="properties[_slpt]"]')),!c){this.log(`No hidden input found for ${i} element`);return}const u=c.getAttribute("data-sl-pid");if(!u){this.log("Hidden input has no data-sl-pid attribute - skipping");return}const h=o.find(S=>{const C=S.cssSelector.match(n);return C&&C[1]===u});if(!h){this.log(`No matching selector found for productId: ${u} - skipping element`);return}const p=h.actions.find(S=>S.scope==="price");if(!p?.value){this.log("No price action or value found - skipping element");return}const b=parseFloat(p.value.replace(/[^0-9.]/g,""));if(Number.isNaN(b)){this.log(`Invalid price "${p.value}" for product ${u} - skipping`);return}const E=Math.round(b*100);s(l,E)}),this.log(`updatePlacementElements completed for ${i}`)}updateShopifyPaymentTerms(e,t){const i=document.querySelectorAll("shopify-payment-terms");if(i.length===0)return;this.log("Store using shopify payments");let s;if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const o=t==="control"?"a":"b",n=this.state.temporary.previewConfig.variants.find(l=>l.label===o);if(!n||!n.domSelectors){this.log(`No variant found for label ${o} in preview config`);return}s=n.domSelectors,this.log(`Using preview config for shopify-payment-terms in merchant mode, variant: ${o}`)}else{const o=this.testConfigs.find(l=>l.id===e);if(!o)return;const n=o.hypotheses.find(l=>t==="control"?l.isControl===!0:l.isControl===!1);if(!n||!n.domSelectors)return;s=n.domSelectors}const r=new RegExp(`${this.DATA_SL_ATTRIBUTE_P}=["'](\\d+)["']`);i.forEach(o=>{const n=o.getAttribute("variant-id");if(!n)return;const l=s.find(c=>{const d=c.cssSelector.match(r);return d&&d[1]===n});if(l){const c=l.actions.find(d=>d.scope==="price");if(c&&c.value){const d=o.getAttribute("shopify-meta");if(d)try{const u=JSON.parse(d);if(u.variants&&Array.isArray(u.variants)){const h=u.variants.find(p=>p.id?.toString()===n);if(h){h.full_price=c.value;const p=parseFloat(c.value.replace(/[^0-9.]/g,""));if(h.number_of_payment_terms&&h.number_of_payment_terms>1){const b=p/h.number_of_payment_terms;h.price_per_term=`$${b.toFixed(2)}`}o.setAttribute("shopify-meta",JSON.stringify(u))}}}catch(u){this.log("Error parsing/updating shoplift-meta:",u)}}}})}async makeJsonRequest(e){const t=await this.makeRequest(e);return t===null?null:JSON.parse(await t.text(),F)}async makeRequest(e){const{url:t,method:i,headers:s,data:r,signal:o}=e,n=new Headers;if(s)for(const c in s)n.append(c,s[c]);(!s||!s.Accept)&&n.append("Accept","application/json"),(!s||!s["Content-Type"])&&n.append("Content-Type","application/json"),(this.eventHost.includes("ngrok.io")||this.eventHost.includes("ngrok-free.app"))&&n.append("ngrok-skip-browser-warning","1234");const l=await this.fetch(t,{method:i,headers:n,body:r,signal:o});if(!l.ok){if(l.status===204)return null;if(l.status===422){const c=await l.json();if(typeof c<"u"&&c.isBot)throw new ie}throw new Error(`Error sending shoplift request ${l.status}`)}return l}queueAddVisitorToTest(e,t){if(this.state.essential.visitorTests.some(s=>s.testId===e))return;const i=this.testConfigs.find(s=>s.id===e);if(this.state.essential.visitorTests.push({createdAt:new Date,testId:e,hypothesisId:t.id,isThemeTest:t.type==="theme",themeId:t.themeId,isSaved:!1,isInvalid:!1,shouldSendToGa:!0,testType:t.type,assignedTo:t.isControl?"control":"variant",testTitle:i?.title}),t.type==="price"){const s=t.isControl?"control":"variant";this.log("Price test assignment detected, updating cart attributes:",e,s),this.updatePriceTestHiddenInputs(e,s,!1)}}queueCartUpdate(e){this.queueEvent(new Ce(e))}queuePageView(e){this.queueEvent(new Se(e))}queueEvent(e){!this.state.essential.consentApproved&&this.state.essential.hasConsentInteraction||this.state.analytics.queue.length>10||this.state.analytics.queue.push(e)}legacyGetLocalStorageVisitor(){const e=this.localStorageGet(this.legacySessionKey);if(e)try{return JSON.parse(e,F)}catch{}return null}pruneStaleVisitorTests(){this.state.essential.visitorTests=this.state.essential.visitorTests.filter(e=>this.testConfigs.some(t=>t.id==e.testId)||this.inactiveTestConfigs.filter(t=>this.testIsPaused(t)).some(t=>t.id===e.testId))}pruneStateAndSave(){this.pruneStaleVisitorTests(),this.saveState()}saveState(){this.persistEssentialState(),this.persistAnalyticsState()}loadState(){const e=this.loadAnalyticsState(),t={analytics:e,essential:this.loadEssentialState(e),temporary:this.loadTemporaryState()},i=this.legacyGetLocalStorageVisitor(),s=this.legacyGetCookieVisitor(),r=[i,s].filter(o=>o!==null).sort((o,n)=>+n.storedAt-+o.storedAt)[0];return t.analytics.visitor===null&&r&&({visitorTests:t.essential.visitorTests,...t.analytics.visitor}=r,t.essential.isFirstLoad=!1,t.essential.initialState={createdAt:r.createdAt,referrer:r.referrer,utmCampaign:r.utmCampaign,utmContent:r.utmContent,utmMedium:r.utmMedium,utmSource:r.utmSource,device:r.device},this.deleteCookie("SHOPLIFT"),this.deleteLocalStorage(this.legacySessionKey)),!t.essential.consentApproved&&t.essential.hasConsentInteraction&&this.deleteLocalStorage(this.analyticsSessionKey),t}loadEssentialState(e){const t=this.loadLocalStorage(this.essentialSessionKey),i=this.loadCookie(this.essentialSessionKey),s=this.getInitialState();e.visitor?.device&&(s.device=e.visitor.device);const r={timestamp:new Date,consentApproved:!1,hasConsentInteraction:!1,debugMode:!1,initialState:s,visitorTests:[],isFirstLoad:!0},o=[t,i].filter(n=>n!==null).sort((n,l)=>+l.timestamp-+n.timestamp)[0]??r;return o.initialState||(e.visitor!==null?o.initialState=e.visitor:(o.initialState=s,o.initialState.createdAt=o.timestamp)),o}loadAnalyticsState(){const e=this.loadLocalStorage(this.analyticsSessionKey),t=this.loadCookie(this.analyticsSessionKey),i={timestamp:new Date,visitor:null,queue:[]},s=[e,t].filter(r=>r!==null).sort((r,o)=>+o.timestamp-+r.timestamp)[0]??i;return s.queue.length===0&&e&&e.queue.length>1&&(s.queue=e.queue),s}loadTemporaryState(){const e=this.sessionStorageGet(this.temporarySessionKey),t=e?JSON.parse(e,F):null,i=this.loadCookie(this.temporarySessionKey);return t??i??{isMerchant:!1,timestamp:new Date}}persistEssentialState(){this.log("Persisting essential state"),this.state.essential.isFirstLoad=!1,this.state.essential.timestamp=new Date,this.persistLocalStorageState(this.essentialSessionKey,this.state.essential),this.persist
98CookieState(this.essentialSessionKey,this.state.essential)}persistAnalyticsState(){this.log("Persisting analytics state"),this.state.essential.consentApproved&&(this.state.analytics.timestamp=new Date,this.persistLocalStorageState(this.analyticsSessionKey,this.state.analytics),this.persistCookieState(this.analyticsSessionKey,{...this.state.analytics,queue:[]}))}persistTemporaryState(){this.log("Setting temporary session state"),this.state.temporary.timestamp=new Date,this.sessionStorageSet(this.temporarySessionKey,JSON.stringify(this.state.temporary)),this.persistCookieState(this.temporarySessionKey,this.state.temporary,!0)}loadLocalStorage(e){const t=this.localStorageGet(e);if(t===null)return null;try{return JSON.parse(t,F)}catch{return null}}loadCookie(e){const t=this.getCookie(e);if(t===null)return null;try{return JSON.parse(t,F)}catch{return null}}persistLocalStorageState(e,t){this.localStorageSet(e,JSON.stringify(t))}persistCookieState(e,t,i=!1){const s=JSON.stringify(t),r=i?"":`expires=${new Date(new Date().getTime()+864e5*365).toUTCString()};`;document.cookie=`${e}=${s};domain=.${window.location.hostname};path=/;SameSite=Strict;${r}`}deleteCookie(e){const t=new Date(0).toUTCString();document.cookie=`${e}=;domain=.${window.location.hostname};path=/;expires=${t};`}deleteLocalStorage(e){window.localStorage.removeItem(e)}getChannel(e){return[{"name":"cross-network","test":(v) => new RegExp(".*cross-network.*", "i").test(v.utmCampaign)},{"name":"direct","test":(v) => v.utmSource === "" && v.utmMedium === ""},{"name":"paid-shopping","test":(v) => (new RegExp("^(?:Google|IGShopping|aax-us-east\.amazon-adsystem\.com|aax\.amazon-adsystem\.com|alibaba|alibaba\.com|amazon|amazon\.co\.uk|amazon\.com|apps\.shopify\.com|checkout\.shopify\.com|checkout\.stripe\.com|cr\.shopping\.naver\.com|cr2\.shopping\.naver\.com|ebay|ebay\.co\.uk|ebay\.com|ebay\.com\.au|ebay\.de|etsy|etsy\.com|m\.alibaba\.com|m\.shopping\.naver\.com|mercadolibre|mercadolibre\.com|mercadolibre\.com\.ar|mercadolibre\.com\.mx|message\.alibaba\.com|msearch\.shopping\.naver\.com|nl\.shopping\.net|no\.shopping\.net|offer\.alibaba\.com|one\.walmart\.com|order\.shopping\.yahoo\.co\.jp|partners\.shopify\.com|s3\.amazonaws\.com|se\.shopping\.net|shop\.app|shopify|shopify\.com|shopping\.naver\.com|shopping\.yahoo\.co\.jp|shopping\.yahoo\.com|shopzilla|shopzilla\.com|simplycodes\.com|store\.shopping\.yahoo\.co\.jp|stripe|stripe\.com|uk\.shopping\.net|walmart|walmart\.com)$", "i").test(v.utmSource) || new RegExp("^(.*(([^a-df-z]|^)shop|shopping).*)$", "i").test(v.utmCampaign)) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-search","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|y
98andex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-social","test":(v) => new RegExp("^(?:43things|43things\.com|51\.com|5ch\.net|Hatena|ImageShack|academia\.edu|activerain|activerain\.com|activeworlds|activeworlds\.com|addthis|addthis\.com|airg\.ca|allnurses\.com|allrecipes\.com|alumniclass|alumniclass\.com|ameba\.jp|ameblo\.jp|americantowns|americantowns\.com|amp\.reddit\.com|ancestry\.com|anobii|anobii\.com|answerbag|answerbag\.com|answers\.yahoo\.com|aolanswers|aolanswers\.com|apps\.facebook\.com|ar\.pinterest\.com|artstation\.com|askubuntu|askubuntu\.com|asmallworld\.com|athlinks|athlinks\.com|away\.vk\.com|awe\.sm|b\.hatena\.ne\.jp|baby-gaga|baby-gaga\.com|babyblog\.ru|badoo|badoo\.com|bebo|bebo\.com|beforeitsnews|beforeitsnews\.com|bharatstudent|bharatstudent\.com|biip\.no|biswap\.org|bit\.ly|blackcareernetwork\.com|blackplanet|blackplanet\.com|blip\.fm|blog\.com|blog\.feedspot\.com|blog\.goo\.ne\.jp|blog\.naver\.com|blog\.yahoo\.co\.jp|blogg\.no|bloggang\.com|blogger|blogger\.com|blogher|blogher\.com|bloglines|bloglines\.com|blogs\.com|blogsome|blogsome\.com|blogspot|blogspot\.com|blogster|blogster\.com|blurtit|blurtit\.com|bookmarks\.yahoo\.co\.jp|bookmarks\.yahoo\.com|br\.pinterest\.com|brightkite|brightkite\.com|brizzly|brizzly\.com|business\.facebook\.com|buzzfeed|buzzfeed\.com|buzznet|buzznet\.com|cafe\.naver\.com|cafemom|cafemom\.com|camospace|camospace\.com|canalblog\.com|care\.com|care2|care2\.com|caringbridge\.org|catster|catster\.com|cbnt\.io|cellufun|cellufun\.com|centerblog\.net|chat\.zalo\.me|chegg\.com|chicagonow|chicagonow\.com|chiebukuro\.yahoo\.co\.jp|classmates|classmates\.com|classquest|classquest\.com|co\.pinterest\.com|cocolog-nifty|cocolog-nifty\.com|copainsdavant\.linternaute\.com|couchsurfing\.org|cozycot|cozycot\.com|cross\.tv|crunchyroll|crunchyroll\.com|cyworld|cyworld\.com|cz\.pinterest\.com|d\.hatena\.ne\.jp|dailystrength\.org|deluxe\.com|deviantart|deviantart\.com|dianping|dianping\.com|digg|digg\.com|diigo|diigo\.com|discover\.hubpages\.com|disqus|disqus\.com|dogster|dogster\.com|dol2day|dol2day\.com|doostang|doostang\.com|dopplr|dopplr\.com|douban|douban\.com|draft\.blogger\.com|draugiem\.lv|drugs-forum|drugs-forum\.com|dzone|dzone\.com|edublogs\.org|elftown|elftown\.com|epicurious\.com|everforo\.com|exblog\.jp|extole|extole\.com|facebook|facebook\.com|faceparty|faceparty\.com|fandom\.com|fanpop|fanpop\.com|fark|fark\.com|fb|fb\.me|fc2|fc2\.com|feedspot|feministing|feministing\.com|filmaffinity|filmaffinity\.com|flickr|flickr\.com|flipboard|flipboard\.com|folkdirect|folkdirect\.com|foodservice|foodservice\.com|forums\.androidcentral\.com|forums\.crackberry\.com|forums\.imore\.com|forums\.nexopia\.com|forums\.webosnation\.com|forums\.wpcentral\.com|fotki|fotki\.com|fotolog|fotolog\.com|foursquare|foursquare\.com|free\.facebook\.com|friendfeed|friendfeed\.com|fruehstueckstreff\.org|fubar|fubar\.com|gaiaonline|gaiaonline\.com|gamerdna|gamerdna\.com|gather\.com|geni\.com|getpocket\.com|glassboard|glassboard\.com|glassdoor|glassdoor\.com|godtube|godtube\.com|goldenline\.pl|goldstar|goldstar\.com|goo\.gl|gooblog|goodreads|goodreads\.com|google\+|googlegroups\.com|googleplus|govloop|govloop\.com|gowalla|gowalla\.com|gree\.jp|groups\.google\.com|gulli\.com|gutefrage\.net|habbo|habbo\.com|hi5|hi5\.com|hootsuite|hootsuite\.com|houzz|houzz\.com|hoverspot|hoverspot\.com|hr\.com|hu\.pinterest\.com|hubculture|hubculture\.com|hubpages\.com|hyves\.net|hyves\.nl|ibibo|ibibo\.com|id\.pinterest\.com|identi\.ca|ig|imageshack\.com|imageshack\.us|imvu|imvu\.com|in\.pinterest\.com|insanejournal|insanejournal\.com|instagram|instagram\.com|instapaper|instapaper\.com|internations\.org|interpals\.net|intherooms|intherooms\.com|irc-galleria\.net|is\.gd|italki|italki\.com|jammerdirect|jammerdirect\.com|jappy\.com|jappy\.de|kaboodle\.com|kakao|kakao\.com|kakaocorp\.com|kaneva|kaneva\.com|kin\.naver\.com|l\.facebook\.com|l\.instagram\.com|l\.messenger\.com|last\.fm|librarything|librarything\.com|lifestream\.aol\.com|line|line\.me|linkedin|linkedin\.com|listal|listal\.com|listography|listography\.com|livedoor\.com|livedoorblog|livejournal|livejournal\.com|lm\.facebook\.com|lnkd\.in|m\.blog\.naver\.com|m\.cafe\.naver\.com|m\.facebook\.com|m\.kin\.naver\.com|m\.vk\.com|m\.yelp\.com|mbga\.jp|medium\.com|meetin\.org|meetup|meetup\.com|meinvz\.net|meneame\.net|menuism\.com|messages\.google\.com|messages\.yahoo\.co\.jp|messenger|messenger\.com|mix\.com|mixi\.jp|mobile\.facebook\.com|mocospace|mocospace\.com|mouthshut|mouthshut\.com|movabletype|movabletype\.com|mubi|mubi\.com|my\.o
98pera\.com|myanimelist\.net|myheritage|myheritage\.com|mylife|mylife\.com|mymodernmet|mymodernmet\.com|myspace|myspace\.com|netvibes|netvibes\.com|news\.ycombinator\.com|newsshowcase|nexopia|ngopost\.org|niconico|nicovideo\.jp|nightlifelink|nightlifelink\.com|ning|ning\.com|nl\.pinterest\.com|odnoklassniki\.ru|odnoklassniki\.ua|okwave\.jp|old\.reddit\.com|oneworldgroup\.org|onstartups|onstartups\.com|opendiary|opendiary\.com|oshiete\.goo\.ne\.jp|out\.reddit\.com|over-blog\.com|overblog\.com|paper\.li|partyflock\.nl|photobucket|photobucket\.com|pinboard|pinboard\.in|pingsta|pingsta\.com|pinterest|pinterest\.at|pinterest\.ca|pinterest\.ch|pinterest\.cl|pinterest\.co\.kr|pinterest\.co\.uk|pinterest\.com|pinterest\.com\.au|pinterest\.com\.mx|pinterest\.de|pinterest\.es|pinterest\.fr|pinterest\.it|pinterest\.jp|pinterest\.nz|pinterest\.ph|pinterest\.pt|pinterest\.ru|pinterest\.se|pixiv\.net|pl\.pinterest\.com|playahead\.se|plurk|plurk\.com|plus\.google\.com|plus\.url\.google\.com|pocket\.co|posterous|posterous\.com|pro\.homeadvisor\.com|pulse\.yahoo\.com|qapacity|qapacity\.com|quechup|quechup\.com|quora|quora\.com|qzone\.qq\.com|ravelry|ravelry\.com|reddit|reddit\.com|redux|redux\.com|renren|renren\.com|researchgate\.net|reunion|reunion\.com|reverbnation|reverbnation\.com|rtl\.de|ryze|ryze\.com|salespider|salespider\.com|scoop\.it|screenrant|screenrant\.com|scribd|scribd\.com|scvngr|scvngr\.com|secondlife|secondlife\.com|serverfault|serverfault\.com|shareit|sharethis|sharethis\.com|shvoong\.com|sites\.google\.com|skype|skyrock|skyrock\.com|slashdot\.org|slideshare\.net|smartnews\.com|snapchat|snapchat\.com|social|sociallife\.com\.br|socialvibe|socialvibe\.com|spaces\.live\.com|spoke|spoke\.com|spruz|spruz\.com|ssense\.com|stackapps|stackapps\.com|stackexchange|stackexchange\.com|stackoverflow|stackoverflow\.com|stardoll\.com|stickam|stickam\.com|studivz\.net|suomi24\.fi|superuser|superuser\.com|sweeva|sweeva\.com|t\.co|t\.me|tagged|tagged\.com|taggedmail|taggedmail\.com|talkbiznow|talkbiznow\.com|taringa\.net|techmeme|techmeme\.com|tencent|tencent\.com|tiktok|tiktok\.com|tinyurl|tinyurl\.com|toolbox|toolbox\.com|touch\.facebook\.com|tr\.pinterest\.com|travellerspoint|travellerspoint\.com|tripadvisor|tripadvisor\.com|trombi|trombi\.com|trustpilot|tudou|tudou\.com|tuenti|tuenti\.com|tumblr|tumblr\.com|tweetdeck|tweetdeck\.com|twitter|twitter\.com|twoo\.com|typepad|typepad\.com|unblog\.fr|urbanspoon\.com|ushareit\.com|ushi\.cn|vampirefreaks|vampirefreaks\.com|vampirerave|vampirerave\.com|vg\.no|video\.ibm\.com|vk\.com|vkontakte\.ru|wakoopa|wakoopa\.com|wattpad|wattpad\.com|web\.facebook\.com|web\.skype\.com|webshots|webshots\.com|wechat|wechat\.com|weebly|weebly\.com|weibo|weibo\.com|wer-weiss-was\.de|weread|weread\.com|whatsapp|whatsapp\.com|wiki\.answers\.com|wikihow\.com|wikitravel\.org|woot\.com|wordpress|wordpress\.com|wordpress\.org|xanga|xanga\.com|xing|xing\.com|yahoo-mbga\.jp|yammer|yammer\.com|yelp|yelp\.co\.uk|yelp\.com|youroom\.in|za\.pinterest\.com|zalo|zoo\.gr|zooppa|zooppa\.com)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-video","test":(v) => new RegExp("^(?:blog\.twitch\.tv|crackle|crackle\.com|curiositystream|curiositystream\.com|d\.tube|dailymotion|dailymotion\.com|dashboard\.twitch\.tv|disneyplus|disneyplus\.com|fast\.wistia\.net|help\.hulu\.com|help\.netflix\.com|hulu|hulu\.com|id\.twitch\.tv|iq\.com|iqiyi|iqiyi\.com|jobs\.netflix\.com|justin\.tv|m\.twitch\.tv|m\.youtube\.com|music\.youtube\.com|netflix|netflix\.com|player\.twitch\.tv|player\.vimeo\.com|ted|ted\.com|twitch|twitch\.tv|utreon|utreon\.com|veoh|veoh\.com|viadeo\.journaldunet\.com|vimeo|vimeo\.com|wistia|wistia\.com|youku|youku\.com|youtube|youtube\.com)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"display","test":(v) => new RegExp("^(?:display|banner|expandable|interstitial|cpm)$", "i").test(v.utmMedium)},{"name":"paid-other","test":(v) => new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)}
98,{"name":"organic-shopping","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|yandex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) || new RegExp("^(.*(([^a-df-z]|^)shop|shopping).*)$", "i").test(v.utmCampaign)},{"name":"organic-social","test":(v) => new RegExp("^(?:43things|43things\.com|51\.com|5ch\.net|Hatena|ImageShack|academia\.edu|activerain|activerain\.com|activeworlds|activeworlds\.com|addthis|addthis\.com|airg\.ca|allnurses\.com|allrecipes\.com|alumniclass|alumniclass\.com|ameba\.jp|ameblo\.jp|americantowns|americantowns\.com|amp\.reddit\.com|ancestry\.com|anobii|anobii\.com|answerbag|answerbag\.com|answers\.yahoo\.com|aolanswers|aolanswers\.com|apps\.facebook\.com|ar\.pinterest\.com|artstation\.com|askubuntu|askubuntu\.com|asmallworld\.com|athlinks|athlinks\.com|away\.vk\.com|awe\.sm|b\.hatena\.ne\.jp|baby-gaga|baby-gaga\.com|babyblog\.ru|badoo|badoo\.com|bebo|bebo\.com|beforeitsnews|beforeitsnews\.com|bharatstudent|bharatstudent\.com|biip\.no|biswap\.org|bit\.ly|blackcareernetwork\.com|blackplanet|blackplanet\.com|blip\.fm|blog\.com|blog\.feedspot\.com|blog\.goo\.ne\.jp|blog\.naver\.com|blog\.yahoo\.co\.jp|blogg\.no|bloggang\.com|blogger|blogger\.com|blogher|blogher\.com|bloglines|bloglines\.com|blogs\.com|blogsome|blogsome\.com|blogspot|blogspot\.com|blogster|blogster\.com|blurtit|blurtit\.com|bookmarks\.yahoo\.co\.jp|bookmarks\.yahoo\.com|br\.pinterest\.com|brightkite|brightkite\.com|brizzly|brizzly\.com|business\.facebook\.com|buzzfeed|buzzfeed\.com|buzznet|buzznet\.com|cafe\.naver\.com|cafemom|cafemom\.com|camospace|camospace\.com|canalblog\.com|care\.com|care2|care2\.com|caringbridge\.org|catster|catster\.com|cbnt\.io|cellufun|cellufun\.com|centerblog\.net|chat\.zalo\.me|chegg\.com|chicagonow|chicagonow\.com|chiebukuro\.yahoo\.co\.jp|classmates|classmates\.com|classquest|classquest\.com|co\.pinterest\.com|cocolog-nifty|cocolog-nifty\.com|copainsdavant\.linternaute\.com|couchsurfing\.org|cozycot|cozycot\.com|cross\.tv|crunchyroll|crunchyroll\.com|cyworld|cyworld\.com|cz\.pinterest\.com|d\.hatena\.ne\.jp|dailystrength\.org|deluxe\.com|deviantart|deviantart\.com|dianping|dianping\.com|digg|digg\.com|diigo|diigo\.com|discover\.hubpages\.com|disqus|disqus\.com|dogster|dogster\.com|dol2day|dol2day\.com|doostang|doostang\.com|dopplr|dopplr\.com|douban|douban\.com|draft\.blogger\.com|draugiem\.lv|drugs-forum|drugs-forum\.com|dzone|dzone\.com|edublogs\.org|elftown|elftown\.com|epicurious\.com|everforo\.com|exblog\.jp|extole|extole\.com|facebook|facebook\.com|faceparty|faceparty\.com|fandom\.com|fanpop|fanpop\.com|fark|fark\.com|fb|fb\.me|fc2|fc2\.com|feedspot|feministing|feministing\.com|filmaffinity|filmaffinity\.com|flickr|flickr\.com|flipboard|flipboard\.com|folkdirect|folkdirect\.com|foodservice|foodservice\.com|forums\.androidcentral\.com|forums\.crackberry\.com|forums\.imore\.com|forums\.nexopia\.com|forums\.webosnation\.com|forums\.wpcentral\.com|fotki|fotki\.com|fotolog|fotolog\.com|foursquare|foursquare\.com|free\.facebook\.com|friendfeed|friendfeed\.com|fruehstueckstreff\.org|fubar|fubar\.com|gaiaonline|gaiaonline\.com|gamerdna|gamerdna\.com|gather\.com|geni\.com|getpocket\.com|glassboard|glassboard\.com|glassdoor|glassdoor\.com|godtube|godtube\.com|goldenline\.pl|goldstar|goldstar\.com|goo\.gl|gooblog|goodreads|goodreads\.com|google\+|googlegroups\.com|googleplus|govloop|govloop\.com|gowalla|gowalla\.com|gree\.jp|groups\.google\.com|gulli\.com|gutefrage\.net|habbo|habbo\.com|hi5|hi5\.com|hootsuite|hootsuite\.com|houzz|houzz\.com|hoverspot|hoverspot\.com|hr\.com|hu\.pinterest\.com|hubculture|hubculture\.com|hubpages\.com|hyves\.net|hyves\.nl|ibibo|ibibo\.com|id\.pinterest\.com|identi\.ca|ig|imageshack\.com|imageshack\.us|imvu|imvu\.com|in\.pinterest\.com|insanejournal|insanejournal\.com|instagram|instagram\.com|instapaper|instapaper\.com|internations\.org|interpals\.net|intherooms|intherooms\.com|irc-galleria\.net|is\.gd|italki|italki\.com|jammerdirect|jammerdirect\.com|jappy\.com|jappy\.de|kaboodle\.com|k
98akao|kakao\.com|kakaocorp\.com|kaneva|kaneva\.com|kin\.naver\.com|l\.facebook\.com|l\.instagram\.com|l\.messenger\.com|last\.fm|librarything|librarything\.com|lifestream\.aol\.com|line|line\.me|linkedin|linkedin\.com|listal|listal\.com|listography|listography\.com|livedoor\.com|livedoorblog|livejournal|livejournal\.com|lm\.facebook\.com|lnkd\.in|m\.blog\.naver\.com|m\.cafe\.naver\.com|m\.facebook\.com|m\.kin\.naver\.com|m\.vk\.com|m\.yelp\.com|mbga\.jp|medium\.com|meetin\.org|meetup|meetup\.com|meinvz\.net|meneame\.net|menuism\.com|messages\.google\.com|messages\.yahoo\.co\.jp|messenger|messenger\.com|mix\.com|mixi\.jp|mobile\.facebook\.com|mocospace|mocospace\.com|mouthshut|mouthshut\.com|movabletype|movabletype\.com|mubi|mubi\.com|my\.opera\.com|myanimelist\.net|myheritage|myheritage\.com|mylife|mylife\.com|mymodernmet|mymodernmet\.com|myspace|myspace\.com|netvibes|netvibes\.com|news\.ycombinator\.com|newsshowcase|nexopia|ngopost\.org|niconico|nicovideo\.jp|nightlifelink|nightlifelink\.com|ning|ning\.com|nl\.pinterest\.com|odnoklassniki\.ru|odnoklassniki\.ua|okwave\.jp|old\.reddit\.com|oneworldgroup\.org|onstartups|onstartups\.com|opendiary|opendiary\.com|oshiete\.goo\.ne\.jp|out\.reddit\.com|over-blog\.com|overblog\.com|paper\.li|partyflock\.nl|photobucket|photobucket\.com|pinboard|pinboard\.in|pingsta|pingsta\.com|pinterest|pinterest\.at|pinterest\.ca|pinterest\.ch|pinterest\.cl|pinterest\.co\.kr|pinterest\.co\.uk|pinterest\.com|pinterest\.com\.au|pinterest\.com\.mx|pinterest\.de|pinterest\.es|pinterest\.fr|pinterest\.it|pinterest\.jp|pinterest\.nz|pinterest\.ph|pinterest\.pt|pinterest\.ru|pinterest\.se|pixiv\.net|pl\.pinterest\.com|playahead\.se|plurk|plurk\.com|plus\.google\.com|plus\.url\.google\.com|pocket\.co|posterous|posterous\.com|pro\.homeadvisor\.com|pulse\.yahoo\.com|qapacity|qapacity\.com|quechup|quechup\.com|quora|quora\.com|qzone\.qq\.com|ravelry|ravelry\.com|reddit|reddit\.com|redux|redux\.com|renren|renren\.com|researchgate\.net|reunion|reunion\.com|reverbnation|reverbnation\.com|rtl\.de|ryze|ryze\.com|salespider|salespider\.com|scoop\.it|screenrant|screenrant\.com|scribd|scribd\.com|scvngr|scvngr\.com|secondlife|secondlife\.com|serverfault|serverfault\.com|shareit|sharethis|sharethis\.com|shvoong\.com|sites\.google\.com|skype|skyrock|skyrock\.com|slashdot\.org|slideshare\.net|smartnews\.com|snapchat|snapchat\.com|social|sociallife\.com\.br|socialvibe|socialvibe\.com|spaces\.live\.com|spoke|spoke\.com|spruz|spruz\.com|ssense\.com|stackapps|stackapps\.com|stackexchange|stackexchange\.com|stackoverflow|stackoverflow\.com|stardoll\.com|stickam|stickam\.com|studivz\.net|suomi24\.fi|superuser|superuser\.com|sweeva|sweeva\.com|t\.co|t\.me|tagged|tagged\.com|taggedmail|taggedmail\.com|talkbiznow|talkbiznow\.com|taringa\.net|techmeme|techmeme\.com|tencent|tencent\.com|tiktok|tiktok\.com|tinyurl|tinyurl\.com|toolbox|toolbox\.com|touch\.facebook\.com|tr\.pinterest\.com|travellerspoint|travellerspoint\.com|tripadvisor|tripadvisor\.com|trombi|trombi\.com|trustpilot|tudou|tudou\.com|tuenti|tuenti\.com|tumblr|tumblr\.com|tweetdeck|tweetdeck\.com|twitter|twitter\.com|twoo\.com|typepad|typepad\.com|unblog\.fr|urbanspoon\.com|ushareit\.com|ushi\.cn|vampirefreaks|vampirefreaks\.com|vampirerave|vampirerave\.com|vg\.no|video\.ibm\.com|vk\.com|vkontakte\.ru|wakoopa|wakoopa\.com|wattpad|wattpad\.com|web\.facebook\.com|web\.skype\.com|webshots|webshots\.com|wechat|wechat\.com|weebly|weebly\.com|weibo|weibo\.com|wer-weiss-was\.de|weread|weread\.com|whatsapp|whatsapp\.com|wiki\.answers\.com|wikihow\.com|wikitravel\.org|woot\.com|wordpress|wordpress\.com|wordpress\.org|xanga|xanga\.com|xing|xing\.com|yahoo-mbga\.jp|yammer|yammer\.com|yelp|yelp\.co\.uk|yelp\.com|youroom\.in|za\.pinterest\.com|zalo|zoo\.gr|zooppa|zooppa\.com)$", "i").test(v.utmSource) || new RegExp("^(?:social|social-network|social-media|sm|social network|social media)$", "i").test(v.utmMedium)},{"name":"organic-video","test":(v) => new RegExp("^(?:blog\.twitch\.tv|crackle|crackle\.com|curiositystream|curiositystream\.com|d\.tube|dailymotion|dailymotion\.com|dashboard\.twitch\.tv|disneyplus|disneyplus\.com|fast\.wistia\.net|help\.hulu\.com|help\.netflix\.com|hulu|hulu\.com|id\.twitch\.tv|iq\.com|iqiyi|iqiyi\.com|jobs\.netflix\.com|justin\.tv|m\.twitch\.tv|m\.youtube\.com|music\.youtube\.com|netflix|netflix\.com|player\.twitch\.tv|player\.vimeo\.com|ted|ted\.com|twitch|twitch\.tv|utreon|utreon\.com|veoh|veoh\.com|viadeo\.journaldunet\.com|vimeo|vimeo\.com|wistia|wistia\.com|youku|youku\.com|youtube|youtube\.com)$", "i").test(v.utmSource) || new RegExp("^(.*video.*)$", "i").test(v.utmMedium)},{"name":"organic-search","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|y
98andex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) || v.utmMedium.toLowerCase() === "organic"},{"name":"referral","test":(v) => new RegExp("^(?:referral|app|link)$", "i").test(v.utmMedium)},{"name":"email","test":(v) => new RegExp("^(?:email|e-mail|e_mail|e mail)$", "i").test(v.utmMedium) || new RegExp("^(?:email|e-mail|e_mail|e mail)$", "i").test(v.utmSource)},{"name":"affiliate","test":(v) => v.utmMedium.toLowerCase() === "affiliate"},{"name":"audio","test":(v) => v.utmMedium.toLowerCase() === "audio"},{"name":"sms","test":(v) => v.utmSource.toLowerCase() === "sms" || v.utmMedium.toLowerCase() === "sms"},{"name":"mobile-push-notification","test":(v) => v.utmSource.toLowerCase() === "firebase" || new RegExp("(?:.*mobile.*|.*notification.*|push$)", "i").test(v.utmMedium)}].find(i=>i.test(e))?.name??"other"}getShopifyAnalyticsId(){const e=this.getCookie("_shopify_y");if(e)return e;try{const t=this.localStorageGet("Shoplift_ClientId");if(t)return t}catch{}return null}legacyGetCookieVisitor(){const e=this.getCookie("SHOPLIFT");return e===null?null:JSON.parse(e,F)}getCookie(e){const t=this.cookie.split("; ").filter(i=>i.split("=").at(0)===e).at(0);return t===void 0?null:t.split("=").slice(1).join("=")}monitorConsentChange(){document.addEventListener("visitorConsentCollected",e=>{(async()=>await this.onConsentChange(e.detail.analyticsAllowed,!0))()}),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>this.loadShopifyConsentApiWithRetry()):this.loadShopifyConsentApiWithRetry()}loadShopifyConsentApiWithRetry(){let e=0;const t=()=>{this.loadShopifyConsentApi()||e++<10&&window.setTimeout(t,100)};t()}loadShopifyConsentApi(){if(window.Shopify){this.log("Loading Shopify features");const e=async()=>{if(!window.Shopify){this.log("Shopify object missing... suddenly?");return}if(window.Shopify.customerPrivacy===void 0){this.log("Shopify CustomerPrivacy api still missing, trying again in 1000ms"),t=window.setTimeout(()=>{(async()=>await e())()},1e3);return}if(this.geoViaShopify){const s=window.Shopify.customerPrivacy.getRegion?.();this.resolvedRegion=typeof s=="string"?s.replace(/-/g,""):""}const i=window.Shopify.customerPrivacy.getTrackingConsent();await this.onConsentChange(window.Shopify.customerPrivacy.analyticsProcessingAllowed(),i==="yes")};let t=window.setTimeout(()=>{(async()=>await e())()},5e3);return window.Shopify.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],i=>{(async()=>{if(window.clearTimeout(t),i){this.log("Error loading consent tracking",i);return}await e()})()}),!0}return!1}async onConsentChange(e,t){try{if(this.log("Consent change detected",e,t),this.state.essential.consentApproved=e,this.state.essential.hasConsentInteraction=t,!this.state.essential.consentApproved){this.state.essential.hasConsentInteraction&&(this.state.analytics.queue.length=0),this.saveState();return}this.cookie=document.cookie,this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.saveState(),await this.syncAllEvents()}catch(i){this.log("Error syncing on consent change",i)}}isThemePreview(){return isThemePreview||themeRole!=="main"}isAppProxyPath(){const e=["/apps/","/tools/","/a/"],t=window.location.pathname;return e.some(i=>t.startsWith(i))}clearThemeBar(e,t,i){const s=structuredClone(i);this.log("Looking for theme bar"),this.waitForElement(null,"body").then(r=>this.waitForElement(r,"#preview-bar-iframe, #PBarNextFrameWrapper").then(o=>(this.log("Found theme bar"),t&&(this.log("Removing theme bar"),o.remove()),e?this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify({...this.debugState(),stateAtEvaluation:s},ee)}):Promise.resolve(null)))).catch(r=>console.error(r))}waitForElement(e,t){return new Promise(i=>{const s=document.querySelector(t);if(s){i(s);return}const r=new MutationObserver(o=>{const n=document.querySelector(t);if(n){r.disconnect(),i(n);return}});r.observe(e??document.documentElement,{childList:!0})})}setDebug(e){this.state.essential.debugMode=e,this.saveState()}log(e,...t){let i=0;const s=e.replace(/%[sdoOfF]/g,r=>{if(i>=t.length)return r;const o=t[i++];return r==="%o"||r==="%O"?JSON.stringify(o):String(o)});this.logHistory.push(`[${new Date().toISOString()}][SL] ${s}`),!(!this.state.essential.debugMode&&!this.shopliftDebug)&&console.debug(`[SL] ${e}`,...t)}debugState(){return{state:this.state,storage:{essential:this.loadLocalStorage(this.essentialSessionKey),analytics:this.loadLocalStorage(this.analyticsSessionKey)},params:{shop:this.shop,host:this.host,eventHost:this.eventHost,cssHideClass:this.cssHideClass,testConfigs:this.testConfigs,inactiveTestConfigs:this.inactiveTestConfigs,sendPageView:this.sendPageView,isShopifyMerchantCookie
98:this.getCookie("is_shopify_merchant"),themeId,url:window.location.href,isThemePreview,themeRole,gaConfig:this.gaConfig},logHistory:this.logHistory}}createViewportObserver(e,t={}){const{threshold:i=this.VIEWPORT_TRACK_THRESHOLD,triggerOnce:s=!0}=t,r=new Set;return new IntersectionObserver(o=>{o.forEach(n=>{if(n.isIntersecting&&!r.has(n.target)){const l=n.target,c=l.getAttribute(this.DATA_SL_TEST_ID);c&&(e(c,l),s&&r.add(l))}})},{threshold:i})}applyChangesWithViewport(e,t,i,s){const r=t.selectorsForViewportTracking??t.selectors,o=n=>{if(this.state.essential.visitorTests.some(h=>h.testId===n)||this.activeViewportObservers.has(n))return;const l=[];if(r.forEach(h=>{e.querySelectorAll(h.cssSelector).forEach(b=>l.push(b))}),l.length===0)return;let c=!1;const d=()=>{c||(c=!0,i(n),u.disconnect(),this.activeViewportObservers.delete(n))},u=this.createViewportObserver(()=>{d()},{triggerOnce:!0,...s});this.activeViewportObservers.set(n,u),this.log(`Created viewport observer for test ${n}, observing ${l.length} elements`),l.forEach(h=>{h.setAttribute(this.DATA_SL_TEST_ID,String(n)),u.observe(h)}),setTimeout(()=>{c||l.forEach(h=>{const p=h.getBoundingClientRect(),b=s?.threshold??this.VIEWPORT_TRACK_THRESHOLD,E=Math.min(p.bottom,window.innerHeight)-Math.max(p.top,0),S=Math.min(p.right,window.innerWidth)-Math.max(p.left,0);p.top<window.innerHeight&&p.bottom>0&&p.left<window.innerWidth&&p.right>0&&E>0&&S>0&&E>=p.height*b&&(this.log(`Price element already visible in viewport for test ${n}:`,h),d())})},100)};t.selectors.length>0&&U(e,t,()=>{}),Te(e,{testId:t.testId,hypothesisId:t.hypothesisId,selectors:r},n=>{o(n)})}applyPriceTestWithMapLookup(e,t,i,s){if(!t.priceData){this.log("No price data for hypothesis '%s'",t.id);return}this.log("Hypothesis '%s' isControl=%s, priceData has %d variants",t.id,t.isControl,t.priceData.variants.length);const r=t.priceData.variants.slice(0,3);for(const[S,C,_]of r)this.log(" Sample priceData: variant=%s, price=%d, compareAt=%d",S,C,_);const o=j(t.priceData),n=new Set;for(const S of i)if(S.priceData)for(const[C]of S.priceData.variants)n.add(C);this.log("Price test Map lookup: %d products in hypothesis, %d total products to track",o.size,n.size);const l=t.priceData,c=new WeakSet;let d=!1;const u="[data-sl-attribute-p], [data-sl-attribute-cap], [data-sl-attribute-discount]",h=S=>{if(c.has(S))return;const C=S.getAttribute("data-sl-attribute-p"),_=S.getAttribute("data-sl-attribute-cap"),T=S.getAttribute("data-sl-attribute-discount"),m=C||_||T;if(!m||!n.has(m))return;c.add(S);const y=o.get(m);y&&(this.log("Applying price for product %s: %d cents (compare at: %d cents)",m,y.priceInCents,y.compareAtPriceInCents),Le(S,m,y,l),this.log("Applied price to element for product %s",m)),!d&&!this.state.essential.visitorTests.some(w=>w.testId===e)&&(S.setAttribute(this.DATA_SL_TEST_ID,String(e)),this.setupElementViewportTracking(S,e,()=>{d||(d=!0,s(e))}))},p=()=>{const S=document.querySelectorAll(u);this.log("Scanning for price elements, found: %d",S.length),S.forEach(h)},b=new MutationObserver(S=>{for(const C of S)C.type==="childList"&&C.addedNodes.forEach(_=>{if(_.nodeType===Node.ELEMENT_NODE){const T=_;(T.hasAttribute("data-sl-attribute-p")||T.hasAttribute("data-sl-attribute-cap")||T.hasAttribute("data-sl-attribute-discount"))&&h(T),T.querySelectorAll(u).forEach(h)}}),C.type==="attributes"&&C.target instanceof Element&&h(C.target)}),E=document.body||document.documentElement;b.observe(E,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-sl-attribute-p","data-sl-attribute-cap","data-sl-attribute-discount"]}),this.log("MutationObserver started for price elements"),p(),document.readyState==="loading"&&document.addEventListener("DOMContentLoaded",()=>{this.log("DOMContentLoaded - rescanning for price elements"),p()}),setTimeout(()=>{this.log("Delayed rescan for price elements"),p()},100),setTimeout(()=>{this.log("Final rescan for price elements"),p()},500)}setupElementViewportTracking(e,t,i){const s=this.VIEWPORT_TRACK_THRESHOLD,r=e.getBoundingClientRect(),o=Math.min(r.bottom,window.innerHeight)-Math.max(r.top,0),n=Math.min(r.right,window.innerWidth)-Math.max(r.left,0);if(r.top<window.innerHeight&&r.bottom>0&&r.left<window.innerWidth&&r.right>0&&o>0&&n>0&&o>=r.height*s){this.log("Price element already visible for test %s",t),i();return}const c=new IntersectionObserver(d=>{for(const u of d)if(u.isIntersecting&&u.intersectionRatio>=s){this.log("Price element entered viewport for test %s",t),c.disconnect(),i();break}},{threshold:s});c.observe(e)}debug(){const e=this.debugState();console.log(JSON.stringify(e,ee,2))}}(async function(){window.shopliftInstance||(window.shopliftInstance=new Ze("bb73c3-5.myshopify.com","https://app.shoplift.ai","https://events.shoplift.ai",false,false,false,{"sendEvents":false,"mode":"gtag"},false,false,1000,[],[{"id":"019cd822-7052-7bbc-a93e-72f461c264c5","bayesianRevision":5,"status":"paused","hypotheses":[{"id":"019c9fd4-6e97-7374-86aa-be4206b96a78","type":"basicScript","themeId":146414010442,"affix":"","isControl":true,"redirectPath":null},{"id":"019c9fd4-73ae-7d17-a5d8-2aa07c12785e","type":"basicScript","themeId":146414010442,"affix":"","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"019d68ab-882c-7e0b-969e-69fa1923966f","bayesianRevision":5,"status":"paused","hypotheses":[{"id":"019d2170-4e4e-7080-808a-185cf71a07e2","type":"index","themeId":146414010442,"affix":"","isControl":true,"redirectPath":null},{"id":"019d2172-032c-7eff-ba0c-9eb5f158dac2","type":"index","themeId":146414010442,"affix":"hero-banner-ab-test","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"df70aeaa-c6dd-4872-8656-ee9de33cadcf","bayesianRevision":3,"status":"cancelled","hypotheses":[{"id":"76a8f484-cc24-4b3b-a7a5-36489b992ae4","type":"theme","themeId":128217022538,"affix":"","isControl":true,"redirectPath":null},{"id":"25ed8e83-9ef2-419b-b6a6-76f1d88b3ee9","type":"theme","themeId":134304366666,"affix":"","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"ebd3f8f6-4ad4-4e9a-a74c-67f99fc7b5b4","bayesianRevision":3,"status":"cancelled","hypotheses":[{"id":"405bdb10-d81e-41c7-a993-195c6e2f2ef2","type":"theme","themeId":128217022538,"affix":"","isControl":true,"redirectPath":null},{"id":"557b44ba-d7c1-42b1-85f6-f519639bdb16","type":"theme","themeId":134304366666,"affix":"","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"019ddaa2-267a-773f-af21-26bb0f50a79f","bayesianRevision":5,"status":"cancelled","hypotheses":[{"id":"019dda61-e305-7c0e-8e90-b9c3bad8a15d","type":"theme","themeId":145533403210,"affix":"","isControl":true,"redirectPath":null},{"id":"019dda61-fcdf-732e-8c85-b984c1fe868f","type":"theme","themeId":145183178826,"affix":"","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"019d4ef5-5031-7e66-867e-f504c4fdaa0f","bayesianRevision":5,"status":"paused","hypotheses":[{"id":"019d4df7-7971-78ed-bd51-ef2a28f5f264","type":"manualScript","themeId":146414010442,"affix":"","isControl":true,"redirectPath":null},{"id":"019d4df7-7ccb-7bd7-b79e-8056eaa18d4a","type":"manualScript","themeId":146414010442,"affix":"","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"e310d01e-5d4b-4e89-b926-4c2a56972f8f","bayesianRevision":4,"status":"paused","hypotheses":[{"id":"a0c5ef51-8f51-45a4-8e42-07adec9ccc1f","type":"basicScript","themeId":146414010442,"affix":"","isControl":true,"redirectPath":null},{"id":"758d9cba-cdf8-45ea-86c7-9ea60f6586e4","type":"basicScript","themeId":146414010442,"affix":"","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"019f431b-bce5-7898-8887-7430e48f2759","bayesianRevision":5,"status":"paused","hypotheses":[{"id":"019efe18-e759-735d-9d0f-de92e34b7794","type":"manualScript","themeId":146414010442,"affix":"","isControl":true,"redirectPath":null},{"id":"019efe18-ea5e-7a7b-bcdf-c5c92ac9935d","type":"manualScript","themeId":146414010442,"affix":"","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"019f8035-55fe-7789-9b81-2ba49dfd34a2","bayesianRevision":5,"status":"cancelled","hypotheses":[{"id":"019f802f-ab8a-745a-b75e-bd2106eccfc8","type":"theme","themeId":148342931530,"affix":"","isControl":true,"redirectPath":null},{"id":"019f8031-eb84-7098-adea-0410e418ece2","type":"theme","themeId":147209683018,"affix":"","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false}
98],null,false),await window.shopliftInstance.init())})();async function Qe(a,e,t,i){const s=Be({log:i});if(t)return i("[SUB-PREVIEW] A side â no overlay applied; widget renders naturally"),s;const r=a.widget.widgetType,o=e?j(e):null;let n=W(e),l=J(a,n),c=l.discountMap,d=l.maxDiscount;function u(){const f=W(e);f!==n&&(n=f,l=J(a,n),c=l.discountMap,d=l.maxDiscount,i(`[SUB-PREVIEW] scope refreshed currentProductId=${n??"n/a"}, maxDiscount=${d}`))}i(`[SUB-PREVIEW] side=B, currentProductId=${n??"n/a"}, maxDiscount=${d}`);function h(f){if(!e||!o)return null;const v=Z(o),g=v?o.get(v):void 0;return g?{formattedVariantPrice:G(g.priceInCents,e),formattedDiscounted:G(g.priceInCents*(1-f/100),e)}:null}function p(f){const v=Y(a,f);if(!v)return d;const g=D(a,"subscriptionInput"),P=g.length?g[0].selector:'input[name="rc_plan"]',A=v.querySelector(`${P}:checked`);if(A){const k=c[A.value];if(k!==void 0)return k}return d}function b(f){const v=D(a,"subscriptionDiscount");for(const g of v)if(g.selector.includes("badge")||g.selector.includes("__badge")){const P=f.querySelector(g.selector);P?.textContent&&!P.textContent.includes(`${d}%`)&&$(P,A=>N(A,d))}}function E(f,v){const g=h(v);if(!g)return;const P=D(a,"subscriptionCompareAt");for(const A of P){const k=f.querySelector(A.selector)||f.querySelector(`[part~="${A.selector}"]`);k?.textContent&&!k.textContent.includes(g.formattedVariantPrice)&&$(k,x=>/\d/.test(x)?g.formattedVariantPrice:x)}}function S(f,v){const g=h(v);if(!g)return;const P=D(a,"subscriptionPrice");for(const A of P){const k=f.querySelector(A.selector)||f.querySelector(`[part~="${A.selector}"]`);k?.textContent&&!k.textContent.includes(g.formattedDiscounted)&&$(k,x=>/\d/.test(x)?g.formattedDiscounted:x)}}function C(f){const v=D(a,"subscriptionInput"),g=v.length?v[0].selector:'input[name="rc_plan"]',P=D(a,"subscriptionPlanDiscount"),A=P.length?P[0].selector:".rc-plans-button__discount";for(const k of Array.from(f.querySelectorAll("label"))){const x=k.querySelector(g),R=k.querySelector(A);if(x&&R?.textContent){const O=c[x.value];if(O!==void 0){const V=R.textContent.match(/[\d.]+%/)?.[0];V&&V!==`${O}%`&&$(R,L=>N(L,O))}}}}function _(f){const v=f.querySelector("select");if(v)for(const g of Array.from(v.options)){const P=c[g.value];if(P!==void 0&&g.textContent){const A=g.textContent.match(/[\d.]+%/)?.[0];A&&A!==`${P}%`&&(g.textContent=N(g.textContent,P))}}}function T(f){const v=D(a,"onetimePrice");if(!v.length||!e||!o)return;const g=Z(o),P=g?o.get(g):void 0;if(!P)return;const A=G(P.priceInCents,e),k=D(a,"onetimeContainer"),x=k.length?k[0].selector:'[part~="rc-purchase-option__onetime"]',R=f.querySelector(x);if(R)for(const O of v){const V=R.querySelector(`[part~="${O.selector}"]`);V?.textContent&&!V.textContent.includes(A)&&$(V,L=>/\d/.test(L)?A:L)}}function m(f,v){const P=D(a,"subscriptionDiscount").filter(A=>A.selector.includes("benefit")||A.selector==="rc-benefits");for(const A of P){const k=f.querySelector(A.selector);if(k?.shadowRoot){for(const x of Array.from(k.shadowRoot.querySelectorAll("li")))if(x.textContent?.includes("Save")){const R=x.textContent.match(/[\d.]+%/)?.[0];R&&R!==`${v}%`&&$(x,O=>N(O,v))}}}}let y=!1;function w(){if(!y){y=!0;try{u();const f=B(a);if(!f)return;const v=p(f);b(f),E(f,v),S(f,v),T(f);const g=Y(a,f);g&&(r==="buttons"||r==="radio"?C(g):_(g)),m(f,v)}finally{y=!1}}}const I=pe({data:a,runUpdates:w});return function(){I(),s()}}const Xe=Object.freeze(Object.defineProperty({__proto__:null,subscriptionPreviewRender:Qe},Symbol.toStringTag,{value:"Module"}))})(); })("/", { suffix: "contact", type: "page" }, "main", 146414010442, false)</script>
98 99 <!-- End of Shoplift scripts --> 100 101
101<script> 102 /* >> Heatmap.com :: Snippet << */ (function (h, e, a, t, m, ap) { 103 (h._heatmap_paq = []).push(['setTrackerUrl', (h.heatUrl = e) + a]); 104 h.hErrorLogs = h.hErrorLogs || []; 105 ap = t.createElement('script'); 106 ap.src = h.heatUrl + 'preprocessor.min.js?sid=' + m; 107 ap.defer = true; 108 t.head.appendChild(ap); 109 ['error', 'unhandledrejection'].forEach(function (ty) { 110 h.addEventListener(ty, function (et) { 111 h.hErrorLogs.push({ type: ty, event: et }); 112 }); 113 }); 114 })(window, 'https://dashboard.heatmap.com/', 'heatmap.php', document, 3993); 115 </script>
115 116
116<script> 117 document.documentElement.classList.remove('no-js'); 118 document.documentElement.classList.add('js'); 119 if (window.Shopify?.designMode) { 120 document.documentElement.classList.add('shopify-design-mode'); 121 } 122 </script>
122 123 <meta charset="utf-8"> 124 <meta http-equiv="X-UA-Compatible" content="IE=edge"><link rel="canonical" href="https://www.getquip.com/pages/contact"> 125 <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"> 126 <meta name="theme-color" content=""> 127 <link 128 rel="preconnect" 129 href="//cdn.shopify.com" 130 crossorigin 131 > 132 <meta name="clarity-site-verification" content="44325a98-c069-4fd8-986a-30b0d6935910"><!-- Google Tag Manager -->
133<script>
vendor: 415 bytes, lines 133-143
133 134 (function (w, d, s, l, i) { 135 w[l] = w[l] || []; 136 w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); 137 var f = d.getElementsByTagName(s)[0], 138 j = d.createElement(s), 139 dl = l != 'dataLayer' ? '&l=' + l : ''; 140 j.async = true; 141 j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; 142 f.parentNode.insertBefore(j, f); 143 })(window, document, 'script', 'dataLayer', '
143GTM-WKZRKF4
vendor: 4 bytes, line 143
143');
144</script>
144 145<!-- End Google Tag Manager --> 146<!-- Favicon --><link 147 rel="apple-touch-icon" 148 sizes="180x180" 149 href="//www.getquip.com/cdn/shop/files/apple-touch-icon.png" 150> 151<link 152 rel="icon" 153 type="image/png" 154 sizes="32x32" 155 href="//www.getquip.com/cdn/shop/files/favicon_32x32.png" 156> 157<link 158 rel="icon" 159 type="image/png" 160 sizes="16x16" 161 href="//www.getquip.com/cdn/shop/files/favicon_16x16.png" 162> 163<link rel="manifest" href="//www.getquip.com/cdn/shop/files/site.webmanifest"> 164<link 165 rel="mask-icon" 166 href="//www.getquip.com/cdn/shop/files/safari-pinned-tab.svg" 167 color="#000000" 168> 169<link rel="shortcut icon" href="//www.getquip.com/cdn/shop/files/favicon.ico"> 170<meta name="msapplication-TileColor" content="#50fcce"> 171<meta 172 name="msapplication-config" 173 content="//www.getquip.com/cdn/shop/files/browserconfig.xml" 174> 175<meta name="theme-color" content="#50fcce"> 176<!-- Title --> 177 <title>Contact quip Customer Support</title> 178 179 <!-- Meta Desc --> 180 <meta name="description" content="Need help? Don't hesitate to email us or check out our FAQ page. "> 181 182<meta property="og:site_name" content="quip"> 183<meta property="og:url" content="https://www.getquip.com/pages/contact"> 184<meta property="og:title" content="Contact quip Customer Support"> 185<meta property="og:type" content="website"> 186<meta property="og:description" content="Need help? Don't hesitate to email us or check out our FAQ page. "><meta property="og:image" content="http://www.getquip.com/cdn/shop/files/Screenshot_2025-04-16_at_6.12.36_PM.png?v=1744899824"> 187 <meta property="og:image:secure_url" content="https://www.getquip.com/cdn/shop/files/Screenshot_2025-04-16_at_6.12.36_PM.png?v=1744899824"> 188 <meta property="og:image:width" content="2178"> 189 <meta property="og:image:height" content="1390"><meta name="twitter:card" content="summary_large_image"> 190<meta name="twitter:title" content="Contact quip Customer Support"> 191<meta name="twitter:description" content="Need help? Don't hesitate to email us or check out our FAQ page. "> 192<!-- Shopify Header Hooks --> 193 194
194<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
194<meta name="facebook-domain-verification" content="scrgg7lr3fqme1yinmk7g1g9w4sr7a"> 195<meta name="google-site-verification" content="kh714dt_IIjsNQwZO7reX05rcxxnQL70xF3DYi7xAVc"> 196<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/57677807690/digital_wallets/dialog">
197<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=370671690"></script>
197 198<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
199<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=370671690&shop_id=57677807690" crossorigin="anonymous"></script>
vendor: 1 bytes, line 199
199
200<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":57677807690,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/57677807690","merchantName":"quip","requiredBillingContactFields":["postalAddress","email"],"requiredShippingContactFields":["postalAddress","email"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"quip","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 200
200
201<script id="shopify-features" type="application/json">{"accessToken":"e68fc15d4407466fc53937c25f272412","betas":["rich-media-storefront-analytics"],"domain":"www.getquip.com","predictiveSearch":true,"shopId":57677807690,"locale":"en"}</script>
vendor: 1 bytes, line 201
201
202<script>var Shopify = Shopify || {}; 203Shopify.shop = "bb73c3-5.myshopify.com"; 204Shopify.locale = "en"; 205Shopify.currency = {"active":"USD","rate":"1.0"}; 206Shopify.country = "US"; 207Shopify.theme = {"name":"shopify-store\/main","id":146414010442,"schema_name":"quip","schema_version":"2.0","theme_store_id":null,"role":"main"}; 208Shopify.theme.handle = "null"; 209Shopify.theme.style = {"id":null,"handle":null}; 210Shopify.cdnHost = "www.getquip.com/cdn"; 211Shopify.routes = Shopify.routes || {}; 212Shopify.routes.root = "/"; 213Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 214Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 215Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 216Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 216
216
217<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 217
217
218<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 218
218
219<script> 220 window.ShopifyPay = window.ShopifyPay || {}; 221 window.ShopifyPay.apiHost = "shop.app\/pay"; 222 window.ShopifyPay.redirectState = null; 223</script>
vendor: 1 bytes, line 223
223
224<script> 225 window.Shopify = window.Shopify || {}; 226 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 227 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 228 window.Shopify.SignInWithShop.eligible = true; 229</script>
vendor: 1 bytes, line 229
229
230<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 230
230
231<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 231
231
232<script type="module"> 233 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 234 235 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 236 237</script>
vendor: 1 bytes, line 237
237
238<script> 239 window.Shopify = window.Shopify || {}; 240 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 241 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]}; 242</script>
vendor: 1 bytes, line 242
242
243<script>(function() { 244 var isLoaded = false; 245 function asyncLoad() { 246 if (isLoaded) return; 247 isLoaded = true; 248 var urls = ["https:\/\/static.rechargecdn.com\/assets\/js\/widget.min.js?shop=bb73c3-5.myshopify.com","https:\/\/static-resources.botnot.io\/js\/yofi-telemetry-prod.min.js?v=202405091808\u0026shop=bb73c3-5.myshopify.com","https:\/\/pc-quiz.s3.us-east-2.amazonaws.com\/current\/quiz-loader.min.js?shop=bb73c3-5.myshopify.com","\/\/cdn.shopify.com\/proxy\/794a4282f68e1b0645d915cd6cad9d1e616eefba2ade36f6e786d59079700f8d\/apps.bazaarvoice.com\/deployments\/quip\/main_site\/production\/en_US\/bv.js?shop=bb73c3-5.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=bb73c3-5.myshopify.com"]; 249 for (var i = 0; i < urls.length; i++) { 250 var s = document.createElement('script'); 251 s.type = 'text/javascript'; 252 s.async = true; 253 s.src = urls[i]; 254 var x = document.getElementsByTagName('script')[0]; 255 x.parentNode.insertBefore(s, x); 256 } 257 }; 258 if(window.attachEvent) { 259 window.attachEvent('onload', asyncLoad); 260 } else { 261 window.addEventListener('load', asyncLoad, false); 262 } 263})();</script>
vendor: 1 bytes, line 263
263
264<script id="__st">var __st={"a":57677807690,"offset":-14400,"reqid":"950a472f-3dfa-430b-9ccb-5ead0f02dc48-1790271964","pageurl":"www.getquip.com\/pages\/contact","s":"pages-87085383754","u":"3ec632654ee0","p":"page","rtyp":"page","rid":87085383754};</script>
vendor: 1 bytes, line 264
264
265<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 265
265
266<script id="form-persister">!function(){'use strict';const t='contact',e='new_comment',n=[[t,t],['blogs',e],['comments',e],[t,'customer']],o='password',r='form_key',c=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',o],s=()=>{try{return window.sessionStorage}catch{return}},i='__shopify_v',u=t=>t.elements[r],a=function(){const t=[...n].map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(',');var e;return e=t,()=>e?[...document.querySelectorAll(e)].map((t=>t.form)):[]}();function m(t){const e=u(t);a().includes(t)&&(!e||!e.value)&&function(t){try{if(!s())return;!function(t){const e=s();if(!e)return;const n=u(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){u(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:r})),t.elements[r].value=e}(t,e),function(t,e){const n=s();if(!n)return;const r=[...t.querySelectorAll(`input[type='${o}']`)].map((({name:t})=>t)),u=[...c,...r],a={};for(const[o,c]of new FormData(t).entries())u.includes(o)||(a[o]=c);n.setItem(e,JSON.stringify({[i]:1,action:t.action,data:a}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(t)}const f=t=>{if('true'===t.dataset.persistBound)return;const e=function(t,e){const n=function(t){return'function'==typeof t.submit?t.submit:HTMLFormElement.prototype.submit}(t).bind(t);return function(){let t;return()=>{t||(t=!0,(()=>{try{e(),n()}catch(t){(t=>{console.error('form submit failed',t)})(t)}})(),setTimeout((()=>t=!1),250))}}()}(t,(()=>{m(t)}));!function(t,e){if('function'==typeof t.submit&&'function'==typeof e)try{t.submit=e}catch{}}(t,e),t.addEventListener('submit',(t=>{t.preventDefault(),e()})),t.dataset.persistBound='true'};!function(){function t(t){const e=(t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form})(t);e&&m(e)}document.addEventListener('submit',t),document.addEventListener('DOMContentLoaded',(()=>{const e=a();for(const t of e)f(t);var n;n=document.body,new window.MutationObserver((t=>{for(const e of t)if('childList'===e.type&&e.addedNodes.length)for(const t of e.addedNodes)1===t.nodeType&&'FORM'===t.tagName&&a().includes(t)&&f(t)})).observe(n,{childList:!0,subtree:!0,attributes:!1}),document.removeEventListener('submit',t)}))}()}();</script>
vendor: 1 bytes, line 266
266
267<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.getquip.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 267
267
268<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//www.getquip.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
268<script crossorigin="anonymous" defer="defer" src="//www.getquip.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 268
268
269<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 269
269
270<script> 271 window.Shopify = window.Shopify || {}; 272 window.Shopify.MCP = window.Shopify.MCP || {}; 273 window.Shopify.MCP.enabled = true; 274 window.Shopify.MCP.shop = "bb73c3-5.myshopify.com"; 275 window.Shopify.MCP.mcpEndpoint = "https:\/\/www.getquip.com\/api\/mcp"; 276 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 277</script>
vendor: 1 bytes, line 277
277
278<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/www.getquip.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 279</script>
vendor: 1 bytes, line 279
279
280<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://www.getquip.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 281</script>
vendor: 1 bytes, line 281
281
282<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 283 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 284</script>
vendor: 1 bytes, line 284
284
285<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 286</script>
286 287<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.getquip.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 288<style id="shopify-accelerated-checkout-cart"> 289 #shopify-buyer-consent { 290 margin-top: 1em; 291 display: inline-block; 292 width: 100%; 293} 294 295#shopify-buyer-consent.hidden { 296 display: none; 297} 298 299#shopify-subscription-policy-button { 300 background: none; 301 border: none; 302 padding: 0; 303 text-decoration: underline; 304 font-size: inherit; 305 cursor: pointer; 306} 307 308#shopify-subscription-policy-button::before { 309 box-shadow: none; 310} 311 312 </style> 313
314<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
314 315 <!-- "snippets/shogun-products.liquid" was not rendered, the associated app was uninstalled --> 316 317 318 <!-- Critical CSS --><style data-shopify>html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}strong,b{font-weight:bold}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote::before,blockquote::after,q::before,q::after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{appearance:none}input[type=search]{appearance:none;box-sizing:content-box}textarea{overflow:auto;vertical-align:top;resize:vertical}audio,canvas,video{display:inline-block;*display:inline;*zoom:1;max-width:100%}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;text-size-adjust:100%}a:active,a:hover{outline:0}img{border:0;interpolation-mode:bicubic}figure{margin:0}form{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{appearance:auto;cursor:pointer;*overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type=search]{appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}html,button,input,select,textarea{color:#222}::selection{background:#b3d4fc;text-shadow:none}::selection{background:#b3d4fc;text-shadow:none}img{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}:root,::before,::after{--color-accent: #50fcce;--color-text: #054040;--color-black: #1a1a1a;--container-side-space: 1rem;--header-height: 4.375rem;--announcement-bar-height: 0;--rte-link-hover-color: #595959;--rte-link-visited-color: #595959}@media only screen and (min-width: 768px){:root,::before,::after{--container-side-space: 2rem}}@media only screen and (min-width: 992px){:root,::before,::after{--header-height: 4.125rem}}@media only screen and (min-width: 1200px){:root,::before,::after{--container-side-space: 4rem}}*{-webkit-tap-highlight-color:rgba(0,0,0,0) !important}html{font-family:Poppins,serif;font-size:16px;scroll-behavior:smooth;color:#054040}html.beforeunload{animation-duration:.3s;animation-name:page-unload;animation-fill-mode:forwards}body{font-size:1rem;line-height:140%;font-weight:500;text-transform:none;letter-spacing:normal;background-color:#fff;min-height:100vh;overflow-x:hidden;scroll-behavior:smooth;text-rendering:optimizespeed}body.js-ajax-cart-opened{overflow:hidden}.skip-to-content-link{background:#000;color:#fff;left:0;font-size:1rem;padding:1rem;position:absolute;transform:translateY(-100%);transition:transform .3s;z-index:99}.skip-to-content-link:focus{transform:translateY(0%)}#ada-button-frame,#ot-sdk-btn-floating.ot-floating-button{z-index:9 !important}size-getter{display:block}em{font-style:italic}strong{font-weight:600}sup{vertical-align:super;font-size:smaller;font-family:system-ui}button{font-family:inherit}custom-scroll{display:block}.rebuy-cart__flyout:has(.empty-cart-categories) div[data-rebuy-cart-scroll-area]{height:100%;justify-content:center}.rebuy-widget:empty{display:none}.overflow-hidden{overflow:hidden !important}.disabled{text-decoration:line-through;pointer-events:none;opacity:.5}.visually-disabled{text-decoration:line-through;opacity:.5}.hidden,[hidden]{display:none !important}.capitalize{text-transform:capitalize}.visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.no-js .no-js-hidden{display:none}.no-js-block{display:none}.no-js .no-js-block{display:block}input[type=checkbox],input[type=radio]{accent-color:#054040}media-loader{display:block}@supports selector(:defined){media-loader{opacity:0;transition:opacity .3s}.no-js media-loader,media-loader.no-js,media-loader[ready]{opacity:1}}@keyframes loading-spinner{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes opacity-appear{0%{opacity:0}
318100%{opacity:1}}@keyframes expand-appear{0%{opacity:0;transform:scaleY(0.9)}100%{opacity:1;transform:scaleY(1)}}@keyframes page-unload{0%{opacity:1}100%{opacity:0}}.grecaptcha-badge{visibility:hidden}.product-custom-messaging-stack{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.product-custom-messaging-stack:empty{display:none}.product-custom-messaging{padding:.75rem 2rem;text-align:center;background-color:var(--bg-color, transparent);color:var(--text-color, #000);border-radius:.75rem;font-size:14px}.quantity-selector{display:flex;align-items:center;gap:.5rem;padding:0 1rem;border:1px solid #054040;border-radius:6.25rem}.quantity-selector button{padding:0;background:rgba(0,0,0,0);border:0;display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem}.quantity-selector input{font-size:0.75rem;line-height:140%;font-weight:600;text-transform:none;letter-spacing:0.2px;padding:.75rem 0;text-align:center;border:0;height:100%;max-width:9.375rem}.rebuy-cart__flyout-item.tag-hidecartqty .rebuy-cart__flyout-item-quantity-widget{display:none !important}.layout{display:flex;flex-direction:column;min-height:100vh}.layout__breadcrumbs{width:100%;box-sizing:border-box;max-width:120rem;margin:0 auto;padding:0 var(--container-side-space);color:#1a1a1a}.layout__breadcrumbs--absolute{position:absolute;z-index:19;color:#fff}.layout__header{position:sticky;top:0;z-index:20}.layout__main{flex-grow:1}:root{--primary-button-bg-color: #50fcce;--primary-button-text-color: #054040;--primary-button-border-color: #50fcce;--primary-button-bg-color-hover: #054040;--primary-button-text-color-hover: white;--primary-button-border-color-hover: #054040;--secondary-button-text-color: #054040}.primary-button{font-size:0.875rem;line-height:1.4;font-weight:600;font-family:inherit;display:flex;gap:.5rem;align-items:center;text-align:center;justify-content:center;width:100%;box-sizing:border-box;transition:border-color .3s,background-color .3s,color .3s;padding:.75rem 2.5rem;border-radius:62.5rem;letter-spacing:.2px;cursor:pointer;text-decoration:none;background-color:var(--primary-button-bg-color);color:var(--primary-button-text-color);border:1px solid var(--primary-button-border-color);position:relative}.primary-button--small{font-size:0.625rem;line-height:1.4;font-weight:400;padding:.5rem 1rem}.primary-button:hover,a:hover .primary-button,button:hover .primary-button,input:hover .primary-button{background-color:var(--primary-button-bg-color-hover);border-color:var(--primary-button-border-color-hover);color:var(--primary-button-text-color-hover)}.primary-button:hover::after,a:hover .primary-button::after,button:hover .primary-button::after,input:hover .primary-button::after{border-color:var(--primary-button-text-color-hover)}.primary-button svg{max-height:1.25rem;flex-shrink:0}.primary-button::after{content:"";opacity:0;position:absolute;border:1px solid var(--primary-button-text-color);width:.5rem;height:.5rem;border-radius:100%;border-left-color:rgba(0,0,0,0) !important;top:0;bottom:0;right:0;left:0;margin:auto;transition:opacity .15s;animation:loading-spinner .5s linear infinite}[processing] .primary-button,.primary-button--loading{color:rgba(0,0,0,0)}[processing] .primary-button::after,.primary-button--loading::after{opacity:1}.primary-button:is(a:not([href]),[disabled],.primary-button--disabled),a:not([href]) .primary-button,[disabled] .primary-button{cursor:default;pointer-events:none;background-color:#595959;color:#fff;border-color:#595959}.primary-button:is(a:not([href]),[disabled],.primary-button--disabled)::after,a:not([href]) .primary-button::after,[disabled] .primary-button::after{border-color:#595959}.primary-button--dark{--primary-button-bg-color: #054040;--primary-button-text-color: white;--primary-button-border-color: #054040;--primary-button-bg-color-hover: #50fcce;--primary-button-text-color-hover: #054040;--primary-button-border-color-hover: #50fcce}.primary-button--light{--primary-button-bg-color: white;--primary-button-text-color: #054040;--primary-button-border-color: white;--primary-button-bg-color-hover: #054040;--primary-button-text-color-hover: white;--primary-button-border-color-hover: #054040}.primary-button--outline{--primary-button-bg-color: transparent;--primary-button-text-color: #054040;--primary-button-border-color: #054040;--primary-button-bg-color-hover: #054040;--primary-button-text-color-hover: white;--primary-button-border-color-hover: #054040}.primary-button--outline-light{--primary-button-bg-color: transparent;--primary-button-text-color: white;--primary-button-border-color: white;--primary-button-bg-color-hover: white;--primary-button-text-color-hover: #054040;--primary-button-border-color-hover: white}.primary-button--outline-lime{--primary-button-bg-color: transparent;--primary-button-text-color: #50fcce;--primary-button-border-color: #50fcce;--primary-button-bg-color-hover: #50fcce;--primary-button-text-color-hover: #054040;--primary-button-border-color-hover: #50fcce}.secondary-button{font-size:0.875rem;line-height:1.4;font-weight:600;font-family:inherit;border:0;background:rgba(0,0,0,0);padding:0;cursor:pointer;text-decoration:none;display:inline-block;color:var(--secondary-button-text-color);position:relative}.secondary-button::before{content:"";position:absolute;width:100%;bottom:-2px;height:1px;background-color:currentcolor;transition:height .2s}.secondary-button:hover::before,a:hover .secondary-button::before,button:hover .secondary-button::before,input:hover .
318secondary-button::before{height:2px}.secondary-button:is(a:not([href]),[disabled],.secondary-button--disabled),a:not([href]) .secondary-button,[disabled] .secondary-button{cursor:default;pointer-events:none;opacity:.5}.secondary-button--light{--secondary-button-text-color: white}.secondary-button--lime{--secondary-button-text-color: #50fcce}.cf-submit-form{font-size:0.875rem;line-height:1.4;font-weight:600;font-family:inherit;display:flex;gap:.5rem;align-items:center;text-align:center;justify-content:center;width:100%;box-sizing:border-box;transition:border-color .3s,background-color .3s,color .3s;padding:.75rem 2.5rem;border-radius:62.5rem;letter-spacing:.2px;cursor:pointer;text-decoration:none;background-color:var(--primary-button-bg-color);color:var(--primary-button-text-color);border:1px solid var(--primary-button-border-color);position:relative}.cf-submit-form--small{font-size:0.625rem;line-height:1.4;font-weight:400;padding:.5rem 1rem}.cf-submit-form:hover,a:hover .cf-submit-form,button:hover .cf-submit-form,input:hover .cf-submit-form{background-color:var(--primary-button-bg-color-hover);border-color:var(--primary-button-border-color-hover);color:var(--primary-button-text-color-hover)}.cf-submit-form:hover::after,a:hover .cf-submit-form::after,button:hover .cf-submit-form::after,input:hover .cf-submit-form::after{border-color:var(--primary-button-text-color-hover)}.cf-submit-form svg{max-height:1.25rem;flex-shrink:0}.cf-submit-form::after{content:"";opacity:0;position:absolute;border:1px solid var(--primary-button-text-color);width:.5rem;height:.5rem;border-radius:100%;border-left-color:rgba(0,0,0,0) !important;top:0;bottom:0;right:0;left:0;margin:auto;transition:opacity .15s;animation:loading-spinner .5s linear infinite}[processing] .cf-submit-form,.cf-submit-form--loading{color:rgba(0,0,0,0)}[processing] .cf-submit-form::after,.cf-submit-form--loading::after{opacity:1}.cf-submit-form:is(a:not([href]),[disabled],.cf-submit-form--disabled),a:not([href]) .cf-submit-form,[disabled] .cf-submit-form{cursor:default;pointer-events:none;background-color:#595959;color:#fff;border-color:#595959}.cf-submit-form:is(a:not([href]),[disabled],.cf-submit-form--disabled)::after,a:not([href]) .cf-submit-form::after,[disabled] .cf-submit-form::after{border-color:#595959}.cf-submit-form{margin-bottom:.5rem !important}.cf-cancel{font-size:0.875rem;line-height:1.4;font-weight:600;font-family:inherit;border:0;background:rgba(0,0,0,0);padding:0;cursor:pointer;text-decoration:none;display:inline-block;color:var(--secondary-button-text-color);position:relative}.cf-cancel::before{content:"";position:absolute;width:100%;bottom:-2px;height:1px;background-color:currentcolor;transition:height .2s}.cf-cancel:hover::before,a:hover .cf-cancel::before,button:hover .cf-cancel::before,input:hover .cf-cancel::before{height:2px}.cf-cancel:is(a:not([href]),[disabled],.cf-cancel--disabled),a:not([href]) .cf-cancel,[disabled] .cf-cancel{cursor:default;pointer-events:none;opacity:.5}.cf-cancel{margin:0 auto !important}.cf-form-actions{margin-top:0 !important;display:flex;flex-direction:column-reverse}.cf-form-inner{margin:0 1rem !important}.badge{font-size:0.75rem;line-height:140%;font-weight:600;text-transform:none;letter-spacing:0.2px;padding:.25rem .75rem;color:#fff;border-radius:6.25rem;background-color:#054040;width:fit-content}.badge--sale{background-color:var(--bg-sale-badge);color:var(--color-sale-badge)}.badge--outofstock{background-color:var(--bg-stock-badge);color:var(--color-stock-badge)}.badge--preorder{background-color:var(--bg-preorder-badge);color:var(--color-preorder-badge)}.badge--custom{background-color:var(--badge-custom-bg-color);color:var(--badge-custom-txt-color)}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url("https://cdn.shopify.com/s/files/1/0576/7780/7690/files/poppins-normal-400.woff2") format("woff2")}@font-face{font-family:Poppins;font-style:italic;font-weight:400;font-display:swap;src:url("https://cdn.shopify.com/s/files/1/0576/7780/7690/files/poppins-italic-400.woff2") format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url("https://cdn.shopify.com/s/files/1/0576/7780/7690/files/poppins-normal-500.woff2") format("woff2")}@font-face{font-family:Poppins;font-style:italic;font-weight:500;font-display:swap;src:url("https://cdn.shopify.com/s/files/1/0576/7780/7690/files/poppins-italic-500.woff2") format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url("https://cdn.shopify.com/s/files/1/0576/7780/7690/files/poppins-normal-600.woff2") format("woff2")}@font-face{font-family:Poppins;font-style:italic;font-weight:600;font-display:swap;src:url("https://cdn.shopify.com/s/files/1/0576/7780/7690/files/poppins-italic-600.woff2") format("woff2")} 319</style><link href="//www.getquip.com/cdn/shop/t/257/assets/js-common.min.js?v=152804978561280409951790265029" as="script" rel="preload"> 320 321<link 322 href="//www.getquip.com/cdn/shop/t/257/assets/css-product-card.min.css?v=17850654223091545051785443846" 323 rel="preload" 324 as="style" 325 onload="this.onload=null;if(document.querySelector('link[href=\'//www.getquip.com/cdn/shop/t/257/assets/css-product-card.min.css?v=17850654223091545051785443846\']') !== this){this.remove()}else{this.rel='stylesheet'}" 326 > 327 328 <noscript> 329 <link rel="stylesheet" href="//www.getquip.com/cdn/shop/t/257/assets/css-product-card.min.css?v=17850654223091545051785443846"> 330 </noscript> 331<link 332 href="//www.getquip.com/cdn/shop/t/257/assets/css-products-carousel.min.css?v=80673013656274933461790020228" 333 rel="preload" 334 as="style" 335 onload="this.onload=null;if(document.querySelector('link[href=\'//www.getquip.com/cdn/shop/t/257/assets/css-products-carousel.min.css?v=80673013656274933461790020228\']') !== this){this.remove()}else{this.rel='stylesheet'}" 336 > 337 338 <noscript> 339 <link rel="stylesheet" href="//www.getquip.com/cdn/shop/t/257/assets/css-products-carousel.min.css?v=80673013656274933461790020228"> 340 </noscript>
340<script type="text/javascript"> 341 document.querySelector('html').classList.remove('no-js', 'beforeunload'); 342 343 // Remove Gray Highlight When Tapping Links in Mobile Safari 344 345 </script>
345 346 347 <!-- Common/Main css file --> 348 349 350 <!-- Common/Main js file -->
350<script> 351 window.SUPERSCRIPT_SYMBOLS = ["*","â ","â¡"]; 352</script>
vendor: 1 bytes, line 352
352
353<script src="//www.getquip.com/cdn/shop/t/257/assets/js-common.min.js?v=152804978561280409951790265029" defer="defer"></script>
353 354<!-- START Digioh Low Impact Javascript --> 355
355<script 356 async 357 type="text/javascript" 358 src="https://www.lightboxcdn.com/vendor/8e5c2458-26c7-4915-adf1-21c7c1a02096/lightbox_speed.js" 359 ></script>
359 360 <!-- END Digioh Low Impact Javascript --> 361 362<style data-shopify>.ss-slide-image .ss-si-img{width:100%;} 363 .csp_container .swiper:not(.swiper-initialized) .ss-slide-caption{display:none} 364 .csp_container .swiper:not(.swiper-initialized){line-height:0} 365 .ss-si-img.ss-si-mobile,.csp-slide-video-embed .csp-video-mobile{display:none} 366 .ss_playBtn{width: 50px;height: 50px;border-radius: 50%;padding: 5px;position: absolute;bottom: 15px;left: 15px; z-index: 99;cursor: pointer;background: #7B7E7E url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA9dJREFUeNrMmmtIFFEUx8dVLHsSlqVhqRioJFL4ocjIyEdi9iALAoMgCulFEESBVEQfCvtoUPRAksCgsKgkiqRAyzJ6oCGKabgklYb5SDO16X/YM7KKj507d+7OgR/rLs7d+587995z/ncDdF3XJMZiEA3CwDJ+nQGGwW/gBs2gHTSAbllfHGTxehdIABvBWpAEFoFpU1zXy6JqwHPwDLRa6UiA4IgEg61gN8jg91aCRqgMlIBKoRZIiEk2gyrdnugHt0CS2X6Z+edYUKKriU5wCoTIFpINmnX1UQHiZQk5CgZ0/4UbpFoVck53RvwEOaJCCnRnxS+QPlF/J1p+aVkt5n3CSfEVZIFaX/aRFbxBzdOcGdUgc2xWMPaO0458SUDEP4VCVoGC8VIM7zgEVgs0TvnTEfBFkZjDLGjcnT0CtAlOxHpuIwoUg78KJn+592T3HpGDIFzwDgWCEB6RPSCbE0I7I4PnyqhHayGvVLLiKUgDJ8EPm4TQzdtvaDCEpINIyV9Eq8p5sAHctUlMGtc/I0LybHwE6kAu2AHqJbc9B2yjVxISAZYrWGnugFRQyNWirKARjyEhiSxGRdB8OQ7Wg8eS2owHa1xcWwco3p1pRcsB+aDFYlu0UCW6FD1W48UQuALWgav8XiSm00JFQmL9nDu5eRlNE67XebKHOSQZfMEb3Anwzaz14JLggMiMPnABpIDroN+ML+XE+MzZwbAZIX0OE7ESlINSMMuMkDaHCKAa6Ayo4CrQtOXZ4AAR29k6PQ3mmp3o5FQGcS7kr4jlzudZXCDcJKQJDPhgPMuMEK5/jrHpbSXI/H5Dj9ZH3pRURTqvSIUSRGjsqNS4uG54pUAAnZ0UgYeU5Els9wGNirGP3LRRgFHJVfLjJHMDJp/rCU0NQ8hL8M4GEcl8xyg5jLKh/TKjlHZ5zfzLEr8gFJzVPEZflk0j3T2qz16WCp1FvBe0Zhq92skFnxTYQUWTmdhbwJBAo3UgAZQqPGqInEwIecE3BBruAR0Knfm9vrjxoZwu+KtynCqugX1jP5zoWCGZM9AFDhNRpXlczC5f65G3msf67HKQiFrOybrMFlblfGG7A0R8ADu1ydx+Hw5DU0CTH4/cHoFwWcfT0eC+YgGDfBjr01m7mR8MBIJ80KpARDXItOuXDwZLwEXw3QYBlBEcALPN9kv0RzUaJ4G7wCbNc1wnarv2sqd1G9wDPSKNWBFixEwQx047mdNLwXw2E4K9BNKB6R/QwTSwkf2aq9RhK52QIWTEtgQxmufgJY7/JjsniA2CQdDJAhrZvG7hzy3HfwEGAFdwoJHzsBGDAAAAAElFTkSuQmCC) no-repeat 0px;} 367 .ss_playBtn.is-active{background:#7B7E7E url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAw1JREFUeNrcmttLVEEcx2cP2pVSowtKFBQRSpoYW1QEQUVRIXSBHpIIumBPIQU+9Bd0gSKhrJ6jiOhCgT4EZQ9dKShJKboRhEWBaCm5atP3187AYZhd98yc457ZL3xwPc6657NzzplrgnPOQsoikBRUgnJQBiaDBEiBPvANfAQvwTPQCf7YfnjCUmQe2Al2gDowyeB/vAVt4IoQMwuJGFAJWkEvDy+joB1sMjmnoG8oBSfAAI82t0B1VCLrQBcfv/SDprBFjoIUz0+uiivBWqSF5z9PQEW28xzrqXURHGDxyGuwGXzV/dHL8sZTMZKg1IAboCSICAkcYfHLcnBJNLBjNohLwSMwhcU3TeBMNpFi0AFWsnhnQHSFujNdWvsdkKBMBScz1Uip6MDNZe5kA7hHL4p8B/daSAyC75pvbbZy7Df4oRybBmYafm6zFJENygTL7sddUKywS1PusqbcQcuOZh05yHtkjRhDmGYUDGswLZdr6Pwb/Df7dttxTY5tVK7lgmQLmOiJR+5a5m5oZLqERBaIX1wN1fIKEqkSteJylnmO14bMQk9MILieOSQyowBEpnuGUzhxy//HLy8AEe6JLrHrGfQ0nT0X00sinwtApIdE3hWASDeJvAG/HBd5TiI9LD1n5GqGwFP5+G13WOQF+CTHAjfBiOXASvdNqRnJsVyQXKfKkGN2uk/ui8G8SWaBVcqxGk25ck25KguJfnBNnUXZCu44dlm1gkOqCF1mD8FqRySoR1IL3qvj5b/gmEN9rxYpodaIzHnQGHMJWkBN+ts/nQhN2z9mdtNDUYamj9aL24D57ws1tBbeEOPWvlmVyCRCocX8PZZtSxQ5C07rRyTZ1w93g2Eej1ywXQzdBvryLHE8rOXpJOjMgwCtte8Le8NAGTg3jhIPQG1UWzjkDoiOCAU+gEZQFOVeFD/1oA0MhSTwChwWNR/4fGy3OVGqQT3YKHq8JTm+LyWG2bT4elv8TJmeRBgi/lSIbvliMJ+mMll6CY7aK9pc9hN8EX2kLpbegBZKW/VPgAEAGYXv2/tP1L0AAAAASUVORK5CYII=) no-repeat 0px;} 368 @media screen and (max-width: 767px) { 369 .ss-si-img.ss-si-mobile,.csp-slide-video-embed .csp-video-mobile{display:block} 370 .ss-si-img.ss-si-desktop, .csp-slide-video-embed .csp-video-desktop {display: none;} 371 } 372 .swiper .swiper-button-next:after,.swiper .swiper-button-prev:after{color:#000000} 373 .swiper .swiper-pagination-bullet{background-color:#ffffff;opacity: 1;} 374 .swiper .swiper-pagination-bullet.swiper-pagination-bullet-active{background-color:#000000} 375 .swiper .swiper-pagination-fraction{color:#000000} 376 .swiper .swiper-pagination-fraction .swiper-pagination-current{color:#000000} 377 .swiper .swiper-pagination-progressbar{background-color:#f1f1f1} 378 .swiper .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background-color:#000000} 379 .swiper .swiper-scrollbar{background-color:#f1f1f1} 380 .swiper .swiper-scrollbar .swiper-scrollbar-drag{background-color:#000000}</style> 381
381<script type="text/javascript"> 382 (function (c, l, a, r, i, t, y) { 383 c[a] = 384 c[a] || 385 function () { 386 (c[a].q = c[a].q || []).push(arguments); 387 }; 388 t = l.createElement(r); 389 t.async = 1; 390 t.src = 'https://www.clarity.ms/tag/' + i; 391 y = l.getElementsByTagName(r)[0]; 392 y.parentNode.insertBefore(t, y); 393 })(window, document, 'clarity', 'script', 'ncmt5qz3ot'); 394 </script>
394 395 396 <!-- "snippets/shogun-head.liquid" was not rendered, the associated app was uninstalled --> 397 398 <style> 399 :root { 400 --color-sale-badge: #054040; 401 --bg-sale-badge: #9cddc0; 402 --color-preorder-badge: #054040; 403 --bg-preorder-badge: #9cddc0; 404 --color-stock-badge: #fff; 405 --bg-stock-badge: #686969; 406 } 407 </style> 408 <!-- BEGIN app block: shopify://apps/consentmo-gdpr/blocks/gdpr_cookie_consent/4fbe573f-a377-4fea-9801-3ee0858cae41 --> 409<link rel="preconnect" href="https://app.consentmo.com" crossorigin data-csm-preconnect="app"> 410<link rel="dns-prefetch" href="https://workers.consentmo.com" data-csm-preconnect="workers"> 411<link rel="dns-prefetch" href="https://storage.consentmo.com" data-csm-preconnect="storage"> 412<link rel="preconnect" href="https://cdn.consentmo.com" crossorigin data-csm-preconnect="cdn"><link rel="prefetch" href="https://cdn.shopify.com/extensions/01a0cea5-f48c-77e6-82d1-fa498b728463/gdpr-backpack-895/assets/layout-cookie-bar.consentmo.js" crossorigin data-csm-layout-prefetch="banner"> 413 <link rel="prefetch" href="https://cdn.shopify.com/extensions/01a0cea5-f48c-77e6-82d1-fa498b728463/gdpr-backpack-895/assets/layout-cookie-dialog.consentmo.js" crossorigin data-csm-layout-prefetch="dialog"> 414 <link rel="prefetch" href="https://cdn.shopify.com/extensions/01a0cea5-f48c-77e6-82d1-fa498b728463/gdpr-backpack-895/assets/layout-cookie-box.consentmo.js" crossorigin data-csm-layout-prefetch="box"> 415 <link rel="prefetch" href="https://cdn.shopify.com/extensions/01a0cea5-f48c-77e6-82d1-fa498b728463/gdpr-backpack-895/assets/layout-cookie-smart-banner.consentmo.js" crossorigin data-csm-layout-prefetch="smart"> 416 <link rel="prefetch" href="https://cdn.shopify.com/extensions/01a0cea5-f48c-77e6-82d1-fa498b728463/gdpr-backpack-895/assets/layout-mobile-cookie-bar.consentmo.js" crossorigin data-csm-layout-prefetch="mobile">
416<script> 417(function () { 418 try { 419 document.documentElement.classList.add('csm-cookie-embed'); 420 } catch (e) {} 421})(); 422</script>
422<script data-consentmo-data-src-bootstrap> 423(function () { 424 'use strict'; 425 if (window.__consentmoDataSrcBootstrapInit) return; 426 window.__consentmoDataSrcBootstrapInit = true; 427 428 var DATA_SRC_SELECTOR = [ 429 'script[data-src*="consentmo_cookie_consent"]', 430 'script[data-src*="gdpr_cookie_consent.min"]', 431 'script[data-src*="gdrp_cookie_consent_unlimited"]' 432 ].join(','); 433 434 function activateConsentmoDataSrcScripts() { 435 if (!window.Shopify || !window.Shopify.shop) return; 436 document.querySelectorAll(DATA_SRC_SELECTOR).forEach(function (scriptEl) { 437 // getAttribute: src="" must not count as "already has src" (.src === page URL). 438 if (scriptEl.getAttribute('src')) return; 439 var url = scriptEl.getAttribute('data-src'); 440 if (!url) return; 441 if (scriptEl.getAttribute('type') === 'text/plain') { 442 scriptEl.removeAttribute('type'); 443 } 444 scriptEl.src = url; 445 }); 446 } 447 function scheduleActivation() { 448 activateConsentmoDataSrcScripts(); 449 // Retry on next task so other DCL handlers (lazy-loaders) can finish setting Shopify.shop / data-src first. 450 setTimeout(activateConsentmoDataSrcScripts, 0); 451 } 452 if (document.readyState === 'loading') { 453 document.addEventListener('DOMContentLoaded', scheduleActivation, { once: true }); 454 } else { 455 scheduleActivation(); 456 } 457})(); 458</script>
458 459 460 461<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 462 463 464 465 466 467 468 469 470 471 472 473 474
474<script async src="https://static.klaviyo.com/onsite/js/WRmUXy/klaviyo.js?company_id=WRmUXy"></script>
474 475
475<script>!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();</script>
475 476 477 478 479 480 481 482
482<script> 483 window.klaviyoReviewsProductDesignMode = false 484 </script>
484 485 486 487 488 489 490 491 492 493 494<!-- END app block --><!-- BEGIN app block: shopify://apps/helium-customer-fields/blocks/app-embed/bab58598-3e6a-4377-aaaa-97189b15f131 --> 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533
534<script> 535 if ('CF' in window) { 536 window.CF.appEmbedEnabled = true; 537 } else { 538 window.CF = { 539 appEmbedEnabled: true, 540 }; 541 } 542 543 window.CF.editAccountFormId = ""; 544 window.CF.registrationFormId = ""; 545</script>
545 546 547<!-- BEGIN app snippet: patch-registration-links --> 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586
587<script> 588 function patchRegistrationLinks() { 589 const PATCHABLE_LINKS_SELECTOR = 'a[href*="/account/register"]'; 590 591 const search = new URLSearchParams(window.location.search); 592 const checkoutUrl = search.get('checkout_url'); 593 const returnUrl = search.get('return_url'); 594 595 const redirectUrl = checkoutUrl || returnUrl; 596 if (!redirectUrl) return; 597 598 const registrationLinks = Array.from(document.querySelectorAll(PATCHABLE_LINKS_SELECTOR)); 599 registrationLinks.forEach(link => { 600 const url = new URL(link.href); 601 602 url.searchParams.set('return_url', redirectUrl); 603 604 link.href = url.href; 605 }); 606 } 607 608 if (['complete', 'interactive', 'loaded'].includes(document.readyState)) { 609 patchRegistrationLinks(); 610 } else { 611 document.addEventListener('DOMContentLoaded', () => patchRegistrationLinks()); 612 } 613</script>
613<!-- END app snippet --> 614<!-- BEGIN app snippet: patch-login-grecaptcha-conflict --> 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653
654<script> 655 // Fixes a problem where both grecaptcha and hcaptcha response fields are included in the /account/login form submission 656 // resulting in a 404 on the /challenge page. 657 // This is caused by our triggerShopifyRecaptchaLoad function in initialize-forms.liquid.ejs 658 // The fix itself just removes the unnecessary g-recaptcha-response input 659 660 function patchLoginGrecaptchaConflict() { 661 Array.from(document.querySelectorAll('form')).forEach(form => { 662 form.addEventListener('submit', e => { 663 const grecaptchaResponse = form.querySelector('[name="g-recaptcha-response"]'); 664 const hcaptchaResponse = form.querySelector('[name="h-captcha-response"]'); 665 666 if (grecaptchaResponse && hcaptchaResponse) { 667 // Can't use both. Only keep hcaptcha response field. 668 grecaptchaResponse.parentElement.removeChild(grecaptchaResponse); 669 } 670 }) 671 }) 672 } 673 674 if (['complete', 'interactive', 'loaded'].includes(document.readyState)) { 675 patchLoginGrecaptchaConflict(); 676 } else { 677 document.addEventListener('DOMContentLoaded', () => patchLoginGrecaptchaConflict()); 678 } 679</script>
679<!-- END app snippet --> 680<!-- BEGIN app snippet: embed-data --> 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733
734<script> 735 window.CF.version = "5.3.0"; 736 window.CF.environment = 737 { 738 739 "domain": "bb73c3-5.myshopify.com", 740 "baseApiUrl": "https:\/\/app.customerfields.com", 741 "captchaSiteKey": "6LeOhgYqAAAAALSx7k-m20f5REGeGfLDze9X8PPM", 742 "captchaEnabled": true, 743 "proxyPath": "\/tools\/customr", 744 "countries": [{"name":"Afghanistan","code":"AF"},{"name":"à land Islands","code":"AX"},{"name":"Albania","code":"AL"},{"name":"Algeria","code":"DZ"},{"name":"Andorra","code":"AD"},{"name":"Angola","code":"AO"},{"name":"Anguilla","code":"AI"},{"name":"Antigua \u0026 Barbuda","code":"AG"},{"name":"Argentina","code":"AR","provinces":[{"name":"Buenos Aires Province","code":"B"},{"name":"Catamarca","code":"K"},{"name":"Chaco","code":"H"},{"name":"Chubut","code":"U"},{"name":"Buenos Aires (Autonomous City)","code":"C"},{"name":"Córdoba","code":"X"},{"name":"Corrientes","code":"W"},{"name":"Entre RÃos","code":"E"},{"name":"Formosa","code":"P"},{"name":"Jujuy","code":"Y"},{"name":"La Pampa","code":"L"},{"name":"La Rioja","code":"F"},{"name":"Mendoza","code":"M"},{"name":"Misiones","code":"N"},{"name":"Neuquén","code":"Q"},{"name":"RÃo Negro","code":"R"},{"name":"Salta","code":"A"},{"name":"San Juan","code":"J"},{"name":"San Luis","code":"D"},{"name":"Santa Cruz","code":"Z"},{"name":"Santa Fe","code":"S"},{"name":"Santiago del Estero","code":"G"},{"name":"Tierra del Fuego","code":"V"},{"name":"Tucumán","code":"T"}]},{"name":"Armenia","code":"AM"},{"name":"Aruba","code":"AW"},{"name":"Ascension Island","code":"AC"},{"name":"Australia","code":"AU","provinces":[{"name":"Australian Capital Territory","code":"ACT"},{"name":"New South Wales","code":"NSW"},{"name":"Northern Territory","code":"NT"},{"name":"Queensland","code":"QLD"},{"name":"South Australia","code":"SA"},{"name":"Tasmania","code":"TAS"},{"name":"Victoria","code":"VIC"},{"name":"Western Australia","code":"WA"}]},{"name":"Austria","code":"AT"},{"name":"Azerbaijan","code":"AZ"},{"name":"Bahamas","code":"BS"},{"name":"Bahrain","code":"BH"},{"name":"Bangladesh","code":"BD"},{"name":"Barbados","code":"BB"},{"name":"Belarus","code":"BY"},{"name":"Belgium","code":"BE"},{"name":"Belize","code":"BZ"},{"name":"Benin","code":"BJ"},{"name":"Bermuda","code":"BM"},{"name":"Bhutan","code":"BT"},{"name":"Bolivia","code":"BO"},{"name":"Bosnia \u0026 Herzegovina","code":"BA"},{"name":"Botswana","code":"BW"},{"name":"Brazil","code":"BR","provinces":[{"name":"Acre","code":"AC"},{"name":"Alagoas","code":"AL"},{"name":"Amapá","code":"AP"},{"name":"Amazonas","code":"AM"},{"name":"Bahia","code":"BA"},{"name":"Ceará","code":"CE"},{"name":"Federal District","code":"DF"},{"name":"EspÃrito Santo","code":"ES"},{"name":"Goiás","code":"GO"},{"name":"Maranhão","code":"MA"},{"name":"Mato Grosso","code":"MT"},{"name":"Mato Grosso do Sul","code":"MS"},{"name":"Minas Gerais","code":"MG"},{"name":"Pará","code":"PA"},{"name":"ParaÃba","code":"PB"},{"name":"Paraná","code":"PR"},{"name":"Pernambuco","code":"PE"},{"name":"PiauÃ","code":"PI"},{"name":"Rio Grande do Norte","code":"RN"},{"name":"Rio Grande do Sul","code":"RS"},{"name":"Rio de Janeiro","code":"RJ"},{"name":"Rondônia","code":"RO"},{"name":"Roraima","code":"RR"},{"name":"Santa Catarina","code":"SC"},{"name":"São Paulo","code":"SP"},{"name":"Sergipe","code":"SE"},{"name":"Tocantins","code":"TO"}]},{"name":"British Indian Ocean Territory","code":"IO"},{"name":"British Virgin Islands","code":"VG"},{"name":"Brunei","code":"BN"},{"name":"Bulgaria","code":"BG"},{"name":"Burkina Faso","code":"BF"},{"name":"Burundi","code":"BI"},{"name":"Cambodia","code":"KH"},{"name":"Cameroon","code":"CM"},{"name":"Canada","code":"CA","provinces":[{"name":"Alberta","code":"AB"},{"name":"British Columbia","code":"BC"},{"name":"Manitoba","code":"MB"},{"name":"New Brunswick","code":"NB"},{"name":"Newfoundland and Labrador","code":"NL"},{"name":"Northwest Territories","code":"NT"},{"name":"Nova Scotia","code":"NS"},{"name":"Nunavut","code":"NU"},{"name":"Ontario","code":"ON"},{"name":"Prince Edward Island","code":"PE"},{"name":"Quebec","code":"QC"},{"name":"Saskatchewan","code":"SK"},{"name":"Yukon","code":"YT"}]}
744,{"name":"Cape Verde","code":"CV"},{"name":"Caribbean Netherlands","code":"BQ"},{"name":"Cayman Islands","code":"KY"},{"name":"Central African Republic","code":"CF"},{"name":"Chad","code":"TD"},{"name":"Chile","code":"CL","provinces":[{"name":"Arica y Parinacota","code":"AP"},{"name":"Tarapacá","code":"TA"},{"name":"Antofagasta","code":"AN"},{"name":"Atacama","code":"AT"},{"name":"Coquimbo","code":"CO"},{"name":"ValparaÃso","code":"VS"},{"name":"Santiago Metropolitan","code":"RM"},{"name":"Libertador General Bernardo OâHiggins","code":"LI"},{"name":"Maule","code":"ML"},{"name":"Ãuble","code":"NB"},{"name":"BÃo BÃo","code":"BI"},{"name":"AraucanÃa","code":"AR"},{"name":"Los RÃos","code":"LR"},{"name":"Los Lagos","code":"LL"},{"name":"Aysén","code":"AI"},{"name":"Magallanes Region","code":"MA"}]},{"name":"China","code":"CN","provinces":[{"name":"Anhui","code":"AH"},{"name":"Beijing","code":"BJ"},{"name":"Chongqing","code":"CQ"},{"name":"Fujian","code":"FJ"},{"name":"Gansu","code":"GS"},{"name":"Guangdong","code":"GD"},{"name":"Guangxi","code":"GX"},{"name":"Guizhou","code":"GZ"},{"name":"Hainan","code":"HI"},{"name":"Hebei","code":"HE"},{"name":"Heilongjiang","code":"HL"},{"name":"Henan","code":"HA"},{"name":"Hubei","code":"HB"},{"name":"Hunan","code":"HN"},{"name":"Inner Mongolia","code":"NM"},{"name":"Jiangsu","code":"JS"},{"name":"Jiangxi","code":"JX"},{"name":"Jilin","code":"JL"},{"name":"Liaoning","code":"LN"},{"name":"Ningxia","code":"NX"},{"name":"Qinghai","code":"QH"},{"name":"Shaanxi","code":"SN"},{"name":"Shandong","code":"SD"},{"name":"Shanghai","code":"SH"},{"name":"Shanxi","code":"SX"},{"name":"Sichuan","code":"SC"},{"name":"Tianjin","code":"TJ"},{"name":"Xinjiang","code":"XJ"},{"name":"Tibet","code":"YZ"},{"name":"Yunnan","code":"YN"},{"name":"Zhejiang","code":"ZJ"}]},{"name":"Christmas Island","code":"CX"},{"name":"Cocos (Keeling) Islands","code":"CC"},{"name":"Colombia","code":"CO","provinces":[{"name":"Capital District","code":"DC"},{"name":"Amazonas","code":"AMA"},{"name":"Antioquia","code":"ANT"},{"name":"Arauca","code":"ARA"},{"name":"Atlántico","code":"ATL"},{"name":"BolÃvar","code":"BOL"},{"name":"Boyacá","code":"BOY"},{"name":"Caldas","code":"CAL"},{"name":"Caquetá","code":"CAQ"},{"name":"Casanare","code":"CAS"},{"name":"Cauca","code":"CAU"},{"name":"Cesar","code":"CES"},{"name":"Chocó","code":"CHO"},{"name":"Córdoba","code":"COR"},{"name":"Cundinamarca","code":"CUN"},{"name":"GuainÃa","code":"GUA"},{"name":"Guaviare","code":"GUV"},{"name":"Huila","code":"HUI"},{"name":"La Guajira","code":"LAG"},{"name":"Magdalena","code":"MAG"},{"name":"Meta","code":"MET"},{"name":"Nariño","code":"NAR"},{"name":"Norte de Santander","code":"NSA"},{"name":"Putumayo","code":"PUT"},{"name":"QuindÃo","code":"QUI"},{"name":"Risaralda","code":"RIS"},{"name":"San Andrés \u0026 Providencia","code":"SAP"},{"name":"Santander","code":"SAN"},{"name":"Sucre","code":"SUC"},{"name":"Tolima","code":"TOL"},{"name":"Valle del Cauca","code":"VAC"},{"name":"Vaupés","code":"VAU"},{"name":"Vichada","code":"VID"}]},{"name":"Comoros","code":"KM"},{"name":"Congo - Brazzaville","code":"CG"},{"name":"Congo - Kinshasa","code":"CD"},{"name":"Cook Islands","code":"CK"},{"name":"Costa Rica","code":"CR","provinces":[{"name":"Alajuela","code":"CR-A"},{"name":"Cartago","code":"CR-C"},{"name":"Guanacaste","code":"CR-G"},{"name":"Heredia","code":"CR-H"},{"name":"Limón","code":"CR-L"},{"name":"Puntarenas","code":"CR-P"},{"name":"San José","code":"CR-SJ"}]},{"name":"Croatia","code":"HR"},{"name":"Curaçao","code":"CW"},{"name":"Cyprus","code":"CY"},{"name":"Czechia","code":"CZ"},{"name":"Côte dâIvoire","code":"CI"},{"name":"Denmark","code":"DK"},{"name":"Djibouti","code":"DJ"},{"name":"Dominica","code":"DM"},{"name":"Dominican Republic","code":"DO"},{"name":"Ecuador","code":"EC"},{"name":"Egypt","code":"EG","provinces":[{"name":"6th of October","code":"SU"},{"name":"Al Sharqia","code":"SHR"},{"name":"Alexandria","code":"ALX"},{"name":"Aswan","code":"ASN"},{"name":"Asyut","code":"AST"},{"name":"Beheira","code":"BH"},{"name":"Beni Suef","code":"BNS"},{"name":"Cairo","code":"C"},{"name":"Dakahlia","code":"DK"},{"name":"Damietta","code":"DT"},{"name":"Faiyum","code":"FYM"},{"name":"Gharbia","code":"GH"},{"name":"Giza","code":"GZ"},{"name":"Helwan","code":"HU"},{"name":"Ismailia","code":"IS"},{"name":"Kafr el-Sheikh","code":"KFS"},{"name":"Luxor","code":"LX"},{"name":"Matrouh","code":"MT"},{"name":"Minya","code":"MN"},{"name":"Monufia","code":"MNF"},{"name":"New Valley","code":"WAD"},{"name":"North Sinai","code":"SIN"},{"name":"Port Said","code":"PTS"},{"name":"Qalyubia","code":"KB"},{"name":"Qena","code":"KN"},{"name":"Red Sea","code":"BA"},{"name":"Sohag","code":"SHG"},{"name":"South Sinai","code":"JS"},{"name":"Suez","code":"SUZ"}]},{"name":"El Salvador","code":"SV","provinces":[{"name":"Ahuachapán","code":"SV-AH"},{"name":"Cabañas","code":"SV-CA"},{"name":"Chalatenango","code":"SV-CH"},{"name":"Cuscatlán","code":"SV-CU"},{"name":"La Libertad","code":"SV-LI"},{"name":"La Paz","code":"SV-PA"},{"name":"La Unión","code":"SV-UN"},{"name":"Morazán","code":"SV-MO"},{"name":"San Miguel","code":"SV-SM"},{"name":"San Salvador","code":"SV-SS"},{"name":"San Vicente","code":"SV-SV"},{"name":"Santa Ana","code":"SV-SA"},{"name":"Sonsonate","code":"SV-SO"},{"name":"Usulután","code":"SV-US"}]},{"name":"Equatorial Guinea","code":"GQ"},{"name":"Eritrea","code":"ER"},{"name":"Estonia","code":"EE"},{"name":"Eswatini","code":"SZ"},{"name":"Ethiopia","code":"ET"},{"name":"Falkland Islands","code":"FK"},{"name":"Faroe Islands","code":"FO"},{"name":"Fiji","code":"FJ"},{"name":"Finland","code":"FI"},{"name":"France","code":"FR"},{"name":"French Guiana","code":"GF"},{"name":"French Polynesia","code":"PF"},{"name":"French Southern Territories","code":"TF"},{"name":"Gabon","code":"GA"},{"name":"Gambia","code":"GM"},{"name":"Georgia","code":"GE"},{"name":"Germany","code":"DE"},{"name":"Ghana","code":"GH"},{"name":"Gibraltar","code":"GI"},{"name":"Greece","code":"GR"},{"name":"Greenland","code":"GL"},{"name":"Grenada","code":"GD"},{"name":"Guadeloupe","code":"GP"},{"name":"Guatemala","code":"GT","provinces":[{"name":"Alta Verapaz","code":"AVE"},{"name":"Baja Verapaz","code":"BVE"},{"name":"Chimaltenango","code":"CMT"},{"name":"Chiquimula","code":"CQM"},{"name":"El Progreso","code":"EPR"},{"name":"Escuintla","code":"ESC"},{"name":"Guatemala","code":"GUA"},{"name":"Huehuetenango","code":"HUE"},{"name":"Izabal","code":"IZA"},{"name":"Jalapa","code":"JAL"},{"name":"Jutiapa","code":"JUT"},{"name":"Petén","code":"PET"},{"name":"Quetzaltenango","code":"QUE"},{"name":"Quiché","code":"QUI"},{"name":"Retalhuleu","code":"RET"},{"name":"Sacatepéquez","code":"SAC"},{"name":"San Marcos","code":"SMA"},{"name":"Santa Rosa","code":"SRO"},{"name":"Sololá","code":"SOL"},{"name":"Suchitepéquez","code":"SUC"},{"name":"Totonicapán","code":"TOT"},{"name":"Zacapa","code":"ZAC"}]},{"name":"Guernsey","code":"GG"},{"name":"Guinea","code":"GN"},{"name":"Guinea-Bissau","code":"GW"},{"name":"Guyana","code":"GY"},{"name":"Haiti","code":"HT"},{"name":"Honduras","code":"HN"},{"name":"Hong Kong SAR","code":"HK","provinces":[{"name":"Hong Kong Island","code":"HK"},{"name":"Kowloon","code":"KL"},{"name":"New Territories","code":"NT"}]}
744,{"name":"Hungary","code":"HU"},{"name":"Iceland","code":"IS"},{"name":"India","code":"IN","provinces":[{"name":"Andaman and Nicobar Islands","code":"AN"},{"name":"Andhra Pradesh","code":"AP"},{"name":"Arunachal Pradesh","code":"AR"},{"name":"Assam","code":"AS"},{"name":"Bihar","code":"BR"},{"name":"Chandigarh","code":"CH"},{"name":"Chhattisgarh","code":"CG"},{"name":"Dadra and Nagar Haveli","code":"DN"},{"name":"Daman and Diu","code":"DD"},{"name":"Delhi","code":"DL"},{"name":"Goa","code":"GA"},{"name":"Gujarat","code":"GJ"},{"name":"Haryana","code":"HR"},{"name":"Himachal Pradesh","code":"HP"},{"name":"Jammu and Kashmir","code":"JK"},{"name":"Jharkhand","code":"JH"},{"name":"Karnataka","code":"KA"},{"name":"Kerala","code":"KL"},{"name":"Ladakh","code":"LA"},{"name":"Lakshadweep","code":"LD"},{"name":"Madhya Pradesh","code":"MP"},{"name":"Maharashtra","code":"MH"},{"name":"Manipur","code":"MN"},{"name":"Meghalaya","code":"ML"},{"name":"Mizoram","code":"MZ"},{"name":"Nagaland","code":"NL"},{"name":"Odisha","code":"OR"},{"name":"Puducherry","code":"PY"},{"name":"Punjab","code":"PB"},{"name":"Rajasthan","code":"RJ"},{"name":"Sikkim","code":"SK"},{"name":"Tamil Nadu","code":"TN"},{"name":"Telangana","code":"TS"},{"name":"Tripura","code":"TR"},{"name":"Uttar Pradesh","code":"UP"},{"name":"Uttarakhand","code":"UK"},{"name":"West Bengal","code":"WB"}]},{"name":"Indonesia","code":"ID","provinces":[{"name":"Aceh","code":"AC"},{"name":"Bali","code":"BA"},{"name":"BangkaâBelitung Islands","code":"BB"},{"name":"Banten","code":"BT"},{"name":"Bengkulu","code":"BE"},{"name":"Gorontalo","code":"GO"},{"name":"Jakarta","code":"JK"},{"name":"Jambi","code":"JA"},{"name":"West Java","code":"JB"},{"name":"Central Java","code":"JT"},{"name":"East Java","code":"JI"},{"name":"West Kalimantan","code":"KB"},{"name":"South Kalimantan","code":"KS"},{"name":"Central Kalimantan","code":"KT"},{"name":"East Kalimantan","code":"KI"},{"name":"North Kalimantan","code":"KU"},{"name":"Riau Islands","code":"KR"},{"name":"Lampung","code":"LA"},{"name":"Maluku","code":"MA"},{"name":"North Maluku","code":"MU"},{"name":"North Sumatra","code":"SU"},{"name":"West Nusa Tenggara","code":"NB"},{"name":"East Nusa Tenggara","code":"NT"},{"name":"Papua","code":"PA"},{"name":"West Papua","code":"PB"},{"name":"Riau","code":"RI"},{"name":"South Sumatra","code":"SS"},{"name":"West Sulawesi","code":"SR"},{"name":"South Sulawesi","code":"SN"},{"name":"Central Sulawesi","code":"ST"},{"name":"Southeast Sulawesi","code":"SG"},{"name":"North Sulawesi","code":"SA"},{"name":"West Sumatra","code":"SB"},{"name":"Yogyakarta","code":"YO"}]},{"name":"Iraq","code":"IQ"},{"name":"Ireland","code":"IE","provinces":[{"name":"Carlow","code":"CW"},{"name":"Cavan","code":"CN"},{"name":"Clare","code":"CE"},{"name":"Cork","code":"CO"},{"name":"Donegal","code":"DL"},{"name":"Dublin","code":"D"},{"name":"Galway","code":"G"},{"name":"Kerry","code":"KY"},{"name":"Kildare","code":"KE"},{"name":"Kilkenny","code":"KK"},{"name":"Laois","code":"LS"},{"name":"Leitrim","code":"LM"},{"name":"Limerick","code":"LK"},{"name":"Longford","code":"LD"},{"name":"Louth","code":"LH"},{"name":"Mayo","code":"MO"},{"name":"Meath","code":"MH"},{"name":"Monaghan","code":"MN"},{"name":"Offaly","code":"OY"},{"name":"Roscommon","code":"RN"},{"name":"Sligo","code":"SO"},{"name":"Tipperary","code":"TA"},{"name":"Waterford","code":"WD"},{"name":"Westmeath","code":"WH"},{"name":"Wexford","code":"WX"},{"name":"Wicklow","code":"WW"}]},{"name":"Isle of Man","code":"IM"},{"name":"Israel","code":"IL"},{"name":"Italy","code":"IT","provinces":[{"name":"Agrigento","code":"AG"},{"name":"Alessandria","code":"AL"},{"name":"Ancona","code":"AN"},{"name":"Aosta Valley","code":"AO"},{"name":"Arezzo","code":"AR"},{"name":"Ascoli Piceno","code":"AP"},{"name":"Asti","code":"AT"},{"name":"Avellino","code":"AV"},{"name":"Bari","code":"BA"},{"name":"Barletta-Andria-Trani","code":"BT"},{"name":"Belluno","code":"BL"},{"name":"Benevento","code":"BN"},{"name":"Bergamo","code":"BG"},{"name":"Biella","code":"BI"},{"name":"Bologna","code":"BO"},{"name":"South Tyrol","code":"BZ"},{"name":"Brescia","code":"BS"},{"name":"Brindisi","code":"BR"},{"name":"Cagliari","code":"CA"},{"name":"Caltanissetta","code":"CL"},{"name":"Campobasso","code":"CB"},{"name":"Carbonia-Iglesias","code":"CI"},{"name":"Caserta","code":"CE"},{"name":"Catania","code":"CT"},{"name":"Catanzaro","code":"CZ"},{"name":"Chieti","code":"CH"},{"name":"Como","code":"CO"},{"name":"Cosenza","code":"CS"},{"name":"Cremona","code":"CR"},{"name":"Crotone","code":"KR"},{"name":"Cuneo","code":"CN"},{"name":"Enna","code":"EN"},{"name":"Fermo","code":"FM"},{"name":"Ferrara","code":"FE"},{"name":"Florence","code":"FI"},{"name":"Foggia","code":"FG"},{"name":"Forlì-Cesena","code":"FC"},{"name":"Frosinone","code":"FR"},{"name":"Genoa","code":"GE"},{"name":"Gorizia","code":"GO"},{"name":"Grosseto","code":"GR"},{"name":"Imperia","code":"IM"},{"name":"Isernia","code":"IS"},{"name":"LâAquila","code":"AQ"},{"name":"La Spezia","code":"SP"},{"name":"Latina","code":"LT"},{"name":"Lecce","code":"LE"},{"name":"Lecco","code":"LC"},{"name":"Livorno","code":"LI"},{"name":"Lodi","code":"LO"},{"name":"Lucca","code":"LU"},{"name":"Macerata","code":"MC"},{"name":"Mantua","code":"MN"},{"name":"Massa and Carrara","code":"MS"},{"name":"Matera","code":"MT"},{"name":"Medio Campidano","code":"VS"},{"name":"Messina","code":"ME"},{"name":"Milan","code":"MI"},{"name":"Modena","code":"MO"},{"name":"Monza and Brianza","code":"MB"},{"name":"Naples","code":"NA"},{"name":"Novara","code":"NO"},{"name":"Nuoro","code":"NU"},{"name":"Ogliastra","code":"OG"},{"name":"Olbia-Tempio","code":"OT"},{"name":"Oristano","code":"OR"},{"name":"Padua","code":"PD"},{"name":"Palermo","code":"PA"},{"name":"Parma","code":"PR"},{"name":"Pavia","code":"PV"},{"name":"Perugia","code":"PG"},{"name":"Pesaro and Urbino","code":"PU"},{"name":"Pescara","code":"PE"},{"name":"Piacenza","code":"PC"},{"name":"Pisa","code":"PI"},{"name":"Pistoia","code":"PT"},{"name":"Pordenone","code":"PN"},{"name":"Potenza","code":"PZ"},{"name":"Prato","code":"PO"},{"name":"Ragusa","code":"RG"},{"name":"Ravenna","code":"RA"},{"name":"Reggio Calabria","code":"RC"},{"name":"Reggio Emilia","code":"RE"},{"name":"Rieti","code":"RI"},{"name":"Rimini","code":"RN"},{"name":"Rome","code":"RM"},{"name":"Rovigo","code":"RO"},{"name":"Salerno","code":"SA"},{"name":"Sassari","code":"SS"},{"name":"Savona","code":"SV"},{"name":"Siena","code":"SI"},{"name":"Syracuse","code":"SR"},{"name":"Sondrio","code":"SO"},{"name":"Taranto","code":"TA"},{"name":"Teramo","code":"TE"},{"name":"Terni","code":"TR"},{"name":"Turin","code":"TO"},{"name":"Trapani","code":"TP"},{"name":"Trentino","code":"TN"},{"name":"Treviso","code":"TV"},{"name":"Trieste","code":"TS"},{"name":"Udine","code":"UD"},{"name":"Varese","code":"VA"},{"name":"Venice","code":"VE"},{"name":"Verbano-Cusio-Ossola","code":"VB"},{"name":"Vercelli","code":"VC"},{"name":"Verona","code":"VR"},{"name":"Vibo Valentia","code":"VV"},{"name":"Vicenza","code":"VI"},{"name":"Viterbo","code":"VT"}]}
744,{"name":"Jamaica","code":"JM"},{"name":"Japan","code":"JP","provinces":[{"name":"Hokkaido","code":"JP-01"},{"name":"Aomori","code":"JP-02"},{"name":"Iwate","code":"JP-03"},{"name":"Miyagi","code":"JP-04"},{"name":"Akita","code":"JP-05"},{"name":"Yamagata","code":"JP-06"},{"name":"Fukushima","code":"JP-07"},{"name":"Ibaraki","code":"JP-08"},{"name":"Tochigi","code":"JP-09"},{"name":"Gunma","code":"JP-10"},{"name":"Saitama","code":"JP-11"},{"name":"Chiba","code":"JP-12"},{"name":"Tokyo","code":"JP-13"},{"name":"Kanagawa","code":"JP-14"},{"name":"Niigata","code":"JP-15"},{"name":"Toyama","code":"JP-16"},{"name":"Ishikawa","code":"JP-17"},{"name":"Fukui","code":"JP-18"},{"name":"Yamanashi","code":"JP-19"},{"name":"Nagano","code":"JP-20"},{"name":"Gifu","code":"JP-21"},{"name":"Shizuoka","code":"JP-22"},{"name":"Aichi","code":"JP-23"},{"name":"Mie","code":"JP-24"},{"name":"Shiga","code":"JP-25"},{"name":"Kyoto","code":"JP-26"},{"name":"Osaka","code":"JP-27"},{"name":"Hyogo","code":"JP-28"},{"name":"Nara","code":"JP-29"},{"name":"Wakayama","code":"JP-30"},{"name":"Tottori","code":"JP-31"},{"name":"Shimane","code":"JP-32"},{"name":"Okayama","code":"JP-33"},{"name":"Hiroshima","code":"JP-34"},{"name":"Yamaguchi","code":"JP-35"},{"name":"Tokushima","code":"JP-36"},{"name":"Kagawa","code":"JP-37"},{"name":"Ehime","code":"JP-38"},{"name":"Kochi","code":"JP-39"},{"name":"Fukuoka","code":"JP-40"},{"name":"Saga","code":"JP-41"},{"name":"Nagasaki","code":"JP-42"},{"name":"Kumamoto","code":"JP-43"},{"name":"Oita","code":"JP-44"},{"name":"Miyazaki","code":"JP-45"},{"name":"Kagoshima","code":"JP-46"},{"name":"Okinawa","code":"JP-47"}]},{"name":"Jersey","code":"JE"},{"name":"Jordan","code":"JO"},{"name":"Kazakhstan","code":"KZ"},{"name":"Kenya","code":"KE"},{"name":"Kiribati","code":"KI"},{"name":"Kosovo","code":"XK"},{"name":"Kuwait","code":"KW","provinces":[{"name":"Al Ahmadi","code":"KW-AH"},{"name":"Al Asimah","code":"KW-KU"},{"name":"Al Farwaniyah","code":"KW-FA"},{"name":"Al Jahra","code":"KW-JA"},{"name":"Hawalli","code":"KW-HA"},{"name":"Mubarak Al-Kabeer","code":"KW-MU"}]},{"name":"Kyrgyzstan","code":"KG"},{"name":"Laos","code":"LA"},{"name":"Latvia","code":"LV"},{"name":"Lebanon","code":"LB"},{"name":"Lesotho","code":"LS"},{"name":"Liberia","code":"LR"},{"name":"Libya","code":"LY"},{"name":"Liechtenstein","code":"LI"},{"name":"Lithuania","code":"LT"},{"name":"Luxembourg","code":"LU"},{"name":"Macao SAR","code":"MO"},{"name":"Madagascar","code":"MG"},{"name":"Malawi","code":"MW"},{"name":"Malaysia","code":"MY","provinces":[{"name":"Johor","code":"JHR"},{"name":"Kedah","code":"KDH"},{"name":"Kelantan","code":"KTN"},{"name":"Kuala Lumpur","code":"KUL"},{"name":"Labuan","code":"LBN"},{"name":"Malacca","code":"MLK"},{"name":"Negeri Sembilan","code":"NSN"},{"name":"Pahang","code":"PHG"},{"name":"Penang","code":"PNG"},{"name":"Perak","code":"PRK"},{"name":"Perlis","code":"PLS"},{"name":"Putrajaya","code":"PJY"},{"name":"Sabah","code":"SBH"},{"name":"Sarawak","code":"SWK"},{"name":"Selangor","code":"SGR"},{"name":"Terengganu","code":"TRG"}]},{"name":"Maldives","code":"MV"},{"name":"Mali","code":"ML"},{"name":"Malta","code":"MT"},{"name":"Martinique","code":"MQ"},{"name":"Mauritania","code":"MR"},{"name":"Mauritius","code":"MU"},{"name":"Mayotte","code":"YT"},{"name":"Mexico","code":"MX","provinces":[{"name":"Aguascalientes","code":"AGS"},{"name":"Baja California","code":"BC"},{"name":"Baja California Sur","code":"BCS"},{"name":"Campeche","code":"CAMP"},{"name":"Chiapas","code":"CHIS"},{"name":"Chihuahua","code":"CHIH"},{"name":"Ciudad de Mexico","code":"DF"},{"name":"Coahuila","code":"COAH"},{"name":"Colima","code":"COL"},{"name":"Durango","code":"DGO"},{"name":"Guanajuato","code":"GTO"},{"name":"Guerrero","code":"GRO"},{"name":"Hidalgo","code":"HGO"},{"name":"Jalisco","code":"JAL"},{"name":"Mexico State","code":"MEX"},{"name":"Michoacán","code":"MICH"},{"name":"Morelos","code":"MOR"},{"name":"Nayarit","code":"NAY"},{"name":"Nuevo León","code":"NL"},{"name":"Oaxaca","code":"OAX"},{"name":"Puebla","code":"PUE"},{"name":"Querétaro","code":"QRO"},{"name":"Quintana Roo","code":"Q ROO"},{"name":"San Luis PotosÃ","code":"SLP"},{"name":"Sinaloa","code":"SIN"},{"name":"Sonora","code":"SON"},{"name":"Tabasco","code":"TAB"},{"name":"Tamaulipas","code":"TAMPS"},{"name":"Tlaxcala","code":"TLAX"},{"name":"Veracruz","code":"VER"},{"name":"Yucatán","code":"YUC"},{"name":"Zacatecas","code":"ZAC"}]},{"name":"Moldova","code":"MD"},{"name":"Monaco","code":"MC"},{"name":"Mongolia","code":"MN"},{"name":"Montenegro","code":"ME"},{"name":"Montserrat","code":"MS"},{"name":"Morocco","code":"MA"},{"name":"Mozambique","code":"MZ"},{"name":"Myanmar (Burma)","code":"MM"},{"name":"Namibia","code":"NA"},{"name":"Nauru","code":"NR"},{"name":"Nepal","code":"NP"},{"name":"Netherlands","code":"NL"},{"name":"New Caledonia","code":"NC"},{"name":"New Zealand","code":"NZ","provinces":[{"name":"Auckland","code":"AUK"},{"name":"Bay of Plenty","code":"BOP"},{"name":"Canterbury","code":"CAN"},{"name":"Chatham Islands","code":"CIT"},{"name":"Gisborne","code":"GIS"},{"name":"Hawkeâs Bay","code":"HKB"},{"name":"ManawatÅ«-Whanganui","code":"MWT"},{"name":"Marlborough","code":"MBH"},{"name":"Nelson","code":"NSN"},{"name":"Northland","code":"NTL"},{"name":"Otago","code":"OTA"},{"name":"Southland","code":"STL"},{"name":"Taranaki","code":"TKI"},{"name":"Tasman","code":"TAS"},{"name":"Waikato","code":"WKO"},{"name":"Wellington","code":"WGN"},{"name":"West Coast","code":"WTC"}]},{"name":"Nicaragua","code":"NI"},{"name":"Niger","code":"NE"},{"name":"Nigeria","code":"NG","provinces":[{"name":"Abia","code":"AB"},{"name":"Federal Capital Territory","code":"FC"},{"name":"Adamawa","code":"AD"},{"name":"Akwa Ibom","code":"AK"},{"name":"Anambra","code":"AN"},{"name":"Bauchi","code":"BA"},{"name":"Bayelsa","code":"BY"},{"name":"Benue","code":"BE"},{"name":"Borno","code":"BO"},{"name":"Cross River","code":"CR"},{"name":"Delta","code":"DE"},{"name":"Ebonyi","code":"EB"},{"name":"Edo","code":"ED"},{"name":"Ekiti","code":"EK"},{"name":"Enugu","code":"EN"},{"name":"Gombe","code":"GO"},{"name":"Imo","code":"IM"},{"name":"Jigawa","code":"JI"},{"name":"Kaduna","code":"KD"},{"name":"Kano","code":"KN"},{"name":"Katsina","code":"KT"},{"name":"Kebbi","code":"KE"},{"name":"Kogi","code":"KO"},{"name":"Kwara","code":"KW"},{"name":"Lagos","code":"LA"},{"name":"Nasarawa","code":"NA"},{"name":"Niger","code":"NI"},{"name":"Ogun","code":"OG"},{"name":"Ondo","code":"ON"},{"name":"Osun","code":"OS"},{"name":"Oyo","code":"OY"},{"name":"Plateau","code":"PL"},{"name":"Rivers","code":"RI"},{"name":"Sokoto","code":"SO"},{"name":"Taraba","code":"TA"},{"name":"Yobe","code":"YO"},{"name":"Zamfara","code":"ZA"}]}
744,{"name":"Niue","code":"NU"},{"name":"Norfolk Island","code":"NF"},{"name":"North Macedonia","code":"MK"},{"name":"Norway","code":"NO"},{"name":"Oman","code":"OM"},{"name":"Pakistan","code":"PK"},{"name":"Palestinian Territories","code":"PS"},{"name":"Panama","code":"PA","provinces":[{"name":"Bocas del Toro","code":"PA-1"},{"name":"ChiriquÃ","code":"PA-4"},{"name":"Coclé","code":"PA-2"},{"name":"Colón","code":"PA-3"},{"name":"Darién","code":"PA-5"},{"name":"Emberá","code":"PA-EM"},{"name":"Herrera","code":"PA-6"},{"name":"Guna Yala","code":"PA-KY"},{"name":"Los Santos","code":"PA-7"},{"name":"Ngöbe-Buglé","code":"PA-NB"},{"name":"Panamá","code":"PA-8"},{"name":"West Panamá","code":"PA-10"},{"name":"Veraguas","code":"PA-9"}]},{"name":"Papua New Guinea","code":"PG"},{"name":"Paraguay","code":"PY"},{"name":"Peru","code":"PE","provinces":[{"name":"Amazonas","code":"PE-AMA"},{"name":"Ancash","code":"PE-ANC"},{"name":"ApurÃmac","code":"PE-APU"},{"name":"Arequipa","code":"PE-ARE"},{"name":"Ayacucho","code":"PE-AYA"},{"name":"Cajamarca","code":"PE-CAJ"},{"name":"El Callao","code":"PE-CAL"},{"name":"Cusco","code":"PE-CUS"},{"name":"Huancavelica","code":"PE-HUV"},{"name":"Huánuco","code":"PE-HUC"},{"name":"Ica","code":"PE-ICA"},{"name":"JunÃn","code":"PE-JUN"},{"name":"La Libertad","code":"PE-LAL"},{"name":"Lambayeque","code":"PE-LAM"},{"name":"Lima (Department)","code":"PE-LIM"},{"name":"Lima (Metropolitan)","code":"PE-LMA"},{"name":"Loreto","code":"PE-LOR"},{"name":"Madre de Dios","code":"PE-MDD"},{"name":"Moquegua","code":"PE-MOQ"},{"name":"Pasco","code":"PE-PAS"},{"name":"Piura","code":"PE-PIU"},{"name":"Puno","code":"PE-PUN"},{"name":"San MartÃn","code":"PE-SAM"},{"name":"Tacna","code":"PE-TAC"},{"name":"Tumbes","code":"PE-TUM"},{"name":"Ucayali","code":"PE-UCA"}]},{"name":"Philippines","code":"PH","provinces":[{"name":"Abra","code":"PH-ABR"},{"name":"Agusan del Norte","code":"PH-AGN"},{"name":"Agusan del Sur","code":"PH-AGS"},{"name":"Aklan","code":"PH-AKL"},{"name":"Albay","code":"PH-ALB"},{"name":"Antique","code":"PH-ANT"},{"name":"Apayao","code":"PH-APA"},{"name":"Aurora","code":"PH-AUR"},{"name":"Basilan","code":"PH-BAS"},{"name":"Bataan","code":"PH-BAN"},{"name":"Batanes","code":"PH-BTN"},{"name":"Batangas","code":"PH-BTG"},{"name":"Benguet","code":"PH-BEN"},{"name":"Biliran","code":"PH-BIL"},{"name":"Bohol","code":"PH-BOH"},{"name":"Bukidnon","code":"PH-BUK"},{"name":"Bulacan","code":"PH-BUL"},{"name":"Cagayan","code":"PH-CAG"},{"name":"Camarines Norte","code":"PH-CAN"},{"name":"Camarines Sur","code":"PH-CAS"},{"name":"Camiguin","code":"PH-CAM"},{"name":"Capiz","code":"PH-CAP"},{"name":"Catanduanes","code":"PH-CAT"},{"name":"Cavite","code":"PH-CAV"},{"name":"Cebu","code":"PH-CEB"},{"name":"Cotabato","code":"PH-NCO"},{"name":"Davao Occidental","code":"PH-DVO"},{"name":"Davao Oriental","code":"PH-DAO"},{"name":"Compostela Valley","code":"PH-COM"},{"name":"Davao del Norte","code":"PH-DAV"},{"name":"Davao del Sur","code":"PH-DAS"},{"name":"Dinagat Islands","code":"PH-DIN"},{"name":"Eastern Samar","code":"PH-EAS"},{"name":"Guimaras","code":"PH-GUI"},{"name":"Ifugao","code":"PH-IFU"},{"name":"Ilocos Norte","code":"PH-ILN"},{"name":"Ilocos Sur","code":"PH-ILS"},{"name":"Iloilo","code":"PH-ILI"},{"name":"Isabela","code":"PH-ISA"},{"name":"Kalinga","code":"PH-KAL"},{"name":"La Union","code":"PH-LUN"},{"name":"Laguna","code":"PH-LAG"},{"name":"Lanao del Norte","code":"PH-LAN"},{"name":"Lanao del Sur","code":"PH-LAS"},{"name":"Leyte","code":"PH-LEY"},{"name":"Maguindanao","code":"PH-MAG"},{"name":"Marinduque","code":"PH-MAD"},{"name":"Masbate","code":"PH-MAS"},{"name":"Metro Manila","code":"PH-00"},{"name":"Misamis Occidental","code":"PH-MSC"},{"name":"Misamis Oriental","code":"PH-MSR"},{"name":"Mountain","code":"PH-MOU"},{"name":"Negros Occidental","code":"PH-NEC"},{"name":"Negros Oriental","code":"PH-NER"},{"name":"Northern Samar","code":"PH-NSA"},{"name":"Nueva Ecija","code":"PH-NUE"},{"name":"Nueva Vizcaya","code":"PH-NUV"},{"name":"Occidental Mindoro","code":"PH-MDC"},{"name":"Oriental Mindoro","code":"PH-MDR"},{"name":"Palawan","code":"PH-PLW"},{"name":"Pampanga","code":"PH-PAM"},{"name":"Pangasinan","code":"PH-PAN"},{"name":"Quezon","code":"PH-QUE"},{"name":"Quirino","code":"PH-QUI"},{"name":"Rizal","code":"PH-RIZ"},{"name":"Romblon","code":"PH-ROM"},{"name":"Samar","code":"PH-WSA"},{"name":"Sarangani","code":"PH-SAR"},{"name":"Siquijor","code":"PH-SIG"},{"name":"Sorsogon","code":"PH-SOR"},{"name":"South Cotabato","code":"PH-SCO"},{"name":"Southern Leyte","code":"PH-SLE"},{"name":"Sultan Kudarat","code":"PH-SUK"},{"name":"Sulu","code":"PH-SLU"},{"name":"Surigao del Norte","code":"PH-SUN"},{"name":"Surigao del Sur","code":"PH-SUR"},{"name":"Tarlac","code":"PH-TAR"},{"name":"Tawi-Tawi","code":"PH-TAW"},{"name":"Zambales","code":"PH-ZMB"},{"name":"Zamboanga Sibugay","code":"PH-ZSI"},{"name":"Zamboanga del Norte","code":"PH-ZAN"},{"name":"Zamboanga del Sur","code":"PH-ZAS"}]},{"name":"Pitcairn Islands","code":"PN"},{"name":"Poland","code":"PL"},{"name":"Portugal","code":"PT","provinces":[{"name":"Azores","code":"PT-20"},{"name":"Aveiro","code":"PT-01"},{"name":"Beja","code":"PT-02"},{"name":"Braga","code":"PT-03"},{"name":"Bragança","code":"PT-04"},{"name":"Castelo Branco","code":"PT-05"},{"name":"Coimbra","code":"PT-06"},{"name":"Ãvora","code":"PT-07"},{"name":"Faro","code":"PT-08"},{"name":"Guarda","code":"PT-09"},{"name":"Leiria","code":"PT-10"},{"name":"Lisbon","code":"PT-11"},{"name":"Madeira","code":"PT-30"},{"name":"Portalegre","code":"PT-12"},{"name":"Porto","code":"PT-13"},{"name":"Santarém","code":"PT-14"},{"name":"Setúbal","code":"PT-15"},{"name":"Viana do Castelo","code":"PT-16"},{"name":"Vila Real","code":"PT-17"},{"name":"Viseu","code":"PT-18"}]}
744,{"name":"Qatar","code":"QA"},{"name":"Réunion","code":"RE"},{"name":"Romania","code":"RO","provinces":[{"name":"Alba","code":"AB"},{"name":"Arad","code":"AR"},{"name":"ArgeÈ","code":"AG"},{"name":"BacÄu","code":"BC"},{"name":"Bihor","code":"BH"},{"name":"BistriÅ£a-NÄsÄud","code":"BN"},{"name":"BotoÅani","code":"BT"},{"name":"BrÄila","code":"BR"},{"name":"BraÅov","code":"BV"},{"name":"Bucharest","code":"B"},{"name":"BuzÄu","code":"BZ"},{"name":"CaraÈ-Severin","code":"CS"},{"name":"Cluj","code":"CJ"},{"name":"ConstanÈa","code":"CT"},{"name":"Covasna","code":"CV"},{"name":"CÄlÄraÈi","code":"CL"},{"name":"Dolj","code":"DJ"},{"name":"DâmboviÈa","code":"DB"},{"name":"GalaÈi","code":"GL"},{"name":"Giurgiu","code":"GR"},{"name":"Gorj","code":"GJ"},{"name":"Harghita","code":"HR"},{"name":"Hunedoara","code":"HD"},{"name":"IalomiÈa","code":"IL"},{"name":"IaÈi","code":"IS"},{"name":"Ilfov","code":"IF"},{"name":"MaramureÅ","code":"MM"},{"name":"MehedinÈi","code":"MH"},{"name":"MureÅ","code":"MS"},{"name":"NeamÅ£","code":"NT"},{"name":"Olt","code":"OT"},{"name":"Prahova","code":"PH"},{"name":"SÄlaj","code":"SJ"},{"name":"Satu Mare","code":"SM"},{"name":"Sibiu","code":"SB"},{"name":"Suceava","code":"SV"},{"name":"Teleorman","code":"TR"},{"name":"TimiÈ","code":"TM"},{"name":"Tulcea","code":"TL"},{"name":"Vâlcea","code":"VL"},{"name":"Vaslui","code":"VS"},{"name":"Vrancea","code":"VN"}]},{"name":"Russia","code":"RU","provinces":[{"name":"Altai Krai","code":"ALT"},{"name":"Altai","code":"AL"},{"name":"Amur","code":"AMU"},{"name":"Arkhangelsk","code":"ARK"},{"name":"Astrakhan","code":"AST"},{"name":"Belgorod","code":"BEL"},{"name":"Bryansk","code":"BRY"},{"name":"Chechen","code":"CE"},{"name":"Chelyabinsk","code":"CHE"},{"name":"Chukotka Okrug","code":"CHU"},{"name":"Chuvash","code":"CU"},{"name":"Irkutsk","code":"IRK"},{"name":"Ivanovo","code":"IVA"},{"name":"Jewish","code":"YEV"},{"name":"Kabardino-Balkar","code":"KB"},{"name":"Kaliningrad","code":"KGD"},{"name":"Kaluga","code":"KLU"},{"name":"Kamchatka Krai","code":"KAM"},{"name":"Karachay-Cherkess","code":"KC"},{"name":"Kemerovo","code":"KEM"},{"name":"Khabarovsk Krai","code":"KHA"},{"name":"Khanty-Mansi","code":"KHM"},{"name":"Kirov","code":"KIR"},{"name":"Komi","code":"KO"},{"name":"Kostroma","code":"KOS"},{"name":"Krasnodar Krai","code":"KDA"},{"name":"Krasnoyarsk Krai","code":"KYA"},{"name":"Kurgan","code":"KGN"},{"name":"Kursk","code":"KRS"},{"name":"Leningrad","code":"LEN"},{"name":"Lipetsk","code":"LIP"},{"name":"Magadan","code":"MAG"},{"name":"Mari El","code":"ME"},{"name":"Moscow","code":"MOW"},{"name":"Moscow Province","code":"MOS"},{"name":"Murmansk","code":"MUR"},{"name":"Nizhny Novgorod","code":"NIZ"},{"name":"Novgorod","code":"NGR"},{"name":"Novosibirsk","code":"NVS"},{"name":"Omsk","code":"OMS"},{"name":"Orenburg","code":"ORE"},{"name":"Oryol","code":"ORL"},{"name":"Penza","code":"PNZ"},{"name":"Perm Krai","code":"PER"},{"name":"Primorsky Krai","code":"PRI"},{"name":"Pskov","code":"PSK"},{"name":"Adygea","code":"AD"},{"name":"Bashkortostan","code":"BA"},{"name":"Buryat","code":"BU"},{"name":"Dagestan","code":"DA"},{"name":"Ingushetia","code":"IN"},{"name":"Kalmykia","code":"KL"},{"name":"Karelia","code":"KR"},{"name":"Khakassia","code":"KK"},{"name":"Mordovia","code":"MO"},{"name":"North Ossetia-Alania","code":"SE"},{"name":"Tatarstan","code":"TA"},{"name":"Rostov","code":"ROS"},{"name":"Ryazan","code":"RYA"},{"name":"Saint Petersburg","code":"SPE"},{"name":"Sakha","code":"SA"},{"name":"Sakhalin","code":"SAK"},{"name":"Samara","code":"SAM"},{"name":"Saratov","code":"SAR"},{"name":"Smolensk","code":"SMO"},{"name":"Stavropol Krai","code":"STA"},{"name":"Sverdlovsk","code":"SVE"},{"name":"Tambov","code":"TAM"},{"name":"Tomsk","code":"TOM"},{"name":"Tula","code":"TUL"},{"name":"Tver","code":"TVE"},{"name":"Tyumen","code":"TYU"},{"name":"Tuva","code":"TY"},{"name":"Udmurt","code":"UD"},{"name":"Ulyanovsk","code":"ULY"},{"name":"Vladimir","code":"VLA"},{"name":"Volgograd","code":"VGG"},{"name":"Vologda","code":"VLG"},{"name":"Voronezh","code":"VOR"},{"name":"Yamalo-Nenets Okrug","code":"YAN"},{"name":"Yaroslavl","code":"YAR"},{"name":"Zabaykalsky Krai","code":"ZAB"}]},{"name":"Rwanda","code":"RW"},{"name":"Samoa","code":"WS"},{"name":"San Marino","code":"SM"},{"name":"São Tomé \u0026 PrÃncipe","code":"ST"},{"name":"Saudi Arabia","code":"SA"},{"name":"Senegal","code":"SN"},{"name":"Serbia","code":"RS"},{"name":"Seychelles","code":"SC"},{"name":"Sierra Leone","code":"SL"},{"name":"Singapore","code":"SG"},{"name":"Sint Maarten","code":"SX"},{"name":"Slovakia","code":"SK"},{"name":"Slovenia","code":"SI"},{"name":"Solomon Islands","code":"SB"},{"name":"Somalia","code":"SO"},{"name":"South Africa","code":"ZA","provinces":[{"name":"Eastern Cape","code":"EC"},{"name":"Free State","code":"FS"},{"name":"Gauteng","code":"GP"},{"name":"KwaZulu-Natal","code":"NL"},{"name":"Limpopo","code":"LP"},{"name":"Mpumalanga","code":"MP"},{"name":"North West","code":"NW"},{"name":"Northern Cape","code":"NC"},{"name":"Western Cape","code":"WC"}]},{"name":"South Georgia \u0026 South Sandwich Islands","code":"GS"},{"name":"South Korea","code":"KR","provinces":[{"name":"Busan","code":"KR-26"},{"name":"North Chungcheong","code":"KR-43"},{"name":"South Chungcheong","code":"KR-44"},{"name":"Daegu","code":"KR-27"},{"name":"Daejeon","code":"KR-30"},{"name":"Gangwon","code":"KR-42"}
744,{"name":"Gwangju City","code":"KR-29"},{"name":"North Gyeongsang","code":"KR-47"},{"name":"Gyeonggi","code":"KR-41"},{"name":"South Gyeongsang","code":"KR-48"},{"name":"Incheon","code":"KR-28"},{"name":"Jeju","code":"KR-49"},{"name":"North Jeolla","code":"KR-45"},{"name":"South Jeolla","code":"KR-46"},{"name":"Sejong","code":"KR-50"},{"name":"Seoul","code":"KR-11"},{"name":"Ulsan","code":"KR-31"}]},{"name":"South Sudan","code":"SS"},{"name":"Spain","code":"ES","provinces":[{"name":"A Coruña","code":"C"},{"name":"Ãlava","code":"VI"},{"name":"Albacete","code":"AB"},{"name":"Alicante","code":"A"},{"name":"AlmerÃa","code":"AL"},{"name":"Asturias Province","code":"O"},{"name":"Ãvila","code":"AV"},{"name":"Badajoz","code":"BA"},{"name":"Balears Province","code":"PM"},{"name":"Barcelona","code":"B"},{"name":"Burgos","code":"BU"},{"name":"Cáceres","code":"CC"},{"name":"Cádiz","code":"CA"},{"name":"Cantabria Province","code":"S"},{"name":"Castellón","code":"CS"},{"name":"Ceuta","code":"CE"},{"name":"Ciudad Real","code":"CR"},{"name":"Córdoba","code":"CO"},{"name":"Cuenca","code":"CU"},{"name":"Girona","code":"GI"},{"name":"Granada","code":"GR"},{"name":"Guadalajara","code":"GU"},{"name":"Gipuzkoa","code":"SS"},{"name":"Huelva","code":"H"},{"name":"Huesca","code":"HU"},{"name":"Jaén","code":"J"},{"name":"La Rioja Province","code":"LO"},{"name":"Las Palmas","code":"GC"},{"name":"León","code":"LE"},{"name":"Lleida","code":"L"},{"name":"Lugo","code":"LU"},{"name":"Madrid Province","code":"M"},{"name":"Málaga","code":"MA"},{"name":"Melilla","code":"ML"},{"name":"Murcia","code":"MU"},{"name":"Navarra","code":"NA"},{"name":"Ourense","code":"OR"},{"name":"Palencia","code":"P"},{"name":"Pontevedra","code":"PO"},{"name":"Salamanca","code":"SA"},{"name":"Santa Cruz de Tenerife","code":"TF"},{"name":"Segovia","code":"SG"},{"name":"Seville","code":"SE"},{"name":"Soria","code":"SO"},{"name":"Tarragona","code":"T"},{"name":"Teruel","code":"TE"},{"name":"Toledo","code":"TO"},{"name":"Valencia","code":"V"},{"name":"Valladolid","code":"VA"},{"name":"Biscay","code":"BI"},{"name":"Zamora","code":"ZA"},{"name":"Zaragoza","code":"Z"}]},{"name":"Sri Lanka","code":"LK"},{"name":"St. Barthélemy","code":"BL"},{"name":"St. Helena","code":"SH"},{"name":"St. Kitts \u0026 Nevis","code":"KN"},{"name":"St. Lucia","code":"LC"},{"name":"St. Martin","code":"MF"},{"name":"St. Pierre \u0026 Miquelon","code":"PM"},{"name":"St. Vincent \u0026 Grenadines","code":"VC"},{"name":"Sudan","code":"SD"},{"name":"Suriname","code":"SR"},{"name":"Svalbard \u0026 Jan Mayen","code":"SJ"},{"name":"Sweden","code":"SE"},{"name":"Switzerland","code":"CH"},{"name":"Taiwan","code":"TW"},{"name":"Tajikistan","code":"TJ"},{"name":"Tanzania","code":"TZ"},{"name":"Thailand","code":"TH","provinces":[{"name":"Amnat Charoen","code":"TH-37"},{"name":"Ang Thong","code":"TH-15"},{"name":"Bangkok","code":"TH-10"},{"name":"Bueng Kan","code":"TH-38"},{"name":"Buri Ram","code":"TH-31"},{"name":"Chachoengsao","code":"TH-24"},{"name":"Chai Nat","code":"TH-18"},{"name":"Chaiyaphum","code":"TH-36"},{"name":"Chanthaburi","code":"TH-22"},{"name":"Chiang Mai","code":"TH-50"},{"name":"Chiang Rai","code":"TH-57"},{"name":"Chon Buri","code":"TH-20"},{"name":"Chumphon","code":"TH-86"},{"name":"Kalasin","code":"TH-46"},{"name":"Kamphaeng Phet","code":"TH-62"},{"name":"Kanchanaburi","code":"TH-71"},{"name":"Khon Kaen","code":"TH-40"},{"name":"Krabi","code":"TH-81"},{"name":"Lampang","code":"TH-52"},{"name":"Lamphun","code":"TH-51"},{"name":"Loei","code":"TH-42"},{"name":"Lopburi","code":"TH-16"},{"name":"Mae Hong Son","code":"TH-58"},{"name":"Maha Sarakham","code":"TH-44"},{"name":"Mukdahan","code":"TH-49"},{"name":"Nakhon Nayok","code":"TH-26"},{"name":"Nakhon Pathom","code":"TH-73"},{"name":"Nakhon Phanom","code":"TH-48"},{"name":"Nakhon Ratchasima","code":"TH-30"},{"name":"Nakhon Sawan","code":"TH-60"},{"name":"Nakhon Si Thammarat","code":"TH-80"},{"name":"Nan","code":"TH-55"},{"name":"Narathiwat","code":"TH-96"},{"name":"Nong Bua Lam Phu","code":"TH-39"},{"name":"Nong Khai","code":"TH-43"},{"name":"Nonthaburi","code":"TH-12"},{"name":"Pathum Thani","code":"TH-13"},{"name":"Pattani","code":"TH-94"},{"name":"Pattaya","code":"TH-S"},{"name":"Phang Nga","code":"TH-82"},{"name":"Phatthalung","code":"TH-93"},{"name":"Phayao","code":"TH-56"},{"name":"Phetchabun","code":"TH-67"},{"name":"Phetchaburi","code":"TH-76"},{"name":"Phichit","code":"TH-66"},{"name":"Phitsanulok","code":"TH-65"},{"name":"Phra Nakhon Si Ayutthaya","code":"TH-14"},{"name":"Phrae","code":"TH-54"},{"name":"Phuket","code":"TH-83"},{"name":"Prachin Buri","code":"TH-25"},{"name":"Prachuap Khiri Khan","code":"TH-77"},{"name":"Ranong","code":"TH-85"},{"name":"Ratchaburi","code":"TH-70"},{"name":"Rayong","code":"TH-21"},{"name":"Roi Et","code":"TH-45"},{"name":"Sa Kaeo","code":"TH-27"},{"name":"Sakon Nakhon","code":"TH-47"},{"name":"Samut Prakan","code":"TH-11"},{"name":"Samut Sakhon","code":"TH-74"},{"name":"Samut Songkhram","code":"TH-75"},{"name":"Saraburi","code":"TH-19"},{"name":"Satun","code":"TH-91"},{"name":"Sing Buri","code":"TH-17"},{"name":"Si Sa Ket","code":"TH-33"},{"name":"Songkhla","code":"TH-90"},{"name":"Sukhothai","code":"TH-64"},{"name":"Suphanburi","code":"TH-72"},{"name":"Surat Thani","code":"TH-84"},{"name":"Surin","code":"TH-32"},{"name":"Tak","code":"TH-63"},{"name":"Trang","code":"TH-92"},{"name":"Trat","code":"TH-23"},{"name":"Ubon Ratchathani","code":"TH-34"},{"name":"Udon Thani","code":"TH-41"},{"name":"Uthai Thani","code":"TH-61"},{"name":"Uttaradit","code":"TH-53"},{"name":"Yala","code":"TH-95"},{"name":"Yasothon","code":"TH-35"}]},{"name":"Timor-Leste","code":"TL"},{"name":"Togo","code":"TG"},{"name":"Tokelau","code":"TK"},{"name":"Tonga","code":"TO"},{"name":"Trinidad \u0026 Tobago","code":"TT"},{"name":"Tristan da Cunha","code":"TA"},{"name":"Tunisia","code":"TN"},{"name":"Turkey","code":"TR"},{"name":"Turkmenistan","code":"TM"},{"name":"Turks \u0026 Caicos Islands","code":"TC"},{"name":"Tuvalu","code":"TV"},{"name":"U.S. Outlying Islands","code":"UM"},{"name":"Uganda","code":"UG"},{"name":"Ukraine","code":"UA"},{"name":"United Arab Emirates","code":"AE","provinces":[{"name":"Abu Dhabi","code":"AZ"},{"name":"Ajman","code":"AJ"},{"name":"Dubai","code":"DU"},{"name":"Fujairah","code":"FU"},{"name":"Ras al-Khaimah","code":"RK"},{"name":"Sharjah","code":"SH"},{"name":"Umm al-Quwain","code":"UQ"}]},{"name":"United Kingdom","code":"GB","provinces":[{"name":"British Forces","code":"BFP"},{"name":"England","code":"ENG"},{"name":"Northern Ireland","code":"NIR"},{"name":"Scotland","code":"SCT"},{"name":"Wales","code":"WLS"}]},{"name":"United States","code":"US","provinces":[{"name":"Alabama","code":"AL"},{"name":"Alaska","code":"AK"},{"name":"American Samoa","code":"AS"},{"name":"Arizona","code":"AZ"},{"name":"Arkansas","code":"AR"},{"name":"California","code":"CA"},{"name":"Colorado","code":"CO"},{"name":"Connecticut","code":"CT"},{"name":"Delaware","code":"DE"},{"name":"Washington DC","code":"DC"},{"name":"Micronesia","code":"FM"},{"name":"Florida","code":"FL"},{"name":"Georgia","code":"GA"},{"name":"Guam","code":"GU"},{"name":"Hawaii","code":"HI"},{"name":"Idaho","code":"ID"},{"name":"Illinois","code":"IL"},{"name":"Indiana","code":"IN"},{"name":"Iowa","code":"IA"},{"name":"Kansas","code":"KS"},{"name":"Kentucky","code":"KY"},{"name":"Louisiana","code":"LA"},{"name":"Maine","code":"ME"},{"name":"Marshall Islands","code":"MH"},{"name":"Maryland","code":"MD"},{"name":"Massachusetts","code":"MA"},{"name":"Michigan","code":"MI"},{"name":"Minnesota","code":"MN"},{"name":"Mississippi","code":"MS"},{"name":"Missouri","code":"MO"},{"name":"Montana","code":"MT"},{"name":"Nebraska","code":"NE"},{"name":"Nevada","code":"NV"},{"name":"New Hampshire","code":"NH"},{"name":"New Jersey","code":"NJ"},{"name":"New Mexico","code":"NM"},{"name":"New York","code":"NY"},{"name":"North Carolina","code":"NC"},{"name":"North Dakota","code":"ND"},{"name":"Northern Mariana Islands","code":"MP"},{"name":"Ohio","code":"OH"},{"name":"Oklahoma","code":"OK"},{"name":"Oregon","code":"OR"},{"name":"Palau","code":"PW"},{"name":"Pennsylvania","code":"PA"},{"name":"Puerto Rico","code":"PR"},{"name":"Rhode Island","code":"RI"},{"name":"South Carolina","code":"SC"},{"name":"South Dakota","code":"SD"},{"name":"Tennessee","code":"TN"},{"name":"Texas","code":"TX"},{"name":"Utah","code":"UT"},{"name":"Vermont","code":"VT"},{"name":"U.S. Virgin Islands","code":"VI"},{"name":"Virginia","code":"VA"},{"name":"Washington","code":"WA"},{"name":"West Virginia","code":"WV"},{"name":"Wisconsin","code":"WI"},{"name":"Wyoming","code":"WY"},{"name":"Armed Forces Americas","code":"AA"},{"name":"Armed Forces Europe","code":"AE"},{"name":"Armed Forces Pacific","code":"AP"}]}
744,{"name":"Uruguay","code":"UY","provinces":[{"name":"Artigas","code":"UY-AR"},{"name":"Canelones","code":"UY-CA"},{"name":"Cerro Largo","code":"UY-CL"},{"name":"Colonia","code":"UY-CO"},{"name":"Durazno","code":"UY-DU"},{"name":"Flores","code":"UY-FS"},{"name":"Florida","code":"UY-FD"},{"name":"Lavalleja","code":"UY-LA"},{"name":"Maldonado","code":"UY-MA"},{"name":"Montevideo","code":"UY-MO"},{"name":"Paysandú","code":"UY-PA"},{"name":"RÃo Negro","code":"UY-RN"},{"name":"Rivera","code":"UY-RV"},{"name":"Rocha","code":"UY-RO"},{"name":"Salto","code":"UY-SA"},{"name":"San José","code":"UY-SJ"},{"name":"Soriano","code":"UY-SO"},{"name":"Tacuarembó","code":"UY-TA"},{"name":"Treinta y Tres","code":"UY-TT"}]},{"name":"Uzbekistan","code":"UZ"},{"name":"Vanuatu","code":"VU"},{"name":"Vatican City","code":"VA"},{"name":"Venezuela","code":"VE","provinces":[{"name":"Amazonas","code":"VE-Z"},{"name":"Anzoátegui","code":"VE-B"},{"name":"Apure","code":"VE-C"},{"name":"Aragua","code":"VE-D"},{"name":"Barinas","code":"VE-E"},{"name":"BolÃvar","code":"VE-F"},{"name":"Carabobo","code":"VE-G"},{"name":"Cojedes","code":"VE-H"},{"name":"Delta Amacuro","code":"VE-Y"},{"name":"Federal Dependencies","code":"VE-W"},{"name":"Capital","code":"VE-A"},{"name":"Falcón","code":"VE-I"},{"name":"Guárico","code":"VE-J"},{"name":"Vargas","code":"VE-X"},{"name":"Lara","code":"VE-K"},{"name":"Mérida","code":"VE-L"},{"name":"Miranda","code":"VE-M"},{"name":"Monagas","code":"VE-N"},{"name":"Nueva Esparta","code":"VE-O"},{"name":"Portuguesa","code":"VE-P"},{"name":"Sucre","code":"VE-R"},{"name":"Táchira","code":"VE-S"},{"name":"Trujillo","code":"VE-T"},{"name":"Yaracuy","code":"VE-U"},{"name":"Zulia","code":"VE-V"}]},{"name":"Vietnam","code":"VN"},{"name":"Wallis \u0026 Futuna","code":"WF"},{"name":"Western Sahara","code":"EH"},{"name":"Yemen","code":"YE"},{"name":"Zambia","code":"ZM"},{"name":"Zimbabwe","code":"ZW"}], 745 "locale": "en", 746 747 "localeRootPath": "\/", 748 749 750 "adminIsLoggedIn": false 751 752 } 753; 754 window.CF.allCountryOptionTags = `<option value="---" data-provinces="[]">---</option> 755<option value="Afghanistan" data-provinces="[]">Afghanistan</option> 756<option value="Aland Islands" data-provinces="[]">à land Islands</option> 757<option value="Albania" data-provinces="[]">Albania</option> 758<option value="Algeria" data-provinces="[]">Algeria</option> 759<option value="Andorra" data-provinces="[]">Andorra</option> 760<option value="Angola" data-provinces="[]">Angola</option> 761<option value="Anguilla" data-provinces="[]">Anguilla</option> 762<option value="Antigua And Barbuda" data-provinces="[]">Antigua & Barbuda</option> 763<option value="Argentina" data-provinces="[["Buenos Aires","Buenos Aires Province"],["Catamarca","Catamarca"],["Chaco","Chaco"],["Chubut","Chubut"],["Ciudad Autónoma de Buenos Aires","Buenos Aires (Autonomous City)"],["Corrientes","Corrientes"],["Córdoba","Córdoba"],["Entre RÃos","Entre RÃos"],["Formosa","Formosa"],["Jujuy","Jujuy"],["La Pampa","La Pampa"],["La Rioja","La Rioja"],["Mendoza","Mendoza"],["Misiones","Misiones"],["Neuquén","Neuquén"],["RÃo Negro","RÃo Negro"],["Salta","Salta"],["San Juan","San Juan"],["San Luis","San Luis"],["Santa Cruz","Santa Cruz"],["Santa Fe","Santa Fe"],["Santiago Del Estero","Santiago del Estero"],["Tierra Del Fuego","Tierra del Fuego"],["Tucumán","Tucumán"]]">Argentina</option> 764<option value="Armenia" data-provinces="[]">Armenia</option> 765<option value="Aruba" data-provinces="[]">Aruba</option> 766<option value="Ascension Island" data-provinces="[]">Ascension Island</option> 767<option value="Australia" data-provinces="[["Australian Capital Territory","Australian Capital Territory"],["New South Wales","New South Wales"],["Northern Territory","Northern Territory"],["Queensland","Queensland"],["South Australia","South Australia"],["Tasmania","Tasmania"],["Victoria","Victoria"],["Western Australia","Western Australia"]]">Australia</option> 768<option value="Austria" data-provinces="[]">Austria</option> 769<option value="Azerbaijan" data-provinces="[]">Azerbaijan</option> 770<option value="Bahamas" data-provinces="[]">Bahamas</option> 771<option value="Bahrain" data-provinces="[]">Bahrain</option> 772<option value="Bangladesh" data-provinces="[]">Bangladesh</option> 773<option value="Barbados" data-provinces="[]">Barbados</option> 774<option value="Belarus" data-provinces="[]">Belarus</option> 775<option value="Belgium" data-provinces="[]">Belgium</option> 776<option value="Belize" data-provinces="[]">Belize</option> 777<option value="Benin" data-provinces="[]">Benin</option> 778<option value="Bermuda" data-provinces="[]">Bermuda</option> 779<option value="Bhutan" data-provinces="[]">Bhutan</option> 780<option value="Bolivia" data-provinces="[]">Bolivia</option> 781<option value="Bosnia And Herzegovina" data-provinces="[]">Bosnia & Herzegovina</option> 782<option value="Botswana" data-provinces="[]">Botswana</option> 783<option value="Brazil" data-provinces="[["Acre","Acre"],["Alagoas","Alagoas"],["Amapá","Amapá"],["Amazonas","Amazonas"],["Bahia","Bahia"],["Ceará","Ceará"],["Distrito Federal","Federal District"],["EspÃrito Santo","EspÃrito Santo"],["Goiás","Goiás"],["Maranhão","Maranhão"],["Mato Grosso","Mato Grosso"],["Mato Grosso do Sul","Mato Grosso do Sul"],["Minas Gerais","Minas Gerais"],["Paraná","Paraná"],["ParaÃba","ParaÃba"],["Pará","Pará"],["Pernambuco","Pernambuco"],["PiauÃ","PiauÃ"],["Rio Grande do Norte","Rio Grande do Norte"],["Rio Grande do Sul","Rio Grande do Sul"],["Rio de Janeiro","Rio de Janeiro"],["Rondônia","Rondônia"],["Roraima","Roraima"],["Santa Catarina","Santa Catarina"],["Sergipe","Sergipe"],["São Paulo","São Paulo"],["Tocantins","Tocantins"]]">Brazil</option> 784<option value="British Indian Ocean Territory" data-provinces="[]">British Indian Ocean Territory</option> 785<option value="Virgin Islands, British" data-provinces="[]">British Virgin Islands</option> 786<option value="Brunei" data-provinces="[]">Brunei</option> 787<option value="Bulgaria" data-provinces="[]">Bulgaria</option> 788<option value="Burkina Faso" data-provinces="[]">Burkina Faso</option> 789<option value="Burundi" data-provinces="[]">Burundi</option> 790<option value="Cambodia" data-provinces="[]">Cambodia</option> 791<option value="Republic of Cameroon" data-provinces="[]">Cameroon</option> 792<option value="Canada" data-provinces="[["Alberta","Alberta"],["British Columbia","British Columbia"],["Manitoba","Manitoba"],["New Brunswick","New Brunswick"],["Newfoundland and Labrador","Newfoundland and Labrador"],["Northwest Territories","Northwest Territories"],["Nova Scotia","Nova Scotia"],["Nunavut","Nunavut"],["Ontario","Ontario"],["Prince Edward Island","Prince Edward Island"],["Quebec","Quebec"],["Saskatchewan","Saskatchewan"],["Yukon","Yukon"]]">Canada</option> 793<option value="Cape Verde" data-provinces="[]">Cape Verde</option> 794<option value="Caribbean Netherlands" data-provinces="[]">Caribbean Netherlands</option> 795<option value="Cayman Islands" data-provinces="[]">Cayman Islands</option> 796<option value="Central African Republic" data-provinces="[]">Central African Republic</option> 797<option value="Chad" data-provinces="[]">Chad</option> 798<option value="Chile" data-provinces="[["Antofagasta","Antofagasta"],["AraucanÃa","AraucanÃa"],["Arica and Parinacota","
798Arica y Parinacota"],["Atacama","Atacama"],["Aysén","Aysén"],["BiobÃo","BÃo BÃo"],["Coquimbo","Coquimbo"],["Los Lagos","Los Lagos"],["Los RÃos","Los RÃos"],["Magallanes","Magallanes Region"],["Maule","Maule"],["O'Higgins","Libertador General Bernardo OâHiggins"],["Santiago","Santiago Metropolitan"],["Tarapacá","Tarapacá"],["ValparaÃso","ValparaÃso"],["Ãuble","Ãuble"]]">Chile</option> 799<option value="China" data-provinces="[["Anhui","Anhui"],["Beijing","Beijing"],["Chongqing","Chongqing"],["Fujian","Fujian"],["Gansu","Gansu"],["Guangdong","Guangdong"],["Guangxi","Guangxi"],["Guizhou","Guizhou"],["Hainan","Hainan"],["Hebei","Hebei"],["Heilongjiang","Heilongjiang"],["Henan","Henan"],["Hubei","Hubei"],["Hunan","Hunan"],["Inner Mongolia","Inner Mongolia"],["Jiangsu","Jiangsu"],["Jiangxi","Jiangxi"],["Jilin","Jilin"],["Liaoning","Liaoning"],["Ningxia","Ningxia"],["Qinghai","Qinghai"],["Shaanxi","Shaanxi"],["Shandong","Shandong"],["Shanghai","Shanghai"],["Shanxi","Shanxi"],["Sichuan","Sichuan"],["Tianjin","Tianjin"],["Xinjiang","Xinjiang"],["Xizang","Tibet"],["Yunnan","Yunnan"],["Zhejiang","Zhejiang"]]">China</option> 800<option value="Christmas Island" data-provinces="[]">Christmas Island</option> 801<option value="Cocos (Keeling) Islands" data-provinces="[]">Cocos (Keeling) Islands</option> 802<option value="Colombia" data-provinces="[["Amazonas","Amazonas"],["Antioquia","Antioquia"],["Arauca","Arauca"],["Atlántico","Atlántico"],["Bogotá, D.C.","Capital District"],["BolÃvar","BolÃvar"],["Boyacá","Boyacá"],["Caldas","Caldas"],["Caquetá","Caquetá"],["Casanare","Casanare"],["Cauca","Cauca"],["Cesar","Cesar"],["Chocó","Chocó"],["Cundinamarca","Cundinamarca"],["Córdoba","Córdoba"],["GuainÃa","GuainÃa"],["Guaviare","Guaviare"],["Huila","Huila"],["La Guajira","La Guajira"],["Magdalena","Magdalena"],["Meta","Meta"],["Nariño","Nariño"],["Norte de Santander","Norte de Santander"],["Putumayo","Putumayo"],["QuindÃo","QuindÃo"],["Risaralda","Risaralda"],["San Andrés, Providencia y Santa Catalina","San Andrés \u0026 Providencia"],["Santander","Santander"],["Sucre","Sucre"],["Tolima","Tolima"],["Valle del Cauca","Valle del Cauca"],["Vaupés","Vaupés"],["Vichada","Vichada"]]">Colombia</option> 803<option value="Comoros" data-provinces="[]">Comoros</option> 804<option value="Congo" data-provinces="[]">Congo - Brazzaville</option> 805<option value="Congo, The Democratic Republic Of The" data-provinces="[]">Congo - Kinshasa</option> 806<option value="Cook Islands" data-provinces="[]">Cook Islands</option> 807<option value="Costa Rica" data-provinces="[["Alajuela","Alajuela"],["Cartago","Cartago"],["Guanacaste","Guanacaste"],["Heredia","Heredia"],["Limón","Limón"],["Puntarenas","Puntarenas"],["San José","San José"]]">Costa Rica</option> 808<option value="Croatia" data-provinces="[]">Croatia</option> 809<option value="Curaçao" data-provinces="[]">Curaçao</option> 810<option value="Cyprus" data-provinces="[]">Cyprus</option> 811<option value="Czech Republic" data-provinces="[]">Czechia</option> 812<option value="Côte d'Ivoire" data-provinces="[]">Côte dâIvoire</option> 813<option value="Denmark" data-provinces="[]">Denmark</option> 814<option value="Djibouti" data-provinces="[]">Djibouti</option> 815<option value="Dominica" data-provinces="[]">Dominica</option> 816<option value="Dominican Republic" data-provinces="[]">Dominican Republic</option> 817<option value="Ecuador" data-provinces="[]">Ecuador</option> 818<option value="Egypt" data-provinces="[["6th of October","6th of October"],["Al Sharqia","Al Sharqia"],["Alexandria","Alexandria"],["Aswan","Aswan"],["Asyut","Asyut"],["Beheira","Beheira"],["Beni Suef","Beni Suef"],["Cairo","Cairo"],["Dakahlia","Dakahlia"],["Damietta","Damietta"],["Faiyum","Faiyum"],["Gharbia","Gharbia"],["Giza","Giza"],["Helwan","Helwan"],["Ismailia","Ismailia"],["Kafr el-Sheikh","Kafr el-Sheikh"],["Luxor","Luxor"],["Matrouh","Matrouh"],["Minya","Minya"],["Monufia","Monufia"],["New Valley","New Valley"],["North Sinai","North Sinai"],["Port Said","Port Said"],["Qalyubia","Qalyubia"],["Qena","Qena"],["Red Sea","Red Sea"],["Sohag","Sohag"],["South Sinai","South Sinai"],["Suez","Suez"]]">Egypt</option> 819<option value="El Salvador" data-provinces="[["Ahuachapán","Ahuachapán"],["Cabañas","Cabañas"],["Chalatenango","Chalatenango"],["Cuscatlán","Cuscatlán"],["La Libertad","La Libertad"],["La Paz","La Paz"],["La Unión","La Unión"],["Morazán","Morazán"],["San Miguel","San Miguel"],["San Salvador","San Salvador"],["San Vicente","San Vicente"],["Santa Ana","Santa Ana"],["Sonsonate","Sonsonate"],["Usulután","Usulután"]]">El Salvador</option> 820<option value="Equatorial Guinea" data-provinces="[]">Equatorial Guinea</option> 821<option value="Eritrea" data-provinces="[]">Eritrea</option> 822<option value="Estonia" data-provinces="[]">Estonia</option> 823<option value="Eswatini" data-provinces="[]">Eswatini</option> 824<option value="Ethiopia" data-provinces="[]">Ethiopia</option> 825<option value="Falkland Islands (Malvinas)" data-provinces="[]">Falkland Islands</option> 826<option value="Faroe Islands" data-provinces="[]">Faroe Islands</option> 827<option value="Fiji" data-provinces="[]">Fiji</option> 828<option value="Finland" data-provinces="[]">Finland</option> 829<option value="France" data-provinces="[]">France</option> 830<option value="French Guiana" data-provinces="[]">French Guiana</option> 831<option value="French Polynesia" data-provinces="[]">French Polynesia</option> 832<option value="French Southern Territories" data-provinces="[]">French Southern Territories</option> 833<option value="Gabon" data-provinces="[]">Gabon</option> 834<option value="Gambia" data-provinces="[]">Gambia</option> 835<option value="Georgia" data-provinces="[]">Georgia</option> 836<option value="Germany" data-provinces="[]">Germany</option> 837<option value="Ghana" data-provinces="[]">Ghana</option> 838<option value="Gibraltar" data-provinces="[]">Gibraltar</option> 839<option value="Greece" data-provinces="[]">Greece</option> 840<option value="Greenland" data-provinces="[]">Greenland</option> 841<option value="Grenada" data-provinces="[]">Grenada</option> 842<option value="Guadeloupe" data-provinces="[]">Guadeloupe</option> 843<option value="Guatemala" data-provinces="[["Alta Verapaz","Alta Verapaz"],["Baja Verapaz","Baja Verapaz"],["Chimaltenango","Chimaltenango"],["Chiquimula","Chiquimula"],["El Progreso","El Progreso"],["Escuintla","Escuintla"],["Guatemala","Guatemala"],["Huehuetenango","Huehuetenango"],["Izabal","Izabal"],["Jalapa","Jalapa"],["Jutiapa","Jutiapa"],["Petén","Petén"],["Quetzaltenango","Quetzaltenango"],["Quiché","Quiché"],["Retalhuleu","Retalhuleu"],["Sacatepéquez","Sacatepéquez"],["San Marcos","San Marcos"],["Santa Rosa","Santa Rosa"],["Sololá","Sololá"],["Suchitepéquez","Suchitepéquez"],["Totonicapán","Totonicapán"],["Zacapa","Zacapa"]]">Guatemala</option> 844<option value="Guernsey" data-provinces="[]">Guernsey</option> 845<option value="Guinea" data-provinces="[]">Guinea</option> 846<option value="Guinea Bissau" data-provinces="[]">Guinea-Bissau</option> 847<option value="Guyana" data-provinces="[]">Guyana</option> 848<option value="Haiti" data-provinces="[]">Haiti</option> 849<option value="Honduras" data-provinces="[]">Honduras</option> 850<option value="Hong Kong" data-provinces="[["Hong Kong Island","Hong Kong Island"],["Kowloon","Kowloon"],["New Territories","New Territories"]]">Hong Kong SAR</option> 851<option value="Hungary" data-provinces="[]">Hungary</option> 852<option value="Iceland" data-provinces="[]">Iceland</option> 853<option value="India" data-provinces="[["Andaman and Nicobar Islands","Andaman and Nicobar Islands"],["Andhra Pradesh","Andhra Pradesh"],["Arunachal Pradesh","Arunachal Pradesh"],["Assam","Assam"],["Bihar","Bihar"],["Chandigarh","Chandigarh"],["Chhattisgarh","Chhattisgarh"],["Dadra and Nagar Haveli","Dadra and Nagar Haveli"],["Daman and Diu","Daman and Diu"],["Delhi","Delhi"],["Goa","Goa"],["Gujarat","Gujarat"],["Haryana","Haryana"],["Himachal Pradesh","Himachal Pradesh"],["Jammu and Kashmir","Jammu and Kashmir"],["Jharkhand","Jharkhand"],["Karnataka","Karnataka"],["Kerala","Kerala"],["Ladakh","Ladakh"],["Lakshadweep","Lakshadweep"],["Madhya Pradesh","Madhya Pradesh"],["Maharashtra","Maharashtra"],["Manipur","Manipur"],["Meghalaya","Meghalaya"],["Mizoram","Mizoram"],["Nagaland","Nagaland"],["Odisha","Odisha"],["Puducherry","Puducherry"],["Punjab","Punjab"],["Rajasthan","Rajasthan"],["Sikkim","Sikkim"],["Tamil Nadu","Tamil Nadu"],["Telangana","Telangana"],["Tripura","Tripura"],["Uttar Pradesh","Uttar Pradesh"],["Uttarakhand","Uttarakhand"],["West Bengal","West Bengal"]]">India</option> 854<option value="Indonesia" data-provinces="[["Aceh","Aceh"],["Bali","Bali"],["Bangka Belitung","BangkaâBelitung Islands"],["Banten","Banten"],["Bengkulu","Bengkulu"],["Gorontalo","Gorontalo"],["Jakarta","Jakarta"],["Jambi","Jambi"],["Jawa Barat","West Java"],["Jawa Tengah","Central Java"],["Jawa Timur","East Java"],["Kalimantan Barat","West Kalimantan"],["Kalimantan Selatan","South Kalimantan"],["Kalimantan Tengah","Central Kalimantan"],["Kalimantan Timur","East Kalimantan"],["Kalimantan Utara","North Kalimantan"],["Kepulauan Riau","Riau Islands"],["
854Lampung","Lampung"],["Maluku","Maluku"],["Maluku Utara","North Maluku"],["North Sumatra","North Sumatra"],["Nusa Tenggara Barat","West Nusa Tenggara"],["Nusa Tenggara Timur","East Nusa Tenggara"],["Papua","Papua"],["Papua Barat","West Papua"],["Riau","Riau"],["South Sumatra","South Sumatra"],["Sulawesi Barat","West Sulawesi"],["Sulawesi Selatan","South Sulawesi"],["Sulawesi Tengah","Central Sulawesi"],["Sulawesi Tenggara","Southeast Sulawesi"],["Sulawesi Utara","North Sulawesi"],["West Sumatra","West Sumatra"],["Yogyakarta","Yogyakarta"]]">Indonesia</option> 855<option value="Iraq" data-provinces="[]">Iraq</option> 856<option value="Ireland" data-provinces="[["Carlow","Carlow"],["Cavan","Cavan"],["Clare","Clare"],["Cork","Cork"],["Donegal","Donegal"],["Dublin","Dublin"],["Galway","Galway"],["Kerry","Kerry"],["Kildare","Kildare"],["Kilkenny","Kilkenny"],["Laois","Laois"],["Leitrim","Leitrim"],["Limerick","Limerick"],["Longford","Longford"],["Louth","Louth"],["Mayo","Mayo"],["Meath","Meath"],["Monaghan","Monaghan"],["Offaly","Offaly"],["Roscommon","Roscommon"],["Sligo","Sligo"],["Tipperary","Tipperary"],["Waterford","Waterford"],["Westmeath","Westmeath"],["Wexford","Wexford"],["Wicklow","Wicklow"]]">Ireland</option> 857<option value="Isle Of Man" data-provinces="[]">Isle of Man</option> 858<option value="Israel" data-provinces="[]">Israel</option> 859<option value="Italy" data-provinces="[["Agrigento","Agrigento"],["Alessandria","Alessandria"],["Ancona","Ancona"],["Aosta","Aosta Valley"],["Arezzo","Arezzo"],["Ascoli Piceno","Ascoli Piceno"],["Asti","Asti"],["Avellino","Avellino"],["Bari","Bari"],["Barletta-Andria-Trani","Barletta-Andria-Trani"],["Belluno","Belluno"],["Benevento","Benevento"],["Bergamo","Bergamo"],["Biella","Biella"],["Bologna","Bologna"],["Bolzano","South Tyrol"],["Brescia","Brescia"],["Brindisi","Brindisi"],["Cagliari","Cagliari"],["Caltanissetta","Caltanissetta"],["Campobasso","Campobasso"],["Caserta","Caserta"],["Catania","Catania"],["Catanzaro","Catanzaro"],["Chieti","Chieti"],["Como","Como"],["Cosenza","Cosenza"],["Cremona","Cremona"],["Crotone","Crotone"],["Cuneo","Cuneo"],["Enna","Enna"],["Fermo","Fermo"],["Ferrara","Ferrara"],["Firenze","Florence"],["Foggia","Foggia"],["Forlì-Cesena","Forlì-Cesena"],["Frosinone","Frosinone"],["Gallura Nord-Est Sardegna","Gallura Nord-Est Sardegna"],["Genova","Genoa"],["Gorizia","Gorizia"],["Grosseto","Grosseto"],["Imperia","Imperia"],["Isernia","Isernia"],["L'Aquila","LâAquila"],["La Spezia","La Spezia"],["Latina","Latina"],["Lecce","Lecce"],["Lecco","Lecco"],["Livorno","Livorno"],["Lodi","Lodi"],["Lucca","Lucca"],["Macerata","Macerata"],["Mantova","Mantua"],["Massa-Carrara","Massa and Carrara"],["Matera","Matera"],["Medio Campidano","Medio Campidano"],["Messina","Messina"],["Milano","Milan"],["Modena","Modena"],["Monza e Brianza","Monza and Brianza"],["Napoli","Naples"],["Novara","Novara"],["Nuoro","Nuoro"],["Ogliastra","Ogliastra"],["Oristano","Oristano"],["Padova","Padua"],["Palermo","Palermo"],["Parma","Parma"],["Pavia","Pavia"],["Perugia","Perugia"],["Pesaro e Urbino","Pesaro and Urbino"],["Pescara","Pescara"],["Piacenza","Piacenza"],["Pisa","Pisa"],["Pistoia","Pistoia"],["Pordenone","Pordenone"],["Potenza","Potenza"],["Prato","Prato"],["Ragusa","Ragusa"],["Ravenna","Ravenna"],["Reggio Calabria","Reggio Calabria"],["Reggio Emilia","Reggio Emilia"],["Rieti","Rieti"],["Rimini","Rimini"],["Roma","Rome"],["Rovigo","Rovigo"],["Salerno","Salerno"],["Sassari","Sassari"],["Savona","Savona"],["Siena","Siena"],["Siracusa","Syracuse"],["Sondrio","Sondrio"],["Sulcis Iglesiente","Sulcis Iglesiente"],["Taranto","Taranto"],["Teramo","Teramo"],["Terni","Terni"],["Torino","Turin"],["Trapani","Trapani"],["Trento","Trentino"],["Treviso","Treviso"],["Trieste","Trieste"],["Udine","Udine"],["Varese","Varese"],["Venezia","Venice"],["Verbano-Cusio-Ossola","Verbano-Cusio-Ossola"],["Vercelli","Vercelli"],["Verona","Verona"],["Vibo Valentia","Vibo Valentia"],["Vicenza","Vicenza"],["Viterbo","Viterbo"]]">Italy</option> 860<option value="Jamaica" data-provinces="[]">Jamaica</option> 861<option value="Japan" data-provinces="[["Aichi","Aichi"],["Akita","Akita"],["Aomori","Aomori"],["Chiba","Chiba"],["Ehime","Ehime"],["Fukui","Fukui"],["Fukuoka","Fukuoka"],["Fukushima","Fukushima"],["Gifu","Gifu"],["Gunma","Gunma"],["Hiroshima","Hiroshima"],["HokkaidÅ","Hokkaido"],["HyÅgo","Hyogo"],["Ibaraki","Ibaraki"],["Ishikawa","Ishikawa"],["Iwate","Iwate"],["Kagawa","Kagawa"],["Kagoshima","Kagoshima"],["Kanagawa","Kanagawa"],["Kumamoto","Kumamoto"],["KyÅto","Kyoto"],["KÅchi","Kochi"],["Mie","Mie"],["Miyagi","Miyagi"],["Miyazaki","Miyazaki"],["Nagano","Nagano"],["Nagasaki","Nagasaki"],["Nara","Nara"],["Niigata","Niigata"],["Okayama","Okayama"],["Okinawa","Okinawa"],["Saga","Saga"],["Saitama","Saitama"],["Shiga","Shiga"],["Shimane","Shimane"],["Shizuoka","Shizuoka"],["Tochigi","Tochigi"],["Tokushima","Tokushima"],["Tottori","Tottori"],["Toyama","Toyama"],["TÅkyÅ","Tokyo"],["Wakayama","Wakayama"],["Yamagata","Yamagata"],["Yamaguchi","Yamaguchi"],["Yamanashi","Yamanashi"],["Åita","Oita"],["Åsaka","Osaka"]]">Japan</option> 862<option value="Jersey" data-provinces="[]">Jersey</option> 863<option value="Jordan" data-provinces="[]">Jordan</option> 864<option value="Kazakhstan" data-provinces="[]">Kazakhstan</option> 865<option value="Kenya" data-provinces="[]">Kenya</option> 866<option value="Kiribati" data-provinces="[]">Kiribati</option> 867<option value="Kosovo" data-provinces="[]">Kosovo</option> 868<option value="Kuwait" data-provinces="[["Al Ahmadi","Al Ahmadi"],["Al Asimah","Al Asimah"],["Al Farwaniyah","Al Farwaniyah"],["Al Jahra","Al Jahra"],["Hawalli","Hawalli"],["Mubarak Al-Kabeer","Mubarak Al-Kabeer"]]">Kuwait</option> 869<option value="Kyrgyzstan" data-provinces="[]">Kyrgyzstan</option> 870<option value="Lao People's Democratic Republic" data-provinces="[]">Laos</option> 871<option value="Latvia" data-provinces="[]">Latvia</option> 872<option value="Lebanon" data-provinces="[]">Lebanon</option> 873<option value="Lesotho" data-provinces="[]">Lesotho</option> 874<option value="Liberia" data-provinces="[]">Liberia</option> 875<option value="Libyan Arab Jamahiriya" data-provinces="[]">Libya</option> 876<option value="Liechtenstein" data-provinces="[]">Liechtenstein</option> 877<option value="Lithuania" data-provinces="[]">Lithuania</option> 878<option value="Luxembourg" data-provinces="[]">Luxembourg</option> 879<option value="Macao" data-provinces="[]">Macao SAR</option>
880<option value="Madagascar" data-provinces="[]">Madagascar</option> 881<option value="Malawi" data-provinces="[]">Malawi</option> 882<option value="Malaysia" data-provinces="[["Johor","Johor"],["Kedah","Kedah"],["Kelantan","Kelantan"],["Kuala Lumpur","Kuala Lumpur"],["Labuan","Labuan"],["Melaka","Malacca"],["Negeri Sembilan","Negeri Sembilan"],["Pahang","Pahang"],["Penang","Penang"],["Perak","Perak"],["Perlis","Perlis"],["Putrajaya","Putrajaya"],["Sabah","Sabah"],["Sarawak","Sarawak"],["Selangor","Selangor"],["Terengganu","Terengganu"]]">Malaysia</option> 883<option value="Maldives" data-provinces="[]">Maldives</option> 884<option value="Mali" data-provinces="[]">Mali</option> 885<option value="Malta" data-provinces="[]">Malta</option> 886<option value="Martinique" data-provinces="[]">Martinique</option> 887<option value="Mauritania" data-provinces="[]">Mauritania</option> 888<option value="Mauritius" data-provinces="[]">Mauritius</option> 889<option value="Mayotte" data-provinces="[]">Mayotte</option> 890<option value="Mexico" data-provinces="[["Aguascalientes","Aguascalientes"],["Baja California","Baja California"],["Baja California Sur","Baja California Sur"],["Campeche","Campeche"],["Chiapas","Chiapas"],["Chihuahua","Chihuahua"],["Ciudad de México","Ciudad de Mexico"],["Coahuila","Coahuila"],["Colima","Colima"],["Durango","Durango"],["Guanajuato","Guanajuato"],["Guerrero","Guerrero"],["Hidalgo","Hidalgo"],["Jalisco","Jalisco"],["Michoacán","Michoacán"],["Morelos","Morelos"],["México","Mexico State"],["Nayarit","Nayarit"],["Nuevo León","Nuevo León"],["Oaxaca","Oaxaca"],["Puebla","Puebla"],["Querétaro","Querétaro"],["Quintana Roo","Quintana Roo"],["San Luis PotosÃ","San Luis PotosÃ"],["Sinaloa","Sinaloa"],["Sonora","Sonora"],["Tabasco","Tabasco"],["Tamaulipas","Tamaulipas"],["Tlaxcala","Tlaxcala"],["Veracruz","Veracruz"],["Yucatán","Yucatán"],["Zacatecas","Zacatecas"]]">Mexico</option> 891<option value="Moldova, Republic of" data-provinces="[]">Moldova</option> 892<option value="Monaco" data-provinces="[]">Monaco</option> 893<option value="Mongolia" data-provinces="[]">Mongolia</option> 894<option value="Montenegro" data-provinces="[]">Montenegro</option> 895<option value="Montserrat" data-provinces="[]">Montserrat</option> 896<option value="Morocco" data-provinces="[]">Morocco</option> 897<option value="Mozambique" data-provinces="[]">Mozambique</option> 898<option value="Myanmar" data-provinces="[]">Myanmar (Burma)</option> 899<option value="Namibia" data-provinces="[]">Namibia</option> 900<option value="Nauru" data-provinces="[]">Nauru</option> 901<option value="Nepal" data-provinces="[]">Nepal</option> 902<option value="Netherlands" data-provinces="[]">Netherlands</option> 903<option value="New Caledonia" data-provinces="[]">New Caledonia</option> 904<option value="New Zealand" data-provinces="[["Auckland","Auckland"],["Bay of Plenty","Bay of Plenty"],["Canterbury","Canterbury"],["Chatham Islands","Chatham Islands"],["Gisborne","Gisborne"],["Hawke's Bay","Hawkeâs Bay"],["Manawatu-Wanganui","ManawatÅ«-Whanganui"],["Marlborough","Marlborough"],["Nelson","Nelson"],["Northland","Northland"],["Otago","Otago"],["Southland","Southland"],["Taranaki","Taranaki"],["Tasman","Tasman"],["Waikato","Waikato"],["Wellington","Wellington"],["West Coast","West Coast"]]">New Zealand</option> 905<option value="Nicaragua" data-provinces="[]">Nicaragua</option> 906<option value="Niger" data-provinces="[]">Niger</option> 907<option value="Nigeria" data-provinces="[["Abia","Abia"],["Abuja Federal Capital Territory","Federal Capital Territory"],["Adamawa","Adamawa"],["Akwa Ibom","Akwa Ibom"],["Anambra","Anambra"],["Bauchi","Bauchi"],["Bayelsa","Bayelsa"],["Benue","Benue"],["Borno","Borno"],["Cross River","Cross River"],["Delta","Delta"],["Ebonyi","Ebonyi"],["Edo","Edo"],["Ekiti","Ekiti"],["Enugu","Enugu"],["Gombe","Gombe"],["Imo","Imo"],["Jigawa","Jigawa"],["Kaduna","Kaduna"],["Kano","Kano"],["Katsina","Katsina"],["Kebbi","Kebbi"],["Kogi","Kogi"],["Kwara","Kwara"],["Lagos","Lagos"],["Nasarawa","Nasarawa"],["Niger","Niger"],["Ogun","Ogun"],["Ondo","Ondo"],["Osun","Osun"],["Oyo","Oyo"],["Plateau","Plateau"],["Rivers","Rivers"],["Sokoto","Sokoto"],["Taraba","Taraba"],["Yobe","Yobe"],["Zamfara","Zamfara"]]">Nigeria</option> 908<option value="Niue" data-provinces="[]">Niue</option> 909<option value="Norfolk Island" data-provinces="[]">Norfolk Island</option> 910<option value="North Macedonia" data-provinces="[]">North Macedonia</option> 911<option value="Norway" data-provinces="[]">Norway</option> 912<option value="Oman" data-provinces="[]">Oman</option> 913<option value="Pakistan" data-provinces="[]">Pakistan</option> 914<option value="Palestinian Territory, Occupied" data-provinces="[]">Palestinian Territories</option> 915<option value="Panama" data-provinces="[["Bocas del Toro","Bocas del Toro"],["ChiriquÃ","ChiriquÃ"],["Coclé","Coclé"],["Colón","Colón"],["Darién","Darién"],["Emberá","Emberá"],["Herrera","Herrera"],["Kuna Yala","Guna Yala"],["Los Santos","Los Santos"],["Ngöbe-Buglé","Ngöbe-Buglé"],["Panamá","Panamá"],["Panamá Oeste","West Panamá"],["Veraguas","Veraguas"]]">Panama</option> 916<option value="Papua New Guinea" data-provinces="[]">Papua New Guinea</option> 917<option value="Paraguay" data-provinces="[]">Paraguay</option> 918<option value="Peru" data-provinces="[["Amazonas","Amazonas"],["ApurÃmac","ApurÃmac"],["Arequipa","Arequipa"],["Ayacucho","Ayacucho"],["Cajamarca","Cajamarca"],["Callao","El Callao"],["Cuzco","Cusco"],["Huancavelica","Huancavelica"],["Huánuco","Huánuco"],["Ica","Ica"],["JunÃn","JunÃn"],["La Libertad","La Libertad"],["Lambayeque","Lambayeque"],["Lima (departamento)","Lima (Department)"],["Lima (provincia)","Lima (Metropolitan)"],["Loreto","Loreto"],["Madre de Dios","Madre de Dios"],["Moquegua","Moquegua"],["Pasco","Pasco"],["Piura","Piura"],["Puno","Puno"],["San MartÃn","San MartÃn"],["Tacna","Tacna"],["Tumbes","Tumbes"],["Ucayali","Ucayali"],["Ãncash","Ancash"]]">
918Peru</option> 919<option value="Philippines" data-provinces="[["Abra","Abra"],["Agusan del Norte","Agusan del Norte"],["Agusan del Sur","Agusan del Sur"],["Aklan","Aklan"],["Albay","Albay"],["Antique","Antique"],["Apayao","Apayao"],["Aurora","Aurora"],["Basilan","Basilan"],["Bataan","Bataan"],["Batanes","Batanes"],["Batangas","Batangas"],["Benguet","Benguet"],["Biliran","Biliran"],["Bohol","Bohol"],["Bukidnon","Bukidnon"],["Bulacan","Bulacan"],["Cagayan","Cagayan"],["Camarines Norte","Camarines Norte"],["Camarines Sur","Camarines Sur"],["Camiguin","Camiguin"],["Capiz","Capiz"],["Catanduanes","Catanduanes"],["Cavite","Cavite"],["Cebu","Cebu"],["Cotabato","Cotabato"],["Davao Occidental","Davao Occidental"],["Davao Oriental","Davao Oriental"],["Davao de Oro","Compostela Valley"],["Davao del Norte","Davao del Norte"],["Davao del Sur","Davao del Sur"],["Dinagat Islands","Dinagat Islands"],["Eastern Samar","Eastern Samar"],["Guimaras","Guimaras"],["Ifugao","Ifugao"],["Ilocos Norte","Ilocos Norte"],["Ilocos Sur","Ilocos Sur"],["Iloilo","Iloilo"],["Isabela","Isabela"],["Kalinga","Kalinga"],["La Union","La Union"],["Laguna","Laguna"],["Lanao del Norte","Lanao del Norte"],["Lanao del Sur","Lanao del Sur"],["Leyte","Leyte"],["Maguindanao","Maguindanao"],["Marinduque","Marinduque"],["Masbate","Masbate"],["Metro Manila","Metro Manila"],["Misamis Occidental","Misamis Occidental"],["Misamis Oriental","Misamis Oriental"],["Mountain Province","Mountain"],["Negros Occidental","Negros Occidental"],["Negros Oriental","Negros Oriental"],["Northern Samar","Northern Samar"],["Nueva Ecija","Nueva Ecija"],["Nueva Vizcaya","Nueva Vizcaya"],["Occidental Mindoro","Occidental Mindoro"],["Oriental Mindoro","Oriental Mindoro"],["Palawan","Palawan"],["Pampanga","Pampanga"],["Pangasinan","Pangasinan"],["Quezon","Quezon"],["Quirino","Quirino"],["Rizal","Rizal"],["Romblon","Romblon"],["Samar","Samar"],["Sarangani","Sarangani"],["Siquijor","Siquijor"],["Sorsogon","Sorsogon"],["South Cotabato","South Cotabato"],["Southern Leyte","Southern Leyte"],["Sultan Kudarat","Sultan Kudarat"],["Sulu","Sulu"],["Surigao del Norte","Surigao del Norte"],["Surigao del Sur","Surigao del Sur"],["Tarlac","Tarlac"],["Tawi-Tawi","Tawi-Tawi"],["Zambales","Zambales"],["Zamboanga Sibugay","Zamboanga Sibugay"],["Zamboanga del Norte","Zamboanga del Norte"],["Zamboanga del Sur","Zamboanga del Sur"]]">Philippines</option> 920<option value="Pitcairn" data-provinces="[]">Pitcairn Islands</option> 921<option value="Poland" data-provinces="[]">Poland</option> 922<option value="Portugal" data-provinces="[["Aveiro","Aveiro"],["Açores","Azores"],["Beja","Beja"],["Braga","Braga"],["Bragança","Bragança"],["Castelo Branco","Castelo Branco"],["Coimbra","Coimbra"],["Faro","Faro"],["Guarda","Guarda"],["Leiria","Leiria"],["Lisboa","Lisbon"],["Madeira","Madeira"],["Portalegre","Portalegre"],["Porto","Porto"],["Santarém","Santarém"],["Setúbal","Setúbal"],["Viana do Castelo","Viana do Castelo"],["Vila Real","Vila Real"],["Viseu","Viseu"],["Ãvora","Ãvora"]]">Portugal</option> 923<option value="Qatar" data-provinces="[]">Qatar</option> 924<option value="Reunion" data-provinces="[]">Réunion</option> 925<option value="Romania" data-provinces="[["Alba","Alba"],["Arad","Arad"],["ArgeÈ","ArgeÈ"],["BacÄu","BacÄu"],["Bihor","Bihor"],["BistriÈa-NÄsÄud","BistriÅ£a-NÄsÄud"],["BotoÈani","BotoÅani"],["BraÈov","BraÅov"],["BrÄila","BrÄila"],["BucureÈti","Bucharest"],["BuzÄu","BuzÄu"],["CaraÈ-Severin","CaraÈ-Severin"],["Cluj","Cluj"],["ConstanÈa","ConstanÈa"],["Covasna","Covasna"],["CÄlÄraÈi","CÄlÄraÈi"],["Dolj","Dolj"],["DâmboviÈa","DâmboviÈa"],["GalaÈi","GalaÈi"],["Giurgiu","Giurgiu"],["Gorj","Gorj"],["Harghita","Harghita"],["Hunedoara","Hunedoara"],["IalomiÈa","IalomiÈa"],["IaÈi","IaÈi"],["Ilfov","Ilfov"],["MaramureÈ","MaramureÅ"],["MehedinÈi","MehedinÈi"],["MureÈ","MureÅ"],["NeamÈ","NeamÅ£"],["Olt","Olt"],["Prahova","Prahova"],["Satu Mare","Satu Mare"],["Sibiu","Sibiu"],["Suceava","Suceava"],["SÄlaj","SÄlaj"],["Teleorman","Teleorman"],["TimiÈ","TimiÈ"],["Tulcea","Tulcea"],["Vaslui","Vaslui"],["Vrancea","Vrancea"],["Vâlcea","Vâlcea"]]">Romania</option> 926<option value="Russia" data-provinces="[["Altai Krai","Altai Krai"],["Altai Republic","Altai"],["Amur Oblast","Amur"],["Arkhangelsk Oblast","Arkhangelsk"],["Astrakhan Oblast","Astrakhan"],["Belgorod Oblast","Belgorod"],["Bryansk Oblast","Bryansk"],["Chechen Republic","Chechen"],["Chelyabinsk Oblast","Chelyabinsk"],["Chukotka Autonomous Okrug","Chukotka Okrug"],["Chuvash Republic","Chuvash"],["Irkutsk Oblast","Irkutsk"],["Ivanovo Oblast","Ivanovo"],["Jewish Autonomous Oblast","Jewish"],["Kabardino-Balkarian Republic","Kabardino-Balkar"],["Kaliningrad Oblast","Kaliningrad"],["Kaluga Oblast","Kaluga"],["Kamchatka Krai","Kamchatka Krai"],["KarachayâCherkess Republic","Karachay-Cherkess"],["Kemerovo Oblast","Kemerovo"],["Khabarovsk Krai","Khabarovsk Krai"],["Khanty-Mansi Autonomous Okrug","Khanty-Mansi"],["Kirov Oblast","Kirov"],["Komi Republic","Komi"],["Kostroma Oblast","Kostroma"],["Krasnodar Krai","Krasnodar Krai"],["Krasnoyarsk Krai","Krasnoyarsk Krai"],["Kurgan Oblast","Kurgan"],["Kursk Oblast","Kursk"],["Leningrad Oblast","Leningrad"],["Lipetsk Oblast","Lipetsk"],["Magadan Oblast","Magadan"],["Mari El Republic","Mari El"],["Moscow","Moscow"],["Moscow Oblast","Moscow Province"],["Murmansk Oblast","Murmansk"],["Nizhny Novgorod Oblast","Nizhny Novgorod"],["Novgorod Oblast","Novgorod"],["Novosibirsk Oblast","Novosibirsk"],["Omsk Oblast","Omsk"],["Orenburg Oblast","Orenburg"],["Oryol Oblast","Oryol"],["Penza Oblast","Penza"],["Perm Krai","Perm Krai"],["Primorsky Krai","Primorsky Krai"],["Pskov Oblast","Pskov"],["Republic of Adygeya","Adygea"],["Republic of Bashkortostan","Bashkortostan"],["Republic of Buryatia","Buryat"],["Republic of Dagestan","Dagestan"],["Republic of Ingushetia","Ingushetia"],["Republic of Kalmykia","Kalmykia"],["Republic of Karelia","Karelia"],["Republic of Khakassia","Khakassia"],["Republic of Mordovia","Mordovia"],["Republic of North OssetiaâAlania","North Ossetia-Alania"],["Republic of Tatarstan","Tatarstan"],["Rostov Oblast","Rostov"],["Ryazan Oblast","Ryazan"],["Saint Petersburg","Saint Petersburg"],["Sakha Republic (Yakutia)","Sakha"],["Sakhalin Oblast","Sakhalin"],["Samara Oblast","Samara"],["Saratov Oblast","Saratov"],["Smolensk Oblast","Smolensk"],["Stavropol Krai","Stavropol Krai"],["Sverdlovsk Oblast","Sverdlovsk"],["Tambov Oblast","Tambov"],["Tomsk Oblast","Tomsk"],["Tula Oblast","Tula"],["Tver Oblast","Tver"],["Tyumen Oblast","Tyumen"],["Tyva Republic","Tuva"],["Udmurtia","Udmurt"],["Ulyanovsk Oblast","Ulyanovsk"],["Vladimir Oblast","Vladimir"],["Volgograd Oblast","Volgograd"],["Vologda Oblast","Vologda"],["Voronezh Oblast","Voronezh"],["Yamalo-Nenets Autonomous Okrug","Yamalo-Nenets Okrug"],["Yaroslavl Oblast","Yaroslavl"],["Zabaykalsky Krai","Zabaykalsky Krai"]]">Russia</option> 927<option value="Rwanda" data-provinces="[]">Rwanda</option> 928<option value="Samoa" data-provinces="[]">Samoa</option> 929<option value="San Marino" data-provinces="[]">San Marino</option> 930<option value="Sao Tome And Principe" data-provinces="[]">São Tomé & PrÃncipe</option> 931<option value="Saudi Arabia" data-provinces="[]">Saudi Arabia</option> 932<option value="Senegal" data-provinces="[]">Senegal</option> 933<option value="Serbia" data-provinces="[]">Serbia</option> 934<option value="Seychelles" data-provinces="[]">Seychelles</option> 935<option value="Sierra Leone" data-provinces="[]">Sierra Leone</option> 936<option value="Singapore" data-provinces="[]">Singapore</option> 937<option value="Sint Maarten" data-provinces="[]">Sint Maarten</option> 938<option value="Slovakia" data-provinces="[]">Slovakia</option> 939<option value="Slovenia" data-provinces="[]">Slovenia</option> 940<option value="Solomon Islands" data-provinces="[]">Solomon Islands</option> 941<option value="Somalia" data-provinces="[]">Somalia</option> 942<option value="South Africa" data-provinces="[["Eastern Cape","Eastern Cape"],["Free State","Free State"],["Gauteng","Gauteng"],["KwaZulu-Natal","KwaZulu-Natal"],["Limpopo","Limpopo"],["Mpumalanga","Mpumalanga"],["North West","North West"],["Northern Cape","Northern Cape"],["Western Cape","Western Cape"]]">South Africa</option> 943<option value="South Georgia And The South Sandwich Islands" data-provinces="[]">South Georgia & South Sandwich Islands</option> 944<option value="South Korea" data-provinces="[["Busan","Busan"],["Chungbuk","North Chungcheong"],["Chungnam","South Chungcheong"],["Daegu","Daegu"],["Daejeon","Daejeon"],["Gangwon","Gangwon"],["Gwangju","Gwangju City"],["Gyeongbuk","North Gyeongsang"],["Gyeonggi","Gyeonggi"],["Gyeongnam","South Gyeongsang"],["Incheon","Incheon"],["Jeju","Jeju"],["Jeonbuk","North Jeolla"],["Jeonnam","South Jeolla"],["Sejong","Sejong"],["Seoul","Seoul"],["Ulsan","Ulsan"]]">South Korea</option> 945<option value="South Sudan" data-provinces="[]">South Sudan</option> 946<option value="Spain" data-provinces="[["A Coruña","A Coruña"],["Albacete","Albacete"],["Alicante","Alicante"],["AlmerÃa","AlmerÃa"],["Asturias","Asturias Province"],["Badajoz","Badajoz"],["Balears","Balears Province"],["Barcelona","Barcelona"],["Burgos","Burgos"],["Cantabria","Cantabria Province"],["Castellón","Castellón"],["Ceuta","Ceuta"],["Ciudad Real","Ciudad Real"],["Cuenca","Cuenca"],["Cáceres","Cáceres"],["Cádiz","Cádiz"],["Córdoba","Córdoba"],["Girona","Girona"],["Granada","Granada"],["Guadalajara","Guadalajara"],["
946Guipúzcoa","Gipuzkoa"],["Huelva","Huelva"],["Huesca","Huesca"],["Jaén","Jaén"],["La Rioja","La Rioja Province"],["Las Palmas","Las Palmas"],["León","León"],["Lleida","Lleida"],["Lugo","Lugo"],["Madrid","Madrid Province"],["Melilla","Melilla"],["Murcia","Murcia"],["Málaga","Málaga"],["Navarra","Navarra"],["Ourense","Ourense"],["Palencia","Palencia"],["Pontevedra","Pontevedra"],["Salamanca","Salamanca"],["Santa Cruz de Tenerife","Santa Cruz de Tenerife"],["Segovia","Segovia"],["Sevilla","Seville"],["Soria","Soria"],["Tarragona","Tarragona"],["Teruel","Teruel"],["Toledo","Toledo"],["Valencia","Valencia"],["Valladolid","Valladolid"],["Vizcaya","Biscay"],["Zamora","Zamora"],["Zaragoza","Zaragoza"],["Ãlava","Ãlava"],["Ãvila","Ãvila"]]">Spain</option> 947<option value="Sri Lanka" data-provinces="[]">Sri Lanka</option> 948<option value="Saint Barthélemy" data-provinces="[]">St. Barthélemy</option> 949<option value="Saint Helena" data-provinces="[]">St. Helena</option> 950<option value="Saint Kitts And Nevis" data-provinces="[]">St. Kitts & Nevis</option> 951<option value="Saint Lucia" data-provinces="[]">St. Lucia</option> 952<option value="Saint Martin" data-provinces="[]">St. Martin</option> 953<option value="Saint Pierre And Miquelon" data-provinces="[]">St. Pierre & Miquelon</option> 954<option value="St. Vincent" data-provinces="[]">St. Vincent & Grenadines</option> 955<option value="Sudan" data-provinces="[]">Sudan</option> 956<option value="Suriname" data-provinces="[]">Suriname</option> 957<option value="Svalbard And Jan Mayen" data-provinces="[]">Svalbard & Jan Mayen</option> 958<option value="Sweden" data-provinces="[]">Sweden</option> 959<option value="Switzerland" data-provinces="[]">Switzerland</option> 960<option value="Taiwan" data-provinces="[]">Taiwan</option> 961<option value="Tajikistan" data-provinces="[]">Tajikistan</option> 962<option value="Tanzania, United Republic Of" data-provinces="[]">Tanzania</option> 963<option value="Thailand" data-provinces="[["Amnat Charoen","Amnat Charoen"],["Ang Thong","Ang Thong"],["Bangkok","Bangkok"],["Bueng Kan","Bueng Kan"],["Buriram","Buri Ram"],["Chachoengsao","Chachoengsao"],["Chai Nat","Chai Nat"],["Chaiyaphum","Chaiyaphum"],["Chanthaburi","Chanthaburi"],["Chiang Mai","Chiang Mai"],["Chiang Rai","Chiang Rai"],["Chon Buri","Chon Buri"],["Chumphon","Chumphon"],["Kalasin","Kalasin"],["Kamphaeng Phet","Kamphaeng Phet"],["Kanchanaburi","Kanchanaburi"],["Khon Kaen","Khon Kaen"],["Krabi","Krabi"],["Lampang","Lampang"],["Lamphun","Lamphun"],["Loei","Loei"],["Lopburi","Lopburi"],["Mae Hong Son","Mae Hong Son"],["Maha Sarakham","Maha Sarakham"],["Mukdahan","Mukdahan"],["Nakhon Nayok","Nakhon Nayok"],["Nakhon Pathom","Nakhon Pathom"],["Nakhon Phanom","Nakhon Phanom"],["Nakhon Ratchasima","Nakhon Ratchasima"],["Nakhon Sawan","Nakhon Sawan"],["Nakhon Si Thammarat","Nakhon Si Thammarat"],["Nan","Nan"],["Narathiwat","Narathiwat"],["Nong Bua Lam Phu","Nong Bua Lam Phu"],["Nong Khai","Nong Khai"],["Nonthaburi","Nonthaburi"],["Pathum Thani","Pathum Thani"],["Pattani","Pattani"],["Pattaya","Pattaya"],["Phangnga","Phang Nga"],["Phatthalung","Phatthalung"],["Phayao","Phayao"],["Phetchabun","Phetchabun"],["Phetchaburi","Phetchaburi"],["Phichit","Phichit"],["Phitsanulok","Phitsanulok"],["
963Phra Nakhon Si Ayutthaya","Phra Nakhon Si Ayutthaya"],["Phrae","Phrae"],["Phuket","Phuket"],["Prachin Buri","Prachin Buri"],["Prachuap Khiri Khan","Prachuap Khiri Khan"],["Ranong","Ranong"],["Ratchaburi","Ratchaburi"],["Rayong","Rayong"],["Roi Et","Roi Et"],["Sa Kaeo","Sa Kaeo"],["Sakon Nakhon","Sakon Nakhon"],["Samut Prakan","Samut Prakan"],["Samut Sakhon","Samut Sakhon"],["Samut Songkhram","Samut Songkhram"],["Saraburi","Saraburi"],["Satun","Satun"],["Sing Buri","Sing Buri"],["Sisaket","Si Sa Ket"],["Songkhla","Songkhla"],["Sukhothai","Sukhothai"],["Suphan Buri","Suphanburi"],["Surat Thani","Surat Thani"],["Surin","Surin"],["Tak","Tak"],["Trang","Trang"],["Trat","Trat"],["Ubon Ratchathani","Ubon Ratchathani"],["Udon Thani","Udon Thani"],["Uthai Thani","Uthai Thani"],["Uttaradit","Uttaradit"],["Yala","Yala"],["Yasothon","Yasothon"]]">Thailand</option> 964<option value="Timor Leste" data-provinces="[]">Timor-Leste</option> 965<option value="Togo" data-provinces="[]">Togo</option> 966<option value="Tokelau" data-provinces="[]">Tokelau</option> 967<option value="Tonga" data-provinces="[]">Tonga</option> 968<option value="Trinidad and Tobago" data-provinces="[]">Trinidad & Tobago</option> 969<option value="Tristan da Cunha" data-provinces="[]">Tristan da Cunha</option> 970<option value="Tunisia" data-provinces="[]">Tunisia</option> 971<option value="Turkey" data-provinces="[]">Türkiye</option> 972<option value="Turkmenistan" data-provinces="[]">Turkmenistan</option> 973<option value="Turks and Caicos Islands" data-provinces="[]">Turks & Caicos Islands</option> 974<option value="Tuvalu" data-provinces="[]">Tuvalu</option> 975<option value="United States Minor Outlying Islands" data-provinces="[]">U.S. Outlying Islands</option> 976<option value="Uganda" data-provinces="[]">Uganda</option> 977<option value="Ukraine" data-provinces="[]">Ukraine</option> 978<option value="United Arab Emirates" data-provinces="[["Abu Dhabi","Abu Dhabi"],["Ajman","Ajman"],["Dubai","Dubai"],["Fujairah","Fujairah"],["Ras al-Khaimah","Ras al-Khaimah"],["Sharjah","Sharjah"],["Umm al-Quwain","Umm al-Quwain"]]">United Arab Emirates</option> 979<option value="United Kingdom" data-provinces="[["British Forces","British Forces"],["England","England"],["Northern Ireland","Northern Ireland"],["Scotland","Scotland"],["Wales","Wales"]]">United Kingdom</option> 980<option value="United States" data-provinces="[["Alabama","Alabama"],["Alaska","Alaska"],["American Samoa","American Samoa"],["Arizona","Arizona"],["Arkansas","Arkansas"],["Armed Forces Americas","Armed Forces Americas"],["Armed Forces Europe","Armed Forces Europe"],["Armed Forces Pacific","Armed Forces Pacific"],["California","California"],["Colorado","Colorado"],["Connecticut","Connecticut"],["Delaware","Delaware"],["District of Columbia","Washington DC"],["Federated States of Micronesia","Micronesia"],["Florida","Florida"],["Georgia","Georgia"],["Guam","Guam"],["Hawaii","Hawaii"],["Idaho","Idaho"],["Illinois","Illinois"],["Indiana","Indiana"],["Iowa","Iowa"],["Kansas","Kansas"],["Kentucky","Kentucky"],["Louisiana","Louisiana"],["Maine","Maine"],["Marshall Islands","Marshall Islands"],["Maryland","Maryland"],["Massachusetts","Massachusetts"],["Michigan","Michigan"],["Minnesota","Minnesota"],["Mississippi","Mississippi"],["Missouri","Missouri"],["Montana","Montana"],["Nebraska","Nebraska"],["Nevada","Nevada"],["New Hampshire","New Hampshire"],["New Jersey","New Jersey"],["New Mexico","New Mexico"],["New York","New York"],["North Carolina","North Carolina"],["North Dakota","North Dakota"],["Northern Mariana Islands","Northern Mariana Islands"],["Ohio","Ohio"],["Oklahoma","Oklahoma"],["Oregon","Oregon"],["Palau","Palau"],["Pennsylvania","Pennsylvania"],["Puerto Rico","Puerto Rico"],["Rhode Island","Rhode Island"],["South Carolina","South Carolina"],["South Dakota","South Dakota"],["Tennessee","Tennessee"],["Texas","Texas"],["Utah","Utah"],["Vermont","Vermont"],["Virgin Islands","U.S. Virgin Islands"],["Virginia","Virginia"],["Washington","Washington"],["West Virginia","West Virginia"],["Wisconsin","Wisconsin"],["Wyoming","Wyoming"]]">United States</option> 981<option value="Uruguay" data-provinces="[["Artigas","Artigas"],["Canelones","Canelones"],["Cerro Largo","Cerro Largo"],["Colonia","Colonia"],["Durazno","Durazno"],["Flores","Flores"],["Florida","Florida"],["Lavalleja","Lavalleja"],["Maldonado","Maldonado"],["Montevideo","Montevideo"],["Paysandú","Paysandú"],["Rivera","Rivera"],["Rocha","Rocha"],["RÃo Negro","RÃo Negro"],["Salto","Salto"],["San José","San José"],["Soriano","Soriano"],["Tacuarembó","Tacuarembó"],["Treinta y Tres","Treinta y Tres"]]">Uruguay</option> 982<option value="Uzbekistan" data-provinces="[]">Uzbekistan</option> 983<option value="Vanuatu" data-provinces="[]">Vanuatu</option> 984<option value="Holy See (Vatican City State)" data-provinces="[]">Vatican City</option> 985<option value="Venezuela" data-provinces="[["Amazonas","Amazonas"],["Anzoátegui","Anzoátegui"],["Apure","Apure"],["Aragua","Aragua"],["Barinas","Barinas"],["BolÃvar","BolÃvar"],["Carabobo","Carabobo"],["Cojedes","Cojedes"],["Delta Amacuro","Delta Amacuro"],["Dependencias Federales","Federal Dependencies"],["Distrito Capital","Capital"],["Falcón","Falcón"],["Guárico","Guárico"],["La Guaira","Vargas"],["Lara","Lara"],["Miranda","Miranda"],["Monagas","Monagas"],["Mérida","Mérida"],["Nueva Esparta","Nueva Esparta"],["Portuguesa","Portuguesa"],["Sucre","Sucre"],["Trujillo","Trujillo"],["Táchira","Táchira"],["Yaracuy","Yaracuy"],["Zulia","Zulia"]]">Venezuela</option> 986<option value="Vietnam" data-provinces="[]">Vietnam</option> 987<option value="Wallis And Futuna" data-provinces="[]">Wallis & Futuna</option> 988<option value="Western Sahara" data-provinces="[]">Western Sahara</option> 989<option value="Yemen" data-provinces="[]">Yemen</option> 990<option value="Zambia" data-provinces="[]">Zambia</option> 991<option value="Zimbabwe" data-provinces="[]">Zimbabwe</option>`; 992 window.CF.shippingZoneCountryOptionTags = `<option value="---" data-provinces="[]">---</option> 993<option value="Afghanistan" data-provinces="[]">Afghanistan</option> 994<option value="Aland Islands" data-provinces="[]">à land Islands</option> 995<option value="Albania" data-provinces="[]">Albania</option> 996<option value="Algeria" data-provinces="[]">Algeria</option> 997<option value="Armenia" data-provinces="[]">Armenia</option> 998<option value="Aruba" data-provinces="[]">Aruba</option> 999<option value="Australia" data-provinces="[["Australian Capital Territory","Australian Capital Territory"],["New South Wales","New South Wales"],["Northern Territory","Northern Territory"],["Queensland","Queensland"],["South Australia","South Australia"],["Tasmania","Tasmania"],["Victoria","Victoria"],["Western Australia","Western Australia"]]">Australia</option> 1000<option value="Austria" data-provinces="[]">Austria</option> 1001<option value="Bahrain" data-provinces="[]">Bahrain</option> 1002<option value="Bangladesh" data-provinces="[]">Bangladesh</option> 1003<option value="Barbados" data-provinces="[]">Barbados</option> 1004<option value="Belarus" data-provinces="[]">Belarus</option> 1005<option value="Belgium" data-provinces="[]">Belgium</option> 1006<option value="Bermuda" data-provinces="[]">Bermuda</option> 1007<option value="Bosnia And Herzegovina" data-provinces="[]">Bosnia & Herzegovina</option> 1008<option value="Brazil" data-provinces="[["Acre","Acre"],["Alagoas","Alagoas"],["Amapá","Amapá"],["Amazonas","Amazonas"],["Bahia","Bahia"],["Ceará","Ceará"],["Distrito Federal","Federal District"],["EspÃrito Santo","EspÃrito Santo"],["Goiás","Goiás"],["Maranhão","Maranhão"],["Mato Grosso","Mato Grosso"],["Mato Grosso do Sul","Mato Grosso do Sul"],["Minas Gerais","Minas Gerais"],["Paraná","Paraná"],["ParaÃba","ParaÃba"],["Pará","Pará"],["Pernambuco","Pernambuco"],["PiauÃ","PiauÃ"],["Rio Grande do Norte","Rio Grande do Norte"],["Rio Grande do Sul","Rio Grande do Sul"],["Rio de Janeiro","Rio de Janeiro"],["Rondônia","Rondônia"],["Roraima","Roraima"],["Santa Catarina","Santa Catarina"],["Sergipe","Sergipe"],["São Paulo","São Paulo"],["Tocantins","Tocantins"]]">Brazil</option> 1009<option value="Virgin Islands, British" data-provinces="[]">British Virgin Islands</option> 1010<option value="Brunei" data-provinces="[]">Brunei</option> 1011<option value="Bulgaria" data-provinces="[]">Bulgaria</option> 1012<option value="Cambodia" data-provinces="[]">Cambodia</option> 1013<option value="Canada" data-provinces="[["Alberta","Alberta"],["British Columbia","British Columbia"],["Manitoba","Manitoba"],["New Brunswick","New Brunswick"],["Newfoundland and Labrador","Newfoundland and Labrador"],["Northwest Territories","Northwest Territories"],["Nova Scotia","Nova Scotia"],["Nunavut","Nunavut"],["Ontario","Ontario"],["Prince Edward Island","Prince Edward Island"],["Quebec","Quebec"],["Saskatchewan","Saskatchewan"],["Yukon","Yukon"]]">Canada</option> 1014<option value="Caribbean Netherlands" data-provinces="[]">Caribbean Netherlands</option> 1015<option value="Cayman Islands" data-provinces="[]">Cayman Islands</option> 1016<option value="Chile" data-provinces="[["Antofagasta","Antofagasta"],["AraucanÃa","AraucanÃa"],["Arica and Parinacota","
1016Arica y Parinacota"],["Atacama","Atacama"],["Aysén","Aysén"],["BiobÃo","BÃo BÃo"],["Coquimbo","Coquimbo"],["Los Lagos","Los Lagos"],["Los RÃos","Los RÃos"],["Magallanes","Magallanes Region"],["Maule","Maule"],["O'Higgins","Libertador General Bernardo OâHiggins"],["Santiago","Santiago Metropolitan"],["Tarapacá","Tarapacá"],["ValparaÃso","ValparaÃso"],["Ãuble","Ãuble"]]">Chile</option> 1017<option value="China" data-provinces="[["Anhui","Anhui"],["Beijing","Beijing"],["Chongqing","Chongqing"],["Fujian","Fujian"],["Gansu","Gansu"],["Guangdong","Guangdong"],["Guangxi","Guangxi"],["Guizhou","Guizhou"],["Hainan","Hainan"],["Hebei","Hebei"],["Heilongjiang","Heilongjiang"],["Henan","Henan"],["Hubei","Hubei"],["Hunan","Hunan"],["Inner Mongolia","Inner Mongolia"],["Jiangsu","Jiangsu"],["Jiangxi","Jiangxi"],["Jilin","Jilin"],["Liaoning","Liaoning"],["Ningxia","Ningxia"],["Qinghai","Qinghai"],["Shaanxi","Shaanxi"],["Shandong","Shandong"],["Shanghai","Shanghai"],["Shanxi","Shanxi"],["Sichuan","Sichuan"],["Tianjin","Tianjin"],["Xinjiang","Xinjiang"],["Xizang","Tibet"],["Yunnan","Yunnan"],["Zhejiang","Zhejiang"]]">China</option> 1018<option value="Colombia" data-provinces="[["Amazonas","Amazonas"],["Antioquia","Antioquia"],["Arauca","Arauca"],["Atlántico","Atlántico"],["Bogotá, D.C.","Capital District"],["BolÃvar","BolÃvar"],["Boyacá","Boyacá"],["Caldas","Caldas"],["Caquetá","Caquetá"],["Casanare","Casanare"],["Cauca","Cauca"],["Cesar","Cesar"],["Chocó","Chocó"],["Cundinamarca","Cundinamarca"],["Córdoba","Córdoba"],["GuainÃa","GuainÃa"],["Guaviare","Guaviare"],["Huila","Huila"],["La Guajira","La Guajira"],["Magdalena","Magdalena"],["Meta","Meta"],["Nariño","Nariño"],["Norte de Santander","Norte de Santander"],["Putumayo","Putumayo"],["QuindÃo","QuindÃo"],["Risaralda","Risaralda"],["San Andrés, Providencia y Santa Catalina","San Andrés \u0026 Providencia"],["Santander","Santander"],["Sucre","Sucre"],["Tolima","Tolima"],["Valle del Cauca","Valle del Cauca"],["Vaupés","Vaupés"],["Vichada","Vichada"]]">Colombia</option> 1019<option value="Costa Rica" data-provinces="[["Alajuela","Alajuela"],["Cartago","Cartago"],["Guanacaste","Guanacaste"],["Heredia","Heredia"],["Limón","Limón"],["Puntarenas","Puntarenas"],["San José","San José"]]">Costa Rica</option> 1020<option value="Croatia" data-provinces="[]">Croatia</option> 1021<option value="Cyprus" data-provinces="[]">Cyprus</option> 1022<option value="Czech Republic" data-provinces="[]">Czechia</option> 1023<option value="Côte d'Ivoire" data-provinces="[]">Côte dâIvoire</option> 1024<option value="Denmark" data-provinces="[]">Denmark</option> 1025<option value="Ecuador" data-provinces="[]">Ecuador</option> 1026<option value="Egypt" data-provinces="[["6th of October","6th of October"],["Al Sharqia","Al Sharqia"],["Alexandria","Alexandria"],["Aswan","Aswan"],["Asyut","Asyut"],["Beheira","Beheira"],["Beni Suef","Beni Suef"],["Cairo","Cairo"],["Dakahlia","Dakahlia"],["Damietta","Damietta"],["Faiyum","Faiyum"],["Gharbia","Gharbia"],["Giza","Giza"],["Helwan","Helwan"],["Ismailia","Ismailia"],["Kafr el-Sheikh","Kafr el-Sheikh"],["Luxor","Luxor"],["Matrouh","Matrouh"],["Minya","Minya"],["Monufia","Monufia"],["New Valley","New Valley"],["North Sinai","North Sinai"],["Port Said","Port Said"],["Qalyubia","Qalyubia"],["Qena","Qena"],["Red Sea","Red Sea"],["Sohag","Sohag"],["South Sinai","South Sinai"],["Suez","Suez"]]">Egypt</option> 1027<option value="El Salvador" data-provinces="[["Ahuachapán","Ahuachapán"],["Cabañas","Cabañas"],["Chalatenango","Chalatenango"],["Cuscatlán","Cuscatlán"],["La Libertad","La Libertad"],["La Paz","La Paz"],["La Unión","La Unión"],["Morazán","Morazán"],["San Miguel","San Miguel"],["San Salvador","San Salvador"],["San Vicente","San Vicente"],["Santa Ana","Santa Ana"],["Sonsonate","Sonsonate"],["Usulután","Usulután"]]">El Salvador</option> 1028<option value="Estonia" data-provinces="[]">Estonia</option> 1029<option value="Finland" data-provinces="[]">Finland</option> 1030<option value="France" data-provinces="[]">France</option> 1031<option value="French Polynesia" data-provinces="[]">French Polynesia</option> 1032<option value="Georgia" data-provinces="[]">Georgia</option> 1033<option value="Germany" data-provinces="[]">Germany</option> 1034<option value="Gibraltar" data-provinces="[]">Gibraltar</option> 1035<option value="Greece" data-provinces="[]">Greece</option> 1036<option value="Guatemala" data-provinces="[["Alta Verapaz","Alta Verapaz"],["Baja Verapaz","Baja Verapaz"],["Chimaltenango","Chimaltenango"],["Chiquimula","Chiquimula"],["El Progreso","El Progreso"],["Escuintla","Escuintla"],["Guatemala","Guatemala"],["Huehuetenango","Huehuetenango"],["Izabal","Izabal"],["Jalapa","Jalapa"],["Jutiapa","Jutiapa"],["Petén","Petén"],["Quetzaltenango","Quetzaltenango"],["Quiché","Quiché"],["Retalhuleu","Retalhuleu"],["Sacatepéquez","Sacatepéquez"],["San Marcos","San Marcos"],["Santa Rosa","Santa Rosa"],["Sololá","Sololá"],["Suchitepéquez","Suchitepéquez"],["Totonicapán","Totonicapán"],["Zacapa","Zacapa"]]">Guatemala</option> 1037<option value="Guernsey" data-provinces="[]">Guernsey</option> 1038<option value="Guyana" data-provinces="[]">Guyana</option> 1039<option value="Hong Kong" data-provinces="[["Hong Kong Island","Hong Kong Island"],["Kowloon","Kowloon"],["New Territories","New Territories"]]">Hong Kong SAR</option> 1040<option value="Hungary" data-provinces="[]">Hungary</option> 1041<option value="Iceland" data-provinces="[]">Iceland</option> 1042<option value="India" data-provinces="[["Andaman and Nicobar Islands","Andaman and Nicobar Islands"],["Andhra Pradesh","Andhra Pradesh"],["Arunachal Pradesh","Arunachal Pradesh"],["Assam","Assam"],["Bihar","Bihar"],["Chandigarh","Chandigarh"],["Chhattisgarh","Chhattisgarh"],["Dadra and Nagar Haveli","Dadra and Nagar Haveli"],["Daman and Diu","Daman and Diu"],["Delhi","Delhi"],["Goa","Goa"],["Gujarat","Gujarat"],["Haryana","Haryana"],["Himachal Pradesh","Himachal Pradesh"],["Jammu and Kashmir","Jammu and Kashmir"],["Jharkhand","Jharkhand"],["Karnataka","Karnataka"],["Kerala","Kerala"],["Ladakh","Ladakh"],["Lakshadweep","Lakshadweep"],["Madhya Pradesh","Madhya Pradesh"],["Maharashtra","Maharashtra"],["Manipur","Manipur"],["Meghalaya","Meghalaya"],["Mizoram","Mizoram"],["Nagaland","Nagaland"],["Odisha","Odisha"],["Puducherry","Puducherry"],["Punjab","Punjab"],["Rajasthan","Rajasthan"],["Sikkim","Sikkim"],["Tamil Nadu","Tamil Nadu"],["Telangana","Telangana"],["Tripura","Tripura"],["Uttar Pradesh","Uttar Pradesh"],["Uttarakhand","Uttarakhand"],["West Bengal","West Bengal"]]">India</option> 1043<option value="Indonesia" data-provinces="[["Aceh","Aceh"],["Bali","Bali"],["Bangka Belitung","BangkaâBelitung Islands"],["Banten","Banten"],["Bengkulu","Bengkulu"],["Gorontalo","Gorontalo"],["Jakarta","Jakarta"],["Jambi","Jambi"],["Jawa Barat","West Java"],["Jawa Tengah","Central Java"],["Jawa Timur","East Java"],["Kalimantan Barat","West Kalimantan"],["Kalimantan Selatan","South Kalimantan"],["Kalimantan Tengah","Central Kalimantan"],["Kalimantan Timur","East Kalimantan"],["Kalimantan Utara","North Kalimantan"],["Kepulauan Riau","Riau Islands"],["
1043Lampung","Lampung"],["Maluku","Maluku"],["Maluku Utara","North Maluku"],["North Sumatra","North Sumatra"],["Nusa Tenggara Barat","West Nusa Tenggara"],["Nusa Tenggara Timur","East Nusa Tenggara"],["Papua","Papua"],["Papua Barat","West Papua"],["Riau","Riau"],["South Sumatra","South Sumatra"],["Sulawesi Barat","West Sulawesi"],["Sulawesi Selatan","South Sulawesi"],["Sulawesi Tengah","Central Sulawesi"],["Sulawesi Tenggara","Southeast Sulawesi"],["Sulawesi Utara","North Sulawesi"],["West Sumatra","West Sumatra"],["Yogyakarta","Yogyakarta"]]">Indonesia</option> 1044<option value="Ireland" data-provinces="[["Carlow","Carlow"],["Cavan","Cavan"],["Clare","Clare"],["Cork","Cork"],["Donegal","Donegal"],["Dublin","Dublin"],["Galway","Galway"],["Kerry","Kerry"],["Kildare","Kildare"],["Kilkenny","Kilkenny"],["Laois","Laois"],["Leitrim","Leitrim"],["Limerick","Limerick"],["Longford","Longford"],["Louth","Louth"],["Mayo","Mayo"],["Meath","Meath"],["Monaghan","Monaghan"],["Offaly","Offaly"],["Roscommon","Roscommon"],["Sligo","Sligo"],["Tipperary","Tipperary"],["Waterford","Waterford"],["Westmeath","Westmeath"],["Wexford","Wexford"],["Wicklow","Wicklow"]]">Ireland</option> 1045<option value="Isle Of Man" data-provinces="[]">Isle of Man</option> 1046<option value="Israel" data-provinces="[]">Israel</option> 1047<option value="Italy" data-provinces="[["Agrigento","Agrigento"],["Alessandria","Alessandria"],["Ancona","Ancona"],["Aosta","Aosta Valley"],["Arezzo","Arezzo"],["Ascoli Piceno","Ascoli Piceno"],["Asti","Asti"],["Avellino","Avellino"],["Bari","Bari"],["Barletta-Andria-Trani","Barletta-Andria-Trani"],["Belluno","Belluno"],["Benevento","Benevento"],["Bergamo","Bergamo"],["Biella","Biella"],["Bologna","Bologna"],["Bolzano","South Tyrol"],["Brescia","Brescia"],["Brindisi","Brindisi"],["Cagliari","Cagliari"],["Caltanissetta","Caltanissetta"],["Campobasso","Campobasso"],["Caserta","Caserta"],["Catania","Catania"],["Catanzaro","Catanzaro"],["Chieti","Chieti"],["Como","Como"],["Cosenza","Cosenza"],["Cremona","Cremona"],["Crotone","Crotone"],["Cuneo","Cuneo"],["Enna","Enna"],["Fermo","Fermo"],["Ferrara","Ferrara"],["Firenze","Florence"],["Foggia","Foggia"],["Forlì-Cesena","Forlì-Cesena"],["Frosinone","Frosinone"],["Gallura Nord-Est Sardegna","Gallura Nord-Est Sardegna"],["Genova","Genoa"],["Gorizia","Gorizia"],["Grosseto","Grosseto"],["Imperia","Imperia"],["Isernia","Isernia"],["L'Aquila","LâAquila"],["La Spezia","La Spezia"],["Latina","Latina"],["Lecce","Lecce"],["Lecco","Lecco"],["Livorno","Livorno"],["Lodi","Lodi"],["Lucca","Lucca"],["Macerata","Macerata"],["Mantova","Mantua"],["Massa-Carrara","Massa and Carrara"],["Matera","Matera"],["Medio Campidano","Medio Campidano"],["Messina","Messina"],["Milano","Milan"],["Modena","Modena"],["Monza e Brianza","Monza and Brianza"],["Napoli","Naples"],["Novara","Novara"],["Nuoro","Nuoro"],["Ogliastra","Ogliastra"],["Oristano","Oristano"],["Padova","Padua"],["Palermo","Palermo"],["Parma","Parma"],["Pavia","Pavia"],["Perugia","Perugia"],["Pesaro e Urbino","Pesaro and Urbino"],["Pescara","Pescara"],["Piacenza","Piacenza"],["Pisa","Pisa"],["Pistoia","Pistoia"],["Pordenone","Pordenone"],["Potenza","Potenza"],["Prato","Prato"],["Ragusa","Ragusa"],["Ravenna","Ravenna"],["Reggio Calabria","Reggio Calabria"],["Reggio Emilia","Reggio Emilia"],["Rieti","Rieti"],["Rimini","Rimini"],["Roma","Rome"],["Rovigo","Rovigo"],["Salerno","Salerno"],["Sassari","Sassari"],["Savona","Savona"],["Siena","Siena"],["Siracusa","Syracuse"],["Sondrio","Sondrio"],["Sulcis Iglesiente","Sulcis Iglesiente"],["Taranto","Taranto"],["Teramo","Teramo"],["Terni","Terni"],["Torino","Turin"],["Trapani","Trapani"],["Trento","Trentino"],["Treviso","Treviso"],["Trieste","Trieste"],["Udine","Udine"],["Varese","Varese"],["Venezia","Venice"],["Verbano-Cusio-Ossola","Verbano-Cusio-Ossola"],["Vercelli","Vercelli"],["Verona","Verona"],["Vibo Valentia","Vibo Valentia"],["Vicenza","Vicenza"],["Viterbo","Viterbo"]]">Italy</option> 1048<option value="Jamaica" data-provinces="[]">Jamaica</option> 1049<option value="Japan" data-provinces="[["Aichi","Aichi"],["Akita","Akita"],["Aomori","Aomori"],["Chiba","Chiba"],["Ehime","Ehime"],["Fukui","Fukui"],["Fukuoka","Fukuoka"],["Fukushima","Fukushima"],["Gifu","Gifu"],["Gunma","Gunma"],["Hiroshima","Hiroshima"],["HokkaidÅ","Hokkaido"],["HyÅgo","Hyogo"],["Ibaraki","Ibaraki"],["Ishikawa","Ishikawa"],["Iwate","Iwate"],["Kagawa","Kagawa"],["Kagoshima","Kagoshima"],["Kanagawa","Kanagawa"],["Kumamoto","Kumamoto"],["KyÅto","Kyoto"],["KÅchi","Kochi"],["Mie","Mie"],["Miyagi","Miyagi"],["Miyazaki","Miyazaki"],["Nagano","Nagano"],["Nagasaki","Nagasaki"],["Nara","Nara"],["Niigata","Niigata"],["Okayama","Okayama"],["Okinawa","Okinawa"],["Saga","Saga"],["Saitama","Saitama"],["Shiga","Shiga"],["Shimane","Shimane"],["Shizuoka","Shizuoka"],["Tochigi","Tochigi"],["Tokushima","Tokushima"],["Tottori","Tottori"],["Toyama","Toyama"],["TÅkyÅ","Tokyo"],["Wakayama","Wakayama"],["Yamagata","Yamagata"],["Yamaguchi","Yamaguchi"],["Yamanashi","Yamanashi"],["Åita","Oita"],["Åsaka","Osaka"]]">Japan</option> 1050<option value="Jersey" data-provinces="[]">Jersey</option> 1051<option value="Kazakhstan" data-provinces="[]">Kazakhstan</option> 1052<option value="Kuwait" data-provinces="[["Al Ahmadi","Al Ahmadi"],["Al Asimah","Al Asimah"],["Al Farwaniyah","Al Farwaniyah"],["Al Jahra","Al Jahra"],["Hawalli","Hawalli"],["Mubarak Al-Kabeer","Mubarak Al-Kabeer"]]">Kuwait</option> 1053<option value="Latvia" data-provinces="[]">Latvia</option> 1054<option value="Liechtenstein" data-provinces="[]">Liechtenstein</option> 1055<option value="Lithuania" data-provinces="[]">Lithuania</option> 1056<option value="Luxembourg" data-provinces="[]">Luxembourg</option> 1057<option value="Malaysia" data-provinces="[["Johor","Johor"],["Kedah","Kedah"],["Kelantan","Kelantan"],["Kuala Lumpur","Kuala Lumpur"],["Labuan","Labuan"],["Melaka","Malacca"],["Negeri Sembilan","Negeri Sembilan"],["Pahang","Pahang"],["Penang","Penang"],["Perak","Perak"],["Perlis","Perlis"],["Putrajaya","Putrajaya"],["Sabah","Sabah"],["Sarawak","Sarawak"],["Selangor","Selangor"],["Terengganu","Terengganu"]]">Malaysia</option> 1058<option value="Malta" data-provinces="[]">Malta</option> 1059<option value="Martinique" data-provinces="[]">Martinique</option> 1060<option value="Mexico" data-provinces="[["Aguascalientes","Aguascalientes"],["Baja California","Baja California"],["Baja California Sur","Baja California Sur"],["Campeche","Campeche"],["Chiapas","Chiapas"],["Chihuahua","Chihuahua"],["Ciudad de México","Ciudad de Mexico"],["Coahuila","Coahuila"],["Colima","Colima"],["Durango","Durango"],["Guanajuato","Guanajuato"],["Guerrero","Guerrero"],["Hidalgo","Hidalgo"],["Jalisco","Jalisco"],["Michoacán","Michoacán"],["Morelos","Morelos"],["México","Mexico State"],["Nayarit","Nayarit"],["Nuevo León","Nuevo León"],["Oaxaca","Oaxaca"],["Puebla","Puebla"],["Querétaro","Querétaro"],["Quintana Roo","Quintana Roo"],["San Luis PotosÃ","San Luis PotosÃ"],["Sinaloa","Sinaloa"],["Sonora","Sonora"],["Tabasco","Tabasco"],["Tamaulipas","Tamaulipas"],["Tlaxcala","Tlaxcala"],["Veracruz","Veracruz"],["Yucatán","Yucatán"],["Zacatecas","Zacatecas"]]">Mexico</option> 1061<option value="Moldova, Republic of" data-provinces="[]">Moldova</option> 1062<option value="Monaco" data-provinces="[]">Monaco</option> 1063<option value="Morocco" data-provinces="[]">Morocco</option> 1064<option value="Myanmar" data-provinces="[]">Myanmar (Burma)</option> 1065<option value="Netherlands" data-provinces="[]">Netherlands</option> 1066<option value="New Zealand" data-provinces="[["Auckland","Auckland"],["Bay of Plenty","Bay of Plenty"],["Canterbury","Canterbury"],["Chatham Islands","Chatham Islands"],["Gisborne","Gisborne"],["Hawke's Bay","Hawkeâs Bay"],["Manawatu-Wanganui","ManawatÅ«-Whanganui"],["Marlborough","Marlborough"],["Nelson","Nelson"],["Northland","Northland"],["Otago","Otago"],["Southland","Southland"],["Taranaki","Taranaki"],["Tasman","Tasman"],["Waikato","Waikato"],["Wellington","Wellington"],["West Coast","West Coast"]]">New Zealand</option> 1067<option value="North Macedonia" data-provinces="[]">North Macedonia</option> 1068<option value="Norway" data-provinces="[]">Norway</option> 1069<option value="Oman" data-provinces="[]">Oman</option> 1070<option value="Pakistan" data-provinces="[]">Pakistan</option> 1071<option value="Panama" data-provinces="[["Bocas del Toro","Bocas del Toro"],["ChiriquÃ","ChiriquÃ"],["Coclé","Coclé"],["Colón","Colón"],["Darién","Darién"],["Emberá","Emberá"],["Herrera","Herrera"],["Kuna Yala","Guna Yala"],["Los Santos","Los Santos"],["Ngöbe-Buglé","Ngöbe-Buglé"],["Panamá","Panamá"],["Panamá Oeste","West Panamá"],["Veraguas","Veraguas"]]">Panama</option> 1072<option value="Peru" data-provinces="[["Amazonas","Amazonas"],["ApurÃmac","ApurÃmac"],["Arequipa","Arequipa"],["Ayacucho","Ayacucho"],["Cajamarca","Cajamarca"],["Callao","El Callao"],["Cuzco","Cusco"],["Huancavelica","Huancavelica"],["Huánuco","Huánuco"],["Ica","Ica"],["JunÃn","JunÃn"],["La Libertad","La Libertad"],["Lambayeque","Lambayeque"],["Lima (departamento)","Lima (Department)"],["Lima (provincia)","Lima (Metropolitan)"],["Loreto","Loreto"],["Madre de Dios","Madre de Dios"],["Moquegua","Moquegua"],["Pasco","Pasco"],["Piura","Piura"],["Puno","Puno"],["San MartÃn","San MartÃn"],["Tacna","Tacna"],["Tumbes","Tumbes"],["Ucayali","Ucayali"],["Ãncash","Ancash"]]">
1072Peru</option> 1073<option value="Philippines" data-provinces="[["Abra","Abra"],["Agusan del Norte","Agusan del Norte"],["Agusan del Sur","Agusan del Sur"],["Aklan","Aklan"],["Albay","Albay"],["Antique","Antique"],["Apayao","Apayao"],["Aurora","Aurora"],["Basilan","Basilan"],["Bataan","Bataan"],["Batanes","Batanes"],["Batangas","Batangas"],["Benguet","Benguet"],["Biliran","Biliran"],["Bohol","Bohol"],["Bukidnon","Bukidnon"],["Bulacan","Bulacan"],["Cagayan","Cagayan"],["Camarines Norte","Camarines Norte"],["Camarines Sur","Camarines Sur"],["Camiguin","Camiguin"],["Capiz","Capiz"],["Catanduanes","Catanduanes"],["Cavite","Cavite"],["Cebu","Cebu"],["Cotabato","Cotabato"],["Davao Occidental","Davao Occidental"],["Davao Oriental","Davao Oriental"],["Davao de Oro","Compostela Valley"],["Davao del Norte","Davao del Norte"],["Davao del Sur","Davao del Sur"],["Dinagat Islands","Dinagat Islands"],["Eastern Samar","Eastern Samar"],["Guimaras","Guimaras"],["Ifugao","Ifugao"],["Ilocos Norte","Ilocos Norte"],["Ilocos Sur","Ilocos Sur"],["Iloilo","Iloilo"],["Isabela","Isabela"],["Kalinga","Kalinga"],["La Union","La Union"],["Laguna","Laguna"],["Lanao del Norte","Lanao del Norte"],["Lanao del Sur","Lanao del Sur"],["Leyte","Leyte"],["Maguindanao","Maguindanao"],["Marinduque","Marinduque"],["Masbate","Masbate"],["Metro Manila","Metro Manila"],["Misamis Occidental","Misamis Occidental"],["Misamis Oriental","Misamis Oriental"],["Mountain Province","Mountain"],["Negros Occidental","Negros Occidental"],["Negros Oriental","Negros Oriental"],["Northern Samar","Northern Samar"],["Nueva Ecija","Nueva Ecija"],["Nueva Vizcaya","Nueva Vizcaya"],["Occidental Mindoro","Occidental Mindoro"],["Oriental Mindoro","Oriental Mindoro"],["Palawan","Palawan"],["Pampanga","Pampanga"],["Pangasinan","Pangasinan"],["Quezon","Quezon"],["Quirino","Quirino"],["Rizal","Rizal"],["Romblon","Romblon"],["Samar","Samar"],["Sarangani","Sarangani"],["Siquijor","Siquijor"],["Sorsogon","Sorsogon"],["South Cotabato","South Cotabato"],["Southern Leyte","Southern Leyte"],["Sultan Kudarat","Sultan Kudarat"],["Sulu","Sulu"],["Surigao del Norte","Surigao del Norte"],["Surigao del Sur","Surigao del Sur"],["Tarlac","Tarlac"],["Tawi-Tawi","Tawi-Tawi"],["Zambales","Zambales"],["Zamboanga Sibugay","Zamboanga Sibugay"],["Zamboanga del Norte","Zamboanga del Norte"],["Zamboanga del Sur","Zamboanga del Sur"]]">Philippines</option> 1074<option value="Poland" data-provinces="[]">Poland</option> 1075<option value="Portugal" data-provinces="[["Aveiro","Aveiro"],["Açores","Azores"],["Beja","Beja"],["Braga","Braga"],["Bragança","Bragança"],["Castelo Branco","Castelo Branco"],["Coimbra","Coimbra"],["Faro","Faro"],["Guarda","Guarda"],["Leiria","Leiria"],["Lisboa","Lisbon"],["Madeira","Madeira"],["Portalegre","Portalegre"],["Porto","Porto"],["Santarém","Santarém"],["Setúbal","Setúbal"],["Viana do Castelo","Viana do Castelo"],["Vila Real","Vila Real"],["Viseu","Viseu"],["Ãvora","Ãvora"]]">Portugal</option> 1076<option value="Qatar" data-provinces="[]">Qatar</option> 1077<option value="Reunion" data-provinces="[]">Réunion</option> 1078<option value="Romania" data-provinces="[["Alba","Alba"],["Arad","Arad"],["ArgeÈ","ArgeÈ"],["BacÄu","BacÄu"],["Bihor","Bihor"],["BistriÈa-NÄsÄud","BistriÅ£a-NÄsÄud"],["BotoÈani","BotoÅani"],["BraÈov","BraÅov"],["BrÄila","BrÄila"],["BucureÈti","Bucharest"],["BuzÄu","BuzÄu"],["CaraÈ-Severin","CaraÈ-Severin"],["Cluj","Cluj"],["ConstanÈa","ConstanÈa"],["Covasna","Covasna"],["CÄlÄraÈi","CÄlÄraÈi"],["Dolj","Dolj"],["DâmboviÈa","DâmboviÈa"],["GalaÈi","GalaÈi"],["Giurgiu","Giurgiu"],["Gorj","Gorj"],["Harghita","Harghita"],["Hunedoara","Hunedoara"],["IalomiÈa","IalomiÈa"],["IaÈi","IaÈi"],["Ilfov","Ilfov"],["MaramureÈ","MaramureÅ"],["MehedinÈi","MehedinÈi"],["MureÈ","MureÅ"],["NeamÈ","NeamÅ£"],["Olt","Olt"],["Prahova","Prahova"],["Satu Mare","Satu Mare"],["Sibiu","Sibiu"],["Suceava","Suceava"],["SÄlaj","SÄlaj"],["Teleorman","Teleorman"],["TimiÈ","TimiÈ"],["Tulcea","Tulcea"],["Vaslui","Vaslui"],["Vrancea","Vrancea"],["Vâlcea","Vâlcea"]]">Romania</option> 1079<option value="Russia" data-provinces="[["Altai Krai","Altai Krai"],["Altai Republic","Altai"],["Amur Oblast","Amur"],["Arkhangelsk Oblast","Arkhangelsk"],["Astrakhan Oblast","Astrakhan"],["Belgorod Oblast","Belgorod"],["Bryansk Oblast","Bryansk"],["Chechen Republic","Chechen"],["Chelyabinsk Oblast","Chelyabinsk"],["Chukotka Autonomous Okrug","Chukotka Okrug"],["Chuvash Republic","Chuvash"],["Irkutsk Oblast","Irkutsk"],["Ivanovo Oblast","Ivanovo"],["Jewish Autonomous Oblast","Jewish"],["Kabardino-Balkarian Republic","Kabardino-Balkar"],["Kaliningrad Oblast","Kaliningrad"],["Kaluga Oblast","Kaluga"],["Kamchatka Krai","Kamchatka Krai"],["KarachayâCherkess Republic","Karachay-Cherkess"],["Kemerovo Oblast","Kemerovo"],["Khabarovsk Krai","Khabarovsk Krai"],["Khanty-Mansi Autonomous Okrug","Khanty-Mansi"],["Kirov Oblast","Kirov"],["Komi Republic","Komi"],["Kostroma Oblast","Kostroma"],["Krasnodar Krai","Krasnodar Krai"],["Krasnoyarsk Krai","Krasnoyarsk Krai"],["Kurgan Oblast","Kurgan"],["Kursk Oblast","Kursk"],["Leningrad Oblast","Leningrad"],["Lipetsk Oblast","Lipetsk"],["Magadan Oblast","Magadan"],["Mari El Republic","Mari El"],["Moscow","Moscow"],["Moscow Oblast","Moscow Province"],["Murmansk Oblast","Murmansk"],["Nizhny Novgorod Oblast","Nizhny Novgorod"],["Novgorod Oblast","Novgorod"],["Novosibirsk Oblast","Novosibirsk"],["Omsk Oblast","Omsk"],["Orenburg Oblast","Orenburg"],["Oryol Oblast","Oryol"],["Penza Oblast","Penza"],["Perm Krai","Perm Krai"],["Primorsky Krai","Primorsky Krai"],["Pskov Oblast","Pskov"],["Republic of Adygeya","Adygea"],["Republic of Bashkortostan","Bashkortostan"],["Republic of Buryatia","Buryat"],["Republic of Dagestan","Dagestan"],["Republic of Ingushetia","Ingushetia"],["Republic of Kalmykia","Kalmykia"],["Republic of Karelia","Karelia"],["Republic of Khakassia","Khakassia"],["Republic of Mordovia","Mordovia"],["Republic of North OssetiaâAlania","North Ossetia-Alania"],["Republic of Tatarstan","Tatarstan"],["Rostov Oblast","Rostov"],["Ryazan Oblast","Ryazan"],["Saint Petersburg","Saint Petersburg"],["Sakha Republic (Yakutia)","Sakha"],["Sakhalin Oblast","Sakhalin"],["Samara Oblast","Samara"],["Saratov Oblast","Saratov"],["Smolensk Oblast","Smolensk"],["Stavropol Krai","Stavropol Krai"],["Sverdlovsk Oblast","Sverdlovsk"],["Tambov Oblast","Tambov"],["Tomsk Oblast","Tomsk"],["Tula Oblast","Tula"],["Tver Oblast","Tver"],["Tyumen Oblast","Tyumen"],["Tyva Republic","Tuva"],["Udmurtia","Udmurt"],["Ulyanovsk Oblast","Ulyanovsk"],["Vladimir Oblast","Vladimir"],["Volgograd Oblast","Volgograd"],["Vologda Oblast","Vologda"],["Voronezh Oblast","Voronezh"],["Yamalo-Nenets Autonomous Okrug","Yamalo-Nenets Okrug"],["Yaroslavl Oblast","Yaroslavl"],["Zabaykalsky Krai","Zabaykalsky Krai"]]">Russia</option> 1080<option value="Samoa" data-provinces="[]">Samoa</option> 1081<option value="Saudi Arabia" data-provinces="[]">Saudi Arabia</option> 1082<option value="Serbia" data-provinces="[]">Serbia</option> 1083<option value="Singapore" data-provinces="[]">Singapore</option> 1084<option value="Slovakia" data-provinces="[]">Slovakia</option> 1085<option value="Slovenia" data-provinces="[]">Slovenia</option> 1086<option value="South Africa" data-provinces="[["Eastern Cape","Eastern Cape"],["Free State","Free State"],["Gauteng","Gauteng"],["KwaZulu-Natal","KwaZulu-Natal"],["Limpopo","Limpopo"],["Mpumalanga","Mpumalanga"],["North West","North West"],["Northern Cape","Northern Cape"],["Western Cape","Western Cape"]]">South Africa</option> 1087<option value="South Georgia And The South Sandwich Islands" data-provinces="[]">South Georgia & South Sandwich Islands</option> 1088<option value="South Korea" data-provinces="[["Busan","Busan"],["Chungbuk","North Chungcheong"],["Chungnam","South Chungcheong"],["Daegu","Daegu"],["Daejeon","Daejeon"],["Gangwon","Gangwon"],["Gwangju","Gwangju City"],["Gyeongbuk","North Gyeongsang"],["Gyeonggi","Gyeonggi"],["Gyeongnam","South Gyeongsang"],["Incheon","Incheon"],["Jeju","Jeju"],["Jeonbuk","North Jeolla"],["Jeonnam","South Jeolla"],["Sejong","Sejong"],["Seoul","Seoul"],["Ulsan","Ulsan"]]">South Korea</option> 1089<option value="Spain" data-provinces="[["A Coruña","A Coruña"],["Albacete","Albacete"],["Alicante","Alicante"],["AlmerÃa","AlmerÃa"],["Asturias","Asturias Province"],["Badajoz","Badajoz"],["Balears","Balears Province"],["Barcelona","Barcelona"],["Burgos","Burgos"],["Cantabria","Cantabria Province"],["Castellón","Castellón"],["Ceuta","Ceuta"],["Ciudad Real","Ciudad Real"],["Cuenca","Cuenca"],["Cáceres","Cáceres"],["Cádiz","Cádiz"],["Córdoba","Córdoba"],["Girona","Girona"],["Granada","Granada"],["Guadalajara","Guadalajara"],["
1089Guipúzcoa","Gipuzkoa"],["Huelva","Huelva"],["Huesca","Huesca"],["Jaén","Jaén"],["La Rioja","La Rioja Province"],["Las Palmas","Las Palmas"],["León","León"],["Lleida","Lleida"],["Lugo","Lugo"],["Madrid","Madrid Province"],["Melilla","Melilla"],["Murcia","Murcia"],["Málaga","Málaga"],["Navarra","Navarra"],["Ourense","Ourense"],["Palencia","Palencia"],["Pontevedra","Pontevedra"],["Salamanca","Salamanca"],["Santa Cruz de Tenerife","Santa Cruz de Tenerife"],["Segovia","Segovia"],["Sevilla","Seville"],["Soria","Soria"],["Tarragona","Tarragona"],["Teruel","Teruel"],["Toledo","Toledo"],["Valencia","Valencia"],["Valladolid","Valladolid"],["Vizcaya","Biscay"],["Zamora","Zamora"],["Zaragoza","Zaragoza"],["Ãlava","Ãlava"],["Ãvila","Ãvila"]]">Spain</option> 1090<option value="Sri Lanka" data-provinces="[]">Sri Lanka</option> 1091<option value="Saint Barthélemy" data-provinces="[]">St. Barthélemy</option> 1092<option value="Saint Kitts And Nevis" data-provinces="[]">St. Kitts & Nevis</option> 1093<option value="Sweden" data-provinces="[]">Sweden</option> 1094<option value="Switzerland" data-provinces="[]">Switzerland</option> 1095<option value="Taiwan" data-provinces="[]">Taiwan</option> 1096<option value="Tanzania, United Republic Of" data-provinces="[]">Tanzania</option> 1097<option value="Thailand" data-provinces="[["Amnat Charoen","Amnat Charoen"],["Ang Thong","Ang Thong"],["Bangkok","Bangkok"],["Bueng Kan","Bueng Kan"],["Buriram","Buri Ram"],["Chachoengsao","Chachoengsao"],["Chai Nat","Chai Nat"],["Chaiyaphum","Chaiyaphum"],["Chanthaburi","Chanthaburi"],["Chiang Mai","Chiang Mai"],["Chiang Rai","Chiang Rai"],["Chon Buri","Chon Buri"],["Chumphon","Chumphon"],["Kalasin","Kalasin"],["Kamphaeng Phet","Kamphaeng Phet"],["Kanchanaburi","Kanchanaburi"],["Khon Kaen","Khon Kaen"],["Krabi","Krabi"],["Lampang","Lampang"],["Lamphun","Lamphun"],["Loei","Loei"],["Lopburi","Lopburi"],["Mae Hong Son","Mae Hong Son"],["Maha Sarakham","Maha Sarakham"],["Mukdahan","Mukdahan"],["Nakhon Nayok","Nakhon Nayok"],["Nakhon Pathom","Nakhon Pathom"],["Nakhon Phanom","Nakhon Phanom"],["Nakhon Ratchasima","Nakhon Ratchasima"],["Nakhon Sawan","Nakhon Sawan"],["Nakhon Si Thammarat","Nakhon Si Thammarat"],["Nan","Nan"],["Narathiwat","Narathiwat"],["Nong Bua Lam Phu","Nong Bua Lam Phu"],["Nong Khai","Nong Khai"],["Nonthaburi","Nonthaburi"],["Pathum Thani","Pathum Thani"],["Pattani","Pattani"],["Pattaya","Pattaya"],["Phangnga","Phang Nga"],["Phatthalung","Phatthalung"],["Phayao","Phayao"],["Phetchabun","Phetchabun"],["Phetchaburi","Phetchaburi"],["Phichit","Phichit"],["Phitsanulok","Phitsanulok"],["
1097Phra Nakhon Si Ayutthaya","Phra Nakhon Si Ayutthaya"],["Phrae","Phrae"],["Phuket","Phuket"],["Prachin Buri","Prachin Buri"],["Prachuap Khiri Khan","Prachuap Khiri Khan"],["Ranong","Ranong"],["Ratchaburi","Ratchaburi"],["Rayong","Rayong"],["Roi Et","Roi Et"],["Sa Kaeo","Sa Kaeo"],["Sakon Nakhon","Sakon Nakhon"],["Samut Prakan","Samut Prakan"],["Samut Sakhon","Samut Sakhon"],["Samut Songkhram","Samut Songkhram"],["Saraburi","Saraburi"],["Satun","Satun"],["Sing Buri","Sing Buri"],["Sisaket","Si Sa Ket"],["Songkhla","Songkhla"],["Sukhothai","Sukhothai"],["Suphan Buri","Suphanburi"],["Surat Thani","Surat Thani"],["Surin","Surin"],["Tak","Tak"],["Trang","Trang"],["Trat","Trat"],["Ubon Ratchathani","Ubon Ratchathani"],["Udon Thani","Udon Thani"],["Uthai Thani","Uthai Thani"],["Uttaradit","Uttaradit"],["Yala","Yala"],["Yasothon","Yasothon"]]">Thailand</option> 1098<option value="Togo" data-provinces="[]">Togo</option> 1099<option value="Tonga" data-provinces="[]">Tonga</option> 1100<option value="Turkey" data-provinces="[]">Türkiye</option> 1101<option value="Ukraine" data-provinces="[]">Ukraine</option> 1102<option value="United Arab Emirates" data-provinces="[["Abu Dhabi","Abu Dhabi"],["Ajman","Ajman"],["Dubai","Dubai"],["Fujairah","Fujairah"],["Ras al-Khaimah","Ras al-Khaimah"],["Sharjah","Sharjah"],["Umm al-Quwain","Umm al-Quwain"]]">United Arab Emirates</option> 1103<option value="United Kingdom" data-provinces="[["British Forces","British Forces"],["England","England"],["Northern Ireland","Northern Ireland"],["Scotland","Scotland"],["Wales","Wales"]]">United Kingdom</option> 1104<option value="United States" data-provinces="[["Alabama","Alabama"],["Alaska","Alaska"],["American Samoa","American Samoa"],["Arizona","Arizona"],["Arkansas","Arkansas"],["Armed Forces Americas","Armed Forces Americas"],["Armed Forces Europe","Armed Forces Europe"],["Armed Forces Pacific","Armed Forces Pacific"],["California","California"],["Colorado","Colorado"],["Connecticut","Connecticut"],["Delaware","Delaware"],["District of Columbia","Washington DC"],["Federated States of Micronesia","Micronesia"],["Florida","Florida"],["Georgia","Georgia"],["Guam","Guam"],["Hawaii","Hawaii"],["Idaho","Idaho"],["Illinois","Illinois"],["Indiana","Indiana"],["Iowa","Iowa"],["Kansas","Kansas"],["Kentucky","Kentucky"],["Louisiana","Louisiana"],["Maine","Maine"],["Marshall Islands","Marshall Islands"],["Maryland","Maryland"],["Massachusetts","Massachusetts"],["Michigan","Michigan"],["Minnesota","Minnesota"],["Mississippi","Mississippi"],["Missouri","Missouri"],["Montana","Montana"],["Nebraska","Nebraska"],["Nevada","Nevada"],["New Hampshire","New Hampshire"],["New Jersey","New Jersey"],["New Mexico","New Mexico"],["New York","New York"],["North Carolina","North Carolina"],["North Dakota","North Dakota"],["Northern Mariana Islands","Northern Mariana Islands"],["Ohio","Ohio"],["Oklahoma","Oklahoma"],["Oregon","Oregon"],["Palau","Palau"],["Pennsylvania","Pennsylvania"],["Puerto Rico","Puerto Rico"],["Rhode Island","Rhode Island"],["South Carolina","South Carolina"],["South Dakota","South Dakota"],["Tennessee","Tennessee"],["Texas","Texas"],["Utah","Utah"],["Vermont","Vermont"],["Virgin Islands","U.S. Virgin Islands"],["Virginia","Virginia"],["Washington","Washington"],["West Virginia","West Virginia"],["Wisconsin","Wisconsin"],["Wyoming","Wyoming"]]">United States</option> 1105<option value="Uruguay" data-provinces="[["Artigas","Artigas"],["Canelones","Canelones"],["Cerro Largo","Cerro Largo"],["Colonia","Colonia"],["Durazno","Durazno"],["Flores","Flores"],["Florida","Florida"],["Lavalleja","Lavalleja"],["Maldonado","Maldonado"],["Montevideo","Montevideo"],["Paysandú","Paysandú"],["Rivera","Rivera"],["Rocha","Rocha"],["RÃo Negro","RÃo Negro"],["Salto","Salto"],["San José","San José"],["Soriano","Soriano"],["Tacuarembó","Tacuarembó"],["Treinta y Tres","Treinta y Tres"]]">Uruguay</option> 1106<option value="Vanuatu" data-provinces="[]">Vanuatu</option> 1107<option value="Vietnam" data-provinces="[]">Vietnam</option>`; 1108</script>
1108 1109<!-- END app snippet --> 1110<!-- BEGIN app snippet: initialize-forms --> 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165
1166<script async> 1167 (() => { 1168 const FORM_DATA_TIMEOUT = 10000; 1169 1170 const devToolsEnabled = false; 1171 const latestEmbedVersion = "5.3.0"; 1172 const isPreviewApp = ""; 1173 1174 const nativeFormContainsErrors = false; 1175 const $preInitStyles = document.querySelector('#cf-pre-init-styles'); 1176 1177 let mountedTextEntrypoints = false; 1178 1179 // i.e. ?view=orig, or "email taken" following a form crash 1180 if (onFallbackTemplate() || nativeFormContainsErrors) { 1181 // Reveal the original form 1182 $preInitStyles.parentElement.removeChild($preInitStyles); 1183 return; 1184 } 1185 1186 function start() { 1187 initializeForms(); 1188 injectHiddenForms(); 1189 1190 // Try for the next 5s to mount any dynamically injected forms. 1191 const intervalId = setInterval(() => { 1192 initializeForms(); 1193 }, 100); 1194 1195 setTimeout(() => { 1196 clearInterval(intervalId); 1197 }, 5000); 1198 } 1199 1200 // This fires when a CF form has mounted on the page. 1201 // More reliable than putting this in start(), since developers can manually call 1202 // CF.initializeForms(). 1203 window.addEventListener('cf:ready', () => { 1204 injectHiddenForms(); 1205 }); 1206 1207 if (['interactive', 'complete', 'loaded'].includes(document.readyState)) { 1208 start(); 1209 } else { 1210 document.addEventListener('DOMContentLoaded', () => start()); 1211 } 1212 1213 window.CF.initializeForms = initializeForms; 1214 const forms = [{"id":"70tGN1","name":"Activate","version":"4.15.10","updated_at":1720028447}]; 1215 1216 async function initializeForms() { 1217 // Semi-hack: Prevents older embed scripts from doing anything. 1218 // Any embed script before 4.12.0 checks only for the presence of this attribute, 1219 // not if it strictly equals "true". 1220 document.documentElement.setAttribute('data-cf-initialized', 'loading'); 1221 1222 // Only mount text entrypoints once. This is expensive and causes render blocking time on mobile. 1223 if (!mountedTextEntrypoints) { 1224 mountedTextEntrypoints = true; 1225 mountTextEntrypoints(); 1226 } 1227 1228 const reactTarget = `<!-- BEGIN app snippet: react-target-markup --> 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268<div class="cf-react-target"> 1269 <div class="cf-preload"> 1270 1271 <div class="cf-preload-label cf-preload-item"></div> 1272 <div class="cf-preload-field cf-preload-item"></div> 1273 1274 <div class="cf-preload-label cf-preload-item"></div> 1275 <div class="cf-preload-field cf-preload-item"></div> 1276 1277 <div class="cf-preload-label cf-preload-item"></div> 1278 <div class="cf-preload-field cf-preload-item"></div> 1279 1280 <div class="cf-preload-label cf-preload-item"></div> 1281 <div class="cf-preload-field cf-preload-item"></div> 1282 1283 1284 <span class="cf-preload-button cf-preload-item"></span> 1285 1286 <span class="cf-preload-button cf-preload-item"></span> 1287 1288 </div> 1289</div><!-- END app snippet -->`; 1290 const $forms = Array.from(document.querySelectorAll('form:not([data-cf-state])')); 1291 const entrypoints = []; 1292 1293 for (let $form of $forms) { 1294 if (isIgnored($form)) continue; 1295 1296 const id = getFormId($form); 1297 if (!id) continue; 1298 1299 const formData = forms.find(form => form.id === id); 1300 if (!formData) { 1301 console.error(`[Customer Fields] Unable to find form data with id ${id}`); 1302 setFormState($form, 'failed'); 1303 continue; 1304 } 1305 1306 // Do not try to mount the same form element more than once, 1307 // otherwise failures are much harder to handle. 1308 if (isDetected($form)) continue; 1309 markAsDetected($form); 1310 1311 const $originalForm = $form.cloneNode(true); 1312 1313 // Shopify's captcha script can bind to the form that CF mounted to. 1314 // Their submit handler eventually calls the submit method after generating 1315 // the captcha response token, causing native submission behavior to occur. 1316 // We do not want this, so we override it to a no-op. See #2092 1317 $form.submit = () => {}; 1318 1319 injectReactTarget($form); 1320 setFormState($form, 'loading'); 1321 1322 const entrypoint = { 1323 $form, 1324 registration: isRegistrationForm($form), 1325 formId: formData.id, 1326 updatedAt: formData.updated_at, 1327 target: formData.target, 1328 originalForm: $originalForm, 1329 version: formData.version, 1330 restore: () => restoreEntrypoint(entrypoint), 1331 }; 1332 1333 entrypoints.push(entrypoint); 1334 1335 // Required to be backwards compatible with older versions of the JS Form API, and prevent Shopify captcha 1336 $form.setAttribute('data-cf-form', formData.id); 1337 $form.setAttribute('action', ''); 1338 } 1339 1340 if ($preInitStyles && $preInitStyles.parentElement) { 1341 $preInitStyles.parentElement.removeChild($preInitStyles); 1342 } 1343 1344 if (!entrypoints.length) return; 1345 1346 1347 initializeEmbedScript(); 1348 1349 function initializeEmbedScript() { 1350 if (!window.CF.requestedEmbedJS) { 1351 const $script = document.createElement('script'); 1352 $script.src = getAssetUrl('customer-fields.js'); 1353 1354 document.head.appendChild($script); 1355 window.CF.requestedEmbedJS = true; 1356 } 1357 1358 if (!window.CF.requestedEmbedCSS) { 1359 const $link = document.createElement('link'); 1360 $link.href = getAssetUrl('customer-fields.css'); 1361 $link.rel = 'stylesheet'; 1362 $link.type = 'text/css'; 1363 1364 document.head.appendChild($link); 1365 window.CF.requestedEmbedCSS = true; 1366 } 1367 } 1368 1369 1370 const uniqueEntrypoints = entrypoints.reduce((acc, entrypoint) => { 1371 if (acc.some(e => e.formId === entrypoint.formId)) return acc; 1372 acc.push(entrypoint); 1373 1374 return acc; 1375 }, []); 1376 1377 const fullForms = await Promise.all(uniqueEntrypoints.map(e => getFormData(e.formId, e.updatedAt))); 1378
1379 fullForms.forEach((fullForm, index) => { 1380 // Could be a failed request. 1381 if (!fullForm) return; 1382 1383 const invalidFormTargets = ['customer-account']; 1384 if (invalidFormTargets.includes(fullForm.form.target)) { 1385 console.error('[Customer Fields] Invalid form target', fullForm); 1386 return; 1387 } 1388 1389 entrypoints 1390 .filter(e => e.formId === fullForm.form.id) 1391 .forEach(entrypoint => { 1392 entrypoint.form = { 1393 ...fullForm.form, 1394 currentRevision: fullForm.revision, 1395 }; 1396 }) 1397 }); 1398 1399 entrypoints.forEach(e => { 1400 if (!e.form) { 1401 // Form can be null if the request failed one way or another. 1402 restoreEntrypoint(e); 1403 return; 1404 } 1405 }); 1406 1407 if (window.CF.entrypoints) { 1408 window.CF.entrypoints.push(...entrypoints); 1409 1410 if (window.CF.mountForm) { 1411 entrypoints.forEach(entrypoint => { 1412 if (!entrypoint.form) return; 1413 1414 window.CF.mountForm(entrypoint.form); 1415 }); 1416 } 1417 } else { 1418 window.CF.entrypoints = entrypoints; 1419 1420 // The Core class has some logic that gets invoked as a result of this event 1421 // that we only want to fire once, so let's not emit this event multiple times. 1422 document.dispatchEvent(new CustomEvent('cf:entrypoints_ready')); 1423 } 1424 1425 function getFormData(formId, updatedAt) { 1426 return new Promise(resolve => { 1427 const controller = new AbortController(); 1428 const timeoutId = setTimeout(() => controller.abort(), FORM_DATA_TIMEOUT); 1429 const maxAttempts = 3; 1430 let attempts = 0; 1431 1432 const attemptFetch = () => { 1433 if (controller.signal.aborted) { 1434 resolve(null); 1435 return; 1436 } 1437 1438 attempts++; 1439 1440 fetch(`https://app.customerfields.com/embed_api/v4/forms/${formId}.json?v=${updatedAt}`, { 1441 headers: { 1442 'X-Shopify-Shop-Domain': "bb73c3-5.myshopify.com" 1443 }, 1444 signal: controller.signal 1445 }).then(response => { 1446 if (controller.signal.aborted) { 1447 resolve(null); 1448 return; 1449 } 1450 1451 if (response.ok) { 1452 response.json().then(resolve); 1453 return; 1454 } 1455 1456 if (attempts < maxAttempts) { 1457 pause(2000).then(() => attemptFetch()); 1458 return; 1459 } 1460 1461 console.error(`[Customer Fields] Received non-OK response from the back-end when fetching form ${formId}`) 1462 resolve(null); 1463 }).catch((err) => { 1464 if (controller.signal.aborted) { 1465 resolve(null); 1466 return; 1467 } 1468 1469 if (attempts < maxAttempts) { 1470 pause(2000).then(() => attemptFetch()); 1471 return; 1472 } 1473 1474 console.error(`[Customer Fields] Encountered unknown error while fetching form ${formId}`, err); 1475 resolve(null); 1476 }); 1477 }; 1478 1479 attemptFetch(); 1480 }); 1481 } 1482 1483 function restoreEntrypoint(entrypoint) { 1484 // This has a side effect of removing the Form class' submit handlers. 1485 // Previously this only replaced the original children within the form, but the submit event 1486 // was still being handled by our script. 1487 entrypoint.$form.replaceWith(entrypoint.originalForm); 1488 1489 // After a form has been restored, make sure we don't touch it again. 1490 // Otherwise we might treat it as an "async mounted" entrypoint and try to mount it again 1491 entrypoint.originalForm.setAttribute('data-cf-ignore', 'true'); 1492 1493 // Opacity was set to 0 with the #cf-pre-init-styles element 1494 entrypoint.$form.style.opacity = 1; 1495 1496 console.error(`[Customer Fields] Encountered an issue while mounting form, reverting to original form contents.`, entrypoint); 1497 } 1498 1499 function getAssetUrl(filename) { 1500 // We changed this to always get the latest embed assets 1501 // 4.15.7 included a crucial hotfix for recaptcha, see #2028 1502 1503 return `https://static.customerfields.com/releases/${isPreviewApp ? '' : `${latestEmbedVersion}/`}${filename}`; 1504 } 1505 1506 function injectReactTarget($form) { 1507 const containsReactTarget = !!$form.querySelector('.cf-react-target'); 1508 if (containsReactTarget) return; 1509 1510 $form.innerHTML = reactTarget; 1511 } 1512 1513 function isIgnored($form) { 1514 return $form.getAttribute('data-cf-ignore') === 'true'; 1515 } 1516 1517 function isDetected($form) { 1518 return $form.__cfDetected === true; 1519 } 1520 1521 function markAsDetected($form) { 1522 $form.__cfDetected = true; 1523 } 1524 1525 function isEditAccountForm($form) { 1526 return $form.getAttribute('data-cf-edit-account') === 'true'; 1527 } 1528 1529 function isVintageRegistrationForm($form) { 1530 return ( 1531 window.location.pathname.includes('/account/register') 1532 && $form.id === 'create_customer' 1533 && !!$form.getAttribute('data-cf-form') 1534 ); 1535 } 1536 1537 function isRegistrationForm($form) { 1538 try { 1539 const isWithinAppBlock = !!$form.closest('.cf-form-block'); 1540 if (isWithinAppBlock) return false;
1541 1542 const action = $form.getAttribute('action'); 1543 if (!action) return false; 1544 1545 const formActionUrl = new URL(action, window.location.origin); 1546 const hasAccountPath = formActionUrl.pathname.endsWith('/account'); 1547 const matchesShopDomain = formActionUrl.host === window.location.host; 1548 1549 const hasPostMethod = $form.method.toLowerCase() === 'post'; 1550 const $formTypeInput = $form.querySelector('[name="form_type"]') 1551 1552 const hasCreateCustomerFormType = $formTypeInput && $formTypeInput.value === 'create_customer'; 1553 return (matchesShopDomain && hasAccountPath && hasPostMethod) || hasCreateCustomerFormType 1554 } catch (err) { 1555 return false; 1556 } 1557 } 1558 1559 function mountTextEntrypoints() { 1560 const tree = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, (node) => { 1561 if (typeof node.data !== 'string' || !node.data) return NodeFilter.FILTER_REJECT; 1562 1563 return node.data.includes('data-cf-form="') ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT; 1564 }); 1565 1566 /** 1567 * Walks through every text node on the document that contains 'data-cf-form="' and attempts to 1568 * splice a form element in place of every shortcode. 1569 * 1570 * @type Node[] 1571 */ 1572 while (tree.nextNode()) { 1573 let node = tree.currentNode; 1574 const parser = new DOMParser(); 1575 1576 while (entrypointContent = node.data.match(/<form.*data-cf-form="[a-zA-Z0-9]+".*>.*<\/form>/)) { 1577 const [match] = entrypointContent; 1578 1579 const doc = parser.parseFromString(match, 'text/html'); 1580 const $form = doc.body.firstElementChild; 1581 1582 // Substring is better than split here in case the text node contains multiple forms. 1583 const beforeText = node.data.substring(0, node.data.indexOf(match)); 1584 const afterText = node.data.substring(node.data.indexOf(match) + match.length); 1585 1586 node.replaceWith($form); 1587 node.data = node.data.replace(match, ''); 1588 1589 if (beforeText) $form.insertAdjacentText('beforebegin', beforeText); 1590 if (afterText) { 1591 $form.insertAdjacentText('afterend', afterText); 1592 1593 // Continue scanning the rest of the node text in case there are more forms 1594 node = $form.nextSibling; 1595 } 1596 } 1597 } 1598 } 1599 1600 function getFormId($form) { 1601 const currentFormId = $form.getAttribute('data-cf-form'); 1602 1603 let id; 1604 1605 if (isEditAccountForm($form)) { 1606 id = ""; 1607 } else if (isVintageRegistrationForm($form) || isRegistrationForm($form)) { 1608 id = ""; 1609 } 1610 1611 return id || currentFormId; 1612 } 1613 1614 function setFormState($form, state) { 1615 $form.setAttribute('data-cf-state', state); 1616 } 1617 } 1618 1619 function onFallbackTemplate() { 1620 const params = new URLSearchParams(window.location.search); 1621 1622 return location.pathname.includes('/account/register') && params.get('view') === 'orig'; 1623 } 1624 1625 function injectHiddenForms() { 1626 if (!devToolsEnabled && !CF.entrypoints?.length) return; 1627 if (document.querySelector('#cf_hidden_forms')) return; 1628 1629 const container = document.createElement('div'); 1630 1631 container.id = "cf_hidden_forms"; 1632 container.style.display = 'none'; 1633 container.setAttribute('aria-hidden', 'true'); 1634 1635 document.body.appendChild(container); 1636 1637 const loginForm = createLoginForm(); 1638 const recoverForm = createRecoverPasswordForm(); 1639 1640 container.appendChild(loginForm); 1641 container.appendChild(recoverForm); 1642 1643 if (window.Shopify.captcha) { 1644 // Only applicable for grecaptcha shops, but also safe for hcaptcha 1645 triggerShopifyRecaptchaLoad(container); 1646 1647 window.Shopify.captcha.protect(loginForm); 1648 window.Shopify.captcha.protect(recoverForm); 1649 } 1650 } 1651 1652 function triggerShopifyRecaptchaLoad(container) { 1653 if (document.getElementById('cf-hidden-recaptcha-trigger__create_customer')) return; 1654 if (document.getElementById('cf-hidden-recaptcha-trigger__contact')) return; 1655 1656 // Triggering a focus event on a form causes Shopify to load their recaptcha script. 1657 // This allows our Customer class to handle the copying/injecting of `grecaptcha` so we can 1658 // handle multiple `grecaptcha` instances. See methods `injectRecaptchaScript` 1659 // and `captureShopifyGrecaptcha` in `Customer.ts`. 1660 // Note: We have to try both types, in case the merchant has only one of the two recaptcha 1661 // options checked 1662 const $customerRecaptchaForm = createDummyRecaptchaForm('/account', 'create_customer'); 1663 container.appendChild($customerRecaptchaForm); 1664 1665 const $contactRecaptchaForm = createDummyRecaptchaForm('/contact', 'contact'); 1666 container.appendChild($contactRecaptchaForm); 1667 1668 triggerFocusEvent($customerRecaptchaForm); 1669 triggerFocusEvent($contactRecaptchaForm); 1670 } 1671 1672 function createDummyRecaptchaForm(action, type) { 1673 const dummyRecaptchaForm = document.createElement('form'); 1674 1675 dummyRecaptchaForm.action = action; 1676 dummyRecaptchaForm.method = "post"; 1677 dummyRecaptchaForm.id = `cf-hidden-recaptcha-trigger__${type}`; 1678 dummyRecaptchaForm.setAttribute('data-cf-ignore', 'true'); 1679 dummyRecaptchaForm.setAttribute('aria-hidden', 'true'); 1680 dummyRecaptchaForm.style.display = 'none'; 1681 1682 const formTypeInput = document.createElement('input'); 1683 1684 formTypeInput.name = "form_type"
1685 formTypeInput.setAttribute('value', type); 1686 1687 dummyRecaptchaForm.appendChild(formTypeInput); 1688 1689 return dummyRecaptchaForm; 1690 } 1691 1692 function triggerFocusEvent(element) { 1693 const event = new Event('focusin', { bubbles: true, cancelable: false }); 1694 element.dispatchEvent(event); 1695 } 1696 1697 function createLoginForm() { 1698 const form = createDummyRecaptchaForm('/account/login', 'customer_login'); 1699 const email = document.createElement('input'); 1700 email.name = 'customer[email]'; 1701 1702 const password = document.createElement('input'); 1703 password.name = 'customer[password]'; 1704 1705 const redirect = document.createElement('input'); 1706 redirect.name = 'return_to'; 1707 1708 form.appendChild(email); 1709 form.appendChild(password); 1710 form.appendChild(redirect); 1711 form.setAttribute('aria-hidden', 'true'); 1712 1713 return form; 1714 } 1715 1716 function createRecoverPasswordForm() { 1717 const parser = new DOMParser(); 1718 const result = parser.parseFromString(`<form method="post" action="/account/recover" accept-charset="UTF-8"><input type="hidden" name="form_type" value="recover_customer_password" /><input type="hidden" name="utf8" value="â" /><input name="email" value="" /><input name="return_to" value="" /></form>`, 'text/html'); 1719 const form = result.querySelector('form'); 1720 1721 form.setAttribute('aria-hidden', 'true'); 1722 form.id = "cf_recover_password_form"; 1723 1724 return form; 1725 } 1726 1727 function pause(ms) { 1728 return new Promise(resolve => setTimeout(resolve, ms)); 1729 } 1730 })(); 1731</script>
1731 1732 1733<!-- END app snippet --> 1734<!-- BEGIN app snippet: theme-data --> 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773
1774<script> 1775 document.addEventListener('DOMContentLoaded', async () => { 1776 let theme; 1777 1778 if (window.Shopify) { 1779 theme = { 1780 name: window.Shopify.theme.schema_name, 1781 version: window.Shopify.theme.schema_version, 1782 } 1783 } 1784 1785 if (theme) { 1786 document.documentElement.setAttribute('data-theme-name', theme.name); 1787 document.documentElement.setAttribute('data-theme-version', theme.version); 1788 } 1789 }); 1790</script>
1790<!-- END app snippet --> 1791<!-- BEGIN app snippet: form-preload-style --> 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831<style> 1832.cf-preload { 1833 margin-top: 50px; 1834 opacity: 0.5; 1835 text-align: left; 1836} 1837 1838.cf-preload-item { 1839 position: relative; 1840 overflow: hidden; 1841 background: #e2e2e2; 1842 border-radius: 4px; 1843 display: block !important; 1844} 1845 1846.cf-preload-item:before { 1847 content: ''; 1848 position: absolute; 1849 top: 0; 1850 left: 0; 1851 height: 100%; 1852 width: 100%; 1853 background: linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,0.5), rgba(255,255,255,0.5), rgba(255,255,255,0)); 1854 animation: cf-preload 1s cubic-bezier(0.33, 0.8, 0.85, 0.77) infinite; 1855 z-index: 1; 1856} 1857 1858.cf-preload-label { 1859 display: inline-block !important; 1860 width: 50%; 1861 height: 20px; 1862 background: #eee; 1863 margin-bottom: 5px; 1864} 1865 1866.cf-preload-field { 1867 margin-bottom: 25px; 1868 height: 40px; 1869} 1870 1871.cf-preload-button { 1872 display: inline-block !important; 1873 width: 120px; 1874 margin-right: 15px; 1875 height: 40px; 1876} 1877 1878.cf-form-inner { 1879 animation: cf-fadein 500ms cubic-bezier(0.11, 0.33, 0.24, 1); 1880} 1881 1882@keyframes cf-preload { 1883 from { 1884 transform: translateX(-100%); 1885 opacity: 0; 1886 } 1887 to { 1888 transform: translateX(100%); 1889 opacity: 1; 1890 } 1891} 1892 1893@keyframes cf-fadein { 1894 from { 1895 opacity: 0; 1896 transform: translateY(30px); 1897 } 1898 to { 1899 opacity: 1; 1900 transform: translateY(0); 1901 } 1902} 1903</style><!-- END app snippet --> 1904<!-- BEGIN app snippet: inject-edit-link --> 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944<!-- END app snippet --> 1945<!-- BEGIN app snippet: language --> 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984
1985<script> 1986 window.CF.language = window.CF.language || {}; 1987 window.CF.language.editAccountHeading = "Edit account"; 1988 window.CF.language.editAccountBackLinkText = "Back to account"; 1989</script>
1989<!-- END app snippet --> 1990 1991<!-- BEGIN app snippet: developer-tools --> 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033
2034<script> 2035 (function() { 2036 const callbacksHandled = []; 2037 2038 function handleCallback(callback) { 2039 if (callbacksHandled.indexOf(callback) > -1) return; 2040 2041 callback(); 2042 callbacksHandled.push(callback); 2043 }; 2044 2045 function domIsReady() { 2046 return /complete|interactive|loaded/.test(document.readyState); 2047 }; 2048 2049 function customerExistsInWindow() { 2050 const customerPresent = ('customer' in window.CF); 2051 if (!customerPresent) return false; 2052 2053 const hasCaptchaEnabled = document.body.getAttribute('data-cf-captcha-enabled') === 'true'; 2054 if (hasCaptchaEnabled) { 2055 const captchaReady = document.body.getAttribute('data-cf-captcha-ready') === 'true'; 2056 if (!captchaReady) return false; 2057 } 2058 2059 return true; 2060 }; 2061 2062 function embedFormHasMounted() { 2063 return !!document.querySelector('.cf-form-inner'); 2064 }; 2065 2066 function customerReady(callback) { 2067 if (customerExistsInWindow()) { 2068 handleCallback(callback); 2069 } else { 2070 function createListener() { 2071 document.addEventListener("cf:customer_ready", function() { 2072 handleCallback(callback); 2073 }); 2074 }; 2075 2076 if (domIsReady()) { 2077 createListener(); 2078 } else { 2079 document.addEventListener("DOMContentLoaded", function() { 2080 if (customerExistsInWindow()) { 2081 handleCallback(callback); 2082 } else { 2083 createListener(); 2084 } 2085 }); 2086 } 2087 } 2088 } 2089 2090 function formsReady(callback) { 2091 if (embedFormHasMounted()) { 2092 handleCallback(callback); 2093 } else { 2094 function createListener() { 2095 document.addEventListener("cf:ready", function() { 2096 handleCallback(callback); 2097 }); 2098 }; 2099 2100 if (domIsReady()) { 2101 createListener(); 2102 } else { 2103 document.addEventListener("DOMContentLoaded", function() { 2104 if (embedFormHasMounted()) { 2105 handleCallback(callback); 2106 } else { 2107 createListener(); 2108 } 2109 }); 2110 } 2111 } 2112 }; 2113 2114 window.CF.customerReady = customerReady; 2115 window.CF.ready = formsReady; 2116 2117 2118 window.CF.customerReady = () => { 2119 console.warn('[Customer Fields] In order to access CF.customerReady, you need to enable developer tools in the Customer Fields app embed.'); 2120 } 2121 2122 2123 function initializeApiScript() { 2124 if (window.CF.requestedAPI) return; 2125 window.CF.requestedAPI = true; 2126 2127 const $script = document.createElement('script'); 2128 $script.src = getAssetUrl('cf-api.js'); 2129 2130 document.head.appendChild($script); 2131 } 2132 2133 function getAssetUrl(filename) { 2134 return `https://static.customerfields.com/releases/5.3.0/${filename}`; 2135 } 2136 })(); 2137</script>
2137 2138 2139 2140<!-- END app snippet --> 2141 2142<!-- END app block --><!-- BEGIN app block: shopify://apps/p3p724nf7-opensend/blocks/opensend/019bfb63-086a-7074-9f24-065cebe8778e -->
2143<script type='text/javascript'> 2144!function(s) { 2145 let o = s.createElement('script'), u = s.getElementsByTagName('script')[0]; 2146 o.src = 'https://cdn.aggle.net/oir/oir.min.js'; 2147 o.async = !0, o.setAttribute('oirtyp', '48b1feaa'), o.setAttribute('oirid', 'P3P724NF7'); 2148 u.parentNode.insertBefore(o, u); 2149}(document); 2150</script>
2150 2151
2152<script type='text/javascript'> 2153 { 2154 const cleanObj = (value) => { 2155 if (Array.isArray(value)) { 2156 const cleanedArray = value.map(cleanObj).filter((v) => v !== undefined); 2157 return cleanedArray.length ? cleanedArray : undefined; 2158 } 2159 if (value && typeof value === "object") { 2160 const cleanedObject = Object.entries(value).reduce((acc, [key, val]) => { 2161 const cleanedValue = cleanObj(val); 2162 if (cleanedValue !== undefined && cleanedValue !== null && cleanedValue !== "") { 2163 acc[key] = cleanedValue; 2164 } 2165 return acc; 2166 }, {}); 2167 return Object.keys(cleanedObject).length ? cleanedObject : undefined; 2168 } 2169 if (value === null || value === undefined || value === "") { 2170 return undefined; 2171 } 2172 return value; 2173 }; 2174 const getCustomer = () => ({ 2175 shopifyCustomerId: "", 2176 email: "", 2177 phone: "", 2178 first_name: null, 2179 last_name: null, 2180 lifetime_value: null, 2181 order_count: null, 2182 address: { 2183 street: null, 2184 city: null, 2185 state: null, 2186 stateCode: null, 2187 postalCode: "", 2188 country: "", 2189 province: "", 2190 countryCode: "", 2191 } 2192 }); 2193 2194 } 2195</script>
2195 2196 2197 2198<!-- END app block --><!-- BEGIN app block: shopify://apps/gempages-builder/blocks/embed-gp-script-head/20b379d4-1b20-474c-a6ca-665c331919f3 --> 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213<!-- END app block -->
2213<script src="https://cdn.shopify.com/extensions/01a0cea5-f48c-77e6-82d1-fa498b728463/gdpr-backpack-895/assets/consentmo_cookie_consent.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 2213
2213
2214<script src="https://cdn.shopify.com/extensions/01a0cef1-eefe-7578-b2f5-de95c01f6ae9/loop-returns-502/assets/onstore-block.js" type="text/javascript" defer="defer"></script>
2214 2215<link href="https://cdn.shopify.com/extensions/01a0cef1-eefe-7578-b2f5-de95c01f6ae9/loop-returns-502/assets/onstore-block.css" rel="stylesheet" type="text/css" media="all">
2216<script src="https://cdn.shopify.com/extensions/019b984b-a2eb-7701-ae0f-f88dbdd88627/productiondeployment-35/assets/tracker.js" type="text/javascript" defer="defer"></script>
2216 2217<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
2218<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 57677807690,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 2218
2218
2219<script> 2220 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 2221</script>
vendor: 1 bytes, line 2221
2221
2222<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
2222).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 57677807690,storefrontBaseUrl: "https://www.getquip.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.getquip.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["16072cab","8450a54b"],webPixelsConfigList: [{"id":"2841018442","configuration":"{\"accountID\":\"bb73c3-5.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"74f89c26283dd9bc8e535e14315f3aed","type":"APP","apiClientId":198303350785,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2239430730","configuration":"{\"accountID\":\"585592132501242715\",\"campaignTemplates\":\"{}\",\"campaignGroupTemplates\":\"{}\",\"storeConfig\":\"{\\\"trackingEvent\\\":true}\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"ddd8d9be8611e25a9d05f6865760e8d4","type":"APP","apiClientId":154467237889,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"}
2222,{"id":"2119106634","configuration":"{\"eventKey\":\"43f2290e-6608-4982-ae00-6e93d3d1bbf9\",\"name\":\"bb73c3-5 - Axon Pixel\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"59063c86dca90ebaa562063a0c13be50","type":"APP","apiClientId":256560922625,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1646854218","configuration":"{\"storeHandle\":\"bb73c3-5.myshopify.com\", \"publisherId\": \"P3P724NF7\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"94a881e8d211e628cef2d7cbc6e68cf4","type":"APP","apiClientId":315828994049,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_phone","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1215627338","configuration":"{\"accountID\":\"WRmUXy\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"865992778","configuration":"{\"locale\":\"en_US\",\"client\":\"quip\",\"environment\":\"production\",\"deployment_zone\":\"main_site\",\"multi_locale_enabled\":\"false\",\"locale_mapping\":\"{}\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"15bb48af78f525ca1134c2839cc35388","type":"APP","apiClientId":1888040,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"716832842","configuration":"{\"store_id\":\"188655\",\"environment\":\"prod\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"10c4f173702937db6fa4bf871600cafd","type":"APP","apiClientId":294517,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"691994698","configuration":"{\"tagID\":\"2614673885187\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7ae565e198624b39e0856d352b9a6b4c","type":"APP","apiClientId":3009811,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"671613002","configuration":"{\"dataplaneUrl\":\"https:\\\/\\\/getquipseczbnf.dataplane.rudderstack.com\",\"writeKey\":\"2sigFjvsIh2DujDhYeYMPix3bmp\",\"clientSideEventsAllowed\":\"true\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"b4cd5a8a75a11db522e139c6fc40b987","type":"APP","apiClientId":143368912897,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"659718218","configuration":"{\n \"accountID\":\"bb73c3-5.myshopify.com\",\n \"environment\":\"production\",\n \"apiURL\":\"https:\/\/api.quizkitapp.com\"\n }","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8b4008b7d9cf69ef6aab7ff3dbda8179","type":"APP","apiClientId":4291957,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"513736778","configuration":"{\"shop\":\"bb73c3-5.myshopify.com\", \"shopliftUrl\":\"https:\/\/events.shoplift.ai\/api\/events\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"dabcda9558be25394b12ce3ce899568b","type":"APP","apiClientId":7521861633,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
2222,"dataSharingState":"unrestricted"},{"id":"409894986","configuration":"{\"publicToken\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBfaWQiOiI3N2IzOTVlNy0zYzEzLTQxMjEtOTg5NC1mOGQyMWUzZTU5N2YiLCJqdGkiOiJiOWQwYTRlMy0zYjFlLTQ4NmUtYWYzNi0zOTc2ODBmMmNiNzYiLCJ0eXBlIjoxfQ.eWklHuUxRlqOYK8PFB8LlMA_omB2aDgiiA0LolW4A9k\",\"defaultDataPlaneUrl\":\"https:\\\/\\\/server.telemetry.services.yofi.ai\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8e053f7079f49080abbdfa6ad8da5199","type":"APP","apiClientId":6975691,"privacyPurposes":["ANALYTICS","MARKETING","PREFERENCES","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"365822026","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"GT-TBW6L5KK\\\",\\\"AW-957299510\\\",\\\"GTM-WKZRKF4\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"AW-957299510\\\/20rICOeEur4ZELb2vMgD\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":\\\"MC-LKXY2TZ3E7\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"MC-LKXY2TZ3E7\\\",\\\"AW-957299510\\\/URPVCJ-OxlwQtva8yAM\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"MC-LKXY2TZ3E7\\\",\\\"AW-957299510\\\/ZDooCMy4mLoZELb2vMgD\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"AW-957299510\\\/761gCLe4mLoZELb2vMgD\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"277938250","configuration":"{\"partnerId\": \"115215\", \"environment\": \"prod\", \"countryCode\": \"US\", \"logLevel\": \"none\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"e39367b785b1d63117e387ccb6b0db54","type":"APP","apiClientId":5829751,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"175603786","configuration":"{\"campaignID\":\"10400\",\"externalExecutionURL\":\"https:\/\/engine.saasler.com\/api\/v1\/webhook_executions\/27a800365c68d9dee2468662120eb427\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7a47b06116c806e4367c27d301f4f458","type":"APP","apiClientId":3546795,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"125403210","configuration":"{\"pixel_id\":\"1729444483949162\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"95715402","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"heatmap-revenue"},{"id":"124452938","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"SocialLadder"}
2222,{"id":"131170378","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"3","type":"CUSTOM","privacyPurposes":[],"name":"Quip â GA4 Ecommerce Tracking"},{"id":"142868554","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"4","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Quip - Amazon DSP"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"quip","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"bb73c3-5.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.getquip.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"7609555058762","handle":"midnight-rechargeable-cordless-water-flosser","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41137928798282","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8429724434506","handle":"whitening-toothpaste","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44169352708170","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7526455738442","handle":"green-sonic-toothbrush","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41850474397770","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8110439727178","handle":"air-quip-ultra-lite-sonic-electric-toothbrush","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43249057759306","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7738595115082","handle":"blue-metal-rev-oscillating-toothbrush","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41472430506058","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7548433793098","handle":"all-black-metal-rechargeable-cordless-water-flosser","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"40980196786250","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://www.getquip.com/cdn","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"146414010442","themePublished":"true","eventMetadataId":"4bc8f0c3-6976-4c3a-afc7-1b7ead27dbb4","pageType":"page","resourceId":"87085383754","shopId":"57677807690","storefrontBaseUrl":"https:\/\/www.getquip.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"16072cab\", \"8450a54b\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
2222<script> 2223 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 2224 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 2225 window.ShopifyAnalytics.meta.currency = 'USD'; 2226 var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":87085383754,"requestId":"950a472f-3dfa-430b-9ccb-5ead0f02dc48-1790271964"}}; 2227 for (var attr in meta) { 2228 window.ShopifyAnalytics.meta[attr] = meta[attr]; 2229 } 2230</script>
vendor: 1 bytes, line 2230
2230
2231<script class="analytics"> 2232 (function () { 2233 var customDocumentWrite = function(content) { 2234 var jquery = null; 2235 2236 if (window.jQuery) { 2237 jquery = window.jQuery; 2238 } else if (window.Checkout && window.Checkout.$) { 2239 jquery = window.Checkout.$; 2240 } 2241 2242 if (jquery) { 2243 jquery('body').append(content); 2244 } 2245 }; 2246 2247 var hasLoggedConversion = function(token) { 2248 if (token) { 2249 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 2250 } 2251 return false; 2252 } 2253 2254 var setCookieIfConversion = function(token) { 2255 if (token) { 2256 var twoMonthsFromNow = new Date(Date.now()); 2257 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 2258 2259 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 2260 } 2261 } 2262 2263 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 2264 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 2265 if (trekkie.integrations) { 2266 return; 2267 } 2268 trekkie.methods = [ 2269 'identify', 2270 'page', 2271 'ready', 2272 'track', 2273 'trackForm', 2274 'trackLink' 2275 ]; 2276 trekkie.factory = function(method) { 2277 return function() { 2278 var args = Array.prototype.slice.call(arguments); 2279 args.unshift(method); 2280 trekkie.push(args); 2281 if (method == 'track' || method == 'page') { 2282 try { 2283 if (window.__TREKKIE_SHIM_QUEUE == null) { 2284 window.__TREKKIE_SHIM_QUEUE = []; 2285 } 2286 window.__TREKKIE_SHIM_QUEUE.push({ 2287 from: 'trekkie-stub', 2288 method: method, 2289 args: args.slice(1) 2290 }); 2291 } catch (e) { 2292 // no-op 2293 } 2294 } 2295 return trekkie; 2296 }; 2297 }; 2298 for (var i = 0; i < trekkie.methods.length; i++) { 2299 var key = trekkie.methods[i]; 2300 trekkie[key] = trekkie.factory(key); 2301 } 2302 trekkie.load = function(config) { 2303 trekkie.config = config || {}; 2304 trekkie.config.initialDocumentCookie = document.cookie; 2305 var first = document.getElementsByTagName('script')[0]; 2306var script = document.createElement('script'); 2307script.type = 'text/javascript'; 2308script.onerror = function(e) { 2309 var scriptFallback = document.createElement('script'); 2310 scriptFallback.type = 'text/javascript'; 2311 scriptFallback.onerror = function(error) { 2312 var Monorail = { 2313 produce: function produce(monorailDomain, schemaId, payload) { 2314 var currentMs = new Date().getTime(); 2315 var event = { 2316 schema_id: schemaId, 2317 payload: payload, 2318 metadata: { 2319 event_created_at_ms: currentMs, 2320 event_sent_at_ms: currentMs 2321 } 2322 }; 2323 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 2324 }, 2325 sendRequest: function sendRequest(endpointUrl, payload) { 2326 // Try the sendBeacon API 2327 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 2328 var blobData = new window.Blob([payload], { 2329 type: 'text/plain' 2330 }); 2331 2332 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 2333 return true; 2334 } // sendBeacon was not successful 2335 2336 } // XHR beacon 2337 2338 var xhr = new XMLHttpRequest(); 2339 2340 try { 2341 xhr.open('POST', endpointUrl); 2342 xhr.setRequestHeader('Content-Type', 'text/plain'); 2343 xhr.send(payload); 2344 } catch (e) { 2345 console.log(e); 2346 } 2347 2348 return false; 2349 }, 2350 isIos12: function isIos12() { 2351 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 2352 } 2353 }; 2354 Monorail.produce('monorail-edge.shopifysvc.com', 2355 'trekkie_storefront_load_errors/1.1', 2356 {shop_id: 57677807690, 2357 theme_id: 146414010442, 2358 app_name: "storefront", 2359 context_url: window.location.href, 2360 source_url: "//www.getquip.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"}); 2361 2362 }; 2363 scriptFallback.async = true; 2364 scriptFallback.src = '//www.getquip.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 2365 first.parentNode.insertBefore(scriptFallback, first); 2366}; 2367script.async = true; 2368script.src = '//www.getquip.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 2369first.parentNode.insertBefore(script, first); 2370 2371 }; 2372 trekkie.load( 2373 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":57677807690,"isMerchantRequest":null,"themeId":146414010442,"themeCityHash":"676945260480711714","contentLanguage":"en","currency":"USD","eventMetadataId":"4bc8f0c3-6976-4c3a-afc7-1b7ead27dbb4"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 2374 ); 2375 2376 var loaded = false;
2377 trekkie.ready(function() { 2378 if (loaded) return; 2379 loaded = true; 2380 2381 window.ShopifyAnalytics.lib = window.trekkie; 2382 2383 var originalDocumentWrite = document.write; 2384 document.write = customDocumentWrite; 2385 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 2386 document.write = originalDocumentWrite; 2387 2388 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 2389 var token = match? match[1]: undefined; 2390 if (!hasLoggedConversion(token)) { 2391 setCookieIfConversion(token); 2392 2393 } 2394 }); 2395 2396 window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":87085383754,"requestId":"950a472f-3dfa-430b-9ccb-5ead0f02dc48-1790271964","shopifyEmitted":true}); 2397 2398 var eventsListenerScript = document.createElement('script'); 2399 eventsListenerScript.async = true; 2400 eventsListenerScript.src = "//www.getquip.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 2401 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 2402})();</script>
vendor: 1 bytes, line 2402
2402
2403<script 2404 defer 2405 src="https://www.getquip.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 2406 data-application="storefront-renderer" 2407 data-shop-id="57677807690" 2408 data-render-region="gcp-us-central1" 2409 data-page-type="page" 2410 data-theme-instance-id="146414010442" 2411 data-theme-name="quip" 2412 data-theme-version="2.0" 2413 data-monorail-region="shop_domain" 2414 data-resource-timing-sampling-rate="10" 2415 data-shs="true" 2416 data-shs-beacon="true" 2417 data-shs-export-with-fetch="true" 2418 data-shs-logs-sample-rate="1" 2419 data-shs-beacon-endpoint="https://www.getquip.com/api/collect" 2420></script>
2420 2421<meta name="shopify-y" content="00000000-0000-0000-5000-000000000000" data-expiration="1821829564000"><meta name="shopify-s" content="00000000-0000-0000-5000-000000000000" data-expiration="1790273764000"><meta name="new-cookie-storage-activated" content="t"> 2422</head> 2423 <body 2424 id="contact-quip-customer-support" 2425 class="template-page template-page template-suffix-contact" 2426 > 2427 <a class="skip-to-content-link" href="#MainContent">Skip to main content</a> 2428 2429 <component-loader class="layout"> 2430 <div class="layout__header"><div id="shopify-section-announcement-bar" class="shopify-section announcement-bar"><style data-shopify>.announcement-bar__component{display:block;overflow:hidden;transition:.5s ease;transform-origin:top;max-height:0;color:var(--bar-text-color, #054040);opacity:0}.announcement-bar-slide-inited .announcement-bar__component{opacity:1}.announcement-bar__component[show]{max-height:9.375rem}.announcement-bar__component swiper-container{display:flex;justify-content:center;align-items:center;overflow:hidden;transform:translate3d(0, 0, 0)}.announcement-bar__component swiper-slide{max-width:100%;flex-shrink:0;transform:translateZ(0)}.announcement-bar__inner{position:sticky;top:0;display:block;padding:.5rem 1.875rem;background-color:var(--bar-bg-color, #fff)}@media only screen and (min-width: 768px){.announcement-bar__inner{padding-inline:var(--container-side-space)}}.announcement-bar__slider{display:flex;justify-content:space-between;align-items:center;margin-inline:auto;max-width:38.75rem}.announcement-bar__slider a{color:inherit;padding:0 .375rem}.announcement-bar__navigation{background-color:rgba(0,0,0,0);padding:0;border:0;display:flex;align-items:center;justify-content:center}@media only screen and (max-width: 767px){.announcement-bar__navigation svg{width:20px;height:20px}}.announcement-bar__navigation svg{color:#fff}.announcement-bar__navigation.swiper-button-disabled{opacity:.3}.announcement-bar__navigation.swiper-button-lock{display:none}.announcement-bar__slide{font-size:0.75rem;line-height:160%;font-weight:500;margin-top:auto;margin-bottom:auto;display:block;text-align:center}.announcement-bar__close{background-color:rgba(0,0,0,0);padding:0;border:0;position:absolute;top:50%;transform:translateY(-50%);right:.5rem;display:flex;align-items:center;justify-content:center;z-index:1}@media only screen and (min-width: 768px){.announcement-bar__close{right:var(--container-side-space)}}@media only screen and (max-width: 767px){.announcement-bar__close svg{height:20px;width:20px}}.announcement-bar__close svg{color:#fff} 2431</style><size-getter 2432 name="announcement-bar" 2433 style="--bar-bg-color: #054040; --bar-text-color: #ffffff" 2434 > 2435 <announcement-bar class="announcement-bar__component" show> 2436 <div class="announcement-bar__inner"> 2437 <swiper-loader 2438 class="announcement-bar__slider" 2439 loaded-class="announcement-bar-slide-inited" 2440 > 2441 <button type="button" class="announcement-bar__navigation" data-announcement-bar-prev><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2442 <path d="M15 6L9 12L15 18" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 2443 </svg></button> 2444 <swiper-container 2445 init="false" 2446 navigation-prev-el="[data-announcement-bar-prev]" 2447 navigation-next-el="[data-announcement-bar-next]" 2448 slides-per-view="1" 2449 autoplay-delay="5000" 2450 ><swiper-slide class="announcement-bar__slide"><p>Free shipping on your first subscription order<strong> </strong>- <a href="/collections/all" title="Shop All Oral Care Products">shop now!</a></p></swiper-slide></swiper-container> 2451 <button type="button" class="announcement-bar__navigation" data-announcement-bar-next><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2452 <path d="M9 6L15 12L9 18" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 2453 </svg></button>
2454 </swiper-loader> 2455 <button data-announcement-bar-close class="announcement-bar__close" type="button"> 2456 <span class="visually-hidden">Close announcement bar</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2457 <path d="M17 7L7 17M17 17L7 7" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/> 2458 </svg></button> 2459 </div> 2460 </announcement-bar> 2461 </size-getter> 2462</div><div id="shopify-section-header" class="shopify-section"><style data-shopify>.header{background-color:#fff;transition:background-color .3s ease;position:relative;z-index:20}@media only screen and (min-width: 1160px){.header .header__tablet-visible{display:none}}@media only screen and (max-width: 1159px){.header{border-bottom:1px solid #f2f2f2}.header .header__desktop-visible{display:none}}@media only screen and (min-width: 1160px){.header.x-show{background-color:#fff;color:#000}}.header label[for]{cursor:pointer}.header__logo a{display:block;color:inherit}.header__logo span{display:flex;align-items:center;justify-content:center}.header__logo span:nth-child(2):not(.visually-hidden){display:none}.header__logo img{max-width:5.875rem;max-height:2rem}.header__utility{padding:.75rem 0;background-color:var(--header-utility-bg-color);color:var(--header-utility-text-color);display:none}@media only screen and (min-width: 1160px){.header__utility{display:block}}.header__mobile-bottom .header__utility{display:block}@media only screen and (min-width: 1160px){.header__mobile-bottom .header__utility{display:none}}.header__utility-container{width:100%;box-sizing:border-box;max-width:120rem;margin:0 auto;padding:0 var(--container-side-space)}.header__mobile-bottom .header__utility-container{padding:0}@media only screen and (min-width: 1160px){.header__locale-header{display:none}}.header__utility-menu{display:flex;justify-content:flex-end;align-items:center;gap:1.5rem}.header__utility-menu a{display:flex;align-items:center;gap:.375rem;font-size:.75rem;line-height:1.6;text-decoration:none;color:inherit}.header__utility-menu a span{padding-bottom:1px;border-bottom:1px solid rgba(0,0,0,0);transition:.3s ease}.header__utility-menu a:hover span{border-color:var(--header-utility-text-color)}.header__mobile-bottom .header__utility-menu{flex-direction:column;align-items:flex-start;gap:1rem}.header__mobile-bottom .header__utility-menu a{font-size:14px}.header__mobile-bottom{margin-top:auto;margin-inline:-1.125rem;margin-bottom:-1.125rem;padding-bottom:1.125rem;background-color:var(--header-utility-bg-color);color:var(--header-utility-text-color);display:flex;flex-direction:column}@media only screen and (min-width: 1160px){.header__mobile-bottom{display:none}}.header__mobile-bottom>div{padding-inline:1.125rem}.header__locale{z-index:21}@media only screen and (min-width: 1160px){.header__locale{position:relative}}@media only screen and (min-width: 1160px){.header__locale.x-show .header__locale-trigger svg:last-child{transform:rotate(180deg)}}.header__locale-trigger svg{transition:.3s ease;display:inline-block}@media only screen and (max-width: 1159px){.header__locale-trigger svg:last-child{transform:rotate(-90deg)}}.header__locale-form{display:block;overflow-y:auto;position:absolute;transform:scaleY(0);transition:.3s ease;right:0;background-color:#fff;border-bottom-left-radius:1rem;border-bottom-right-radius:1rem;border:1px solid #054040;border-top:0;margin-top:.5rem;transform-origin:top}@media only screen and (max-width: 1159px){.header__locale-form{left:0;bottom:0;top:0;z-index:24;transform:translateX(110%);background-color:#f6fffc;margin:0;border:0;border-radius:0}}.header__locale.x-show .header__locale-form{transform:scaleY(1)}@media only screen and (max-width: 1159px){.header__locale.x-show .header__locale-form{transform:translateX(0)}}.header__locale-form a{padding:1rem 1.5rem;font-size:.75rem;line-height:1.6;color:#1a1a1a;white-space:nowrap}.header__locale-form a:hover,.header__locale-form a[aria-current=true]{background-color:#d7fff2}.header__locale-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem}.header__locale-header button{background-color:rgba(0,0,0,0);padding:0;border:0;display:flex;align-items:center;gap:.5rem}.header__container{width:100%;box-sizing:border-box;max-width:120rem;margin:0 auto;padding:0 var(--container-side-space)}@media only screen and (max-width: 1159px){.header__container{padding-bottom:.75rem;padding-top:.75rem}}.header__inner{display:flex;align-items:center;justify-content:space-between}.header__drawer{position:absolute}@media only screen and (min-width: 1160px){.header__drawer{position:static}}
2462.header__drawer--close{background-color:rgba(0,0,0,0);padding:0;border:0;margin-left:auto}.header__drawer--close svg{height:20px;width:20px}.header__menu{display:flex;flex-direction:column;position:fixed;top:0;right:0;bottom:0;left:0;color:#000;background-color:#fff;transform:translateX(-110%);transition:.3s ease;z-index:22;padding:1rem 1.125rem;max-width:25rem}@media only screen and (max-width: 1159px){.header__menu{overflow:hidden;visibility:hidden}}@media only screen and (min-width: 1160px){.header__menu{max-width:100%;display:block;position:static;transform:none;padding:0;color:inherit;background-color:inherit}}.header__menu nav>ul{display:flex;gap:1rem;font-size:.875rem}@media only screen and (min-width: 1160px){.header__menu nav>ul{align-items:center}}@media only screen and (max-width: 1159px){.header__menu nav>ul{flex-direction:column;gap:0;transition:margin-left .3s;width:100%}.header--submenu-open .header__menu nav>ul{margin-left:-110%}}.header__menu.x-show{transform:translateX(0);visibility:visible}.menu-item.header__secondary-item>a{font-weight:600;color:#054040}@media only screen and (min-width: 1160px){.menu-item.header__secondary-item--first::before{content:"";display:inline-block;vertical-align:middle;width:1px;height:1.25rem;background:#f2f2f2;margin:0 2.5rem 0 1rem}}@media only screen and (max-width: 1159px){.menu-item.header__secondary-item--first{padding-top:1rem;border-top:1px solid #f2f2f2}}.menu-item.header__secondary-item--bg>a::after{display:none !important}.menu-item.header__secondary-item--bg .menu-item__link span{color:#054040;padding:.25rem .75rem;display:inline-block;background-color:#50fcce;transition:.3s ease;border-radius:1rem}.menu-item.header__secondary-item--bg:hover .menu-item__link::after{opacity:0}.body-header__menu-opened #gorgias-chat-container{display:none !important}
2462.header__mask{display:none}@media only screen and (max-width: 1159px){.header__mask{display:block;position:fixed;top:0;right:0;bottom:0;left:0;color:#000;opacity:0;visibility:hidden;background-color:#000;z-index:21;transition:.3s ease}.x-show+.header__mask{opacity:.3;visibility:visible}}.header__menu-header{margin-bottom:.5rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #f2f2f2}.header__login-button{margin-top:auto;transform:translateX(0);transition:transform .3s}.header--submenu-open .header__login-button{transform:translateX(-110%)}.header__actions{display:flex;align-items:center;gap:1.25rem}@media only screen and (min-width: 1160px){.header__actions{gap:1.5rem}}.header__actions svg{display:block;vertical-align:middle}.header__actions button{background-color:rgba(0,0,0,0);padding:0;border:0}.header__actions a{color:inherit}.header__search label{cursor:pointer}.header__search-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:19;pointer-events:none}.x-show.header .header__search-mask{pointer-events:initial}.header__search-container{box-sizing:border-box;position:absolute;width:100%;left:0;transition:opacity .5s ease-in-out;background-color:#fff;color:#054040;opacity:0;visibility:hidden;z-index:21}@media only screen and (min-width: 1160px){.header__search-container{width:100%;box-sizing:border-box;max-width:120rem;margin:0 auto;padding:0 var(--container-side-space);max-width:100%;margin-top:1rem;padding-top:1rem;padding-bottom:1rem;transform:scaleY(0);transform-origin:top}.x-show.header .header__search-container{transform:scaleY(1);opacity:1;visibility:visible}}@media only screen and (max-width: 1159px){.header__search-container{position:fixed;top:0;right:0;bottom:0;left:0;transform:translateX(-110%);padding:1.5rem 1.25rem;transition:transform .5s ease-in-out;opacity:1;visibility:hidden}.x-show.header .header__search-container{visibility:visible;transform:translateX(0)}}.header__search-container predictive-search form{position:relative;z-index:21}.header__cart{position:relative}.js-ajax-cart-not-empty .header__cart::after{position:absolute;content:"";display:block;width:.375rem;height:.375rem;border-radius:50%;background-color:#50fcce;right:0;top:2px}.cart-saver{background-color:#fff;position:fixed;z-index:19;width:100%;left:0;opacity:0;visibility:hidden;transition:.3s ease;display:block}.js-ajax-cart-not-empty .cart-saver{opacity:1;visibility:visible}.cart-saver__button{background-color:#50fcce;color:#054040;font-size:.875rem;width:100%;padding:.75rem;border:0;display:flex;align-items:center;justify-content:center;gap:.5rem;font-weight:600}.cart-saver__button svg:first-of-type{display:none}@media only screen and (max-width: 768px){.cart-saver__button svg:last-of-type{display:none}.cart-saver__button svg:first-of-type{display:inline}.cart-saver{top:calc(var(--announcement-bar-height) + var(--header-height));padding:0}.cart-saver__button{border-radius:0}} 2463.menu-item{position:relative;display:flex;align-items:center;justify-content:space-between;color:#054040}@media only screen and (max-width: 1159px){.menu-item{padding:1rem 0}}@media only screen and (min-width: 1160px){.menu-item{display:block}}.menu-item__submenu-back{display:flex;align-items:center;justify-content:center}.menu-item>label{padding-top:.5rem;padding-bottom:.5rem}.menu-item>label svg{width:20px;height:20px}.menu-item a{display:inline-block;color:var(--header-main-title-color, inherit);text-decoration:none}.menu-item>a{padding:1.375rem 0;position:relative;font-weight:var(--header-main-title-font-weight)}@media only screen and (max-width: 1159px){.menu-item>a{padding:0}}.menu-item>a::after{content:"";position:absolute;left:0;bottom:1rem;display:inline-block;width:100%;height:.125rem;background-color:currentcolor;transform-origin:right;transform:scaleX(0);transition:transform .3s ease-in-out}@media only screen and (max-width: 1159px){.menu-item>a::after{display:none}}.menu-item:hover a::after,.menu-item:focus-visible a::after{transform-origin:left;transform:scaleX(1)}.menu-item--highlight:hover a::after{opacity:0}
2463.menu-item__container{display:contents}@media only screen and (min-width: 1160px){.menu-item__submenu--mega .menu-item__container{display:flex;align-items:flex-start;gap:1.5rem}}.menu-item__link{font-size:calc(0.875rem*var(--header-main-title-size-adjust, 1))}@media only screen and (max-width: 1159px){.menu-item__link{font-size:1.125rem;line-height:150%;font-weight:600;letter-spacing:-0.0125rem;font-size:calc(1.125rem*var(--header-main-title-size-adjust, 1));display:inline-flex !important;align-items:center}}.menu-item__link--highlight span{color:#fff;padding:.25rem .75rem;display:inline-block;background-color:#054040;transition:.3s ease;border-radius:1rem}.menu-item__link--highlight:hover span{color:#000;background-color:#50fcce}.menu-item__link mark{font-size:0.75rem;line-height:140%;font-weight:600;text-transform:none;letter-spacing:0.2px;padding:.25rem .75rem;background-color:#50fcce;color:#054040;border-radius:6.25rem;margin-left:1rem}.menu-item__link-arrow{background-color:rgba(0,0,0,0);padding:0;border:0}@media only screen and (max-width: 1159px){.menu-item__subitem{padding:1rem 0;margin:0 !important}.menu-item__subitem:first-of-type{padding-top:0}}@media only screen and (min-width: 1160px){.menu-item__subitem--moved{display:none}}.menu-item__subitem--fake{display:none}@media only screen and (min-width: 1160px){.menu-item__subitem--fake{display:block}}.menu-item__submenu{transition:.3s ease;background-color:#fff;max-width:62rem}@media only screen and (min-width: 1160px){.menu-item__submenu{position:absolute;left:-1rem;padding:1.5rem 2.5rem;transform-origin:top;min-width:12.5rem;opacity:0;pointer-events:none;transition:opacity .3s ease}}@media only screen and (max-width: 1159px){.menu-item__submenu{-ms-overflow-style:none;scrollbar-width:none}.menu-item__submenu::-webkit-scrollbar-track{display:none}.menu-item__submenu::-webkit-scrollbar-thumb{display:none}.menu-item__submenu{position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;z-index:24;padding:1.5rem 1.25rem;padding-top:0;background-color:#fff;transform:translateX(110%);display:flex;flex-direction:column}.x-show>.menu-item__submenu{transform:translateX(0)}}.menu-item:hover .menu-item__submenu,.menu-item:focus-within .menu-item__submenu,.menu-item:focus-visible .menu-item__submenu{opacity:1;pointer-events:initial;visibility:visible}.menu-item__submenu .menu-item__submenu-list{display:flex;flex-direction:column;gap:1rem}@media only screen and (max-width: 1159px){.menu-item__submenu .menu-item__submenu-list{margin-bottom:2.5rem;gap:0}.menu-item__submenu .menu-item__submenu-list li{width:100%}}.menu-item__submenu a:not(.menu-promo)::before{content:"";position:absolute;width:100%;bottom:0;height:1.5px;background-color:currentcolor;transform-origin:right;transform:scaleX(0);transition:transform .3s ease-in-out}.menu-item__submenu a:not(.menu-promo):hover{text-decoration:none}.menu-item__submenu a:not(.menu-promo):hover::before{transform-origin:left;transform:scaleX(1)}.menu-item__submenu a:not(.menu-promo),.menu-item__submenu .menu-item__subitem:not(.menu-promo){position:relative;font-weight:var(--header-dropdown-sublink-font-weight);font-size:calc(0.875rem*var(--header-dropdown-sublink-size-adjust, 1))}@media only screen and (max-width: 1159px){.menu-item__submenu a:not(.menu-promo),.menu-item__submenu .menu-item__subitem:not(.menu-promo){margin-bottom:0 !important}}.menu-item__submenu a:not(.menu-promo):not(:last-child,:has(.menu-item__submenu-link)),.menu-item__submenu .menu-item__subitem:not(.menu-promo):not(:last-child,:has(.menu-item__submenu-link)){margin-bottom:1rem}@media only screen and (min-width: 1160px){.menu-item__submenu--promo-hidden .menu-item__promo{display:none}}@media only screen and (min-width: 1160px){.menu-item__submenu--mega{box-sizing:border-box;width:max-content;max-width:var(--mega-panel-max-width, calc(min(100vw, 120rem) - var(--container-side-space) * 2));padding:1.5rem 2rem 2.5rem;visibility:hidden}}.menu-item__submenu--mega .menu-item__submenu-list{margin-left:0}@media only screen and (min-width: 1160px){.menu-item__submenu--mega .menu-item__submenu-list{flex:0 0 auto;flex-direction:row;gap:1.5rem}.menu-item__submenu--mega .menu-item__submenu-list>li{flex:0 0 11.25rem;min-width:11.25rem;max-width:11.25rem}}.menu-item__categories{display:flex;flex-direction:column;gap:1rem}@media only screen and (max-width: 1159px){.menu-item__categories{gap:2rem}}@media only screen and (max-width: 1159px){.menu-item__submenu--mega.menu-item__submenu--has-categories .menu-item__subitem--categories,.menu-item__submenu--mega.menu-item__submenu--has-categories .menu-item__categories{display:contents}.menu-item__submenu--mega.menu-item__submenu--has-categories .menu-item__category-link{order:var(--m-order, 0);padding:1rem 0}.menu-item__submenu--mega.menu-item__submenu--has-categories .menu-item__submenu-list>.menu-item__subitem{order:var(--m-order, 0)}}.menu-item__category-link{display:inline-flex !important;align-items:center;gap:.5rem;margin-bottom:0 !important;text-decoration:none}.menu-item__category-link:hover{text-decoration:underline}.menu-item__category-badge{font-size:0.75rem;line-height:140%;font-weight:600;text-transform:none;letter-spacing:0.2px;display:inline-block;padding:.25rem .75rem;background-color:#50fcce;color:#054040;border-radius:6.25rem}.menu-item__promo{-ms-overflow-style:none;scrollbar-width:none}.menu-item__promo::-webkit-scrollbar-track{display:none}.menu-item__promo::-webkit-scrollbar-thumb{display:none}.menu-item__promo{display:flex;gap:1rem}@media only screen and (max-width: 1159px){.menu-item__promo{overflow-x:auto;margin-right:-1.25rem}.menu-item__promo:not(:empty){min-height:17.8125rem}}@media only screen and (min-width: 1160px){.menu-item__children{display:grid;gap:.75rem;grid-template-rows:repeat(9, auto);column-gap:6.25rem;grid-auto-flow:column}}@media only screen and (max-width: 1159px){.menu-item__children{box-sizing:border-box;width:100%;max-height:0;overflow:hidden;display:flex;gap:.75rem;flex-direction:column;transition:max-height .5s ease-out,margin .3s;
2463color:#1a1a1a}.x-show+.menu-item__children{transition-timing-function:ease-in;margin-top:1rem;max-height:40rem}}.menu-item__submenu-link{font-size:1.125rem;line-height:150%;font-weight:600;letter-spacing:-0.0125rem}@media(min-width: 992px){.menu-item__submenu-link{font-size:1.25rem}}.menu-item__submenu-link{display:inline-block;font-weight:var(--header-dropdown-title-font-weight) !important;color:var(--header-dropdown-content-color) !important;font-size:calc(0.875rem*var(--header-dropdown-title-size-adjust, 1)) !important}@media only screen and (min-width: 768px){.menu-item__submenu-link{font-size:calc(1.125rem*var(--header-dropdown-title-size-adjust, 1)) !important}}@media only screen and (min-width: 1160px){.menu-item__submenu-link{margin-bottom:1.15625rem}}@media only screen and (max-width: 1159px){.menu-item__submenu-link{margin-bottom:0 !important}}.menu-item__submenu-header{padding-top:1.5rem;padding-bottom:1.5rem;position:sticky;top:0;background-color:#fff;display:flex;align-items:center;justify-content:space-between;z-index:22}.menu-item__submenu-back{background-color:rgba(0,0,0,0);padding:0;border:0}.menu-item__submenu-back svg{margin-right:1rem}.menu-item__close{background-color:rgba(0,0,0,0);padding:0;border:0}.menu-item__submenu:not(:has(.menu-item__toggler--mega)) .menu-item__toggler--open{display:none}.menu-item__submenu-list>.menu-item__subitem:only-child>.menu-item__toggler--mega{display:none}.menu-item__toggler{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.menu-item__toggler--open button::after{transform:rotate(0) !important}.menu-item__toggler--mega{margin-bottom:0}.menu-item__toggler button svg{display:none}.menu-item__toggler button{background-color:rgba(0,0,0,0);padding:0;border:0;width:1.25rem;height:1.25rem;display:flex;align-items:center;justify-content:flex-end}.menu-item__toggler button::after,.menu-item__toggler button::before{content:"";display:inline-block;background-color:#000;width:.5rem;height:.0625rem;transition:.3s ease;margin-right:.5rem}.menu-item__toggler button::after{position:absolute;transform:rotate(90deg)}.menu-item__toggler.x-show>button::after{transform:rotate(0)} 2464</style><size-getter name="header"> 2465 <header-block 2466 2467 submenu-open-class="header--submenu-open" 2468 ><header style="--header-utility-bg-color: #d7fff2; --header-utility-text-color: #054040" data-header-block-header class="header"><div class="header__utility" > 2469 <div class="header__utility-container"> 2470 <nav> 2471 <ul class="header__utility-menu"><li > 2472 <a href="/pages/find-a-store"><img src="//www.getquip.com/cdn/shop/files/noun-location-123389_1.svg?v=1733142575&width=32" alt="" srcset="//www.getquip.com/cdn/shop/files/noun-location-123389_1.svg?v=1733142575&width=16 16w" width="16"><span>Store Locator</span> 2473 </a> 2474 </li><li > 2475 <a href="https://quippros.com/"><img src="//www.getquip.com/cdn/shop/files/noun-dentist-6055499_1.svg?v=1733142574&width=32" alt="" srcset="//www.getquip.com/cdn/shop/files/noun-dentist-6055499_1.svg?v=1733142574&width=16 16w" width="16"><span>Professionals</span> 2476 </a> 2477 </li></ul> 2478 </nav> 2479 </div> 2480 </div><div class="header__container"> 2481 <div class="header__inner"> 2482 <div class="header__actions header__tablet-visible"> 2483 <button type="button" data-x-target=".header__menu"> 2484 <span class="visually-hidden">Open mobile menu</span><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 2485 <path d="M3 7H17M3 13H17" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 2486 </svg></button><a href="/account/login"> 2487 <span class="visually-hidden">Login</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2488 <path d="M4 19.1111C6.07626 16.909 8.89513 15.5556 12 15.5556C15.1049 15.5556 17.9237 16.909 20 19.1111M16 8C16 10.2091 14.2091 12 12 12C9.79086 12 8 10.2091 8 8C8 5.79086 9.79086 4 12 4C14.2091 4 16 5.79086 16 8Z" stroke="#0B413E" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 2489 </svg></a></div> 2490 <div class="header__logo"> 2491<a href="/"><span><img src="//www.getquip.com/cdn/shop/files/wordmark_2.svg?v=1715199385&width=170" alt="quip - oral care products" srcset="//www.getquip.com/cdn/shop/files/wordmark_2.svg?v=1715199385&width=170 170w" width="170" height="58" loading="eager"></span><span class="visually-hidden">quip</span> 2492 </a></div><drawer-block class="header__drawer"> 2493 <div class="header__menu"> 2494 <div class="header__menu-header header__tablet-visible"> 2495 <button type="button" data-x-target=".header__menu" class="header__drawer
2495--close"> 2496 <span class="visually-hidden">Close mobile menu</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2497 <path d="M17 7L7 17M17 17L7 7" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/> 2498 </svg></button> 2499 </div> 2500 <nav> 2501 <ul> 2502<style data-shopify> 2503 #menu-item-shop-all-1 { 2504 --header-main-title-font-weight: 600; 2505 --header-dropdown-title-font-weight: 600; 2506 --header-dropdown-sublink-font-weight: 500; 2507 --header-main-title-color: #054040; 2508 --header-dropdown-content-color: #054040; 2509 --header-main-title-size-adjust: 1.0; 2510 --header-dropdown-title-size-adjust: 0.8; 2511 --header-dropdown-sublink-size-adjust: 1.0; 2512 } 2513 @media (max-width: 767px) { 2514 #menu-item-shop-all-1 { 2515 --header-main-title-font-weight: 600; 2516 --header-dropdown-title-font-weight: 600; 2517 --header-dropdown-sublink-font-weight: 500; 2518 --header-main-title-color: #054040; 2519 --header-dropdown-content-color: #054040; 2520 --header-main-title-size-adjust: 1.0; 2521 --header-dropdown-title-size-adjust: 1.0; 2522 --header-dropdown-sublink-size-adjust: 1.0; 2523 } 2524 } 2525</style> 2526 2527<li 2528 data-header-block-menu-item 2529 id="menu-item-shop-all-1" 2530 class="menu-item menu-item--mega" 2531 2532><a href="/collections/all" class="menu-item__link"> 2533 <span>Shop all</span></a> 2534 <button class="menu-item__link-arrow header__tablet-visible" data-x-target="#menu-item-shop-all-1"> 2535 <span class="visually-hidden">Open Shop all</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2536 <path d="M9 6L15 12L9 18" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 2537 </svg></button><div 2538 class="menu-item__submenu menu-item__submenu--mega menu-item__submenu--has-categories" 2539 id="menu-item-shop-all-1" 2540 > 2541 <div class="menu-item__submenu-header header__tablet-visible"> 2542 <button 2543 class="menu-item__submenu-back" 2544 data-x-target="#menu-item-shop-all-1" 2545 ><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2546 <path d="M15 6L9 12L15 18" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 2547 </svg>Back</button> 2548 <button 2549 type="button" 2550 data-x-target=".header__menu" 2551 class="menu-item__close" 2552 > 2553 <span class="visually-hidden">Close mobile menu</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2554 <path d="M17 7L7 17M17 17L7 7" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/> 2555 </svg></button> 2556 </div><div class="menu-item__container"> 2557 <ul class="menu-item__submenu-list" role="list" tabindex="-1"><li class="menu-item__subitem menu-item__subitem--categories"> 2558 <div class="menu-item__categories"><a 2559 href="/pages/bundles" 2560 class="menu-item__category-link menu-item__submenu-link" 2561 2562 style="--m-order: 3" 2563 2564 > 2565 <span>Bundles</span></a><a 2566 href="/collections/whitening-strips" 2567 class="menu-item__category-link menu-item__submenu-link" 2568 2569 style="--m-order: 4" 2570 2571 > 2572 <span>Whitening Strips</span></a><a 2573 href="/collections/toothpaste" 2574 class="menu-item__category-link menu-item__submenu-link" 2575 2576 style="--m-order: 6" 2577 2578 > 2579 <span>Toothpaste</span></a><a 2580 href="/collections/clearance" 2581 class="menu-item__category-link menu-item__submenu-link" 2582 2583 style="--m-order: 8" 2584 2585 >
2586 <span>Clearance</span></a></div> 2587 </li><li 2588 class="menu-item__subitem" 2589 2590 style="--m-order: 1" 2591 2592 data-header-block-has-children="true" 2593 ><div 2594 class="menu-item__toggler menu-item__toggler--mega" 2595 id="menu-item-sub-toothbrushes-1-1" 2596 > 2597 <a class="menu-item__submenu-link" href="/collections/toothbrushes">Toothbrushes</a><button 2598 type="button" 2599 data-x-target="#menu-item-sub-toothbrushes-1-1" 2600 class="header__tablet-visible" 2601 > 2602 <span class="visually-hidden">Close mobile submenu</span> 2603 </button></div><ul 2604 class="menu-item__children" 2605 role="list" 2606 tabindex="-1" 2607 ><li> 2608 <a href="/products/air-quip-ultra-lite-sonic-electric-toothbrush"> 2609 Ultra Lite Sonic Electric Toothbrush 2610 </a> 2611 </li><li> 2612 <a href="/products/stone-quip-ultra-next-generation-smart-sonic-electric-toothbrush"> 2613 Ultra Smart Sonic Toothbrush 2614 </a> 2615 </li><li> 2616 <a href="/collections/rev-smart-oscillating-toothbrush"> 2617 NEW Rev Smart Oscillating Toothbrush 2618 </a> 2619 </li><li> 2620 <a href="/products/blue-stone-oscillating-toothbrush"> 2621 Rev Oscillating Toothbrush 2622 </a> 2623 </li><li> 2624 <a href="/collections/sonic-battery-adult-toothbrushes"> 2625 Sonic Battery Adult Toothbrushes 2626 </a> 2627 </li><li> 2628 <a href="/collections/sonic-battery-kids-toothbrushes"> 2629 Sonic Battery Kids Toothbrushes 2630 </a> 2631 </li><li> 2632 <a href="/collections/smart-toothbrush"> 2633 Smart Sonic Toothbrushes 2634 </a> 2635 </li></ul></li><li 2636 class="menu-item__subitem" 2637 2638 style="--m-order: 2" 2639 2640 data-header-block-has-children="true" 2641 ><div 2642 class="menu-item__toggler menu-item__toggler--mega" 2643 id="menu-item-sub-refills-2-1" 2644 > 2645 <a class="menu-item__submenu-link" href="https://www.getquip.com/collections/refills">Refills</a><button 2646 type="button" 2647 data-x-target="#menu-item-sub-refills-2-1" 2648 class="header__tablet-visible" 2649 > 2650 <span class="visually-hidden">Close mobile submenu</span> 2651 </button></div><ul 2652 class="menu-item__children" 2653 role="list" 2654 tabindex="-1" 2655 ><li> 2656 <a href="/products/white-rev-gum-care-oscillating-brush-head"> 2657 NEW Rev Gum Care Oscillating Brush Head Refill 2658 </a> 2659 </li><li> 2660 <a href="/products/black-quip-ultra-easyclick-brush-pod"> 2661 Ultra Sonic Toothbrush Refills 2662 </a> 2663 </li><li> 2664 <a href="/products/black-rev-oscillating-brush-head"> 2665 Rev Oscillating Refills 2666 </a> 2667 </li><li> 2668 <a href="https://www.getquip.com/collections/adult-brush-head-refills"> 2669 Adult Brush Head Refills 2670 </a> 2671 </li><li> 2672 <a href="https://www.getquip.com/collections/kids-brush-head-refills"> 2673 Kids Brush Head Refills 2674 </a> 2675 </li><li> 2676 <a href="https://www.getquip.com/collections/floss-refills"> 2677 Floss Refills 2678 </a> 2679 </li><li> 2680 <a href="/collections/bundle-packs"> 2681 SAVE with Bundle Packs 2682 </a> 2683 </li></ul></li><li 2684 class="menu-item__subitem" 2685 2686 style="--m-order: 5" 2687 2688 data-header-block-has-children="true" 2689 ><div 2690 class="menu-item__toggler menu-item__toggler--mega" 2691 id="menu-item-sub-flossers-3-1" 2692 > 2693 <a class="menu-item__submenu-link" href="/collections/floss">Flossers</a><button 2694 type="button" 2695 data-x-target="#menu-item-sub-flossers-3-1" 2696 class="header__tablet-visible" 2697 >
2698 <span class="visually-hidden">Close mobile submenu</span> 2699 </button></div><ul 2700 class="menu-item__children" 2701 role="list" 2702 tabindex="-1" 2703 ><li> 2704 <a href="/products/copper-metal-rechargeable-cordless-water-flosser"> 2705 Water Flossers 2706 </a> 2707 </li><li> 2708 <a href="/products/woven-string-floss-mint"> 2709 NEW Woven String Floss 2710 </a> 2711 </li><li> 2712 <a href="https://www.getquip.com/products/black-metal-refillable-floss-string?variant=40980845822026"> 2713 Pop-Up String Floss Dispenser 2714 </a> 2715 </li></ul></li><li 2716 class="menu-item__subitem" 2717 2718 style="--m-order: 7" 2719 2720 data-header-block-has-children="true" 2721 ><div 2722 class="menu-item__toggler menu-item__toggler--mega" 2723 id="menu-item-sub-accessories-4-1" 2724 > 2725 <a class="menu-item__submenu-link" href="/collections/accessories">Accessories</a><button 2726 type="button" 2727 data-x-target="#menu-item-sub-accessories-4-1" 2728 class="header__tablet-visible" 2729 > 2730 <span class="visually-hidden">Close mobile submenu</span> 2731 </button></div><ul 2732 class="menu-item__children" 2733 role="list" 2734 tabindex="-1" 2735 ><li> 2736 <a href="/collections/ultra-lite-sonic-accessories"> 2737 NEW Ultra Lite Accessories 2738 </a> 2739 </li><li> 2740 <a href="/collections/ultra-smart-sonic-accessories"> 2741 Ultra Smart Sonic Accessories 2742 </a> 2743 </li><li> 2744 <a href="/collections/rev-oscillating-accessories"> 2745 Rev Oscillating Accessories 2746 </a> 2747 </li><li> 2748 <a href="https://www.getquip.com/products/gray-refresh-bag"> 2749 Refresh Bag 2750 </a> 2751 </li><li> 2752 <a href="/collections/mounts"> 2753 Mounts 2754 </a> 2755 </li><li> 2756 <a href="/products/gift-card"> 2757 Gift Cards 2758 </a> 2759 </li></ul></li></ul></div> 2760 </div></li> 2761 2762<style data-shopify> 2763 #menu-item-toothbrushes-2 { 2764 --header-main-title-font-weight: 600; 2765 --header-dropdown-title-font-weight: 600; 2766 --header-dropdown-sublink-font-weight: 500; 2767 --header-main-title-color: #054040; 2768 --header-dropdown-content-color: #054040; 2769 --header-main-title-size-adjust: 1.0; 2770 --header-dropdown-title-size-adjust: 0.8; 2771 --header-dropdown-sublink-size-adjust: 1.0; 2772 } 2773 @media (max-width: 767px) { 2774 #menu-item-toothbrushes-2 { 2775 --header-main-title-font-weight: 600; 2776 --header-dropdown-title-font-weight: 600; 2777 --header-dropdown-sublink-font-weight: 500; 2778 --header-main-title-color: #054040; 2779 --header-dropdown-content-color: #054040; 2780 --header-main-title-size-adjust: 1.0; 2781 --header-dropdown-title-size-adjust: 1.0; 2782 --header-dropdown-sublink-size-adjust: 1.0; 2783 } 2784 } 2785</style> 2786 2787<li 2788 data-header-block-menu-item 2789 id="menu-item-toothbrushes-2" 2790 class="menu-item menu-item--mega" 2791 2792><a href="/collections/toothbrushes" class="menu-item__link"> 2793 <span>Toothbrushes</span></a> 2794 <button class="menu-item__link-arrow header__tablet-visible" data-x-target="#menu-item-toothbrushes-2"> 2795 <span class="visually-hidden">Open Toothbrushes</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2796 <path d="M9 6L15 12L9 18" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 2797 </svg></button><div 2798 class="menu-item__submenu menu-item__submenu--mega menu-item__submenu--has-categories" 2799 id="menu-item-toothbrushes-2" 2800 > 2801 <div class="menu-item__submenu-header header__tablet-visible"> 2802 <button 2803 class="menu-item__submenu-back" 2804 data-x-target="#menu-item-toothbrushes-2" 2805 ><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2806 <path d="M15 6L9 12L15 18" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 2807 </svg>Back</button> 2808 <button 2809 type="button" 2810 data-x-target=".header__menu" 2811 class="menu-item__close" 2812 >
2813 <span class="visually-hidden">Close mobile menu</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2814 <path d="M17 7L7 17M17 17L7 7" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/> 2815 </svg></button> 2816 </div><div class="menu-item__container"> 2817 <ul class="menu-item__submenu-list" role="list" tabindex="-1"><li class="menu-item__subitem menu-item__subitem--categories"> 2818 <div class="menu-item__categories"><a 2819 href="/collections/toothbrushes" 2820 class="menu-item__category-link menu-item__submenu-link" 2821 2822 > 2823 <span>Shop All Toothbrushes</span></a></div> 2824 </li><li 2825 class="menu-item__subitem" 2826 2827 data-header-block-has-children="true" 2828 ><div 2829 class="menu-item__toggler menu-item__toggler--mega" 2830 id="menu-item-sub-electric-toothbrushes-1-2" 2831 > 2832 <a class="menu-item__submenu-link" href="/collections/toothbrushes">Electric Toothbrushes</a><button 2833 type="button" 2834 data-x-target="#menu-item-sub-electric-toothbrushes-1-2" 2835 class="header__tablet-visible" 2836 > 2837 <span class="visually-hidden">Close mobile submenu</span> 2838 </button></div><ul 2839 class="menu-item__children" 2840 role="list" 2841 tabindex="-1" 2842 ><li> 2843 <a href="/products/air-quip-ultra-lite-sonic-electric-toothbrush"> 2844 Ultra Lite Sonic Electric Toothbrush 2845 </a> 2846 </li><li> 2847 <a href="https://www.getquip.com/products/stone-quip-ultra-next-generation-smart-sonic-electric-toothbrush?variant=41852992028746"> 2848 Ultra Smart Sonic Toothbrush 2849 </a> 2850 </li><li> 2851 <a href="/products/blue-stone-oscillating-toothbrush"> 2852 Rev Oscillating Toothbrush 2853 </a> 2854 </li><li> 2855 <a href="/collections/sonic-battery-adult-toothbrushes"> 2856 Sonic Battery Adult Toothbrushes 2857 </a> 2858 </li><li> 2859 <a href="/collections/sonic-battery-kids-toothbrushes"> 2860 Sonic Battery Kids Toothbrushes 2861 </a> 2862 </li></ul></li><li 2863 class="menu-item__subitem" 2864 2865 data-header-block-has-children="true" 2866 ><div 2867 class="menu-item__toggler menu-item__toggler--mega" 2868 id="menu-item-sub-smart-toothbrushes-2-2" 2869 > 2870 <a class="menu-item__submenu-link" href="https://www.getquip.com/collections/smart-sonic-toothbrush">Smart Toothbrushes</a><button 2871 type="button" 2872 data-x-target="#menu-item-sub-smart-toothbrushes-2-2" 2873 class="header__tablet-visible" 2874 > 2875 <span class="visually-hidden">Close mobile submenu</span> 2876 </button></div><ul 2877 class="menu-item__children" 2878 role="list" 2879 tabindex="-1" 2880 ><li> 2881 <a href="/collections/rev-smart-oscillating-toothbrush"> 2882 NEW Rev Smart Oscillating Toothbrush 2883 </a> 2884 </li><li> 2885 <a href="https://www.getquip.com/products/stone-quip-ultra-next-generation-smart-sonic-electric-toothbrush?variant=41852992028746"> 2886 Ultra Smart Sonic Toothbrush 2887 </a> 2888 </li><li> 2889 <a href="/collections/smart-rechargeable-sonic-toothbrush"> 2890 Smart Rechargeable Sonic Toothbrush 2891 </a> 2892 </li></ul></li></ul></div> 2893 </div></li> 2894 2895<style data-shopify> 2896 #menu-item-flossing-3 {
2897 --header-main-title-font-weight: 600; 2898 --header-dropdown-title-font-weight: 600; 2899 --header-dropdown-sublink-font-weight: 500; 2900 --header-main-title-color: #054040; 2901 --header-dropdown-content-color: #054040; 2902 --header-main-title-size-adjust: 1.0; 2903 --header-dropdown-title-size-adjust: 0.8; 2904 --header-dropdown-sublink-size-adjust: 1.0; 2905 } 2906 @media (max-width: 767px) { 2907 #menu-item-flossing-3 { 2908 --header-main-title-font-weight: 600; 2909 --header-dropdown-title-font-weight: 600; 2910 --header-dropdown-sublink-font-weight: 500; 2911 --header-main-title-color: #054040; 2912 --header-dropdown-content-color: #054040; 2913 --header-main-title-size-adjust: 1.0; 2914 --header-dropdown-title-size-adjust: 1.0; 2915 --header-dropdown-sublink-size-adjust: 1.0; 2916 } 2917 } 2918</style> 2919 2920<li 2921 data-header-block-menu-item 2922 id="menu-item-flossing-3" 2923 class="menu-item menu-item--mega" 2924 2925><a href="https://www.getquip.com/collections/floss" class="menu-item__link"> 2926 <span>Flossing</span></a> 2927 <button class="menu-item__link-arrow header__tablet-visible" data-x-target="#menu-item-flossing-3"> 2928 <span class="visually-hidden">Open Flossing</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2929 <path d="M9 6L15 12L9 18" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 2930 </svg></button><div 2931 class="menu-item__submenu menu-item__submenu--mega menu-item__submenu--has-promo" 2932 id="menu-item-flossing-3" 2933 > 2934 <div class="menu-item__submenu-header header__tablet-visible"> 2935 <button 2936 class="menu-item__submenu-back" 2937 data-x-target="#menu-item-flossing-3" 2938 ><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2939 <path d="M15 6L9 12L15 18" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 2940 </svg>Back</button> 2941 <button 2942 type="button" 2943 data-x-target=".header__menu" 2944 class="menu-item__close" 2945 > 2946 <span class="visually-hidden">Close mobile menu</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2947 <path d="M17 7L7 17M17 17L7 7" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/> 2948 </svg></button> 2949 </div><div class="menu-item__container"> 2950 <ul class="menu-item__submenu-list" role="list" tabindex="-1"><li 2951 class="menu-item__subitem" 2952 2953 data-header-block-has-children="false" 2954 ><div 2955 class="menu-item__toggler menu-item__toggler--mega" 2956 id="menu-item-sub-shop-all-flossers-1-3" 2957 > 2958 <a class="menu-item__submenu-link" href="/collections/floss">Shop All Flossers</a></div></li><li 2959 class="menu-item__subitem" 2960 2961 data-header-block-has-children="false" 2962 ><div 2963 class="menu-item__toggler menu-item__toggler--mega" 2964 id="menu-item-sub-water-flossers-2-3" 2965 > 2966 <a class="menu-item__submenu-link" href="https://www.getquip.com/products/all-black-metal-rechargeable-cordless-water-flosser?collection=20-off-water-flossers-gum-mints&variant=40980196786250">Water Flossers</a></div></li><li 2967 class="menu-item__subitem" 2968 2969 data-header-block-has-children="false" 2970 ><div 2971 class="menu-item__toggler menu-item__toggler--mega" 2972 id="menu-item-sub-new-woven-string-floss-3-3" 2973 > 2974 <a class="menu-item__submenu-link" href="/products/woven-string-floss-mint">NEW Woven String Floss</a></div></li><li 2975 class="menu-item__subitem" 2976 2977 data-header-block-has-children="false" 2978 ><div 2979 class="menu-item__toggler menu-item__toggler--mega" 2980 id="menu-item-sub-pop-up-string-floss-dispenser-4-3" 2981 > 2982 <a class="menu-item__submenu-link" href="/products/copper-metal-pop-up-string-floss-dispenser">Pop-Up String Floss Dispenser</a></div></li><li 2983 class="menu-item__subitem" 2984 2985 data-header-block-has-children="false" 2986 ><div 2987 class="menu-item__toggler menu-item__toggler--mega" 2988 id="menu-item-sub-floss-refills-5-3" 2989 > 2990 <a class="menu-item__submenu-link" href="/collections/floss-refills">Floss Refills</a></div></li></ul><div class="menu-item__promo"> 2991 2992<link 2993 href="//www.getquip.com/cdn/shop/t/257/assets/css-menu-promo.min.css?v=111844490067551472261790020226" 2994 rel="stylesheet" 2995 type="text/css" 2996 onload="this.onload=null;if(document.querySelector('link[href=\'//www.getquip.com/cdn/shop/t/257/assets/css-menu-promo.min.css?v=111844490067551472261790020226\']') !== this) this.remove()" 2997 ><a 2998 href="/products/midnight-rechargeable-cordless-water-flosser" 2999 class="menu-promo " 3000 style="--promo-overlay-opacity: 0.2; --promo-font-color: #ffffff; --promo-mobile-font-color: #252827" 3001 ><media-loader class="menu-promo__image"><img src="//www.getquip.com/cdn/shop/files/Megamenu_D_2_8362c98e-1dcc-4c73-978b-767df2863a6e.jpg?v=1788960645&width=600" alt="" srcset="//www.getquip.com/cdn/shop/files/Megamenu_D_2_8362c98e-1dcc-4c73-978b-767df2863a6e.jpg?v=1788960645&width=352 352w, //www.getquip.com/cdn/shop/files/Megamenu_D_2_8362c98e-1dcc-4c73-978b-767df2863a6e.jpg?v=1788960645&width=600 600w" width="600" height="800" loading="lazy"></media-loader><media-loader class="menu-promo__image menu-promo__image--mobile"><img src="//www.getquip.com/cdn/shop/files/Megamenu_M_2_4d2263a0-b093-4d11-9726-72bd55cfb7d9.jpg?v=1788960661&width=600" alt="" srcset="//www.getquip.com/cdn/shop/files/Megamenu_M_2_4d2263a0-b093-4d11-9726-72bd55cfb7d9.jpg?v=1788960661&width=352 352w, //www.getquip.com/cdn/shop/files/Megamenu_M_2_4d2263a0-b093-4d11-9726-72bd55cfb7d9.jpg?v=1788960661&width=600 600w" width="600" height="600" loading="lazy"></media-loader><div class="menu-promo__content">
3002 <span></span><div class="secondary-button">Shop now</div></div> 3003 </a> 3004</div></div> 3005 </div></li> 3006 3007<style data-shopify> 3008 #menu-item-whitening-and-care-4 { 3009 --header-main-title-font-weight: 600; 3010 --header-dropdown-title-font-weight: 600; 3011 --header-dropdown-sublink-font-weight: 500; 3012 --header-main-title-color: #054040; 3013 --header-dropdown-content-color: #054040; 3014 --header-main-title-size-adjust: 1.0; 3015 --header-dropdown-title-size-adjust: 0.8; 3016 --header-dropdown-sublink-size-adjust: 1.0; 3017 } 3018 @media (max-width: 767px) { 3019 #menu-item-whitening-and-care-4 { 3020 --header-main-title-font-weight: 600; 3021 --header-dropdown-title-font-weight: 600; 3022 --header-dropdown-sublink-font-weight: 500; 3023 --header-main-title-color: #054040; 3024 --header-dropdown-content-color: #054040; 3025 --header-main-title-size-adjust: 1.0; 3026 --header-dropdown-title-size-adjust: 1.0; 3027 --header-dropdown-sublink-size-adjust: 1.0; 3028 } 3029 } 3030</style> 3031 3032<li 3033 data-header-block-menu-item 3034 id="menu-item-whitening-and-care-4" 3035 class="menu-item menu-item--mega" 3036 3037><a href="https://www.getquip.com/collections/whitening-care" class="menu-item__link"> 3038 <span>Whitening and Care</span></a> 3039 <button class="menu-item__link-arrow header__tablet-visible" data-x-target="#menu-item-whitening-and-care-4"> 3040 <span class="visually-hidden">Open Whitening and Care</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3041 <path d="M9 6L15 12L9 18" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 3042 </svg></button><div 3043 class="menu-item__submenu menu-item__submenu--mega menu-item__submenu--has-promo menu-item__submenu--has-categories" 3044 id="menu-item-whitening-and-care-4" 3045 > 3046 <div class="menu-item__submenu-header header__tablet-visible"> 3047 <button 3048 class="menu-item__submenu-back" 3049 data-x-target="#menu-item-whitening-and-care-4" 3050 ><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3051 <path d="M15 6L9 12L15 18" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 3052 </svg>Back</button> 3053 <button 3054 type="button" 3055 data-x-target=".header__menu" 3056 class="menu-item__close" 3057 > 3058 <span class="visually-hidden">Close mobile menu</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3059 <path d="M17 7L7 17M17 17L7 7" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/> 3060 </svg></button> 3061 </div><div class="menu-item__container"> 3062 <ul class="menu-item__submenu-list" role="list" tabindex="-1"><li class="menu-item__subitem menu-item__subitem--categories"> 3063 <div class="menu-item__categories"><a 3064 href="/collections/toothpaste" 3065 class="menu-item__category-link menu-item__submenu-link" 3066 3067 > 3068 <span>Toothpaste</span></a><a 3069 href="/collections/whitening-strips" 3070 class="menu-item__category-link menu-item__submenu-link" 3071 3072 > 3073 <span>Whitening Strips</span></a></div> 3074 </li><li 3075 class="menu-item__subitem" 3076 3077 data-header-block-has-children="true" 3078 ><div 3079 class="menu-item__toggler menu-item__toggler--mega x-show" 3080 id="menu-item-sub-accessories-1-4" 3081 > 3082 <a class="menu-item__submenu-link" href="https://www.getquip.com/collections/accessories">Accessories</a><button 3083 type="button" 3084 data-x-target="#menu-item-sub-accessories-1-4" 3085 class="header__tablet-visible" 3086 > 3087 <span class="visually-hidden">Close mobile submenu</span> 3088 </button></div><ul 3089 class="menu-item__children" 3090 role="list" 3091 tabindex="-1" 3092 ><li> 3093 <a href="https://www.getquip.com/collections/accessories"> 3094 Shop All Accessories 3095 </a> 3096 </li><li> 3097 <a href="/collections/ultra-lite-sonic-accessories"> 3098 NEW Ultra Lite Accessories 3099 </a> 3100 </li><li> 3101 <a href="/collections/ultra-smart-sonic-accessories"> 3102 Ultra Smart Sonic Accessories 3103 </a> 3104 </li><li> 3105 <a href="/collections/rev-oscillating-accessories"> 3106 Rev Oscillating Accessories 3107 </a> 3108 </li><li> 3109 <a href="/collections/refresh-bag"> 3110 Refresh Bag 3111 </a> 3112 </li><li> 3113 <a href="/collections/mounts"> 3114 Mounts 3115 </a> 3116 </li><li> 3117 <a href="https://www.getquip.com/products/gift-card?variant=40980204060746"> 3118 Gift Cards 3119 </a> 3120 </li></ul></li></ul><div class="menu-item__promo"> 3121 3122<link 3123 href="//www.getquip.com/cdn/shop/t/257/assets/css-menu-promo.min.css?v=111844490067551472261790020226" 3124 rel="stylesheet" 3125 type="text/css" 3126 onload="this.onload=null;if(document.querySelector('link[href=\'//www.getquip.com/cdn/shop/t/257/assets/css-menu-promo.min.css?v=111844490067551472261790020226\']') !== this) this.remove()" 3127 ><a 3128 href="/products/whitening-toothpaste" 3129 class="menu-promo " 3130 style="--promo-overlay-opacity: 0.2; --promo-font-color: #ffffff; --promo-mobile-font-color: #054040" 3131 ><media-loader class="menu-promo__image"><img src="//www.getquip.com/cdn/shop/files/2608_Whitening_Paste_DTC_LaunchMegamenu_D.jpg?v=1788985515&width=600" alt="" srcset="//www.getquip.com/cdn/shop/files/2608_Whitening_Paste_DTC_LaunchMegamenu_D.jpg?v=1788985515&width=352 352w, //www.getquip.com/cdn/shop/files/2608_Whitening_Paste_DTC_LaunchMegamenu_D.jpg?v=1788985515&width=600 600w" width="600" height="800" loading="lazy"></media-loader><media-loader class="menu-promo__image menu-promo__image--mobile"><img src="//www.getquip.com/cdn/shop/files/2608_Whitening_Paste_DTC_LaunchMegamenu_M.png?v=1788985552&width=600" alt="" srcset="//www.getquip.com/cdn/shop/files/2608_Whitening_Paste_DTC_LaunchMegamenu_M.png?v=1788985552&width=352 352w, //www.getquip.com/cdn/shop/files/2608_Whitening_Paste_DTC_LaunchMegamenu_M.png?v=1788985552&width=600 600w" width="600" height="600" loading="lazy"></media-loader><div class="menu-promo__content">
3132 <span>NEW! Whitening Toothpaste</span><div class="secondary-button">Shop now</div></div> 3133 </a> 3134</div></div> 3135 </div></li> 3136 3137<style data-shopify> 3138 #menu-item-brush-heads-5 { 3139 --header-main-title-font-weight: 600; 3140 --header-dropdown-title-font-weight: 600; 3141 --header-dropdown-sublink-font-weight: 500; 3142 --header-main-title-color: #054040; 3143 --header-dropdown-content-color: #054040; 3144 --header-main-title-size-adjust: 1.0; 3145 --header-dropdown-title-size-adjust: 0.8; 3146 --header-dropdown-sublink-size-adjust: 1.0; 3147 } 3148 @media (max-width: 767px) { 3149 #menu-item-brush-heads-5 { 3150 --header-main-title-font-weight: 600; 3151 --header-dropdown-title-font-weight: 600; 3152 --header-dropdown-sublink-font-weight: 500; 3153 --header-main-title-color: #054040; 3154 --header-dropdown-content-color: #054040; 3155 --header-main-title-size-adjust: 1.0; 3156 --header-dropdown-title-size-adjust: 1.0; 3157 --header-dropdown-sublink-size-adjust: 1.0; 3158 } 3159 } 3160</style> 3161 3162<li 3163 data-header-block-menu-item 3164 id="menu-item-brush-heads-5" 3165 class="menu-item" 3166 3167><a href="https://www.getquip.com/collections/refills?filter.p.product_type=Toothbrush+Replacement+Heads&filter.v.price.gte=&filter.v.price.lte=&sort_by=manual" class="menu-item__link"> 3168 <span>Brush Heads</span><mark class="header__tablet-visible">Subscribe & Save!</mark></a> 3169 <button class="menu-item__link-arrow header__tablet-visible" data-x-target="#menu-item-brush-heads-5"> 3170 <span class="visually-hidden">Open Brush Heads</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3171 <path d="M9 6L15 12L9 18" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 3172 </svg></button><div 3173 class="menu-item__submenu" 3174 id="menu-item-brush-heads-5" 3175 > 3176 <div class="menu-item__submenu-header header__tablet-visible"> 3177 <button 3178 class="menu-item__submenu-back" 3179 data-x-target="#menu-item-brush-heads-5" 3180 ><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3181 <path d="M15 6L9 12L15 18" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 3182 </svg>Back</button> 3183 <button 3184 type="button" 3185 data-x-target=".header__menu" 3186 class="menu-item__close" 3187 > 3188 <span class="visually-hidden">Close mobile menu</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3189 <path d="M17 7L7 17M17 17L7 7" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/> 3190 </svg></button> 3191 </div><div class="menu-item__toggler menu-item__toggler--open header__tablet-visible"><a href="https://www.getquip.com/collections/refills?filter.p.product_type=Toothbrush+Replacement+Heads&filter.v.price.gte=&filter.v.price.lte=&sort_by=manual" class="menu-item__link"> 3192 <span>Brush Heads</span><mark class="header__tablet-visible">Subscribe & Save!</mark></a> 3193 <button class="menu-item__link-arrow header__tablet-visible" data-x-target="#menu-item-brush-heads-5"> 3194 <span class="visually-hidden">Open Brush Heads</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3195 <path d="M9 6L15 12L9 18" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 3196 </svg></button></div><div class="menu-item__container"> 3197 <ul class="menu-item__submenu-list" role="list" tabindex="-1"><li 3198 class="menu-item__subitem" 3199 3200 data-header-block-has-children="false" 3201 ><a href="/products/black-quip-ultra-easyclick-brush-pod"> 3202 Ultra EasyClick Brush Pod Refill Head 3203 </a></li><li 3204 class="menu-item__subitem" 3205 3206 data-header-block-has-children="false" 3207 ><a href="/collections/rev-gum-care-brush-head"> 3208 NEW Rev Gum Care Oscillating Brush Head Refill 3209 </a></li><li 3210 class="menu-item__subitem" 3211 3212 data-header-block-has-children="false" 3213 ><a href="/products/white-rev-oscillating-brush-head"> 3214 Rev Oscillating Brush Head Refill 3215 </a></li><li 3216 class="menu-item__subitem" 3217 3218 data-header-block-has-children="false" 3219 ><a href="https://www.getquip.com/products/green-stripe-standard-soft-brush-head-refill?variant=41684618608714"> 3220 Sonic Brush Head Refill 3221 </a></li><li 3222 class="menu-item__subitem" 3223 3224 data-header-block-has-children="false" 3225 ><a href="/products/whitening-brush-head-refill"> 3226 Whitening Brush Head Refill 3227 </a></li><li 3228 class="menu-item__subitem" 3229 3230 data-header-block-has-children="false" 3231 ><a href="https://www.getquip.com/products/white-extra-soft-brush-head-refill"> 3232 Extra Soft Brush Head Refill 3233 </a></li><li 3234 class="menu-item__subitem" 3235 3236 data-header-block-has-children="false" 3237 ><a href="/products/green-stripe-kids-soft-brush-head-refill"> 3238 Kid Sonic Brush Head Refill 3239 </a></li></ul></div> 3240 </div></li> 3241 3242<style data-shopify> 3243 #menu-item-discover-1-secondary {
3244 --header-main-title-font-weight: 600; 3245 --header-dropdown-title-font-weight: 600; 3246 --header-dropdown-sublink-font-weight: 500; 3247 --header-main-title-color: #054040; 3248 --header-dropdown-content-color: #054040; 3249 --header-main-title-size-adjust: 1.0; 3250 --header-dropdown-title-size-adjust: 1.0; 3251 --header-dropdown-sublink-size-adjust: 1.0; 3252 } 3253 @media (max-width: 767px) { 3254 #menu-item-discover-1-secondary { 3255 --header-main-title-font-weight: 600; 3256 --header-dropdown-title-font-weight: 600; 3257 --header-dropdown-sublink-font-weight: 500; 3258 --header-main-title-color: #054040; 3259 --header-dropdown-content-color: #054040; 3260 --header-main-title-size-adjust: 1.0; 3261 --header-dropdown-title-size-adjust: 1.0; 3262 --header-dropdown-sublink-size-adjust: 1.0; 3263 } 3264 } 3265</style> 3266 3267<li 3268 data-header-block-menu-item 3269 id="menu-item-discover-1-secondary" 3270 class="menu-item menu-item--mega header__secondary-item header__secondary-item--first" 3271 3272><a href="/pages/quip-perks" class="menu-item__link"> 3273 <span>Discover</span></a> 3274 <button class="menu-item__link-arrow header__tablet-visible" data-x-target="#menu-item-discover-1-secondary"> 3275 <span class="visually-hidden">Open Discover</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3276 <path d="M9 6L15 12L9 18" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 3277 </svg></button><div 3278 class="menu-item__submenu menu-item__submenu--mega menu-item__submenu--has-promo" 3279 id="menu-item-discover-1-secondary" 3280 > 3281 <div class="menu-item__submenu-header header__tablet-visible"> 3282 <button 3283 class="menu-item__submenu-back" 3284 data-x-target="#menu-item-discover-1-secondary" 3285 ><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3286 <path d="M15 6L9 12L15 18" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 3287 </svg>Back</button> 3288 <button 3289 type="button" 3290 data-x-target=".header__menu" 3291 class="menu-item__close" 3292 > 3293 <span class="visually-hidden">Close mobile menu</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3294 <path d="M17 7L7 17M17 17L7 7" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/> 3295 </svg></button> 3296 </div><div class="menu-item__container"> 3297 <ul class="menu-item__submenu-list" role="list" tabindex="-1"><li 3298 class="menu-item__subitem" 3299 3300 data-header-block-has-children="true" 3301 ><div 3302 class="menu-item__toggler menu-item__toggler--mega x-show" 3303 id="menu-item-sub-discover-1-1-secondary" 3304 > 3305 <a class="menu-item__submenu-link" href="/pages/quip-perks">Discover</a><button 3306 type="button" 3307 data-x-target="#menu-item-sub-discover-1-1-secondary" 3308 class="header__tablet-visible" 3309 > 3310 <span class="visually-hidden">Close mobile submenu</span> 3311 </button></div><ul 3312 class="menu-item__children" 3313 role="list" 3314 tabindex="-1" 3315 ><li> 3316 <a href="/pages/our-story"> 3317 Our Story 3318 </a> 3319 </li><li> 3320 <a href="/pages/quip-perks"> 3321 quip Perks 3322 </a> 3323 </li><li> 3324 <a href="https://www.getquip.com/blogs/mouthoff-blog"> 3325 Blog 3326 </a> 3327 </li><li> 3328 <a href="https://www.getquip.com/pages/how-to-hub"> 3329 How-To 3330 </a> 3331 </li><li> 3332 <a href="/pages/quip-brush-quiz"> 3333 Quiz 3334 </a> 3335 </li></ul></li></ul><div class="menu-item__promo"> 3336 3337<link 3338 href="//www.getquip.com/cdn/shop/t/257/assets/css-menu-promo.min.css?v=111844490067551472261790020226" 3339 rel="stylesheet" 3340 type="text/css" 3341 onload="this.onload=null;if(document.querySelector('link[href=\'//www.getquip.com/cdn/shop/t/257/assets/css-menu-promo.min.css?v=111844490067551472261790020226\']') !== this) this.remove()" 3342 ><a 3343 href="/pages/bundles" 3344 class="menu-promo " 3345 style="--promo-overlay-opacity: 0.2; --promo-font-color: #ffffff; --promo-mobile-font-color: #252827" 3346 ><media-loader class="menu-promo__image"><img src="//www.getquip.com/cdn/shop/files/Bundles_Megamenu_D.jpg?v=1775571379&width=600" alt="quip electric toothbrush and oral care product bundles - save 15%" srcset="//www.getquip.com/cdn/shop/files/Bundles_Megamenu_D.jpg?v=1775571379&width=352 352w, //www.getquip.com/cdn/shop/files/Bundles_Megamenu_D.jpg?v=1775571379&width=600 600w" width="600" height="800" loading="lazy"></media-loader><media-loader class="menu-promo__image menu-promo__image--mobile"><img src="//www.getquip.com/cdn/shop/files/Bundles_Megamenu_M.jpg?v=1775571392&width=600" alt="quip electric toothbrush bundles - shop and save" srcset="//www.getquip.com/cdn/shop/files/Bundles_Megamenu_M.jpg?v=1775571392&width=352 352w, //www.getquip.com/cdn/shop/files/Bundles_Megamenu_M.jpg?v=1775571392&width=600 600w" width="600" height="600" loading="lazy"></media-loader><div class="menu-promo__content">
3347 <span>Customize your bundle</span><div class="secondary-button">Shop now</div></div> 3348 </a> 3349 3350<link 3351 href="//www.getquip.com/cdn/shop/t/257/assets/css-menu-promo.min.css?v=111844490067551472261790020226" 3352 rel="stylesheet" 3353 type="text/css" 3354 onload="this.onload=null;if(document.querySelector('link[href=\'//www.getquip.com/cdn/shop/t/257/assets/css-menu-promo.min.css?v=111844490067551472261790020226\']') !== this) this.remove()" 3355 ><a 3356 href="/blogs/mouthoff-blog" 3357 class="menu-promo " 3358 style="--promo-overlay-opacity: 0.2; --promo-font-color: #ffffff; --promo-mobile-font-color: #252827" 3359 ><media-loader class="menu-promo__image"><img src="//www.getquip.com/cdn/shop/files/Megamenu_D_1.jpg?v=1782488407&width=600" alt="Text 'More to chew on' on a light green background" srcset="//www.getquip.com/cdn/shop/files/Megamenu_D_1.jpg?v=1782488407&width=352 352w, //www.getquip.com/cdn/shop/files/Megamenu_D_1.jpg?v=1782488407&width=600 600w" width="600" height="800" loading="lazy"></media-loader><media-loader class="menu-promo__image menu-promo__image--mobile"><img src="//www.getquip.com/cdn/shop/files/Megamenu_M.jpg?v=1782488439&width=600" alt="Text 'More to chew on' on a light green background" srcset="//www.getquip.com/cdn/shop/files/Megamenu_M.jpg?v=1782488439&width=352 352w, //www.getquip.com/cdn/shop/files/Megamenu_M.jpg?v=1782488439&width=600 600w" width="600" height="600" loading="lazy"></media-loader><div class="menu-promo__content"> 3360 <span></span><div class="secondary-button">Read our blog</div></div> 3361 </a></div></div> 3362 </div></li> 3363 3364<style data-shopify> 3365 #menu-item-quiz-2-secondary { 3366 --header-main-title-font-weight: 600; 3367 --header-dropdown-title-font-weight: 600; 3368 --header-dropdown-sublink-font-weight: 500; 3369 --header-main-title-color: #054040; 3370 --header-dropdown-content-color: #054040; 3371 --header-main-title-size-adjust: 1.0; 3372 --header-dropdown-title-size-adjust: 1.0; 3373 --header-dropdown-sublink-size-adjust: 1.0; 3374 } 3375 @media (max-width: 767px) { 3376 #menu-item-quiz-2-secondary { 3377 --header-main-title-font-weight: 600; 3378 --header-dropdown-title-font-weight: 600; 3379 --header-dropdown-sublink-font-weight: 500; 3380 --header-main-title-color: #054040; 3381 --header-dropdown-content-color: #054040; 3382 --header-main-title-size-adjust: 1.0; 3383 --header-dropdown-title-size-adjust: 1.0; 3384 --header-dropdown-sublink-size-adjust: 1.0; 3385 } 3386 } 3387</style> 3388 3389<li 3390 data-header-block-menu-item 3391 id="menu-item-quiz-2-secondary" 3392 class="menu-item header__secondary-item header__secondary-item--bg" 3393 3394><a 3395 href="https://www.getquip.com/pages/quip-brush-quiz" 3396 class="menu-item__link" 3397 > 3398 <span>Quiz</span></a></li> 3399 3400<style data-shopify> 3401 #menu-item-bundles-3-secondary { 3402 --header-main-title-font-weight: 600; 3403 --header-dropdown-title-font-weight: 600; 3404 --header-dropdown-sublink-font-weight: 500; 3405 --header-main-title-color: #054040; 3406 --header-dropdown-content-color: #054040; 3407 --header-main-title-size-adjust: 1.0; 3408 --header-dropdown-title-size-adjust: 1.0; 3409 --header-dropdown-sublink-size-adjust: 1.0; 3410 } 3411 @media (max-width: 767px) { 3412 #menu-item-bundles-3-secondary { 3413 --header-main-title-font-weight: 600; 3414 --header-dropdown-title-font-weight: 600; 3415 --header-dropdown-sublink-font-weight: 500; 3416 --header-main-title-color: #054040; 3417 --header-dropdown-content-color: #054040; 3418 --header-main-title-size-adjust: 1.0; 3419 --header-dropdown-title-size-adjust: 1.0; 3420 --header-dropdown-sublink-size-adjust: 1.0; 3421 } 3422 } 3423</style> 3424 3425<li 3426 data-header-block-menu-item 3427 id="menu-item-bundles-3-secondary" 3428 class="menu-item header__secondary-item" 3429 3430><a 3431 href="/pages/bundles" 3432 class="menu-item__link" 3433 > 3434 <span>Bundles</span></a></li> 3435</ul> 3436 </nav> 3437 <div class="header__mobile-bottom"><div class="header__utility" > 3438 <div class="header__utility-container"> 3439 <nav> 3440 <ul class="header__utility-menu"><li > 3441 <a href="/pages/find-a-store"><img src="//www.getquip.com/cdn/shop/files/noun-location-123389_1.svg?v=1733142575&width=32" alt="" srcset="//www.getquip.com/cdn/shop/files/noun-location-123389_1.svg?v=1733142575&width=16 16w" width="16"><span>Store Locator</span> 3442 </a> 3443 </li><li > 3444 <a href="https://quippros.com/"><img src="//www.getquip.com/cdn/shop/files/noun-dentist-6055499_1.svg?v=1733142574&width=32" alt="" srcset="//www.getquip.com/cdn/shop/files/noun-dentist-6055499_1.svg?v=1733142574&width=16 16w" width="16"><span>Professionals</span> 3445 </a> 3446 </li></ul> 3447 </nav> 3448 </div> 3449 </div><div class="header__login-button header__tablet-visible"><a class="primary-button" href="/account/login">Login</a></div></div> 3450 </div> 3451 <div data-x-target=".header__menu" class="header__mask">
3452 <span class="visually-hidden">Close mobile menu</span> 3453 </div> 3454 </drawer-block><div class="header__actions"> 3455 <div class="header__search"><button type="button" data-x-focus="#predictive-search-input" data-x-target=".header, .header-section"> 3456 <span class="visually-hidden">Open predictive search</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3457 <path d="M20 20L16.1333 16.1333M18.2222 11.1111C18.2222 15.0385 15.0385 18.2222 11.1111 18.2222C7.18375 18.2222 4 15.0385 4 11.1111C4 7.18375 7.18375 4 11.1111 4C15.0385 4 18.2222 7.18375 18.2222 11.1111Z" stroke="#0B413E" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 3458 </svg></button> 3459 <div class="header__search-container"> 3460 <div data-x-target=".header, .header-section" class="header__search-mask"> 3461 <span class="visually-hidden">Close predictive search</span> 3462 </div> 3463 3464<link 3465 href="//www.getquip.com/cdn/shop/t/257/assets/css-search-form.min.css?v=60008884395529208201790020230" 3466 rel="preload" 3467 as="style" 3468 onload="this.onload=null;if(document.querySelector('link[href=\'//www.getquip.com/cdn/shop/t/257/assets/css-search-form.min.css?v=60008884395529208201790020230\']') !== this){this.remove()}else{this.rel='stylesheet'}" 3469 > 3470 3471 <noscript> 3472 <link rel="stylesheet" href="//www.getquip.com/cdn/shop/t/257/assets/css-search-form.min.css?v=60008884395529208201790020230"> 3473 </noscript> 3474<link 3475 href="//www.getquip.com/cdn/shop/t/257/assets/css-search-suggestions.min.css?v=38159348945653613231781560496" 3476 rel="preload" 3477 as="style" 3478 onload="this.onload=null;if(document.querySelector('link[href=\'//www.getquip.com/cdn/shop/t/257/assets/css-search-suggestions.min.css?v=38159348945653613231781560496\']') !== this){this.remove()}else{this.rel='stylesheet'}" 3479 > 3480 3481 <noscript> 3482 <link rel="stylesheet" href="//www.getquip.com/cdn/shop/t/257/assets/css-search-suggestions.min.css?v=38159348945653613231781560496"> 3483 </noscript> 3484<link 3485 href="//www.getquip.com/cdn/shop/t/257/assets/css-search-products.min.css?v=180036834989372446121790020231" 3486 rel="preload" 3487 as="style" 3488 onload="this.onload=null;if(document.querySelector('link[href=\'//www.getquip.com/cdn/shop/t/257/assets/css-search-products.min.css?v=180036834989372446121790020231\']') !== this){this.remove()}else{this.rel='stylesheet'}" 3489 > 3490 3491 <noscript> 3492 <link rel="stylesheet" href="//www.getquip.com/cdn/shop/t/257/assets/css-search-products.min.css?v=180036834989372446121790020231"> 3493 </noscript><predictive-search data-loading-text="Loading"><form action="/search" method="get" role="search" class="search-form"> 3494 <div class="search-form__container"> 3495 <div class="search-form__wrapper"> 3496 <input 3497 class="search-form__input form-element" 3498 type="search" 3499 name="q" 3500 data-predictive-search-input 3501 value="" 3502 placeholder="Search Keyword..." 3503 role="combobox" 3504 autocorrect="off" 3505 autocomplete="off" 3506 autocapitalize="off" 3507 spellcheck="false" 3508 id="predictive-search-input" 3509 > 3510 <label class="visually-hidden" for="predictive-search-input">Search Keyword...</label> 3511 <button 3512 class="search-form__submit" 3513 data-predictive-search-loading="search-form__submit--loading" 3514 aria-label="Search Keyword..." 3515 ><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3516 <path d="M20 20L16.1333 16.1333M18.2222 11.1111C18.2222 15.0385 15.0385 18.2222 11.1111 18.2222C7.18375 18.2222 4 15.0385 4 11.1111C4 7.18375 7.18375 4 11.1111 4C15.0385 4 18.2222 7.18375 18.2222 11.1111Z" stroke="#0B413E" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 3517 </svg></button> 3518 </div><button type="button" class="search-form__close" data-x-target=".header, .header-section"> 3519 <span class="visually-hidden">Close predictive search</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3520 <path d="M17 7L7 17M17 17L7 7" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/> 3521 </svg></button></div> 3522 <input type="hidden" name="options[prefix]" value="last"> 3523 <input type="hidden" name="type" value="product"> 3524 <div 3525 class="search-form__suggestions" 3526 tabindex="-1" 3527 > 3528 <div class="scroll" data-predictive-search-results="search-form__suggestions--open"> 3529<div class="search-products"> 3530 <span class="search-products__heading">Trending Products</span> 3531 <ul class="search-products__list"><li class="search-products__item"> 3532 <a href="/products/green-sonic-toothbrush"> 3533 <media-loader><img src="//www.getquip.com/cdn/shop/files/quip-sonic-electric-toothbrush-green-with-travel-case.jpg?v=1789150603&width=160" alt="quip Sonic Electric Toothbrush in green with included travel case - best electric toothbrush for travel" srcset="//www.getquip.com/cdn/shop/files/quip-sonic-electric-toothbrush-green-with-travel-case.jpg?v=1789150603&width=160 160w" width="160" height="160" laoding="lazy"></media-loader> 3534 <div class="search-products__item-content"> 3535 <div class="search-products__item-title">Sonic Toothbrush</div> 3536 <div class="search-products__item-price">$25.50 3537</div> 3538 </div> 3539 </a> 3540 </li><li class="search-products__item"> 3541 <a href="/products/air-quip-ultra-lite-sonic-electric-toothbrush"> 3542 <media-loader><img src="//www.getquip.com/cdn/shop/files/01_MKT_UltraLite_PDP_ProductImg_2400x2400_Hero_Air.jpg?v=1776710942&width=160" alt="Electric toothbrush with a stand on a white background" srcset="//www.getquip.com/cdn/shop/files/01_MKT_UltraLite_PDP_ProductImg_2400x2400_Hero_Air.jpg?v=1776710942&width=160 160w" width="160" height="160" laoding="lazy"></media-loader> 3543 <div class="search-products__item-content"> 3544 <div class="search-products__item-title">Ultra Lite Sonic Electric Toothbrush</div> 3545 <div class="search-products__item-price">$65 3546</div> 3547 </div> 3548 </a> 3549 </li><li class="search-products__item"> 3550 <a href="/products/blue-metal-rev-oscillating-toothbrush"> 3551 <media-loader><img src="//www.getquip.com/cdn/shop/files/quip-rev-oscillating-electric-toothbrush-ada-accepted.jpg?v=1789150503&width=160" alt="quip Rev Oscillating Electric Toothbrush - ADA Accepted and dentist-recommended" srcset="//www.getquip.com/cdn/shop/files/quip-rev-oscillating-electric-toothbrush-ada-accepted.jpg?v=1789150503&width=160 160w" width="160" height="160" laoding="lazy"></media-loader> 3552 <div class="search-products__item-content"> 3553 <div class="search-products__item-title">Rev Oscillating Toothbrush</div> 3554 <div class="search-products__item-price">$55 3555</div> 3556 </div> 3557 </a> 3558 </li><li class="search-products__item"> 3559 <a href="/products/all-black-metal-rechargeable-cordless-water-flosser"> 3560 <media-loader><img src="//www.getquip.com/cdn/shop/files/2501_DTC_WaterFlosser_2880x2880_Black-1.jpg?v=1738099517&width=160" alt="quip Rechargeable Cordless Water Flosser in Black" srcset="//www.getquip.com/cdn/shop/files/2501_DTC_WaterFlosser_2880x2880_Black-1.jpg?v=1738099517&width=160 160w" width="160" height="160" laoding="lazy"></media-loader> 3561 <div class="search-products__item-content"> 3562 <div class="search-products__item-title">Rechargeable Cordless Water Flosser</div> 3563 <div class="search-products__item-price">$45 3564</div> 3565 </div> 3566 </a> 3567 </li></ul> 3568</div> 3569</div> 3570 </div> 3571 3572 <span class="predictive-search-status visually-hidden" role="status" aria-hidden="true"></span> 3573</form></predictive-search></div> 3574 <div data-x-target=".header, .header-section" class="header__search-mask">
3575 <span class="visually-hidden">Close predictive search</span> 3576 </div></div><a 3577 class="header__desktop-visible" 3578 href="/account/login" 3579 > 3580 <span class="visually-hidden">Login</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3581 <path d="M4 19.1111C6.07626 16.909 8.89513 15.5556 12 15.5556C15.1049 15.5556 17.9237 16.909 20 19.1111M16 8C16 10.2091 14.2091 12 12 12C9.79086 12 8 10.2091 8 8C8 5.79086 9.79086 4 12 4C14.2091 4 16 5.79086 16 8Z" stroke="#0B413E" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 3582 </svg></a><button type="button" class="header__cart" data-x-target=".ajax-cart-drawer"> 3583 <span class="visually-hidden">Open mini cart</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3584 <path d="M5.66696 4.5V3.8C5.46107 3.8 5.26563 3.89064 5.13263 4.0478C4.99962 4.20496 4.94255 4.4127 4.9766 4.61575L5.66696 4.5ZM21 4.5L21.6904 4.61575C21.7244 4.4127 21.6673 4.20496 21.5343 4.0478C21.4013 3.89064 21.2059 3.8 21 3.8V4.5ZM19.5397 13.2097V13.9097C19.8816 13.9097 20.1735 13.6626 20.2301 13.3254L19.5397 13.2097ZM7.12725 13.2097L6.43688 13.3254C6.49342 13.6626 6.78532 13.9097 7.12725 13.9097V13.2097ZM6.93615 5.20004C7.32275 5.20004 7.63615 4.88664 7.63615 4.50004C7.63615 4.11345 7.32275 3.80004 6.93615 3.80004V5.20004ZM3 3.80004C2.6134 3.80004 2.3 4.11345 2.3 4.50004C2.3 4.88664 2.6134 5.20004 3 5.20004V3.80004ZM9.056 20.2C10.2456 20.2 11.2212 19.2428 11.2212 18.0484H9.82116C9.82116 18.4574 9.48473 18.8 9.056 18.8V20.2ZM11.2212 18.0484C11.2212 16.854 10.2456 15.8968 9.056 15.8968V17.2968C9.48473 17.2968 9.82116 17.6394 9.82116 18.0484H11.2212ZM9.056 15.8968C7.86636 15.8968 6.89084 16.854 6.89084 18.0484H8.29084C8.29084 17.6394 8.62726 17.2968 9.056 17.2968V15.8968ZM6.89084 18.0484C6.89084 19.2428 7.86636 20.2 9.056 20.2V18.8C8.62726 18.8 8.29084 18.4574 8.29084 18.0484H6.89084ZM17.9123 20.2C19.1019 20.2 20.0775 19.2428 20.0775 18.0484H18.6775C18.6775 18.4574 18.341 18.8 17.9123 18.8V20.2ZM20.0775 18.0484C20.0775 16.854 19.1019 15.8968 17.9123 15.8968V17.2968C18.341 17.2968 18.6775 17.6394 18.6775 18.0484H20.0775ZM17.9123 15.8968C16.7227 15.8968 15.7471 16.854 15.7471 18.0484H17.1471C17.1471 17.6394 17.4836 17.2968 17.9123 17.2968V15.8968ZM15.7471 18.0484C15.7471 19.2428 16.7227 20.2 17.9123 20.2V18.8C17.4836 18.8 17.1471 18.4574 17.1471 18.0484H15.7471ZM5.66696 5.2H21V3.8H5.66696V5.2ZM20.3096 4.38425L18.8493 13.0939L20.2301 13.3254L21.6904 4.61575L20.3096 4.38425ZM19.5397 12.5097H7.12725V13.9097H19.5397V12.5097ZM7.81761 13.0939L6.35732 4.38425L4.9766 4.61575L6.43688 13.3254L7.81761 13.0939ZM6.93615 3.80004H3V5.20004H6.93615V3.80004Z" fill="currentColor"/> 3585 </svg></button> 3586 </div> 3587 </div> 3588 </div> 3589 </header></header-block> 3590</size-getter> 3591 3592 3593</div></div> 3594 3595 3596<div class="layout__breadcrumbs layout__breadcrumbs--absolute"> 3597<style data-shopify>.breadcrumbs{font-size:0.75rem;line-height:160%;font-weight:500;margin:1rem 0}.breadcrumbs a{text-decoration:underline;text-decoration-color:rgba(0,0,0,0);transition:text-decoration-color .15s}.breadcrumbs a:hover{text-decoration-color:currentColor}.breadcrumbs a{color:currentcolor}.breadcrumbs li{display:flex}.breadcrumbs li:not(:last-child)::after{content:"/";margin:0 .25rem}.breadcrumbs li[data-collection-placeholder]{display:none}.breadcrumbs ul{display:flex;flex-wrap:wrap} 3598</style><dynamic-breadcrumbs 3599 3600 > 3601
3601<script type="application/json" data-product-collections> 3602 [] 3603 </script>
3603 3604 <nav class="breadcrumbs " aria-label="Breadcrumb"> 3605 <ul> 3606 <li> 3607 <a href="/" title="Home">Home</a> 3608 </li><li> 3609 <a href="/pages/contact" aria-current="page">Contact Us</a> 3610 </li></ul> 3611 </nav> 3612 </dynamic-breadcrumbs></div> 3613 3614 3615 <main 3616 class="main-content layout__main" 3617 role="main" 3618 id="MainContent" 3619 ><accordion-sections-effect><div id="shopify-section-template--19977859301450__0f6f7d1e-9ed0-4b74-ab7b-11a0c503db19" class="shopify-section"> 3620<link 3621 href="//www.getquip.com/cdn/shop/t/257/assets/css-contact.min.css?v=77120482450739735081790020220" 3622 rel="stylesheet" 3623 type="text/css" 3624 onload="this.onload=null;if(document.querySelector('link[href=\'//www.getquip.com/cdn/shop/t/257/assets/css-contact.min.css?v=77120482450739735081790020220\']') !== this) this.remove()" 3625 ><section class="contact-section"><div class="contact-section__image"> 3626 <media-loader class="contact-section__media-loader"> 3627 <img src="//www.getquip.com/cdn/shop/files/Contact_Us_072026.jpg?v=1784057649&width=720" alt="A teal oral irrigator toothbrush stands next to a black cylindrical water flosser canister with a curved metal nozzle, set against a solid beige background." srcset="//www.getquip.com/cdn/shop/files/Contact_Us_072026.jpg?v=1784057649&width=352 352w, //www.getquip.com/cdn/shop/files/Contact_Us_072026.jpg?v=1784057649&width=720 720w" width="720" height="960" loading="lazy" class="contact-section__image-img" sizes="(min-width: 540px) 100vw, 60vw"> 3628 </media-loader><h1 class="contact-section__image-title">Contact Us</h1></div><div class="contact-section__content"> 3629 <div class="contact-section__content-text"> 3630<link 3631 href="//www.getquip.com/cdn/shop/t/257/assets/css-rte-content.min.css?v=47637306204720639021790020229" 3632 rel="stylesheet" 3633 type="text/css" 3634 onload="this.onload=null;if(document.querySelector('link[href=\'//www.getquip.com/cdn/shop/t/257/assets/css-rte-content.min.css?v=47637306204720639021790020229\']') !== this) this.remove()" 3635 ><rte-content class="rte"><h2>Need help?</h2> 3636<p><span>Don't hesitate to email us or check out our <a href="https://quipcx.zendesk.com/hc/en-us">FAQ</a> page. </span></p></rte-content> 3637</div><div class="contact-section__icon-container"><div class="contact-section__icon"> 3638 <div class="contact-section__icon-image"><div class="contact-section__icon-image"> 3639 <media-loader class="contact-section__icon-media-loader"> 3640 <img src="//www.getquip.com/cdn/shop/files/functional_13.svg?v=1718395654&width=40" alt="" srcset="//www.getquip.com/cdn/shop/files/functional_13.svg?v=1718395654&width=40 40w" width="40" height="40" loading="lazy" class="contact-section__icon-img" sizes="(min-width: 540px) 100vw, 50vw"> 3641 </media-loader> 3642 </div></div> 3643 <div class="contact-section__icon-content"><div class="contact-section__icon-title">Chat</div><div class="contact-section__icon-text"><p>Our Customer Experience team is available online <br><a href="javascript:void(0);" onclick="zE('messenger', 'open');">via chat</a></p></div></div> 3644 </div><div class="contact-section__icon"> 3645 <div class="contact-section__icon-image"><div class="contact-section__icon-image"> 3646 <media-loader class="contact-section__icon-media-loader"> 3647 <img src="//www.getquip.com/cdn/shop/files/functional_14.svg?v=1718395697&width=40" alt="" srcset="//www.getquip.com/cdn/shop/files/functional_14.svg?v=1718395697&width=40 40w" width="40" height="40" loading="lazy" class="contact-section__icon-img" sizes="(min-width: 540px) 100vw, 50vw"> 3648 </media-loader> 3649 </div></div> 3650 <div class="contact-section__icon-content"><div class="contact-section__icon-title">Email</div><div class="contact-section__icon-text"><p>You can also reach us by emailing <a href="mailto:[email protected]" target="_blank" title="mailto:[email protected]">[email protected]</a></p></div></div> 3651 </div><div class="contact-section__icon"> 3652 <div class="contact-section__icon-image"><div class="contact-section__icon-image"> 3653 <media-loader class="contact-section__icon-media-loader"> 3654 <img src="//www.getquip.com/cdn/shop/files/functional_15.svg?v=1718395697&width=40" alt="" srcset="//www.getquip.com/cdn/shop/files/functional_15.svg?v=1718395697&width=40 40w" width="40" height="40" loading="lazy" class="contact-section__icon-img" sizes="(min-width: 540px) 100v
3654w, 50vw"> 3655 </media-loader> 3656 </div></div> 3657 <div class="contact-section__icon-content"><div class="contact-section__icon-title">Refill</div><div class="contact-section__icon-text"><p>To cancel an upcoming refill order, please email us directly at <a href="mailto:[email protected]" target="_blank" title="mailto:[email protected]">[email protected]<br/></a></p></div></div> 3658 </div></div></div> 3659</section> 3660 3661 3662</div> 3663</accordion-sections-effect></main> 3664 3665 <div class="layout__footer"><div id="shopify-section-footer" class="shopify-section"> 3666<link 3667 href="//www.getquip.com/cdn/shop/t/257/assets/css-footer.min.css?v=136228220331618852181790020224" 3668 rel="stylesheet" 3669 type="text/css" 3670 onload="this.onload=null;if(document.querySelector('link[href=\'//www.getquip.com/cdn/shop/t/257/assets/css-footer.min.css?v=136228220331618852181790020224\']') !== this) this.remove()" 3671 ><footer class="footer"> 3672 <div class="footer__container"> 3673 <div class="footer__top"> 3674 <div class="footer__social"> 3675 <div class="footer__newsletter"> 3676 3677<div class="footer__newsletter-form"><div class="klaviyo-form-UKQTPJ"></div></div></div><div class="footer__social-menu"><ul role="list"><li> 3678 <a 3679 href="https://www.facebook.com/getquip/" 3680 target="_blank" 3681 aria-label="Follow us on Facebook" 3682 3683 rel="noopener" 3684 ><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3685 <path d="M19.5 3H4.5C3.67125 3 3 3.67125 3 4.5V19.5C3 20.3288 3.67125 21 4.5 21H12.75V14.25H10.5V11.25H12.75V9.30975C12.75 6.98475 14.1698 5.71875 16.2443 5.71875C17.238 5.71875 18.0915 5.793 18.3405 5.826V8.256L16.902 8.25675C15.774 8.25675 15.5557 8.793 15.5557 9.579V11.25H18.8857L18.1357 14.25H15.5557V21H19.5C20.3288 21 21 20.3288 21 19.5V4.5C21 3.67125 20.3288 3 19.5 3Z" fill="#054040"/> 3686 </svg></a> 3687 </li><li> 3688 <a 3689 href="https://www.instagram.com/quip" 3690 target="_blank" 3691 aria-label="Follow us on Instagram" 3692 3693 rel="noopener" 3694 ><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3695 <path d="M12 4.6215C9.597 4.6215 9.312 4.6305 8.36325 4.674C7.33875 4.7205 6.3885 4.926 5.65725 5.65725C4.926 6.3885 4.7205 7.33875 4.674 8.36325C4.6305 9.312 4.6215 9.597 4.6215 12C4.6215 14.403 4.6305 14.688 4.674 15.6368C4.7205 16.6613 4.926 17.6115 5.65725 18.3427C6.3885 19.074 7.33875 19.2795 8.36325 19.326C9.312 19.3695 9.597 19.3785 12 19.3785C14.403 19.3785 14.688 19.3695 15.6368 19.326C16.6613 19.2795 17.6115 19.074 18.3427 18.3427C19.074 17.6115 19.2795 16.6613 19.326 15.6368C19.3695 14.688 19.3785 14.403 19.3785 12C19.3785 9.597 19.3695 9.312 19.326 8.36325C19.2795 7.33875 19.074 6.3885 18.3427 5.65725C17.6115 4.926 16.6613 4.7205 15.6368 4.674C14.688 4.6305 14.403 4.6215 12 4.6215ZM12 3C14.4443 3 14.751 3.0105 15.711 3.054C17.1735 3.12075 18.4583 3.47925 19.4895 4.5105C20.5208 5.54175 20.8792 6.8265 20.946 8.289C20.9895 9.249 21 9.55575 21 12C21 14.4443 20.9895 14.751 20.946 15.711C20.8792 17.1735 20.5208 18.4583 19.4895 19.4895C18.4583 20.5208 17.1735 20.8792 15.711 20.946C14.751 20.9895 14.4443 21 12 21C9.55575 21 9.249 20.9895 8.289 20.946C6.8265 20.8792 5.54175 20.5208 4.5105 19.4895C3.47925 18.4583 3.12075 17.1735 3.054 15.711C3.0105 14.751 3 14.4443 3 12C3 9.55575 3.0105 9.249 3.054 8.289C3.12075 6.8265 3.47925 5.54175 4.5105 4.5105C5.54175 3.47925 6.8265 3.12075 8.289 3.054C9.249 3.0105 9.55575 3 12 3ZM12 7.3785C14.5522 7.3785 16.6215 9.44775 16.6215 12C16.6215 14.5522 14.5522 16.6215 12 16.6215C9.44775 16.6215 7.3785 14.5522 7.3785 12C7.3785 9.44775 9.44775 7.3785 12 7.3785ZM12 15C13.6567 15 15 13.6567 15 12C15 10.3433 13.6567 9 12 9C10.3433 9 9 10.3433 9 12C9 13.6567 10.3433 15 12 15ZM16.8045 8.2755C16.208 8.2755 15.7245 7.79197 15.7245 7.1955C15.7245 6.59903 16.208 6.1155 16.8045 6.1155C17.401 6.1155 17.8845 6.59903 17.8845 7.1955C17.8845 7.79197 17.401 8.2755 16.8045 8.2755Z" fill="#054040"/> 3696 </svg></a> 3697 </li><li> 3698 <a 3699 href="https://tiktok.com/@quip" 3700 target="_blank" 3701 aria-label="Follow us on TikTok" 3702 3703 rel="noopener" 3704 ><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3705 <path fill-rule="evenodd" clip-rule="evenodd" d="M15.418 3C15.7065 5.55446 17.0916 7.07741 19.4998 7.23942V10.1125C18.1042 10.2529 16.8818 9.78308 15.46 8.89739V14.2709C15.46 21.0972 8.23015 23.2304 5.32354 18.3375C3.45576 15.189 4.59951 9.66427 10.5911 9.44284V12.4725C10.1347 12.5482 9.64673 12.667 9.20077 12.8236C7.86814 13.288 7.11263 14.1575 7.32249 15.6913C7.72648 18.6292 12.9626 19.4987 12.5271 13.7579V3.0054H15.418V3Z" fill="#054040"/> 3706 </svg></a> 3707 </li><li> 3708 <a 3709 href="https://www.youtube.com/getquip" 3710 target="_blank" 3711 aria-label="Follow us on YouTube" 3712 3713 rel="noopener" 3714 ><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3715 <path d="M21.774 5.91534C21.1946 4.88455 20.5657 4.69494 19.2852 4.62284C18.006 4.53605 14.7895 4.5 12.0028 4.5C9.21089 4.5 5.99299 4.53605 4.71518 4.62151C3.43736 4.69494 2.80714 4.88321 2.22231 5.91534C1.62546 6.9448 1.31836 8.71798 1.31836 11.8397C1.31836 11.8424 1.31836 11.8438 1.31836 11.8438C1.31836 11.8464 1.31836 11.8478 1.31836 11.8478V11.8504C1.31836 14.9588 1.62546 16.7454 2.22231 17.7641C2.80714 18.7949 3.43603 18.9819 4.71384 19.0687C5.99299 19.1434 9.21089 19.1875 12.0028 19.1875C14.7895 19.1875 18.006 19.1434 19.2865 19.07C20.567 18.9832 21.1959 18.7963 21.7754 17.7655C22.3776 16.7467 22.682 14.9602 22.682 11.8518C22.682 11.8518 22.682 11.8478 22.682 11.8451C22.682 11.8451 22.682 11.8424 22.682 11.8411C22.682 8.71798 22.3776 6.9448 21.774 5.91534ZM9.32972 15.8494V7.83807L16.0059 11.8438L9.32972 15.8494Z" fill="#054040"/> 3716 </svg></a> 3717 </li><li> 3718 <a 3719 href="https://www.pinterest.com/getquip/" 3720 target="_blank" 3721 aria-label="Follow us on Pinterest" 3722 3723 rel="noopener" 3724 ><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3725 <path d="M12.251 3C7.19098 3 4.5 6.42484 4.5 10.1593C4.5 11.8912 5.41622 14.0509 6.88288 14.7359C7.10559 14.8419 7.22675 14.7968 7.27637 14.5786C7.32022 14.4129 7.51292 13.6146 7.60639 13.238C7.63524 13.1173 7.62024 13.0125 7.52793 12.8991C7.04096 12.3044 6.6544 11.2208 6.6544 10.2044C6.6544 7.59977 8.61493 5.07075 11.951 5.07075C14.8358 5.07075 16.854 7.05009 16.854 9.88137C16.854 13.0807 15.2512 15.2941 13.1684 15.2941C12.0156 15.2941 11.1571 14.3385 11.4294 13.1563C11.7583 11.7486 12.4033 10.2348 12.4033 9.21956C12.4033 8.30912 11.9163 7.55589 10.9216 7.55589C9.7481 7.55589 8.7961 8.78323 8.7961 10.4311C8.7961 11.478 9.1469 12.1849 9.1469 12.1849C9.1469 12.1849 7.98604 17.1381 7.77025 18.0632C7.40561 19.6294 7.81987 22.1657 7.85564 22.3839C7.87757 22.5045 8.00565 22.5423 8.0772 22.4436C8.19144 22.2852 9.59462 20.1705 9.98811 18.6421C10.1312 18.0852 10.7186 15.8267 10.7186 15.8267C11.1051 16.5641 12.221 17.182 13.4095 17.182C16.9452 17.182 19.5 13.8998 19.5 9.82653C19.4873 5.92148 16.3232 3 12.251 3Z" fill="#054040"/> 3726 </svg></a> 3727 </li> 3728</ul> 3729</div></div><div class="footer__menu"><nav 3730 aria-label="About us" 3731 id="footer-menu-about-us" 3732 class="footer__menu-nav" 3733 > 3734 <div class="footer__menu-title" data-x-target="#footer-menu-about-us">About us</div> 3735 <ul role="list" class="footer__menu-list"><li> 3736 <a 3737 href="/pages/our-story" 3738 >Our Story</a> 3739 </li><li> 3740 <a 3741 href="https://www.getquip.com/pages/faq" 3742 >Oral Care FAQ</a> 3743 </li><li> 3744 <a 3745 href="https://quipcx.zendesk.com/hc/en-us" 3746 >Help center</a> 3747 </li><li> 3748 <a 3749 href="/pages/knowledge-center" 3750 >Knowledge Center</a> 3751 </li><li> 3752 <a 3753 href="http://returns.getquip.com/" 3754 >Start a return</a> 3755 </li><li> 3756 <a
3757 href="https://job-boards.greenhouse.io/quip" 3758 >Careers</a> 3759 </li><li> 3760 <a 3761 href="/pages/find-a-store" 3762 >Find a Store</a> 3763 </li><li> 3764 <a 3765 href="/pages/contact" 3766 >Contact Us</a> 3767 </li></ul> 3768 </nav><nav 3769 aria-label="Oral health" 3770 id="footer-menu-oral-health" 3771 class="footer__menu-nav" 3772 > 3773 <div class="footer__menu-title" data-x-target="#footer-menu-oral-health">Oral health</div> 3774 <ul role="list" class="footer__menu-list"><li> 3775 <a 3776 href="/blogs/mouthoff-blog" 3777 >Blog</a> 3778 </li><li> 3779 <a 3780 href="/pages/how-to-hub" 3781 >How-To</a> 3782 </li><li> 3783 <a 3784 href="https://apps.apple.com/us/app/quip-smart-brush-rewards/id1524567776" 3785 >iOS app</a> 3786 </li><li> 3787 <a 3788 href="https://play.google.com/store/apps/details?id=com.quip.mobile" 3789 >Android app</a> 3790 </li><li> 3791 <a 3792 href="/pages/quip-perks-terms-and-conditions" 3793 >quip Perks</a> 3794 </li><li> 3795 <a 3796 href="https://www.getquip.com/pages/become-an-affiliate" 3797 >Become an Affiliate</a> 3798 </li><li> 3799 <a 3800 href="/pages/ambassador-program" 3801 >Become an Ambassador</a> 3802 </li></ul> 3803 </nav><nav 3804 aria-label="Professionals" 3805 id="footer-menu-professionals" 3806 class="footer__menu-nav" 3807 > 3808 <div class="footer__menu-title" data-x-target="#footer-menu-professionals">Professionals</div> 3809 <ul role="list" class="footer__menu-list"><li> 3810 <a 3811 href="https://quippros.com/pages/provider-partner-request-form" 3812 >Join our network</a> 3813 </li><li> 3814 <a 3815 href="https://quippros.com/" 3816 >quip for dental pros</a> 3817 </li></ul> 3818 </nav></div></div> 3819 <div class="footer__bottom"> 3820 <div class="footer__copyright"> 3821 © 2026 3822 <a href="/" title="">quip</a> 3823 </div><div class="footer__policies"> 3824 <nav aria-label="Subfooter"> 3825 <ul><li> 3826 <a href="/policies/privacy-policy">Privacy Policy</a> 3827 </li><li> 3828 <a href="/policies/terms-of-service">Terms & Conditions</a> 3829 </li><li> 3830 <a href="/pages/mobile-terms-of-service">Mobile Terms of Services</a> 3831 </li><li> 3832 <a href="/pages/accessibility">Accessibility</a> 3833 </li><li> 3834 <a href="https://www.getquip.com/pages/data-sale-opt-out">Do not Sell or Share</a> 3835 </li><li> 3836 <a href="/pages/washington-consumer-health-data-notice">Washington Consumer Health Data Notice</a> 3837 </li></ul> 3838 </nav> 3839 </div></div> 3840 3841 <div></div> 3842 </div> 3843</footer> 3844 3845 3846</div></div><div id="shopify-section-ajax-cart" class="shopify-section"> 3847<link 3848 href="//www.getquip.com/cdn/shop/t/257/assets/css-drawer.min.css?v=73965561045814807941781560496" 3849 rel="stylesheet" 3850 type="text/css" 3851 onload="this.onload=null;if(document.querySelector('link[href=\'//www.getquip.com/cdn/shop/t/257/assets/css-drawer.min.css?v=73965561045814807941781560496\']') !== this) this.remove()" 3852 > 3853<link 3854 href="//www.getquip.com/cdn/shop/t/257/assets/css-ajax-cart.min.css?v=12102301841691096031790020215" 3855 rel="stylesheet" 3856 type="text/css" 3857 onload="this.onload=null;if(document.querySelector('link[href=\'//www.getquip.com/cdn/shop/t/257/assets/css-ajax-cart.min.css?v=12102301841691096031790020215\']') !== this) this.remove()" 3858 > 3859<link 3860 href="//www.getquip.com/cdn/shop/t/257/assets/css-cart-item.min.css?v=6481197522439336941781560499" 3861 rel="stylesheet" 3862 type="text/css" 3863 onload="this.onload=null;if(document.querySelector('link[href=\'//www.getquip.com/cdn/shop/t/257/assets/css-cart-item.min.css?v=6481197522439336941781560499\']') !== this) this.remove()" 3864 > 3865<link 3866 href="//www.getquip.com/cdn/shop/t/257/assets/css-cart-footer.min.css?v=42586147078509165021781560498" 3867 rel="stylesheet" 3868 type="text/css" 3869 onload="this.onload=null;if(document.querySelector('link[href=\'//www.getquip.com/cdn/shop/t/257/assets/css-cart-footer.min.css?v=42586147078509165021781560498\']') !== this) this.remove()" 3870 ><div class="drawer ajax-cart-drawer" tabindex="-1" data-x-trap-focus> 3871 <div data-x-target=".ajax-cart-drawer" class="drawer__mask">
3872 <span class="visually-hidden">Close mini cart</span> 3873 </div> 3874 <div role="dialog" class="ajax-cart drawer__content"> 3875 <div class="ajax-cart__container drawer__container"> 3876 <div class="drawer__header ajax-cart__header"> 3877 <div class="drawer__title">My Cart (<span class="ajax-cart__count"> 3878 <span data-ajax-cart-bind="item_count">0</span> 3879 </span>)</div> 3880 <button class="drawer__close" data-x-target=".ajax-cart-drawer"> 3881 <span class="visually-hidden">Close mini cart</span><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3882 <path d="M17 7L7 17M17 17L7 7" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/> 3883 </svg></button> 3884 </div> 3885 <div class="ajax-cart__content" data-ajax-cart-section data-ajax-cart-section-scroll><div class="ajax-cart__empty"> 3886 <p>Oops, your cart is empty!</p> 3887 <div class="ajax-cart__empty__button-wrapper"> 3888 <a class="primary-button" href="/collections/all">Shop Now</a> 3889 </div> 3890</div> 3891</div> 3892 </div> 3893 </div> 3894 </div> 3895</div> 3896 3897 3898<link 3899 href="//www.getquip.com/cdn/shop/t/257/assets/css-modal.min.css?v=62643046676860135151781560496" 3900 rel="preload" 3901 as="style" 3902 onload="this.onload=null;if(document.querySelector('link[href=\'//www.getquip.com/cdn/shop/t/257/assets/css-modal.min.css?v=62643046676860135151781560496\']') !== this){this.remove()}else{this.rel='stylesheet'}" 3903 > 3904 3905 <noscript> 3906 <link rel="stylesheet" href="//www.getquip.com/cdn/shop/t/257/assets/css-modal.min.css?v=62643046676860135151781560496"> 3907 </noscript> 3908 3909<div 3910 class="modal modal--slide-out" 3911 id="quick-view" 3912 style="display: none" 3913> 3914 <a href="#quick-view--close" class="modal__underlay" data-modal-close> 3915 Close 3916 </a> 3917 <div 3918 class="modal__window" 3919 3920 > 3921 <a href="#quick-view--close" class="modal__close" data-modal-close> 3922 Close 3923 </a> 3924 <div class="modal__window-content"> 3925 <div class="modal__window-content-wrapper"> 3926 3927 <div class="modal__content"> 3928 <quick-view-product id="quick-view-product"></quick-view-product> 3929 </div> 3930 </div> 3931 </div> 3932 </div> 3933</div> 3934<rebuy-ab-test></rebuy-ab-test> 3935 </component-loader> 3936 3937 <!-- Cart JSON --> 3938
3938<script type="application/json" data-ajax-cart-initial-state> 3939 {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0} 3940 </script>
3940 3941
3941<script type="text/javascript"> 3942 window.cartErrorMessage = "Error adding to cart"; 3943 </script>
3943 3944
3944<script type="application/json" data-ajax-cart-initial-state> 3945 {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0} 3946 </script>
3946<!-- TODO: Shoplift Test -->
3947<script type="module"> 3948 document.addEventListener('DOMContentLoaded', async function () { 3949 const [ 3950 isTabbedRecsActive, 3951 isPLPPriceRangeMessageActive, 3952 isNavReorderNewVisitors, 3953 isNavReorderReturningVisitors, 3954 ] = await Promise.all([ 3955 shoplift.isHypothesisActive('019b933e-2ed8-70aa-b0b4-13dccfed4743'), // Tabbed Recs 3956 shoplift.isHypothesisActive('019cae41-ed40-7462-8ca7-502e649183a6'), // PLP price range message 3957 shoplift.isHypothesisActive('019c9fc9-243f-72d6-8c9e-1fa0c21840f2'), // Nav reorder - new visitors 3958 shoplift.isHypothesisActive('019c9fd4-73ae-7d17-a5d8-2aa07c12785e'), // Nav reorder - returning visitors 3959 ]); 3960 3961 if (isTabbedRecsActive) { 3962 document.body.classList.add('shoplift-tabbed-recs-active'); 3963 } 3964 if (isPLPPriceRangeMessageActive) { 3965 document.body.classList.add('shoplift-plp-price-range-message-active'); 3966 } 3967 3968 if (isNavReorderNewVisitors) { 3969 document.body.classList.add('shoplift-nav-reorder-new-visitors-active'); 3970 } 3971 3972 if (isNavReorderReturningVisitors) { 3973 document.body.classList.add('shoplift-nav-reorder-returning-visitors-active'); 3974 } 3975 }); 3976</script>
3976 3977 3978<!-- Shoplift Tests (metaobject-driven) -->
3979<script> 3980 (async () => { 3981 const tests = [{ 3982 api_id: "123cvc123123-1231dfhded3", 3983 name: "Dummy AB Test", 3984 handle: "dummy-ab-test" 3985 }]; 3986 3987 const testResults = await Promise.all( 3988 tests.map(test => shoplift.isHypothesisActive(test.api_id)) 3989 ); 3990 3991 const testResultsMap = tests.reduce((acc, test, index) => { 3992 acc[test.handle] = testResults[index]; 3993 return acc; 3994 }, {}); 3995 3996 window.shopliftTests = testResultsMap; 3997 3998 Object.entries(testResultsMap).forEach(([handle, isActive]) => { 3999 if (isActive) { 4000 document.body.classList.add(handle); 4001 document.dispatchEvent( 4002 new CustomEvent("shoplift-test-active", { 4003 detail: handle 4004 }) 4005 ); 4006 } 4007 }); 4008 })(); 4009</script>
4009 4010<style> 4011 .tabbed-products-carousel { 4012 display: none; 4013 } 4014 .shoplift-tabbed-recs-active .tabbed-products-carousel { 4015 display: block; 4016 } 4017 .shoplift-tabbed-recs-active.template-index accordion-sections-effect .products-carousel { 4018 display: none; 4019 } 4020 [data-plp-price-range-message-test] { 4021 display: none; 4022 } 4023 .template-collection.shoplift-plp-price-range-message-active 4024 [data-plp-price-range-message-control] { 4025 display: none; 4026 } 4027 .template-collection.shoplift-plp-price-range-message-active [data-plp-price-range-message-test] { 4028 display: inline; 4029 } 4030 4031 .shoplift-nav-reorder-new-visitors-active .menu-item[id*='electric-toothbrushes'] { 4032 order: -1; 4033 } 4034 4035 .shoplift-nav-reorder-new-visitors-active .menu-item[id*='shop-all'] { 4036 order: 1; 4037 } 4038 4039 .shoplift-nav-reorder-new-visitors-active .menu-item[id*='discover'] { 4040 order: 2; 4041 } 4042 4043 .shoplift-nav-reorder-returning-visitors-active .menu-item[id*='shop-all'] { 4044 order: 1; 4045 } 4046 4047 .shoplift-nav-reorder-returning-visitors-active .menu-item[id*='discover'] { 4048 order: 2; 4049 } 4050</style> 4051<!-- End of Shoplift Test -->
4052<script> 4053 window.components = { 4054 "accordion-block": "//www.getquip.com/cdn/shop/t/257/assets/js-component-accordion-block.min.js?v=93229962818354215321789744850", 4055 "accordion-sections-effect": "//www.getquip.com/cdn/shop/t/257/assets/js-component-accordion-sections-effect.min.js?v=97287780077574567541789744851", 4056 "announcement-bar": "//www.getquip.com/cdn/shop/t/257/assets/js-component-announcement-bar.min.js?v=84658338107891887581789744852", 4057 "bundle-details": "//www.getquip.com/cdn/shop/t/257/assets/js-component-bundle-details.min.js?v=44504963839291409631789745221", 4058 "bundle-listing": "//www.getquip.com/cdn/shop/t/257/assets/js-component-bundle-listing.min.js?v=73975227985806491481789744853", 4059 "country-province-selector": "//www.getquip.com/cdn/shop/t/257/assets/js-component-country-province-selector.min.js?v=152264915932761730331789744854", 4060 "custom-quiz": "//www.getquip.com/cdn/shop/t/257/assets/js-component-custom-quiz.min.js?v=158317300036925463131789744854", 4061 "custom-scroll": "//www.getquip.com/cdn/shop/t/257/assets/js-component-custom-scroll.min.js?v=179219346908918791211789744855", 4062 "custom-select": "//www.getquip.com/cdn/shop/t/257/assets/js-component-custom-select.min.js?v=65689512655417440641789744855", 4063 "custom-subscription-widget": "//www.getquip.com/cdn/shop/t/257/assets/js-component-custom-subscription-widget.min.js?v=29281703206491339031789744856", 4064 "customer-portal": "//www.getquip.com/cdn/shop/t/257/assets/js-component-customer-portal.min.js?v=113567859359444290241789744856", 4065 "drawer-block": "//www.getquip.com/cdn/shop/t/257/assets/js-component-drawer-block.min.js?v=55854797929239240371789744857", 4066 "dynamic-breadcrumbs": "//www.getquip.com/cdn/shop/t/257/assets/js-component-dynamic-breadcrumbs.min.js?v=92463520521254755101789744858", 4067 "external-filter-buttons": "//www.getquip.com/cdn/shop/t/257/assets/js-component-external-filter-buttons.min.js?v=147039213605026134841789744858", 4068 "facet-form-count": "//www.getquip.com/cdn/shop/t/257/assets/js-component-facet-form-count.min.js?v=91521577224311031791789744859", 4069 "facets-form": "//www.getquip.com/cdn/shop/t/257/assets/js-component-facets-form.min.js?v=15751579683981597221789744859", 4070 "form-textarea": "//www.getquip.com/cdn/shop/t/257/assets/js-component-form-textarea.min.js?v=138370042236154155821781560496", 4071 "gift-wrap": "//www.getquip.com/cdn/shop/t/257/assets/js-component-gift-wrap.min.js?v=7681833538846321491789744860", 4072 "header-block": "//www.getquip.com/cdn/shop/t/257/assets/js-component-header-block.min.js?v=84561915626810793081789744861", 4073 "html-fetcher-trigger": "//www.getquip.com/cdn/shop/t/257/assets/js-component-html-fetcher-trigger.min.js?v=2726567149284920281781560498", 4074 "html-fetcher": "//www.getquip.com/cdn/shop/t/257/assets/js-component-html-fetcher.min.js?v=106057219224144253701789744861", 4075 "klaviyo-bis": "//www.getquip.com/cdn/shop/t/257/assets/js-component-klaviyo-bis.min.js?v=3726523198904813181789745221", 4076 "lazy-video": "//www.getquip.com/cdn/shop/t/257/assets/js-component-lazy-video.min.js?v=167315078928735883931789744862", 4077 "localization-form": "//www.getquip.com/cdn/shop/t/257/assets/js-component-localization-form.min.js?v=9260422430797402061789744863", 4078 "media-loader": "//www.getquip.com/cdn/shop/t/257/assets/js-component-media-loader.min.js?v=110504344079826808641789744863", 4079 "modal-dialog": "//www.getquip.com/cdn/shop/t/257/assets/js-component-modal-dialog.min.js?v=13928783609695676671789744864", 4080 "modal-opener": "//www.getquip.com/cdn/shop/t/257/assets/js-component-modal-opener.min.js?v=130307665729130167471789744865", 4081 "page-viewer": "//www.getquip.com/cdn/shop/t/257/assets/js-component-page-viewer.min.js?v=16256164959338018581789744865", 4082 "pagination-link": "//www.getquip.com/cdn/shop/t/257/assets/js-component-pagination-link.min.js?v=125625788810242016511789744866", 4083 "predictive-search": "//www.getquip.com/cdn/shop/t/257/assets/js-component-predictive-search.min.js?v=134011610816054991441789744866", 4084 "product-card": "//www.getquip.com/cdn/shop/t/257/assets/js-component-product-card.min.js?v=73118948828244895931789744867", 4085 "product-color-option": "//www.getquip.com/cdn/shop/t/257/assets/js-component-product-color-option.min.js?v=91726763431177942251789744868", 4086 "product-gallery": "//www.getquip.com/cdn/shop/t/257/assets/js-component-product-gallery.min.js?v=172965951618704872431789744868", 4087 "product-radio-option": "//www.getquip.com/cdn/shop/t/257/assets/js-component-product-radio-option.min.js?v=168297367545653718181789744869", 4088 "product-section": "//www.getquip.com/cdn/shop/t/257/assets/js-component-product-section.min.js?v=84568273188845754141790265030", 4089 "product-select-option": "//www.getquip.com/cdn/shop/t/257/assets/js-component-product-select-option.min.js?v=143054157051439038671789744870", 4090 "product-sticky-button": "//www.getquip.com/cdn/shop/t/257/assets/js-component-product-sticky-button.min.js?v=15125108997675702661789744871", 4091 "quantity-input": "//www.getquip.com/cdn/shop/t/257/assets/js-component-quantity-input.min.js?v=21197129835286031221789744871", 4092 "quick-view-product": "//www.getquip.com/cdn/shop/t/257/assets/js-component-quick-view-product.min.js?v=114049770300871160011789744872", 4093 "rebuy-ab-test": "//www.getquip.com/cdn/shop/t/257/assets/js-component-rebuy-ab-test.min.js?v=116130318453388261571789744872", 4094 "recipient-form": "//www.getquip.com/cdn/shop/t/257/assets/js-component-recipient-form.min.js?v=173760544223375460871789744873", 4095 "rte-content": "//www.getquip.com/cdn/shop/t/257/assets/js-component-rte-content.min.js?v=15545289580923327381789744873", 4096 "scroll-animation": "//www.getquip.com/cdn/shop/t/257/assets/js-component-scroll-animation.min.js?v=48322706114598459391789744874", 4097 "size-getter": "//www.getquip.com/cdn/shop/t/257/assets/js-component-size-getter.min.js?v=86974227591696219311781560499", 4098 "smart-form": "//www.getquip.com/cdn/shop/t/257/assets/js-component-smart-form.min.js?v=6228645296701388291789744875", 4099 "social-proof-review": "//www.getquip.com/cdn/shop/t/257/assets/js-component-social-proof-review.min.js?v=170274906798588223461789744875", 4100 "subscription-widget": "//www.getquip.com/cdn/shop/t/257/assets/js-component-subscription-widget.min.js?v=51733812034766189411789744876", 4101 "swiper-loader": "//www.getquip.com/cdn/shop/t/257/assets/js-component-swiper-loader.min.js?v=124182820504056625891789744876", 4102 "time-code-video": "//www.getquip.com/cdn/shop/t/257/assets/js-component-time-code-video.min.js?v=6597578306577899191789744877" 4103} 4104</script>
4104<script type="text/javascript"> 4105 const components = window.components || {}; 4106 window.initComponent = function (element, parentForCheck = null) { 4107 if (parentForCheck && parentForCheck.querySelector(element)) { 4108 return; 4109 } 4110 4111 const elScript = document.createElement('script'); 4112 elScript.type = 'module'; 4113 elScript.src = components[element]; 4114 document.body.appendChild(elScript); 4115 elScript.addEventListener('error', () => 4116 document.querySelectorAll(element).forEach((el) => el.classList.add('no-js')) 4117 ); 4118 elScript.addEventListener('load', () => { 4119 document.dispatchEvent( 4120 new CustomEvent('component-loaded', { 4121 detail: { 4122 component: element, 4123 components, 4124 }, 4125 }) 4126 ); 4127 }); 4128 }; 4129 4130 class ComponentLoader extends HTMLElement { 4131 constructor() { 4132 super(); 4133 } 4134 4135 connectedCallback() { 4136 Object.keys(components).forEach((component) => { 4137 if (this.querySelector(component)) { 4138 window.initComponent(component); 4139 delete components[component]; 4140 } 4141 }); 4142 } 4143 } 4144 customElements.define('component-loader', ComponentLoader); 4145</script>
vendor: 1 bytes, line 4145
4145
4146<script> 4147 window.routes = { 4148 predictive_search_url: '/search/suggest', 4149 }; 4150 4151 window.variantStrings = { 4152 addToCart: `Add to cart`, 4153 soldOut: `Sold out`, 4154 unavailable: `Unavailable`, 4155 }; 4156 </script>
4156 4157 4158
4158<script type="module"> 4159 window.history.scrollRestoration = 'manual'; 4160 let fadeEnabled = true; 4161 document.addEventListener('click', (event) => { 4162 fadeEnabled = String(event.target.getAttribute('href')).indexOf('mailto:') !== 0; 4163 }); 4164 window.addEventListener('beforeunload', () => { 4165 if (fadeEnabled) { 4166 document.querySelector('html').classList.add('beforeunload'); 4167 } 4168 }); 4169 window.addEventListener('pageshow', () => { 4170 document.querySelector('html').classList.remove('beforeunload'); 4171 }); 4172 </script>
4172<script 4173 async 4174 type="text/javascript" 4175 src="https://apps.bazaarvoice.com/deployments/quip/main_site/production/en_US/bv.js" 4176 ></script>
4176<style data-one-time-only-cart> 4177 .rebuy-cart__flyout-item .rebuy-cart__flyout-item-subscription{display:none !important} 4178</style> 4179<!-- Widget : Subscription Promo: GWP --> 4180<div data-rebuy-id="204390"></div> 4181<!-- End Widget : Subscription Promo: GWP --> 4182 4183 4184
4185<script src="https://cdn.rebuyengine.com/onsite/js/rebuy.js?shop=bb73c3-5.myshopify.com" async></script>
4185<script type="application/json" id="empty-cart-categories-data"> 4186 { 4187 "enabled": true, 4188 "heading": "Your cart is empty!", 4189 "subheading": "Explore ways to refresh your routine", 4190 "buttons": [{"label": "Shop All", "url": "\/collections\/all"},{"label": "Shop Toothbrushes", "url": "\/collections\/toothbrushes"},{"label": "Shop Flossers", "url": "\/collections\/floss"},{"label": "Whitening \u0026 care", "url": "\/collections\/whitening-care"},{"label": "Bundle \u0026 Save", "url": "\/pages\/bundles"}] 4191 } 4192 </script>
4192 4193 4194 <style> 4195 .rebuy-cart__flyout-empty-cart .empty-cart-categories { 4196 display: flex; 4197 flex-direction: column; 4198 align-items: center; 4199 gap: 16px; 4200 padding: 24px 20px; 4201 width: 100%; 4202 box-sizing: border-box; 4203 } 4204 .rebuy-cart__flyout-empty-cart .empty-cart-categories__heading { 4205 color: var(--Evergreen, #054040); 4206 text-align: center; 4207 font-family: Poppins; 4208 font-size: 18px; 4209 font-style: normal; 4210 font-weight: 600; 4211 line-height: 150%; 4212 letter-spacing: -0.2px; 4213 margin: 0; 4214 } 4215 .rebuy-cart__flyout-empty-cart .empty-cart-categories__subheading { 4216 color: var(--Evergreen, #054040); 4217 text-align: center; 4218 font-family: Poppins; 4219 font-size: 16px; 4220 font-style: normal; 4221 font-weight: 500; 4222 line-height: 160%; 4223 margin: 0; 4224 } 4225 .rebuy-cart__flyout-empty-cart .empty-cart-categories__buttons { 4226 display: flex; 4227 flex-direction: column; 4228 gap: 8px; 4229 width: 100%; 4230 max-width: 360px; 4231 } 4232 .rebuy-cart__flyout-empty-cart .empty-cart-categories__button { 4233 display: flex; 4234 min-width: 220px; 4235 padding: 12px 40px; 4236 justify-content: center; 4237 align-items: center; 4238 gap: 8px; 4239 align-self: stretch; 4240 border-radius: 33px; 4241 background: var(--Lime, #50fcce); 4242 color: var(--Evergreen, #054040); 4243 text-align: center; 4244 font-family: Poppins; 4245 font-size: 14px; 4246 font-style: normal; 4247 font-weight: 600; 4248 line-height: 140%; 4249 letter-spacing: 0.2px; 4250 text-decoration: none; 4251 box-sizing: border-box; 4252 margin: 0; 4253 } 4254 .rebuy-cart__flyout-empty-cart .empty-cart-categories__button:hover, 4255 .rebuy-cart__flyout-empty-cart .empty-cart-categories__button:focus-visible { 4256 color: #fff; 4257 text-decoration: none; 4258 } 4259 .rebuy-cart__flyout-empty-cart .empty-cart-categories__button:focus-visible { 4260 outline: 2px solid var(--Evergreen, #054040); 4261 outline-offset: 2px; 4262 } 4263 </style> 4264<!-- Dynamic bundle -->
4265<script id="rebuy-widget-171242" type="text/template"> 4266 <div class="rebuy-widget" 4267 v-cloak 4268 v-on:click="stopPropagation($event)" 4269 v-bind:id="'rebuy-widget-' + id" 4270 v-bind:class="['widget-type-' + config.type.replace('_','-'), products.length > 0 ? 'is-visible' : 'is-hidden']"> 4271 4272 <div 4273 class="rebuy-widget-container" 4274 v-bind:class="['widget-display-' + config.display_type, visible ? 'is-visible' : 'is-hidden' ]"> 4275 <div class="rebuy-widget-content"> 4276 <div class="rebuy-timer" v-if="hasTimer()"> 4277 <h5 class="rebuy-timer-title" v-if="config.language.timer_title"> 4278 <span v-html="config.language.timer_title"></span> <span class="rebuy-timer-minutes" v-html="config.timer.duration_minutes"></span>:<span class="rebuy-timer-seconds" v-html="config.timer.duration_seconds"></span> 4279 </h5> 4280 </div> 4281 4282 <h4 class="super-title" v-if="config.language.super_title != ''" v-html="config.language.super_title"></h4> 4283 4284 <h3 class="primary-title" v-if="config.language.title != ''" v-html="config.language.title"></h3> 4285 4286 <div class="description" v-if="config.language.description != ''" v-html="config.language.description"></div> 4287 4288 <div class="rebuy-bundle"> 4289 4290 <div class="rebuy-bundle__images"> 4291 4292 <div class="rebuy-bundle__image" v-for="(product, index) in products" v-if="product.selected" v-bind:class="[product.handle, 'product-id-' + product.id, cartHasProduct(product) ? 'cart-has-item' : '', productTagClasses(product)]"> 4293 <a class="rebuy-bundle__image-item" v-bind:href="learnMoreURL(product)" v-bind:style="imageStyles" v-on:click="learnMore(product);" v-bind:class="[hasLearnMore() && !isInputProduct(product) ? 'clickable' : '' ]"> 4294 <img v-bind:src="itemImage(product, product.selected_variant, '400x400')" v-bind:alt="product.title"> 4295 </a> 4296 <div class="rebuy-bundle__image-divider"> 4297 <i class="far fa-plus"></i> 4298 </div> 4299 </div> 4300 4301 </div> 4302 4303 <div class="rebuy-bundle__actions rebuy-mobile" v-if="subtotal() > 0"> 4304 4305 <div class="rebuy-bundle__actions-price"> 4306 <strong class="rebuy-bundle__actions-price-label" v-html="config.language.total_price_label"></strong> 4307 4308 <div class="rebuy-bundle__actions-price-value" v-if="bundleOnSale()"> 4309 <span class="rebuy-money sale" v-html="formatMoney(subtotal())"></span> 4310 <span class="rebuy-money compare-at" v-html="formatMoney(compareAtSubtotal())"></span> 4311 </div> 4312 <div class="rebuy-bundle__actions-price-value" v-if="!(bundleOnSale())"> 4313 <span class="rebuy-money" v-html="formatMoney(subtotal())"></span> 4314 </div> 4315 </div> 4316 4317 <div class="rebuy-bundle__actions-buttons"> 4318 <button 4319 class="rebuy-button" 4320 v-on:click="addSelectedProductsToCart()" 4321 type="button"> 4322 <span v-html="buttonWidgetLabel()"></span> 4323 </button> 4324 </div> 4325 </div> 4326 4327 <div class="rebuy-bundle__items"> 4328 4329 4330 <div class="rebuy-product-block" v-for="(product, product_index) in products" v-bind:class="[product.handle, 'product-id-' + product.id, cartHasProduct(product) ? 'cart-has-item' : '', productTagClasses(product), isInputProduct(product) ? 'is-input-product' : '' ,product.selected ? 'is-selected': '']"> 4331 4332 <div class="rebuy-product-info"> 4333 <a class="rebuy-bundle__image-item bundle-single-image" v-bind:href="learnMoreURL(product)" v-bind:style="imageStyles" v-on:click="learnMore(product);" v-bind:class="[hasLearnMore() && !isInputProduct(product) ? 'clickable' : '' ]"> 4334 <img v-bind:src="itemImage(product, product.selected_variant)" v-bind:alt="product.title"> 4335 </a> 4336 <div class="rebuy-product-checkbox"> 4337 <label class="rebuy-checkbox-label"> 4338 <input 4339 class="checkbox-input rebuy-checkbox" 4340 v-model="product.selected" 4341 type="checkbox" /> 4342 </label> 4343 </div> 4344 <strong class="rebuy-product-label" v-if="isInputProduct(product)" v-html="'This item:'"></strong> 4345 <a class="rebuy-product-title" v-bind:href="learnMoreURL(product)" v-on:click="learnMore(product);" v-html="product.title" v-bind:class="[hasLearnMore() && !isInputProduct(product) ? 'clickable' : '']"></a> 4346 <div class="rebuy-variant-title" v-if="showVariantTitle(product)" v-html="product.selected_variant.title"></div> 4347 <div data-bv-show="inline_rating" 4348 data-bv-product-id="{{- product.id -}}" 4349 data-bv-seo="false" 4350 data-bv-redirect-url="{{- product.url -}}"> 4351 </div> 4352 4353 4354 <div class="rebuy-product-price"> 4355 <div v-if="variantOnSale(product, product.selected_variant)"> 4356 <span class="rebuy-money sale" v-html="formatMoney(variantPrice(product, product.selected_variant))"></span> 4357 <span class="rebuy-money compare-at" v-html="formatMoney(variantCompareAtPrice(product, product.selected_variant))"></span> 4358 </div> 4359 <div v-if="!(variantOnSale(product, product.selected_variant))"> 4360 <span class="rebuy-money" v-html="formatMoney(variantPrice(product, product.selected_variant))"></span> 4361 </div> 4362 </div> 4363 <div class="rebuy-product-description" v-if="showProductDescription(product)" v-html="text(product.body_html)"></div> 4364 </div> 4365 <div class="rebuy-product-options" v-if="showVariantSelect(product)"> 4366 4367 <!-- Custom --> 4368 <select 4369 :id="id + '-' + 'select' + '-' + product_index" 4370 :class="{ hide : settings.view_options.variant_selector == 'buttons' }" 4371 class="rebuy-select" 4372 v-if="product.variants.length > 1" 4373 v-model="product.selected_variant_id" 4374 v-on:change="selectVariant(product)"> 4375 <option v-for="variant in product.variants" v-bind:value="variant.id">{{ variant.title }}</option> 4376 </select> 4377 <!-- Custom --> 4378 4379 <div v-if="option.name == 'Color' && displayColorSwatches()" v-for="(option, option_index) in product.options" class="rebuy-color-swatches"> 4380 <div v-for="(value, value_index) in option.values" class="rebuy-color-swatch"> 4381 <input 4382 :name="id + '-color-' + product_index" 4383 :id="id + '-color-' + option_index + '-' + value + '-' + value_index" 4384 :checked="value_index == 0" 4385 :value="value" 4386 type="radio" 4387 class="rebuy-color-input hide" 4388 v-on:change="selectVariantByColor(product, value, product_index)"> 4389 <label 4390 :for="id + '-color-' + option_index + '-' + value + '-' + value_index" 4391 :style="{ backgroundColor: value }" 4392 :title="value" 4393 class="rebuy-color-label"></label> 4394 </div> 4395 </div> 4396 4397 <div v-if="option.name == 'Size' && settings.view_options.variant_selector == 'buttons'" v-for="(option, option_index) in product.options" class="mt-10 rebuy-size-swatches"> 4398 <div v-for="(value, value_index) in option.values" class="rebuy-size-swatch"> 4399 <input 4400 :name="id + '-size-' + product_index" 4401 :id="id + '-size-' + product_index + '-' + value" 4402 :checked="value_index == 0" 4403 :value="value" 4404 type="radio" 4405 class="rebuy-size-input hide" 4406 v-on:change="selectVariantBySize(product, value, product_index)"> 4407 <label 4408 :for="id + '-size-' + product_index + '-' + value" 4409 class="rebuy-size-label">{{ value }}</label> 4410 </div> 4411 </div> 4412 </div> 4413 </div> 4414 4415 </div>
4416 </div> 4417 4418 </div> 4419 </div> 4420 4421 <div class="rebuy-bundle__actions rebuy-desktop" v-if="subtotal() > 0"> 4422 4423 <div class="rebuy-bundle__actions-price"> 4424 <strong class="rebuy-bundle__actions-price-label" v-html="config.language.total_price_label"></strong> 4425 4426 <div class="rebuy-bundle__actions-price-value" v-if="bundleOnSale()"> 4427 <span class="rebuy-money sale" v-html="formatMoney(subtotal())"></span> 4428 <span class="rebuy-money compare-at" v-html="formatMoney(compareAtSubtotal())"></span> 4429 </div> 4430 <div class="rebuy-bundle__actions-price-value" v-if="!(bundleOnSale())"> 4431 <span class="rebuy-money" v-html="formatMoney(subtotal())"></span> 4432 </div> 4433 </div> 4434 4435 <div class="rebuy-bundle__actions-buttons"> 4436 <button 4437 class="rebuy-button" 4438 v-on:click="addSelectedProductsToCart()" 4439 type="button"> 4440 <span v-html="buttonWidgetLabel()"></span> 4441 </button> 4442 </div> 4443 </div> 4444 4445 </div> 4446 </div> 4447</script>
4447 4448 4449<!-- Cross-sells -->
4450<script id="rebuy-recommended-template" type="text/template"> 4451 <div class="rebuy-widget" 4452 v-cloak 4453 v-on:click="stopPropagation($event)" 4454 v-bind:id="'rebuy-widget-' + id" 4455 v-bind:class="['widget-type-' + config.type.replace('_','-'), 'widget-display-' + config.display_type, products.length > 0 ? 'is-visible' : 'is-hidden', 'widget-layout-' + currentLayout()]"> 4456 4457 <div 4458 class="rebuy-widget-container" 4459 v-cloak 4460 v-bind:class="['widget-display-' + config.display_type, visible ? 'is-visible' : 'is-hidden' ]" 4461 v-on:click.self="hide()"> 4462 4463 <div class="rebuy-widget-content"> 4464 <div class="rebuy-modal-close" v-on:click="hide()" aria-label="close modal"> 4465 <i class="fas fa-times" aria-hidden="true"></i> 4466 </div> 4467 4468 <div class="rebuy-timer" v-if="hasTimer()"> 4469 <p class="rebuy-timer-title" v-if="config.language.timer_title"> 4470 <span v-html="config.language.timer_title"></span> <span class="rebuy-timer-minutes" v-html="config.timer.duration_minutes"></span>:<span class="rebuy-timer-seconds" v-html="config.timer.duration_seconds"></span> 4471 </p> 4472 </div> 4473 4474 <h3 class="super-title" v-if="config.language.super_title != ''" v-html="config.language.super_title"></h3> 4475 4476 <h4 class="primary-title" v-if="config.language.title != ''" v-html="config.language.title"></h4> 4477 4478 <div class="description" v-if="config.language.description != ''" v-html="config.language.description"></div> 4479 4480 <div class="rebuy-product-grid" v-bind:class="layoutClasses" tabindex="0" role="list"> 4481 4482 <div 4483 v-for="(product, product_index) in products" 4484 v-bind:class="[product.handle, 'product-id-' + product.id, cartHasProduct(product) ? 'cart-has-item' : '', productTagClasses(product)]" 4485 aria-label="product" 4486 class="rebuy-product-block" 4487 role="listitem" 4488 > 4489 4490 <div class="rebuy-product-media"> 4491 <a 4492 class="rebuy-product-image" 4493 tabindex="-1" 4494 v-bind:href="learnMoreURL(product)" 4495 v-bind:style="imageStyles" 4496 v-on:click="learnMore(product, $event);" 4497 v-bind:class="[hasLearnMore() ? 'clickable' : '']" 4498 rel="nofollow" 4499 > 4500 <img v-bind:loading="product_index > 1 ? 'lazy' : 'eager'" v-bind:src="itemImage(product, product.selected_variant, '400x400')" v-bind:alt="itemImageAlt(product, product.selected_variant)"> 4501 </a> 4502 </div> 4503 <div class="rebuy-product-info"> 4504 <a 4505 aria-level="5" 4506 class="rebuy-product-title" 4507 v-bind:href="learnMoreURL(product)" 4508 v-on:click="learnMore(product, $event);" 4509 v-html="product.title" 4510 v-bind:class="[hasLearnMore() ? 'clickable' : '']" 4511 v-bind:aria-label="'View ' + product.title" 4512 rel="nofollow" 4513 ></a> 4514 <div class="rebuy-variant-title" v-if="showVariantTitle(product)" v-html="product.selected_variant.title"></div> 4515 <div data-bv-show="inline_rating" 4516 data-bv-product-id="{{- product.id -}}" 4517 data-bv-seo="false" 4518 data-bv-redirect-url="{{- product.url -}}"></div> 4519 4520 <div class="rebuy-product-price"> 4521 <div v-if="variantOnSale(product, product.selected_variant)">
4522 <span class="rebuy-money sale"> 4523 <span class="sr-only">Sale price</span> 4524 <span tabindex="0" v-html="formatMoney(variantPrice(product, product.selected_variant))"></span> 4525 </span> 4526 <span class="rebuy-money compare-at"> 4527 <span class="sr-only">Original price</span> 4528 <span v-html="formatMoney(variantCompareAtPrice(product, product.selected_variant))"></span> 4529 </span> 4530 </div> 4531 <div v-if="!(variantOnSale(product, product.selected_variant))"> 4532 <span class="rebuy-money"> 4533 <span class="sr-only">Price</span> 4534 <span tabindex="0" v-html="formatMoney(variantPrice(product, product.selected_variant))"></span> 4535 </span> 4536 </div> 4537 </div> 4538 <div class="rebuy-product-description" v-if="showProductDescription(product)" v-html="text(product.body_html)"></div> 4539 </div> 4540 <div class="rebuy-product-options" v-if="showVariantSelect(product)"> 4541 4542 <!-- Custom --> 4543 <select 4544 title="Select product variant" 4545 :id="id + '-' + 'select' + '-' + product_index" 4546 :class="{ hide : settings.view_options.variant_selector == 'buttons' }" 4547 class="rebuy-select" 4548 v-if="product.variants.length > 1" 4549 v-bind:aria-label="'variant of ' + product.title" 4550 v-model="product.selected_variant_id" 4551 v-on:change="selectVariant(product)"> 4552 <option v-for="variant in product.variants" v-bind:value="variant.id">{{ variant.title }}</option> 4553 </select> 4554 <!-- Custom --> 4555 4556 <div v-if="displayColorSwatches(option)" v-for="option in product.options" class="rebuy-color-swatches"> 4557 <div v-for="(value, value_index) in filterOOSOptions(option, product)" class="rebuy-color-swatch"> 4558 <input 4559 :name="id + '-color-' + product_index" 4560 :id="id + '-color-' + product_index + '-' + value + '-' + value_index" 4561 :checked="value_index == 0" 4562 :value="value" 4563 type="radio" 4564 class="rebuy-color-input hide" 4565 v-on:change="selectVariantByColor(product, value, product_index)"> 4566 <label 4567 :for="id + '-color-' + product_index + '-' + value + '-' + value_index" 4568 :style="{ backgroundColor: value }" 4569 :title="value" 4570 class="rebuy-color-label"></label> 4571 </div> 4572 </div> 4573 4574 <div v-if="displaySizeSwatches(option)" v-for="option in product.options" class="mt-10 rebuy-size-swatches"> 4575 <div v-for="(value, value_index) in filterOOSOptions(option, product)" class="rebuy-size-swatch"> 4576 4577 <input 4578 :name="id + '-size-' + product_index" 4579 :id="id + '-size-' + product_index + '-' + value" 4580 :checked="value_index == 0" 4581 :value="value" 4582 type="radio" 4583 class="rebuy-size-input hide" 4584 v-on:change="selectVariantBySize(product, value, product_index)"> 4585 <label 4586 :for="id + '-size-' + product_index + '-' + value" 4587 class="rebuy-size-label">{{ value }}</label> 4588 </div> 4589 </div> 4590 </div> 4591 <div class="rebuy-product-actions"> 4592 4593 <div class="subscription-checkbox" v-if="showSubscriptionOptions(product)"> 4594 <label class="rebuy-checkbox-label"> 4595 <input 4596 class="checkbox-input rebuy-checkbox" 4597 v-model="product.subscription" 4598 v-on:change="toggleSubscription(product)" 4599 type="checkbox" />
4600 <span class="checkbox-label" v-html="upgradeToSubscriptionLabel(product)"></span> 4601 </label> 4602 </div> 4603 4604 <div class="subscription-frequency" v-if="showSubscriptionFrequency(product)"> 4605 <select 4606 class="rebuy-select" 4607 aria-label="subscription frequency" 4608 v-model="product.subscription_frequency" 4609 v-on:change="updateSubscriptionFrequency(product)"> 4610 <option v-for="frequency in product.subscription_frequencies" v-bind:value="frequency">{{ frequencyLabel(frequency, product.subscription_interval) }}</option> 4611 </select> 4612 </div> 4613 4614 <div class="product-quantity" v-if="hasQuantityInputEnabled()"> 4615 <div class="rebuy-select-wrapper"> 4616 <label class="rebuy-label">Quantity</label> 4617 <select 4618 class="rebuy-select" 4619 aria-label="product quantity" 4620 v-model="product.quantity"> 4621 <option v-for="n in maxQuantityInputValue()" v-bind:value="n">{{ n }}</option> 4622 </select> 4623 </div> 4624 </div> 4625 4626 <button 4627 class="rebuy-button" 4628 v-bind:class="{ working: (product.status != 'ready' && product.status != 'selecting') }" 4629 v-bind:disabled="!(variantAvailable(product.selected_variant)) || (product.status != 'ready' && product.status != 'selecting')" 4630 v-bind:aria-label="buttonAriaLabel(product)" 4631 v-on:click="addToCart(product)" 4632 type="button"> 4633 <span v-html="buttonLabel(product)"></span> 4634 </button> 4635 </div> 4636 </div> 4637 4638 </div> 4639 4640 <div class="rebuy-modal-actions" v-if="showContinueButton()"> 4641 <button 4642 class="rebuy-button decline" 4643 v-on:click="hide()" 4644 type="button"> 4645 <span v-html="continueLabel()"></span> 4646 </button> 4647 </div> 4648 4649 <div class="powered-by-rebuy"> 4650 <a v-bind:href="'https://rebuyengine.com/?shop=' + config.shop.myshopify_domain" target="_blank" rel="noopener"> 4651 Powered by Rebuy 4652 </a> 4653 </div> 4654 4655 </div> 4656 4657 </div> 4658 </div> 4659</script>
4659 4660 4661<!-- Gorgias Chat Widget Start -->
4662<script 4663 id="gorgias-chat-widget-install-v3" 4664 src="https://config.gorgias.chat/bundle-loader/01JWBPCY09QJ3WP1GJZB63GKBH" 4665></script>
4665 4666<!-- Gorgias Chat Widget End --> 4667 4668<!-- Bundle Start -->
4669<script 4670 src="https://bundle.dyn-rev.app/loader.js?g_cvt_id=fda38e30-1ebb-4601-a2a1-cd23201b1b49" 4671 async 4672></script>
4672 4673<!-- Bundle End --> 4674<style data-shopify> 4675 4676</style>
4677<script> 4678 (() => { 4679 const initGorgiasChatPromise = window.GorgiasChat 4680 ? window.GorgiasChat.init() 4681 : new Promise((resolve) => { 4682 window.addEventListener('gorgias-widget-loaded', () => resolve()); 4683 }); 4684 4685 initGorgiasChatPromise.then(() => { 4686 GorgiasChat.on('widget:opened', () => { 4687 document.body.classList.add('gorgias-chat-opened'); 4688 }); 4689 GorgiasChat.on('widget:closed', () => { 4690 document.body.classList.remove('gorgias-chat-opened'); 4691 }); 4692 }); 4693 4694 document.addEventListener( 4695 'rebuy:smartcart.show', 4696 (event) => GorgiasChat?.close && GorgiasChat.close() 4697 ); 4698 })(); 4699</script>
4699 4700 4701 4702 4703 4704 <!-- Start of quipcx Zendesk Widget script --> 4705
4705<script 4706 id="ze-snippet" 4707 src="https://static.zdassets.com/ekr/snippet.js?key=2cdfca16-9cbc-4f18-bc28-2144dd33ea66" 4708 defer 4709 ></script>
4709 4710 <!-- End of quipcx Zendesk Widget script -->
4710<script src="//www.getquip.com/cdn/shop/t/257/assets/js-jquery.min.js?v=147293088974801289311790175964" defer></script>
4710 4711
4711<script src="https://socialladder.rkiapps.com/Shopify/socialladder-shopify.js" defer></script>
4711 4712 4713 4714<link 4715 href="//www.getquip.com/cdn/shop/t/257/assets/css-rebuy-ab-test.min.css?v=259938235043465251784229587" 4716 rel="stylesheet" 4717 type="text/css" 4718 onload="this.onload=null;if(document.querySelector('link[href=\'//www.getquip.com/cdn/shop/t/257/assets/css-rebuy-ab-test.min.css?v=259938235043465251784229587\']') !== this) this.remove()" 4719 > 4720 4721 <!-- Widget : Subscription Promo: GWP ($5 Floss) --> 4722 <div data-rebuy-id="295931"></div> 4723 <!-- End Widget : Subscription Promo: GWP ($5 Floss) --> 4724 4725 <div data-rebuy-id="190674" data-rebuy-shopify-product-ids=""></div> 4726 <style> </style> 4727<div id="shopify-block-AMXlNNXM5SWtGZ0cxR__17151115064775110295" class="shopify-block shopify-app-block"><style data-recharge-theme='{"has_theme_customization": true, "design_mode": false }'> 4728 .recharge-theme { 4729 /* App */ 4730 --recharge-app-background: #D7FFF2; 4731 --recharge-app-container: 1200px; 4732 --recharge-app-vertical-padding: 32px; 4733 4734 /* Brand colors */ 4735 4736--recharge-color-brand: #054040; 4737 4738 /* Tints */ 4739 --recharge-color-brand-120: #021616; 4740 --recharge-color-brand-20: #376666; 4741 --recharge-color-brand-40: #698c8c; 4742 --recharge-color-brand-60: #9bb3b3; 4743 --recharge-color-brand-75: #c1cfcf; 4744 --recharge-color-brand-85: #dae2e2; 4745 4746 /* Neutral */ 4747 --recharge-color-neutral: hsl(180, 35%, 7%); 4748 --recharge-color-neutral-80: hsl(180, 7%, 25%); 4749 --recharge-color-neutral-70: hsl(180, 5%, 35%); 4750 --recharge-color-neutral-40: hsl(180, 3%, 63%); 4751 --recharge-color-neutral-10: hsl(180, 2%, 91%); 4752 4753 4754 /* Links */ 4755 --recharge-button-secondary: #054040; 4756 --recharge-button-secondary-120: #021616; 4757 --recharge-button-secondary-60: #698c8c; 4758 4759 /* Images */ 4760 --recharge-images-ratio: 1/1.33; 4761 4762 /* Cards */ 4763 4764 --recharge-cards-background: #FFFFFF; 4765 4766 4767 4768 --recharge-cards-border-color: RGBA(0,0,0,0); 4769 4770 4771 /* Fonts */ 4772 --recharge-typography-scale: 16px; 4773 --recharge-typography-size-1: calc(3 * var(--recharge-typography-scale)); 4774 --recharge-typography-size-2: calc(2.25 * var(--recharge-typography-scale)); 4775 --recharge-typography-size-3: calc(1.625 * var(--recharge-typography-scale)); 4776 --recharge-typography-size-4: calc(1.25 * var(--recharge-typography-scale)); 4777 --recharge-typography-size-5: calc(1 * var(--recharge-typography-scale)); 4778 --recharge-typography-size-6: calc(.875 * var(--recharge-typography-scale)); 4779 4780 /** Text **/ 4781 --recharge-typography-light: #FFFFFF; 4782 --recharge-typography-primary: var(--recharge-color-neutral); 4783 --recharge-typography-secondary: var(--recharge-color-neutral-70); 4784 4785 /* Corners */ 4786 --recharge-corners-radius: 16px; 4787 4788 4789 /* Button corners */ 4790 --recharge-button-border-radius: calc(var(--recharge-corners-radius) * 1.5); 4791 4792 /* Views */ 4793 4794 --recharge-views-background: #D7FFF2; 4795 4796 4797 /* Buttons */ 4798 --recharge-button-font-family: inherit; 4799 --recharge-button-brand: var(--recharge-color-brand); 4800 --recharge-button-color: #D7FFF2; 4801 } 4802</style> 4803 4804</div><div id="shopify-block-AS0lNMVZlSktiRm1BQ__5888675206956468567" class="shopify-block shopify-app-block"> 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821<div 4822 id='loop-onstore-data' 4823 data-show-onstore-bar='false' 4824 data-apikey='test-key' 4825 data-checkoutselector='#checkout' 4826 data-replacecheckoutbutton='false' 4827 data-cartdetails='true' 4828 data-preservecart='false' 4829 data-label='in available credit' 4830 data-mobile-label='credit' 4831 data-valuesize='15' 4832 data-labelsize='10' 4833 data-buttonsize='10' 4834 data-alignment='full' 4835 data-bgcolor='rgb(0,0,0)' 4836 data-textcolor='rgb(255,255,255)' 4837 data-bumpsidecart='false' 4838 data-sidecartselector='.sidecart'></div> 4839 4840 4841</div><div id="shopify-block-AVHAvNFplNFNQYXVHR__7300323368953708421" class="shopify-block shopify-app-block"> 4842 4843 4844
4845<script> 4846 window.trackerConfig = { 4847 configValue: "{\"dataplaneUrl\":\"https:\/\/getquipseczbnf.dataplane.rudderstack.com\",\"writeKey\":\"2sigFjvsIh2DujDhYeYMPix3bmp\"}" 4848 }; 4849 window.customerData = { 4850 id: null, 4851 email: null, 4852 firstName: null, 4853 lastName: null 4854 }; 4855</script>
4855</div><div id="shopify-block-AQTlTWDBDUEVwNWNoZ__10641372206048101839" class="shopify-block shopify-app-block">
4856<script> 4857 window.Rebuy = window.Rebuy || {}; 4858 window.Rebuy.customer = window.Rebuy.customer || {}; 4859 4860 window.Rebuy.market = window.Rebuy.market || {}; 4861 4862 window.Rebuy.market.country = "US"; 4863 4864 4865 window.Rebuy.market.locale = "en"; 4866 4867</script>
4867 4868 4869 4870 4871 4872 4873</div>
4873<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
4873 4874</body> 4875</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.