{"version":3,"file":"shared-lib.CML5M7mb.mjs","names":["useRef","useMemo"],"sources":["https:/framerusercontent.com/modules/oFWLwt59FWAKvMxFUYfD/y1xgKOxBDBvYl39FTaBb/EBMFont.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{useEffect,useMemo,useRef}from\"react\";class EBMGlyphs{// ---------- geometry primitives ----------\n// angles in degrees, math convention (0=right, ccw positive, y-up); screen y is flipped\npt(cx,cy,r,a){const t=a*Math.PI/180;return[cx+r*Math.cos(t),cy-r*Math.sin(t)];}poly(points){return\"M \"+points.map(p=>p[0].toFixed(2)+\" \"+p[1].toFixed(2)).join(\" L \");}line(x1,y1,x2,y2){return this.poly([[x1,y1],[x2,y2]]);}vline(x,y1,y2){return this.line(x,y1,x,y2);}hline(y,x1,x2){return this.line(x1,y,x2,y);}arc(cx,cy,r,a0,a1,step){const s=step||4;const dir=a1>=a0?1:-1;const pts=[];for(let a=a0;dir>0?a<=a1:a>=a1;a+=dir*s)pts.push(this.pt(cx,cy,r,a));pts.push(this.pt(cx,cy,r,a1));return this.poly(pts);}ellipse(cx,cy,rx,ry,rot,a0,a1,step){const s=step||4;const rr=rot*Math.PI/180;const cos=Math.cos(rr),sin=Math.sin(rr);const dir=a1>=a0?1:-1;const pts=[];const at=a=>{const t=a*Math.PI/180;const lx=rx*Math.cos(t),ly=ry*Math.sin(t)// local, y-up\n;const wx=lx*cos-ly*sin,wy=lx*sin+ly*cos// ccw rotate, y-up\n;return[cx+wx,cy-wy];};for(let a=a0;dir>0?a<=a1:a>=a1;a+=dir*s)pts.push(at(a));pts.push(at(a1));return this.poly(pts);}cubic(p0,p1,p2,p3,n){const steps=n||18;const pts=[];for(let i=0;i<=steps;i++){const t=i/steps,u=1-t;const x=u*u*u*p0[0]+3*u*u*t*p1[0]+3*u*t*t*p2[0]+t*t*t*p3[0];const y=u*u*u*p0[1]+3*u*u*t*p1[1]+3*u*t*t*p2[1]+t*t*t*p3[1];pts.push([x,y]);}return this.poly(pts);}// downward-dipping arch (the signature m/n/h shoulder)\narchDown(x1,x2,top,dip){const d=dip==null?17:dip;const k=(x2-x1)*.28;return this.cubic([x1,top],[x1+k,top+d],[x2-k,top+d],[x2,top]);}// ---------- metrics ----------\nM(){return{asc:20,capTop:30,xtop:70,base:130,desc:154,cx:50,r:30,cy:100,capCY:80,capR:48};}// ---------- lowercase ----------\nlower(ch){const m=this.M();const w=[],g=[],dots=[];const{xtop,base,asc,desc,cx,r,cy}=m;const L=cx-r,R=cx+r// 20 , 80\n;switch(ch){case\"a\":w.push(this.arc(cx,cy,r,0,360));w.push(this.vline(R,xtop,base));break;case\"b\":{const stemX=25;w.push(this.vline(stemX,asc,base));g.push(this.ellipse(60,100,26,32,-35,0,360));break;}case\"c\":w.push(this.arc(cx,cy,r,55,305));break;case\"d\":w.push(this.arc(cx,cy,r,0,360));w.push(this.vline(R,asc,base));break;case\"e\":w.push(this.hline(cy,L,74));w.push(this.arc(cx,cy,r,22,338));break;case\"f\":w.push(this.vline(46,54,base));w.push(this.arc(66,54,20,180,90));w.push(this.hline(xtop,30,64));break;case\"g\":w.push(this.arc(cx,cy,r,0,360));w.push(this.vline(R,xtop,138));w.push(this.arc(60,138,20,0,-130));break;case\"h\":w.push(this.vline(L,asc,base));w.push(this.archDown(L,R,xtop));w.push(this.vline(R,xtop,base));break;case\"i\":w.push(this.vline(cx,xtop,base));dots.push([cx,53]);break;case\"j\":w.push(this.vline(58,xtop,138));w.push(this.arc(38,138,20,0,-150));dots.push([58,53]);break;case\"k\":w.push(this.vline(L,asc,base));w.push(this.line(74,xtop,L,100));w.push(this.line(L,100,76,base));break;case\"l\":w.push(this.vline(cx,asc,base));break;case\"m\":w.push(this.vline(20,xtop,base));w.push(this.vline(50,xtop,base));w.push(this.vline(80,xtop,base));w.push(this.archDown(20,50,xtop));w.push(this.archDown(50,80,xtop));break;case\"n\":w.push(this.vline(L,xtop,base));w.push(this.archDown(L,R,xtop));w.push(this.vline(R,xtop,base));break;case\"o\":w.push(this.arc(cx,cy,r,0,360));break;case\"p\":w.push(this.vline(L,xtop,desc));w.push(this.arc(cx,cy,r,0,360));break;case\"q\":w.push(this.vline(R,xtop,desc));w.push(this.arc(cx,cy,r,0,360));break;case\"r\":w.push(this.vline(L,xtop,base));w.push(this.cubic([L,xtop],[30,84],[48,82],[60,72]));break;case\"s\":{const stop=this.ellipse(47,85,27,15,0,-22,202);const sbot=this.ellipse(53,115,27,15,0,22,-202);w.push(stop+\" L \"+sbot.slice(2));break;}case\"t\":w.push(this.vline(cx,52,118));w.push(this.arc(66,118,16,180,315));w.push(this.hline(xtop,32,68));break;case\"u\":w.push(this.vline(L,xtop,cy));w.push(this.arc(cx,cy,r,180,360));w.push(this.vline(R,xtop,base));break;case\"v\":w.push(this.line(20,xtop,cx,128));w.push(this.line(cx,128,80,xtop));break;case\"w\":w.push(this.line(14,xtop,32,128));w.push(this.line(32,128,50,86));w.push(this.line(50,86,68,128));w.push(this.line(68,128,86,xtop));break;case\"x\":w.push(this.line(22,xtop,78,base));w.push(this.line(78,xtop,22,base));break;case\"y\":w.push(this.line(78,xtop,28,desc));w.push(this.line(22,xtop,50,117));break;case\"z\":w.push(this.hline(xtop,22,78));w.push(this.line(78,xtop,22,base));w.push(this.hline(base,22,78));break;}return{w,g,dots};}// ---------- uppercase ----------\nupper(ch){const m=this.M();const w=[],dots=[];const top=m.capTop,base=m.base,cx=m.cx,cy=m.capCY,R=m.capR// 30,130,50,80,48\n;switch(ch){case\"A\":w.push(this.line(10,base,cx,top));w.push(this.line(cx,top,90,base));w.push(this.hline(100,26,74));break;case\"B\":w.push(this.vline(18,top,base));w.push(this.hline(top,18,62));w.push(this.arc(62,54,24,90,-90));w.push(this.hline(78,18,62));w.push(this.arc(62,104,26,90,-90));w.push(this.hline(base,18,62));break;case\"C\":w.push(this.arc(cx,cy,R,55,305));break;case\"D\":w.push(this.vline(20,top,base));w.push(this.arc(40,80,55,-114,114));break;case\"E\":w.push(this.arc(50,80,47,22,338));w.push(this.hline(80,4,82));break;case\"F\":w.push(this.vline(24,top,base));w.push(this.hline(top,24,86));w.push(this.hline(80,24,76));break;case\"G\":w.push(this.arc(cx,cy,R,55,300));w.push(this.hline(84,58,92));w.push(this.vline(92,84,98));break;case\"H\":w.push(this.vline(12,top,base));w.push(this.vline(88,top,base));w.push(this.hline(80,12,88));break;case\"I\":w.push(this.vline(cx,top,base));break;case\"J\":w.push(this.vline(74,top,96));w.push(this.arc(40,96,34,0,-160));break;case\"K\":w.push(this.vline(20,top,base));w.push(this.line(86,top,20,82));w.push(this.line(20,82,88,base));break;case\"L\":w.push(this.vline(24,top,base));w.push(this.hline(base,24,88));break;case\"M\":w.push(this.vline(16,top,base));w.push(this.vline(cx,top,base));w.push(this.vline(84,top,base));w.push(this.archDown(16,cx,top,24));w.push(this.archDown(cx,84,top,24));break;case\"N\":w.push(this.vline(20,base,top));w.push(this.line(20,top,80,base));w.push(this.vline(80,base,top));break;case\"O\":w.push(this.arc(cx,cy,R,0,360));break;case\"P\":w.push(this.vline(20,top,base));w.push(this.arc(50,55,39,-140,140));break;case\"Q\":w.push(this.arc(cx,cy,R,0,360));w.push(this.line(60,100,92,134));break;case\"R\":w.push(this.vline(18,top,base));w.push(this.hline(top,18,62));w.push(this.arc(62,54,24,90,-90));w.push(this.hline(78,18,62));w.push(this.line(70,90,90,base));break;case\"S\":{const Stop=this.ellipse(47,55,44,25,0,-22,202);const Sbot=this.ellipse(53,105,44,25,0,22,-202);w.push(Stop+\" L \"+Sbot.slice(2));break;}case\"T\":w.push(this.hline(top,8,92));w.push(this.vline(cx,top,base));break;case\"U\":w.push(this.vline(16,top,88));w.push(this.arc(cx,88,34,180,360));w.push(this.vline(84,top,88));break;case\"V\":w.push(this.line(10,top,cx,base));w.push(this.line(cx,base,90,top));break;case\"W\":w.push(this.line(8,top,28,base));w.push(this.line(28,base,cx,48));w.push(this.line(cx,48,72,base));w.push(this.line(72,base,92,top));break;case\"X\":w.push(this.line(12,top,88,base));w.push(this.line(88,top,12,base));break;case\"Y\":w.push(this.line(12,top,cx,84));w.push(this.line(88,top,cx,84));w.push(this.vline(cx,84,base));break;case\"Z\":w.push(this.hline(top,12,88));w.push(this.line(88,top,12,base));w.push(this.hline(base,12,88));break;case\"&\":w.push(this.ellipse(45,58,25,23,-8,35,330));w.push(this.ellipse(53,104,29,26,0,55,335));w.push(this.line(64,44,28,120));break;}return{w,g:[],dots};}// ---------- numerals ----------\nnum(ch){const w=[],dots=[];const top=30,base=130,cx=50;switch(ch){case\"0\":w.push(this.ellipse(cx,80,36,50,0,0,360));break;case\"1\":w.push(this.line(32,48,52,top));w.push(this.vline(52,top,base));w.push(this.hline(base,32,72));break;case\"2\":w.push(this.arc(cx,58,28,162,-42));w.push(this.line(71,76,22,base));w.push(this.hline(base,22,84));break;case\"3\":{const t=this.arc(50,55,26,160,-70);const b=this.arc(50,103,27,70,-160);w.push(t);w.push(b);break;}case\"4\":w.push(this.line(64,top,18,98));w.push(this.hline(98,12,84));w.push(this.vline(66,top,base));break;case\"5\":w.push(this.hline(top,26,80));w.push(this.vline(26,top,72));w.push(this.arc(50,100,30,128,-112));break;case\"6\":w.push(this.arc(cx,104,26,0,360));w.push(this.cubic([72,42],[58,38],[30,58],[24.5,86]));break;case\"7\":w.push(this.hline(top,16,86));w.push(this.line(86,top,38,base));break;case\"8\":w.push(this.arc(cx,56,25,0,360));w.push(this.arc(cx,103,29,0,360));break;case\"9\":w.push(this.arc(cx,56,26,0,360));w.push(this.cubic([76,56],[80,96],[58,118],[36,128]));break;}return{w,g:[],dots};}}// ---------------------------------------------------------------------------\n// Machine-readable text twin.\n//\n// The glyphs are artwork: a crawler reading this component sees vector strokes,\n// never the word they spell (aria-label is not used for indexing). So alongside\n// the artwork we emit the SAME string as real, visually-clipped text — the page\n// then reads exactly as it would if it used an ordinary web font. Nothing is\n// added that a sighted visitor cannot already read.\n//\n// Both the twin and the glyphs are derived from one argument, so they cannot\n// drift apart. Do not build this string from anything else.\nconst SEO_TWIN_STYLE=\"position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;\"+\"clip-path:inset(50%);white-space:nowrap;border:0;pointer-events:none;\";function escapeHTML(s){return s.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\");}// Carries no class, so no existing selector (.ebm-ch / .ebm-rv / .ebm-ink) can\n// pick it up; the data attribute exists purely so it is greppable when verifying.\nfunction seoTwin(text){const t=(text||\"\").trim();if(!t)return\"\";return`<span data-ebm-seo=\"1\" style=\"${SEO_TWIN_STYLE}\">${escapeHTML(t)}</span>`;}// Parse all coordinate pairs out of a \"M x y L x y L x y ...\" path string.\nfunction pathPoints(d){const nums=d.match(/-?\\d+\\.?\\d*/g)||[];const pts=[];for(let i=0;i+1<nums.length;i+=2)pts.push([parseFloat(nums[i]),parseFloat(nums[i+1])]);return pts;}// True horizontal ink bounding box [minX, maxX] across all strokes + dots, so\n// each glyph is spaced by its actual ink width rather than a fixed box.\nfunction glyphInkBounds(glyph,strokeWidth){let minX=Infinity,maxX=-Infinity;const consider=x=>{if(x<minX)minX=x;if(x>maxX)maxX=x;};const wArr=glyph.w||[];const gArr=glyph.g||[];const dArr=glyph.dots||[];wArr.forEach(d=>pathPoints(d).forEach(p=>consider(p[0])));gArr.forEach(d=>pathPoints(d).forEach(p=>consider(p[0])));dArr.forEach(p=>consider(p[0]));if(minX===Infinity){minX=40;maxX=60;}// blank glyph fallback (e.g. space)\nconst halfStroke=(strokeWidth||7)/2;return[minX-halfStroke,maxX+halfStroke];}function renderGlyphSVG(G,ch,kind,opts){const o=opts||{};const sw=o.strokeWidth||7;const gw=o.goldStrokeWidth||12.5;const ink=o.ink||\"#F0EDE8\";const accent=o.accent||\"#B8922A\";const italic=o.italic||false;const sideBearing=o.sideBearing!=null?o.sideBearing:9// the \"exact, repeatable distance\" rule\n;let glyph;if(kind===\"lower\")glyph=G.lower(ch);else if(kind===\"upper\")glyph=G.upper(ch);else glyph=G.num(ch);const maxStroke=Math.max(sw,gw);const[minX,maxX]=glyphInkBounds(glyph,maxStroke);const vbX=minX-sideBearing;const vbW=maxX-minX+sideBearing*2;let paths=\"\";// Class-tag the strokes/dots so the engrave reveal can choreograph them (ink\n// strokes gild then set, the gold accent draws as its own brand stroke, dots drop in).\nfor(const d of glyph.w||[])paths+=`<path class=\"ebm-ink\" d=\"${d}\" fill=\"none\" stroke=\"${ink}\" stroke-width=\"${sw}\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>`;for(const d of glyph.g||[])paths+=`<path class=\"ebm-gold\" d=\"${d}\" fill=\"none\" stroke=\"${accent}\" stroke-width=\"${gw}\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>`;for(const p of glyph.dots||[])paths+=`<circle class=\"ebm-dot\" cx=\"${p[0]}\" cy=\"${p[1]}\" r=\"${sw*.62}\" fill=\"${ink}\"/>`;const style=italic?\"transform:skewX(-12deg);\":\"\";return`<svg viewBox=\"${vbX.toFixed(2)} 0 ${vbW.toFixed(2)} 160\" style=\"display:inline-block;height:1em;overflow:visible;vertical-align:middle;${style}\">${paths}</svg>`;}let __ebmGlyphSingleton=null;function getEBMGlyphs(){if(!__ebmGlyphSingleton)__ebmGlyphSingleton=new EBMGlyphs;return __ebmGlyphSingleton;}// Renders a full string: letters/digits/\"&\" via the glyph engine, everything\n// else passed through as plain inline text. ALL CAPS. Words are grouped into\n// nowrap inline-blocks joined by breakable gaps so wrapping only happens\n// between words, never mid-word.\nfunction renderEBMMixed(text,opts){const o=opts||{};const G=getEBMGlyphs();const kind=\"upper\"// ALL CAPS, per direction\n;const ink=o.ink||\"#F0EDE8\";const words=text.split(\" \");const wordHtml=(word,trail=\"\")=>{let out=\"\";let plain=\"\";const flushPlain=()=>{if(plain){out+=`<span style=\"color:${ink};font-weight:300;\">${plain}</span>`;plain=\"\";}};for(let i=0;i<word.length;i++){const ch=word[i];if(/[0-9]/.test(ch)){flushPlain();out+=renderGlyphSVG(G,ch,\"num\",Object.assign({},o,{ink}));}else if(/[a-zA-Z]/.test(ch)){flushPlain();out+=renderGlyphSVG(G,ch.toUpperCase(),kind,Object.assign({},o,{ink}));}else if(ch===\"&\"){flushPlain();out+=renderGlyphSVG(G,\"&\",kind,Object.assign({},o,{ink}));}else{plain+=ch.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\");}}flushPlain();return`<span style=\"display:inline-block;white-space:nowrap;\">${out}${trail}</span>`;};if(o.tight){return words.map(w=>wordHtml(w)).join(\" \");}const WORD_GAP=`<span class=\"ebm-word-gap\" style=\"display:inline-block;width:0.55em;\"></span>`;// Join with the visual gap plus a <wbr> break opportunity so long titles\n// wrap BETWEEN words when their container is narrower than the full line.\nreturn words.map((w,i)=>wordHtml(w,i<words.length-1?WORD_GAP:\"\")).join(\"<wbr>\");}// Decrypt-reveal charsets, matched per position to the FINAL character's class so\n// word titles scramble through letters ONLY (no digits / \"code\" noise) while a\n// numeric title like \"1992\" scrambles through digits, resolving number→number.\nconst SCRAMBLE_LETTERS=\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";const SCRAMBLE_DIGITS=\"0123456789\";// Injects the one-shot per-letter \"focus-pull\" settle keyframes once. At the moment\n// a letter locks to its final glyph it blooms from a soft blur + dim to sharp + full\n// opacity — the cinematic \"developing into focus\" feel. Scrambling glyphs sit dim so\n// the resolve reads as a left-to-right brightening wave.\nfunction ensureScrambleStyle(){if(typeof document===\"undefined\")return;if(document.getElementById(\"ebm-scramble-style\"))return;const style=document.createElement(\"style\");style.id=\"ebm-scramble-style\";style.textContent=\"@keyframes ebmChFocusIn{from{opacity:.55;filter:blur(2px);}to{opacity:1;filter:blur(0);}}\"+\".ebm-ch--scramble>svg{opacity:.55;}\"+\".ebm-ch--in>svg{animation:ebmChFocusIn .34s cubic-bezier(.22,1,.36,1) both;}\";document.head.appendChild(style);}// Same word-grouped, wrap-safe structure as renderEBMMixed, but every scrambleable\n// character (letter/digit) is wrapped in a persistent `<span class=\"ebm-ch\">` so the\n// reveal loop can swap ONE glyph in place and run a settle animation on it without\n// rebuilding the whole title each frame (rebuilding would kill the CSS animation and\n// re-lay-out the line). Each slot is primed with a RANDOM glyph of its own class — so\n// nothing ever flashes the answer — and carries data-fin / data-kind for the loop.\nfunction buildScrambleHTML(text,opts){const o=opts||{};const G=getEBMGlyphs();const ink=o.ink||\"#F0EDE8\";const rnd=s=>s[Math.floor(Math.random()*s.length)];const words=text.split(\" \");const wordHtml=(word,trail=\"\")=>{let out=\"\";let plain=\"\";const flushPlain=()=>{if(plain){out+=`<span style=\"color:${ink};font-weight:300;\">${plain}</span>`;plain=\"\";}};const slot=(finCh,kind,charset)=>{const glyph=renderGlyphSVG(G,rnd(charset),kind,Object.assign({},o,{ink}));out+=`<span class=\"ebm-ch ebm-ch--scramble\" data-fin=\"${finCh}\" data-kind=\"${kind}\">${glyph}</span>`;};for(let i=0;i<word.length;i++){const ch=word[i];if(/[0-9]/.test(ch)){flushPlain();slot(ch,\"num\",SCRAMBLE_DIGITS);}else if(/[a-zA-Z]/.test(ch)){flushPlain();slot(ch.toUpperCase(),\"upper\",SCRAMBLE_LETTERS);}else if(ch===\"&\"){flushPlain();out+=renderGlyphSVG(G,\"&\",\"upper\",Object.assign({},o,{ink}));}else{plain+=ch.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\");}}flushPlain();return`<span style=\"display:inline-block;white-space:nowrap;\">${out}${trail}</span>`;};if(o.tight){return words.map(w=>wordHtml(w)).join(\" \");}const WORD_GAP=`<span class=\"ebm-word-gap\" style=\"display:inline-block;width:0.55em;\"></span>`;return words.map((w,i)=>wordHtml(w,i<words.length-1?WORD_GAP:\"\")).join(\"<wbr>\");}function getRevealMode(){try{if(typeof window!==\"undefined\"){const q=new URLSearchParams(window.location.search).get(\"ebmReveal\");if(q===\"focus\"||q===\"draw\"||q===\"rise\"||q===\"scramble\")return q;}}catch{/* ignore */}return\"draw\";}// Injects the continuous-reveal keyframes once. Every glyph is armed hidden\n// (`opacity:0`) and the per-mode animation (added on scroll-in) resolves it. All\n// motion is GPU-friendly opacity/filter/transform (and stroke-dashoffset for the\n// engrave \"draw\"), so it reads as one smooth gesture rather than stepped frames.\nfunction ensureRevealStyle(){if(typeof document===\"undefined\")return;if(document.getElementById(\"ebm-reveal-style\"))return;const style=document.createElement(\"style\");style.id=\"ebm-reveal-style\";style.textContent=\".ebm-rv{display:inline;}\"+\".ebm-rv>svg{opacity:0;transform-box:fill-box;transform-origin:center;}\"+// Rack focus: whole letter blooms from soft-blur + slight scale into sharp.\n\"@keyframes ebmRvFocus{0%{opacity:0;filter:blur(12px);transform:scale(1.06);}55%{opacity:1;}100%{opacity:1;filter:blur(0);transform:scale(1);}}\"+\".ebm-rv-focus .ebm-rv>svg{animation:ebmRvFocus .9s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--d);}\"+// Editorial rise: fade up with a whisper of blur.\n\"@keyframes ebmRvRise{from{opacity:0;filter:blur(4px);transform:translateY(.3em);}to{opacity:1;filter:blur(0);transform:translateY(0);}}\"+\".ebm-rv-rise .ebm-rv>svg{animation:ebmRvRise .7s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--d);}\"+// Engrave \"glyphed\": each letter is defined as an ordered set of geometric\n// strokes, so its strokes draw ONE AT A TIME in that construction order (per-path\n// delay in --pd) — you watch each glyph assemble stroke by stroke, the way the EBM\n// font is built. Ink stays the title's own colour; dots pop in last.\n\"@keyframes ebmRvFade{to{opacity:1;}}\"+\"@keyframes ebmRvDraw{from{stroke-dashoffset:var(--len);}to{stroke-dashoffset:0;}}\"+\"@keyframes ebmDotIn{0%{opacity:0;transform:scale(.4);}55%{opacity:1;}100%{opacity:1;transform:scale(1);}}\"+// Bold + deliberate: a decisive attack (fast start) but a longer, weightier draw\n// so each stroke lands with presence rather than flicking past.\n\".ebm-rv-draw .ebm-rv>svg{animation:ebmRvFade .18s ease both;animation-delay:var(--d);}\"+\".ebm-rv-draw .ebm-rv path{animation:ebmRvDraw .42s cubic-bezier(.2,.85,.3,1) both;animation-delay:var(--pd);}\"+\".ebm-rv-draw .ebm-rv circle.ebm-dot{transform-box:fill-box;transform-origin:center;animation:ebmDotIn .3s cubic-bezier(.3,1.1,.4,1) both;animation-delay:var(--pd);}\";document.head.appendChild(style);}// Same wrap-safe word grouping as renderEBMMixed, but each glyph (letter/digit/\"&\")\n// is wrapped in a persistent `<span class=\"ebm-rv\">` so the continuous reveal can\n// animate it in place with a per-letter stagger. Renders the FINAL glyphs (no\n// scramble), armed hidden by ensureRevealStyle until the reveal class is added.\nfunction buildRevealHTML(text,opts){const o=opts||{};const G=getEBMGlyphs();const ink=o.ink||\"#F0EDE8\";const wrap=glyph=>`<span class=\"ebm-rv\">${glyph}</span>`;const words=text.split(\" \");const wordHtml=(word,trail=\"\")=>{let out=\"\";let plain=\"\";const flushPlain=()=>{if(plain){out+=`<span style=\"color:${ink};font-weight:300;\">${plain}</span>`;plain=\"\";}};for(let i=0;i<word.length;i++){const ch=word[i];if(/[0-9]/.test(ch)){flushPlain();out+=wrap(renderGlyphSVG(G,ch,\"num\",Object.assign({},o,{ink})));}else if(/[a-zA-Z]/.test(ch)){flushPlain();out+=wrap(renderGlyphSVG(G,ch.toUpperCase(),\"upper\",Object.assign({},o,{ink})));}else if(ch===\"&\"){flushPlain();out+=wrap(renderGlyphSVG(G,\"&\",\"upper\",Object.assign({},o,{ink})));}else{plain+=ch.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\");}}flushPlain();return`<span style=\"display:inline-block;white-space:nowrap;\">${out}${trail}</span>`;};if(o.tight){return words.map(w=>wordHtml(w)).join(\" \");}const WORD_GAP=`<span class=\"ebm-word-gap\" style=\"display:inline-block;width:0.55em;\"></span>`;return words.map((w,i)=>wordHtml(w,i<words.length-1?WORD_GAP:\"\")).join(\"<wbr>\");}/**\n * EBM Glyph Font\n *\n * EverBliss Music custom geometric display face, rendered as inline SVG glyph\n * strokes with a mirrored aria-label (the SVG is decorative, not real text).\n * Used by hero/project titles, the ticket title, Enter/Explore/Pause buttons,\n * and marquee words.\n *\n * @framerIntrinsicWidth 280\n * @framerIntrinsicHeight 64\n *\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function EBMFont(props){const{text=\"EVERBLISS\",bold=false,tight=false,scramble=false,fontSize=48,ink=\"#F0EDE8\",accent=\"#B8922A\",headingLevel=\"none\",seoText=true,style}=props;const isStatic=useIsStaticRenderer();const ref=useRef(null);// The gold accent stroke on B/b must stay visible: if the ink itself is gold,\n// flip the accent to off-white so it doesn't vanish into the word.\nconst effAccent=useMemo(()=>{const goldRe=/184,\\s*146,\\s*42|B8922A/i;return goldRe.test(ink)&&goldRe.test(accent)?\"#F0EDE8\":accent;},[ink,accent]);const html=useMemo(()=>(seoText?seoTwin(text||\"\"):\"\")+renderEBMMixed(text||\"\",{strokeWidth:bold?14:7,ink,accent:effAccent,tight}),[text,bold,tight,ink,effAccent,seoText]);// Cinematic scroll-in reveal for the glyph title. Smooth, continuous CSS motion\n// (opacity/blur/scale, or a stroke draw-on) staggered left-to-right — no stepped\n// glyph-cycling. The style is chosen via `?ebmReveal=focus|draw|rise|scramble`\n// (default: focus) so options can be compared live; `scramble` keeps the legacy\n// character-decrypt for reference. Softened to a plain fade under\n// prefers-reduced-motion; skipped on the static canvas; triggered when in view.\nuseEffect(()=>{if(!scramble||isStatic||typeof window===\"undefined\")return;const el=ref.current;if(!el)return;const renderOpts={strokeWidth:bold?14:7,ink,accent:effAccent,tight};const finalText=text||\"\";const reduce=!!(window.matchMedia&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches);let observer=null;let raf=0;let started=false;// Safety net for engines that DROP the IntersectionObserver callback (seen on iOS\n// Safari for glyphs inside the transformed snap-reel): poll layout as a backup and fire\n// the SAME reveal trigger once the glyph is actually on screen. Idempotent with the\n// observer (whichever wins first), gated to on-screen only (off-screen keeps waiting, so\n// scroll-in still gates), and routed through each branch's own trigger — so it ONLY adds\n// safety: a title can never stay hidden even if the observer never fires.\nlet ioBackup=0;const inViewNow=()=>{const r=el.getBoundingClientRect();const vh=window.innerHeight||document.documentElement.clientHeight||0;return r.height>0&&r.top<vh*.9&&r.bottom>vh*.1;};const startIoBackup=trigger=>{ioBackup=window.setInterval(()=>{if(started){window.clearInterval(ioBackup);ioBackup=0;return;}if(inViewNow()){window.clearInterval(ioBackup);ioBackup=0;trigger();}},400);};// COLD-LOAD reveal (the real iOS fix): iOS Safari suspends BOTH the IntersectionObserver\n// and JS timers until the first touch on an idle cold load — so a directly-opened page with\n// no landing \"Enter\" tap (e.g. a project page) leaves the title armed-hidden until touched.\n// The effect itself DOES run on mount, so reveal SYNCHRONOUSLY here when nothing covers the\n// view. Gated on the landing overlay (present in the DOM by the time effects run on the home\n// cold load): a covering landing keeps the deferred path so the engrave still plays in the\n// clear after Enter; every other case (project/interior pages, repeat visits) reveals now.\nconst landingClear=()=>{const l=document.querySelector(\".ebm-landing\");if(!l)return true;try{return l.getClientRects().length===0;}catch{return true;}};// Reduced motion: no scramble, just a gentle opacity fade-in when in view.\nif(reduce){const prevTransition=el.style.transition;el.style.opacity=\"0\";const fadeIn=()=>{if(started)return;started=true;el.style.transition=\"opacity 0.25s ease\";el.style.opacity=\"1\";};if(typeof IntersectionObserver!==\"undefined\"){observer=new IntersectionObserver(entries=>entries.forEach(e=>{if(e.isIntersecting){fadeIn();if(observer)observer.disconnect();}}),{threshold:.35});observer.observe(el);startIoBackup(fadeIn);}else{fadeIn();}if(landingClear())fadeIn();return()=>{if(ioBackup)window.clearInterval(ioBackup);if(observer)observer.disconnect();el.style.transition=prevTransition;el.style.opacity=\"\";};}const mode=getRevealMode();const G=getEBMGlyphs();// ---- Legacy character-decrypt, kept for reference via ?ebmReveal=scramble ----\nif(mode===\"scramble\"){ensureScrambleStyle();const prevWS=el.style.whiteSpace;const prevOF=el.style.overflow;el.style.whiteSpace=\"nowrap\";el.style.overflow=\"clip\";el.innerHTML=(seoText?seoTwin(finalText):\"\")+buildScrambleHTML(finalText,renderOpts);const slotEls=Array.from(el.querySelectorAll(\".ebm-ch\"));const S=Math.max(slotEls.length,1);const DURATION=1200;const SPREAD=DURATION*.6;const EXP=1.15;const FLICK_BASE=70;const FLICK_JITTER=55;const slots=slotEls.map((se,idx)=>{const kind=se.getAttribute(\"data-kind\")||\"upper\";return{el:se,fin:se.getAttribute(\"data-fin\")||\"\",kind,charset:kind===\"num\"?SCRAMBLE_DIGITS:SCRAMBLE_LETTERS,settled:false,nextFlicker:0,revealAt:Math.pow(idx/Math.max(S-1,1),EXP)*SPREAD+Math.random()*90};});const settle=s=>{s.settled=true;s.el.classList.remove(\"ebm-ch--scramble\");s.el.innerHTML=renderGlyphSVG(G,s.fin,s.kind,renderOpts);s.el.classList.add(\"ebm-ch--in\");};const run=()=>{if(started)return;started=true;const startT=performance.now();const frame=now=>{const t=now-startT;let allSettled=true;for(const s of slots){if(s.settled)continue;if(t>=s.revealAt){settle(s);continue;}allSettled=false;if(now>=s.nextFlicker){s.el.innerHTML=renderGlyphSVG(G,s.charset[Math.floor(Math.random()*s.charset.length)],s.kind,renderOpts);s.nextFlicker=now+FLICK_BASE+Math.random()*FLICK_JITTER;}}if(!allSettled||t<DURATION){raf=requestAnimationFrame(frame);}else{el.style.whiteSpace=prevWS;el.style.overflow=prevOF;}};raf=requestAnimationFrame(frame);};if(typeof IntersectionObserver!==\"undefined\"){observer=new IntersectionObserver(entries=>entries.forEach(e=>{if(e.isIntersecting){run();if(observer)observer.disconnect();}}),{threshold:.35});observer.observe(el);startIoBackup(run);}else{run();}if(landingClear())run();return()=>{if(ioBackup)window.clearInterval(ioBackup);if(raf)cancelAnimationFrame(raf);if(observer)observer.disconnect();};}// ---- Continuous cinematic reveals: focus (default) | rise | draw ----\n// Render the final glyphs once in per-letter spans (armed hidden), then add the\n// mode class on scroll-in so the CSS animation plays with a left-to-right stagger.\nensureRevealStyle();el.innerHTML=(seoText?seoTwin(finalText):\"\")+buildRevealHTML(finalText,renderOpts);const items=Array.from(el.querySelectorAll(\".ebm-rv\"));const N=Math.max(items.length,1);const STAGGER=Math.min(95,720/Math.max(N-1,1))// deliberate L-to-R cadence, tightened for long titles\n;items.forEach((it,i)=>it.style.setProperty(\"--d\",(i*STAGGER).toFixed(1)+\"ms\"));if(mode===\"draw\"){// Give every stroke a per-path delay (--pd) so a letter's strokes draw one at\n// a time in the glyph's construction order — the \"glyphed\" build. Letters\n// stagger L-to-R (letterDelay); each dot pops in just after its letter's strokes.\nconst STROKE_STAGGER=95// ms between successive strokes of one letter (deliberate)\n;items.forEach((it,li)=>{const letterDelay=li*STAGGER;const strokes=Array.from(it.querySelectorAll(\"path\"));strokes.forEach((p,si)=>{const len=p.getTotalLength&&p.getTotalLength()||120;p.style.strokeDasharray=String(len);p.style.strokeDashoffset=String(len);p.style.setProperty(\"--len\",String(len));p.style.setProperty(\"--pd\",(letterDelay+si*STROKE_STAGGER).toFixed(1)+\"ms\");});const dotDelay=letterDelay+strokes.length*STROKE_STAGGER;const dots=Array.from(it.querySelectorAll(\"circle.ebm-dot\"));dots.forEach(c=>c.style.setProperty(\"--pd\",dotDelay.toFixed(1)+\"ms\"));});}// Trigger the reveal. The FIRST hero card sits in the initial viewport but BEHIND the\n// Landing \"Enter\" overlay, so its IntersectionObserver fires at load and the engrave\n// draws + finishes UNSEEN before the user enters. When the landing is still covering,\n// defer the draw until the overlay is actually removed from layout, then engrave in the\n// clear. The wait is EVENT-DRIVEN via a MutationObserver that reads layout ONLY when the\n// landing's own class/style actually change (a handful of times across the whole intro) —\n// no polling and no per-frame layout reads — so it adds nothing to the fragile cold-load\n// frame budget. Waiting for the layout REMOVAL (not the `dismiss` class) is deliberate:\n// the fade is ~600ms over a dark hero, so triggering at fade-START would draw the whole\n// engrave behind the veil and read as already-done. Visibility is NEVER gated on this —\n// no covering landing (other cards, project pages, repeat visits) reveals immediately,\n// and a hard cap reveals regardless — so a title can't get stuck hidden.\nlet capTimer=0;let landingPoll=0;let hideMo=null;const reveal=()=>{if(started)return;started=true;el.classList.add(\"ebm-rv-\"+mode);};const clearWatch=()=>{if(hideMo){hideMo.disconnect();hideMo=null;}if(capTimer){window.clearTimeout(capTimer);capTimer=0;}if(landingPoll){window.clearInterval(landingPoll);landingPoll=0;}};const landingGone=l=>{try{return l.getClientRects().length===0;}catch{return true;}};const armReveal=()=>{if(started)return;const landing=document.querySelector(\".ebm-landing\");// No overlay, or it's already gone (project pages / repeat visits) → reveal now.\nif(!landing||landingGone(landing)){reveal();return;}// Covering: reveal once the overlay leaves layout (Landing display:none's its wrapper\n// ~650ms after Enter). RE-RESOLVE the landing on every check: with hydration now\n// adopting the SSR DOM cleanly, this effect can run BEFORE Framer's residual\n// re-render swaps the landing node — a captured reference then points at a dead\n// node whose observers never fire (the post-merge \"first card never reveals\" bug).\nconst check=()=>{if(started)return;const l=document.querySelector(\".ebm-landing\");if(!l||landingGone(l)){clearWatch();reveal();}};if(typeof MutationObserver!==\"undefined\"){hideMo=new MutationObserver(check);hideMo.observe(landing,{attributes:true,attributeFilter:[\"class\",\"style\"]});if(landing.parentElement)hideMo.observe(landing.parentElement,{attributes:true,attributeFilter:[\"style\"]});}// Poll as backup for the node-swap case (observers on the dead node stay silent).\n// One cheap getClientRects read per 400ms, only while armed behind the landing;\n// self-clears the moment the reveal fires. Same pattern as the iOS reveal backup.\nlandingPoll=window.setInterval(check,400);capTimer=window.setTimeout(()=>{clearWatch();reveal();},12e3)// safety: reveal even if entry never fires\n;};// Arm only once even if both the observer and the layout-poll backup fire (armReveal\n// is not `started`-guarded until the reveal actually runs, so it must not double-arm).\nlet armed=false;const armGuarded=()=>{if(armed)return;armed=true;armReveal();};if(typeof IntersectionObserver!==\"undefined\"){observer=new IntersectionObserver(entries=>entries.forEach(e=>{if(e.isIntersecting){armGuarded();if(observer)observer.disconnect();}}),{threshold:.35});observer.observe(el);startIoBackup(armGuarded);}else{armGuarded();}if(landingClear())armGuarded();return()=>{if(ioBackup)window.clearInterval(ioBackup);if(observer)observer.disconnect();clearWatch();el.classList.remove(\"ebm-rv-focus\",\"ebm-rv-rise\",\"ebm-rv-draw\");};},[scramble,isStatic,text,bold,tight,ink,effAccent,seoText]);// Rendering as a heading gives the page a real outline. The UA heading\n// resets go BEFORE the style spread so anything the canvas sets still wins.\nconst isHeading=headingLevel===\"h1\"||headingLevel===\"h2\"||headingLevel===\"h3\";const Tag=isHeading?headingLevel:\"div\";return /*#__PURE__*/_jsx(Tag,{ref:ref,role:\"img\",\"aria-label\":text,style:{...isHeading?{margin:0,fontWeight:\"inherit\"}:null,...style,position:\"relative\",display:\"inline-block\",// Even out the rag on titles that wrap: without this the browser\n// fills each line greedily and can strand a short last word\n// (e.g. \"FAUDA ROCK / IMPOSSIBLE\" + \"LOVE\"). Never overflows —\n// balance only redistributes the lines greedy already needed.\ntextWrap:\"balance\",fontSize,lineHeight:1.05,color:ink},dangerouslySetInnerHTML:{__html:html}});}addPropertyControls(EBMFont,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"EVERBLISS\",placeholder:\"Type a title…\"},bold:{type:ControlType.Boolean,title:\"Weight\",defaultValue:false,enabledTitle:\"Bold\",disabledTitle:\"Regular\"},tight:{type:ControlType.Boolean,title:\"Spacing\",defaultValue:false,enabledTitle:\"Tight\",disabledTitle:\"Wide\"},scramble:{type:ControlType.Boolean,title:\"Scramble In\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},fontSize:{type:ControlType.Number,title:\"Size\",defaultValue:48,min:8,max:400,step:1,unit:\"px\"},ink:{type:ControlType.Color,title:\"Ink\",defaultValue:\"#F0EDE8\"},accent:{type:ControlType.Color,title:\"Accent\",defaultValue:\"#B8922A\"},seoText:{type:ControlType.Boolean,title:\"Readable Text\",defaultValue:true,description:\"Emits the word as invisible real text so search engines can read it. Turn off only where site chrome copies this element's text.\"},headingLevel:{type:ControlType.Enum,title:\"Heading\",defaultValue:\"none\",options:[\"none\",\"h1\",\"h2\",\"h3\"],optionTitles:[\"None\",\"H1\",\"H2\",\"H3\"],description:\"Renders this title as a page heading. Use H1 once per page.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"EBMFont\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"64\",\"framerSupportedLayoutWidth\":\"auto\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"280\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./EBMFont.map"],"mappings":"8MAsB0K,SAAS,EAAW,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAE,CAEjS,SAAS,EAAQ,EAAK,CAAC,IAAM,GAAG,GAAM,GAAA,CAAI,KAAK,EAAiB,OAAX,EAAiB,iCAAiC,EAAe,IAAI,EAAW,CAAC,EAAE,SAA3E,EAAoF,CACjJ,SAAS,EAAW,EAAE,CAAC,IAAM,EAAK,EAAE,MAAM,cAAc,GAAG,CAAC,EAAQ,EAAI,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAK,OAAO,GAAG,EAAE,EAAI,KAAK,CAAC,WAAW,EAAK,EAAE,EAAE,WAAW,EAAK,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,CAAI,CAE7K,SAAS,EAAe,EAAM,EAAY,CAAC,IAAI,EAAK,IAAS,EAAK,KAAgB,EAAS,GAAG,CAAI,EAAE,IAAK,EAAK,GAAK,EAAE,IAAK,EAAK,EAAE,EAAQ,EAAK,EAAM,GAAG,CAAC,EAAQ,EAAK,EAAM,GAAG,CAAC,EAAQ,EAAK,EAAM,MAAM,CAAC,EAAE,EAAK,QAAQ,GAAG,EAAW,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAK,QAAQ,GAAG,EAAW,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAK,QAAQ,GAAG,EAAS,EAAE,EAAE,CAAC,EAAK,IAAO,MAAU,EAAK,GAAG,EAAK,IAChY,IAAM,GAAY,GAAa,GAAG,EAAE,MAAM,CAAC,EAAK,EAAW,EAAK,CAAU,CAAE,CAAC,SAAS,EAAe,EAAE,EAAG,EAAK,EAAK,CAAC,IAAM,EAAE,GAAM,CAAC,EAAQ,EAAG,EAAE,aAAa,EAAQ,EAAG,EAAE,iBAAiB,KAAW,EAAI,EAAE,KAAK,UAAgB,EAAO,EAAE,QAAQ,UAAgB,EAAO,EAAE,QAAQ,GAAY,EAAY,EAAE,aAAa,KAAmB,EAAd,EAAE,YAC7T,EAAM,AAAkF,EAA/E,IAAO,QAAc,EAAE,MAAM,CAAE,EAAU,IAAO,QAAc,EAAE,MAAM,CAAE,EAAa,EAAE,IAAI,CAAE,EAAkC,GAAK,CAAC,EAAK,GAAM,EAAe,EAAhD,KAAK,IAAI,EAAG,CAAkD,CAAC,EAAQ,EAAI,EAAK,EAAkB,EAAI,EAAK,EAAK,EAAY,EAAM,EAAM,GAErQ,IAAI,IAAM,KAAK,EAAM,GAAG,CAAC,EAAE,GAAO,4BAA4B,EAAE,wBAAwB,EAAI,kBAAkB,EAAG,oDAAoD,IAAI,IAAM,KAAK,EAAM,GAAG,CAAC,EAAE,GAAO,6BAA6B,EAAE,wBAAwB,EAAO,kBAAkB,EAAG,oDAAoD,IAAI,IAAM,KAAK,EAAM,MAAM,CAAC,EAAE,GAAO,+BAA+B,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAG,IAAI,UAAU,EAAI,KAAK,IAAM,EAAM,EAAO,2BAA2B,GAAG,MAAM,iBAAiB,EAAI,QAAQ,CAAC,EAAE,KAAK,EAAI,QAAQ,CAAC,EAAE,sFAAsF,EAAM,IAAI,EAAM,OAAQ,CAA8B,SAAS,GAAc,CAA2D,MAA1D,CAAwB,IAAoB,IAAI,EAAiB,CAAoB,CAIzyB,SAAS,EAAe,EAAK,EAAK,CAAC,IAAM,EAAE,GAAM,CAAC,EAAQ,EAAE,EAAa,EAAQ,EAAK,QAC/E,EAAI,EAAE,KAAK,UAAgB,EAAM,EAAK,MAAM,GAAG,EAAQ,GAAU,EAAK,EAAM,KAAK,CAAC,IAAI,EAAI,GAAO,EAAM,GAAS,MAAe,CAAC,AAA6E,KAAnE,GAAK,sBAAsB,EAAI,qBAAqB,EAAM,SAAe,GAAI,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAK,OAAO,IAAI,CAAC,IAAM,EAAG,EAAK,GAAM,QAAQ,KAAK,CAAE,GAAG,EAAW,EAAE,GAAK,EAAe,EAAE,EAAG,MAAM,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,KAAG,CAAC,CAAC,GAAW,WAAW,KAAK,CAAE,GAAG,EAAW,EAAE,GAAK,EAAe,EAAE,EAAG,YAAY,EAAE,EAAK,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,KAAG,CAAC,CAAC,GAAW,IAAK,KAAK,EAAW,EAAE,GAAK,EAAe,EAAE,IAAI,EAAK,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,KAAG,CAAC,CAAC,GAAQ,GAAO,EAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAG,CAAc,OAAb,EAAW,EAAQ,0DAA0D,IAAM,EAAM,QAAS,EAE5uB,OAFivB,EAAE,MAAc,EAAM,IAAI,GAAG,EAAS,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAE5xB,EAAM,KAAK,EAAE,IAAI,EAAS,EAAE,EAAE,EAAM,OAAO,EAAE,gFAAS,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAE,CAOhF,SAAS,GAAqB,CAAyC,GAArC,OAAO,SAAW,KAAsB,SAAS,eAAe,oBAAoB,EAAE,OAAO,IAAM,EAAM,SAAS,cAAc,OAAO,EAAE,EAAM,GAAG,qBAAqB,EAAM,YAAY,2MAAiN,SAAS,KAAK,YAAY,CAAK,CAAE,CAM7c,SAAS,EAAkB,EAAK,EAAK,CAAC,IAAM,EAAE,GAAM,CAAC,EAAQ,EAAE,EAAa,EAAQ,EAAI,EAAE,KAAK,UAAgB,EAAI,GAAG,EAAE,KAAK,MAAM,KAAK,OAAO,EAAE,EAAE,MAAM,GAAS,EAAM,EAAK,MAAM,GAAG,EAAQ,GAAU,EAAK,EAAM,KAAK,CAAC,IAAI,EAAI,GAAO,EAAM,GAAS,MAAe,CAAC,AAA6E,KAAnE,GAAK,sBAAsB,EAAI,qBAAqB,EAAM,SAAe,GAAI,EAAQ,GAAM,EAAM,EAAK,IAAU,CAAC,IAAM,EAAM,EAAe,EAAE,EAAI,CAAO,EAAE,EAAK,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,KAAG,CAAC,CAAC,EAAE,GAAK,mDAAmD,EAAM,eAAe,EAAK,IAAI,EAAM,QAAS,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAK,OAAO,IAAI,CAAC,IAAM,EAAG,EAAK,GAAM,QAAQ,KAAK,CAAE,GAAG,EAAW,EAAE,EAAK,EAAG,MAAM,CAAe,GAAW,WAAW,KAAK,CAAE,GAAG,EAAW,EAAE,EAAK,EAAG,YAAY,EAAE,QAAQ,CAAgB,GAAW,IAAK,KAAK,EAAW,EAAE,GAAK,EAAe,EAAE,IAAI,QAAQ,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,KAAG,CAAC,CAAC,GAAQ,GAAO,EAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAG,CAAc,OAAb,EAAW,EAAQ,0DAA0D,IAAM,EAAM,QAAS,EAAyJ,OAApJ,EAAE,MAAc,EAAM,IAAI,GAAG,EAAS,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAyG,EAAM,KAAK,EAAE,IAAI,EAAS,EAAE,EAAE,EAAM,OAAO,EAAE,gFAAS,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAE,CAAC,SAAS,GAAe,CAAC,GAAG,CAAC,GAAU,IAAS,OAAY,CAAC,IAAM,EAAE,IAAI,gBAAgB,EAAO,SAAS,MAAM,CAAC,CAAC,IAAI,WAAW,EAAE,GAAG,IAAI,SAAS,IAAI,QAAQ,IAAI,QAAQ,IAAI,WAAW,OAAO,CAAE,CAAC,MAAM,CAAa,CAAC,MAAM,MAAO,CAI99C,SAAS,GAAmB,CAAyC,GAArC,OAAO,SAAW,KAAsB,SAAS,eAAe,kBAAkB,EAAE,OAAO,IAAM,EAAM,SAAS,cAAc,OAAO,EAAE,EAAM,GAAG,mBAAmB,EAAM,YAAY,ipCAQ2J,SAAS,KAAK,YAAY,CAAK,CAAE,CAIjZ,SAAS,EAAgB,EAAK,EAAK,CAAC,IAAM,EAAE,GAAM,CAAC,EAAQ,EAAE,EAAa,EAAQ,EAAI,EAAE,KAAK,UAAgB,EAAK,GAAO,wBAAwB,EAAM,SAAe,EAAM,EAAK,MAAM,GAAG,EAAQ,GAAU,EAAK,EAAM,KAAK,CAAC,IAAI,EAAI,GAAO,EAAM,GAAS,MAAe,CAAC,AAA6E,KAAnE,GAAK,sBAAsB,EAAI,qBAAqB,EAAM,SAAe,GAAI,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAK,OAAO,IAAI,CAAC,IAAM,EAAG,EAAK,GAAM,QAAQ,KAAK,CAAE,GAAG,EAAW,EAAE,GAAK,EAAK,EAAe,EAAE,EAAG,MAAM,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,KAAG,CAAC,CAAC,CAAC,GAAW,WAAW,KAAK,CAAE,GAAG,EAAW,EAAE,GAAK,EAAK,EAAe,EAAE,EAAG,YAAY,EAAE,QAAQ,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,KAAG,CAAC,CAAC,CAAC,GAAW,IAAK,KAAK,EAAW,EAAE,GAAK,EAAK,EAAe,EAAE,IAAI,QAAQ,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,KAAG,CAAC,CAAC,CAAC,GAAQ,GAAO,EAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAG,CAAc,OAAb,EAAW,EAAQ,0DAA0D,IAAM,EAAM,QAAS,EAAyJ,OAApJ,EAAE,MAAc,EAAM,IAAI,GAAG,EAAS,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAyG,EAAM,KAAK,EAAE,IAAI,EAAS,EAAE,EAAE,EAAM,OAAO,EAAE,gFAAS,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAE,CAa9mC,SAAwB,EAAQ,EAAM,CAAC,GAAK,CAAC,OAAK,YAAY,OAAK,GAAM,QAAM,GAAM,WAAS,GAAM,WAAS,GAAG,MAAI,UAAU,SAAO,UAAU,eAAa,OAAO,UAAQ,GAAK,SAAO,EAAY,EAAS,EAAoB,EAAQ,EAAIA,EAAO,IAAI,EAEpP,EAAUC,MAAY,CAAC,IAAM,EAAO,2BAA2B,OAAO,EAAO,KAAK,CAAG,GAAG,EAAO,KAAK,CAAM,EAAE,UAAU,CAAO,EAAE,CAAC,EAAI,CAAM,CAAC,EAAQ,EAAKA,OAAa,EAAQ,EAAQ,GAAM,EAAE,EAAE,IAAI,EAAe,GAAM,GAAG,CAAC,YAAY,EAAK,GAAG,EAAE,MAAI,OAAO,EAAU,OAAK,CAAC,EAAE,CAAC,EAAK,EAAK,EAAM,EAAI,EAAU,CAAO,CAAC,EAM5T,MAAc,CAAC,GAAG,CAAC,GAAU,GAAiB,IAAS,OAAY,OAAO,IAAM,EAAG,EAAI,QAAQ,GAAG,CAAC,EAAG,OAAO,IAAM,EAAW,CAAC,YAAY,EAAK,GAAG,EAAE,MAAI,OAAO,EAAU,OAAK,EAAQ,EAAU,GAAM,GAAS,EAAO,CAAC,EAAE,EAAO,YAAY,EAAO,WAAW,kCAAkC,CAAC,CAAC,SAAa,EAAS,KAAS,EAAI,EAAM,EAAQ,GAMhV,EAAS,EAAQ,MAAc,CAAC,IAAM,EAAE,EAAG,sBAAsB,EAAQ,EAAG,EAAO,aAAa,SAAS,gBAAgB,cAAc,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,IAAI,EAAG,IAAI,EAAE,OAAO,EAAG,EAAG,EAAQ,EAAc,GAAS,CAAC,EAAS,EAAO,gBAAgB,CAAC,GAAG,EAAQ,CAAC,EAAO,cAAc,CAAQ,EAAE,EAAS,EAAE,MAAO,CAAI,EAAU,IAAG,EAAO,cAAc,CAAQ,EAAE,EAAS,EAAE,EAAQ,EAAG,EAAE,GAAG,CAAE,EAOjY,MAAiB,CAAC,IAAM,EAAE,SAAS,cAAc,cAAc,EAAE,GAAG,CAAC,EAAE,MAAO,GAAK,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,SAAS,CAAE,MAAM,CAAC,MAAO,EAAK,CAAC,EACtJ,GAAG,EAAO,CAAC,IAAM,EAAe,EAAG,MAAM,WAAW,EAAG,MAAM,QAAQ,IAAI,IAAM,MAAW,CAAI,IAAe,EAAQ,GAAK,EAAG,MAAM,WAAW,qBAAqB,EAAG,MAAM,QAAQ,IAAI,EAA0R,OAArR,OAAO,qBAAuB,KAAa,EAAS,IAAI,qBAAqB,GAAS,EAAQ,QAAQ,GAAG,CAAI,EAAE,iBAAgB,EAAO,EAAK,GAAS,EAAS,WAAW,EAAG,CAAC,EAAE,CAAC,UAAU,GAAG,CAAC,EAAE,EAAS,QAAQ,CAAE,EAAE,EAAc,CAAM,GAAQ,EAAO,EAAM,EAAa,GAAE,EAAO,MAAY,CAAI,GAAS,EAAO,cAAc,CAAQ,EAAK,GAAS,EAAS,WAAW,EAAE,EAAG,MAAM,WAAW,EAAe,EAAG,MAAM,QAAQ,EAAG,CAAE,CAAC,IAAM,EAAK,EAAc,EAAQ,EAAE,EAAa,EACppB,GAAG,IAAO,WAAW,CAAC,EAAoB,EAAE,IAAM,EAAO,EAAG,MAAM,WAAiB,EAAO,EAAG,MAAM,SAAS,EAAG,MAAM,WAAW,SAAS,EAAG,MAAM,SAAS,OAAO,EAAG,WAAW,EAAQ,EAAQ,CAAS,EAAE,IAAI,EAAkB,EAAU,CAAU,EAAE,IAAM,EAAQ,MAAM,KAAK,EAAG,iBAAiB,SAAS,CAAC,EAAQ,EAAE,KAAK,IAAI,EAAQ,OAAO,CAAC,EAA8G,EAAM,EAAQ,KAAK,EAAG,IAAM,CAAC,IAAM,EAAK,EAAG,aAAa,WAAW,GAAG,QAAQ,MAAM,CAAC,GAAG,EAAG,IAAI,EAAG,aAAa,UAAU,GAAG,GAAG,OAAK,QAAQ,IAAO,MAAM,EAAgB,EAAiB,QAAQ,GAAM,YAAY,EAAE,UAAkB,EAAI,KAAK,IAAI,EAAE,EAAE,CAAC,IAAE,KAAK,IAAO,KAAK,OAAO,EAAE,EAAE,CAAE,CAAC,EAAQ,EAAO,GAAG,CAAC,EAAE,QAAQ,GAAK,EAAE,GAAG,UAAU,OAAO,kBAAkB,EAAE,EAAE,GAAG,UAAU,EAAe,EAAE,EAAE,IAAI,EAAE,KAAK,CAAU,EAAE,EAAE,GAAG,UAAU,IAAI,YAAY,CAAE,EAAQ,MAAQ,CAAC,GAAG,EAAQ,OAAO,EAAQ,GAAK,IAAM,EAAO,YAAY,IAAI,EAAQ,EAAM,GAAK,CAAC,IAAM,EAAE,EAAI,EAAW,EAAW,GAAK,IAAI,IAAM,KAAK,EAAU,MAAE,QAAiB,IAAG,GAAG,EAAE,SAAS,CAAC,EAAO,CAAC,EAAE,QAAS,CAAC,EAAW,GAAS,GAAK,EAAE,cAAa,EAAE,GAAG,UAAU,EAAe,EAAE,EAAE,QAAQ,KAAK,MAAM,KAAK,OAAO,EAAE,EAAE,QAAQ,MAAM,GAAG,EAAE,KAAK,CAAU,EAAE,EAAE,YAAY,EAAI,GAAW,KAAK,OAAO,EAAE,GAA7L,CAA+M,CAAC,GAAY,EAAE,KAAU,EAAI,sBAAsB,CAAK,GAAQ,EAAG,MAAM,WAAW,EAAO,EAAG,MAAM,SAAS,EAAQ,EAAE,EAAI,sBAAsB,CAAK,CAAE,EAA8Q,OAAzQ,OAAO,qBAAuB,KAAa,EAAS,IAAI,qBAAqB,GAAS,EAAQ,QAAQ,GAAG,CAAI,EAAE,iBAAgB,EAAI,EAAK,GAAS,EAAS,WAAW,EAAG,CAAC,EAAE,CAAC,UAAU,GAAG,CAAC,EAAE,EAAS,QAAQ,CAAE,EAAE,EAAc,CAAG,GAAQ,EAAI,EAAM,EAAa,GAAE,EAAI,MAAY,CAAI,GAAS,EAAO,cAAc,CAAQ,EAAK,GAAI,qBAAqB,CAAG,EAAK,GAAS,EAAS,WAAW,CAAE,CAAE,CAGz0D,EAAkB,EAAE,EAAG,WAAW,EAAQ,EAAQ,CAAS,EAAE,IAAI,EAAgB,EAAU,CAAU,EAAE,IAAM,EAAM,MAAM,KAAK,EAAG,iBAAiB,SAAS,CAAC,EAAQ,EAAE,KAAK,IAAI,EAAM,OAAO,CAAC,EAAQ,EAAQ,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,EAC3O,EAAM,SAAS,EAAG,IAAI,EAAG,MAAM,YAAY,OAAO,EAAE,EAAA,CAAS,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAK,IAAO,QAIzF,EAAM,SAAS,EAAG,IAAK,CAAC,IAAM,EAAY,EAAG,EAAc,EAAQ,MAAM,KAAK,EAAG,iBAAiB,MAAM,CAAC,EAAE,EAAQ,SAAS,EAAE,IAAK,CAAC,IAAM,EAAI,EAAE,gBAAgB,EAAE,eAAe,GAAG,IAAI,EAAE,MAAM,gBAAgB,OAAO,CAAG,EAAE,EAAE,MAAM,iBAAiB,OAAO,CAAG,EAAE,EAAE,MAAM,YAAY,QAAQ,OAAO,CAAG,CAAC,EAAE,EAAE,MAAM,YAAY,QAAQ,EAAY,EAAG,GAAA,CAAgB,QAAQ,CAAC,EAAE,IAAI,CAAE,CAAC,EAAE,IAAM,EAAS,EAAY,EAAQ,OAAO,GAA4E,MAA5C,KAAK,EAAG,iBAAiB,gBAAgB,CAAM,CAAC,CAAC,QAAQ,GAAG,EAAE,MAAM,YAAY,OAAO,EAAS,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAE,CAAC,EAYvjB,IAAI,EAAS,EAAM,EAAY,EAAM,EAAO,KAAW,MAAW,CAAI,IAAe,EAAQ,GAAK,EAAG,UAAU,IAAI,UAAU,CAAI,EAAE,EAAQ,MAAe,CAAC,AAA+B,KAApB,EAAO,WAAW,EAAS,MAAM,AAA2C,KAA9B,EAAO,aAAa,CAAQ,EAAW,GAAG,AAAkD,KAAlC,EAAO,cAAc,CAAW,EAAc,EAAG,EAAQ,EAAY,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,SAAS,CAAE,MAAM,CAAC,MAAO,EAAK,CAAC,EAAQ,MAAc,CAAC,GAAG,EAAQ,OAAO,IAAM,EAAQ,SAAS,cAAc,cAAc,EAChf,GAAG,CAAC,GAAS,EAAY,CAAO,EAAE,CAAC,EAAO,EAAE,MAAO,CAKnD,IAAM,MAAU,CAAC,GAAG,EAAQ,OAAO,IAAM,EAAE,SAAS,cAAc,cAAc,GAAK,CAAC,GAAG,EAAY,CAAC,KAAG,EAAW,EAAE,EAAO,EAAG,EAAK,OAAO,iBAAmB,MAAa,EAAO,IAAI,iBAAiB,CAAK,EAAE,EAAO,QAAQ,EAAQ,CAAC,WAAW,GAAK,gBAAgB,CAAC,QAAQ,OAAO,CAAC,CAAC,EAAK,EAAQ,eAAc,EAAO,QAAQ,EAAQ,cAAc,CAAC,WAAW,GAAK,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAGpY,EAAY,EAAO,YAAY,EAAM,GAAG,EAAE,EAAS,EAAO,eAAe,CAAC,EAAW,EAAE,EAAO,CAAE,EAAE,IAAI,CACrG,EAEG,EAAM,GAAY,MAAe,CAAI,IAAa,EAAM,GAAK,EAAU,EAAE,EAA0S,OAArS,OAAO,qBAAuB,KAAa,EAAS,IAAI,qBAAqB,GAAS,EAAQ,QAAQ,GAAG,CAAI,EAAE,iBAAgB,EAAW,EAAK,GAAS,EAAS,WAAW,EAAG,CAAC,EAAE,CAAC,UAAU,GAAG,CAAC,EAAE,EAAS,QAAQ,CAAE,EAAE,EAAc,CAAU,GAAQ,EAAW,EAAM,EAAa,GAAE,EAAW,MAAY,CAAI,GAAS,EAAO,cAAc,CAAQ,EAAK,GAAS,EAAS,WAAW,EAAE,EAAW,EAAE,EAAG,UAAU,OAAO,eAAe,cAAc,aAAa,CAAE,CAAE,EAAE,CAAC,EAAS,EAAS,EAAK,EAAK,EAAM,EAAI,EAAU,CAAO,CAAC,EAEzlB,IAAM,EAAU,IAAe,MAAM,IAAe,MAAM,IAAe,KAA4C,OAAoB,EAAjD,EAAU,EAAa,MAAmC,CAAK,MAAI,KAAK,MAAM,aAAa,EAAK,MAAM,CAAC,GAAG,EAAU,CAAC,OAAO,EAAE,WAAW,SAAS,EAAE,KAAK,GAAG,EAAM,SAAS,WAAW,QAAQ,eAItR,SAAS,UAAU,WAAS,WAAW,KAAK,MAAM,CAAG,EAAE,wBAAwB,CAAC,OAAO,CAAI,CAAC,CAAC,CAAE,+BA7IrD,IAAwE,IAA4C,EAAO,EAAN,KAAe,CAE9K,GAAG,EAAG,EAAG,EAAE,EAAE,CAAC,IAAM,EAAE,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,EAAG,EAAE,KAAK,IAAI,CAAC,EAAE,EAAG,EAAE,KAAK,IAAI,CAAC,CAAC,CAAE,CAAC,KAAK,EAAO,CAAC,MAAM,KAAK,EAAO,IAAI,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAE,CAAC,KAAK,EAAG,EAAG,EAAG,EAAG,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,EAAG,CAAE,EAAE,CAAC,EAAG,CAAE,CAAC,CAAC,CAAE,CAAC,MAAM,EAAE,EAAG,EAAG,CAAC,OAAO,KAAK,KAAK,EAAE,EAAG,EAAE,CAAE,CAAE,CAAC,MAAM,EAAE,EAAG,EAAG,CAAC,OAAO,KAAK,KAAK,EAAG,EAAE,EAAG,CAAC,CAAE,CAAC,IAAI,EAAG,EAAG,EAAE,EAAG,EAAG,EAAK,CAAC,IAAM,EAAE,GAAM,EAAQ,EAAI,GAAI,EAAG,EAAE,GAAS,EAAI,CAAC,EAAE,IAAI,IAAI,EAAE,EAAG,EAAI,EAAE,GAAG,EAAG,GAAG,EAAG,GAAG,EAAI,EAAE,EAAI,KAAK,KAAK,GAAG,EAAG,EAAG,EAAE,CAAC,CAAC,EAAgC,OAA9B,EAAI,KAAK,KAAK,GAAG,EAAG,EAAG,EAAE,CAAE,CAAC,EAAS,KAAK,KAAK,CAAG,CAAE,CAAC,QAAQ,EAAG,EAAG,EAAG,EAAG,EAAI,EAAG,EAAG,EAAK,CAAC,IAAM,EAAE,GAAM,EAAQ,EAAG,EAAI,KAAK,GAAG,IAAU,EAAI,KAAK,IAAI,CAAE,EAAE,EAAI,KAAK,IAAI,CAAE,EAAQ,EAAI,GAAI,EAAG,EAAE,GAAS,EAAI,CAAC,EAAQ,EAAG,GAAG,CAAC,IAAM,EAAE,EAAE,KAAK,GAAG,IAAU,EAAG,EAAG,KAAK,IAAI,CAAC,EAAE,EAAG,EAAG,KAAK,IAAI,CAAC,EACvtB,EAAG,EAAG,EAAI,EAAG,EAAI,EAAG,EAAG,EAAI,EAAG,EACpC,MAAM,CAAC,EAAG,EAAG,EAAG,CAAE,CAAE,EAAE,IAAI,IAAI,EAAE,EAAG,EAAI,EAAE,GAAG,EAAG,GAAG,EAAG,GAAG,EAAI,EAAE,EAAI,KAAK,EAAG,CAAC,CAAC,EAAmB,OAAjB,EAAI,KAAK,EAAG,CAAE,CAAC,EAAS,KAAK,KAAK,CAAG,CAAE,CAAC,MAAM,EAAG,EAAG,EAAG,EAAG,EAAE,CAAC,IAAM,EAAM,GAAG,GAAS,EAAI,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,EAAM,IAAI,CAAC,IAAM,EAAE,EAAE,EAAM,EAAE,EAAE,EAAQ,EAAE,EAAE,EAAE,EAAE,EAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAG,GAAG,EAAE,EAAE,EAAE,EAAG,GAAS,EAAE,EAAE,EAAE,EAAE,EAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAG,GAAG,EAAE,EAAE,EAAE,EAAG,GAAG,EAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,OAAO,KAAK,KAAK,CAAG,CAAE,CAC1X,SAAS,EAAG,EAAG,EAAI,EAAI,CAAC,IAAM,EAAE,GAAU,GAAa,GAAG,EAAG,GAAI,IAAI,OAAO,KAAK,MAAM,CAAC,EAAG,CAAG,EAAE,CAAC,EAAG,EAAE,EAAI,CAAC,EAAE,CAAC,EAAG,EAAE,EAAI,CAAC,EAAE,CAAC,EAAG,CAAG,CAAC,CAAE,CACpI,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,MAAM,GAAG,KAAK,EAAE,CAAE,CAC1F,MAAM,EAAG,CAAC,IAAM,EAAE,KAAK,EAAE,EAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAK,CAAC,EAAO,CAAC,OAAK,OAAK,MAAI,OAAK,KAAG,IAAE,MAAI,EAAQ,EAAE,EAAG,EAAE,EAAE,EAAG,EACxG,OAAO,EAAP,CAAW,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,EAAG,EAAG,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,EAAE,EAAK,CAAI,CAAC,EAAE,MAAM,IAAI,IAAoB,EAAE,KAAK,KAAK,MAAM,GAAM,EAAI,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,QAAQ,GAAG,IAAI,GAAG,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,MAAO,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,EAAG,EAAG,EAAE,GAAG,GAAG,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,EAAG,EAAG,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,EAAE,EAAI,CAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,EAAG,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,EAAG,EAAG,EAAE,GAAG,GAAG,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,GAAG,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,EAAK,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,EAAG,EAAG,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,EAAE,EAAK,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,EAAE,EAAI,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,SAAS,EAAE,EAAE,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,EAAE,EAAK,CAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,EAAG,EAAK,CAAI,CAAC,EAAE,EAAK,KAAK,CAAC,EAAG,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,EAAK,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,CAAC,EAAE,EAAK,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,EAAE,EAAI,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,GAAG,EAAK,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,EAAE,IAAI,GAAG,CAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,EAAG,EAAI,CAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,EAAK,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,GAAG,EAAK,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,GAAG,EAAK,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,SAAS,GAAG,GAAG,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,SAAS,GAAG,GAAG,CAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,EAAE,EAAK,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,SAAS,EAAE,EAAE,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,EAAE,EAAK,CAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,EAAG,EAAG,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,EAAE,EAAK,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,EAAG,EAAG,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,EAAE,EAAK,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,EAAG,EAAG,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,EAAE,EAAK,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,CAAC,EAAE,CAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC,IAAM,EAAK,KAAK,QAAQ,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,EAAQ,EAAK,KAAK,QAAQ,GAAG,IAAI,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,KAAK,EAAK,MAAM,EAAK,MAAM,CAAC,CAAC,EAAE,KAAM,CAAC,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,EAAG,GAAG,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,EAAK,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,EAAE,EAAK,CAAE,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,EAAG,EAAG,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,EAAE,EAAK,CAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,KAAK,GAAG,EAAK,EAAG,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,EAAG,IAAI,GAAG,CAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,KAAK,GAAG,EAAK,GAAG,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,CAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,KAAK,GAAG,EAAK,GAAG,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,GAAG,EAAK,GAAG,CAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,KAAK,GAAG,EAAK,GAAG,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,GAAG,EAAK,GAAG,GAAG,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,EAAK,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,GAAG,EAAK,GAAG,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,EAAK,GAAG,EAAE,CAAC,EAAE,KAAM,CAAC,MAAM,CAAC,IAAE,IAAE,MAAI,CAAE,CACv+E,MAAM,EAAG,CAAC,IAAM,EAAE,KAAK,EAAE,EAAQ,EAAE,CAAC,EAAE,EAAK,CAAC,EAAQ,EAAI,EAAE,OAAO,EAAK,EAAE,KAAK,EAAG,EAAE,GAAG,EAAG,EAAE,MAAM,EAAE,EAAE,KACnG,OAAO,EAAP,CAAW,IAAI,IAAI,EAAE,KAAK,KAAK,KAAK,GAAG,EAAK,EAAG,CAAG,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,EAAG,EAAI,GAAG,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,EAAI,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,EAAI,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,EAAK,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,EAAG,EAAG,EAAE,GAAG,GAAG,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,EAAI,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,EAAI,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,EAAI,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,EAAG,EAAG,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,EAAI,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,GAAG,EAAI,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,EAAG,EAAI,CAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,EAAI,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,EAAI,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,GAAG,EAAI,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,CAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,EAAI,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,EAAK,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,EAAI,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,EAAG,EAAI,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,GAAG,EAAI,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,SAAS,GAAG,EAAG,EAAI,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,SAAS,EAAG,GAAG,EAAI,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,EAAK,CAAG,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,GAAG,EAAI,GAAG,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,GAAG,EAAK,CAAG,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,EAAG,EAAG,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,EAAI,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,EAAG,EAAG,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,EAAI,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,EAAI,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,CAAI,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC,IAAM,EAAK,KAAK,QAAQ,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,EAAQ,EAAK,KAAK,QAAQ,GAAG,IAAI,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,KAAK,EAAK,MAAM,EAAK,MAAM,CAAC,CAAC,EAAE,KAAM,CAAC,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,EAAI,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,EAAG,EAAI,CAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,EAAI,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,EAAG,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,GAAG,EAAI,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,KAAK,GAAG,EAAI,EAAG,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,EAAG,EAAK,GAAG,CAAG,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,KAAK,EAAE,EAAI,GAAG,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,GAAG,EAAK,EAAG,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,EAAG,GAAG,GAAG,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,GAAG,EAAK,GAAG,CAAG,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,KAAK,GAAG,EAAI,GAAG,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,GAAG,EAAI,GAAG,CAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,KAAK,GAAG,EAAI,EAAG,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,GAAG,EAAI,EAAG,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,EAAG,GAAG,CAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,EAAI,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,GAAG,EAAI,GAAG,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,EAAK,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,QAAQ,GAAG,IAAI,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,KAAM,CAAC,MAAM,CAAC,IAAE,EAAE,CAAC,EAAE,MAAI,CAAE,CAChyF,IAAI,EAAG,CAAC,IAAM,EAAE,CAAC,EAAE,EAAK,CAAC,EAA8B,OAAO,EAAP,CAAW,IAAI,IAAI,EAAE,KAAK,KAAK,QAAQ,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,EAAG,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,GAAG,GAAI,GAAI,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,IAAK,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,GAAI,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,IAAK,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC,IAAM,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,EAAQ,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,KAAM,CAAC,IAAI,IAAI,EAAE,KAAK,KAAK,KAAK,GAAG,GAAI,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,GAAG,GAAI,GAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,GAAI,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,GAAG,GAAI,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,MAAM,GAAI,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,GAAG,GAAI,GAAG,GAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,KAAM,CAAC,MAAM,CAAC,IAAE,EAAE,CAAC,EAAE,MAAI,CAAE,CAAC,EAWvhC,EAAe,kJAS8oB,EAAoB,KAUjrB,EAAiB,6BAAmC,EAAgB,aAoGsB,EAAoB,EAAQ,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,aAAa,YAAY,YAAY,eAAe,EAAE,KAAK,CAAC,KAAK,EAAY,QAAQ,MAAM,SAAS,aAAa,GAAM,aAAa,OAAO,cAAc,SAAS,EAAE,MAAM,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,GAAM,aAAa,QAAQ,cAAc,MAAM,EAAE,SAAS,CAAC,KAAK,EAAY,QAAQ,MAAM,cAAc,aAAa,GAAM,aAAa,KAAK,cAAc,KAAK,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,IAAI,EAAE,IAAI,CAAC,KAAK,EAAY,MAAM,MAAM,MAAM,aAAa,SAAS,EAAE,OAAO,CAAC,KAAK,EAAY,MAAM,MAAM,SAAS,aAAa,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,gBAAgB,aAAa,GAAK,YAAY,kIAAkI,EAAE,aAAa,CAAC,KAAK,EAAY,KAAK,MAAM,UAAU,aAAa,OAAO,QAAQ,CAAC,OAAO,KAAK,KAAK,IAAI,EAAE,aAAa,CAAC,OAAO,KAAK,KAAK,IAAI,EAAE,YAAY,6DAA6D,CAAC,CAAC"}