@seatlayer/core 0.96.0 → 0.98.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ar-Q44JP5JY.js +1 -0
- package/dist/be-CGFFSIQL.js +1 -0
- package/dist/bg-WOYK6OLH.js +1 -0
- package/dist/ca-77ZVI3X5.js +1 -0
- package/dist/chunk-2MXDWZQ4.js +1 -0
- package/dist/chunk-2P72QUJR.js +1 -0
- package/dist/chunk-5N4H3KMR.js +1 -0
- package/dist/chunk-ASIIXY5M.js +1 -0
- package/dist/{chunk-O3DGXAIC.js → chunk-CUACREZL.js} +1 -1
- package/dist/{chunk-CEIVHWRB.js → chunk-FLMKHAUT.js} +1 -1
- package/dist/{chunk-TKYTTEJ2.js → chunk-IW7QZIMF.js} +1 -1
- package/dist/chunk-M5VINTGE.js +1 -0
- package/dist/{chunk-U7CVRE4P.js → chunk-OLGPAFXW.js} +1 -1
- package/dist/{chunk-M5X6G7FD.js → chunk-P4C24CIZ.js} +1 -1
- package/dist/{chunk-A3ZL3R75.js → chunk-QEPYNCBJ.js} +1 -1
- package/dist/chunk-VAI2VDQR.js +1 -0
- package/dist/{chunk-Q3MSDG4S.js → chunk-YPESNMTC.js} +1 -1
- package/dist/chunk-Z43H6AWN.js +1 -0
- package/dist/core/chart-ops/index.cjs +1 -1
- package/dist/core/chart-ops/index.d.cts +40 -18
- package/dist/core/chart-ops/index.d.ts +40 -18
- package/dist/core/chart-ops/index.js +1 -1
- package/dist/core/inventory/index.cjs +1 -1
- package/dist/core/inventory/index.js +1 -1
- package/dist/core/layout/index.cjs +1 -1
- package/dist/core/layout/index.js +1 -1
- package/dist/core/quality/index.js +1 -1
- package/dist/core/render-assets/index.js +1 -1
- package/dist/core/sections/index.js +1 -1
- package/dist/cs-OSBZYCSR.js +1 -0
- package/dist/cy-ZCOJW2WH.js +1 -0
- package/dist/da-2PDK6JTR.js +1 -0
- package/dist/de-R5LLVFUU.js +1 -0
- package/dist/el-ZPFVDCWA.js +1 -0
- package/dist/es-7YASJP32.js +1 -0
- package/dist/et-J4TV6KQL.js +1 -0
- package/dist/fa-4TEO7UGM.js +1 -0
- package/dist/fi-GIUDDKMH.js +1 -0
- package/dist/fr-J5J2XJLA.js +1 -0
- package/dist/he-OCEHSVUJ.js +1 -0
- package/dist/hi-EK5CTBW5.js +1 -0
- package/dist/hr-SLDTQOYC.js +1 -0
- package/dist/hu-2QNE77NO.js +1 -0
- package/dist/id-LGDAFQJK.js +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +8 -16
- package/dist/index.d.ts +8 -16
- package/dist/index.js +1 -1
- package/dist/it-DT4Y3IYB.js +1 -0
- package/dist/ja-D5EY2XCQ.js +1 -0
- package/dist/ko-DD2NV45Q.js +1 -0
- package/dist/ku-KZCMVLBE.js +1 -0
- package/dist/localeLoaders-GGAKX22E.js +1 -0
- package/dist/lt-QWGTJ47Y.js +1 -0
- package/dist/lv-LYAIG3VK.js +1 -0
- package/dist/ms-XTF4KNGD.js +1 -0
- package/dist/nl-QEXY6XHS.js +1 -0
- package/dist/no-HCOXN2CN.js +1 -0
- package/dist/pl-BWY53TSD.js +1 -0
- package/dist/pt-2UJUBCPL.js +1 -0
- package/dist/ro-GGXOLTED.js +1 -0
- package/dist/ru-ZTFK3WCU.js +1 -0
- package/dist/sk-KU543Y2U.js +1 -0
- package/dist/sl-FT576R7A.js +1 -0
- package/dist/sr-WE3J46JE.js +1 -0
- package/dist/stage-CKb7aNoH.d.cts +18 -0
- package/dist/stage-CKb7aNoH.d.ts +18 -0
- package/dist/sv-YEAOPSEB.js +1 -0
- package/dist/th-BEBRDHJA.js +1 -0
- package/dist/tr-LOAHUPSH.js +1 -0
- package/dist/uk-2GMICSHN.js +1 -0
- package/dist/vi-TC5B6AUR.js +1 -0
- package/dist/view3d/index.cjs +283 -78
- package/dist/view3d/index.d.cts +152 -78
- package/dist/view3d/index.d.ts +152 -78
- package/dist/view3d/index.js +281 -76
- package/dist/view3d/scene/scene.worker.cjs +1 -1
- package/dist/view3d/scene/scene.worker.js +1 -1
- package/dist/zh-Hans-TSZWTZQY.js +1 -0
- package/dist/zh-Hant-TLB4FZYM.js +1 -0
- package/package.json +1 -1
- package/dist/ar-3S65PDDG.js +0 -1
- package/dist/be-WJKGEBTI.js +0 -1
- package/dist/bg-TZUF36MP.js +0 -1
- package/dist/ca-WLW64J7W.js +0 -1
- package/dist/chunk-F2EXXZSZ.js +0 -1
- package/dist/chunk-F7TP67LK.js +0 -1
- package/dist/chunk-LAX7F5ML.js +0 -1
- package/dist/chunk-LFJUXTIO.js +0 -1
- package/dist/chunk-M7JA4BGP.js +0 -1
- package/dist/cs-HQXANWJA.js +0 -1
- package/dist/cy-EG5BJOG7.js +0 -1
- package/dist/da-5XEBRUEE.js +0 -1
- package/dist/de-SCVAU32D.js +0 -1
- package/dist/el-KBW7YAF5.js +0 -1
- package/dist/es-IFLC65KX.js +0 -1
- package/dist/et-OXB22VMP.js +0 -1
- package/dist/fa-GFAZXHP6.js +0 -1
- package/dist/fi-AI67VYYH.js +0 -1
- package/dist/fr-V3RG2KYP.js +0 -1
- package/dist/he-J3I6MRUR.js +0 -1
- package/dist/hr-SA4WZ3AG.js +0 -1
- package/dist/hu-TM35NZ4U.js +0 -1
- package/dist/it-E4QYIYC4.js +0 -1
- package/dist/ja-S5M7EINH.js +0 -1
- package/dist/ku-DNZQIUUG.js +0 -1
- package/dist/localeLoaders-JTNNRDK2.js +0 -1
- package/dist/lt-ETQDX2HL.js +0 -1
- package/dist/lv-FYFIWI4F.js +0 -1
- package/dist/nl-XOG5SBZQ.js +0 -1
- package/dist/no-7UGUTFXW.js +0 -1
- package/dist/pl-5HR7DQIK.js +0 -1
- package/dist/pt-L4CCONDZ.js +0 -1
- package/dist/ro-KZVPOCZ6.js +0 -1
- package/dist/ru-CD7HYORB.js +0 -1
- package/dist/sk-AQZOHJYW.js +0 -1
- package/dist/sl-XYRITXI6.js +0 -1
- package/dist/sr-6VTXFVHT.js +0 -1
- package/dist/sv-EJWP7WJV.js +0 -1
- package/dist/tr-VKVADTIZ.js +0 -1
- package/dist/uk-QSJV3LDS.js +0 -1
- package/dist/zh-Hans-2FN4LFAW.js +0 -1
- package/dist/zh-Hant-5T2AB4FR.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Ao=Object.create;var Nt=Object.defineProperty;var _o=Object.getOwnPropertyDescriptor;var ko=Object.getOwnPropertyNames;var To=Object.getPrototypeOf,Lo=Object.prototype.hasOwnProperty;var Oo=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ko(t))!Lo.call(e,o)&&o!==n&&Nt(e,o,{get:()=>t[o],enumerable:!(r=_o(t,o))||r.enumerable});return e};var Ie=(e,t,n)=>(n=e!=null?Ao(To(e)):{},Oo(t||!e||!e.__esModule?Nt(n,"default",{value:e,enumerable:!0}):n,e));var Rs=Math.PI/180;function dt(e){let t=0,n=0;for(let o of e)t+=o.x,n+=o.y;let r=e.length||1;return{x:t/r,y:n/r}}function _e(e){return e.length?dt(e):null}function Gt(e,t){let n=1-t,r=n*n*n,o=3*n*n*t,i=3*n*t*t,s=t*t*t;return{x:r*e.start.x+o*e.control1.x+i*e.control2.x+s*e.end.x,y:r*e.start.y+o*e.control1.y+i*e.control2.y+s*e.end.y}}function jt(e,t,n=192){if(!Number.isInteger(t)||t<1)throw new Error("Path point count must be a positive integer");if(t===1)return[Gt(e,.5)];let r=Array.from({length:n+1},(m,u)=>Gt(e,u/n)),o=new Float64Array(r.length);for(let m=1;m<r.length;m+=1){let u=r[m].x-r[m-1].x,l=r[m].y-r[m-1].y;o[m]=o[m-1]+Math.hypot(u,l)}let i=o[o.length-1];if(i<=1e-9)return Array.from({length:t},()=>({...e.start}));let s=[],a=1;for(let m=0;m<t;m+=1){let u=i*m/(t-1);for(;a<o.length-1&&o[a]<u;)a+=1;let l=o[a-1],d=o[a],c=d===l?0:(u-l)/(d-l);s.push({x:r[a-1].x+(r[a].x-r[a-1].x)*c,y:r[a-1].y+(r[a].y-r[a-1].y)*c})}return s}function Ut(e,t,n){return Math.max(t,Math.min(n,e))}function Yt(e){let t=new Map,n=new Map;for(let r of e){if(r.type!=="row"||!r.segmentedRow)continue;let o=n.get(r.segmentedRow.groupId)??[];o.push(r),n.set(r.segmentedRow.groupId,o)}for(let[r,o]of n){let i=o.slice().sort((c,f)=>c.segmentedRow.componentIndex-f.segmentedRow.componentIndex),s=i[0]?.segmentedRow?.componentCount??0,a=i[0]?.segmentedRow;if(!a||!(s>=2&&i.length===s&&a?.boundaryBefore==="start"&&i.every((c,f)=>c.segmentedRow?.kind==="segmented-row-v1"&&c.segmentedRow.groupId===r&&c.segmentedRow.componentCount===s&&c.segmentedRow.componentIndex===f&&c.segmentedRow.repeatLabelOnComponents===a.repeatLabelOnComponents&&(f===0?c.segmentedRow.boundaryBefore==="start":c.segmentedRow.boundaryBefore!=="start")&&c.segmentedRow.displayLabel===a.displayLabel)))continue;let u=i.reduce((c,f)=>c+f.seatCount,0),l=0,d=0;for(let c of i)c.segmentedRow.boundaryBefore==="break"&&(l+=1),t.set(c.id,{groupId:r,adjacencyOffset:l,displayOffset:d,displayLabel:a.displayLabel,totalSeats:u,canonical:i[0],viewFromSeatUrl:a.viewFromSeatUrl,viewFromSeatMeta:a.viewFromSeatMeta,confidenceEvidence:a.confidenceEvidence}),l+=c.seatCount,d+=c.seatCount}return t}var Bo="ABCDEFGHIJKLMNOPQRSTUVWXYZ";var Fo="abcdefghijklmnopqrstuvwxyz";function Do(e,t){let n=t.length,r=e+1,o="";for(;r>0;){r-=1;let i=r%n;o=t[i]+o,r=Math.floor(r/n)}return o}function bt(e,t=!1){let n=t?Fo:Bo;return Do(Math.max(0,Math.floor(e)-1),n)}var No=[[1e3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]];function Xt(e){if(!Number.isFinite(e)||e<=0)return String(e);let t=Math.floor(e),n="";for(let[r,o]of No)for(;t>=r;)n+=o,t-=r;return n}function Go(e){let t=new Array(e);return Array.from({length:e},(n,r)=>r).sort((n,r)=>Math.abs(2*n-(e-1))-Math.abs(2*r-(e-1))||n-r).forEach((n,r)=>t[n]=r),t}function He(e,t){let n=e.seatLabelStart??1,r=e.seatNumbering?.direction??"ltr",o=e.seatNumbering?.step??1,i=e.seatNumbering?.scheme??"decimal",s=e.seatNumbering?.prefix??"",a=e.seatNumbering?.endAt,m=e.seatCount;if(i==="updown"||i==="updown-descending"){let f=Math.ceil(m/2),b=i==="updown"?t<f?n+2*t:n-1+2*(m-t):t<f?n+2*(f-1-t):n+1+2*(t-f);return`${s}${b}`}let u=i==="odd"||i==="even"?2:o,l=a!=null&&Number.isFinite(a)?a-(m-1)*u:n,d=r==="center"?Go(m)[t]:r==="rtl"?m-1-t:t,c;switch(i){case"odd":{let f=l%2===1?l:l+1;c=String(f+d*2);break}case"even":{let f=l%2===0?l:l+1;c=String(f+d*2);break}case"roman":c=Xt(l+d*o);break;case"letters-upper":c=bt(l+d*o,!1);break;case"letters-lower":c=bt(l+d*o,!0);break;default:c=String(l+d*o);break}return`${s}${c}`}function jo(e){return{...e.canonical,seatCount:e.totalSeats,label:e.displayLabel,displayLabel:e.displayLabel}}function Vt(e,t,n){return n?.label??`${e.seatLabelBase??e.label}-${He(e,t)}`}function pt(e,t,n,r){if(r?.displayLabel)return r.displayLabel;if(e.seatDisplayLabelMode==="number")return He(e,t);if(!n)return`${e.displayLabel||e.label}-${He(e,t)}`;let o=jo(n),i=n.displayOffset+t;return`${n.displayLabel}-${He(o,i)}`}var te=.02291666666666667,me=1/te,Uo=58,Yo=Uo*te;var Xo=3,Ht=0,ht=120,Vo=0,Ho=45,Ko=7,ce=1.2;function yt(e,t,n,r){return Number.isFinite(e)?Math.max(t,Math.min(n,e)):r}function zo(e){return!Number.isFinite(e)||!Number.isInteger(e)||e<0?0:e<=Ko?e:Xo}function Ke(e,t={}){let n=yt(t.floorBaseHeightM,Ht,ht,0),r=Math.min(ht,n+zo(e.elevation)*Yo),o=e.height===void 0?r:yt(e.height,Ht,ht,r),i=yt(e.rake,Vo,Ho,0);return{height:o,rake:i}}function Kt(e){let t=e.length;return t<=3?[...e]:[e[Math.floor(t*.25)],e[Math.floor(t*.5)],e[Math.floor(t*.75)]]}function ve(e,t,n){if(!e.length)return 1/0;if(e.length===1)return Math.hypot(t-e[0].x,n-e[0].y);let r=1/0;for(let o=0;o+1<e.length;o++){let i=e[o],s=e[o+1],a=s.x-i.x,m=s.y-i.y,u=a*a+m*m,l=u>1e-12?((t-i.x)*a+(n-i.y)*m)/u:0;l<0?l=0:l>1&&(l=1);let d=t-(i.x+l*a),c=n-(i.y+l*m);if(Math.abs(d)>=r||Math.abs(c)>=r)continue;let f=Math.hypot(d,c);f<r&&(r=f)}return r}function Wo(e){let t=0,n=0;for(let i of e)t+=i.x,n+=i.y;let r=e.length||1;t/=r,n/=r;let o=0;for(let i of e){let s=Math.hypot(i.x-t,i.y-n);s>o&&(o=s)}return{cx:t,cy:n,r:o}}function zt(e,t){return Math.hypot(e.cx-t.cx,e.cy-t.cy)-e.r-t.r}function gt(e,t){let n=1/0;for(let r of Kt(e)){let o=ve(t,r.x,r.y);o<n&&(n=o)}for(let r of Kt(t)){let o=ve(e,r.x,r.y);o<n&&(n=o)}return n}function Zo(e,t){if(e.length<3)return{pts:e,seatIndices:t};let n=0,r=0;for(let l of e)n+=l.x,r+=l.y;n/=e.length,r/=e.length;let o=-1,i=e[0];for(let l of e){let d=Math.hypot(l.x-n,l.y-r);d>o&&(o=d,i=l)}let s=i.x-n,a=i.y-r,m=Math.hypot(s,a);m>1e-9?(s/=m,a/=m):(s=1,a=0);let u=e.map((l,d)=>({p:l,i:d,t:(l.x-n)*s+(l.y-r)*a})).sort((l,d)=>l.t-d.t);return{pts:u.map(l=>l.p),seatIndices:u.map(l=>t[l.i])}}function xt(e){let t=e.length;if(t<3)return null;let n=0,r=0;for(let x of e)n+=x.x,r+=x.y;n/=t,r/=t;let o=0,i=0,s=0,a=0,m=0,u=0,l=0;for(let x of e){let I=x.x-n,w=x.y-r;o+=I*I,s+=w*w,i+=I*w,a+=I*I*I,m+=w*w*w,u+=I*w*w,l+=w*I*I}let d=o*s-i*i;if(Math.abs(d)<1e-9)return null;let c=(a+u)/2,f=(m+l)/2,b=(c*s-f*i)/d,p=(f*o-c*i)/d,h=b+n,y=p+r;return!Number.isFinite(h)||!Number.isFinite(y)?null:{cx:h,cy:y}}var $o=.15;function Qo(e){if(e.length<2)return null;let t=e.map(x=>{let I=0,w=0;for(let P of x.pts)I+=P.x,w+=P.y;return{x:I/x.pts.length,y:w/x.pts.length}}),n=0,r=0;for(let x of t)n+=x.x,r+=x.y;n/=t.length,r/=t.length;let o=0,i=0,s=0;for(let x of t){let I=x.x-n,w=x.y-r;o+=I*I,i+=I*w,s+=w*w}let a=o+s,m=o*s-i*i,u=a/2+Math.sqrt(Math.max(0,a*a/4-m)),l,d;Math.abs(i)>1e-12?(l=u-s,d=i):o>=s?(l=1,d=0):(l=0,d=1);let c=Math.hypot(l,d);if(!(c>1e-12))return null;l/=c,d/=c;let f=1/0,b=-1/0,p=[];for(let x of e){let I=1/0,w=-1/0;for(let P of x.pts){let g=P.x*l+P.y*d;g<I&&(I=g),g>w&&(w=g),g<f&&(f=g),g>b&&(b=g)}p.push(w-I)}let h=b-f;return h>1e-9?(p.sort((x,I)=>x-I),p[Math.min(p.length-1,Math.floor(p.length*.9))]/h<=qo?{x:l,y:d}:null):null}var qo=.35;function ze(e,t,n,r){let o=new Map;for(let g of n){let M=t[g],R=M.rowId||`__seat-${g}`,k=o.get(R);k||(k={pts:[],idx:[]},o.set(R,k)),k.pts.push({x:M.x,y:M.y}),k.idx.push(g)}if(!o.size)return{sectionId:e,rows:[],blockCount:0};let i=[];for(let[g,M]of o){let R=Zo(M.pts,M.idx),k=0;for(let L of R.pts)k+=Math.hypot(L.x-r.x,L.y-r.y);i.push({id:g,pts:R.pts,seatIndices:R.seatIndices,blockId:-1,ordinal:0,blockDepth:0,focalDistance:k/R.pts.length})}let s=i.map(g=>Wo(g.pts)),a=i.length<=256?i.length*(i.length-1)/2:0,m=a?new Float64Array(a):null;m?.fill(Number.NaN);let u=m?new Map(i.map((g,M)=>[g,M])):null,l=(g,M)=>(g>M&&([g,M]=[M,g]),g*(2*i.length-g-1)/2+(M-g-1)),d=(g,M)=>{if(!m)return gt(i[g].pts,i[M].pts);let R=l(g,M),k=m[R];if(!Number.isNaN(k))return k;let L=gt(i[g].pts,i[M].pts);return m[R]=L,L},c=(g,M)=>u?d(u.get(g),u.get(M)):gt(g.pts,M.pts),f=[];for(let g=0;g<i.length;g++){let M=1/0;for(let R=0;R<i.length;R++){if(g===R||zt(s[g],s[R])>=M)continue;let k=d(g,R);k<M&&(M=k)}Number.isFinite(M)&&f.push(M)}f.sort((g,M)=>g-M);let b=f.length?f[Math.floor(f.length/2)]:1,p=Math.max(b*1.8,1e-6),h=i.map(()=>[]);for(let g=0;g<i.length;g++)for(let M=g+1;M<i.length;M++)zt(s[g],s[M])>p||d(g,M)<=p&&(h[g].push(M),h[M].push(g));let y=0;for(let g=0;g<i.length;g++){if(i[g].blockId!==-1)continue;let M=y++,R=[g];for(i[g].blockId=M;R.length;){let k=R.pop();for(let L of h[k])i[L].blockId===-1&&(i[L].blockId=M,R.push(L))}}let x=new Map;for(let g of i){let M=x.get(g.blockId)??[];M.push(g),x.set(g.blockId,M)}let I=[];for(let g of i){if(g.pts.length<4)continue;let M=xt(g.pts);M&&(!Number.isFinite(M.cx)||!Number.isFinite(M.cy)||I.push({x:M.cx,y:M.cy}))}let w=I.length>=2?(()=>{let g=I.map(k=>k.x).sort((k,L)=>k-L),M=I.map(k=>k.y).sort((k,L)=>k-L),R=Math.floor(I.length/2);return{cx:g[R],cy:M[R]}})():null;if(w){let g=v=>Math.hypot(v.x-w.cx,v.y-w.cy),M=1/0,R=-1/0,k=[];for(let v of i){let S=1/0,T=-1/0;for(let N of v.pts){let E=g(N);E<S&&(S=E),E>T&&(T=E)}k.push(T-S),S<M&&(M=S),T>R&&(R=T)}let L=R-M;k.sort((v,S)=>v-S);let U=k[Math.min(k.length-1,Math.floor(k.length*.9))];if(L>1e-9&&U/L<=$o){let v=i.map(F=>{let j=0;for(let Y of F.pts)j+=g(Y);return{row:F,radius:j/F.pts.length}}),S=0,T=0;for(let F of v)S+=F.radius,T+=F.row.focalDistance;S/=v.length,T/=v.length;let N=0;for(let F of v)N+=(F.radius-S)*(F.row.focalDistance-T);if(N<0)for(let F of v)F.radius=-F.radius;let O=1/0;for(let F of v)F.radius<O&&(O=F.radius);v.sort((F,j)=>F.radius-j.radius);let A=-1,_=-1/0,B=L/Math.max(1,v.length)*.5,D=[];for(let F of v)F.radius-_>B&&(A++,_=F.radius),F.row.ordinal=A,F.row.blockDepth=F.radius-O,D.push(F.row);return{sectionId:e,rows:D,blockCount:y}}}let P=[];for(let[,g]of x){let M=Qo(g);if(M){let R=L=>{let U=0;for(let v of L.pts)U+=v.x*M.x+v.y*M.y;return U/L.pts.length};g.sort((L,U)=>R(L)-R(U)),g.length>=2&&g[0].focalDistance>g[g.length-1].focalDistance&&g.reverse();let k=0;for(let L=0;L<g.length;L++)L>0&&(k+=c(g[L-1],g[L])),g[L].ordinal=L,g[L].blockDepth=k,P.push(g[L])}else{let R=1/0;for(let k of g)k.focalDistance<R&&(R=k.focalDistance);g.sort((k,L)=>k.focalDistance-L.focalDistance);for(let k=0;k<g.length;k++)g[k].ordinal=k,g[k].blockDepth=Math.max(0,g[k].focalDistance-R),P.push(g[k])}}return{sectionId:e,rows:P,blockCount:y}}var Jo=/^\d{4}-\d{2}-\d{2}$/;function er(e){let t=Date.parse(e);return Number.isFinite(t)?Jo.test(e)?t+864e5:t:null}function tr(e,t=Date.now()){if(e.validUntil===void 0){if(e.status!=="approved")return!0;let r=e.assessedAt?Date.parse(e.assessedAt):Number.NaN;return Number.isFinite(r)&&(t instanceof Date?t.getTime():t)<=r+366*864e5}let n=er(e.validUntil);return n===null?!1:(t instanceof Date?t.getTime():t)<n}function nr(e,t,n){return!(e.eventConfigurationId&&e.eventConfigurationId!==t||e.eventConfigurationVersion!==void 0&&e.eventConfigurationVersion!==n)}function or(e){return e.status!=="draft"&&e.status!=="retracted"}function rr(e,t){return e.status===void 0?t===void 0:e.status!=="approved"?!0:typeof t=="string"&&typeof e.basisSha256=="string"&&e.basisSha256===t}function Wt(e,t={}){return!!e&&or(e)&&nr(e,t.activeConfigurationId,t.activeConfigurationVersion)&&rr(e,t.activeBasisSha256)&&tr(e,t.now)}var Fs=Math.PI*2;function We(e){return e==="pitch-football"||e==="rink-hockey"||e==="track-athletics"||e==="oval-cricket"}var ir=/^data:image\/(?:png|jpe?g|webp|gif|avif);base64,[a-z0-9+/]+={0,2}$/i,sr=/[\s"'<>`\\]/;function ar(e){if(typeof e!="string"||!e||e.length>2e6||e!==e.trim())return!1;if(e.startsWith("data:"))return ir.test(e);if(sr.test(e))return!1;try{let t=new URL(e);return t.protocol==="https:"&&!t.username&&!t.password}catch{return!1}}function Zt(e){let t=e.trim();return ar(t)?t:null}var Mt="seatlayer.event-configuration/1";var Re=100,cr=120,ur=2e5,lr=1e4,fr=/^[a-f0-9]{64}$/,mr=new Set(["stage","screen","barrier","camera_platform","sound_desk","rigging_truss"]);function ke(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function be(e,t){return typeof e=="string"&&e.length>=1&&e.length<=t&&e.normalize("NFKC").trim()===e}function dr(e){return typeof e=="number"&&Number.isInteger(e)&&e>0}function $t(e){return!Array.isArray(e)||e.length>ur||!e.every(t=>be(t,Re))?null:[...new Set(e)].sort()}function br(e){return!ke(e)||!be(e.chartId,Re)||!be(e.version,Re)||e.sha256!==void 0&&(typeof e.sha256!="string"||!fr.test(e.sha256))?null:{chartId:e.chartId,version:e.version,...typeof e.sha256=="string"?{sha256:e.sha256}:{}}}function St(e,t,n){return typeof e=="number"&&Number.isFinite(e)&&e>=t&&e<=n}function pr(e){return ke(e)?e.mode==="none"||e.mode==="opaque"?e.opacity===void 0?{mode:e.mode}:null:e.mode==="partial"&&St(e.opacity,.01,.99)?{mode:"partial",opacity:e.opacity}:null:null}function hr(e,t){if(e===void 0)return;if(!Array.isArray(e)||e.length>lr)return null;let n=new Set(t),r=new Set,o=new Set,i=0,s=[];for(let a of e){if(!ke(a)||!be(a.id,Re)||!be(a.objectId,Re)||!n.has(a.objectId)||!mr.has(String(a.kind))||!St(a.heightM,.05,50)||a.baseElevationM!==void 0&&!St(a.baseElevationM,-10,100))return null;let m=pr(a.occlusion);if(!m||r.has(a.id)||o.has(a.objectId))return null;let u=a.contentImageUrl===void 0?void 0:typeof a.contentImageUrl=="string"?Zt(a.contentImageUrl):null;if(a.contentImageUrl!==void 0&&(!u||a.kind!=="screen"||++i>1))return null;r.add(a.id),o.add(a.objectId),s.push({id:a.id,objectId:a.objectId,kind:a.kind,heightM:a.heightM,...a.baseElevationM!==void 0?{baseElevationM:a.baseElevationM}:{},occlusion:m,...u?{contentImageUrl:u}:{}})}return s.sort((a,m)=>a.id.localeCompare(m.id))}function yr(e){let t=[];if(!ke(e))return{issues:[{code:"invalid_export",path:"configuration",message:"Configuration must be an object"}]};e.schema!==Mt&&t.push({code:"unsupported_schema",path:"configuration.schema",message:`Configuration schema must be ${Mt}`}),be(e.id,Re)||t.push({code:"invalid_id",path:"configuration.id",message:"Configuration id must contain 1 to 100 normalized characters"}),be(e.label,cr)||t.push({code:"invalid_label",path:"configuration.label",message:"Configuration label must contain 1 to 120 normalized characters"}),dr(e.version)||t.push({code:"invalid_version",path:"configuration.version",message:"Configuration version must be a positive integer"});let n=br(e.baseVenue);n||t.push({code:"invalid_base_venue",path:"configuration.baseVenue",message:"Base venue must identify one normalized chart id and exact version"});let r=ke(e.overlay)?e.overlay:null,o=$t(r?.objectIds),i=$t(r?.productionKillSeatIds),s=o?hr(r?.productionElements,o):null;return(!r||!o||!i)&&t.push({code:"invalid_overlay",path:"configuration.overlay",message:"Overlay ids must be bounded arrays of normalized stable ids"}),s===null&&t.push({code:"invalid_production_element",path:"configuration.overlay.productionElements",message:"Production elements must be unique, bounded semantics over referenced base-venue objects"}),t.length||!n||!o||!i||s===null?{issues:t}:{issues:t,value:{schema:Mt,id:e.id,label:e.label,version:e.version,baseVenue:n,overlay:{objectIds:o,productionKillSeatIds:i,...s!==void 0?{productionElements:s}:{}}}}}function Qt(e){let t=yr(e);return t.value?{ok:!0,value:t.value}:{ok:!1,issues:t.issues}}function gr(e){if((e.kind==="polygon"||e.kind==="polyline"||e.kind==="line")&&e.points&&e.points.length>=2)return e.points;if(e.x==null||e.y==null||e.width==null||e.height==null)return null;let t=e.x,n=e.y,r=e.width,o=e.height;return[{x:t,y:n},{x:t+r,y:n},{x:t+r,y:n+o},{x:t,y:n+o}]}function xr(e,t,n){let r=n*Math.PI/180,o=Math.cos(r),i=Math.sin(r),s=e.x-t.x,a=e.y-t.y;return{x:t.x+s*o-a*i,y:t.y+s*i+a*o}}function qt(e){let t=gr(e);if(!t||t.length<2)return null;let n=e.rotation??0,r=Math.abs(n)<1e-6?t:t.map(m=>xr(m,{x:t.reduce((u,l)=>u+l.x,0)/t.length,y:t.reduce((u,l)=>u+l.y,0)/t.length},n)),o=1/0,i=1/0,s=-1/0,a=-1/0;for(let m of r)o=Math.min(o,m.x),i=Math.min(i,m.y),s=Math.max(s,m.x),a=Math.max(a,m.y);return!Number.isFinite(o)||s-o<1e-6||a-i<1e-6?null:{minX:o,minY:i,maxX:s,maxY:a}}var Mr=5,Sr=3,wr=.92,Ir=1.9,vr=2,Rr=.6,Pr=1,Cr=.06;function Er(e){return e.heightM!==void 0?e.heightM:We(e.stageKind)?Cr:Pr}function Jt(e){let t=1/0,n=1/0,r=-1/0,o=-1/0,i=-1/0;for(let s of nn(e)){let a=s.baseHeightM??0;for(let m of s.objects){if(m.type!=="shape"||m.role!=="stage")continue;let u=qt(m);u&&(t=Math.min(t,u.minX),n=Math.min(n,u.minY),r=Math.max(r,u.maxX),o=Math.max(o,u.maxY),i=Math.max(i,a+Er(m)))}}return!Number.isFinite(t)||!Number.isFinite(i)?null:{minX:t,minY:n,maxX:r,maxY:o,deckTopM:i}}function Ar(e,t,n,r){let o=1/0,i=1/0,s=-1/0,a=-1/0;for(let f of e)Number.isFinite(f.eyeHeightM)&&(o=Math.min(o,f.x),s=Math.max(s,f.x),i=Math.min(i,f.y),a=Math.max(a,f.y));if(!Number.isFinite(o))return null;let m=o*t,u=i*t,l=Math.max(1,Math.ceil((s-o)*t/n)+1),d=Math.max(1,Math.ceil((a-i)*t/n)+1),c=new Float64Array(l*d).fill(-1/0);for(let f of e){if(!Number.isFinite(f.eyeHeightM))continue;let b=f.eyeHeightM-ce,p=Math.min(l-1,Math.max(0,Math.floor((f.x*t-m)/n))),y=Math.min(d-1,Math.max(0,Math.floor((f.y*t-u)/n)))*l+p,x=b+r;x>c[y]&&(c[y]=x)}return{cellM:n,minX:m,minY:u,cols:l,rows:d,top:c}}function _r(e,t,n){let r=Math.floor((t-e.minX)/e.cellM),o=Math.floor((n-e.minY)/e.cellM);return r<0||o<0||r>=e.cols||o>=e.rows?-1/0:e.top[o*e.cols+r]}function en(e,t,n={}){let r=new Map;if(!t||!e.length)return r;let o=n.metresPerChartUnit??te,i=n.cellM??Rr,s=n.chairBackM??wr,a=n.selfRowSkipM??vr,m=n.clearThreshold??.9,u=n.partialThreshold??.25,l=Math.max(1,n.columns??Mr),d=Math.max(1,n.rows??Sr),c=Ar(e,o,i,s);if(!c)return r;let f=(t.maxX-t.minX)*o,b=(t.maxY-t.minY)*o,p=f>=b,h=(t.minX+t.maxX)/2*o,y=(t.minY+t.maxY)/2*o,x=[];for(let w=0;w<l;w++){let P=(w+.5)/l-.5,g=p?h+P*f:h,M=p?y:y+P*b;for(let R=0;R<d;R++){let k=t.deckTopM+(d===1?0:R/(d-1)*Ir);x.push({x:g,y:M,z:k})}}let I=i/2;for(let w of e){if(!Number.isFinite(w.eyeHeightM))continue;let P=w.x*o,g=w.y*o,M=w.eyeHeightM,R=0,k=1/0;for(let U of x){let v=U.x-P,S=U.y-g,T=Math.hypot(v,S);if(!(T>a)){R++;continue}let N=v/T,E=S/T,O=0;for(let A=a;A<T;A+=I){let _=_r(c,P+N*A,g+E*A);if(!(!Number.isFinite(_)||_>=M)&&_>M+(U.z-M)*A/T){O=A;break}}O?k=Math.min(k,O):R++}let L=R/x.length;L>=m||r.set(w.id,{seatId:w.id,mark:L<u?"obstructedView":"restrictedView",visibleFraction:L,totalRays:x.length,atDistanceM:Number.isFinite(k)?k:0})}return r}function tn(e,t){if(!t.size)return 0;let n=0;for(let r of e){let o=t.get(r.id);if(!o)continue;let i=r.commercial;i?.restrictedView!==void 0||i?.obstructedView!==void 0||(r.commercial={...i,[o.mark]:!0},n++)}return n}function wt(e){return e?e.accessibility?.length?e.wheelchairSpaceType&&!e.accessibility.includes("wheelchair")?["wheelchair",...e.accessibility]:e.accessibility:e.wheelchairSpaceType?["wheelchair"]:e.accessible?["wheelchair"]:[]:[]}var $e=Math.PI/180;var Te=16;function It(e,t,n,r){let o=n*$e,i=Math.cos(o),s=Math.sin(o);return{x:r.x+e*i-t*s,y:r.y+e*s+t*i}}function cn(e){let{seatCount:t,seatSpacing:n,curve:r,rotation:o,origin:i}=e,s=[];if(e.path)return jt(e.path,t);if(t<=1)return t===1&&s.push({x:i.x,y:i.y}),s;if(r===0){for(let u=0;u<t;u++)s.push(It(u*n,0,o,i));return s}let a=r/(t-1)*$e,m=n/(2*Math.sin(Math.abs(a)/2));for(let u=0;u<t;u++){let l=u*a,d=m*Math.sin(l),c=-m+m*Math.cos(l);s.push(It(d,c,o,i))}return s}function un(e){let t=new Map;if(e.overrides)for(let n of e.overrides)t.set(n.index,n);return t}function kr(e,t){let n=un(e);return cn(e).map((r,o)=>{let i=n.get(o),s=wt(i),a=Vt(e,o,i),m={...e.commercial,...i?.commercial};return{index:o,x:r.x+(i?.dx??0),y:r.y+(i?.dy??0),label:a,displayLabel:pt(e,o,t,i),categoryKey:i?.categoryKey??e.categoryKey,skipped:!!i?.skip,accessible:s.length>0,accessibility:s,wheelchairSpaceType:i?.wheelchairSpaceType,commercial:Object.values(m).some(u=>u!==void 0&&u!==!1&&u!=="")?m:void 0,glyph:i?.glyph,viewUrl:i?.viewFromSeatUrl??e.viewFromSeatUrl,viewMeta:i?.viewFromSeatUrl?i.viewFromSeatMeta:e.viewFromSeatMeta,labelStyle:i?.labelStyle??e.seatLabelStyle}})}function Tr(e){let t=[];for(let n of kr(e))n.skipped||t.push({id:`${e.id}:${n.index}`,label:n.label,displayLabel:n.displayLabel===n.label?void 0:n.displayLabel,x:n.x,y:n.y,rowId:e.id,categoryKey:n.categoryKey,accessible:n.accessible||void 0,accessibility:n.accessibility.length?n.accessibility:void 0,wheelchairSpaceType:n.wheelchairSpaceType,commercial:n.commercial,glyph:n.glyph,viewUrl:n.viewUrl,viewMeta:n.viewMeta,labelStyle:n.labelStyle});return t}function Lr(e){if(e.seatCountsBySide)return{...e.seatCountsBySide};let t=e.sides&&e.sides.length?e.sides:["top","bottom"],n=["top","bottom","left","right"].filter(i=>t.includes(i)),r={top:0,bottom:0,left:0,right:0};if(!n.length)return r;let o=Math.max(0,Math.round(e.seatCount));for(let i=0;i<o;i++)r[n[i%n.length]]+=1;return r}function Or(e){let t=[],n=Math.max(0,Math.round(e.seatCount));if(n===0)return t;let r=new Map((e.overrides??[]).map(l=>[l.index,l])),o=(l,d,c,f)=>{let b=r.get(l),p=wt(b),h=b?.label??`${e.label}-${l+1}`,y=e.displayLabel??e.label;return{index:l,label:h,displayLabel:b?.displayLabel??`${y}-${l+1}`,x:d+(b?.dx??0),y:c+(b?.dy??0),categoryKey:b?.categoryKey??e.categoryKey,skipped:!!b?.skip,accessible:p.length>0,accessibility:p,wheelchairSpaceType:b?.wheelchairSpaceType,commercial:b?.commercial,glyph:b?.glyph,viewUrl:b?.viewFromSeatUrl,viewMeta:b?.viewFromSeatUrl?b.viewFromSeatMeta:void 0,labelStyle:b?.labelStyle,...f?{side:f}:{}}};if(e.shape==="round"){let l=(e.radius??40)+Te,d=e.rotation*$e,c=Math.max(0,Math.min(360,e.seatArc??360));if(c>=360||n===1){for(let h=0;h<n;h++){let y=d+h/n*2*Math.PI;t.push(o(h,e.center.x+l*Math.cos(y),e.center.y+l*Math.sin(y)))}return t}let f=c*$e,b=(2*Math.PI-f)/2,p=d+b;for(let h=0;h<n;h++){let y=p+h/(n-1)*f;t.push(o(h,e.center.x+l*Math.cos(y),e.center.y+l*Math.sin(y)))}return t}let i=e.width??80,s=e.height??50,a=Lr(e),m=["top","bottom","left","right"],u=0;for(let l of m){let d=a[l];for(let c=0;c<d;c++){let f,b;l==="top"?(f=-i/2+(c+.5)*i/d,b=-s/2-Te):l==="bottom"?(f=-i/2+(c+.5)*i/d,b=s/2+Te):l==="left"?(f=-i/2-Te,b=-s/2+(c+.5)*s/d):(f=i/2+Te,b=-s/2+(c+.5)*s/d);let p=It(f,b,e.rotation,e.center);t.push(o(u++,p.x,p.y,l))}}return t}function Br(e){return Or(e).filter(t=>!t.skipped).map(t=>({id:`${e.id}:${t.index}`,label:t.label,...t.displayLabel!==t.label?{displayLabel:t.displayLabel}:{},x:t.x,y:t.y,rowId:e.id,categoryKey:t.categoryKey,...t.accessible?{accessible:!0}:{},...t.accessibility.length?{accessibility:t.accessibility}:{},...t.wheelchairSpaceType?{wheelchairSpaceType:t.wheelchairSpaceType}:{},...t.commercial?{commercial:t.commercial}:{},...t.glyph?{glyph:t.glyph}:{},...t.viewUrl?{viewUrl:t.viewUrl}:{},...t.viewUrl&&t.viewMeta?{viewMeta:t.viewMeta}:{},...t.labelStyle?{labelStyle:t.labelStyle}:{}}))}function Fr(e){return[{id:`${e.id}:0`,label:e.label,...e.displayLabel&&e.displayLabel!==e.label?{displayLabel:e.displayLabel}:{},x:e.center.x,y:e.center.y,rowId:e.id,categoryKey:e.categoryKey,kind:"booth"}]}function on(e,t){let n=!1;for(let r=0,o=t.length-1;r<t.length;o=r++){let i=t[r].x,s=t[r].y,a=t[o].x,m=t[o].y;s>e.y!=m>e.y&&e.x<(a-i)*(e.y-s)/(m-s)+i&&(n=!n)}return n}function Dr(e,t){return t.some((n,r)=>{let o=t[(r+1)%t.length],i=(e.y-n.y)*(o.x-n.x)-(e.x-n.x)*(o.y-n.y);if(Math.abs(i)>1e-7)return!1;let s=(e.x-n.x)*(o.x-n.x)+(e.y-n.y)*(o.y-n.y),a=(o.x-n.x)**2+(o.y-n.y)**2;return s>=-1e-7&&s<=a+1e-7})}function vt(e){return Array.isArray(e)?e.filter(t=>Array.isArray(t)&&t.length>=3):[]}function pe(e,t,n){return on(e,t)&&!vt(n).some(r=>on(e,r)||Dr(e,r))}function Ze(e){if(!e.length)return{x:0,y:0};let t=0,n=0;for(let r of e)t+=r.x,n+=r.y;return{x:t/e.length,y:n/e.length}}function ln(e){switch(e.type){case"row":{let t=cn(e),n=un(e),r=0,o=0,i=0;for(let s=0;s<t.length;s++){let a=n.get(s);a?.skip||(r+=t[s].x+(a?.dx??0),o+=t[s].y+(a?.dy??0),i++)}return i?{x:r/i,y:o/i}:{x:e.origin.x,y:e.origin.y}}case"table":case"booth":return{x:e.center.x,y:e.center.y};case"gaArea":return Ze(e.points);case"section":return Ze(e.outline);case"text":return{x:e.position.x,y:e.position.y};case"shape":return e.points&&e.points.length?Ze(e.points):e.x!=null&&e.y!=null&&e.width!=null&&e.height!=null?{x:e.x+e.width/2,y:e.y+e.height/2}:{x:e.x??0,y:e.y??0};case"decorImage":return{x:e.x+e.width/2,y:e.y+e.height/2}}}function rn(e,t){return e.length===t.length&&e.every((n,r)=>n.x===t[r].x&&n.y===t[r].y)}function Nr(e,t){if(e.type!=="gaArea"||!rn(e.points,t.outline))return!1;let n=vt(e.holes),r=vt(t.holes);return n.length===r.length&&n.every((o,i)=>rn(o,r[i]))}function Gr(e,t,n=e.filter(o=>o.type==="section"),r=ln(t)){let o="referenceInventorySource"in t?t.referenceInventorySource?.logicalSectionId:void 0;return(o?n.find(s=>(s.logicalSectionId??s.id)===o&&(Nr(t,s)||pe(r,s.outline,s.holes))):void 0)??n.find(s=>pe(r,s.outline,s.holes))}function nn(e){return e.floors&&e.floors.length?e.floors:[{id:"floor-0",name:"Main",objects:e.objects,focalPoint:e.focalPoint,referenceImage:e.referenceImage,backgroundImage:e.backgroundImage}]}function sn(e,t,n,r,o,i,s,a,m){let u=[],l=e.filter(p=>p.type==="section"),d=Yt(e),c=p=>!p?.eventConfigurationId||p.eventConfigurationId===r&&(p.eventConfigurationVersion===void 0||p.eventConfigurationVersion===m),f=p=>Wt(p,{activeConfigurationId:r,activeConfigurationVersion:m,activeBasisSha256:o,now:a}),b=(p,h)=>f(p)?{...p,coverage:h}:void 0;for(let p of e){let h=[];if(p.type==="row"?h=Tr(p):p.type==="table"?h=Br(p):p.type==="booth"&&(h=Fr(p)),!h.length)continue;for(let P of h)P.viewUrl&&!c(P.viewMeta)&&(P.viewUrl=void 0,P.viewMeta=void 0);if(p.type==="row"){let P=d.get(p.id);if(P){let g=new Map((p.overrides??[]).map(M=>[M.index,M]));for(let M of h){let R=Number(M.id.slice(M.id.lastIndexOf(":")+1));if(!Number.isInteger(R))continue;M.logicalRowId=P.groupId,M.logicalSeatIndex=P.adjacencyOffset+R,g.get(R)?.displayLabel||(M.displayLabel=pt(p,R,P)),!M.viewUrl&&P.viewFromSeatUrl&&c(P.viewFromSeatMeta)&&(M.viewUrl=P.viewFromSeatUrl,M.viewMeta=P.viewFromSeatMeta);let k=g.get(R)?.confidenceEvidence;M.confidenceEvidence=b(k,"exact-seat")??b(p.confidenceEvidence,"row-representative")??b(P.confidenceEvidence,"row-representative")}}}let y=Gr(e,p,l,p.type==="row"?Ze(h):ln(p)),x=y?.viewFromSeatUrl,w=(y?.zone?t?.find(P=>P.id===y.zone):void 0)?.focalPoint??n;for(let P of h){if(!P.confidenceEvidence){let g=Number(P.id.slice(P.id.lastIndexOf(":")+1)),M=(p.type==="row"||p.type==="table")&&Number.isInteger(g)?p.overrides?.find(R=>R.index===g)?.confidenceEvidence:void 0;P.confidenceEvidence=b(M,"exact-seat")??(p.type==="row"?b(p.confidenceEvidence,"row-representative"):void 0)}P.confidenceEvidence??=b(y?.confidenceEvidence,"section-representative")??(s?b(s.evidence,s.coverage):void 0),!P.viewUrl&&x&&c(y?.viewFromSeatMeta)&&(P.viewUrl=x,P.viewMeta=y?.viewFromSeatMeta),!P.viewUrl&&i&&c(i.meta)&&(P.viewUrl=i.url,P.viewMeta=i.meta),y&&(P.sectionId=y.logicalSectionId??y.id),y?.zone&&(P.zoneId=y.zone),w&&(P.focalPoint={...w})}u.push(...h)}return u}function fn(e,t={}){if(e.floors?.length){let r=[];for(let o of e.floors){let i=o.focalPoint??e.focalPoint,s=o.viewFromSeatUrl?{url:o.viewFromSeatUrl,meta:o.viewFromSeatMeta}:e.viewFromSeatUrl?{url:e.viewFromSeatUrl,meta:e.viewFromSeatMeta}:void 0,a=o.confidenceEvidence?{evidence:o.confidenceEvidence,coverage:"floor-representative"}:e.confidenceEvidence?{evidence:e.confidenceEvidence,coverage:"venue-representative"}:void 0,m=sn(o.objects,e.zones,i,e.eventConfigurationId,e.confidenceBasisSha256,s,a,t.now,t.eventConfigurationVersion??e.eventConfigurationVersion);t.resolveEyeHeights!==!1&&an(o.objects,o.focalPoint??e.focalPoint,o.baseHeightM??0,m);for(let u of m)u.floorId=o.id;for(let u of m)r.push(u)}return r}let n=sn(e.objects,e.zones,e.focalPoint,e.eventConfigurationId,e.confidenceBasisSha256,e.viewFromSeatUrl?{url:e.viewFromSeatUrl,meta:e.viewFromSeatMeta}:void 0,e.confidenceEvidence?{evidence:e.confidenceEvidence,coverage:"venue-representative"}:void 0,t.now,t.eventConfigurationVersion??e.eventConfigurationVersion);return t.resolveEyeHeights!==!1&&an(e.objects,e.focalPoint,t.floorBaseHeightM??0,n),jr(e,n,t)}function jr(e,t,n){return!n.deriveRestrictedView||e.derivedRestrictedView===!1||n.resolveEyeHeights===!1||tn(t,en(t,Jt(e))),t}function an(e,t,n,r){let o=e.filter(d=>d.type==="section"),i=n>0||o.some(d=>d.height!==void 0||d.rake!==void 0||(d.elevation??0)>0);if(!o.length||!i||!t){for(let d of r)d.eyeHeightM=n+ce;return}let s=new Array(r.length),a=new Map;for(let d of o)a.has(d.id)||a.set(d.id,d);let m=new Map,u=new Map;for(let d=0;d<r.length;d++){let c=r[d],b=(c.sectionId?a.get(c.sectionId)??o.find(h=>h.logicalSectionId===c.sectionId&&pe({x:c.x,y:c.y},h.outline,h.holes)):void 0)??o.find(h=>pe({x:c.x,y:c.y},h.outline,h.holes))??null;if(s[d]=b,!b)continue;m.has(b.id)||m.set(b.id,Ke(b,{floorBaseHeightM:n}));let p=u.get(b.id);p?p.push(d):u.set(b.id,[d])}let l=new Array(r.length).fill(void 0);for(let[d,c]of u){let f=m.get(d);if(!f)continue;let b=f.rake>0?Math.tan(f.rake*Math.PI/180):0,p=ze(d,r,c,t);for(let h of p.rows){let y=h.blockDepth*te*b,x=f.height+y;for(let I of h.seatIndices)l[I]=x}}for(let d=0;d<r.length;d++){let c=r[d],f=s[d];if(!f){c.eyeHeightM=n+ce;continue}let b=m.get(f.id);c.eyeHeightM=(l[d]??b.height)+ce}}var Ur=/^#?([\da-f]{3}|[\da-f]{6})$/i;function Yr(e){let t=Ur.exec((e??"").trim());if(!t)return null;let n=t[1].length===3?t[1].split("").map(o=>o+o).join(""):t[1],r=parseInt(n,16);return[r>>16&255,r>>8&255,r&255]}function W(e){let t=Yr(e);return t?[t[0]/255,t[1]/255,t[2]/255]:null}function Xr(e){return .2126*e[0]+.7152*e[1]+.0722*e[2]}function ne(e,t,n){return[e[0]+(t[0]-e[0])*n,e[1]+(t[1]-e[1])*n,e[2]+(t[2]-e[2])*n]}function Le(e,t){let n=Xr(e);return ne(e,[n,n,n],t)}var Qe=["available","held","sold","selected","dimmed"];function mn(e){let t=Qe.indexOf(e);return t<0?0:t}var dn={available:[.24,.82,.52],held:[.95,.66,.22],sold:[.34,.39,.45],selected:[.24,.74,1],dimmed:[.28,.32,.37]};var Rt={ground:[.07,.085,.11],tierTop:[.24,.28,.34],tierWall:[.17,.2,.25],stageTop:[.94,.7,.38],stageWall:[.48,.33,.18],decorTop:[.22,.25,.29],decorWall:[.15,.17,.2],gaTop:[.24,.28,.33],gaWall:[.16,.19,.23],boothTop:[.3,.33,.38],boothWall:[.2,.23,.27],tableTop:[.38,.34,.29],tableWall:[.24,.21,.18]},Pt={top:[.05,.06,.08],bottom:[.1,.12,.15]};function ie(e,t){return[Math.min(1,e[0]*t),Math.min(1,e[1]*t),Math.min(1,e[2]*t)]}var Vr=.15,Hr=1.6;function bn(e){return Ut(e??1,Vr,Hr)}var Kr=.15,zr=.9,Wr=1.76;function Zr(){return{background:{top:[...Pt.top],bottom:[...Pt.bottom]},structure:Rt,seatStates:{...dn},seatScale:1,materials:{seat:null,shell:null,roughness:.78}}}function pn(e){let t=Zr();if(!e)return t;let n=W(e.background);if(n){t.background={top:ie(n,zr),bottom:ie(n,Wr)};let s={};for(let[a,m]of Object.entries(Rt))s[a]=ne(m,n,Kr);t.structure=s}let r=W(e.selectionColor)??W(e.accent);r&&(t.seatStates={...t.seatStates,selected:r});let o=e.seatScale;typeof o=="number"&&Number.isFinite(o)&&(t.seatScale=bn(o));let i=e.venue3d;if(i){let s=W(i.deck),a=W(i.fascia);s&&(t.structure={...t.structure,tierTop:s,gaTop:s}),a&&(t.structure={...t.structure,tierWall:a,gaWall:a}),t.materials.seat=W(i.seat),t.materials.shell=W(i.shell),typeof i.roughness=="number"&&Number.isFinite(i.roughness)&&(t.materials.roughness=Math.min(1,Math.max(0,i.roughness)))}return t}function hn(e,t){let n=[];for(let r of t)n.push(...e.seatStates[r]);return n}var gn=Ie(require("earcut"),1),xn=Ie(require("polygon-clipping"),1);function he(e){let t=0;for(let n=0,r=e.length;n<r;n+=1){let o=e[n],i=e[(n+1)%r];t+=o.x*i.y-i.x*o.y}return t/2}function Oe(e,t,n){let r=!1;for(let o=0,i=e.length-1;o<e.length;i=o++){let s=e[o],a=e[i];s.y>n!=a.y>n&&t<(a.x-s.x)*(n-s.y)/(a.y-s.y)+s.x&&(r=!r)}return r}var C=te,$r=.002;function Qr(e,t,n){let r=Math.hypot(t[0]-e[0],t[1]-e[1],t[2]-e[2]),o=Math.hypot(n[0]-t[0],n[1]-t[1],n[2]-t[2]),i=Math.hypot(e[0]-n[0],e[1]-n[1],e[2]-n[2]),s=Math.max(r,o,i);if(s<1e-9)return!0;let a=(r+o+i)/2;return 2*Math.sqrt(Math.max(0,a*(a-r)*(a-o)*(a-i)))/s<$r}var ye=class{constructor(t=16384){this.len=0;this.buf=new Float32Array(t)}push3(t,n,r){this.len+3>this.buf.length&&this.grow(this.len+3),this.buf[this.len++]=t,this.buf[this.len++]=n,this.buf[this.len++]=r}push1(t){this.len+1>this.buf.length&&this.grow(this.len+1),this.buf[this.len++]=t}grow(t){let n=this.buf.length*2;for(;n<t;)n*=2;let r=new Float32Array(n);r.set(this.buf.subarray(0,this.len)),this.buf=r}get length(){return this.len}toArray(){return this.buf.slice(0,this.len)}},et=class{constructor(){this.pos=new ye;this.nor=new ye;this.col=new ye;this.flr=new ye;this.mat=new ye;this.currentFloor=0;this.currentMaterial=0}setFloor(t){this.currentFloor=t}setMaterial(t){this.currentMaterial=t}tri(t,n,r,o,i,s=i,a=i){Qr(t,n,r)||(this.pos.push3(t[0],t[1],t[2]),this.pos.push3(n[0],n[1],n[2]),this.pos.push3(r[0],r[1],r[2]),this.nor.push3(o[0],o[1],o[2]),this.nor.push3(o[0],o[1],o[2]),this.nor.push3(o[0],o[1],o[2]),this.col.push3(i[0],i[1],i[2]),this.col.push3(s[0],s[1],s[2]),this.col.push3(a[0],a[1],a[2]),this.flr.push1(this.currentFloor),this.flr.push1(this.currentFloor),this.flr.push1(this.currentFloor),this.mat.push1(this.currentMaterial),this.mat.push1(this.currentMaterial),this.mat.push1(this.currentMaterial))}triN(t,n,r,o,i,s,a,m=a,u=a){[...t,...n,...r].every(Number.isFinite)&&(this.pos.push3(t[0],t[1],t[2]),this.pos.push3(n[0],n[1],n[2]),this.pos.push3(r[0],r[1],r[2]),this.nor.push3(o[0],o[1],o[2]),this.nor.push3(i[0],i[1],i[2]),this.nor.push3(s[0],s[1],s[2]),this.col.push3(a[0],a[1],a[2]),this.col.push3(m[0],m[1],m[2]),this.col.push3(u[0],u[1],u[2]),this.flr.push1(this.currentFloor),this.flr.push1(this.currentFloor),this.flr.push1(this.currentFloor),this.mat.push1(this.currentMaterial),this.mat.push1(this.currentMaterial),this.mat.push1(this.currentMaterial))}get vertexCount(){return this.pos.length/3}build(){return{position:this.pos.toArray(),normal:this.nor.toArray(),color:this.col.toArray(),floor:this.flr.toArray(),material:this.mat.toArray(),count:this.pos.length/3}}};function qr(e,t,n){let r=t[0]-e[0],o=t[1]-e[1],i=t[2]-e[2],s=n[0]-e[0],a=n[1]-e[1],m=n[2]-e[2],u=o*m-i*a,l=i*s-r*m,d=r*a-o*s,c=Math.hypot(u,l,d)||1;return u/=c,l/=c,d/=c,[u,l,d]}function Jr(e,t){let n=[...e],r=[];for(let s of e)r.push(s.x,s.y);let o=[];if(t){for(let s of t)if(!(s.length<3)){o.push(n.length);for(let a of s)n.push(a),r.push(a.x,a.y)}}let i=(0,gn.default)(r,o.length?o:void 0,2);return{pts:n,tris:i}}function Ct(e){return he(e)<0?[...e].reverse():e}var ei=3;function ti(e,t,n,r){let o=r(e),i=r(t),s=r(n),a=(f,b,p,h)=>Math.abs(r({x:(f.x+b.x)/2,y:(f.y+b.y)/2})-(p+h)/2),m=(e.x+t.x+n.x)/3,u=(e.y+t.y+n.y)/3,l=(o+i+s)/3,d=Math.max(a(e,t,o,i),a(t,n,i,s),a(n,e,s,o),Math.abs(r({x:m,y:u})-l)),c=(f,b,p)=>{let h=Math.abs(r({x:(f+m)/2,y:(b+u)/2})-(p+l)/2);h>d&&(d=h)};return c((e.x+t.x)/2,(e.y+t.y)/2,(o+i)/2),c((t.x+n.x)/2,(t.y+n.y)/2,(i+s)/2),c((n.x+e.x)/2,(n.y+e.y)/2,(s+o)/2),d}function Be(e,t,n,r,o){if(o<=0)return ti(e,t,n,r);let i={x:(e.x+t.x)/2,y:(e.y+t.y)/2},s={x:(t.x+n.x)/2,y:(t.y+n.y)/2},a={x:(n.x+e.x)/2,y:(n.y+e.y)/2};return Math.max(Be(e,i,a,r,o-1),Be(i,t,s,r,o-1),Be(a,s,n,r,o-1),Be(i,s,a,r,o-1))}function Fe(e,t,n,r,o,i,s,a){if(s>0){let c={x:(t.x+n.x)/2,y:(t.y+n.y)/2},f={x:(n.x+r.x)/2,y:(n.y+r.y)/2},b={x:(r.x+t.x)/2,y:(r.y+t.y)/2};Fe(e,t,c,b,o,i,s-1,a),Fe(e,c,n,f,o,i,s-1,a),Fe(e,b,f,r,o,i,s-1,a),Fe(e,c,f,b,o,i,s-1,a);return}let m=[t.x*C,o(t),t.y*C],u=[n.x*C,o(n),n.y*C],l=[r.x*C,o(r),r.y*C];if(a){e.triN(m,u,l,a(t),a(n),a(r),i);return}let d=qr(m,u,l);d[1]<0&&(d=[-d[0],-d[1],-d[2]]),e.tri(m,u,l,d,i)}var ni=8;function yn(e,t,n){if(!Number.isFinite(n))return e;let r=[],o=(i,s,a,m,u)=>{if(u>0){let l={x:(i.x+s.x)/2,y:(i.y+s.y)/2},d=t(l);if(Math.abs(d-(a+m)/2)>n){o(i,l,a,d,u-1),o(l,s,d,m,u-1);return}}r.push(i)};for(let i=0;i<e.length;i++){let s=e[i],a=e[(i+1)%e.length];o(s,a,t(s),t(a),ni)}return r}function qe(e,t){if(e.length<3)return e;let n=[];for(let o of e){let i=n[n.length-1];i&&Math.hypot(o.x-i.x,o.y-i.y)<t||n.push(o)}for(;n.length>2&&Math.hypot(n[0].x-n[n.length-1].x,n[0].y-n[n.length-1].y)<t;)n.pop();if(n.length<3)return e;let r=[];for(let o=0;o<n.length;o++){let i=r.length?r[r.length-1]:n[(o-1+n.length)%n.length],s=n[o],a=n[(o+1)%n.length],m=a.x-i.x,u=a.y-i.y,l=Math.hypot(m,u);l>t&&Math.abs((s.x-i.x)*u-(s.y-i.y)*m)/l<t||r.push(s)}return r.length>=3?r:n}var Je=.001*me*.1;function J(e,t,n,r,o,i,s,a,m=1/0,u){if(!t||t.length<3||(m===void 0&&(m=1/0),Math.abs(he(t))<1e-4))return;let l=qe(yn(qe(Ct(t),Je),r,m),Je),d=n?.map(g=>qe(yn(qe(Ct(g),Je),r,m),Je)).filter(g=>g.length>=3&&Math.abs(he(g))>=1e-4),{pts:c,tris:f}=Jr(l,d),b=[i[0]*a.top,i[1]*a.top,i[2]*a.top],p=[i[0]*a.bottomCap,i[1]*a.bottomCap,i[2]*a.bottomCap],h=[s[0]*a.top,s[1]*a.top,s[2]*a.top],y=[s[0]*a.wallBottom,s[1]*a.wallBottom,s[2]*a.wallBottom],x=0;if(Number.isFinite(m))for(;x<ei;x++){let g=0;for(let M=0;M<f.length;M+=3){let R=Be(c[f[M]],c[f[M+1]],c[f[M+2]],r,x);R>g&&(g=R)}if(g<=m)break}for(let g=0;g<f.length;g+=3){let M=c[f[g]],R=c[f[g+1]],k=c[f[g+2]];Fe(e,M,R,k,r,b,x,u);let L=[M.x*C,o,M.y*C],U=[R.x*C,o,R.y*C],v=[k.x*C,o,k.y*C];e.tri(L,v,U,[0,-1,0],p)}let I=g=>{if(x<=0)return g;let M=1<<x,R=[];for(let k=0;k<g.length;k++){let L=g[k],U=g[(k+1)%g.length];for(let v=0;v<M;v++){let S=v/M;R.push({x:L.x+(U.x-L.x)*S,y:L.y+(U.y-L.y)*S})}}return R},w=dt(l),P=[{ring:I(l),flip:!1}];if(d)for(let g of d)g.length>=3&&P.push({ring:I(g),flip:!0});for(let{ring:g,flip:M}of P)for(let R=0;R<g.length;R++){let k=g[R],L=g[(R+1)%g.length],U=(L.x-k.x)*C,S=(L.y-k.y)*C,T=-U,N=Math.hypot(S,T)||1;S/=N,T/=N;let E=(k.x+L.x)/2-w.x,O=(k.y+L.y)/2-w.y,A=S*E+T*O;M&&(A=-A),A<0&&(S=-S,T=-T);let _=[S,0,T],B=[k.x*C,r(k),k.y*C],D=[L.x*C,r(L),L.y*C],F=[k.x*C,o,k.y*C],j=[L.x*C,o,L.y*C];e.tri(B,D,j,_,h,h,y),e.tri(B,j,F,_,h,y,y)}}function Mn(e){let t=0;for(let m of e)t+=m.count;let n=new Float32Array(t*3),r=new Float32Array(t*3),o=new Float32Array(t*3),i=new Float32Array(t),s=new Float32Array(t),a=0;for(let m of e)n.set(m.position,a*3),r.set(m.normal,a*3),o.set(m.color,a*3),i.set(m.floor,a),s.set(m.material,a),a+=m.count;return{position:n,normal:r,color:o,floor:i,material:s,count:t}}function tt(e,t,n=2.5){if(t<=0||e.length<3)return e;let r=Ct(e),o=r.length,i=[];for(let a=0;a<o;a++){let m=r[a],u=r[(a+1)%o],l=u.x-m.x,d=u.y-m.y,c=Math.hypot(l,d)||1;i.push({x:d/c,y:-l/c})}let s=[];for(let a=0;a<o;a++){let m=r[a],u=i[(a-1+o)%o],l=i[a],d=u.x+l.x,c=u.y+l.y,f=Math.hypot(d,c),b=()=>{s.push([m.x+u.x*t,m.y+u.y*t]),s.push([m.x+l.x*t,m.y+l.y*t])};if(f<1e-9){b();continue}d/=f,c/=f;let p=d*u.x+c*u.y,h=1/Math.max(p,1e-6);if(!Number.isFinite(h)||h>n){b();continue}s.push([m.x+d*t*h,m.y+c*t*h])}if(s.length<3)return e;try{let a=xn.default.union([[...s,s[0]]]),m=null,u=-1/0;for(let d of a){let c=Math.abs(he(d[0].map(([f,b])=>({x:f,y:b}))));c>u&&(u=c,m=d[0])}if(!m)return e;let l=m.map(([d,c])=>({x:d,y:c}));if(l.length>1){let d=l[0],c=l[l.length-1];Math.abs(d.x-c.x)<1e-9&&Math.abs(d.y-c.y)<1e-9&&l.pop()}return l.length>=3?l:e}catch{return e}}function nt(e,t,n,r,o=28){let i=[];for(let s=0;s<o;s++){let a=s/o*Math.PI*2;i.push({x:e+n*Math.cos(a),y:t+r*Math.sin(a)})}return i}function De(e,t,n,r){return[{x:e,y:t},{x:e+n,y:t},{x:e+n,y:t+r},{x:e,y:t+r}]}var oi=[{key:"wheelchair",label:"Wheelchair space",short:"Wheelchair",icon:"\u267F"},{key:"companion",label:"Companion seat",short:"Companion",icon:"\u{1F9D1}\u200D\u{1F91D}\u200D\u{1F9D1}"},{key:"semi-ambulatory",label:"Semi-ambulatory (limited mobility)",short:"Limited mobility",icon:"\u{1F9AF}"},{key:"designated-aisle",label:"Designated aisle / transfer seat",short:"Aisle transfer",icon:"AS"},{key:"step-free",label:"Step-free accessible seat",short:"Step-free",icon:"SF"},{key:"hearing",label:"Assistive listening",short:"Hearing",icon:"\u{1F9BB}"},{key:"cart",label:"CART live-caption view",short:"CART captions",icon:"CC"},{key:"sign-language",label:"Sign-language view",short:"Sign language",icon:"\u{1F91F}"},{key:"low-vision",label:"Blind / low-vision viewing",short:"Low vision",icon:"LV"},{key:"sensory-friendly",label:"Quiet / sensory-friendly seating",short:"Sensory-friendly",icon:"QS"},{key:"plus-size",label:"Plus-size seat",short:"Plus-size",icon:"\u{1F4BA}"},{key:"lift-armrest",label:"Lift-up armrest",short:"Lift armrest",icon:"\u2195\uFE0F"}],xa=new Map(oi.map(e=>[e.key,e]));var ri={wheelchair:"#3b82f6",companion:"#8b5cf6","semi-ambulatory":"#0ea5e9","designated-aisle":"#0284c7","step-free":"#16a34a",hearing:"#14b8a6",cart:"#7c3aed","sign-language":"#f59e0b","low-vision":"#d97706","sensory-friendly":"#6366f1","plus-size":"#ec4899","lift-armrest":"#22c55e"};function Sn(e){let t=e?.[0];return t&&ri[t]||"#3b82f6"}var ii=[{key:"obstructedView",label:"Obstructed view",short:"Obstructed",icon:"\u26D4"},{key:"restrictedView",label:"Restricted view",short:"Restricted",icon:"\u{1F441}"},{key:"premium",label:"Premium seat",short:"Premium",icon:"\u2605"}],Ma=new Map(ii.map(e=>[e.key,e]));var si=["reference-focal","bar","entrance","exit","restroom","screen","sound","concession","coat","wall","rail","suite","obstruction"],Sa=new Set(si);var In=[{key:"circle",label:"Standard seat",shortLabel:"Standard",useCase:"General assigned seating",group:"general",path:null,bounds:null,mark:null},{key:"theatre",label:"Theatre chair",shortLabel:"Theatre",useCase:"Auditoriums, arenas and stadium stands",group:"fixed",path:"M4.5 3.5 Q4.5 1.5 6.5 1.5 L17.5 1.5 Q19.5 1.5 19.5 3.5 L19.5 13 L4.5 13 Z M3.5 12 L20.5 12 Q22.5 12 22.5 14 L22.5 21 Q22.5 22.5 21 22.5 Q19.5 22.5 19.5 21 L19.5 17.5 L4.5 17.5 L4.5 21 Q4.5 22.5 3 22.5 Q1.5 22.5 1.5 21 L1.5 14 Q1.5 12 3.5 12 Z",bounds:{x:1.5,y:1.5,width:21,height:21},mark:{x:12,y:10,radius:6}},{key:"dining",label:"Dining chair",shortLabel:"Dining",useCase:"Banquets, restaurants and table seating",group:"flexible",path:"M7 1 Q6 1 6 2.5 L6.75 10.5 L5 10.5 Q4 10.5 4 12 L4 14 Q4 15 5.25 15 L6 15 L4 23 L7 23 L9.5 15 L14.5 15 L17 23 L20 23 L18 15 L18.75 15 Q20 15 20 14 L20 12 Q20 10.5 19 10.5 L17.25 10.5 L18 2.5 Q18 1 17 1 Z",bounds:{x:4,y:1,width:16,height:22},mark:{x:12,y:10,radius:4.5}},{key:"folding",label:"Folding chair",shortLabel:"Folding",useCase:"Concert floors, ceremonies and conferences",group:"flexible",path:"M6 2 Q5 2 5 3 L6 8 L18 8 L19 3 Q19 2 18 2 Z M5 9 L19 9 Q20 9 20 10.5 L19 13 L5 13 L4 10.5 Q4 9 5 9 Z M6 12 L9 12 L12 17 L15 12 L18 12 L14 19 L17 23 L14 23 L12 21 L10 23 L7 23 L10 19 Z",bounds:{x:4,y:2,width:16,height:21},mark:{x:12,y:5,radius:3}},{key:"armchair",label:"Premium armchair",shortLabel:"Armchair",useCase:"Boxes, lounges and club seating",group:"premium",path:"M3.5 4 Q3.5 1.5 6 1.5 L18 1.5 Q20.5 1.5 20.5 4 L20.5 13 L3.5 13 Z M1.5 12.5 Q1.5 10 3.25 10 Q5 10 5 12.5 L5 13.5 L19 13.5 L19 12.5 Q19 10 20.75 10 Q22.5 10 22.5 12.5 L22.5 19.5 Q22.5 22 20 22 L4 22 Q1.5 22 1.5 19.5 Z",bounds:{x:1.5,y:1.5,width:21,height:20.5},mark:{x:12,y:7.5,radius:5.5}},{key:"recliner",label:"Recliner",shortLabel:"Recliner",useCase:"Luxury cinemas and premium clubs",group:"premium",path:"M7 2 Q7 1 8.5 1 L15.5 1 Q17 1 17 2 L19 13 L5 13 Z M4 9 Q2 9 2 11.5 L2 16 Q2 18 4 18 L6 18 L6 15 L18 15 L18 18 L20 18 Q22 18 22 16 L22 11.5 Q22 9 20 9 Q18 9 18 11 L18 13 L6 13 L6 11 Q6 9 4 9 Z M7 17 L17 17 Q18 17 18.5 18.5 L19.5 22.5 L4.5 22.5 L5.5 18.5 Q6 17 7 17 Z",bounds:{x:2,y:1,width:20,height:21.5},mark:{x:12,y:8,radius:5}},{key:"stool",label:"Stool",shortLabel:"Stool",useCase:"Bars, high-tops and seating rails",group:"flexible",path:"M6 2.5 L18 2.5 Q22 2.5 22 6.5 L22 12 Q22 16 18 16 L6 16 Q2 16 2 12 L2 6.5 Q2 2.5 6 2.5 Z M6 15.5 L9.5 15.5 L7.5 22.5 L3 22.5 Z M14.5 15.5 L18 15.5 L20.5 22.5 L16 22.5 Z",bounds:{x:2,y:2.5,width:20,height:20},mark:{x:12,y:9.25,radius:6.5}},{key:"bench",label:"Bench place",shortLabel:"Bench",useCase:"Pews, bleachers and terraces",group:"fixed",path:"M2.5 0.5 L21.5 0.5 Q23 0.5 23 2 L23 5 Q23 6.5 21.5 6.5 L2.5 6.5 Q1 6.5 1 5 L1 2 Q1 0.5 2.5 0.5 Z M2 7.5 L22 7.5 Q23.5 7.5 23.5 9 L23.5 15.5 Q23.5 17 22 17 L18 17 L18 21.5 Q18 22.5 16.75 22.5 Q15.5 22.5 15.5 21.5 L15.5 17 L8.5 17 L8.5 21.5 Q8.5 22.5 7.25 22.5 Q6 22.5 6 21.5 L6 17 L2 17 Q0.5 17 0.5 15.5 L0.5 9 Q0.5 7.5 2 7.5 Z",bounds:{x:.5,y:.5,width:23,height:22},mark:{x:12,y:12.25,radius:4.75}}],vn=In.map(e=>e.key),ai=new Map(In.map(e=>[e.key,e]));function wn(e){return typeof e=="string"&&ai.has(e)}function Rn(e,t){return wn(e)?e:wn(t?.seatGlyph)?t.seatGlyph:"circle"}var ee={pedestal:0,pad:1,back:2,arm:3,footrest:4,leg:5,body:10,head:11},ci=.44,ui=.15,li=.3,fi=.24;function Pn(e){return e===void 0||!Number.isFinite(e)||e<=0?fi:Math.min(li,Math.max(ui,e*ci))}var mi=.05,Cn=.45,di=Cn+mi,bi=.92;var Pa=[{part:ee.pedestal,min:[-.3,0,-.3],max:[.3,.36,.3]},{part:ee.pad,min:[-1,.36,-.95],max:[1,Cn,1]},{part:ee.back,min:[-1,di,-1],max:[1,bi,-.72]},{part:ee.arm,min:[-1,.44,-.82],max:[-.78,.65,.78]},{part:ee.arm,min:[.78,.44,-.82],max:[1,.65,.78]},{part:ee.footrest,min:[-.9,.18,.78],max:[.9,.31,1.34]},{part:ee.leg,min:[-.82,0,-.7],max:[-.62,.37,-.48]},{part:ee.leg,min:[.62,0,-.7],max:[.82,.37,-.48]},{part:ee.leg,min:[-.82,0,.48],max:[-.62,.37,.7]},{part:ee.leg,min:[.62,0,.48],max:[.82,.37,.7]}],Ca=[{part:ee.body,min:[-.52,.39,-.08],max:[-.08,.55,.82]},{part:ee.body,min:[.08,.39,-.08],max:[.52,.55,.82]},{part:ee.body,min:[-.47,.05,.58],max:[-.13,.43,.82]},{part:ee.body,min:[.13,.05,.58],max:[.47,.43,.82]},{part:ee.head,min:[-.16,1.04,-.33],max:[.16,1.1,-.13]}];function En(e,t,n,r){let o=new Float32Array(t),i=u=>e[u*3],s=u=>e[u*3+2],a=0,m=(u,l)=>{let d=l-u;for(let c=u;c<l;c++){let[f,b]=r(c),p=f-i(c),h=b-s(c);if(d>=2){let y=Math.max(u,c-1),x=Math.min(l-1,c+1),I=i(x)-i(y),w=s(x)-s(y),P=Math.hypot(I,w);if(P>1e-6){let g=-w/P,M=I/P;g*p+M*h<0&&(g=-g,M=-M),p=g,h=M}}o[c]=p===0&&h===0?0:Math.atan2(p,h)}};for(let u=1;u<=t;u++)(u===t||n(u)!==n(a))&&(m(a,u),a=u);return o}var ot=.22;var pi=.42;function hi(e){let t=e.length,n=new Float64Array(t);if(t<2)return n.fill(1/0),n;let r=1/0,o=1/0,i=-1/0,s=-1/0;for(let b of e)b.x<r&&(r=b.x),b.y<o&&(o=b.y),b.x>i&&(i=b.x),b.y>s&&(s=b.y);let a=Math.max(i-r,1e-6),m=Math.max(s-o,1e-6),u=Math.max(Math.sqrt(a*m/t),1e-6),l=Math.max(1,Math.ceil(a/u)+1),d=Math.max(1,Math.ceil(m/u)+1),c=new Map,f=(b,p)=>{let h=Math.min(l-1,Math.max(0,Math.floor((b-r)/u)));return Math.min(d-1,Math.max(0,Math.floor((p-o)/u)))*l+h};for(let b=0;b<t;b++){let p=f(e[b].x,e[b].y),h=c.get(p);h?h.push(b):c.set(p,[b])}for(let b=0;b<t;b++){let p=e[b],h=Math.min(l-1,Math.max(0,Math.floor((p.x-r)/u))),y=Math.min(d-1,Math.max(0,Math.floor((p.y-o)/u))),x=1/0;for(let I=1;I<=4;I++){for(let w=y-I;w<=y+I;w++)if(!(w<0||w>=d))for(let P=h-I;P<=h+I;P++){if(P<0||P>=l||I>1&&Math.abs(w-y)<I&&Math.abs(P-h)<I)continue;let g=c.get(w*l+P);if(g)for(let M of g){if(M===b)continue;let R=Math.hypot(e[M].x-p.x,e[M].y-p.y);R<x&&(x=R)}}if(Number.isFinite(x)&&x<=I*u)break}n[b]=x}return n}function yi(e){let t=e.eyeHeightM;return Number.isFinite(t)?Math.max(0,t-ce):0}function An(e,t,n,r,o,i){let s=e.length,a=new Float32Array(s*3),m=new Float32Array(s),u=new Float32Array(s*3),l=new Float32Array(s),d=new Float32Array(s),c=new Float32Array(s),f=new Float32Array(s),b=new Float32Array(s*3),p=new Map,h=hi(e);for(let y=0;y<s;y++){let x=e[y],w=(n?.seatPitchU(y)??h[y])*C;l[y]=Number.isFinite(w)?Math.max(.06,Math.min(ot,w*pi)):ot,d[y]=Pn(Number.isFinite(w)?w:void 0);let P=Rn(x.glyph,{seatGlyph:i?.get(x.categoryKey)});c[y]=vn.indexOf(P),f[y]=x.wheelchairSpaceType==="no-seat"?0:1,a[y*3]=x.x*C,a[y*3+1]=n?n.seatDeckY(y):yi(x),a[y*3+2]=x.y*C,m[y]=mn(t?t(x):"available");let g=W(o?.get(x.categoryKey)??"#6e7bff")??[.43,.48,1];if(u[y*3]=g[0],u[y*3+1]=g[1],u[y*3+2]=g[2],x.accessibility?.length){let M=W(Sn(x.accessibility));M&&(b[y*3]=M[0],b[y*3+1]=M[1],b[y*3+2]=M[2])}p.set(x.id,y)}return{count:s,iPosition:a,iState:m,iCategory:u,iMaxRadius:l,iRing:b,idToIndex:p,iChairWidth:d,iGlyph:c,iPhysicalSeat:f,iFloor:r??new Float32Array(s),iYaw:new Float32Array(s)}}function gi(e){return{kind:"radial",rowCount:0,rows:[],nearestRow:()=>-1,depthAt:(t,n)=>Math.hypot(t-e.x,n-e.y),gradientAt:(t,n)=>{let r=t-e.x,o=n-e.y,i=Math.hypot(r,o);return i<1e-9?[0,0]:[r/i,o/i]}}}function xi(e,t){if(!e.length)return null;let n=0,r=0,o=0;for(let f of e)n+=f.x,r+=f.y,o+=Math.hypot(f.x-t.x,f.y-t.y);let i=e.length;n/=i,r/=i,o/=i;let s=e[0],a=-1;for(let f of e){let b=Math.hypot(f.x-n,f.y-r);b>a&&(a=b,s=f)}let m=s.x-n,u=s.y-r,l=Math.hypot(m,u);l>1e-9?(m/=l,u/=l):(m=1,u=0);let d=[...e].sort((f,b)=>(f.x-n)*m+(f.y-r)*u-((b.x-n)*m+(b.y-r)*u)),c=0;for(let f of d){let b=Math.hypot(f.x-n,f.y-r);b>c&&(c=b)}return{pts:d,cx:n,cy:r,radius:c,depth:o}}function _n(e,t,n){let r=e.pts;if(r.length===1)return Math.hypot(t-r[0].x,n-r[0].y);let o=1/0;for(let i=0;i+1<r.length;i++){let s=r[i],a=r[i+1],m=a.x-s.x,u=a.y-s.y,l=m*m+u*u,d=l>1e-12?((t-s.x)*m+(n-s.y)*u)/l:0;d<0?d=0:d>1&&(d=1);let c=Math.hypot(t-(s.x+d*m),n-(s.y+d*u));c<o&&(o=c)}return o}var rt=8;function Mi(e,t,n){let r=new Array(rt).fill(1/0),o=new Array(rt).fill(-1);for(let l=0;l<e.length;l++){let d=e[l],c=Math.hypot(t-d.cx,n-d.cy)-d.radius;for(let f=0;f<rt;f++)if(c<r[f]){for(let b=rt-1;b>f;b--)r[b]=r[b-1],o[b]=o[b-1];r[f]=c,o[f]=l;break}}let i=new Array(3).fill(1/0),s=new Array(3).fill(-1);for(let l of o){if(l<0)continue;let d=_n(e[l],t,n);for(let c=0;c<3;c++)if(d<i[c]){for(let f=2;f>c;f--)i[f]=i[f-1],s[f]=s[f-1];i[c]=d,s[c]=l;break}}if(s[0]<0)return 0;if(i[0]<1e-6)return e[s[0]].depth;let a=i[0]*2.2,m=0,u=0;for(let l=0;l<3;l++){let d=s[l];if(d<0||i[l]>a)continue;let c=1/(i[l]*i[l]);m+=c*e[d].depth,u+=c}return u>0?m/u:e[s[0]].depth}function Si(e){let t=(r,o)=>Mi(e,r,o),n=(r,o)=>{let i=1/0,s=-1;for(let a=0;a<e.length;a++){let m=e[a];if(Math.hypot(r-m.cx,o-m.cy)-m.radius>=i)continue;let u=_n(m,r,o);u<i&&(i=u,s=a)}return s};return{kind:"rows",rowCount:e.length,rows:e,nearestRow:n,depthAt:t,gradientAt:(r,o)=>{let i=(t(r+.5,o)-t(r-.5,o))/1,s=(t(r,o+.5)-t(r,o-.5))/(2*.5),a=Math.hypot(i,s);return a<1e-9?[0,0]:[i/a,s/a]}}}function kn(e,t){let n=[];for(let r of e){let o=xi(r.points,t);o&&n.push(o)}return n.length<2?gi(t):(n.sort((r,o)=>r.depth-o.depth),Si(n))}var _t=Ie(require("polygon-clipping"),1);var Bn=Ie(require("earcut"),1);var wi=.58,Tn=.01,se=ot*1.5*me,Ii=.5,vi=.6;function Ri(e,t){let n=e.length,r=[];for(let s=0;s<n;s++){let a=e[Math.max(0,s-1)],m=e[Math.min(n-1,s+1)],u=m.x-a.x,l=m.y-a.y,d=Math.hypot(u,l);if(d<1e-9){r.push([0,0]);continue}u/=d,l/=d,r.push([-l,u])}let o=0;for(let s=0;s<n;s++)o+=(e[s].x-t.x)*r[s][0]+(e[s].y-t.y)*r[s][1];return o<0?r.map(([s,a])=>[-s,-a]):r}function Pi(e,t){if(e.length<2||t<=0)return[...e];let n=[...e],r=(s,a)=>{let m=a.x-s.x,u=a.y-s.y,l=Math.hypot(m,u)||1;return{x:m/l,y:u/l}},o=r(n[1],n[0]),i=r(n[n.length-2],n[n.length-1]);return n.unshift({x:n[0].x+o.x*t,y:n[0].y+o.y*t}),n.push({x:n[n.length-1].x+i.x*t,y:n[n.length-1].y+i.y*t}),n}var Ln=Math.PI/12;function Ci(e){if(e.length<3)return[...e];let t=[...e].sort((i,s)=>i.x-s.x||i.y-s.y),n=(i,s,a)=>(s.x-i.x)*(a.y-i.y)-(s.y-i.y)*(a.x-i.x),r=i=>{let s=[];for(let a of i){for(;s.length>=2&&n(s[s.length-2],s[s.length-1],a)<=0;)s.pop();s.push(a)}return s.pop(),s},o=[...r(t),...r([...t].reverse())];return o.length>=3?o:[...e]}function Fn(e,t){if(!e.length||!(t>0))return[];let n=Ci(e),r=(a,m,u,l)=>{let d=u-m;for(;d<0;)d+=Math.PI*2;for(;d>Math.PI*2;)d-=Math.PI*2;let c=Math.max(1,Math.ceil(d/Ln)),f=t/Math.cos(d/c/2);for(let b=0;b<=c;b++){let p=m+d*b/c;l.push({x:a.x+Math.cos(p)*f,y:a.y+Math.sin(p)*f})}};if(n.length<3){let a=0,m=0;for(let f of n)a+=f.x,m+=f.y;a/=n.length||1,m/=n.length||1;let u=0;for(let f of n)u=Math.max(u,Math.hypot(f.x-a,f.y-m));let l=[],d=Math.max(3,Math.ceil(Math.PI*2/Ln)),c=(u+t)/Math.cos(Math.PI/d);for(let f=0;f<d;f++){let b=f/d*Math.PI*2;l.push({x:a+Math.cos(b)*c,y:m+Math.sin(b)*c})}return l}let o=n.length,i=[];for(let a=0;a<o;a++){let m=n[a],u=n[(a+1)%o];i.push(Math.atan2(-(u.x-m.x),u.y-m.y))}let s=[];for(let a=0;a<o;a++)r(n[a],i[(a+o-1)%o],i[a],s);return Un(s)}function Ei(e,t,n){if(e.length===1)return Math.hypot(t-e[0].x,n-e[0].y);let r=1/0;for(let o=0;o+1<e.length;o++){let i=e[o],s=e[o+1],a=s.x-i.x,m=s.y-i.y,u=a*a+m*m,l=u>1e-12?((t-i.x)*a+(n-i.y)*m)/u:0;l<0?l=0:l>1&&(l=1);let d=Math.hypot(t-(i.x+l*a),n-(i.y+l*m));d<r&&(r=d)}return r}function it(e){let t=e.map(o=>{let i=0,s=0;for(let u of o.pts)i+=u.x,s+=u.y;let a=o.pts.length||1;i/=a,s/=a;let m=0;for(let u of o.pts){let l=Math.hypot(u.x-i,u.y-s);l>m&&(m=l)}return{cx:i,cy:s,rad:m}}),n=o=>{let i=o.length;return i<=2?[...o]:[o[Math.floor(i*.25)],o[Math.floor(i*.5)],o[Math.floor(i*.75)]]},r=[];for(let o=0;o<e.length;o++){let i=n(e[o].pts),s=[],a=1/0,m=null;for(let l of i){let d=1/0;for(let c=0;c<e.length;c++){if(c===o||Math.abs(e[c].y-e[o].y)<.001)continue;let f=t[c],b=Math.hypot(l.x-f.cx,l.y-f.cy)-f.rad;if(b>=d&&b>=a)continue;let p=Ei(e[c].pts,l.x,l.y);p<d&&(d=p),e[c].depth<e[o].depth&&p<a&&(a=p,m=e[c].y)}Number.isFinite(d)&&d>0&&s.push(d)}s.sort((l,d)=>l-d);let u=s.length?s[Math.floor(s.length/2)]:1;r.push({pitch:u,belowY:m})}return r}function Dn(e,t,n,r){let o=e[t],i=o.pts.length>=2?[...o.pts]:o.pts.length===1?(()=>{let l=o.pts[0],d=l.x-r.x,c=l.y-r.y,f=Math.hypot(d,c)||1;d/=f,c/=f;let b=Math.max(n[t].pitch,.001)*.5;return[{x:l.x+c*b,y:l.y-d*b},{x:l.x-c*b,y:l.y+d*b}]})():[];if(i.length<2)return null;let s=0,a=0;for(let l=1;l<i.length;l++){let d=Math.hypot(i[l].x-i[l-1].x,i[l].y-i[l-1].y);d>1e-6&&(s+=d,a++)}let m=a>0?s/a:0,u=Pi(i,Math.max(m*vi,se));return{pts:u,nrm:Ri(u,r),front:Math.max(n[t].pitch*wi,se),back:Math.max(n[t].pitch*Ii,se)}}var Pe=1.5,Nn=.3;function Et(e,t){if(e.length<3)return e;let n=e[0],r=e[e.length-1],o=r.x-n.x,i=r.y-n.y,s=Math.hypot(o,i),a=-1,m=-1;for(let d=1;d<e.length-1;d++){let c=e[d],f=s>1e-12?Math.abs((c.x-n.x)*i-(c.y-n.y)*o)/s:Math.hypot(c.x-n.x,c.y-n.y);f>a&&(a=f,m=d)}if(a<=t||m<0)return[n,r];let u=Et(e.slice(0,m+1),t),l=Et(e.slice(m),t);return[...u.slice(0,-1),...l]}function Gn(e,t){if(e.length<4)return e;let n=Et([...e,e[0]],t);return n.pop(),n.length>=3?n:e}function jn(e,t,n){if(e.length<2)return[];let r=n??it(e),o=new Map;for(let s=0;s<e.length;s++){let a=o.get(e[s].blockId);a?a.push(s):o.set(e[s].blockId,[s])}let i=[];for(let[,s]of o){let a=[];for(let x of s){let I=e[x].patch;I&&I.length>=3?i.push({outline:[...I],holes:[],topY:e[x].y}):a.push(x)}if(!a.length)continue;a.sort((x,I)=>e[x].depth-e[I].depth);let u=a.map(x=>Dn(e,x,r,t)).filter(x=>x!==null);if(!u.length)continue;let l=(x,I)=>({x:x.pts[I].x-x.nrm[I][0]*(x.front+Pe),y:x.pts[I].y-x.nrm[I][1]*(x.front+Pe)}),d=(x,I)=>({x:x.pts[I].x+x.nrm[I][0]*(x.back+Pe),y:x.pts[I].y+x.nrm[I][1]*(x.back+Pe)}),c=u[0],f=u[u.length-1],b=[];for(let x=0;x<c.pts.length;x++)b.push(l(c,x));for(let x of u)b.push(d(x,x.pts.length-1));for(let x=f.pts.length-1;x>=0;x--)b.push(d(f,x));for(let x=u.length-1;x>=0;x--)b.push(l(u[x],0));let p=Un(b),h=1/0;for(let x of a)e[x].y<h&&(h=e[x].y);if(!Number.isFinite(h))continue;if(p.length>=3&&Math.abs(he(p))>1e-6&&u.every(x=>{let I=x.pts[Math.floor(x.pts.length/2)];return Oe(p,I.x,I.y)})){i.push({outline:Gn(p,Nn),holes:[],topY:h});continue}for(let x of Ai(u))i.push({outline:x,holes:[],topY:h})}return i}function Ai(e){let t=[];for(let n of e){let r=[],o=[],i=n.front+Pe,s=n.back+Pe;for(let m=0;m<n.pts.length;m++){let u=n.pts[m],l=n.nrm[m];r.push([u.x-l[0]*i,u.y-l[1]*i]),o.push([u.x+l[0]*s,u.y+l[1]*s])}let a=[...r,...o.reverse()];a.length<3||(a.push(a[0]),t.push([a]))}if(!t.length)return[];try{let n=_t.default.union(t[0],...t.slice(1)),r=[];for(let o of n){if(!o.length||o[0].length<4)continue;let i=o[0].map(([m,u])=>({x:m,y:u})),s=i[0],a=i[i.length-1];i.length>1&&Math.abs(s.x-a.x)<1e-9&&Math.abs(s.y-a.y)<1e-9&&i.pop(),i.length>=3&&r.push(Gn(i,Nn))}return r}catch{return[]}}function Un(e){let t=[];for(let n of e){let r=t[t.length-1];r&&Math.hypot(n.x-r.x,n.y-r.y)<1e-9||t.push(n)}for(;t.length>2&&Math.hypot(t[0].x-t[t.length-1].x,t[0].y-t[t.length-1].y)<1e-9;)t.pop();return t}var At=class{constructor(t){this.minX=1/0;this.minY=1/0;this.maxX=-1/0;this.maxY=-1/0;this.rings=t;for(let n of t)for(let r of n)r.x<this.minX&&(this.minX=r.x),r.y<this.minY&&(this.minY=r.y),r.x>this.maxX&&(this.maxX=r.x),r.y>this.maxY&&(this.maxY=r.y)}containsAll(t){for(let n of t)if(n.x<this.minX||n.x>this.maxX||n.y<this.minY||n.y>this.maxY)return!1;for(let n of this.rings){let r=!0;for(let o of t)if(!Oe(n,o.x,o.y)){r=!1;break}if(r)return!0}return!1}};function On(e,t,n,r,o,i){if(r.length<3)return;if(n.containsAll(r)){let u=[0,1,0],l=r[0];for(let d=1;d+1<r.length;d++){let c=r[d],f=r[d+1];e.tri([l.x*C,o,l.y*C],[c.x*C,o,c.y*C],[f.x*C,o,f.y*C],u,i)}return}let s=r.map(u=>[u.x,u.y]);s.push(s[0]);let a;try{a=_t.default.intersection([s],t)}catch{return}let m=[0,1,0];for(let u of a){if(!u.length||u[0].length<4)continue;let l=u[0],d=[],c=[];for(let b=0;b<l.length-1;b++)d.push(l[b][0],l[b][1]),c.push([l[b][0],l[b][1]]);if(c.length<3)continue;let f=(0,Bn.default)(d,void 0,2);for(let b=0;b<f.length;b+=3){let p=c[f[b]],h=c[f[b+1]],y=c[f[b+2]];e.tri([p[0]*C,o,p[1]*C],[h[0]*C,o,h[1]*C],[y[0]*C,o,y[1]*C],m,i)}}}function Yn(e,t,n,r,o,i,s){if(t.length<2)return;let a=s??it(t),m=[0,1,0],u=i&&i.length>=3?[[...i.map(f=>[f.x,f.y]),[i[0].x,i[0].y]]]:null,l=i&&i.length>=3?new At([[...i]]):null,d=f=>{e.setMaterial(2),f(),e.setMaterial(0)},c=f=>{e.setMaterial(3),f(),e.setMaterial(0)};for(let f=0;f<t.length;f++){let b=t[f];if(b.patch&&b.patch.length>=3){let P=[...b.patch],g=a[f].belowY??r;if(c(()=>{if(u&&l)On(e,u,l,P,b.y,o.tread);else{let M=P[0];for(let R=1;R+1<P.length;R++){let k=P[R],L=P[R+1];e.tri([M.x*C,b.y,M.y*C],[k.x*C,b.y,k.y*C],[L.x*C,b.y,L.y*C],m,o.tread)}}}),b.y>g+Tn){let M=0,R=0;for(let k of P)M+=k.x,R+=k.y;M/=P.length,R/=P.length,d(()=>{for(let k=0;k<P.length;k++){let L=P[k],U=P[(k+1)%P.length],v=U.x-L.x,S=U.y-L.y,T=Math.hypot(v,S);if(T<1e-6)continue;let N=S/T,E=-v/T;(L.x-M)*N+(L.y-R)*E<0&&(N=-N,E=-E);let O=[N,0,E],A=[L.x*C,b.y,L.y*C],_=[U.x*C,b.y,U.y*C],B=[L.x*C,g,L.y*C],D=[U.x*C,g,U.y*C];e.tri(A,_,D,O,o.riser),e.tri(A,D,B,O,o.riser)}})}continue}let p=Dn(t,f,a,n);if(!p)continue;let{pts:h,nrm:y,front:x,back:I}=p,w=a[f].belowY??r;for(let P=0;P+1<h.length;P++){let g=h[P],M=h[P+1],R=y[P],k=y[P+1];if(Math.hypot(M.x-g.x,M.y-g.y)<1e-6||R[0]===0&&R[1]===0||k[0]===0&&k[1]===0)continue;let L=[(g.x-R[0]*x)*C,b.y,(g.y-R[1]*x)*C],U=[(M.x-k[0]*x)*C,b.y,(M.y-k[1]*x)*C],v=[(g.x+R[0]*I)*C,b.y,(g.y+R[1]*I)*C],S=[(M.x+k[0]*I)*C,b.y,(M.y+k[1]*I)*C];if(c(()=>{u&&l?On(e,u,l,[{x:g.x-R[0]*x,y:g.y-R[1]*x},{x:M.x-k[0]*x,y:M.y-k[1]*x},{x:M.x+k[0]*I,y:M.y+k[1]*I},{x:g.x+R[0]*I,y:g.y+R[1]*I}],b.y,o.tread):(e.tri(L,U,S,m,o.tread),e.tri(L,S,v,m,o.tread))}),b.y>w+Tn){let T=[L[0],w,L[2]],N=[U[0],w,U[2]],E=[-R[0],0,-R[1]];d(()=>{e.tri(L,U,N,E,o.riser),e.tri(L,N,T,E,o.riser)})}}}}function Xn(e){let t=1/0,n=1/0,r=-1/0,o=-1/0,i=!1;for(let s of e)!Number.isFinite(s.x)||!Number.isFinite(s.y)||(i=!0,s.x<t&&(t=s.x),s.y<n&&(n=s.y),s.x>r&&(r=s.x),s.y>o&&(o=s.y));return i?{minX:t,minY:n,maxX:r,maxY:o}:null}function st(e,t){return e.minX<=t.maxX&&t.minX<=e.maxX&&e.minY<=t.maxY&&t.minY<=e.maxY}var kt=Ie(require("polygon-clipping"),1);function _i(e,t){let n=e.eventConfigurationIds;return!n?.length||!!t&&n.includes(t)}function Vn(e,t){return e.filter(n=>n.type!=="shape"||_i(n,t))}function Hn(e,t){let n=e.focalPoint??{x:0,y:0};return e.floors?.length?e.floors.map((r,o)=>({objects:Vn(r.objects,t),focal:{x:(r.focalPoint??n).x,y:(r.focalPoint??n).y},baseHeightM:r.baseHeightM??0,index:o})):[{objects:Vn(e.objects,t),focal:n,baseHeightM:0,index:0}]}var ki={minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};function Ce(e){return Xn(e)??ki}function Kn(e,t){let n=tt(e.outline,se),r=Ce(n),o=t.filter(s=>s!==e&&s.outline&&s.outline.length>=3&&st(r,Ce(s.outline)));if(!o.length)return[n];let i=s=>{let a=s.map(m=>[m.x,m.y]);return a.push(a[0]),a};try{let s=kt.default.difference([i(n)],...o.map(m=>[i(m.outline)])),a=[];for(let m of s){if(!m.length)continue;let u=m[0].map(([l,d])=>({x:l,y:d}));if(u.length>1){let l=u[0],d=u[u.length-1];Math.abs(l.x-d.x)<1e-9&&Math.abs(l.y-d.y)<1e-9&&u.pop()}u.length>=3&&a.push(u)}return a.length?a:[n]}catch{return[n]}}function zn(e,t){if(!t.length)return e;let n=i=>{let s=i.map(a=>[a.x,a.y]);return s.push(s[0]),s},r=t.map(i=>[n(i)]),o=[];for(let i of e){let s;try{s=kt.default.intersection([n(i.outline)],r.flat())}catch{o.push(i);continue}for(let a of s){if(!a.length)continue;let m=a[0].map(([u,l])=>({x:u,y:l}));if(m.length>1){let u=m[0],l=m[m.length-1];Math.abs(u.x-l.x)<1e-9&&Math.abs(u.y-l.y)<1e-9&&m.pop()}m.length>=3&&o.push({outline:m,holes:[],topY:i.topY})}}return o.length?o:e}var Ti=.05,Wn=.05,Li=.15,Tt=25;function Zn(e,t,n){let r=new Map,o=new Array(t.length).fill(null),i=new Float64Array(t.length),s=new Array(t.length).fill(void 0),a=new Array(t.length).fill(void 0),m=new Map,u=[],l=new Set;for(let c=0;c<e.length;c+=1){let f=e[c];for(let b of f.objects){if(b.type==="table"&&l.add(b.id),b.type!=="section"||!b.outline||b.outline.length<3)continue;let p=tt(b.outline,se);m.set(b.id,{section:b,unit:f,frontU:1/0,hasSeats:!1,rows:new Map,seatIndices:[]}),u.push({id:b.id,floorIndex:c,box:Ce(p),section:b,unit:f,outline:p})}}let d=new Map;for(let c of u){let f=d.get(c.floorIndex);f?f.push(c):d.set(c.floorIndex,[c])}for(let c=0;c<t.length;c++){let f=t[c],b=n?d.get(n[c])??[]:u,p=f.sectionId?b.find(y=>y.id===f.sectionId)??b.find(y=>y.section.logicalSectionId===f.sectionId&&pe({x:f.x,y:f.y},y.outline,y.section.holes)):void 0,h=p?[p]:b;for(let y of h){if(n&&y.floorIndex!==n[c]||!p&&(f.x<y.box.minX||f.x>y.box.maxX||f.y<y.box.minY||f.y>y.box.maxY||!pe({x:f.x,y:f.y},y.outline,y.section.holes)))continue;o[c]=y.id;let x=m.get(y.id);x.hasSeats=!0;let I=f.focalPoint??y.unit.focal,w=Math.hypot(f.x-I.x,f.y-I.y);w<x.frontU&&(x.frontU=w),x.seatIndices.push(c);let P=f.rowId||`__seat-${c}`,g=x.rows.get(P);g?g.push({x:f.x,y:f.y}):x.rows.set(P,[{x:f.x,y:f.y}]);break}}for(let[c,f]of m){let b=Ke(f.section,{floorBaseHeightM:f.unit.baseHeightM}),p=f.unit.baseHeightM,h=b.rake>0?Math.tan(b.rake*Math.PI/180):0,y=b.rake<=.01&&b.height<=p+.001,x=f.section.surfaceKind,I=x==="flat"?!0:x==="rakedRows"&&b.rake>.01?!1:y,w=f.hasSeats?ze(c,t,f.seatIndices,f.unit.focal):{sectionId:c,rows:[],blockCount:0},g=w.rows.length<2?kn([...f.rows.values()].map(A=>({points:A})),f.unit.focal):null,M=1/0;if(g){if(f.hasSeats)for(let A of f.rows.values())for(let _ of A){let B=g.depthAt(_.x,_.y);B<M&&(M=B)}if(!f.hasSeats||!Number.isFinite(M)){M=1/0;for(let A of f.section.outline){let _=g.depthAt(A.x,A.y);_<M&&(M=_)}}}let R=p+Ti,k=Math.max(R,b.height),L=A=>{let _=Math.max(0,A-M)*te,B=Math.min(_*h,Tt);return Math.max(R,b.height+B)},U=A=>{let _=Math.max(0,A)*te,B=Math.min(_*h,Tt);return Math.max(R,b.height+B)},v=I?[]:w.rows.map(A=>({pts:A.pts,y:U(A.blockDepth),depth:A.blockDepth,blockId:A.blockId,...l.has(A.id)?{patch:Fn(A.pts,se)}:{}})),S=v.length?v[0].y:k,T=v.map(A=>{let _=A.patch&&A.patch.length>=3?A.patch:A.pts,B=0,D=0;for(let Y of _)B+=Y.x,D+=Y.y;let F=_.length||1;B/=F,D/=F;let j=0;for(let Y of _){let X=Math.hypot(Y.x-B,Y.y-D);X>j&&(j=X)}return{cx:B,cy:D,rad:j}}),N=I?()=>k:v.length>=2?(A,_)=>{let B=1/0,D=S;for(let F=0;F<v.length;F++){let j=T[F];if(Math.hypot(A-j.cx,_-j.cy)-j.rad>=B)continue;let Y=v[F].patch,X=Y&&Y.length>=3?Oe(Y,A,_)?0:ve(Y,A,_):ve(v[F].pts,A,_);X<B&&(B=X,D=v[F].y)}return D}:(A,_)=>g?L(g.depthAt(A,_)):k,E=[0,1,0],O=v.length>=2||I?()=>E:(A,_)=>{if(!g)return E;let B=g.depthAt(A,_);if(B<=M)return E;let D=(B-M)*te;if(D*h>=Tt||b.height+D*h<=R)return E;let[F,j]=g.gradientAt(A,_);if(F===0&&j===0)return E;let Y=1/Math.hypot(h,1);return[-F*h*Y,Y,-j*h*Y]};if(!I)for(let A of w.rows){let _=U(A.blockDepth);for(let B of A.seatIndices)s[B]=_}for(let A of w.rows){let _=[];for(let Y=1;Y<A.pts.length;Y++){let X=Math.hypot(A.pts[Y].x-A.pts[Y-1].x,A.pts[Y].y-A.pts[Y-1].y);X>1e-6&&_.push(X)}_.sort((Y,X)=>Y-X);let B=_.length?_[Math.floor(_.length/2)]:1/0,D=1/0,F=A.pts[Math.floor(A.pts.length/2)];if(F)for(let Y of w.rows){if(Y===A||Y.blockId!==A.blockId)continue;let X=ve(Y.pts,F.x,F.y);X>1e-6&&X<D&&(D=X)}let j=Math.min(B,Math.max(D,B*.5));if(Number.isFinite(j)&&j>0)for(let Y of A.seatIndices)a[Y]=j}r.set(c,{sectionId:c,deckAt:N,normalAt:O,flat:I,bottomY:p,rowLevels:v,landingY:S})}for(let c=0;c<t.length;c++){let f=o[c],b=t[c];if(f){let h=s[c];i[c]=(h??r.get(f).deckAt(b.x,b.y))+Li;continue}let p=b.eyeHeightM;i[c]=Number.isFinite(p)?Math.max(0,p-ce):0}return{bySection:r,seatOwner:o,seatDeckY:c=>i[c],seatPitchU:c=>a[c]}}var Q={top:1,wallBottom:.5,bottomCap:.4};function ue(e,t){if(!e)return t;let n=ie(Le(e,.4),.62);return ne(t,n,.72)}function $n(e,t){let n=new Map;for(let i of e.categories??[])n.set(i.key,i.color);let r=new Map;for(let i of t){if(!i.sectionId)continue;let s=r.get(i.sectionId);s||(s=new Map,r.set(i.sectionId,s)),s.set(i.categoryKey,(s.get(i.categoryKey)??0)+1)}let o=new Map;for(let[i,s]of r){let a=0,m=0,u=0,l=0;for(let[d,c]of s){let f=W(n.get(d));f&&(a+=f[0]*c,m+=f[1]*c,u+=f[2]*c,l+=c)}l>0&&o.set(i,[a/l,m/l,u/l])}return o}function Qn(e,t){return W(e.color)??t.get(e.logicalSectionId??e.id)??null}var qn=Ie(require("polygon-clipping"),1);function Oi(e,t){return e===void 0||t===void 0?!0:Math.abs(e-t)<.001}var at=class{constructor(){this.rings=[];this.boxes=[];this.levels=[]}subtract(t,n){let r=t.map(m=>[m.x,m.y]);if(r.length<3)return[];r.push(r[0]);let o=Ce(t),i=this.rings.filter((m,u)=>st(o,this.boxes[u])&&Oi(n,this.levels[u])),s=[[r]];if(i.length)try{s=qn.default.difference([r],...i).map(u=>u.map(l=>l.map(([d,c])=>[d,c])))}catch{s=[[r]]}this.rings.push([r]),this.boxes.push(o),this.levels.push(n);let a=[];for(let m of s){if(!m.length)continue;let u=m[0].map(([l,d])=>({x:l,y:d}));if(u.length>1){let l=u[0],d=u[u.length-1];Math.abs(l.x-d.x)<1e-9&&Math.abs(l.y-d.y)<1e-9&&u.pop()}u.length>=3&&a.push(u)}return a}};function Bi(e,t){if(!t)return e;let n=1/0,r=-1/0,o=1/0,i=-1/0;for(let d of e)n=Math.min(n,d.x),r=Math.max(r,d.x),o=Math.min(o,d.y),i=Math.max(i,d.y);let s=(n+r)/2,a=(o+i)/2,m=t*Math.PI/180,u=Math.cos(m),l=Math.sin(m);return e.map(d=>{let c=d.x-s,f=d.y-a;return{x:s+c*u-f*l,y:a+c*l+f*u}})}function ge(e){let t=null;if(e.kind==="polygon"&&e.points&&e.points.length>=3&&(t=e.points),e.kind==="rect"&&e.width&&e.height&&(t=De(e.x??0,e.y??0,e.width,e.height)),e.kind==="ellipse"&&e.width&&e.height){let n=(e.x??0)+e.width/2,r=(e.y??0)+e.height/2;t=nt(n,r,e.width/2,e.height/2)}return t?Bi(t,e.rotation):null}function Ne(e){let t=e.role??"",n={stage:{kind:"stage",heightM:1},entrance:{kind:"portal",heightM:2.7},exit:{kind:"portal",heightM:2.7},screen:{kind:"solid",heightM:6},wall:{kind:"solid",heightM:2.8},rail:{kind:"solid",heightM:1.1},suite:{kind:"suite",heightM:3},obstruction:{kind:"solid",heightM:4.5},sound:{kind:"solid",heightM:1.45},restroom:{kind:"solid",heightM:2.4},bar:{kind:"solid",heightM:1.1},concession:{kind:"solid",heightM:1.1},coat:{kind:"solid",heightM:1.1},goal:{kind:"portal",heightM:1.8}},r=t==="stage"&&We(e.stageKind)?{kind:"stage",heightM:.06}:n[t]??{kind:"plate",heightM:.25};return{...r,heightM:e.heightM??r.heightM}}var Fi=.08;function Jn(e,t){let n=ge(e),r=Ne(e),o=r.heightM;if(!n||r.kind!=="plate"&&r.kind!=="stage")return o;let i=1/0,s=1/0,a=-1/0,m=-1/0;for(let l of n)i=Math.min(i,l.x),s=Math.min(s,l.y),a=Math.max(a,l.x),m=Math.max(m,l.y);let u=o;for(let l of t)a>l.minX&&i<l.maxX&&m>l.minY&&s<l.maxY&&u<=l.topOffsetM+1e-6&&(u=l.topOffsetM+Fi);return t.push({minX:i,minY:s,maxX:a,maxY:m,topOffsetM:u}),u}function de(e,t,n){return{x:e.x+(t.x-e.x)*n,y:e.y+(t.y-e.y)*n}}function eo(e){if(e.length!==4)return e;let t=Math.hypot(e[1].x-e[0].x,e[1].y-e[0].y),n=Math.hypot(e[2].x-e[1].x,e[2].y-e[1].y);return t>=n?e:[e[1],e[2],e[3],e[0]]}function Ge(e,t,n){return[de(e[0],e[1],t),de(e[0],e[1],n),de(e[3],e[2],n),de(e[3],e[2],t)]}function to(e,t,n){return[de(e[0],e[3],t),de(e[1],e[2],t),de(e[1],e[2],n),de(e[0],e[3],n)]}function le(e,t,n,r,o,i){J(e,t,void 0,()=>n,r,o,i,Q)}var Lt=2.4,Di=.75,Ni=.15;function je(e){if(e.points&&e.points.length>=3)return e.points;let{center:t,width:n,height:r,rotation:o}=e;if(!n||!r)return null;let i=(o??0)*Math.PI/180,s=Math.cos(i),a=Math.sin(i),m=n/2,u=r/2;return[[-m,-u],[m,-u],[m,u],[-m,u]].map(([l,d])=>({x:t.x+l*s-d*a,y:t.y+l*a+d*s}))}function no(e,t,n,r,o){let i=je(t);i&&J(e,i,void 0,()=>n+Lt,n,ue(r,o.boothTop),o.boothWall,Q)}function Ot(e){if(e.shape==="round"){let l=e.radius;return l?nt(e.center.x,e.center.y,l,l,24):null}let{width:t,height:n,rotation:r,center:o}=e;if(!t||!n)return null;let i=(r??0)*Math.PI/180,s=Math.cos(i),a=Math.sin(i),m=t/2,u=n/2;return[[-m,-u],[m,-u],[m,u],[-m,u]].map(([l,d])=>({x:o.x+l*s-d*a,y:o.y+l*a+d*s}))}function oo(e,t,n,r,o){let i=Ot(t);i&&J(e,i,void 0,()=>n+Di,n,ue(r,o.tableTop),o.tableWall,Q)}function ro(e,t,n,r,o,i,s,a){let m=ge(t);if(!m)return;let u=a?a.kind==="stage":t.role==="stage",l=a?a.kind==="screen":t.role==="screen",d=a?{kind:u?"stage":"solid",heightM:a.topY-a.baseY}:Ne(t),c=a?.baseY??n,f=a?.topY??n+r;if(u&&s){let x=1/0,I=-1/0,w=1/0,P=-1/0;for(let g of m)g.x<x&&(x=g.x),g.x>I&&(I=g.x),g.y<w&&(w=g.y),g.y>P&&(P=g.y);s.push({cx:(x+I)/2*C,cz:(w+P)/2*C,y:f,halfX:Math.max((I-x)/2*C,.5),halfZ:Math.max((P-w)/2*C,.5)})}let b=W(t.fill),p=u&&b?ne(o.stageTop,ie(Le(b,.18),.9),.9):ue(b,u?o.stageTop:o.decorTop),h=l?b:null,y=u?b?ne(o.stageWall,ie(b,.58),.82):o.stageWall:l?h?ne(ie(h,1.42),[.24,.46,.82],.08):[.24,.46,.82]:ue(W(t.fill),o.decorWall);if(d.kind==="portal"&&m.length===4){let x=eo(m);le(e,Ge(x,0,.16),f,c,p,y),le(e,Ge(x,.84,1),f,c,p,y),le(e,x,f,Math.max(c,f-.35),p,y);return}if(d.kind==="suite"&&m.length===4){let x=m.map((P,g)=>{let M=m[(g+1)%4],R=(P.x+M.x)/2,k=(P.y+M.y)/2;return Math.hypot(R-i.x,k-i.y)}),I=x.indexOf(Math.min(...x)),w=[0,1,2,3].map(P=>m[(I+P)%4]);le(e,Ge(w,0,.08),f,c,p,y),le(e,Ge(w,.92,1),f,c,p,y),le(e,to(w,.88,1),f,c,p,y),le(e,w,f,Math.max(c,f-.18),p,y);return}le(e,m,f,c,p,y)}function Bt(e){let{x:t,y:n,width:r,height:o}=e;if(!r||!o)return null;let i=t+r/2,s=n+o/2,a=(e.rotation??0)*Math.PI/180,m=Math.cos(a),u=Math.sin(a),l=r/2,d=o/2;return[[-l,-d],[l,-d],[l,d],[-l,d]].map(([c,f])=>({x:i+c*m-f*u,y:s+c*u+f*m}))}function Gi(e){if(!e||!e.startsWith("data:image/svg+xml"))return null;let t=e.slice(e.indexOf(",")+1);if(/;base64/i.test(e.slice(0,e.indexOf(","))))try{t=atob(t)}catch{return null}else try{t=decodeURIComponent(t)}catch{}let n=t.match(/<(?:rect|path)\b[^>]*\bfill="([^"]+)"/i);if(!n)return null;let r=n[1].trim();if(r==="none"||r==="transparent")return null;let o=r.match(/^url\(#([^)]+)\)$/);if(!o)return W(r);let i=t.match(new RegExp(`<(?:linear|radial)Gradient\\b[^>]*\\bid="${o[1]}"[^>]*>([\\s\\S]*?)</(?:linear|radial)Gradient>`,"i"));if(!i)return null;let s=[];for(let a of i[1].matchAll(/stop-color="([^"]+)"/gi)){let m=W(a[1].trim());m&&s.push(m)}return s.length?s.reduce((a,m,u)=>ne(a,m,1/(u+1)),s[0]):null}function io(e,t,n,r){if(t.layer==="foreground")return;let o=Bt(t);if(!o)return;let i=n+Ni,s=ue(Gi(t.href),r.decorTop),a=Math.max(0,Math.min(1,t.opacity??1));a<1&&(s=ne(r.ground,s,a)),J(e,o,void 0,()=>i,n,s,ne(s,r.decorWall,.5),Q)}function so(e,t,n,r,o){if(!t.points||t.points.length<3)return;let i=ue(r,o.gaTop);J(e,t.points,t.holes,()=>n+.15,n,i,o.gaWall,Q)}var ji=Math.PI/180,K=96,Ui=6,Yi=60,Xi=150,ao=.2,Vi=.35;function Hi(e,t){let n=Math.atan2(t.x-e.x,t.y-e.y)/ji;return n<0?n+360:n}function ct(e){if(!e.length)return NaN;let t=[...e].sort((n,r)=>n-r);return t[Math.floor(t.length/2)]}function ut(e,t,n=2){let r=e.length,o=new Float64Array(r);for(let i=0;i<r;i++){let s=0,a=0;for(let m=-n;m<=n;m++){let u=i+m;if(t)u=(u%r+r)%r;else if(u<0||u>=r)continue;s+=e[u],a++}o[i]=s/a}return o}function co(e,t){let n=e.filter(c=>c.rows.length>=1);if(n.length<1)return null;let r=[],o=0,i=0,s=0;for(let c of n)for(let f of c.rows){for(let b of f.pts)o+=b.x,i+=b.y,s++;if(f.pts.length>=4){let b=xt(f.pts);b&&Number.isFinite(b.cx)&&Number.isFinite(b.cy)&&r.push({x:b.cx,y:b.cy})}}if(!s)return null;let a={x:o/s,y:i/s},m=a;if(r.length>=8){let c=ct(r.map(y=>y.x)),f=ct(r.map(y=>y.y)),b=0;for(let y of n)for(let x of y.rows)for(let I of x.pts){let w=Math.hypot(I.x-a.x,I.y-a.y);w>b&&(b=w)}let p=0,h=b*.2;for(let y of n)for(let x of y.rows)for(let I of x.pts)Math.hypot(I.x-c,I.y-f)<h&&p++;Math.hypot(c-a.x,f-a.y)<=b&&p/s<.01&&(m={x:c,y:f})}let u=[];for(let c of n){let f={sectionId:c.sectionId,rMin:1/0,rMax:-1/0,samples:[]};for(let b of c.rows)for(let p of b.pts){let h=Math.hypot(p.x-m.x,p.y-m.y),y=Math.min(K-1,Math.floor(Hi(m,p)/(360/K)));f.samples.push({r:h,bin:y,levelM:b.levelM}),h<f.rMin&&(f.rMin=h),h>f.rMax&&(f.rMax=h)}f.samples.length&&u.push(f)}if(!u.length)return null;u.sort((c,f)=>c.rMin+c.rMax-(f.rMin+f.rMax));let l=[];for(let c of u){let f=!1;for(let b of l){let p=Math.min(c.rMax,b.rMax)-Math.max(c.rMin,b.rMin),h=Math.min(c.rMax-c.rMin,b.rMax-b.rMin);if(h>1e-9&&p>=Vi*h){b.members.push(c),b.rMin=Math.min(b.rMin,c.rMin),b.rMax=Math.max(b.rMax,c.rMax),f=!0;break}}f||l.push({members:[c],rMin:c.rMin,rMax:c.rMax})}let d=[];for(let c of l){let f=new Array(K).fill(null);for(let S of c.members)for(let T of S.samples){let N=f[T.bin];N||(N={samples:[]},f[T.bin]=N),N.samples.push({r:T.r,levelM:T.levelM})}let b=f.map(S=>!!S);if(!b.filter(Boolean).length)continue;let h=[],y=[];for(let S of f){if(!S)continue;let T=1/0,N=-1/0;for(let E of S.samples)E.r<T&&(T=E.r),E.r>N&&(N=E.r);h.push(T),y.push(N)}let x=ct(h),I=ct(y);if(!(x>=ao*I)||!(I>0))continue;let w=[...h].sort((S,T)=>S-T);if(!(w[Math.floor(w.length*.1)]>=ao*I))continue;let g=f.map(S=>{if(!S)return null;let T=[...S.samples].sort((F,j)=>F.r-j.r),N=T[0].r,E=T[T.length-1].r,O=T[0].levelM,A=-1/0;for(let F of T)F.levelM>A&&(A=F.levelM);let _=[];for(let F of T){let j={r:F.r,l:F.levelM};for(;_.length&&Math.abs(_[_.length-1].r-j.r)<1e-9;){if(_[_.length-1].l<=j.l){j.skip=!0;break}_.pop()}if(!j.skip){for(;_.length>=2;){let Y=_[_.length-2],X=_[_.length-1];if((X.r-Y.r)*(j.l-Y.l)-(X.l-Y.l)*(j.r-Y.r)<=0)_.pop();else break}_.push(j)}}let B=_.map(F=>F.r),D=_.map(F=>F.l);return{inner:N,outer:E,front:O,top:A,profile:{rs:B,ls:D}}}),M=b.slice();for(let S=0;S<K;S++){if(M[S])continue;let T=-1,N=-1,E=0;for(let G=1;G<=K;G++){let V=(S-G+K*2)%K;if(M[V]){T=V;break}}for(let G=1;G<=K;G++){let V=(S+G)%K;if(M[V]){N=V,E=G;break}}if(T<0||N<0)continue;let O=0;for(let G=1;G<=K;G++){let V=(S-G+K*2)%K;if(b[V]){O=G;break}}if(O-1+E>Ui)continue;let _=g[T],B=g[N],D=O/(O+E),F=_.inner+(B.inner-_.inner)*D,j=_.outer+(B.outer-_.outer)*D,Y=_.front+(B.front-_.front)*D,X=_.top+(B.top-_.top)*D;g[S]={inner:F,outer:j,front:Y,top:X,profile:{rs:[F,j],ls:[Y,X]}}}for(let S=0;S<K;S++)g[S]&&(M[S]=!0);let R=360/K,k=[],L=M.filter(Boolean).length,U=[];if(L===K)U.push({start:0,len:K});else{let S=0;for(;M[S];)S=(S+1)%K;let T=-1;for(let N=0;N<=K;N++){let E=(S+N)%K,O=N<K&&M[E];if(O&&T<0)T=E;else if(!O&&T>=0){let A=(E-T+K)%K||K;U.push({start:T,len:A}),T=-1}}}for(let S of U){if(S.len*R<Yi&&S.len<K)continue;let T=S.len===K,N=new Float64Array(S.len),E=new Float64Array(S.len),O=new Float64Array(S.len),A=new Float64Array(S.len),_=[];for(let G=0;G<S.len;G++){let V=g[(S.start+G)%K];N[G]=V.inner,E[G]=V.outer,O[G]=V.front,A[G]=V.top,_.push(V.profile??{rs:[V.inner,V.outer],ls:[V.front,V.top]})}let B=ut(N,T),D=ut(E,T),F=ut(O,T),j=ut(A,T);for(let G=0;G<S.len;G++)B[G]>N[G]&&(B[G]=N[G]),D[G]<E[G]&&(D[G]=E[G]),B[G]>D[G]-1e-6&&(B[G]=Math.max(0,D[G]-1e-6)),j[G]<F[G]&&(j[G]=F[G]);let Y={startBin:S.start,binCount:S.len,closed:T,innerR:B,outerR:D,frontLevelM:F,topLevelM:j,profiles:_},X=(G,V,H)=>{let $=_[G],Z=$.rs,z=$.ls;if(V<=Z[0]){z[0]>H&&(z[0]=H);return}if(V>=Z[Z.length-1]){z[z.length-1]>H&&(z[z.length-1]=H);return}for(let q=0;q+1<Z.length;q++)if(V<=Z[q+1]){z[q]>H&&(z[q]=H),z[q+1]>H&&(z[q+1]=H);return}};for(let G=0;G<S.len;G++){let V=f[(S.start+G)%K];if(V)for(let H of V.samples){X(G,H.r,H.levelM);let $=T?(G-1+S.len)%S.len:G-1,Z=T?(G+1)%S.len:G+1;$>=0&&X($,H.r,H.levelM),Z<S.len&&X(Z,H.r,H.levelM)}}k.push(Y)}k.reduce((S,T)=>S+T.binCount*R,0)<Xi||d.push({arcs:k,sectionIds:c.members.map(S=>S.sectionId),innerRMedian:x,outerRMedian:I})}if(!d.length)return null;if(d.sort((c,f)=>c.innerRMedian-f.innerRMedian),t){let c=d[d.length-1].outerRMedian;if(Math.hypot(t.x-m.x,t.y-m.y)>.9*c)return null}return{centre:m,binCount:K,binStepDeg:360/K,rings:d}}function uo(e,t,n,r){let o=e.binStepDeg,i=n/o-.5-t.startBin;i=(i%e.binCount+e.binCount)%e.binCount,i>t.binCount-1&&(t.closed?i=i-t.binCount<t.binCount-i?0:t.binCount-1:i=i-(t.binCount-1)<e.binCount-i?t.binCount-1:0);let s=Math.floor(i),a=t.closed?(s+1)%t.binCount:Math.min(t.binCount-1,s+1),m=i-s,u=l=>{let d=t.profiles[l],c=d.rs,f=d.ls;if(r<=c[0])return f[0];if(r>=c[c.length-1])return f[f.length-1];for(let b=0;b+1<c.length;b++)if(r<=c[b+1]){let p=c[b+1]-c[b],h=p>1e-9?(r-c[b])/p:0;return f[b]+(f[b+1]-f[b])*h}return f[f.length-1]};return u(s)*(1-m)+u(a)*m}var Ki=.25,zi=1.2,Wi=.6,Zi=.45,$i=2.3,Qi=Math.PI/180;function xe(e,t,n){let r=n*Qi;return{x:e.x+t*Math.sin(r),y:e.y+t*Math.cos(r)}}function qi(e,t){let n=t.rings[t.rings.length-1];if(!n)return!1;let r=n.outerRMedian*.85;for(let o of e){if(o.role!=="wall")continue;let i=o.points&&o.points.length>=2?o.points:o.x!==void 0&&o.y!==void 0&&o.width!==void 0&&o.height!==void 0?[{x:o.x,y:o.y},{x:o.x+o.width,y:o.y},{x:o.x+o.width,y:o.y+o.height},{x:o.x,y:o.y+o.height}]:[];if(i.length<2)continue;let s=0;for(let a of i)Math.hypot(a.x-t.centre.x,a.y-t.centre.y)>=r&&s++;if(s>=i.length/2)return!0}return!1}var Ji=24;function es(e,t,n,r,o,i,s,a){let m=n.binCount,u=Ji,l=te,d=i+.02,c=[];for(let v=0;v<m;v++){let S=(n.startBin+v+.5)*t.binStepDeg,T=new Float64Array(u+1);for(let N=0;N<=u;N++){let E=r[v]+(o[v]-r[v])*N/u;T[N]=Math.max(d,uo(t,n,S,E)-Ki)}c.push(T)}let f=[s.bandTop[0]*a.top,s.bandTop[1]*a.top,s.bandTop[2]*a.top],b=[s.bandTop[0]*a.bottomCap,s.bandTop[1]*a.bottomCap,s.bandTop[2]*a.bottomCap],p=[s.bandWall[0]*a.top,s.bandWall[1]*a.top,s.bandWall[2]*a.top],h=[s.bandWall[0]*a.wallBottom,s.bandWall[1]*a.wallBottom,s.bandWall[2]*a.wallBottom],y=(v,S)=>{let T=(n.startBin+v+.5)*t.binStepDeg,N=r[v]+(o[v]-r[v])*S/u,E=xe(t.centre,N,T);return[E.x*l,c[v][S],E.y*l]};{let v=Math.tan(12*Math.PI/180);for(let S=0;S<6;S++){let T=!1;for(let E=0;E<m;E++)for(let O=u-1;O>=0;O--)c[E][O]>c[E][O+1]&&(c[E][O]=c[E][O+1],T=!0);let N=n.closed?m:m-1;for(let E=0;E<N;E++){let O=(E+1)%m;for(let A=0;A<=u;A++){let _=c[O][A]-c[E][A];if(Math.abs(_)>1)continue;let B=r[E]+(o[E]-r[E])*A/u,D=r[O]+(o[O]-r[O])*A/u,F=xe(t.centre,B,(n.startBin+E+.5)*t.binStepDeg),j=xe(t.centre,D,(n.startBin+O+.5)*t.binStepDeg),Y=v*Math.hypot(j.x-F.x,j.y-F.y)*l;_>Y?(c[O][A]=c[E][A]+Y,T=!0):-_>Y&&(c[E][A]=c[O][A]+Y,T=!0)}}if(!T)break}}let x=1,I=(v,S)=>{for(let T=0;T<=u;T+=4)if(Math.abs(c[v][T]-c[S][T])>x)return!0;return Math.abs(c[v][u]-c[S][u])>x},w=Math.tan(38*Math.PI/180),P=v=>(o[v]-r[v])/u*l,g=(v,S)=>c[v][S+1]-c[v][S]>w*Math.max(1e-6,P(v)),M=(v,S)=>{let T=n.closed?(v-1+m)%m:Math.max(0,v-1),N=n.closed?(v+1)%m:Math.min(m-1,v+1);Math.abs(c[T][S]-c[v][S])>x&&(T=v),Math.abs(c[N][S]-c[v][S])>x&&(N=v);let E=Math.max(0,S-1),O=Math.min(u,S+1);E<S&&g(v,E)&&(E=S),O>S&&g(v,S)&&(O=S);let A=y(T,S),_=y(N,S),B=y(v,E),D=y(v,O),F=_[0]-A[0],j=_[1]-A[1],Y=_[2]-A[2],X=D[0]-B[0],G=D[1]-B[1],V=D[2]-B[2],H=j*V-Y*G,$=Y*X-F*V,Z=F*G-j*X,z=Math.hypot(H,$,Z);return z>1e-12?(H/=z,$/=z,Z/=z,$<0&&(H=-H,$=-$,Z=-Z),[H,$,Z]):[0,1,0]},R=(v,S)=>{let T=[v[0],i,v[2]],N=[S[0],i,S[2]],E=S[0]-v[0],O=S[2]-v[2],A=Math.hypot(E,O);if(!(A>1e-12))return;let _=[O/A,0,-E/A];e.tri(v,S,N,_,p,p,h),e.tri(v,N,T,_,p,h,h)},k=.05*me,L=v=>o[v]-r[v]<k,U=n.closed?m:m-1;for(let v=0;v<U;v++){let S=(v+1)%m;if(L(v)||L(S))continue;if(I(v,S)){let _=(n.startBin+v+1)*t.binStepDeg,B=(G,V)=>{let H=(r[v]+r[S])/2,$=(o[v]+o[S])/2,Z=H+($-H)*V/u,z=xe(t.centre,Z,_);return[z.x*l,c[G][V],z.y*l]};for(let G=0;G<u;G++){let V=y(v,G),H=y(v,G+1),$=B(v,G),Z=B(v,G+1),z=M(v,G),q=M(v,G+1);e.triN(V,$,Z,z,z,q,f),e.triN(V,Z,H,z,q,q,f);let Ue=y(S,G),Ye=y(S,G+1),Me=B(S,G),Ee=B(S,G+1),Se=M(S,G),we=M(S,G+1);e.triN(Me,Ue,Ye,Se,Se,we,f),e.triN(Me,Ye,Ee,Se,we,we,f);let fe=B(v,G),ae=B(v,G+1),Xe=B(S,G+1),ft=B(S,G),Ve=ae[0]-fe[0],Ae=ae[2]-fe[2],mt=Math.hypot(Ve,Ae);if(mt>1e-12){let Dt=[Ae/mt,0,-Ve/mt];e.tri(fe,ae,Xe,Dt,p),e.tri(fe,Xe,ft,Dt,p)}}let D=y(v,0),F=y(S,0),j=y(S,u),Y=y(v,u),X=G=>[G[0],i,G[2]];e.tri(X(D),X(j),X(F),[0,-1,0],b),e.tri(X(D),X(Y),X(j),[0,-1,0],b),R(D,F),R(Y,j);continue}for(let _=0;_<u;_++){let B=M(v,_),D=M(S,_),F=M(S,_+1),j=M(v,_+1);if(g(v,_)||g(S,_)){let H=(ae,Xe)=>{let ft=(n.startBin+ae+.5)*t.binStepDeg,Ve=r[ae]+(o[ae]-r[ae])*(_+.5)/u,Ae=xe(t.centre,Ve,ft);return[Ae.x*l,Xe,Ae.y*l]},$=y(v,_),Z=y(S,_),z=H(v,c[v][_]),q=H(S,c[S][_]);e.triN($,Z,q,B,D,D,f),e.triN($,q,z,B,D,B,f);let Ue=y(S,_+1),Ye=y(v,_+1),Me=H(v,c[v][_+1]),Ee=H(S,c[S][_+1]);e.triN(Me,Ee,Ue,j,F,F,f),e.triN(Me,Ue,Ye,j,F,j,f);let Se=q[0]-z[0],we=q[2]-z[2],fe=Math.hypot(Se,we);if(fe>1e-12){let ae=[-we/fe,0,Se/fe];e.tri(z,q,Ee,ae,p),e.tri(z,Ee,Me,ae,p)}continue}let Y=y(v,_),X=y(S,_),G=y(S,_+1),V=y(v,_+1);e.triN(Y,X,G,B,D,F,f),e.triN(Y,G,V,B,F,j,f)}let T=y(v,0),N=y(S,0),E=y(S,u),O=y(v,u),A=_=>[_[0],i,_[2]];e.tri(A(T),A(E),A(N),[0,-1,0],b),e.tri(A(T),A(O),A(E),[0,-1,0],b),R(T,N),R(O,E)}if(!n.closed)for(let v of[0,m-1])for(let S=0;S<u;S++)R(y(v,S),y(v,S+1))}function lo(e,t,n){let{bottomY:r,colors:o,ao:i}=n,s=new Float64Array(t.binCount).fill(-1/0);for(let l of t.rings)for(let d of l.arcs){let c=new Float64Array(d.binCount),f=new Float64Array(d.binCount);for(let p=0;p<d.binCount;p++){let h=(d.startBin+p)%t.binCount,y=Math.max(0,d.innerR[p]-se);c[p]=Math.max(y,s[h]+.001),f[p]=Math.max(c[p]+.001,d.outerR[p]+se)}let b=0;for(let p=0;p<d.binCount;p++){let h=d.topLevelM[p]-r;h>b&&(b=h)}b>=zi&&es(e,t,d,c,f,r,o,i);for(let p=0;p<d.binCount;p++){let h=(d.startBin+p)%t.binCount;f[p]>s[h]&&(s[h]=f[p])}}if(n.deriveShell===!1||qi(n.shapes,t))return;let a=t.rings[t.rings.length-1],m=Wi*me,u=Zi*me;for(let l of a.arcs){let d=[],c=[];for(let p=0;p<l.binCount;p++){let h=(l.startBin+p+.5)*t.binStepDeg,y=l.outerR[p]+se+m;d.push(xe(t.centre,y,h)),c.push(xe(t.centre,y+u,h))}let f=-1/0;for(let p=0;p<l.binCount;p++)l.topLevelM[p]>f&&(f=l.topLevelM[p]);let b=()=>f+$i;l.closed?J(e,c,[d.slice().reverse()],b,r,o.shellTop,o.shellWall,i):J(e,[...c,...d.slice().reverse()],void 0,b,r,o.shellTop,o.shellWall,i)}}function fo(e,t,n,r,o,i,s,a){if(!t.outline||t.outline.length<3)return;let m=n.baseHeightM,u=ue(r,a.tierTop);if(!o)return;let l=h=>o.deckAt(h.x,h.y),d=Kn(t,s),c=d[0]??t.outline;if(o.rowLevels.length>=2){let h=it(o.rowLevels),y=zn(jn(o.rowLevels,n.focal,h),d),x=()=>[0,1,0];for(let w of y){let P=Math.max(m,w.topY-.02);for(let g of i.subtract(w.outline,P))J(e,g,w.holes,()=>P,m,u,a.tierWall,Q,void 0,x)}y.length||J(e,c,t.holes,()=>o.landingY,m,u,a.tierWall,Q);let I={tread:[u[0]*Q.top,u[1]*Q.top,u[2]*Q.top],riser:[u[0]*.72,u[1]*.72,u[2]*.72]};for(let w of d.length?d:[c])Yn(e,o.rowLevels,n.focal,o.landingY,I,w,h);return}let f=o.flat?1/0:Wn,b=h=>o.normalAt(h.x,h.y),p=o.flat?o.landingY:void 0;for(let h of i.subtract(c,p))J(e,h,t.holes,l,m,u,a.tierWall,Q,f,b)}function ts(e,t,n){let r=new Set;for(let s of e.objects)s.type==="section"&&r.add(s.id);let o=new Map;for(let s=0;s<t.length;s++){let a=n.seatOwner[s];if(!a||!r.has(a))continue;let m=n.bySection.get(a);if(m&&m.rowLevels.length>=2)continue;let u=t[s],l=o.get(a);l||(l=new Map,o.set(a,l));let d=u.rowId||`__seat-${s}`,c=l.get(d);c||(c={pts:[],levelM:0,n:0},l.set(d,c)),c.pts.push({x:u.x,y:u.y}),c.levelM+=n.seatDeckY(s),c.n++}let i=[];for(let s of e.objects){if(s.type!=="section")continue;let a=n.bySection.get(s.id);if(a&&a.rowLevels.length>=2){let u=a.rowLevels.filter(l=>!l.patch).map(l=>({pts:l.pts,levelM:l.y}));u.length>=2&&i.push({sectionId:s.id,rows:u});continue}let m=o.get(s.id);m&&i.push({sectionId:s.id,rows:[...m.values()].map(u=>({pts:u.pts,levelM:u.levelM/u.n}))})}return i}function mo(e,t,n,r,o,i,s=!0){let a=ts(t,n,r);if(!a.length)return;let m=co(a,t.focal);m&&(e.setMaterial(0),lo(e,m,{bottomY:t.baseHeightM,colors:{bandTop:ie(o.tierTop,.8),bandWall:o.tierWall,shellTop:i??ie(o.tierWall,1.15),shellWall:i??o.tierWall},ao:Q,shapes:t.objects.filter(u=>u.type==="shape"),deriveShell:s}))}var bo=/^[\p{L}\p{N}]{1,4}$/u,ns=/^([\p{L}\p{N}]{2,})[\s\-\u2013\u2014\u00b7_./]+(.+)$/u;function po(e,t){let n=t?.trim();if(!n)return e;let r=e.toLocaleLowerCase("en-US"),o=n.toLocaleLowerCase("en-US");if(r.startsWith(`${o} `)){let s=e.slice(n.length).trim();if(bo.test(s))return s}let i=ns.exec(e);if(i){let s=i[1].toLocaleLowerCase("en-US"),a=i[2].trim();if((o.startsWith(s)||s.startsWith(o))&&bo.test(a))return a}return e}var os=6,rs=2.2,ho=.1,is=.3,ss=1.8,as=.9,cs=.55,us=6e3;function yo(e){let{doc:t,units:n,seats:r,surfaces:o,focal:i}=e,s=t.zones??[],a=[];if(s.length){let m=new Map;for(let l of n)for(let d of l.objects)d.type==="section"&&d.zone&&m.set(d.id,d.zone);let u=new Map;for(let l=0;l<r.length;l++){let d=r[l],c=o.seatOwner[l],f=d.zoneId??(c?m.get(c):void 0);if(!f)continue;let b=u.get(f);b||(b={n:0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0,sumY:0},u.set(f,b)),b.n++,d.x<b.minX&&(b.minX=d.x),d.y<b.minY&&(b.minY=d.y),d.x>b.maxX&&(b.maxX=d.x),d.y>b.maxY&&(b.maxY=d.y),b.sumY+=o.seatDeckY(l)}for(let l of s){let d=u.get(l.id),c=[];for(let[f,b]of m)b===l.id&&c.push(f);if(!d||d.n===0){a.push({id:l.id,label:l.label,color:W(l.color),sectionIds:c,seatCount:0,center:[0,0,0],radius:0,focalWorld:[(l.focalPoint??i).x*C,1.5,(l.focalPoint??i).y*C]});continue}a.push({id:l.id,label:l.label,color:W(l.color),sectionIds:c,seatCount:d.n,center:[(d.minX+d.maxX)/2*C,d.sumY/d.n,(d.minY+d.maxY)/2*C],radius:.5*Math.hypot((d.maxX-d.minX)*C,(d.maxY-d.minY)*C)||1,focalWorld:[(l.focalPoint??i).x*C,1.5,(l.focalPoint??i).y*C]})}}return a}function go(e){let{doc:t,units:n,seats:r,surfaces:o,seatData:i,hintedSeatFloor:s,zones:a,focal:m}=e,u=[],l=[],d=[];for(let c of a)c.seatCount!==0&&u.push({id:`zone:${c.id}`,kind:"zone",text:c.label,anchor:[c.center[0],c.center[1]+os,c.center[2]],color:t.zones?.find(f=>f.id===c.id)?.color});{let c=new Map,f=new Map;for(let b=0;b<r.length;b++){let p=o.seatOwner[b];if(!p)continue;let h=c.get(p);h||(h={n:0,x:0,y:0,deck:0},c.set(p,h)),h.n++,h.x+=r[b].x,h.y+=r[b].y,h.deck+=o.seatDeckY(b);let y=f.get(p);y||(y={minX:1/0,maxX:-1/0,minY:1/0,maxY:-1/0},f.set(p,y)),r[b].x<y.minX&&(y.minX=r[b].x),r[b].x>y.maxX&&(y.maxX=r[b].x),r[b].y<y.minY&&(y.minY=r[b].y),r[b].y>y.maxY&&(y.maxY=r[b].y)}for(let b of n)for(let p of b.objects){if(p.type!=="section")continue;let h=c.get(p.id);if(!h||h.n===0)continue;let y=f.get(p.id),x=[h.x/h.n*C,h.deck/h.n,h.y/h.n*C],I=p.displayLabel||p.label||p.id;l.push({id:p.id,floorIndex:b.index,label:I,seatCount:h.n,center:x,radius:Math.max(1,Math.hypot(y.maxX-y.minX,y.maxY-y.minY)*.5*C),focalWorld:[b.focal.x*C,b.baseHeightM+1.5,b.focal.y*C]});let w=t.floors?.[b.index]?.name?.trim().toLocaleLowerCase();n.length>1&&w===I.trim().toLocaleLowerCase()||u.push({id:`section:${p.id}`,kind:"section",text:I,anchor:[x[0],x[1]+rs,x[2]],floorIndex:b.index})}}{for(let p of n)for(let h of p.objects){if(h.type!=="gaArea")continue;let y=_e(h.points);if(!y)continue;let x=h.displayLabel||h.label||h.id;u.push({id:`ga:${h.id}`,kind:"ga",text:h.capacity>0?`${x} \xB7 ${h.capacity.toLocaleString()}`:x,anchor:[y.x*C,p.baseHeightM+ss,y.y*C],floorIndex:p.index})}let c=new Map;for(let p of n)for(let h of p.objects)h.type==="section"&&c.set(h.id,h.displayLabel||h.label||h.id);let f=new Map;for(let p=0;p<r.length;p++){let h=r[p],y=Math.hypot(h.x-m.x,h.y-m.y),x=f.get(h.rowId);(!x||y>x.far)&&f.set(h.rowId,{seat:h,index:p,far:y})}for(let[p,h]of f){let y=fs(h.seat.label,p,c.get(h.seat.sectionId??""));y&&u.push({id:`row:${p}`,kind:"row",text:y,anchor:[h.seat.x*C,o.seatDeckY(h.index)+as,h.seat.y*C],floorIndex:s[h.index]})}let b=new Map;for(let p=0;p<r.length;p++){let h=r[p],y=h.label?h.label.lastIndexOf("-"):-1,x=b.get(h.rowId);x||(x={n:0,x:0,y:0,z:0,minX:1/0,maxX:-1/0,minZ:1/0,maxZ:-1/0,label:y>0?h.label.slice(0,y):h.rowId,sectionId:h.sectionId},b.set(h.rowId,x));let I=p*3,w=i.iPosition[I],P=i.iPosition[I+1],g=i.iPosition[I+2];x.n++,x.x+=w,x.y+=P,x.z+=g,x.minX=Math.min(x.minX,w),x.maxX=Math.max(x.maxX,w),x.minZ=Math.min(x.minZ,g),x.maxZ=Math.max(x.maxZ,g)}for(let[p,h]of b)d.push({id:p,label:h.label,sectionId:h.sectionId,seatCount:h.n,center:[h.x/h.n,h.y/h.n,h.z/h.n],radius:Math.max(.8,Math.hypot(h.maxX-h.minX,h.maxZ-h.minZ)*.5)});if(r.length<=us)for(let p=0;p<r.length;p++){let h=r[p],y=ls(h.displayLabel||h.label);y&&u.push({id:`seat:${h.id}`,kind:"seat",text:y,anchor:[h.x*C,o.seatDeckY(p)+cs,h.y*C],floorIndex:s[p]})}}for(let c of n)for(let f of c.objects)if(f.type==="shape"&&f.role&&["entrance","exit","screen","suite","obstruction"].includes(f.role)){let b=ge(f),p=b?_e(b):null;if(!p||!f.label)continue;u.push({id:`architecture:${f.id}`,kind:"annotation",text:f.label,anchor:[p.x*C,c.baseHeightM+Ne(f).heightM+ho,p.y*C],color:f.fill,floorIndex:c.index})}else if(f.type==="text"){if(!f.text)continue;u.push({id:`text:${f.id}`,kind:"annotation",text:f.text,anchor:[f.position.x*C,c.baseHeightM+ho,f.position.y*C],color:f.color,rotation:f.rotation,floorIndex:c.index})}else if(f.type==="booth"){let b=je(f);if(!b)continue;let p=_e(b);if(!p)continue;u.push({id:`booth:${f.id}`,kind:"booth",text:f.displayLabel||f.label||f.id,anchor:[p.x*C,c.baseHeightM+Lt+is,p.y*C],floorIndex:c.index})}return{labels:u,sections:l,rows:d}}function xo(e,t){if(t.length>1)for(let n of t)e.push({id:`floor:${n.id}`,kind:"floor",text:n.label,anchor:[n.center[0],n.box.max[1]+1.2,n.center[2]],floorIndex:n.index})}function ls(e){let t=e.lastIndexOf("-");return t>=0&&t<e.length-1?e.slice(t+1):e}function fs(e,t,n){let r=e?e.lastIndexOf("-"):-1,o=r>0?e.slice(0,r):t;return o&&po(o,n)}function Mo(e){let{doc:t,units:n,seats:r,surfaces:o,solids:i,hintedSeatFloor:s,seatFloor:a}=e,m=[];{let u=n.map(()=>({minX:1/0,minY:1/0,minZ:1/0,maxX:-1/0,maxY:-1/0,maxZ:-1/0}));for(let c=0;c<i.floor.length;c+=1){let f=Math.max(0,Math.min(n.length-1,Math.round(i.floor[c]))),b=c*3,p=u[f];p.minX=Math.min(p.minX,i.position[b]),p.minY=Math.min(p.minY,i.position[b+1]),p.minZ=Math.min(p.minZ,i.position[b+2]),p.maxX=Math.max(p.maxX,i.position[b]),p.maxY=Math.max(p.maxY,i.position[b+1]),p.maxZ=Math.max(p.maxZ,i.position[b+2])}let l=new Map;for(let c=0;c<n.length;c++)for(let f of n[c].objects)f.type==="section"&&l.set(f.id,c);let d=n.map(()=>({n:0,minX:1/0,minY:1/0,minDeck:1/0,maxX:-1/0,maxY:-1/0,maxDeck:-1/0,sumX:0,sumDeck:0,sumZ:0}));for(let c=0;c<r.length;c++){let f=o.seatOwner[c],b=(f!==null?l.get(f):void 0)??s[c];if(b===void 0)continue;let p=d[b],h=r[c];p.n++,h.x<p.minX&&(p.minX=h.x),h.y<p.minY&&(p.minY=h.y),h.x>p.maxX&&(p.maxX=h.x),h.y>p.maxY&&(p.maxY=h.y);let y=o.seatDeckY(c);p.sumX+=h.x*C,p.sumDeck+=y,p.sumZ+=h.y*C,p.minDeck=Math.min(p.minDeck,y),p.maxDeck=Math.max(p.maxDeck,y+1.6),a[c]=b}for(let c=0;c<n.length;c++){let f=d[c],b=t.floors?.[c],p=u[c],h=Math.min(f.n?f.minX*C:n[c].focal.x*C-1,Number.isFinite(p.minX)?p.minX:1/0),y=Math.max(f.n?f.maxX*C:n[c].focal.x*C+1,Number.isFinite(p.maxX)?p.maxX:-1/0),x=Math.min(f.n?f.minY*C:n[c].focal.y*C-1,Number.isFinite(p.minZ)?p.minZ:1/0),I=Math.max(f.n?f.maxY*C:n[c].focal.y*C+1,Number.isFinite(p.maxZ)?p.maxZ:-1/0),w=Math.min(f.n?Math.min(n[c].baseHeightM,f.minDeck):n[c].baseHeightM,Number.isFinite(p.minY)?p.minY:1/0),P=Math.max(f.n?Math.max(f.maxDeck,w+.5):w+.5,Number.isFinite(p.maxY)?p.maxY:-1/0),g=[f.n?f.sumX/f.n:(h+y)/2,f.n?f.sumDeck/f.n:(w+P)/2,f.n?f.sumZ/f.n:(x+I)/2],M=Math.max(1,.5*Math.hypot(y-h,P-w,I-x));m.push({index:c,id:b?.id??`floor-${c}`,label:b?.name??(n.length>1?`Floor ${c+1}`:"Venue"),seatCount:f.n,center:g,radius:M,box:{min:[h,w,x],max:[y,P,I]},focalWorld:[n[c].focal.x*C,n[c].baseHeightM+1.5,n[c].focal.y*C]})}}return m}function Ft(e,t){let n=1/0,r=1/0,o=-1/0,i=-1/0,s=(a,m)=>{a<n&&(n=a),m<r&&(r=m),a>o&&(o=a),m>i&&(i=m)};for(let a of t)s(a.x,a.y);for(let a of e)for(let m of a.objects)if(m.type==="section")for(let u of m.outline)s(u.x,u.y);else if(m.type==="shape"&&m.points)for(let u of m.points)s(u.x,u.y);else if(m.type==="gaArea")for(let u of m.points)s(u.x,u.y);else if(m.type==="booth"){let u=je(m);if(u)for(let l of u)s(l.x,l.y)}else if(m.type==="table"){let u=Ot(m);if(u)for(let l of u)s(l.x,l.y)}else if(m.type==="decorImage"){let u=Bt(m);if(u)for(let l of u)s(l.x,l.y)}return Number.isFinite(n)||(n=-100,r=-100,o=100,i=100),{minX:n,minY:r,maxX:o,maxY:i}}function So(e,t,n,r,o,i){if(t.length===1){let s=Math.max(60,(o.maxX-o.minX+o.maxY-o.minY)*.06),a=De(o.minX-s,o.minY-s,o.maxX-o.minX+s*2,o.maxY-o.minY+s*2);J(e,a,void 0,()=>0,-.4,i.ground,i.ground,Q)}else{let s=t.reduce((f,b)=>b.baseHeightM<f.baseHeightM?b:f);e.setFloor(s.index);let a=n.filter((f,b)=>r[b]===s.index),m=Ft([s],a),u=Math.hypot(m.maxX-m.minX,m.maxY-m.minY),l=Math.max(28,Math.min(80,u*.04)),d=De(m.minX-l,m.minY-l,m.maxX-m.minX+l*2,m.maxY-m.minY+l*2),c=s.baseHeightM-.03;J(e,d,void 0,()=>c,c-.22,i.ground,i.ground,Q)}}function wo(e,t,n){let{cx:r,cz:o,radius:i}=n,s=1/0,a=1/0,m=1/0,u=-1/0,l=-1/0,d=-1/0,c=(p,h,y)=>{s=Math.min(s,p),u=Math.max(u,p),a=Math.min(a,h),l=Math.max(l,h),m=Math.min(m,y),d=Math.max(d,y)};for(let p=0;p<e.position.length;p+=3)c(e.position[p],e.position[p+1],e.position[p+2]);for(let p=0;p<t.count;p++){let h=p*3,y=t.iPosition[h],x=t.iPosition[h+1],I=t.iPosition[h+2],w=Math.max(.35,t.iMaxRadius[p]??.35);c(y-w,x,I-w),c(y+w,x+1.6,I+w)}Number.isFinite(s)||(s=r-i,u=r+i,a=0,l=i*.16,m=o-i,d=o+i);let f=[(s+u)/2,(a+l)/2,(m+d)/2],b=Math.max(1,.5*Math.hypot(u-s,l-a,d-m));return{center:f,radius:b,minY:a,maxY:l}}function Io(e,t,n,r,o,i){let s=1/0,a=1/0,m=-1/0,u=-1/0;for(let w=0;w<e.count;w++){let P=w*3,g=e.iPosition[P],M=e.iPosition[P+2];g<s&&(s=g),g>m&&(m=g),M<a&&(a=M),M>u&&(u=M)}for(let w of t)s=Math.min(s,w.cx-w.halfX),m=Math.max(m,w.cx+w.halfX),a=Math.min(a,w.cz-w.halfZ),u=Math.max(u,w.cz+w.halfZ);let l=n.minX*C,d=n.maxX*C,c=n.minY*C,f=n.maxY*C,b=l,p=d,h=c,y=f;if(Number.isFinite(s)){let w=Math.max(2,.06*Math.hypot(m-s,u-a));b=Math.max(l,s-w),p=Math.min(d,m+w),h=Math.max(c,a-w),y=Math.min(f,u+w)}let x=Math.min(0,r),I=Math.max(o,i*.05);return{min:[b,x,h],max:[p,I,y]}}function vo(e,t,n){let r=()=>({byObjectId:new Map,elements:[]});if(!t||!e)return r();let o=Qt(t);if(!o.ok||o.value.id!==e)return r();let i=new Map;for(let d of n)for(let c of d.objects)c.type==="shape"&&i.set(c.id,{shape:c,unit:d});let s=new Set,a=new Set,m=new Map((t.overlay.productionElements??[]).map(d=>{let c=d.runtimeContentImageUrl;return[d.id,typeof c=="string"&&/^(?:blob:|data:image\/|https:\/\/)/.test(c)?c:void 0]})),u=[];for(let d of o.value.overlay.productionElements??[]){let c=i.get(d.objectId),f=c?ge(c.shape):null,b=d.baseElevationM??0;if(!c||!f||f.length<3||!d.id||s.has(d.id)||a.has(d.objectId)||!Number.isFinite(d.heightM)||d.heightM<.05||d.heightM>50||!Number.isFinite(b)||b<-10||b>100)return r();s.add(d.id),a.add(d.objectId);let p=f.map(R=>R.x*C),h=f.map(R=>R.y*C),y=c.unit.baseHeightM+b,x=Math.min(...p),I=Math.max(...p),w=Math.min(...h),P=Math.max(...h),g,M=m.get(d.id)??d.contentImageUrl;if(d.kind==="screen"&&M)if(I-x>=P-w){let R=Math.abs(w-c.unit.focal.y*C)<=Math.abs(P-c.unit.focal.y*C)?w-.006:P+.006;g=[[x,y,R],[I,y,R],[x,y+d.heightM,R],[I,y+d.heightM,R]]}else{let R=Math.abs(x-c.unit.focal.x*C)<=Math.abs(I-c.unit.focal.x*C)?x-.006:I+.006;g=[[R,y,w],[R,y,P],[R,y+d.heightM,w],[R,y+d.heightM,P]]}u.push({id:d.id,objectId:d.objectId,kind:d.kind,floorIndex:c.unit.index,baseY:y,topY:y+d.heightM,bounds:{min:[x,y,w],max:[I,y+d.heightM,P]},occlusion:d.occlusion,...M?{contentImageUrl:M}:{},...g?{contentPlane:g}:{}})}let l=u.sort((d,c)=>d.id.localeCompare(c.id));return{byObjectId:new Map(l.map(d=>[d.objectId,d])),elements:l}}function re(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function oe(e){return Array.isArray(e)?e:[]}function ms(e){let t=[e];for(;t.length;){let n=t.pop();if(Array.isArray(n)){t.push(...n);continue}if(!re(n))continue;let r=re(n.extensions)?n.extensions:null;if(r&&Object.prototype.hasOwnProperty.call(r,"KHR_draco_mesh_compression"))return!0;t.push(...Object.values(n))}return!1}function lt(e,t){return!Array.isArray(e)||e.length!==t||!e.every(n=>typeof n=="number"&&Number.isFinite(n))?null:e}function ds(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function bs(e,t){let n=new Array(16).fill(0);for(let r=0;r<4;r++)for(let o=0;o<4;o++)for(let i=0;i<4;i++)n[r*4+o]+=e[i*4+o]*t[r*4+i];return n}function ps(e){let t=lt(e.matrix,16);if(t)return t;if(e.matrix!==void 0)return null;let n=e.translation===void 0?[0,0,0]:lt(e.translation,3),r=e.rotation===void 0?[0,0,0,1]:lt(e.rotation,4),o=e.scale===void 0?[1,1,1]:lt(e.scale,3);if(!n||!r||!o)return null;let[i,s,a,m]=r,u=Math.hypot(i,s,a,m);if(!(u>1e-8))return null;let l=i/u,d=s/u,c=a/u,f=m/u,b=l+l,p=d+d,h=c+c,y=l*b,x=l*p,I=l*h,w=d*p,P=d*h,g=c*h,M=f*b,R=f*p,k=f*h;return[(1-(w+g))*o[0],(x+k)*o[0],(I-R)*o[0],0,(x-k)*o[1],(1-(y+g))*o[1],(P+M)*o[1],0,(I+R)*o[2],(P-M)*o[2],(1-(y+w))*o[2],0,n[0],n[1],n[2],1]}function hs(e,t,n,r){return[e[0]*t+e[4]*n+e[8]*r+e[12],e[1]*t+e[5]*n+e[9]*r+e[13],e[2]*t+e[6]*n+e[10]*r+e[14]]}function ys(e){let t=e[0],n=e[4],r=e[8],o=e[1],i=e[5],s=e[9],a=e[2],m=e[6],u=e[10],l=i*u-s*m,d=s*a-o*u,c=o*m-i*a,f=t*l+n*d+r*c;if(Math.abs(f)<1e-12)return null;let b=1/f;return[l*b,d*b,c*b,(r*m-n*u)*b,(t*u-r*a)*b,(n*a-t*m)*b,(n*s-r*i)*b,(r*o-t*s)*b,(t*i-n*o)*b]}function Ro(e,t,n,r){let o=e[0]*t+e[1]*n+e[2]*r,i=e[3]*t+e[4]*n+e[5]*r,s=e[6]*t+e[7]*n+e[8]*r,a=Math.hypot(o,i,s)||1;return o/=a,i/=a,s/=a,[o,i,s]}function gs(e){if(e.byteLength<20||e.byteLength>8388608)return null;let t=new DataView(e.buffer,e.byteOffset,e.byteLength);if(t.getUint32(0,!0)!==1179937895||t.getUint32(4,!0)!==2||t.getUint32(8,!0)!==e.byteLength)return null;let n=12,r=null,o=null;for(;n+8<=e.byteLength;){let i=t.getUint32(n,!0),s=t.getUint32(n+4,!0);if(n+=8,i%4!==0||n+i>e.byteLength)return null;let a=e.subarray(n,n+i);if(s===1313821514&&!r)try{let m=JSON.parse(new TextDecoder().decode(a).replace(/[\u0000 ]+$/g,""));if(!re(m))return null;r=m}catch{return null}else if(s===5130562&&!o)o=a;else return null;n+=i}return n===e.byteLength&&r&&o?{json:r,bin:o}:null}function xs(e){return e===5120||e===5121?1:e===5122||e===5123?2:e===5125||e===5126?4:0}function Ms(e){return e==="SCALAR"?1:e==="VEC2"?2:e==="VEC3"?3:e==="VEC4"?4:0}function Ss(e,t,n){return n===5120?e.getInt8(t):n===5121?e.getUint8(t):n===5122?e.getInt16(t,!0):n===5123?e.getUint16(t,!0):n===5125?e.getUint32(t,!0):e.getFloat32(t,!0)}function ws(e){let t=e instanceof Uint8Array?e:new Uint8Array(e),n=gs(t);if(!n)return{ok:!1,issue:"invalid_glb"};let{json:r,bin:o}=n;if(!re(r.asset)||r.asset.version!=="2.0")return{ok:!1,issue:"unsupported_glb"};let i=oe(r.extensionsUsed).filter(w=>typeof w=="string");if(i.includes("KHR_draco_mesh_compression")||ms(r))return{ok:!1,issue:"draco_not_allowed"};if(i.length||oe(r.extensionsRequired).length)return{ok:!1,issue:"unsupported_glb"};if(oe(r.images).length||oe(r.textures).length)return{ok:!1,issue:"external_resource"};let s=oe(r.buffers);if(s.length!==1||!re(s[0])||s[0].uri!==void 0||typeof s[0].byteLength!="number"||!Number.isInteger(s[0].byteLength)||s[0].byteLength<0||s[0].byteLength>o.byteLength)return{ok:!1,issue:"external_resource"};let a=oe(r.accessors),m=oe(r.bufferViews),u=oe(r.meshes),l=oe(r.nodes),d=oe(r.scenes),c=typeof r.scene=="number"?r.scene:0;if(!re(d[c]))return{ok:!1,issue:"unsupported_glb"};let f=new DataView(o.buffer,o.byteOffset,o.byteLength),b=(w,P,g)=>{if(typeof w!="number"||!Number.isInteger(w)||!re(a[w]))return null;let M=a[w];if(M.type!==P||M.sparse!==void 0||M.normalized===!0||typeof M.count!="number"||!Number.isInteger(M.count)||M.count<1||typeof M.componentType!="number"||!g.includes(M.componentType)||typeof M.bufferView!="number")return null;let R=m[M.bufferView];if(!re(R)||R.buffer!==0||typeof R.byteLength!="number"||!Number.isInteger(R.byteLength)||R.byteLength<0)return null;let k=Ms(M.type),L=xs(M.componentType),U=typeof R.byteStride=="number"?R.byteStride:k*L,v=typeof R.byteOffset=="number"?R.byteOffset:0,S=typeof M.byteOffset=="number"?M.byteOffset:0,T=v+S,N=S+(M.count-1)*U+k*L;if(!Number.isInteger(U)||!Number.isInteger(v)||!Number.isInteger(S)||U<k*L||v<0||S<0||v+R.byteLength>o.byteLength||N>R.byteLength)return null;let E=[];for(let O=0;O<M.count;O++){let A=[];for(let _=0;_<k;_++){let B=Ss(f,T+O*U+_*L,M.componentType);if(!Number.isFinite(B))return null;A.push(B)}E.push(A)}return E},p=[],h=[],y=0,x=new Set,I=(w,P)=>{if(typeof w!="number"||!Number.isInteger(w)||!re(l[w])||x.has(w))return!1;x.add(w);let g=l[w],M=ps(g);if(!M)return!1;let R=bs(P,M),k=ys(R);if(!k)return!1;if(g.mesh!==void 0){if(typeof g.mesh!="number")return!1;let L=u[g.mesh];if(!re(L))return!1;for(let U of oe(L.primitives)){if(!re(U)||U.mode!==void 0&&U.mode!==4||!re(U.attributes))return!1;let v=b(U.attributes.POSITION,"VEC3",[5126]),S=U.attributes.NORMAL===void 0?null:b(U.attributes.NORMAL,"VEC3",[5126]);if(!v||U.attributes.NORMAL!==void 0&&!S)return!1;let T=v.length;if(U.indices!==void 0){let E=typeof U.indices=="number"?a[U.indices]:null;T=re(E)?E.count:void 0}if(typeof T!="number"||!Number.isInteger(T)||T%3!==0||(y+=T/3,y>1e5))return!1;let N=U.indices===void 0?v.map((E,O)=>[O]):b(U.indices,"SCALAR",[5121,5123,5125]);if(!N||N.length%3!==0||N.length!==T)return!1;for(let E=0;E<N.length;E+=3){let O=[N[E][0],N[E+1][0],N[E+2][0]];if(O.some(B=>!Number.isInteger(B)||B<0||B>=v.length))return!1;let A=O.map(B=>hs(R,...v[B])),_=null;if(!S){let B=A[1][0]-A[0][0],D=A[1][1]-A[0][1],F=A[1][2]-A[0][2],j=A[2][0]-A[0][0],Y=A[2][1]-A[0][1],X=A[2][2]-A[0][2];_=Ro([1,0,0,0,1,0,0,0,1],D*X-F*Y,F*j-B*X,B*Y-D*j)}for(let B=0;B<3;B++)p.push(...A[B]),h.push(...S?Ro(k,...S[O[B]]):_)}}}for(let L of oe(g.children))if(!I(L,R))return!1;return x.delete(w),!0};for(let w of oe(d[c].nodes))if(!I(w,ds()))return{ok:!1,issue:y>1e5?"triangle_limit":"unsupported_glb"};return!y||p.length!==y*9||h.length!==p.length?{ok:!1,issue:"unsupported_glb"}:{ok:!0,triangleCount:y,position:new Float32Array(p),normal:new Float32Array(h)}}function Po(e){try{return ws(e)}catch{return{ok:!1,issue:"invalid_glb"}}}function Co(e){let{doc:t}=e,n=pn(t.theme),r=n.structure,o=Hn(t,e.eventConfigurationId??t.eventConfigurationId),i=vo(e.eventConfigurationId,e.eventConfiguration,o),s=e.seats,a=new et,m=null;if(e.registeredShellGlb){let E=Po(e.registeredShellGlb);if(E.ok){let O=E.position.length/3,A=new Float32Array(E.position.length),_=n.materials.shell??r.tierWall;for(let B=0;B<O;B++){let D=E.normal[B*3+1],F=D<-.25?.4:.62+.38*Math.max(0,D);A[B*3]=_[0]*F,A[B*3+1]=_[1]*F,A[B*3+2]=_[2]*F}m={position:E.position,normal:E.normal,color:A,floor:new Float32Array(O).fill(-2),material:new Float32Array(O),count:O}}}let u=new Map;for(let E of o)for(let O of E.objects)u.set(O.id,E.index),O.type==="section"&&u.set(O.logicalSectionId??O.id,E.index);let l=s.map(E=>u.get(E.sectionId??"")??u.get(E.rowId??"")??0),d=Ft(o,s);So(a,o,s,l,d,r);let c=$n(t,s),f=new Map,b=new Map;for(let E of t.categories??[])f.set(E.key,E.color),E.seatGlyph&&b.set(E.key,E.seatGlyph);let p=[],h=Zn(o,s,l),y=new Float32Array(s.length),x=[];for(let E=0;E<o.length;E++){let O=o[E];a.setFloor(E);let A=new at,_=[],B=O.objects.filter(D=>D.type==="section"&&!!D.outline&&D.outline.length>=3);for(let D of O.objects)if(D.type==="section"){let F=a.vertexCount;fo(a,D,O,Qn(D,c),h.bySection.get(D.id),A,B,r);let j=a.vertexCount-F;j>0&&x.push({sectionId:D.id,start:F,count:j})}else if(D.type==="shape"){let F=i.byObjectId.get(D.id);a.setMaterial((F?.kind??D.role)==="screen"?1:0),ro(a,D,O.baseHeightM,Jn(D,_),r,O.focal,p,F),a.setMaterial(0)}else D.type==="gaArea"?so(a,D,O.baseHeightM,W(f.get(D.categoryKey)),r):D.type==="booth"?no(a,D,O.baseHeightM,W(f.get(D.categoryKey)),r):D.type==="table"?oo(a,D,O.baseHeightM,W(D.fill??t.theme?.decorFill??"#232c40"),r):D.type==="decorImage"&&io(a,D,O.baseHeightM,r);mo(a,O,s,h,r,n.materials.shell,!m)}let I=o.length>1?{x:o.reduce((E,O)=>E+O.focal.x,0)/o.length,y:o.reduce((E,O)=>E+O.focal.y,0)/o.length}:t.focalPoint??{x:(d.minX+d.maxX)/2,y:(d.minY+d.maxY)/2},w=Mn(m?[a.build(),m]:[a.build()]),P=An(s,e.initialState,h,y,f,b),g=yo({doc:t,units:o,seats:s,surfaces:h,focal:I}),{labels:M,sections:R,rows:k}=go({doc:t,units:o,seats:s,surfaces:h,seatData:P,hintedSeatFloor:l,zones:g,focal:I}),L=Mo({doc:t,units:o,seats:s,surfaces:h,solids:w,hintedSeatFloor:l,seatFloor:y});xo(M,L),P.iYaw=En(P.iPosition,s.length,E=>s[E].rowId,E=>{let O=o[y[E]]?.focal??I;return[O.x*C,O.y*C]});let U=(d.minX+d.maxX)/2*C,v=(d.minY+d.maxY)/2*C,S=.5*Math.hypot((d.maxX-d.minX)*C,(d.maxY-d.minY)*C)||10,T=wo(w,P,{cx:U,cz:v,radius:S}),N=Io(P,p,d,T.minY,T.maxY,S);return{solids:w,sectionSolidRanges:x,seats:P,bounds:{center:[(N.min[0]+N.max[0])/2,(N.min[1]+N.max[1])/2,(N.min[2]+N.max[2])/2],radius:S,groundY:0,box:N},renderBounds:{center:T.center,radius:T.radius},stateColorLUT:hn(n,Qe),theme:n,seatCount:s.length,focalWorld:[I.x*C,1.5,I.y*C],zones:g,stages:p,productionElements:i.elements,sections:R,rows:k,labels:M,floors:L}}function Is(e){return[e.solids.position,e.solids.normal,e.solids.color,e.solids.floor,e.solids.material,e.seats.iPosition,e.seats.iState,e.seats.iCategory,e.seats.iMaxRadius,e.seats.iRing,e.seats.iFloor,e.seats.iYaw,e.seats.iChairWidth,e.seats.iGlyph,e.seats.iPhysicalSeat].map(n=>n.buffer)}var Eo=self;Eo.onmessage=e=>{let t=performance.now(),n=!e.data.seats,r=e.data.seats??fn(e.data.doc),o=Co({doc:e.data.doc,seats:r,eventConfigurationId:e.data.eventConfigurationId,eventConfiguration:e.data.eventConfiguration,registeredShellGlb:e.data.registeredShellGlb});Eo.postMessage({model:o,buildMs:performance.now()-t,...n?{seats:r}:{}},Is(o))};
|
|
1
|
+
"use strict";var vi=Object.create;var Bn=Object.defineProperty;var Ei=Object.getOwnPropertyDescriptor;var Ai=Object.getOwnPropertyNames;var Ci=Object.getPrototypeOf,_i=Object.prototype.hasOwnProperty;var ki=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Ai(t))!_i.call(e,r)&&r!==n&&Bn(e,r,{get:()=>t[r],enumerable:!(o=Ei(t,r))||o.enumerable});return e};var Fe=(e,t,n)=>(n=e!=null?vi(Ci(e)):{},ki(t||!e||!e.__esModule?Bn(n,"default",{value:e,enumerable:!0}):n,e));var hu=Math.PI/180;function Qt(e){let t=0,n=0;for(let r of e)t+=r.x,n+=r.y;let o=e.length||1;return{x:t/o,y:n/o}}function it(e){return e.length?Qt(e):null}function Fn(e,t){let n=1-t,o=n*n*n,r=3*n*n*t,i=3*n*t*t,s=t*t*t;return{x:o*e.start.x+r*e.control1.x+i*e.control2.x+s*e.end.x,y:o*e.start.y+r*e.control1.y+i*e.control2.y+s*e.end.y}}function Dn(e,t,n=192){if(!Number.isInteger(t)||t<1)throw new Error("Path point count must be a positive integer");if(t===1)return[Fn(e,.5)];let o=Array.from({length:n+1},(c,f)=>Fn(e,f/n)),r=new Float64Array(o.length);for(let c=1;c<o.length;c+=1){let f=o[c].x-o[c-1].x,u=o[c].y-o[c-1].y;r[c]=r[c-1]+Math.hypot(f,u)}let i=r[r.length-1];if(i<=1e-9)return Array.from({length:t},()=>({...e.start}));let s=[],a=1;for(let c=0;c<t;c+=1){let f=i*c/(t-1);for(;a<r.length-1&&r[a]<f;)a+=1;let u=r[a-1],l=r[a],h=l===u?0:(f-u)/(l-u);s.push({x:o[a-1].x+(o[a].x-o[a-1].x)*h,y:o[a-1].y+(o[a].y-o[a-1].y)*h})}return s}function Nn(e,t,n){return Math.max(t,Math.min(n,e))}function Gn(e){let t=new Map,n=new Map;for(let o of e){if(o.type!=="row"||!o.segmentedRow)continue;let r=n.get(o.segmentedRow.groupId)??[];r.push(o),n.set(o.segmentedRow.groupId,r)}for(let[o,r]of n){let i=r.slice().sort((h,m)=>h.segmentedRow.componentIndex-m.segmentedRow.componentIndex),s=i[0]?.segmentedRow?.componentCount??0,a=i[0]?.segmentedRow;if(!a||!(s>=2&&i.length===s&&a?.boundaryBefore==="start"&&i.every((h,m)=>h.segmentedRow?.kind==="segmented-row-v1"&&h.segmentedRow.groupId===o&&h.segmentedRow.componentCount===s&&h.segmentedRow.componentIndex===m&&h.segmentedRow.repeatLabelOnComponents===a.repeatLabelOnComponents&&(m===0?h.segmentedRow.boundaryBefore==="start":h.segmentedRow.boundaryBefore!=="start")&&h.segmentedRow.displayLabel===a.displayLabel)))continue;let f=i.reduce((h,m)=>h+m.seatCount,0),u=0,l=0;for(let h of i)h.segmentedRow.boundaryBefore==="break"&&(u+=1),t.set(h.id,{groupId:o,adjacencyOffset:u,displayOffset:l,displayLabel:a.displayLabel,totalSeats:f,canonical:i[0],viewFromSeatUrl:a.viewFromSeatUrl,viewFromSeatMeta:a.viewFromSeatMeta,confidenceEvidence:a.confidenceEvidence}),u+=h.seatCount,l+=h.seatCount}return t}var Ti="ABCDEFGHIJKLMNOPQRSTUVWXYZ";var Li="abcdefghijklmnopqrstuvwxyz";function Oi(e,t){let n=t.length,o=e+1,r="";for(;o>0;){o-=1;let i=o%n;r=t[i]+r,o=Math.floor(o/n)}return r}function qt(e,t=!1){let n=t?Li:Ti;return Oi(Math.max(0,Math.floor(e)-1),n)}var Bi=[[1e3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]];function jn(e){if(!Number.isFinite(e)||e<=0)return String(e);let t=Math.floor(e),n="";for(let[o,r]of Bi)for(;t>=o;)n+=r,t-=o;return n}function Fi(e){let t=new Array(e);return Array.from({length:e},(n,o)=>o).sort((n,o)=>Math.abs(2*n-(e-1))-Math.abs(2*o-(e-1))||n-o).forEach((n,o)=>t[n]=o),t}function gt(e,t){let n=e.seatLabelStart??1,o=e.seatNumbering?.direction??"ltr",r=e.seatNumbering?.step??1,i=e.seatNumbering?.scheme??"decimal",s=e.seatNumbering?.prefix??"",a=e.seatNumbering?.endAt,c=e.seatCount;if(i==="updown"||i==="updown-descending"){let m=Math.ceil(c/2),d=i==="updown"?t<m?n+2*t:n-1+2*(c-t):t<m?n+2*(m-1-t):n+1+2*(t-m);return`${s}${d}`}let f=i==="odd"||i==="even"?2:r,u=a!=null&&Number.isFinite(a)?a-(c-1)*f:n,l=o==="center"?Fi(c)[t]:o==="rtl"?c-1-t:t,h;switch(i){case"odd":{let m=u%2===1?u:u+1;h=String(m+l*2);break}case"even":{let m=u%2===0?u:u+1;h=String(m+l*2);break}case"roman":h=jn(u+l*r);break;case"letters-upper":h=qt(u+l*r,!1);break;case"letters-lower":h=qt(u+l*r,!0);break;default:h=String(u+l*r);break}return`${s}${h}`}function Di(e){return{...e.canonical,seatCount:e.totalSeats,label:e.displayLabel,displayLabel:e.displayLabel}}function Hn(e,t,n){return n?.label??`${e.seatLabelBase??e.label}-${gt(e,t)}`}function Jt(e,t,n,o){if(o?.displayLabel)return o.displayLabel;if(e.seatDisplayLabelMode==="number")return gt(e,t);if(!n)return`${e.displayLabel||e.label}-${gt(e,t)}`;let r=Di(n),i=n.displayOffset+t;return`${n.displayLabel}-${gt(r,i)}`}var J=.02291666666666667,ge=1/J,Ni=58,Gi=Ni*J;var ji=3,Xn=0,en=120,Hi=0,Xi=45,Ui=7,Ee=1.2;function tn(e,t,n,o){return Number.isFinite(e)?Math.max(t,Math.min(n,e)):o}function Vi(e){return!Number.isFinite(e)||!Number.isInteger(e)||e<0?0:e<=Ui?e:ji}function De(e,t={}){let n=tn(t.floorBaseHeightM,Xn,en,0),o=Math.min(en,n+Vi(e.elevation)*Gi),r=e.height===void 0?o:tn(e.height,Xn,en,o),i=tn(e.rake,Hi,Xi,0);return{height:r,rake:i}}function Un(e){let t=e.length;return t<=3?[...e]:[e[Math.floor(t*.25)],e[Math.floor(t*.5)],e[Math.floor(t*.75)]]}function ze(e,t,n){if(!e.length)return 1/0;if(e.length===1)return Math.hypot(t-e[0].x,n-e[0].y);let o=1/0;for(let r=0;r+1<e.length;r++){let i=e[r],s=e[r+1],a=s.x-i.x,c=s.y-i.y,f=a*a+c*c,u=f>1e-12?((t-i.x)*a+(n-i.y)*c)/f:0;u<0?u=0:u>1&&(u=1);let l=t-(i.x+u*a),h=n-(i.y+u*c);if(Math.abs(l)>=o||Math.abs(h)>=o)continue;let m=Math.hypot(l,h);m<o&&(o=m)}return o}function Yi(e){let t=0,n=0;for(let i of e)t+=i.x,n+=i.y;let o=e.length||1;t/=o,n/=o;let r=0;for(let i of e){let s=Math.hypot(i.x-t,i.y-n);s>r&&(r=s)}return{cx:t,cy:n,r}}function Vn(e,t){return Math.hypot(e.cx-t.cx,e.cy-t.cy)-e.r-t.r}function nn(e,t){let n=1/0;for(let o of Un(e)){let r=ze(t,o.x,o.y);r<n&&(n=r)}for(let o of Un(t)){let r=ze(e,o.x,o.y);r<n&&(n=r)}return n}function Ki(e,t){if(e.length<3)return{pts:e,seatIndices:t};let n=0,o=0;for(let u of e)n+=u.x,o+=u.y;n/=e.length,o/=e.length;let r=-1,i=e[0];for(let u of e){let l=Math.hypot(u.x-n,u.y-o);l>r&&(r=l,i=u)}let s=i.x-n,a=i.y-o,c=Math.hypot(s,a);c>1e-9?(s/=c,a/=c):(s=1,a=0);let f=e.map((u,l)=>({p:u,i:l,t:(u.x-n)*s+(u.y-o)*a})).sort((u,l)=>u.t-l.t);return{pts:f.map(u=>u.p),seatIndices:f.map(u=>t[u.i])}}function on(e){let t=e.length;if(t<3)return null;let n=0,o=0;for(let y of e)n+=y.x,o+=y.y;n/=t,o/=t;let r=0,i=0,s=0,a=0,c=0,f=0,u=0;for(let y of e){let M=y.x-n,g=y.y-o;r+=M*M,s+=g*g,i+=M*g,a+=M*M*M,c+=g*g*g,f+=M*g*g,u+=g*M*M}let l=r*s-i*i;if(Math.abs(l)<1e-9)return null;let h=(a+f)/2,m=(c+u)/2,d=(h*s-m*i)/l,p=(m*r-h*i)/l,b=d+n,x=p+o;return!Number.isFinite(b)||!Number.isFinite(x)?null:{cx:b,cy:x}}var Wi=.15;function zi(e){if(e.length<2)return null;let t=e.map(y=>{let M=0,g=0;for(let v of y.pts)M+=v.x,g+=v.y;return{x:M/y.pts.length,y:g/y.pts.length}}),n=0,o=0;for(let y of t)n+=y.x,o+=y.y;n/=t.length,o/=t.length;let r=0,i=0,s=0;for(let y of t){let M=y.x-n,g=y.y-o;r+=M*M,i+=M*g,s+=g*g}let a=r+s,c=r*s-i*i,f=a/2+Math.sqrt(Math.max(0,a*a/4-c)),u,l;Math.abs(i)>1e-12?(u=f-s,l=i):r>=s?(u=1,l=0):(u=0,l=1);let h=Math.hypot(u,l);if(!(h>1e-12))return null;u/=h,l/=h;let m=1/0,d=-1/0,p=[];for(let y of e){let M=1/0,g=-1/0;for(let v of y.pts){let S=v.x*u+v.y*l;S<M&&(M=S),S>g&&(g=S),S<m&&(m=S),S>d&&(d=S)}p.push(g-M)}let b=d-m;return b>1e-9?(p.sort((y,M)=>y-M),p[Math.min(p.length-1,Math.floor(p.length*.9))]/b<=Zi?{x:u,y:l}:null):null}var Zi=.35;function Mt(e,t,n,o){let r=new Map;for(let S of n){let R=t[S],I=R.rowId||`__seat-${S}`,P=r.get(I);P||(P={pts:[],idx:[]},r.set(I,P)),P.pts.push({x:R.x,y:R.y}),P.idx.push(S)}if(!r.size)return{sectionId:e,rows:[],blockCount:0};let i=[];for(let[S,R]of r){let I=Ki(R.pts,R.idx),P=0;for(let A of I.pts)P+=Math.hypot(A.x-o.x,A.y-o.y);i.push({id:S,pts:I.pts,seatIndices:I.seatIndices,blockId:-1,ordinal:0,blockDepth:0,focalDistance:P/I.pts.length})}let s=i.map(S=>Yi(S.pts)),a=i.length<=256?i.length*(i.length-1)/2:0,c=a?new Float64Array(a):null;c?.fill(Number.NaN);let f=c?new Map(i.map((S,R)=>[S,R])):null,u=(S,R)=>(S>R&&([S,R]=[R,S]),S*(2*i.length-S-1)/2+(R-S-1)),l=(S,R)=>{if(!c)return nn(i[S].pts,i[R].pts);let I=u(S,R),P=c[I];if(!Number.isNaN(P))return P;let A=nn(i[S].pts,i[R].pts);return c[I]=A,A},h=(S,R)=>f?l(f.get(S),f.get(R)):nn(S.pts,R.pts),m=[];for(let S=0;S<i.length;S++){let R=1/0;for(let I=0;I<i.length;I++){if(S===I||Vn(s[S],s[I])>=R)continue;let P=l(S,I);P<R&&(R=P)}Number.isFinite(R)&&m.push(R)}m.sort((S,R)=>S-R);let d=m.length?m[Math.floor(m.length/2)]:1,p=Math.max(d*1.8,1e-6),b=i.map(()=>[]);for(let S=0;S<i.length;S++)for(let R=S+1;R<i.length;R++)Vn(s[S],s[R])>p||l(S,R)<=p&&(b[S].push(R),b[R].push(S));let x=0;for(let S=0;S<i.length;S++){if(i[S].blockId!==-1)continue;let R=x++,I=[S];for(i[S].blockId=R;I.length;){let P=I.pop();for(let A of b[P])i[A].blockId===-1&&(i[A].blockId=R,I.push(A))}}let y=new Map;for(let S of i){let R=y.get(S.blockId)??[];R.push(S),y.set(S.blockId,R)}let M=[];for(let S of i){if(S.pts.length<4)continue;let R=on(S.pts);R&&(!Number.isFinite(R.cx)||!Number.isFinite(R.cy)||M.push({x:R.cx,y:R.cy}))}let g=M.length>=2?(()=>{let S=M.map(P=>P.x).sort((P,A)=>P-A),R=M.map(P=>P.y).sort((P,A)=>P-A),I=Math.floor(M.length/2);return{cx:S[I],cy:R[I]}})():null;if(g){let S=T=>Math.hypot(T.x-g.cx,T.y-g.cy),R=1/0,I=-1/0,P=[];for(let T of i){let k=1/0,E=-1/0;for(let C of T.pts){let O=S(C);O<k&&(k=O),O>E&&(E=O)}P.push(E-k),k<R&&(R=k),E>I&&(I=E)}let A=I-R;P.sort((T,k)=>T-k);let _=P[Math.min(P.length-1,Math.floor(P.length*.9))];if(A>1e-9&&_/A<=Wi){let T=i.map(D=>{let V=0;for(let U of D.pts)V+=S(U);return{row:D,radius:V/D.pts.length}}),k=0,E=0;for(let D of T)k+=D.radius,E+=D.row.focalDistance;k/=T.length,E/=T.length;let C=0;for(let D of T)C+=(D.radius-k)*(D.row.focalDistance-E);if(C<0)for(let D of T)D.radius=-D.radius;let F=1/0;for(let D of T)D.radius<F&&(F=D.radius);T.sort((D,V)=>D.radius-V.radius);let L=-1,B=-1/0,N=A/Math.max(1,T.length)*.5,H=[];for(let D of T)D.radius-B>N&&(L++,B=D.radius),D.row.ordinal=L,D.row.blockDepth=D.radius-F,H.push(D.row);return{sectionId:e,rows:H,blockCount:x}}}let v=[];for(let[,S]of y){let R=zi(S);if(R){let I=A=>{let _=0;for(let T of A.pts)_+=T.x*R.x+T.y*R.y;return _/A.pts.length};S.sort((A,_)=>I(A)-I(_)),S.length>=2&&S[0].focalDistance>S[S.length-1].focalDistance&&S.reverse();let P=0;for(let A=0;A<S.length;A++)A>0&&(P+=h(S[A-1],S[A])),S[A].ordinal=A,S[A].blockDepth=P,v.push(S[A])}else{let I=1/0;for(let P of S)P.focalDistance<I&&(I=P.focalDistance);S.sort((P,A)=>P.focalDistance-A.focalDistance);for(let P=0;P<S.length;P++)S[P].ordinal=P,S[P].blockDepth=Math.max(0,S[P].focalDistance-I),v.push(S[P])}}return{sectionId:e,rows:v,blockCount:x}}var $i=/^\d{4}-\d{2}-\d{2}$/;function Qi(e){let t=Date.parse(e);return Number.isFinite(t)?$i.test(e)?t+864e5:t:null}function qi(e,t=Date.now()){if(e.validUntil===void 0){if(e.status!=="approved")return!0;let o=e.assessedAt?Date.parse(e.assessedAt):Number.NaN;return Number.isFinite(o)&&(t instanceof Date?t.getTime():t)<=o+366*864e5}let n=Qi(e.validUntil);return n===null?!1:(t instanceof Date?t.getTime():t)<n}function Ji(e,t,n){return!(e.eventConfigurationId&&e.eventConfigurationId!==t||e.eventConfigurationVersion!==void 0&&e.eventConfigurationVersion!==n)}function es(e){return e.status!=="draft"&&e.status!=="retracted"}function ts(e,t){return e.status===void 0?t===void 0:e.status!=="approved"?!0:typeof t=="string"&&typeof e.basisSha256=="string"&&e.basisSha256===t}function Yn(e,t={}){return!!e&&es(e)&&Ji(e,t.activeConfigurationId,t.activeConfigurationVersion)&&ts(e,t.activeBasisSha256)&&qi(e,t.now)}var ns=new Set(["pitch-football","rink-hockey","track-athletics","oval-cricket","pitch-rugby","diamond-baseball","court-basketball","court-tennis","ring-boxing"]),os=new Set(["pitch-football","track-athletics","oval-cricket","pitch-rugby","diamond-baseball"]);function Xe(e){return!!e&&ns.has(e)}function zn(e){return!!e&&os.has(e)}var St=1.1,rs={"pitch-football":{width:105,height:68},"rink-hockey":{width:60,height:30},"track-athletics":{width:176.9,height:92.5},"oval-cricket":{width:150,height:140},"pitch-rugby":{width:120,height:70},"diamond-baseball":{width:140,height:140},"court-basketball":{width:32,height:19},"court-tennis":{width:36.57,height:18.29},"ring-boxing":{width:7.8,height:7.8}},is={"pitch-football":"#2f7d4f","rink-hockey":"#e8f1f8","track-athletics":"#a4472f","oval-cricket":"#3d8a53","pitch-rugby":"#2f7d4f","diamond-baseball":"#2f7d4f","court-basketball":"#c8894f","court-tennis":"#3f7a5a","ring-boxing":"#2a4d8f"};var ss=Math.PI*2;function as(e,t,n,o,r,i){return{x:r+e*n-t*o,y:i+e*o+t*n}}function Kn(e,t){let n=Math.max(0,e-t),o=[],r=20;for(let i=0;i<=r;i++){let s=-Math.PI/2+i/r*Math.PI;o.push({x:n+t*Math.cos(s),y:t*Math.sin(s)})}for(let i=0;i<=r;i++){let s=Math.PI/2+i/r*Math.PI;o.push({x:-n+t*Math.cos(s),y:t*Math.sin(s)})}return o}var Wn=(()=>{let t={x:0,y:52},n=25,o={x:70,y:t.y-70},r=(o.x*o.x+o.y*o.y-4900)/(2*(o.y+70)),i=r+70,s=[],a=Math.atan2(o.y-r,o.x),c=Math.atan2(o.y-r,-o.x);for(let f=0;f<=24;f++){let u=a+(c-a)*f/24;s.push({x:i*Math.cos(u),y:r+i*Math.sin(u)})}return{half:70,home:t,backstop:n,fence:s}})();var It="#f1f5f9";function st(e){return Xe(e)}function Ne(e,t,n,o,r=32){let i=[];for(let s=0;s<r;s++){let a=s/r*ss;i.push({x:e+n*Math.cos(a),y:t+o*Math.sin(a)})}return i}function Te(e,t,n,o){return[{x:e-n,y:t-o},{x:e+n,y:t-o},{x:e+n,y:t+o},{x:e-n,y:t+o}]}function cs(e){let{kind:t,cx:n,cy:o,width:r,height:i}=e,s=(e.rotation??0)*Math.PI/180,a=Math.cos(s),c=Math.sin(s),f=r/2,u=i/2,l=[],h=rs[t],m=p=>h?p/h.width*r:0,d=p=>h?p/h.height*i:0;switch(t){case"pitch-football":{l.push({points:[{x:0,y:-u},{x:0,y:u}],closed:!1}),l.push({points:Ne(0,0,m(9.15),d(9.15)),closed:!0});for(let p of[-1,1])l.push({points:Te(p*(f-m(16.5)/2),0,m(16.5)/2,d(40.32)/2),closed:!0}),l.push({points:Te(p*(f-m(5.5)/2),0,m(5.5)/2,d(18.32)/2),closed:!0});break}case"rink-hockey":{l.push({points:[{x:0,y:-u},{x:0,y:u}],closed:!1,ink:"#d63b3b"});for(let p of[-1,1]){l.push({points:[{x:p*m(7.5),y:-u},{x:p*m(7.5),y:u}],closed:!1,ink:"#2f6ecb"}),l.push({points:[{x:p*(f-m(4)),y:-d(11)},{x:p*(f-m(4)),y:d(11)}],closed:!1,ink:"#d63b3b"});for(let b of[-1,1])l.push({points:Ne(p*m(20.5),b*d(7),m(4.5),d(4.5)),closed:!0,ink:"#2f6ecb"})}l.push({points:Ne(0,0,m(4.5),d(4.5)),closed:!0,ink:"#2f6ecb"});break}case"track-athletics":{let b=u-d(1.22)*8;b>0&&l.push({points:Kn(f-m(1.22)*8,b),closed:!0,fill:"#2f7d4f"});for(let x=1;x<8;x++){let y=d(1.22)*x,M=u-y;if(M<=0)break;l.push({points:Kn(f-m(1.22)*x,M),closed:!0})}break}case"oval-cricket":{l.push({points:Ne(0,0,m(27.4),d(27.4+20.12/2),40),closed:!0}),l.push({points:Te(0,0,m(3.05)/2,d(20.12)/2),closed:!0,ink:"#d8cfae"});break}case"pitch-rugby":{let p=b=>({points:[{x:m(b),y:-u},{x:m(b),y:u}],closed:!1});l.push(p(0));for(let b of[-1,1]){l.push(p(b*50),p(b*28));for(let x=-35;x<35;x+=4)l.push({points:[{x:m(b*10),y:d(x)},{x:m(b*10),y:d(Math.min(35,x+2))}],closed:!1})}break}case"diamond-baseball":{let p=(O,F)=>({x:m(O),y:d(F)}),{home:b}=Wn,x=27.43,y=x/Math.SQRT2,M={x:b.x+y,y:b.y-y},g={x:b.x,y:b.y-2*y},v={x:b.x-y,y:b.y-y},S={x:b.x,y:b.y-18.44},R="#b98a59",I=is["diamond-baseball"],P=38.94,A=[p(b.x,b.y)],_=Math.atan2(b.y-P/Math.SQRT2-S.y,P/Math.SQRT2),T=Math.PI-_;for(let O=0;O<=16;O++){let F=_-(_+Math.PI*2-T)%(Math.PI*2)*(O/16);A.push(p(S.x+29*Math.cos(F),S.y+29*Math.sin(F)))}l.push({points:A,closed:!0,fill:R,ink:R});let k={x:b.x,y:b.y-y},E=[{x:b.x,y:b.y},M,g,v].map(O=>p(k.x+(O.x-k.x)*.84,k.y+(O.y-k.y)*.84));l.push({points:E,closed:!0,fill:I,ink:I}),l.push({points:Ne(m(S.x),d(S.y),m(2.74),d(2.74),20),closed:!0,fill:R,ink:R}),l.push({points:Ne(m(b.x),d(b.y),m(3.96),d(3.96),20),closed:!0,fill:R,ink:R});let C=Wn.fence;l.push({points:[p(b.x,b.y),p(C[0].x,C[0].y)],closed:!1}),l.push({points:[p(b.x,b.y),p(C[C.length-1].x,C[C.length-1].y)],closed:!1});for(let O of[M,g,v])l.push({points:Te(m(O.x),d(O.y),m(.3),d(.3)),closed:!0,fill:It});break}case"court-basketball":{l.push({points:Te(0,0,m(14),d(7.5)),closed:!0}),l.push({points:[{x:0,y:-d(7.5)},{x:0,y:d(7.5)}],closed:!1}),l.push({points:Ne(0,0,m(1.8),d(1.8),24),closed:!0});for(let p of[-1,1]){let b=p*14,x=p*(14-5.8),y=p*(14-1.575);l.push({points:Te(m((b+x)/2),0,m(2.9),d(2.45)),closed:!0,fill:"#2f5d8a"}),l.push({points:Ne(m(x),0,m(1.8),d(1.8),24),closed:!0});let M=Math.sqrt(6.75*6.75-6.6*6.6),g=[{x:m(b),y:-d(6.6)}],v=Math.atan2(-6.6,-p*M),S=2*Math.atan2(6.6,M);for(let R=0;R<=16;R++){let I=v-p*S*(R/16);g.push({x:m(y+6.75*Math.cos(I)),y:d(6.75*Math.sin(I))})}g.push({x:m(b),y:d(6.6)}),l.push({points:g,closed:!1})}break}case"court-tennis":{l.push({points:Te(0,0,m(11.885),d(5.485)),closed:!0,fill:"#2b5f99"});for(let p of[-1,1])l.push({points:[{x:-m(11.885),y:p*d(4.115)},{x:m(11.885),y:p*d(4.115)}],closed:!1}),l.push({points:[{x:p*m(6.4),y:-d(4.115)},{x:p*m(6.4),y:d(4.115)}],closed:!1});l.push({points:[{x:-m(6.4),y:0},{x:m(6.4),y:0}],closed:!1}),l.push({points:[{x:0,y:-d(6.4)},{x:0,y:d(6.4)}],closed:!1,ink:"#d1d5db"});break}case"ring-boxing":{l.push({points:Te(0,0,m(3.05),d(3.05)),closed:!0});let x=[[-1,-1,"#c53030"],[1,1,"#2b6cb0"],[1,-1,"#e2e8f0"],[-1,1,"#e2e8f0"]];for(let[y,M,g]of x)l.push({points:Te(y*m(3.05),M*d(3.05),m(.3),d(.3)),closed:!0,fill:g,ink:g});break}default:return[]}return l.map(p=>({...p,points:p.points.map(b=>as(b.x,b.y,a,c,n,o))}))}function Zn(e){if(e.role!=="stage"||!st(e.stageKind))return[];let t=null;if(e.x!=null&&e.y!=null&&e.width!=null&&e.height!=null&&e.width>0&&e.height>0&&[e.x,e.y,e.width,e.height].every(Number.isFinite))t={cx:e.x+e.width/2,cy:e.y+e.height/2,width:e.width,height:e.height};else if(e.points&&e.points.length>=3&&e.points.every(n=>Number.isFinite(n.x)&&Number.isFinite(n.y))){let n=e.points.map(u=>u.x),o=e.points.map(u=>u.y),r=Math.min(...n),i=Math.max(...n),s=Math.min(...o),a=Math.max(...o),c=Math.max(1,i-r),f=Math.max(1,a-s);t={cx:r+c/2,cy:s+f/2,width:c,height:f}}return t?cs({kind:e.stageKind,...t}):[]}var ls=/^data:image\/(?:png|jpe?g|webp|gif|avif);base64,[a-z0-9+/]+={0,2}$/i,us=/[\s"'<>`\\]/;function fs(e){if(typeof e!="string"||!e||e.length>2e6||e!==e.trim())return!1;if(e.startsWith("data:"))return ls.test(e);if(us.test(e))return!1;try{let t=new URL(e);return t.protocol==="https:"&&!t.username&&!t.password}catch{return!1}}function $n(e){let t=e.trim();return fs(t)?t:null}var rn="seatlayer.event-configuration/1";var Ze=100,ms=120,hs=2e5,ds=1e4,ps=/^[a-f0-9]{64}$/,bs=new Set(["stage","screen","barrier","camera_platform","sound_desk","rigging_truss"]);function at(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Ue(e,t){return typeof e=="string"&&e.length>=1&&e.length<=t&&e.normalize("NFKC").trim()===e}function ys(e){return typeof e=="number"&&Number.isInteger(e)&&e>0}function Qn(e){return!Array.isArray(e)||e.length>hs||!e.every(t=>Ue(t,Ze))?null:[...new Set(e)].sort()}function xs(e){return!at(e)||!Ue(e.chartId,Ze)||!Ue(e.version,Ze)||e.sha256!==void 0&&(typeof e.sha256!="string"||!ps.test(e.sha256))?null:{chartId:e.chartId,version:e.version,...typeof e.sha256=="string"?{sha256:e.sha256}:{}}}function sn(e,t,n){return typeof e=="number"&&Number.isFinite(e)&&e>=t&&e<=n}function gs(e){return at(e)?e.mode==="none"||e.mode==="opaque"?e.opacity===void 0?{mode:e.mode}:null:e.mode==="partial"&&sn(e.opacity,.01,.99)?{mode:"partial",opacity:e.opacity}:null:null}function Ms(e,t){if(e===void 0)return;if(!Array.isArray(e)||e.length>ds)return null;let n=new Set(t),o=new Set,r=new Set,i=0,s=[];for(let a of e){if(!at(a)||!Ue(a.id,Ze)||!Ue(a.objectId,Ze)||!n.has(a.objectId)||!bs.has(String(a.kind))||!sn(a.heightM,.05,50)||a.baseElevationM!==void 0&&!sn(a.baseElevationM,-10,100))return null;let c=gs(a.occlusion);if(!c||o.has(a.id)||r.has(a.objectId))return null;let f=a.contentImageUrl===void 0?void 0:typeof a.contentImageUrl=="string"?$n(a.contentImageUrl):null;if(a.contentImageUrl!==void 0&&(!f||a.kind!=="screen"||++i>1))return null;o.add(a.id),r.add(a.objectId),s.push({id:a.id,objectId:a.objectId,kind:a.kind,heightM:a.heightM,...a.baseElevationM!==void 0?{baseElevationM:a.baseElevationM}:{},occlusion:c,...f?{contentImageUrl:f}:{}})}return s.sort((a,c)=>a.id.localeCompare(c.id))}function Ss(e){let t=[];if(!at(e))return{issues:[{code:"invalid_export",path:"configuration",message:"Configuration must be an object"}]};e.schema!==rn&&t.push({code:"unsupported_schema",path:"configuration.schema",message:`Configuration schema must be ${rn}`}),Ue(e.id,Ze)||t.push({code:"invalid_id",path:"configuration.id",message:"Configuration id must contain 1 to 100 normalized characters"}),Ue(e.label,ms)||t.push({code:"invalid_label",path:"configuration.label",message:"Configuration label must contain 1 to 120 normalized characters"}),ys(e.version)||t.push({code:"invalid_version",path:"configuration.version",message:"Configuration version must be a positive integer"});let n=xs(e.baseVenue);n||t.push({code:"invalid_base_venue",path:"configuration.baseVenue",message:"Base venue must identify one normalized chart id and exact version"});let o=at(e.overlay)?e.overlay:null,r=Qn(o?.objectIds),i=Qn(o?.productionKillSeatIds),s=r?Ms(o?.productionElements,r):null;return(!o||!r||!i)&&t.push({code:"invalid_overlay",path:"configuration.overlay",message:"Overlay ids must be bounded arrays of normalized stable ids"}),s===null&&t.push({code:"invalid_production_element",path:"configuration.overlay.productionElements",message:"Production elements must be unique, bounded semantics over referenced base-venue objects"}),t.length||!n||!r||!i||s===null?{issues:t}:{issues:t,value:{schema:rn,id:e.id,label:e.label,version:e.version,baseVenue:n,overlay:{objectIds:r,productionKillSeatIds:i,...s!==void 0?{productionElements:s}:{}}}}}function qn(e){let t=Ss(e);return t.value?{ok:!0,value:t.value}:{ok:!1,issues:t.issues}}function Is(e){if((e.kind==="polygon"||e.kind==="polyline"||e.kind==="line")&&e.points&&e.points.length>=2)return e.points;if(e.x==null||e.y==null||e.width==null||e.height==null)return null;let t=e.x,n=e.y,o=e.width,r=e.height;return[{x:t,y:n},{x:t+o,y:n},{x:t+o,y:n+r},{x:t,y:n+r}]}function Ps(e,t,n){let o=n*Math.PI/180,r=Math.cos(o),i=Math.sin(o),s=e.x-t.x,a=e.y-t.y;return{x:t.x+s*r-a*i,y:t.y+s*i+a*r}}function Jn(e){let t=Is(e);if(!t||t.length<2)return null;let n=e.rotation??0,o=Math.abs(n)<1e-6?t:t.map(c=>Ps(c,{x:t.reduce((f,u)=>f+u.x,0)/t.length,y:t.reduce((f,u)=>f+u.y,0)/t.length},n)),r=1/0,i=1/0,s=-1/0,a=-1/0;for(let c of o)r=Math.min(r,c.x),i=Math.min(i,c.y),s=Math.max(s,c.x),a=Math.max(a,c.y);return!Number.isFinite(r)||s-r<1e-6||a-i<1e-6?null:{minX:r,minY:i,maxX:s,maxY:a}}var Rs=5,ws=3,vs=.92,Es=1.9,As=2,Cs=.6,_s=1,ks=.06;function Ts(e){return e.heightM!==void 0?e.heightM:e.stageKind==="ring-boxing"?St:st(e.stageKind)?ks:_s}function eo(e){let t=1/0,n=1/0,o=-1/0,r=-1/0,i=-1/0;for(let s of oo(e)){let a=s.baseHeightM??0;for(let c of s.objects){if(c.type!=="shape"||c.role!=="stage")continue;let f=Jn(c);f&&(t=Math.min(t,f.minX),n=Math.min(n,f.minY),o=Math.max(o,f.maxX),r=Math.max(r,f.maxY),i=Math.max(i,a+Ts(c)))}}return!Number.isFinite(t)||!Number.isFinite(i)?null:{minX:t,minY:n,maxX:o,maxY:r,deckTopM:i}}function Ls(e,t,n,o){let r=1/0,i=1/0,s=-1/0,a=-1/0;for(let m of e)Number.isFinite(m.eyeHeightM)&&(r=Math.min(r,m.x),s=Math.max(s,m.x),i=Math.min(i,m.y),a=Math.max(a,m.y));if(!Number.isFinite(r))return null;let c=r*t,f=i*t,u=Math.max(1,Math.ceil((s-r)*t/n)+1),l=Math.max(1,Math.ceil((a-i)*t/n)+1),h=new Float64Array(u*l).fill(-1/0);for(let m of e){if(!Number.isFinite(m.eyeHeightM))continue;let d=m.eyeHeightM-Ee,p=Math.min(u-1,Math.max(0,Math.floor((m.x*t-c)/n))),x=Math.min(l-1,Math.max(0,Math.floor((m.y*t-f)/n)))*u+p,y=d+o;y>h[x]&&(h[x]=y)}return{cellM:n,minX:c,minY:f,cols:u,rows:l,top:h}}function Os(e,t,n){let o=Math.floor((t-e.minX)/e.cellM),r=Math.floor((n-e.minY)/e.cellM);return o<0||r<0||o>=e.cols||r>=e.rows?-1/0:e.top[r*e.cols+o]}function to(e,t,n={}){let o=new Map;if(!t||!e.length)return o;let r=n.metresPerChartUnit??J,i=n.cellM??Cs,s=n.chairBackM??vs,a=n.selfRowSkipM??As,c=n.clearThreshold??.9,f=n.partialThreshold??.25,u=Math.max(1,n.columns??Rs),l=Math.max(1,n.rows??ws),h=Ls(e,r,i,s);if(!h)return o;let m=(t.maxX-t.minX)*r,d=(t.maxY-t.minY)*r,p=m>=d,b=(t.minX+t.maxX)/2*r,x=(t.minY+t.maxY)/2*r,y=[];for(let g=0;g<u;g++){let v=(g+.5)/u-.5,S=p?b+v*m:b,R=p?x:x+v*d;for(let I=0;I<l;I++){let P=t.deckTopM+(l===1?0:I/(l-1)*Es);y.push({x:S,y:R,z:P})}}let M=i/2;for(let g of e){if(!Number.isFinite(g.eyeHeightM))continue;let v=g.x*r,S=g.y*r,R=g.eyeHeightM,I=0,P=1/0;for(let _ of y){let T=_.x-v,k=_.y-S,E=Math.hypot(T,k);if(!(E>a)){I++;continue}let C=T/E,O=k/E,F=0;for(let L=a;L<E;L+=M){let B=Os(h,v+C*L,S+O*L);if(!(!Number.isFinite(B)||B>=R)&&B>R+(_.z-R)*L/E){F=L;break}}F?P=Math.min(P,F):I++}let A=I/y.length;A>=c||o.set(g.id,{seatId:g.id,mark:A<f?"obstructedView":"restrictedView",visibleFraction:A,totalRays:y.length,atDistanceM:Number.isFinite(P)?P:0})}return o}function no(e,t){if(!t.size)return 0;let n=0;for(let o of e){let r=t.get(o.id);if(!r)continue;let i=o.commercial;i?.restrictedView!==void 0||i?.obstructedView!==void 0||(o.commercial={...i,[r.mark]:!0},n++)}return n}function an(e){return e?e.accessibility?.length?e.wheelchairSpaceType&&!e.accessibility.includes("wheelchair")?["wheelchair",...e.accessibility]:e.accessibility:e.wheelchairSpaceType?["wheelchair"]:e.accessible?["wheelchair"]:[]:[]}var Rt=Math.PI/180;var ct=16;function cn(e,t,n,o){let r=n*Rt,i=Math.cos(r),s=Math.sin(r);return{x:o.x+e*i-t*s,y:o.y+e*s+t*i}}function co(e){let{seatCount:t,seatSpacing:n,curve:o,rotation:r,origin:i}=e,s=[];if(e.path)return Dn(e.path,t);if(t<=1)return t===1&&s.push({x:i.x,y:i.y}),s;if(o===0){for(let f=0;f<t;f++)s.push(cn(f*n,0,r,i));return s}let a=o/(t-1)*Rt,c=n/(2*Math.sin(Math.abs(a)/2));for(let f=0;f<t;f++){let u=f*a,l=c*Math.sin(u),h=-c+c*Math.cos(u);s.push(cn(l,h,r,i))}return s}function lo(e){let t=new Map;if(e.overrides)for(let n of e.overrides)t.set(n.index,n);return t}function Bs(e,t){let n=lo(e);return co(e).map((o,r)=>{let i=n.get(r),s=an(i),a=Hn(e,r,i),c={...e.commercial,...i?.commercial};return{index:r,x:o.x+(i?.dx??0),y:o.y+(i?.dy??0),label:a,displayLabel:Jt(e,r,t,i),categoryKey:i?.categoryKey??e.categoryKey,skipped:!!i?.skip,accessible:s.length>0,accessibility:s,wheelchairSpaceType:i?.wheelchairSpaceType,commercial:Object.values(c).some(f=>f!==void 0&&f!==!1&&f!=="")?c:void 0,glyph:i?.glyph,viewUrl:i?.viewFromSeatUrl??e.viewFromSeatUrl,viewMeta:i?.viewFromSeatUrl?i.viewFromSeatMeta:e.viewFromSeatMeta,labelStyle:i?.labelStyle??e.seatLabelStyle}})}function Fs(e){let t=[];for(let n of Bs(e))n.skipped||t.push({id:`${e.id}:${n.index}`,label:n.label,displayLabel:n.displayLabel===n.label?void 0:n.displayLabel,x:n.x,y:n.y,rowId:e.id,categoryKey:n.categoryKey,accessible:n.accessible||void 0,accessibility:n.accessibility.length?n.accessibility:void 0,wheelchairSpaceType:n.wheelchairSpaceType,commercial:n.commercial,glyph:n.glyph,viewUrl:n.viewUrl,viewMeta:n.viewMeta,labelStyle:n.labelStyle});return t}function Ds(e){if(e.seatCountsBySide)return{...e.seatCountsBySide};let t=e.sides&&e.sides.length?e.sides:["top","bottom"],n=["top","bottom","left","right"].filter(i=>t.includes(i)),o={top:0,bottom:0,left:0,right:0};if(!n.length)return o;let r=Math.max(0,Math.round(e.seatCount));for(let i=0;i<r;i++)o[n[i%n.length]]+=1;return o}function Ns(e){let t=[],n=Math.max(0,Math.round(e.seatCount));if(n===0)return t;let o=new Map((e.overrides??[]).map(u=>[u.index,u])),r=(u,l,h,m)=>{let d=o.get(u),p=an(d),b=d?.label??`${e.label}-${u+1}`,x=e.displayLabel??e.label;return{index:u,label:b,displayLabel:d?.displayLabel??`${x}-${u+1}`,x:l+(d?.dx??0),y:h+(d?.dy??0),categoryKey:d?.categoryKey??e.categoryKey,skipped:!!d?.skip,accessible:p.length>0,accessibility:p,wheelchairSpaceType:d?.wheelchairSpaceType,commercial:d?.commercial,glyph:d?.glyph,viewUrl:d?.viewFromSeatUrl,viewMeta:d?.viewFromSeatUrl?d.viewFromSeatMeta:void 0,labelStyle:d?.labelStyle,...m?{side:m}:{}}};if(e.shape==="round"){let u=(e.radius??40)+ct,l=e.rotation*Rt,h=Math.max(0,Math.min(360,e.seatArc??360));if(h>=360||n===1){for(let b=0;b<n;b++){let x=l+b/n*2*Math.PI;t.push(r(b,e.center.x+u*Math.cos(x),e.center.y+u*Math.sin(x)))}return t}let m=h*Rt,d=(2*Math.PI-m)/2,p=l+d;for(let b=0;b<n;b++){let x=p+b/(n-1)*m;t.push(r(b,e.center.x+u*Math.cos(x),e.center.y+u*Math.sin(x)))}return t}let i=e.width??80,s=e.height??50,a=Ds(e),c=["top","bottom","left","right"],f=0;for(let u of c){let l=a[u];for(let h=0;h<l;h++){let m,d;u==="top"?(m=-i/2+(h+.5)*i/l,d=-s/2-ct):u==="bottom"?(m=-i/2+(h+.5)*i/l,d=s/2+ct):u==="left"?(m=-i/2-ct,d=-s/2+(h+.5)*s/l):(m=i/2+ct,d=-s/2+(h+.5)*s/l);let p=cn(m,d,e.rotation,e.center);t.push(r(f++,p.x,p.y,u))}}return t}function Gs(e){return Ns(e).filter(t=>!t.skipped).map(t=>({id:`${e.id}:${t.index}`,label:t.label,...t.displayLabel!==t.label?{displayLabel:t.displayLabel}:{},x:t.x,y:t.y,rowId:e.id,categoryKey:t.categoryKey,...t.accessible?{accessible:!0}:{},...t.accessibility.length?{accessibility:t.accessibility}:{},...t.wheelchairSpaceType?{wheelchairSpaceType:t.wheelchairSpaceType}:{},...t.commercial?{commercial:t.commercial}:{},...t.glyph?{glyph:t.glyph}:{},...t.viewUrl?{viewUrl:t.viewUrl}:{},...t.viewUrl&&t.viewMeta?{viewMeta:t.viewMeta}:{},...t.labelStyle?{labelStyle:t.labelStyle}:{}}))}function js(e){return[{id:`${e.id}:0`,label:e.label,...e.displayLabel&&e.displayLabel!==e.label?{displayLabel:e.displayLabel}:{},x:e.center.x,y:e.center.y,rowId:e.id,categoryKey:e.categoryKey,kind:"booth"}]}function ro(e,t){let n=!1;for(let o=0,r=t.length-1;o<t.length;r=o++){let i=t[o].x,s=t[o].y,a=t[r].x,c=t[r].y;s>e.y!=c>e.y&&e.x<(a-i)*(e.y-s)/(c-s)+i&&(n=!n)}return n}function Hs(e,t){return t.some((n,o)=>{let r=t[(o+1)%t.length],i=(e.y-n.y)*(r.x-n.x)-(e.x-n.x)*(r.y-n.y);if(Math.abs(i)>1e-7)return!1;let s=(e.x-n.x)*(r.x-n.x)+(e.y-n.y)*(r.y-n.y),a=(r.x-n.x)**2+(r.y-n.y)**2;return s>=-1e-7&&s<=a+1e-7})}function ln(e){return Array.isArray(e)?e.filter(t=>Array.isArray(t)&&t.length>=3):[]}function me(e,t,n){return ro(e,t)&&!ln(n).some(o=>ro(e,o)||Hs(e,o))}function Pt(e){if(!e.length)return{x:0,y:0};let t=0,n=0;for(let o of e)t+=o.x,n+=o.y;return{x:t/e.length,y:n/e.length}}function uo(e){switch(e.type){case"row":{let t=co(e),n=lo(e),o=0,r=0,i=0;for(let s=0;s<t.length;s++){let a=n.get(s);a?.skip||(o+=t[s].x+(a?.dx??0),r+=t[s].y+(a?.dy??0),i++)}return i?{x:o/i,y:r/i}:{x:e.origin.x,y:e.origin.y}}case"table":case"booth":return{x:e.center.x,y:e.center.y};case"gaArea":return Pt(e.points);case"section":return Pt(e.outline);case"text":return{x:e.position.x,y:e.position.y};case"shape":return e.points&&e.points.length?Pt(e.points):e.x!=null&&e.y!=null&&e.width!=null&&e.height!=null?{x:e.x+e.width/2,y:e.y+e.height/2}:{x:e.x??0,y:e.y??0};case"decorImage":return{x:e.x+e.width/2,y:e.y+e.height/2}}}function io(e,t){return e.length===t.length&&e.every((n,o)=>n.x===t[o].x&&n.y===t[o].y)}function Xs(e,t){if(e.type!=="gaArea"||!io(e.points,t.outline))return!1;let n=ln(e.holes),o=ln(t.holes);return n.length===o.length&&n.every((r,i)=>io(r,o[i]))}function Us(e,t,n=e.filter(r=>r.type==="section"),o=uo(t)){let r="referenceInventorySource"in t?t.referenceInventorySource?.logicalSectionId:void 0;return(r?n.find(s=>(s.logicalSectionId??s.id)===r&&(Xs(t,s)||me(o,s.outline,s.holes))):void 0)??n.find(s=>me(o,s.outline,s.holes))}function oo(e){return e.floors&&e.floors.length?e.floors:[{id:"floor-0",name:"Main",objects:e.objects,focalPoint:e.focalPoint,referenceImage:e.referenceImage,backgroundImage:e.backgroundImage}]}function so(e,t,n,o,r,i,s,a,c){let f=[],u=e.filter(p=>p.type==="section"),l=Gn(e),h=p=>!p?.eventConfigurationId||p.eventConfigurationId===o&&(p.eventConfigurationVersion===void 0||p.eventConfigurationVersion===c),m=p=>Yn(p,{activeConfigurationId:o,activeConfigurationVersion:c,activeBasisSha256:r,now:a}),d=(p,b)=>m(p)?{...p,coverage:b}:void 0;for(let p of e){let b=[];if(p.type==="row"?b=Fs(p):p.type==="table"?b=Gs(p):p.type==="booth"&&(b=js(p)),!b.length)continue;for(let v of b)v.viewUrl&&!h(v.viewMeta)&&(v.viewUrl=void 0,v.viewMeta=void 0);if(p.type==="row"){let v=l.get(p.id);if(v){let S=new Map((p.overrides??[]).map(R=>[R.index,R]));for(let R of b){let I=Number(R.id.slice(R.id.lastIndexOf(":")+1));if(!Number.isInteger(I))continue;R.logicalRowId=v.groupId,R.logicalSeatIndex=v.adjacencyOffset+I,S.get(I)?.displayLabel||(R.displayLabel=Jt(p,I,v)),!R.viewUrl&&v.viewFromSeatUrl&&h(v.viewFromSeatMeta)&&(R.viewUrl=v.viewFromSeatUrl,R.viewMeta=v.viewFromSeatMeta);let P=S.get(I)?.confidenceEvidence;R.confidenceEvidence=d(P,"exact-seat")??d(p.confidenceEvidence,"row-representative")??d(v.confidenceEvidence,"row-representative")}}}let x=Us(e,p,u,p.type==="row"?Pt(b):uo(p)),y=x?.viewFromSeatUrl,g=(x?.zone?t?.find(v=>v.id===x.zone):void 0)?.focalPoint??n;for(let v of b){if(!v.confidenceEvidence){let S=Number(v.id.slice(v.id.lastIndexOf(":")+1)),R=(p.type==="row"||p.type==="table")&&Number.isInteger(S)?p.overrides?.find(I=>I.index===S)?.confidenceEvidence:void 0;v.confidenceEvidence=d(R,"exact-seat")??(p.type==="row"?d(p.confidenceEvidence,"row-representative"):void 0)}v.confidenceEvidence??=d(x?.confidenceEvidence,"section-representative")??(s?d(s.evidence,s.coverage):void 0),!v.viewUrl&&y&&h(x?.viewFromSeatMeta)&&(v.viewUrl=y,v.viewMeta=x?.viewFromSeatMeta),!v.viewUrl&&i&&h(i.meta)&&(v.viewUrl=i.url,v.viewMeta=i.meta),x&&(v.sectionId=x.logicalSectionId??x.id),x?.zone&&(v.zoneId=x.zone),g&&(v.focalPoint={...g})}f.push(...b)}return f}function $e(e,t={}){if(e.floors?.length){let o=[];for(let r of e.floors){let i=r.focalPoint??e.focalPoint,s=r.viewFromSeatUrl?{url:r.viewFromSeatUrl,meta:r.viewFromSeatMeta}:e.viewFromSeatUrl?{url:e.viewFromSeatUrl,meta:e.viewFromSeatMeta}:void 0,a=r.confidenceEvidence?{evidence:r.confidenceEvidence,coverage:"floor-representative"}:e.confidenceEvidence?{evidence:e.confidenceEvidence,coverage:"venue-representative"}:void 0,c=so(r.objects,e.zones,i,e.eventConfigurationId,e.confidenceBasisSha256,s,a,t.now,t.eventConfigurationVersion??e.eventConfigurationVersion);t.resolveEyeHeights!==!1&&ao(r.objects,r.focalPoint??e.focalPoint,r.baseHeightM??0,c);for(let f of c)f.floorId=r.id;for(let f of c)o.push(f)}return o}let n=so(e.objects,e.zones,e.focalPoint,e.eventConfigurationId,e.confidenceBasisSha256,e.viewFromSeatUrl?{url:e.viewFromSeatUrl,meta:e.viewFromSeatMeta}:void 0,e.confidenceEvidence?{evidence:e.confidenceEvidence,coverage:"venue-representative"}:void 0,t.now,t.eventConfigurationVersion??e.eventConfigurationVersion);return t.resolveEyeHeights!==!1&&ao(e.objects,e.focalPoint,t.floorBaseHeightM??0,n),Vs(e,n,t)}function Vs(e,t,n){return!n.deriveRestrictedView||e.derivedRestrictedView===!1||n.resolveEyeHeights===!1||no(t,to(t,eo(e))),t}function ao(e,t,n,o){let r=e.filter(l=>l.type==="section"),i=n>0||r.some(l=>l.height!==void 0||l.rake!==void 0||(l.elevation??0)>0);if(!r.length||!i||!t){for(let l of o)l.eyeHeightM=n+Ee;return}let s=new Array(o.length),a=new Map;for(let l of r)a.has(l.id)||a.set(l.id,l);let c=new Map,f=new Map;for(let l=0;l<o.length;l++){let h=o[l],d=(h.sectionId?a.get(h.sectionId)??r.find(b=>b.logicalSectionId===h.sectionId&&me({x:h.x,y:h.y},b.outline,b.holes)):void 0)??r.find(b=>me({x:h.x,y:h.y},b.outline,b.holes))??null;if(s[l]=d,!d)continue;c.has(d.id)||c.set(d.id,De(d,{floorBaseHeightM:n}));let p=f.get(d.id);p?p.push(l):f.set(d.id,[l])}let u=new Array(o.length).fill(void 0);for(let[l,h]of f){let m=c.get(l);if(!m)continue;let d=m.rake>0?Math.tan(m.rake*Math.PI/180):0,p=Mt(l,o,h,t);for(let b of p.rows){let x=b.blockDepth*J*d,y=m.height+x;for(let M of b.seatIndices)u[M]=y}}for(let l=0;l<o.length;l++){let h=o[l],m=s[l];if(!m){h.eyeHeightM=n+Ee;continue}let d=c.get(m.id);h.eyeHeightM=(u[l]??d.height)+Ee}}var mo=Fe(require("earcut"),1),un=Fe(require("polygon-clipping"),1);function de(e){let t=0;for(let n=0,o=e.length;n<o;n+=1){let r=e[n],i=e[(n+1)%o];t+=r.x*i.y-i.x*r.y}return t/2}function pe(e,t,n){let o=!1;for(let r=0,i=e.length-1;r<e.length;i=r++){let s=e[r],a=e[i];s.y>n!=a.y>n&&t<(a.x-s.x)*(n-s.y)/(a.y-s.y)+s.x&&(o=!o)}return o}var w=J,Ys=.002;function Ks(e,t,n){let o=Math.hypot(t[0]-e[0],t[1]-e[1],t[2]-e[2]),r=Math.hypot(n[0]-t[0],n[1]-t[1],n[2]-t[2]),i=Math.hypot(e[0]-n[0],e[1]-n[1],e[2]-n[2]),s=Math.max(o,r,i);if(s<1e-9)return!0;let a=(o+r+i)/2;return 2*Math.sqrt(Math.max(0,a*(a-o)*(a-r)*(a-i)))/s<Ys}var Ve=class{constructor(t=16384){this.len=0;this.buf=new Float32Array(t)}push3(t,n,o){this.len+3>this.buf.length&&this.grow(this.len+3),this.buf[this.len++]=t,this.buf[this.len++]=n,this.buf[this.len++]=o}push1(t){this.len+1>this.buf.length&&this.grow(this.len+1),this.buf[this.len++]=t}grow(t){let n=this.buf.length*2;for(;n<t;)n*=2;let o=new Float32Array(n);o.set(this.buf.subarray(0,this.len)),this.buf=o}get length(){return this.len}toArray(){return this.buf.slice(0,this.len)}},Et=class{constructor(){this.pos=new Ve;this.nor=new Ve;this.col=new Ve;this.flr=new Ve;this.mat=new Ve;this.currentFloor=0;this.currentMaterial=0}setFloor(t){this.currentFloor=t}setMaterial(t){this.currentMaterial=t}tri(t,n,o,r,i,s=i,a=i){Ks(t,n,o)||(this.pos.push3(t[0],t[1],t[2]),this.pos.push3(n[0],n[1],n[2]),this.pos.push3(o[0],o[1],o[2]),this.nor.push3(r[0],r[1],r[2]),this.nor.push3(r[0],r[1],r[2]),this.nor.push3(r[0],r[1],r[2]),this.col.push3(i[0],i[1],i[2]),this.col.push3(s[0],s[1],s[2]),this.col.push3(a[0],a[1],a[2]),this.flr.push1(this.currentFloor),this.flr.push1(this.currentFloor),this.flr.push1(this.currentFloor),this.mat.push1(this.currentMaterial),this.mat.push1(this.currentMaterial),this.mat.push1(this.currentMaterial))}triN(t,n,o,r,i,s,a,c=a,f=a){[...t,...n,...o].every(Number.isFinite)&&(this.pos.push3(t[0],t[1],t[2]),this.pos.push3(n[0],n[1],n[2]),this.pos.push3(o[0],o[1],o[2]),this.nor.push3(r[0],r[1],r[2]),this.nor.push3(i[0],i[1],i[2]),this.nor.push3(s[0],s[1],s[2]),this.col.push3(a[0],a[1],a[2]),this.col.push3(c[0],c[1],c[2]),this.col.push3(f[0],f[1],f[2]),this.flr.push1(this.currentFloor),this.flr.push1(this.currentFloor),this.flr.push1(this.currentFloor),this.mat.push1(this.currentMaterial),this.mat.push1(this.currentMaterial),this.mat.push1(this.currentMaterial))}get vertexCount(){return this.pos.length/3}build(){return{position:this.pos.toArray(),normal:this.nor.toArray(),color:this.col.toArray(),floor:this.flr.toArray(),material:this.mat.toArray(),count:this.pos.length/3}}};function Ws(e,t,n){let o=t[0]-e[0],r=t[1]-e[1],i=t[2]-e[2],s=n[0]-e[0],a=n[1]-e[1],c=n[2]-e[2],f=r*c-i*a,u=i*s-o*c,l=o*a-r*s,h=Math.hypot(f,u,l)||1;return f/=h,u/=h,l/=h,[f,u,l]}function zs(e,t){let n=[...e],o=[];for(let s of e)o.push(s.x,s.y);let r=[];if(t){for(let s of t)if(!(s.length<3)){r.push(n.length);for(let a of s)n.push(a),o.push(a.x,a.y)}}let i=(0,mo.default)(o,r.length?r:void 0,2);return{pts:n,tris:i}}function Ae(e){return de(e)<0?[...e].reverse():e}var Zs=3;function $s(e,t,n,o){let r=o(e),i=o(t),s=o(n),a=(m,d,p,b)=>Math.abs(o({x:(m.x+d.x)/2,y:(m.y+d.y)/2})-(p+b)/2),c=(e.x+t.x+n.x)/3,f=(e.y+t.y+n.y)/3,u=(r+i+s)/3,l=Math.max(a(e,t,r,i),a(t,n,i,s),a(n,e,s,r),Math.abs(o({x:c,y:f})-u)),h=(m,d,p)=>{let b=Math.abs(o({x:(m+c)/2,y:(d+f)/2})-(p+u)/2);b>l&&(l=b)};return h((e.x+t.x)/2,(e.y+t.y)/2,(r+i)/2),h((t.x+n.x)/2,(t.y+n.y)/2,(i+s)/2),h((n.x+e.x)/2,(n.y+e.y)/2,(s+r)/2),l}function lt(e,t,n,o,r){if(r<=0)return $s(e,t,n,o);let i={x:(e.x+t.x)/2,y:(e.y+t.y)/2},s={x:(t.x+n.x)/2,y:(t.y+n.y)/2},a={x:(n.x+e.x)/2,y:(n.y+e.y)/2};return Math.max(lt(e,i,a,o,r-1),lt(i,t,s,o,r-1),lt(a,s,n,o,r-1),lt(i,s,a,o,r-1))}function ut(e,t,n,o,r,i,s,a){if(s>0){let h={x:(t.x+n.x)/2,y:(t.y+n.y)/2},m={x:(n.x+o.x)/2,y:(n.y+o.y)/2},d={x:(o.x+t.x)/2,y:(o.y+t.y)/2};ut(e,t,h,d,r,i,s-1,a),ut(e,h,n,m,r,i,s-1,a),ut(e,d,m,o,r,i,s-1,a),ut(e,h,m,d,r,i,s-1,a);return}let c=[t.x*w,r(t),t.y*w],f=[n.x*w,r(n),n.y*w],u=[o.x*w,r(o),o.y*w];if(a){e.triN(c,f,u,a(t),a(n),a(o),i);return}let l=Ws(c,f,u);l[1]<0&&(l=[-l[0],-l[1],-l[2]]),e.tri(c,f,u,l,i)}var Qs=8;function fo(e,t,n){if(!Number.isFinite(n))return e;let o=[],r=(i,s,a,c,f)=>{if(f>0){let u={x:(i.x+s.x)/2,y:(i.y+s.y)/2},l=t(u);if(Math.abs(l-(a+c)/2)>n){r(i,u,a,l,f-1),r(u,s,l,c,f-1);return}}o.push(i)};for(let i=0;i<e.length;i++){let s=e[i],a=e[(i+1)%e.length];r(s,a,t(s),t(a),Qs)}return o}function wt(e,t){if(e.length<3)return e;let n=[];for(let r of e){let i=n[n.length-1];i&&Math.hypot(r.x-i.x,r.y-i.y)<t||n.push(r)}for(;n.length>2&&Math.hypot(n[0].x-n[n.length-1].x,n[0].y-n[n.length-1].y)<t;)n.pop();if(n.length<3)return e;let o=[];for(let r=0;r<n.length;r++){let i=o.length?o[o.length-1]:n[(r-1+n.length)%n.length],s=n[r],a=n[(r+1)%n.length],c=a.x-i.x,f=a.y-i.y,u=Math.hypot(c,f);u>t&&Math.abs((s.x-i.x)*f-(s.y-i.y)*c)/u<t||o.push(s)}return o.length>=3?o:n}var vt=.001*ge*.1;function W(e,t,n,o,r,i,s,a,c=1/0,f){if(!t||t.length<3||(c===void 0&&(c=1/0),Math.abs(de(t))<1e-4))return;let u=wt(fo(wt(Ae(t),vt),o,c),vt),l=n?.map(S=>wt(fo(wt(Ae(S),vt),o,c),vt)).filter(S=>S.length>=3&&Math.abs(de(S))>=1e-4),{pts:h,tris:m}=zs(u,l),d=[i[0]*a.top,i[1]*a.top,i[2]*a.top],p=[i[0]*a.bottomCap,i[1]*a.bottomCap,i[2]*a.bottomCap],b=[s[0]*a.top,s[1]*a.top,s[2]*a.top],x=[s[0]*a.wallBottom,s[1]*a.wallBottom,s[2]*a.wallBottom],y=0;if(Number.isFinite(c))for(;y<Zs;y++){let S=0;for(let R=0;R<m.length;R+=3){let I=lt(h[m[R]],h[m[R+1]],h[m[R+2]],o,y);I>S&&(S=I)}if(S<=c)break}for(let S=0;S<m.length;S+=3){let R=h[m[S]],I=h[m[S+1]],P=h[m[S+2]];ut(e,R,I,P,o,d,y,f);let A=[R.x*w,r,R.y*w],_=[I.x*w,r,I.y*w],T=[P.x*w,r,P.y*w];e.tri(A,T,_,[0,-1,0],p)}let M=S=>{if(y<=0)return S;let R=1<<y,I=[];for(let P=0;P<S.length;P++){let A=S[P],_=S[(P+1)%S.length];for(let T=0;T<R;T++){let k=T/R;I.push({x:A.x+(_.x-A.x)*k,y:A.y+(_.y-A.y)*k})}}return I},g=Qt(u),v=[{ring:M(u),flip:!1}];if(l)for(let S of l)S.length>=3&&v.push({ring:M(S),flip:!0});for(let{ring:S,flip:R}of v)for(let I=0;I<S.length;I++){let P=S[I],A=S[(I+1)%S.length],_=(A.x-P.x)*w,k=(A.y-P.y)*w,E=-_,C=Math.hypot(k,E)||1;k/=C,E/=C;let O=(P.x+A.x)/2-g.x,F=(P.y+A.y)/2-g.y,L=k*O+E*F;R&&(L=-L),L<0&&(k=-k,E=-E);let B=[k,0,E],N=[P.x*w,o(P),P.y*w],H=[A.x*w,o(A),A.y*w],D=[P.x*w,r,P.y*w],V=[A.x*w,r,A.y*w];e.tri(N,H,V,B,b,b,x),e.tri(N,V,D,B,b,x,x)}}function ho(e){let t=0;for(let c of e)t+=c.count;let n=new Float32Array(t*3),o=new Float32Array(t*3),r=new Float32Array(t*3),i=new Float32Array(t),s=new Float32Array(t),a=0;for(let c of e)n.set(c.position,a*3),o.set(c.normal,a*3),r.set(c.color,a*3),i.set(c.floor,a),s.set(c.material,a),a+=c.count;return{position:n,normal:o,color:r,floor:i,material:s,count:t}}function Ie(e,t,n=2.5){if(t<=0||e.length<3)return e;let o=Ae(e),r=o.length,i=[];for(let a=0;a<r;a++){let c=o[a],f=o[(a+1)%r],u=f.x-c.x,l=f.y-c.y,h=Math.hypot(u,l)||1;i.push({x:l/h,y:-u/h})}let s=[];for(let a=0;a<r;a++){let c=o[a],f=i[(a-1+r)%r],u=i[a],l=f.x+u.x,h=f.y+u.y,m=Math.hypot(l,h),d=()=>{s.push([c.x+f.x*t,c.y+f.y*t]),s.push([c.x+u.x*t,c.y+u.y*t])};if(m<1e-9){d();continue}l/=m,h/=m;let p=l*f.x+h*f.y,b=1/Math.max(p,1e-6);if(!Number.isFinite(b)||b>n){d();continue}s.push([c.x+l*t*b,c.y+h*t*b])}if(s.length<3)return e;try{let a=un.default.union([[...s,s[0]]]),c=null,f=-1/0;for(let l of a){let h=Math.abs(de(l[0].map(([m,d])=>({x:m,y:d}))));h>f&&(f=h,c=l[0])}if(!c)return e;let u=c.map(([l,h])=>({x:l,y:h}));if(u.length>1){let l=u[0],h=u[u.length-1];Math.abs(l.x-h.x)<1e-9&&Math.abs(l.y-h.y)<1e-9&&u.pop()}return u.length>=3?u:e}catch{return e}}function Ye(e,t,n=2.5){if(e.length<3)return[];if(t<=0)return e;let o=Ae(e),r=o.length,i=[];for(let c=0;c<r;c++){let f=o[c],u=o[(c+1)%r],l=Math.hypot(u.x-f.x,u.y-f.y)||1;i.push({x:-(u.y-f.y)/l,y:(u.x-f.x)/l})}let s=[],a=[];for(let c=0;c<r;c++){let f=o[c],u=i[(c-1+r)%r],l=i[c],h=u.x+l.x,m=u.y+l.y,d=Math.hypot(h,m),p=d<1e-9?1/0:1/Math.max(h/d*u.x+m/d*u.y,1e-6);if(!Number.isFinite(p)||p>n){s.push({x:f.x+u.x*t,y:f.y+u.y*t},{x:f.x+l.x*t,y:f.y+l.y*t}),a.push(c,c);continue}h/=d,m/=d,s.push({x:f.x+h*t*p,y:f.y+m*t*p}),a.push(c)}for(let c=0;c<s.length;c++){let f=(c+1)%s.length,u=a[c],l=a[f];if(l!==(u+1)%r)continue;let h=o[u],m=o[l];if((s[f].x-s[c].x)*(m.x-h.x)+(s[f].y-s[c].y)*(m.y-h.y)<=0)return[]}try{let c=un.default.intersection([[...s.map(d=>[d.x,d.y]),[s[0].x,s[0].y]]],[[...o.map(d=>[d.x,d.y]),[o[0].x,o[0].y]]]),f=null,u=0;for(let d of c){let p=Math.abs(de(d[0].map(([b,x])=>({x:b,y:x}))));p>u&&(u=p,f=d[0])}if(!f)return[];let l=f.map(([d,p])=>({x:d,y:p})),h=l[0],m=l[l.length-1];return l.length>1&&Math.abs(h.x-m.x)<1e-9&&Math.abs(h.y-m.y)<1e-9&&l.pop(),l.length>=3?Ae(l):[]}catch{return[]}}function At(e,t,n,o,r=28){let i=[];for(let s=0;s<r;s++){let a=s/r*Math.PI*2;i.push({x:e+n*Math.cos(a),y:t+o*Math.sin(a)})}return i}function ft(e,t,n,o){return[{x:e,y:t},{x:e+n,y:t},{x:e+n,y:t+o},{x:e,y:t+o}]}var mt=3,Ke=.38,ht=.24;function qs(e){if(e.length<3)return null;let t=e[0],n=e[Math.floor(e.length/2)],o=e[e.length-1],r=(n.x-t.x)*w,i=(n.y-t.y)*w,s=(o.x-t.x)*w,a=(o.y-t.y)*w,c=2*(r*a-i*s);if(Math.abs(c)<1e-7)return null;let f=r*r+i*i,u=s*s+a*a,l=(f*a-u*i)/c+t.x*w,h=(r*u-s*f)/c+t.y*w,m=Math.hypot(t.x*w-l,t.y*w-h);return m<1||m>200||!Number.isFinite(m)||e.some(d=>Math.abs(Math.hypot(d.x*w-l,d.y*w-h)-m)>.03)?null:{x:l,z:h,radius:m}}function po(e){let t=[],n=new Map,o=(c,f)=>`${Math.floor(c/mt)},${Math.floor(f/mt)}`;for(let c of e)for(let f of c.rows){for(let l of f.pts){let h=l.x*w,m=l.y*w,d=o(h,m),p=n.get(d)??[];p.push({x:h,z:m,y:f.y,floor:c.floorIndex}),n.set(d,p)}if(f.patch||f.pts.length<2)continue;let u=qs(f.pts);for(let l of[0,f.pts.length-1]){let h=f.pts[l],m=f.pts[l===0?1:l-1],d=h.x-m.x,p=h.y-m.y,b=Math.hypot(d,p);b<1e-6||t.push({sectionId:c.sectionId,floorIndex:c.floorIndex,curve:u,row:f,point:h,x:h.x*w,z:h.y*w,dx:d/b,dz:p/b})}}let r=new Map;t.forEach((c,f)=>{let u=o(c.x,c.z),l=r.get(u)??[];l.push(f),r.set(u,l)});let i=(c,f)=>{let u=Math.floor(c/mt),l=Math.floor(f/mt);return[-1,0,1].flatMap(h=>[-1,0,1].map(m=>`${u+h},${l+m}`))},s=new Map;t.forEach((c,f)=>{let u=-1,l=1/0,h=!1;for(let m of i(c.x,c.z))for(let d of r.get(m)??[]){let p=t[d];if(c.sectionId===p.sectionId&&c.row.blockId===p.row.blockId||c.floorIndex!==p.floorIndex||Math.abs(c.row.y-p.row.y)>.05)continue;let b=p.x-c.x,x=p.z-c.z,y=Math.hypot(b,x);if(y<Ke*2+.45||y>mt)continue;let M=c.curve&&p.curve&&Math.hypot(c.curve.x-p.curve.x,c.curve.z-p.curve.z)<=.05&&Math.abs(c.curve.radius-p.curve.radius)<=.05,g=Math.min((b*c.dx+x*c.dz)/y,(-b*p.dx-x*p.dz)/y);(M?g<.8:g<.98)||!M&&(Math.abs(b*c.dz-x*c.dx)>.15||Math.abs(b*p.dz-x*p.dx)>.15)||(y<l-.02?(u=d,l=y,h=!1):Math.abs(y-l)<=.02&&(h=!0))}u>=0&&!h&&s.set(f,u)});let a=[];for(let[c,f]of s){if(c>=f||s.get(f)!==c)continue;let u=t[c],l=t[f],h=Math.hypot(l.x-u.x,l.z-u.z),m=(l.x-u.x)/h,d=(l.z-u.z)/h,p=!1;for(let x of i((u.x+l.x)/2,(u.z+l.z)/2))for(let y of n.get(x)??[]){if(y.floor!==u.floorIndex||Math.abs(y.y-u.row.y)>.75)continue;let M=(y.x-u.x)*m+(y.z-u.z)*d,g=Math.abs((y.x-u.x)*d-(y.z-u.z)*m);M>.01&&M<h-.01&&g<ht+Ke&&(p=!0)}if(p)continue;let b=(x,y)=>({x:(u.x+m*x-d*y)/w,y:(u.z+d*x+m*y)/w});a.push({sections:[u.sectionId,l.sectionId],blocks:[u.row.blockId,l.row.blockId],floorIndex:u.floorIndex,ends:[u.point,l.point],clearWidthM:h-2*Ke,heightM:(u.row.y+l.row.y)/2,outline:[b(Ke,-ht),b(h-Ke,-ht),b(h-Ke,ht),b(Ke,ht)]})}return a}var Js=/^#?([\da-f]{3}|[\da-f]{6})$/i;function bo(e){let t=e.replace("#","");return{r:parseInt(t.slice(0,2),16),g:parseInt(t.slice(2,4),16),b:parseInt(t.slice(4,6),16)}}function ea(e){let t=Js.exec((e??"").trim());if(!t)return null;let n=t[1].length===3?t[1].split("").map(r=>r+r).join(""):t[1],o=parseInt(n,16);return[o>>16&255,o>>8&255,o&255]}function oe(e){let t=ea(e);return t?[t[0]/255,t[1]/255,t[2]/255]:null}function ta(e){return .2126*e[0]+.7152*e[1]+.0722*e[2]}function re(e,t,n){return[e[0]+(t[0]-e[0])*n,e[1]+(t[1]-e[1])*n,e[2]+(t[2]-e[2])*n]}function Ce(e,t){let n=ta(e);return re(e,[n,n,n],t)}function yo({r:e,g:t,b:n}){let o=e/255,r=t/255,i=n/255,s=Math.max(o,r,i),a=Math.min(o,r,i),c=(s+a)/2;if(s===a)return{h:0,s:0,l:c};let f=s-a,u=c>.5?f/(2-s-a):f/(s+a),l;return s===o?l=((r-i)/f+(r<i?6:0))/6:s===r?l=((i-o)/f+2)/6:l=((o-r)/f+4)/6,{h:l,s:u,l:c}}var Ct=["available","held","sold","selected","dimmed"];function xo(e){let t=Ct.indexOf(e);return t<0?0:t}var go={available:[.24,.82,.52],held:[.34,.39,.45],sold:[.34,.39,.45],selected:[.24,.74,1],dimmed:[.28,.32,.37]};var fn={ground:[.07,.085,.11],tierTop:[.24,.28,.34],tierWall:[.17,.2,.25],stageTop:[.94,.7,.38],stageWall:[.48,.33,.18],decorTop:[.22,.25,.29],decorWall:[.15,.17,.2],gaTop:[.24,.28,.33],gaWall:[.16,.19,.23],boothTop:[.3,.33,.38],boothWall:[.2,.23,.27],tableTop:[.38,.34,.29],tableWall:[.24,.21,.18]},mn={top:[.05,.06,.08],bottom:[.1,.12,.15]};function z(e,t){return[Math.min(1,e[0]*t),Math.min(1,e[1]*t),Math.min(1,e[2]*t)]}var na=.15,oa=1.6;function Mo(e){return Nn(e??1,na,oa)}var ra=.15,ia=.9,sa=1.76;function aa(){return{background:{top:[...mn.top],bottom:[...mn.bottom]},structure:fn,seatStates:{...go},seatScale:1,materials:{seat:null,shell:null,roughness:.78}}}function ca(e){return!!e&&e[0]*.2126+e[1]*.7152+e[2]*.0722>.55?{deck:"#a8ada9",fascia:"#69777c",shell:"#8d9ca0",roughness:.87}:{deck:"#69747b",fascia:"#3e4d58",shell:"#526572",roughness:.87}}function So(e){let t=aa();e??={};let n=oe(e.background);if(n){t.background={top:z(n,ia),bottom:z(n,sa)};let a={};for(let[f,u]of Object.entries(fn))a[f]=re(u,n,ra);n[0]*.2126+n[1]*.7152+n[2]*.0722>.55&&(a.ground=z(n,.86)),t.structure=a}let o=oe(e.selectionColor)??oe(e.accent);o&&(t.seatStates={...t.seatStates,selected:o});let r=e.seatScale;typeof r=="number"&&Number.isFinite(r)&&(t.seatScale=Mo(r));let i=Object.fromEntries(Object.entries(e.venue3d??{}).filter(([,a])=>a!=null)),s={...ca(n),...i};if(s){let a=oe(s.deck),c=oe(s.fascia);a&&(t.structure={...t.structure,tierTop:a,gaTop:a}),c&&(t.structure={...t.structure,tierWall:c,gaWall:c}),t.materials.seat=oe(s.seat),t.materials.shell=oe(s.shell),typeof s.roughness=="number"&&Number.isFinite(s.roughness)&&(t.materials.roughness=Math.min(1,Math.max(0,s.roughness)))}return t}function Io(e,t){let n=[];for(let o of t)n.push(...e.seatStates[o]);return n}var la=[{key:"wheelchair",label:"Wheelchair space",short:"Wheelchair",icon:"\u267F"},{key:"companion",label:"Companion seat",short:"Companion",icon:"\u{1F9D1}\u200D\u{1F91D}\u200D\u{1F9D1}"},{key:"semi-ambulatory",label:"Semi-ambulatory (limited mobility)",short:"Limited mobility",icon:"\u{1F9AF}"},{key:"designated-aisle",label:"Designated aisle / transfer seat",short:"Aisle transfer",icon:"AS"},{key:"step-free",label:"Step-free accessible seat",short:"Step-free",icon:"SF"},{key:"hearing",label:"Assistive listening",short:"Hearing",icon:"\u{1F9BB}"},{key:"cart",label:"CART live-caption view",short:"CART captions",icon:"CC"},{key:"sign-language",label:"Sign-language view",short:"Sign language",icon:"\u{1F91F}"},{key:"low-vision",label:"Blind / low-vision viewing",short:"Low vision",icon:"LV"},{key:"sensory-friendly",label:"Quiet / sensory-friendly seating",short:"Sensory-friendly",icon:"QS"},{key:"plus-size",label:"Plus-size seat",short:"Plus-size",icon:"\u{1F4BA}"},{key:"lift-armrest",label:"Lift-up armrest",short:"Lift armrest",icon:"\u2195\uFE0F"}],lf=new Map(la.map(e=>[e.key,e]));var ua={wheelchair:"#3b82f6",companion:"#8b5cf6","semi-ambulatory":"#0ea5e9","designated-aisle":"#0284c7","step-free":"#16a34a",hearing:"#14b8a6",cart:"#7c3aed","sign-language":"#f59e0b","low-vision":"#d97706","sensory-friendly":"#6366f1","plus-size":"#ec4899","lift-armrest":"#22c55e"};function Po(e){let t=e?.[0];return t&&ua[t]||"#3b82f6"}var fa=[{key:"obstructedView",label:"Obstructed view",short:"Obstructed",icon:"\u26D4"},{key:"restrictedView",label:"Restricted view",short:"Restricted",icon:"\u{1F441}"},{key:"premium",label:"Premium seat",short:"Premium",icon:"\u2605"}],uf=new Map(fa.map(e=>[e.key,e]));var ma=["reference-focal","bar","entrance","exit","restroom","screen","sound","concession","coat","wall","rail","suite","obstruction"],ff=new Set(ma);var wo=[{key:"circle",label:"Standard seat",shortLabel:"Standard",useCase:"General assigned seating",group:"general",path:null,bounds:null,mark:null},{key:"theatre",label:"Theatre chair",shortLabel:"Theatre",useCase:"Auditoriums, arenas and stadium stands",group:"fixed",path:"M4.5 3.5 Q4.5 1.5 6.5 1.5 L17.5 1.5 Q19.5 1.5 19.5 3.5 L19.5 13 L4.5 13 Z M3.5 12 L20.5 12 Q22.5 12 22.5 14 L22.5 21 Q22.5 22.5 21 22.5 Q19.5 22.5 19.5 21 L19.5 17.5 L4.5 17.5 L4.5 21 Q4.5 22.5 3 22.5 Q1.5 22.5 1.5 21 L1.5 14 Q1.5 12 3.5 12 Z",bounds:{x:1.5,y:1.5,width:21,height:21},mark:{x:12,y:10,radius:6}},{key:"dining",label:"Dining chair",shortLabel:"Dining",useCase:"Banquets, restaurants and table seating",group:"flexible",path:"M7 1 Q6 1 6 2.5 L6.75 10.5 L5 10.5 Q4 10.5 4 12 L4 14 Q4 15 5.25 15 L6 15 L4 23 L7 23 L9.5 15 L14.5 15 L17 23 L20 23 L18 15 L18.75 15 Q20 15 20 14 L20 12 Q20 10.5 19 10.5 L17.25 10.5 L18 2.5 Q18 1 17 1 Z",bounds:{x:4,y:1,width:16,height:22},mark:{x:12,y:10,radius:4.5}},{key:"folding",label:"Folding chair",shortLabel:"Folding",useCase:"Concert floors, ceremonies and conferences",group:"flexible",path:"M6 2 Q5 2 5 3 L6 8 L18 8 L19 3 Q19 2 18 2 Z M5 9 L19 9 Q20 9 20 10.5 L19 13 L5 13 L4 10.5 Q4 9 5 9 Z M6 12 L9 12 L12 17 L15 12 L18 12 L14 19 L17 23 L14 23 L12 21 L10 23 L7 23 L10 19 Z",bounds:{x:4,y:2,width:16,height:21},mark:{x:12,y:5,radius:3}},{key:"armchair",label:"Premium armchair",shortLabel:"Armchair",useCase:"Boxes, lounges and club seating",group:"premium",path:"M3.5 4 Q3.5 1.5 6 1.5 L18 1.5 Q20.5 1.5 20.5 4 L20.5 13 L3.5 13 Z M1.5 12.5 Q1.5 10 3.25 10 Q5 10 5 12.5 L5 13.5 L19 13.5 L19 12.5 Q19 10 20.75 10 Q22.5 10 22.5 12.5 L22.5 19.5 Q22.5 22 20 22 L4 22 Q1.5 22 1.5 19.5 Z",bounds:{x:1.5,y:1.5,width:21,height:20.5},mark:{x:12,y:7.5,radius:5.5}},{key:"recliner",label:"Recliner",shortLabel:"Recliner",useCase:"Luxury cinemas and premium clubs",group:"premium",path:"M7 2 Q7 1 8.5 1 L15.5 1 Q17 1 17 2 L19 13 L5 13 Z M4 9 Q2 9 2 11.5 L2 16 Q2 18 4 18 L6 18 L6 15 L18 15 L18 18 L20 18 Q22 18 22 16 L22 11.5 Q22 9 20 9 Q18 9 18 11 L18 13 L6 13 L6 11 Q6 9 4 9 Z M7 17 L17 17 Q18 17 18.5 18.5 L19.5 22.5 L4.5 22.5 L5.5 18.5 Q6 17 7 17 Z",bounds:{x:2,y:1,width:20,height:21.5},mark:{x:12,y:8,radius:5}},{key:"stool",label:"Stool",shortLabel:"Stool",useCase:"Bars, high-tops and seating rails",group:"flexible",path:"M6 2.5 L18 2.5 Q22 2.5 22 6.5 L22 12 Q22 16 18 16 L6 16 Q2 16 2 12 L2 6.5 Q2 2.5 6 2.5 Z M6 15.5 L9.5 15.5 L7.5 22.5 L3 22.5 Z M14.5 15.5 L18 15.5 L20.5 22.5 L16 22.5 Z",bounds:{x:2,y:2.5,width:20,height:20},mark:{x:12,y:9.25,radius:6.5}},{key:"bench",label:"Bench place",shortLabel:"Bench",useCase:"Pews, bleachers and terraces",group:"fixed",path:"M2.5 0.5 L21.5 0.5 Q23 0.5 23 2 L23 5 Q23 6.5 21.5 6.5 L2.5 6.5 Q1 6.5 1 5 L1 2 Q1 0.5 2.5 0.5 Z M2 7.5 L22 7.5 Q23.5 7.5 23.5 9 L23.5 15.5 Q23.5 17 22 17 L18 17 L18 21.5 Q18 22.5 16.75 22.5 Q15.5 22.5 15.5 21.5 L15.5 17 L8.5 17 L8.5 21.5 Q8.5 22.5 7.25 22.5 Q6 22.5 6 21.5 L6 17 L2 17 Q0.5 17 0.5 15.5 L0.5 9 Q0.5 7.5 2 7.5 Z",bounds:{x:.5,y:.5,width:23,height:22},mark:{x:12,y:12.25,radius:4.75}}],vo=wo.map(e=>e.key),ha=new Map(wo.map(e=>[e.key,e]));function Ro(e){return typeof e=="string"&&ha.has(e)}function Eo(e,t){return Ro(e)?e:Ro(t?.seatGlyph)?t.seatGlyph:"circle"}var ue={pedestal:0,pad:1,back:2,arm:3,footrest:4,leg:5,body:10,head:11},da=.44,pa=.15,ba=.3,ya=.24;function Ao(e){return e===void 0||!Number.isFinite(e)||e<=0?ya:Math.min(ba,Math.max(pa,e*da))}var xa=.05,Co=.45,ga=Co+xa,Ma=.92;var bf=[{part:ue.pedestal,min:[-.3,0,-.3],max:[.3,.36,.3]},{part:ue.pad,min:[-1,.36,-.95],max:[1,Co,1]},{part:ue.back,min:[-1,ga,-1],max:[1,Ma,-.72]},{part:ue.arm,min:[-1,.44,-.82],max:[-.78,.65,.78]},{part:ue.arm,min:[.78,.44,-.82],max:[1,.65,.78]},{part:ue.footrest,min:[-.9,.18,.78],max:[.9,.31,1.34]},{part:ue.leg,min:[-.82,0,-.7],max:[-.62,.37,-.48]},{part:ue.leg,min:[.62,0,-.7],max:[.82,.37,-.48]},{part:ue.leg,min:[-.82,0,.48],max:[-.62,.37,.7]},{part:ue.leg,min:[.62,0,.48],max:[.82,.37,.7]}],yf=[{part:ue.body,min:[-.52,.39,-.08],max:[-.08,.55,.82]},{part:ue.body,min:[.08,.39,-.08],max:[.52,.55,.82]},{part:ue.body,min:[-.47,.05,.58],max:[-.13,.43,.82]},{part:ue.body,min:[.13,.05,.58],max:[.47,.43,.82]},{part:ue.head,min:[-.16,1.04,-.33],max:[.16,1.1,-.13]}];function _o(e,t,n,o){let r=new Float32Array(t),i=f=>e[f*3],s=f=>e[f*3+2],a=0,c=(f,u)=>{let l=u-f;for(let h=f;h<u;h++){let[m,d]=o(h),p=m-i(h),b=d-s(h);if(l>=2){let x=Math.max(f,h-1),y=Math.min(u-1,h+1),M=i(y)-i(x),g=s(y)-s(x),v=Math.hypot(M,g);if(v>1e-6){let S=-g/v,R=M/v;S*p+R*b<0&&(S=-S,R=-R),p=S,b=R}}r[h]=p===0&&b===0?0:Math.atan2(p,b)}};for(let f=1;f<=t;f++)(f===t||n(f)!==n(a))&&(c(a,f),a=f);return r}var _t=.22;var Sa=.42;function Ia(e){let t=e.length,n=new Float64Array(t);if(t<2)return n.fill(1/0),n;let o=1/0,r=1/0,i=-1/0,s=-1/0;for(let d of e)d.x<o&&(o=d.x),d.y<r&&(r=d.y),d.x>i&&(i=d.x),d.y>s&&(s=d.y);let a=Math.max(i-o,1e-6),c=Math.max(s-r,1e-6),f=Math.max(Math.sqrt(a*c/t),1e-6),u=Math.max(1,Math.ceil(a/f)+1),l=Math.max(1,Math.ceil(c/f)+1),h=new Map,m=(d,p)=>{let b=Math.min(u-1,Math.max(0,Math.floor((d-o)/f)));return Math.min(l-1,Math.max(0,Math.floor((p-r)/f)))*u+b};for(let d=0;d<t;d++){let p=m(e[d].x,e[d].y),b=h.get(p);b?b.push(d):h.set(p,[d])}for(let d=0;d<t;d++){let p=e[d],b=Math.min(u-1,Math.max(0,Math.floor((p.x-o)/f))),x=Math.min(l-1,Math.max(0,Math.floor((p.y-r)/f))),y=1/0;for(let M=1;M<=4;M++){for(let g=x-M;g<=x+M;g++)if(!(g<0||g>=l))for(let v=b-M;v<=b+M;v++){if(v<0||v>=u||M>1&&Math.abs(g-x)<M&&Math.abs(v-b)<M)continue;let S=h.get(g*u+v);if(S)for(let R of S){if(R===d)continue;let I=Math.hypot(e[R].x-p.x,e[R].y-p.y);I<y&&(y=I)}}if(Number.isFinite(y)&&y<=M*f)break}n[d]=y}return n}function Pa(e){let t=e.eyeHeightM;return Number.isFinite(t)?Math.max(0,t-Ee):0}function ko(e,t,n,o,r,i){let s=e.length,a=new Float32Array(s*3),c=new Float32Array(s),f=new Float32Array(s*3),u=new Float32Array(s),l=new Float32Array(s),h=new Float32Array(s),m=new Float32Array(s),d=new Float32Array(s*3),p=new Map,b=Ia(e);for(let x=0;x<s;x++){let y=e[x],g=(n?.seatPitchU(x)??b[x])*w;u[x]=Number.isFinite(g)?Math.max(.06,Math.min(_t,g*Sa)):_t,l[x]=Ao(Number.isFinite(g)?g:void 0);let v=Eo(y.glyph,{seatGlyph:i?.get(y.categoryKey)});h[x]=vo.indexOf(v),m[x]=y.wheelchairSpaceType==="no-seat"?0:1,a[x*3]=y.x*w,a[x*3+1]=n?n.seatDeckY(x):Pa(y),a[x*3+2]=y.y*w,c[x]=xo(t?t(y):"available");let S=oe(r?.get(y.categoryKey)??"#6e7bff")??[.43,.48,1];if(f[x*3]=S[0],f[x*3+1]=S[1],f[x*3+2]=S[2],y.accessibility?.length){let R=oe(Po(y.accessibility));R&&(d[x*3]=R[0],d[x*3+1]=R[1],d[x*3+2]=R[2])}p.set(y.id,x)}return{count:s,iPosition:a,iState:c,iCategory:f,iMaxRadius:u,iRing:d,idToIndex:p,iChairWidth:l,iGlyph:h,iPhysicalSeat:m,iFloor:o??new Float32Array(s),iSection:new Float32Array(s).fill(-1),iYaw:new Float32Array(s)}}function Ra(e){return{kind:"radial",rowCount:0,rows:[],nearestRow:()=>-1,depthAt:(t,n)=>Math.hypot(t-e.x,n-e.y),gradientAt:(t,n)=>{let o=t-e.x,r=n-e.y,i=Math.hypot(o,r);return i<1e-9?[0,0]:[o/i,r/i]}}}function wa(e,t){if(!e.length)return null;let n=0,o=0,r=0;for(let m of e)n+=m.x,o+=m.y,r+=Math.hypot(m.x-t.x,m.y-t.y);let i=e.length;n/=i,o/=i,r/=i;let s=e[0],a=-1;for(let m of e){let d=Math.hypot(m.x-n,m.y-o);d>a&&(a=d,s=m)}let c=s.x-n,f=s.y-o,u=Math.hypot(c,f);u>1e-9?(c/=u,f/=u):(c=1,f=0);let l=[...e].sort((m,d)=>(m.x-n)*c+(m.y-o)*f-((d.x-n)*c+(d.y-o)*f)),h=0;for(let m of l){let d=Math.hypot(m.x-n,m.y-o);d>h&&(h=d)}return{pts:l,cx:n,cy:o,radius:h,depth:r}}function To(e,t,n){let o=e.pts;if(o.length===1)return Math.hypot(t-o[0].x,n-o[0].y);let r=1/0;for(let i=0;i+1<o.length;i++){let s=o[i],a=o[i+1],c=a.x-s.x,f=a.y-s.y,u=c*c+f*f,l=u>1e-12?((t-s.x)*c+(n-s.y)*f)/u:0;l<0?l=0:l>1&&(l=1);let h=Math.hypot(t-(s.x+l*c),n-(s.y+l*f));h<r&&(r=h)}return r}var kt=8;function va(e,t,n){let o=new Array(kt).fill(1/0),r=new Array(kt).fill(-1);for(let u=0;u<e.length;u++){let l=e[u],h=Math.hypot(t-l.cx,n-l.cy)-l.radius;for(let m=0;m<kt;m++)if(h<o[m]){for(let d=kt-1;d>m;d--)o[d]=o[d-1],r[d]=r[d-1];o[m]=h,r[m]=u;break}}let i=new Array(3).fill(1/0),s=new Array(3).fill(-1);for(let u of r){if(u<0)continue;let l=To(e[u],t,n);for(let h=0;h<3;h++)if(l<i[h]){for(let m=2;m>h;m--)i[m]=i[m-1],s[m]=s[m-1];i[h]=l,s[h]=u;break}}if(s[0]<0)return 0;if(i[0]<1e-6)return e[s[0]].depth;let a=i[0]*2.2,c=0,f=0;for(let u=0;u<3;u++){let l=s[u];if(l<0||i[u]>a)continue;let h=1/(i[u]*i[u]);c+=h*e[l].depth,f+=h}return f>0?c/f:e[s[0]].depth}function Ea(e){let t=(o,r)=>va(e,o,r),n=(o,r)=>{let i=1/0,s=-1;for(let a=0;a<e.length;a++){let c=e[a];if(Math.hypot(o-c.cx,r-c.cy)-c.radius>=i)continue;let f=To(c,o,r);f<i&&(i=f,s=a)}return s};return{kind:"rows",rowCount:e.length,rows:e,nearestRow:n,depthAt:t,gradientAt:(o,r)=>{let i=(t(o+.5,r)-t(o-.5,r))/1,s=(t(o,r+.5)-t(o,r-.5))/(2*.5),a=Math.hypot(i,s);return a<1e-9?[0,0]:[i/a,s/a]}}}function Lo(e,t){let n=[];for(let o of e){let r=wa(o.points,t);r&&n.push(r)}return n.length<2?Ra(t):(n.sort((o,r)=>o.depth-r.depth),Ea(n))}var pn=Fe(require("polygon-clipping"),1);var Do=Fe(require("earcut"),1);var Aa=.58,Oo=.01,Me=_t*1.5*ge,Ca=.5,_a=.6;function ka(e,t){let n=e.length,o=[];for(let s=0;s<n;s++){let a=e[Math.max(0,s-1)],c=e[Math.min(n-1,s+1)],f=c.x-a.x,u=c.y-a.y,l=Math.hypot(f,u);if(l<1e-9){o.push([0,0]);continue}f/=l,u/=l,o.push([-u,f])}let r=0;for(let s=0;s<n;s++)r+=(e[s].x-t.x)*o[s][0]+(e[s].y-t.y)*o[s][1];return r<0?o.map(([s,a])=>[-s,-a]):o}function Ta(e,t){if(e.length<2||t<=0)return[...e];let n=[...e],o=(s,a)=>{let c=a.x-s.x,f=a.y-s.y,u=Math.hypot(c,f)||1;return{x:c/u,y:f/u}},r=o(n[1],n[0]),i=o(n[n.length-2],n[n.length-1]);return n.unshift({x:n[0].x+r.x*t,y:n[0].y+r.y*t}),n.push({x:n[n.length-1].x+i.x*t,y:n[n.length-1].y+i.y*t}),n}var Bo=Math.PI/12;function La(e){if(e.length<3)return[...e];let t=[...e].sort((i,s)=>i.x-s.x||i.y-s.y),n=(i,s,a)=>(s.x-i.x)*(a.y-i.y)-(s.y-i.y)*(a.x-i.x),o=i=>{let s=[];for(let a of i){for(;s.length>=2&&n(s[s.length-2],s[s.length-1],a)<=0;)s.pop();s.push(a)}return s.pop(),s},r=[...o(t),...o([...t].reverse())];return r.length>=3?r:[...e]}function No(e,t){if(!e.length||!(t>0))return[];let n=La(e),o=(a,c,f,u)=>{let l=f-c;for(;l<0;)l+=Math.PI*2;for(;l>Math.PI*2;)l-=Math.PI*2;let h=Math.max(1,Math.ceil(l/Bo)),m=t/Math.cos(l/h/2);for(let d=0;d<=h;d++){let p=c+l*d/h;u.push({x:a.x+Math.cos(p)*m,y:a.y+Math.sin(p)*m})}};if(n.length<3){let a=0,c=0;for(let m of n)a+=m.x,c+=m.y;a/=n.length||1,c/=n.length||1;let f=0;for(let m of n)f=Math.max(f,Math.hypot(m.x-a,m.y-c));let u=[],l=Math.max(3,Math.ceil(Math.PI*2/Bo)),h=(f+t)/Math.cos(Math.PI/l);for(let m=0;m<l;m++){let d=m/l*Math.PI*2;u.push({x:a+Math.cos(d)*h,y:c+Math.sin(d)*h})}return u}let r=n.length,i=[];for(let a=0;a<r;a++){let c=n[a],f=n[(a+1)%r];i.push(Math.atan2(-(f.x-c.x),f.y-c.y))}let s=[];for(let a=0;a<r;a++)o(n[a],i[(a+r-1)%r],i[a],s);return Uo(s)}function Oa(e,t,n){if(e.length===1)return Math.hypot(t-e[0].x,n-e[0].y);let o=1/0;for(let r=0;r+1<e.length;r++){let i=e[r],s=e[r+1],a=s.x-i.x,c=s.y-i.y,f=a*a+c*c,u=f>1e-12?((t-i.x)*a+(n-i.y)*c)/f:0;u<0?u=0:u>1&&(u=1);let l=Math.hypot(t-(i.x+u*a),n-(i.y+u*c));l<o&&(o=l)}return o}function Tt(e){let t=e.map(r=>{let i=0,s=0;for(let f of r.pts)i+=f.x,s+=f.y;let a=r.pts.length||1;i/=a,s/=a;let c=0;for(let f of r.pts){let u=Math.hypot(f.x-i,f.y-s);u>c&&(c=u)}return{cx:i,cy:s,rad:c}}),n=r=>{let i=r.length;return i<=2?[...r]:[r[Math.floor(i*.25)],r[Math.floor(i*.5)],r[Math.floor(i*.75)]]},o=[];for(let r=0;r<e.length;r++){let i=n(e[r].pts),s=[],a=1/0,c=null;for(let u of i){let l=1/0;for(let h=0;h<e.length;h++){if(h===r||Math.abs(e[h].y-e[r].y)<.001)continue;let m=t[h],d=Math.hypot(u.x-m.cx,u.y-m.cy)-m.rad;if(d>=l&&d>=a)continue;let p=Oa(e[h].pts,u.x,u.y);p<l&&(l=p),e[h].depth<e[r].depth&&p<a&&(a=p,c=e[h].y)}Number.isFinite(l)&&l>0&&s.push(l)}s.sort((u,l)=>u-l);let f=s.length?s[Math.floor(s.length/2)]:1;o.push({pitch:f,belowY:c})}return o}function Go(e,t,n,o){let r=e[t],i=r.pts.length>=2?[...r.pts]:r.pts.length===1?(()=>{let u=r.pts[0],l=u.x-o.x,h=u.y-o.y,m=Math.hypot(l,h)||1;l/=m,h/=m;let d=Math.max(n[t].pitch,.001)*.5;return[{x:u.x+h*d,y:u.y-l*d},{x:u.x-h*d,y:u.y+l*d}]})():[];if(i.length<2)return null;let s=0,a=0;for(let u=1;u<i.length;u++){let l=Math.hypot(i[u].x-i[u-1].x,i[u].y-i[u-1].y);l>1e-6&&(s+=l,a++)}let c=a>0?s/a:0,f=Ta(i,Math.max(c*_a,Me));return{pts:f,nrm:ka(f,o),front:Math.max(n[t].pitch*Aa,Me),back:Math.max(n[t].pitch*Ca,Me)}}var Qe=1.5,jo=.3;function hn(e,t){if(e.length<3)return e;let n=e[0],o=e[e.length-1],r=o.x-n.x,i=o.y-n.y,s=Math.hypot(r,i),a=-1,c=-1;for(let l=1;l<e.length-1;l++){let h=e[l],m=s>1e-12?Math.abs((h.x-n.x)*i-(h.y-n.y)*r)/s:Math.hypot(h.x-n.x,h.y-n.y);m>a&&(a=m,c=l)}if(a<=t||c<0)return[n,o];let f=hn(e.slice(0,c+1),t),u=hn(e.slice(c),t);return[...f.slice(0,-1),...u]}function Ho(e,t){if(e.length<4)return e;let n=hn([...e,e[0]],t);return n.pop(),n.length>=3?n:e}function Ba(e){let t=e.map((o,r)=>{let i=e[(r+1)%e.length];return{a:o,b:i,i:r,minX:Math.min(o.x,i.x),maxX:Math.max(o.x,i.x),minY:Math.min(o.y,i.y),maxY:Math.max(o.y,i.y)}}).sort((o,r)=>o.minX-r.minX),n=(o,r,i)=>(r.x-o.x)*(i.y-o.y)-(r.y-o.y)*(i.x-o.x);for(let o=0;o<t.length;o++){let r=t[o];for(let i=o+1;i<t.length&&t[i].minX<=r.maxX;i++){let s=t[i];if(!(Math.abs(r.i-s.i)===1||Math.abs(r.i-s.i)===e.length-1||r.maxY<s.minY||s.maxY<r.minY)&&n(r.a,r.b,s.a)*n(r.a,r.b,s.b)<=0&&n(s.a,s.b,r.a)*n(s.a,s.b,r.b)<=0)return!0}}return!1}function Xo(e,t,n){if(e.length<2)return[];let o=n??Tt(e),r=new Map;for(let s=0;s<e.length;s++){let a=r.get(e[s].blockId);a?a.push(s):r.set(e[s].blockId,[s])}let i=[];for(let[,s]of r){let a=[];for(let y of s){let M=e[y].patch;M&&M.length>=3?i.push({outline:[...M],holes:[],topY:e[y].y}):a.push(y)}if(!a.length)continue;a.sort((y,M)=>e[y].depth-e[M].depth);let f=a.map(y=>Go(e,y,o,t)).filter(y=>y!==null);if(!f.length)continue;let u=(y,M)=>({x:y.pts[M].x-y.nrm[M][0]*(y.front+Qe),y:y.pts[M].y-y.nrm[M][1]*(y.front+Qe)}),l=(y,M)=>({x:y.pts[M].x+y.nrm[M][0]*(y.back+Qe),y:y.pts[M].y+y.nrm[M][1]*(y.back+Qe)}),h=f[0],m=f[f.length-1],d=[];for(let y=0;y<h.pts.length;y++)d.push(u(h,y));for(let y of f)d.push(l(y,y.pts.length-1));for(let y=m.pts.length-1;y>=0;y--)d.push(l(m,y));for(let y=f.length-1;y>=0;y--)d.push(u(f[y],0));let p=Uo(d),b=1/0;for(let y of a)e[y].y<b&&(b=e[y].y);if(!Number.isFinite(b))continue;if(p.length>=3&&Math.abs(de(p))>1e-6&&f.every(y=>{let M=y.pts[Math.floor(y.pts.length/2)];return pe(p,M.x,M.y)})&&!Ba(p)){i.push({outline:Ho(p,jo),holes:[],topY:b});continue}for(let y of Fa(f))i.push({outline:y,holes:[],topY:b})}return i}function Fa(e){let t=[];for(let n of e){let o=[],r=[],i=n.front+Qe,s=n.back+Qe;for(let c=0;c<n.pts.length;c++){let f=n.pts[c],u=n.nrm[c];o.push([f.x-u[0]*i,f.y-u[1]*i]),r.push([f.x+u[0]*s,f.y+u[1]*s])}let a=[...o,...r.reverse()];a.length<3||(a.push(a[0]),t.push([a]))}if(!t.length)return[];try{let n=pn.default.union(t[0],...t.slice(1)),o=[];for(let r of n){if(!r.length||r[0].length<4)continue;let i=r[0].map(([c,f])=>({x:c,y:f})),s=i[0],a=i[i.length-1];i.length>1&&Math.abs(s.x-a.x)<1e-9&&Math.abs(s.y-a.y)<1e-9&&i.pop(),i.length>=3&&o.push(Ho(i,jo))}return o}catch{return[]}}function Uo(e){let t=[];for(let n of e){let o=t[t.length-1];o&&Math.hypot(n.x-o.x,n.y-o.y)<1e-9||t.push(n)}for(;t.length>2&&Math.hypot(t[0].x-t[t.length-1].x,t[0].y-t[t.length-1].y)<1e-9;)t.pop();return t}var dn=class{constructor(t){this.minX=1/0;this.minY=1/0;this.maxX=-1/0;this.maxY=-1/0;this.rings=t;for(let n of t)for(let o of n)o.x<this.minX&&(this.minX=o.x),o.y<this.minY&&(this.minY=o.y),o.x>this.maxX&&(this.maxX=o.x),o.y>this.maxY&&(this.maxY=o.y)}containsAll(t){for(let n of t)if(n.x<this.minX||n.x>this.maxX||n.y<this.minY||n.y>this.maxY)return!1;for(let n of this.rings){let o=!0;for(let r of t)if(!pe(n,r.x,r.y)){o=!1;break}if(o)return!0}return!1}};function Fo(e,t,n,o,r,i){if(o.length<3)return;if(n.containsAll(o)){let f=[0,1,0],u=o[0];for(let l=1;l+1<o.length;l++){let h=o[l],m=o[l+1];e.tri([u.x*w,r,u.y*w],[h.x*w,r,h.y*w],[m.x*w,r,m.y*w],f,i)}return}let s=o.map(f=>[f.x,f.y]);s.push(s[0]);let a;try{a=pn.default.intersection([s],t)}catch{return}let c=[0,1,0];for(let f of a){if(!f.length||f[0].length<4)continue;let u=f[0],l=[],h=[];for(let d=0;d<u.length-1;d++)l.push(u[d][0],u[d][1]),h.push([u[d][0],u[d][1]]);if(h.length<3)continue;let m=(0,Do.default)(l,void 0,2);for(let d=0;d<m.length;d+=3){let p=h[m[d]],b=h[m[d+1]],x=h[m[d+2]];e.tri([p[0]*w,r,p[1]*w],[b[0]*w,r,b[1]*w],[x[0]*w,r,x[1]*w],c,i)}}}function Vo(e,t,n,o,r,i,s){if(t.length<2)return;let a=s??Tt(t),c=[0,1,0],f=i&&i.length>=3?[[...i.map(m=>[m.x,m.y]),[i[0].x,i[0].y]]]:null,u=i&&i.length>=3?new dn([[...i]]):null,l=m=>{e.setMaterial(2),m(),e.setMaterial(0)},h=m=>{e.setMaterial(3),m(),e.setMaterial(0)};for(let m=0;m<t.length;m++){let d=t[m];if(d.patch&&d.patch.length>=3){let v=[...d.patch],S=a[m].belowY??o;if(h(()=>{if(f&&u)Fo(e,f,u,v,d.y,r.tread);else{let R=v[0];for(let I=1;I+1<v.length;I++){let P=v[I],A=v[I+1];e.tri([R.x*w,d.y,R.y*w],[P.x*w,d.y,P.y*w],[A.x*w,d.y,A.y*w],c,r.tread)}}}),d.y>S+Oo){let R=0,I=0;for(let P of v)R+=P.x,I+=P.y;R/=v.length,I/=v.length,l(()=>{for(let P=0;P<v.length;P++){let A=v[P],_=v[(P+1)%v.length],T=_.x-A.x,k=_.y-A.y,E=Math.hypot(T,k);if(E<1e-6)continue;let C=k/E,O=-T/E;(A.x-R)*C+(A.y-I)*O<0&&(C=-C,O=-O);let F=[C,0,O],L=[A.x*w,d.y,A.y*w],B=[_.x*w,d.y,_.y*w],N=[A.x*w,S,A.y*w],H=[_.x*w,S,_.y*w];e.tri(L,B,H,F,r.riser),e.tri(L,H,N,F,r.riser)}})}continue}let p=Go(t,m,a,n);if(!p)continue;let{pts:b,nrm:x,front:y,back:M}=p,g=a[m].belowY??o;for(let v=0;v+1<b.length;v++){let S=b[v],R=b[v+1],I=x[v],P=x[v+1];if(Math.hypot(R.x-S.x,R.y-S.y)<1e-6||I[0]===0&&I[1]===0||P[0]===0&&P[1]===0)continue;let A=[(S.x-I[0]*y)*w,d.y,(S.y-I[1]*y)*w],_=[(R.x-P[0]*y)*w,d.y,(R.y-P[1]*y)*w],T=[(S.x+I[0]*M)*w,d.y,(S.y+I[1]*M)*w],k=[(R.x+P[0]*M)*w,d.y,(R.y+P[1]*M)*w];if(h(()=>{f&&u?Fo(e,f,u,[{x:S.x-I[0]*y,y:S.y-I[1]*y},{x:R.x-P[0]*y,y:R.y-P[1]*y},{x:R.x+P[0]*M,y:R.y+P[1]*M},{x:S.x+I[0]*M,y:S.y+I[1]*M}],d.y,r.tread):(e.tri(A,_,k,c,r.tread),e.tri(A,k,T,c,r.tread))}),d.y>g+Oo){let E=[A[0],g,A[2]],C=[_[0],g,_[2]],O=[-I[0],0,-I[1]];l(()=>{e.tri(A,_,C,O,r.riser),e.tri(A,C,E,O,r.riser)})}}}}function Yo(e){let t=1/0,n=1/0,o=-1/0,r=-1/0,i=!1;for(let s of e)!Number.isFinite(s.x)||!Number.isFinite(s.y)||(i=!0,s.x<t&&(t=s.x),s.y<n&&(n=s.y),s.x>o&&(o=s.x),s.y>r&&(r=s.y));return i?{minX:t,minY:n,maxX:o,maxY:r}:null}function qe(e,t){return e.minX<=t.maxX&&t.minX<=e.maxX&&e.minY<=t.maxY&&t.minY<=e.maxY}var bn=Fe(require("polygon-clipping"),1);function Da(e,t){let n=e.eventConfigurationIds;return!n?.length||!!t&&n.includes(t)}function Ko(e,t){return e.filter(n=>n.type!=="shape"||Da(n,t))}function Wo(e,t){let n=e.focalPoint??{x:0,y:0};return e.floors?.length?e.floors.map((o,r)=>({objects:Ko(o.objects,t),focal:{x:(o.focalPoint??n).x,y:(o.focalPoint??n).y},baseHeightM:o.baseHeightM??0,index:r})):[{objects:Ko(e.objects,t),focal:n,baseHeightM:0,index:0}]}var Na={minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};function Le(e){return Yo(e)??Na}function zo(e,t){let n=Ie(e.outline,Me),o=Le(n),r=t.filter(s=>s!==e&&s.outline&&s.outline.length>=3&&qe(o,Le(s.outline)));if(!r.length)return[n];let i=s=>{let a=s.map(c=>[c.x,c.y]);return a.push(a[0]),a};try{let s=bn.default.difference([i(n)],...r.map(c=>[i(c.outline)])),a=[];for(let c of s){if(!c.length)continue;let f=c[0].map(([u,l])=>({x:u,y:l}));if(f.length>1){let u=f[0],l=f[f.length-1];Math.abs(u.x-l.x)<1e-9&&Math.abs(u.y-l.y)<1e-9&&f.pop()}f.length>=3&&a.push(f)}return a.length?a:[n]}catch{return[n]}}function Zo(e,t){if(!t.length)return e;let n=i=>{let s=i.map(a=>[a.x,a.y]);return s.push(s[0]),s},o=t.map(i=>[n(i)]),r=[];for(let i of e){let s;try{s=bn.default.intersection([n(i.outline)],o.flat())}catch{r.push(i);continue}for(let a of s){if(!a.length)continue;let c=a[0].map(([f,u])=>({x:f,y:u}));if(c.length>1){let f=c[0],u=c[c.length-1];Math.abs(f.x-u.x)<1e-9&&Math.abs(f.y-u.y)<1e-9&&c.pop()}c.length>=3&&r.push({outline:c,holes:[],topY:i.topY})}}return r.length?r:e}var Ge=.06,Ga=.05,Qo=.05,$o=.15,yn=25;function qo(e,t,n){let o=new Map,r=new Array(t.length).fill(null),i=new Float64Array(t.length),s=new Array(t.length).fill(void 0),a=new Array(t.length).fill(void 0),c=new Map,f=[],u=new Set;for(let h=0;h<e.length;h+=1){let m=e[h];for(let d of m.objects){if(d.type==="table"&&u.add(d.id),d.type!=="section"||!d.outline||d.outline.length<3)continue;let p=Ie(d.outline,Me);c.set(d.id,{section:d,unit:m,frontU:1/0,hasSeats:!1,rows:new Map,seatIndices:[]}),f.push({id:d.id,floorIndex:h,box:Le(p),section:d,unit:m,outline:p})}}let l=new Map;for(let h of f){let m=l.get(h.floorIndex);m?m.push(h):l.set(h.floorIndex,[h])}for(let h=0;h<t.length;h++){let m=t[h],d=n?l.get(n[h])??[]:f,p=m.sectionId?d.find(x=>x.id===m.sectionId)??d.find(x=>x.section.logicalSectionId===m.sectionId&&me({x:m.x,y:m.y},x.outline,x.section.holes)):void 0,b=p?[p]:d;for(let x of b){if(n&&x.floorIndex!==n[h]||!p&&(m.x<x.box.minX||m.x>x.box.maxX||m.y<x.box.minY||m.y>x.box.maxY||!me({x:m.x,y:m.y},x.outline,x.section.holes)))continue;r[h]=x.id;let y=c.get(x.id);y.hasSeats=!0;let M=m.focalPoint??x.unit.focal,g=Math.hypot(m.x-M.x,m.y-M.y);g<y.frontU&&(y.frontU=g),y.seatIndices.push(h);let v=m.rowId||`__seat-${h}`,S=y.rows.get(v);S?S.push({x:m.x,y:m.y}):y.rows.set(v,[{x:m.x,y:m.y}]);break}}for(let[h,m]of c){let d=De(m.section,{floorBaseHeightM:m.unit.baseHeightM}),p=m.unit.baseHeightM,b=d.rake>0?Math.tan(d.rake*Math.PI/180):0,x=d.rake<=.01&&d.height<=p+.001,y=m.section.surfaceKind,M=y==="flat"?!0:y==="rakedRows"&&d.rake>.01?!1:x,g=m.hasSeats?Mt(h,t,m.seatIndices,m.unit.focal):{sectionId:h,rows:[],blockCount:0},S=g.rows.length<2?Lo([...m.rows.values()].map(L=>({points:L})),m.unit.focal):null,R=1/0;if(S){if(m.hasSeats)for(let L of m.rows.values())for(let B of L){let N=S.depthAt(B.x,B.y);N<R&&(R=N)}if(!m.hasSeats||!Number.isFinite(R)){R=1/0;for(let L of m.section.outline){let B=S.depthAt(L.x,L.y);B<R&&(R=B)}}}let I=p+Ga,P=Math.max(I,d.height),A=L=>{let B=Math.max(0,L-R)*J,N=Math.min(B*b,yn);return Math.max(I,d.height+N)},_=L=>{let B=Math.max(0,L)*J,N=Math.min(B*b,yn);return Math.max(I,d.height+N)},T=M?[]:g.rows.map(L=>({pts:L.pts,y:_(L.blockDepth),depth:L.blockDepth,blockId:L.blockId,...u.has(L.id)?{patch:No(L.pts,Me)}:{}})),k=T.length?T[0].y:P,E=T.map(L=>{let B=L.patch&&L.patch.length>=3?L.patch:L.pts,N=0,H=0;for(let U of B)N+=U.x,H+=U.y;let D=B.length||1;N/=D,H/=D;let V=0;for(let U of B){let Z=Math.hypot(U.x-N,U.y-H);Z>V&&(V=Z)}return{cx:N,cy:H,rad:V}}),C=M?()=>P:T.length>=2?(L,B)=>{let N=1/0,H=k;for(let D=0;D<T.length;D++){let V=E[D];if(Math.hypot(L-V.cx,B-V.cy)-V.rad>=N)continue;let U=T[D].patch,Z=U&&U.length>=3?pe(U,L,B)?0:ze(U,L,B):ze(T[D].pts,L,B);Z<N&&(N=Z,H=T[D].y)}return H}:(L,B)=>S?A(S.depthAt(L,B)):P,O=[0,1,0],F=T.length>=2||M?()=>O:(L,B)=>{if(!S)return O;let N=S.depthAt(L,B);if(N<=R)return O;let H=(N-R)*J;if(H*b>=yn||d.height+H*b<=I)return O;let[D,V]=S.gradientAt(L,B);if(D===0&&V===0)return O;let U=1/Math.hypot(b,1);return[-D*b*U,U,-V*b*U]};if(!M)for(let L of g.rows){let B=_(L.blockDepth);for(let N of L.seatIndices)s[N]=B}for(let L of g.rows){let B=[];for(let U=1;U<L.pts.length;U++){let Z=Math.hypot(L.pts[U].x-L.pts[U-1].x,L.pts[U].y-L.pts[U-1].y);Z>1e-6&&B.push(Z)}B.sort((U,Z)=>U-Z);let N=B.length?B[Math.floor(B.length/2)]:1/0,H=1/0,D=L.pts[Math.floor(L.pts.length/2)];if(D)for(let U of g.rows){if(U===L||U.blockId!==L.blockId)continue;let Z=ze(U.pts,D.x,D.y);Z>1e-6&&Z<H&&(H=Z)}let V=Math.min(N,Math.max(H,N*.5));if(Number.isFinite(V)&&V>0)for(let U of L.seatIndices)a[U]=V}o.set(h,{sectionId:h,deckAt:C,normalAt:F,flat:M,bottomY:p,rowLevels:T,landingY:k})}for(let h=0;h<t.length;h++){let m=r[h],d=t[h];if(m){let x=s[h];i[h]=(x??o.get(m).deckAt(d.x,d.y))+$o;continue}let p=d.eyeHeightM,b=Number.isFinite(p)?Math.max(0,p-Ee):0;i[h]=d.kind==="booth"?b+Ge+$o:b}return{bySection:o,seatOwner:r,seatDeckY:h=>i[h],seatPitchU:h=>a[h]}}var K={top:1,wallBottom:.58,bottomCap:.4};function je(e,t){if(!e)return t;let n=z(Ce(e,.4),.62);return re(t,n,.22)}function Jo(e,t){return e?re(t,z(Ce(e,.08),.9),.82):t}function er(e,t){let n=new Map;for(let i of e.categories??[])n.set(i.key,i.color);let o=new Map;for(let i of t){if(!i.sectionId)continue;let s=o.get(i.sectionId);s||(s=new Map,o.set(i.sectionId,s)),s.set(i.categoryKey,(s.get(i.categoryKey)??0)+1)}let r=new Map;for(let[i,s]of o){let a=0,c=0,f=0,u=0;for(let[l,h]of s){let m=oe(n.get(l));m&&(a+=m[0]*h,c+=m[1]*h,f+=m[2]*h,u+=h)}u>0&&r.set(i,[a/u,c/u,f/u])}return r}function tr(e,t){return oe(e.color)??t.get(e.logicalSectionId??e.id)??null}var nr=Fe(require("polygon-clipping"),1);function ja(e,t){return e===void 0||t===void 0?!0:Math.abs(e-t)<.001}var Lt=class{constructor(){this.rings=[];this.boxes=[];this.levels=[]}subtract(t,n){let o=t.map(c=>[c.x,c.y]);if(o.length<3)return[];o.push(o[0]);let r=Le(t),i=this.rings.filter((c,f)=>qe(r,this.boxes[f])&&ja(n,this.levels[f])),s=[[o]];if(i.length)try{s=nr.default.difference([o],...i).map(f=>f.map(u=>u.map(([l,h])=>[l,h])))}catch{s=[[o]]}this.rings.push([o]),this.boxes.push(r),this.levels.push(n);let a=[];for(let c of s){if(!c.length)continue;let f=c[0].map(([u,l])=>({x:u,y:l}));if(f.length>1){let u=f[0],l=f[f.length-1];Math.abs(u.x-l.x)<1e-9&&Math.abs(u.y-l.y)<1e-9&&f.pop()}f.length>=3&&a.push(f)}return a}};function Ot(e,t){if(!t)return e;let n=1/0,o=-1/0,r=1/0,i=-1/0;for(let l of e)n=Math.min(n,l.x),o=Math.max(o,l.x),r=Math.min(r,l.y),i=Math.max(i,l.y);let s=(n+o)/2,a=(r+i)/2,c=t*Math.PI/180,f=Math.cos(c),u=Math.sin(c);return e.map(l=>{let h=l.x-s,m=l.y-a;return{x:s+h*f-m*u,y:a+h*u+m*f}})}function se(e){let t=null;if(e.kind==="polygon"&&e.points&&e.points.length>=3&&(t=e.points),e.kind==="rect"&&e.width&&e.height&&(t=ft(e.x??0,e.y??0,e.width,e.height)),e.kind==="ellipse"&&e.width&&e.height){let n=(e.x??0)+e.width/2,o=(e.y??0)+e.height/2;t=At(n,o,e.width/2,e.height/2)}return t?Ot(t,e.rotation):null}function Pe(e){let t=e.role??"",n={stage:{kind:"stage",heightM:1},entrance:{kind:"portal",heightM:2.7},exit:{kind:"portal",heightM:2.7},screen:{kind:"solid",heightM:6},wall:{kind:"solid",heightM:2.8},rail:{kind:"solid",heightM:1.1},suite:{kind:"suite",heightM:3},obstruction:{kind:"solid",heightM:4.5},sound:{kind:"solid",heightM:1.45},restroom:{kind:"solid",heightM:2.4},bar:{kind:"solid",heightM:1.1},concession:{kind:"solid",heightM:1.1},coat:{kind:"solid",heightM:1.1},goal:{kind:"portal",heightM:1.8}},o=t==="stage"&&st(e.stageKind)?{kind:"stage",heightM:e.stageKind==="ring-boxing"?St:.06}:n[t]??{kind:"plate",heightM:.25};return{...o,heightM:e.heightM??o.heightM}}var Ha=.08,Xa=30,Ua=.015;function Va(e,t){let n=!1;for(let o=0,r=t.length-1;o<t.length;r=o++){let i=t[o],s=t[r];i.y>e.y!=s.y>e.y&&e.x<(s.x-i.x)*(e.y-i.y)/(s.y-i.y)+i.x&&(n=!n)}return n}function or(e,t){let n=se(e)??(e.points?.length?Ot(e.points,e.rotation):null),o=Pe(e),i=!e.role&&o.kind==="plate"&&e.heightM===void 0&&!!n&&Math.abs(de(n))*J**2>=Xa?Ua:o.heightM;if(!n)return{topOffsetM:i,supportOffsetM:0};if(o.kind!=="plate"&&o.kind!=="stage")return{topOffsetM:i,supportOffsetM:0};let s=1/0,a=1/0,c=-1/0,f=-1/0;for(let m of n)s=Math.min(s,m.x),a=Math.min(a,m.y),c=Math.max(c,m.x),f=Math.max(f,m.y);let u=i,l=0,h=1e-6*Math.max(1,c-s,f-a);for(let m of t)c>m.minX&&s<m.maxX&&f>m.minY&&a<m.maxY&&u<=m.topOffsetM+1e-6&&(u=m.topOffsetM+Ha),s>=m.minX-h&&c<=m.maxX+h&&a>=m.minY-h&&f<=m.maxY+h&&(!m.poly||n.every(b=>Va(b,m.poly)||Ya(b,m.poly,h)))&&(l=Math.max(l,m.topOffsetM));return e.fill&&e.fill!=="none"&&e.fill!=="transparent"&&t.push({minX:s,minY:a,maxX:c,maxY:f,topOffsetM:u,poly:n}),{topOffsetM:u,supportOffsetM:Math.min(l,u)}}function Ya(e,t,n){for(let o=0,r=t.length-1;o<t.length;r=o++){let i=t[r],s=t[o],a=s.x-i.x,c=s.y-i.y,f=a*a+c*c,u=f?Math.max(0,Math.min(1,((e.x-i.x)*a+(e.y-i.y)*c)/f)):0;if(Math.hypot(e.x-(i.x+u*a),e.y-(i.y+u*c))<=n)return!0}return!1}function He(e,t,n){return{x:e.x+(t.x-e.x)*n,y:e.y+(t.y-e.y)*n}}function be(e){if(e.length!==4)return e;let t=Math.hypot(e[1].x-e[0].x,e[1].y-e[0].y),n=Math.hypot(e[2].x-e[1].x,e[2].y-e[1].y);return t>=n?e:[e[1],e[2],e[3],e[0]]}function fe(e,t,n){return[He(e[0],e[1],t),He(e[0],e[1],n),He(e[3],e[2],n),He(e[3],e[2],t)]}function dt(e,t,n){return[He(e[0],e[3],t),He(e[1],e[2],t),He(e[1],e[2],n),He(e[0],e[3],n)]}function ee(e,t,n,o,r,i){W(e,t,void 0,()=>n,o,r,i,K)}function Je(e,t,n){if(e.length!==4||n<=t)return null;let o=be(e),r=Math.hypot(o[1].x-o[0].x,o[1].y-o[0].y)*w,i=Math.hypot(o[3].x-o[0].x,o[3].y-o[0].y)*w;if(r<1e-6||i<1e-6)return null;let s=Math.min(.22/r,.16),a=Math.min(.28,(n-t)*.13),c=Math.min(.065/i,.2);return{quad:o,side:s,face:c,opening:fe(o,s,1-s),openingTop:n-a}}function xn(e,t,n){if(e.length!==4||n-t<=.2)return null;let o=be(e),r=Math.hypot(o[1].x-o[0].x,o[1].y-o[0].y)*w;if(r<=1e-6)return null;let i=Math.min(.14,(n-t)*.08,r*.08),s=i/r,a=fe(o,s,1-s);return{quad:o,side:s,trim:i,inner:a,panel:dt(a,.15,.85),bottom:t+i,top:n-i}}function rr(e,t,n,o){let r=xn(e,t,n);if(!r)return;let{panel:i}=r,s=(y,M)=>({x:(y.x+M.x)/2,y:(y.y+M.y)/2}),a=s(i[0],i[1]),c=s(i[3],i[2]),f=Math.hypot(a.x-o.x,a.y-o.y)<=Math.hypot(c.x-o.x,c.y-o.y),[u,l]=f?[i[0],i[1]]:[i[3],i[2]],h=f?{x:a.x-c.x,y:a.y-c.y}:{x:c.x-a.x,y:c.y-a.y},m=Math.hypot(h.x,h.y);if(m<1e-6)return;-(l.y-u.y)*h.x+(l.x-u.x)*h.y<0&&([u,l]=[l,u]);let d=Math.min(.006,m*w*.05),p=h.x/m*d,b=h.y/m*d,x=(y,M)=>[y.x*w+p,M,y.y*w+b];return[x(u,r.bottom),x(l,r.bottom),x(u,r.top),x(l,r.top)]}var ir=Fe(require("polygon-clipping"),1);function Oe(e,t,n,o,r,i,s,a={}){let c=Le(t),f=a.ao??K,u=r.flatMap(p=>{if(p.role!=="entrance"&&p.role!=="exit")return[];let b=se(p);if(!b||b.length!==4||!qe(c,Le(b)))return[];let x=a.portalBase??n,y=Je(b,x,x+Pe(p).heightM);if(!y)return[];let M=Math.min(o,y.openingTop);return M<=n?[]:[{poly:y.opening,height:M}]});if(!u.length)return!1;let l=p=>p.map(b=>[b.x,b.y]),h=[l(t),...(a.holes??[]).map(l)],m=[n,...new Set(u.map(p=>p.height)),o].sort((p,b)=>p-b),d=[];try{for(let p=1;p<m.length;p++){let b=m[p-1],x=m[p];if(x-b<1e-6)continue;let y=u.filter(g=>g.height>b+1e-6).map(g=>[l(g.poly)]),M=y.length?ir.default.difference(h,...y):[h];d.push({low:b,high:x,polys:M})}}catch{return!1}for(let p of d)for(let b of p.polys){let[x,...y]=b.map(g=>g.map(([v,S])=>({x:v,y:S}))),M=g=>f.wallBottom+(f.top-f.wallBottom)*(g-n)/(o-n);W(e,x,y,()=>p.high,p.low,i,s,{...f,top:M(p.high),wallBottom:M(p.low)})}return!0}function sr(e,t,n,o,r,i,s){let a=o-n;if(a<=0)return;let c=a<1.5?[[n,o,1]]:[[n,n+Math.min(.9,a*.18),.82],[n+Math.min(.9,a*.18),o-.1,1],[o-.1,o,1.1]],f=u=>K.wallBottom+(K.top-K.wallBottom)*(u-n)/a;for(let[u,l,h]of c){let m={...K,top:f(l),wallBottom:f(u)},d=z(i,h),p=z(s,h);Oe(e,t,u,l,r,d,p,{portalBase:n,ao:m})||W(e,t,void 0,()=>l,u,d,p,m)}}function pt(e,t,n){let o=oe(t.stroke?.color),r=t.stroke?.width??0;if(!o||!Number.isFinite(r)||r<=0)return;let i=t.kind==="line"||t.kind==="polyline",s=i?Ot(t.points??[],t.rotation):se(t);if(!s||s.length<2)return;let a=i?s.length-1:s.length,c=r*.5;for(let f=0;f<a;f++){let u=s[f],l=s[(f+1)%s.length],h=Math.hypot(l.x-u.x,l.y-u.y);if(h<1e-6)continue;let m=-(l.y-u.y)/h*c,d=(l.x-u.x)/h*c,p=[(u.x+m)*w,n,(u.y+d)*w],b=[(l.x+m)*w,n,(l.y+d)*w],x=[(l.x-m)*w,n,(l.y-d)*w],y=[(u.x-m)*w,n,(u.y-d)*w];e.tri(p,b,x,[0,1,0],o),e.tri(p,x,y,[0,1,0],o)}}function ar(e){return e==="bar"||e==="concession"||e==="coat"||e==="restroom"}var et=(e,t,n)=>({x:e.x+(t.x-e.x)*n,y:e.y+(t.y-e.y)*n});function Bt(e,t,n,o){let[r,i,s,a]=t?e:[e[3],e[2],e[1],e[0]];return[et(r,a,n),et(i,s,n),et(i,s,o),et(r,a,o)]}function cr(e,t,n,o,r,i,s,a,c=!1){if(n.length!==4||r-o<.4)return!1;let f=I=>c?Math.min(I,r):I,u=be(n),l=Math.hypot(u[3].x-u[0].x,u[3].y-u[0].y)*w;if(l<.4)return!1;let h=et(u[0],u[1],.5),m=et(u[3],u[2],.5),d=Math.hypot(h.x-a.x,h.y-a.y)<=Math.hypot(m.x-a.x,m.y-a.y),p=re(s,[.92,.9,.86],.35),b=z(i,.72),x=r-o;if(t==="restroom"){let I=Math.min(.18,x*.08);return ee(e,u,r-I,o,s,i),ee(e,u,r,r-I,p,p),!0}let y=o+Math.min(1.1,x),M=t==="coat"?1:Math.min(.5,.75/l),g=Bt(u,d,0,M);if(ee(e,g,y-.05,o,b,i),ee(e,g,y,y-.05,p,p),t==="coat"||l<1.2)return!0;if(t==="bar"){let I=Bt(u,d,Math.max(M+.2,1-.45/l),1),P=f(o+Math.max(Math.min(2.2,x*2),y-o+.6));return ee(e,I,P,o,s,b),!0}let v=Bt(u,d,Math.max(M+.25,.55),1),S=f(o+Math.max(2.6,y-o+1.4));if(S-.14<=y)return!0;ee(e,v,S-.14,o,s,i),ee(e,u,S,S-.14,p,b);let R=Math.min(.08,.1/Math.max(.1,Math.hypot(u[1].x-u[0].x,u[1].y-u[0].y)*w));for(let[I,P]of[[0,R],[1-R,1]])ee(e,Bt(fe(u,I,P),d,0,Math.min(.08,.1/l)),S-.14,y,b,b);return!0}var Ka=[.12,.38,.16],Wa=[.72,.62,.45],za=[.88,.93,.96],lr=[.95,.95,.94],Za=[.66,.29,.22],gn={length:20.12,width:3.05},$a=.14,Qa=9.76,Be=[.93,.94,.95],Ft=[.1,.11,.13],qa=[.45,.85,1.25],Ja=1.45,ur=.012,fr=.004,ec=1.07,tc=.15;function nt(e,t,n,o,r,i){e.setMaterial(i),W(e,t,n?[n.slice().reverse()]:void 0,()=>o,o-.004,r,r,K)}var mr=(e,t)=>Ye(e,t/w);function hr(e,t,n){let o=t.x-e.x,r=t.y-e.y,i=Math.hypot(o,r);if(i<1e-9)return null;let s=-r/i*n,a=o/i*n;return[{x:e.x+s,y:e.y+a},{x:t.x+s,y:t.y+a},{x:t.x-s,y:t.y-a},{x:e.x-s,y:e.y-a}]}function nc(e,t,n,o){let r=t.map(i=>[i.x*w,n,i.y*w]);e.tri(r[0],r[1],r[2],[0,1,0],o),e.tri(r[0],r[2],r[3],[0,1,0],o)}function Dt(e,t,n,o,r,i){let s=n/w,a=[{x:t.x-s,y:t.y-s},{x:t.x+s,y:t.y-s},{x:t.x+s,y:t.y+s},{x:t.x-s,y:t.y+s}];W(e,a,void 0,()=>r,o,i,z(i,.85),K)}function tt(e,t,n,o,r,i,s){let a=hr(t,n,o/w);a&&W(e,a,void 0,()=>i,r,s,z(s,.85),K)}function Nt(e){let t=be(e),n={x:(t[0].x+t[2].x)/2,y:(t[0].y+t[2].y)/2},o=Math.hypot(t[1].x-t[0].x,t[1].y-t[0].y)||1,r=Math.hypot(t[3].x-t[0].x,t[3].y-t[0].y)||1,i={x:(t[1].x-t[0].x)/o,y:(t[1].y-t[0].y)/o},s={x:(t[3].x-t[0].x)/r,y:(t[3].y-t[0].y)/r};return{at:(c,f)=>({x:n.x+(i.x*c+s.x*f)/w,y:n.y+(i.y*c+s.y*f)/w}),lengthM:o*w,widthM:r*w}}function dr(e,t,n){let o=Zn(t);if(!o.length)return;let r=1/0,i=-1/0,s=1/0,a=-1/0;for(let M of t.points??[])r=Math.min(r,M.x),i=Math.max(i,M.x),s=Math.min(s,M.y),a=Math.max(a,M.y);let c=(t.rotation??0)*Math.PI/180,f=Math.cos(c),u=Math.sin(c),l=(r+i)/2,h=(s+a)/2,m=M=>c?{x:l+(M.x-l)*f-(M.y-h)*u,y:h+(M.x-l)*u+(M.y-h)*f}:M,d=Math.min(i-r,a-s)*w,p=Math.max(.04,Math.min(.3,d*.004))/w,b=0;e.setMaterial(0);for(let M of o){if(!M.fill)continue;let g=M.points.map(m);nt(e,g,null,n+ur+b*fr,oe(M.fill)??Be,0),b++}let x=o.filter(M=>!(M.fill&&M.ink===M.fill)),y=[...new Set(x.map(M=>M.ink??It))];for(let M of y){let g=n+ur+b++*fr,v=oe(M)??Be;for(let S of x){if((S.ink??It)!==M)continue;let R=S.points.map(m),I=S.closed?R.length:R.length-1;for(let P=0;P<I;P++){let A=hr(R[P],R[(P+1)%R.length],p);A&&nc(e,A,g,v)}}}}function pr(e,t,n,o,r){if(t.length<3)return!1;let i=o+.006,s=r??Ka;if(n==="oval-cricket"){let a=t.reduce((v,S)=>v+S.x,0)/t.length,c=t.reduce((v,S)=>v+S.y,0)/t.length,f=v=>t.map(S=>({x:a+(S.x-a)*v,y:c+(S.y-c)*v})),u=8;for(let v=0;v<u;v++){let S=f(1-v/u),R=v===u-1?null:f(1-(v+1)/u);nt(e,S,R,i,z(s,v%2?1.04:.96),4)}let l=t[0];for(let v of t)Math.hypot(v.x-a,v.y-c)>Math.hypot(l.x-a,l.y-c)&&(l=v);let h=Math.hypot(l.x-a,l.y-c)||1,m=(l.x-a)/h,d=(l.y-c)/h,p=-d,b=m,x=Math.min(1,2*h*w*$a/gn.length),y=gn.length*x/2/w,M=gn.width*x/2/w,g=[[-y,-M],[y,-M],[y,M],[-y,M]].map(([v,S])=>({x:a+m*v+p*S,y:c+d*v+b*S}));return nt(e,g,null,i+.004,Wa,0),e.setMaterial(0),!0}if(n==="rink-hockey"){let a=mr(t,tc);return nt(e,a,null,i,za,0),e.setMaterial(0),W(e,t,[a.slice().reverse()],()=>o+ec,o,lr,z(lr,.9),K),!0}if(n==="ring-boxing"&&t.length===4){let{at:a}=Nt(t),c=[a(-3.05,-3.05),a(3.05,-3.05),a(3.05,3.05),a(-3.05,3.05)],f=[[.77,.19,.19],Be,[.17,.42,.69],Be];e.setMaterial(0),c.forEach((u,l)=>Dt(e,u,.07,o,o+Ja,f[l]));for(let u of qa)for(let l=0;l<4;l++)tt(e,c[l],c[(l+1)%4],.025,o+u-.025,o+u+.025,Be);return!0}if(n==="court-tennis"&&t.length===4){let{at:a}=Nt(t);e.setMaterial(0),tt(e,a(0,-6.4),a(0,6.4),.015,o,o+.95,Ft),tt(e,a(0,-6.4),a(0,6.4),.03,o+.95,o+1,Be);for(let c of[-1,1])Dt(e,a(0,c*6.4),.05,o,o+1.07,Ft);return!0}if(n==="court-basketball"&&t.length===4){let{at:a,lengthM:c}=Nt(t),f=Math.min(14,c/2-.5);e.setMaterial(0);for(let u of[-1,1]){let l=a(u*(f+1.2),0),h=a(u*(f-1.2),0);Dt(e,l,.12,o,o+3.4,Ft),tt(e,l,h,.06,o+3.25,o+3.4,Ft),tt(e,a(u*(f-1.2),-.9),a(u*(f-1.2),.9),.03,o+2.9,o+3.95,Be)}return!0}if(n==="pitch-rugby"&&t.length===4){let{at:a,lengthM:c}=Nt(t),f=c*(50/120);e.setMaterial(0);for(let u of[-1,1]){for(let l of[-2.8,2.8])Dt(e,a(u*f,l),.07,o,o+12,Be);tt(e,a(u*f,-2.8),a(u*f,2.8),.06,o+2.94,o+3.06,Be)}return!0}if(n==="track-athletics"){let a=mr(t,Qa);return a.length<3?!1:(nt(e,t,a,i,Za,0),nt(e,a,null,i,s,4),e.setMaterial(0),!0)}return!1}var oc=.012,Ht=2.4,rc=1,ic=.75,sc=.15;function _e(e){if(e.points&&e.points.length>=3)return e.points;let{center:t,width:n,height:o,rotation:r}=e;if(!n||!o)return null;let i=(r??0)*Math.PI/180,s=Math.cos(i),a=Math.sin(i),c=n/2,f=o/2;return[[-c,-f],[c,-f],[c,f],[-c,f]].map(([u,l])=>({x:t.x+u*s-l*a,y:t.y+u*a+l*s}))}function Sr(e,t,n,o,r,i,s=!1){let a=_e(t);if(a){if(s){let c=je(o,r.boothTop),f=Ae([...a]);W(e,Ie(f,ac/w),[f.slice().reverse()],()=>n+.03,n,c,z(c,.8),K);return}if(!(!t.points&&i&&lc(e,a,n,o,i))){if(!t.points&&i&&a.length===4){cc(e,a,n,o,i);return}W(e,a,void 0,()=>n+Ht,n,je(o,r.boothTop),r.boothWall,K)}}}var Mn=1.1,br=[.9,.9,.88],ac=.1,Gt=[.87,.87,.85],yr=.08;function Ir(e,t){let n=c=>({x:(e[c].x+e[(c+1)%4].x)/2,y:(e[c].y+e[(c+1)%4].y)/2}),o=0,r=1/0;for(let c=0;c<4;c++){let f=n(c),u=Math.hypot(f.x-t.x,f.y-t.y);u<r&&(r=u,o=c)}let i=[0,1,2,3].map(c=>e[(o+c)%4]),s=(c,f,u)=>({x:c.x+(f.x-c.x)*u,y:c.y+(f.y-c.y)*u});return{q:i,part:(c,f,u,l)=>{let h=s(i[0],i[1],c),m=s(i[0],i[1],f),d=s(i[3],i[2],c),p=s(i[3],i[2],f);return[s(h,d,u),s(m,p,u),s(m,p,l),s(h,d,l)]},depthM:Math.hypot(i[3].x-i[0].x,i[3].y-i[0].y)*w,widthM:Math.hypot(i[1].x-i[0].x,i[1].y-i[0].y)*w}}function cc(e,t,n,o,r){let{q:i,part:s}=Ir(t,r),a=o??[.35,.42,.55],c=re(a,[.78,.78,.77],.62),f=re(a,[.95,.95,.94],.45);ee(e,i,n+Ge,n,c,z(c,.8)),ee(e,s(.05,.95,.72,.98),n+Mn-.05,n+Ge,f,z(f,.8)),ee(e,s(.03,.97,.7,1),n+Mn,n+Mn-.05,br,z(br,.9))}function lc(e,t,n,o,r){if(t.length!==4)return!1;let{q:i,part:s,depthM:a,widthM:c}=Ir(t,r);if(a<1||c<1)return!1;let f=o??[.35,.42,.55],u=re(f,[.78,.78,.77],.62),l=n+Ht,h=yr/c,m=yr/a;ee(e,i,n+Ge,n,u,z(u,.8)),ee(e,s(0,1,1-m,1),l,n+Ge,Gt,z(Gt,.9));for(let[b,x]of[[0,h],[1-h,1]])ee(e,s(b,x,0,1-m),l,n+Ge,Gt,z(Gt,.9));ee(e,s(h,1-h,0,Math.min(.5,.06/a)),l,l-.3,f,z(f,.85));let d=Math.min(.4,.6/c),p=Math.min(.12,.3/a);return ee(e,s(.5-d,.5+d,.72-p,.72+p),n+rc,n+Ge,re(f,[.95,.95,.94],.7),z(f,.75)),!0}function Xt(e){if(e.shape==="round"){let u=e.radius;return u?At(e.center.x,e.center.y,u,u,24):null}let{width:t,height:n,rotation:o,center:r}=e;if(!t||!n)return null;let i=(o??0)*Math.PI/180,s=Math.cos(i),a=Math.sin(i),c=t/2,f=n/2;return[[-c,-f],[c,-f],[c,f],[-c,f]].map(([u,l])=>({x:r.x+u*s-l*a,y:r.y+u*a+l*s}))}function Pr(e,t,n,o,r,i=!0){let s=Xt(t);if(!s)return;let a=s.reduce((h,m)=>h+m.x,0)/s.length,c=s.reduce((h,m)=>h+m.y,0)/s.length,f=h=>s.map(m=>({x:a+(m.x-a)*h,y:c+(m.y-c)*h})),u=i&&o?je(o,r.tableTop):uc,l=n+ic;W(e,s,void 0,()=>l,n+fc,u,z(u,.86),K),W(e,f(.12),void 0,()=>l+.12,l,xr,z(xr,.8),K)}var uc=[.93,.92,.89],xr=[.78,.66,.42],fc=.25;function Rr(e,t,n,o,r,i,s,a,c=[]){let f=se(t);if(!t.role&&(!t.fill||t.fill==="none"||t.fill==="transparent")||!f){pt(e,t,n+o+oc);return}let l=a?a.kind==="stage":t.role==="stage",h=a?a.kind==="screen":t.role==="screen",m=a?{kind:l?"stage":"solid",heightM:a.topY-a.baseY}:Pe(t),d=a?.baseY??n,p=a?.topY??n+o;if(l&&s){let I=1/0,P=-1/0,A=1/0,_=-1/0;for(let T of f)T.x<I&&(I=T.x),T.x>P&&(P=T.x),T.y<A&&(A=T.y),T.y>_&&(_=T.y);s.push({cx:(I+P)/2*w,cz:(A+_)/2*w,y:p,halfX:Math.max((P-I)/2*w,.5),halfZ:Math.max((_-A)/2*w,.5)})}let b=oe(t.fill),x=t.role==="wall"||t.role==="entrance"||t.role==="exit",y=x?b?z(Ce(b,.12),.95):r.tierTop:l&&b?re(r.stageTop,z(Ce(b,.18),.9),.9):!t.role&&b?b:je(b,l?r.stageTop:r.decorTop),M=h?b:null,g=x?b?z(Ce(b,.12),.85):r.tierWall:l?b?re(r.stageWall,z(b,.58),.82):r.stageWall:h?M?re(z(M,1.42),[.24,.46,.82],.08):[.24,.46,.82]:je(oe(t.fill),r.decorWall);if(t.role==="wall"&&!a){sr(e,f,d,p,c,y,g),pt(e,t,p+.012);return}if(h&&f.length===4&&p-d>.2){let I=xn(f,d,p);if(!I)return;let{quad:P,side:A,trim:_,inner:T,panel:k}=I,E=[.12,.15,.18];for(let[C,O]of[[0,A],[1-A,1]])ee(e,fe(P,C,O),p,d,E,E);ee(e,T,d+_,d,E,E),ee(e,T,p,p-_,E,E),ee(e,k,p-_,d+_,g,g),pt(e,t,p+.012);return}let v=b?z(Ce(b,.15),.82):g,S=b?z(Ce(b,.1),1.02):y;if(ar(t.role)&&!a&&cr(e,t.role,f,d,p,v,S,i,t.heightM!==void 0))return;if((t.role==="sound"||a?.kind==="sound_desk")&&f.length===4&&p-d>.3){let I=be(f),P=Math.hypot(I[1].x-I[0].x,I[1].y-I[0].y)*w,A=Math.min(.12,.09/Math.max(P,.001)),_=[.18,.21,.24],T=p-Math.min(.12,(p-d)*.15);for(let[k,E]of[[0,A],[1-A,1]])ee(e,fe(I,k,E),T,d,_,_);ee(e,I,p,T,y,_);return}if(t.role==="rail"&&f.length===4&&p>d){let I=be(f),P=Math.hypot(I[1].x-I[0].x,I[1].y-I[0].y)*w,A=Math.max(1,Math.min(128,Math.ceil(P/1.4))),_=Math.min(.08,.055/Math.max(.055,P)),T=[.58,.64,.66];for(let k=0;k<=A;k++){let E=k/A,C=Math.min(1-_,Math.max(0,E-_/2));ee(e,fe(I,C,C+_),p,d,T,z(T,.8))}for(let k of[.52,1]){let E=d+(p-d)*k;ee(e,I,E,Math.max(d,E-.055),T,z(T,.8))}return}if(t.role==="goal"&&f.length===4){let I=be(f),P=Math.hypot(I[1].x-I[0].x,I[1].y-I[0].y)*w,A=Math.min(.12,.1/Math.max(.1,P)),_=[.9,.94,.94];for(let[T,k]of[[0,A],[1-A,1]])ee(e,fe(I,T,k),Math.max(d,p-.1),d,_,_);ee(e,I,p,Math.max(d,p-.1),_,_);return}if(m.kind==="portal"&&f.length===4){let I=Je(f,d,p);if(!I)return;let{quad:P,side:A,face:_,openingTop:T}=I;for(let[k,E,C]of[[0,_,1],[_,1-_,.67],[1-_,1,1]]){let O=dt(P,k,E),F=z(y,C),L=z(g,C);for(let[B,N]of[[0,A],[1-A,1]])ee(e,fe(O,B,N),T,d,F,L);ee(e,O,p,T,F,L)}return}if(m.kind==="suite"&&f.length===4){let I=f.map((_,T)=>{let k=f[(T+1)%4],E=(_.x+k.x)/2,C=(_.y+k.y)/2;return Math.hypot(E-i.x,C-i.y)}),P=I.indexOf(Math.min(...I)),A=[0,1,2,3].map(_=>f[(P+_)%4]);ee(e,fe(A,0,.08),p,d,y,g),ee(e,fe(A,.92,1),p,d,y,g),ee(e,dt(A,.88,1),p,d,y,g),ee(e,A,p,Math.max(d,p-.18),y,g);return}if(l&&!t.stageKind?.startsWith("pitch-")&&p-d>.12){let I=p-Math.min(.06,(p-d)*.15);ee(e,f,I,d,y,g),ee(e,f,p,I,y,re(y,g,.2))}else ee(e,f,p,d,y,g);if((t.stageKind==="pitch-football"||t.stageKind==="pitch-rugby")&&f.length===4){e.setMaterial(4);let I=be(f);for(let P=0;P<12;P++){let A=fe(I,P/12,(P+1)/12),_=z(b??[.12,.38,.16],P%2?1.035:.965),T=A.map(k=>[k.x*w,p+.006,k.y*w]);e.tri(T[0],T[1],T[2],[0,1,0],_),e.tri(T[0],T[2],T[3],[0,1,0],_)}}t.stageKind&&t.stageKind!=="pitch-football"&&pr(e,f,t.stageKind,p,b),l&&Xe(t.stageKind)&&dr(e,t,p),e.setMaterial(h?1:0),pt(e,t,p+.012)}function Ut(e){let{x:t,y:n,width:o,height:r}=e;if(!o||!r)return null;let i=t+o/2,s=n+r/2,a=(e.rotation??0)*Math.PI/180,c=Math.cos(a),f=Math.sin(a),u=o/2,l=r/2;return[[-u,-l],[u,-l],[u,l],[-u,l]].map(([h,m])=>({x:i+h*c-m*f,y:s+h*f+m*c}))}function mc(e){if(!e||!e.startsWith("data:image/svg+xml"))return null;let t=e.slice(e.indexOf(",")+1);if(/;base64/i.test(e.slice(0,e.indexOf(","))))try{t=atob(t)}catch{return null}else try{t=decodeURIComponent(t)}catch{}let n=t.match(/<(?:rect|path)\b[^>]*\bfill="([^"]+)"/i);if(!n)return null;let o=n[1].trim();if(o==="none"||o==="transparent")return null;let r=o.match(/^url\(#([^)]+)\)$/);if(!r)return oe(o);let i=t.match(new RegExp(`<(?:linear|radial)Gradient\\b[^>]*\\bid="${r[1]}"[^>]*>([\\s\\S]*?)</(?:linear|radial)Gradient>`,"i"));if(!i)return null;let s=[];for(let a of i[1].matchAll(/stop-color="([^"]+)"/gi)){let c=oe(a[1].trim());c&&s.push(c)}return s.length?s.reduce((a,c,f)=>re(a,c,1/(f+1)),s[0]):null}function wr(e,t,n,o){if(t.layer==="foreground")return;let r=Ut(t);if(!r)return;let i=n+sc,s=je(mc(t.href),o.decorTop),a=Math.max(0,Math.min(1,t.opacity??1));a<1&&(s=re(o.ground,s,a)),W(e,r,void 0,()=>i,n,s,re(s,o.decorWall,.5),K)}function vr(e,t,n,o,r){if(!t.points||t.points.length<3)return;let i=je(o,r.gaTop);W(e,t.points,t.holes,()=>n+gr,n,i,r.gaWall,K),pc(e,t.points,n+gr)}var gr=.15,jt=[.72,.74,.76],Sn=1.1,Mr=.12,In=.05,hc=.06,dc=2.4;function pc(e,t,n){let o=Ae([...t]),r=Ye(o,Mr/w),i=Ye(o,(Mr+In)/w);if(r.length<3||i.length<3)return;for(let a of[n+Sn,n+Sn*.5])W(e,r,[i.slice().reverse()],()=>a,a-In,jt,z(jt,.85),K);let s=hc/2/w;for(let a=0;a<r.length;a++){let c=r[a],f=r[(a+1)%r.length],u=Math.hypot(f.x-c.x,f.y-c.y)*w,l=Math.max(1,Math.round(u/dc));for(let h=0;h<l;h++){let m=h/l,d=c.x+(f.x-c.x)*m,p=c.y+(f.y-c.y)*m,b=[{x:d-s,y:p-s},{x:d+s,y:p-s},{x:d+s,y:p+s},{x:d-s,y:p+s}];W(e,b,void 0,()=>n+Sn-In,n,jt,z(jt,.8),K)}}}var Pn=.6,Er=3,bc=.25;function yc(e,t){if(pe(t,e.x,e.y))return 0;let n=1/0;for(let o=0,r=t.length-1;o<t.length;r=o++){let i=t[r],s=t[o],a=s.x-i.x,c=s.y-i.y,f=a*a+c*c||1,u=Math.max(0,Math.min(1,((e.x-i.x)*a+(e.y-i.y)*c)/f));n=Math.min(n,Math.hypot(e.x-(i.x+u*a),e.y-(i.y+u*c)))}return n}function Ar(e,t){let n=e.map(s=>({booth:s,ring:_e(s)})).filter(s=>!!s.ring&&s.ring.length===4&&!s.booth.points),o=n.map(({ring:s})=>({minX:Math.min(...s.map(a=>a.x)),maxX:Math.max(...s.map(a=>a.x)),minY:Math.min(...s.map(a=>a.y)),maxY:Math.max(...s.map(a=>a.y))})),r=(Er+Pn)/w,i=new Map;return n.forEach(({booth:s,ring:a},c)=>{let f={x:a.reduce((m,d)=>m+d.x,0)/4,y:a.reduce((m,d)=>m+d.y,0)/4},u=[0,1,2,3].map(m=>{let d=a[m],p=a[(m+1)%4],b={x:(d.x+p.x)/2,y:(d.y+p.y)/2},x=b.x-f.x,y=b.y-f.y,M=Math.hypot(x,y)||1,g={x:b.x+x/M*Pn/w,y:b.y+y/M*Pn/w},v=Er/w;return o.forEach((S,R)=>{R===c||g.x<S.minX-r||g.x>S.maxX+r||g.y<S.minY-r||g.y>S.maxY+r||(v=Math.min(v,yc(g,n[R].ring)))}),{open:v*w,toward:{x:b.x+x/M*10/w,y:b.y+y/M*10/w},focal:Math.hypot(b.x-t.x,b.y-t.y)}}),l=Math.max(...u.map(m=>m.open)),h=u.filter(m=>m.open>=l-bc).sort((m,d)=>m.focal-d.focal)[0];i.set(s.id,h.toward)}),i}var Cr=Fe(require("polygon-clipping"),1);var xc=.45,gc=1500,Mc=200;function _r(e,t){if(e.role!=="stage"||Xe(e.stageKind))return e;let n=se(e);if(!n||n.length<3||Math.abs(de(n))*w*w>gc)return e;let o=t.filter(s=>pe(n,s.x,s.y));if(!o.length||o.length>Mc)return e;let r=xc/w,i=o.map(s=>[[[s.x-r,s.y-r],[s.x+r,s.y-r],[s.x+r,s.y+r],[s.x-r,s.y+r],[s.x-r,s.y-r]]]);try{let s=Cr.default.difference([[...n.map(f=>[f.x,f.y]),[n[0].x,n[0].y]]],...i),a=null,c=0;for(let f of s){let u=f[0].slice(0,-1).map(([h,m])=>({x:h,y:m})),l=Math.abs(de(u));l>c&&(c=l,a=u)}return!a||a.length<3?e:{...e,kind:"polygon",points:a,rotation:0}}catch{return e}}var Sc=Math.PI/180,ie=96,Ic=6,Pc=60,Rc=150,kr=.2,wc=.35;function vc(e,t){let n=Math.atan2(t.x-e.x,t.y-e.y)/Sc;return n<0?n+360:n}function Vt(e){if(!e.length)return NaN;let t=[...e].sort((n,o)=>n-o);return t[Math.floor(t.length/2)]}function Yt(e,t,n=2){let o=e.length,r=new Float64Array(o);for(let i=0;i<o;i++){let s=0,a=0;for(let c=-n;c<=n;c++){let f=i+c;if(t)f=(f%o+o)%o;else if(f<0||f>=o)continue;s+=e[f],a++}r[i]=s/a}return r}function Tr(e,t){let n=e.filter(h=>h.rows.length>=1);if(n.length<1)return null;let o=[],r=0,i=0,s=0;for(let h of n)for(let m of h.rows){for(let d of m.pts)r+=d.x,i+=d.y,s++;if(m.pts.length>=4){let d=on(m.pts);d&&Number.isFinite(d.cx)&&Number.isFinite(d.cy)&&o.push({x:d.cx,y:d.cy})}}if(!s)return null;let a={x:r/s,y:i/s},c=a;if(o.length>=8){let h=Vt(o.map(x=>x.x)),m=Vt(o.map(x=>x.y)),d=0;for(let x of n)for(let y of x.rows)for(let M of y.pts){let g=Math.hypot(M.x-a.x,M.y-a.y);g>d&&(d=g)}let p=0,b=d*.2;for(let x of n)for(let y of x.rows)for(let M of y.pts)Math.hypot(M.x-h,M.y-m)<b&&p++;Math.hypot(h-a.x,m-a.y)<=d&&p/s<.01&&(c={x:h,y:m})}let f=[];for(let h of n){let m={sectionId:h.sectionId,rMin:1/0,rMax:-1/0,samples:[]};for(let d of h.rows)for(let p of d.pts){let b=Math.hypot(p.x-c.x,p.y-c.y),x=Math.min(ie-1,Math.floor(vc(c,p)/(360/ie)));m.samples.push({r:b,bin:x,levelM:d.levelM}),b<m.rMin&&(m.rMin=b),b>m.rMax&&(m.rMax=b)}m.samples.length&&f.push(m)}if(!f.length)return null;f.sort((h,m)=>h.rMin+h.rMax-(m.rMin+m.rMax));let u=[];for(let h of f){let m=!1;for(let d of u){let p=Math.min(h.rMax,d.rMax)-Math.max(h.rMin,d.rMin),b=Math.min(h.rMax-h.rMin,d.rMax-d.rMin);if(b>1e-9&&p>=wc*b){d.members.push(h),d.rMin=Math.min(d.rMin,h.rMin),d.rMax=Math.max(d.rMax,h.rMax),m=!0;break}}m||u.push({members:[h],rMin:h.rMin,rMax:h.rMax})}let l=[];for(let h of u){let m=new Array(ie).fill(null);for(let k of h.members)for(let E of k.samples){let C=m[E.bin];C||(C={samples:[]},m[E.bin]=C),C.samples.push({r:E.r,levelM:E.levelM})}let d=m.map(k=>!!k);if(!d.filter(Boolean).length)continue;let b=[],x=[];for(let k of m){if(!k)continue;let E=1/0,C=-1/0;for(let O of k.samples)O.r<E&&(E=O.r),O.r>C&&(C=O.r);b.push(E),x.push(C)}let y=Vt(b),M=Vt(x);if(!(y>=kr*M)||!(M>0))continue;let g=[...b].sort((k,E)=>k-E);if(!(g[Math.floor(g.length*.1)]>=kr*M))continue;let S=m.map(k=>{if(!k)return null;let E=[...k.samples].sort((D,V)=>D.r-V.r),C=E[0].r,O=E[E.length-1].r,F=E[0].levelM,L=-1/0;for(let D of E)D.levelM>L&&(L=D.levelM);let B=[];for(let D of E){let V={r:D.r,l:D.levelM};for(;B.length&&Math.abs(B[B.length-1].r-V.r)<1e-9;){if(B[B.length-1].l<=V.l){V.skip=!0;break}B.pop()}if(!V.skip){for(;B.length>=2;){let U=B[B.length-2],Z=B[B.length-1];if((Z.r-U.r)*(V.l-U.l)-(Z.l-U.l)*(V.r-U.r)<=0)B.pop();else break}B.push(V)}}let N=B.map(D=>D.r),H=B.map(D=>D.l);return{inner:C,outer:O,front:F,top:L,profile:{rs:N,ls:H}}}),R=d.slice();for(let k=0;k<ie;k++){if(R[k])continue;let E=-1,C=-1,O=0;for(let X=1;X<=ie;X++){let q=(k-X+ie*2)%ie;if(R[q]){E=q;break}}for(let X=1;X<=ie;X++){let q=(k+X)%ie;if(R[q]){C=q,O=X;break}}if(E<0||C<0)continue;let F=0;for(let X=1;X<=ie;X++){let q=(k-X+ie*2)%ie;if(d[q]){F=X;break}}if(F-1+O>Ic)continue;let B=S[E],N=S[C],H=F/(F+O),D=B.inner+(N.inner-B.inner)*H,V=B.outer+(N.outer-B.outer)*H,U=B.front+(N.front-B.front)*H,Z=B.top+(N.top-B.top)*H;S[k]={inner:D,outer:V,front:U,top:Z,profile:{rs:[D,V],ls:[U,Z]}}}for(let k=0;k<ie;k++)S[k]&&(R[k]=!0);let I=360/ie,P=[],A=R.filter(Boolean).length,_=[];if(A===ie)_.push({start:0,len:ie});else{let k=0;for(;R[k];)k=(k+1)%ie;let E=-1;for(let C=0;C<=ie;C++){let O=(k+C)%ie,F=C<ie&&R[O];if(F&&E<0)E=O;else if(!F&&E>=0){let L=(O-E+ie)%ie||ie;_.push({start:E,len:L}),E=-1}}}for(let k of _){if(k.len*I<Pc&&k.len<ie)continue;let E=k.len===ie,C=new Float64Array(k.len),O=new Float64Array(k.len),F=new Float64Array(k.len),L=new Float64Array(k.len),B=[];for(let X=0;X<k.len;X++){let q=S[(k.start+X)%ie];C[X]=q.inner,O[X]=q.outer,F[X]=q.front,L[X]=q.top,B.push(q.profile??{rs:[q.inner,q.outer],ls:[q.front,q.top]})}let N=Yt(C,E),H=Yt(O,E),D=Yt(F,E),V=Yt(L,E);for(let X=0;X<k.len;X++)N[X]>C[X]&&(N[X]=C[X]),H[X]<O[X]&&(H[X]=O[X]),N[X]>H[X]-1e-6&&(N[X]=Math.max(0,H[X]-1e-6)),V[X]<D[X]&&(V[X]=D[X]);let U={startBin:k.start,binCount:k.len,closed:E,innerR:N,outerR:H,frontLevelM:D,topLevelM:V,profiles:B},Z=(X,q,$)=>{let j=B[X],G=j.rs,Q=j.ls;if(q<=G[0]){Q[0]>$&&(Q[0]=$);return}if(q>=G[G.length-1]){Q[Q.length-1]>$&&(Q[Q.length-1]=$);return}for(let te=0;te+1<G.length;te++)if(q<=G[te+1]){Q[te]>$&&(Q[te]=$),Q[te+1]>$&&(Q[te+1]=$);return}};for(let X=0;X<k.len;X++){let q=m[(k.start+X)%ie];if(q)for(let $ of q.samples){Z(X,$.r,$.levelM);let j=E?(X-1+k.len)%k.len:X-1,G=E?(X+1)%k.len:X+1;j>=0&&Z(j,$.r,$.levelM),G<k.len&&Z(G,$.r,$.levelM)}}P.push(U)}P.reduce((k,E)=>k+E.binCount*I,0)<Rc||l.push({arcs:P,sectionIds:h.members.map(k=>k.sectionId),innerRMedian:y,outerRMedian:M})}if(!l.length)return null;if(l.sort((h,m)=>h.innerRMedian-m.innerRMedian),t){let h=l[l.length-1].outerRMedian;if(Math.hypot(t.x-c.x,t.y-c.y)>.9*h)return null}return{centre:c,binCount:ie,binStepDeg:360/ie,rings:l}}function Lr(e,t,n,o){let r=e.binStepDeg,i=n/r-.5-t.startBin;i=(i%e.binCount+e.binCount)%e.binCount,i>t.binCount-1&&(t.closed?i=i-t.binCount<t.binCount-i?0:t.binCount-1:i=i-(t.binCount-1)<e.binCount-i?t.binCount-1:0);let s=Math.floor(i),a=t.closed?(s+1)%t.binCount:Math.min(t.binCount-1,s+1),c=i-s,f=u=>{let l=t.profiles[u],h=l.rs,m=l.ls;if(o<=h[0])return m[0];if(o>=h[h.length-1])return m[m.length-1];for(let d=0;d+1<h.length;d++)if(o<=h[d+1]){let p=h[d+1]-h[d],b=p>1e-9?(o-h[d])/p:0;return m[d]+(m[d+1]-m[d])*b}return m[m.length-1]};return f(s)*(1-c)+f(a)*c}function Rn(e,t,n,o,r,i,s,a,c,f=[],u=r){if(t.length!==n.length||t.length<2||i-r<1.5)return;let l=(p,b,x)=>{Oe(e,p,b,x,f,s,a,{portalBase:u,ao:c})||W(e,p,void 0,()=>x,b,s,a,c)},h=(p,b,x)=>({x:p.x+(b.x-p.x)*x,y:p.y+(b.y-p.y)*x}),m=o?t.length:t.length-1,d=0;for(let p=0;p<m;p++){let b=(p+1)%t.length,x=Math.hypot(n[b].x-n[p].x,n[b].y-n[p].y)*J;if(x<1e-5)continue;let y=(S,R)=>[h(t[p],t[b],S),h(t[p],t[b],R),h(n[p],n[b],R),h(n[p],n[b],S)];l(y(0,1),r,r+.95),l(y(0,1),i-.22,i);let M=Math.ceil((d-.32)/6)*6,g=!1,v=!1;for(let S=M;S<d+x;S+=6){let R=Math.max(0,(S-d)/x),I=Math.min(1,(S+.32-d)/x);I<=R||(l(y(R,I),r+.95,i-.22),g||=R<1e-6,v||=I>1-1e-6)}if(!o&&(p===0&&!g||p===m-1&&!v)){let S=Math.min(1,.32/x);l(y(p===0?0:1-S,p===0?S:1),r+.95,i-.22)}d+=x}}var bt=.65;function Or(e,t){let n=1/0;for(let o of t)for(let r=0;r<o.length;r++){let i=o[r],s=o[(r+1)%o.length],a=s.x-i.x,c=s.y-i.y,f=Math.max(0,Math.min(1,((e.x-i.x)*a+(e.y-i.y)*c)/(a*a+c*c||1)));n=Math.min(n,Math.hypot(e.x-i.x-f*a,e.y-i.y-f*c))}return n}var Br=.01;function Fr(e,t,n,o,r,i,s,a=[],c=!0){if(o-r<=1e-5)return;let f=o-r>=3,u=f?o-bt:r;e.setMaterial(5);let l=f?[]:a.filter(g=>{if(g.role!=="entrance"&&g.role!=="exit")return!1;let v=se(g);if(!v)return!1;let S=Je(v,r,r+Pe(g).heightM);return S!==null&&S.openingTop<=o-.12});if((!l.length||!Oe(e,t,u,o,l,i,s,{holes:n,portalBase:r}))&&W(e,t,n,()=>o,u,i,s,K,void 0,()=>[0,1,0]),!f){e.setMaterial(0);return}let h=6/w,m=.22/w,d=a.flatMap(g=>{if(g.role!=="entrance"&&g.role!=="exit")return[];let v=se(g);return v?.length?[{minX:Math.min(...v.map(S=>S.x)),maxX:Math.max(...v.map(S=>S.x)),minY:Math.min(...v.map(S=>S.y)),maxY:Math.max(...v.map(S=>S.y))}]:[]}),p=Math.min(...t.map(g=>g.x)),b=Math.max(...t.map(g=>g.x)),x=Math.min(...t.map(g=>g.y)),y=Math.max(...t.map(g=>g.y));for(let g=p+h/2;g<b;g+=h)for(let v=x+h/2;v<y;v+=h){if(d.some(R=>g+m>=R.minX&&g-m<=R.maxX&&v+m>=R.minY&&v-m<=R.maxY))continue;let S=[{x:g-m,y:v-m},{x:g+m,y:v-m},{x:g+m,y:v+m},{x:g-m,y:v+m}];!me({x:g,y:v},t,n)||Or({x:g,y:v},[t,...n??[]])<m*Math.SQRT2+(c?wn/w:0)||W(e,S,void 0,()=>u,r,i,s,K)}let M=Ye(t,wn/w);if(c&&M.length>=3){let g=a.filter(R=>{if(R.role!=="entrance"&&R.role!=="exit")return!1;let I=se(R);return!!I&&I.some(P=>!me(P,t,void 0)||Or(P,[t])<=wn/w)}),v=[M.slice().reverse()],S=r-Br;(!g.length||!Oe(e,t,S,u,g,i,s,{holes:v,portalBase:r+Br}))&&W(e,t,v,()=>u,S,i,s,K)}e.setMaterial(0)}var wn=.25;var Ec=.02,Ac=.25,Cc=1.2,_c=.6,kc=.45,Tc=2.3,Lc=Math.PI/180,Dr=.005;function ke(e,t,n){let o=n*Lc;return{x:e.x+t*Math.sin(o),y:e.y+t*Math.cos(o)}}function Oc(e,t){let n=t.rings[t.rings.length-1];if(!n)return!1;let o=n.outerRMedian*.85;for(let r of e){if(r.role!=="wall")continue;let i=r.points&&r.points.length>=2?r.points:r.x!==void 0&&r.y!==void 0&&r.width!==void 0&&r.height!==void 0?[{x:r.x,y:r.y},{x:r.x+r.width,y:r.y},{x:r.x+r.width,y:r.y+r.height},{x:r.x,y:r.y+r.height}]:[];if(i.length<2)continue;let s=0;for(let a of i)Math.hypot(a.x-t.centre.x,a.y-t.centre.y)>=o&&s++;if(s>=i.length/2)return!0}return!1}var Bc=24,Fc=.01;function Dc(e,t,n,o,r,i,s,a,c){let f=n.binCount,u=Bc,l=J,h=i+.02,m=i-Fc,d=[];for(let E=0;E<f;E++){let C=(n.startBin+E+.5)*t.binStepDeg,O=new Float64Array(u+1);for(let F=0;F<=u;F++){let L=o[E]+(r[E]-o[E])*F/u;O[F]=Math.max(h,Lr(t,n,C,L)-Ac)}d.push(O)}if(c){let E=0;for(let C=0;C+1<f;C++)for(let O=0;O<u;O++){let F=ke(t.centre,o[C]+(r[C]-o[C])*O/u,(n.startBin+C+.5)*t.binStepDeg),L=ke(t.centre,o[C+1]+(r[C+1]-o[C+1])*(O+1)/u,(n.startBin+C+1.5)*t.binStepDeg);E=Math.max(E,Math.hypot(L.x-F.x,L.y-F.y))}for(let C=0;C<f;C++){let O=(n.startBin+C+.5)*t.binStepDeg;for(let F=0;F<=u;F++){let L=ke(t.centre,o[C]+(r[C]-o[C])*F/u,O),B=c(L.x,L.y,E*1.01);B!==null&&(d[C][F]=Math.min(d[C][F],Math.max(m+Dr,B-Dr)))}}}let p=[s.bandTop[0]*a.top,s.bandTop[1]*a.top,s.bandTop[2]*a.top],b=[s.bandTop[0]*a.bottomCap,s.bandTop[1]*a.bottomCap,s.bandTop[2]*a.bottomCap],x=[s.bandWall[0]*a.top,s.bandWall[1]*a.top,s.bandWall[2]*a.top],y=[s.bandWall[0]*a.wallBottom,s.bandWall[1]*a.wallBottom,s.bandWall[2]*a.wallBottom],M=(E,C)=>{let O=(n.startBin+E+.5)*t.binStepDeg,F=o[E]+(r[E]-o[E])*C/u,L=ke(t.centre,F,O);return[L.x*l,d[E][C],L.y*l]};{let E=Math.tan(12*Math.PI/180);for(let C=0;C<6;C++){let O=!1;for(let L=0;L<f;L++)for(let B=u-1;B>=0;B--)d[L][B]>d[L][B+1]&&(d[L][B]=d[L][B+1],O=!0);let F=n.closed?f:f-1;for(let L=0;L<F;L++){let B=(L+1)%f;for(let N=0;N<=u;N++){let H=d[B][N]-d[L][N];if(Math.abs(H)>1)continue;let D=o[L]+(r[L]-o[L])*N/u,V=o[B]+(r[B]-o[B])*N/u,U=ke(t.centre,D,(n.startBin+L+.5)*t.binStepDeg),Z=ke(t.centre,V,(n.startBin+B+.5)*t.binStepDeg),X=E*Math.hypot(Z.x-U.x,Z.y-U.y)*l;H>X?(d[B][N]=d[L][N]+X,O=!0):-H>X&&(d[L][N]=d[B][N]+X,O=!0)}}if(!O)break}}let g=1,v=(E,C)=>{for(let O=0;O<=u;O+=4)if(Math.abs(d[E][O]-d[C][O])>g)return!0;return Math.abs(d[E][u]-d[C][u])>g},S=Math.tan(38*Math.PI/180),R=E=>(r[E]-o[E])/u*l,I=(E,C)=>d[E][C+1]-d[E][C]>S*Math.max(1e-6,R(E)),P=(E,C)=>{let O=n.closed?(E-1+f)%f:Math.max(0,E-1),F=n.closed?(E+1)%f:Math.min(f-1,E+1);Math.abs(d[O][C]-d[E][C])>g&&(O=E),Math.abs(d[F][C]-d[E][C])>g&&(F=E);let L=Math.max(0,C-1),B=Math.min(u,C+1);L<C&&I(E,L)&&(L=C),B>C&&I(E,C)&&(B=C);let N=M(O,C),H=M(F,C),D=M(E,L),V=M(E,B),U=H[0]-N[0],Z=H[1]-N[1],X=H[2]-N[2],q=V[0]-D[0],$=V[1]-D[1],j=V[2]-D[2],G=Z*j-X*$,Q=X*q-U*j,te=U*$-Z*q,ne=Math.hypot(G,Q,te);return ne>1e-12?(G/=ne,Q/=ne,te/=ne,Q<0&&(G=-G,Q=-Q,te=-te),[G,Q,te]):[0,1,0]},A=(E,C,O=!1)=>{let F=O&&Math.min(E[1],C[1])-i>=3,L=[E[0],F?E[1]-bt:m,E[2]],B=[C[0],F?C[1]-bt:m,C[2]],N=C[0]-E[0],H=C[2]-E[2],D=Math.hypot(N,H);if(!(D>1e-12))return;let V=[H/D,0,-N/D];e.tri(E,C,B,V,x,x,y),e.tri(E,B,L,V,x,y,y)},_=.05*ge,T=E=>r[E]-o[E]<_,k=n.closed?f:f-1;for(let E=0;E<k;E++){let C=(E+1)%f;if(T(E)||T(C))continue;if(v(E,C)){let H=(n.startBin+E+1)*t.binStepDeg,D=($,j)=>{let G=(o[E]+o[C])/2,Q=(r[E]+r[C])/2,te=G+(Q-G)*j/u,ne=ke(t.centre,te,H);return[ne.x*l,d[$][j],ne.y*l]};for(let $=0;$<u;$++){let j=M(E,$),G=M(E,$+1),Q=D(E,$),te=D(E,$+1),ne=P(E,$),ce=P(E,$+1);e.triN(j,Q,te,ne,ne,ce,p),e.triN(j,te,G,ne,ce,ce,p);let ae=M(C,$),Y=M(C,$+1),le=D(C,$),Re=D(C,$+1),we=P(C,$),ve=P(C,$+1);e.triN(le,ae,Y,we,we,ve,p),e.triN(le,Y,Re,we,ve,ve,p);let Se=D(E,$),he=D(E,$+1),We=D(C,$+1),Zt=D(C,$),xt=he[0]-Se[0],rt=he[2]-Se[2],$t=Math.hypot(xt,rt);if($t>1e-12){let On=[rt/$t,0,-xt/$t];e.tri(Se,he,We,On,x),e.tri(Se,We,Zt,On,x)}}let V=M(E,0),U=M(C,0),Z=M(C,u),X=M(E,u),q=$=>[$[0],m,$[2]];Math.min(V[1],U[1])-i<3&&(e.tri(q(V),q(Z),q(U),[0,-1,0],b),e.tri(q(V),q(X),q(Z),[0,-1,0],b)),A(V,U,!0),A(X,Z,!0);continue}for(let H=0;H<u;H++){let D=P(E,H),V=P(C,H),U=P(C,H+1),Z=P(E,H+1);if(I(E,H)||I(C,H)){let G=(he,We)=>{let Zt=(n.startBin+he+.5)*t.binStepDeg,xt=o[he]+(r[he]-o[he])*(H+.5)/u,rt=ke(t.centre,xt,Zt);return[rt.x*l,We,rt.y*l]},Q=M(E,H),te=M(C,H),ne=G(E,d[E][H]),ce=G(C,d[C][H]);e.triN(Q,te,ce,D,V,V,p),e.triN(Q,ce,ne,D,V,D,p);let ae=M(C,H+1),Y=M(E,H+1),le=G(E,d[E][H+1]),Re=G(C,d[C][H+1]);e.triN(le,Re,ae,Z,U,U,p),e.triN(le,ae,Y,Z,U,Z,p);let we=ce[0]-ne[0],ve=ce[2]-ne[2],Se=Math.hypot(we,ve);if(Se>1e-12){let he=[-ve/Se,0,we/Se];e.tri(ne,ce,Re,he,x),e.tri(ne,Re,le,he,x)}continue}let X=M(E,H),q=M(C,H),$=M(C,H+1),j=M(E,H+1);e.triN(X,q,$,D,V,U,p),e.triN(X,$,j,D,U,Z,p)}let O=M(E,0),F=M(C,0),L=M(C,u),B=M(E,u),N=H=>[H[0],m,H[2]];Math.min(O[1],F[1])-i<3&&(e.tri(N(O),N(L),N(F),[0,-1,0],b),e.tri(N(O),N(B),N(L),[0,-1,0],b)),A(O,F,!0),A(B,L,!0)}if(!n.closed)for(let E of[0,f-1])for(let C=0;C<u;C++)A(M(E,C),M(E,C+1))}function Nr(e,t,n){let{bottomY:o,colors:r,ao:i}=n,s=new Float64Array(t.binCount).fill(-1/0);for(let u of t.rings)for(let l of u.arcs){let h=new Float64Array(l.binCount),m=new Float64Array(l.binCount);for(let p=0;p<l.binCount;p++){let b=(l.startBin+p)%t.binCount,x=Math.max(0,l.innerR[p]-Me);h[p]=Math.max(x,s[b]+.001),m[p]=Math.max(h[p]+.001,l.outerR[p]+Me)}let d=0;for(let p=0;p<l.binCount;p++){let b=l.topLevelM[p]-o;b>d&&(d=b)}d>=Cc&&Dc(e,t,l,h,m,o,r,i,n.standTopNear);for(let p=0;p<l.binCount;p++){let b=(l.startBin+p)%t.binCount;m[p]>s[b]&&(s[b]=m[p])}}if(n.deriveShell===!1||Oc(n.shapes,t))return;let a=t.rings[t.rings.length-1],c=_c*ge,f=kc*ge;for(let u of a.arcs){let l=[],h=[];for(let P=0;P<u.binCount;P++){let A=(u.startBin+P+.5)*t.binStepDeg,_=u.outerR[P]+Me+c;l.push(ke(t.centre,_,A)),h.push(ke(t.centre,_+f,A))}let m=-1/0;for(let P=0;P<u.binCount;P++)u.topLevelM[P]>m&&(m=u.topLevelM[P]);let d=m+Tc,p=u.closed?h:[...h,...l.slice().reverse()],b=u.closed?[l.slice().reverse()]:void 0,x=re(r.shellWall,[.66,.71,.72],.62),y=(P,A,_,T,k)=>{let E=Math.abs(T-m)<1e-6?T-Ec:T;Oe(e,P,_,E,n.shapes,r.shellTop,k,{holes:A,portalBase:o,ao:i})||W(e,P,A,()=>E,_,r.shellTop,k,i)},M=Math.max(1,Math.ceil((m-o)/4.5)),g=(m-o)/M,v=new Set,S=n.tierFrontLevels??t.rings.map(P=>{let A=P.arcs.flatMap(_=>Array.from(_.frontLevelM)).filter(Number.isFinite).sort((_,T)=>_-T);return A[Math.floor(A.length/2)]});for(let P of S)Number.isFinite(P)&&P-o>=3&&P<m&&v.add(Math.max(0,Math.min(M-1,Math.floor((P-o)/g))));let R=Math.min(...S.filter(P=>Number.isFinite(P)&&P-o>=3&&P<m));for(let P=0;P<M;P++)o+(P+1)*g<=R-bt&&Number.isFinite(R)&&v.add(P);for(let P=0;P<M;P++){let A=o+(m-o)*P/M,_=o+(m-o)*(P+1)/M;v.has(P)&&_-A>=3.2?(y(p,b,A,A+.45,x),Rn(e,l,h,u.closed,A+.45,_-.16,r.shellTop,x,i,n.shapes,o)):y(p,b,A,_-.16,x),y(p,b,_-.16,_,z(x,.62))}Rn(e,l,h,u.closed,m,d,r.shellTop,x,i,n.shapes,o);let I=8;for(let P=1;P<h.length;P++){if(I+=Math.hypot(h[P].x-h[P-1].x,h[P].y-h[P-1].y)*J,I<8)continue;I=0;let A=h[P],_=h[P-1],T=A.x-_.x,k=A.y-_.y,E=Math.max(1,Math.hypot(T,k)),C=T/E*.16*ge,O=k/E*.16*ge,F=Math.max(1,Math.hypot(A.x-t.centre.x,A.y-t.centre.y)),L=(A.x-t.centre.x)/F*.24*ge,B=(A.y-t.centre.y)/F*.24*ge,N=[{x:A.x-C,y:A.y-O},{x:A.x+C,y:A.y+O},{x:A.x+C+L,y:A.y+O+B},{x:A.x-C+L,y:A.y-O+B}];y(N,void 0,o,m,z(x,1.12))}}}function Gr(e,t,n,o){let r=new Map;for(let a of t){let c=r.get(a.blockId);(!c||a.depth<c.depth)&&r.set(a.blockId,a)}let i=[.68,.72,.72],s=[.48,.55,.57];for(let a of r.values()){if(a.y-o<2.5||a.pts.length<2)continue;let c=a.pts.map(u=>{let l=u.x-n.x,h=u.y-n.y,m=Math.max(1,Math.hypot(l,h));return{x:u.x-l/m*.65/w,y:u.y-h/m*.65/w}}),f=2;for(let u=1;u<c.length;u++){let l=c[u-1],h=c[u],m=h.x-l.x,d=h.y-l.y,p=Math.hypot(m,d);if(p<1e-5||p*w>2)continue;let b=x=>{let y=-d/p*x/w/2,M=m/p*x/w/2;return[{x:l.x+y,y:l.y+M},{x:h.x+y,y:h.y+M},{x:h.x-y,y:h.y-M},{x:l.x-y,y:l.y-M}]};W(e,b(.22),void 0,()=>a.y-.06,a.y-.56,i,i,K);for(let x of[.5,.95])W(e,b(.045),void 0,()=>a.y+x,a.y+x-.045,s,s,K);if(f+=p*w,f>=1.8||u===c.length-1){f=0;let x=.028/w,y=[{x:l.x-x,y:l.y-x},{x:l.x+x,y:l.y-x},{x:l.x+x,y:l.y+x},{x:l.x-x,y:l.y+x}];W(e,y,void 0,()=>a.y+.95-.045,a.y-.06,s,s,K)}}}}function jr(e,t,n,o,r){let i=[.67,.71,.68];for(let s=0;s<t.length;s++){let a=t[s];if(!(a.pts.length<2))for(let c of[0,a.pts.length-1]){let f=a.pts[c],u=a.pts[c===0?1:c-1],l=f.x-u.x,h=f.y-u.y,m=Math.hypot(l,h);if(m<1e-5)continue;l/=m,h/=m;let d=1/0;for(let I=0;I<n.length;I++){let P=n[I],A=n[(I+1)%n.length],_=A.x-P.x,T=A.y-P.y,k=l*T-h*_;if(Math.abs(k)<1e-8)continue;let E=P.x-f.x,C=P.y-f.y,O=(E*T-C*_)/k,F=(E*h-C*l)/k;O>0&&F>=0&&F<=1&&(d=Math.min(d,O))}let p=.3/w,b=d-.04/w;if(!Number.isFinite(d)||d*w>2||b-p<.12/w)continue;let x=.27/w,y=[{x:f.x+l*p-h*x,y:f.y+h*p+l*x},{x:f.x+l*b-h*x,y:f.y+h*b+l*x},{x:f.x+l*b+h*x,y:f.y+h*b-l*x},{x:f.x+l*p+h*x,y:f.y+h*p-l*x}];if(!y.every(I=>pe(n,I.x,I.y)))continue;let M=r?.[s]?.belowY,g=M==null?0:a.y-M,v=!!o&&g>.03&&g<=.65;if(v&&o){let I=(P,A)=>Math.hypot((P.x+A.x)/2-o.x,(P.y+A.y)/2-o.y);I(y[0],y[1])>I(y[3],y[2])&&(y=[y[3],y[2],y[1],y[0]])}let S=v?Math.ceil((g-1e-8)/.2):1,R=(I,P,A)=>({x:I.x+(P.x-I.x)*A,y:I.y+(P.y-I.y)*A});for(let I=0;I<S;I++){let P=I/S,A=(I+1)/S,_=[R(y[0],y[3],P),R(y[1],y[2],P),R(y[1],y[2],A),R(y[0],y[3],A)],T=a.y+.008-(v?g*(1-A):0);if(W(e,_,void 0,()=>T,T-(v?g/S+.1:.16),i,[.43,.47,.46],K),!v)continue;let k=Math.hypot(_[3].x-_[0].x,_[3].y-_[0].y)*w,E=Math.min(.04/k,.25),C=R(_[0],_[3],E),O=R(_[1],_[2],E),F=B=>[B.x*w,T+.004,B.y*w],L=[.66,.59,.39];e.tri(F(_[0]),F(_[1]),F(O),[0,1,0],L),e.tri(F(_[0]),F(O),F(C),[0,1,0],L)}}}}function Hr(e,t,n,o,r,i,s,a,c=!1){if(!t.outline||t.outline.length<3)return;let f=n.baseHeightM,u=n.objects.filter(y=>y.type==="shape"&&(y.role==="entrance"||y.role==="exit")),l=Jo(o,a.tierTop);if(!r)return;let h=y=>r.deckAt(y.x,y.y),m=zo(t,s),d=m[0]??t.outline;if(r.rowLevels.length>=2){let y=Tt(r.rowLevels),M=Zo(Xo(r.rowLevels,n.focal,y),m);for(let v of M){let S=Math.max(f,v.topY-Xr);for(let R of i.subtract(v.outline,S))Fr(e,R,v.holes,S,f,a.tierTop,a.tierWall,u,!c)}M.length||W(e,d,t.holes,()=>r.landingY,f,l,a.tierWall,K);let g={tread:[l[0]*K.top,l[1]*K.top,l[2]*K.top],riser:[l[0]*.72,l[1]*.72,l[2]*.72]};for(let v of m.length?m:[d])Vo(e,r.rowLevels,n.focal,r.landingY,g,v,y);Gr(e,r.rowLevels,n.focal,f),jr(e,r.rowLevels,t.outline,n.focal,y);return}let p=r.flat?1/0:Qo,b=y=>r.normalAt(y.x,y.y),x=r.flat?r.landingY:void 0;for(let y of i.subtract(d,x))W(e,y,t.holes,h,f,l,a.tierWall,K,p,b)}function Nc(e,t,n){let o=new Set;for(let s of e.objects)s.type==="section"&&o.add(s.id);let r=new Map;for(let s=0;s<t.length;s++){let a=n.seatOwner[s];if(!a||!o.has(a))continue;let c=n.bySection.get(a);if(c&&c.rowLevels.length>=2)continue;let f=t[s];if(f.kind==="booth")continue;let u=r.get(a);u||(u=new Map,r.set(a,u));let l=f.rowId||`__seat-${s}`,h=u.get(l);h||(h={pts:[],levelM:0,n:0},u.set(l,h)),h.pts.push({x:f.x,y:f.y}),h.levelM+=n.seatDeckY(s),h.n++}let i=[];for(let s of e.objects){if(s.type!=="section")continue;let a=n.bySection.get(s.id);if(a&&a.rowLevels.length>=2){let f=a.rowLevels.filter(u=>!u.patch).map(u=>({pts:u.pts,levelM:u.y}));f.length>=2&&i.push({sectionId:s.id,rows:f});continue}let c=r.get(s.id);c&&i.push({sectionId:s.id,rows:[...c.values()].map(f=>({pts:f.pts,levelM:f.levelM/f.n}))})}return i}function Gc(e,t){let n=1/0;for(let o=0;o<t.length;o++){let r=t[o],i=t[(o+1)%t.length],s=i.x-r.x,a=i.y-r.y,c=Math.max(0,Math.min(1,((e.x-r.x)*s+(e.y-r.y)*a)/(s*s+a*a||1)));n=Math.min(n,Math.hypot(e.x-r.x-c*s,e.y-r.y-c*a))}return n}var Xr=.02;function jc(e,t){let n=e.objects.filter(o=>o.type==="section"&&!!o.outline&&o.outline.length>=3).flatMap(o=>{let r=t.bySection.get(o.id);if(!r)return[];let i=1/0,s=-1/0,a=1/0,c=-1/0;for(let u of o.outline)u.x<i&&(i=u.x),u.x>s&&(s=u.x),u.y<a&&(a=u.y),u.y>c&&(c=u.y);let f=r.landingY;for(let u of r.rowLevels)f=Math.min(f,u.y-Xr);return[{outline:o.outline,holes:o.holes,surface:r,floorTop:f,minX:i,maxX:s,minY:a,maxY:c}]});return(o,r,i)=>{let s=null;for(let a of n){if(o<a.minX-i||o>a.maxX+i||r<a.minY-i||r>a.maxY+i)continue;let c={x:o,y:r};if(!me(c,a.outline,a.holes)&&Gc(c,a.outline)>i)continue;let f=Math.min(a.surface.deckAt(o,r),a.floorTop);(s===null||f<s)&&(s=f)}return s}}var Hc=3,Xc=.4;function Ur(e,t,n,o,r,i,s=!0){let a=Nc(t,n,o);if(a.length<Hc)return;let c=Tr(a,t.focal);if(!c)return;let f=Math.max(0,...c.rings.map(u=>u.arcs.reduce((l,h)=>l+h.binCount,0)))/c.binCount;e.setMaterial(5),Nr(e,c,{bottomY:t.baseHeightM,tierFrontLevels:a.map(u=>Math.min(...u.rows.map(l=>l.levelM))),colors:{bandTop:z(r.tierTop,.8),bandWall:r.tierWall,shellTop:i??z(r.tierWall,1.15),shellWall:i??r.tierWall},ao:K,shapes:t.objects.filter(u=>u.type==="shape"),deriveShell:s&&f>=Xc,standTopNear:jc(t,o)}),e.setMaterial(0)}function yt(e){if(e.length<3)return e.map(i=>({...i}));let t=[...e].sort((i,s)=>i.x-s.x||i.y-s.y),n=(i,s,a)=>(s.x-i.x)*(a.y-i.y)-(s.y-i.y)*(a.x-i.x),o=i=>{let s=[];for(let a of i){for(;s.length>=2&&n(s[s.length-2],s[s.length-1],a)<=0;)s.pop();s.push(a)}return s.pop(),s},r=[...o(t),...o([...t].reverse())];return r.length>=3?r.map(i=>({...i})):t.map(i=>({...i}))}var Uc=.8,Vc=.6,Yc=2;function Kt(e,t){if(!t.length)return null;let n=[],o=0;for(let s of e.objects){if(s.type!=="shape"||s.role!=="wall")continue;let a=se(s)??[],c=Vr(a)/2;!(c>0)||Kc(a)/c*w>Yc||(n.push(...a),o+=c)}if(n.length<3)return null;let r=yt(n);if(r.length<3||o<Vr(r)*Vc)return null;let i=0;for(let s of t)Wc(s,r)&&(i+=1);return i>=t.length*Uc?r:null}function Kc(e){let t=0;for(let n=0;n<e.length;n++){let o=e[n],r=e[(n+1)%e.length];t+=o.x*r.y-r.x*o.y}return Math.abs(t)/2}function Vr(e){let t=0;for(let n=0;n<e.length;n++){let o=e[n],r=e[(n+1)%e.length];t+=Math.hypot(r.x-o.x,r.y-o.y)}return t}function Wc(e,t){let n=!1;for(let o=0,r=t.length-1;o<t.length;r=o++){let i=t[o],s=t[r];i.y>e.y!=s.y>e.y&&e.x<(s.x-i.x)*(e.y-i.y)/(s.y-i.y)+i.x&&(n=!n)}return n}var Yr=4;var zc=[[/\b(wc|toilets?|restrooms?|washrooms?|lavatory|loo)\b/i,"restroom"],[/\b(bar|drinks|pub|cocktails?)\b/i,"bar"],[/\b(food|concessions?|snacks?|kiosk|caf[eé]|kitchen|catering)\b/i,"concession"],[/\b(coat ?check|cloak ?room|cloakroom|coats)\b/i,"coat"],[/\b(screen|led wall|projection|video wall)\b/i,"screen"],[/\b(sound|foh|mixing desk|control booth)\b/i,"sound"],[/\b(entrance|entry|way in|gate)\b/i,"entrance"],[/\b(exit|way out)\b/i,"exit"],[/\b(pillar|column|obstruction)\b/i,"obstruction"],[/\b(walls?|outline|boundary|perimeter)\b/i,"wall"]],Zc=1.2,$c=12;function Kr(e){if(e.heightM!==void 0)return!1;let t=se(e);if(!t||t.length<3)return!1;let n=0;for(let r=0;r<t.length;r++){let i=t[r],s=t[(r+1)%t.length];n+=Math.hypot(s.x-i.x,s.y-i.y)}return n*J<$c*2?!1:2*Wt(t)/n*J<=Zc}function vn(e){if(!e)return null;for(let[t,n]of zc)if(t.test(e))return n;return null}var Zr="auto-rows-";function $r(e){return e.id.startsWith(Zr)&&!e.label}var Qc=1.15,qc=.09,Qr=6,Jc=34,el=.35,tl=6,nl=.35,ol=.75,rl=12,il=2.5,sl=40,al=[18,24],cl=[12,16],Wr=14,ll=.8,ul=.6,fl=5,ml=.3,qr=.4,hl=2,dl=400,pl=2.6,bl=1.6,yl=6e3,xl=.6,gl="#c3c7cd",zr=300,Ml=240;function Sl(e,t,n,o){if(!e.fill||!/^#[0-9a-f]{6}$/i.test(e.fill))return null;let r=An([...t]),i=new Set;for(let u of o)i.add(Math.floor(Math.atan2(u.y-r.y,u.x-r.x)*180/Math.PI/10));if(i.size*10<Ml)return null;let{h:s,s:a,l:c}=yo(bo(e.fill));return s<70/360||s>170/360||a<.2||c<.08||c>.75||n.some(u=>u!==e&&u.type==="shape"&&se(u)?.some(l=>_n(l,t)))?null:e.kind==="ellipse"?"oval-cricket":e.kind==="rect"?"pitch-football":null}var Il="Estimated from the drawing; confirm with the venue.",Jr=e=>{if(!e.length)return null;let t=[...e].sort((o,r)=>o-r),n=Math.floor(t.length/2);return t.length%2?t[n]:(t[n-1]+t[n])/2},An=e=>({x:e.reduce((t,n)=>t+n.x,0)/e.length,y:e.reduce((t,n)=>t+n.y,0)/e.length}),Wt=e=>{let t=0;for(let n=0;n<e.length;n++){let o=e[n],r=e[(n+1)%e.length];t+=o.x*r.y-r.x*o.y}return Math.abs(t)/2};function Pl(e){return e.height!==void 0||e.rake!==void 0||e.elevation!==void 0||e.surfaceKind!==void 0}function Cn(e){let t=new Map;for(let n of e){let o=t.get(n.rowId);o?o.push(n):t.set(n.rowId,[n])}return t}function _n(e,t){let n=!1;for(let o=0,r=t.length-1;o<t.length;r=o++){let i=t[o],s=t[r];i.y>e.y!=s.y>e.y&&e.x<(s.x-i.x)*(e.y-i.y)/(s.y-i.y)+i.x&&(n=!n)}return n}function kn(e,t){let n=t[0],o=1/0;for(let r=0;r<t.length;r++){let i=t[r],s=t[(r+1)%t.length],a=s.x-i.x,c=s.y-i.y,f=a*a+c*c,u=f>0?Math.max(0,Math.min(1,((e.x-i.x)*a+(e.y-i.y)*c)/f)):0,l={x:i.x+a*u,y:i.y+c*u},h=Math.hypot(e.x-l.x,e.y-l.y);h<o&&(o=h,n=l)}return n}function ei(e,t){let n=0,o=0;for(let r of e.values()){if(r.length<3)continue;let i=r[0],s=r[r.length-1],a=s.x-i.x,c=s.y-i.y,f=Math.hypot(a,c);if(f<1e-6)continue;let u={x:(i.x+s.x)/2,y:(i.y+s.y)/2},l=kn(u,t),h=l.x-u.x,m=l.y-u.y,d=Math.hypot(h,m);d<1e-6||(o+=Math.abs((-c*h+a*m)/(f*d))*r.length,n+=r.length)}return n?o/n:0}function Rl(e,t,n){let o=e.filter(p=>p.type==="shape"),r=o.find(p=>p.role==="stage");if(r){let p=se(r);return p?{shape:r,centre:An(p),outline:p,inferred:!1}:null}if(!n.length)return null;let i=1/0,s=-1/0,a=1/0,c=-1/0;for(let p of n)i=Math.min(i,p.x),s=Math.max(s,p.x),a=Math.min(a,p.y),c=Math.max(c,p.y);let f=(s-i)*(c-a),u=[];for(let p of o){if(p.role)continue;let b=se(p);if(!b)continue;let x=Wt(b);if(x*J*J<6||x>f)continue;let y=Math.min(...b.map(P=>P.x)),M=Math.max(...b.map(P=>P.x)),g=Math.min(...b.map(P=>P.y)),v=Math.max(...b.map(P=>P.y)),S=0;for(let P of n)P.x>y&&P.x<M&&P.y>g&&P.y<v&&_n(P,b)&&S++;if(S>n.length*.05)continue;let R=An(b),I=ei(t,b);I>=ll&&u.push({shape:p,centre:R,outline:b,score:I,area:x,box:[y,g,M,v]})}let l=(p,b)=>b!==p&&b.area>p.area&&p.box[0]>=b.box[0]-1e-6&&p.box[1]>=b.box[1]-1e-6&&p.box[2]<=b.box[2]+1e-6&&p.box[3]<=b.box[3]+1e-6,h=u.filter(p=>!u.some(b=>l(p,b))),m=Math.max(0,...h.map(p=>p.score)),d=h.filter(p=>p.score>=m-.03).sort((p,b)=>b.area-p.area)[0]??null;return d?{shape:d.shape,centre:d.centre,outline:d.outline,inferred:!0}:null}function wl(e,t,n){if(!n||n.length<3)return Math.hypot(e.x-t.x,e.y-t.y);let o=kn(e,n);return Math.hypot(e.x-o.x,e.y-o.y)}function ti(e){let t=[...e].sort((i,s)=>i.x-s.x||i.y-s.y);if(t.length<3)return t;let n=(i,s,a)=>(s.x-i.x)*(a.y-i.y)-(s.y-i.y)*(a.x-i.x),o=[];for(let i of t){for(;o.length>=2&&n(o[o.length-2],o[o.length-1],i)<=0;)o.pop();o.push(i)}let r=[];for(let i=t.length-1;i>=0;i--){let s=t[i];for(;r.length>=2&&n(r[r.length-2],r[r.length-1],s)<=0;)r.pop();r.push(s)}return[...o.slice(0,-1),...r.slice(0,-1)]}function vl(e){if(!e.length||e.length>yl)return[];let t=[...Cn(e).values()],n=t.map((a,c)=>c),o=a=>n[a]===a?a:n[a]=o(n[a]),r=bl/J,i=t.map(a=>({minX:Math.min(...a.map(c=>c.x))-r,maxX:Math.max(...a.map(c=>c.x))+r,minY:Math.min(...a.map(c=>c.y))-r,maxY:Math.max(...a.map(c=>c.y))+r}));for(let a=0;a<t.length;a++)for(let c=a+1;c<t.length;c++){let f=i[a],u=i[c];if(f.maxX<u.minX||u.maxX<f.minX||f.maxY<u.minY||u.maxY<f.minY)continue;t[a].some(h=>t[c].some(m=>Math.hypot(h.x-m.x,h.y-m.y)<=r))&&(n[o(a)]=o(c))}let s=new Map;return t.forEach((a,c)=>{let f=o(c),u=s.get(f);u?u.push(...a):s.set(f,[...a])}),[...s.values()].filter(a=>new Set(a.map(c=>c.rowId)).size>=2)}function El(e,t,n){if(!t.length)return null;let o=t.filter(I=>n.tableIds.has(I.rowId)||I.kind==="booth").length>t.length/2,r=Cn(t),i=!n.outline||ei(r,n.outline)>=ul,s=0,a=0;for(let I of r.values()){if(I.length<2)continue;let P=I[0],A=I[I.length-1],_=A.x-P.x,T=A.y-P.y,k=Math.hypot(_,T);if(k<1e-6)continue;let E={x:(P.x+A.x)/2,y:(P.y+A.y)/2},C=i?n.outline?kn(E,n.outline):n.focal:n.middle,O=-T/k,F=_/k;O*(C.x-E.x)+F*(C.y-E.y)<0&&(O=-O,F=-F),s+=O*I.length,a+=F*I.length}let c={x:t.reduce((I,P)=>I+P.x,0)/t.length,y:t.reduce((I,P)=>I+P.y,0)/t.length};if(Math.hypot(s,a)<1e-9){let I=i?n.focal:n.middle;s=I.x-c.x,a=I.y-c.y}let f=Math.hypot(s,a)||1,u={x:s/f,y:a/f},l=I=>-(I.x*u.x+I.y*u.y),h=I=>-I.x*u.y+I.y*u.x,m=1/0,d=-1/0,p=1/0,b=-1/0,x=1/0,y=new Map;for(let I of t){let P=l(I),A=h(I);m=Math.min(m,P),d=Math.max(d,P),p=Math.min(p,A),b=Math.max(b,A),i&&(x=Math.min(x,wl(I,n.focal,n.outline)));let _=I.logicalRowId??I.rowId,T=y.get(_);T?T.push(P):y.set(_,[P])}i||(x=Math.max(0,m-l(n.middle)));let M=[...y.values()].map(I=>Jr(I)).sort((I,P)=>I-P),g=[];if(!o)for(let I of M)g.length&&I-g[g.length-1]<nl/J||g.push(I);let v=Pl(e),S=De(e,{floorBaseHeightM:n.baseHeightM}),R={id:e.id,section:e,authored:v,plane:n,facing:u,facesAction:i,hull:ti(t),sample:t.filter((I,P)=>P%Math.ceil(t.length/dl)===0),frontD:m,backD:d,latMin:p,latMax:b,frontDistance:x,rowDepths:g,rowCount:g.length,level:0,height:S.height,rake:v?S.rake:0,backHeight:0};return R.backHeight=R.height+(d-m)*J*Math.tan(R.rake*Math.PI/180),R}function Al(e,t,n,o){if(e.length<2)return 0;let r=Math.max(1,t*J),i=n+Qc-o,s=0,a=0;for(let f=1;f<e.length;f++){let u=Math.max(ol,(e[f]-e[f-1])*J),l=(i+qc)*(r+u)/r;s+=l-i,a+=u,i=l,r+=u}let c=Math.atan(s/a)*180/Math.PI;return Math.round(Math.max(Qr,Math.min(Jc,c))*10)/10}function Cl(e,t){if(e.facing.x*t.facing.x+e.facing.y*t.facing.y<ml)return null;let n=-1/0,o=1/0,r=-1/0;for(let l of t.hull){n=Math.max(n,-(l.x*e.facing.x+l.y*e.facing.y));let h=-l.x*e.facing.y+l.y*e.facing.x;o=Math.min(o,h),r=Math.max(r,h)}if(Math.min(e.latMax,r)-Math.max(e.latMin,o)<qr*(e.latMax-e.latMin))return null;let s=hl/J,a=new Map,c=new Map;for(let l of e.sample){let h=Math.floor((-l.x*e.facing.y+l.y*e.facing.x)/s),m=-(l.x*e.facing.x+l.y*e.facing.y);a.set(h,Math.min(a.get(h)??1/0,m))}for(let l of t.sample){let h=Math.floor((-l.x*e.facing.y+l.y*e.facing.x)/s),m=-(l.x*e.facing.x+l.y*e.facing.y);c.set(h,Math.max(c.get(h)??-1/0,m))}let f=[];for(let[l,h]of a){let m=c.get(l);m!==void 0&&f.push(h-m)}let u=f.length?Jr(f):e.frontD-n;return u<-1/J?null:u}function _l(e,t){if(t.plane.floorIndex>=e.plane.floorIndex)return!1;let n=-1/0,o=1/0,r=1/0,i=-1/0;for(let c of t.hull){let f=-(c.x*e.facing.x+c.y*e.facing.y);n=Math.max(n,f),o=Math.min(o,f);let u=-c.x*e.facing.y+c.y*e.facing.x;r=Math.min(r,u),i=Math.max(i,u)}let s=Math.min(e.latMax,i)-Math.max(e.latMin,r),a=Math.min(e.backD,n)-Math.max(e.frontD,o);return s>qr*(e.latMax-e.latMin)&&a>1/J}function kl(e,t=!1){let n=t?cl:al,o=new Map,r=[...e].sort((c,f)=>c.plane.floorIndex-f.plane.floorIndex||c.frontDistance-f.frontDistance),i=[],s=new Map,a=c=>{if(c.plane.floorIndex===0||c.plane.baseHeightM>0)return c.plane.baseHeightM;let f=s.get(c.plane.floorIndex-1);return f===void 0?c.plane.baseHeightM:f+Yr};for(let c of r){if(!c.authored){let u=a(c),l;for(let d of i){if(d.plane.floorIndex>c.plane.floorIndex)continue;if(_l(c,d)){let x=d.backHeight+pl;x>u&&(u=x,l=d);continue}let p=Cl(c,d);if(p==null)continue;let b=d.backHeight+el+Math.min(tl,Math.max(0,p)*J)*Math.tan(d.rake*Math.PI/180);b>u&&(u=b,l=d)}c.height=Math.round(Math.min(u,c.plane.baseHeightM+sl)*100)/100;let h=!l&&c.height>c.plane.baseHeightM;if(c.level=l?l.level+1:h?1:0,c.rake=Al(c.rowDepths,c.frontDistance,c.height,c.plane.focalHeightM),!c.facesAction&&c.rowCount<fl)c.rake=0;else if(!l&&!h){let d=Math.max(1e-6,(c.backD-c.frontD)*J);c.rake=Math.min(c.rake,rl,Math.round(Math.atan(il/d)*1800/Math.PI)/10)}else c.rowCount>=2&&(c.rake=Math.max(c.rake,n[Math.min(c.level,n.length)-1]));let m=(c.backD-c.frontD)*J;if(t&&m>0&&c.height+m*Math.tan(c.rake*Math.PI/180)>c.plane.baseHeightM+Wr){let d=Math.max(0,c.plane.baseHeightM+Wr-c.height);c.rake=Math.max(Qr,Math.round(Math.atan(d/m)*1800/Math.PI)/10)}c.backHeight=c.height+m*Math.tan(c.rake*Math.PI/180),o.set(c.id,l?.id)}let f=c.plane.floorIndex;s.set(f,Math.min(s.get(f)??1/0,c.height)),i.push(c)}return o}var En=(e,t)=>!!e&&e.x===t.x&&e.y===t.y;function ni(e,t={x:0,y:-40}){let n=$e(e),o=new Map;for(let b of n){if(!b.sectionId)continue;let x=o.get(b.sectionId);x?x.push(b):o.set(b.sectionId,[b])}let r={focalInferred:!1,confident:!1,sections:[]},i=e.floors?.length?e.floors.map((b,x)=>({objects:b.objects,floorIndex:x,floorId:b.id,baseHeightM:b.baseHeightM??0,focal:b.focalPoint??e.focalPoint})):[{objects:e.objects,floorIndex:0,floorId:void 0,baseHeightM:0,focal:e.focalPoint}],s=new Set(i.flatMap(b=>b.objects.filter(x=>x.type==="table").map(x=>x.id))),a=[],c,f=new Set,u=i.map(b=>{let x=T=>!e.floors?.length||T.floorId===b.floorId,y=vl(n.filter(T=>!T.sectionId&&T.kind!=="booth"&&!s.has(T.rowId)&&x(T))),M=[];for(let T of y){let k=Ie(Ae(ti(T)),xl/J);if(n.some(C=>!x(C)&&_n(C,k)))continue;let E=`${Zr}${b.floorIndex}-${M.length}`;f.add(E),o.set(E,T),M.push({type:"section",id:E,label:"",color:gl,outline:k})}let g=M.length?{...b,objects:[...b.objects,...M]}:b,v=new Set(g.objects.filter(T=>T.type==="section").map(T=>T.logicalSectionId??T.id)),S=[...o.entries()].filter(([T])=>v.has(T)).flatMap(([,T])=>T),R=Rl(g.objects,Cn(S),S),I=g.focal;(R||g.focal&&!En(g.focal,t))&&(r.confident=!0),R&&(r.stage??={id:R.shape.id,inferred:R.inferred,...g.floorId?{floorId:g.floorId}:{}},(R.inferred||En(g.focal,t))&&(I=R.centre,r.focalInferred=!0));let P=R&&(!R.inferred||Wt(R.outline)*J*J<=zr),A=R?void 0:c,_={tableIds:s,floorIndex:g.floorIndex,floorId:g.floorId,baseHeightM:g.baseHeightM,focal:A?.focal??I,outline:R?.outline??A?.outline,focalHeightM:A?.focalHeightM??g.baseHeightM+(R&&P?Pe({...R.shape,role:"stage"}).heightM:0),middle:S.length?{x:S.reduce((T,k)=>T+k.x,0)/S.length,y:S.reduce((T,k)=>T+k.y,0)/S.length}:I};for(let T of g.objects){if(T.type!=="section")continue;let k=El(T,o.get(T.logicalSectionId??T.id)??[],_);k&&a.push(k)}return _.outline&&(c=_),En(g.focal,_.focal)||(r.focal??=[]).push({...g.floorId?{floorId:g.floorId}:{},point:{..._.focal}}),{unit:g,plane:_,stage:R,planeSeats:S}}),l=i.flatMap(b=>b.objects).map(b=>b.type==="shape"&&!b.role&&(vn(b.label)==="wall"||!vn(b.label)&&Kr(b))?{...b,role:"wall"}:b),h=Kt({objects:l},n)!==null;h&&(r.indoor=!0);let m=kl(a,h),d=new Map(a.filter(b=>!b.authored).map(b=>[b.id,b])),p=u.map(({unit:b,plane:x,stage:y,planeSeats:M})=>b.objects.map(g=>{let v=g.type==="shape"&&!g.role&&g.id!==y?.shape.id?vn(g.label):null;if(g.type==="shape"&&!g.role&&g.id!==y?.shape.id&&(v==="wall"||!v&&Kr(g))&&g.type==="shape"){(r.roles??=[]).push({id:g.id,...x.floorId?{floorId:x.floorId}:{},role:"wall"});let{fill:_,...T}=g;return{...T,role:"wall"}}if(v&&g.type==="shape")return(r.roles??=[]).push({id:g.id,...x.floorId?{floorId:x.floorId}:{},role:v}),{...g,role:v};let R=y?.inferred&&g.id===y.shape.id&&g.type==="shape"?Sl(g,y.outline,b.objects,M):null;if(R&&g.type==="shape")return r.stage?.id===g.id&&(r.stage.field=R),{...g,role:"stage",stageKind:R};if(y?.inferred&&g.id===y.shape.id&&g.type==="shape"&&Wt(y.outline)*J*J<=zr)return r.stage?.id===g.id&&(r.stage.deck=!0),{...g,role:"stage"};let I=g.type==="section"?d.get(g.id):void 0;if(!I||g.type!=="section")return g;let P=I.rowCount>=2&&I.rake>0;f.has(I.id)?r.looseRowBlocks=(r.looseRowBlocks??0)+1:r.sections.push({id:I.id,floorId:x.floorId,surfaceKind:P?"rakedRows":"flat",height:I.height,rake:I.rake,stackedOn:m.get(I.id)});let A={status:"inferred",source:"public-2d-topology",note:Il};return{...g,height:I.height,rake:I.rake,surfaceKind:P?"rakedRows":"flat",physical3dProvenance:{height:A,rake:A,surfaceKind:A}}}));if(e.floors?.length){let b=e.floors.map((x,y)=>({...x,objects:p[y],focalPoint:u[y].plane.focal}));return{doc:{...e,floors:b,objects:b[0].objects,focalPoint:b[0].focalPoint},report:r}}return{doc:{...e,objects:p[0],focalPoint:u[0].plane.focal},report:r}}var oi=/^[\p{L}\p{N}]{1,4}$/u,Tl=/^([\p{L}\p{N}]{2,})[\s\-\u2013\u2014\u00b7_./]+(.+)$/u;function ri(e,t){let n=t?.trim();if(!n)return e;let o=e.toLocaleLowerCase("en-US"),r=n.toLocaleLowerCase("en-US");if(o.startsWith(`${r} `)){let s=e.slice(n.length).trim();if(oi.test(s))return s}let i=Tl.exec(e);if(i){let s=i[1].toLocaleLowerCase("en-US"),a=i[2].trim();if((r.startsWith(s)||s.startsWith(r))&&oi.test(a))return a}return e}var Ll=6,Ol=2.2,ii=.1,Bl=.3,Fl=1.8,Dl=.9,Nl=.55,Gl=6e3;function ai(e){let{doc:t,units:n,seats:o,surfaces:r,focal:i}=e,s=t.zones??[],a=[];if(s.length){let c=new Map;for(let u of n)for(let l of u.objects)l.type==="section"&&l.zone&&c.set(l.id,l.zone);let f=new Map;for(let u=0;u<o.length;u++){let l=o[u],h=r.seatOwner[u],m=l.zoneId??(h?c.get(h):void 0);if(!m)continue;let d=f.get(m);d||(d={n:0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0,sumY:0},f.set(m,d)),d.n++,l.x<d.minX&&(d.minX=l.x),l.y<d.minY&&(d.minY=l.y),l.x>d.maxX&&(d.maxX=l.x),l.y>d.maxY&&(d.maxY=l.y),d.sumY+=r.seatDeckY(u)}for(let u of s){let l=f.get(u.id),h=[];for(let[m,d]of c)d===u.id&&h.push(m);if(!l||l.n===0){a.push({id:u.id,label:u.label,color:oe(u.color),sectionIds:h,seatCount:0,center:[0,0,0],radius:0,focalWorld:[(u.focalPoint??i).x*w,1.5,(u.focalPoint??i).y*w]});continue}a.push({id:u.id,label:u.label,color:oe(u.color),sectionIds:h,seatCount:l.n,center:[(l.minX+l.maxX)/2*w,l.sumY/l.n,(l.minY+l.maxY)/2*w],radius:.5*Math.hypot((l.maxX-l.minX)*w,(l.maxY-l.minY)*w)||1,focalWorld:[(u.focalPoint??i).x*w,1.5,(u.focalPoint??i).y*w]})}}return a}function ci(e){let{doc:t,units:n,seats:o,surfaces:r,seatData:i,hintedSeatFloor:s,zones:a,focal:c}=e,f=[],u=[],l=[],h=new Map;for(let m of n)for(let d of m.objects){if(d.type!=="section"||!d.zone)continue;let p=(d.displayLabel||d.label||"").trim().toLocaleLowerCase();if(!p)continue;let b=t.floors?.[m.index]?.name?.trim().toLocaleLowerCase();if(n.length>1&&b===p)continue;let x=h.get(d.zone);x||h.set(d.zone,x=new Set),x.add(p)}for(let m of a)m.seatCount!==0&&(h.get(m.id)?.has(m.label.trim().toLocaleLowerCase())||f.push({id:`zone:${m.id}`,kind:"zone",text:m.label,anchor:[m.center[0],m.center[1]+Ll,m.center[2]],color:t.zones?.find(d=>d.id===m.id)?.color}));{let m=new Map,d=new Map;for(let p=0;p<o.length;p++){let b=r.seatOwner[p];if(!b)continue;let x=m.get(b);x||(x={n:0,x:0,y:0,deck:0},m.set(b,x)),x.n++,x.x+=o[p].x,x.y+=o[p].y,x.deck+=r.seatDeckY(p);let y=d.get(b);y||(y={minX:1/0,maxX:-1/0,minY:1/0,maxY:-1/0,minDeck:1/0,maxDeck:-1/0},d.set(b,y)),y.minDeck=Math.min(y.minDeck,r.seatDeckY(p)),y.maxDeck=Math.max(y.maxDeck,r.seatDeckY(p)),o[p].x<y.minX&&(y.minX=o[p].x),o[p].x>y.maxX&&(y.maxX=o[p].x),o[p].y<y.minY&&(y.minY=o[p].y),o[p].y>y.maxY&&(y.maxY=o[p].y)}for(let p of n)for(let b of p.objects){if(b.type!=="section"||$r(b))continue;let x=m.get(b.id);if(!x||x.n===0)continue;let y=d.get(b.id),M=[x.x/x.n*w,x.deck/x.n,x.y/x.n*w],g=b.displayLabel||b.label||b.id;u.push({id:b.id,floorIndex:p.index,label:g,seatCount:x.n,center:M,radius:Math.max(1,Math.hypot(y.maxX-y.minX,y.maxY-y.minY)*.5*w),box:{min:[y.minX*w-.4,y.minDeck,y.minY*w-.4],max:[y.maxX*w+.4,y.maxDeck+1,y.maxY*w+.4]},focalWorld:[p.focal.x*w,p.baseHeightM+1.5,p.focal.y*w]});let v=t.floors?.[p.index]?.name?.trim().toLocaleLowerCase();n.length>1&&v===g.trim().toLocaleLowerCase()||f.push({id:`section:${b.id}`,kind:"section",text:g,anchor:[M[0],M[1]+Ol,M[2]],floorIndex:p.index})}}{for(let x of n)for(let y of x.objects){if(y.type!=="gaArea")continue;let M=it(y.points);if(!M)continue;let g=y.displayLabel||y.label||y.id;f.push({id:`ga:${y.id}`,kind:"ga",text:y.capacity>0?`${g} \xB7 ${y.capacity.toLocaleString()}`:g,anchor:[M.x*w,x.baseHeightM+Fl,M.y*w],floorIndex:x.index})}let m=new Map,d=new Map;for(let x of n)for(let y of x.objects)if(y.type==="section"&&m.set(y.id,y.displayLabel||y.label||y.id),y.type==="row"){let M=y.displayLabel?.trim()||y.segmentedRow?.displayLabel?.trim();M&&d.set(y.id,M)}let p=new Map;for(let x=0;x<o.length;x++){let y=o[x],M=Math.hypot(y.x-c.x,y.y-c.y),g=p.get(y.rowId);(!g||M>g.far)&&p.set(y.rowId,{seat:y,index:x,far:M})}for(let[x,y]of p){let M=r.seatOwner[y.index]??y.seat.sectionId,g=si(y.seat.label,x,m.get(M??""),d.get(x));g&&f.push({id:`row:${x}`,kind:"row",text:g,anchor:[y.seat.x*w,r.seatDeckY(y.index)+Dl,y.seat.y*w],floorIndex:s[y.index]})}let b=new Map;for(let x=0;x<o.length;x++){let y=o[x],M=b.get(y.rowId);M||(M={n:0,x:0,y:0,z:0,minX:1/0,maxX:-1/0,minZ:1/0,maxZ:-1/0,label:si(y.label,y.rowId,m.get(r.seatOwner[x]??y.sectionId??""),d.get(y.rowId)),sectionId:r.seatOwner[x]??y.sectionId},b.set(y.rowId,M));let g=x*3,v=i.iPosition[g],S=i.iPosition[g+1],R=i.iPosition[g+2];M.n++,M.x+=v,M.y+=S,M.z+=R,M.minX=Math.min(M.minX,v),M.maxX=Math.max(M.maxX,v),M.minZ=Math.min(M.minZ,R),M.maxZ=Math.max(M.maxZ,R)}for(let[x,y]of b)l.push({id:x,label:y.label,sectionId:y.sectionId,seatCount:y.n,center:[y.x/y.n,y.y/y.n,y.z/y.n],radius:Math.max(.8,Math.hypot(y.maxX-y.minX,y.maxZ-y.minZ)*.5)});if(o.length<=Gl)for(let x=0;x<o.length;x++){let y=o[x],M=jl(y.displayLabel||y.label);M&&f.push({id:`seat:${y.id}`,kind:"seat",seatWidthM:i.iChairWidth[x]*2,text:M,anchor:[y.x*w,r.seatDeckY(x)+Nl,y.y*w],floorIndex:s[x],rowId:y.rowId})}}for(let m of n)for(let d of m.objects)if(d.type==="shape"&&d.role&&["entrance","exit","screen","suite","obstruction"].includes(d.role)){let p=se(d),b=p?it(p):null;if(!b||!d.label)continue;f.push({id:`architecture:${d.id}`,kind:"annotation",text:d.label,anchor:[b.x*w,m.baseHeightM+Pe(d).heightM+ii,b.y*w],color:d.fill,floorIndex:m.index})}else if(d.type==="text"){if(!d.text)continue;f.push({id:`text:${d.id}`,kind:"annotation",text:d.text,anchor:[d.position.x*w,m.baseHeightM+ii,d.position.y*w],color:d.color,rotation:d.rotation,floorIndex:m.index})}else if(d.type==="booth"){let p=_e(d);if(!p)continue;let b=it(p);if(!b)continue;f.push({id:`booth:${d.id}`,kind:"booth",text:d.displayLabel||d.label||d.id,anchor:[b.x*w,m.baseHeightM+Ht+Bl,b.y*w],floorIndex:m.index})}return{labels:f,sections:u,rows:l}}function li(e,t){if(t.length>1)for(let n of t)e.push({id:`floor:${n.id}`,kind:"floor",text:n.label,anchor:[n.center[0],n.box.max[1]+1.2,n.center[2]],floorIndex:n.index})}function jl(e){let t=e.lastIndexOf("-");return t>=0&&t<e.length-1?e.slice(t+1):e}function si(e,t,n,o){if(o?.trim())return o.trim();let r=e?e.lastIndexOf("-"):-1,i=r>0?e.slice(0,r):t;return i&&ri(i,n)}function ui(e){let{doc:t,units:n,seats:o,surfaces:r,solids:i,hintedSeatFloor:s,seatFloor:a}=e,c=[];{let f=n.map(()=>({minX:1/0,minY:1/0,minZ:1/0,maxX:-1/0,maxY:-1/0,maxZ:-1/0}));for(let h=0;h<i.floor.length;h+=1){let m=Math.max(0,Math.min(n.length-1,Math.round(i.floor[h]))),d=h*3,p=f[m];p.minX=Math.min(p.minX,i.position[d]),p.minY=Math.min(p.minY,i.position[d+1]),p.minZ=Math.min(p.minZ,i.position[d+2]),p.maxX=Math.max(p.maxX,i.position[d]),p.maxY=Math.max(p.maxY,i.position[d+1]),p.maxZ=Math.max(p.maxZ,i.position[d+2])}let u=new Map;for(let h=0;h<n.length;h++)for(let m of n[h].objects)m.type==="section"&&u.set(m.id,h);let l=n.map(()=>({n:0,minX:1/0,minY:1/0,minDeck:1/0,maxX:-1/0,maxY:-1/0,maxDeck:-1/0,sumX:0,sumDeck:0,sumZ:0}));for(let h=0;h<o.length;h++){let m=r.seatOwner[h],d=(m!==null?u.get(m):void 0)??s[h];if(d===void 0)continue;let p=l[d],b=o[h];p.n++,b.x<p.minX&&(p.minX=b.x),b.y<p.minY&&(p.minY=b.y),b.x>p.maxX&&(p.maxX=b.x),b.y>p.maxY&&(p.maxY=b.y);let x=r.seatDeckY(h);p.sumX+=b.x*w,p.sumDeck+=x,p.sumZ+=b.y*w,p.minDeck=Math.min(p.minDeck,x),p.maxDeck=Math.max(p.maxDeck,x+1.6),a[h]=d}for(let h=0;h<n.length;h++){let m=l[h],d=t.floors?.[h],p=f[h],b=Math.min(m.n?m.minX*w:n[h].focal.x*w-1,Number.isFinite(p.minX)?p.minX:1/0),x=Math.max(m.n?m.maxX*w:n[h].focal.x*w+1,Number.isFinite(p.maxX)?p.maxX:-1/0),y=Math.min(m.n?m.minY*w:n[h].focal.y*w-1,Number.isFinite(p.minZ)?p.minZ:1/0),M=Math.max(m.n?m.maxY*w:n[h].focal.y*w+1,Number.isFinite(p.maxZ)?p.maxZ:-1/0),g=Math.min(m.n?Math.min(n[h].baseHeightM,m.minDeck):n[h].baseHeightM,Number.isFinite(p.minY)?p.minY:1/0),v=Math.max(m.n?Math.max(m.maxDeck,g+.5):g+.5,Number.isFinite(p.maxY)?p.maxY:-1/0),S=[m.n?m.sumX/m.n:(b+x)/2,m.n?m.sumDeck/m.n:(g+v)/2,m.n?m.sumZ/m.n:(y+M)/2],R=Math.max(1,.5*Math.hypot(x-b,v-g,M-y));c.push({index:h,id:d?.id??`floor-${h}`,label:d?.name??(n.length>1?`Floor ${h+1}`:"Venue"),seatCount:m.n,center:S,radius:R,box:{min:[b,g,y],max:[x,v,M]},focalWorld:[n[h].focal.x*w,n[h].baseHeightM+1.5,n[h].focal.y*w]})}}return c}function Tn(e,t){let n=1/0,o=1/0,r=-1/0,i=-1/0,s=(a,c)=>{a<n&&(n=a),c<o&&(o=c),a>r&&(r=a),c>i&&(i=c)};for(let a of t)s(a.x,a.y);for(let a of e)for(let c of a.objects)if(c.type==="section")for(let f of c.outline)s(f.x,f.y);else if(c.type==="shape"&&c.points)for(let f of c.points)s(f.x,f.y);else if(c.type==="gaArea")for(let f of c.points)s(f.x,f.y);else if(c.type==="booth"){let f=_e(c);if(f)for(let u of f)s(u.x,u.y)}else if(c.type==="table"){let f=Xt(c);if(f)for(let u of f)s(u.x,u.y)}else if(c.type==="decorImage"){let f=Ut(c);if(f)for(let u of f)s(u.x,u.y)}return Number.isFinite(n)||(n=-100,o=-100,r=100,i=100),{minX:n,minY:o,maxX:r,maxY:i}}function bi(e,t,n,o,r,i,s){if(t.length===1){let a=n.map(h=>({x:h.x,y:h.y}));for(let h of t[0].objects)h.type==="section"?a.push(...h.outline):h.type==="shape"?a.push(...se(h)??h.points??[]):h.type==="gaArea"?a.push(...h.points):h.type==="booth"?a.push(..._e(h)??[]):h.type==="table"?a.push(...Xt(h)??[]):h.type==="decorImage"&&a.push(...Ut(h)??[]);if(hi(e,t[0],n,i)||pi(e,t[0],n,a,i))return!1;if(s&&mi(e,t[0].baseHeightM,a,i,s))return!0;let c=yt(a),f=(r.minX+r.maxX)/2,u=(r.minY+r.maxY)/2,l=c.length>=3?c.map(h=>{let m=h.x-f,d=h.y-u,p=Math.max(1,Math.hypot(m,d));return{x:h.x+m/p*80,y:h.y+d/p*80}}):ft(r.minX-28,r.minY-28,r.maxX-r.minX+56,r.maxY-r.minY+56);return W(e,l,void 0,()=>-.04,-.22,i.ground,i.ground,K),!1}else{let a=t.reduce((b,x)=>x.baseHeightM<b.baseHeightM?x:b);e.setFloor(a.index);let c={...a,objects:t.flatMap(b=>b.objects)},f=n.map(b=>({x:b.x,y:b.y}));for(let b of c.objects)b.type==="section"&&f.push(...b.outline);if(hi(e,c,n,i)||pi(e,c,n,f,i))return!1;if(s&&mi(e,a.baseHeightM,f,i,s))return!0;let u=n.filter((b,x)=>o[x]===a.index),l=Tn([a],u),h=Math.hypot(l.maxX-l.minX,l.maxY-l.minY),m=Math.max(28,Math.min(80,h*.04)),d=ft(l.minX-m,l.minY-m,l.maxX-l.minX+m*2,l.maxY-l.minY+m*2),p=a.baseHeightM-.03;return W(e,d,void 0,()=>p,p-.22,i.ground,i.ground,K),!1}}function Ln(e,t,n,o){let{cx:r,cz:i,radius:s}=n,a=1/0,c=1/0,f=1/0,u=-1/0,l=-1/0,h=-1/0,m=(b,x,y)=>{a=Math.min(a,b),u=Math.max(u,b),c=Math.min(c,x),l=Math.max(l,x),f=Math.min(f,y),h=Math.max(h,y)};for(let b=0;b<e.position.length;b+=3){let x=b/3;o&&x>=o[0]&&x<o[1]||m(e.position[b],e.position[b+1],e.position[b+2])}for(let b=0;b<t.count;b++){let x=b*3,y=t.iPosition[x],M=t.iPosition[x+1],g=t.iPosition[x+2],v=Math.max(.35,t.iMaxRadius[b]??.35);m(y-v,M,g-v),m(y+v,M+1.6,g+v)}Number.isFinite(a)||(a=r-s,u=r+s,c=0,l=s*.16,f=i-s,h=i+s);let d=[(a+u)/2,(c+l)/2,(f+h)/2],p=Math.max(1,.5*Math.hypot(u-a,l-c,h-f));return{center:d,radius:p,minY:c,maxY:l}}function yi(e,t,n,o,r,i){let s=1/0,a=1/0,c=-1/0,f=-1/0;for(let g=0;g<e.count;g++){let v=g*3,S=e.iPosition[v],R=e.iPosition[v+2];S<s&&(s=S),S>c&&(c=S),R<a&&(a=R),R>f&&(f=R)}for(let g of t)s=Math.min(s,g.cx-g.halfX),c=Math.max(c,g.cx+g.halfX),a=Math.min(a,g.cz-g.halfZ),f=Math.max(f,g.cz+g.halfZ);let u=n.minX*w,l=n.maxX*w,h=n.minY*w,m=n.maxY*w,d=u,p=l,b=h,x=m;if(Number.isFinite(s)){let g=Math.max(2,.06*Math.hypot(c-s,f-a));d=Math.max(u,s-g),p=Math.min(l,c+g),b=Math.max(h,a-g),x=Math.min(m,f+g)}let y=Math.min(0,o),M=Math.max(r,i*.05);return{min:[d,y,b],max:[p,M,x]}}var fi=12,Hl=.6,Xl=40;function mi(e,t,n,o,r){let i=yt([...n]);if(i.length<3)return!1;let s=1/0,a=1/0,c=-1/0,f=-1/0;for(let g of i)s=Math.min(s,g.x),c=Math.max(c,g.x),a=Math.min(a,g.y),f=Math.max(f,g.y);let u=Math.hypot(c-s,f-a)*w,l=Ie(i,fi/w,1.2),h=Math.max(Xl,u*Hl),m=Ie(i,(fi+h)/w,1.2);if(l.length!==m.length)return!1;let d=re(o.ground,[.78,.76,.72],.35),p=re(o.ground,[.56,.62,.52],.3);W(e,l,void 0,()=>t-.04,t-.22,d,d,K);let b=t-.05,x=l.map(g=>[g.x*w,b,g.y*w]),y=m.map(g=>[g.x*w,b,g.y*w]),M=[0,1,0];for(let g=0;g<x.length;g++){let v=(g+1)%x.length;e.tri(x[g],y[v],y[g],M,p,r,r),e.tri(x[g],x[v],y[v],M,p,p,r)}return!0}function hi(e,t,n,o){let r=Kt(t,n);if(!r)return!1;let i=t.baseHeightM,s=re(o.ground,[.62,.55,.47],.4);return W(e,r,void 0,()=>i-.04,i-.22,s,s,K),!0}var Ul=3e3,Vl=20,di=1.5,Yl=1.2,Kl=.25;function pi(e,t,n,o,r){if(!n.length||n.length>Ul||o.length<3)return!1;for(let P of t.objects){if(P.type==="shape"&&zn(P.stageKind))return!1;if(P.type==="section"){let{height:A}=De(P,{floorBaseHeightM:t.baseHeightM});if(A-t.baseHeightM>Vl)return!1}}let i=0,s=0;for(let P of o)i+=P.x,s+=P.y;i/=o.length,s/=o.length;let a=0,c=0,f=0;for(let P of o){let A=P.x-i,_=P.y-s;a+=A*A,c+=_*_,f+=A*_}let u=.5*Math.atan2(2*f,a-c),l=Math.cos(u),h=Math.sin(u),m=-h,d=l,p=1/0,b=-1/0,x=1/0,y=-1/0;for(let P of o){let A=(P.x-i)*l+(P.y-s)*h,_=(P.x-i)*m+(P.y-s)*d;p=Math.min(p,A),b=Math.max(b,A),x=Math.min(x,_),y=Math.max(y,_)}let M=P=>[[p-P,x-P],[b+P,x-P],[b+P,y+P],[p-P,y+P]].map(([A,_])=>({x:i+l*A+m*_,y:s+h*A+d*_})),g=M(di/w),v=M((di+Kl)/w),S=t.baseHeightM,R=re(r.ground,[.62,.55,.47],.4),I=re(r.ground,[.86,.86,.84],.55);return W(e,v,void 0,()=>S-.04,S-.22,R,R,K),W(e,v,[g.slice().reverse()],()=>S+Yl,S-.04,re(I,[1,1,1],.2),I,K),!0}function xi(e,t,n){let o=()=>({byObjectId:new Map,elements:[]});if(!t||!e)return o();let r=qn(t);if(!r.ok||r.value.id!==e)return o();let i=new Map;for(let l of n)for(let h of l.objects)h.type==="shape"&&i.set(h.id,{shape:h,unit:l});let s=new Set,a=new Set,c=new Map((t.overlay.productionElements??[]).map(l=>{let h=l.runtimeContentImageUrl;return[l.id,typeof h=="string"&&/^(?:blob:|data:image\/|https:\/\/)/.test(h)?h:void 0]})),f=[];for(let l of r.value.overlay.productionElements??[]){let h=i.get(l.objectId),m=h?se(h.shape):null,d=l.baseElevationM??0;if(!h||!m||m.length<3||!l.id||s.has(l.id)||a.has(l.objectId)||!Number.isFinite(l.heightM)||l.heightM<.05||l.heightM>50||!Number.isFinite(d)||d<-10||d>100)return o();s.add(l.id),a.add(l.objectId);let p=m.map(I=>I.x*w),b=m.map(I=>I.y*w),x=h.unit.baseHeightM+d,y=Math.min(...p),M=Math.max(...p),g=Math.min(...b),v=Math.max(...b),S,R=c.get(l.id)??l.contentImageUrl;if(l.kind==="screen"&&R&&(S=rr(m,x,x+l.heightM,h.unit.focal),!S))if(M-y>=v-g){let I=Math.abs(g-h.unit.focal.y*w)<=Math.abs(v-h.unit.focal.y*w)?g-.006:v+.006;S=[[y,x,I],[M,x,I],[y,x+l.heightM,I],[M,x+l.heightM,I]]}else{let I=Math.abs(y-h.unit.focal.x*w)<=Math.abs(M-h.unit.focal.x*w)?y-.006:M+.006;S=[[I,x,g],[I,x,v],[I,x+l.heightM,g],[I,x+l.heightM,v]]}f.push({id:l.id,objectId:l.objectId,kind:l.kind,floorIndex:h.unit.index,baseY:x,topY:x+l.heightM,bounds:{min:[y,x,g],max:[M,x+l.heightM,v]},occlusion:l.occlusion,...R?{contentImageUrl:R}:{},...S?{contentPlane:S}:{}})}let u=f.sort((l,h)=>l.id.localeCompare(h.id));return{byObjectId:new Map(u.map(l=>[l.objectId,l])),elements:u}}var gi=[.13,.14,.17],ot=[.4,.43,.47],Wl=.18,zl=.02,Zl=2.4,$l=1500,Ql=240;function Mi(e,t,n,o){let r=t.stageKind??"";if(Xe(r)||r==="round"||!o.length)return;let i=se(t);if(!i||i.length<3)return;let s={x:i.reduce((C,O)=>C+O.x,0)/i.length,y:i.reduce((C,O)=>C+O.y,0)/i.length},a=0,c=0,f=new Set;for(let C of o)a+=C.x,c+=C.y,f.add(Math.floor(Math.atan2(C.y-s.y,C.x-s.x)*180/Math.PI/10));if(f.size*10>Ql)return;let u=s.x-a/o.length,l=s.y-c/o.length,h=Math.hypot(u,l);if(h<1e-6)return;let m=u/h,d=l/h,p=-d,b=m,x=-1/0,y=1/0,M=1/0,g=-1/0;for(let C of i){let O=(C.x-s.x)*m+(C.y-s.y)*d,F=(C.x-s.x)*p+(C.y-s.y)*b;x=Math.max(x,O),y=Math.min(y,O),M=Math.min(M,F),g=Math.max(g,F)}let v=(g-M)*w,S=(x-y)*w;if(v<3||S<1.5||v*S>$l)return;let R=Wl/w,I=(C,O)=>({x:s.x+m*C+p*O,y:s.y+d*C+b*O}),P=(C,O,F,L)=>[I(C,F),I(C,L),I(O,L),I(O,F)],A=n+Math.max(3.5,Math.min(8,v*.35)),_=n+Math.min(Zl,A-n-1),T=.2/w,k=y+Math.min(S*.25,1.5)/w,E=zl/w;W(e,P(x-2*R+E,x-R-E,M+R+T,g-R-T),void 0,()=>_,n,gi,gi,K);for(let[C,O]of[[M+R,M+R+T],[g-R-T,g-R]])W(e,P(x-2*R,x-R,C,O),void 0,()=>A+.3,n,ot,ot,K),W(e,P(k+T,x-2*R,C,O),void 0,()=>A+.3,A,ot,ot,K);W(e,P(k,k+T,M+R,g-R),void 0,()=>A+.3,A,ot,ot,K)}function xe(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function ye(e){return Array.isArray(e)?e:[]}function ql(e){let t=[e];for(;t.length;){let n=t.pop();if(Array.isArray(n)){t.push(...n);continue}if(!xe(n))continue;let o=xe(n.extensions)?n.extensions:null;if(o&&Object.prototype.hasOwnProperty.call(o,"KHR_draco_mesh_compression"))return!0;t.push(...Object.values(n))}return!1}function zt(e,t){return!Array.isArray(e)||e.length!==t||!e.every(n=>typeof n=="number"&&Number.isFinite(n))?null:e}function Jl(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function eu(e,t){let n=new Array(16).fill(0);for(let o=0;o<4;o++)for(let r=0;r<4;r++)for(let i=0;i<4;i++)n[o*4+r]+=e[i*4+r]*t[o*4+i];return n}function tu(e){let t=zt(e.matrix,16);if(t)return t;if(e.matrix!==void 0)return null;let n=e.translation===void 0?[0,0,0]:zt(e.translation,3),o=e.rotation===void 0?[0,0,0,1]:zt(e.rotation,4),r=e.scale===void 0?[1,1,1]:zt(e.scale,3);if(!n||!o||!r)return null;let[i,s,a,c]=o,f=Math.hypot(i,s,a,c);if(!(f>1e-8))return null;let u=i/f,l=s/f,h=a/f,m=c/f,d=u+u,p=l+l,b=h+h,x=u*d,y=u*p,M=u*b,g=l*p,v=l*b,S=h*b,R=m*d,I=m*p,P=m*b;return[(1-(g+S))*r[0],(y+P)*r[0],(M-I)*r[0],0,(y-P)*r[1],(1-(x+S))*r[1],(v+R)*r[1],0,(M+I)*r[2],(v-R)*r[2],(1-(x+g))*r[2],0,n[0],n[1],n[2],1]}function nu(e,t,n,o){return[e[0]*t+e[4]*n+e[8]*o+e[12],e[1]*t+e[5]*n+e[9]*o+e[13],e[2]*t+e[6]*n+e[10]*o+e[14]]}function ou(e){let t=e[0],n=e[4],o=e[8],r=e[1],i=e[5],s=e[9],a=e[2],c=e[6],f=e[10],u=i*f-s*c,l=s*a-r*f,h=r*c-i*a,m=t*u+n*l+o*h;if(Math.abs(m)<1e-12)return null;let d=1/m;return[u*d,l*d,h*d,(o*c-n*f)*d,(t*f-o*a)*d,(n*a-t*c)*d,(n*s-o*i)*d,(o*r-t*s)*d,(t*i-n*r)*d]}function Si(e,t,n,o){let r=e[0]*t+e[1]*n+e[2]*o,i=e[3]*t+e[4]*n+e[5]*o,s=e[6]*t+e[7]*n+e[8]*o,a=Math.hypot(r,i,s)||1;return r/=a,i/=a,s/=a,[r,i,s]}function ru(e){if(e.byteLength<20||e.byteLength>8388608)return null;let t=new DataView(e.buffer,e.byteOffset,e.byteLength);if(t.getUint32(0,!0)!==1179937895||t.getUint32(4,!0)!==2||t.getUint32(8,!0)!==e.byteLength)return null;let n=12,o=null,r=null;for(;n+8<=e.byteLength;){let i=t.getUint32(n,!0),s=t.getUint32(n+4,!0);if(n+=8,i%4!==0||n+i>e.byteLength)return null;let a=e.subarray(n,n+i);if(s===1313821514&&!o)try{let c=JSON.parse(new TextDecoder().decode(a).replace(/[\u0000 ]+$/g,""));if(!xe(c))return null;o=c}catch{return null}else if(s===5130562&&!r)r=a;else return null;n+=i}return n===e.byteLength&&o&&r?{json:o,bin:r}:null}function iu(e){return e===5120||e===5121?1:e===5122||e===5123?2:e===5125||e===5126?4:0}function su(e){return e==="SCALAR"?1:e==="VEC2"?2:e==="VEC3"?3:e==="VEC4"?4:0}function au(e,t,n){return n===5120?e.getInt8(t):n===5121?e.getUint8(t):n===5122?e.getInt16(t,!0):n===5123?e.getUint16(t,!0):n===5125?e.getUint32(t,!0):e.getFloat32(t,!0)}function cu(e){let t=e instanceof Uint8Array?e:new Uint8Array(e),n=ru(t);if(!n)return{ok:!1,issue:"invalid_glb"};let{json:o,bin:r}=n;if(!xe(o.asset)||o.asset.version!=="2.0")return{ok:!1,issue:"unsupported_glb"};let i=ye(o.extensionsUsed).filter(g=>typeof g=="string");if(i.includes("KHR_draco_mesh_compression")||ql(o))return{ok:!1,issue:"draco_not_allowed"};if(i.length||ye(o.extensionsRequired).length)return{ok:!1,issue:"unsupported_glb"};if(ye(o.images).length||ye(o.textures).length)return{ok:!1,issue:"external_resource"};let s=ye(o.buffers);if(s.length!==1||!xe(s[0])||s[0].uri!==void 0||typeof s[0].byteLength!="number"||!Number.isInteger(s[0].byteLength)||s[0].byteLength<0||s[0].byteLength>r.byteLength)return{ok:!1,issue:"external_resource"};let a=ye(o.accessors),c=ye(o.bufferViews),f=ye(o.meshes),u=ye(o.nodes),l=ye(o.scenes),h=typeof o.scene=="number"?o.scene:0;if(!xe(l[h]))return{ok:!1,issue:"unsupported_glb"};let m=new DataView(r.buffer,r.byteOffset,r.byteLength),d=(g,v,S)=>{if(typeof g!="number"||!Number.isInteger(g)||!xe(a[g]))return null;let R=a[g];if(R.type!==v||R.sparse!==void 0||R.normalized===!0||typeof R.count!="number"||!Number.isInteger(R.count)||R.count<1||typeof R.componentType!="number"||!S.includes(R.componentType)||typeof R.bufferView!="number")return null;let I=c[R.bufferView];if(!xe(I)||I.buffer!==0||typeof I.byteLength!="number"||!Number.isInteger(I.byteLength)||I.byteLength<0)return null;let P=su(R.type),A=iu(R.componentType),_=typeof I.byteStride=="number"?I.byteStride:P*A,T=typeof I.byteOffset=="number"?I.byteOffset:0,k=typeof R.byteOffset=="number"?R.byteOffset:0,E=T+k,C=k+(R.count-1)*_+P*A;if(!Number.isInteger(_)||!Number.isInteger(T)||!Number.isInteger(k)||_<P*A||T<0||k<0||T+I.byteLength>r.byteLength||C>I.byteLength)return null;let O=[];for(let F=0;F<R.count;F++){let L=[];for(let B=0;B<P;B++){let N=au(m,E+F*_+B*A,R.componentType);if(!Number.isFinite(N))return null;L.push(N)}O.push(L)}return O},p=[],b=[],x=0,y=new Set,M=(g,v)=>{if(typeof g!="number"||!Number.isInteger(g)||!xe(u[g])||y.has(g))return!1;y.add(g);let S=u[g],R=tu(S);if(!R)return!1;let I=eu(v,R),P=ou(I);if(!P)return!1;if(S.mesh!==void 0){if(typeof S.mesh!="number")return!1;let A=f[S.mesh];if(!xe(A))return!1;for(let _ of ye(A.primitives)){if(!xe(_)||_.mode!==void 0&&_.mode!==4||!xe(_.attributes))return!1;let T=d(_.attributes.POSITION,"VEC3",[5126]),k=_.attributes.NORMAL===void 0?null:d(_.attributes.NORMAL,"VEC3",[5126]);if(!T||_.attributes.NORMAL!==void 0&&!k)return!1;let E=T.length;if(_.indices!==void 0){let O=typeof _.indices=="number"?a[_.indices]:null;E=xe(O)?O.count:void 0}if(typeof E!="number"||!Number.isInteger(E)||E%3!==0||(x+=E/3,x>1e5))return!1;let C=_.indices===void 0?T.map((O,F)=>[F]):d(_.indices,"SCALAR",[5121,5123,5125]);if(!C||C.length%3!==0||C.length!==E)return!1;for(let O=0;O<C.length;O+=3){let F=[C[O][0],C[O+1][0],C[O+2][0]];if(F.some(N=>!Number.isInteger(N)||N<0||N>=T.length))return!1;let L=F.map(N=>nu(I,...T[N])),B=null;if(!k){let N=L[1][0]-L[0][0],H=L[1][1]-L[0][1],D=L[1][2]-L[0][2],V=L[2][0]-L[0][0],U=L[2][1]-L[0][1],Z=L[2][2]-L[0][2];B=Si([1,0,0,0,1,0,0,0,1],H*Z-D*U,D*V-N*Z,N*U-H*V)}for(let N=0;N<3;N++)p.push(...L[N]),b.push(...k?Si(P,...k[F[N]]):B)}}}for(let A of ye(S.children))if(!M(A,I))return!1;return y.delete(g),!0};for(let g of ye(l[h].nodes))if(!M(g,Jl()))return{ok:!1,issue:x>1e5?"triangle_limit":"unsupported_glb"};return!x||p.length!==x*9||b.length!==p.length?{ok:!1,issue:"unsupported_glb"}:{ok:!0,triangleCount:x,position:new Float32Array(p),normal:new Float32Array(b)}}function Ii(e){try{return cu(e)}catch{return{ok:!1,issue:"invalid_glb"}}}function Pi(e){let{doc:t}=e,n=So(t.theme),o=n.structure,r=Wo(t,e.eventConfigurationId??t.eventConfigurationId),i=xi(e.eventConfigurationId,e.eventConfiguration,r),s=e.seats,a=new Et,c=null;if(e.registeredShellGlb){let j=Ii(e.registeredShellGlb);if(j.ok){let G=j.position.length/3,Q=new Float32Array(j.position.length),te=n.materials.shell??o.tierWall;for(let ne=0;ne<G;ne++){let ce=j.normal[ne*3+1],ae=ce<-.25?.4:.62+.38*Math.max(0,ce);Q[ne*3]=te[0]*ae,Q[ne*3+1]=te[1]*ae,Q[ne*3+2]=te[2]*ae}c={position:j.position,normal:j.normal,color:Q,floor:new Float32Array(G).fill(-2),material:new Float32Array(G),count:G}}}let f=new Map;for(let j of r)for(let G of j.objects)f.set(G.id,j.index),G.type==="section"&&f.set(G.logicalSectionId??G.id,j.index);let u=s.map(j=>f.get(j.sectionId??"")??f.get(j.rowId??"")??0),l=Tn(r,s),h=a.vertexCount,d=bi(a,r,s,u,l,o,re(n.background.top,n.background.bottom,.5))?a.vertexCount:h,p=er(t,s),b=new Map,x=new Map;for(let j of t.categories??[])b.set(j.key,j.color),j.seatGlyph&&x.set(j.key,j.seatGlyph);let y=[],M=qo(r,s,u),g=new Map;s.forEach((j,G)=>{let Q=M.seatDeckY(G);Number.isFinite(Q)&&g.set(j.rowId,Math.min(g.get(j.rowId)??1/0,Q))});let v=new Float32Array(s.length),S=[],R=new Map((t.floors??[]).map((j,G)=>[j.id,G])),I=r.map(()=>[]);for(let j of s){let G=j.floorId?R.get(j.floorId)??0:0;I[Math.min(G,I.length-1)]?.push(j)}let P=(j,G)=>{if(!G||G.length<3)return!1;let Q=Math.min(...G.map(ae=>ae.x)),te=Math.max(...G.map(ae=>ae.x)),ne=Math.min(...G.map(ae=>ae.y)),ce=Math.max(...G.map(ae=>ae.y));for(let ae=0;ae<j;ae++)for(let Y of I[ae])if(!(Y.x<Q||Y.x>te||Y.y<ne||Y.y>ce)&&me(Y,G,void 0))return!0;return!1},A=null,_=j=>r.length===1?s:s.filter((G,Q)=>u[Q]===j),T=(j,G)=>{let Q=_e(j);if(!Q)return!1;let te=1/0,ne=1/0,ce=-1/0,ae=-1/0;for(let Y of Q)te=Math.min(te,Y.x),ce=Math.max(ce,Y.x),ne=Math.min(ne,Y.y),ae=Math.max(ae,Y.y);return s.some((Y,le)=>Y.kind!=="booth"&&(r.length===1||u[le]===G)&&Y.x>te&&Y.x<ce&&Y.y>ne&&Y.y<ae&&pe(Q,Y.x,Y.y))};for(let j=0;j<r.length;j++){let G=r[j];a.setFloor(j);let Q=new Lt,te=[],ne=G.objects.filter(Y=>Y.type==="shape"&&(Y.role==="entrance"||Y.role==="exit")),ce=G.objects.filter(Y=>Y.type==="section"&&!!Y.outline&&Y.outline.length>=3),ae=Ar(G.objects.filter(Y=>Y.type==="booth"),G.focal);for(let Y of G.objects)if(Y.type==="section"){let le=a.vertexCount;Hr(a,Y,G,tr(Y,p),M.bySection.get(Y.id),Q,ce,o,j>0&&P(j,Y.outline));let Re=a.vertexCount-le;Re>0&&S.push({sectionId:Y.id,start:le,count:Re})}else if(Y.type==="shape"){let le=i.byObjectId.get(Y.id),Re=y.length;a.setMaterial((le?.kind??Y.role)==="screen"?1:0);let we=Y.role==="stage"&&!le?_r(Y,_(j)):Y,ve=or(we,te);if(Rr(a,we,G.baseHeightM+ve.supportOffsetM,ve.topOffsetM-ve.supportOffsetM,o,G.focal,y,le,ne),a.setMaterial(0),Y.role==="stage"&&!le&&y.length>Re&&(A??j)===j){A=j;let Se=t.floors?.[j]?.id,he=r.length>1&&Se?s.filter(We=>We.floorId===Se):s;Mi(a,we,y[y.length-1].y,he)}}else Y.type==="gaArea"?vr(a,Y,G.baseHeightM,oe(b.get(Y.categoryKey)),o):Y.type==="booth"?Sr(a,Y,G.baseHeightM,oe(b.get(Y.categoryKey)),o,ae.get(Y.id)??G.focal,T(Y,j)):Y.type==="table"?Pr(a,Y,Math.max(G.baseHeightM,g.get(Y.id)??G.baseHeightM),oe(Y.fill??t.theme?.decorFill??"#232c40"),o,!!(Y.fill??t.theme?.decorFill)):Y.type==="decorImage"&&wr(a,Y,G.baseHeightM,o);Ur(a,G,s,M,o,n.materials.shell,!c)}let k=r.length>1?{x:r.reduce((j,G)=>j+G.focal.x,0)/r.length,y:r.reduce((j,G)=>j+G.focal.y,0)/r.length}:t.focalPoint??{x:(l.minX+l.maxX)/2,y:(l.minY+l.maxY)/2},E=ho(c?[a.build(),c]:[a.build()]),C=ko(s,e.initialState,M,v,b,x),O=ai({doc:t,units:r,seats:s,surfaces:M,focal:k}),{labels:F,sections:L,rows:B}=ci({doc:t,units:r,seats:s,surfaces:M,seatData:C,hintedSeatFloor:u,zones:O,focal:k}),N=new Map(L.map((j,G)=>[j.id,G]));M.seatOwner.forEach((j,G)=>{C.iSection[G]=j?N.get(j)??-1:-1});let H=ui({doc:t,units:r,seats:s,surfaces:M,solids:E,hintedSeatFloor:u,seatFloor:v});li(F,H),C.iYaw=_o(C.iPosition,s.length,j=>s[j].rowId,j=>{let G=r[v[j]]?.focal??k;return[G.x*w,G.y*w]});let D=(l.minX+l.maxX)/2*w,V=(l.minY+l.maxY)/2*w,U=.5*Math.hypot((l.maxX-l.minX)*w,(l.maxY-l.minY)*w)||10,Z=Ln(E,C,{cx:D,cz:V,radius:U},[h,d]),X=Ln(E,C,{cx:D,cz:V,radius:U}),q=yi(C,y,l,Z.minY,Z.maxY,U);return{sharedAisles:po(r.flatMap(j=>j.objects.flatMap(G=>{if(G.type!=="section")return[];let Q=M.bySection.get(G.id);return Q?[{sectionId:G.id,floorIndex:j.index,rows:Q.rowLevels}]:[]}))),solids:E,sectionSolidRanges:S,seats:C,seatSectionIds:M.seatOwner,bounds:{center:[(q.min[0]+q.max[0])/2,(q.min[1]+q.max[1])/2,(q.min[2]+q.max[2])/2],radius:U,groundY:0,box:q},renderBounds:{center:Z.center,radius:Z.radius},clipBounds:{center:X.center,radius:X.radius},stateColorLUT:Io(n,Ct),theme:n,seatCount:s.length,focalWorld:[k.x*w,1.5,k.y*w],zones:O,stages:y,productionElements:i.elements,sections:L,rows:B,labels:F,floors:H}}function lu(e,t){let{doc:n,report:o}=ni(e),r=o.confident&&(o.sections.length>0||!!o.looseRowBlocks);if(!r&&!o.roles?.length)return null;if(!r){let c=new Map(o.roles.map(m=>[m.id,m.role])),f=m=>m.map(d=>d.type==="shape"&&c.has(d.id)?{...d,role:c.get(d.id)}:d),u=e.floors?.map(m=>({...m,objects:f(m.objects)})),l=new Float64Array(t.length).fill(Number.NaN),h=new Float64Array(t.length*2).fill(Number.NaN);return t.forEach((m,d)=>{m.eyeHeightM!==void 0&&(l[d]=m.eyeHeightM),m.focalPoint&&(h[d*2]=m.focalPoint.x,h[d*2+1]=m.focalPoint.y)}),{doc:{...e,objects:u?.[0]?.objects??f(e.objects),...u?{floors:u}:{}},report:o,eyeHeightM:l,focal:h}}let i=new Map($e(n).map(c=>[c.id,c])),s=new Float64Array(t.length).fill(Number.NaN),a=new Float64Array(t.length*2).fill(Number.NaN);return t.forEach((c,f)=>{let u=i.get(c.id)??c;u.eyeHeightM!==void 0&&(s[f]=u.eyeHeightM),u.focalPoint&&(a[f*2]=u.focalPoint.x,a[f*2+1]=u.focalPoint.y)}),{doc:n,report:o,eyeHeightM:s,focal:a}}function uu(e,t){return e.map((n,o)=>{let r=t.eyeHeightM[o],i=t.focal[o*2],s=t.focal[o*2+1],a={...n};return Number.isNaN(r)?delete a.eyeHeightM:a.eyeHeightM=r,Number.isNaN(i)?delete a.focalPoint:a.focalPoint={x:i,y:s},a})}function Ri(e){let t=e.estimate===!1?null:lu(e.doc,e.seats);return t?{input:{...e,doc:t.doc,seats:uu(e.seats,t)},estimate:t}:{input:e}}function fu(e){return[e.solids.position,e.solids.normal,e.solids.color,e.solids.floor,e.solids.material,e.seats.iPosition,e.seats.iState,e.seats.iCategory,e.seats.iMaxRadius,e.seats.iRing,e.seats.iFloor,e.seats.iYaw,e.seats.iChairWidth,e.seats.iGlyph,e.seats.iPhysicalSeat].map(n=>n.buffer)}var wi=self;wi.onmessage=e=>{let t=performance.now(),n=!e.data.seats,o=e.data.seats??$e(e.data.doc),{input:r,estimate:i}=Ri({doc:e.data.doc,seats:o,eventConfigurationId:e.data.eventConfigurationId,eventConfiguration:e.data.eventConfiguration,registeredShellGlb:e.data.registeredShellGlb,estimate:e.data.estimate}),s=Pi(r),a=fu(s);i&&a.push(i.eyeHeightM.buffer,i.focal.buffer),wi.postMessage({model:s,buildMs:performance.now()-t,...n?{seats:o}:{},...i?{estimate:i}:{}},a)};
|