framefields 2.5.5 → 2.6.1
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/README.md +11 -0
- package/dist/audio/index.mjs +10 -10
- package/dist/{audio-C9euVW4K.mjs → audio-CYrO9q9P.mjs} +3 -3
- package/dist/{audio-C9euVW4K.mjs.map → audio-CYrO9q9P.mjs.map} +1 -1
- package/dist/cli.mjs +866 -16
- package/dist/cli.mjs.map +1 -1
- package/dist/components/index.d.mts +2 -2
- package/dist/components/index.mjs +43 -43
- package/dist/{dist-DBdxM6xv.mjs → dist-DSKhnhDk.mjs} +3 -3
- package/dist/dist-DSKhnhDk.mjs.map +1 -0
- package/dist/{dist-BuirkW-f.mjs → dist-cC6nOaMR.mjs} +11 -3
- package/dist/dist-cC6nOaMR.mjs.map +1 -0
- package/dist/effects/index.mjs +34 -34
- package/dist/{effects-B263lgUi.mjs → effects-Dvdwndk0.mjs} +2 -2
- package/dist/{effects-B263lgUi.mjs.map → effects-Dvdwndk0.mjs.map} +1 -1
- package/dist/fonts/index.d.mts +1 -1
- package/dist/fonts/index.mjs +2 -2
- package/dist/{fonts-DNx6ps2p.mjs → fonts-B6a4CyoM.mjs} +7 -3
- package/dist/fonts-B6a4CyoM.mjs.map +1 -0
- package/dist/{gpu-BRBIoxMC.mjs → gpu-CrQADlcf.mjs} +2 -2
- package/dist/{gpu-BRBIoxMC.mjs.map → gpu-CrQADlcf.mjs.map} +1 -1
- package/dist/index-3Vdef2KE.d.mts.map +1 -1
- package/dist/{index-N1tMc5Z9.d.mts → index-CWG19cm-.d.mts} +821 -393
- package/dist/index-CWG19cm-.d.mts.map +1 -0
- package/dist/index-D-Gnyffj.d.mts.map +1 -1
- package/dist/{index-CalU-mpZ.d.mts → index-j5LGVVbm.d.mts} +3 -1
- package/dist/index-j5LGVVbm.d.mts.map +1 -0
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +50 -50
- package/dist/preview/index.mjs +10 -10
- package/dist/{preview-ChR8Z8Fm.mjs → preview-OTsGYyOU.mjs} +2 -2
- package/dist/{preview-ChR8Z8Fm.mjs.map → preview-OTsGYyOU.mjs.map} +1 -1
- package/dist/preview-engine/{chunk-BBHRXV75.mjs → chunk-4C26NVQY.mjs} +1 -1
- package/dist/preview-engine/chunk-5NLDETDV.mjs +1974 -0
- package/dist/preview-engine/{chunk-VY6ST4QX.mjs → chunk-AGLAJGQJ.mjs} +1 -1
- package/dist/preview-engine/{chunk-ZJLNXN7W.mjs → chunk-K3IMPV6T.mjs} +6 -6
- package/dist/preview-engine/chunk-LHCEQ77S.mjs +5 -0
- package/dist/preview-engine/{chunk-2LQCQ3OT.mjs → chunk-Q6CRERSJ.mjs} +5 -5
- package/dist/preview-engine/chunk-ZGMA27IG.mjs +3 -0
- package/dist/preview-engine/components.mjs +1 -1
- package/dist/preview-engine/fonts.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +1 -1
- package/dist/preview-engine/player.mjs +1 -1
- package/dist/preview-engine/{renderers-WZEV464O.mjs → renderers-IT5ISWSA.mjs} +1 -1
- package/dist/{program-O2bWX0cs.mjs → program-W4CWO2bp.mjs} +19 -3
- package/dist/program-W4CWO2bp.mjs.map +1 -0
- package/dist/registry/annotate.json +1 -1
- package/dist/registry/app-frame.json +1 -1
- package/dist/registry/backdrop.json +3 -3
- package/dist/registry/before-after.json +1 -1
- package/dist/registry/callout.json +1 -1
- package/dist/registry/captions.json +7 -1
- package/dist/registry/card-stack.json +3 -3
- package/dist/registry/chat-thread.json +7 -1
- package/dist/registry/code-block.json +8 -2
- package/dist/registry/confetti.json +1 -1
- package/dist/registry/device-frame.json +2 -1
- package/dist/registry/focus-zoom.json +1 -1
- package/dist/registry/logo-reveal.json +1 -1
- package/dist/registry/lower-third.json +1 -1
- package/dist/registry/meter.json +1 -1
- package/dist/registry/mouse-pointer.json +1 -1
- package/dist/registry/selection.json +3 -3
- package/dist/registry/spotlight.json +1 -1
- package/dist/registry/terminal.json +7 -1
- package/dist/registry/text-reveal.json +2 -1
- package/dist/registry/title-card.json +1 -1
- package/dist/registry/toasts.json +1 -1
- package/dist/registry/touch-point.json +4 -4
- package/dist/registry/waveform.json +3 -3
- package/dist/registry/word-cycle.json +2 -2
- package/dist/renderer/index.mjs +2 -2
- package/dist/{renderer-DkM6Ikdf.mjs → renderer-0W-Ty55h.mjs} +3 -3
- package/dist/{renderer-DkM6Ikdf.mjs.map → renderer-0W-Ty55h.mjs.map} +1 -1
- package/dist/{renderer-CrKYlipx.mjs → renderer-0n4A8P2_.mjs} +2 -2
- package/dist/{renderer-CrKYlipx.mjs.map → renderer-0n4A8P2_.mjs.map} +1 -1
- package/dist/{renderer-D3FJcRA3.mjs → renderer-158rymL0.mjs} +2 -2
- package/dist/{renderer-D3FJcRA3.mjs.map → renderer-158rymL0.mjs.map} +1 -1
- package/dist/{renderer-Dwh0jaor.mjs → renderer-1KfQICGK.mjs} +3 -3
- package/dist/{renderer-Dwh0jaor.mjs.map → renderer-1KfQICGK.mjs.map} +1 -1
- package/dist/renderer-8HnHWqYj.mjs +5 -0
- package/dist/renderer-8itujues.mjs +5 -0
- package/dist/{renderer-DWG6EXGj.mjs → renderer-B3gQT1uq.mjs} +3 -3
- package/dist/{renderer-DWG6EXGj.mjs.map → renderer-B3gQT1uq.mjs.map} +1 -1
- package/dist/{renderer-Bs6BaMLf.mjs → renderer-BE6K88VR.mjs} +3 -3
- package/dist/{renderer-Bs6BaMLf.mjs.map → renderer-BE6K88VR.mjs.map} +1 -1
- package/dist/{renderer-CqJou_2L.mjs → renderer-BEpA2g1_.mjs} +2 -2
- package/dist/{renderer-CqJou_2L.mjs.map → renderer-BEpA2g1_.mjs.map} +1 -1
- package/dist/renderer-BFods-7v.mjs +5 -0
- package/dist/{renderer-RbMM6Njv.mjs → renderer-BGDKxfsM.mjs} +3 -3
- package/dist/{renderer-RbMM6Njv.mjs.map → renderer-BGDKxfsM.mjs.map} +1 -1
- package/dist/{renderer-DGOY-LBR.mjs → renderer-BGnMRdUK.mjs} +2 -2
- package/dist/{renderer-DGOY-LBR.mjs.map → renderer-BGnMRdUK.mjs.map} +1 -1
- package/dist/{renderer-CpDaUeCN.mjs → renderer-BIMm7lYG.mjs} +3 -3
- package/dist/{renderer-CpDaUeCN.mjs.map → renderer-BIMm7lYG.mjs.map} +1 -1
- package/dist/{renderer-Dw3K8KT9.mjs → renderer-BKL3UEzN.mjs} +2 -2
- package/dist/{renderer-Dw3K8KT9.mjs.map → renderer-BKL3UEzN.mjs.map} +1 -1
- package/dist/{renderer-DtqiWq1m.mjs → renderer-BKhdqykZ.mjs} +3 -3
- package/dist/{renderer-DtqiWq1m.mjs.map → renderer-BKhdqykZ.mjs.map} +1 -1
- package/dist/{renderer-CnclEQdA.mjs → renderer-BO5u8eFS.mjs} +2 -2
- package/dist/{renderer-CnclEQdA.mjs.map → renderer-BO5u8eFS.mjs.map} +1 -1
- package/dist/{renderer-DTPmvL1i.mjs → renderer-BQ-pHSPI.mjs} +3 -3
- package/dist/{renderer-DTPmvL1i.mjs.map → renderer-BQ-pHSPI.mjs.map} +1 -1
- package/dist/{renderer-BStETpqC.mjs → renderer-BXGr426R.mjs} +2 -2
- package/dist/{renderer-BStETpqC.mjs.map → renderer-BXGr426R.mjs.map} +1 -1
- package/dist/{renderer-Dk0okoS3.mjs → renderer-B_Oz9L3g.mjs} +2 -2
- package/dist/{renderer-Dk0okoS3.mjs.map → renderer-B_Oz9L3g.mjs.map} +1 -1
- package/dist/renderer-BbQygRwc.mjs +5 -0
- package/dist/{renderer-PhjHSS97.mjs → renderer-BcaT2j3R.mjs} +2 -2
- package/dist/{renderer-PhjHSS97.mjs.map → renderer-BcaT2j3R.mjs.map} +1 -1
- package/dist/{renderer-C6n8y6Pw.mjs → renderer-Bh7d3RSt.mjs} +3 -3
- package/dist/{renderer-C6n8y6Pw.mjs.map → renderer-Bh7d3RSt.mjs.map} +1 -1
- package/dist/{renderer-QQDU1b0Z.mjs → renderer-BiH29MS6.mjs} +3 -3
- package/dist/{renderer-QQDU1b0Z.mjs.map → renderer-BiH29MS6.mjs.map} +1 -1
- package/dist/{renderer-DdkPY4hO.mjs → renderer-BnpMAub0.mjs} +2 -2
- package/dist/{renderer-DdkPY4hO.mjs.map → renderer-BnpMAub0.mjs.map} +1 -1
- package/dist/renderer-Bq_sPaCg.mjs +5 -0
- package/dist/renderer-BrkDrvqS.mjs +5 -0
- package/dist/{renderer-DVGVcDvB.mjs → renderer-Bt3F1tmP.mjs} +3 -3
- package/dist/{renderer-DVGVcDvB.mjs.map → renderer-Bt3F1tmP.mjs.map} +1 -1
- package/dist/{renderer-DsnV8tpW.mjs → renderer-BwnQRuce.mjs} +3 -3
- package/dist/{renderer-DsnV8tpW.mjs.map → renderer-BwnQRuce.mjs.map} +1 -1
- package/dist/renderer-C1diVT5Q.mjs +5 -0
- package/dist/{renderer-CTy0bSsl.mjs → renderer-C2O4nK9x.mjs} +3 -3
- package/dist/{renderer-CTy0bSsl.mjs.map → renderer-C2O4nK9x.mjs.map} +1 -1
- package/dist/{renderer-Cg2xS8h8.mjs → renderer-C4Jfgjm5.mjs} +2 -2
- package/dist/{renderer-Cg2xS8h8.mjs.map → renderer-C4Jfgjm5.mjs.map} +1 -1
- package/dist/renderer-C8E7ajTR.mjs +5 -0
- package/dist/renderer-CAz8JW5c.mjs +5 -0
- package/dist/{renderer-1NoJLLDa.mjs → renderer-CEvj79Wg.mjs} +3 -3
- package/dist/{renderer-1NoJLLDa.mjs.map → renderer-CEvj79Wg.mjs.map} +1 -1
- package/dist/{renderer-Bag1LFos.mjs → renderer-CFSh2eG-.mjs} +3 -3
- package/dist/{renderer-Bag1LFos.mjs.map → renderer-CFSh2eG-.mjs.map} +1 -1
- package/dist/{renderer-Daqvhwjp.mjs → renderer-CHvEgLHy.mjs} +3 -3
- package/dist/{renderer-Daqvhwjp.mjs.map → renderer-CHvEgLHy.mjs.map} +1 -1
- package/dist/renderer-CKfrUdGw.mjs +5 -0
- package/dist/renderer-CL0rqBA4.mjs +5 -0
- package/dist/{renderer-R5Lg65F8.mjs → renderer-CLP6Lm7y.mjs} +2 -2
- package/dist/{renderer-B0IJirDs.mjs → renderer-COcFh5bK.mjs} +3 -3
- package/dist/{renderer-B0IJirDs.mjs.map → renderer-COcFh5bK.mjs.map} +1 -1
- package/dist/renderer-COyavIEv.mjs +5 -0
- package/dist/{renderer-DcApNxER.mjs → renderer-CPtyQrJI.mjs} +2 -2
- package/dist/{renderer-DcApNxER.mjs.map → renderer-CPtyQrJI.mjs.map} +1 -1
- package/dist/renderer-CUrShvUZ.mjs +5 -0
- package/dist/renderer-CWvJ_GaL.mjs +5 -0
- package/dist/{renderer-B2no_9zi.mjs → renderer-CX4rvqm9.mjs} +3 -3
- package/dist/{renderer-B2no_9zi.mjs.map → renderer-CX4rvqm9.mjs.map} +1 -1
- package/dist/{renderer-C3tdjg8B.mjs → renderer-CZGpETnc.mjs} +3 -3
- package/dist/{renderer-C3tdjg8B.mjs.map → renderer-CZGpETnc.mjs.map} +1 -1
- package/dist/{renderer-DmTxEeMh.mjs → renderer-C_-hWBF1.mjs} +3 -3
- package/dist/{renderer-DmTxEeMh.mjs.map → renderer-C_-hWBF1.mjs.map} +1 -1
- package/dist/{renderer-H4-8sBjl.mjs → renderer-Cb74SQHm.mjs} +2 -2
- package/dist/{renderer-H4-8sBjl.mjs.map → renderer-Cb74SQHm.mjs.map} +1 -1
- package/dist/{renderer-DO1TeUqV.mjs → renderer-Cba208C9.mjs} +3 -3
- package/dist/{renderer-DO1TeUqV.mjs.map → renderer-Cba208C9.mjs.map} +1 -1
- package/dist/{renderer-CA_CwisV.mjs → renderer-CdJoOfQw.mjs} +2 -2
- package/dist/{renderer-CA_CwisV.mjs.map → renderer-CdJoOfQw.mjs.map} +1 -1
- package/dist/renderer-Ck0mGIo9.mjs +5 -0
- package/dist/{renderer-YBwN9uyj.mjs → renderer-CoaDDIS6.mjs} +5 -5
- package/dist/{renderer-YBwN9uyj.mjs.map → renderer-CoaDDIS6.mjs.map} +1 -1
- package/dist/renderer-CqIXqdf0.mjs +5 -0
- package/dist/renderer-Csod6biL.mjs +5 -0
- package/dist/{renderer-BMiZIGkZ.mjs → renderer-CsxO_wBG.mjs} +2 -2
- package/dist/renderer-CueO924-.mjs +5 -0
- package/dist/{renderer-x1xlZaH_.mjs → renderer-Cv6od7Be.mjs} +3 -3
- package/dist/{renderer-x1xlZaH_.mjs.map → renderer-Cv6od7Be.mjs.map} +1 -1
- package/dist/{renderer-B5ZdkcMi.mjs → renderer-Cw7R1U43.mjs} +2 -2
- package/dist/{renderer-B5ZdkcMi.mjs.map → renderer-Cw7R1U43.mjs.map} +1 -1
- package/dist/renderer-D1vM4obC.mjs +5 -0
- package/dist/{renderer-CEAmByVW.mjs → renderer-D36Pjp0B.mjs} +2 -2
- package/dist/{renderer-CEAmByVW.mjs.map → renderer-D36Pjp0B.mjs.map} +1 -1
- package/dist/{renderer-CFCR_7bq.mjs → renderer-D52KWsb8.mjs} +3 -3
- package/dist/{renderer-CFCR_7bq.mjs.map → renderer-D52KWsb8.mjs.map} +1 -1
- package/dist/renderer-DB7QUt90.mjs +5 -0
- package/dist/{renderer-BfQdc3RM.mjs → renderer-DGsWlXjl.mjs} +69 -69
- package/dist/{renderer-BfQdc3RM.mjs.map → renderer-DGsWlXjl.mjs.map} +1 -1
- package/dist/renderer-DLMDnKlA.mjs +6 -0
- package/dist/renderer-DNs7yWMr.mjs +5 -0
- package/dist/{renderer-C8pJFxcL.mjs → renderer-DORydJHm.mjs} +2 -2
- package/dist/{renderer-C8pJFxcL.mjs.map → renderer-DORydJHm.mjs.map} +1 -1
- package/dist/renderer-DOrtuoa9.mjs +5 -0
- package/dist/{renderer-Dz4muMyE.mjs → renderer-DTKtkgTO.mjs} +2 -2
- package/dist/{renderer-Dz4muMyE.mjs.map → renderer-DTKtkgTO.mjs.map} +1 -1
- package/dist/{renderer-YFHESw3v.mjs → renderer-DVdRzDwX.mjs} +3 -3
- package/dist/{renderer-YFHESw3v.mjs.map → renderer-DVdRzDwX.mjs.map} +1 -1
- package/dist/renderer-D_JgOawb.mjs +5 -0
- package/dist/renderer-DdLo1uoa.mjs +5 -0
- package/dist/renderer-DeX3JEZV.mjs +5 -0
- package/dist/{renderer-C2MaJKfY.mjs → renderer-Df-rf7RC.mjs} +3 -3
- package/dist/{renderer-C2MaJKfY.mjs.map → renderer-Df-rf7RC.mjs.map} +1 -1
- package/dist/renderer-DfgZVACG.mjs +5 -0
- package/dist/{renderer-CFRTJ7cT.mjs → renderer-DmrP4dsn.mjs} +2 -2
- package/dist/{renderer-CFRTJ7cT.mjs.map → renderer-DmrP4dsn.mjs.map} +1 -1
- package/dist/renderer-DoYG7Pn6.mjs +5 -0
- package/dist/{renderer-Bvizxddu.mjs → renderer-DqIrYB0P.mjs} +2 -2
- package/dist/{renderer-Bvizxddu.mjs.map → renderer-DqIrYB0P.mjs.map} +1 -1
- package/dist/{renderer-BrKgtYq4.mjs → renderer-DrrWvz8l.mjs} +3 -3
- package/dist/{renderer-BrKgtYq4.mjs.map → renderer-DrrWvz8l.mjs.map} +1 -1
- package/dist/{renderer-Bwxm-kWL.mjs → renderer-DuFwDHHF.mjs} +2 -2
- package/dist/{renderer-CVbNiH03.mjs → renderer-DxOJv_G7.mjs} +3 -3
- package/dist/{renderer-CVbNiH03.mjs.map → renderer-DxOJv_G7.mjs.map} +1 -1
- package/dist/{renderer-CbxfSmYE.mjs → renderer-E54Vv1_W.mjs} +3 -3
- package/dist/{renderer-CbxfSmYE.mjs.map → renderer-E54Vv1_W.mjs.map} +1 -1
- package/dist/{renderer-B7vXnBUo.mjs → renderer-FPYVmSf6.mjs} +3 -3
- package/dist/{renderer-B7vXnBUo.mjs.map → renderer-FPYVmSf6.mjs.map} +1 -1
- package/dist/{renderer-BlU3Sh_0.mjs → renderer-FgP_1OgD.mjs} +3 -3
- package/dist/{renderer-BlU3Sh_0.mjs.map → renderer-FgP_1OgD.mjs.map} +1 -1
- package/dist/{renderer-DW21AyEv.mjs → renderer-H-Adf8Za.mjs} +3 -3
- package/dist/{renderer-DW21AyEv.mjs.map → renderer-H-Adf8Za.mjs.map} +1 -1
- package/dist/{renderer-CPSg6eEQ.mjs → renderer-HPBahXjt.mjs} +2 -2
- package/dist/{renderer-CPSg6eEQ.mjs.map → renderer-HPBahXjt.mjs.map} +1 -1
- package/dist/renderer-Jwqa-BUN.mjs +5 -0
- package/dist/{renderer-BNs31kME.mjs → renderer-KkDYCAkn.mjs} +3 -3
- package/dist/{renderer-BNs31kME.mjs.map → renderer-KkDYCAkn.mjs.map} +1 -1
- package/dist/{renderer-BvA4sQz5.mjs → renderer-PDAlUGKG.mjs} +3 -3
- package/dist/{renderer-BvA4sQz5.mjs.map → renderer-PDAlUGKG.mjs.map} +1 -1
- package/dist/{renderer-C5QYI1Wu.mjs → renderer-PDs21Gsq.mjs} +2 -2
- package/dist/{renderer-C5QYI1Wu.mjs.map → renderer-PDs21Gsq.mjs.map} +1 -1
- package/dist/{renderer-DADTT3ym.mjs → renderer-Sdsy27LH.mjs} +2 -2
- package/dist/{renderer-DHdFVpdH.mjs → renderer-YEDoDnsE.mjs} +2 -2
- package/dist/{renderer-DHdFVpdH.mjs.map → renderer-YEDoDnsE.mjs.map} +1 -1
- package/dist/renderer-Z2Vs-IqP.mjs +5 -0
- package/dist/{renderer-BWNQQZ12.mjs → renderer-ZM2jwJbX.mjs} +3 -3
- package/dist/{renderer-BWNQQZ12.mjs.map → renderer-ZM2jwJbX.mjs.map} +1 -1
- package/dist/{renderer-BKJ8cywK.mjs → renderer-ZarULMvJ.mjs} +2 -2
- package/dist/{renderer-BKJ8cywK.mjs.map → renderer-ZarULMvJ.mjs.map} +1 -1
- package/dist/renderer-ZnyCpdWE.mjs +5 -0
- package/dist/{renderer-8_d6YNnE.mjs → renderer-aT6MUYPr.mjs} +2 -2
- package/dist/{renderer-8_d6YNnE.mjs.map → renderer-aT6MUYPr.mjs.map} +1 -1
- package/dist/{renderer-DkOxEQsg.mjs → renderer-dX7Fy1NR.mjs} +3 -3
- package/dist/{renderer-DkOxEQsg.mjs.map → renderer-dX7Fy1NR.mjs.map} +1 -1
- package/dist/{renderer-tcS585Iy.mjs → renderer-eQP0fvgc.mjs} +2 -2
- package/dist/{renderer-tcS585Iy.mjs.map → renderer-eQP0fvgc.mjs.map} +1 -1
- package/dist/renderer-emCnsnTH.mjs +5 -0
- package/dist/renderer-ioxa4-Dy.mjs +5 -0
- package/dist/renderer-iyIwrDWO.mjs +5 -0
- package/dist/{renderer-BZ5uOfoX.mjs → renderer-lP23pU1s.mjs} +2 -2
- package/dist/{renderer-BZ5uOfoX.mjs.map → renderer-lP23pU1s.mjs.map} +1 -1
- package/dist/{renderer-oR1LvHeO.mjs → renderer-tYmQUp4d.mjs} +2 -2
- package/dist/{renderer-oR1LvHeO.mjs.map → renderer-tYmQUp4d.mjs.map} +1 -1
- package/dist/renderer-tuudA_RZ.mjs +5 -0
- package/dist/{renderer-D8m3fuRp.mjs → renderer-wrXFfvpJ.mjs} +2 -2
- package/dist/{renderer-D8m3fuRp.mjs.map → renderer-wrXFfvpJ.mjs.map} +1 -1
- package/dist/renderer-yyn8S821.mjs +5 -0
- package/dist/{renderers-CP8CFWDs-EZZPEbhW.mjs → renderers-CP8CFWDs-CZJ7NRsl.mjs} +2 -2
- package/dist/{renderers-CP8CFWDs-EZZPEbhW.mjs.map → renderers-CP8CFWDs-CZJ7NRsl.mjs.map} +1 -1
- package/dist/signals/index.mjs +4 -4
- package/dist/{src-r7Suenhp.mjs → src-_l81YkMD.mjs} +612 -117
- package/dist/src-_l81YkMD.mjs.map +1 -0
- package/package.json +59 -58
- package/dist/dist-BuirkW-f.mjs.map +0 -1
- package/dist/dist-DBdxM6xv.mjs.map +0 -1
- package/dist/fonts-DNx6ps2p.mjs.map +0 -1
- package/dist/index-CalU-mpZ.d.mts.map +0 -1
- package/dist/index-N1tMc5Z9.d.mts.map +0 -1
- package/dist/preview-engine/chunk-2TCJSHFA.mjs +0 -1974
- package/dist/preview-engine/chunk-Q7XC3FI7.mjs +0 -3
- package/dist/preview-engine/chunk-ZZAZF6VC.mjs +0 -5
- package/dist/program-O2bWX0cs.mjs.map +0 -1
- package/dist/renderer-0441BN0U.mjs +0 -5
- package/dist/renderer-3qDgFc-W.mjs +0 -5
- package/dist/renderer-6AIqTN5Z.mjs +0 -5
- package/dist/renderer-B7MZ5R7u.mjs +0 -5
- package/dist/renderer-BE2rIA4B.mjs +0 -5
- package/dist/renderer-BIQ81ln4.mjs +0 -5
- package/dist/renderer-BKm3_Ob3.mjs +0 -5
- package/dist/renderer-BNdT1Wwf.mjs +0 -5
- package/dist/renderer-BQycs1q_.mjs +0 -5
- package/dist/renderer-Bj7MxXfk.mjs +0 -5
- package/dist/renderer-BjRAGYYC.mjs +0 -5
- package/dist/renderer-BqE2BQ_X.mjs +0 -5
- package/dist/renderer-Bz5BMkOE.mjs +0 -5
- package/dist/renderer-CDOSfB9H.mjs +0 -5
- package/dist/renderer-CT26yQT-.mjs +0 -5
- package/dist/renderer-CZeAbz48.mjs +0 -5
- package/dist/renderer-D50b7kip.mjs +0 -5
- package/dist/renderer-D5LmrO96.mjs +0 -5
- package/dist/renderer-DCvqZ5o_.mjs +0 -5
- package/dist/renderer-DJGJeGEn.mjs +0 -5
- package/dist/renderer-DONvNNXi.mjs +0 -5
- package/dist/renderer-DPaSo--Y.mjs +0 -6
- package/dist/renderer-DfYYokhr.mjs +0 -5
- package/dist/renderer-DlIJhdEM.mjs +0 -5
- package/dist/renderer-DqD3nMtv.mjs +0 -5
- package/dist/renderer-DrIl-uGt.mjs +0 -5
- package/dist/renderer-DyCB3Q1d.mjs +0 -5
- package/dist/renderer-DyJ-iSv6.mjs +0 -5
- package/dist/renderer-Dzs0jV0G.mjs +0 -5
- package/dist/renderer-HIKXw5-Y.mjs +0 -5
- package/dist/renderer-Jgt2g8Wp.mjs +0 -5
- package/dist/renderer-KnZWmT-M.mjs +0 -5
- package/dist/renderer-OMSXddG9.mjs +0 -5
- package/dist/renderer-P78xh6OV.mjs +0 -5
- package/dist/renderer-gaFP1Kak.mjs +0 -5
- package/dist/renderer-lQ8gH7Zd.mjs +0 -5
- package/dist/src-r7Suenhp.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"program-O2bWX0cs.mjs","names":["LayerAnimation","CameraAnimation","Scene","Sequence"],"sources":["../../compositions/dist/program/index.mjs"],"sourcesContent":["import { n as __reExport, t as __exportAll } from \"../chunk-CFhWmker.mjs\";\nimport { Color, Effect, assertNever, createVirtualMedia, getActiveMediaMetadata, mixColors, parseCssColor, parseCssGradient } from \"@framefields/core\";\nimport { ColorSchema } from \"@framefields/node-sdk\";\nimport { signalRegistry } from \"@framefields/webgpu-renderers\";\nimport { loadYoga } from \"yoga-layout/load\";\nimport { AETextAnimatorSchema, AdvancedTextAnimatorSchema, KineticMarqueeConfigSchema, TextPathOptionsSchema, TypewriterAnimatorSchema } from \"@framefields/webgpu-renderers/text-animations\";\nimport { z } from \"zod\";\n\nexport * from \"@framefields/webgpu-renderers/text-animations\"\n\n//#region src/utils/layout/resolve-layout.ts\nlet yogaInstance = null;\n/**\n* Ensure the Yoga WASM module is loaded. Safe to call multiple times —\n* subsequent calls return the cached instance immediately.\n*/\nasync function initLayout() {\n\tif (yogaInstance) return yogaInstance;\n\tyogaInstance = await loadYoga();\n\treturn yogaInstance;\n}\nfunction mapJustify(yoga, value) {\n\tswitch (value) {\n\t\tcase \"center\": return yoga.JUSTIFY_CENTER;\n\t\tcase \"end\": return yoga.JUSTIFY_FLEX_END;\n\t\tcase \"space-between\": return yoga.JUSTIFY_SPACE_BETWEEN;\n\t\tcase \"space-around\": return yoga.JUSTIFY_SPACE_AROUND;\n\t\tdefault: return yoga.JUSTIFY_FLEX_START;\n\t}\n}\nfunction mapAlign(yoga, value) {\n\tswitch (value) {\n\t\tcase \"center\": return yoga.ALIGN_CENTER;\n\t\tcase \"end\": return yoga.ALIGN_FLEX_END;\n\t\tcase \"stretch\": return yoga.ALIGN_STRETCH;\n\t\tdefault: return yoga.ALIGN_FLEX_START;\n\t}\n}\nfunction mapAlignSelf(yoga, value) {\n\tswitch (value) {\n\t\tcase \"start\": return yoga.ALIGN_FLEX_START;\n\t\tcase \"center\": return yoga.ALIGN_CENTER;\n\t\tcase \"end\": return yoga.ALIGN_FLEX_END;\n\t\tcase \"stretch\": return yoga.ALIGN_STRETCH;\n\t\tcase \"baseline\": return yoga.ALIGN_BASELINE;\n\t\tdefault: return yoga.ALIGN_AUTO;\n\t}\n}\nfunction toYogaValue(val) {\n\tif (val === void 0 || val === null) return void 0;\n\tif (typeof val === \"number\" || typeof val === \"string\") return val;\n\tif (typeof val === \"object\") {\n\t\tif (\"unit\" in val && typeof val.unit === \"number\") return val;\n\t\tconst num = Number(val);\n\t\tif (!Number.isNaN(num)) return num;\n\t}\n}\n/** Container main dir; leaves return null. */\nfunction dirOf(node) {\n\tswitch (node.kind) {\n\t\tcase \"flex\": return node.dir ?? \"row\";\n\t\tcase \"block\": return \"column\";\n\t\tcase \"box\": return node.children && node.children.length > 0 ? \"column\" : null;\n\t\tcase \"text\":\n\t\tcase \"media\":\n\t\tcase \"shape\":\n\t\tcase \"camera\":\n\t\tcase \"light\":\n\t\tcase \"model3d\":\n\t\tdefault: return null;\n\t}\n}\n/** Container default width spec (block fills like HTML). */\nfunction defaultWidthSpec(node) {\n\tif (node.kind === \"block\") return \"fill\";\n}\nfunction containerStyle(node) {\n\tlet gap = 0;\n\tif (node.kind === \"flex\" || node.kind === \"block\") {\n\t\tconst g = toYogaValue(node.gap);\n\t\tgap = typeof g === \"number\" ? g : 0;\n\t}\n\tlet padding = 0;\n\tif (node.kind === \"flex\" || node.kind === \"block\" || node.kind === \"box\" || node.kind === \"text\") {\n\t\tconst p = toYogaValue(node.padding);\n\t\tpadding = typeof p === \"number\" ? p : 0;\n\t}\n\tlet justify = \"start\";\n\tif (node.kind === \"flex\") justify = node.justify ?? \"start\";\n\tlet align$1 = \"start\";\n\tif (node.kind === \"flex\" || node.kind === \"block\") align$1 = node.align ?? \"start\";\n\tlet wrap = false;\n\tif (node.kind === \"flex\") wrap = typeof node.wrap === \"boolean\" ? node.wrap : false;\n\treturn {\n\t\tgap,\n\t\tpadding,\n\t\tjustify,\n\t\talign: align$1,\n\t\twrap\n\t};\n}\nfunction isAbsolutePositioned(layoutNode) {\n\tconst node = layoutNode;\n\treturn node.position === \"absolute\" || node.position === void 0 && (node.x !== void 0 || node.y !== void 0);\n}\n/** Flow children (non-absolute). */\nfunction flowChildren(node) {\n\tif (\"children\" in node && node.children) return node.children.filter((c) => !isAbsolutePositioned(c));\n\treturn [];\n}\nfunction absoluteChildren(node) {\n\tif (\"children\" in node && node.children) return node.children.filter((c) => isAbsolutePositioned(c));\n\treturn [];\n}\nfunction buildYogaNode(yoga, layoutNode, parentExtent, measure, parentDir) {\n\tconst node = layoutNode;\n\tconst yn = yoga.Node.create();\n\tconst dir = dirOf(node);\n\tconst isContainer = dir !== null;\n\tconst children = [];\n\tif (isAbsolutePositioned(node)) {\n\t\tyn.setPositionType(yoga.POSITION_TYPE_ABSOLUTE);\n\t\tconst posX = toYogaValue(node.x);\n\t\tconst posY = toYogaValue(node.y);\n\t\tif (posX !== void 0) yn.setPosition(yoga.EDGE_LEFT, posX);\n\t\tif (posY !== void 0) yn.setPosition(yoga.EDGE_TOP, posY);\n\t} else yn.setPositionType(yoga.POSITION_TYPE_RELATIVE);\n\tconst grow = toYogaValue(node.grow);\n\tif (grow !== void 0) yn.setFlexGrow(typeof grow === \"number\" ? grow : parseFloat(grow));\n\tconst flexShrink = toYogaValue(node.flexShrink);\n\tif (flexShrink !== void 0) yn.setFlexShrink(typeof flexShrink === \"number\" ? flexShrink : parseFloat(flexShrink));\n\telse yn.setFlexShrink(parentDir !== null ? 1 : 0);\n\tif (node.flexBasis !== void 0) yn.setFlexBasis(node.flexBasis);\n\tif (node.alignSelf !== void 0) yn.setAlignSelf(mapAlignSelf(yoga, node.alignSelf));\n\tconst wSpec = node.width ?? defaultWidthSpec(node);\n\tconst hSpec = node.height;\n\tconst isWidthMain = parentDir === \"row\";\n\tconst isHeightMain = parentDir === \"column\";\n\tapplySizeSpec(yn, \"width\", wSpec, parentExtent?.width, isWidthMain);\n\tapplySizeSpec(yn, \"height\", hSpec, parentExtent?.height, isHeightMain);\n\tif (isContainer) {\n\t\tconst cs = containerStyle(node);\n\t\tyn.setFlexDirection(dir === \"row\" ? yoga.FLEX_DIRECTION_ROW : yoga.FLEX_DIRECTION_COLUMN);\n\t\tyn.setJustifyContent(mapJustify(yoga, cs.justify));\n\t\tyn.setAlignItems(mapAlign(yoga, cs.align));\n\t\tyn.setFlexWrap(cs.wrap ? yoga.WRAP_WRAP : yoga.WRAP_NO_WRAP);\n\t\tif (cs.padding > 0) yn.setPadding(yoga.EDGE_ALL, cs.padding);\n\t\tif (cs.gap > 0) yn.setGap(yoga.GUTTER_ALL, cs.gap);\n\t\tconst flow = flowChildren(node);\n\t\tconst abs = absoluteChildren(node);\n\t\tconst allChildren = [...flow, ...abs];\n\t\tfor (let i = 0; i < allChildren.length; i++) {\n\t\t\tconst childMapping = buildYogaNode(yoga, allChildren[i], void 0, measure, isAbsolutePositioned(node) ? null : dir);\n\t\t\tyn.insertChild(childMapping.yogaNode, i);\n\t\t\tchildren.push(childMapping);\n\t\t}\n\t} else if (node.kind === \"text\" || node.kind === \"media\" && node.dataType === \"Caption\") yn.setMeasureFunc((width, widthMode, height, heightMode) => {\n\t\tlet constraintWidth;\n\t\tif (widthMode === 1 || widthMode === 2) constraintWidth = width;\n\t\tconst measured = measure?.(node, constraintWidth) ?? {\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t};\n\t\tlet resolvedWidth = measured.width;\n\t\tlet resolvedHeight = measured.height;\n\t\tif (widthMode === 1) resolvedWidth = width;\n\t\tif (heightMode === 1) resolvedHeight = height;\n\t\treturn {\n\t\t\twidth: resolvedWidth,\n\t\t\theight: resolvedHeight\n\t\t};\n\t});\n\telse {\n\t\tconst measured = measure?.(node) ?? null;\n\t\tif (measured) {\n\t\t\tconst hasRatio = node.aspectRatio !== void 0;\n\t\t\tconst isCaption = node.kind === \"media\" && node.dataType === \"Caption\";\n\t\t\tconst intrinsicRatio = measured.height > 0 ? measured.width / measured.height : 1;\n\t\t\tif (node.kind === \"media\" && !isCaption && !hasRatio) yn.setAspectRatio(intrinsicRatio);\n\t\t\tconst isWAuto = wSpec === void 0 || wSpec === \"auto\" || wSpec === \"fit\";\n\t\t\tconst isHAuto = hSpec === void 0 || hSpec === \"auto\" || hSpec === \"fit\";\n\t\t\tif (isWAuto && isHAuto) {\n\t\t\t\tconst ar = node.aspectRatio ?? (node.kind === \"media\" ? intrinsicRatio : void 0) ?? 1;\n\t\t\t\tyn.setMeasureFunc((width, widthMode, height, heightMode) => {\n\t\t\t\t\tlet resW = measured.width;\n\t\t\t\t\tlet resH = measured.height;\n\t\t\t\t\tif (widthMode === 1 && heightMode === 1) {\n\t\t\t\t\t\tresW = width;\n\t\t\t\t\t\tresH = height;\n\t\t\t\t\t} else if (widthMode === 1) {\n\t\t\t\t\t\tresW = width;\n\t\t\t\t\t\tresH = ar > 0 ? Math.round(width / ar) : measured.height;\n\t\t\t\t\t} else if (heightMode === 1) {\n\t\t\t\t\t\tresH = height;\n\t\t\t\t\t\tresW = ar > 0 ? Math.round(height * ar) : measured.width;\n\t\t\t\t\t} else if (widthMode === 2 && heightMode === 2) {\n\t\t\t\t\t\tconst scale = Math.min(1, width / measured.width, height / measured.height);\n\t\t\t\t\t\tresW = Math.round(measured.width * scale);\n\t\t\t\t\t\tresH = Math.round(measured.height * scale);\n\t\t\t\t\t} else if (widthMode === 2) {\n\t\t\t\t\t\tif (measured.width > width) {\n\t\t\t\t\t\t\tresW = width;\n\t\t\t\t\t\t\tresH = ar > 0 ? Math.round(width / ar) : measured.height;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (heightMode === 2) {\n\t\t\t\t\t\tif (measured.height > height) {\n\t\t\t\t\t\t\tresH = height;\n\t\t\t\t\t\t\tresW = ar > 0 ? Math.round(height * ar) : measured.width;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\twidth: resW,\n\t\t\t\t\t\theight: resH\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t} else if (isWAuto) {\n\t\t\t\tconst ar = node.aspectRatio ?? (node.kind === \"media\" ? intrinsicRatio : void 0);\n\t\t\t\tif (ar === void 0 || ar <= 0) yn.setWidth(measured.width);\n\t\t\t} else if (isHAuto) {\n\t\t\t\tconst ar = node.aspectRatio ?? (node.kind === \"media\" ? intrinsicRatio : void 0);\n\t\t\t\tif (ar === void 0 || ar <= 0) yn.setHeight(measured.height);\n\t\t\t}\n\t\t}\n\t}\n\treturn {\n\t\tyogaNode: yn,\n\t\tlayoutNode: node,\n\t\tchildren\n\t};\n}\nfunction applySizeSpec(yn, dim, spec, parentExtent, isFlexChild) {\n\tif (spec === void 0 || spec === \"auto\" || spec === \"fit\") return;\n\tconst resolvedSpec = toYogaValue(spec);\n\tif (typeof resolvedSpec === \"number\") {\n\t\tif (dim === \"width\") yn.setWidth(resolvedSpec);\n\t\telse yn.setHeight(resolvedSpec);\n\t\treturn;\n\t}\n\tif (resolvedSpec === \"fill\") {\n\t\tif (isFlexChild) {\n\t\t\tif (yn.getFlexGrow() === 0) yn.setFlexGrow(1);\n\t\t\tyn.setFlexBasis(0);\n\t\t\treturn;\n\t\t}\n\t\tif (parentExtent !== void 0) if (dim === \"width\") yn.setWidth(parentExtent);\n\t\telse yn.setHeight(parentExtent);\n\t\telse if (dim === \"width\") yn.setWidthPercent(100);\n\t\telse yn.setHeightPercent(100);\n\t}\n}\nfunction readLayout(mapping, parentX, parentY, rects, sizes) {\n\tconst layout = mapping.yogaNode.getComputedLayout();\n\tlet x = parentX + layout.left;\n\tlet y = parentY + layout.top;\n\tconst width = layout.width;\n\tconst height = layout.height;\n\tconst node = mapping.layoutNode;\n\tif (!isAbsolutePositioned(node)) {\n\t\tx += Number(node.x ?? 0);\n\t\ty += Number(node.y ?? 0);\n\t}\n\trects[mapping.layoutNode.id] = {\n\t\tx: Math.round(x * 1e3) / 1e3,\n\t\ty: Math.round(y * 1e3) / 1e3,\n\t\twidth: Math.round(width * 1e3) / 1e3,\n\t\theight: Math.round(height * 1e3) / 1e3\n\t};\n\tsizes[mapping.layoutNode.id] = {\n\t\twidth: Math.round(width * 1e3) / 1e3,\n\t\theight: Math.round(height * 1e3) / 1e3\n\t};\n\tfor (const child of mapping.children) readLayout(child, x, y, rects, sizes);\n}\nfunction freeYogaTree(mapping) {\n\tfor (const child of mapping.children) freeYogaTree(child);\n\tmapping.yogaNode.free();\n}\n/** Deterministic layout (synchronous): document + viewport (+ measure) → rects. */\nfunction computeLayoutSync(yoga, input) {\n\tconst { layout, viewport, measure } = input;\n\tconst rects = {};\n\tconst sizesMap = {};\n\tfor (const root of layout) {\n\t\tconst wrapperNode = yoga.Node.create();\n\t\twrapperNode.setWidth(viewport.width);\n\t\twrapperNode.setHeight(viewport.height);\n\t\twrapperNode.setFlexDirection(yoga.FLEX_DIRECTION_COLUMN);\n\t\tconst mapping = buildYogaNode(yoga, root, {\n\t\t\twidth: viewport.width,\n\t\t\theight: viewport.height\n\t\t}, measure, null);\n\t\twrapperNode.insertChild(mapping.yogaNode, 0);\n\t\twrapperNode.calculateLayout(viewport.width, viewport.height);\n\t\tconst rootLayout = mapping.yogaNode.getComputedLayout();\n\t\tconst isRootAbsolute = root.position === \"absolute\" || root.position === void 0 && (root.x !== void 0 || root.y !== void 0);\n\t\tconst rootX = isRootAbsolute ? rootLayout.left : Number(root.x ?? 0);\n\t\tconst rootY = isRootAbsolute ? rootLayout.top : Number(root.y ?? 0);\n\t\trects[root.id] = {\n\t\t\tx: Math.round(rootX * 1e3) / 1e3,\n\t\t\ty: Math.round(rootY * 1e3) / 1e3,\n\t\t\twidth: Math.round(rootLayout.width * 1e3) / 1e3,\n\t\t\theight: Math.round(rootLayout.height * 1e3) / 1e3\n\t\t};\n\t\tsizesMap[root.id] = {\n\t\t\twidth: Math.round(rootLayout.width * 1e3) / 1e3,\n\t\t\theight: Math.round(rootLayout.height * 1e3) / 1e3\n\t\t};\n\t\tfor (const child of mapping.children) readLayout(child, rootX, rootY, rects, sizesMap);\n\t\tfreeYogaTree(mapping);\n\t\twrapperNode.free();\n\t}\n\treturn {\n\t\trects,\n\t\tsizes: sizesMap\n\t};\n}\n/** Deterministic layout: document + viewport (+ measure) → rects. */\nasync function computeLayout(input) {\n\treturn computeLayoutSync(await initLayout(), input);\n}\n\n//#endregion\n//#region src/program/inline-signals.ts\n/**\n* Inline signal objects on animation tracks.\n*\n* `LayerAnimation.signal(prop, Signal.fromArray(...))` binds a track to a\n* signal object instead of a name registered with `comp.addSignal`. The spec\n* stays plain data: the track's `inputHandleId` gets a generated name and the\n* object rides on the source under a non-enumerable symbol (invisible to JSON,\n* zod and hashing). `compositorToProgram` walks the layout and folds those\n* objects into the program's `signals` map under their generated names, so\n* every evaluator (which only looks signals up by name) sees them.\n*/\nconst INLINE_SIGNAL = Symbol.for(\"framefields.inlineSignal\");\nconst handleIds = /* @__PURE__ */ new WeakMap();\nlet nextHandle = 0;\n/**\n* The generated handle id for a signal object. The same object always gets\n* the same id, so reusing one signal across tracks registers it once.\n*/\nfunction inlineSignalHandleId(signal) {\n\tlet id = handleIds.get(signal);\n\tif (id === void 0) {\n\t\tid = `inline_signal_${nextHandle++}`;\n\t\thandleIds.set(signal, id);\n\t}\n\treturn id;\n}\n/**\n* Resolves the `signalOrHandleId` argument of `LayerAnimation.signal` /\n* `colorSignal` to a handle id, plus the signal object to carry inline (when\n* it is not a registered name).\n*/\nfunction resolveSignalArg(signalOrHandleId) {\n\tif (typeof signalOrHandleId === \"string\") return { handleId: signalOrHandleId };\n\tif (signalOrHandleId === null || typeof signalOrHandleId !== \"object\" && typeof signalOrHandleId !== \"function\") throw new TypeError(`LayerAnimation.signal: expected a signal object or a signal name, got ${String(signalOrHandleId)}. Pass a signal (Signal.fromArray / Signal.builder / an audio channel …) or register it with comp.addSignal(name, signal) and pass the name.`);\n\tconst obj = signalOrHandleId;\n\tif (typeof obj.inputHandleId === \"string\") return { handleId: obj.inputHandleId };\n\tif (typeof obj.gpuBinding?.nodeId === \"string\") return typeof obj.get === \"function\" ? {\n\t\thandleId: obj.gpuBinding.nodeId,\n\t\tinline: signalOrHandleId\n\t} : { handleId: obj.gpuBinding.nodeId };\n\treturn {\n\t\thandleId: inlineSignalHandleId(signalOrHandleId),\n\t\tinline: signalOrHandleId\n\t};\n}\n/** Attaches an inline signal object to a track source without making it enumerable. */\nfunction attachInlineSignal(source, signal) {\n\tObject.defineProperty(source, INLINE_SIGNAL, {\n\t\tvalue: signal,\n\t\tenumerable: false,\n\t\tconfigurable: true,\n\t\twritable: true\n\t});\n}\n/** The inline signal object carried by a track source, if any. */\nfunction getInlineSignal(source) {\n\tif (!source || typeof source !== \"object\") return void 0;\n\treturn source[INLINE_SIGNAL];\n}\n/**\n* Collects every inline signal object under `nodes` (animation tracks of each\n* node, recursing into `children`) keyed by its generated handle id.\n*/\nfunction collectInlineSignals(nodes, out = {}) {\n\tfor (const node of nodes) {\n\t\tif (!node || typeof node !== \"object\") continue;\n\t\tconst { animation, children } = node;\n\t\tconst tracks = animation?.tracks;\n\t\tif (Array.isArray(tracks)) for (const track of tracks) {\n\t\t\tconst source = track?.source;\n\t\t\tconst signal = getInlineSignal(source);\n\t\t\tif (signal && typeof source?.inputHandleId === \"string\") out[source.inputHandleId] = signal;\n\t\t}\n\t\tif (Array.isArray(children)) collectInlineSignals(children, out);\n\t}\n\treturn out;\n}\n\n//#endregion\n//#region src/program/animation.ts\nconst isKeyframeTrack = (t) => !t.source || t.source.type === \"keyframe\";\n/**\n* Merges keyframe tracks that animate the same prop into one sorted track,\n* the later key winning on a shared frame. Procedural tracks (signal,\n* wiggle, spring…) pass through untouched.\n*/\nfunction mergeAnimationTracks(tracks) {\n\tconst out = [];\n\tconst byProp = /* @__PURE__ */ new Map();\n\tfor (const t of tracks) {\n\t\tif (!isKeyframeTrack(t)) {\n\t\t\tout.push(t);\n\t\t\tcontinue;\n\t\t}\n\t\tconst existing = byProp.get(t.prop);\n\t\tif (!existing) {\n\t\t\tconst copy = {\n\t\t\t\t...t,\n\t\t\t\tkeyframes: [...t.keyframes ?? []]\n\t\t\t};\n\t\t\tbyProp.set(t.prop, copy);\n\t\t\tout.push(copy);\n\t\t\tcontinue;\n\t\t}\n\t\tconst frames = new Map(existing.keyframes.map((k) => [k.frame, k]));\n\t\tfor (const k of t.keyframes ?? []) frames.set(k.frame, k);\n\t\texisting.keyframes = [...frames.values()].sort((a, b) => a.frame - b.frame);\n\t}\n\treturn out;\n}\nfunction evaluateEasingProgress(ease, t) {\n\tif (!ease) return t;\n\tconst ref = parseEase(ease);\n\tif (!ref || ref.name === \"none\") return t;\n\tconst { name, dir, params } = ref;\n\tconst s = Math.max(0, Math.min(1, t));\n\tconst applyDir = (fn) => {\n\t\tif (dir === \"in\") return fn(s);\n\t\tif (dir === \"out\") return 1 - fn(1 - s);\n\t\treturn s < .5 ? fn(s * 2) / 2 : 1 - fn((1 - s) * 2) / 2;\n\t};\n\tswitch (name) {\n\t\tcase \"power1\": return applyDir((x) => x * x);\n\t\tcase \"power2\": return applyDir((x) => x * x * x);\n\t\tcase \"power3\": return applyDir((x) => x * x * x * x);\n\t\tcase \"sine\": return applyDir((x) => 1 - Math.cos(x * Math.PI / 2));\n\t\tcase \"circ\": return applyDir((x) => 1 - Math.sqrt(Math.max(0, 1 - x * x)));\n\t\tcase \"expo\": return applyDir((x) => x === 0 ? 0 : 2 ** (10 * (x - 1)));\n\t\tcase \"back\": {\n\t\t\tconst c1 = params?.[0] ?? 1.70158;\n\t\t\tconst c3 = c1 + 1;\n\t\t\treturn applyDir((x) => c3 * x * x * x - c1 * x * x);\n\t\t}\n\t\tcase \"bounce\": {\n\t\t\tconst bounceOut = (x) => {\n\t\t\t\tconst n1 = 7.5625;\n\t\t\t\tconst d1 = 2.75;\n\t\t\t\tif (x < 1 / d1) return n1 * x * x;\n\t\t\t\tif (x < 2 / d1) {\n\t\t\t\t\tconst x2$1 = x - 1.5 / d1;\n\t\t\t\t\treturn n1 * x2$1 * x2$1 + .75;\n\t\t\t\t}\n\t\t\t\tif (x < 2.5 / d1) {\n\t\t\t\t\tconst x2$1 = x - 2.25 / d1;\n\t\t\t\t\treturn n1 * x2$1 * x2$1 + .9375;\n\t\t\t\t}\n\t\t\t\tconst x2 = x - 2.625 / d1;\n\t\t\t\treturn n1 * x2 * x2 + .984375;\n\t\t\t};\n\t\t\tif (dir === \"out\") return bounceOut(s);\n\t\t\tif (dir === \"in\") return 1 - bounceOut(1 - s);\n\t\t\treturn s < .5 ? (1 - bounceOut(1 - 2 * s)) / 2 : (1 + bounceOut(2 * s - 1)) / 2;\n\t\t}\n\t\tdefault: return s;\n\t}\n}\nfunction parseEase(ease) {\n\tif (!ease) return void 0;\n\tif (typeof ease === \"object\" && \"name\" in ease && \"dir\" in ease) return ease;\n\tif (typeof ease === \"string\") {\n\t\tconst trimmed = ease.trim();\n\t\tconst match = trimmed.match(/^([a-zA-Z0-9]+)(?:\\.([a-zA-Z]+))?(?:\\(([^)]+)\\))?$/);\n\t\tif (match) {\n\t\t\tconst rawName$1 = match[1].toLowerCase();\n\t\t\tconst name$1 = rawName$1 === \"linear\" ? \"none\" : rawName$1;\n\t\t\tconst rawDir$1 = (match[2] || \"out\").toLowerCase();\n\t\t\tlet dir$1 = \"out\";\n\t\t\tif (rawDir$1 === \"in\") dir$1 = \"in\";\n\t\t\telse if (rawDir$1 === \"out\") dir$1 = \"out\";\n\t\t\telse if (rawDir$1 === \"inout\") dir$1 = \"inOut\";\n\t\t\tlet params;\n\t\t\tif (match[3]) params = match[3].split(\",\").map((s) => Number.parseFloat(s.trim())).filter((n) => !Number.isNaN(n));\n\t\t\treturn {\n\t\t\t\tname: name$1,\n\t\t\t\tdir: dir$1,\n\t\t\t\t...params && params.length > 0 ? { params } : {}\n\t\t\t};\n\t\t}\n\t\tconst dotIdx = trimmed.indexOf(\".\");\n\t\tif (dotIdx === -1) {\n\t\t\tconst raw = trimmed.toLowerCase();\n\t\t\treturn {\n\t\t\t\tname: raw === \"linear\" ? \"none\" : raw,\n\t\t\t\tdir: \"out\"\n\t\t\t};\n\t\t}\n\t\tconst rawName = trimmed.slice(0, dotIdx).toLowerCase();\n\t\tconst name = rawName === \"linear\" ? \"none\" : rawName;\n\t\tconst rawDir = trimmed.slice(dotIdx + 1).toLowerCase();\n\t\tlet dir = \"out\";\n\t\tif (rawDir === \"in\") dir = \"in\";\n\t\telse if (rawDir === \"out\") dir = \"out\";\n\t\telse if (rawDir === \"inout\") dir = \"inOut\";\n\t\treturn {\n\t\t\tname,\n\t\t\tdir\n\t\t};\n\t}\n}\n/**\n* Fluent builder and runtime representation for layer animations.\n* Supports chainable keyframes, reactive signal binding, Perlin wiggles, and springs.\n*/\nvar LayerAnimation = class LayerAnimation {\n\ttracks = [];\n\t/** Hold each value for this many frames (see {@link LayerAnimation.stepped}). */\n\tframeStep;\n\tdefaultRepeat;\n\tdefaultYoyo;\n\tconstructor(tracks = []) {\n\t\tthis.tracks = [...tracks];\n\t}\n\tstatic create() {\n\t\treturn new LayerAnimation();\n\t}\n\tstatic stepped(frames = 2) {\n\t\treturn new LayerAnimation().stepped(frames);\n\t}\n\t/** See {@link LayerAnimation.stepped}. */\n\tstepped(frames = 2) {\n\t\tthis.frameStep = Math.max(1, Math.min(24, Math.round(frames)));\n\t\treturn this;\n\t}\n\tstatic fromTo(prop, fromValue, toValue, options = {}) {\n\t\treturn new LayerAnimation().fromTo(prop, fromValue, toValue, options);\n\t}\n\t/** A track from a list of `[frame, value, ease?]` keyframes; see {@link LayerAnimation.keys}. */\n\tstatic keys(prop, keyframes, options) {\n\t\treturn new LayerAnimation().keys(prop, keyframes, options);\n\t}\n\tstatic signal(prop, signalOrHandleId, options = {}) {\n\t\treturn new LayerAnimation().signal(prop, signalOrHandleId, options);\n\t}\n\tstatic colorSignal(prop, signalOrHandleId, options) {\n\t\treturn new LayerAnimation().colorSignal(prop, signalOrHandleId, options);\n\t}\n\tstatic kineticSweep(fromOffset = -1, toOffset = 1, startFrame = 0, endFrame = 24, ease = \"power2.out\") {\n\t\treturn new LayerAnimation().kineticSweep(fromOffset, toOffset, startFrame, endFrame, ease);\n\t}\n\tstatic typewriter(startFrame = 0, endFrame = 30, ease = \"linear\") {\n\t\treturn new LayerAnimation().typewriter(startFrame, endFrame, ease);\n\t}\n\tstatic letterSpacing(fromSpacing, toSpacing, startFrame = 0, endFrame = 24, ease = \"power2.out\") {\n\t\treturn new LayerAnimation().letterSpacing(fromSpacing, toSpacing, startFrame, endFrame, ease);\n\t}\n\tstatic wiggle(prop, options = {}) {\n\t\treturn new LayerAnimation().wiggle(prop, options);\n\t}\n\tstatic spring(prop, options = {}) {\n\t\treturn new LayerAnimation().spring(prop, options);\n\t}\n\tstatic firstMargin(fromMargin, toMargin, options = {}) {\n\t\treturn new LayerAnimation().firstMargin(fromMargin, toMargin, options);\n\t}\n\tstatic strokeWidth(fromWidth, toWidth, options = {}) {\n\t\treturn new LayerAnimation().fromTo(\"strokeWidth\", fromWidth, toWidth, options);\n\t}\n\tstatic rotateX(fromAngle, toAngle, options = {}) {\n\t\treturn new LayerAnimation().fromTo(\"rotateX\", fromAngle, toAngle, options);\n\t}\n\tstatic rotateY(fromAngle, toAngle, options = {}) {\n\t\treturn new LayerAnimation().fromTo(\"rotateY\", fromAngle, toAngle, options);\n\t}\n\tstatic rotateZ(fromAngle, toAngle, options = {}) {\n\t\treturn new LayerAnimation().fromTo(\"rotateZ\", fromAngle, toAngle, options);\n\t}\n\tstatic rotation(fromAngle, toAngle, options = {}) {\n\t\treturn new LayerAnimation().fromTo(\"rotation\", fromAngle, toAngle, options);\n\t}\n\tstatic scale(fromScale, toScale, options = {}) {\n\t\treturn new LayerAnimation().fromTo(\"scale\", fromScale, toScale, options);\n\t}\n\tstatic scaleX(fromScale, toScale, options = {}) {\n\t\treturn new LayerAnimation().fromTo(\"scaleX\", fromScale, toScale, options);\n\t}\n\tstatic scaleY(fromScale, toScale, options = {}) {\n\t\treturn new LayerAnimation().fromTo(\"scaleY\", fromScale, toScale, options);\n\t}\n\taddTrack(track) {\n\t\tthis.tracks.push(track);\n\t\treturn this;\n\t}\n\t/**\n\t* Configures repeat count on all tracks, or on a specific prop's track:\n\t* - `-1`: loops indefinitely.\n\t* - `N`: repeats N times after the initial iteration (total N + 1 iterations).\n\t*/\n\trepeat(count = -1, prop) {\n\t\tthis.defaultRepeat = count;\n\t\tfor (const track of this.tracks) if (!prop || track.prop === prop) track.repeat = count;\n\t\treturn this;\n\t}\n\t/**\n\t* Enables or disables yoyo (alternate playback direction on each repeat iteration).\n\t*/\n\tyoyo(enable = true, prop) {\n\t\tthis.defaultYoyo = enable;\n\t\tfor (const track of this.tracks) if (!prop || track.prop === prop) track.yoyo = enable;\n\t\treturn this;\n\t}\n\t/**\n\t* Shorthand to loop keyframed animation continuously (infinite repeat).\n\t* If `options.yoyo` is true, oscillates back and forth.\n\t*/\n\tloop(options = {}, prop) {\n\t\tthis.repeat(-1, prop);\n\t\tif (options.yoyo) this.yoyo(true, prop);\n\t\treturn this;\n\t}\n\t/**\n\t* Creates a keyframed track animating from fromValue to toValue.\n\t*/\n\tfromTo(prop, fromValue, toValue, options = {}) {\n\t\tconst start = options.from ?? options.start ?? options.fromFrame ?? 0;\n\t\tconst end = options.to ?? options.end ?? options.toFrame ?? (options.durationFrames !== void 0 ? start + options.durationFrames : start + 24);\n\t\tconst ease = parseEase(options.ease);\n\t\tlet track = this.tracks.find((t) => t.prop === prop && (!t.source || t.source.type === \"keyframe\"));\n\t\tif (!track) {\n\t\t\tconst newTrack = {\n\t\t\t\tid: `${prop}_fromTo_${this.tracks.length}`,\n\t\t\t\tprop,\n\t\t\t\tkeyframes: [],\n\t\t\t\t...this.defaultRepeat !== void 0 && { repeat: this.defaultRepeat },\n\t\t\t\t...this.defaultYoyo !== void 0 && { yoyo: this.defaultYoyo }\n\t\t\t};\n\t\t\tthis.tracks.push(newTrack);\n\t\t\ttrack = newTrack;\n\t\t}\n\t\tif (options.repeat !== void 0) track.repeat = options.repeat;\n\t\tif (options.yoyo !== void 0) track.yoyo = options.yoyo;\n\t\tif (options.durationFrames !== void 0) track.durationFrames = options.durationFrames;\n\t\tconst id = track.id;\n\t\tif (track.keyframes.length === 0 && start > 0) track.keyframes.push({\n\t\t\tid: `${id}_k0`,\n\t\t\tframe: 0,\n\t\t\tvalue: fromValue\n\t\t});\n\t\tif (track.keyframes.length === 0 || track.keyframes[track.keyframes.length - 1].frame < start) track.keyframes.push({\n\t\t\tid: `${id}_k_${start}`,\n\t\t\tframe: start,\n\t\t\tvalue: fromValue\n\t\t});\n\t\ttrack.keyframes.push({\n\t\t\tid: `${id}_k_${end}`,\n\t\t\tframe: end,\n\t\t\tvalue: toValue,\n\t\t\t...ease && { ease }\n\t\t});\n\t\ttrack.keyframes.sort((a, b) => a.frame - b.frame);\n\t\treturn this;\n\t}\n\t/**\n\t* Appends a keyframe to an existing track for prop, or creates a new track.\n\t*/\n\tkeyframe(prop, frame, value, ease) {\n\t\tlet track = this.tracks.find((t) => t.prop === prop && (!t.source || t.source.type === \"keyframe\"));\n\t\tif (!track) {\n\t\t\tconst newTrack = {\n\t\t\t\tid: `${prop}_track_${this.tracks.length}`,\n\t\t\t\tprop,\n\t\t\t\tkeyframes: [],\n\t\t\t\t...this.defaultRepeat !== void 0 && { repeat: this.defaultRepeat },\n\t\t\t\t...this.defaultYoyo !== void 0 && { yoyo: this.defaultYoyo }\n\t\t\t};\n\t\t\tthis.tracks.push(newTrack);\n\t\t\ttrack = newTrack;\n\t\t}\n\t\tconst parsedEase = parseEase(ease);\n\t\tconst kf = {\n\t\t\tid: `k_${track.keyframes.length}_f${frame}`,\n\t\t\tframe,\n\t\t\tvalue,\n\t\t\t...parsedEase && { ease: parsedEase }\n\t\t};\n\t\tconst at = track.keyframes.findIndex((k) => k.frame === frame);\n\t\tif (at >= 0) track.keyframes[at] = kf;\n\t\telse track.keyframes.push(kf);\n\t\ttrack.keyframes.sort((a, b) => a.frame - b.frame);\n\t\treturn this;\n\t}\n\t/**\n\t* Adds several keyframes to prop's track at once:\n\t* `.keys(\"scale\", [[0, 0], [12, 1.1, \"back.out\"], [20, 1]])`.\n\t* Frames are rounded to whole frames, so beat math can be passed straight in.\n\t*/\n\tkeys(prop, keyframes, options) {\n\t\tfor (const [frame, value, ease] of keyframes) this.keyframe(prop, Math.round(frame), value, ease);\n\t\tif (options) {\n\t\t\tconst track = this.tracks.find((t) => t.prop === prop && (!t.source || t.source.type === \"keyframe\"));\n\t\t\tif (track) {\n\t\t\t\tif (options.repeat !== void 0) track.repeat = options.repeat;\n\t\t\t\tif (options.yoyo !== void 0) track.yoyo = options.yoyo;\n\t\t\t\tif (options.durationFrames !== void 0) track.durationFrames = options.durationFrames;\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\t/**\n\t* Animates opacity from 0 to 1 between startFrame and endFrame.\n\t*/\n\tfadeIn(startFrame = 0, endFrame = 20, ease = \"power2.out\") {\n\t\treturn this.fromTo(\"opacity\", 0, 1, {\n\t\t\tfrom: startFrame,\n\t\t\tto: endFrame,\n\t\t\tease\n\t\t});\n\t}\n\t/**\n\t* Animates opacity from 1 to 0 between startFrame and endFrame.\n\t*/\n\tfadeOut(startFrame, endFrame, ease = \"power2.in\") {\n\t\treturn this.fromTo(\"opacity\", 1, 0, {\n\t\t\tfrom: startFrame,\n\t\t\tto: endFrame,\n\t\t\tease\n\t\t});\n\t}\n\t/**\n\t* Slides in Y coordinate from fromY to toY.\n\t*/\n\tslideInY(fromY, toY, startFrame = 0, endFrame = 24, ease = \"power2.out\") {\n\t\treturn this.fromTo(\"y\", fromY, toY, {\n\t\t\tfrom: startFrame,\n\t\t\tto: endFrame,\n\t\t\tease\n\t\t});\n\t}\n\t/**\n\t* Slides in X coordinate from fromX to toX.\n\t*/\n\tslideInX(fromX, toX, startFrame = 0, endFrame = 24, ease = \"power2.out\") {\n\t\treturn this.fromTo(\"x\", fromX, toX, {\n\t\t\tfrom: startFrame,\n\t\t\tto: endFrame,\n\t\t\tease\n\t\t});\n\t}\n\t/**\n\t* Sweeps kinetic typography animator offset from fromOffset to toOffset.\n\t* Cascades per-glyph or per-word transforms across the text.\n\t*/\n\tkineticSweep(fromOffset = -1, toOffset = 1, startFrame = 0, endFrame = 24, ease = \"power2.out\") {\n\t\treturn this.fromTo(\"offset\", fromOffset, toOffset, {\n\t\t\tfrom: startFrame,\n\t\t\tto: endFrame,\n\t\t\tease\n\t\t});\n\t}\n\t/**\n\t* Progressive character write-on / typewriter text reveal.\n\t*/\n\ttypewriter(startFrame = 0, endFrame = 30, ease = \"linear\") {\n\t\treturn this.fromTo(\"text\", 0, 1, {\n\t\t\tfrom: startFrame,\n\t\t\tto: endFrame,\n\t\t\tease\n\t\t});\n\t}\n\t/**\n\t* Animates letter-spacing (tracking expansion or compression).\n\t*/\n\tletterSpacing(fromSpacing, toSpacing, startFrame = 0, endFrame = 24, ease = \"power2.out\") {\n\t\treturn this.fromTo(\"letterSpacing\", fromSpacing, toSpacing, {\n\t\t\tfrom: startFrame,\n\t\t\tto: endFrame,\n\t\t\tease\n\t\t});\n\t}\n\t/**\n\t* Animates text position along a path via First Margin.\n\t*/\n\tfirstMargin(fromMargin, toMargin, options = {}) {\n\t\treturn this.fromTo(\"firstMargin\", fromMargin, toMargin, options);\n\t}\n\t/**\n\t* Animates Last Margin spatial limit along a path.\n\t*/\n\tlastMargin(fromMargin, toMargin, options = {}) {\n\t\treturn this.fromTo(\"lastMargin\", fromMargin, toMargin, options);\n\t}\n\t/**\n\t* Animates baseline shift perpendicular to curve tangent.\n\t*/\n\tbaselineShift(fromShift, toShift, options = {}) {\n\t\treturn this.fromTo(\"baselineShift\", fromShift, toShift, options);\n\t}\n\t/**\n\t* Animate rotateX from fromAngle to toAngle.\n\t*/\n\trotateX(fromAngle, toAngle, options = {}) {\n\t\treturn this.fromTo(\"rotateX\", fromAngle, toAngle, options);\n\t}\n\t/**\n\t* Animate rotateY from fromAngle to toAngle.\n\t*/\n\trotateY(fromAngle, toAngle, options = {}) {\n\t\treturn this.fromTo(\"rotateY\", fromAngle, toAngle, options);\n\t}\n\t/**\n\t* Animate rotateZ from fromAngle to toAngle.\n\t*/\n\trotateZ(fromAngle, toAngle, options = {}) {\n\t\treturn this.fromTo(\"rotateZ\", fromAngle, toAngle, options);\n\t}\n\t/**\n\t* Animate scale along the X axis.\n\t*/\n\tscaleX(fromScale, toScale, options = {}) {\n\t\treturn this.fromTo(\"scaleX\", fromScale, toScale, options);\n\t}\n\t/**\n\t* Animate scale along the Y axis.\n\t*/\n\tscaleY(fromScale, toScale, options = {}) {\n\t\treturn this.fromTo(\"scaleY\", fromScale, toScale, options);\n\t}\n\t/**\n\t* Animate uniform scale.\n\t*/\n\tscale(fromScale, toScale, options = {}) {\n\t\treturn this.fromTo(\"scale\", fromScale, toScale, options);\n\t}\n\t/**\n\t* Animate perspective camera distance in pixels.\n\t*/\n\tperspective(fromDist, toDist, options = {}) {\n\t\treturn this.fromTo(\"perspective\", fromDist, toDist, options);\n\t}\n\t/**\n\t* Animate depth translation (translateZ) in pixels.\n\t*/\n\ttranslateZ(fromZ, toZ, options = {}) {\n\t\treturn this.fromTo(\"translateZ\", fromZ, toZ, options);\n\t}\n\t/**\n\t* Composite helper to tilt a container across multiple 3D axes simultaneously.\n\t*/\n\ttilt3D(options) {\n\t\tconst start = options.start ?? options.fromFrame;\n\t\tconst end = options.end ?? options.toFrame;\n\t\tconst ease = options.ease;\n\t\tconst from = options.from ?? {};\n\t\tconst to = options.to;\n\t\tfor (const prop of [\n\t\t\t\"rotateX\",\n\t\t\t\"rotateY\",\n\t\t\t\"rotateZ\",\n\t\t\t\"translateZ\",\n\t\t\t\"perspective\"\n\t\t]) {\n\t\t\tconst toVal = to[prop];\n\t\t\tif (toVal !== void 0) {\n\t\t\t\tconst fromVal = from[prop] ?? 0;\n\t\t\t\tthis.fromTo(prop, fromVal, toVal, {\n\t\t\t\t\tfrom: start,\n\t\t\t\t\tto: end,\n\t\t\t\t\tfromFrame: start,\n\t\t\t\t\ttoFrame: end,\n\t\t\t\t\tease\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\t/**\n\t* Binds an animatable property to a reactive continuous Signal (e.g. LFO, speech energy, audio pitch).\n\t*\n\t* `signalOrHandleId` is either a signal object (`Signal.fromArray`,\n\t* `Signal.builder`, an audio channel …) — carried on the track and\n\t* registered with the program automatically — or the name of a signal\n\t* registered with `comp.addSignal(name, signal)`.\n\t*/\n\tsignal(prop, signalOrHandleId, options = {}) {\n\t\tconst { handleId, inline } = resolveSignalArg(signalOrHandleId);\n\t\tconst id = `${prop}_sig_${handleId}_${this.tracks.length}`;\n\t\tconst source = {\n\t\t\ttype: \"signal\",\n\t\t\tinputHandleId: handleId,\n\t\t\tmultiplier: options.multiplier ?? 1,\n\t\t\toffset: options.offset ?? 0,\n\t\t\tsmoothingWindowFrames: options.smoothing ?? 0,\n\t\t\tsignalMode: options.mode ?? \"continuous\",\n\t\t\tthreshold: options.threshold ?? .15,\n\t\t\taccumulateThreshold: options.threshold ?? .15,\n\t\t\tdebounceFrames: options.debounceFrames ?? 2,\n\t\t\tchannel: options.channel ?? \"primary\"\n\t\t};\n\t\tif (inline) attachInlineSignal(source, inline);\n\t\tthis.tracks.push({\n\t\t\tid,\n\t\t\tprop,\n\t\t\tsource,\n\t\t\tkeyframes: []\n\t\t});\n\t\treturn this;\n\t}\n\t/**\n\t* Modulates color interpolation based on an active signal (object or\n\t* registered name, as in {@link LayerAnimation.signal}).\n\t*/\n\tcolorSignal(prop, signalOrHandleId, options) {\n\t\tconst { handleId, inline } = resolveSignalArg(signalOrHandleId);\n\t\tconst id = `${prop}_colorSig_${handleId}_${this.tracks.length}`;\n\t\tconst source = {\n\t\t\ttype: \"signal\",\n\t\t\tinputHandleId: handleId,\n\t\t\tmultiplier: options.multiplier ?? 1,\n\t\t\toffset: options.offset ?? 0,\n\t\t\tsmoothingWindowFrames: options.smoothing ?? 0,\n\t\t\tcolorMode: options.colorMode ?? \"interpolate\",\n\t\t\tcolorA: options.colorA,\n\t\t\tcolorB: options.colorB,\n\t\t\tcolorThreshold: options.threshold,\n\t\t\tchannel: \"primary\"\n\t\t};\n\t\tif (inline) attachInlineSignal(source, inline);\n\t\tthis.tracks.push({\n\t\t\tid,\n\t\t\tprop,\n\t\t\tsource,\n\t\t\tkeyframes: []\n\t\t});\n\t\treturn this;\n\t}\n\t/**\n\t* Adds organic Perlin noise wiggling to a property.\n\t*/\n\twiggle(prop, options = {}) {\n\t\tconst id = `${prop}_wiggle_${this.tracks.length}`;\n\t\tconst source = {\n\t\t\ttype: \"wiggle\",\n\t\t\tfrequency: options.frequency ?? 2,\n\t\t\tamplitude: options.amplitude ?? 20,\n\t\t\toctaves: options.octaves ?? 1,\n\t\t\tseed: options.seed ?? 1234\n\t\t};\n\t\tthis.tracks.push({\n\t\t\tid,\n\t\t\tprop,\n\t\t\tsource,\n\t\t\tkeyframes: []\n\t\t});\n\t\treturn this;\n\t}\n\t/**\n\t* Adds physical harmonic spring overshoot behavior to a property transition.\n\t*/\n\tspring(prop, options = {}) {\n\t\tconst id = `${prop}_spring_${this.tracks.length}`;\n\t\tconst source = {\n\t\t\ttype: \"springOvershoot\",\n\t\t\tdamping: options.damping ?? 12,\n\t\t\tstiffness: options.stiffness ?? 180,\n\t\t\tmass: options.mass ?? 1\n\t\t};\n\t\tthis.tracks.push({\n\t\t\tid,\n\t\t\tprop,\n\t\t\tsource,\n\t\t\tkeyframes: []\n\t\t});\n\t\treturn this;\n\t}\n\t/**\n\t* Follows a 2D or 3D path with constant arc-length velocity, automatic orientation,\n\t* banking into turns, and optional easing.\n\t*/\n\tfollowPath(path, options = {}) {\n\t\tconst startFrame = options.start ?? options.fromFrame ?? 0;\n\t\tconst endFrame = options.end ?? options.toFrame ?? 60;\n\t\tconst duration = Math.max(1, endFrame - startFrame);\n\t\tconst sampleCount = options.samples ?? Math.max(8, Math.min(60, Math.round(duration / 2)));\n\t\tconst totalLen = path.totalLength ?? 1;\n\t\tlet fromProg = options.fromProgress ?? 0;\n\t\tlet toProg = options.toProgress ?? 1;\n\t\tif (options.fromDistance !== void 0 && totalLen > 0) fromProg = options.fromDistance / totalLen;\n\t\tif (options.toDistance !== void 0 && totalLen > 0) toProg = options.toDistance / totalLen;\n\t\tconst autoOrient = options.autoOrient ?? true;\n\t\tconst banking = options.banking ?? 0;\n\t\tconst pitchOffset = options.pitchOffset ?? 0;\n\t\tconst yawOffset = options.yawOffset ?? 0;\n\t\tconst rollOffset = options.rollOffset ?? 0;\n\t\tlet hasZ = false;\n\t\tlet hasRx = false;\n\t\tlet hasRy = false;\n\t\tconst samples = [];\n\t\tfor (let i = 0; i <= sampleCount; i++) {\n\t\t\tconst t = i / sampleCount;\n\t\t\tconst easedT = evaluateEasingProgress(options.ease, t);\n\t\t\tconst u = fromProg + easedT * (toProg - fromProg);\n\t\t\tconst f = Math.round(startFrame + t * duration);\n\t\t\tlet pos = [\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\t0\n\t\t\t];\n\t\t\tlet tan = [\n\t\t\t\t1,\n\t\t\t\t0,\n\t\t\t\t0\n\t\t\t];\n\t\t\tlet rot = [\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\t0\n\t\t\t];\n\t\t\tif (typeof path.getFrameAt === \"function\") {\n\t\t\t\tconst frameData = path.getFrameAt(u);\n\t\t\t\tpos = frameData.position;\n\t\t\t\ttan = frameData.tangent;\n\t\t\t\trot = frameData.rotation ?? [\n\t\t\t\t\t0,\n\t\t\t\t\t0,\n\t\t\t\t\t0\n\t\t\t\t];\n\t\t\t} else {\n\t\t\t\tconst pt = path.getPointAt(u);\n\t\t\t\tpos = pt.position;\n\t\t\t\tif (pt.tangent) tan = pt.tangent;\n\t\t\t\trot = [\n\t\t\t\t\tMath.asin(Math.max(-1, Math.min(1, -tan[1]))) * (180 / Math.PI),\n\t\t\t\t\tMath.atan2(tan[0], tan[2]) * (180 / Math.PI),\n\t\t\t\t\tMath.atan2(tan[1], tan[0]) * (180 / Math.PI)\n\t\t\t\t];\n\t\t\t}\n\t\t\tconst rx = rot[0] + pitchOffset;\n\t\t\tconst ry = rot[1] + yawOffset;\n\t\t\tlet rz = (Math.abs(tan[2]) < 1e-4 ? Math.atan2(tan[1], tan[0]) * (180 / Math.PI) : rot[2]) + rollOffset;\n\t\t\tif (banking !== 0) {\n\t\t\t\tconst uAhead = Math.min(1, u + .02);\n\t\t\t\tconst uBehind = Math.max(0, u - .02);\n\t\t\t\tconst ptAhead = path.getPointAt(uAhead);\n\t\t\t\tconst ptBehind = path.getPointAt(uBehind);\n\t\t\t\tconst tAhead = ptAhead.tangent ?? [\n\t\t\t\t\t1,\n\t\t\t\t\t0,\n\t\t\t\t\t0\n\t\t\t\t];\n\t\t\t\tconst tBehind = ptBehind.tangent ?? [\n\t\t\t\t\t1,\n\t\t\t\t\t0,\n\t\t\t\t\t0\n\t\t\t\t];\n\t\t\t\tconst dYaw = Math.atan2(tAhead[0], tAhead[2]) - Math.atan2(tBehind[0], tBehind[2]);\n\t\t\t\trz -= dYaw * banking * 57.2958;\n\t\t\t}\n\t\t\tif (Math.abs(pos[2]) > 1e-4) hasZ = true;\n\t\t\tif (Math.abs(rx) > 1e-4) hasRx = true;\n\t\t\tif (Math.abs(ry) > 1e-4) hasRy = true;\n\t\t\tsamples.push({\n\t\t\t\tf,\n\t\t\t\tx: pos[0],\n\t\t\t\ty: pos[1],\n\t\t\t\tz: pos[2],\n\t\t\t\trx,\n\t\t\t\try,\n\t\t\t\trz\n\t\t\t});\n\t\t}\n\t\tfor (const s of samples) {\n\t\t\tthis.keyframe(\"x\", s.f, s.x);\n\t\t\tthis.keyframe(\"y\", s.f, s.y);\n\t\t\tif (hasZ) this.keyframe(\"z\", s.f, s.z);\n\t\t\tif (autoOrient) {\n\t\t\t\tthis.keyframe(\"rotateZ\", s.f, s.rz);\n\t\t\t\tif (hasRx) this.keyframe(\"rotateX\", s.f, s.rx);\n\t\t\t\tif (hasRy) this.keyframe(\"rotateY\", s.f, s.ry);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\t/**\n\t* Attaches this animation to a target LayoutNode and returns the node.\n\t*/\n\tapplyTo(node) {\n\t\tnode.animation = this.toSpec();\n\t\treturn node;\n\t}\n\t/**\n\t* Folds other animations into this one. Keyframe tracks on the same prop\n\t* merge into one track (a later key wins on a shared frame), so separate\n\t* behaviours — an entrance, presses, a wave — can be authored apart:\n\t* `LayerAnimation.merge(rainIn, presses, wave)`.\n\t*/\n\tmerge(...others) {\n\t\tthis.tracks = mergeAnimationTracks([...this.tracks, ...others.flatMap((o) => o.tracks)]);\n\t\treturn this;\n\t}\n\tstatic merge(...anims) {\n\t\tconst result = new LayerAnimation();\n\t\tresult.tracks = mergeAnimationTracks(anims.flatMap((o) => o.tracks));\n\t\treturn result;\n\t}\n\t/**\n\t* Returns the validated LayerAnimation specification object.\n\t*/\n\ttoSpec() {\n\t\treturn {\n\t\t\ttracks: this.tracks,\n\t\t\t...this.frameStep !== void 0 && { frameStep: this.frameStep }\n\t\t};\n\t}\n\ttoJSON() {\n\t\treturn this.toSpec();\n\t}\n};\nvar CameraAnimation = class CameraAnimation extends LayerAnimation {\n\tstatic camera() {\n\t\treturn new CameraAnimation();\n\t}\n\tdolly(fromDistanceOrOptions, toDistance, options = {}) {\n\t\tif (typeof fromDistanceOrOptions === \"object\") {\n\t\t\tconst opts = fromDistanceOrOptions;\n\t\t\tconst start = opts.start ?? opts.fromFrame ?? 0;\n\t\t\tconst end = opts.end ?? opts.toFrame ?? 0;\n\t\t\treturn this.fromTo(\"cameraZ\", opts.fromDistance, opts.toDistance, {\n\t\t\t\tfrom: start,\n\t\t\t\tto: end,\n\t\t\t\tease: opts.ease\n\t\t\t});\n\t\t}\n\t\treturn this.fromTo(\"cameraZ\", fromDistanceOrOptions, toDistance ?? fromDistanceOrOptions, options);\n\t}\n\torbit(options) {\n\t\tconst start = options.start ?? options.fromFrame ?? 0;\n\t\tconst end = options.end ?? options.toFrame ?? 0;\n\t\tif (options.azimuth) this.fromTo(\"orbitAzimuth\", options.azimuth.from ?? 0, options.azimuth.to, {\n\t\t\tfrom: start,\n\t\t\tto: end,\n\t\t\tease: options.ease\n\t\t});\n\t\tif (options.elevation) this.fromTo(\"orbitElevation\", options.elevation.from ?? 0, options.elevation.to, {\n\t\t\tfrom: start,\n\t\t\tto: end,\n\t\t\tease: options.ease\n\t\t});\n\t\tif (options.radius) this.fromTo(\"orbitRadius\", options.radius.from ?? 1500, options.radius.to, {\n\t\t\tfrom: start,\n\t\t\tto: end,\n\t\t\tease: options.ease\n\t\t});\n\t\treturn this;\n\t}\n\ttruck(fromX, toX, options = {}) {\n\t\treturn this.fromTo(\"cameraX\", fromX, toX, options);\n\t}\n\tpedestal(fromY, toY, options = {}) {\n\t\treturn this.fromTo(\"cameraY\", fromY, toY, options);\n\t}\n\tpan(fromAngleDeg, toAngleDeg, options = {}) {\n\t\treturn this.fromTo(\"cameraYaw\", fromAngleDeg, toAngleDeg, options);\n\t}\n\ttilt(fromAngleDeg, toAngleDeg, options = {}) {\n\t\treturn this.fromTo(\"cameraPitch\", fromAngleDeg, toAngleDeg, options);\n\t}\n\troll(fromAngleDeg, toAngleDeg, options = {}) {\n\t\treturn this.fromTo(\"cameraRoll\", fromAngleDeg, toAngleDeg, options);\n\t}\n\trackFocus(options) {\n\t\tconst start = options.start ?? options.fromFrame ?? 0;\n\t\tconst end = options.end ?? options.toFrame ?? 0;\n\t\tthis.fromTo(\"focusDistance\", options.fromDistance, options.toDistance, {\n\t\t\tfrom: start,\n\t\t\tto: end,\n\t\t\tease: options.ease ?? \"power2.inOut\"\n\t\t});\n\t\tif (options.toFStop !== void 0) this.fromTo(\"fStop\", options.fromFStop ?? 2.8, options.toFStop, {\n\t\t\tfrom: start,\n\t\t\tto: end,\n\t\t\tease: options.ease ?? \"power2.inOut\"\n\t\t});\n\t\treturn this;\n\t}\n\thandheld(options) {\n\t\tconst start = options.start ?? options.fromFrame ?? 0;\n\t\tconst end = options.end ?? options.toFrame ?? 0;\n\t\tthis.fromTo(\"shakeTranslation\", 0, options.translationAmplitude, {\n\t\t\tfrom: start,\n\t\t\tto: end\n\t\t});\n\t\tthis.fromTo(\"shakeRotation\", 0, options.rotationAmplitude, {\n\t\t\tfrom: start,\n\t\t\tto: end\n\t\t});\n\t\treturn this;\n\t}\n\t/**\n\t* Animates camera eye and lookAt target along a 3D path with constant velocity,\n\t* leading target look-ahead, or path tangent orientation.\n\t*/\n\tfollowPath3D(path, options = {}) {\n\t\tconst startFrame = options.start ?? options.fromFrame ?? 0;\n\t\tconst endFrame = options.end ?? options.toFrame ?? 60;\n\t\tconst duration = Math.max(1, endFrame - startFrame);\n\t\tconst sampleCount = options.samples ?? Math.max(8, Math.min(60, Math.round(duration / 2)));\n\t\tconst mode = options.mode ?? (options.target ? \"lookAtTarget\" : \"leadTarget\");\n\t\tconst fromProg = options.fromProgress ?? 0;\n\t\tconst toProg = options.toProgress ?? 1;\n\t\tconst lookAhead = options.lookAhead ?? .05;\n\t\tfor (let i = 0; i <= sampleCount; i++) {\n\t\t\tconst t = i / sampleCount;\n\t\t\tconst u = fromProg + evaluateEasingProgress(options.ease, t) * (toProg - fromProg);\n\t\t\tconst f = Math.round(startFrame + t * duration);\n\t\t\tlet pos = [\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\t0\n\t\t\t];\n\t\t\tlet rot = [\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\t0\n\t\t\t];\n\t\t\tif (typeof path.getFrameAt === \"function\") {\n\t\t\t\tconst frameData = path.getFrameAt(u);\n\t\t\t\tpos = frameData.position;\n\t\t\t\trot = frameData.rotation ?? [\n\t\t\t\t\t0,\n\t\t\t\t\t0,\n\t\t\t\t\t0\n\t\t\t\t];\n\t\t\t} else pos = path.getPointAt(u).position;\n\t\t\tthis.keyframe(\"cameraX\", f, pos[0]);\n\t\t\tthis.keyframe(\"cameraY\", f, pos[1]);\n\t\t\tthis.keyframe(\"cameraZ\", f, pos[2]);\n\t\t\tif (mode === \"lookAtTarget\") {\n\t\t\t\tconst tgt = options.target ?? [\n\t\t\t\t\tpos[0],\n\t\t\t\t\tpos[1],\n\t\t\t\t\t0\n\t\t\t\t];\n\t\t\t\tthis.keyframe(\"targetX\", f, tgt[0]);\n\t\t\t\tthis.keyframe(\"targetY\", f, tgt[1]);\n\t\t\t\tthis.keyframe(\"targetZ\", f, tgt[2]);\n\t\t\t} else if (mode === \"leadTarget\") {\n\t\t\t\tconst leadU = Math.min(1, u + lookAhead);\n\t\t\t\tconst leadPt = path.getPointAt(leadU);\n\t\t\t\tthis.keyframe(\"targetX\", f, leadPt.position[0]);\n\t\t\t\tthis.keyframe(\"targetY\", f, leadPt.position[1]);\n\t\t\t\tthis.keyframe(\"targetZ\", f, leadPt.position[2]);\n\t\t\t} else if (mode === \"orientAlongPath\") {\n\t\t\t\tthis.keyframe(\"cameraPitch\", f, rot[0]);\n\t\t\t\tthis.keyframe(\"cameraYaw\", f, rot[1]);\n\t\t\t\tthis.keyframe(\"cameraRoll\", f, rot[2]);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n};\n\n//#endregion\n//#region src/program/path-morph.ts\nconst SAMPLES = 128;\nconst CURVE_STEPS = 16;\nconst NUM_RE = /-?(?:\\d+\\.?\\d*|\\.\\d+)(?:e[-+]?\\d+)?/gi;\nconst CMD_RE = /([MmLlHhVvCcSsQqTtAaZz])([^MmLlHhVvCcSsQqTtAaZz]*)/g;\n/** Flattens an SVG path into polylines, one per subpath. */\nfunction flattenPath(d) {\n\tconst subs = [];\n\tlet cur = [];\n\tlet x = 0;\n\tlet y = 0;\n\tlet sx = 0;\n\tlet sy = 0;\n\tlet cx = 0;\n\tlet cy = 0;\n\tlet prev = \"\";\n\tconst end = (closed) => {\n\t\tif (cur.length > 1) subs.push({\n\t\t\tpts: cur,\n\t\t\tclosed\n\t\t});\n\t\tcur = [];\n\t};\n\tfor (const m of d.matchAll(CMD_RE)) {\n\t\tconst cmd = m[1];\n\t\tconst nums = (m[2].match(NUM_RE) ?? []).map(Number);\n\t\tconst rel = cmd === cmd.toLowerCase();\n\t\tconst C = cmd.toUpperCase();\n\t\tlet i = 0;\n\t\tconst take = (n) => {\n\t\t\tconst v = nums.slice(i, i + n);\n\t\t\ti += n;\n\t\t\treturn v;\n\t\t};\n\t\tconst has = (n) => i + n <= nums.length;\n\t\tif (C === \"Z\") {\n\t\t\tx = sx;\n\t\t\ty = sy;\n\t\t\tend(true);\n\t\t\tcur = [[x, y]];\n\t\t\tprev = C;\n\t\t\tcontinue;\n\t\t}\n\t\tlet first = true;\n\t\twhile (has(C === \"H\" || C === \"V\" ? 1 : C === \"A\" ? 7 : C === \"C\" ? 6 : C === \"S\" || C === \"Q\" ? 4 : 2)) {\n\t\t\tif (C === \"M\") {\n\t\t\t\tconst [a, b] = take(2);\n\t\t\t\tx = rel ? x + a : a;\n\t\t\t\ty = rel ? y + b : b;\n\t\t\t\tif (first) {\n\t\t\t\t\tend(false);\n\t\t\t\t\tsx = x;\n\t\t\t\t\tsy = y;\n\t\t\t\t\tcur = [[x, y]];\n\t\t\t\t} else cur.push([x, y]);\n\t\t\t} else if (C === \"L\" || C === \"T\") {\n\t\t\t\tconst [a, b] = take(2);\n\t\t\t\tconst nx = rel ? x + a : a;\n\t\t\t\tconst ny = rel ? y + b : b;\n\t\t\t\tif (C === \"T\") {\n\t\t\t\t\tconst qx = prev === \"Q\" || prev === \"T\" ? 2 * x - cx : x;\n\t\t\t\t\tconst qy = prev === \"Q\" || prev === \"T\" ? 2 * y - cy : y;\n\t\t\t\t\tquad(cur, x, y, qx, qy, nx, ny);\n\t\t\t\t\tcx = qx;\n\t\t\t\t\tcy = qy;\n\t\t\t\t} else cur.push([nx, ny]);\n\t\t\t\tx = nx;\n\t\t\t\ty = ny;\n\t\t\t} else if (C === \"H\") {\n\t\t\t\tconst [a] = take(1);\n\t\t\t\tx = rel ? x + a : a;\n\t\t\t\tcur.push([x, y]);\n\t\t\t} else if (C === \"V\") {\n\t\t\t\tconst [a] = take(1);\n\t\t\t\ty = rel ? y + a : a;\n\t\t\t\tcur.push([x, y]);\n\t\t\t} else if (C === \"C\" || C === \"S\") {\n\t\t\t\tlet x1;\n\t\t\t\tlet y1;\n\t\t\t\tif (C === \"C\") {\n\t\t\t\t\tconst [a, b] = take(2);\n\t\t\t\t\tx1 = rel ? x + a : a;\n\t\t\t\t\ty1 = rel ? y + b : b;\n\t\t\t\t} else {\n\t\t\t\t\tx1 = prev === \"C\" || prev === \"S\" ? 2 * x - cx : x;\n\t\t\t\t\ty1 = prev === \"C\" || prev === \"S\" ? 2 * y - cy : y;\n\t\t\t\t}\n\t\t\t\tconst [c, e, f, g] = take(4);\n\t\t\t\tconst x2 = rel ? x + c : c;\n\t\t\t\tconst y2 = rel ? y + e : e;\n\t\t\t\tconst nx = rel ? x + f : f;\n\t\t\t\tconst ny = rel ? y + g : g;\n\t\t\t\tfor (let k = 1; k <= CURVE_STEPS; k++) {\n\t\t\t\t\tconst t = k / CURVE_STEPS;\n\t\t\t\t\tconst u = 1 - t;\n\t\t\t\t\tcur.push([u * u * u * x + 3 * u * u * t * x1 + 3 * u * t * t * x2 + t * t * t * nx, u * u * u * y + 3 * u * u * t * y1 + 3 * u * t * t * y2 + t * t * t * ny]);\n\t\t\t\t}\n\t\t\t\tcx = x2;\n\t\t\t\tcy = y2;\n\t\t\t\tx = nx;\n\t\t\t\ty = ny;\n\t\t\t} else if (C === \"Q\") {\n\t\t\t\tconst [a, b, c, e] = take(4);\n\t\t\t\tconst qx = rel ? x + a : a;\n\t\t\t\tconst qy = rel ? y + b : b;\n\t\t\t\tconst nx = rel ? x + c : c;\n\t\t\t\tconst ny = rel ? y + e : e;\n\t\t\t\tquad(cur, x, y, qx, qy, nx, ny);\n\t\t\t\tcx = qx;\n\t\t\t\tcy = qy;\n\t\t\t\tx = nx;\n\t\t\t\ty = ny;\n\t\t\t} else if (C === \"A\") {\n\t\t\t\tconst [rx, ry, rot, large, sweep, a, b] = take(7);\n\t\t\t\tconst nx = rel ? x + a : a;\n\t\t\t\tconst ny = rel ? y + b : b;\n\t\t\t\tarc(cur, x, y, rx, ry, rot, large !== 0, sweep !== 0, nx, ny);\n\t\t\t\tx = nx;\n\t\t\t\ty = ny;\n\t\t\t}\n\t\t\tfirst = false;\n\t\t\tprev = C;\n\t\t\tif (C === \"M\") prev = \"L\";\n\t\t}\n\t\tprev = C;\n\t}\n\tend(false);\n\treturn subs;\n}\nfunction quad(out, x0, y0, qx, qy, x1, y1) {\n\tfor (let k = 1; k <= CURVE_STEPS; k++) {\n\t\tconst t = k / CURVE_STEPS;\n\t\tconst u = 1 - t;\n\t\tout.push([u * u * x0 + 2 * u * t * qx + t * t * x1, u * u * y0 + 2 * u * t * qy + t * t * y1]);\n\t}\n}\n/** SVG endpoint arc → points (spec F.6.5). */\nfunction arc(out, x1, y1, rxIn, ryIn, rotDeg, large, sweep, x2, y2) {\n\tlet rx = Math.abs(rxIn);\n\tlet ry = Math.abs(ryIn);\n\tif (rx === 0 || ry === 0) {\n\t\tout.push([x2, y2]);\n\t\treturn;\n\t}\n\tconst phi = rotDeg * Math.PI / 180;\n\tconst cos = Math.cos(phi);\n\tconst sin = Math.sin(phi);\n\tconst dx = (x1 - x2) / 2;\n\tconst dy = (y1 - y2) / 2;\n\tconst xp = cos * dx + sin * dy;\n\tconst yp = -sin * dx + cos * dy;\n\tconst lam = xp * xp / (rx * rx) + yp * yp / (ry * ry);\n\tif (lam > 1) {\n\t\trx *= Math.sqrt(lam);\n\t\try *= Math.sqrt(lam);\n\t}\n\tconst num = rx * rx * ry * ry - rx * rx * yp * yp - ry * ry * xp * xp;\n\tconst den = rx * rx * yp * yp + ry * ry * xp * xp;\n\tlet co = Math.sqrt(Math.max(0, num / den));\n\tif (large === sweep) co = -co;\n\tconst cxp = co * rx * yp / ry;\n\tconst cyp = -co * ry * xp / rx;\n\tconst ccx = cos * cxp - sin * cyp + (x1 + x2) / 2;\n\tconst ccy = sin * cxp + cos * cyp + (y1 + y2) / 2;\n\tconst ang = (ux, uy, vx, vy) => Math.atan2(ux * vy - uy * vx, ux * vx + uy * vy);\n\tconst t1 = ang(1, 0, (xp - cxp) / rx, (yp - cyp) / ry);\n\tlet dt = ang((xp - cxp) / rx, (yp - cyp) / ry, (-xp - cxp) / rx, (-yp - cyp) / ry);\n\tif (!sweep && dt > 0) dt -= 2 * Math.PI;\n\tif (sweep && dt < 0) dt += 2 * Math.PI;\n\tconst steps = Math.max(4, Math.ceil(Math.abs(dt) / (Math.PI / 2) * CURVE_STEPS));\n\tfor (let k = 1; k <= steps; k++) {\n\t\tconst t = t1 + dt * k / steps;\n\t\tconst ex = rx * Math.cos(t);\n\t\tconst ey = ry * Math.sin(t);\n\t\tout.push([cos * ex - sin * ey + ccx, sin * ex + cos * ey + ccy]);\n\t}\n}\n/** `n` points evenly spaced along a polyline (closed: around the loop). */\nfunction resample(sub, n) {\n\tconst pts = sub.closed ? [...sub.pts, sub.pts[0]] : sub.pts;\n\tconst cum = [0];\n\tfor (let i = 1; i < pts.length; i++) cum.push(cum[i - 1] + Math.hypot(pts[i][0] - pts[i - 1][0], pts[i][1] - pts[i - 1][1]));\n\tconst total = cum[cum.length - 1];\n\tconst out = [];\n\tif (total <= 0) {\n\t\tfor (let i = 0; i < n; i++) out.push([pts[0][0], pts[0][1]]);\n\t\treturn out;\n\t}\n\tconst count = sub.closed ? n : n - 1;\n\tlet j = 0;\n\tfor (let i = 0; i < n; i++) {\n\t\tconst s = total * i / count;\n\t\twhile (j < cum.length - 2 && cum[j + 1] < s) j++;\n\t\tconst seg = cum[j + 1] - cum[j];\n\t\tconst t = seg > 0 ? (s - cum[j]) / seg : 0;\n\t\tout.push([pts[j][0] + (pts[j + 1][0] - pts[j][0]) * t, pts[j][1] + (pts[j + 1][1] - pts[j][1]) * t]);\n\t}\n\treturn out;\n}\nfunction area(p) {\n\tlet a = 0;\n\tfor (let i = 0; i < p.length; i++) {\n\t\tconst q = p[(i + 1) % p.length];\n\t\ta += p[i][0] * q[1] - q[0] * p[i][1];\n\t}\n\treturn a / 2;\n}\nfunction centroid(p) {\n\tlet x = 0;\n\tlet y = 0;\n\tfor (const q of p) {\n\t\tx += q[0];\n\t\ty += q[1];\n\t}\n\treturn [x / p.length, y / p.length];\n}\n/** Rotates (and maybe reverses) `b` so its points line up with `a`'s. */\nfunction align(a, b, closed) {\n\tif (!closed) {\n\t\tconst d0 = Math.hypot(a[0][0] - b[0][0], a[0][1] - b[0][1]);\n\t\treturn Math.hypot(a[0][0] - b[b.length - 1][0], a[0][1] - b[b.length - 1][1]) < d0 ? [...b].reverse() : b;\n\t}\n\tconst bb = Math.sign(area(a)) !== Math.sign(area(b)) ? [...b].reverse() : b;\n\tconst n = a.length;\n\tlet best = 0;\n\tlet bestD = Number.POSITIVE_INFINITY;\n\tconst score = (k) => {\n\t\tlet s = 0;\n\t\tfor (let i = 0; i < n; i += 2) {\n\t\t\tconst q = bb[(i + k) % n];\n\t\t\ts += (a[i][0] - q[0]) ** 2 + (a[i][1] - q[1]) ** 2;\n\t\t}\n\t\treturn s;\n\t};\n\tfor (let k = 0; k < n; k += 4) {\n\t\tconst s = score(k);\n\t\tif (s < bestD) {\n\t\t\tbestD = s;\n\t\t\tbest = k;\n\t\t}\n\t}\n\tfor (let k = best - 3; k <= best + 3; k++) {\n\t\tconst kk = (k + n) % n;\n\t\tconst s = score(kk);\n\t\tif (s < bestD) {\n\t\t\tbestD = s;\n\t\t\tbest = kk;\n\t\t}\n\t}\n\treturn a.map((_, i) => bb[(i + best) % n]);\n}\nconst memo = /* @__PURE__ */ new Map();\nfunction prepare(from, to) {\n\tconst key = `${from}\\u0000${to}`;\n\tconst hit = memo.get(key);\n\tif (hit) return hit;\n\tconst sa = flattenPath(from);\n\tconst sb = flattenPath(to);\n\tconst n = Math.max(sa.length, sb.length);\n\tconst out = {\n\t\ta: [],\n\t\tb: [],\n\t\tclosed: []\n\t};\n\tfor (let i = 0; i < n; i++) {\n\t\tconst A = sa[i];\n\t\tconst B = sb[i];\n\t\tconst closed = (A?.closed ?? true) && (B?.closed ?? true);\n\t\tlet pa = A ? resample(A, SAMPLES) : void 0;\n\t\tlet pb = B ? resample(B, SAMPLES) : void 0;\n\t\tif (!pa && pb) {\n\t\t\tconst c = centroid(pb);\n\t\t\tpa = pb.map(() => [c[0], c[1]]);\n\t\t}\n\t\tif (!pb && pa) {\n\t\t\tconst c = centroid(pa);\n\t\t\tpb = pa.map(() => [c[0], c[1]]);\n\t\t}\n\t\tif (!pa || !pb) continue;\n\t\tout.a.push(pa);\n\t\tout.b.push(align(pa, pb, closed));\n\t\tout.closed.push(closed);\n\t}\n\tif (memo.size > 256) memo.clear();\n\tmemo.set(key, out);\n\treturn out;\n}\nconst fmt = (v) => (Math.round(v * 100) / 100).toString();\n/**\n* The path `t` of the way from `from` to `to` (0 = `from`, 1 = `to`; `t`\n* may overshoot for back / elastic eases).\n*/\nfunction morphPath(from, to, t) {\n\tif (t <= 0) return from;\n\tif (t === 1) return to;\n\tconst p = prepare(from, to);\n\tconst parts = [];\n\tfor (let s = 0; s < p.a.length; s++) {\n\t\tconst A = p.a[s];\n\t\tconst B = p.b[s];\n\t\tlet d = \"\";\n\t\tfor (let i = 0; i < A.length; i++) {\n\t\t\tconst x = A[i][0] + (B[i][0] - A[i][0]) * t;\n\t\t\tconst y = A[i][1] + (B[i][1] - A[i][1]) * t;\n\t\t\td += `${i === 0 ? \"M\" : \"L\"}${fmt(x)} ${fmt(y)}`;\n\t\t}\n\t\tparts.push(p.closed[s] ? `${d}Z` : d);\n\t}\n\treturn parts.join(\"\");\n}\n\n//#endregion\n//#region src/program/evaluator.ts\nfunction hash1D(n, seed) {\n\tlet x = Math.floor(n) ^ seed * 1013 | 0;\n\tx = Math.imul(x ^ x >>> 15, x | 1);\n\tx ^= x + Math.imul(x ^ x >>> 7, x | 61);\n\treturn ((x ^ x >>> 14) >>> 0) / 4294967295 * 2 - 1;\n}\nfunction smoothNoise1D(x, seed) {\n\tconst i0 = Math.floor(x);\n\tconst i1 = i0 + 1;\n\tconst f = x - i0;\n\tconst u = f * f * (3 - 2 * f);\n\tconst g0 = hash1D(i0, seed);\n\tconst g1 = hash1D(i1, seed);\n\tconst v0 = g0 * f;\n\tconst v1 = g1 * (f - 1);\n\treturn (v0 * (1 - u) + v1 * u) * 2;\n}\n/**\n* Procedural wiggle generator using multi-octave coherent 1D gradient noise.\n*/\nfunction evaluateWiggle(source, tSec, baseValue = 0) {\n\tconst freq = source.frequency ?? 2;\n\tconst amp = source.amplitude ?? 50;\n\tconst octaves = Math.max(1, Math.min(4, source.octaves ?? 1));\n\tconst seed = source.seed ?? 1234;\n\tlet total = 0;\n\tlet maxAmp = 0;\n\tlet currentAmp = 1;\n\tlet currentFreq = freq;\n\tfor (let i = 0; i < octaves; i++) {\n\t\tconst noiseVal = smoothNoise1D(tSec * currentFreq, seed + i * 7919);\n\t\ttotal += noiseVal * currentAmp;\n\t\tmaxAmp += currentAmp;\n\t\tcurrentAmp *= .5;\n\t\tcurrentFreq *= 2;\n\t}\n\treturn baseValue + (maxAmp > 0 ? total / maxAmp : 0) * amp;\n}\n/**\n* Analytical solution to the second-order damped harmonic oscillator ODE:\n* m*x'' + c*x' + k*x = 0\n*/\nfunction evaluateSpringOvershoot(source, tSec, v0, v1) {\n\tif (tSec <= 0) return v0;\n\tconst m = Math.max(.001, source.mass ?? 1);\n\tconst k = Math.max(.001, source.stiffness ?? 180);\n\tconst c = Math.max(.001, source.damping ?? 12);\n\tconst w0 = Math.sqrt(k / m);\n\tconst zeta = c / (2 * Math.sqrt(k * m));\n\tlet progress = 1;\n\tif (zeta < 1) {\n\t\tconst wd = w0 * Math.sqrt(1 - zeta * zeta);\n\t\tconst A = -1;\n\t\tconst B = -zeta * w0 / wd;\n\t\tprogress = 1 + Math.exp(-zeta * w0 * tSec) * (A * Math.cos(wd * tSec) + B * Math.sin(wd * tSec));\n\t} else if (Math.abs(zeta - 1) < 1e-4) progress = 1 + Math.exp(-w0 * tSec) * (-1 - w0 * tSec);\n\telse {\n\t\tconst sq = Math.sqrt(zeta * zeta - 1);\n\t\tconst r1 = -w0 * (zeta - sq);\n\t\tconst r2 = -w0 * (zeta + sq);\n\t\tconst c1 = -1 / (1 - r1 / r2);\n\t\tconst c2 = -1 - c1;\n\t\tprogress = 1 + c1 * Math.exp(r1 * tSec) + c2 * Math.exp(r2 * tSec);\n\t}\n\treturn v0 + (v1 - v0) * progress;\n}\nfunction extractRawSignalSample(signalData, frame, fps) {\n\tif (signalData === null || signalData === void 0) return 0;\n\tif (typeof signalData === \"number\") return signalData;\n\tif (typeof signalData === \"function\") return Number(signalData(frame, fps)) || 0;\n\tif (Array.isArray(signalData) || ArrayBuffer.isView(signalData)) {\n\t\tconst arr = signalData;\n\t\tif (arr.length === 0) return 0;\n\t\tconst idx = Math.max(0, Math.min(arr.length - 1, Math.round(frame)));\n\t\treturn Number(arr[idx]) || 0;\n\t}\n\tif (typeof signalData === \"object\") {\n\t\tconst sd = signalData;\n\t\tif (typeof sd.get === \"function\") return Number(sd.get({\n\t\t\tframe,\n\t\t\tfps,\n\t\t\ttime: fps > 0 ? frame / fps : 0\n\t\t})) || 0;\n\t\tif (sd.type === \"Signal\" && sd.data) return extractRawSignalSample(sd.data, frame, fps);\n\t\tconst rawSamples = sd.samples ?? (typeof sd.channel === \"string\" && sd[sd.channel] !== void 0 ? sd[sd.channel] : void 0);\n\t\tif (Array.isArray(rawSamples) || ArrayBuffer.isView(rawSamples)) {\n\t\t\tconst arr = rawSamples;\n\t\t\tif (arr.length === 0) return 0;\n\t\t\tconst srcFps = Number(sd.fps) || 24;\n\t\t\tconst t = frame / (fps > 0 ? fps : 24);\n\t\t\tconst idx = Math.max(0, Math.min(arr.length - 1, Math.round(t * srcFps)));\n\t\t\treturn Number(arr[idx]) || 0;\n\t\t}\n\t\tif (sd.type === \"audio_extractor\" || sd.extractionMode !== void 0) {\n\t\t\tconst nodeId = sd.nodeId;\n\t\t\tif (nodeId) {\n\t\t\t\tconst ch = sd.channel ?? \"primary\";\n\t\t\t\tconst channelSamples = signalRegistry.getChannelSamples(nodeId, ch);\n\t\t\t\tif (channelSamples && channelSamples.length > 0) {\n\t\t\t\t\tconst srcFps = Number(sd.fps) || 24;\n\t\t\t\t\tconst t = frame / (fps > 0 ? fps : 24);\n\t\t\t\t\tconst idx = Math.max(0, Math.min(channelSamples.length - 1, Math.round(t * srcFps)));\n\t\t\t\t\treturn Number(channelSamples[idx]) || 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn 0;\n\t\t}\n\t\tif (sd.type === \"generator\") {\n\t\t\tconst amp = typeof sd.amplitude === \"number\" ? sd.amplitude : 1;\n\t\t\tlet freq = typeof sd.frequency === \"number\" ? sd.frequency : 1;\n\t\t\tif (sd.syncToBpm && typeof sd.bpm === \"number\" && sd.bpm > 0) {\n\t\t\t\tconst bars = typeof sd.bars === \"number\" && sd.bars > 0 ? sd.bars : 1;\n\t\t\t\tfreq = sd.bpm / 60 / bars;\n\t\t\t}\n\t\t\tconst phase = typeof sd.phase === \"number\" ? sd.phase : 0;\n\t\t\tconst offset = typeof sd.offset === \"number\" ? sd.offset : 0;\n\t\t\tconst t = frame / (fps > 0 ? fps : 24);\n\t\t\tconst baseType = sd.baseType ?? \"sine\";\n\t\t\tconst fmEnabled = Boolean(sd.fmEnabled);\n\t\t\tlet tMod = t;\n\t\t\tif (fmEnabled) {\n\t\t\t\tconst fmAmp = Number(sd.fmAmplitude) || 1;\n\t\t\t\tconst fmFreq = Number(sd.fmFrequency) || .5;\n\t\t\t\ttMod = t + Math.sin(t * fmFreq * Math.PI * 2) * fmAmp;\n\t\t\t}\n\t\t\tlet val = 0;\n\t\t\tconst phaseNorm = (tMod * freq + phase / (Math.PI * 2)) % 1;\n\t\t\tconst normT = phaseNorm < 0 ? phaseNorm + 1 : phaseNorm;\n\t\t\tconst fract = (x) => (x % 1 + 1) % 1;\n\t\t\tswitch (baseType) {\n\t\t\t\tcase \"triangle\":\n\t\t\t\t\tval = 4 * Math.abs(normT - .5) - 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"sawtooth\":\n\t\t\t\t\tval = 2 * normT - 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"square\":\n\t\t\t\t\tval = normT < .5 ? 1 : -1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"constant\":\n\t\t\t\t\tval = 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"noise_smooth\": {\n\t\t\t\t\tconst noiseT = tMod * freq + phase;\n\t\t\t\t\tconst noiseI = Math.floor(noiseT);\n\t\t\t\t\tconst noiseF = noiseT - noiseI;\n\t\t\t\t\tconst noiseU = noiseF * noiseF * (3 - 2 * noiseF);\n\t\t\t\t\tconst n0 = fract(Math.sin(noiseI * 12.9898) * 43758.5453);\n\t\t\t\t\tconst n1 = fract(Math.sin((noiseI + 1) * 12.9898) * 43758.5453);\n\t\t\t\t\tval = (n0 * (1 - noiseU) + n1 * noiseU) * 2 - 1;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"noise_white\":\n\t\t\t\t\tval = fract(Math.sin(tMod * 12.9898 + phase) * 43758.5453) * 2 - 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"pulse\": {\n\t\t\t\t\tconst pulseDuty = phase === 0 ? .5 : Math.max(.01, Math.min(.99, phase));\n\t\t\t\t\tval = fract(tMod * freq) < pulseDuty ? 1 : -1;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"bounce\":\n\t\t\t\t\tval = Math.abs(Math.sin(tMod * freq * Math.PI + phase));\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"staircase\":\n\t\t\t\t\tval = Math.floor(normT * 8) / 7 * 2 - 1;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tval = Math.sin(tMod * freq * Math.PI * 2 + phase);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\treturn val * amp + offset;\n\t\t}\n\t\tif (sd.type === \"gate\") {\n\t\t\tconst source = sd.sourceSignal ?? sd.signal;\n\t\t\tconst thresh = typeof sd.threshold === \"number\" ? sd.threshold : .5;\n\t\t\tconst mode = sd.mode ?? \"gate\";\n\t\t\tconst invert = Boolean(sd.invert);\n\t\t\tconst debounceMs = typeof sd.debounceMs === \"number\" ? sd.debounceMs : 0;\n\t\t\tconst debounceFrames = Math.max(1, Math.round(debounceMs / 1e3 * fps));\n\t\t\tconst holdFrames = Math.max(1, Number(sd.holdFrames) || 4);\n\t\t\tlet output = 0;\n\t\t\tif (mode === \"gate\") output = extractRawSignalSample(source, frame, fps) >= thresh ? 1 : 0;\n\t\t\telse if (mode === \"trigger\") {\n\t\t\t\tlet lastTrigger = -Infinity;\n\t\t\t\tconst startF = Math.max(0, frame - 300);\n\t\t\t\tfor (let f = startF; f <= frame; f++) {\n\t\t\t\t\tconst val = extractRawSignalSample(source, f, fps);\n\t\t\t\t\tconst prev = f > 0 ? extractRawSignalSample(source, f - 1, fps) : 0;\n\t\t\t\t\tif (val >= thresh && prev < thresh && f - lastTrigger >= debounceFrames) lastTrigger = f;\n\t\t\t\t}\n\t\t\t\toutput = frame >= lastTrigger && frame < lastTrigger + holdFrames ? 1 : 0;\n\t\t\t} else if (mode === \"toggle\") {\n\t\t\t\tlet toggleCount = 0;\n\t\t\t\tlet lastTrigger = -Infinity;\n\t\t\t\tfor (let f = 0; f <= frame; f++) {\n\t\t\t\t\tconst val = extractRawSignalSample(source, f, fps);\n\t\t\t\t\tconst prev = f > 0 ? extractRawSignalSample(source, f - 1, fps) : 0;\n\t\t\t\t\tif (val >= thresh && prev < thresh && f - lastTrigger >= debounceFrames) {\n\t\t\t\t\t\ttoggleCount++;\n\t\t\t\t\t\tlastTrigger = f;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\toutput = toggleCount % 2 === 1 ? 1 : 0;\n\t\t\t}\n\t\t\treturn invert ? 1 - output : output;\n\t\t}\n\t\tif (sd.type === \"signal_math\") {\n\t\t\tconst valA = extractRawSignalSample(sd.signalA, frame, fps);\n\t\t\tconst valB = sd.signalB !== void 0 ? extractRawSignalSample(sd.signalB, frame, fps) : Number(sd.bValue) || 0;\n\t\t\tswitch (sd.operation) {\n\t\t\t\tcase \"add\": return valA + valB;\n\t\t\t\tcase \"subtract\": return valA - valB;\n\t\t\t\tcase \"multiply\": return valA * valB;\n\t\t\t\tcase \"divide\": return valB !== 0 ? valA / valB : 0;\n\t\t\t\tcase \"min\": return Math.min(valA, valB);\n\t\t\t\tcase \"max\": return Math.max(valA, valB);\n\t\t\t\tcase \"clamp\": {\n\t\t\t\t\tconst cMin = Number(sd.clampMin) || 0;\n\t\t\t\t\tconst cMax = Number(sd.clampMax) || 1;\n\t\t\t\t\treturn Math.max(cMin, Math.min(cMax, valA));\n\t\t\t\t}\n\t\t\t\tcase \"abs\": return Math.abs(valA);\n\t\t\t\tcase \"negate\": return -valA;\n\t\t\t\tcase \"invert\": return 1 - valA;\n\t\t\t\tcase \"power\": return valA ** (Number(sd.exponent) || 2);\n\t\t\t\tcase \"modulo\": return valB !== 0 ? valA % valB : 0;\n\t\t\t\tcase \"remap\": {\n\t\t\t\t\tconst inMin = Number(sd.inMin) || 0;\n\t\t\t\t\tconst inMax = Number(sd.inMax) || 1;\n\t\t\t\t\tconst outMin = Number(sd.outMin) || 0;\n\t\t\t\t\tconst outMax = Number(sd.outMax) || 1;\n\t\t\t\t\tconst rangeIn = inMax - inMin;\n\t\t\t\t\treturn outMin + (rangeIn !== 0 ? (valA - inMin) / rangeIn : 0) * (outMax - outMin);\n\t\t\t\t}\n\t\t\t\tcase \"normalize\": {\n\t\t\t\t\tconst minVal = Number(sd.aMin ?? sd.inMin) || 0;\n\t\t\t\t\tconst range = (Number(sd.aMax ?? sd.inMax) || 1) - minVal;\n\t\t\t\t\treturn range !== 0 ? Math.max(0, Math.min(1, (valA - minVal) / range)) : 0;\n\t\t\t\t}\n\t\t\t\tcase \"smoothstep\": {\n\t\t\t\t\tconst e0 = Number(sd.edge0) || 0;\n\t\t\t\t\tconst range = (Number(sd.edge1) || 1) - e0;\n\t\t\t\t\tconst x = range !== 0 ? Math.max(0, Math.min(1, (valA - e0) / range)) : 0;\n\t\t\t\t\treturn x * x * (3 - 2 * x);\n\t\t\t\t}\n\t\t\t\tcase \"custom\": return valA;\n\t\t\t\tdefault: return valA;\n\t\t\t}\n\t\t}\n\t\tif (typeof sd.value === \"number\") return sd.value;\n\t}\n\treturn 0;\n}\n/**\n* Evaluates an external Signal as an event accumulator / integrator.\n* On each rising edge above `threshold` (with `debounceFrames` guard),\n* the accumulator increments by 1.\n*/\nfunction evaluateSignalAccumulator(rawSource, currentFrame, fps, threshold = .15, debounceFrames = 2) {\n\tif (currentFrame < 0 || !rawSource) return 0;\n\tconst src = rawSource;\n\tlet count = 0;\n\tlet lastTriggerFrame = -Infinity;\n\tfor (let f = 0; f <= currentFrame; f++) {\n\t\tconst val = extractRawSignalSample(src, f, fps);\n\t\tconst prevVal = f > 0 ? extractRawSignalSample(src, f - 1, fps) : 0;\n\t\tif (val >= threshold && prevVal < threshold && f - lastTriggerFrame >= debounceFrames) {\n\t\t\tcount++;\n\t\t\tlastTriggerFrame = f;\n\t\t}\n\t}\n\treturn count;\n}\n/**\n* Evaluates an external Signal with smoothing window and linear remapping,\n* or as a discrete event accumulator.\n*/\nfunction evaluateSignal(source, frame, fps, signals = {}) {\n\tlet rawSource = signals[source.inputHandleId];\n\tif (rawSource === void 0 && signals) {\n\t\tconst signalKeys = Object.keys(signals);\n\t\tif (signalKeys.length === 1) rawSource = signals[signalKeys[0]];\n\t\telse if (signalKeys.length > 1) {\n\t\t\tconst matched = signalKeys.find((k) => k === source.inputHandleId);\n\t\t\trawSource = matched ? signals[matched] : signals[signalKeys[0]];\n\t\t}\n\t}\n\tif (source.channel && rawSource && typeof rawSource === \"object\") {\n\t\tconst candidate = rawSource[source.channel];\n\t\tif (candidate !== void 0) rawSource = candidate;\n\t\telse if (typeof rawSource.get !== \"function\") rawSource = {\n\t\t\t...rawSource,\n\t\t\tchannel: source.channel\n\t\t};\n\t}\n\tif (source.signalMode === \"accumulate\") {\n\t\tconst threshold = source.threshold ?? source.accumulateThreshold ?? .15;\n\t\tconst debounce = source.debounceFrames ?? 2;\n\t\tconst count$1 = evaluateSignalAccumulator(rawSource, frame, fps, threshold, debounce);\n\t\tconst mult = source.multiplier ?? 1;\n\t\tconst off = source.offset ?? 0;\n\t\treturn count$1 * mult + off;\n\t}\n\tconst multiplier = source.multiplier ?? 1;\n\tconst offset = source.offset ?? 0;\n\tconst windowFrames = Math.max(0, Math.round(source.smoothingWindowFrames ?? 0));\n\tif (windowFrames <= 1) return extractRawSignalSample(rawSource, frame, fps) * multiplier + offset;\n\tlet sum = 0;\n\tlet count = 0;\n\tconst startF = Math.max(0, frame - windowFrames + 1);\n\tfor (let f = startF; f <= frame; f++) {\n\t\tsum += extractRawSignalSample(rawSource, f, fps);\n\t\tcount++;\n\t}\n\treturn (count > 0 ? sum / count : 0) * multiplier + offset;\n}\nfunction lerp(a, b, t) {\n\treturn a + (b - a) * t;\n}\nfunction parseHexColor(hex) {\n\tlet h = hex.trim().replace(\"#\", \"\");\n\tif (h.length === 3) h = h[0] + h[0] + h[1] + h[1] + h[2] + h[2];\n\tif (h.length === 6) {\n\t\tconst num = parseInt(h, 16);\n\t\treturn [\n\t\t\tnum >> 16 & 255,\n\t\t\tnum >> 8 & 255,\n\t\t\tnum & 255,\n\t\t\t1\n\t\t];\n\t}\n\tif (h.length === 8) {\n\t\tconst num = parseInt(h, 16);\n\t\treturn [\n\t\t\tnum >> 24 & 255,\n\t\t\tnum >> 16 & 255,\n\t\t\tnum >> 8 & 255,\n\t\t\t(num & 255) / 255\n\t\t];\n\t}\n\treturn [\n\t\t255,\n\t\t255,\n\t\t255,\n\t\t1\n\t];\n}\n/** Color keyframes blend perceptually (OKLab) and accept any CSS color. */\nfunction lerpColor(c1, c2, t) {\n\treturn mixColors(c1, c2, t);\n}\nfunction hueToRgb(p, q, t) {\n\tlet tt = t;\n\tif (tt < 0) tt += 1;\n\tif (tt > 1) tt -= 1;\n\tif (tt < 1 / 6) return p + (q - p) * 6 * tt;\n\tif (tt < 1 / 2) return q;\n\tif (tt < 2 / 3) return p + (q - p) * (2 / 3 - tt) * 6;\n\treturn p;\n}\nfunction rotateHue(hex, delta) {\n\tconst [r255, g255, b255, a] = parseHexColor(hex);\n\tconst r = r255 / 255;\n\tconst g = g255 / 255;\n\tconst b = b255 / 255;\n\tconst max = Math.max(r, g, b);\n\tconst min = Math.min(r, g, b);\n\tlet h = 0;\n\tlet s = 0;\n\tconst l = (max + min) / 2;\n\tif (max !== min) {\n\t\tconst d = max - min;\n\t\ts = l > .5 ? d / (2 - max - min) : d / (max + min);\n\t\tswitch (max) {\n\t\t\tcase r:\n\t\t\t\th = (g - b) / d + (g < b ? 6 : 0);\n\t\t\t\tbreak;\n\t\t\tcase g:\n\t\t\t\th = (b - r) / d + 2;\n\t\t\t\tbreak;\n\t\t\tcase b:\n\t\t\t\th = (r - g) / d + 4;\n\t\t\t\tbreak;\n\t\t}\n\t\th /= 6;\n\t}\n\th = (h + delta % 1 + 1) % 1;\n\tlet newR = l;\n\tlet newG = l;\n\tlet newB = l;\n\tif (s !== 0) {\n\t\tconst q = l < .5 ? l * (1 + s) : l + s - l * s;\n\t\tconst p = 2 * l - q;\n\t\tnewR = hueToRgb(p, q, h + 1 / 3);\n\t\tnewG = hueToRgb(p, q, h);\n\t\tnewB = hueToRgb(p, q, h - 1 / 3);\n\t}\n\tconst toHex = (n) => Math.round(Math.max(0, Math.min(255, n * 255))).toString(16).padStart(2, \"0\");\n\tif (a >= .999) return `#${toHex(newR)}${toHex(newG)}${toHex(newB)}`;\n\treturn `rgba(${Math.round(newR * 255)}, ${Math.round(newG * 255)}, ${Math.round(newB * 255)}, ${Math.round(a * 100) / 100})`;\n}\nconst COLOR_PROPS$1 = new Set([\n\t\"fill\",\n\t\"fillColor\",\n\t\"strokeColor\",\n\t\"textBackgroundColor\",\n\t\"color\"\n]);\nfunction computeRepeatFrame(track, localFrame, startFrame, lastFrame) {\n\tconst repeat = track.repeat ?? 0;\n\tconst cycleSpan = lastFrame - startFrame;\n\tconst cycleDuration = track.durationFrames !== void 0 && track.durationFrames > 0 ? track.durationFrames : cycleSpan;\n\tif (repeat === 0 || cycleDuration <= 0) {\n\t\tif (localFrame >= lastFrame) {\n\t\t\tconst kfs = track.keyframes ?? [];\n\t\t\treturn { completedValue: kfs[kfs.length - 1].value };\n\t\t}\n\t\treturn { frame: localFrame };\n\t}\n\tconst delta = localFrame - startFrame;\n\tconst cycleIndex = Math.floor(delta / cycleDuration);\n\tif (repeat > 0 && cycleIndex >= 1 + repeat) {\n\t\tconst isFinalReverse = Boolean(track.yoyo) && repeat % 2 === 1;\n\t\tconst kfs = track.keyframes ?? [];\n\t\treturn { completedValue: isFinalReverse ? kfs[0].value : kfs[kfs.length - 1].value };\n\t}\n\tconst cycleOffset = delta - cycleIndex * cycleDuration;\n\tif (Boolean(track.yoyo) && cycleIndex % 2 === 1) return { frame: cycleOffset >= cycleSpan ? startFrame : lastFrame - cycleOffset };\n\treturn { frame: cycleOffset >= cycleSpan ? lastFrame : startFrame + cycleOffset };\n}\n/**\n* Standard keyframe track evaluation with loop (repeat/yoyo) support.\n*/\nfunction evaluateKeyframes(track, localFrame, ease) {\n\tconst keyframes = track.keyframes ?? [];\n\tif (keyframes.length === 0) return 0;\n\tif (keyframes.length === 1) return keyframes[0].value;\n\tconst startFrame = keyframes[0].frame;\n\tif (localFrame <= startFrame) return keyframes[0].value;\n\tconst lastFrame = keyframes[keyframes.length - 1].frame;\n\tconst repeatResolution = computeRepeatFrame(track, localFrame, startFrame, lastFrame);\n\tif (\"completedValue\" in repeatResolution) return repeatResolution.completedValue;\n\tconst evalFrame = repeatResolution.frame;\n\tfor (let i = 0; i < keyframes.length - 1; i++) {\n\t\tconst kf0 = keyframes[i];\n\t\tconst kf1 = keyframes[i + 1];\n\t\tif (evalFrame >= kf0.frame && evalFrame <= kf1.frame) {\n\t\t\tconst delta = kf1.frame - kf0.frame;\n\t\t\tconst linear = delta > 0 ? (evalFrame - kf0.frame) / delta : 0;\n\t\t\tconst t = ease ? ease(kf1.ease ?? kf0.ease, delta, linear) : linear;\n\t\t\tif (typeof kf0.value === \"boolean\") return linear >= 1 ? kf1.value : kf0.value;\n\t\t\tif (typeof kf0.value === \"string\" && typeof kf1.value === \"string\") {\n\t\t\t\tif (track.prop === \"d\") return morphPath(kf0.value, kf1.value, t);\n\t\t\t\treturn lerpColor(kf0.value, kf1.value, t);\n\t\t\t}\n\t\t\treturn lerp(Number(kf0.value) || 0, Number(kf1.value) || 0, t);\n\t\t}\n\t}\n\treturn keyframes[keyframes.length - 1].value;\n}\n/**\n* Evaluates an AnimationTrack at a given global or local frame.\n*/\nfunction evaluateTrackAtFrame(track, frame, fps = 24, context = {}) {\n\tconst localFrame = frame - (context.startFrame ?? 0);\n\tconst source = track.source ?? { type: \"keyframe\" };\n\tconst basePropVal = context.baseValues?.[track.prop];\n\tswitch (source.type) {\n\t\tcase \"keyframe\": return evaluateKeyframes(track, localFrame);\n\t\tcase \"wiggle\": {\n\t\t\tconst fallbackNum = typeof basePropVal === \"number\" ? basePropVal : 0;\n\t\t\tconst base = track.keyframes && track.keyframes.length > 0 ? Number(evaluateKeyframes(track, localFrame)) || 0 : fallbackNum;\n\t\t\treturn evaluateWiggle(source, localFrame / (fps > 0 ? fps : 24), base);\n\t\t}\n\t\tcase \"springOvershoot\": {\n\t\t\tlet v0 = 0;\n\t\t\tlet v1 = 1;\n\t\t\tif (track.keyframes && track.keyframes.length >= 2) {\n\t\t\t\tv0 = Number(track.keyframes[0].value) || 0;\n\t\t\t\tv1 = Number(track.keyframes[1].value) || 1;\n\t\t\t} else if (track.keyframes && track.keyframes.length === 1) {\n\t\t\t\tv0 = Number(basePropVal) || 0;\n\t\t\t\tv1 = Number(track.keyframes[0].value) || 0;\n\t\t\t} else if (typeof basePropVal === \"number\") {\n\t\t\t\tv0 = basePropVal;\n\t\t\t\tv1 = basePropVal;\n\t\t\t}\n\t\t\treturn evaluateSpringOvershoot(source, localFrame / (fps > 0 ? fps : 24), v0, v1);\n\t\t}\n\t\tcase \"signal\": {\n\t\t\tconst sigVal = evaluateSignal(source, frame, fps, context.signals);\n\t\t\tif (COLOR_PROPS$1.has(track.prop)) {\n\t\t\t\tconst src = source;\n\t\t\t\tconst colorA = src.colorA ?? \"#ffffff\";\n\t\t\t\tconst colorB = src.colorB ?? \"#ffffff\";\n\t\t\t\tconst mode = src.colorMode ?? \"interpolate\";\n\t\t\t\tif (mode === \"threshold\") return sigVal >= (src.colorThreshold ?? .5) ? colorB : colorA;\n\t\t\t\tif (mode === \"hueRotate\") return rotateHue(colorA, sigVal);\n\t\t\t\treturn lerpColor(colorA, colorB, Math.max(0, Math.min(1, sigVal)));\n\t\t\t}\n\t\t\treturn sigVal;\n\t\t}\n\t\tdefault: return evaluateKeyframes(track, localFrame);\n\t}\n}\n/**\n* Evaluates all animation tracks for a layer at `frame`.\n*/\nfunction evaluateAnimationAtFrame(animation, frame, fps = 24, context = {}) {\n\tconst result = {};\n\tif (!animation?.tracks) return result;\n\tfor (const track of animation.tracks) result[track.prop] = evaluateTrackAtFrame(track, frame, fps, context);\n\treturn result;\n}\n\n//#endregion\n//#region src/program/lint.ts\n/**\n* Static checks for things that render \"fine\" but not as intended: a color\n* the parser can't read (drawn transparent), text that disappears into its\n* background, a layer parked off-canvas, a shadow on a light that can't cast\n* one. Pure and fast; `renderVideo({ qa })` folds the findings into its report.\n*/\nconst COLOR_PROPS = [\n\t\"background\",\n\t\"fill\",\n\t\"fillColor\",\n\t\"strokeColor\",\n\t\"borderColor\",\n\t\"gradientEndColor\",\n\t\"emissive\",\n\t\"color\"\n];\n/**\n* Keyframes on one layer past which an animation is probably keyed every\n* frame by mistake. There is no hard limit: evaluation and playback handle\n* any count, but programs this size are slow to send, read and edit.\n*/\nconst LARGE_ANIMATION_KEYFRAMES = 2e3;\n/** Contrast below this makes text hard to read (WCAG large-text minimum). */\nconst MIN_TEXT_CONTRAST = 3;\nfunction tracksOf(node) {\n\treturn node.animation?.tracks ?? [];\n}\nconst animates = (node, props) => tracksOf(node).some((t) => props.includes(t.prop));\nconst CONTAINERS = new Set([\n\t\"box\",\n\t\"flex\",\n\t\"block\",\n\t\"group\"\n]);\n/** Whether a layer puts pixels behind whatever is drawn after it (text over text aside). */\nfunction paints(node) {\n\tif (node.kind === \"text\" || node.kind === \"light\" || node.kind === \"camera\") return false;\n\tif (!CONTAINERS.has(String(node.kind))) return true;\n\tconst bg = node.background;\n\tif (typeof bg === \"string\" && bg !== \"\" && bg !== \"transparent\") return true;\n\treturn (node.children ?? []).some(paints);\n}\nconst byZ = (nodes) => [...nodes].sort((a, b) => (Number(a.zIndex) || 0) - (Number(b.zIndex) || 0));\nfunction solidColor(value) {\n\tif (typeof value !== \"string\" || value.includes(\"gradient(\")) return null;\n\tconst c = parseCssColor(value);\n\treturn c && c[3] > .99 ? value : null;\n}\nfunction lintComposition(config) {\n\tconst out = [];\n\tconst push = (severity, code, message, layerId) => out.push({\n\t\tseverity,\n\t\tcode,\n\t\tmessage,\n\t\t...layerId && { layerId }\n\t});\n\tconst W = config.width;\n\tconst H = config.height;\n\tlet hasEnvironment = false;\n\tconst ambientLights = [];\n\tlet has3D = false;\n\tconst pbrNodes = [];\n\tconst shadowLights = [];\n\tconst visit = (node, backdrop, atRoot) => {\n\t\tconst id = String(node.id ?? \"?\");\n\t\tfor (const prop of COLOR_PROPS) {\n\t\t\tconst v = node[prop];\n\t\t\tif (typeof v !== \"string\" || v === \"\" || v === \"transparent\") continue;\n\t\t\tif (v.includes(\"gradient(\")) {\n\t\t\t\tif (!parseCssGradient(v)) push(\"error\", \"invalid_gradient\", `\\`${prop}\\` on '${id}' is not a gradient this renderer reads: ${v}. It draws nothing.`, id);\n\t\t\t} else if (!parseCssColor(v)) push(\"warning\", \"unknown_color\", `\\`${prop}: \"${v}\"\\` on '${id}' is not a color (hex, rgb(), hsl(), oklch() or a CSS name). It draws transparent.`, id);\n\t\t}\n\t\tif (node.kind === \"light\") {\n\t\t\tconst type = node.lightType ?? \"directional\";\n\t\t\tif (type === \"environment\") hasEnvironment = true;\n\t\t\tif (type === \"ambient\") ambientLights.push(id);\n\t\t\tif (node.castShadow) if (type === \"directional\" || type === \"spot\") shadowLights.push(id);\n\t\t\telse push(\"warning\", \"shadow_unsupported_light\", `'${id}' is a ${String(type)} light: only directional and spot lights cast shadows.`, id);\n\t\t\treturn;\n\t\t}\n\t\tif (node.kind === \"camera\") return;\n\t\tif (node.kind === \"media\") {\n\t\t\tconst src = node.inputHandleId;\n\t\t\tif (typeof src === \"string\") {\n\t\t\t\tif ((node.dataType ?? \"Video\") === \"Image\") {\n\t\t\t\t\tif (/\\.(json|lottie)(\\?.*)?$/i.test(src)) push(\"error\", \"unsupported_image_format\", `'${id}' is an image layer with source '${src}', which is a Lottie vector animation. Use Layer.lottie() instead.`, id);\n\t\t\t\t\telse if (/\\.(mp4|mov|webm|mkv)(\\?.*)?$/i.test(src)) push(\"error\", \"unsupported_image_format\", `'${id}' is an image layer with video source '${src}'. Use Layer.video() instead.`, id);\n\t\t\t\t\telse if (/\\.(mp3|wav|ogg|m4a|aac)(\\?.*)?$/i.test(src)) push(\"error\", \"unsupported_image_format\", `'${id}' is an image layer with audio source '${src}'. Use Layer.audio() instead.`, id);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst is3D = Boolean(node.is3D) || typeof node.z === \"number\" && node.z !== 0;\n\t\tif (is3D || node.kind === \"model3d\") has3D = true;\n\t\tif (node.roughness !== void 0 || node.metallic !== void 0) pbrNodes.push(id);\n\t\tif (node.kind === \"text\" && backdrop && !animates(node, [\"fill\", \"color\"])) {\n\t\t\tconst fg = solidColor(node.fill ?? node.color);\n\t\t\tconst behind = solidColor(node.background) ?? backdrop;\n\t\t\tif (fg) {\n\t\t\t\tconst ratio = Color.contrast(fg, behind);\n\t\t\t\tif (ratio < MIN_TEXT_CONTRAST) push(\"warning\", \"low_contrast_text\", `Text '${id}' (${fg}) on ${behind} has contrast ${ratio.toFixed(2)}:1 (aim for ≥ ${MIN_TEXT_CONTRAST}; ${Color.readableOn(behind)} reads well).`, id);\n\t\t\t}\n\t\t}\n\t\tif (atRoot && !is3D && node.position === \"absolute\" && typeof node.x === \"number\" && typeof node.y === \"number\" && typeof node.width === \"number\" && typeof node.height === \"number\" && !animates(node, [\n\t\t\t\"x\",\n\t\t\t\"y\",\n\t\t\t\"translateX\",\n\t\t\t\"translateY\",\n\t\t\t\"scale\",\n\t\t\t\"scaleX\",\n\t\t\t\"scaleY\",\n\t\t\t\"rotation\"\n\t\t])) {\n\t\t\tconst { x, y, width, height } = node;\n\t\t\tif (x + width <= 0 || y + height <= 0 || x >= W || y >= H) push(\"warning\", \"offscreen_layer\", `'${id}' sits entirely outside the ${W}×${H} canvas (x ${x}, y ${y}) and never moves in.`, id);\n\t\t}\n\t\tconst keyframeCount = tracksOf(node).reduce((n, t) => n + (t.keyframes?.length ?? 0), 0);\n\t\tif (keyframeCount > LARGE_ANIMATION_KEYFRAMES) push(\"warning\", \"large_animation\", `'${id}' has ${keyframeCount} keyframes across its tracks (over ${LARGE_ANIMATION_KEYFRAMES}). Keying every frame is rarely needed: key the turning points and let eases fill in, or drive the prop from a signal.`, id);\n\t\tfor (const t of tracksOf(node)) {\n\t\t\tconst kfs = t.keyframes ?? [];\n\t\t\tif ((!t.source || t.source.type === \"keyframe\") && kfs.length >= 2 && kfs.every((k) => JSON.stringify(k.value) === JSON.stringify(kfs[0].value))) push(\"info\", \"static_track\", `'${id}' animates \\`${t.prop}\\` but every keyframe holds ${JSON.stringify(kfs[0].value)}.`, id);\n\t\t}\n\t\tconst ownBackdrop = solidColor(node.background) ?? backdrop;\n\t\tconst children = node.children;\n\t\tconst fullFrame = node.x === 0 && node.y === 0 && node.width === W && node.height === H;\n\t\tvisitLevel(children ?? [], ownBackdrop, atRoot && fullFrame);\n\t};\n\tconst visitLevel = (nodes, backdrop, atRoot) => {\n\t\tlet known = backdrop;\n\t\tfor (const n of byZ(nodes)) {\n\t\t\tvisit(n, known, atRoot);\n\t\t\tif (paints(n)) known = null;\n\t\t}\n\t};\n\tconst rootBackdrop = solidColor(config.backgroundColor) ?? null;\n\tvisitLevel(config.layout, rootBackdrop, true);\n\tif (hasEnvironment && ambientLights.length > 0) push(\"info\", \"ambient_with_environment\", `The environment already fills shadows with light; ambient light ${ambientLights.join(\", \")} adds flat light on top (remove it, or lower it, if the scene looks washed out).`);\n\tif (shadowLights.length > 1) push(\"info\", \"multiple_shadow_lights\", `${shadowLights.length} lights cast shadows (${shadowLights.join(\", \")}); only the first one does.`);\n\tif (has3D && pbrNodes.length > 0 && !hasEnvironment) push(\"info\", \"pbr_without_environment\", `roughness / metallic are set (${pbrNodes.slice(0, 3).join(\", \")}${pbrNodes.length > 3 ? \", …\" : \"\"}) but the scene has no Layer.environment(): add one for physically based shading, reflections and tone mapping.`);\n\treturn out;\n}\n\n//#endregion\n//#region src/program/mattes.ts\nconst GEOMETRY = [\n\t\"x\",\n\t\"y\",\n\t\"width\",\n\t\"height\"\n];\nfunction hoistOne(owner) {\n\tconst matte = owner.matte;\n\tconst { matte: _drop, ...rest } = owner;\n\tconst self = { ...rest };\n\tif (Array.isArray(self.children)) self.children = hoistMattes(self.children);\n\tif (!matte?.node) return [self];\n\tconst src = matte.node;\n\tconst id = src.id ?? `${String(owner.id)}__matte`;\n\tconst node = {\n\t\tposition: \"absolute\",\n\t\t...src,\n\t\tid,\n\t\tmatteOf: String(owner.id),\n\t\tmatteMode: matte.mode ?? \"alpha\"\n\t};\n\tif (GEOMETRY.every((k) => src[k] === void 0)) {\n\t\tfor (const k of GEOMETRY) if (typeof owner[k] === \"number\") node[k] = owner[k];\n\t}\n\tnode.startFrame = (typeof owner.startFrame === \"number\" ? owner.startFrame : 0) + (typeof src.startFrame === \"number\" ? src.startFrame : 0);\n\tif (src.durationFrames === void 0 && owner.durationFrames !== void 0) node.durationFrames = owner.durationFrames;\n\tif (Array.isArray(node.children)) node.children = hoistMattes(node.children);\n\tself.matteId = id;\n\treturn [self, node];\n}\n/** Returns the tree with every `matte` turned into a sibling matte layer. */\nfunction hoistMattes(nodes) {\n\treturn nodes.flatMap((n) => hoistOne(n));\n}\n\n//#endregion\n//#region src/program/schema.ts\n/**\n* Compositor program document v2 — THE single source of truth for a\n* composition (spec: `nodes/node-compositor/SKILL.md`).\n*\n* The config IS a tree of HTML-like layout nodes (`layout`), replacing the\n* v1 flat `layers[]`. No `layers`, no `layerUpdates`, no aliases: the tree\n* is what agents write, what the editor edits, what the renderer renders.\n*\n* Design rules (hard):\n* - strict zod, `.strict()` everywhere; unknown keys are rejected by the\n* pre-parse scan in `validate.ts` (zod alone would silently strip them)\n* - recursive container fields use `z.lazy`; leaf kinds are plain objects\n* - every field that can animate is in `AnimatablePropSchema`\n* - no backwards compatibility: v1 shapes fail fast with E-codes\n*/\n/** number px | \"auto\" (intrinsic) | \"fit\" (shrink-wrap) | \"fill\" (parent extent). */\nconst SizeSpecSchema = z.union([\n\tz.number().min(0),\n\tz.enum([\n\t\t\"auto\",\n\t\t\"fit\",\n\t\t\"fill\"\n\t]),\n\tz.custom()\n]);\nconst ShapeTypeSchema = z.enum([\n\t\"rect\",\n\t\"circle\",\n\t\"ellipse\",\n\t\"polygon\",\n\t\"star\",\n\t\"arrow\",\n\t\"path\"\n]);\nconst EffectSpecSchema = z.union([\n\tz.instanceof(Effect),\n\tz.object({ op: z.string().min(1) }).passthrough(),\n\tz.custom((val) => Boolean(val && typeof val === \"object\" && \"op\" in val && typeof val.op === \"string\"))\n]);\nconst AnimatablePropSchema = z.enum([\n\t\"x\",\n\t\"y\",\n\t\"scale\",\n\t\"rotation\",\n\t\"opacity\",\n\t\"width\",\n\t\"height\",\n\t\"volume\",\n\t\"hidden\",\n\t\"muted\",\n\t\"gap\",\n\t\"padding\",\n\t\"borderRadius\",\n\t\"fontSize\",\n\t\"text\",\n\t\"fill\",\n\t\"color\",\n\t\"letterSpacing\",\n\t\"d\",\n\t\"trimStart\",\n\t\"trimEnd\",\n\t\"trimOffset\",\n\t\"strokeWidth\",\n\t\"strokeDashOffset\",\n\t\"cornerRadius\",\n\t\"starInnerRadiusRatio\",\n\t\"fillColor\",\n\t\"strokeColor\",\n\t\"borderColor\",\n\t\"borderWidth\",\n\t\"motionBlurShutter\",\n\t\"rangeStart\",\n\t\"rangeEnd\",\n\t\"offset\",\n\t\"animatorRangeStart\",\n\t\"animatorRangeEnd\",\n\t\"animatorOffset\",\n\t\"firstMargin\",\n\t\"lastMargin\",\n\t\"baselineShift\",\n\t\"rotateX\",\n\t\"rotateY\",\n\t\"rotateZ\",\n\t\"perspective\",\n\t\"translateZ\",\n\t\"perspectiveOriginX\",\n\t\"perspectiveOriginY\",\n\t\"cameraX\",\n\t\"cameraY\",\n\t\"cameraZ\",\n\t\"targetX\",\n\t\"targetY\",\n\t\"targetZ\",\n\t\"cameraPitch\",\n\t\"cameraYaw\",\n\t\"cameraRoll\",\n\t\"cameraFov\",\n\t\"cameraZoom\",\n\t\"focalLength\",\n\t\"focusDistance\",\n\t\"fStop\",\n\t\"maxBlurRadius\",\n\t\"shakeTranslation\",\n\t\"shakeRotation\",\n\t\"orbitRadius\",\n\t\"orbitAzimuth\",\n\t\"orbitElevation\",\n\t\"z\",\n\t\"scaleZ\",\n\t\"intensity\",\n\t\"angle\",\n\t\"radius\",\n\t\"penumbra\",\n\t\"decay\",\n\t\"shininess\",\n\t\"roughness\",\n\t\"specularIntensity\",\n\t\"ambientIntensity\",\n\t\"metallic\",\n\t\"ior\",\n\t\"dispersion\",\n\t\"transmission\",\n\t\"fresnelPower\",\n\t\"envIntensity\",\n\t\"animationProgress\",\n\t\"animationTime\",\n\t\"animationSpeed\",\n\t\"wireframe\",\n\t\"scaleX\",\n\t\"scaleY\",\n\t\"emissive\",\n\t\"emissiveIntensity\",\n\t\"exposure\"\n]);\nconst MatteModeSchema = z.enum([\n\t\"alpha\",\n\t\"alpha-inverted\",\n\t\"luma\",\n\t\"luma-inverted\"\n]);\nconst MaterialTypeSchema = z.enum([\n\t\"lit\",\n\t\"unlit\",\n\t\"toon\",\n\t\"glass\",\n\t\"acrylic\",\n\t\"frosted\",\n\t\"metallic\"\n]);\nconst EXTENDED_3D_ANIMATABLE_PROPS = [\n\t\"rotateX\",\n\t\"rotateY\",\n\t\"rotateZ\",\n\t\"perspective\",\n\t\"translateZ\",\n\t\"perspectiveOriginX\",\n\t\"perspectiveOriginY\",\n\t\"cameraX\",\n\t\"cameraY\",\n\t\"cameraZ\",\n\t\"targetX\",\n\t\"targetY\",\n\t\"targetZ\",\n\t\"cameraPitch\",\n\t\"cameraYaw\",\n\t\"cameraRoll\",\n\t\"cameraFov\",\n\t\"cameraZoom\",\n\t\"focalLength\",\n\t\"focusDistance\",\n\t\"fStop\",\n\t\"maxBlurRadius\",\n\t\"shakeTranslation\",\n\t\"shakeRotation\",\n\t\"orbitRadius\",\n\t\"orbitAzimuth\",\n\t\"orbitElevation\",\n\t\"z\",\n\t\"scaleZ\",\n\t\"intensity\",\n\t\"angle\",\n\t\"radius\",\n\t\"penumbra\",\n\t\"decay\",\n\t\"shininess\",\n\t\"roughness\",\n\t\"specularIntensity\",\n\t\"ambientIntensity\",\n\t\"metallic\"\n];\nconst SignalColorModeSchema = z.enum([\n\t\"interpolate\",\n\t\"hueRotate\",\n\t\"threshold\"\n]);\nconst EaseRefSchema = z.object({\n\tname: z.enum([\n\t\t\"none\",\n\t\t\"power1\",\n\t\t\"power2\",\n\t\t\"power3\",\n\t\t\"sine\",\n\t\t\"circ\",\n\t\t\"expo\",\n\t\t\"back\",\n\t\t\"elastic\",\n\t\t\"bounce\",\n\t\t\"spring\",\n\t\t\"cubic\",\n\t\t\"hold\"\n\t]),\n\tdir: z.enum([\n\t\t\"in\",\n\t\t\"out\",\n\t\t\"inOut\"\n\t]),\n\tparams: z.array(z.number()).optional()\n}).strict().superRefine((data, ctx) => {\n\tif (data.name === \"spring\" && data.params) {\n\t\tconst [damping, stiffness, mass] = data.params;\n\t\tif (damping !== void 0 && damping <= 0) ctx.addIssue({\n\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\tmessage: \"Spring damping must be greater than 0.\",\n\t\t\tpath: [\"params\", 0]\n\t\t});\n\t\tif (stiffness !== void 0 && stiffness <= 0) ctx.addIssue({\n\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\tmessage: \"Spring stiffness must be greater than 0.\",\n\t\t\tpath: [\"params\", 1]\n\t\t});\n\t\tif (mass !== void 0 && mass <= 0) ctx.addIssue({\n\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\tmessage: \"Spring mass must be greater than 0.\",\n\t\t\tpath: [\"params\", 2]\n\t\t});\n\t}\n});\nconst KeyframeSchema = z.object({\n\tid: z.string().min(1),\n\tframe: z.number().int().min(0),\n\tvalue: z.union([\n\t\tz.number(),\n\t\tz.boolean(),\n\t\tz.string()\n\t]),\n\tease: EaseRefSchema.optional(),\n\tpresetGroupId: z.string().optional(),\n\tpresetType: z.string().optional(),\n\tspatialTangentIn: z.object({\n\t\tx: z.number(),\n\t\ty: z.number()\n\t}).optional(),\n\tspatialTangentOut: z.object({\n\t\tx: z.number(),\n\t\ty: z.number()\n\t}).optional()\n}).strict();\nconst SignalModeSchema = z.enum([\"continuous\", \"accumulate\"]);\nconst RawTrackSourceSchema = z.discriminatedUnion(\"type\", [\n\tz.object({ type: z.literal(\"keyframe\") }),\n\tz.object({\n\t\ttype: z.literal(\"signal\"),\n\t\tinputHandleId: z.string(),\n\t\tmultiplier: z.number().default(1),\n\t\toffset: z.number().default(0),\n\t\tsmoothingWindowFrames: z.number().min(0).default(0),\n\t\tcolorMode: SignalColorModeSchema.optional(),\n\t\tcolorA: z.string().optional(),\n\t\tcolorB: z.string().optional(),\n\t\tcolorThreshold: z.number().optional(),\n\t\tsignalMode: SignalModeSchema.optional(),\n\t\tthreshold: z.number().optional(),\n\t\taccumulateThreshold: z.number().optional(),\n\t\tdebounceFrames: z.number().int().min(0).optional(),\n\t\tchannel: z.string().optional()\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"wiggle\"),\n\t\tfrequency: z.number().default(2),\n\t\tamplitude: z.number().default(50),\n\t\toctaves: z.number().int().min(1).max(4).default(1),\n\t\tseed: z.number().default(1234)\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"springOvershoot\"),\n\t\tdamping: z.number().default(12),\n\t\tstiffness: z.number().default(180),\n\t\tmass: z.number().default(1)\n\t})\n]);\nconst TrackSourceSchema = z.preprocess((val) => {\n\tif (!val || typeof val !== \"object\") return val;\n\tconst obj = val;\n\tif (obj.type === \"signal\") {\n\t\tconst thresh = typeof obj.threshold === \"number\" ? obj.threshold : typeof obj.accumulateThreshold === \"number\" ? obj.accumulateThreshold : .15;\n\t\treturn {\n\t\t\ttype: \"signal\",\n\t\t\tinputHandleId: obj.inputHandleId ?? obj.handleId,\n\t\t\tmultiplier: obj.multiplier ?? obj.amplitude ?? 1,\n\t\t\toffset: obj.offset ?? 0,\n\t\t\tsmoothingWindowFrames: obj.smoothingWindowFrames ?? obj.smoothing ?? 0,\n\t\t\tcolorMode: obj.colorMode,\n\t\t\tcolorA: obj.colorA,\n\t\t\tcolorB: obj.colorB,\n\t\t\tcolorThreshold: obj.colorThreshold,\n\t\t\tsignalMode: obj.signalMode ?? \"continuous\",\n\t\t\tthreshold: thresh,\n\t\t\taccumulateThreshold: thresh,\n\t\t\tdebounceFrames: obj.debounceFrames ?? 2,\n\t\t\tchannel: typeof obj.channel === \"string\" ? obj.channel : \"primary\"\n\t\t};\n\t}\n\treturn val;\n}, RawTrackSourceSchema);\nconst animationInvariants = (anim, ctx) => {\n\tif (!anim?.tracks) return;\n\tfor (let tIdx = 0; tIdx < anim.tracks.length; tIdx++) {\n\t\tconst track = anim.tracks[tIdx];\n\t\tconst keyframes = track.keyframes ?? [];\n\t\tif ((!track.source || track.source.type === \"keyframe\") && keyframes.length < 1) ctx.addIssue({\n\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\tmessage: `Track for property '${track.prop}' must have at least 1 keyframe.`,\n\t\t\tpath: [\n\t\t\t\t\"tracks\",\n\t\t\t\ttIdx,\n\t\t\t\t\"keyframes\"\n\t\t\t]\n\t\t});\n\t\tconst isDiscrete = track.prop === \"hidden\" || track.prop === \"muted\";\n\t\tconst isColor = track.prop === \"fillColor\" || track.prop === \"strokeColor\" || track.prop === \"fill\" || track.prop === \"color\";\n\t\tfor (let kIdx = 0; kIdx < keyframes.length; kIdx++) {\n\t\t\tconst kf = keyframes[kIdx];\n\t\t\tif (kIdx > 0) {\n\t\t\t\tconst prevKf = keyframes[kIdx - 1];\n\t\t\t\tif (kf.frame < prevKf.frame) ctx.addIssue({\n\t\t\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\t\t\tmessage: \"Keyframes must be sorted in ascending order of frame.\",\n\t\t\t\t\tpath: [\n\t\t\t\t\t\t\"tracks\",\n\t\t\t\t\t\ttIdx,\n\t\t\t\t\t\t\"keyframes\",\n\t\t\t\t\t\tkIdx\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t\telse if (kf.frame === prevKf.frame) ctx.addIssue({\n\t\t\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\t\t\tmessage: \"Duplicate keyframes at the same frame are not allowed.\",\n\t\t\t\t\tpath: [\n\t\t\t\t\t\t\"tracks\",\n\t\t\t\t\t\ttIdx,\n\t\t\t\t\t\t\"keyframes\",\n\t\t\t\t\t\tkIdx\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst valType = typeof kf.value;\n\t\t\tif (isDiscrete) {\n\t\t\t\tif (valType !== \"boolean\") ctx.addIssue({\n\t\t\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\t\t\tmessage: `Keyframe value for discrete property '${track.prop}' must be a boolean.`,\n\t\t\t\t\tpath: [\n\t\t\t\t\t\t\"tracks\",\n\t\t\t\t\t\ttIdx,\n\t\t\t\t\t\t\"keyframes\",\n\t\t\t\t\t\tkIdx,\n\t\t\t\t\t\t\"value\"\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t} else if (isColor) {\n\t\t\t\tif (valType !== \"string\") ctx.addIssue({\n\t\t\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\t\t\tmessage: `Keyframe value for color property '${track.prop}' must be a string.`,\n\t\t\t\t\tpath: [\n\t\t\t\t\t\t\"tracks\",\n\t\t\t\t\t\ttIdx,\n\t\t\t\t\t\t\"keyframes\",\n\t\t\t\t\t\tkIdx,\n\t\t\t\t\t\t\"value\"\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t} else if (valType !== \"number\" || Number.isNaN(kf.value) || !Number.isFinite(kf.value)) ctx.addIssue({\n\t\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\t\tmessage: `Keyframe value for numeric property '${track.prop}' must be a finite number.`,\n\t\t\t\tpath: [\n\t\t\t\t\t\"tracks\",\n\t\t\t\t\ttIdx,\n\t\t\t\t\t\"keyframes\",\n\t\t\t\t\tkIdx,\n\t\t\t\t\t\"value\"\n\t\t\t\t]\n\t\t\t});\n\t\t\telse if ((track.prop === \"volume\" || track.prop === \"trimStart\" || track.prop === \"trimEnd\") && (kf.value < 0 || kf.value > 1)) ctx.addIssue({\n\t\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\t\tmessage: `Keyframe value for property '${track.prop}' must be between 0 and 1.`,\n\t\t\t\tpath: [\n\t\t\t\t\t\"tracks\",\n\t\t\t\t\ttIdx,\n\t\t\t\t\t\"keyframes\",\n\t\t\t\t\tkIdx,\n\t\t\t\t\t\"value\"\n\t\t\t\t]\n\t\t\t});\n\t\t}\n\t}\n};\nconst AnimationTrackSchema = z.object({\n\tid: z.string().min(1),\n\tprop: AnimatablePropSchema,\n\tsource: TrackSourceSchema.optional(),\n\tkeyframes: z.array(KeyframeSchema).default([]),\n\trepeat: z.number().int().optional(),\n\tyoyo: z.boolean().optional(),\n\tdurationFrames: z.number().int().min(1).optional()\n}).strict();\nconst LayerAnimationSchema = z.object({\n\ttracks: z.array(AnimationTrackSchema).max(24),\n\tframeStep: z.number().int().min(1).max(24).optional()\n}).strict().superRefine(animationInvariants);\nconst BaseNodeFields = {\n\tid: z.string().min(1),\n\tinputHandleId: z.string().optional(),\n\tposition: z.enum([\"relative\", \"absolute\"]).default(\"relative\"),\n\tx: z.union([z.number(), z.custom()]).default(0),\n\ty: z.union([z.number(), z.custom()]).default(0),\n\twidth: SizeSpecSchema.optional(),\n\theight: SizeSpecSchema.optional(),\n\tgrow: z.number().min(0).optional(),\n\tflexShrink: z.number().min(0).optional(),\n\tflexBasis: z.number().min(0).optional(),\n\talignSelf: z.enum([\n\t\t\"auto\",\n\t\t\"start\",\n\t\t\"center\",\n\t\t\"end\",\n\t\t\"stretch\",\n\t\t\"baseline\"\n\t]).optional(),\n\taspectRatio: z.number().positive().optional(),\n\tzIndex: z.number().int().default(0),\n\thidden: z.boolean().default(false),\n\topacity: z.number().min(0).max(1).default(1),\n\tblendMode: z.string().optional(),\n\teffects: z.array(EffectSpecSchema).optional(),\n\trotation: z.number().default(0),\n\tscale: z.number().min(0).default(1),\n\tscaleX: z.number().default(1),\n\tscaleY: z.number().default(1),\n\tanchorX: z.number().min(0).max(1).default(.5),\n\tanchorY: z.number().min(0).max(1).default(.5),\n\tstartFrame: z.number().int().min(0).default(0),\n\tdurationFrames: z.number().int().min(1).optional(),\n\tmotionBlurShutter: z.number().min(0).max(360).optional(),\n\trotateX: z.number().default(0),\n\trotateY: z.number().default(0),\n\trotateZ: z.number().default(0),\n\tperspective: z.number().min(0).default(0),\n\tperspectiveOriginX: z.number().default(.5),\n\tperspectiveOriginY: z.number().default(.5),\n\ttranslateZ: z.number().default(0),\n\tbackfaceVisibility: z.enum([\"visible\", \"hidden\"]).default(\"visible\"),\n\ttransformStyle: z.enum([\"flat\", \"preserve-3d\"]).default(\"flat\"),\n\tis3D: z.boolean().default(false),\n\tz: z.union([z.number(), z.custom()]).default(0),\n\tscaleZ: z.number().default(1),\n\ttwoSided: z.boolean().default(true),\n\tmaterial: MaterialTypeSchema.default(\"lit\"),\n\tior: z.number().min(1).max(3).optional(),\n\troughness: z.number().min(0).max(1).optional(),\n\tshininess: z.number().min(1).max(512).default(32),\n\tspecularIntensity: z.number().min(0).default(.5),\n\tmetallic: z.number().min(0).max(1).optional(),\n\tambientIntensity: z.number().min(0).default(1),\n\ttransmission: z.number().min(0).max(1).optional(),\n\tdispersion: z.number().min(0).max(1).optional(),\n\tfresnelPower: z.number().min(1).max(10).optional(),\n\tenvIntensity: z.number().min(0).max(10).optional(),\n\temissive: ColorSchema.optional(),\n\temissiveIntensity: z.number().min(0).optional(),\n\tcastShadow: z.boolean().optional(),\n\tmatte: z.object({\n\t\tnode: z.custom((v) => typeof v === \"object\" && v !== null),\n\t\tmode: MatteModeSchema.optional()\n\t}).optional(),\n\tmatteId: z.string().optional(),\n\tmatteOf: z.string().optional(),\n\tmatteMode: MatteModeSchema.optional(),\n\tanimation: LayerAnimationSchema.default({ tracks: [] }),\n\tvision: z.unknown().optional(),\n\trelighting: z.unknown().optional()\n};\nconst TextShadowSchema = z.object({\n\tcolor: ColorSchema,\n\toffset: z.object({\n\t\tx: z.number(),\n\t\ty: z.number()\n\t}).optional(),\n\tblurRadius: z.number().min(0).optional()\n}).strict();\nconst TextAnimatorTransformSchema = z.object({\n\tx: z.number().optional(),\n\ty: z.number().optional(),\n\tscale: z.number().optional(),\n\tscaleX: z.number().optional(),\n\tscaleY: z.number().optional(),\n\trotation: z.number().optional(),\n\trotationX: z.number().optional(),\n\trotationY: z.number().optional(),\n\topacity: z.number().optional(),\n\tblur: z.number().optional(),\n\tcolor: z.string().optional()\n}).strict();\nconst TextAnimatorSchema = z.object({\n\tid: z.string(),\n\tunit: z.enum([\n\t\t\"character\",\n\t\t\"word\",\n\t\t\"line\"\n\t]).default(\"character\"),\n\trangeStart: z.number().min(0).max(1).default(0),\n\trangeEnd: z.number().min(0).max(1).default(1),\n\toffset: z.number().min(-1).max(1).default(0),\n\teasing: z.string().default(\"power2.out\"),\n\ttransform: TextAnimatorTransformSchema.optional()\n});\nconst TextAnimator = {\n\twaveRise(options = {}) {\n\t\treturn {\n\t\t\tid: options.id ?? \"wave-rise\",\n\t\t\tunit: options.unit ?? \"character\",\n\t\t\trangeStart: options.rangeStart ?? 0,\n\t\t\trangeEnd: options.rangeEnd ?? 1,\n\t\t\toffset: options.offset ?? -1,\n\t\t\teasing: options.easing ?? \"power2.out\",\n\t\t\ttransform: {\n\t\t\t\ty: options.y ?? 40,\n\t\t\t\trotationX: options.rotationX ?? 45,\n\t\t\t\topacity: options.opacity ?? 0,\n\t\t\t\tblur: options.blur ?? 0\n\t\t\t}\n\t\t};\n\t},\n\twordPop(options = {}) {\n\t\treturn {\n\t\t\tid: options.id ?? \"word-pop\",\n\t\t\tunit: \"word\",\n\t\t\trangeStart: 0,\n\t\t\trangeEnd: 1,\n\t\t\toffset: -1,\n\t\t\teasing: options.easing ?? \"back.out(1.6)\",\n\t\t\ttransform: {\n\t\t\t\tscale: options.scale ?? 0,\n\t\t\t\ty: options.y ?? 20,\n\t\t\t\topacity: 0\n\t\t\t}\n\t\t};\n\t},\n\tblurIn(options = {}) {\n\t\treturn {\n\t\t\tid: options.id ?? \"blur-in\",\n\t\t\tunit: options.unit ?? \"character\",\n\t\t\trangeStart: 0,\n\t\t\trangeEnd: 1,\n\t\t\toffset: -1,\n\t\t\teasing: options.easing ?? \"power3.out\",\n\t\t\ttransform: {\n\t\t\t\tblur: options.blur ?? 16,\n\t\t\t\ty: options.y ?? 20,\n\t\t\t\topacity: options.opacity ?? 0\n\t\t\t}\n\t\t};\n\t},\n\tflip3D(options = {}) {\n\t\treturn {\n\t\t\tid: options.id ?? \"flip-3d\",\n\t\t\tunit: options.unit ?? \"character\",\n\t\t\trangeStart: 0,\n\t\t\trangeEnd: 1,\n\t\t\toffset: -1,\n\t\t\teasing: options.easing ?? \"back.out(1.4)\",\n\t\t\ttransform: {\n\t\t\t\trotationX: options.rotationX ?? 90,\n\t\t\t\topacity: 0\n\t\t\t}\n\t\t};\n\t},\n\tcolorSweep(options) {\n\t\treturn {\n\t\t\tid: options.id ?? \"color-sweep\",\n\t\t\tunit: options.unit ?? \"character\",\n\t\t\trangeStart: 0,\n\t\t\trangeEnd: .5,\n\t\t\toffset: -.5,\n\t\t\teasing: options.easing ?? \"power2.inOut\",\n\t\t\ttransform: { color: options.color }\n\t\t};\n\t}\n};\nconst CameraLensSchema = z.object({\n\tfocalLength: z.number().min(5).max(500).default(50),\n\tfov: z.number().min(5).max(160).optional(),\n\tsensorWidth: z.number().default(36),\n\tnear: z.number().min(.1).default(1),\n\tfar: z.number().min(10).default(5e4),\n\tzoom: z.number().min(.01).default(1)\n}).strict();\nconst CameraDoFSchema = z.object({\n\tenabled: z.boolean().default(false),\n\tfocusDistance: z.number().min(1).default(1e3),\n\tfStop: z.number().min(.5).max(64).default(2.8),\n\tmaxBlurRadius: z.number().min(0).max(128).default(32),\n\tapertureBlades: z.number().int().min(0).max(12).default(0),\n\tanamorphicRatio: z.number().min(.5).max(3).default(1)\n}).strict();\nconst CameraShakeSchema = z.object({\n\ttranslationAmplitude: z.number().min(0).default(0),\n\trotationAmplitude: z.number().min(0).default(0),\n\tfrequency: z.number().min(.1).max(60).default(2.5),\n\toctaves: z.number().int().min(1).max(6).default(3),\n\tseed: z.number().default(42)\n}).strict();\nconst CameraNodeSchema = z.object({\n\tid: z.string().min(1),\n\tkind: z.literal(\"camera\"),\n\tmode: z.enum([\n\t\t\"lookAt\",\n\t\t\"free\",\n\t\t\"orbit\"\n\t]).default(\"lookAt\"),\n\tx: z.number().optional(),\n\ty: z.number().optional(),\n\tz: z.number().optional(),\n\ttargetX: z.number().optional(),\n\ttargetY: z.number().optional(),\n\ttargetZ: z.number().optional(),\n\tpitch: z.number().default(0),\n\tyaw: z.number().default(0),\n\troll: z.number().default(0),\n\tlens: CameraLensSchema.optional(),\n\tdof: CameraDoFSchema.optional(),\n\tshake: CameraShakeSchema.optional(),\n\tstartFrame: z.number().int().min(0).default(0),\n\tdurationFrames: z.number().int().min(1).optional(),\n\tanimation: LayerAnimationSchema.default({ tracks: [] })\n}).strict();\nconst LightTypeSchema = z.enum([\n\t\"ambient\",\n\t\"directional\",\n\t\"point\",\n\t\"spot\",\n\t\"environment\"\n]);\nconst EnvironmentPresetSchema = z.enum([\n\t\"studio\",\n\t\"soft\",\n\t\"sunset\",\n\t\"night\",\n\t\"neutral\"\n]);\nconst ToneMappingSchema = z.enum([\n\t\"neutral\",\n\t\"agx\",\n\t\"aces\",\n\t\"none\"\n]);\nconst EnvironmentFogSchema = z.object({\n\tcolor: ColorSchema,\n\tstart: z.number().min(0),\n\tend: z.number().min(0),\n\topacity: z.number().min(0).max(1).optional()\n}).strict();\nconst BloomConfigSchema = z.object({\n\tintensity: z.number().min(0).max(10).optional(),\n\tthreshold: z.number().min(0).max(16).optional(),\n\tknee: z.number().min(0).max(1).optional(),\n\tradius: z.number().min(1).max(8).optional()\n}).strict();\nconst LightNodeSchema = z.object({\n\tid: z.string().min(1),\n\tkind: z.literal(\"light\"),\n\tlightType: LightTypeSchema.default(\"directional\"),\n\tcolor: ColorSchema.default(\"#ffffff\"),\n\tintensity: z.number().default(1),\n\tx: z.number().optional(),\n\ty: z.number().optional(),\n\tz: z.number().optional(),\n\ttargetX: z.number().optional(),\n\ttargetY: z.number().optional(),\n\ttargetZ: z.number().optional(),\n\tdirection: z.tuple([\n\t\tz.number(),\n\t\tz.number(),\n\t\tz.number()\n\t]).optional(),\n\tradius: z.number().min(0).default(1e3),\n\tdecay: z.number().min(0).default(2),\n\tangle: z.number().min(0).max(180).default(45),\n\tpenumbra: z.number().min(0).max(1).default(.2),\n\tcastShadow: z.boolean().optional(),\n\tshadowSoftness: z.number().min(0).max(64).optional(),\n\tshadowDarkness: z.number().min(0).max(1).optional(),\n\tshadowMapSize: z.number().int().min(256).max(8192).optional(),\n\tpreset: EnvironmentPresetSchema.optional(),\n\ttop: ColorSchema.optional(),\n\thorizon: ColorSchema.optional(),\n\tbottom: ColorSchema.optional(),\n\tsoftboxes: z.number().min(0).optional(),\n\trotation: z.number().optional(),\n\texposure: z.number().min(-16).max(16).optional(),\n\ttoneMapping: ToneMappingSchema.optional(),\n\tfog: EnvironmentFogSchema.optional(),\n\tbloom: z.union([z.boolean(), BloomConfigSchema]).optional(),\n\tstartFrame: z.number().int().min(0).default(0),\n\tdurationFrames: z.number().int().min(1).optional(),\n\tanimation: LayerAnimationSchema.default({ tracks: [] })\n}).strict();\nconst containerChildren = () => z.array(z.lazy(() => LayoutNodeSchema));\nconst FlexNodeSchema = z.object({\n\t...BaseNodeFields,\n\tkind: z.literal(\"flex\"),\n\tdir: z.enum([\"row\", \"column\"]).default(\"row\"),\n\tgap: z.number().min(0).default(0),\n\tpadding: z.number().min(0).default(0),\n\tjustify: z.enum([\n\t\t\"start\",\n\t\t\"center\",\n\t\t\"end\",\n\t\t\"space-between\",\n\t\t\"space-around\"\n\t]).default(\"start\"),\n\talign: z.enum([\n\t\t\"start\",\n\t\t\"center\",\n\t\t\"end\",\n\t\t\"stretch\"\n\t]).default(\"start\"),\n\twrap: z.boolean().default(false),\n\tstaggerFrames: z.number().min(0).default(0),\n\tstaggerDirection: z.enum([\n\t\t\"forward\",\n\t\t\"reverse\",\n\t\t\"center-out\"\n\t]).default(\"forward\"),\n\toverflow: z.enum([\"visible\", \"hidden\"]).default(\"hidden\"),\n\tbackground: ColorSchema.optional(),\n\tborderRadius: z.number().min(0).optional(),\n\tborderColor: ColorSchema.optional(),\n\tborderWidth: z.number().min(0).optional(),\n\tstrokeAlign: z.enum([\n\t\t\"inside\",\n\t\t\"center\",\n\t\t\"outside\"\n\t]).optional(),\n\tstrokeRadius: z.number().min(0).optional(),\n\tchildren: containerChildren().optional()\n}).strict();\nconst BlockNodeSchema = z.object({\n\t...BaseNodeFields,\n\tkind: z.literal(\"block\"),\n\tgap: z.number().min(0).default(0),\n\tpadding: z.number().min(0).default(0),\n\talign: z.enum([\n\t\t\"start\",\n\t\t\"center\",\n\t\t\"end\",\n\t\t\"stretch\"\n\t]).default(\"start\"),\n\tstaggerFrames: z.number().min(0).default(0),\n\tstaggerDirection: z.enum([\n\t\t\"forward\",\n\t\t\"reverse\",\n\t\t\"center-out\"\n\t]).default(\"forward\"),\n\toverflow: z.enum([\"visible\", \"hidden\"]).default(\"hidden\"),\n\tbackground: ColorSchema.optional(),\n\tborderRadius: z.number().min(0).optional(),\n\tborderColor: ColorSchema.optional(),\n\tborderWidth: z.number().min(0).optional(),\n\tstrokeAlign: z.enum([\n\t\t\"inside\",\n\t\t\"center\",\n\t\t\"outside\"\n\t]).optional(),\n\tstrokeRadius: z.number().min(0).optional(),\n\tchildren: containerChildren().optional()\n}).strict();\nconst BoxNodeSchema = z.object({\n\t...BaseNodeFields,\n\tkind: z.literal(\"box\"),\n\tbackground: ColorSchema,\n\tborderRadius: z.number().min(0).optional(),\n\tpadding: z.number().min(0).default(0),\n\tstaggerFrames: z.number().min(0).default(0),\n\tstaggerDirection: z.enum([\n\t\t\"forward\",\n\t\t\"reverse\",\n\t\t\"center-out\"\n\t]).default(\"forward\"),\n\toverflow: z.enum([\"visible\", \"hidden\"]).default(\"hidden\"),\n\tborderColor: ColorSchema.optional(),\n\tborderWidth: z.number().min(0).optional(),\n\tstrokeAlign: z.enum([\n\t\t\"inside\",\n\t\t\"center\",\n\t\t\"outside\"\n\t]).optional(),\n\tstrokeRadius: z.number().min(0).optional(),\n\tchildren: containerChildren().optional()\n}).strict();\nconst TextSpanMarkSchema = z.object({\n\tbackground: ColorSchema,\n\tborderRadius: z.number().min(0).optional(),\n\tpaddingX: z.number().min(0).optional(),\n\tpaddingY: z.number().min(0).optional()\n}).strict();\nconst TextSpanSchema = z.object({\n\ttext: z.union([z.string(), z.custom((v) => Boolean(v && typeof v === \"object\" && \"get\" in v))]),\n\tfontFamily: z.string().optional(),\n\tfontSize: z.union([z.number().positive(), z.custom((v) => Boolean(v && typeof v === \"object\" && \"get\" in v))]).optional(),\n\tfontWeight: z.union([z.number().int(), z.string()]).optional(),\n\tfontStyle: z.enum([\"normal\", \"italic\"]).optional(),\n\tfill: z.union([ColorSchema, z.custom((v) => Boolean(v && typeof v === \"object\" && \"get\" in v))]).optional(),\n\tletterSpacing: z.number().optional(),\n\tbaselineShift: z.number().optional(),\n\topacity: z.union([z.number().min(0).max(1), z.custom((v) => Boolean(v && typeof v === \"object\" && \"get\" in v))]).optional(),\n\tmark: TextSpanMarkSchema.optional()\n}).strict();\nconst TextFields = {\n\ttext: z.string().default(\"\"),\n\tspans: z.array(TextSpanSchema).optional(),\n\tfontFamily: z.string().optional(),\n\tfontSize: z.number().positive().optional(),\n\tfontWeight: z.union([z.number().int(), z.string()]).optional(),\n\tfontStyle: z.string().optional(),\n\tfill: ColorSchema,\n\talign: z.enum([\n\t\t\"start\",\n\t\t\"center\",\n\t\t\"end\"\n\t]).optional(),\n\tdirection: z.enum([\n\t\t\"ltr\",\n\t\t\"rtl\",\n\t\t\"auto\"\n\t]).optional(),\n\tverticalAlign: z.enum([\n\t\t\"top\",\n\t\t\"middle\",\n\t\t\"bottom\"\n\t]).optional(),\n\tlineHeight: z.number().positive().optional(),\n\tletterSpacing: z.number().optional(),\n\tbackground: ColorSchema,\n\tborderRadius: z.number().min(0).optional(),\n\tpadding: z.number().min(0).optional(),\n\tstroke: ColorSchema,\n\tstrokeWidth: z.number().min(0).optional(),\n\tstrokeAlign: z.enum([\n\t\t\"inside\",\n\t\t\"center\",\n\t\t\"outside\"\n\t]).optional(),\n\ttextShadow: z.string().optional(),\n\tshadows: z.array(TextShadowSchema).optional(),\n\tpathOptions: TextPathOptionsSchema.optional(),\n\ttypewriter: TypewriterAnimatorSchema.optional(),\n\tmarquee: KineticMarqueeConfigSchema.optional(),\n\tanimators: z.array(z.union([\n\t\tTextAnimatorSchema,\n\t\tAETextAnimatorSchema,\n\t\tAdvancedTextAnimatorSchema\n\t])).optional()\n};\nconst TextNodeSchema = z.object({\n\t...BaseNodeFields,\n\t...TextFields,\n\tkind: z.literal(\"text\")\n}).strict();\nconst MediaNodeSchema = z.object({\n\t...BaseNodeFields,\n\tkind: z.literal(\"media\"),\n\tinputHandleId: z.string().min(1),\n\tsrc: z.string().optional(),\n\tdataType: z.string().optional(),\n\tfit: z.enum([\n\t\t\"cover\",\n\t\t\"contain\",\n\t\t\"fill\",\n\t\t\"none\"\n\t]).default(\"contain\"),\n\tdpr: z.number().min(1).max(4).optional(),\n\tborderRadius: z.number().min(0).optional(),\n\tborderColor: ColorSchema.optional(),\n\tborderWidth: z.number().min(0).optional(),\n\tstrokeAlign: z.enum([\n\t\t\"inside\",\n\t\t\"center\",\n\t\t\"outside\"\n\t]).optional(),\n\tstrokeRadius: z.number().min(0).optional(),\n\tvolume: z.number().min(0).max(1).default(1),\n\tmuted: z.boolean().default(false),\n\ttrimStartSec: z.number().min(0).optional(),\n\tfontFamily: z.string().optional(),\n\tfontSize: z.number().positive().optional(),\n\tfontWeight: z.union([z.number().int(), z.string()]).optional(),\n\tfontStyle: z.string().optional(),\n\tfill: ColorSchema,\n\talign: z.enum([\n\t\t\"start\",\n\t\t\"center\",\n\t\t\"end\"\n\t]).optional(),\n\tdirection: z.enum([\n\t\t\"ltr\",\n\t\t\"rtl\",\n\t\t\"auto\"\n\t]).optional(),\n\tverticalAlign: z.enum([\n\t\t\"top\",\n\t\t\"middle\",\n\t\t\"bottom\"\n\t]).optional(),\n\tlineHeight: z.number().positive().optional(),\n\tletterSpacing: z.number().optional(),\n\tbackground: ColorSchema,\n\tpadding: z.number().min(0).optional(),\n\tstroke: ColorSchema,\n\tstrokeWidth: z.number().min(0).optional(),\n\ttextShadow: z.string().optional(),\n\tshadows: z.array(TextShadowSchema).optional(),\n\tmaxWidth: z.number().optional()\n}).strict();\nconst ShapeFields = {\n\tshapeType: ShapeTypeSchema.default(\"rect\"),\n\tborderRadius: z.number().min(0).optional(),\n\tradiusTL: z.number().min(0).optional(),\n\tradiusTR: z.number().min(0).optional(),\n\tradiusBR: z.number().min(0).optional(),\n\tradiusBL: z.number().min(0).optional(),\n\tpolygonSides: z.number().int().min(3).max(64).optional(),\n\tstarPoints: z.number().int().min(3).max(64).optional(),\n\tstarInnerRadiusRatio: z.number().min(.01).max(.99).optional(),\n\tarrowHeadWidth: z.number().min(0).optional(),\n\tarrowHeadLength: z.number().min(0).optional(),\n\tarrowShaftWidth: z.number().min(1).optional(),\n\td: z.string().optional(),\n\tfillType: z.enum([\n\t\t\"solid\",\n\t\t\"linear\",\n\t\t\"radial\",\n\t\t\"none\"\n\t]).default(\"solid\"),\n\tfillColor: ColorSchema.default(\"#3b82f6\"),\n\tgradientEndColor: ColorSchema.optional(),\n\tgradientAngle: z.number().default(0),\n\tstrokeColor: ColorSchema.default(\"#ffffff\"),\n\tstrokeWidth: z.number().min(0).default(0),\n\tstrokeDashArray: z.string().optional(),\n\tstrokeDashOffset: z.number().default(0),\n\tstrokeLineCap: z.enum([\n\t\t\"butt\",\n\t\t\"round\",\n\t\t\"square\"\n\t]).default(\"round\"),\n\tstrokeLineJoin: z.enum([\n\t\t\"miter\",\n\t\t\"round\",\n\t\t\"bevel\"\n\t]).default(\"round\"),\n\tstrokeAlign: z.enum([\n\t\t\"inside\",\n\t\t\"center\",\n\t\t\"outside\"\n\t]).optional(),\n\ttrimStart: z.number().min(0).max(1).default(0),\n\ttrimEnd: z.number().min(0).max(1).default(1),\n\ttrimOffset: z.number().default(0)\n};\nconst ShapeNodeSchema = z.object({\n\t...BaseNodeFields,\n\t...ShapeFields,\n\tkind: z.literal(\"shape\")\n}).strict();\nconst ColorStopSchema = z.object({\n\toffset: z.number().min(0).max(1),\n\tcolor: z.string()\n});\nconst Model3DNodeSchema = z.object({\n\t...BaseNodeFields,\n\tkind: z.literal(\"model3d\"),\n\tsrc: z.string().default(\"\"),\n\tmodelFormat: z.enum([\n\t\t\"obj\",\n\t\t\"fbx\",\n\t\t\"gltf\",\n\t\t\"glb\",\n\t\t\"stl\",\n\t\t\"ply\",\n\t\t\"vox\",\n\t\t\"3ds\",\n\t\t\"off\",\n\t\t\"auto\"\n\t]).default(\"auto\"),\n\tmodelData: z.unknown().optional(),\n\tanimationName: z.string().optional(),\n\tanimationProgress: z.number().min(0).max(1).default(0),\n\tanimationTime: z.number().min(0).default(0),\n\tanimationSpeed: z.number().default(1),\n\tloop: z.boolean().default(true),\n\twireframe: z.boolean().default(false),\n\ttexture: z.string().optional(),\n\tcenter: z.boolean().optional(),\n\tnormalizeSize: z.number().optional(),\n\tscaleX: z.number().default(1),\n\tscaleY: z.number().default(1),\n\taudioDeform: z.record(z.string(), z.unknown()).optional(),\n\tcolor: ColorSchema.optional(),\n\tcolorTint: ColorSchema.optional(),\n\ttext3dOptions: z.unknown().optional(),\n\tprimitive3d: z.unknown().optional()\n}).strict();\n/**\n* Dispatch on `kind`, not a plain union: a plain union tries every member,\n* and each member parses `children` before failing, so parse time grows\n* ~3x per nesting level (a depth-14 tree took minutes). The node schemas\n* are typed `ZodType<…>` for their recursive types, but each is a strict\n* object with a `kind` literal, which is all `discriminatedUnion` reads.\n*/\nconst LayoutNodeSchema = z.lazy(() => z.discriminatedUnion(\"kind\", [\n\tFlexNodeSchema,\n\tBlockNodeSchema,\n\tBoxNodeSchema,\n\tTextNodeSchema,\n\tMediaNodeSchema,\n\tShapeNodeSchema,\n\tCameraNodeSchema,\n\tLightNodeSchema,\n\tModel3DNodeSchema\n]));\nconst CompositorProgramSchema = z.object({\n\twidth: z.number().int().min(1).max(4096),\n\theight: z.number().int().min(1).max(4096),\n\tbackgroundColor: ColorSchema,\n\tvolume: z.number().min(0).max(1).default(1),\n\tfps: z.number().int().min(1).max(120).default(24),\n\tmode: z.enum([\"Video\", \"Image\"]).default(\"Video\"),\n\tantialias3d: z.boolean().optional(),\n\tlayout: z.array(LayoutNodeSchema).default([]),\n\tfonts: z.array(z.string()).optional(),\n\tsignals: z.record(z.string(), z.unknown()).optional(),\n\teffects: z.array(EffectSpecSchema).optional(),\n\tvision: z.unknown().optional(),\n\tonRequestFrame: z.custom().optional()\n}).strict();\n\n//#endregion\n//#region src/program/sequence.ts\n/**\n* @file program/sequence.ts\n* @module @framefields/compositions/program/sequence\n*\n* Multi-Scene Timeline Orchestration, Camera Choreography & Carrier Match Cuts.\n* Complies with specs/cinematic-sequencing.ts.\n*/\n/**\n* Camera Transition Type across scene boundaries.\n*\n* @deprecated Recorded on scenes but not rendered. Use framefields'\n* `Layer.sequence([...])` with `Transition.push` / `wipe` / `iris` /\n* `crossfade` / `zoom` / `whip`, which render as keyframes and mattes.\n*/\nconst SceneTransitionTypeSchema = z.enum([\n\t\"cut\",\n\t\"carrierMatchCut\",\n\t\"cameraWhip\",\n\t\"focusPullDissolve\",\n\t\"irisAperture\",\n\t\"pushDirectional\"\n]);\n/**\n* Carrier Object Handoff Configuration Schema.\n*/\nconst CarrierHandoffConfigSchema = z.object({\n\tsourceLayerId: z.string(),\n\ttargetLayerId: z.string(),\n\tmode: z.enum([\n\t\t\"exact\",\n\t\t\"preserveVelocity\",\n\t\t\"morph\"\n\t]).default(\"preserveVelocity\"),\n\tblendFrames: z.number().int().min(0).max(30).default(0)\n}).strict();\n/**\n* Individual Scene Definition Schema.\n*/\nconst SceneDefinitionSchema = z.object({\n\tid: z.string(),\n\tchapter: z.enum([\n\t\t\"hook\",\n\t\t\"tension\",\n\t\t\"solution\",\n\t\t\"feature_spotlight\",\n\t\t\"outro\",\n\t\t\"custom\"\n\t]).default(\"custom\"),\n\tdurationMs: z.number().positive().optional(),\n\tdurationFrames: z.number().int().positive().optional(),\n\ttransitionOut: z.object({\n\t\ttype: SceneTransitionTypeSchema.default(\"cut\"),\n\t\tdurationFrames: z.number().int().min(0).default(0),\n\t\tcarrier: CarrierHandoffConfigSchema.optional(),\n\t\twhipDirection: z.enum([\n\t\t\t\"left\",\n\t\t\t\"right\",\n\t\t\t\"up\",\n\t\t\t\"down\"\n\t\t]).default(\"left\")\n\t}).default({\n\t\ttype: \"cut\",\n\t\tdurationFrames: 0,\n\t\twhipDirection: \"left\"\n\t})\n}).passthrough();\nfunction computeCarrierContinuity(stateAtCut, targetInitialState) {\n\treturn {\n\t\tx: stateAtCut.x,\n\t\ty: stateAtCut.y,\n\t\tscale: stateAtCut.scale,\n\t\tvx: stateAtCut.vx,\n\t\tvy: stateAtCut.vy,\n\t\t...targetInitialState\n\t};\n}\n/**\n* Calculates global scene offsets and handoff frames across a sequence.\n*/\nfunction calculateSequenceTimeline(scenes, fps = 60) {\n\tlet accumulatedFrame = 0;\n\tconst offsets = [];\n\tfor (const scene of scenes) {\n\t\tconst startFrame = accumulatedFrame;\n\t\tconst dur = scene.durationFrames ?? (scene.durationMs ? Math.round(scene.durationMs / 1e3 * fps) : 60);\n\t\toffsets.push({\n\t\t\tsceneId: scene.id,\n\t\t\tstartFrame,\n\t\t\tdurationFrames: dur\n\t\t});\n\t\tconst overlap = scene.transitionOverlap ?? scene.transitionOut?.durationFrames ?? 0;\n\t\taccumulatedFrame += Math.max(1, dur - overlap);\n\t}\n\tconst totalFrames = accumulatedFrame;\n\treturn {\n\t\ttotalFrames,\n\t\ttotalDurationMs: Math.round(totalFrames / fps * 1e3),\n\t\tsceneOffsets: offsets\n\t};\n}\nvar Scene = class Scene {\n\tid;\n\tchapter;\n\tdurationMs;\n\tdurationFrames;\n\ttransitionOut;\n\tlayout;\n\tconstructor(options) {\n\t\tthis.id = options.id;\n\t\tthis.chapter = options.chapter ?? \"custom\";\n\t\tthis.durationMs = options.durationMs;\n\t\tthis.durationFrames = options.durationFrames;\n\t\tthis.transitionOut = {\n\t\t\ttype: options.transitionOut?.type ?? \"cut\",\n\t\t\tdurationFrames: options.transitionOut?.durationFrames ?? 0,\n\t\t\tcarrier: options.transitionOut?.carrier,\n\t\t\twhipDirection: options.transitionOut?.whipDirection ?? \"left\"\n\t\t};\n\t\tthis.layout = options.layout ?? [];\n\t}\n\tstatic create(options) {\n\t\treturn new Scene(options);\n\t}\n};\nvar Sequence = class Sequence {\n\tfps;\n\twidth;\n\theight;\n\tbackgroundColor;\n\tfonts;\n\tsignals;\n\tscenes = [];\n\tconstructor(options = {}) {\n\t\tthis.fps = options.fps ?? 60;\n\t\tthis.width = options.width ?? 1920;\n\t\tthis.height = options.height ?? 1080;\n\t\tthis.backgroundColor = options.backgroundColor ?? \"#ffffff\";\n\t\tthis.fonts = options.fonts;\n\t\tthis.signals = options.signals;\n\t\tif (options.scenes) for (const sc of options.scenes) this.addScene(sc);\n\t}\n\tstatic create(options = {}) {\n\t\treturn new Sequence(options);\n\t}\n\taddScene(scene) {\n\t\tconst s = scene instanceof Scene ? scene : new Scene(scene);\n\t\tthis.scenes.push(s);\n\t\treturn this;\n\t}\n\tgetScenes() {\n\t\treturn this.scenes;\n\t}\n\tcalculateTimeline() {\n\t\treturn calculateSequenceTimeline(this.scenes, this.fps);\n\t}\n\ttoProgram() {\n\t\tconst timeline = this.calculateTimeline();\n\t\tconst rootLayout = [];\n\t\tfor (let i = 0; i < this.scenes.length; i++) {\n\t\t\tconst scene = this.scenes[i];\n\t\t\tconst offset = timeline.sceneOffsets[i];\n\t\t\tif (!offset) continue;\n\t\t\tfor (const node of scene.layout) {\n\t\t\t\tconst cloned = { ...node };\n\t\t\t\tcloned.startFrame = (cloned.startFrame ?? 0) + offset.startFrame;\n\t\t\t\tif (cloned.durationFrames === void 0) cloned.durationFrames = offset.durationFrames;\n\t\t\t\trootLayout.push(cloned);\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\twidth: this.width,\n\t\t\theight: this.height,\n\t\t\tbackgroundColor: this.backgroundColor,\n\t\t\tfps: this.fps,\n\t\t\tvolume: 1,\n\t\t\tmode: \"Video\",\n\t\t\tlayout: rootLayout,\n\t\t\tfonts: this.fonts,\n\t\t\tsignals: this.signals\n\t\t};\n\t}\n};\n\n//#endregion\n//#region src/program/stagger.ts\n/**\n* Calculates the frame delay offset for a child at `index` in a container of `totalCount` items.\n*/\nfunction computeStaggerDelay(index, totalCount, staggerFrames, direction = \"forward\") {\n\tif (staggerFrames <= 0 || totalCount <= 1) return 0;\n\tswitch (direction) {\n\t\tcase \"reverse\": return (totalCount - 1 - index) * staggerFrames;\n\t\tcase \"center-out\": {\n\t\t\tconst center = (totalCount - 1) / 2;\n\t\t\tconst dist = Math.abs(index - center);\n\t\t\treturn Math.round(dist * staggerFrames);\n\t\t}\n\t\tcase \"forward\": return index * staggerFrames;\n\t\tdefault: return assertNever(direction);\n\t}\n}\n/**\n* Applies stagger timing offsets to child nodes, returning cloned objects with adjusted `startFrame`.\n*/\nfunction applyStaggerToChildren(children, staggerFrames, direction = \"forward\", baseOffset = 0) {\n\tif (!children || children.length === 0) return [];\n\tif (staggerFrames <= 0 && baseOffset === 0) return [...children];\n\treturn children.map((child, idx) => {\n\t\tconst delay = computeStaggerDelay(idx, children.length, staggerFrames, direction);\n\t\tconst currentStart = child.startFrame ?? 0;\n\t\treturn {\n\t\t\t...child,\n\t\t\tstartFrame: currentStart + delay + baseOffset\n\t\t};\n\t});\n}\n\n//#endregion\n//#region src/program/to-virtual-media.ts\n/**\n* The ONE constructor from document to render tree (spec: SKILL.md).\n*\n* A validated v2 program (`CompositorProgramConfig`) becomes the\n* `VirtualMediaData` tree the compositor renderer consumes. Every layout node\n* becomes a `CompositorLayer` op carrying its document fields verbatim\n* (id/kind/style/timing/animation); containers carry nested node ops as\n* children; media nodes bind their graph source as the content child when\n* resolved.\n*\n* Pure + deterministic: same doc → same tree. No width/height resolution\n* here — geometry comes from `computeLayout` at render time.\n*/\nfunction nodeToVirtualMedia(node, resolveMedia, fps, inheritedOffset = 0, compDurationMs, inheritedDurationFrames) {\n\tlet children = [];\n\tconst sourceRef = node.kind === \"media\" ? node.src ?? node.inputHandleId : \"inputHandleId\" in node ? node.inputHandleId : void 0;\n\tconst isDirectMediaSource = (s) => typeof s === \"string\" && (s.startsWith(\"http://\") || s.startsWith(\"https://\") || s.startsWith(\"file://\") || s.startsWith(\"/\") || s.startsWith(\"./\") || s.startsWith(\"blob:\") || s.startsWith(\"data:\") || /\\.(png|jpe?g|webp|gif|svg|mp4|webm|mov|mkv|mp3|wav|ogg|m4a|srt|vtt|json|lottie)$/i.test(s));\n\tlet media;\n\tif (node.kind === \"media\") {\n\t\tif (resolveMedia && node.inputHandleId) media = resolveMedia(node.inputHandleId);\n\t\tif (!media && sourceRef && (isDirectMediaSource(sourceRef) || Boolean(node.src))) media = createVirtualMedia(sourceRef, node.dataType ?? \"Video\");\n\t\tif (!media && !resolveMedia && sourceRef && (sourceRef.includes(\".\") || sourceRef.includes(\"/\"))) console.warn(`[Compositor] Media layer '${node.id ?? \"?\"}' source '${sourceRef}' could not be resolved.`);\n\t\tif (media && node.crop) {\n\t\t\tconst cropRaw = node.crop;\n\t\t\tconst cropOp = typeof cropRaw.toOperation === \"function\" ? cropRaw.toOperation() : cropRaw;\n\t\t\tmedia = {\n\t\t\t\tmetadata: { ...media.metadata },\n\t\t\t\toperation: {\n\t\t\t\t\top: \"Crop\",\n\t\t\t\t\t...cropOp,\n\t\t\t\t\tdataType: media.operation.dataType\n\t\t\t\t},\n\t\t\t\tchildren: [media]\n\t\t\t};\n\t\t}\n\t\tif (media && Array.isArray(node.effects)) {\n\t\t\tlet currentMedia = media;\n\t\t\tfor (const eff of node.effects) {\n\t\t\t\tconst effOp = eff && typeof eff.toOperation === \"function\" ? eff.toOperation() : eff;\n\t\t\t\tcurrentMedia = {\n\t\t\t\t\tmetadata: { ...currentMedia.metadata },\n\t\t\t\t\toperation: {\n\t\t\t\t\t\top: String(effOp.op ?? \"effect\"),\n\t\t\t\t\t\tid: node.id ? `${node.id}-${effOp.op ?? \"effect\"}` : void 0,\n\t\t\t\t\t\teffect: eff,\n\t\t\t\t\t\t...effOp,\n\t\t\t\t\t\tdataType: currentMedia.operation.dataType\n\t\t\t\t\t},\n\t\t\t\t\tchildren: [currentMedia]\n\t\t\t\t};\n\t\t\t}\n\t\t\tmedia = currentMedia;\n\t\t}\n\t\tif (media && node.vision) {\n\t\t\tconst visionRaw = node.vision;\n\t\t\tconst visionOp = typeof visionRaw.toOperation === \"function\" ? visionRaw.toOperation() : visionRaw;\n\t\t\tmedia = {\n\t\t\t\tmetadata: { ...media.metadata },\n\t\t\t\toperation: {\n\t\t\t\t\top: \"Vision\",\n\t\t\t\t\tid: node.id,\n\t\t\t\t\teffect: visionRaw,\n\t\t\t\t\t...visionOp,\n\t\t\t\t\tdataType: media.operation.dataType\n\t\t\t\t},\n\t\t\t\tchildren: [media]\n\t\t\t};\n\t\t}\n\t}\n\tif (node.kind === \"media\") children = media ? [media] : [];\n\telse if (\"children\" in node && node.children) {\n\t\tconst staggerFrames = node.kind === \"flex\" && typeof node.staggerFrames === \"number\" ? node.staggerFrames : 0;\n\t\tconst staggerDirection = node.kind === \"flex\" && typeof node.staggerDirection === \"string\" ? node.staggerDirection : \"forward\";\n\t\tconst nodeStart = typeof node.startFrame === \"number\" && Number.isFinite(node.startFrame) ? Math.round(node.startFrame) : 0;\n\t\tconst nodeDuration = typeof node.durationFrames === \"number\" && Number.isFinite(node.durationFrames) ? Math.round(node.durationFrames) : inheritedDurationFrames;\n\t\tconst nodeChildren = node.children;\n\t\tchildren = nodeChildren.map((c, idx) => {\n\t\t\tconst delay = computeStaggerDelay(idx, nodeChildren.length, staggerFrames, staggerDirection);\n\t\t\treturn nodeToVirtualMedia(c, resolveMedia, fps, inheritedOffset + nodeStart + delay, compDurationMs, c.durationFrames === void 0 ? nodeDuration : void 0);\n\t\t});\n\t}\n\tlet dataType = \"Image\";\n\tlet limit;\n\tif (media) {\n\t\tdataType = media.operation?.dataType ?? \"Image\";\n\t\tconst durationMs$1 = dataType === \"Image\" || dataType === \"SVG\" ? void 0 : getActiveMediaMetadata(media)?.durationMs;\n\t\tif (durationMs$1 !== void 0 && durationMs$1 !== null) limit = Math.max(1, Math.round(durationMs$1 / 1e3 * fps));\n\t}\n\tconst isCaption = media?.operation?.dataType === \"Caption\";\n\tconst isContainer = node.kind === \"flex\" || node.kind === \"block\" || node.kind === \"box\";\n\tconst startFrame = (typeof node.startFrame === \"number\" && Number.isFinite(node.startFrame) && node.startFrame >= 0 ? Math.round(node.startFrame) : 0) + inheritedOffset;\n\tlet dur = typeof node.durationFrames === \"number\" && Number.isFinite(node.durationFrames) && node.durationFrames > 0 ? Math.round(node.durationFrames) : void 0;\n\tconst defaultCompDuration = inheritedDurationFrames ?? Math.round((compDurationMs ?? 1e4) / 1e3 * fps);\n\tif (isContainer && children.length > 0) {\n\t\tif (dur === void 0) {\n\t\t\tconst childEnds = children.map((c) => (c.operation.startFrame ?? 0) + (c.operation.durationFrames ?? defaultCompDuration));\n\t\t\tdur = Math.max(1, Math.max(...childEnds) - startFrame);\n\t\t}\n\t} else if (isCaption && limit !== void 0 && limit > 0) dur = limit;\n\telse if (dur !== void 0) {\n\t\tif ((dataType === \"Video\" || dataType === \"Audio\") && limit !== void 0 && limit > 0) dur = Math.min(dur, limit);\n\t} else dur = limit ?? inheritedDurationFrames ?? Math.round((compDurationMs ?? 1e4) / 1e3 * fps);\n\tconst durationMs = dur / fps * 1e3;\n\tif (node.kind === \"media\" && media) {\n\t\tlet curr = media;\n\t\twhile (curr) {\n\t\t\tif (!curr.metadata?.durationMs || curr.metadata.durationMs <= 0) {\n\t\t\t\tif (!curr.metadata) curr.metadata = {};\n\t\t\t\tcurr.metadata.durationMs = durationMs;\n\t\t\t}\n\t\t\tif (curr.operation?.sourceMeta && !curr.operation.sourceMeta.durationMs) curr.operation.sourceMeta.durationMs = durationMs;\n\t\t\tcurr = curr.children?.[0];\n\t\t}\n\t}\n\treturn {\n\t\tmetadata: { durationMs },\n\t\toperation: {\n\t\t\top: \"CompositorLayer\",\n\t\t\t...node,\n\t\t\tstartFrame,\n\t\t\tdurationFrames: dur,\n\t\t\tdataType\n\t\t},\n\t\tchildren\n\t};\n}\nfunction compositorToProgram(config, options) {\n\tconst { isVideoMode, fps, durationMs, resolveMedia, signals } = options;\n\tlet rootMedia = {\n\t\tmetadata: {\n\t\t\twidth: config.width,\n\t\t\theight: config.height,\n\t\t\tfps,\n\t\t\t...durationMs !== void 0 && { durationMs }\n\t\t},\n\t\toperation: {\n\t\t\top: \"Compositor\",\n\t\t\twidth: config.width,\n\t\t\theight: config.height,\n\t\t\tfps,\n\t\t\tmode: config.mode ?? \"Video\",\n\t\t\tbackgroundColor: config.backgroundColor,\n\t\t\t...config.antialias3d !== void 0 && { antialias3d: config.antialias3d },\n\t\t\tvolume: config.volume ?? 1,\n\t\t\tdataType: isVideoMode ? \"Video\" : \"Image\",\n\t\t\tlayout: config.layout,\n\t\t\tsignals: {\n\t\t\t\t...collectInlineSignals(config.layout),\n\t\t\t\t...signals ?? config.signals ?? {}\n\t\t\t},\n\t\t\t...config.onRequestFrame || options.onRequestFrame ? { onRequestFrame: config.onRequestFrame ?? options.onRequestFrame } : {}\n\t\t},\n\t\tchildren: hoistMattes(config.layout).map((n) => nodeToVirtualMedia(n, resolveMedia, fps, 0, durationMs))\n\t};\n\tconst effectsList = Array.isArray(options.effects) ? options.effects : Array.isArray(config.effects) ? config.effects : [];\n\tfor (const eff of effectsList) {\n\t\tconst effOp = eff && typeof eff.toOperation === \"function\" ? eff.toOperation() : eff;\n\t\trootMedia = {\n\t\t\tmetadata: { ...rootMedia.metadata },\n\t\t\toperation: {\n\t\t\t\t...effOp,\n\t\t\t\tdataType: rootMedia.operation.dataType\n\t\t\t},\n\t\t\tchildren: [rootMedia]\n\t\t};\n\t}\n\tconst visionRaw = config.vision ?? options.vision;\n\tif (visionRaw) {\n\t\tconst visionOp = typeof visionRaw.toOperation === \"function\" ? visionRaw.toOperation() : visionRaw;\n\t\trootMedia = {\n\t\t\tmetadata: { ...rootMedia.metadata },\n\t\t\toperation: {\n\t\t\t\top: \"Vision\",\n\t\t\t\t...visionOp,\n\t\t\t\tdataType: rootMedia.operation.dataType\n\t\t\t},\n\t\t\tchildren: [rootMedia]\n\t\t};\n\t}\n\treturn rootMedia;\n}\n/** Recursively gather every node op from a render tree (in order). */\nfunction collectNodeOps(nodes) {\n\tconst out = [];\n\tconst walk = (vm) => {\n\t\tif (vm?.operation?.op === \"CompositorLayer\") out.push(vm);\n\t\tfor (const c of vm?.children ?? []) walk(c);\n\t};\n\tfor (const n of nodes) walk(n);\n\treturn out;\n}\n\n//#endregion\n//#region src/program/validate.ts\n/**\n* Coded validation for the v2 program document (spec: SKILL.md).\n*\n* Runs on the RAW input BEFORE zod: zod strips unknown keys silently, so\n* v1 shapes (`layers`, `layerUpdates`, `FPS`) and structural errors must be\n* caught in a pre-parse walk or the E-codes never fire. The zod schema then\n* handles shape/refinement errors (mapped to E1xxx-style issues).\n*/\nconst KIND_SET = new Set([\n\t\"flex\",\n\t\"block\",\n\t\"box\",\n\t\"text\",\n\t\"media\",\n\t\"shape\"\n]);\nconst MAX_NODES = 512;\nconst MAX_DEPTH = 64;\nconst issue = (code, path, message) => ({\n\tcode,\n\tpath,\n\tmessage\n});\nfunction validateLayoutProgram(raw) {\n\tconst issues = [];\n\tif (!raw || typeof raw !== \"object\" || Array.isArray(raw)) return {\n\t\tok: false,\n\t\tissues: [issue(\"E1001\", [], \"Compositor config must be an object.\")]\n\t};\n\tconst obj = raw;\n\tif (\"layers\" in obj) issues.push(issue(\"E1001\", [\"layers\"], \"Config v2 uses `layout` — `layers` is removed.\"));\n\tif (\"layerUpdates\" in obj) issues.push(issue(\"E1001\", [\"layerUpdates\"], \"Config v2 uses `layout` — `layerUpdates` is removed.\"));\n\tif (\"FPS\" in obj) issues.push(issue(\"E1001\", [\"FPS\"], \"Config v2 uses `fps` — `FPS` is removed.\"));\n\tconst seenIds = /* @__PURE__ */ new Set();\n\tlet nodeCount = 0;\n\tconst isImageMode = obj.mode === \"Image\";\n\tconst walk = (node, path, depth) => {\n\t\tif (depth > MAX_DEPTH) {\n\t\t\tissues.push(issue(\"E1212\", [...path, \"children\"], `Layout nesting exceeds ${MAX_DEPTH} levels.`));\n\t\t\treturn;\n\t\t}\n\t\tif (!node || typeof node !== \"object\" || Array.isArray(node)) {\n\t\t\tissues.push(issue(\"E1201\", path, \"Layout node must be an object.\"));\n\t\t\treturn;\n\t\t}\n\t\tnodeCount += 1;\n\t\tif (nodeCount > MAX_NODES) {\n\t\t\tissues.push(issue(\"E1211\", path, `Composition exceeds ${MAX_NODES} nodes.`));\n\t\t\treturn;\n\t\t}\n\t\tconst n = node;\n\t\tconst kind = n.kind;\n\t\tif (typeof kind !== \"string\" || !KIND_SET.has(kind)) issues.push(issue(\"E1201\", [...path, \"kind\"], `Unknown layout node kind '${String(kind)}'. Expected one of: flex, block, box, text, media, shape.`));\n\t\tconst id = n.id;\n\t\tif (typeof id !== \"string\" || id.length === 0) issues.push(issue(\"E1203\", [...path, \"id\"], \"Layout node requires a non-empty `id`.\"));\n\t\telse if (seenIds.has(id)) issues.push(issue(\"E1202\", [...path, \"id\"], `Duplicate node id '${id}'.`));\n\t\telse seenIds.add(id);\n\t\tfor (const axis of [\"width\", \"height\"]) {\n\t\t\tconst v = n[axis];\n\t\t\tif (typeof v === \"number\" && (!Number.isFinite(v) || v < 0)) issues.push(issue(\"E1205\", [...path, axis], `SizeSpec must be a finite number >= 0 or one of \"auto\" | \"fit\" | \"fill\".`));\n\t\t\telse if (typeof v === \"string\" && v !== \"auto\" && v !== \"fit\" && v !== \"fill\") issues.push(issue(\"E1205\", [...path, axis], `SizeSpec must be a finite number >= 0 or one of \"auto\" | \"fit\" | \"fill\".`));\n\t\t}\n\t\tif (n.position === \"absolute\") {\n\t\t\tif (typeof n.x !== \"number\" || typeof n.y !== \"number\") issues.push(issue(\"E1206\", [...path], \"An absolute node requires numeric `x` and `y`.\"));\n\t\t\tif (n.grow !== void 0) issues.push(issue(\"E1209\", [...path, \"grow\"], \"`grow` is not allowed on an absolute node (it is out of flow).\"));\n\t\t}\n\t\tif (kind === \"media\" && (typeof n.inputHandleId !== \"string\" || n.inputHandleId.length === 0)) issues.push(issue(\"E1204\", [...path, \"inputHandleId\"], \"A media node requires a non-empty `inputHandleId`.\"));\n\t\tif (kind === \"text\" && typeof n.fontSize === \"number\" && n.fontSize <= 0) issues.push(issue(\"E1210\", [...path, \"fontSize\"], \"A text node requires fontSize > 0.\"));\n\t\tif (kind === \"shape\") {\n\t\t\tif (n.trimStart !== void 0) {\n\t\t\t\tconst ts = n.trimStart;\n\t\t\t\tif (typeof ts !== \"number\" || !Number.isFinite(ts) || Number.isNaN(ts) || ts < 0 || ts > 1) issues.push(issue(\"E1208\", [...path, \"trimStart\"], \"`trimStart` must be a finite number between 0 and 1.\"));\n\t\t\t}\n\t\t\tif (n.trimEnd !== void 0) {\n\t\t\t\tconst te = n.trimEnd;\n\t\t\t\tif (typeof te !== \"number\" || !Number.isFinite(te) || Number.isNaN(te) || te < 0 || te > 1) issues.push(issue(\"E1208\", [...path, \"trimEnd\"], \"`trimEnd` must be a finite number between 0 and 1.\"));\n\t\t\t}\n\t\t}\n\t\tif (!isImageMode) {\n\t\t\tif (n.durationFrames !== void 0) {\n\t\t\t\tconst df = n.durationFrames;\n\t\t\t\tif (typeof df !== \"number\" || !Number.isFinite(df) || Number.isNaN(df) || df < 1 || !Number.isInteger(df)) issues.push(issue(\"E1207\", [...path, \"durationFrames\"], `\\`durationFrames\\` must be a positive integer (>= 1). Received: ${String(df)}.`));\n\t\t\t}\n\t\t\tif (n.startFrame !== void 0) {\n\t\t\t\tconst sf = n.startFrame;\n\t\t\t\tif (typeof sf !== \"number\" || !Number.isFinite(sf) || Number.isNaN(sf) || sf < 0 || !Number.isInteger(sf)) issues.push(issue(\"E1207\", [...path, \"startFrame\"], `\\`startFrame\\` must be a non-negative integer (>= 0). Received: ${String(sf)}.`));\n\t\t\t}\n\t\t}\n\t\tif (n.opacity !== void 0) {\n\t\t\tconst op = n.opacity;\n\t\t\tif (typeof op !== \"number\" || !Number.isFinite(op) || Number.isNaN(op) || op < 0 || op > 1) issues.push(issue(\"E1213\", [...path, \"opacity\"], `\\`opacity\\` must be a number between 0 and 1. Received: ${String(op)}.`));\n\t\t}\n\t\tconst anim = n.animation;\n\t\tif (anim && Array.isArray(anim.tracks) && kind !== void 0) {\n\t\t\tconst props = /* @__PURE__ */ new Set();\n\t\t\tfor (let tIdx = 0; tIdx < anim.tracks.length; tIdx++) {\n\t\t\t\tconst prop = anim.tracks[tIdx]?.prop;\n\t\t\t\tif (typeof prop === \"string\") {\n\t\t\t\t\tif (props.has(prop)) issues.push(issue(\"E1208\", [\n\t\t\t\t\t\t...path,\n\t\t\t\t\t\t\"animation\",\n\t\t\t\t\t\t\"tracks\",\n\t\t\t\t\t\ttIdx\n\t\t\t\t\t], `Duplicate track property '${prop}' on node '${String(id)}'.`));\n\t\t\t\t\tprops.add(prop);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst children = n.children;\n\t\tif (Array.isArray(children)) for (let i = 0; i < children.length; i++) walk(children[i], [\n\t\t\t...path,\n\t\t\t\"children\",\n\t\t\ti\n\t\t], depth + 1);\n\t};\n\tconst layout = obj.layout;\n\tif (Array.isArray(layout)) for (let i = 0; i < layout.length; i++) walk(layout[i], [\"layout\", i], 0);\n\telse if (layout !== void 0) issues.push(issue(\"E1001\", [\"layout\"], \"`layout` must be an array of nodes.\"));\n\tif (issues.length > 0) return {\n\t\tok: false,\n\t\tissues\n\t};\n\treturn { ok: true };\n}\nfunction cleanImageModeTiming(raw) {\n\tif (!raw || typeof raw !== \"object\" || Array.isArray(raw)) return raw;\n\tconst obj = raw;\n\tif (obj.mode !== \"Image\" || !Array.isArray(obj.layout)) return raw;\n\tconst sanitizeNode = (node) => {\n\t\tif (!node || typeof node !== \"object\" || Array.isArray(node)) return node;\n\t\tconst n = { ...node };\n\t\tif (n.durationFrames !== void 0 && (typeof n.durationFrames !== \"number\" || !Number.isFinite(n.durationFrames) || n.durationFrames < 1 || !Number.isInteger(n.durationFrames))) delete n.durationFrames;\n\t\tif (n.startFrame !== void 0 && (typeof n.startFrame !== \"number\" || !Number.isFinite(n.startFrame) || n.startFrame < 0 || !Number.isInteger(n.startFrame))) delete n.startFrame;\n\t\tif (Array.isArray(n.children)) n.children = n.children.map(sanitizeNode);\n\t\treturn n;\n\t};\n\treturn {\n\t\t...obj,\n\t\tlayout: obj.layout.map(sanitizeNode)\n\t};\n}\n/** Fast-fail shape gate used by processors: validate raw config then parse. */\nfunction parseProgram(raw) {\n\tconst pre = validateLayoutProgram(raw);\n\tif (!pre.ok) return {\n\t\tok: false,\n\t\tissues: pre.issues\n\t};\n\tconst cleaned = cleanImageModeTiming(raw);\n\tconst parsed = CompositorProgramSchema.safeParse(cleaned);\n\tif (!parsed.success) return {\n\t\tok: false,\n\t\tissues: parsed.error.issues.map((i) => issue(\"E1001\", i.path.map((p) => typeof p === \"symbol\" ? p.toString() : p), i.message))\n\t};\n\treturn {\n\t\tok: true,\n\t\tconfig: parsed.data\n\t};\n}\n/** Collect every node id in the tree (depth-first, in order). */\nfunction collectNodeIds(nodes) {\n\tconst ids = [];\n\tconst walk = (n) => {\n\t\tids.push(n.id);\n\t\tif (\"children\" in n && n.children) walkChildren(n.children);\n\t};\n\tconst walkChildren = (list) => {\n\t\tfor (const n of list) walk(n);\n\t};\n\twalkChildren(nodes);\n\treturn ids;\n}\n/** Collect media node bindings: inputHandleId -> node id. */\nfunction collectMediaBindings(nodes) {\n\tconst bindings = /* @__PURE__ */ new Map();\n\tconst walk = (n) => {\n\t\tif (n.kind === \"media\") bindings.set(n.inputHandleId, n.id);\n\t\tif (\"children\" in n && n.children) for (const c of n.children) walk(c);\n\t};\n\tfor (const n of nodes) walk(n);\n\treturn bindings;\n}\n\n//#endregion\n//#region src/program/index.ts\nvar program_exports = /* @__PURE__ */ __exportAll({\n\tAnimatablePropSchema: () => AnimatablePropSchema,\n\tAnimationTrackSchema: () => AnimationTrackSchema,\n\tBlockNodeSchema: () => BlockNodeSchema,\n\tBloomConfigSchema: () => BloomConfigSchema,\n\tBoxNodeSchema: () => BoxNodeSchema,\n\tCameraAnimation: () => CameraAnimation,\n\tCameraDoFSchema: () => CameraDoFSchema,\n\tCameraLensSchema: () => CameraLensSchema,\n\tCameraNodeSchema: () => CameraNodeSchema,\n\tCameraShakeSchema: () => CameraShakeSchema,\n\tCarrierHandoffConfigSchema: () => CarrierHandoffConfigSchema,\n\tColorStopSchema: () => ColorStopSchema,\n\tCompositorProgramSchema: () => CompositorProgramSchema,\n\tEXTENDED_3D_ANIMATABLE_PROPS: () => EXTENDED_3D_ANIMATABLE_PROPS,\n\tEaseRefSchema: () => EaseRefSchema,\n\tEffectSpecSchema: () => EffectSpecSchema,\n\tEnvironmentFogSchema: () => EnvironmentFogSchema,\n\tEnvironmentPresetSchema: () => EnvironmentPresetSchema,\n\tFlexNodeSchema: () => FlexNodeSchema,\n\tKeyframeSchema: () => KeyframeSchema,\n\tLARGE_ANIMATION_KEYFRAMES: () => LARGE_ANIMATION_KEYFRAMES,\n\tLayerAnimation: () => LayerAnimation,\n\tLayerAnimationSchema: () => LayerAnimationSchema,\n\tLayoutNodeSchema: () => LayoutNodeSchema,\n\tLightNodeSchema: () => LightNodeSchema,\n\tLightTypeSchema: () => LightTypeSchema,\n\tMaterialTypeSchema: () => MaterialTypeSchema,\n\tMatteModeSchema: () => MatteModeSchema,\n\tMediaNodeSchema: () => MediaNodeSchema,\n\tModel3DNodeSchema: () => Model3DNodeSchema,\n\tScene: () => Scene,\n\tSceneDefinitionSchema: () => SceneDefinitionSchema,\n\tSceneTransitionTypeSchema: () => SceneTransitionTypeSchema,\n\tSequence: () => Sequence,\n\tShapeFields: () => ShapeFields,\n\tShapeNodeSchema: () => ShapeNodeSchema,\n\tShapeTypeSchema: () => ShapeTypeSchema,\n\tSignalColorModeSchema: () => SignalColorModeSchema,\n\tSignalModeSchema: () => SignalModeSchema,\n\tSizeSpecSchema: () => SizeSpecSchema,\n\tTextAnimator: () => TextAnimator,\n\tTextAnimatorSchema: () => TextAnimatorSchema,\n\tTextAnimatorTransformSchema: () => TextAnimatorTransformSchema,\n\tTextNodeSchema: () => TextNodeSchema,\n\tTextShadowSchema: () => TextShadowSchema,\n\tTextSpanMarkSchema: () => TextSpanMarkSchema,\n\tTextSpanSchema: () => TextSpanSchema,\n\tToneMappingSchema: () => ToneMappingSchema,\n\tTrackSourceSchema: () => TrackSourceSchema,\n\tapplyStaggerToChildren: () => applyStaggerToChildren,\n\tcalculateSequenceTimeline: () => calculateSequenceTimeline,\n\tcollectMediaBindings: () => collectMediaBindings,\n\tcollectNodeIds: () => collectNodeIds,\n\tcollectNodeOps: () => collectNodeOps,\n\tcompositorToProgram: () => compositorToProgram,\n\tcomputeCarrierContinuity: () => computeCarrierContinuity,\n\tcomputeLayout: () => computeLayout,\n\tcomputeLayoutSync: () => computeLayoutSync,\n\tcomputeStaggerDelay: () => computeStaggerDelay,\n\tcontainerChildren: () => containerChildren,\n\tevaluateAnimationAtFrame: () => evaluateAnimationAtFrame,\n\tevaluateKeyframes: () => evaluateKeyframes,\n\tevaluateSignal: () => evaluateSignal,\n\tevaluateSignalAccumulator: () => evaluateSignalAccumulator,\n\tevaluateSpringOvershoot: () => evaluateSpringOvershoot,\n\tevaluateTrackAtFrame: () => evaluateTrackAtFrame,\n\tevaluateWiggle: () => evaluateWiggle,\n\tflattenPath: () => flattenPath,\n\thoistMattes: () => hoistMattes,\n\tinitLayout: () => initLayout,\n\tlintComposition: () => lintComposition,\n\tmergeAnimationTracks: () => mergeAnimationTracks,\n\tmorphPath: () => morphPath,\n\tparseProgram: () => parseProgram,\n\trotateHue: () => rotateHue,\n\tvalidateLayoutProgram: () => validateLayoutProgram\n});\n\n//#endregion\nexport { AnimatablePropSchema, AnimationTrackSchema, BlockNodeSchema, BloomConfigSchema, BoxNodeSchema, CameraAnimation, CameraDoFSchema, CameraLensSchema, CameraNodeSchema, CameraShakeSchema, CarrierHandoffConfigSchema, ColorStopSchema, CompositorProgramSchema, EXTENDED_3D_ANIMATABLE_PROPS, EaseRefSchema, EffectSpecSchema, EnvironmentFogSchema, EnvironmentPresetSchema, FlexNodeSchema, KeyframeSchema, LARGE_ANIMATION_KEYFRAMES, LayerAnimation, LayerAnimationSchema, LayoutNodeSchema, LightNodeSchema, LightTypeSchema, MaterialTypeSchema, MatteModeSchema, MediaNodeSchema, Model3DNodeSchema, Scene, SceneDefinitionSchema, SceneTransitionTypeSchema, Sequence, ShapeFields, ShapeNodeSchema, ShapeTypeSchema, SignalColorModeSchema, SignalModeSchema, SizeSpecSchema, TextAnimator, TextAnimatorSchema, TextAnimatorTransformSchema, TextNodeSchema, TextShadowSchema, TextSpanMarkSchema, TextSpanSchema, ToneMappingSchema, TrackSourceSchema, applyStaggerToChildren, calculateSequenceTimeline, collectMediaBindings, collectNodeIds, collectNodeOps, compositorToProgram, computeCarrierContinuity, computeLayout, computeLayoutSync, computeStaggerDelay, containerChildren, evaluateAnimationAtFrame, evaluateKeyframes, evaluateSignal, evaluateSignalAccumulator, evaluateSpringOvershoot, evaluateTrackAtFrame, evaluateWiggle, flattenPath, hoistMattes, initLayout, lintComposition, mergeAnimationTracks, morphPath, parseProgram, rotateHue, validateLayoutProgram };\n//# sourceMappingURL=index.mjs.map"],"mappings":"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BAAiB,MAAM;AAClG,KAAI,MAAM,QAAQ,KAAK,SAAS,CAAE,MAAK,WAAW,YAAY,KAAK,SAAS;AAC5E,MAAK,UAAU;AACf,QAAO,CAAC,MAAM,KAAK;;;AAGpB,SAAS,YAAY,OAAO;AAC3B,QAAO,MAAM,SAAS,MAAM,SAAS,EAAE,CAAC;;;;;;;;;;;;;;;;;;AAqBzC,MAAM,iBAAiB,EAAE,MAAM;CAC9B,EAAE,QAAQ,CAAC,IAAI,EAAE;CACjB,EAAE,KAAK;EACN;EACA;EACA;EACA,CAAC;CACF,EAAE,QAAQ;CACV,CAAC;AACF,MAAM,kBAAkB,EAAE,KAAK;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAC;AACF,MAAM,mBAAmB,EAAE,MAAM;CAChC,EAAE,WAAW,OAAO;CACpB,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,aAAa;CACjD,EAAE,QAAQ,QAAQ,QAAQ,OAAO,OAAO,QAAQ,YAAY,QAAQ,OAAO,OAAO,IAAI,OAAO,SAAS,CAAC;CACvG,CAAC;AACF,MAAM,uBAAuB,EAAE,KAAK;CACnC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAC;AACF,MAAM,kBAAkB,EAAE,KAAK;CAC9B;CACA;CACA;CACA;CACA,CAAC;AACF,MAAM,qBAAqB,EAAE,KAAK;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAC;AA0CF,MAAM,wBAAwB,EAAE,KAAK;CACpC;CACA;CACA;CACA,CAAC;AACF,MAAM,gBAAgB,EAAE,OAAO;CAC9B,MAAM,EAAE,KAAK;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAC;CACF,KAAK,EAAE,KAAK;EACX;EACA;EACA;EACA,CAAC;CACF,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,UAAU;CACtC,CAAC,CAAC,QAAQ,CAAC,aAAa,MAAM,QAAQ;AACtC,KAAI,KAAK,SAAS,YAAY,KAAK,QAAQ;EAC1C,MAAM,CAAC,SAAS,WAAW,QAAQ,KAAK;AACxC,MAAI,YAAY,KAAK,KAAK,WAAW,EAAG,KAAI,SAAS;GACpD,MAAM,EAAE,aAAa;GACrB,SAAS;GACT,MAAM,CAAC,UAAU,EAAE;GACnB,CAAC;AACF,MAAI,cAAc,KAAK,KAAK,aAAa,EAAG,KAAI,SAAS;GACxD,MAAM,EAAE,aAAa;GACrB,SAAS;GACT,MAAM,CAAC,UAAU,EAAE;GACnB,CAAC;AACF,MAAI,SAAS,KAAK,KAAK,QAAQ,EAAG,KAAI,SAAS;GAC9C,MAAM,EAAE,aAAa;GACrB,SAAS;GACT,MAAM,CAAC,UAAU,EAAE;GACnB,CAAC;;EAEF;AACF,MAAM,iBAAiB,EAAE,OAAO;CAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;CACrB,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE;CAC9B,OAAO,EAAE,MAAM;EACd,EAAE,QAAQ;EACV,EAAE,SAAS;EACX,EAAE,QAAQ;EACV,CAAC;CACF,MAAM,cAAc,UAAU;CAC9B,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,YAAY,EAAE,QAAQ,CAAC,UAAU;CACjC,kBAAkB,EAAE,OAAO;EAC1B,GAAG,EAAE,QAAQ;EACb,GAAG,EAAE,QAAQ;EACb,CAAC,CAAC,UAAU;CACb,mBAAmB,EAAE,OAAO;EAC3B,GAAG,EAAE,QAAQ;EACb,GAAG,EAAE,QAAQ;EACb,CAAC,CAAC,UAAU;CACb,CAAC,CAAC,QAAQ;AACX,MAAM,mBAAmB,EAAE,KAAK,CAAC,cAAc,aAAa,CAAC;AAC7D,MAAM,uBAAuB,EAAE,mBAAmB,QAAQ;CACzD,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,WAAW,EAAE,CAAC;CACzC,EAAE,OAAO;EACR,MAAM,EAAE,QAAQ,SAAS;EACzB,eAAe,EAAE,QAAQ;EACzB,YAAY,EAAE,QAAQ,CAAC,QAAQ,EAAE;EACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;EAC7B,uBAAuB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;EACnD,WAAW,sBAAsB,UAAU;EAC3C,QAAQ,EAAE,QAAQ,CAAC,UAAU;EAC7B,QAAQ,EAAE,QAAQ,CAAC,UAAU;EAC7B,gBAAgB,EAAE,QAAQ,CAAC,UAAU;EACrC,YAAY,iBAAiB,UAAU;EACvC,WAAW,EAAE,QAAQ,CAAC,UAAU;EAChC,qBAAqB,EAAE,QAAQ,CAAC,UAAU;EAC1C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU;EAClD,SAAS,EAAE,QAAQ,CAAC,UAAU;EAC9B,CAAC;CACF,EAAE,OAAO;EACR,MAAM,EAAE,QAAQ,SAAS;EACzB,WAAW,EAAE,QAAQ,CAAC,QAAQ,EAAE;EAChC,WAAW,EAAE,QAAQ,CAAC,QAAQ,GAAG;EACjC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;EAClD,MAAM,EAAE,QAAQ,CAAC,QAAQ,KAAK;EAC9B,CAAC;CACF,EAAE,OAAO;EACR,MAAM,EAAE,QAAQ,kBAAkB;EAClC,SAAS,EAAE,QAAQ,CAAC,QAAQ,GAAG;EAC/B,WAAW,EAAE,QAAQ,CAAC,QAAQ,IAAI;EAClC,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE;EAC3B,CAAC;CACF,CAAC;AACF,MAAM,oBAAoB,EAAE,YAAY,QAAQ;AAC/C,KAAI,CAAC,OAAO,OAAO,QAAQ,SAAU,QAAO;CAC5C,MAAM,MAAM;AACZ,KAAI,IAAI,SAAS,UAAU;EAC1B,MAAM,SAAS,OAAO,IAAI,cAAc,WAAW,IAAI,YAAY,OAAO,IAAI,wBAAwB,WAAW,IAAI,sBAAsB;AAC3I,SAAO;GACN,MAAM;GACN,eAAe,IAAI,iBAAiB,IAAI;GACxC,YAAY,IAAI,cAAc,IAAI,aAAa;GAC/C,QAAQ,IAAI,UAAU;GACtB,uBAAuB,IAAI,yBAAyB,IAAI,aAAa;GACrE,WAAW,IAAI;GACf,QAAQ,IAAI;GACZ,QAAQ,IAAI;GACZ,gBAAgB,IAAI;GACpB,YAAY,IAAI,cAAc;GAC9B,WAAW;GACX,qBAAqB;GACrB,gBAAgB,IAAI,kBAAkB;GACtC,SAAS,OAAO,IAAI,YAAY,WAAW,IAAI,UAAU;GACzD;;AAEF,QAAO;GACL,qBAAqB;AACxB,MAAM,uBAAuB,MAAM,QAAQ;AAC1C,KAAI,CAAC,MAAM,OAAQ;AACnB,MAAK,IAAI,OAAO,GAAG,OAAO,KAAK,OAAO,QAAQ,QAAQ;EACrD,MAAM,QAAQ,KAAK,OAAO;EAC1B,MAAM,YAAY,MAAM,aAAa,EAAE;AACvC,OAAK,CAAC,MAAM,UAAU,MAAM,OAAO,SAAS,eAAe,UAAU,SAAS,EAAG,KAAI,SAAS;GAC7F,MAAM,EAAE,aAAa;GACrB,SAAS,uBAAuB,MAAM,KAAK;GAC3C,MAAM;IACL;IACA;IACA;IACA;GACD,CAAC;EACF,MAAM,aAAa,MAAM,SAAS,YAAY,MAAM,SAAS;EAC7D,MAAM,UAAU,MAAM,SAAS,eAAe,MAAM,SAAS,iBAAiB,MAAM,SAAS,UAAU,MAAM,SAAS;AACtH,OAAK,IAAI,OAAO,GAAG,OAAO,UAAU,QAAQ,QAAQ;GACnD,MAAM,KAAK,UAAU;AACrB,OAAI,OAAO,GAAG;IACb,MAAM,SAAS,UAAU,OAAO;AAChC,QAAI,GAAG,QAAQ,OAAO,MAAO,KAAI,SAAS;KACzC,MAAM,EAAE,aAAa;KACrB,SAAS;KACT,MAAM;MACL;MACA;MACA;MACA;MACA;KACD,CAAC;aACO,GAAG,UAAU,OAAO,MAAO,KAAI,SAAS;KAChD,MAAM,EAAE,aAAa;KACrB,SAAS;KACT,MAAM;MACL;MACA;MACA;MACA;MACA;KACD,CAAC;;GAEH,MAAM,UAAU,OAAO,GAAG;AAC1B,OAAI,YACH;QAAI,YAAY,UAAW,KAAI,SAAS;KACvC,MAAM,EAAE,aAAa;KACrB,SAAS,yCAAyC,MAAM,KAAK;KAC7D,MAAM;MACL;MACA;MACA;MACA;MACA;MACA;KACD,CAAC;cACQ,SACV;QAAI,YAAY,SAAU,KAAI,SAAS;KACtC,MAAM,EAAE,aAAa;KACrB,SAAS,sCAAsC,MAAM,KAAK;KAC1D,MAAM;MACL;MACA;MACA;MACA;MACA;MACA;KACD,CAAC;cACQ,YAAY,YAAY,OAAO,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,SAAS,GAAG,MAAM,CAAE,KAAI,SAAS;IACrG,MAAM,EAAE,aAAa;IACrB,SAAS,wCAAwC,MAAM,KAAK;IAC5D,MAAM;KACL;KACA;KACA;KACA;KACA;KACA;IACD,CAAC;aACQ,MAAM,SAAS,YAAY,MAAM,SAAS,eAAe,MAAM,SAAS,eAAe,GAAG,QAAQ,KAAK,GAAG,QAAQ,GAAI,KAAI,SAAS;IAC5I,MAAM,EAAE,aAAa;IACrB,SAAS,gCAAgC,MAAM,KAAK;IACpD,MAAM;KACL;KACA;KACA;KACA;KACA;KACA;IACD,CAAC;;;;AAIL,MAAM,uBAAuB,EAAE,OAAO;CACrC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;CACrB,MAAM;CACN,QAAQ,kBAAkB,UAAU;CACpC,WAAW,EAAE,MAAM,eAAe,CAAC,QAAQ,EAAE,CAAC;CAC9C,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU;CACnC,MAAM,EAAE,SAAS,CAAC,UAAU;CAC5B,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU;CAClD,CAAC,CAAC,QAAQ;AACX,MAAM,uBAAuB,EAAE,OAAO;CACrC,QAAQ,EAAE,MAAM,qBAAqB,CAAC,IAAI,GAAG;CAC7C,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,UAAU;CACrD,CAAC,CAAC,QAAQ,CAAC,YAAY,oBAAoB;AAC5C,MAAM,iBAAiB;CACtB,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;CACrB,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,UAAU,EAAE,KAAK,CAAC,YAAY,WAAW,CAAC,CAAC,QAAQ,WAAW;CAC9D,GAAG,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC/C,GAAG,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC/C,OAAO,eAAe,UAAU;CAChC,QAAQ,eAAe,UAAU;CACjC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CAClC,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACxC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACvC,WAAW,EAAE,KAAK;EACjB;EACA;EACA;EACA;EACA;EACA;EACA,CAAC,CAAC,UAAU;CACb,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC7C,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;CACnC,QAAQ,EAAE,SAAS,CAAC,QAAQ,MAAM;CAClC,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC5C,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,SAAS,EAAE,MAAM,iBAAiB,CAAC,UAAU;CAC7C,UAAU,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC/B,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACnC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC7B,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,GAAG;CAC7C,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,GAAG;CAC7C,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC9C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU;CAClD,mBAAmB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU;CACxD,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC9B,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC9B,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC9B,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACzC,oBAAoB,EAAE,QAAQ,CAAC,QAAQ,GAAG;CAC1C,oBAAoB,EAAE,QAAQ,CAAC,QAAQ,GAAG;CAC1C,YAAY,EAAE,QAAQ,CAAC,QAAQ,EAAE;CACjC,oBAAoB,EAAE,KAAK,CAAC,WAAW,SAAS,CAAC,CAAC,QAAQ,UAAU;CACpE,gBAAgB,EAAE,KAAK,CAAC,QAAQ,cAAc,CAAC,CAAC,QAAQ,OAAO;CAC/D,MAAM,EAAE,SAAS,CAAC,QAAQ,MAAM;CAChC,GAAG,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC/C,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC7B,UAAU,EAAE,SAAS,CAAC,QAAQ,KAAK;CACnC,UAAU,mBAAmB,QAAQ,MAAM;CAC3C,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU;CACxC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU;CAC9C,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG;CACjD,mBAAmB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,GAAG;CAChD,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU;CAC7C,kBAAkB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC9C,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU;CACjD,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU;CAC/C,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,UAAU;CAClD,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,UAAU;CAClD,UAAU,YAAY,UAAU;CAChC,mBAAmB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CAC/C,YAAY,EAAE,SAAS,CAAC,UAAU;CAClC,OAAO,EAAE,OAAO;EACf,MAAM,EAAE,QAAQ,MAAM,OAAO,MAAM,YAAY,MAAM,KAAK;EAC1D,MAAM,gBAAgB,UAAU;EAChC,CAAC,CAAC,UAAU;CACb,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,WAAW,gBAAgB,UAAU;CACrC,WAAW,qBAAqB,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;CACvD,QAAQ,EAAE,SAAS,CAAC,UAAU;CAC9B,YAAY,EAAE,SAAS,CAAC,UAAU;CAClC;AACD,MAAM,mBAAmB,EAAE,OAAO;CACjC,OAAO;CACP,QAAQ,EAAE,OAAO;EAChB,GAAG,EAAE,QAAQ;EACb,GAAG,EAAE,QAAQ;EACb,CAAC,CAAC,UAAU;CACb,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACxC,CAAC,CAAC,QAAQ;AACX,MAAM,8BAA8B,EAAE,OAAO;CAC5C,GAAG,EAAE,QAAQ,CAAC,UAAU;CACxB,GAAG,EAAE,QAAQ,CAAC,UAAU;CACxB,OAAO,EAAE,QAAQ,CAAC,UAAU;CAC5B,QAAQ,EAAE,QAAQ,CAAC,UAAU;CAC7B,QAAQ,EAAE,QAAQ,CAAC,UAAU;CAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,OAAO,EAAE,QAAQ,CAAC,UAAU;CAC5B,CAAC,CAAC,QAAQ;AACX,MAAM,qBAAqB,EAAE,OAAO;CACnC,IAAI,EAAE,QAAQ;CACd,MAAM,EAAE,KAAK;EACZ;EACA;EACA;EACA,CAAC,CAAC,QAAQ,YAAY;CACvB,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC/C,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC7C,QAAQ,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC5C,QAAQ,EAAE,QAAQ,CAAC,QAAQ,aAAa;CACxC,WAAW,4BAA4B,UAAU;CACjD,CAAC;AACF,MAAM,eAAe;CACpB,SAAS,UAAU,EAAE,EAAE;AACtB,SAAO;GACN,IAAI,QAAQ,MAAM;GAClB,MAAM,QAAQ,QAAQ;GACtB,YAAY,QAAQ,cAAc;GAClC,UAAU,QAAQ,YAAY;GAC9B,QAAQ,QAAQ,UAAU;GAC1B,QAAQ,QAAQ,UAAU;GAC1B,WAAW;IACV,GAAG,QAAQ,KAAK;IAChB,WAAW,QAAQ,aAAa;IAChC,SAAS,QAAQ,WAAW;IAC5B,MAAM,QAAQ,QAAQ;IACtB;GACD;;CAEF,QAAQ,UAAU,EAAE,EAAE;AACrB,SAAO;GACN,IAAI,QAAQ,MAAM;GAClB,MAAM;GACN,YAAY;GACZ,UAAU;GACV,QAAQ;GACR,QAAQ,QAAQ,UAAU;GAC1B,WAAW;IACV,OAAO,QAAQ,SAAS;IACxB,GAAG,QAAQ,KAAK;IAChB,SAAS;IACT;GACD;;CAEF,OAAO,UAAU,EAAE,EAAE;AACpB,SAAO;GACN,IAAI,QAAQ,MAAM;GAClB,MAAM,QAAQ,QAAQ;GACtB,YAAY;GACZ,UAAU;GACV,QAAQ;GACR,QAAQ,QAAQ,UAAU;GAC1B,WAAW;IACV,MAAM,QAAQ,QAAQ;IACtB,GAAG,QAAQ,KAAK;IAChB,SAAS,QAAQ,WAAW;IAC5B;GACD;;CAEF,OAAO,UAAU,EAAE,EAAE;AACpB,SAAO;GACN,IAAI,QAAQ,MAAM;GAClB,MAAM,QAAQ,QAAQ;GACtB,YAAY;GACZ,UAAU;GACV,QAAQ;GACR,QAAQ,QAAQ,UAAU;GAC1B,WAAW;IACV,WAAW,QAAQ,aAAa;IAChC,SAAS;IACT;GACD;;CAEF,WAAW,SAAS;AACnB,SAAO;GACN,IAAI,QAAQ,MAAM;GAClB,MAAM,QAAQ,QAAQ;GACtB,YAAY;GACZ,UAAU;GACV,QAAQ;GACR,QAAQ,QAAQ,UAAU;GAC1B,WAAW,EAAE,OAAO,QAAQ,OAAO;GACnC;;CAEF;AACD,MAAM,mBAAmB,EAAE,OAAO;CACjC,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG;CACnD,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU;CAC1C,aAAa,EAAE,QAAQ,CAAC,QAAQ,GAAG;CACnC,MAAM,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE;CACnC,KAAK,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI;CACpC,MAAM,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC,QAAQ;AACX,MAAM,kBAAkB,EAAE,OAAO;CAChC,SAAS,EAAE,SAAS,CAAC,QAAQ,MAAM;CACnC,eAAe,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,IAAI;CAC7C,OAAO,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI;CAC9C,eAAe,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG;CACrD,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE;CAC1D,iBAAiB,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC,QAAQ;AACX,MAAM,oBAAoB,EAAE,OAAO;CAClC,sBAAsB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAClD,mBAAmB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC/C,WAAW,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI;CAClD,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAClD,MAAM,EAAE,QAAQ,CAAC,QAAQ,GAAG;CAC5B,CAAC,CAAC,QAAQ;AACX,MAAM,mBAAmB,EAAE,OAAO;CACjC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;CACrB,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,EAAE,KAAK;EACZ;EACA;EACA;EACA,CAAC,CAAC,QAAQ,SAAS;CACpB,GAAG,EAAE,QAAQ,CAAC,UAAU;CACxB,GAAG,EAAE,QAAQ,CAAC,UAAU;CACxB,GAAG,EAAE,QAAQ,CAAC,UAAU;CACxB,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC5B,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC1B,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC3B,MAAM,iBAAiB,UAAU;CACjC,KAAK,gBAAgB,UAAU;CAC/B,OAAO,kBAAkB,UAAU;CACnC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC9C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU;CAClD,WAAW,qBAAqB,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;CACvD,CAAC,CAAC,QAAQ;AACX,MAAM,kBAAkB,EAAE,KAAK;CAC9B;CACA;CACA;CACA;CACA;CACA,CAAC;AACF,MAAM,0BAA0B,EAAE,KAAK;CACtC;CACA;CACA;CACA;CACA;CACA,CAAC;AACF,MAAM,oBAAoB,EAAE,KAAK;CAChC;CACA;CACA;CACA;CACA,CAAC;AACF,MAAM,uBAAuB,EAAE,OAAO;CACrC,OAAO;CACP,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE;CACxB,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE;CACtB,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU;CAC5C,CAAC,CAAC,QAAQ;AACX,MAAM,oBAAoB,EAAE,OAAO;CAClC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,UAAU;CAC/C,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,UAAU;CAC/C,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU;CACzC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU;CAC3C,CAAC,CAAC,QAAQ;AACX,MAAM,kBAAkB,EAAE,OAAO;CAChC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;CACrB,MAAM,EAAE,QAAQ,QAAQ;CACxB,WAAW,gBAAgB,QAAQ,cAAc;CACjD,OAAO,YAAY,QAAQ,UAAU;CACrC,WAAW,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAChC,GAAG,EAAE,QAAQ,CAAC,UAAU;CACxB,GAAG,EAAE,QAAQ,CAAC,UAAU;CACxB,GAAG,EAAE,QAAQ,CAAC,UAAU;CACxB,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,WAAW,EAAE,MAAM;EAClB,EAAE,QAAQ;EACV,EAAE,QAAQ;EACV,EAAE,QAAQ;EACV,CAAC,CAAC,UAAU;CACb,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,IAAI;CACtC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACnC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG;CAC7C,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,GAAG;CAC9C,YAAY,EAAE,SAAS,CAAC,UAAU;CAClC,gBAAgB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,UAAU;CACpD,gBAAgB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU;CACnD,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU;CAC7D,QAAQ,wBAAwB,UAAU;CAC1C,KAAK,YAAY,UAAU;CAC3B,SAAS,YAAY,UAAU;CAC/B,QAAQ,YAAY,UAAU;CAC9B,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACvC,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,UAAU,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU;CAChD,aAAa,kBAAkB,UAAU;CACzC,KAAK,qBAAqB,UAAU;CACpC,OAAO,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC,UAAU;CAC3D,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC9C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU;CAClD,WAAW,qBAAqB,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;CACvD,CAAC,CAAC,QAAQ;AACX,MAAM,0BAA0B,EAAE,MAAM,EAAE,WAAW,iBAAiB,CAAC;AACvE,MAAM,iBAAiB,EAAE,OAAO;CAC/B,GAAG;CACH,MAAM,EAAE,QAAQ,OAAO;CACvB,KAAK,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC,QAAQ,MAAM;CAC7C,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACjC,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACrC,SAAS,EAAE,KAAK;EACf;EACA;EACA;EACA;EACA;EACA,CAAC,CAAC,QAAQ,QAAQ;CACnB,OAAO,EAAE,KAAK;EACb;EACA;EACA;EACA;EACA,CAAC,CAAC,QAAQ,QAAQ;CACnB,MAAM,EAAE,SAAS,CAAC,QAAQ,MAAM;CAChC,eAAe,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC3C,kBAAkB,EAAE,KAAK;EACxB;EACA;EACA;EACA,CAAC,CAAC,QAAQ,UAAU;CACrB,UAAU,EAAE,KAAK,CAAC,WAAW,SAAS,CAAC,CAAC,QAAQ,SAAS;CACzD,YAAY,YAAY,UAAU;CAClC,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CAC1C,aAAa,YAAY,UAAU;CACnC,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACzC,aAAa,EAAE,KAAK;EACnB;EACA;EACA;EACA,CAAC,CAAC,UAAU;CACb,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CAC1C,UAAU,mBAAmB,CAAC,UAAU;CACxC,CAAC,CAAC,QAAQ;AACX,MAAM,kBAAkB,EAAE,OAAO;CAChC,GAAG;CACH,MAAM,EAAE,QAAQ,QAAQ;CACxB,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACjC,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACrC,OAAO,EAAE,KAAK;EACb;EACA;EACA;EACA;EACA,CAAC,CAAC,QAAQ,QAAQ;CACnB,eAAe,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC3C,kBAAkB,EAAE,KAAK;EACxB;EACA;EACA;EACA,CAAC,CAAC,QAAQ,UAAU;CACrB,UAAU,EAAE,KAAK,CAAC,WAAW,SAAS,CAAC,CAAC,QAAQ,SAAS;CACzD,YAAY,YAAY,UAAU;CAClC,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CAC1C,aAAa,YAAY,UAAU;CACnC,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACzC,aAAa,EAAE,KAAK;EACnB;EACA;EACA;EACA,CAAC,CAAC,UAAU;CACb,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CAC1C,UAAU,mBAAmB,CAAC,UAAU;CACxC,CAAC,CAAC,QAAQ;AACX,MAAM,gBAAgB,EAAE,OAAO;CAC9B,GAAG;CACH,MAAM,EAAE,QAAQ,MAAM;CACtB,YAAY;CACZ,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CAC1C,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACrC,eAAe,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC3C,kBAAkB,EAAE,KAAK;EACxB;EACA;EACA;EACA,CAAC,CAAC,QAAQ,UAAU;CACrB,UAAU,EAAE,KAAK,CAAC,WAAW,SAAS,CAAC,CAAC,QAAQ,SAAS;CACzD,aAAa,YAAY,UAAU;CACnC,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACzC,aAAa,EAAE,KAAK;EACnB;EACA;EACA;EACA,CAAC,CAAC,UAAU;CACb,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CAC1C,UAAU,mBAAmB,CAAC,UAAU;CACxC,CAAC,CAAC,QAAQ;AACX,MAAM,qBAAqB,EAAE,OAAO;CACnC,YAAY;CACZ,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CAC1C,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACtC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACtC,CAAC,CAAC,QAAQ;AACX,MAAM,iBAAiB,EAAE,OAAO;CAC/B,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,QAAQ,MAAM,QAAQ,KAAK,OAAO,MAAM,YAAY,SAAS,EAAE,CAAC,CAAC,CAAC;CAC/F,YAAY,EAAE,QAAQ,CAAC,UAAU;CACjC,UAAU,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,UAAU,EAAE,EAAE,QAAQ,MAAM,QAAQ,KAAK,OAAO,MAAM,YAAY,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;CACzH,YAAY,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU;CAC9D,WAAW,EAAE,KAAK,CAAC,UAAU,SAAS,CAAC,CAAC,UAAU;CAClD,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,QAAQ,MAAM,QAAQ,KAAK,OAAO,MAAM,YAAY,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;CAC3G,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,SAAS,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,MAAM,QAAQ,KAAK,OAAO,MAAM,YAAY,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;CAC3H,MAAM,mBAAmB,UAAU;CACnC,CAAC,CAAC,QAAQ;AACX,MAAM,aAAa;CAClB,MAAM,EAAE,QAAQ,CAAC,QAAQ,GAAG;CAC5B,OAAO,EAAE,MAAM,eAAe,CAAC,UAAU;CACzC,YAAY,EAAE,QAAQ,CAAC,UAAU;CACjC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC1C,YAAY,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU;CAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,MAAM;CACN,OAAO,EAAE,KAAK;EACb;EACA;EACA;EACA,CAAC,CAAC,UAAU;CACb,WAAW,EAAE,KAAK;EACjB;EACA;EACA;EACA,CAAC,CAAC,UAAU;CACb,eAAe,EAAE,KAAK;EACrB;EACA;EACA;EACA,CAAC,CAAC,UAAU;CACb,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC5C,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,YAAY;CACZ,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CAC1C,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACrC,QAAQ;CACR,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACzC,aAAa,EAAE,KAAK;EACnB;EACA;EACA;EACA,CAAC,CAAC,UAAU;CACb,YAAY,EAAE,QAAQ,CAAC,UAAU;CACjC,SAAS,EAAE,MAAM,iBAAiB,CAAC,UAAU;CAC7C,aAAa,sBAAsB,UAAU;CAC7C,YAAY,yBAAyB,UAAU;CAC/C,SAAS,2BAA2B,UAAU;CAC9C,WAAW,EAAE,MAAM,EAAE,MAAM;EAC1B;EACA;EACA;EACA,CAAC,CAAC,CAAC,UAAU;CACd;AACD,MAAM,iBAAiB,EAAE,OAAO;CAC/B,GAAG;CACH,GAAG;CACH,MAAM,EAAE,QAAQ,OAAO;CACvB,CAAC,CAAC,QAAQ;AACX,MAAM,kBAAkB,EAAE,OAAO;CAChC,GAAG;CACH,MAAM,EAAE,QAAQ,QAAQ;CACxB,eAAe,EAAE,QAAQ,CAAC,IAAI,EAAE;CAChC,KAAK,EAAE,QAAQ,CAAC,UAAU;CAC1B,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,KAAK,EAAE,KAAK;EACX;EACA;EACA;EACA;EACA,CAAC,CAAC,QAAQ,UAAU;CACrB,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU;CACxC,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CAC1C,aAAa,YAAY,UAAU;CACnC,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACzC,aAAa,EAAE,KAAK;EACnB;EACA;EACA;EACA,CAAC,CAAC,UAAU;CACb,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CAC1C,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC3C,OAAO,EAAE,SAAS,CAAC,QAAQ,MAAM;CACjC,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CAC1C,YAAY,EAAE,QAAQ,CAAC,UAAU;CACjC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC1C,YAAY,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU;CAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,MAAM;CACN,OAAO,EAAE,KAAK;EACb;EACA;EACA;EACA,CAAC,CAAC,UAAU;CACb,WAAW,EAAE,KAAK;EACjB;EACA;EACA;EACA,CAAC,CAAC,UAAU;CACb,eAAe,EAAE,KAAK;EACrB;EACA;EACA;EACA,CAAC,CAAC,UAAU;CACb,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC5C,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,YAAY;CACZ,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACrC,QAAQ;CACR,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACzC,YAAY,EAAE,QAAQ,CAAC,UAAU;CACjC,SAAS,EAAE,MAAM,iBAAiB,CAAC,UAAU;CAC7C,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,CAAC,CAAC,QAAQ;AACX,MAAM,cAAc;CACnB,WAAW,gBAAgB,QAAQ,OAAO;CAC1C,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CAC1C,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACtC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACtC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACtC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACtC,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,UAAU;CACxD,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,UAAU;CACtD,sBAAsB,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU;CAC7D,gBAAgB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CAC5C,iBAAiB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CAC7C,iBAAiB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CAC7C,GAAG,EAAE,QAAQ,CAAC,UAAU;CACxB,UAAU,EAAE,KAAK;EAChB;EACA;EACA;EACA;EACA,CAAC,CAAC,QAAQ,QAAQ;CACnB,WAAW,YAAY,QAAQ,UAAU;CACzC,kBAAkB,YAAY,UAAU;CACxC,eAAe,EAAE,QAAQ,CAAC,QAAQ,EAAE;CACpC,aAAa,YAAY,QAAQ,UAAU;CAC3C,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACzC,iBAAiB,EAAE,QAAQ,CAAC,UAAU;CACtC,kBAAkB,EAAE,QAAQ,CAAC,QAAQ,EAAE;CACvC,eAAe,EAAE,KAAK;EACrB;EACA;EACA;EACA,CAAC,CAAC,QAAQ,QAAQ;CACnB,gBAAgB,EAAE,KAAK;EACtB;EACA;EACA;EACA,CAAC,CAAC,QAAQ,QAAQ;CACnB,aAAa,EAAE,KAAK;EACnB;EACA;EACA;EACA,CAAC,CAAC,UAAU;CACb,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC9C,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC5C,YAAY,EAAE,QAAQ,CAAC,QAAQ,EAAE;CACjC;AACD,MAAM,kBAAkB,EAAE,OAAO;CAChC,GAAG;CACH,GAAG;CACH,MAAM,EAAE,QAAQ,QAAQ;CACxB,CAAC,CAAC,QAAQ;AACX,MAAM,kBAAkB,EAAE,OAAO;CAChC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE;CAChC,OAAO,EAAE,QAAQ;CACjB,CAAC;AACF,MAAM,oBAAoB,EAAE,OAAO;CAClC,GAAG;CACH,MAAM,EAAE,QAAQ,UAAU;CAC1B,KAAK,EAAE,QAAQ,CAAC,QAAQ,GAAG;CAC3B,aAAa,EAAE,KAAK;EACnB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAC,CAAC,QAAQ,OAAO;CAClB,WAAW,EAAE,SAAS,CAAC,UAAU;CACjC,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,mBAAmB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACtD,eAAe,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC3C,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,EAAE;CACrC,MAAM,EAAE,SAAS,CAAC,QAAQ,KAAK;CAC/B,WAAW,EAAE,SAAS,CAAC,QAAQ,MAAM;CACrC,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,QAAQ,EAAE,SAAS,CAAC,UAAU;CAC9B,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC7B,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC,UAAU;CACzD,OAAO,YAAY,UAAU;CAC7B,WAAW,YAAY,UAAU;CACjC,eAAe,EAAE,SAAS,CAAC,UAAU;CACrC,aAAa,EAAE,SAAS,CAAC,UAAU;CACnC,CAAC,CAAC,QAAQ;;;;;;;;AAQX,MAAM,mBAAmB,EAAE,WAAW,EAAE,mBAAmB,QAAQ;CAClE;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAC,CAAC;AACH,MAAM,0BAA0B,EAAE,OAAO;CACxC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK;CACxC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK;CACzC,iBAAiB;CACjB,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC3C,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG;CACjD,MAAM,EAAE,KAAK,CAAC,SAAS,QAAQ,CAAC,CAAC,QAAQ,QAAQ;CACjD,aAAa,EAAE,SAAS,CAAC,UAAU;CACnC,QAAQ,EAAE,MAAM,iBAAiB,CAAC,QAAQ,EAAE,CAAC;CAC7C,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,UAAU;CACrC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC,UAAU;CACrD,SAAS,EAAE,MAAM,iBAAiB,CAAC,UAAU;CAC7C,QAAQ,EAAE,SAAS,CAAC,UAAU;CAC9B,gBAAgB,EAAE,QAAQ,CAAC,UAAU;CACrC,CAAC,CAAC,QAAQ;;;;;;;;;;;;;;;AAkBX,MAAM,4BAA4B,EAAE,KAAK;CACxC;CACA;CACA;CACA;CACA;CACA;CACA,CAAC;;;;AAIF,MAAM,6BAA6B,EAAE,OAAO;CAC3C,eAAe,EAAE,QAAQ;CACzB,eAAe,EAAE,QAAQ;CACzB,MAAM,EAAE,KAAK;EACZ;EACA;EACA;EACA,CAAC,CAAC,QAAQ,mBAAmB;CAC9B,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE;CACvD,CAAC,CAAC,QAAQ;;;;AAIX,MAAM,wBAAwB,EAAE,OAAO;CACtC,IAAI,EAAE,QAAQ;CACd,SAAS,EAAE,KAAK;EACf;EACA;EACA;EACA;EACA;EACA;EACA,CAAC,CAAC,QAAQ,SAAS;CACpB,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC5C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU;CACtD,eAAe,EAAE,OAAO;EACvB,MAAM,0BAA0B,QAAQ,MAAM;EAC9C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;EAClD,SAAS,2BAA2B,UAAU;EAC9C,eAAe,EAAE,KAAK;GACrB;GACA;GACA;GACA;GACA,CAAC,CAAC,QAAQ,OAAO;EAClB,CAAC,CAAC,QAAQ;EACV,MAAM;EACN,gBAAgB;EAChB,eAAe;EACf,CAAC;CACF,CAAC,CAAC,aAAa;AAChB,SAAS,yBAAyB,YAAY,oBAAoB;AACjE,QAAO;EACN,GAAG,WAAW;EACd,GAAG,WAAW;EACd,OAAO,WAAW;EAClB,IAAI,WAAW;EACf,IAAI,WAAW;EACf,GAAG;EACH;;;;;AAKF,SAAS,0BAA0B,QAAQ,MAAM,IAAI;CACpD,IAAI,mBAAmB;CACvB,MAAM,UAAU,EAAE;AAClB,MAAK,MAAM,SAAS,QAAQ;EAC3B,MAAM,aAAa;EACnB,MAAM,MAAM,MAAM,mBAAmB,MAAM,aAAa,KAAK,MAAM,MAAM,aAAa,MAAM,IAAI,GAAG;AACnG,UAAQ,KAAK;GACZ,SAAS,MAAM;GACf;GACA,gBAAgB;GAChB,CAAC;EACF,MAAM,UAAU,MAAM,qBAAqB,MAAM,eAAe,kBAAkB;AAClF,sBAAoB,KAAK,IAAI,GAAG,MAAM,QAAQ;;CAE/C,MAAM,cAAc;AACpB,QAAO;EACN;EACA,iBAAiB,KAAK,MAAM,cAAc,MAAM,IAAI;EACpD,cAAc;EACd;;AAEF,IAAI,QAAQ,MAAMC,QAAM;CACvB;CACA;CACA;CACA;CACA;CACA;CACA,YAAY,SAAS;AACpB,OAAK,KAAK,QAAQ;AAClB,OAAK,UAAU,QAAQ,WAAW;AAClC,OAAK,aAAa,QAAQ;AAC1B,OAAK,iBAAiB,QAAQ;AAC9B,OAAK,gBAAgB;GACpB,MAAM,QAAQ,eAAe,QAAQ;GACrC,gBAAgB,QAAQ,eAAe,kBAAkB;GACzD,SAAS,QAAQ,eAAe;GAChC,eAAe,QAAQ,eAAe,iBAAiB;GACvD;AACD,OAAK,SAAS,QAAQ,UAAU,EAAE;;CAEnC,OAAO,OAAO,SAAS;AACtB,SAAO,IAAIA,QAAM,QAAQ;;;AAG3B,IAAI,WAAW,MAAMC,WAAS;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA,SAAS,EAAE;CACX,YAAY,UAAU,EAAE,EAAE;AACzB,OAAK,MAAM,QAAQ,OAAO;AAC1B,OAAK,QAAQ,QAAQ,SAAS;AAC9B,OAAK,SAAS,QAAQ,UAAU;AAChC,OAAK,kBAAkB,QAAQ,mBAAmB;AAClD,OAAK,QAAQ,QAAQ;AACrB,OAAK,UAAU,QAAQ;AACvB,MAAI,QAAQ,OAAQ,MAAK,MAAM,MAAM,QAAQ,OAAQ,MAAK,SAAS,GAAG;;CAEvE,OAAO,OAAO,UAAU,EAAE,EAAE;AAC3B,SAAO,IAAIA,WAAS,QAAQ;;CAE7B,SAAS,OAAO;EACf,MAAM,IAAI,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,MAAM;AAC3D,OAAK,OAAO,KAAK,EAAE;AACnB,SAAO;;CAER,YAAY;AACX,SAAO,KAAK;;CAEb,oBAAoB;AACnB,SAAO,0BAA0B,KAAK,QAAQ,KAAK,IAAI;;CAExD,YAAY;EACX,MAAM,WAAW,KAAK,mBAAmB;EACzC,MAAM,aAAa,EAAE;AACrB,OAAK,IAAI,IAAI,GAAG,IAAI,KAAK,OAAO,QAAQ,KAAK;GAC5C,MAAM,QAAQ,KAAK,OAAO;GAC1B,MAAM,SAAS,SAAS,aAAa;AACrC,OAAI,CAAC,OAAQ;AACb,QAAK,MAAM,QAAQ,MAAM,QAAQ;IAChC,MAAM,SAAS,EAAE,GAAG,MAAM;AAC1B,WAAO,cAAc,OAAO,cAAc,KAAK,OAAO;AACtD,QAAI,OAAO,mBAAmB,KAAK,EAAG,QAAO,iBAAiB,OAAO;AACrE,eAAW,KAAK,OAAO;;;AAGzB,SAAO;GACN,OAAO,KAAK;GACZ,QAAQ,KAAK;GACb,iBAAiB,KAAK;GACtB,KAAK,KAAK;GACV,QAAQ;GACR,MAAM;GACN,QAAQ;GACR,OAAO,KAAK;GACZ,SAAS,KAAK;GACd;;;;;;AASH,SAAS,oBAAoB,OAAO,YAAY,eAAe,YAAY,WAAW;AACrF,KAAI,iBAAiB,KAAK,cAAc,EAAG,QAAO;AAClD,SAAQ,WAAR;EACC,KAAK,UAAW,SAAQ,aAAa,IAAI,SAAS;EAClD,KAAK,cAAc;GAClB,MAAM,UAAU,aAAa,KAAK;GAClC,MAAM,OAAO,KAAK,IAAI,QAAQ,OAAO;AACrC,UAAO,KAAK,MAAM,OAAO,cAAc;;EAExC,KAAK,UAAW,QAAO,QAAQ;EAC/B,QAAS,QAAO,YAAY,UAAU;;;;;;AAMxC,SAAS,uBAAuB,UAAU,eAAe,YAAY,WAAW,aAAa,GAAG;AAC/F,KAAI,CAAC,YAAY,SAAS,WAAW,EAAG,QAAO,EAAE;AACjD,KAAI,iBAAiB,KAAK,eAAe,EAAG,QAAO,CAAC,GAAG,SAAS;AAChE,QAAO,SAAS,KAAK,OAAO,QAAQ;EACnC,MAAM,QAAQ,oBAAoB,KAAK,SAAS,QAAQ,eAAe,UAAU;EACjF,MAAM,eAAe,MAAM,cAAc;AACzC,SAAO;GACN,GAAG;GACH,YAAY,eAAe,QAAQ;GACnC;GACA;;;;;;;;;;;;;;;AAkBH,SAAS,mBAAmB,MAAM,cAAc,KAAK,kBAAkB,GAAG,gBAAgB,yBAAyB;CAClH,IAAI,WAAW,EAAE;CACjB,MAAM,YAAY,KAAK,SAAS,UAAU,KAAK,OAAO,KAAK,gBAAgB,mBAAmB,OAAO,KAAK,gBAAgB,KAAK;CAC/H,MAAM,uBAAuB,MAAM,OAAO,MAAM,aAAa,EAAE,WAAW,UAAU,IAAI,EAAE,WAAW,WAAW,IAAI,EAAE,WAAW,UAAU,IAAI,EAAE,WAAW,IAAI,IAAI,EAAE,WAAW,KAAK,IAAI,EAAE,WAAW,QAAQ,IAAI,EAAE,WAAW,QAAQ,IAAI,oFAAoF,KAAK,EAAE;CACvU,IAAI;AACJ,KAAI,KAAK,SAAS,SAAS;AAC1B,MAAI,gBAAgB,KAAK,cAAe,SAAQ,aAAa,KAAK,cAAc;AAChF,MAAI,CAAC,SAAS,cAAc,oBAAoB,UAAU,IAAI,QAAQ,KAAK,IAAI,EAAG,SAAQ,mBAAmB,WAAW,KAAK,YAAY,QAAQ;AACjJ,MAAI,CAAC,SAAS,CAAC,gBAAgB,cAAc,UAAU,SAAS,IAAI,IAAI,UAAU,SAAS,IAAI,EAAG,SAAQ,KAAK,6BAA6B,KAAK,MAAM,IAAI,YAAY,UAAU,0BAA0B;AAC3M,MAAI,SAAS,KAAK,MAAM;GACvB,MAAM,UAAU,KAAK;GACrB,MAAM,SAAS,OAAO,QAAQ,gBAAgB,aAAa,QAAQ,aAAa,GAAG;AACnF,WAAQ;IACP,UAAU,EAAE,GAAG,MAAM,UAAU;IAC/B,WAAW;KACV,IAAI;KACJ,GAAG;KACH,UAAU,MAAM,UAAU;KAC1B;IACD,UAAU,CAAC,MAAM;IACjB;;AAEF,MAAI,SAAS,MAAM,QAAQ,KAAK,QAAQ,EAAE;GACzC,IAAI,eAAe;AACnB,QAAK,MAAM,OAAO,KAAK,SAAS;IAC/B,MAAM,QAAQ,OAAO,OAAO,IAAI,gBAAgB,aAAa,IAAI,aAAa,GAAG;AACjF,mBAAe;KACd,UAAU,EAAE,GAAG,aAAa,UAAU;KACtC,WAAW;MACV,IAAI,OAAO,MAAM,MAAM,SAAS;MAChC,IAAI,KAAK,KAAK,GAAG,KAAK,GAAG,GAAG,MAAM,MAAM,aAAa,KAAK;MAC1D,QAAQ;MACR,GAAG;MACH,UAAU,aAAa,UAAU;MACjC;KACD,UAAU,CAAC,aAAa;KACxB;;AAEF,WAAQ;;AAET,MAAI,SAAS,KAAK,QAAQ;GACzB,MAAM,YAAY,KAAK;GACvB,MAAM,WAAW,OAAO,UAAU,gBAAgB,aAAa,UAAU,aAAa,GAAG;AACzF,WAAQ;IACP,UAAU,EAAE,GAAG,MAAM,UAAU;IAC/B,WAAW;KACV,IAAI;KACJ,IAAI,KAAK;KACT,QAAQ;KACR,GAAG;KACH,UAAU,MAAM,UAAU;KAC1B;IACD,UAAU,CAAC,MAAM;IACjB;;;AAGH,KAAI,KAAK,SAAS,QAAS,YAAW,QAAQ,CAAC,MAAM,GAAG,EAAE;UACjD,cAAc,QAAQ,KAAK,UAAU;EAC7C,MAAM,gBAAgB,KAAK,SAAS,UAAU,OAAO,KAAK,kBAAkB,WAAW,KAAK,gBAAgB;EAC5G,MAAM,mBAAmB,KAAK,SAAS,UAAU,OAAO,KAAK,qBAAqB,WAAW,KAAK,mBAAmB;EACrH,MAAM,YAAY,OAAO,KAAK,eAAe,YAAY,OAAO,SAAS,KAAK,WAAW,GAAG,KAAK,MAAM,KAAK,WAAW,GAAG;EAC1H,MAAM,eAAe,OAAO,KAAK,mBAAmB,YAAY,OAAO,SAAS,KAAK,eAAe,GAAG,KAAK,MAAM,KAAK,eAAe,GAAG;EACzI,MAAM,eAAe,KAAK;AAC1B,aAAW,aAAa,KAAK,GAAG,QAAQ;GACvC,MAAM,QAAQ,oBAAoB,KAAK,aAAa,QAAQ,eAAe,iBAAiB;AAC5F,UAAO,mBAAmB,GAAG,cAAc,KAAK,kBAAkB,YAAY,OAAO,gBAAgB,EAAE,mBAAmB,KAAK,IAAI,eAAe,KAAK,EAAE;IACxJ;;CAEH,IAAI,WAAW;CACf,IAAI;AACJ,KAAI,OAAO;AACV,aAAW,MAAM,WAAW,YAAY;EACxC,MAAM,eAAe,aAAa,WAAW,aAAa,QAAQ,KAAK,IAAI,uBAAuB,MAAM,EAAE;AAC1G,MAAI,iBAAiB,KAAK,KAAK,iBAAiB,KAAM,SAAQ,KAAK,IAAI,GAAG,KAAK,MAAM,eAAe,MAAM,IAAI,CAAC;;CAEhH,MAAM,YAAY,OAAO,WAAW,aAAa;CACjD,MAAM,cAAc,KAAK,SAAS,UAAU,KAAK,SAAS,WAAW,KAAK,SAAS;CACnF,MAAM,cAAc,OAAO,KAAK,eAAe,YAAY,OAAO,SAAS,KAAK,WAAW,IAAI,KAAK,cAAc,IAAI,KAAK,MAAM,KAAK,WAAW,GAAG,KAAK;CACzJ,IAAI,MAAM,OAAO,KAAK,mBAAmB,YAAY,OAAO,SAAS,KAAK,eAAe,IAAI,KAAK,iBAAiB,IAAI,KAAK,MAAM,KAAK,eAAe,GAAG,KAAK;CAC9J,MAAM,sBAAsB,2BAA2B,KAAK,OAAO,kBAAkB,OAAO,MAAM,IAAI;AACtG,KAAI,eAAe,SAAS,SAAS,GACpC;MAAI,QAAQ,KAAK,GAAG;GACnB,MAAM,YAAY,SAAS,KAAK,OAAO,EAAE,UAAU,cAAc,MAAM,EAAE,UAAU,kBAAkB,qBAAqB;AAC1H,SAAM,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,UAAU,GAAG,WAAW;;YAE7C,aAAa,UAAU,KAAK,KAAK,QAAQ,EAAG,OAAM;UACpD,QAAQ,KAAK,GACrB;OAAK,aAAa,WAAW,aAAa,YAAY,UAAU,KAAK,KAAK,QAAQ,EAAG,OAAM,KAAK,IAAI,KAAK,MAAM;OACzG,OAAM,SAAS,2BAA2B,KAAK,OAAO,kBAAkB,OAAO,MAAM,IAAI;CAChG,MAAM,aAAa,MAAM,MAAM;AAC/B,KAAI,KAAK,SAAS,WAAW,OAAO;EACnC,IAAI,OAAO;AACX,SAAO,MAAM;AACZ,OAAI,CAAC,KAAK,UAAU,cAAc,KAAK,SAAS,cAAc,GAAG;AAChE,QAAI,CAAC,KAAK,SAAU,MAAK,WAAW,EAAE;AACtC,SAAK,SAAS,aAAa;;AAE5B,OAAI,KAAK,WAAW,cAAc,CAAC,KAAK,UAAU,WAAW,WAAY,MAAK,UAAU,WAAW,aAAa;AAChH,UAAO,KAAK,WAAW;;;AAGzB,QAAO;EACN,UAAU,EAAE,YAAY;EACxB,WAAW;GACV,IAAI;GACJ,GAAG;GACH;GACA,gBAAgB;GAChB;GACA;EACD;EACA;;AAEF,SAAS,oBAAoB,QAAQ,SAAS;CAC7C,MAAM,EAAE,aAAa,KAAK,YAAY,cAAc,YAAY;CAChE,IAAI,YAAY;EACf,UAAU;GACT,OAAO,OAAO;GACd,QAAQ,OAAO;GACf;GACA,GAAG,eAAe,KAAK,KAAK,EAAE,YAAY;GAC1C;EACD,WAAW;GACV,IAAI;GACJ,OAAO,OAAO;GACd,QAAQ,OAAO;GACf;GACA,MAAM,OAAO,QAAQ;GACrB,iBAAiB,OAAO;GACxB,GAAG,OAAO,gBAAgB,KAAK,KAAK,EAAE,aAAa,OAAO,aAAa;GACvE,QAAQ,OAAO,UAAU;GACzB,UAAU,cAAc,UAAU;GAClC,QAAQ,OAAO;GACf,SAAS;IACR,GAAG,qBAAqB,OAAO,OAAO;IACtC,GAAG,WAAW,OAAO,WAAW,EAAE;IAClC;GACD,GAAG,OAAO,kBAAkB,QAAQ,iBAAiB,EAAE,gBAAgB,OAAO,kBAAkB,QAAQ,gBAAgB,GAAG,EAAE;GAC7H;EACD,UAAU,YAAY,OAAO,OAAO,CAAC,KAAK,MAAM,mBAAmB,GAAG,cAAc,KAAK,GAAG,WAAW,CAAC;EACxG;CACD,MAAM,cAAc,MAAM,QAAQ,QAAQ,QAAQ,GAAG,QAAQ,UAAU,MAAM,QAAQ,OAAO,QAAQ,GAAG,OAAO,UAAU,EAAE;AAC1H,MAAK,MAAM,OAAO,aAAa;EAC9B,MAAM,QAAQ,OAAO,OAAO,IAAI,gBAAgB,aAAa,IAAI,aAAa,GAAG;AACjF,cAAY;GACX,UAAU,EAAE,GAAG,UAAU,UAAU;GACnC,WAAW;IACV,GAAG;IACH,UAAU,UAAU,UAAU;IAC9B;GACD,UAAU,CAAC,UAAU;GACrB;;CAEF,MAAM,YAAY,OAAO,UAAU,QAAQ;AAC3C,KAAI,WAAW;EACd,MAAM,WAAW,OAAO,UAAU,gBAAgB,aAAa,UAAU,aAAa,GAAG;AACzF,cAAY;GACX,UAAU,EAAE,GAAG,UAAU,UAAU;GACnC,WAAW;IACV,IAAI;IACJ,GAAG;IACH,UAAU,UAAU,UAAU;IAC9B;GACD,UAAU,CAAC,UAAU;GACrB;;AAEF,QAAO;;;AAGR,SAAS,eAAe,OAAO;CAC9B,MAAM,MAAM,EAAE;CACd,MAAM,QAAQ,OAAO;AACpB,MAAI,IAAI,WAAW,OAAO,kBAAmB,KAAI,KAAK,GAAG;AACzD,OAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAE,MAAK,EAAE;;AAE5C,MAAK,MAAM,KAAK,MAAO,MAAK,EAAE;AAC9B,QAAO"}
|