{
  "version": 3,
  "sources": ["/cdn/shop/t/45/assets/kija-editorial.js"],
  "sourcesContent": ["/* Kija Editorial \u2014 add-to-cart buttons, product page progress + sticky bar, cart drawer add-ons (Oct 2026) */\n(function () {\n  'use strict';\n  var SHIP = 4000, GIFT = 7500;\n  var root = (window.routes && window.routes.rootUrlWithoutSlash) || '';\n\n  function money(cents) {\n    var v = (cents / 100);\n    return '$' + (v % 1 === 0 ? v.toFixed(0) : v.toFixed(2));\n  }\n  function getCart() { return fetch(root + '/cart.js', { credentials: 'same-origin' }).then(function (r) { return r.json(); }); }\n  function notify(qty) {\n    document.documentElement.dispatchEvent(new CustomEvent('product:added', { bubbles: true, detail: { quantity: qty, productAdded: true } }));\n  }\n\n  /* ---------- 1. Add-to-cart buttons: <button data-ke-add data-items='[{\"id\":123,\"quantity\":1}]'> ---------- */\n  document.addEventListener('click', function (e) {\n    var btn = e.target.closest('[data-ke-add]');\n    if (!btn) return;\n    e.preventDefault();\n    var items;\n    try { items = JSON.parse(btn.getAttribute('data-items')); } catch (err) { return; }\n    if (!items || !items.length) return;\n    var label = btn.innerHTML;\n    btn.classList.add('is-loading');\n    fetch(root + '/cart/add.js', {\n      method: 'POST', credentials: 'same-origin',\n      headers: { 'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest' },\n      body: JSON.stringify({ items: items })\n    }).then(function (r) { return r.json().then(function (j) { return { ok: r.ok, j: j }; }); })\n      .then(function (res) {\n        btn.classList.remove('is-loading');\n        if (!res.ok) { btn.innerHTML = (res.j && res.j.description) ? 'Sold out' : 'Try again'; setTimeout(function () { btn.innerHTML = label; }, 2500); return; }\n        var qty = items.reduce(function (a, i) { return a + (i.quantity || 1); }, 0);\n        btn.classList.add('is-added'); btn.innerHTML = 'Added \u2713';\n        setTimeout(function () { btn.classList.remove('is-added'); btn.innerHTML = label; }, 2200);\n        notify(qty);\n        updateProgress();\n      })\n      .catch(function () { btn.classList.remove('is-loading'); });\n  });\n\n  /* ---------- 2. Product page progress bars ---------- */\nfunction updateProgress() {} // Oct 11: old duplicate removed; block 9 progUpdate() runs the bars\n\n  /* ---------- 3. Sticky add-to-cart on phones ---------- */\n  document.addEventListener('DOMContentLoaded', function () {\n    var bar = document.querySelector('.ke-sticky');\n    var main = document.querySelector('.product-form__add-button');\n    if (!bar || !main) return;\n    var stickyBtn = bar.querySelector('button');\n    stickyBtn.addEventListener('click', function () { main.click(); });\n    if ('IntersectionObserver' in window) {\n      new IntersectionObserver(function (entries) {\n        entries.forEach(function (en) {\n          var below = en.boundingClientRect.top < 0;\n          bar.classList.toggle('is-visible', !en.isIntersecting && below); // Oct 11 S50: only after scrolling past the main Add to cart\n        });\n      }).observe(main);\n    }\n    var sync = function () {\n      stickyBtn.disabled = main.disabled;\n      stickyBtn.textContent = /sold out|unavailable/i.test(main.textContent) ? 'Sold out' : 'Add to cart';\n      var priceEl = document.querySelector('.product-meta__price-list-container .price, .product-form__info-content .price');\n      if (priceEl) bar.querySelector('[data-ke-price]').textContent = priceEl.textContent.trim().replace(/^Sale price/i, '').trim();\n    };\n    sync();\n    new MutationObserver(sync).observe(main, { attributes: true, childList: true, subtree: true });\n  });\n\n  /* ---------- 4. Cart drawer add-ons (cart under free-shipping threshold) ---------- */\n  var addonBusy = false, lastKey = '', keLastCart = null, keLastAddons = '';\n  function renderAddons() {\n    var drawer = document.querySelector('#mini-cart');\n    if (!drawer || addonBusy) return;\n    var recap = drawer.querySelector('.mini-cart__recap');\n    if (!recap) return;\n    addonBusy = true;\n    getCart().then(function (cart) {\n      var key = cart.item_count + ':' + cart.total_price;\n      keLastCart = cart; decorateDrawer(drawer, cart);\n      var existing = drawer.querySelector('.ke-addons');\n      if (!cart.item_count || cart.total_price >= SHIP) { if (existing) existing.remove(); keLastAddons = ''; addonBusy = false; lastKey = key; return; }\n      if (existing && key === lastKey) { addonBusy = false; return; }\n      lastKey = key;\n      var inCart = cart.items.map(function (i) { return i.product_id; });\n      var first = cart.items[0].product_id;\n      var url = function (intent) { return root + '/recommendations/products.json?product_id=' + first + '&limit=8&intent=' + intent; };\n      return fetch(url('complementary')).then(function (r) { return r.json(); })\n        .then(function (d) { return (d.products && d.products.length) ? d : fetch(url('related')).then(function (r) { return r.json(); }); })\n        .then(function (d) {\n          var list = (d.products || []).filter(function (p) {\n            return p.available && inCart.indexOf(p.id) === -1 && p.variants && p.variants.some(function (v) { return v.available; }) && !(p.tags || []).some(function (t) { return /free.?gift/i.test(t); });\n          }).slice(0, 2);\n          var html = '';\n          if (list.length) {\n            html = '<div class=\"ke-addons\"><p class=\"ke-addons__title\">Finish the look \u2014 and ship free</p><p class=\"ke-addons__sub\">Picked to go with ' + String(cart.items[0].product_title || '').replace(/</g, '&lt;') + '.</p>' +\n              list.map(function (p) {\n                var v = p.variants.filter(function (x) { return x.available; })[0];\n                var img = p.featured_image ? (p.featured_image + (p.featured_image.indexOf('?') > -1 ? '&' : '?') + 'width=120') : '';\n                return '<div class=\"ke-addon\">' + (img ? '<img src=\"' + img + '\" alt=\"\" loading=\"lazy\">' : '') +\n                  '<span><b>' + p.title.replace(/</g, '&lt;') + '</b>' + money(v.price) + '</span>' +\n                  '<button type=\"button\" class=\"ke-btn\" data-ke-add data-items=\\'[{\"id\":' + v.id + ',\"quantity\":1}]\\'>Add</button></div>';\n              }).join('') + '</div>';\n          }\n          var again = drawer.querySelector('.ke-addons');\n          if (again) again.remove();\n          var recapNow = drawer.querySelector('.mini-cart__recap');\n          if (html && recapNow) recapNow.insertAdjacentHTML('beforebegin', html); keLastAddons = html;\n          addonBusy = false;\n        });\n    }).catch(function () { addonBusy = false; });\n  }\n  document.addEventListener('DOMContentLoaded', function () {\n    var drawer = document.querySelector('#mini-cart');\n    if (!drawer) return;\n    var t;\n    new MutationObserver(function (muts) {\n      var relevant = muts.some(function (m) { return !(m.target.closest && m.target.closest('.ke-addons')); });\n      if (!relevant) return;\n      /* Oct 13 S54: Warehouse re-renders the drawer on remove/qty - put our header, progress band and add-ons back in the same frame (was a blink), real numbers follow */\n      if (keLastCart && drawer.querySelector('.mini-cart__inner')) { try { var dq = drawer.querySelectorAll('.mini-cart__line-item input.quantity-selector__value'), dt = drawer.querySelector('.mini-cart__recap-price-line'), dm = dt && dt.textContent.replace(/,/g, '').match(/\\$(\\d+(?:\\.\\d{1,2})?)/); if (dq.length && dm) { var dn = 0; dq.forEach(function (i) { dn += parseInt(i.value, 10) || 0; }); var dc = { item_count: dn, total_price: Math.round(parseFloat(dm[1]) * 100), items: keLastCart.items || [] }; decorateDrawer(drawer, dc); var rc = drawer.querySelector('.mini-cart__recap'); if (keLastAddons && rc && dc.total_price < SHIP && !drawer.querySelector('.ke-addons')) rc.insertAdjacentHTML('beforebegin', keLastAddons); } } catch (e) {} } /* counts read from the re-rendered drawer itself, so the header is right in the same frame */\n      clearTimeout(t); t = setTimeout(renderAddons, 250);\n    }).observe(drawer, { childList: true, subtree: true });\n    renderAddons();\n  });\n\n  /* 5. Product page: move progress + bundle into the buy box, sticky bar to <body> */\n  var keProg = null, keBundle = null;\n  function placeExtras() {\n    var form = document.querySelector('.product-block-list__item--info .product-form');\n    if (!form) return;\n    var swapped = false, pick = function (sel, cur, keep) { var outs = [].slice.call(document.querySelectorAll(sel)).filter(function (e) { return !form.contains(e); }), f = outs[outs.length - 1]; outs.forEach(function (e) { if (e !== f && e.parentNode) e.parentNode.removeChild(e); }); if (!f) return cur; var w = f.closest('.product-block-list__item'); if (w && !w.classList.contains('product-block-list__item--info')) w.classList.add('ke-moved'); if (keep && cur && cur !== f && cur.isConnected && form.contains(cur)) { ['data-price', 'data-product'].forEach(function (a) { var v = f.getAttribute(a); if (v !== null && cur.getAttribute(a) !== v) cur.setAttribute(a, v); }); if (f.parentNode) f.parentNode.removeChild(f); swapped = true; return cur; } /* Oct 13 S54: keep the ready progress box on a size/colour change (no blank-label flash) */ if (cur && cur !== f && cur.parentNode) { if (cur.classList.contains('ke-ok')) f.classList.add('ke-ok'); cur.parentNode.replaceChild(f, cur); } swapped = swapped || cur !== f; return f; }; // Oct 11 S50: a size change re-renders fresh blocks outside the form - swap them in and hide their card (no duplicate boxes)\n    keProg = pick('.ke-pdp-progress', keProg, true); keBundle = pick('.ke-bundle', keBundle); if (swapped) { if (window.keProgRows) window.keProgRows(); if (window.keProgUpdate) setTimeout(window.keProgUpdate, 0); }\n    var sticky = document.querySelector('.ke-sticky');\n    if (sticky && sticky.parentNode !== document.body) document.body.appendChild(sticky);\n    var perks = form.querySelector('[data-block-id=\"text_G4Rbfp\"]');\n    [keProg, keBundle].forEach(function (el) {\n      if (!el) return;\n      var w = el.closest('.product-block-list__item');\n      if (w && !w.classList.contains('product-block-list__item--info')) w.classList.add('ke-moved');\n    });\n    var buy = form.querySelector('[data-block-id=\"buy_buttons\"]');\n    if (keProg && keProg.nextElementSibling !== buy) { if (buy) form.insertBefore(keProg, buy); else if (perks) form.insertBefore(keProg, perks); else form.appendChild(keProg); }\n    if (keBundle && keBundle.nextElementSibling !== perks) { if (perks) form.insertBefore(keBundle, perks); else form.appendChild(keBundle); }\n    pdpLayout(form);\n  }\n  document.addEventListener('DOMContentLoaded', placeExtras);\n  /* Oct 13 S54: re-place moved blocks in the same frame Warehouse re-renders them on a size/colour tap (was 60 ms later = flicker) */\n  document.addEventListener('DOMContentLoaded', function () {\n    var root = document.querySelector('.product-block-list');\n    if (!root || !root.querySelector('.product-block-list__item--info .product-form')) return;\n    var busy = false, mo = new MutationObserver(function (muts) {\n      if (busy || !muts.some(function (m) { return m.addedNodes.length || m.removedNodes.length; })) return;\n      busy = true; try { placeExtras(); } catch (e) {} mo.takeRecords(); busy = false;\n    });\n    mo.observe(root, { childList: true, subtree: true });\n  });\n  ['variant:changed', 'product:rerender'].forEach(function (ev) {\n    document.documentElement.addEventListener(ev, function () { setTimeout(placeExtras, 60); });\n    document.addEventListener(ev, function () { setTimeout(placeExtras, 60); });\n  });\n  /* 6. Blog: photos (landscape) fill their tile; square product shots stay contained on grey */\n  function coverFit(img) {\n    var go = function () {\n      if (!img.naturalWidth) return;\n      if (img.naturalWidth / img.naturalHeight > 1.2) {\n        img.classList.add('ke-cover');\n        img.style.setProperty('object-fit', 'cover', 'important');\n        img.style.setProperty('mix-blend-mode', 'normal', 'important');\n        img.style.setProperty('padding', '0', 'important');\n        var w = img.closest('.article__image-wrapper');\n        if (w) w.classList.add('ke-cover-wrap');\n      }\n    };\n    if (img.complete) go(); else img.addEventListener('load', go, { once: true });\n  }\n  function scanCovers() { document.querySelectorAll('img.article-item__image, .article__image-wrapper img').forEach(coverFit); }\n  document.addEventListener('DOMContentLoaded', scanCovers);\n  window.addEventListener('load', scanCovers);\n  /* 7. Product page layout to match the mockup: excerpt under price, quantity beside Add to cart, price on the button */\n  function pdpPrice(form) {\n    var p = form.querySelector('.product-form__info-list .price');\n    if (!p) return '';\n    return p.textContent.replace(/Sale price|Regular price|Price/gi, '').replace(/\\.00(?!\\d)/g, '').replace(/\\s+/g, ' ').trim();\n  }\n  function pdpLayout(form) {\n    var picker = form.querySelector('.product-form__variants');\n    if (picker) {\n      var opts = picker.querySelectorAll('.product-form__option');\n      var single = opts.length === 1 && opts[0].querySelectorAll('input[type=radio], option').length <= 1;\n      picker.classList.toggle('ke-hide', single);\n    }\n    var info = form.querySelector('.product-form__info-list');\n    var ex = form.querySelector('.ke-pm-excerpt');\n    if (ex && info && info.nextElementSibling !== ex) info.parentNode.insertBefore(ex, info.nextSibling);\n    var qty = form.querySelector('.product-form__info-item--quantity');\n    var bb = form.querySelector('.product-form__buy-buttons');\n    if (qty && bb && !bb.contains(qty)) { bb.querySelectorAll('.product-form__info-item--quantity').forEach(function (o) { o.parentNode.removeChild(o); }); /* Oct 11 S50: one quantity box after size changes */ bb.insertBefore(qty, bb.firstChild); bb.classList.add('ke-buyrow'); }\n    var g = document.querySelector('.product-gallery');\n    if (g && g.querySelectorAll('.product-gallery__thumbnail').length <= 1) g.classList.add('ke-one');\n    var btn = form.querySelector('.product-form__add-button');\n    if (btn && !btn.disabled) {\n      var pr = pdpPrice(form);\n      var base = (btn.textContent.split('\u00B7')[0] || 'Add to cart').trim();\n      if (pr && /add to cart/i.test(base) && btn.textContent !== 'Add to cart \u00B7 ' + pr) btn.textContent = 'Add to cart \u00B7 ' + pr;\n    }\n  }\n  document.addEventListener('DOMContentLoaded', function () {\n    var form = document.querySelector('.product-block-list__item--info form.product-form');\n    if (!form) return;\n    var btn = form.querySelector('.product-form__add-button');\n    if (btn) new MutationObserver(function () { if (!/\u00B7/.test(btn.textContent)) pdpLayout(form); }).observe(btn, { childList: true, characterData: true, subtree: true });\n  });\n  /* 8. Cart drawer chrome to match the mockup: title + item count, progress band, shipping note */\n  function decorateDrawer(drawer, cart) {\n    var inner = drawer.querySelector('.mini-cart__inner');\n    if (!inner) return;\n    var head = inner.querySelector('.ke-dhead');\n    if (!head) {\n      head = document.createElement('div');\n      head.className = 'ke-dhead';\n      head.innerHTML = '<b>Your cart</b><span class=\"ke-dtag\"></span><button type=\"button\" class=\"ke-dclose\" data-action=\"toggle-mini-cart\" aria-controls=\"mini-cart\" aria-label=\"Close cart\">\u00D7</button>';\n      inner.insertBefore(head, inner.firstChild);\n    }\n    var n = cart.item_count;\n    var tag = head.querySelector('.ke-dtag'), tagTxt = n + (n === 1 ? ' item' : ' items');\n    if (tag.textContent !== tagTxt) tag.textContent = tagTxt;\n    tag.style.display = n ? '' : 'none';\n    var prog = inner.querySelector('.ke-dprog');\n    if (!n) { if (prog) prog.remove(); return; }\n    var t = cart.total_price, goal = t < SHIP ? SHIP : GIFT;\n    var left = t < SHIP ? 'Add ' + money(SHIP - t) + ' more for free shipping' : (t < GIFT ? 'Ships free \u00B7 add ' + money(GIFT - t) + ' for a free gift' : (cart.items.some(function(i){return i.final_line_price===0&&i.original_line_price>0})?'Ships free \u00B7 free gift added':'Ships free \u00B7 free gift unlocked'));\n    var right = t < GIFT ? money(t) + ' of ' + money(goal) : '';\n    if (!prog) { prog = document.createElement('div'); prog.className = 'ke-dprog'; head.parentNode.insertBefore(prog, head.nextSibling); }\n    var progHtml = '<div class=\"ke-dprog__l\"><b>' + left + '</b><span>' + right + '</span></div><div class=\"ke-dprog__bar\"><i style=\"width:' + Math.min(100, Math.round(t / goal * 100)) + '%\"></i></div>';\n    if (prog.getAttribute('data-k') !== progHtml) { prog.setAttribute('data-k', progHtml); prog.innerHTML = progHtml; }\n    var alertW = inner.querySelector('.mini-cart__alert-wrapper');\n    if (alertW) alertW.classList.toggle('ke-hide', t < GIFT);\n    var btns = inner.querySelector('.mini-cart__button-container');\n    if (btns && !inner.querySelector('.ke-dnote')) btns.insertAdjacentHTML('afterend', '<p class=\"ke-dnote\">Ships from our Irvine salon in 1\u20132 business days</p>');\n  }\n})();\n\n/* 9. Oct 9 (S47): sizes as ml / g / oz, whole-dollar item prices, cart line titles, cart page progress, one-line eyebrows on phones */\n(function () {\n  'use strict';\n  var SHIP = 4000, GIFT = 7500;\n  var root = (window.routes && window.routes.rootUrlWithoutSlash) || '';\n  function money(c) { var v = c / 100; return '$' + (v % 1 === 0 ? v.toFixed(0) : v.toFixed(2)); }\n  function esc(s) { return String(s || '').replace(/&/g, '&amp;').replace(/</g, '&lt;'); }\n  var UNITS = [[/(\\d)\\s*Milliliters?\\b/gi, '$1 ml'], [/(\\d)\\s*Fluid Ounces?\\b/gi, '$1 fl oz'], [/(\\d)\\s*Ounces?\\b/gi, '$1 oz'], [/(\\d)\\s*Grams?\\b/gi, '$1 g'], [/(\\d)\\s*Liters?\\b/gi, '$1 L']];\n  function units(s) { UNITS.forEach(function (u) { s = s.replace(u[0], u[1]); }); return s; }\n  function cents(s) { return s.replace(/(\\$\\d[\\d,]*)\\.00(?!\\d)/g, '$1'); }\n  var UNIT_SEL = '.ke-card__need, .ke-pm-sub, .ke-men, .ke-routine, .product-form__option, .block-swatch-list, .ke-addon, .ke-bundle, .ke-sticky, .search-bar__results, .predictive-search';\n  var PRICE_SEL = '.ke-card__price, .product-form__info-list .price, .ke-sticky [data-ke-price], .ke-addon, .mini-cart__price-list .price, .template-cart .line-item .price, .template-cart .line-item__price, .template-cart .line-item__line-price, .template-cart .cart-recap__price-line-price, .mini-cart__recap-price-line';\n  function walk(el, fn) {\n    var tw = document.createTreeWalker(el, NodeFilter.SHOW_TEXT, null), n;\n    while ((n = tw.nextNode())) { var v = fn(n.nodeValue); if (v !== n.nodeValue) n.nodeValue = v; }\n  }\n  function fmt() {\n    document.querySelectorAll(UNIT_SEL).forEach(function (el) { walk(el, units); });\n    document.querySelectorAll(PRICE_SEL).forEach(function (el) { walk(el, cents); });\n    var sb = document.querySelector('.ke-sticky [data-ke-price]');\n    if (sb && /price/i.test(sb.textContent)) sb.textContent = cents(sb.textContent.replace(/Sale price|Regular price|Price/gi, '').trim());\n  }\n  function shortName(it) {\n    var t = String(it.product_title || ''), v = String(it.vendor || '');\n    if (v && t.indexOf(v) === 0) t = t.slice(v.length).trim();\n    t = t.split(' (')[0].trim();\n    return t || it.product_title;\n  }\n  function size(it) {\n    var vt = it.variant_title || '';\n    if (!vt || /default title/i.test(vt)) return '';\n    var p = vt.split(' / ');\n    return units(p[p.length - 1]);\n  }\n  function lineHtml(it) {\n    var s = size(it);\n    return '<span class=\"ke-li__brand\">' + esc(it.vendor) + '</span><span class=\"ke-li__name\">' + esc(shortName(it)) + '</span>' + (s ? '<span class=\"ke-li__size\">' + esc(s) + '</span>' : '');\n  }\n  function titles(cart) {\n    ['#mini-cart .mini-cart__product-title', '.template-cart .line-item__title'].forEach(function (sel) {\n      document.querySelectorAll(sel).forEach(function (el, i) {\n        var it = cart.items[i];\n        if (!it || el.getAttribute('data-ke') === String(it.key)) return;\n        el.innerHTML = lineHtml(it);\n        el.setAttribute('data-ke', it.key);\n      });\n    });\n  }\n  function cartPage(cart) {\n    if (!document.body.classList.contains('template-cart') || !cart.item_count) return;\n    var head = document.querySelector('.template-cart .page__header');\n    if (!head) return;\n    var t = cart.total_price, goal = t < SHIP ? SHIP : GIFT;\n    var left = t < SHIP ? 'Add ' + money(SHIP - t) + ' more for free shipping' : (t < GIFT ? 'Ships free \u00B7 add ' + money(GIFT - t) + ' for a free gift' : (cart.items.some(function(i){return i.final_line_price===0&&i.original_line_price>0})?'Ships free \u00B7 free gift added':'Ships free \u00B7 free gift unlocked'));\n    var right = t < GIFT ? money(t) + ' of ' + money(goal) : (cart.items.some(function(i){return i.final_line_price===0&&i.original_line_price>0})?'Gift added':'<a href=\"/collections/free-gift\">Choose your gift</a>');\n    var html = '<div class=\"ke-cprog__l\"><b>' + left + '</b><span>' + right + '</span></div><div class=\"ke-cprog__bar\"><i style=\"width:' + Math.min(100, Math.round(t / goal * 100)) + '%\"></i></div>';\n    var box = head.querySelector('.ke-cprog');\n    if (!box) { box = document.createElement('div'); box.className = 'ke-cprog'; head.appendChild(box); }\n    if (box.getAttribute('data-k') !== html) { box.setAttribute('data-k', html); box.innerHTML = html; }\n  }\n  var cartTimer;\n  function refreshCart() {\n    clearTimeout(cartTimer);\n    cartTimer = setTimeout(function () {\n      if (!document.querySelector('#mini-cart .mini-cart__product-title, .template-cart .line-item__title')) return;\n      fetch(root + '/cart.js', { credentials: 'same-origin' }).then(function (r) { return r.json(); }).then(function (cart) { titles(cart); cartPage(cart); fmt(); }).catch(function () {});\n    }, 200);\n  }\n  /* long eyebrows: on phones drop the first part (\"Kija Hair Salon \u00B7 \u2026\") so they stay on one line */\n  function eyebrows() {\n    if (window.innerWidth > 640) return;\n    document.querySelectorAll('main *, .ke-m *').forEach(function (el) {\n      if (el.children.length || el.getAttribute('data-ke-short') || el.textContent.indexOf('\u00B7') === -1) return;\n      var cs = getComputedStyle(el);\n      if (cs.textTransform !== 'uppercase' || parseFloat(cs.letterSpacing) < 1.5 || parseFloat(cs.fontSize) > 13) return;\n      var lh = parseFloat(cs.lineHeight) || parseFloat(cs.fontSize) * 1.5;\n      var guard = 0;\n      while (el.getBoundingClientRect().height > lh * 1.5 && el.textContent.indexOf('\u00B7') > -1 && guard++ < 3) {\n        el.textContent = el.textContent.slice(el.textContent.indexOf('\u00B7') + 1).trim();\n      }\n      el.setAttribute('data-ke-short', '1');\n    });\n  }\n  var t2;\n  function run() { fmt(); refreshCart(); }\n  document.addEventListener('DOMContentLoaded', function () {\n    run(); eyebrows();\n    new MutationObserver(function (muts) {\n      var cartTouched = muts.some(function (m) { var n = m.target; return n.closest && (n.closest('#mini-cart') || n.closest('.cart-wrapper')); });\n      clearTimeout(t2);\n      t2 = setTimeout(function () { fmt(); if (cartTouched) refreshCart(); }, 120);\n    }).observe(document.body, { childList: true, subtree: true });\n  });\n  window.addEventListener('load', function () { fmt(); eyebrows(); });\n  /* Oct 13 S54: prices/sizes reformatted in the same frame after a size/colour tap or a drawer update (no $15.00 -> $15 flash) */\n  document.addEventListener('DOMContentLoaded', function () { var mo = new MutationObserver(function () { fmt(); mo.takeRecords(); }); ['.product-block-list', '#mini-cart'].forEach(function (s) { var el = document.querySelector(s); if (el) mo.observe(el, { childList: true, subtree: true }); }); });\n  /* sticky bar on phones: short product name */\n  document.addEventListener('DOMContentLoaded', function () {\n    var b = document.querySelector('.ke-sticky .ke-sticky__info b'), h = document.querySelector('.product-meta__title');\n    if (!b || !h) return;\n    var c = h.cloneNode(true);\n    c.querySelectorAll('.visually-hidden').forEach(function (x) { x.remove(); });\n    var t = c.textContent.trim();\n    if (t) b.textContent = t;\n  });\n  /* product page progress: mockup wording (\"Add $17 more for a free gift\" \u00B7 \"$58 of $75\") */\n  var lastT = null;\n  function progRows(t) {\n    var box = document.querySelector('.ke-pdp-progress');\n    if (!box) return;\n    [['[data-ke-ship]', SHIP], ['[data-ke-gift]', GIFT]].forEach(function (r) {\n      var row = box.querySelector(r[0]);\n      if (!row) return;\n      var goal = r[1], ship = goal === SHIP;\n      var s = row.querySelector('.ke-pdp-progress__label span'), b = row.querySelector('.ke-pdp-progress__label b'), i = row.querySelector('i');\n      var st = t >= goal ? (ship ? 'This order ships free' : 'Free gift unlocked') : 'Add ' + money(goal - t) + ' more for ' + (ship ? 'free shipping' : 'a free gift');\n      if (t >= goal && window._keProj) st = ship ? 'Ships free with this item' : 'Free gift unlocked with this item';\n      var bt = t >= goal ? money(goal) + ' reached' : money(t) + ' of ' + money(goal);if (t >= goal && window._keProj) bt = money(t) + ' with your cart'; if (window._keProj && window._keCart) bt = money(t) + ' total'; /* Oct 13 S54: was 'Cart $X + this item' (read as if this item was already in the cart) */ if (window._keProj && !window._keCart) bt = 'This item ' + money(t); if (window._keProj === false && t >= goal) bt = 'Cart ' + money(t);\n      if (s && s.textContent !== st) s.textContent = st;\n      if (b && b.textContent !== bt) b.textContent = bt;\n      if (i) i.style.width = Math.min(100, Math.round(t / goal * 100)) + '%';\n    });\n    box.classList.add('is-ready');\n  }\n  function progUpdate() {\n    var box = document.querySelector('.ke-pdp-progress');\n    if (!box) return;\n    var price = parseInt(box.getAttribute('data-price'), 10) || 0, pid = parseInt(box.getAttribute('data-product'), 10);\n    fetch(root + '/cart.js', { credentials: 'same-origin' }).then(function (r) { return r.json(); }).then(function (cart) {\n      var inCart = cart.items.some(function (x) { return x.product_id === pid; });\n      window._keProj = !inCart; lastT = cart.total_price + (inCart ? 0 : price);window._keCart = cart.total_price; if (!inCart && cart.original_total_price > cart.total_price) lastT = cart.total_price + Math.round(price * cart.total_price / cart.original_total_price); document.querySelectorAll('.ke-bundle').forEach(function (bx) { var show = true; try { var kid = JSON.parse(bx.querySelector('[data-ke-add]').getAttribute('data-items'))[1].id; show = !cart.items.some(function (x) { return x.variant_id === kid; }); } catch (e) {} bx.classList.toggle('ke-ok', show); }); /* Oct 13 S54: routine box shown only once we know its partner isn't in the cart (CSS hides .ke-bundle without .ke-ok) */\n      progRows(lastT);\n    }).catch(function () { lastT = price; progRows(price); document.querySelectorAll('.ke-bundle').forEach(function (bx) { bx.classList.add('ke-ok'); }); });\n  }\n  document.addEventListener('DOMContentLoaded', function () {\n    var box = document.querySelector('.ke-pdp-progress');\n    if (!box) { document.querySelectorAll('.ke-bundle').forEach(function (bx) { bx.classList.add('ke-ok'); }); return; }\n    progUpdate();\n    new MutationObserver(function () { if (lastT !== null) progRows(lastT); }).observe(box, { childList: true, subtree: true, characterData: true });\n  });\n  window.addEventListener('pageshow', function (e) { if (e.persisted && document.querySelector('.ke-pdp-progress')) progUpdate(); }); document.addEventListener('visibilitychange', function () { if (document.visibilityState === 'visible' && document.querySelector('.ke-pdp-progress')) progUpdate(); }); /* Oct 13 S54: Safari back/forward cache showed stale cart numbers */\n  window.keProgUpdate = progUpdate; window.keProgRows = function () { if (lastT !== null) progRows(lastT); }; /* 10. Oct 11 S50: size labels shortened before paint after a size change (no jump) */\n(function () { var U = [[/(\\d)\\s*Milliliters?\\b/gi, '$1 ml'], [/(\\d)\\s*Fluid Ounces?\\b/gi, '$1 fl oz'], [/(\\d)\\s*Ounces?\\b/gi, '$1 oz'], [/(\\d)\\s*Grams?\\b/gi, '$1 g'], [/(\\d)\\s*Liters?\\b/gi, '$1 L']]; function fix() { document.querySelectorAll('.product-form__option, .block-swatch-list').forEach(function (el) { var tw = document.createTreeWalker(el, NodeFilter.SHOW_TEXT, null), n; while ((n = tw.nextNode())) { var v = n.nodeValue; U.forEach(function (u) { v = v.replace(u[0], u[1]); }); if (v !== n.nodeValue) n.nodeValue = v; } }); } document.addEventListener('DOMContentLoaded', function () { if (!document.querySelector('.product-form__option')) return; fix(); new MutationObserver(fix).observe(document.body, { childList: true, subtree: true }); }); })();\ndocument.documentElement.addEventListener('product:added', function () { setTimeout(progUpdate, 700); }); document.addEventListener('DOMContentLoaded', function () { var d = document.querySelector('#mini-cart'), tm; if (!d || !document.querySelector('.ke-pdp-progress')) return; new MutationObserver(function () { clearTimeout(tm); tm = setTimeout(function () { var kbx = document.querySelector('.ke-bundle'); if (kbx) kbx.style.display = ''; progUpdate(); }, 600); }).observe(d, { childList: true, subtree: true }); }); // Oct 11 S50: refresh product page bar + routine box after cart changes in the drawer\n  /* Oct 11 S49: no \"USD\" after cart totals (US-only store) - overrides cents() above */\n  function cents(s) { return s.replace(/(\\$\\d[\\d,]*)\\.00(?!\\d)/g, '$1').replace(/(\\$[\\d,.]+)\\s*USD\\b/g, '$1'); }\n  })();\n\n/* 11. Article tables (Reza, Oct 13): tag columns (price / short / long) + data-labels so CSS can size columns and stack rows into cards on phones */\n(function(){function keTables(){document.querySelectorAll('.ke-art__body table').forEach(function(t){if(t.getAttribute('data-ke-t'))return;t.setAttribute('data-ke-t','1');var rows=[].slice.call(t.rows);if(rows.length<2)return;var head=rows[0],n=0;rows.forEach(function(r){n=Math.max(n,r.cells.length);});t.classList.add('ke-t');if(n>=3)t.classList.add('ke-t--stack');var labels=[].map.call(head.cells,function(c){return c.textContent.trim();});var longs=[];var re=/^(\\$[\\d,.]+(\\+|\\s*[\u2013-]\\s*\\$?[\\d,.]+\\+?)?|[\\d.,]+\\s*(ml|g|oz|%)?|ask|free|\u2014|-|sold out)$/i;for(var i=0;i<n;i++){var max=0,allNum=true;for(var j=1;j<rows.length;j++){var c=rows[j].cells[i];if(!c)continue;var s=c.textContent.trim();if(s.length>max)max=s.length;if(!re.test(s))allNum=false;}var h=labels[i]||'';var isNum=allNum||/^(price|from|starting price|cost)$/i.test(h);var cls=isNum?'ke-num':((max<=16&&h.length<=18)?'ke-short':'ke-long');if(cls==='ke-long')longs.push(i);rows.forEach(function(r){var c=r.cells[i];if(!c)return;c.classList.add(cls);if(isNum&&i===n-1)c.classList.add('ke-end');if(r!==head&&labels[i])c.setAttribute('data-label',labels[i]);});}if(longs.length){var w=Math.floor(100/longs.length)+'%';longs.forEach(function(i){var c=head.cells[i];if(c)c.style.width=w;});}});}if(document.readyState!=='loading')keTables();else document.addEventListener('DOMContentLoaded',keTables);})();\n\n/* Oct 13 S54: account sheet (Shopify <shopify-account>) - Kija styling, 'Sign out' when signed in, no grey tap flash */\n(function () {\n  var ARROW = 'url(\"data:image/svg+xml,%3Csvg xmlns=\\'http://www.w3.org/2000/svg\\' viewBox=\\'0 0 24 24\\' fill=\\'none\\' stroke=\\'%230a0a0a\\' stroke-width=\\'1.3\\'%3E%3Cpath d=\\'M5 12h14M13 6l6 6-6 6\\'/%3E%3C/svg%3E\")';\n  var CSS = '*{-webkit-tap-highlight-color:transparent}' +\n    'dialog{border-radius:0!important}' +\n    '.account__heading{font-family:\"Playfair Display\",Georgia,serif!important;font-weight:400!important;font-size:28px!important;line-height:1.2!important}' +\n    '.account__email{color:#6b6b6b!important;font-size:14px!important;margin-top:4px!important}' +\n    '.account__close{background:transparent!important}' +\n    '.account__shortcuts{border:0!important;border-top:1px solid #0a0a0a!important;border-bottom:1px solid #e6e6e6!important;border-radius:0!important}' +\n    '.account__item-wrapper{border-radius:0!important}' +\n    '.account__item{border-radius:0!important;padding:18px 24px!important}.account__shortcuts{margin-left:-24px!important;margin-right:-24px!important}.account__header{padding:22px 24px 14px!important}.account__header-content{padding:0!important}.account__content{padding-left:24px!important;padding-right:24px!important;padding-bottom:calc(24px + env(safe-area-inset-bottom))!important}.account__shortcuts{filter:none!important;background:transparent!important}.account__item-wrapper{--edge-padding:0px!important}dialog::backdrop{background:rgba(10,10,10,.45)!important;opacity:1!important}.account__item{justify-content:space-between!important;align-items:center!important;font-size:16px!important}' +\n    '.account__item::after{content:\"\";flex:0 0 18px;width:18px;height:18px;margin-left:12px;background:' + ARROW + ' center/contain no-repeat}' +\n    '.ke-signout .account__item-text{color:#6b6b6b}.ke-signout.account__item::after{display:none}';\n  function style(sr) {\n    if (sr.__keStyled) return; sr.__keStyled = true;\n    try { var s = new CSSStyleSheet(); s.replaceSync(CSS); sr.adoptedStyleSheets = sr.adoptedStyleSheets.concat([s]); }\n    catch (e) { var st = document.createElement('style'); st.textContent = CSS; sr.appendChild(st); }\n  }\n  function signout(sr) {\n    var nav = sr.querySelector('.account__shortcuts');\n    if (!nav || nav.querySelector('.ke-signout') || !sr.querySelector('.account__email')) return;\n    var w = document.createElement('div'); w.className = 'account__item-wrapper';\n    w.innerHTML = '<a class=\"account__item ke-signout\" href=\"/account/logout\"><span class=\"account__item-text\">Sign out</span></a>';\n    nav.appendChild(w);\n  }\n  function hook(el) {\n    var sr = el.shadowRoot; if (!sr) return false;\n    style(sr); signout(sr);\n    if (!sr.__keObs) { sr.__keObs = true; new MutationObserver(function () { signout(sr); }).observe(sr, { childList: true, subtree: true }); }\n    return true;\n  }\n  function init() {\n    document.querySelectorAll('shopify-account').forEach(function (el) {\n      if (hook(el)) return;\n      var n = 0, iv = setInterval(function () { if (hook(el) || ++n > 40) clearInterval(iv); }, 250);\n    });\n  }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();\n})();\n/* Oct 13 S54: phone menu reaches the real bottom of the screen (iOS Safari toolbar shrinks/floats) - no white band hiding the last rows */\n(function () {\n  var probe;\n  function lvh() {\n    if (!probe) { probe = document.createElement('div'); probe.style.cssText = 'position:fixed;top:0;left:0;width:0;height:100lvh;visibility:hidden;pointer-events:none'; document.body.appendChild(probe); }\n    return probe.getBoundingClientRect().height || 0;\n  }\n  function fit() {\n    var mm = document.getElementById('mobile-menu');\n    if (!mm || mm.getAttribute('aria-hidden') !== 'false' || window.innerWidth > 999) return;\n    var h = Math.round(Math.max(window.innerHeight, lvh()) - mm.getBoundingClientRect().top);\n    if (h > 200 && mm.style.maxHeight !== h + 'px') mm.style.setProperty('max-height', h + 'px', 'important');\n  }\n  document.addEventListener('DOMContentLoaded', function () {\n    var mm = document.getElementById('mobile-menu');\n    if (!mm) return;\n    new MutationObserver(function () { requestAnimationFrame(fit); }).observe(mm, { attributes: true, attributeFilter: ['aria-hidden', 'style'] });\n    window.addEventListener('resize', fit);\n    if (window.visualViewport) window.visualViewport.addEventListener('resize', fit);\n  });\n})();\n/* Oct 18, 2026 S56: product page 'Salon Edition' - numbered description sections, ingredient list, one-line progress (CSS in kija-m3.css KX PDP block) */\n(function () {\n  function esc(s) { return String(s).replace(/&/g, '&amp;').replace(/</g, '&lt;'); }\n  function two(n) { return (n < 10 ? '0' : '') + n; }\n  function ingredients(det) {\n    if (!det || det.getAttribute('data-kx')) return;\n    var sum = det.querySelector('summary');\n    var txt = [].slice.call(det.children).filter(function (c) { return c !== sum; }).map(function (c) { return c.textContent; }).join(' ').replace(/\\s+/g, ' ').trim();\n    var list = txt.replace(/\\.\\s*$/, '').split(/,(?![^()]*\\))/).map(function (s) { return s.trim(); }).filter(Boolean);\n    if (list.length < 3) return;\n    det.setAttribute('data-kx', '1');\n    var w = document.createElement('div');\n    w.className = 'kx-ing';\n    w.innerHTML = '<p class=\"kx-ing__meta\">' + list.length + ' ingredients &middot; listed as on the label</p><ol class=\"kx-ing__list\">' + list.map(function (s, i) { return '<li><b>' + two(i + 1) + '</b><span>' + esc(s) + '</span></li>'; }).join('') + '</ol><button type=\"button\" class=\"kx-ing__more\" aria-expanded=\"false\">Show all ' + list.length + ' ingredients +</button>';\n    det.style.display = 'none';\n    det.parentNode.insertBefore(w, det);\n    var b = w.querySelector('.kx-ing__more');\n    b.addEventListener('click', function () {\n      var o = w.classList.toggle('is-open');\n      b.setAttribute('aria-expanded', o ? 'true' : 'false');\n      b.textContent = o ? 'Show fewer \u2212' : 'Show all ' + list.length + ' ingredients +';\n    });\n  }\n  function sections() {\n    var item = document.querySelector('.product-block-list__item--description');\n    if (!item || item.getAttribute('data-kx')) return;\n    var rte = item.querySelector('.rte');\n    if (!rte) return;\n    item.setAttribute('data-kx', '1');\n    item.classList.add('kx-pd');\n    var groups = [{ title: 'Description', nodes: [] }];\n    [].slice.call(rte.childNodes).forEach(function (n) {\n      if (n.nodeType === 1 && /^H[23]$/.test(n.tagName)) { groups.push({ title: n.textContent.trim(), nodes: [] }); return; }\n      if (n.nodeType === 1 && n.tagName === 'DETAILS' && /ingredient/i.test((n.querySelector('summary') || {}).textContent || '')) { groups.push({ title: 'Ingredients', nodes: [n], ing: true }); return; }\n      groups[groups.length - 1].nodes.push(n);\n    });\n    var ex = document.querySelector('.ke-pm-excerpt');\n    rte.innerHTML = '';\n    var k = 0;\n    groups.forEach(function (g) {\n      if (!g.nodes.some(function (n) { return n.nodeType === 1 || (n.textContent || '').trim(); })) return;\n      k++;\n      var s = document.createElement('section');\n      s.className = 'kx-pd__s';\n      var t = g.title.replace(/^how to use$/i, 'How to use');\n      s.innerHTML = '<div class=\"kx-pd__h\"><span>' + two(k) + '</span><h2>' + esc(t) + '</h2></div><div class=\"kx-pd__b\"></div>';\n      var body = s.querySelector('.kx-pd__b');\n      g.nodes.forEach(function (n) { body.appendChild(n); });\n      rte.appendChild(s);\n      if (g.ing) ingredients(g.nodes[0]);\n    });\n    if (ex) { var f = rte.querySelector('.kx-pd__b > p'); if (f && f.textContent.trim() === ex.textContent.trim()) f.parentNode.removeChild(f); }\n  }\n  function prog() {\n    var box = document.querySelector('.ke-pdp-progress');\n    if (!box) return;\n    var rows = box.querySelectorAll('.ke-pdp-progress__row');\n    if (rows.length < 2) return;\n    var s = rows[0].querySelector('.ke-pdp-progress__label span');\n    var done = !!(s && s.textContent.trim() && !/^add /i.test(s.textContent.trim()));\n    if (box.classList.contains('kx-shipdone') !== done) box.classList.toggle('kx-shipdone', done);\n  }\n  function run() { try { sections(); } catch (e) {} try { prog(); } catch (e) {} }\n  document.addEventListener('DOMContentLoaded', function () {\n    run();\n    var box = document.querySelector('.ke-pdp-progress');\n    if (box) new MutationObserver(prog).observe(box, { childList: true, subtree: true, characterData: true });\n    var list = document.querySelector('.product-block-list');\n    if (list) new MutationObserver(function () { var b = document.querySelector('.ke-pdp-progress'); if (b) prog(); if (!document.querySelector('.kx-pd')) sections(); }).observe(list, { childList: true });\n  });\n})();\n\n/* Oct 18, 2026 S56: fill an incomplete last row of product grids (collections + search) with a black 'ships from Irvine' tile (CSS in kija-m3.css KX SPACE) */\n(function () {\n  var busy = false, t;\n  function fill() {\n    busy = true;\n    document.querySelectorAll('.product-list--collection, .ke-grid5').forEach(function (l) {\n      var old = l.querySelector(':scope > .kx-fill');\n      if (old) old.parentNode.removeChild(old);\n      var items = [].filter.call(l.children, function (c) { return c.offsetParent !== null && c.offsetHeight > 0; });\n      if (items.length < 2) return;\n      var top0 = items[0].offsetTop, cols = 0;\n      for (var i = 0; i < items.length && items[i].offsetTop === top0; i++) cols++;\n      if (cols < 2) return;\n      var rem = (cols - items.length % cols) % cols;\n      if (!rem) return;\n      var grid = getComputedStyle(l).display.indexOf('grid') > -1;\n      var bs = /\\/collections\\/best-sellers/.test(location.pathname);\n      var f = document.createElement('div');\n      f.className = 'kx-fill' + (rem > 1 ? ' kx-fill--wide' : '');\n      f.innerHTML = '<a class=\"kx-fill__in\" href=\"' + (bs ? '/collections/japanese-hair-care' : '/collections/best-sellers') + '\"><span class=\"kx-fill__eb\">Ships from Irvine</span><span class=\"kx-fill__h\">Free U.S. shipping over $40</span><span class=\"kx-fill__p\">Out the door in 1&ndash;2 business days. Free gift over $75.</span><span class=\"kx-fill__l\">' + (bs ? 'Shop Japanese hair care' : 'Shop best sellers') + ' &rarr;</span></a>';\n      if (grid) f.style.gridColumn = 'span ' + rem;\n      else f.style.width = (items[0].getBoundingClientRect().width * rem) + 'px';\n      l.appendChild(f);\n    });\n    setTimeout(function () { busy = false; }, 0);\n  }\n  function later() { if (busy) return; clearTimeout(t); t = setTimeout(fill, 150); }\n  document.addEventListener('DOMContentLoaded', function () {\n    if (!document.querySelector('.product-list--collection, .ke-grid5')) return;\n    fill();\n    window.addEventListener('load', later);\n    window.addEventListener('resize', later);\n    var main = document.querySelector('main') || document.body;\n    new MutationObserver(later).observe(main, { childList: true, subtree: true });\n  });\n})();\n\n/* Oct 18, 2026 S57: product page hair-need chips + gallery caption */\n(function(){\n  var MAP={\"silicone-free\":\"Silicone-free\",\"paraben-free\":\"Paraben-free\",\"sulfate-free\":\"Sulfate-free\",\"color safe\":\"For color-treated hair\",\"strong hold\":\"Strong hold\",\"medium hold\":\"Medium hold\",\"soft hold\":\"Soft hold\",\"flexible hold\":\"Flexible hold\",\"wet look\":\"Wet look\",\"matte finish\":\"Matte finish\",\"fine hair\":\"For fine hair\",\"dry scalp\":\"For dry scalp\",\"oily scalp\":\"For oily scalp\",\"sensitive scalp\":\"For sensitive scalp\",\"curl defining\":\"Curl defining\",\"volumizing\":\"Volumizing\",\"moisturizing\":\"Moisturizing\",\"frizz control\":\"Frizz control\",\"smoothing\":\"Smoothing\",\"bond building\":\"Bond building\",\"leave-in treatment\":\"Leave-in\"};\n  function name(){var h=document.querySelector(\"h1.product-meta__title\");if(!h)return\"\";var t=\"\";h.childNodes.forEach(function(n){if(n.nodeType===3||!(n.classList&&n.classList.contains(\"visually-hidden\")))t+=n.textContent});return t.replace(/\\s+/g,\" \").trim()}\n  function run(){\n    if(!document.body.classList.contains(\"template-product\"))return;\n    var m=location.pathname.match(/\\/products\\/([^\\/?#]+)/);if(!m)return;\n    fetch(\"/products/\"+m[1]+\".js\").then(function(r){return r.json()}).then(function(p){\n      var ex=document.querySelector(\".ke-pm-excerpt\");\n      if(ex&&!document.querySelector(\".kx-chips\")){\n        var tg={},chips=[];(p.tags||[]).forEach(function(t){tg[String(t).toLowerCase().trim()]=1});Object.keys(MAP).forEach(function(k){if(tg[k]&&chips.indexOf(MAP[k])<0&&chips.length<4)chips.push(MAP[k])});\n        if(chips.length){var ul=document.createElement(\"ul\");ul.className=\"kx-chips\";ul.setAttribute(\"aria-label\",\"Product details\");chips.forEach(function(c){var li=document.createElement(\"li\");li.textContent=c;ul.appendChild(li)});ex.parentNode.insertBefore(ul,ex.nextSibling)}\n      }\n      if(String(p.type).toLowerCase()===\"clothing\")return;\n      var nm=name();if(!nm)return;\n      var size=\"\";if((p.variants||[]).length===1){var sub=document.querySelector(\".ke-pm-sub\");if(sub){var parts=sub.textContent.split(\"\\u00b7\");var last=parts[parts.length-1].trim();if(/\\d/.test(last)&&!/size/i.test(last))size=last}}\n      document.querySelectorAll(\".product-gallery__carousel-item[data-media-type='image']\").forEach(function(it,i){\n        if(it.querySelector(\".kx-fig\"))return;var box=it.querySelector(\".aspect-ratio\")||it;\n        if(getComputedStyle(box).position===\"static\")box.style.position=\"relative\";\n        var f=document.createElement(\"span\");f.className=\"kx-fig\";f.setAttribute(\"aria-hidden\",\"true\");\n        f.textContent=\"Fig. \"+(i<9?\"0\":\"\")+(i+1)+\" \\u2014 \"+nm+(size?\", \"+size:\"\");box.appendChild(f)});\n    }).catch(function(){});\n  }\n  if(document.readyState===\"loading\")document.addEventListener(\"DOMContentLoaded\",run);else run();\n})();\n"],
  "mappings": "CACC,UAAY,CACX,aACA,IAAI,KAAO,IAAM,KAAO,KACpB,KAAQ,OAAO,QAAU,OAAO,OAAO,qBAAwB,GAEnE,SAAS,MAAM,MAAO,CACpB,IAAI,EAAK,MAAQ,IACjB,MAAO,KAAO,EAAI,IAAM,EAAI,EAAE,QAAQ,CAAC,EAAI,EAAE,QAAQ,CAAC,EACxD,CACA,SAAS,SAAU,CAAE,OAAO,MAAM,KAAO,WAAY,CAAE,YAAa,aAAc,CAAC,EAAE,KAAK,SAAU,EAAG,CAAE,OAAO,EAAE,KAAK,CAAG,CAAC,CAAG,CAC9H,SAAS,OAAO,IAAK,CACnB,SAAS,gBAAgB,cAAc,IAAI,YAAY,gBAAiB,CAAE,QAAS,GAAM,OAAQ,CAAE,SAAU,IAAK,aAAc,EAAK,CAAE,CAAC,CAAC,CAC3I,CAGA,SAAS,iBAAiB,QAAS,SAAU,EAAG,CAC9C,IAAI,IAAM,EAAE,OAAO,QAAQ,eAAe,EAC1C,GAAK,IACL,GAAE,eAAe,EACjB,IAAI,MACJ,GAAI,CAAE,MAAQ,KAAK,MAAM,IAAI,aAAa,YAAY,CAAC,CAAG,OAAS,IAAK,CAAE,MAAQ,CAClF,GAAI,GAAC,OAAS,CAAC,MAAM,QACrB,KAAI,MAAQ,IAAI,UAChB,IAAI,UAAU,IAAI,YAAY,EAC9B,MAAM,KAAO,eAAgB,CAC3B,OAAQ,OAAQ,YAAa,cAC7B,QAAS,CAAE,eAAgB,mBAAoB,mBAAoB,gBAAiB,EACpF,KAAM,KAAK,UAAU,CAAE,MAAO,KAAM,CAAC,CACvC,CAAC,EAAE,KAAK,SAAU,EAAG,CAAE,OAAO,EAAE,KAAK,EAAE,KAAK,SAAU,EAAG,CAAE,MAAO,CAAE,GAAI,EAAE,GAAI,EAAG,CAAE,CAAG,CAAC,CAAG,CAAC,EACxF,KAAK,SAAU,IAAK,CAEnB,GADA,IAAI,UAAU,OAAO,YAAY,EAC7B,CAAC,IAAI,GAAI,CAAE,IAAI,UAAa,IAAI,GAAK,IAAI,EAAE,YAAe,WAAa,YAAa,WAAW,UAAY,CAAE,IAAI,UAAY,KAAO,EAAG,IAAI,EAAG,MAAQ,CAC1J,IAAI,IAAM,MAAM,OAAO,SAAU,EAAG,EAAG,CAAE,OAAO,GAAK,EAAE,UAAY,EAAI,EAAG,CAAC,EAC3E,IAAI,UAAU,IAAI,UAAU,EAAG,IAAI,UAAY,eAC/C,WAAW,UAAY,CAAE,IAAI,UAAU,OAAO,UAAU,EAAG,IAAI,UAAY,KAAO,EAAG,IAAI,EACzF,OAAO,GAAG,CAEZ,CAAC,EACA,MAAM,UAAY,CAAE,IAAI,UAAU,OAAO,YAAY,CAAG,CAAC,GAC9D,CAAC,EAGH,SAAS,gBAAiB,CAAC,CAGzB,SAAS,iBAAiB,mBAAoB,UAAY,CACxD,IAAI,IAAM,SAAS,cAAc,YAAY,EACzC,KAAO,SAAS,cAAc,2BAA2B,EAC7D,GAAI,GAAC,KAAO,CAAC,MACb,KAAI,UAAY,IAAI,cAAc,QAAQ,EAC1C,UAAU,iBAAiB,QAAS,UAAY,CAAE,KAAK,MAAM,CAAG,CAAC,EAC7D,yBAA0B,QAC5B,IAAI,qBAAqB,SAAU,QAAS,CAC1C,QAAQ,QAAQ,SAAU,GAAI,CAC5B,IAAI,MAAQ,GAAG,mBAAmB,IAAM,EACxC,IAAI,UAAU,OAAO,aAAc,CAAC,GAAG,gBAAkB,KAAK,CAChE,CAAC,CACH,CAAC,EAAE,QAAQ,IAAI,EAEjB,IAAI,KAAO,UAAY,CACrB,UAAU,SAAW,KAAK,SAC1B,UAAU,YAAc,wBAAwB,KAAK,KAAK,WAAW,EAAI,WAAa,cACtF,IAAI,QAAU,SAAS,cAAc,gFAAgF,EACjH,UAAS,IAAI,cAAc,iBAAiB,EAAE,YAAc,QAAQ,YAAY,KAAK,EAAE,QAAQ,eAAgB,EAAE,EAAE,KAAK,EAC9H,EACA,KAAK,EACL,IAAI,iBAAiB,IAAI,EAAE,QAAQ,KAAM,CAAE,WAAY,GAAM,UAAW,GAAM,QAAS,EAAK,CAAC,EAC/F,CAAC,EAGD,IAAI,UAAY,GAAO,QAAU,GAAI,WAAa,KAAM,aAAe,GACvE,SAAS,cAAe,CACtB,IAAI,OAAS,SAAS,cAAc,YAAY,EAChD,GAAI,GAAC,QAAU,WACf,KAAI,MAAQ,OAAO,cAAc,mBAAmB,EAC/C,QACL,UAAY,GACZ,QAAQ,EAAE,KAAK,SAAU,KAAM,CAC7B,IAAI,IAAM,KAAK,WAAa,IAAM,KAAK,YACvC,WAAa,KAAM,eAAe,OAAQ,IAAI,EAC9C,IAAI,SAAW,OAAO,cAAc,YAAY,EAChD,GAAI,CAAC,KAAK,YAAc,KAAK,aAAe,KAAM,CAAM,UAAU,SAAS,OAAO,EAAG,aAAe,GAAI,UAAY,GAAO,QAAU,IAAK,MAAQ,CAClJ,GAAI,UAAY,MAAQ,QAAS,CAAE,UAAY,GAAO,MAAQ,CAC9D,QAAU,IACV,IAAI,OAAS,KAAK,MAAM,IAAI,SAAU,EAAG,CAAE,OAAO,EAAE,UAAY,CAAC,EAC7D,MAAQ,KAAK,MAAM,CAAC,EAAE,WACtB,IAAM,SAAU,OAAQ,CAAE,OAAO,KAAO,6CAA+C,MAAQ,mBAAqB,MAAQ,EAChI,OAAO,MAAM,IAAI,eAAe,CAAC,EAAE,KAAK,SAAU,EAAG,CAAE,OAAO,EAAE,KAAK,CAAG,CAAC,EACtE,KAAK,SAAU,EAAG,CAAE,OAAQ,EAAE,UAAY,EAAE,SAAS,OAAU,EAAI,MAAM,IAAI,SAAS,CAAC,EAAE,KAAK,SAAU,EAAG,CAAE,OAAO,EAAE,KAAK,CAAG,CAAC,CAAG,CAAC,EACnI,KAAK,SAAU,EAAG,CACjB,IAAI,MAAQ,EAAE,UAAY,CAAC,GAAG,OAAO,SAAU,EAAG,CAChD,OAAO,EAAE,WAAa,OAAO,QAAQ,EAAE,EAAE,IAAM,IAAM,EAAE,UAAY,EAAE,SAAS,KAAK,SAAU,EAAG,CAAE,OAAO,EAAE,SAAW,CAAC,GAAK,EAAE,EAAE,MAAQ,CAAC,GAAG,KAAK,SAAU,EAAG,CAAE,MAAO,cAAc,KAAK,CAAC,CAAG,CAAC,CACjM,CAAC,EAAE,MAAM,EAAG,CAAC,EACT,KAAO,GACP,KAAK,SACP,KAAO,0IAAuI,OAAO,KAAK,MAAM,CAAC,EAAE,eAAiB,EAAE,EAAE,QAAQ,KAAM,MAAM,EAAI,QAC9M,KAAK,IAAI,SAAU,EAAG,CACpB,IAAI,EAAI,EAAE,SAAS,OAAO,SAAU,EAAG,CAAE,OAAO,EAAE,SAAW,CAAC,EAAE,CAAC,EAC7D,IAAM,EAAE,eAAkB,EAAE,gBAAkB,EAAE,eAAe,QAAQ,GAAG,EAAI,GAAK,IAAM,KAAO,YAAe,GACnH,MAAO,0BAA4B,IAAM,aAAe,IAAM,2BAA6B,IACzF,YAAc,EAAE,MAAM,QAAQ,KAAM,MAAM,EAAI,OAAS,MAAM,EAAE,KAAK,EAAI,+EACE,EAAE,GAAK,sCACrF,CAAC,EAAE,KAAK,EAAE,EAAI,UAElB,IAAI,MAAQ,OAAO,cAAc,YAAY,EACzC,OAAO,MAAM,OAAO,EACxB,IAAI,SAAW,OAAO,cAAc,mBAAmB,EACnD,MAAQ,UAAU,SAAS,mBAAmB,cAAe,IAAI,EAAG,aAAe,KACvF,UAAY,EACd,CAAC,CACL,CAAC,EAAE,MAAM,UAAY,CAAE,UAAY,EAAO,CAAC,GAC7C,CACA,SAAS,iBAAiB,mBAAoB,UAAY,CACxD,IAAI,OAAS,SAAS,cAAc,YAAY,EAChD,GAAK,OACL,KAAI,EACJ,IAAI,iBAAiB,SAAU,KAAM,CACnC,IAAI,SAAW,KAAK,KAAK,SAAU,EAAG,CAAE,MAAO,EAAE,EAAE,OAAO,SAAW,EAAE,OAAO,QAAQ,YAAY,EAAI,CAAC,EACvG,GAAK,SAEL,IAAI,YAAc,OAAO,cAAc,mBAAmB,EAAK,GAAI,CAAE,IAAI,GAAK,OAAO,iBAAiB,sDAAsD,EAAG,GAAK,OAAO,cAAc,8BAA8B,EAAG,GAAK,IAAM,GAAG,YAAY,QAAQ,KAAM,EAAE,EAAE,MAAM,uBAAuB,EAAG,GAAI,GAAG,QAAU,GAAI,CAAE,IAAI,GAAK,EAAG,GAAG,QAAQ,SAAU,EAAG,CAAE,IAAM,SAAS,EAAE,MAAO,EAAE,GAAK,CAAG,CAAC,EAAG,IAAI,GAAK,CAAE,WAAY,GAAI,YAAa,KAAK,MAAM,WAAW,GAAG,CAAC,CAAC,EAAI,GAAG,EAAG,MAAO,WAAW,OAAS,CAAC,CAAE,EAAG,eAAe,OAAQ,EAAE,EAAG,IAAI,GAAK,OAAO,cAAc,mBAAmB,EAAO,cAAgB,IAAM,GAAG,YAAc,MAAQ,CAAC,OAAO,cAAc,YAAY,GAAG,GAAG,mBAAmB,cAAe,YAAY,CAAG,CAAE,OAAS,EAAG,CAAC,CACluB,aAAa,CAAC,EAAG,EAAI,WAAW,aAAc,GAAG,EACnD,CAAC,EAAE,QAAQ,OAAQ,CAAE,UAAW,GAAM,QAAS,EAAK,CAAC,EACrD,aAAa,EACf,CAAC,EAGD,IAAI,OAAS,KAAM,SAAW,KAC9B,SAAS,aAAc,CACrB,IAAI,KAAO,SAAS,cAAc,+CAA+C,EACjF,GAAK,KACL,KAAI,QAAU,GAAO,KAAO,SAAU,IAAK,IAAK,KAAM,CAAE,IAAI,KAAO,CAAC,EAAE,MAAM,KAAK,SAAS,iBAAiB,GAAG,CAAC,EAAE,OAAO,SAAU,EAAG,CAAE,MAAO,CAAC,KAAK,SAAS,CAAC,CAAG,CAAC,EAAG,EAAI,KAAK,KAAK,OAAS,CAAC,EAA6F,GAA1F,KAAK,QAAQ,SAAU,EAAG,CAAM,IAAM,GAAK,EAAE,YAAY,EAAE,WAAW,YAAY,CAAC,CAAG,CAAC,EAAO,CAAC,EAAG,OAAO,IAAK,IAAI,EAAI,EAAE,QAAQ,2BAA2B,EAAkG,OAA3F,GAAK,CAAC,EAAE,UAAU,SAAS,gCAAgC,GAAG,EAAE,UAAU,IAAI,UAAU,EAAO,MAAQ,KAAO,MAAQ,GAAK,IAAI,aAAe,KAAK,SAAS,GAAG,GAAK,CAAC,aAAc,cAAc,EAAE,QAAQ,SAAU,EAAG,CAAE,IAAI,EAAI,EAAE,aAAa,CAAC,EAAO,IAAM,MAAQ,IAAI,aAAa,CAAC,IAAM,GAAG,IAAI,aAAa,EAAG,CAAC,CAAG,CAAC,EAAO,EAAE,YAAY,EAAE,WAAW,YAAY,CAAC,EAAG,QAAU,GAAa,MAAwG,KAAO,MAAQ,GAAK,IAAI,aAAkB,IAAI,UAAU,SAAS,OAAO,GAAG,EAAE,UAAU,IAAI,OAAO,EAAG,IAAI,WAAW,aAAa,EAAG,GAAG,GAAK,QAAU,SAAW,MAAQ,EAAU,EAAG,EACpgC,OAAS,KAAK,mBAAoB,OAAQ,EAAI,EAAG,SAAW,KAAK,aAAc,QAAQ,EAAO,UAAe,OAAO,YAAY,OAAO,WAAW,EAAO,OAAO,cAAc,WAAW,OAAO,aAAc,CAAC,GAC/M,IAAI,OAAS,SAAS,cAAc,YAAY,EAC5C,QAAU,OAAO,aAAe,SAAS,MAAM,SAAS,KAAK,YAAY,MAAM,EACnF,IAAI,MAAQ,KAAK,cAAc,+BAA+B,EAC9D,CAAC,OAAQ,QAAQ,EAAE,QAAQ,SAAU,GAAI,CACvC,GAAK,GACL,KAAI,EAAI,GAAG,QAAQ,2BAA2B,EAC1C,GAAK,CAAC,EAAE,UAAU,SAAS,gCAAgC,GAAG,EAAE,UAAU,IAAI,UAAU,EAC9F,CAAC,EACD,IAAI,IAAM,KAAK,cAAc,+BAA+B,EACxD,QAAU,OAAO,qBAAuB,MAAW,IAAK,KAAK,aAAa,OAAQ,GAAG,EAAY,MAAO,KAAK,aAAa,OAAQ,KAAK,EAAQ,KAAK,YAAY,MAAM,GACtK,UAAY,SAAS,qBAAuB,QAAa,MAAO,KAAK,aAAa,SAAU,KAAK,EAAQ,KAAK,YAAY,QAAQ,GACtI,UAAU,IAAI,EAChB,CACA,SAAS,iBAAiB,mBAAoB,WAAW,EAEzD,SAAS,iBAAiB,mBAAoB,UAAY,CACxD,IAAIA,MAAO,SAAS,cAAc,qBAAqB,EACvD,GAAI,GAACA,OAAQ,CAACA,MAAK,cAAc,+CAA+C,GAChF,KAAI,KAAO,GAAO,GAAK,IAAI,iBAAiB,SAAU,KAAM,CAC1D,GAAI,QAAQ,CAAC,KAAK,KAAK,SAAU,EAAG,CAAE,OAAO,EAAE,WAAW,QAAU,EAAE,aAAa,MAAQ,CAAC,GAC5F,MAAO,GAAM,GAAI,CAAE,YAAY,CAAG,OAAS,EAAG,CAAC,CAAE,GAAG,YAAY,EAAG,KAAO,GAC5E,CAAC,EACD,GAAG,QAAQA,MAAM,CAAE,UAAW,GAAM,QAAS,EAAK,CAAC,EACrD,CAAC,EACD,CAAC,kBAAmB,kBAAkB,EAAE,QAAQ,SAAU,GAAI,CAC5D,SAAS,gBAAgB,iBAAiB,GAAI,UAAY,CAAE,WAAW,YAAa,EAAE,CAAG,CAAC,EAC1F,SAAS,iBAAiB,GAAI,UAAY,CAAE,WAAW,YAAa,EAAE,CAAG,CAAC,CAC5E,CAAC,EAED,SAAS,SAAS,IAAK,CACrB,IAAI,GAAK,UAAY,CACnB,GAAK,IAAI,cACL,IAAI,aAAe,IAAI,cAAgB,IAAK,CAC9C,IAAI,UAAU,IAAI,UAAU,EAC5B,IAAI,MAAM,YAAY,aAAc,QAAS,WAAW,EACxD,IAAI,MAAM,YAAY,iBAAkB,SAAU,WAAW,EAC7D,IAAI,MAAM,YAAY,UAAW,IAAK,WAAW,EACjD,IAAI,EAAI,IAAI,QAAQ,yBAAyB,EACzC,GAAG,EAAE,UAAU,IAAI,eAAe,CACxC,CACF,EACI,IAAI,SAAU,GAAG,EAAQ,IAAI,iBAAiB,OAAQ,GAAI,CAAE,KAAM,EAAK,CAAC,CAC9E,CACA,SAAS,YAAa,CAAE,SAAS,iBAAiB,sDAAsD,EAAE,QAAQ,QAAQ,CAAG,CAC7H,SAAS,iBAAiB,mBAAoB,UAAU,EACxD,OAAO,iBAAiB,OAAQ,UAAU,EAE1C,SAAS,SAAS,KAAM,CACtB,IAAI,EAAI,KAAK,cAAc,iCAAiC,EAC5D,OAAK,EACE,EAAE,YAAY,QAAQ,mCAAoC,EAAE,EAAE,QAAQ,cAAe,EAAE,EAAE,QAAQ,OAAQ,GAAG,EAAE,KAAK,EAD3G,EAEjB,CACA,SAAS,UAAU,KAAM,CACvB,IAAI,OAAS,KAAK,cAAc,yBAAyB,EACzD,GAAI,OAAQ,CACV,IAAI,KAAO,OAAO,iBAAiB,uBAAuB,EACtD,OAAS,KAAK,SAAW,GAAK,KAAK,CAAC,EAAE,iBAAiB,2BAA2B,EAAE,QAAU,EAClG,OAAO,UAAU,OAAO,UAAW,MAAM,CAC3C,CACA,IAAI,KAAO,KAAK,cAAc,0BAA0B,EACpD,GAAK,KAAK,cAAc,gBAAgB,EACxC,IAAM,MAAQ,KAAK,qBAAuB,IAAI,KAAK,WAAW,aAAa,GAAI,KAAK,WAAW,EACnG,IAAI,IAAM,KAAK,cAAc,oCAAoC,EAC7D,GAAK,KAAK,cAAc,4BAA4B,EACpD,KAAO,IAAM,CAAC,GAAG,SAAS,GAAG,IAAK,GAAG,iBAAiB,oCAAoC,EAAE,QAAQ,SAAU,EAAG,CAAE,EAAE,WAAW,YAAY,CAAC,CAAG,CAAC,EAAyD,GAAG,aAAa,IAAK,GAAG,UAAU,EAAG,GAAG,UAAU,IAAI,WAAW,GAC/Q,IAAI,EAAI,SAAS,cAAc,kBAAkB,EAC7C,GAAK,EAAE,iBAAiB,6BAA6B,EAAE,QAAU,GAAG,EAAE,UAAU,IAAI,QAAQ,EAChG,IAAI,IAAM,KAAK,cAAc,2BAA2B,EACxD,GAAI,KAAO,CAAC,IAAI,SAAU,CACxB,IAAI,GAAK,SAAS,IAAI,EAClB,MAAQ,IAAI,YAAY,MAAM,MAAG,EAAE,CAAC,GAAK,eAAe,KAAK,EAC7D,IAAM,eAAe,KAAK,IAAI,GAAK,IAAI,cAAgB,oBAAmB,KAAI,IAAI,YAAc,oBAAmB,GACzH,CACF,CACA,SAAS,iBAAiB,mBAAoB,UAAY,CACxD,IAAI,KAAO,SAAS,cAAc,mDAAmD,EACrF,GAAK,KACL,KAAI,IAAM,KAAK,cAAc,2BAA2B,EACpD,KAAK,IAAI,iBAAiB,UAAY,CAAO,IAAI,KAAK,IAAI,WAAW,GAAG,UAAU,IAAI,CAAG,CAAC,EAAE,QAAQ,IAAK,CAAE,UAAW,GAAM,cAAe,GAAM,QAAS,EAAK,CAAC,EACtK,CAAC,EAED,SAAS,eAAe,OAAQ,KAAM,CACpC,IAAI,MAAQ,OAAO,cAAc,mBAAmB,EACpD,GAAK,MACL,KAAI,KAAO,MAAM,cAAc,WAAW,EACrC,OACH,KAAO,SAAS,cAAc,KAAK,EACnC,KAAK,UAAY,WACjB,KAAK,UAAY,sLACjB,MAAM,aAAa,KAAM,MAAM,UAAU,GAE3C,IAAI,EAAI,KAAK,WACT,IAAM,KAAK,cAAc,UAAU,EAAG,OAAS,GAAK,IAAM,EAAI,QAAU,UACxE,IAAI,cAAgB,SAAQ,IAAI,YAAc,QAClD,IAAI,MAAM,QAAU,EAAI,GAAK,OAC7B,IAAI,KAAO,MAAM,cAAc,WAAW,EAC1C,GAAI,CAAC,EAAG,CAAM,MAAM,KAAK,OAAO,EAAG,MAAQ,CAC3C,IAAI,EAAI,KAAK,YAAa,KAAO,EAAI,KAAO,KAAO,KAC/C,KAAO,EAAI,KAAO,OAAS,MAAM,KAAO,CAAC,EAAI,0BAA6B,EAAI,KAAO,uBAAsB,MAAM,KAAO,CAAC,EAAI,mBAAsB,KAAK,MAAM,KAAK,SAAS,EAAE,CAAC,OAAO,EAAE,mBAAmB,GAAG,EAAE,oBAAoB,CAAC,CAAC,EAAE,kCAA+B,qCACvQ,MAAQ,EAAI,KAAO,MAAM,CAAC,EAAI,OAAS,MAAM,IAAI,EAAI,GACpD,OAAQ,KAAO,SAAS,cAAc,KAAK,EAAG,KAAK,UAAY,WAAY,KAAK,WAAW,aAAa,KAAM,KAAK,WAAW,GACnI,IAAI,SAAW,+BAAiC,KAAO,aAAe,MAAQ,2DAA6D,KAAK,IAAI,IAAK,KAAK,MAAM,EAAI,KAAO,GAAG,CAAC,EAAI,gBACnL,KAAK,aAAa,QAAQ,IAAM,WAAY,KAAK,aAAa,SAAU,QAAQ,EAAG,KAAK,UAAY,UACxG,IAAI,OAAS,MAAM,cAAc,2BAA2B,EACxD,QAAQ,OAAO,UAAU,OAAO,UAAW,EAAI,IAAI,EACvD,IAAI,KAAO,MAAM,cAAc,8BAA8B,EACzD,MAAQ,CAAC,MAAM,cAAc,WAAW,GAAG,KAAK,mBAAmB,WAAY,+EAA0E,EAC/J,CACF,GAAG,GAGF,UAAY,CACX,aACA,IAAI,KAAO,IAAM,KAAO,KACpB,KAAQ,OAAO,QAAU,OAAO,OAAO,qBAAwB,GACnE,SAAS,MAAM,EAAG,CAAE,IAAI,EAAI,EAAI,IAAK,MAAO,KAAO,EAAI,IAAM,EAAI,EAAE,QAAQ,CAAC,EAAI,EAAE,QAAQ,CAAC,EAAI,CAC/F,SAAS,IAAI,EAAG,CAAE,OAAO,OAAO,GAAK,EAAE,EAAE,QAAQ,KAAM,OAAO,EAAE,QAAQ,KAAM,MAAM,CAAG,CACvF,IAAI,MAAQ,CAAC,CAAC,0BAA2B,OAAO,EAAG,CAAC,2BAA4B,UAAU,EAAG,CAAC,qBAAsB,OAAO,EAAG,CAAC,oBAAqB,MAAM,EAAG,CAAC,qBAAsB,MAAM,CAAC,EAC3L,SAAS,MAAM,EAAG,CAAE,aAAM,QAAQ,SAAU,EAAG,CAAE,EAAI,EAAE,QAAQ,EAAE,CAAC,EAAG,EAAE,CAAC,CAAC,CAAG,CAAC,EAAU,CAAG,CAE1F,IAAI,SAAW,2KACX,UAAY,gTAChB,SAAS,KAAK,GAAI,GAAI,CAEpB,QADI,GAAK,SAAS,iBAAiB,GAAI,WAAW,UAAW,IAAI,EAAG,EAC5D,EAAI,GAAG,SAAS,GAAI,CAAE,IAAI,EAAI,GAAG,EAAE,SAAS,EAAO,IAAM,EAAE,YAAW,EAAE,UAAY,EAAG,CACjG,CACA,SAAS,KAAM,CACb,SAAS,iBAAiB,QAAQ,EAAE,QAAQ,SAAU,GAAI,CAAE,KAAK,GAAI,KAAK,CAAG,CAAC,EAC9E,SAAS,iBAAiB,SAAS,EAAE,QAAQ,SAAU,GAAI,CAAE,KAAK,GAAI,KAAK,CAAG,CAAC,EAC/E,IAAI,GAAK,SAAS,cAAc,4BAA4B,EACxD,IAAM,SAAS,KAAK,GAAG,WAAW,IAAG,GAAG,YAAc,MAAM,GAAG,YAAY,QAAQ,mCAAoC,EAAE,EAAE,KAAK,CAAC,EACvI,CACA,SAAS,UAAU,GAAI,CACrB,IAAI,EAAI,OAAO,GAAG,eAAiB,EAAE,EAAG,EAAI,OAAO,GAAG,QAAU,EAAE,EAClE,OAAI,GAAK,EAAE,QAAQ,CAAC,IAAM,IAAG,EAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GACxD,EAAI,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,KAAK,EACnB,GAAK,GAAG,aACjB,CACA,SAAS,KAAK,GAAI,CAChB,IAAI,GAAK,GAAG,eAAiB,GAC7B,GAAI,CAAC,IAAM,iBAAiB,KAAK,EAAE,EAAG,MAAO,GAC7C,IAAI,EAAI,GAAG,MAAM,KAAK,EACtB,OAAO,MAAM,EAAE,EAAE,OAAS,CAAC,CAAC,CAC9B,CACA,SAAS,SAAS,GAAI,CACpB,IAAI,EAAI,KAAK,EAAE,EACf,MAAO,8BAAgC,IAAI,GAAG,MAAM,EAAI,oCAAsC,IAAI,UAAU,EAAE,CAAC,EAAI,WAAa,EAAI,6BAA+B,IAAI,CAAC,EAAI,UAAY,GAC1L,CACA,SAAS,OAAO,KAAM,CACpB,CAAC,uCAAwC,kCAAkC,EAAE,QAAQ,SAAU,IAAK,CAClG,SAAS,iBAAiB,GAAG,EAAE,QAAQ,SAAU,GAAI,EAAG,CACtD,IAAI,GAAK,KAAK,MAAM,CAAC,EACjB,CAAC,IAAM,GAAG,aAAa,SAAS,IAAM,OAAO,GAAG,GAAG,IACvD,GAAG,UAAY,SAAS,EAAE,EAC1B,GAAG,aAAa,UAAW,GAAG,GAAG,EACnC,CAAC,CACH,CAAC,CACH,CACA,SAAS,SAAS,KAAM,CACtB,GAAI,GAAC,SAAS,KAAK,UAAU,SAAS,eAAe,GAAK,CAAC,KAAK,YAChE,KAAI,KAAO,SAAS,cAAc,8BAA8B,EAChE,GAAK,KACL,KAAI,EAAI,KAAK,YAAa,KAAO,EAAI,KAAO,KAAO,KAC/C,KAAO,EAAI,KAAO,OAAS,MAAM,KAAO,CAAC,EAAI,0BAA6B,EAAI,KAAO,uBAAsB,MAAM,KAAO,CAAC,EAAI,mBAAsB,KAAK,MAAM,KAAK,SAAS,EAAE,CAAC,OAAO,EAAE,mBAAmB,GAAG,EAAE,oBAAoB,CAAC,CAAC,EAAE,kCAA+B,qCACvQ,MAAQ,EAAI,KAAO,MAAM,CAAC,EAAI,OAAS,MAAM,IAAI,EAAK,KAAK,MAAM,KAAK,SAAS,EAAE,CAAC,OAAO,EAAE,mBAAmB,GAAG,EAAE,oBAAoB,CAAC,CAAC,EAAE,aAAa,wDACxJ,KAAO,+BAAiC,KAAO,aAAe,MAAQ,2DAA6D,KAAK,IAAI,IAAK,KAAK,MAAM,EAAI,KAAO,GAAG,CAAC,EAAI,gBAC/K,IAAM,KAAK,cAAc,WAAW,EACnC,MAAO,IAAM,SAAS,cAAc,KAAK,EAAG,IAAI,UAAY,WAAY,KAAK,YAAY,GAAG,GAC7F,IAAI,aAAa,QAAQ,IAAM,OAAQ,IAAI,aAAa,SAAU,IAAI,EAAG,IAAI,UAAY,OAC/F,CACA,IAAI,UACJ,SAAS,aAAc,CACrB,aAAa,SAAS,EACtB,UAAY,WAAW,UAAY,CAC5B,SAAS,cAAc,wEAAwE,GACpG,MAAM,KAAO,WAAY,CAAE,YAAa,aAAc,CAAC,EAAE,KAAK,SAAU,EAAG,CAAE,OAAO,EAAE,KAAK,CAAG,CAAC,EAAE,KAAK,SAAU,KAAM,CAAE,OAAO,IAAI,EAAG,SAAS,IAAI,EAAG,IAAI,CAAG,CAAC,EAAE,MAAM,UAAY,CAAC,CAAC,CACtL,EAAG,GAAG,CACR,CAEA,SAAS,UAAW,CACd,OAAO,WAAa,KACxB,SAAS,iBAAiB,iBAAiB,EAAE,QAAQ,SAAU,GAAI,CACjE,GAAI,KAAG,SAAS,QAAU,GAAG,aAAa,eAAe,GAAK,GAAG,YAAY,QAAQ,MAAG,IAAM,IAC9F,KAAI,GAAK,iBAAiB,EAAE,EAC5B,GAAI,KAAG,gBAAkB,aAAe,WAAW,GAAG,aAAa,EAAI,KAAO,WAAW,GAAG,QAAQ,EAAI,IAGxG,SAFI,GAAK,WAAW,GAAG,UAAU,GAAK,WAAW,GAAG,QAAQ,EAAI,IAC5D,MAAQ,EACL,GAAG,sBAAsB,EAAE,OAAS,GAAK,KAAO,GAAG,YAAY,QAAQ,MAAG,EAAI,IAAM,QAAU,GACnG,GAAG,YAAc,GAAG,YAAY,MAAM,GAAG,YAAY,QAAQ,MAAG,EAAI,CAAC,EAAE,KAAK,EAE9E,GAAG,aAAa,gBAAiB,GAAG,GACtC,CAAC,CACH,CACA,IAAI,GACJ,SAAS,KAAM,CAAE,IAAI,EAAG,YAAY,CAAG,CACvC,SAAS,iBAAiB,mBAAoB,UAAY,CACxD,IAAI,EAAG,SAAS,EAChB,IAAI,iBAAiB,SAAU,KAAM,CACnC,IAAI,YAAc,KAAK,KAAK,SAAU,EAAG,CAAE,IAAI,EAAI,EAAE,OAAQ,OAAO,EAAE,UAAY,EAAE,QAAQ,YAAY,GAAK,EAAE,QAAQ,eAAe,EAAI,CAAC,EAC3I,aAAa,EAAE,EACf,GAAK,WAAW,UAAY,CAAE,IAAI,EAAO,aAAa,YAAY,CAAG,EAAG,GAAG,CAC7E,CAAC,EAAE,QAAQ,SAAS,KAAM,CAAE,UAAW,GAAM,QAAS,EAAK,CAAC,CAC9D,CAAC,EACD,OAAO,iBAAiB,OAAQ,UAAY,CAAE,IAAI,EAAG,SAAS,CAAG,CAAC,EAElE,SAAS,iBAAiB,mBAAoB,UAAY,CAAE,IAAI,GAAK,IAAI,iBAAiB,UAAY,CAAE,IAAI,EAAG,GAAG,YAAY,CAAG,CAAC,EAAG,CAAC,sBAAuB,YAAY,EAAE,QAAQ,SAAU,EAAG,CAAE,IAAI,GAAK,SAAS,cAAc,CAAC,EAAO,IAAI,GAAG,QAAQ,GAAI,CAAE,UAAW,GAAM,QAAS,EAAK,CAAC,CAAG,CAAC,CAAG,CAAC,EAEvS,SAAS,iBAAiB,mBAAoB,UAAY,CACxD,IAAI,EAAI,SAAS,cAAc,+BAA+B,EAAG,EAAI,SAAS,cAAc,sBAAsB,EAClH,GAAI,GAAC,GAAK,CAAC,GACX,KAAI,EAAI,EAAE,UAAU,EAAI,EACxB,EAAE,iBAAiB,kBAAkB,EAAE,QAAQ,SAAU,EAAG,CAAE,EAAE,OAAO,CAAG,CAAC,EAC3E,IAAI,EAAI,EAAE,YAAY,KAAK,EACvB,IAAG,EAAE,YAAc,GACzB,CAAC,EAED,IAAI,MAAQ,KACZ,SAAS,SAAS,EAAG,CACnB,IAAI,IAAM,SAAS,cAAc,kBAAkB,EAC9C,MACL,CAAC,CAAC,iBAAkB,IAAI,EAAG,CAAC,iBAAkB,IAAI,CAAC,EAAE,QAAQ,SAAU,EAAG,CACxE,IAAI,IAAM,IAAI,cAAc,EAAE,CAAC,CAAC,EAChC,GAAK,IACL,KAAI,KAAO,EAAE,CAAC,EAAG,KAAO,OAAS,KAC7B,EAAI,IAAI,cAAc,8BAA8B,EAAG,EAAI,IAAI,cAAc,2BAA2B,EAAG,EAAI,IAAI,cAAc,GAAG,EACpI,GAAK,GAAK,KAAQ,KAAO,wBAA0B,qBAAwB,OAAS,MAAM,KAAO,CAAC,EAAI,cAAgB,KAAO,gBAAkB,eAC/I,GAAK,MAAQ,OAAO,UAAS,GAAK,KAAO,4BAA8B,qCAC3E,IAAI,GAAK,GAAK,KAAO,MAAM,IAAI,EAAI,WAAa,MAAM,CAAC,EAAI,OAAS,MAAM,IAAI,EAAM,GAAK,MAAQ,OAAO,UAAS,GAAK,MAAM,CAAC,EAAI,mBAAuB,OAAO,SAAW,OAAO,UAAS,GAAK,MAAM,CAAC,EAAI,UAAyG,OAAO,SAAW,CAAC,OAAO,UAAS,GAAK,aAAe,MAAM,CAAC,GAAO,OAAO,UAAY,IAAS,GAAK,OAAM,GAAK,QAAU,MAAM,CAAC,GACjb,GAAK,EAAE,cAAgB,KAAI,EAAE,YAAc,IAC3C,GAAK,EAAE,cAAgB,KAAI,EAAE,YAAc,IAC3C,IAAG,EAAE,MAAM,MAAQ,KAAK,IAAI,IAAK,KAAK,MAAM,EAAI,KAAO,GAAG,CAAC,EAAI,KACrE,CAAC,EACD,IAAI,UAAU,IAAI,UAAU,EAC9B,CACA,SAAS,YAAa,CACpB,IAAI,IAAM,SAAS,cAAc,kBAAkB,EACnD,GAAK,IACL,KAAI,MAAQ,SAAS,IAAI,aAAa,YAAY,EAAG,EAAE,GAAK,EAAG,IAAM,SAAS,IAAI,aAAa,cAAc,EAAG,EAAE,EAClH,MAAM,KAAO,WAAY,CAAE,YAAa,aAAc,CAAC,EAAE,KAAK,SAAU,EAAG,CAAE,OAAO,EAAE,KAAK,CAAG,CAAC,EAAE,KAAK,SAAU,KAAM,CACpH,IAAI,OAAS,KAAK,MAAM,KAAK,SAAU,EAAG,CAAE,OAAO,EAAE,aAAe,GAAK,CAAC,EAC1E,OAAO,QAAU,CAAC,OAAQ,MAAQ,KAAK,aAAe,OAAS,EAAI,OAAO,OAAO,QAAU,KAAK,YAAiB,CAAC,QAAU,KAAK,qBAAuB,KAAK,cAAa,MAAQ,KAAK,YAAc,KAAK,MAAM,MAAQ,KAAK,YAAc,KAAK,oBAAoB,GAAG,SAAS,iBAAiB,YAAY,EAAE,QAAQ,SAAU,GAAI,CAAE,IAAI,KAAO,GAAM,GAAI,CAAE,IAAI,IAAM,KAAK,MAAM,GAAG,cAAc,eAAe,EAAE,aAAa,YAAY,CAAC,EAAE,CAAC,EAAE,GAAI,KAAO,CAAC,KAAK,MAAM,KAAK,SAAU,EAAG,CAAE,OAAO,EAAE,aAAe,GAAK,CAAC,CAAG,OAAS,EAAG,CAAC,CAAE,GAAG,UAAU,OAAO,QAAS,IAAI,CAAG,CAAC,EACpjB,SAAS,KAAK,CAChB,CAAC,EAAE,MAAM,UAAY,CAAE,MAAQ,MAAO,SAAS,KAAK,EAAG,SAAS,iBAAiB,YAAY,EAAE,QAAQ,SAAU,GAAI,CAAE,GAAG,UAAU,IAAI,OAAO,CAAG,CAAC,CAAG,CAAC,EACzJ,CACA,SAAS,iBAAiB,mBAAoB,UAAY,CACxD,IAAI,IAAM,SAAS,cAAc,kBAAkB,EACnD,GAAI,CAAC,IAAK,CAAE,SAAS,iBAAiB,YAAY,EAAE,QAAQ,SAAU,GAAI,CAAE,GAAG,UAAU,IAAI,OAAO,CAAG,CAAC,EAAG,MAAQ,CACnH,WAAW,EACX,IAAI,iBAAiB,UAAY,CAAM,QAAU,MAAM,SAAS,KAAK,CAAG,CAAC,EAAE,QAAQ,IAAK,CAAE,UAAW,GAAM,QAAS,GAAM,cAAe,EAAK,CAAC,CACjJ,CAAC,EACD,OAAO,iBAAiB,WAAY,SAAU,EAAG,CAAM,EAAE,WAAa,SAAS,cAAc,kBAAkB,GAAG,WAAW,CAAG,CAAC,EAAG,SAAS,iBAAiB,mBAAoB,UAAY,CAAM,SAAS,kBAAoB,WAAa,SAAS,cAAc,kBAAkB,GAAG,WAAW,CAAG,CAAC,EACzS,OAAO,aAAe,WAAY,OAAO,WAAa,UAAY,CAAM,QAAU,MAAM,SAAS,KAAK,CAAG,GAC1G,UAAY,CAAE,IAAI,EAAI,CAAC,CAAC,0BAA2B,OAAO,EAAG,CAAC,2BAA4B,UAAU,EAAG,CAAC,qBAAsB,OAAO,EAAG,CAAC,oBAAqB,MAAM,EAAG,CAAC,qBAAsB,MAAM,CAAC,EAAG,SAAS,KAAM,CAAE,SAAS,iBAAiB,2CAA2C,EAAE,QAAQ,SAAU,GAAI,CAAyE,QAAnE,GAAK,SAAS,iBAAiB,GAAI,WAAW,UAAW,IAAI,EAAG,EAAW,EAAI,GAAG,SAAS,GAAI,CAAE,IAAI,EAAI,EAAE,UAAW,EAAE,QAAQ,SAAU,EAAG,CAAE,EAAI,EAAE,QAAQ,EAAE,CAAC,EAAG,EAAE,CAAC,CAAC,CAAG,CAAC,EAAO,IAAM,EAAE,YAAW,EAAE,UAAY,EAAG,CAAE,CAAC,CAAG,CAAE,SAAS,iBAAiB,mBAAoB,UAAY,CAAO,SAAS,cAAc,uBAAuB,IAAW,IAAI,EAAG,IAAI,iBAAiB,GAAG,EAAE,QAAQ,SAAS,KAAM,CAAE,UAAW,GAAM,QAAS,EAAK,CAAC,EAAG,CAAC,CAAG,GAAG,EACzvB,SAAS,gBAAgB,iBAAiB,gBAAiB,UAAY,CAAE,WAAW,WAAY,GAAG,CAAG,CAAC,EAAG,SAAS,iBAAiB,mBAAoB,UAAY,CAAE,IAAI,EAAI,SAAS,cAAc,YAAY,EAAG,GAAQ,CAAC,GAAK,CAAC,SAAS,cAAc,kBAAkB,GAAW,IAAI,iBAAiB,UAAY,CAAE,aAAa,EAAE,EAAG,GAAK,WAAW,UAAY,CAAE,IAAI,IAAM,SAAS,cAAc,YAAY,EAAO,MAAK,IAAI,MAAM,QAAU,IAAI,WAAW,CAAG,EAAG,GAAG,CAAG,CAAC,EAAE,QAAQ,EAAG,CAAE,UAAW,GAAM,QAAS,EAAK,CAAC,CAAG,CAAC,EAEpgB,SAAS,MAAM,EAAG,CAAE,OAAO,EAAE,QAAQ,0BAA2B,IAAI,EAAE,QAAQ,uBAAwB,IAAI,CAAG,CAC7G,GAAG,GAGJ,UAAU,CAAC,SAAS,UAAU,CAAC,SAAS,iBAAiB,qBAAqB,EAAE,QAAQ,SAAS,EAAE,CAAC,GAAG,GAAE,aAAa,WAAW,EAAS,GAAE,aAAa,YAAY,GAAG,EAAE,IAAI,KAAK,CAAC,EAAE,MAAM,KAAK,EAAE,IAAI,EAAE,GAAG,OAAK,OAAO,GAAS,KAAI,KAAK,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,QAAQ,SAAS,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,EAAE,MAAM,MAAM,CAAE,CAAC,EAAE,EAAE,UAAU,IAAI,MAAM,EAAK,GAAG,GAAE,EAAE,UAAU,IAAI,aAAa,EAA8L,QAAxL,OAAO,CAAC,EAAE,IAAI,KAAK,KAAK,MAAM,SAASC,GAAE,CAAC,OAAOA,GAAE,YAAY,KAAK,CAAE,CAAC,EAAM,MAAM,CAAC,EAAM,GAAG,2FAAmG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAuB,QAAlB,IAAI,EAAE,OAAO,GAAa,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,GAAI,EAAW,KAAI,EAAE,EAAE,YAAY,KAAK,EAAK,EAAE,OAAO,MAAI,IAAI,EAAE,QAAW,GAAG,KAAK,CAAC,IAAE,OAAO,IAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAO,MAAM,QAAQ,sCAAsC,KAAK,CAAC,EAAM,IAAI,MAAM,SAAW,KAAK,IAAI,EAAE,QAAQ,GAAI,WAAW,UAAc,MAAM,WAAU,MAAM,KAAK,CAAC,EAAE,KAAK,QAAQ,SAAS,EAAE,CAAC,IAAIA,GAAE,EAAE,MAAM,CAAC,EAAMA,KAASA,GAAE,UAAU,IAAI,GAAG,EAAK,OAAO,IAAI,EAAE,GAAEA,GAAE,UAAU,IAAI,QAAQ,EAAK,IAAI,MAAM,OAAO,CAAC,GAAEA,GAAE,aAAa,aAAa,OAAO,CAAC,CAAC,EAAE,CAAC,CAAE,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,KAAK,MAAM,IAAI,MAAM,MAAM,EAAE,IAAI,MAAM,QAAQ,SAASC,GAAE,CAAC,IAAID,GAAE,KAAK,MAAMC,EAAC,EAAKD,KAAEA,GAAE,MAAM,MAAM,EAAE,CAAC,CAAE,GAAC,CAAC,CAAE,CAAI,SAAS,aAAa,UAAU,SAAS,EAAO,SAAS,iBAAiB,mBAAmB,QAAQ,CAAE,GAAG,GAGp1C,UAAY,CACX,IAAI,MAAQ,gMACR,IAAM,20CAQ+F,MAAQ,yHAEjH,SAAS,MAAM,GAAI,CACjB,GAAI,IAAG,WAAoB,IAAG,WAAa,GAC3C,GAAI,CAAE,IAAI,EAAI,IAAI,cAAiB,EAAE,YAAY,GAAG,EAAG,GAAG,mBAAqB,GAAG,mBAAmB,OAAO,CAAC,CAAC,CAAC,CAAG,OAC3G,EAAG,CAAE,IAAI,GAAK,SAAS,cAAc,OAAO,EAAG,GAAG,YAAc,IAAK,GAAG,YAAY,EAAE,CAAG,EAClG,CACA,SAAS,QAAQ,GAAI,CACnB,IAAI,IAAM,GAAG,cAAc,qBAAqB,EAChD,GAAI,GAAC,KAAO,IAAI,cAAc,aAAa,GAAK,CAAC,GAAG,cAAc,iBAAiB,GACnF,KAAI,EAAI,SAAS,cAAc,KAAK,EAAG,EAAE,UAAY,wBACrD,EAAE,UAAY,kHACd,IAAI,YAAY,CAAC,EACnB,CACA,SAAS,KAAK,GAAI,CAChB,IAAI,GAAK,GAAG,WAAY,OAAK,IAC7B,MAAM,EAAE,EAAG,QAAQ,EAAE,EAChB,GAAG,UAAW,GAAG,QAAU,GAAM,IAAI,iBAAiB,UAAY,CAAE,QAAQ,EAAE,CAAG,CAAC,EAAE,QAAQ,GAAI,CAAE,UAAW,GAAM,QAAS,EAAK,CAAC,GAChI,IAHiC,EAI1C,CACA,SAAS,MAAO,CACd,SAAS,iBAAiB,iBAAiB,EAAE,QAAQ,SAAU,GAAI,CACjE,GAAI,MAAK,EAAE,EACX,IAAI,EAAI,EAAG,GAAK,YAAY,UAAY,EAAM,KAAK,EAAE,GAAK,EAAE,EAAI,KAAI,cAAc,EAAE,CAAG,EAAG,GAAG,CAC/F,CAAC,CACH,CACI,SAAS,aAAe,UAAW,SAAS,iBAAiB,mBAAoB,IAAI,EAAQ,KAAK,CACxG,GAAG,GAEF,UAAY,CACX,IAAI,MACJ,SAAS,KAAM,CACb,OAAK,QAAS,MAAQ,SAAS,cAAc,KAAK,EAAG,MAAM,MAAM,QAAU,0FAA2F,SAAS,KAAK,YAAY,KAAK,GAC9L,MAAM,sBAAsB,EAAE,QAAU,CACjD,CACA,SAAS,KAAM,CACb,IAAI,GAAK,SAAS,eAAe,aAAa,EAC9C,GAAI,GAAC,IAAM,GAAG,aAAa,aAAa,IAAM,SAAW,OAAO,WAAa,KAC7E,KAAI,EAAI,KAAK,MAAM,KAAK,IAAI,OAAO,YAAa,IAAI,CAAC,EAAI,GAAG,sBAAsB,EAAE,GAAG,EACnF,EAAI,KAAO,GAAG,MAAM,YAAc,EAAI,MAAM,GAAG,MAAM,YAAY,aAAc,EAAI,KAAM,WAAW,EAC1G,CACA,SAAS,iBAAiB,mBAAoB,UAAY,CACxD,IAAI,GAAK,SAAS,eAAe,aAAa,EACzC,KACL,IAAI,iBAAiB,UAAY,CAAE,sBAAsB,GAAG,CAAG,CAAC,EAAE,QAAQ,GAAI,CAAE,WAAY,GAAM,gBAAiB,CAAC,cAAe,OAAO,CAAE,CAAC,EAC7I,OAAO,iBAAiB,SAAU,GAAG,EACjC,OAAO,gBAAgB,OAAO,eAAe,iBAAiB,SAAU,GAAG,EACjF,CAAC,CACH,GAAG,GAEF,UAAY,CACX,SAAS,IAAI,EAAG,CAAE,OAAO,OAAO,CAAC,EAAE,QAAQ,KAAM,OAAO,EAAE,QAAQ,KAAM,MAAM,CAAG,CACjF,SAAS,IAAI,EAAG,CAAE,OAAQ,EAAI,GAAK,IAAM,IAAM,CAAG,CAClD,SAAS,YAAY,IAAK,CACxB,GAAI,GAAC,KAAO,IAAI,aAAa,SAAS,GACtC,KAAI,IAAM,IAAI,cAAc,SAAS,EACjC,IAAM,CAAC,EAAE,MAAM,KAAK,IAAI,QAAQ,EAAE,OAAO,SAAU,EAAG,CAAE,OAAO,IAAM,GAAK,CAAC,EAAE,IAAI,SAAU,EAAG,CAAE,OAAO,EAAE,WAAa,CAAC,EAAE,KAAK,GAAG,EAAE,QAAQ,OAAQ,GAAG,EAAE,KAAK,EAC7J,KAAO,IAAI,QAAQ,SAAU,EAAE,EAAE,MAAM,eAAe,EAAE,IAAI,SAAU,EAAG,CAAE,OAAO,EAAE,KAAK,CAAG,CAAC,EAAE,OAAO,OAAO,EACjH,GAAI,OAAK,OAAS,GAClB,KAAI,aAAa,UAAW,GAAG,EAC/B,IAAI,EAAI,SAAS,cAAc,KAAK,EACpC,EAAE,UAAY,SACd,EAAE,UAAY,2BAA6B,KAAK,OAAS,4EAA8E,KAAK,IAAI,SAAU,EAAG,EAAG,CAAE,MAAO,UAAY,IAAI,EAAI,CAAC,EAAI,aAAe,IAAI,CAAC,EAAI,cAAgB,CAAC,EAAE,KAAK,EAAE,EAAI,kFAAoF,KAAK,OAAS,0BAC1V,IAAI,MAAM,QAAU,OACpB,IAAI,WAAW,aAAa,EAAG,GAAG,EAClC,IAAI,EAAI,EAAE,cAAc,eAAe,EACvC,EAAE,iBAAiB,QAAS,UAAY,CACtC,IAAI,EAAI,EAAE,UAAU,OAAO,SAAS,EACpC,EAAE,aAAa,gBAAiB,EAAI,OAAS,OAAO,EACpD,EAAE,YAAc,EAAI,oBAAiB,YAAc,KAAK,OAAS,gBACnE,CAAC,GACH,CACA,SAAS,UAAW,CAClB,IAAI,KAAO,SAAS,cAAc,wCAAwC,EAC1E,GAAI,GAAC,MAAQ,KAAK,aAAa,SAAS,GACxC,KAAI,IAAM,KAAK,cAAc,MAAM,EACnC,GAAK,IACL,MAAK,aAAa,UAAW,GAAG,EAChC,KAAK,UAAU,IAAI,OAAO,EAC1B,IAAI,OAAS,CAAC,CAAE,MAAO,cAAe,MAAO,CAAC,CAAE,CAAC,EACjD,CAAC,EAAE,MAAM,KAAK,IAAI,UAAU,EAAE,QAAQ,SAAU,EAAG,CACjD,GAAI,EAAE,WAAa,GAAK,UAAU,KAAK,EAAE,OAAO,EAAG,CAAE,OAAO,KAAK,CAAE,MAAO,EAAE,YAAY,KAAK,EAAG,MAAO,CAAC,CAAE,CAAC,EAAG,MAAQ,CACtH,GAAI,EAAE,WAAa,GAAK,EAAE,UAAY,WAAa,cAAc,MAAM,EAAE,cAAc,SAAS,GAAK,CAAC,GAAG,aAAe,EAAE,EAAG,CAAE,OAAO,KAAK,CAAE,MAAO,cAAe,MAAO,CAAC,CAAC,EAAG,IAAK,EAAK,CAAC,EAAG,MAAQ,CACrM,OAAO,OAAO,OAAS,CAAC,EAAE,MAAM,KAAK,CAAC,CACxC,CAAC,EACD,IAAI,GAAK,SAAS,cAAc,gBAAgB,EAChD,IAAI,UAAY,GAChB,IAAI,EAAI,EAaR,GAZA,OAAO,QAAQ,SAAU,EAAG,CAC1B,GAAK,EAAE,MAAM,KAAK,SAAU,EAAG,CAAE,OAAO,EAAE,WAAa,IAAM,EAAE,aAAe,IAAI,KAAK,CAAG,CAAC,EAC3F,KACA,IAAI,EAAI,SAAS,cAAc,SAAS,EACxC,EAAE,UAAY,WACd,IAAI,EAAI,EAAE,MAAM,QAAQ,gBAAiB,YAAY,EACrD,EAAE,UAAY,+BAAiC,IAAI,CAAC,EAAI,cAAgB,IAAI,CAAC,EAAI,0CACjF,IAAI,KAAO,EAAE,cAAc,WAAW,EACtC,EAAE,MAAM,QAAQ,SAAU,EAAG,CAAE,KAAK,YAAY,CAAC,CAAG,CAAC,EACrD,IAAI,YAAY,CAAC,EACb,EAAE,KAAK,YAAY,EAAE,MAAM,CAAC,CAAC,EACnC,CAAC,EACG,GAAI,CAAE,IAAI,EAAI,IAAI,cAAc,eAAe,EAAO,GAAK,EAAE,YAAY,KAAK,IAAM,GAAG,YAAY,KAAK,GAAG,EAAE,WAAW,YAAY,CAAC,CAAG,GAC9I,CACA,SAAS,MAAO,CACd,IAAI,IAAM,SAAS,cAAc,kBAAkB,EACnD,GAAK,IACL,KAAI,KAAO,IAAI,iBAAiB,uBAAuB,EACvD,GAAI,OAAK,OAAS,GAClB,KAAI,EAAI,KAAK,CAAC,EAAE,cAAc,8BAA8B,EACxD,KAAO,CAAC,EAAE,GAAK,EAAE,YAAY,KAAK,GAAK,CAAC,SAAS,KAAK,EAAE,YAAY,KAAK,CAAC,GAC1E,IAAI,UAAU,SAAS,aAAa,IAAM,MAAM,IAAI,UAAU,OAAO,cAAe,IAAI,GAC9F,CACA,SAAS,KAAM,CAAE,GAAI,CAAE,SAAS,CAAG,OAAS,EAAG,CAAC,CAAE,GAAI,CAAE,KAAK,CAAG,OAAS,EAAG,CAAC,CAAE,CAC/E,SAAS,iBAAiB,mBAAoB,UAAY,CACxD,IAAI,EACJ,IAAI,IAAM,SAAS,cAAc,kBAAkB,EAC/C,KAAK,IAAI,iBAAiB,IAAI,EAAE,QAAQ,IAAK,CAAE,UAAW,GAAM,QAAS,GAAM,cAAe,EAAK,CAAC,EACxG,IAAI,KAAO,SAAS,cAAc,qBAAqB,EACnD,MAAM,IAAI,iBAAiB,UAAY,CAAE,IAAI,EAAI,SAAS,cAAc,kBAAkB,EAAO,GAAG,KAAK,EAAQ,SAAS,cAAc,QAAQ,GAAG,SAAS,CAAG,CAAC,EAAE,QAAQ,KAAM,CAAE,UAAW,EAAK,CAAC,CACzM,CAAC,CACH,GAAG,GAGF,UAAY,CACX,IAAI,KAAO,GAAO,EAClB,SAAS,MAAO,CACd,KAAO,GACP,SAAS,iBAAiB,sCAAsC,EAAE,QAAQ,SAAU,EAAG,CACrF,IAAI,IAAM,EAAE,cAAc,mBAAmB,EACzC,KAAK,IAAI,WAAW,YAAY,GAAG,EACvC,IAAI,MAAQ,CAAC,EAAE,OAAO,KAAK,EAAE,SAAU,SAAU,EAAG,CAAE,OAAO,EAAE,eAAiB,MAAQ,EAAE,aAAe,CAAG,CAAC,EAC7G,GAAI,QAAM,OAAS,GAEnB,SADI,KAAO,MAAM,CAAC,EAAE,UAAW,KAAO,EAC7B,EAAI,EAAG,EAAI,MAAM,QAAU,MAAM,CAAC,EAAE,YAAc,KAAM,IAAK,OACtE,GAAI,OAAO,GACX,KAAI,KAAO,KAAO,MAAM,OAAS,MAAQ,KACzC,GAAK,IACL,KAAI,KAAO,iBAAiB,CAAC,EAAE,QAAQ,QAAQ,MAAM,EAAI,GACrD,GAAK,8BAA8B,KAAK,SAAS,QAAQ,EACzD,EAAI,SAAS,cAAc,KAAK,EACpC,EAAE,UAAY,WAAa,IAAM,EAAI,iBAAmB,IACxD,EAAE,UAAY,iCAAmC,GAAK,kCAAoC,6BAA+B,wOAA0O,GAAK,0BAA4B,qBAAuB,qBACvZ,KAAM,EAAE,MAAM,WAAa,QAAU,IACpC,EAAE,MAAM,MAAS,MAAM,CAAC,EAAE,sBAAsB,EAAE,MAAQ,IAAO,KACtE,EAAE,YAAY,CAAC,IACjB,CAAC,EACD,WAAW,UAAY,CAAE,KAAO,EAAO,EAAG,CAAC,CAC7C,CACA,SAAS,OAAQ,CAAM,OAAc,aAAa,CAAC,EAAG,EAAI,WAAW,KAAM,GAAG,EAAG,CACjF,SAAS,iBAAiB,mBAAoB,UAAY,CACxD,GAAK,SAAS,cAAc,sCAAsC,EAClE,MAAK,EACL,OAAO,iBAAiB,OAAQ,KAAK,EACrC,OAAO,iBAAiB,SAAU,KAAK,EACvC,IAAI,KAAO,SAAS,cAAc,MAAM,GAAK,SAAS,KACtD,IAAI,iBAAiB,KAAK,EAAE,QAAQ,KAAM,CAAE,UAAW,GAAM,QAAS,EAAK,CAAC,EAC9E,CAAC,CACH,GAAG,GAGF,UAAU,CACT,IAAI,IAAI,CAAC,gBAAgB,gBAAgB,eAAe,eAAe,eAAe,eAAe,aAAa,yBAAyB,cAAc,cAAc,cAAc,cAAc,YAAY,YAAY,gBAAgB,gBAAgB,WAAW,WAAW,eAAe,eAAe,YAAY,gBAAgB,YAAY,gBAAgB,aAAa,iBAAiB,kBAAkB,sBAAsB,gBAAgB,gBAAgB,WAAa,aAAa,aAAe,eAAe,gBAAgB,gBAAgB,UAAY,YAAY,gBAAgB,gBAAgB,qBAAqB,UAAU,EAC5nB,SAAS,MAAM,CAAC,IAAI,EAAE,SAAS,cAAc,wBAAwB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,SAAE,WAAW,QAAQ,SAAS,EAAE,EAAI,EAAE,WAAW,GAAG,EAAE,EAAE,WAAW,EAAE,UAAU,SAAS,iBAAiB,MAAG,GAAG,EAAE,YAAW,CAAC,EAAS,EAAE,QAAQ,OAAO,GAAG,EAAE,KAAK,CAAC,CACjQ,SAAS,KAAK,CACZ,GAAI,SAAS,KAAK,UAAU,SAAS,kBAAkB,EACvD,KAAI,EAAE,SAAS,SAAS,MAAM,wBAAwB,EAAM,GAC5D,MAAM,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,SAAS,EAAE,CAChF,IAAI,GAAG,SAAS,cAAc,gBAAgB,EAC9C,GAAG,IAAI,CAAC,SAAS,cAAc,WAAW,EAAE,CAC1C,IAAI,GAAG,CAAC,EAAE,MAAM,CAAC,EACjB,IADoB,EAAE,MAAM,CAAC,GAAG,QAAQ,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,GAAG,EAAE,QAAQ,SAAS,EAAE,CAAI,GAAG,CAAC,GAAG,MAAM,QAAQ,IAAI,CAAC,CAAC,EAAE,GAAG,MAAM,OAAO,GAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAClM,MAAM,OAAO,CAAC,IAAI,GAAG,SAAS,cAAc,IAAI,EAAE,GAAG,UAAU,WAAW,GAAG,aAAa,aAAa,iBAAiB,EAAE,MAAM,QAAQ,SAAS,EAAE,CAAC,IAAI,GAAG,SAAS,cAAc,IAAI,EAAE,GAAG,YAAY,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC,EAAE,GAAG,WAAW,aAAa,GAAG,GAAG,WAAW,CAAC,CAChR,CACA,GAAG,OAAO,EAAE,IAAI,EAAE,YAAY,IAAI,WAClC,KAAI,GAAG,KAAK,EAAE,GAAI,GAClB,KAAI,KAAK,GAAG,IAAI,EAAE,UAAU,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,IAAI,SAAS,cAAc,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,MAAM,IAAI,YAAY,MAAM,MAAQ,EAAM,KAAK,MAAM,MAAM,OAAO,CAAC,EAAE,KAAK,EAAK,KAAK,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,IAAE,KAAK,KAAI,CAAC,CACnO,SAAS,iBAAiB,0DAA0D,EAAE,QAAQ,SAAS,GAAG,EAAE,CAC1G,GAAG,IAAG,cAAc,SAAS,EAAS,KAAI,IAAI,GAAG,cAAc,eAAe,GAAG,GAC9E,iBAAiB,GAAG,EAAE,WAAW,WAAS,IAAI,MAAM,SAAS,YAChE,IAAI,EAAE,SAAS,cAAc,MAAM,EAAE,EAAE,UAAU,SAAS,EAAE,aAAa,cAAc,MAAM,EAC7F,EAAE,YAAY,SAAS,EAAE,EAAE,IAAI,KAAK,EAAE,GAAG,WAAW,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,YAAY,CAAC,EAAC,CAAC,GAClG,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,EACvB,CACG,SAAS,aAAa,UAAU,SAAS,iBAAiB,mBAAmB,GAAG,EAAO,IAAI,CAChG,GAAG",
  "names": ["root", "c", "i"]
}
