hyperframes 0.4.31 → 0.4.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -54,7 +54,7 @@ var VERSION;
54
54
  var init_version = __esm({
55
55
  "src/version.ts"() {
56
56
  "use strict";
57
- VERSION = true ? "0.4.31" : "0.0.0-dev";
57
+ VERSION = true ? "0.4.33" : "0.0.0-dev";
58
58
  }
59
59
  });
60
60
 
@@ -4426,12 +4426,28 @@ var init_core = __esm({
4426
4426
  function escapeRegExp(value) {
4427
4427
  return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
4428
4428
  }
4429
- function selectorTargetsManagedMedia(selector, mediaIds) {
4429
+ function hasAttrName(tagSource, attr) {
4430
+ const escaped = escapeRegExp(attr);
4431
+ const attrs = tagSource.replace(/^<\s*[a-z][\w:-]*/i, "");
4432
+ return new RegExp(`(?:^|\\s)${escaped}(?:\\s*=|\\s|/?>)`, "i").test(attrs);
4433
+ }
4434
+ function classNamesFromAttr(classAttr) {
4435
+ if (!classAttr) return [];
4436
+ return classAttr.split(/\s+/).filter(Boolean);
4437
+ }
4438
+ function selectorTargetsManagedMedia(selector, mediaIndex) {
4430
4439
  const normalized = selector.trim();
4431
4440
  if (!normalized) return false;
4432
- if (/\b(video|audio)\b/i.test(normalized)) return true;
4433
- for (const mediaId of mediaIds) {
4434
- if (normalized.includes(`#${mediaId}`) || normalized.includes(`[id="${mediaId}"]`) || normalized.includes(`[id='${mediaId}']`)) {
4441
+ if (mediaIndex.hasVideo && /\bvideo\b/i.test(normalized)) return true;
4442
+ if (mediaIndex.hasAudio && /\baudio\b/i.test(normalized)) return true;
4443
+ for (const mediaId of mediaIndex.ids) {
4444
+ const escapedId = escapeRegExp(mediaId);
4445
+ if (new RegExp(`#${escapedId}(?![\\w-])`).test(normalized) || normalized.includes(`[id="${mediaId}"]`) || normalized.includes(`[id='${mediaId}']`)) {
4446
+ return true;
4447
+ }
4448
+ }
4449
+ for (const className of mediaIndex.classes) {
4450
+ if (new RegExp(`\\.${escapeRegExp(className)}(?![\\w-])`).test(normalized)) {
4435
4451
  return true;
4436
4452
  }
4437
4453
  }
@@ -4439,66 +4455,96 @@ function selectorTargetsManagedMedia(selector, mediaIds) {
4439
4455
  }
4440
4456
  function findImperativeMediaControlFindings(ctx) {
4441
4457
  const findings = [];
4442
- const managedMediaIds = new Set(
4443
- ctx.tags.filter((tag) => tag.name === "video" || tag.name === "audio").map((tag) => readAttr(tag.raw, "id")).filter((id) => Boolean(id))
4444
- );
4445
- if (managedMediaIds.size === 0 || ctx.scripts.length === 0) return findings;
4458
+ const mediaTags = ctx.tags.filter((tag) => tag.name === "video" || tag.name === "audio");
4459
+ const mediaIndex = {
4460
+ ids: new Set(
4461
+ mediaTags.map((tag) => readAttr(tag.raw, "id")).filter((id) => Boolean(id))
4462
+ ),
4463
+ classes: new Set(mediaTags.flatMap((tag) => classNamesFromAttr(readAttr(tag.raw, "class")))),
4464
+ hasVideo: mediaTags.some((tag) => tag.name === "video"),
4465
+ hasAudio: mediaTags.some((tag) => tag.name === "audio")
4466
+ };
4467
+ if (mediaTags.length === 0 || ctx.scripts.length === 0) return findings;
4446
4468
  for (const script of ctx.scripts) {
4447
4469
  const mediaVars = /* @__PURE__ */ new Map();
4448
4470
  const assignmentPatterns = [
4449
- /\b(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=\s*(?:document|window\.document)\.getElementById\(\s*["']([^"']+)["']\s*\)/g,
4450
- /\b(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=\s*(?:document|window\.document)\.querySelector\(\s*["']([^"']+)["']\s*\)/g
4471
+ {
4472
+ pattern: /\b(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=\s*(?:document|window\.document)\.getElementById\(\s*["']([^"']+)["']\s*\)/g,
4473
+ variableIndex: 1,
4474
+ targetIndex: 2
4475
+ },
4476
+ {
4477
+ pattern: /\b(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=\s*(?:document|window\.document)\.querySelector\(\s*(["'])([\s\S]*?)\2\s*\)/g,
4478
+ variableIndex: 1,
4479
+ targetIndex: 3
4480
+ }
4451
4481
  ];
4452
- for (const pattern of assignmentPatterns) {
4482
+ for (const { pattern, variableIndex, targetIndex } of assignmentPatterns) {
4453
4483
  let match;
4454
4484
  while ((match = pattern.exec(script.content)) !== null) {
4455
- const variableName = match[1];
4456
- const target = match[2];
4485
+ const variableName = match[variableIndex];
4486
+ const target = match[targetIndex];
4457
4487
  if (!variableName || !target) continue;
4458
- if (managedMediaIds.has(target) || selectorTargetsManagedMedia(target, managedMediaIds)) {
4459
- mediaVars.set(variableName, managedMediaIds.has(target) ? target : void 0);
4488
+ if (mediaIndex.ids.has(target) || selectorTargetsManagedMedia(target, mediaIndex)) {
4489
+ mediaVars.set(variableName, mediaIndex.ids.has(target) ? target : void 0);
4460
4490
  }
4461
4491
  }
4462
4492
  }
4463
4493
  const directIdPatterns = [
4464
4494
  {
4465
4495
  pattern: /\b(?:document|window\.document)\.getElementById\(\s*["']([^"']+)["']\s*\)\.play\s*\(/g,
4466
- kind: "play()"
4496
+ kind: "play()",
4497
+ targetIndex: 1
4467
4498
  },
4468
4499
  {
4469
4500
  pattern: /\b(?:document|window\.document)\.getElementById\(\s*["']([^"']+)["']\s*\)\.pause\s*\(/g,
4470
- kind: "pause()"
4501
+ kind: "pause()",
4502
+ targetIndex: 1
4471
4503
  },
4472
4504
  {
4473
4505
  pattern: /\b(?:document|window\.document)\.getElementById\(\s*["']([^"']+)["']\s*\)\.currentTime\s*=/g,
4474
- kind: "currentTime"
4506
+ kind: "currentTime",
4507
+ targetIndex: 1
4508
+ },
4509
+ {
4510
+ pattern: /\b(?:document|window\.document)\.getElementById\(\s*["']([^"']+)["']\s*\)\.muted\s*=/g,
4511
+ kind: "muted assignment",
4512
+ targetIndex: 1
4513
+ },
4514
+ {
4515
+ pattern: /\b(?:document|window\.document)\.querySelector\(\s*(["'])([\s\S]*?)\1\s*\)\.play\s*\(/g,
4516
+ kind: "play()",
4517
+ targetIndex: 2
4475
4518
  },
4476
4519
  {
4477
- pattern: /\b(?:document|window\.document)\.querySelector\(\s*["']([^"']+)["']\s*\)\.play\s*\(/g,
4478
- kind: "play()"
4520
+ pattern: /\b(?:document|window\.document)\.querySelector\(\s*(["'])([\s\S]*?)\1\s*\)\.pause\s*\(/g,
4521
+ kind: "pause()",
4522
+ targetIndex: 2
4479
4523
  },
4480
4524
  {
4481
- pattern: /\b(?:document|window\.document)\.querySelector\(\s*["']([^"']+)["']\s*\)\.pause\s*\(/g,
4482
- kind: "pause()"
4525
+ pattern: /\b(?:document|window\.document)\.querySelector\(\s*(["'])([\s\S]*?)\1\s*\)\.currentTime\s*=/g,
4526
+ kind: "currentTime",
4527
+ targetIndex: 2
4483
4528
  },
4484
4529
  {
4485
- pattern: /\b(?:document|window\.document)\.querySelector\(\s*["']([^"']+)["']\s*\)\.currentTime\s*=/g,
4486
- kind: "currentTime"
4530
+ pattern: /\b(?:document|window\.document)\.querySelector\(\s*(["'])([\s\S]*?)\1\s*\)\.muted\s*=/g,
4531
+ kind: "muted assignment",
4532
+ targetIndex: 2
4487
4533
  }
4488
4534
  ];
4489
- for (const { pattern, kind } of directIdPatterns) {
4535
+ for (const { pattern, kind, targetIndex } of directIdPatterns) {
4490
4536
  let match;
4491
4537
  while ((match = pattern.exec(script.content)) !== null) {
4492
- const target = match[1];
4538
+ const target = match[targetIndex];
4493
4539
  if (!target) continue;
4494
- const elementId = managedMediaIds.has(target) ? target : selectorTargetsManagedMedia(target, managedMediaIds) ? void 0 : null;
4540
+ const elementId = mediaIndex.ids.has(target) ? target : selectorTargetsManagedMedia(target, mediaIndex) ? void 0 : null;
4495
4541
  if (elementId === null) continue;
4496
4542
  findings.push({
4497
4543
  code: "imperative_media_control",
4498
4544
  severity: "error",
4499
4545
  message: `Inline <script> imperatively controls managed media via ${kind}. HyperFrames must own media play/pause/seek to keep preview, timeline, and renders deterministic.`,
4500
4546
  elementId: elementId || void 0,
4501
- fixHint: "Remove imperative media play/pause/currentTime control. Express timing with data-start/data-duration and media offsets like data-media-start or data-playback-start instead.",
4547
+ fixHint: "Remove imperative media play/pause/currentTime/muted control. Express timing with data-start/data-duration and media offsets like data-media-start or data-playback-start instead.",
4502
4548
  snippet: truncateSnippet(match[0])
4503
4549
  });
4504
4550
  }
@@ -4508,7 +4554,11 @@ function findImperativeMediaControlFindings(ctx) {
4508
4554
  const variablePatterns = [
4509
4555
  { pattern: new RegExp(`\\b${escapedVar}\\.play\\s*\\(`, "g"), kind: "play()" },
4510
4556
  { pattern: new RegExp(`\\b${escapedVar}\\.pause\\s*\\(`, "g"), kind: "pause()" },
4511
- { pattern: new RegExp(`\\b${escapedVar}\\.currentTime\\s*=`, "g"), kind: "currentTime" }
4557
+ { pattern: new RegExp(`\\b${escapedVar}\\.currentTime\\s*=`, "g"), kind: "currentTime" },
4558
+ {
4559
+ pattern: new RegExp(`\\b${escapedVar}\\.muted\\s*=`, "g"),
4560
+ kind: "muted assignment"
4561
+ }
4512
4562
  ];
4513
4563
  for (const { pattern, kind } of variablePatterns) {
4514
4564
  let match;
@@ -4518,7 +4568,7 @@ function findImperativeMediaControlFindings(ctx) {
4518
4568
  severity: "error",
4519
4569
  message: `Inline <script> imperatively controls managed media via ${kind}. HyperFrames must own media play/pause/seek to keep preview, timeline, and renders deterministic.`,
4520
4570
  elementId,
4521
- fixHint: "Remove imperative media play/pause/currentTime control. Express timing with data-start/data-duration and media offsets like data-media-start or data-playback-start instead.",
4571
+ fixHint: "Remove imperative media play/pause/currentTime/muted control. Express timing with data-start/data-duration and media offsets like data-media-start or data-playback-start instead.",
4522
4572
  snippet: truncateSnippet(match[0])
4523
4573
  });
4524
4574
  }
@@ -4585,15 +4635,27 @@ var init_media = __esm({
4585
4635
  const findings = [];
4586
4636
  for (const tag of tags) {
4587
4637
  if (tag.name !== "video") continue;
4588
- const hasMuted = /\bmuted\b/i.test(tag.raw);
4589
- if (!hasMuted && readAttr(tag.raw, "data-start")) {
4638
+ const hasMuted = hasAttrName(tag.raw, "muted");
4639
+ const hasDeclaredAudio = readAttr(tag.raw, "data-has-audio") === "true";
4640
+ if (!hasMuted && !hasDeclaredAudio && readAttr(tag.raw, "data-start")) {
4590
4641
  const elementId = readAttr(tag.raw, "id") || void 0;
4591
4642
  findings.push({
4592
4643
  code: "video_missing_muted",
4593
4644
  severity: "error",
4594
- message: `<video${elementId ? ` id="${elementId}"` : ""}> has data-start but is not muted. The framework expects video to be muted with a separate <audio> element for sound.`,
4645
+ message: `<video${elementId ? ` id="${elementId}"` : ""}> has data-start but is not muted. Mark audible videos with data-has-audio="true"; otherwise keep video muted and use a separate <audio> element for sound.`,
4646
+ elementId,
4647
+ fixHint: 'Add the `muted` attribute for silent video, or add data-has-audio="true" when the video track should contribute audio.',
4648
+ snippet: truncateSnippet(tag.raw)
4649
+ });
4650
+ }
4651
+ if (hasMuted && hasDeclaredAudio) {
4652
+ const elementId = readAttr(tag.raw, "id") || void 0;
4653
+ findings.push({
4654
+ code: "video_muted_with_declared_audio",
4655
+ severity: "error",
4656
+ message: `<video${elementId ? ` id="${elementId}"` : ""}> declares data-has-audio="true" but also has muted. Studio preview will silence the video audio.`,
4595
4657
  elementId,
4596
- fixHint: "Add the `muted` attribute to the <video> tag and use a separate <audio> element with the same src for audio playback.",
4658
+ fixHint: 'Remove the `muted` attribute if this video should be audible, or remove data-has-audio="true" and use data-volume="0" for silent visual video.',
4597
4659
  snippet: truncateSnippet(tag.raw)
4598
4660
  });
4599
4661
  }
@@ -4715,7 +4777,7 @@ var init_media = __esm({
4715
4777
  }
4716
4778
  return findings;
4717
4779
  },
4718
- // media_missing_id + media_missing_src + media_preload_none
4780
+ // media_missing_data_start + media_missing_id + media_missing_src + media_preload_none
4719
4781
  ({ tags }) => {
4720
4782
  const findings = [];
4721
4783
  for (const tag of tags) {
@@ -4723,6 +4785,16 @@ var init_media = __esm({
4723
4785
  const hasDataStart = readAttr(tag.raw, "data-start");
4724
4786
  const hasId = readAttr(tag.raw, "id");
4725
4787
  const hasSrc = readAttr(tag.raw, "src");
4788
+ if (hasSrc && !hasDataStart) {
4789
+ findings.push({
4790
+ code: "media_missing_data_start",
4791
+ severity: "error",
4792
+ message: `<${tag.name}${hasId ? ` id="${hasId}"` : ""}> has src but no data-start. HyperFrames cannot own playback for untimed media, so preview and render behavior can diverge.`,
4793
+ elementId: hasId || void 0,
4794
+ fixHint: `Add data-start="0" (or the intended start time) and data-duration if the clip should stop before the source ends.`,
4795
+ snippet: truncateSnippet(tag.raw)
4796
+ });
4797
+ }
4726
4798
  if (hasDataStart && !hasId) {
4727
4799
  findings.push({
4728
4800
  code: "media_missing_id",
@@ -5600,6 +5672,31 @@ var init_composition = __esm({
5600
5672
  }
5601
5673
  return findings;
5602
5674
  },
5675
+ // split_data_attribute_selector
5676
+ ({ scripts, styles }) => {
5677
+ const findings = [];
5678
+ const splitDataAttrSelectorPattern = /\[data-composition-id=(["'])([^"'\]]+)\1\s+(data-[\w:-]+)=(["'])([^"'\]]*)\4\]/g;
5679
+ const scan = (content) => {
5680
+ splitDataAttrSelectorPattern.lastIndex = 0;
5681
+ let match;
5682
+ while ((match = splitDataAttrSelectorPattern.exec(content)) !== null) {
5683
+ const compId = match[2] ?? "";
5684
+ const attrName = match[3] ?? "";
5685
+ const attrValue = match[5] ?? "";
5686
+ findings.push({
5687
+ code: "split_data_attribute_selector",
5688
+ severity: "error",
5689
+ message: `Selector "${match[0]}" combines two attributes inside one CSS attribute selector. Browsers reject it, so GSAP timelines or querySelector calls will fail before registering.`,
5690
+ selector: match[0],
5691
+ fixHint: `Use separate attribute selectors: [data-composition-id="${compId}"][${attrName}="${attrValue}"].`,
5692
+ snippet: truncateSnippet(match[0])
5693
+ });
5694
+ }
5695
+ };
5696
+ for (const style of styles) scan(style.content);
5697
+ for (const script of scripts) scan(script.content);
5698
+ return findings;
5699
+ },
5603
5700
  // template_literal_selector
5604
5701
  ({ scripts }) => {
5605
5702
  const findings = [];
@@ -6095,7 +6192,7 @@ var RUNTIME_IIFE;
6095
6192
  var init_runtime_inline = __esm({
6096
6193
  "../core/src/generated/runtime-inline.ts"() {
6097
6194
  "use strict";
6098
- RUNTIME_IIFE = '"use strict";(()=>{function fe(e){try{window.parent.postMessage(e,"*")}catch{}}function At(e){let t=n=>{let i=n.data;if(!i||i.source!=="hf-parent"||i.type!=="control")return;let r=i.action;if(r==="play"){e.onPlay();return}if(r==="pause"){e.onPause();return}if(r==="seek"){e.onSeek(Number(i.frame??0),i.seekMode??"commit");return}if(r==="set-muted"){e.onSetMuted(!!i.muted);return}if(r==="set-media-output-muted"){e.onSetMediaOutputMuted(!!i.muted);return}if(r==="set-playback-rate"){e.onSetPlaybackRate(Number(i.playbackRate??1));return}if(r==="enable-pick-mode"){e.onEnablePickMode();return}if(r==="disable-pick-mode"){e.onDisablePickMode();return}if(r==="flash-elements"){let o=i.selectors,u=i.duration||800;o&&Nn(o,u)}};return window.addEventListener("message",t),t}function Nn(e,t){if(!document.getElementById("__hf-flash-styles")){let n=document.createElement("style");n.id="__hf-flash-styles",n.textContent=`\n .__hf-flash {\n outline: 2px solid rgba(59, 130, 246, 0.6) !important;\n outline-offset: 2px !important;\n animation: __hf-flash-pulse ${t}ms ease-out forwards !important;\n }\n @keyframes __hf-flash-pulse {\n 0% { outline-color: rgba(59, 130, 246, 0.8); }\n 100% { outline-color: transparent; }\n }\n `,document.head.appendChild(n)}for(let n of e)try{document.querySelectorAll(n).forEach(r=>{r.classList.add("__hf-flash"),setTimeout(()=>r.classList.remove("__hf-flash"),t)})}catch{}}var et=null;function Nt(e){et=e}function Pe(e,t){if(et)try{et({source:"hf-preview",type:"analytics",event:e,properties:t??{}})}catch{}}function Et(e){let t=[],n=d=>{if(typeof d.getAnimations!="function")return[];try{return d.getAnimations()}catch{return[]}},i=(d,c)=>{for(let s of d){try{s.currentTime=c}catch{}try{s.pause()}catch{}}},r=d=>{for(let c of d)try{c.play()}catch{}},o=d=>{for(let c of d)try{c.pause()}catch{}},u=d=>{d.baseDelay?d.el.style.animationDelay=d.baseDelay:d.el.style.removeProperty("animation-delay"),d.basePlayState?d.el.style.animationPlayState=d.basePlayState:d.el.style.removeProperty("animation-play-state")};return{name:"css",discover:()=>{t=[];let d=document.querySelectorAll("*");for(let c of d){if(!(c instanceof HTMLElement))continue;let s=window.getComputedStyle(c);!s.animationName||s.animationName==="none"||t.push({el:c,baseDelay:c.style.animationDelay||"",basePlayState:c.style.animationPlayState||""})}},seek:d=>{let c=Number(d.time)||0;for(let s of t){if(!s.el.isConnected)continue;let a=e?.resolveStartSeconds?e.resolveStartSeconds(s.el):Number.parseFloat(s.el.getAttribute("data-start")??"0")||0,m=Math.max(0,c-a)*1e3,h=n(s.el);if(h.length>0){i(h,m);continue}s.el.style.animationPlayState="paused",s.el.style.animationDelay=`-${(m/1e3).toFixed(3)}s`}},pause:()=>{for(let d of t){if(!d.el.isConnected)continue;let c=n(d.el);c.length>0&&o(c),u(d)}},play:()=>{for(let d of t)d.el.isConnected&&(u(d),r(n(d.el)))},revert:()=>{t=[]}}}function yt(e){return{name:"gsap",discover:()=>{},seek:t=>{let n=e.getTimeline();if(!n)return;n.pause();let i=Math.max(0,Number(t.time)||0);typeof n.totalTime=="function"?n.totalTime(i,!1):n.seek(i,!1)},pause:()=>{let t=e.getTimeline();t&&t.pause()}}}function Ct(){return{name:"lottie",discover:()=>{try{let e=window.lottie;if(e&&typeof e.getRegisteredAnimations=="function"){let t=e.getRegisteredAnimations();if(Array.isArray(t)&&t.length>0){let n=window.__hfLottie??[],i=new Set(n);for(let r of t)i.has(r)||n.push(r);window.__hfLottie=n}}}catch{}},seek:e=>{let t=Math.max(0,Number(e.time)||0),n=window.__hfLottie;if(!(!n||n.length===0))for(let i of n)try{if(bt(i))i.goToAndStop(t*1e3,!1);else if(Mt(i)){if(typeof i.setCurrentRawFrameValue=="function"){let r=i.totalFrames??0,o=i.frameRate??30,u=t*o;r>0&&i.setCurrentRawFrameValue(Math.min(u,r-1))}else if(typeof i.seek=="function"){let r=i.duration??1,o=Math.min(100,t/r*100);i.seek(o)}}}catch{}},pause:()=>{let e=window.__hfLottie;if(!(!e||e.length===0))for(let t of e)try{(bt(t)||Mt(t))&&t.pause()}catch{}},revert:()=>{}}}function bt(e){return typeof e=="object"&&e!==null&&typeof e.goToAndStop=="function"}function Mt(e){return typeof e=="object"&&e!==null&&typeof e.pause=="function"&&("totalFrames"in e||"duration"in e)}function Dt(){let e=null,t=0;return{name:"three",discover:()=>{},seek:n=>{e=Math.max(0,Number(n.time)||0),t=e,window.__hfThreeTime=e;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:e}}))}catch{}},pause:()=>{e==null&&(e=Math.max(0,t))},play:()=>{e=null},revert:()=>{e=null,t=0}}}function kt(){return{name:"waapi",discover:()=>{},seek:e=>{if(!document.getAnimations)return;let t=Math.max(0,(Number(e.time)||0)*1e3);for(let n of document.getAnimations()){try{n.currentTime=t}catch{}try{n.pause()}catch{}}},pause:()=>{if(document.getAnimations)for(let e of document.getAnimations())try{e.pause()}catch{}}}}function Lt(e){let t=Array.from(document.querySelectorAll("video, audio")),n=e?.shouldIncludeElement?t.filter(u=>e.shouldIncludeElement?.(u)):t.filter(u=>u.hasAttribute("data-start")),i=[],r=[],o=0;for(let u of n){let d=e?.resolveStartSeconds?e.resolveStartSeconds(u):Number.parseFloat(u.dataset.start??"0");if(!Number.isFinite(d))continue;let c=Number.parseFloat(u.dataset.playbackStart??u.dataset.mediaStart??"0")||0,s=u.defaultPlaybackRate,a=Number.isFinite(s)&&s>0?Math.max(.1,Math.min(5,s)):1,m=u.loop,h=Number.isFinite(u.duration)&&u.duration>0?u.duration:null,A=e?.resolveDurationSeconds?.(u)??Number.parseFloat(u.dataset.duration??"");(!Number.isFinite(A)||A<=0)&&h!=null&&(A=Math.max(0,(h-c)/a));let C=Number.isFinite(A)&&A>0?d+A:Number.POSITIVE_INFINITY,D=Number.parseFloat(u.dataset.volume??""),L={el:u,start:d,mediaStart:c,duration:Number.isFinite(A)&&A>0?A:Number.POSITIVE_INFINITY,end:C,volume:Number.isFinite(D)?D:null,playbackRate:a,loop:m,sourceDuration:h};i.push(L),u.tagName==="VIDEO"&&r.push(L),Number.isFinite(C)&&(o=Math.max(o,C))}return{timedMediaEls:n,mediaClips:i,videoClips:r,maxMediaEnd:o}}var tt=new WeakMap,Oe=new WeakSet;function En(e){if(Oe.has(e))return;Oe.add(e);let t=()=>Oe.delete(e);e.addEventListener("playing",t,{once:!0}),e.addEventListener("pause",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function Tt(e){let t=!!(e.outputMuted||e.userMuted);for(let n of e.clips){let{el:i}=n;if(!i.isConnected)continue;let r=(e.timeSeconds-n.start)*n.playbackRate+n.mediaStart;if(e.timeSeconds>=n.start&&e.timeSeconds<n.end&&r>=0){if(n.loop&&n.sourceDuration!=null&&n.sourceDuration>0){let A=n.sourceDuration-n.mediaStart;A>0&&r>=n.sourceDuration&&(r=n.mediaStart+(r-n.mediaStart)%A)}n.volume!=null&&(i.volume=n.volume),t&&(i.muted=!0);try{i.playbackRate=n.playbackRate*e.playbackRate}catch{}let u=i.currentTime||0,d=Math.abs(u-r),c=r-u,s=tt.get(i);tt.set(i,c);let a=s===void 0,m=!a&&Math.abs(c-s)>.5,h=d>3;if(d>.5&&(a||m||h))try{i.currentTime=r}catch{}e.playing&&i.paused&&!Oe.has(i)?(i.preload!=="auto"&&(i.preload="auto"),En(i),i.play().catch(A=>{Oe.delete(i),(A&&typeof A=="object"&&"name"in A?String(A.name??""):"")==="NotAllowedError"&&e.onAutoplayBlocked?.()})):!e.playing&&!i.paused&&i.pause();continue}tt.delete(i),i.paused||i.pause()}}function wt(e){let t=!1,n=null,i=null,r=null,o=null;function u(S,x){try{window.dispatchEvent(new CustomEvent(S,{detail:x}))}catch{}}function d(S){r=S,u("hyperframe:picker:hovered",{elementInfo:r,isPickMode:t,timestamp:Date.now()})}function c(S){o=S,u("hyperframe:picker:selected",{elementInfo:o,isPickMode:t,timestamp:Date.now()})}function s(S){if(!S||S===document.body||S===document.documentElement)return!1;let x=S.tagName.toLowerCase();return!(x==="script"||x==="style"||x==="link"||x==="meta"||S.classList.contains("__hf-pick-highlight"))}function a(S){let x=S;if(x.id)return`#${x.id}`;let g=S.getAttribute("data-composition-id");if(g)return`[data-composition-id="${g}"]`;let N=S.getAttribute("data-composition-src");if(N)return`[data-composition-src="${N}"]`;let y=S.getAttribute("data-track-index");if(y)return`[data-track-index="${y}"]`;let E=S.tagName.toLowerCase(),R=S.parentElement;if(!R)return E;let _=R.querySelectorAll(`:scope > ${E}`);if(_.length===1)return E;for(let W=0;W<_.length;W+=1)if(_[W]===S)return`${E}:nth-of-type(${W+1})`;return E}function m(S){let x=S.tagName.toLowerCase(),g=(S.textContent??"").trim().replace(/\\s+/g," "),N=(y,E)=>y.length>E?`${y.slice(0,E-1)}\\u2026`:y;return x==="h1"||x==="h2"||x==="h3"?"Heading":x==="p"||x==="span"||x==="div"?g.length>0?N(g,56):"Text":x==="img"?"Image":x==="video"?"Video":x==="audio"?"Audio":x==="svg"?"Shape":S.getAttribute("data-composition-src")?"Composition":x==="section"?"Section":`${x.charAt(0).toUpperCase()}${x.slice(1)}`}function h(S,x,g){let N=typeof g=="number"&&g>0?g:8,y=[];if(document.elementsFromPoint)y=document.elementsFromPoint(S,x);else if(document.elementFromPoint){let _=document.elementFromPoint(S,x);y=_?[_]:[]}let E={},R=[];for(let _=0;_<y.length;_+=1){let W=y[_];if(!s(W))continue;let Z=`${W.tagName}::${W.id||""}::${_}`;if(!E[Z]&&(E[Z]=!0,R.push(W),R.length>=N))break}return R}function A(S){let x=S.getBoundingClientRect(),g={};for(let y=0;y<S.attributes.length;y+=1){let E=S.attributes[y];E.name.startsWith("data-")&&(g[E.name]=E.value)}return{id:S.id||null,tagName:S.tagName.toLowerCase(),selector:a(S),label:m(S),boundingBox:{x:x.left,y:x.top,width:x.width,height:x.height},textContent:S.textContent?S.textContent.trim().slice(0,200):null,src:S.getAttribute("src")||S.getAttribute("data-composition-src")||null,dataAttributes:g}}function C(S,x,g){return h(S,x,g).map(A)}function D(S){if(!t)return;let g=h(S.clientX,S.clientY,1)[0]??(S.target instanceof Element?S.target:null);if(!s(g)||n===g)return;n&&n.classList.remove("__hf-pick-highlight"),n=g,g.classList.add("__hf-pick-highlight");let N=A(g);d(N),e.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:N})}function L(S){if(!t)return;S.preventDefault(),S.stopPropagation(),S.stopImmediatePropagation();let x=C(S.clientX,S.clientY,8);x.length!==0&&(d(x[0]??null),e.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:x,selectedIndex:0,point:{x:S.clientX,y:S.clientY}}))}function G(S){S.key==="Escape"&&(k(),e.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function U(){t||(t=!0,i=document.createElement("style"),i.textContent=[".__hf-pick-highlight { outline: 2px solid #4f8cf7 !important; outline-offset: 2px; cursor: crosshair !important; }",".__hf-pick-active * { cursor: crosshair !important; }"].join(`\n`),document.head.appendChild(i),document.body.classList.add("__hf-pick-active"),document.addEventListener("mousemove",D,!0),document.addEventListener("click",L,!0),document.addEventListener("keydown",G,!0),u("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function k(){t&&(t=!1,n&&(n.classList.remove("__hf-pick-highlight"),n=null),i&&(i.remove(),i=null),document.body.classList.remove("__hf-pick-active"),document.removeEventListener("mousemove",D,!0),document.removeEventListener("click",L,!0),document.removeEventListener("keydown",G,!0),u("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function X(){window.__HF_PICKER_API={enable:U,disable:k,isActive:()=>t,getHovered:()=>r,getSelected:()=>o,getCandidatesAtPoint:(S,x,g)=>Number.isFinite(S)&&Number.isFinite(x)?C(S,x,g):[],pickAtPoint:(S,x,g)=>{if(!Number.isFinite(S)||!Number.isFinite(x))return null;let N=C(S,x,8);if(!N.length)return null;let y=Math.max(0,Math.min(N.length-1,Number(g??0))),E=N[y]??null;return E?(c(E),e.postMessage({source:"hf-preview",type:"element-picked",elementInfo:E}),k(),E):null},pickManyAtPoint:(S,x,g)=>{if(!Number.isFinite(S)||!Number.isFinite(x))return[];let N=C(S,x,8);if(!N.length)return[];let y=[],E=Array.isArray(g)?g:[0];for(let R of E){let _=Math.max(0,Math.min(N.length-1,Math.floor(Number(R)))),W=N[_];if(!W)continue;y.some(w=>w.selector===W.selector&&w.tagName===W.tagName)||y.push(W)}return y.length?(c(y[0]??null),e.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:y}),k(),y):[]}},u("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:U,disablePickMode:k,installPickerApi:X}}function nt(e,t){let n=Number.isFinite(t)&&t>0?t:30,i=Number.isFinite(e)&&e>0?e:0;return Math.floor(i*n+1e-9)/n}function Ue(e,t,n){if(e){for(let i of Object.values(e))if(!(!i||i===t))try{n(i)}catch{}}}function Bt(e,t,n){let i=nt(t,n);return e.pause(),typeof e.totalTime=="function"?e.totalTime(i,!1):e.seek(i,!1),i}function yn(e,t,n,i){let r=[];Ue(e,t,o=>{o.play(),r.push(o)});try{return Bt(t,n,i)}finally{for(let o of r)try{o.pause()}catch{}}}function bn(e,t){Ue(e,t,n=>{n.play()})}function Rt(e){return{_timeline:null,play:()=>{let t=e.getTimeline();if(!t||e.getIsPlaying())return;let n=Math.max(0,Number(e.getSafeDuration?.()??t.duration()??0)||0);n>0&&Math.max(0,Number(t.time())||0)>=n&&(t.pause(),t.seek(0,!1),e.onDeterministicSeek(0),e.setIsPlaying(!1),e.onSyncMedia(0,!1),e.onRenderFrameSeek(0)),typeof t.timeScale=="function"&&t.timeScale(e.getPlaybackRate()),t.play(),Ue(e.getTimelineRegistry?.(),t,i=>{typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),i.play()}),e.onDeterministicPlay(),e.setIsPlaying(!0),e.onShowNativeVideos(),e.onStatePost(!0)},pause:()=>{let t=e.getTimeline();if(!t)return;t.pause(),Ue(e.getTimelineRegistry?.(),t,i=>{i.pause()});let n=Math.max(0,Number(t.time())||0);e.onDeterministicSeek(n),e.onDeterministicPause(),e.setIsPlaying(!1),e.onSyncMedia(n,!1),e.onRenderFrameSeek(n),e.onStatePost(!0)},seek:t=>{let n=e.getTimeline();if(!n)return;let i=Math.max(0,Number(t)||0),r=yn(e.getTimelineRegistry?.(),n,i,e.getCanonicalFps());e.onDeterministicSeek(r),e.setIsPlaying(!1),e.onSyncMedia(r,!1),e.onRenderFrameSeek(r),e.onStatePost(!0)},renderSeek:t=>{let n=e.getTimeline(),i=e.getCanonicalFps(),r=n?(bn(e.getTimelineRegistry?.(),n),Bt(n,t,i)):nt(Math.max(0,Number(t)||0),i);e.onDeterministicSeek(r),e.setIsPlaying(!1),e.onSyncMedia(r,!1),e.onRenderFrameSeek(r),e.onStatePost(!0)},getTime:()=>Number(e.getTimeline()?.time()??0),getDuration:()=>Number(e.getTimeline()?.duration()??0),isPlaying:()=>e.getIsPlaying(),setPlaybackRate:t=>e.setPlaybackRate(t),getPlaybackRate:()=>e.getPlaybackRate()}}function vt(){return{capturedTimeline:null,isPlaying:!1,rafId:null,currentTime:0,deterministicAdapters:[],parityModeEnabled:!0,canonicalFps:30,bridgeMuted:!1,mediaOutputMuted:!1,mediaAutoplayBlockedPosted:!1,playbackRate:1,bridgeLastPostedFrame:-1,bridgeLastPostedAt:0,bridgeLastPostedPlaying:!1,bridgeLastPostedMuted:!1,bridgeMaxPostIntervalMs:80,timelinePollIntervalId:null,controlBridgeHandler:null,clampDurationLoggedRaw:null,beforeUnloadHandler:null,domReadyHandler:null,injectedCompStyles:[],injectedCompScripts:[],cachedTimedMediaEls:[],cachedMediaClips:[],cachedVideoClips:[],cachedMediaTimelineDurationSeconds:0,tornDown:!1,maxTimelineDurationSeconds:1800,nativeVisualWatchdogTick:0}}var Mn="data-hf-authored-duration",Cn="data-hf-authored-end";function De(e){if(e==null||e==="")return null;let t=Number(e);return Number.isFinite(t)?t:null}function Dn(e){return De(e.getAttribute("data-duration"))}function kn(e){return De(e.getAttribute("data-end"))}function Ln(e){return De(e.getAttribute(Mn))}function Tn(e){return De(e.getAttribute(Cn))}function wn(e){let t=(e??"").trim();if(!t)return null;let n=De(t);if(n!=null)return{kind:"absolute",value:n};let i=t.match(/^([A-Za-z0-9_.:-]+)(?:\\s*([+-])\\s*([0-9]*\\.?[0-9]+))?$/);if(!i)return null;let r=(i[1]??"").trim();if(!r)return null;let o=i[2]??"+",u=i[3]??"0",d=Number.parseFloat(u),c=Number.isFinite(d)?Math.max(0,d):0,s=o==="-"?-c:c;return{kind:"reference",refId:r,offset:s}}function we(e){let t=e.timelineRegistry??{},n=e.includeAuthoredTimingAttrs??!1,i=new WeakMap,r=new WeakMap,o=new Set,u=a=>{let m=document.getElementById(a);return m||(document.querySelector(`[data-composition-id="${CSS.escape(a)}"]`)??null)},d=a=>{let m=r.get(a);if(m!==void 0)return m;let h=null,A=Dn(a)??(n?Ln(a):null);if(A!=null&&A>0&&(h=A),h==null||h<=0){let C=kn(a)??(n?Tn(a):null);if(C!=null){let D=s(a,0),L=C-D;Number.isFinite(L)&&L>0&&(h=L)}}if((h==null||h<=0)&&a instanceof HTMLMediaElement){let C=De(a.getAttribute("data-playback-start"))??De(a.getAttribute("data-media-start"))??0;Number.isFinite(a.duration)&&a.duration>C&&(h=a.duration-C)}if(h==null||h<=0){let C=a.getAttribute("data-composition-id");if(C){let D=t[C]??null;if(D&&typeof D.duration=="function")try{let L=Number(D.duration());Number.isFinite(L)&&L>0&&(h=L)}catch{}}}return h!=null&&Number.isFinite(h)&&h>0?(r.set(a,h),h):(r.set(a,null),null)},c=(a,m)=>{if(a.hasAttribute("data-composition-id")){let A=a.parentElement?.closest("[data-composition-id]");return A?s(A,m):0}let h=a.closest("[data-composition-id]");return h?s(h,m):0},s=(a,m)=>{let h=i.get(a);if(h!==void 0)return h??m;if(o.has(a))return m;o.add(a);try{let A=wn(a.getAttribute("data-start"));if(!A){if(a.hasAttribute("data-composition-id")){let U=a.parentElement;if(U&&(U.hasAttribute("data-composition-src")||U.hasAttribute("data-composition-id"))){let k=s(U,m);return i.set(a,k),k}}return i.set(a,m),m}if(A.kind==="absolute"){let U=Math.max(0,A.value),k=Math.max(0,c(a,m)+U);return i.set(a,k),k}let C=u(A.refId);if(!C)return i.set(a,m),m;let D=s(C,0),L=d(C);if(L==null||L<=0){let U=Math.max(0,D+A.offset);return i.set(a,U),U}let G=Math.max(0,D+L+A.offset);return i.set(a,G),G}finally{o.delete(a)}};return{resolveStartForElement:(a,m=0)=>s(a,Math.max(0,m)),resolveDurationForElement:a=>d(a)}}var Bn="data-hf-authored-duration",Rn="data-hf-authored-end";function pe(e){if(e==null||e==="")return null;let t=Number(e);return Number.isFinite(t)?t:null}function it(e){return pe(e.getAttribute("data-duration"))??pe(e.getAttribute(Bn))}function It(e){return pe(e.getAttribute("data-end"))??pe(e.getAttribute(Rn))}function ot(...e){let t=e.filter(n=>Number.isFinite(n??null));return t.length===0?null:Math.max(...t)}var Pt={composition:0,video:1,image:2,element:3,audio:4};function vn(e){if(e.length===0)return;let t=new Map;for(let u of e){let d=t.get(u.track)??new Set;d.add(u.kind),t.set(u.track,d)}if(!Array.from(t.values()).some(u=>u.size>1))return;let i=0,r=new Map,o=[...t.keys()].sort((u,d)=>u-d);for(let u of o){let d=t.get(u);if(d.size===1)r.set(`${u}:${[...d][0]}`,i++);else{let c=[...d].sort((s,a)=>(Pt[s]??99)-(Pt[a]??99));for(let s of c)r.set(`${u}:${s}`,i++)}}for(let u of e){let d=`${u.track}:${u.kind}`,c=r.get(d);c!=null&&(u.track=c)}}function _e(e){let t=String(e??"").trim();if(!t)return null;let n=t.toLowerCase();if(n.startsWith("data:")||n.startsWith("javascript:"))return null;try{return new URL(t,document.baseURI).toString()}catch{return t}}function In(e){let t=e.getAttribute("src")??e.getAttribute("data-src");if(t)return _e(t);let n=e.getAttribute("data-composition-src");if(n)return _e(n);let i=e.querySelector("img[src], video[src], audio[src], source[src]");return i?_e(i.getAttribute("src")):null}function Ot(e){let n=window.__timelines??{},i=we({timelineRegistry:n,includeAuthoredTimingAttrs:!0}),r=B=>{if(!B)return null;let b=n[B]??null;if(!b||typeof b.duration!="function")return null;try{let T=Number(b.duration());return Number.isFinite(T)&&T>0?T:null}catch{return null}},o=B=>{let b=pe(B.getAttribute("data-duration"));if(b!=null&&b>0)return b;let T=pe(B.getAttribute("data-playback-start"))??pe(B.getAttribute("data-media-start"))??0;return Number.isFinite(B.duration)&&B.duration>T?Math.max(0,B.duration-T):null},u=()=>{let B=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(B.length===0)return null;let b=0;for(let T of B){let Y=i.resolveStartForElement(T,0);if(!Number.isFinite(Y))continue;let te=o(T);te==null||te<=0||(b=Math.max(b,Math.max(0,Y)+te))}return b>0?b:null},d=B=>{let b=B.trim().toLowerCase();return!(!b||b==="main"||b.includes("caption")||b.includes("ambient"))},c=(B,b)=>{let T=[],Y=null,te=null,I=null,P=B.parentElement;for(;P;){let j=P.getAttribute("data-composition-id");j&&(T.push(j),!I&&P!==b&&(I=j),Y==null&&(Y=i.resolveStartForElement(P,0)),te==null&&(te=pe(P.getAttribute("data-duration"))??r(j)??null)),P=P.parentElement}return{parentCompositionId:I,compositionAncestors:T.reverse(),inheritedStart:Y,inheritedDuration:te}},s=document.querySelector("[data-composition-id]"),a=Array.from(document.querySelectorAll("[data-composition-id]")),m=s?.getAttribute("data-composition-id")??null,h=s?i.resolveStartForElement(s,0):0,A=u(),C=A!=null?Math.max(0,A-Math.max(0,h)):null,D=r(m),L=it(s??document.body),G=ot(...a.filter(B=>B!==s).map(B=>{let b=i.resolveStartForElement(B,0),T=i.resolveDurationForElement(B)??r(B.getAttribute("data-composition-id"))??null;return!Number.isFinite(b)||T==null||T<=0?null:Math.max(0,b)+T})),U=G!=null?Math.max(0,G-Math.max(0,h)):null,k=typeof D=="number"&&Number.isFinite(D)&&D>0?D:null,X=typeof L=="number"&&Number.isFinite(L)&&L>0?L:null,S=typeof C=="number"&&Number.isFinite(C)&&C>0?C:null,x=typeof U=="number"&&Number.isFinite(U)&&U>0?U:null,g=ot(S,x),N=k!=null&&g!=null&&k>g+1,y=X??(N?g:ot(k,S,x)),E=y!=null?Math.min(y,e.maxTimelineDurationSeconds):null,_=(E!=null?h+E:null)??(typeof A=="number"&&Number.isFinite(A)&&A>0?A:null),W=(B,b)=>!Number.isFinite(b)||b<=0?0:_==null||!Number.isFinite(_)?b:!Number.isFinite(B)||B>=_?0:Math.max(0,Math.min(b,_-B)),Z=[],w=[],Q=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),ee=0;for(let B=0;B<Q.length;B+=1){let b=Q[B];if(b===s||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(b.tagName))continue;let T=c(b,s),Y=i.resolveStartForElement(b,T.inheritedStart??0),te=b.getAttribute("data-composition-id"),I=it(b);if((I==null||I<=0)&&te&&te!==m&&(I=r(te)),(I==null||I<=0)&&b instanceof HTMLMediaElement){let de=pe(b.getAttribute("data-playback-start"))??pe(b.getAttribute("data-media-start"))??0;Number.isFinite(b.duration)&&b.duration>0&&(I=Math.max(0,b.duration-de))}if(I==null||I<=0){let de=T.inheritedDuration;if(de!=null&&de>0){let ge=(T.inheritedStart??0)+de;I=Math.max(0,ge-Y)}}if(I==null||I<=0||(I=W(Y,I),I<=0))continue;let P=Y+I;ee=Math.max(ee,P);let j=b.tagName.toLowerCase(),ce=te&&te!==m?"composition":j==="video"?"video":j==="audio"?"audio":j==="img"?"image":"element";Z.push({id:b.id||te||`__node__index_${B}`,label:b.getAttribute("data-timeline-label")??b.getAttribute("data-label")??b.getAttribute("aria-label")??te??b.id??b.className?.split(" ")[0]??ce,start:Y,duration:I,track:Number.parseInt(b.getAttribute("data-track-index")??b.getAttribute("data-track")??String(B),10)||0,kind:ce,tagName:j,compositionId:b.getAttribute("data-composition-id"),compositionAncestors:T.compositionAncestors,parentCompositionId:T.parentCompositionId,nodePath:null,compositionSrc:_e(b.getAttribute("data-composition-src")),assetUrl:In(b),timelineRole:b.getAttribute("data-timeline-role"),timelineLabel:b.getAttribute("data-timeline-label"),timelineGroup:b.getAttribute("data-timeline-group"),timelinePriority:pe(b.getAttribute("data-timeline-priority"))})}let H=new Set(Z.map(B=>B.id)),z=s?.getAttribute("data-composition-id")??null,v=z?n[z]??null:null;if(v&&s){let B=v;if(typeof B.getChildren=="function")try{let b=B.getChildren(!0,!0,!1)??[],T=new Map;for(let I of s.children){let P=I;if(!P.id)continue;let j=P.tagName.toLowerCase();j==="script"||j==="style"||j==="link"||T.set(P,{id:P.id,start:1/0,end:-1/0})}let Y=I=>{let P=I;for(;P;){if(T.has(P))return P;if(P===s)return null;P=P.parentElement}return null};for(let I of b){if(typeof I.targets!="function"||typeof I.startTime!="function"||typeof I.duration!="function")continue;let P=I.startTime(),j=I.parent;for(;j&&typeof j.startTime=="function";)P+=j.startTime(),j=j.parent;let ce=P+I.duration();if(!(!Number.isFinite(P)||!Number.isFinite(ce)))for(let de of I.targets()){if(!(de instanceof Element))continue;let Ee=Y(de);if(!Ee)continue;let ge=T.get(Ee);ge&&(ge.start=Math.min(ge.start,P),ge.end=Math.max(ge.end,ce))}}let te=Z.length>0?Math.max(...Z.map(I=>I.track))+1:0;for(let[I,P]of T){if(P.start===1/0||P.end===-1/0)continue;let j=I;if(H.has(j.id))continue;let ce=Math.max(0,P.end-P.start);if(ce<=0)continue;let de=W(P.start,ce);de<=0||(ee=Math.max(ee,P.start+de),Z.push({id:j.id,label:j.getAttribute("data-timeline-label")??j.getAttribute("data-label")??j.getAttribute("aria-label")??j.id,start:P.start,duration:de,track:Number.parseInt(j.getAttribute("data-track-index")??j.getAttribute("data-track")??"",10)||te,kind:"element",tagName:j.tagName.toLowerCase(),compositionId:j.getAttribute("data-composition-id"),compositionAncestors:z?[z]:[],parentCompositionId:z,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:j.getAttribute("data-timeline-role"),timelineLabel:j.getAttribute("data-timeline-label"),timelineGroup:j.getAttribute("data-timeline-group"),timelinePriority:pe(j.getAttribute("data-timeline-priority"))}),H.add(j.id))}}catch{}}if(s&&E!=null&&E>0){let B=Z.length>0?Math.max(...Z.map(b=>b.track))+1:0;for(let b of s.children){let T=b;if(!T.id||H.has(T.id))continue;let Y=T.getAttribute("data-timeline-role");if(Y!=="overlay"&&Y!=="persistent-overlay")continue;let te=T.tagName.toLowerCase();if(te==="script"||te==="style"||te==="link"||te==="meta"||window.getComputedStyle(T).display==="none")continue;let P=W(0,E);P<=0||(ee=Math.max(ee,P),Z.push({id:T.id,label:T.getAttribute("data-timeline-label")??T.getAttribute("data-label")??T.getAttribute("aria-label")??T.id,start:0,duration:P,track:Number.parseInt(T.getAttribute("data-track-index")??T.getAttribute("data-track")??"",10)||B,kind:"element",tagName:te,compositionId:T.getAttribute("data-composition-id"),compositionAncestors:z?[z]:[],parentCompositionId:z,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:Y,timelineLabel:T.getAttribute("data-timeline-label"),timelineGroup:T.getAttribute("data-timeline-group"),timelinePriority:pe(T.getAttribute("data-timeline-priority"))}),H.add(T.id))}}vn(Z);for(let B of a){if(B===s)continue;let b=B.getAttribute("data-composition-id");if(!b||!d(b))continue;let T=i.resolveStartForElement(B,0),Y=it(B);if((Y==null||Y<=0)&&It(B)!=null){let j=It(B);Y=Math.max(0,j-T)}let te=r(b),I=Y&&Y>0?Y:te;if(I==null||I<=0)continue;let P=W(T,I);P<=0||w.push({id:b,label:B.getAttribute("data-label")??b,start:T,duration:P,thumbnailUrl:_e(B.getAttribute("data-thumbnail-url")),avatarName:null})}let K=Math.max(1,Math.min(Math.max(ee||1,E??0),e.maxTimelineDurationSeconds));return{source:"hf-preview",type:"timeline",durationInFrames:N&&X==null?Number.POSITIVE_INFINITY:Math.max(1,Math.round(K*Math.max(1,e.canonicalFps))),clips:Z,scenes:w,compositionWidth:pe(s?.getAttribute("data-width"))??1920,compositionHeight:pe(s?.getAttribute("data-height"))??1080}}var Pn=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/,On=e=>new Promise(t=>{let n=!1,i=Date.now(),r=null,o=u=>{n||(n=!0,r!=null&&window.clearTimeout(r),t({status:u,elapsedMs:Math.max(0,Date.now()-i)}))};e.addEventListener("load",()=>o("load"),{once:!0}),e.addEventListener("error",()=>o("error"),{once:!0}),r=window.setTimeout(()=>o("timeout"),8e3)});function rt(e){for(;e.firstChild;)e.removeChild(e.firstChild);e.textContent=""}function _t(e,t){let n=e.trim();if(!n)return e;try{return Pn.test(n)?new URL(n,document.baseURI).toString():t?new URL(n,t).toString():new URL(n,document.baseURI).toString()}catch{return e}}async function st(e){let t=null;e.hostCompositionId&&(t=Array.from(e.sourceNode.querySelectorAll("[data-composition-id]")).find(s=>s.getAttribute("data-composition-id")===e.hostCompositionId)??null);let n=t??e.sourceNode;if(e.headStyles)for(let c of e.headStyles){let s=c.cloneNode(!0);s instanceof HTMLStyleElement&&(document.head.appendChild(s),e.injectedStyles.push(s))}let i=Array.from(n.querySelectorAll("style"));for(let c of i){let s=c.cloneNode(!0);s instanceof HTMLStyleElement&&(document.head.appendChild(s),e.injectedStyles.push(s))}let r=[];if(e.headScripts)for(let c of e.headScripts){let s=c.getAttribute("type")?.trim()??"",a=c.getAttribute("src")?.trim()??"";if(a){let m=_t(a,e.compositionUrl);r.push({kind:"external",src:m,type:s})}else{let m=c.textContent?.trim()??"";m&&r.push({kind:"inline",content:m,type:s})}}let o=Array.from(n.querySelectorAll("script")),u=[...r];for(let c of o){let s=c.getAttribute("type")?.trim()??"",a=c.getAttribute("src")?.trim()??"";if(a){let m=_t(a,e.compositionUrl);u.push({kind:"external",src:m,type:s})}else{let m=c.textContent?.trim()??"";m&&u.push({kind:"inline",content:m,type:s})}c.parentNode?.removeChild(c)}let d=Array.from(n.querySelectorAll("style"));for(let c of d)c.parentNode?.removeChild(c);if(t){let c=document.importNode(t,!0),s=t.getAttribute("data-width"),a=t.getAttribute("data-height"),m=e.parseDimensionPx(s),h=e.parseDimensionPx(a);c.style.position="relative",c.style.width=m||"100%",c.style.height=h||"100%",m&&c.style.setProperty("--comp-width",m),h&&c.style.setProperty("--comp-height",h),s&&e.host.setAttribute("data-width",s),a&&e.host.setAttribute("data-height",a),m&&e.host instanceof HTMLElement&&(e.host.style.width=m),h&&e.host instanceof HTMLElement&&(e.host.style.height=h),e.host.appendChild(c)}else e.hasTemplate?e.host.appendChild(document.importNode(n,!0)):e.host.innerHTML=e.fallbackBodyInnerHtml;for(let c of u){let s=document.createElement("script");if(c.type&&(s.type=c.type),s.async=!1,c.kind==="external"?s.src=c.src:c.type.toLowerCase()==="module"?s.textContent=c.content:s.textContent=`(function(){${c.content}})();`,document.body.appendChild(s),e.injectedScripts.push(s),c.kind==="external"){let a=await On(s);a.status!=="load"&&e.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:e.hostCompositionId,hostCompositionSrc:e.hostCompositionSrc,resolvedScriptSrc:c.src,loadStatus:a.status,elapsedMs:a.elapsedMs}})}}}async function Wt(e){let t=Array.from(document.querySelectorAll("[data-composition-id]:not([data-composition-src])")).filter(n=>{if(n.children.length>0)return!1;let i=n.getAttribute("data-composition-id");return i?!!document.querySelector(`template#${CSS.escape(i)}-template`):!1});if(t.length!==0)for(let n of t){let i=n.getAttribute("data-composition-id"),r=document.querySelector(`template#${CSS.escape(i)}-template`);rt(n),await st({host:n,hostCompositionId:i,hostCompositionSrc:`template#${i}-template`,sourceNode:r.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,parseDimensionPx:e.parseDimensionPx,onDiagnostic:e.onDiagnostic})}}async function Ht(e){let t=Array.from(document.querySelectorAll("[data-composition-src]"));t.length!==0&&await Promise.all(t.map(async n=>{let i=n.getAttribute("data-composition-src");if(!i)return;let r=null;try{r=new URL(i,document.baseURI)}catch{r=null}rt(n);try{let o=n.getAttribute("data-composition-id"),u=o!=null?document.querySelector(`template#${CSS.escape(o)}-template`):null;if(u){await st({host:n,hostCompositionId:o,hostCompositionSrc:i,sourceNode:u.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:r,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,parseDimensionPx:e.parseDimensionPx,onDiagnostic:e.onDiagnostic});return}let d=await fetch(i);if(!d.ok)throw new Error(`HTTP ${d.status}`);let c=await d.text(),a=new DOMParser().parseFromString(c,"text/html"),m=(o?a.querySelector(`template#${CSS.escape(o)}-template`):null)??a.querySelector("template"),h=m?m.content:a.body,A=m?void 0:Array.from(a.head.querySelectorAll("style")),C=m?void 0:Array.from(a.head.querySelectorAll("script"));await st({host:n,hostCompositionId:o,hostCompositionSrc:i,sourceNode:h,hasTemplate:!!m,fallbackBodyInnerHtml:a.body.innerHTML,compositionUrl:r,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,parseDimensionPx:e.parseDimensionPx,headStyles:A,headScripts:C,onDiagnostic:e.onDiagnostic})}catch(o){e.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:n.getAttribute("data-composition-id"),hostCompositionSrc:i,errorMessage:o instanceof Error?o.message:"unknown_error"}}),rt(n)}}))}function at(){let e=window.gsap;e&&document.querySelectorAll(".caption-group").length!==0&&fetch("caption-overrides.json").then(t=>t.ok?t.json():null).then(t=>{if(!t||!Array.isArray(t)||t.length===0)return;let n=[],i=document.querySelectorAll(".caption-group");for(let r of i){let o=r.querySelectorAll(":scope > span");for(let u of o)n.push(u)}for(let r of t){let o=null;if(r.wordId&&(o=document.getElementById(r.wordId)),!o&&r.wordIndex!==void 0&&(o=n[r.wordIndex]??null),!o||!(o instanceof HTMLElement))continue;let u={},d={};if(r.x!==void 0&&(u.x=r.x),r.y!==void 0&&(u.y=r.y),r.scale!==void 0&&(u.scale=r.scale),r.rotation!==void 0&&(u.rotation=r.rotation),r.opacity!==void 0&&(d.opacity=r.opacity),r.fontSize!==void 0&&(d.fontSize=`${r.fontSize}px`),r.fontWeight!==void 0&&(d.fontWeight=r.fontWeight),r.fontFamily!==void 0&&(d.fontFamily=r.fontFamily),r.activeColor||r.dimColor){let s=e.getTweensOf(o).filter(m=>m.vars.color!==void 0).sort((m,h)=>m.startTime()-h.startTime()),a=s.length>0?String(s[0].vars.color):"";for(let m of s)String(m.vars.color)===a?r.dimColor&&(m.vars.color=r.dimColor):r.activeColor&&(m.vars.color=r.activeColor);r.dimColor&&e.set(o,{color:r.dimColor})}if(Object.keys(d).length>0&&e.set(o,d),Object.keys(u).length>0){let c=document.createElement("span");c.style.display="inline-block",c.dataset.captionWrapper="true",o.parentNode?.insertBefore(c,o),c.appendChild(o),e.set(c,u)}}}).catch(()=>{})}var jt="data-hf-authored-duration",zt="data-hf-authored-end";function Ut(){let e=vt(),t=window,n=null,i=null,r=[],o=new Set,u=null;if(typeof t.__hfRuntimeTeardown=="function")try{t.__hfRuntimeTeardown()}catch{}document.documentElement&&(document.documentElement.style.margin="0",document.documentElement.style.padding="0",document.documentElement.style.overflow="hidden"),document.body&&(document.body.style.margin="0",document.body.style.padding="0",document.body.style.overflow="hidden"),window.__timelines=window.__timelines||{};let d=l=>{r.push(l)},c=(l,p,f)=>{let M=f??`${l}:${JSON.stringify(p)}`;o.has(M)||(o.add(M),fe({source:"hf-preview",type:"diagnostic",code:l,details:p}))},s=l=>{let p={scale:1,focusX:960,focusY:540},f=[],M=[],F={time:l.getTime(),duration:l.getDuration(),isPlaying:l.isPlaying(),renderMode:!1,timelineDirty:!1};return{play:l.play,pause:l.pause,seek:l.seek,getTime:l.getTime,getDuration:l.getDuration,isPlaying:l.isPlaying,getMainTimeline:()=>null,getElementBounds:()=>{},getElementsAtPoint:()=>{},setElementPosition:()=>{},previewElementPosition:()=>{},setElementKeyframes:()=>{},setElementScale:()=>{},setElementFontSize:()=>{},setElementTextContent:()=>{},setElementTextColor:()=>{},setElementTextShadow:()=>{},setElementTextFontWeight:()=>{},setElementTextFontFamily:()=>{},setElementTextOutline:()=>{},setElementTextHighlight:()=>{},setElementVolume:()=>{},setStageZoom:()=>{},getStageZoom:()=>p,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>f,addElement:()=>!1,removeElement:()=>!1,updateElementTiming:()=>!1,setElementTiming:()=>{},updateElementSrc:()=>!1,updateElementLayer:()=>!1,updateElementBasePosition:()=>!1,markTimelineDirty:()=>{},isTimelineDirty:()=>!1,rebuildTimeline:()=>{},ensureTimeline:()=>{},enableRenderMode:()=>{},disableRenderMode:()=>{},renderSeek:l.renderSeek,getElementVisibility:()=>({visible:!1}),getVisibleElements:()=>M,getRenderState:()=>({...F,time:l.getTime(),duration:l.getDuration(),isPlaying:l.isPlaying()})}},a=1/60,m=.75,h=.75,A=.35,C=900,D=3,L=2,G=.05,U=100,k=240,X=l=>{if(l instanceof Error)return l.message||String(l);if(typeof l=="string")return l;try{return JSON.stringify(l)}catch{return String(l??"")}},S=l=>{let p=l.toLowerCase();return p.includes("cannot read properties of null")||p.includes("cannot set properties of null")?{code:"runtime_null_dom_access",category:"dom-null-access"}:p.includes("failed to execute \'queryselector\'")?{code:"runtime_invalid_selector",category:"selector-invalid"}:p.includes("is not defined")?{code:"runtime_reference_missing",category:"reference-missing"}:{code:"runtime_script_error",category:"script-error"}},x=l=>{if(l==null||l.trim()==="")return null;let p=Number.parseFloat(l);return!Number.isFinite(p)||p<=0?null:`${p}px`},g=()=>{let l=document.querySelector(\'[data-composition-id][data-root="true"]\');if(l instanceof HTMLElement)return l;let p=Array.from(document.querySelectorAll("[data-composition-id]"));return p.length===0?null:p.find(f=>!f.parentElement?.closest("[data-composition-id]"))??p[0]??null},N=()=>{let l=g();if(!l)return;let p=x(l.getAttribute("data-width")),f=x(l.getAttribute("data-height"));p&&(l.style.width=p),f&&(l.style.height=f),p&&l.style.setProperty("--comp-width",p),f&&l.style.setProperty("--comp-height",f)},y=()=>{let l=g(),p=Array.from(document.querySelectorAll("[data-composition-id]")).filter(f=>f.hasAttribute("data-duration")||f.hasAttribute("data-end"));for(let f of p){if(l&&f===l)continue;let M=f.getAttribute("data-duration"),F=f.getAttribute("data-end");M!=null&&!f.hasAttribute(jt)&&f.setAttribute(jt,M),F!=null&&!f.hasAttribute(zt)&&f.setAttribute(zt,F),f.removeAttribute("data-duration"),f.removeAttribute("data-end")}},E=()=>{let l=g();if(!l)return;l.style.position||(l.style.position="relative"),l.style.overflow="hidden";let p=x(l.getAttribute("data-width")),f=x(l.getAttribute("data-height"));p&&(l.style.width=p),f&&(l.style.height=f);let M=Array.from(l.children);for(let F of M){let O=F.tagName.toLowerCase();if(O==="script"||O==="style"||O==="link"||O==="meta"||!F.hasAttribute("data-start"))continue;let re=(F.style.top==="0px"||F.style.top==="0")&&(F.style.left==="0px"||F.style.left==="0")&&F.style.width==="100%"&&F.style.height==="100%",Fe=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(F.style.transform);if(re&&Fe&&!F.hasAttribute("data-width")&&!F.hasAttribute("data-height")){let xe=F.style.top,V=F.style.left,q=F.style.width,ie=F.style.height;F.style.top="",F.style.left="",F.style.width="",F.style.height="";let $=window.getComputedStyle(F);$.top!=="auto"||$.bottom!=="auto"||$.left!=="auto"||$.right!=="auto"||$.width!=="0px"||$.height!=="0px"||(F.style.top=xe,F.style.left=V,F.style.width=q,F.style.height=ie)}let J=window.getComputedStyle(F),ne=J.position;if(ne!=="absolute"&&ne!=="fixed"&&(F.style.position="absolute"),!!F.style.top||!!F.style.bottom||J.top!=="auto"||J.bottom!=="auto"||(F.style.top="0"),!!F.style.left||!!F.style.right||J.left!=="auto"||J.right!=="auto"||(F.style.left="0"),O!=="audio"){let xe=x(F.getAttribute("data-width")),V=x(F.getAttribute("data-height")),q=J.width!=="0px"&&J.width!=="auto",ie=J.height!=="0px"&&J.height!=="auto";xe?!F.style.width&&!q&&(F.style.width=xe):!F.style.width&&J.width==="0px"&&(F.style.width="100%"),V?!F.style.height&&!ie&&(F.style.height=V):!F.style.height&&J.height==="0px"&&(F.style.height="100%")}}},R=(l,p=0)=>we({timelineRegistry:window.__timelines??{}}).resolveStartForElement(l,p),_=(l,p)=>we({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:p?.includeAuthoredTimingAttrs??!0}).resolveDurationForElement(l),W=!!document.querySelector("[data-composition-src]"),Z=!1;{let l=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let p of l){let f=p.getAttribute("data-composition-id");if(f&&p.children.length===0&&document.querySelector(`template#${CSS.escape(f)}-template`)){Z=!0;break}}}let w=!W&&!Z,Q=l=>{if(!l||typeof l.duration!="function")return null;try{let p=Number(l.duration());return Number.isFinite(p)?Math.max(0,p):null}catch{return null}},ee=l=>typeof l=="number"&&Number.isFinite(l)&&l>a,H=l=>{let p=Number(l.getAttribute("data-duration"));if(Number.isFinite(p)&&p>0)return p;let f=Number(l.getAttribute("data-playback-start")??l.getAttribute("data-media-start")??"0"),M=Number.isFinite(f)?Math.max(0,f):0;return Number.isFinite(l.duration)&&l.duration>M?Math.max(0,l.duration-M):null},z=()=>{let l=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(l.length===0)return null;let p=0;for(let f of l){let M=R(f,0);if(!Number.isFinite(M))continue;let F=H(f);F==null||F<=a||(p=Math.max(p,Math.max(0,M)+F))}return p>a?p:null},v=()=>{let l=z();return typeof l!="number"||!Number.isFinite(l)||l<=a?null:l},K=l=>ee(l)?Math.max(a,l*m):a,he=(l,p=0)=>{let f=Q(l),M=v(),F=Number.isFinite(p)&&p>a?p:0,O=0;ee(f)?O=Math.max(f,F):ee(M)?O=Math.max(M,F):O=F;let re=Math.max(1,Number(e.maxTimelineDurationSeconds)||1800);return O>0?Math.max(0,Math.min(O,re)):0},ue=()=>{let l=window.__timelines??{},p=we({timelineRegistry:l}),f=v(),M=K(f),F=V=>{let q=document.querySelector(`[data-composition-id="${CSS.escape(V)}"]`);return q?p.resolveStartForElement(q,0):0},O=V=>{let q=window.gsap;if(!q||typeof q.timeline!="function")return null;let ie=q.timeline({paused:!0});for(let $ of V)ie.add($.timeline,F($.compositionId));return ie},re=(V,q)=>{if(!ee(V))return null;let ie=window.gsap;if(!ie||typeof ie.timeline!="function")return null;let $=ie.timeline({paused:!0});if(q)try{$.add(q,0)}catch{}let oe=$;if(typeof oe.to=="function")try{oe.to({},{duration:V})}catch{}return $},Fe=(V,q)=>{let ie=V;if(typeof ie.getChildren!="function")return[];try{let $=ie.getChildren(!0,!0,!0)??[];if(!Array.isArray($))return[];let oe=[];for(let ae of q)if(!$.some(Ce=>Ce===ae.timeline))try{let Ce=F(ae.compositionId);V.add(ae.timeline,Ce),oe.push(ae.compositionId)}catch{}return oe}catch{return[]}},J=g(),ne=J?.getAttribute("data-composition-id")??null;if(!ne)return{timeline:null};let me=l[ne]??null,se=(()=>{if(!J)return[];let V=new Set,q=Array.from(J.querySelectorAll("[data-composition-id]")),ie=[];for(let $ of q){let oe=$.getAttribute("data-composition-id");if(!oe||oe===ne||V.has(oe))continue;V.add(oe);let ae=l[oe]??null;if(!ae||typeof ae.play!="function"||typeof ae.pause!="function")continue;let Te=Q(ae);ie.push({compositionId:oe,timeline:ae,durationSeconds:Te??0})}return ie})(),xe=V=>{for(let q of V){let ie=q.timeline;if(typeof ie.paused=="function")try{ie.paused(!1)}catch{}}};if(se.length>0&&xe(se),me){let V=se.length>0?Fe(me,se):[];if((se.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+ne+"\'])"))&&(b=!0),V.length>0)try{let $=me.time();me.seek($,!1)}catch{}let q=Q(me);if(!ee(q)&&se.length>0){let $=se.map(An=>An.compositionId),oe=O(se),ae=Q(oe);if(oe&&ee(ae))return{timeline:oe,selectedTimelineIds:$,selectedDurationSeconds:ae,mediaDurationFloorSeconds:f,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:ne,rootDurationSeconds:q,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:M,selectedDurationSeconds:ae,mediaDurationFloorSeconds:f,selectedTimelineIds:$,autoNestedChildren:V}}};let Te=re(f??0,me),Ce=Q(Te);if(Te&&ee(Ce))return{timeline:Te,selectedTimelineIds:[ne],selectedDurationSeconds:Ce,mediaDurationFloorSeconds:f,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:ne,rootDurationSeconds:q,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:f,selectedDurationSeconds:Ce,selectedTimelineIds:[ne],autoNestedChildren:V}}}}if(!ee(q)&&se.length===0){let $=re(f??0,me),oe=Q($);if($&&ee(oe))return{timeline:$,selectedTimelineIds:[ne],selectedDurationSeconds:oe,mediaDurationFloorSeconds:f,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:ne,rootDurationSeconds:q,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:f,selectedDurationSeconds:oe,selectedTimelineIds:[ne]}}}}let ie=J?.getAttribute("data-duration");if(ie){let $=parseFloat(ie);if(ee($)&&ee(q)&&$>=q+.5){let oe=me;if(typeof oe.to=="function")try{oe.to({},{duration:0},$)}catch{}let ae=Q(me);if(ee(ae))return{timeline:me,selectedTimelineIds:[ne],selectedDurationSeconds:ae,mediaDurationFloorSeconds:f,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:ne,rootDurationSeconds:q,rootDeclaredDur:$,newDur:ae}}}}}return{timeline:me,selectedTimelineIds:[ne],selectedDurationSeconds:q,mediaDurationFloorSeconds:f,diagnostics:V.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:ne,selectedDurationSeconds:q,autoNestedChildren:V}}:void 0}}if(se.length>0){let V=se.map($=>$.compositionId),q=O(se),ie=Q(q);if(q)return{timeline:q,selectedTimelineIds:V,selectedDurationSeconds:ie,mediaDurationFloorSeconds:f,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:ne,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:M,selectedDurationSeconds:ie,mediaDurationFloorSeconds:f,selectedTimelineIds:V}}}}return{timeline:null}},B=()=>{let l=e.capturedTimeline;if(!l||typeof l.time!="function")return;let p=Number(l.time());Number.isFinite(p)&&(e.currentTime=Math.max(0,p))},b=!1,T=()=>{if(!w)return!1;let l=e.capturedTimeline,p=Q(l),f=ee(p);if(l&&f&&b)return!1;let M=ue();return M.timeline?l&&l===M.timeline?(typeof l.timeScale=="function"&&l.timeScale(e.playbackRate),!1):(e.capturedTimeline=M.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate),M.diagnostics&&fe({source:"hf-preview",type:"diagnostic",code:M.diagnostics.code,details:M.diagnostics.details}),fe({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:M.selectedTimelineIds??[],selectedDurationSeconds:M.selectedDurationSeconds??null,mediaDurationFloorSeconds:M.mediaDurationFloorSeconds??null}}),!0):!1},Y=()=>{let l=g();if(!(l instanceof HTMLElement))return;let p=l.getBoundingClientRect(),f=Number(l.getAttribute("data-width")),M=Number(l.getAttribute("data-height")),F=window.getComputedStyle(l),O=Number.isFinite(f)&&f>0&&Number.isFinite(M)&&M>0,re=p.width<=0||p.height<=0||l.clientWidth<=0||l.clientHeight<=0;!O||!re||c("root_stage_layout_zero",{compositionId:l.getAttribute("data-composition-id")??null,declaredWidth:f,declaredHeight:M,rectWidth:Math.round(p.width),rectHeight:Math.round(p.height),clientWidth:l.clientWidth,clientHeight:l.clientHeight,display:F.display,visibility:F.visibility,overflow:F.overflow},`root-stage-layout-zero:${l.getAttribute("data-composition-id")??"unknown"}`)},te=()=>{e.tornDown||(u!=null&&window.cancelAnimationFrame(u),u=window.requestAnimationFrame(()=>{u=null,Y()}))},I=()=>{n=l=>{let p=X(l.error??l.message).slice(0,k);if(!p)return;let f=S(p);fe({source:"hf-preview",type:"diagnostic",code:f.code,details:{category:f.category,message:p,filename:l.filename||null,line:Number.isFinite(l.lineno)?l.lineno:null,column:Number.isFinite(l.colno)?l.colno:null}})},i=l=>{let p=X(l.reason).slice(0,k);if(!p)return;let f=S(p);fe({source:"hf-preview",type:"diagnostic",code:`${f.code}_unhandled_rejection`,details:{category:`${f.category}-unhandled-rejection`,message:p}})},window.addEventListener("error",n),window.addEventListener("unhandledrejection",i)},P=()=>{let l=Array.from(document.querySelectorAll("img, video, audio, source, link[rel=\'stylesheet\']"));for(let f of l){let M=()=>{if(!(f instanceof Element))return;let F=f.tagName.toLowerCase(),O=f.getAttribute("src")??f.getAttribute("href")??f.getAttribute("poster")??null,re=F==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";c(re,{tagName:F,assetUrl:O,currentSrc:(f instanceof HTMLImageElement||f instanceof HTMLMediaElement)&&f.currentSrc||null,readyState:f instanceof HTMLMediaElement?f.readyState:null,networkState:f instanceof HTMLMediaElement?f.networkState:null},`${re}:${F}:${O??"unknown"}`)};f.addEventListener("error",M),d(()=>{f.removeEventListener("error",M)})}let p=document.fonts;p&&p.ready.then(()=>{if(e.tornDown)return;let f=Array.from(p).filter(M=>M.status==="error").map(M=>M.family).filter(M=>!!M).slice(0,10);f.length!==0&&c("runtime_font_load_issue",{failedFamilies:f,totalFaces:Array.from(p).length},`runtime-font-load-issue:${f.join("|")}`)}).catch(()=>{})},j=(l,p)=>{if(!l.timeline)return!1;let f=e.capturedTimeline;if(f&&f===l.timeline)return!1;let M=Math.max(0,e.currentTime||0),F=e.isPlaying;e.capturedTimeline=l.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate);try{e.capturedTimeline.pause(),e.capturedTimeline.seek(M,!1),F&&e.capturedTimeline.play()}catch{}return fe({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:p,previousTime:M,selectedTimelineIds:l.selectedTimelineIds??[],selectedDurationSeconds:l.selectedDurationSeconds??null,mediaDurationFloorSeconds:l.mediaDurationFloorSeconds??null}}),!0},ce=null,de=!1,Ee=new Set,ge=()=>{e.tornDown||(ce!=null&&window.clearTimeout(ce),ce=window.setTimeout(()=>{if(e.tornDown)return;ce=null;let l=ue();if(!l.timeline||!ee(l.mediaDurationFloorSeconds??null))return;if(!e.capturedTimeline){T()&&(ke(),ye(!0));return}if(de)return;let f=Q(e.capturedTimeline),M=l.selectedDurationSeconds??Q(l.timeline);ee(M)&&(!ee(f)||M>=f+G)&&j(l,"manual")&&(de=!0,fe({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:f??null,selectedDurationSeconds:M??null,selectedTimelineIds:l.selectedTimelineIds??[],mediaDurationFloorSeconds:l.mediaDurationFloorSeconds??null}}),ke(),ye(!0))},U))},gn=()=>{for(let l of Ee)l.removeEventListener("loadedmetadata",ge),l.removeEventListener("durationchange",ge);Ee.clear()},Je=()=>{if(e.tornDown)return;let l=Array.from(document.querySelectorAll("video, audio"));for(let p of l)Ee.has(p)||(Ee.add(p),p.addEventListener("loadedmetadata",ge),p.addEventListener("durationchange",ge),p.preload!=="auto"&&(p.preload="auto"),p.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&p.load())},ht=()=>{let l=F=>{let O=F.closest("[data-composition-id]"),re=O?R(O,0):null,Fe=O?_(O,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:O,inheritedStart:re,inheritedDuration:Fe}},p=Lt({shouldIncludeElement:F=>F.hasAttribute("data-start")||!!l(F).compositionRoot,resolveStartSeconds:F=>{let O=l(F);return R(F,O.inheritedStart??0)},resolveDurationSeconds:F=>{let O=l(F),re=R(F,O.inheritedStart??0),Fe=Number.parseFloat(F.dataset.playbackStart??F.dataset.mediaStart??"0")||0,J=O.inheritedStart!=null&&O.inheritedDuration!=null&&O.inheritedDuration>0?Math.max(0,O.inheritedStart+O.inheritedDuration-re):null,ne=Number.isFinite(F.duration)&&F.duration>Fe?Math.max(0,F.duration-Fe):null;return ne!=null&&J!=null?Math.min(ne,J):ne??J}});Tt({clips:p.mediaClips,timeSeconds:e.currentTime,playing:e.isPlaying,playbackRate:e.playbackRate,outputMuted:e.mediaOutputMuted,userMuted:e.bridgeMuted,onAutoplayBlocked:()=>{e.mediaAutoplayBlockedPosted||(e.mediaAutoplayBlockedPosted=!0,fe({source:"hf-preview",type:"media-autoplay-blocked"}))}});let f=document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null,M=Array.from(document.querySelectorAll("[data-start]"));for(let F of M){if(!(F instanceof HTMLElement))continue;let O=F.tagName.toLowerCase();if(O==="script"||O==="style"||O==="link"||O==="meta")continue;if(!F.getAttribute("data-composition-id")){let xe=F.closest("[data-composition-id]")?.getAttribute("data-composition-id")??null;if(xe&&xe!==f)continue}let Fe=R(F,0),J=_(F),ne=F.getAttribute("data-composition-id");if(ne){let se=(window.__timelines??{})[ne],xe=null;if(se&&typeof se.duration=="function"){let V=Number(se.duration());Number.isFinite(V)&&V>0&&(xe=V)}J!=null&&J>0&&xe!=null?J=Math.min(J,xe):(J==null||J<=0)&&xe!=null&&(J=xe)}let me=J!=null&&J>0?Fe+J:Number.POSITIVE_INFINITY,Xe=e.currentTime>=Fe&&(Number.isFinite(me)?e.currentTime<me:!0);F.style.visibility=Xe?"visible":"hidden"}},ye=l=>{B();let p=Math.max(0,Math.round((e.currentTime||0)*e.canonicalFps)),f=Date.now();(l||p!==e.bridgeLastPostedFrame||e.isPlaying!==e.bridgeLastPostedPlaying||e.bridgeMuted!==e.bridgeLastPostedMuted||f-e.bridgeLastPostedAt>=e.bridgeMaxPostIntervalMs)&&(e.bridgeLastPostedFrame=p,e.bridgeLastPostedPlaying=e.isPlaying,e.bridgeLastPostedMuted=e.bridgeMuted,e.bridgeLastPostedAt=f,fe({source:"hf-preview",type:"state",frame:p,isPlaying:e.isPlaying,muted:e.bridgeMuted,playbackRate:e.playbackRate}))},ke=()=>{y(),N(),E();let l=g();if(l){let f=x(l.getAttribute("data-width")),M=x(l.getAttribute("data-height")),F=f?parseInt(f,10):0,O=M?parseInt(M,10):0;F>0&&O>0&&fe({source:"hf-preview",type:"stage-size",width:F,height:O})}T();let p=Ot({canonicalFps:e.canonicalFps,maxTimelineDurationSeconds:e.maxTimelineDurationSeconds});window.__clipManifest=p,fe(p),te()},Ie=(l,p=0)=>{for(let f of e.deterministicAdapters){try{l==="discover"&&f.discover(),l==="pause"&&f.pause(),l==="play"&&f.play&&f.play()}catch{}if(l==="discover")try{f.seek({time:p})}catch{}}};if(w)at();else{let l={injectedStyles:e.injectedCompStyles,injectedScripts:e.injectedCompScripts,parseDimensionPx:x,onDiagnostic:({code:p,details:f})=>{fe({source:"hf-preview",type:"diagnostic",code:p,details:f})}};Ht(l).then(()=>Wt(l)).finally(()=>{w=!0,Ie("discover",e.currentTime),Je(),P(),at(),ke(),ye(!0)})}let je=wt({postMessage:l=>fe(l)});je.installPickerApi();let gt=l=>{let p=Number(l);!Number.isFinite(p)||p<=0?e.playbackRate=1:e.playbackRate=Math.max(.1,Math.min(5,p)),e.capturedTimeline&&typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate);let f=document.querySelectorAll("video, audio");for(let M of f)if(M instanceof HTMLMediaElement)try{M.playbackRate=e.playbackRate}catch{}},le=Rt({getTimeline:()=>e.capturedTimeline,setTimeline:l=>{e.capturedTimeline=l},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>e.isPlaying,setIsPlaying:l=>{e.isPlaying=l},getPlaybackRate:()=>e.playbackRate,setPlaybackRate:gt,getCanonicalFps:()=>e.canonicalFps,onSyncMedia:(l,p)=>{e.currentTime=Math.max(0,Number(l)||0),e.isPlaying=p,ht()},onStatePost:ye,onDeterministicSeek:l=>{for(let p of e.deterministicAdapters)try{p.seek({time:Number(l)||0})}catch{}},onDeterministicPause:()=>Ie("pause"),onDeterministicPlay:()=>Ie("play"),onRenderFrameSeek:()=>{},onShowNativeVideos:()=>{},getSafeDuration:()=>he(e.capturedTimeline,0)});window.__player=s(le),window.__playerReady=!0,window.__renderReady=!0,Nt(fe),Pe("composition_loaded",{duration:le.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),e.controlBridgeHandler=At({onPlay:()=>{le.play(),Pe("composition_played",{time:le.getTime()})},onPause:()=>{le.pause(),Pe("composition_paused",{time:le.getTime()})},onSeek:(l,p)=>{let f=Math.max(0,l)/e.canonicalFps;le.seek(f),Pe("composition_seeked",{time:f})},onSetMuted:l=>{e.bridgeMuted=l;let p=l||e.mediaOutputMuted,f=document.querySelectorAll("video, audio");for(let M of f)M instanceof HTMLMediaElement&&(M.muted=p)},onSetMediaOutputMuted:l=>{e.mediaOutputMuted=l;let p=l||e.bridgeMuted,f=document.querySelectorAll("video, audio");for(let M of f)M instanceof HTMLMediaElement&&(M.muted=p)},onSetPlaybackRate:l=>gt(l),onEnablePickMode:()=>je.enablePickMode(),onDisablePickMode:()=>je.disablePickMode()}),T(),e.capturedTimeline&&(le._timeline=e.capturedTimeline),w&&setTimeout(()=>{let l=e.capturedTimeline;T()&&e.capturedTimeline!==l&&(le._timeline=e.capturedTimeline),Ie("discover",e.currentTime),ke(),ye(!0)},0),e.deterministicAdapters=[kt(),Et({resolveStartSeconds:l=>R(l,0)}),Ct(),Dt(),yt({getTimeline:()=>e.capturedTimeline})],I(),Ie("discover"),Je(),e.timelinePollIntervalId&&clearInterval(e.timelinePollIntervalId);let Qe=0,ze=null,St=0,Ze=!1,Le=0,Ft=()=>{St=Date.now(),Ze=!1,Le=0};e.timelinePollIntervalId=setInterval(()=>{Qe+=1;let p=e.isPlaying&&e.capturedTimeline!=null&&Math.max(0,e.currentTime||0)<L?!1:T();if(e.capturedTimeline&&!le._timeline&&(le._timeline=e.capturedTimeline),(p||Qe%20===0)&&ke(),Qe%10===0&&Je(),B(),e.isPlaying&&e.capturedTimeline){let f=Math.max(0,e.currentTime||0),M=ze,F=he(e.capturedTimeline,0);if(F>0&&f>=F){le.pause(),le.seek(F),ze=F,Le=0,ye(!0);return}if(M!=null&&M>=h&&f<=A?Le+=1:Le=0,!Ze&&Le>=D&&Date.now()-St>C){let re=ue();j(re,"loop_guard")&&(Ze=!0,Le=0)}ze=Math.max(0,e.currentTime||0)}else ze=Math.max(0,e.currentTime||0);e.isPlaying&&ht(),ye(!1)},50),ke(),ye(!0);let Sn=le.seek;le.seek=l=>{Ft(),Sn(l)};let Fn=le.renderSeek;le.renderSeek=l=>{Ft(),Fn(l)};let Ye=()=>{if(!e.tornDown){e.tornDown=!0,e.timelinePollIntervalId&&(clearInterval(e.timelinePollIntervalId),e.timelinePollIntervalId=null),ce!=null&&(window.clearTimeout(ce),ce=null),u!=null&&(window.cancelAnimationFrame(u),u=null),gn(),e.controlBridgeHandler&&(window.removeEventListener("message",e.controlBridgeHandler),e.controlBridgeHandler=null),n&&(window.removeEventListener("error",n),n=null),i&&(window.removeEventListener("unhandledrejection",i),i=null),e.beforeUnloadHandler&&(window.removeEventListener("beforeunload",e.beforeUnloadHandler),e.beforeUnloadHandler=null),je.disablePickMode();for(let l of e.deterministicAdapters)if(!(!l||typeof l.revert!="function"))try{l.revert()}catch{}e.deterministicAdapters=[];for(let l of r.splice(0))try{l()}catch{}for(let l of e.injectedCompStyles)try{l.remove()}catch{}e.injectedCompStyles=[];for(let l of e.injectedCompScripts)try{l.remove()}catch{}e.injectedCompScripts=[],e.capturedTimeline=null,t.__hfRuntimeTeardown===Ye&&(t.__hfRuntimeTeardown=null)}};t.__hfRuntimeTeardown=Ye,e.beforeUnloadHandler=Ye,window.addEventListener("beforeunload",e.beforeUnloadHandler)}var Gt=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],lt=[[697,698,"ON"],[706,719,"ON"],[722,735,"ON"],[741,749,"ON"],[751,767,"ON"],[768,879,"NSM"],[884,885,"ON"],[894,894,"ON"],[900,901,"ON"],[903,903,"ON"],[1014,1014,"ON"],[1155,1161,"NSM"],[1418,1418,"ON"],[1421,1422,"ON"],[1423,1423,"ET"],[1424,1424,"R"],[1425,1469,"NSM"],[1470,1470,"R"],[1471,1471,"NSM"],[1472,1472,"R"],[1473,1474,"NSM"],[1475,1475,"R"],[1476,1477,"NSM"],[1478,1478,"R"],[1479,1479,"NSM"],[1480,1535,"R"],[1536,1541,"AN"],[1542,1543,"ON"],[1544,1544,"AL"],[1545,1546,"ET"],[1547,1547,"AL"],[1548,1548,"CS"],[1549,1549,"AL"],[1550,1551,"ON"],[1552,1562,"NSM"],[1563,1610,"AL"],[1611,1631,"NSM"],[1632,1641,"AN"],[1642,1642,"ET"],[1643,1644,"AN"],[1645,1647,"AL"],[1648,1648,"NSM"],[1649,1749,"AL"],[1750,1756,"NSM"],[1757,1757,"AN"],[1758,1758,"ON"],[1759,1764,"NSM"],[1765,1766,"AL"],[1767,1768,"NSM"],[1769,1769,"ON"],[1770,1773,"NSM"],[1774,1775,"AL"],[1776,1785,"EN"],[1786,1808,"AL"],[1809,1809,"NSM"],[1810,1839,"AL"],[1840,1866,"NSM"],[1867,1957,"AL"],[1958,1968,"NSM"],[1969,1983,"AL"],[1984,2026,"R"],[2027,2035,"NSM"],[2036,2037,"R"],[2038,2041,"ON"],[2042,2044,"R"],[2045,2045,"NSM"],[2046,2069,"R"],[2070,2073,"NSM"],[2074,2074,"R"],[2075,2083,"NSM"],[2084,2084,"R"],[2085,2087,"NSM"],[2088,2088,"R"],[2089,2093,"NSM"],[2094,2136,"R"],[2137,2139,"NSM"],[2140,2143,"R"],[2144,2191,"AL"],[2192,2193,"AN"],[2194,2198,"AL"],[2199,2207,"NSM"],[2208,2249,"AL"],[2250,2273,"NSM"],[2274,2274,"AN"],[2275,2306,"NSM"],[2362,2362,"NSM"],[2364,2364,"NSM"],[2369,2376,"NSM"],[2381,2381,"NSM"],[2385,2391,"NSM"],[2402,2403,"NSM"],[2433,2433,"NSM"],[2492,2492,"NSM"],[2497,2500,"NSM"],[2509,2509,"NSM"],[2530,2531,"NSM"],[2546,2547,"ET"],[2555,2555,"ET"],[2558,2558,"NSM"],[2561,2562,"NSM"],[2620,2620,"NSM"],[2625,2626,"NSM"],[2631,2632,"NSM"],[2635,2637,"NSM"],[2641,2641,"NSM"],[2672,2673,"NSM"],[2677,2677,"NSM"],[2689,2690,"NSM"],[2748,2748,"NSM"],[2753,2757,"NSM"],[2759,2760,"NSM"],[2765,2765,"NSM"],[2786,2787,"NSM"],[2801,2801,"ET"],[2810,2815,"NSM"],[2817,2817,"NSM"],[2876,2876,"NSM"],[2879,2879,"NSM"],[2881,2884,"NSM"],[2893,2893,"NSM"],[2901,2902,"NSM"],[2914,2915,"NSM"],[2946,2946,"NSM"],[3008,3008,"NSM"],[3021,3021,"NSM"],[3059,3064,"ON"],[3065,3065,"ET"],[3066,3066,"ON"],[3072,3072,"NSM"],[3076,3076,"NSM"],[3132,3132,"NSM"],[3134,3136,"NSM"],[3142,3144,"NSM"],[3146,3149,"NSM"],[3157,3158,"NSM"],[3170,3171,"NSM"],[3192,3198,"ON"],[3201,3201,"NSM"],[3260,3260,"NSM"],[3276,3277,"NSM"],[3298,3299,"NSM"],[3328,3329,"NSM"],[3387,3388,"NSM"],[3393,3396,"NSM"],[3405,3405,"NSM"],[3426,3427,"NSM"],[3457,3457,"NSM"],[3530,3530,"NSM"],[3538,3540,"NSM"],[3542,3542,"NSM"],[3633,3633,"NSM"],[3636,3642,"NSM"],[3647,3647,"ET"],[3655,3662,"NSM"],[3761,3761,"NSM"],[3764,3772,"NSM"],[3784,3790,"NSM"],[3864,3865,"NSM"],[3893,3893,"NSM"],[3895,3895,"NSM"],[3897,3897,"NSM"],[3898,3901,"ON"],[3953,3966,"NSM"],[3968,3972,"NSM"],[3974,3975,"NSM"],[3981,3991,"NSM"],[3993,4028,"NSM"],[4038,4038,"NSM"],[4141,4144,"NSM"],[4146,4151,"NSM"],[4153,4154,"NSM"],[4157,4158,"NSM"],[4184,4185,"NSM"],[4190,4192,"NSM"],[4209,4212,"NSM"],[4226,4226,"NSM"],[4229,4230,"NSM"],[4237,4237,"NSM"],[4253,4253,"NSM"],[4957,4959,"NSM"],[5008,5017,"ON"],[5120,5120,"ON"],[5760,5760,"WS"],[5787,5788,"ON"],[5906,5908,"NSM"],[5938,5939,"NSM"],[5970,5971,"NSM"],[6002,6003,"NSM"],[6068,6069,"NSM"],[6071,6077,"NSM"],[6086,6086,"NSM"],[6089,6099,"NSM"],[6107,6107,"ET"],[6109,6109,"NSM"],[6128,6137,"ON"],[6144,6154,"ON"],[6155,6157,"NSM"],[6158,6158,"BN"],[6159,6159,"NSM"],[6277,6278,"NSM"],[6313,6313,"NSM"],[6432,6434,"NSM"],[6439,6440,"NSM"],[6450,6450,"NSM"],[6457,6459,"NSM"],[6464,6464,"ON"],[6468,6469,"ON"],[6622,6655,"ON"],[6679,6680,"NSM"],[6683,6683,"NSM"],[6742,6742,"NSM"],[6744,6750,"NSM"],[6752,6752,"NSM"],[6754,6754,"NSM"],[6757,6764,"NSM"],[6771,6780,"NSM"],[6783,6783,"NSM"],[6832,6877,"NSM"],[6880,6891,"NSM"],[6912,6915,"NSM"],[6964,6964,"NSM"],[6966,6970,"NSM"],[6972,6972,"NSM"],[6978,6978,"NSM"],[7019,7027,"NSM"],[7040,7041,"NSM"],[7074,7077,"NSM"],[7080,7081,"NSM"],[7083,7085,"NSM"],[7142,7142,"NSM"],[7144,7145,"NSM"],[7149,7149,"NSM"],[7151,7153,"NSM"],[7212,7219,"NSM"],[7222,7223,"NSM"],[7376,7378,"NSM"],[7380,7392,"NSM"],[7394,7400,"NSM"],[7405,7405,"NSM"],[7412,7412,"NSM"],[7416,7417,"NSM"],[7616,7679,"NSM"],[8125,8125,"ON"],[8127,8129,"ON"],[8141,8143,"ON"],[8157,8159,"ON"],[8173,8175,"ON"],[8189,8190,"ON"],[8192,8202,"WS"],[8203,8205,"BN"],[8207,8207,"R"],[8208,8231,"ON"],[8232,8232,"WS"],[8233,8233,"B"],[8234,8238,"BN"],[8239,8239,"CS"],[8240,8244,"ET"],[8245,8259,"ON"],[8260,8260,"CS"],[8261,8286,"ON"],[8287,8287,"WS"],[8288,8303,"BN"],[8304,8304,"EN"],[8308,8313,"EN"],[8314,8315,"ES"],[8316,8318,"ON"],[8320,8329,"EN"],[8330,8331,"ES"],[8332,8334,"ON"],[8352,8399,"ET"],[8400,8432,"NSM"],[8448,8449,"ON"],[8451,8454,"ON"],[8456,8457,"ON"],[8468,8468,"ON"],[8470,8472,"ON"],[8478,8483,"ON"],[8485,8485,"ON"],[8487,8487,"ON"],[8489,8489,"ON"],[8494,8494,"ET"],[8506,8507,"ON"],[8512,8516,"ON"],[8522,8525,"ON"],[8528,8543,"ON"],[8585,8587,"ON"],[8592,8721,"ON"],[8722,8722,"ES"],[8723,8723,"ET"],[8724,9013,"ON"],[9083,9108,"ON"],[9110,9257,"ON"],[9280,9290,"ON"],[9312,9351,"ON"],[9352,9371,"EN"],[9450,9899,"ON"],[9901,10239,"ON"],[10496,11123,"ON"],[11126,11263,"ON"],[11493,11498,"ON"],[11503,11505,"NSM"],[11513,11519,"ON"],[11647,11647,"NSM"],[11744,11775,"NSM"],[11776,11869,"ON"],[11904,11929,"ON"],[11931,12019,"ON"],[12032,12245,"ON"],[12272,12287,"ON"],[12288,12288,"WS"],[12289,12292,"ON"],[12296,12320,"ON"],[12330,12333,"NSM"],[12336,12336,"ON"],[12342,12343,"ON"],[12349,12351,"ON"],[12441,12442,"NSM"],[12443,12444,"ON"],[12448,12448,"ON"],[12539,12539,"ON"],[12736,12773,"ON"],[12783,12783,"ON"],[12829,12830,"ON"],[12880,12895,"ON"],[12924,12926,"ON"],[12977,12991,"ON"],[13004,13007,"ON"],[13175,13178,"ON"],[13278,13279,"ON"],[13311,13311,"ON"],[19904,19967,"ON"],[42128,42182,"ON"],[42509,42511,"ON"],[42607,42610,"NSM"],[42611,42611,"ON"],[42612,42621,"NSM"],[42622,42623,"ON"],[42654,42655,"NSM"],[42736,42737,"NSM"],[42752,42785,"ON"],[42888,42888,"ON"],[43010,43010,"NSM"],[43014,43014,"NSM"],[43019,43019,"NSM"],[43045,43046,"NSM"],[43048,43051,"ON"],[43052,43052,"NSM"],[43064,43065,"ET"],[43124,43127,"ON"],[43204,43205,"NSM"],[43232,43249,"NSM"],[43263,43263,"NSM"],[43302,43309,"NSM"],[43335,43345,"NSM"],[43392,43394,"NSM"],[43443,43443,"NSM"],[43446,43449,"NSM"],[43452,43453,"NSM"],[43493,43493,"NSM"],[43561,43566,"NSM"],[43569,43570,"NSM"],[43573,43574,"NSM"],[43587,43587,"NSM"],[43596,43596,"NSM"],[43644,43644,"NSM"],[43696,43696,"NSM"],[43698,43700,"NSM"],[43703,43704,"NSM"],[43710,43711,"NSM"],[43713,43713,"NSM"],[43756,43757,"NSM"],[43766,43766,"NSM"],[43882,43883,"ON"],[44005,44005,"NSM"],[44008,44008,"NSM"],[44013,44013,"NSM"],[64285,64285,"R"],[64286,64286,"NSM"],[64287,64296,"R"],[64297,64297,"ES"],[64298,64335,"R"],[64336,64450,"AL"],[64451,64466,"ON"],[64467,64829,"AL"],[64830,64847,"ON"],[64848,64911,"AL"],[64912,64913,"ON"],[64914,64967,"AL"],[64968,64975,"ON"],[64976,65007,"BN"],[65008,65020,"AL"],[65021,65023,"ON"],[65024,65039,"NSM"],[65040,65049,"ON"],[65056,65071,"NSM"],[65072,65103,"ON"],[65104,65104,"CS"],[65105,65105,"ON"],[65106,65106,"CS"],[65108,65108,"ON"],[65109,65109,"CS"],[65110,65118,"ON"],[65119,65119,"ET"],[65120,65121,"ON"],[65122,65123,"ES"],[65124,65126,"ON"],[65128,65128,"ON"],[65129,65130,"ET"],[65131,65131,"ON"],[65136,65278,"AL"],[65279,65279,"BN"],[65281,65282,"ON"],[65283,65285,"ET"],[65286,65290,"ON"],[65291,65291,"ES"],[65292,65292,"CS"],[65293,65293,"ES"],[65294,65295,"CS"],[65296,65305,"EN"],[65306,65306,"CS"],[65307,65312,"ON"],[65339,65344,"ON"],[65371,65381,"ON"],[65504,65505,"ET"],[65506,65508,"ON"],[65509,65510,"ET"],[65512,65518,"ON"],[65520,65528,"BN"],[65529,65533,"ON"],[65534,65535,"BN"],[65793,65793,"ON"],[65856,65932,"ON"],[65936,65948,"ON"],[65952,65952,"ON"],[66045,66045,"NSM"],[66272,66272,"NSM"],[66273,66299,"EN"],[66422,66426,"NSM"],[67584,67870,"R"],[67871,67871,"ON"],[67872,68096,"R"],[68097,68099,"NSM"],[68100,68100,"R"],[68101,68102,"NSM"],[68103,68107,"R"],[68108,68111,"NSM"],[68112,68151,"R"],[68152,68154,"NSM"],[68155,68158,"R"],[68159,68159,"NSM"],[68160,68324,"R"],[68325,68326,"NSM"],[68327,68408,"R"],[68409,68415,"ON"],[68416,68863,"R"],[68864,68899,"AL"],[68900,68903,"NSM"],[68904,68911,"AL"],[68912,68921,"AN"],[68922,68927,"AL"],[68928,68937,"AN"],[68938,68968,"R"],[68969,68973,"NSM"],[68974,68974,"ON"],[68975,69215,"R"],[69216,69246,"AN"],[69247,69290,"R"],[69291,69292,"NSM"],[69293,69311,"R"],[69312,69327,"AL"],[69328,69336,"ON"],[69337,69369,"AL"],[69370,69375,"NSM"],[69376,69423,"R"],[69424,69445,"AL"],[69446,69456,"NSM"],[69457,69487,"AL"],[69488,69505,"R"],[69506,69509,"NSM"],[69510,69631,"R"],[69633,69633,"NSM"],[69688,69702,"NSM"],[69714,69733,"ON"],[69744,69744,"NSM"],[69747,69748,"NSM"],[69759,69761,"NSM"],[69811,69814,"NSM"],[69817,69818,"NSM"],[69826,69826,"NSM"],[69888,69890,"NSM"],[69927,69931,"NSM"],[69933,69940,"NSM"],[70003,70003,"NSM"],[70016,70017,"NSM"],[70070,70078,"NSM"],[70089,70092,"NSM"],[70095,70095,"NSM"],[70191,70193,"NSM"],[70196,70196,"NSM"],[70198,70199,"NSM"],[70206,70206,"NSM"],[70209,70209,"NSM"],[70367,70367,"NSM"],[70371,70378,"NSM"],[70400,70401,"NSM"],[70459,70460,"NSM"],[70464,70464,"NSM"],[70502,70508,"NSM"],[70512,70516,"NSM"],[70587,70592,"NSM"],[70606,70606,"NSM"],[70608,70608,"NSM"],[70610,70610,"NSM"],[70625,70626,"NSM"],[70712,70719,"NSM"],[70722,70724,"NSM"],[70726,70726,"NSM"],[70750,70750,"NSM"],[70835,70840,"NSM"],[70842,70842,"NSM"],[70847,70848,"NSM"],[70850,70851,"NSM"],[71090,71093,"NSM"],[71100,71101,"NSM"],[71103,71104,"NSM"],[71132,71133,"NSM"],[71219,71226,"NSM"],[71229,71229,"NSM"],[71231,71232,"NSM"],[71264,71276,"ON"],[71339,71339,"NSM"],[71341,71341,"NSM"],[71344,71349,"NSM"],[71351,71351,"NSM"],[71453,71453,"NSM"],[71455,71455,"NSM"],[71458,71461,"NSM"],[71463,71467,"NSM"],[71727,71735,"NSM"],[71737,71738,"NSM"],[71995,71996,"NSM"],[71998,71998,"NSM"],[72003,72003,"NSM"],[72148,72151,"NSM"],[72154,72155,"NSM"],[72160,72160,"NSM"],[72193,72198,"NSM"],[72201,72202,"NSM"],[72243,72248,"NSM"],[72251,72254,"NSM"],[72263,72263,"NSM"],[72273,72278,"NSM"],[72281,72283,"NSM"],[72330,72342,"NSM"],[72344,72345,"NSM"],[72544,72544,"NSM"],[72546,72548,"NSM"],[72550,72550,"NSM"],[72752,72758,"NSM"],[72760,72765,"NSM"],[72850,72871,"NSM"],[72874,72880,"NSM"],[72882,72883,"NSM"],[72885,72886,"NSM"],[73009,73014,"NSM"],[73018,73018,"NSM"],[73020,73021,"NSM"],[73023,73029,"NSM"],[73031,73031,"NSM"],[73104,73105,"NSM"],[73109,73109,"NSM"],[73111,73111,"NSM"],[73459,73460,"NSM"],[73472,73473,"NSM"],[73526,73530,"NSM"],[73536,73536,"NSM"],[73538,73538,"NSM"],[73562,73562,"NSM"],[73685,73692,"ON"],[73693,73696,"ET"],[73697,73713,"ON"],[78912,78912,"NSM"],[78919,78933,"NSM"],[90398,90409,"NSM"],[90413,90415,"NSM"],[92912,92916,"NSM"],[92976,92982,"NSM"],[94031,94031,"NSM"],[94095,94098,"NSM"],[94178,94178,"ON"],[94180,94180,"NSM"],[113821,113822,"NSM"],[113824,113827,"BN"],[117760,117973,"ON"],[118e3,118009,"EN"],[118010,118012,"ON"],[118016,118451,"ON"],[118458,118480,"ON"],[118496,118512,"ON"],[118528,118573,"NSM"],[118576,118598,"NSM"],[119143,119145,"NSM"],[119155,119162,"BN"],[119163,119170,"NSM"],[119173,119179,"NSM"],[119210,119213,"NSM"],[119273,119274,"ON"],[119296,119361,"ON"],[119362,119364,"NSM"],[119365,119365,"ON"],[119552,119638,"ON"],[120513,120513,"ON"],[120539,120539,"ON"],[120571,120571,"ON"],[120597,120597,"ON"],[120629,120629,"ON"],[120655,120655,"ON"],[120687,120687,"ON"],[120713,120713,"ON"],[120745,120745,"ON"],[120771,120771,"ON"],[120782,120831,"EN"],[121344,121398,"NSM"],[121403,121452,"NSM"],[121461,121461,"NSM"],[121476,121476,"NSM"],[121499,121503,"NSM"],[121505,121519,"NSM"],[122880,122886,"NSM"],[122888,122904,"NSM"],[122907,122913,"NSM"],[122915,122916,"NSM"],[122918,122922,"NSM"],[123023,123023,"NSM"],[123184,123190,"NSM"],[123566,123566,"NSM"],[123628,123631,"NSM"],[123647,123647,"ET"],[124140,124143,"NSM"],[124398,124399,"NSM"],[124643,124643,"NSM"],[124646,124646,"NSM"],[124654,124655,"NSM"],[124661,124661,"NSM"],[124928,125135,"R"],[125136,125142,"NSM"],[125143,125251,"R"],[125252,125258,"NSM"],[125259,126063,"R"],[126064,126143,"AL"],[126144,126207,"R"],[126208,126287,"AL"],[126288,126463,"R"],[126464,126703,"AL"],[126704,126705,"ON"],[126706,126719,"AL"],[126720,126975,"R"],[126976,127019,"ON"],[127024,127123,"ON"],[127136,127150,"ON"],[127153,127167,"ON"],[127169,127183,"ON"],[127185,127221,"ON"],[127232,127242,"EN"],[127243,127247,"ON"],[127279,127279,"ON"],[127338,127343,"ON"],[127405,127405,"ON"],[127584,127589,"ON"],[127744,128728,"ON"],[128732,128748,"ON"],[128752,128764,"ON"],[128768,128985,"ON"],[128992,129003,"ON"],[129008,129008,"ON"],[129024,129035,"ON"],[129040,129095,"ON"],[129104,129113,"ON"],[129120,129159,"ON"],[129168,129197,"ON"],[129200,129211,"ON"],[129216,129217,"ON"],[129232,129240,"ON"],[129280,129623,"ON"],[129632,129645,"ON"],[129648,129660,"ON"],[129664,129674,"ON"],[129678,129734,"ON"],[129736,129736,"ON"],[129741,129756,"ON"],[129759,129770,"ON"],[129775,129784,"ON"],[129792,129938,"ON"],[129940,130031,"ON"],[130032,130041,"EN"],[130042,130042,"ON"],[131070,131071,"BN"],[196606,196607,"BN"],[262142,262143,"BN"],[327678,327679,"BN"],[393214,393215,"BN"],[458750,458751,"BN"],[524286,524287,"BN"],[589822,589823,"BN"],[655358,655359,"BN"],[720894,720895,"BN"],[786430,786431,"BN"],[851966,851967,"BN"],[917502,917759,"BN"],[917760,917999,"NSM"],[918e3,921599,"BN"],[983038,983039,"BN"],[1048574,1048575,"BN"],[1114110,1114111,"BN"]];function _n(e){if(e<=255)return Gt[e];let t=0,n=lt.length-1;for(;t<=n;){let i=t+n>>1,r=lt[i];if(e<r[0]){n=i-1;continue}if(e>r[1]){t=i+1;continue}return r[2]}return"L"}function Wn(e){let t=e.length;if(t===0)return null;let n=new Array(t),i=!1;for(let s=0;s<t;){let a=e.charCodeAt(s),m=a,h=1;if(a>=55296&&a<=56319&&s+1<t){let C=e.charCodeAt(s+1);C>=56320&&C<=57343&&(m=(a-55296<<10)+(C-56320)+65536,h=2)}let A=_n(m);(A==="R"||A==="AL"||A==="AN")&&(i=!0);for(let C=0;C<h;C++)n[s+C]=A;s+=h}if(!i)return null;let r=0;for(let s=0;s<t;s++){let a=n[s];if(a==="L"){r=0;break}if(a==="R"||a==="AL"){r=1;break}}let o=new Int8Array(t);for(let s=0;s<t;s++)o[s]=r;let u=r&1?"R":"L",d=u,c=d;for(let s=0;s<t;s++)n[s]==="NSM"?n[s]=c:c=n[s];c=d;for(let s=0;s<t;s++){let a=n[s];a==="EN"?n[s]=c==="AL"?"AN":"EN":(a==="R"||a==="L"||a==="AL")&&(c=a)}for(let s=0;s<t;s++)n[s]==="AL"&&(n[s]="R");for(let s=1;s<t-1;s++)n[s]==="ES"&&n[s-1]==="EN"&&n[s+1]==="EN"&&(n[s]="EN"),n[s]==="CS"&&(n[s-1]==="EN"||n[s-1]==="AN")&&n[s+1]===n[s-1]&&(n[s]=n[s-1]);for(let s=0;s<t;s++){if(n[s]!=="EN")continue;let a;for(a=s-1;a>=0&&n[a]==="ET";a--)n[a]="EN";for(a=s+1;a<t&&n[a]==="ET";a++)n[a]="EN"}for(let s=0;s<t;s++){let a=n[s];(a==="WS"||a==="ES"||a==="ET"||a==="CS")&&(n[s]="ON")}c=d;for(let s=0;s<t;s++){let a=n[s];a==="EN"?n[s]=c==="L"?"L":"EN":(a==="R"||a==="L")&&(c=a)}for(let s=0;s<t;s++){if(n[s]!=="ON")continue;let a=s+1;for(;a<t&&n[a]==="ON";)a++;let m=s>0?n[s-1]:d,h=a<t?n[a]:d,A=m!=="L"?"R":"L";if(A===(h!=="L"?"R":"L"))for(let D=s;D<a;D++)n[D]=A;s=a-1}for(let s=0;s<t;s++)n[s]==="ON"&&(n[s]=u);for(let s=0;s<t;s++){let a=n[s];(o[s]&1)===0?a==="R"?o[s]++:(a==="AN"||a==="EN")&&(o[s]+=2):(a==="L"||a==="AN"||a==="EN")&&o[s]++}return o}function qt(e,t){let n=Wn(e);if(n===null)return null;let i=new Int8Array(t.length);for(let r=0;r<t.length;r++)i[r]=n[t[r]];return i}var Hn=/[ \\t\\n\\r\\f]+/g,jn=/[\\t\\n\\r\\f]| {2,}|^ | $/;function zn(e){let t=e??"normal";return t==="pre-wrap"?{mode:t,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:t,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function Un(e){if(!jn.test(e))return e;let t=e.replace(Hn," ");return t.charCodeAt(0)===32&&(t=t.slice(1)),t.length>0&&t.charCodeAt(t.length-1)===32&&(t=t.slice(0,-1)),t}function Gn(e){return/[\\r\\f]/.test(e)?e.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):e.replace(/\\r\\n/g,`\n`)}var ut=null,qn;function $n(){return ut===null&&(ut=new Intl.Segmenter(qn,{granularity:"word"})),ut}var Kn=/\\p{Script=Arabic}/u,Ge=/\\p{M}/u,Xt=/\\p{Nd}/u;function $t(e){return Kn.test(e)}function Kt(e){return e>=19968&&e<=40959||e>=13312&&e<=19903||e>=131072&&e<=173791||e>=173824&&e<=177983||e>=177984&&e<=178207||e>=178208&&e<=183983||e>=183984&&e<=191471||e>=191472&&e<=192093||e>=194560&&e<=195103||e>=196608&&e<=201551||e>=201552&&e<=205743||e>=205744&&e<=210041||e>=63744&&e<=64255||e>=12288&&e<=12351||e>=12352&&e<=12447||e>=12448&&e<=12543||e>=44032&&e<=55215||e>=65280&&e<=65519}function Ae(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(!(n<12288)){if(n>=55296&&n<=56319&&t+1<e.length){let i=e.charCodeAt(t+1);if(i>=56320&&i<=57343){let r=(n-55296<<10)+(i-56320)+65536;if(Kt(r))return!0;t++;continue}}if(Kt(n))return!0}}return!1}function Vn(e){let t=Ke(e);return t!==null&&($e.has(t)||be.has(t))}var Jn=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function Qn(e){return Ae(e)}function Zn(e){let t=Ke(e);return t!==null&&Jn.has(t)}function qe(e){return!Vn(e)&&!Zn(e)}var $e=new Set(["\\uFF0C","\\uFF0E","\\uFF01","\\uFF1A","\\uFF1B","\\uFF1F","\\u3001","\\u3002","\\u30FB","\\uFF09","\\u3015","\\u3009","\\u300B","\\u300D","\\u300F","\\u3011","\\u3017","\\u3019","\\u301B","\\u30FC","\\u3005","\\u303B","\\u309D","\\u309E","\\u30FD","\\u30FE"]),He=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),dt=new Set(["\'","\\u2019"]),be=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),Yn=new Set([":",".","\\u060C","\\u061B"]),Xn=new Set(["\\u104F"]),ei=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function ti(e){if(mt(e))return!0;let t=!1;for(let n of e){if(be.has(n)){t=!0;continue}if(!(t&&Ge.test(n)))return!1}return t}function ni(e){for(let t of e)if(!$e.has(t)&&!be.has(t))return!1;return e.length>0}function ii(e){if(mt(e))return!0;for(let t of e)if(!He.has(t)&&!dt.has(t)&&!Ge.test(t))return!1;return e.length>0}function mt(e){let t=!1;for(let n of e)if(!(n==="\\\\"||Ge.test(n))){if(He.has(n)||be.has(n)||dt.has(n)){t=!0;continue}return!1}return t}function en(e,t){let n=t-1;if(n<=0)return Math.max(n,0);let i=e.charCodeAt(n);if(i<56320||i>57343)return n;let r=n-1;if(r<0)return n;let o=e.charCodeAt(r);return o>=55296&&o<=56319?r:n}function Ke(e){if(e.length===0)return null;let t=en(e,e.length);return e.slice(t)}function oi(e){let t=Array.from(e),n=t.length;for(;n>0;){let i=t[n-1];if(Ge.test(i)){n--;continue}if(He.has(i)||dt.has(i)){n--;continue}break}return n<=0||n===t.length?null:{head:t.slice(0,n).join(""),tail:t.slice(n).join("")}}function ri(e,t,n){return n==="text"&&!t&&e.length===1&&e!=="-"&&e!=="\\u2014"?e:null}function Vt(e,t,n,i){let r=t[i],o=e[i];if(r==null)return o;let u=n[i];if(o.length===u)return o;let d=r.repeat(u);return e[i]=d,d}function Jt(e,t){return e&&t!==null&&Yn.has(t)}function si(e){let t=Ke(e);return t!==null&&Xn.has(t)}function ai(e){if(e.length<2||e[0]!==" ")return null;let t=e.slice(1);return/^\\p{M}+$/u.test(t)?{space:" ",marks:t}:null}function Ve(e){let t=e.length;for(;t>0;){let n=en(e,t),i=e.slice(n,t);if(ei.has(i))return!0;if(!be.has(i))return!1;t=n}return!1}function li(e,t){if(t.preserveOrdinarySpaces||t.preserveHardBreaks){if(e===" ")return"preserved-space";if(e===" ")return"tab";if(t.preserveHardBreaks&&e===`\n`)return"hard-break"}return e===" "?"space":e==="\\xA0"||e==="\\u202F"||e==="\\u2060"||e==="\\uFEFF"?"glue":e==="\\u200B"?"zero-width-break":e==="\\xAD"?"soft-hyphen":"text"}var ui=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function Se(e){return e.length===1?e[0]:e.join("")}function ci(e,t){let n=[];for(let i=e.length-1;i>=0;i--)n.push(e[i]);return n.push(t),Se(n)}function di(e,t,n,i){if(!ui.test(e))return[{text:e,isWordLike:t,kind:"text",start:n}];let r=[],o=null,u=[],d=n,c=!1,s=0;for(let a of e){let m=li(a,i),h=m==="text"&&t;if(o!==null&&m===o&&h===c){u.push(a),s+=a.length;continue}o!==null&&r.push({text:Se(u),isWordLike:c,kind:o,start:d}),o=m,u=[a],d=n+s,c=h,s+=a.length}return o!==null&&r.push({text:Se(u),isWordLike:c,kind:o,start:d}),r}function ct(e){return e==="space"||e==="preserved-space"||e==="zero-width-break"||e==="hard-break"}var mi=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function xi(e,t){let n=e.texts[t];return n.startsWith("www.")?!0:mi.test(n)&&t+1<e.len&&e.kinds[t+1]==="text"&&e.texts[t+1]==="//"}function fi(e){return e.includes("?")&&(e.includes("://")||e.startsWith("www."))}function pi(e){let t=e.texts.slice(),n=e.isWordLike.slice(),i=e.kinds.slice(),r=e.starts.slice();for(let u=0;u<e.len;u++){if(i[u]!=="text"||!xi(e,u))continue;let d=[t[u]],c=u+1;for(;c<e.len&&!ct(i[c]);){d.push(t[c]),n[u]=!0;let s=t[c].includes("?");if(i[c]="text",t[c]="",c++,s)break}t[u]=Se(d)}let o=0;for(let u=0;u<t.length;u++){let d=t[u];d.length!==0&&(o!==u&&(t[o]=d,n[o]=n[u],i[o]=i[u],r[o]=r[u]),o++)}return t.length=o,n.length=o,i.length=o,r.length=o,{len:o,texts:t,isWordLike:n,kinds:i,starts:r}}function hi(e){let t=[],n=[],i=[],r=[];for(let o=0;o<e.len;o++){let u=e.texts[o];if(t.push(u),n.push(e.isWordLike[o]),i.push(e.kinds[o]),r.push(e.starts[o]),!fi(u))continue;let d=o+1;if(d>=e.len||ct(e.kinds[d]))continue;let c=[],s=e.starts[d],a=d;for(;a<e.len&&!ct(e.kinds[a]);)c.push(e.texts[a]),a++;c.length>0&&(t.push(Se(c)),n.push(!0),i.push("text"),r.push(s),o=a-1)}return{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}var gi=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),Qt=/^[A-Za-z0-9_]+[,:;]*$/,Zt=/[,:;]+$/;function tn(e){for(let t of e)if(Xt.test(t))return!0;return!1}function We(e){if(e.length===0)return!1;for(let t of e)if(!(Xt.test(t)||gi.has(t)))return!1;return!0}function Si(e){let t=[],n=[],i=[],r=[];for(let o=0;o<e.len;o++){let u=e.texts[o],d=e.kinds[o];if(d==="text"&&We(u)&&tn(u)){let c=[u],s=o+1;for(;s<e.len&&e.kinds[s]==="text"&&We(e.texts[s]);)c.push(e.texts[s]),s++;t.push(Se(c)),n.push(!0),i.push("text"),r.push(e.starts[o]),o=s-1;continue}t.push(u),n.push(e.isWordLike[o]),i.push(d),r.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}function Fi(e){let t=[],n=[],i=[],r=[];for(let o=0;o<e.len;o++){let u=e.texts[o],d=e.kinds[o],c=e.isWordLike[o];if(d==="text"&&c&&Qt.test(u)){let s=[u],a=Zt.test(u),m=o+1;for(;a&&m<e.len&&e.kinds[m]==="text"&&e.isWordLike[m]&&Qt.test(e.texts[m]);){let h=e.texts[m];s.push(h),a=Zt.test(h),m++}t.push(Se(s)),n.push(!0),i.push("text"),r.push(e.starts[o]),o=m-1;continue}t.push(u),n.push(c),i.push(d),r.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}function Ai(e){let t=[],n=[],i=[],r=[];for(let o=0;o<e.len;o++){let u=e.texts[o];if(e.kinds[o]==="text"&&u.includes("-")){let d=u.split("-"),c=d.length>1;for(let s=0;s<d.length;s++){let a=d[s];if(!c)break;(a.length===0||!tn(a)||!We(a))&&(c=!1)}if(c){let s=0;for(let a=0;a<d.length;a++){let m=d[a],h=a<d.length-1?`${m}-`:m;t.push(h),n.push(!0),i.push("text"),r.push(e.starts[o]+s),s+=h.length}continue}}t.push(u),n.push(e.isWordLike[o]),i.push(e.kinds[o]),r.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}function Ni(e){let t=[],n=[],i=[],r=[],o=0;for(;o<e.len;){let u=[e.texts[o]],d=e.isWordLike[o],c=e.kinds[o],s=e.starts[o];if(c==="glue"){let a=[u[0]],m=s;for(o++;o<e.len&&e.kinds[o]==="glue";)a.push(e.texts[o]),o++;let h=Se(a);if(o<e.len&&e.kinds[o]==="text")u[0]=h,u.push(e.texts[o]),d=e.isWordLike[o],c="text",s=m,o++;else{t.push(h),n.push(!1),i.push("glue"),r.push(m);continue}}else o++;if(c==="text")for(;o<e.len&&e.kinds[o]==="glue";){let a=[];for(;o<e.len&&e.kinds[o]==="glue";)a.push(e.texts[o]),o++;let m=Se(a);if(o<e.len&&e.kinds[o]==="text"){u.push(m,e.texts[o]),d=d||e.isWordLike[o],o++;continue}u.push(m)}t.push(Se(u)),n.push(d),i.push(c),r.push(s)}return{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}function Ei(e){let t=e.texts.slice(),n=e.isWordLike.slice(),i=e.kinds.slice(),r=e.starts.slice();for(let o=0;o<t.length-1;o++){if(i[o]!=="text"||i[o+1]!=="text"||!Ae(t[o])||!Ae(t[o+1]))continue;let u=oi(t[o]);u!==null&&(t[o]=u.head,t[o+1]=u.tail+t[o+1],r[o+1]=r[o]+u.head.length)}return{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}function Yt(e,t,n){let i=$n(),r=0,o=[],u=[],d=[],c=[],s=[],a=[],m=[],h=[],A=[],C=[],D=[],L=[];for(let x of i.segment(e))for(let g of di(x.segment,x.isWordLike??!1,x.index,n)){let Q=function(){a[w]!==null&&(u[w]=[Vt(o,a,m,w)],a[w]=null),u[w].push(g.text),d[w]=d[w]||g.isWordLike,h[w]=h[w]||E,A[w]=A[w]||R,C[w]=W,D[w]=Z,L[w]=Jt(A[w],_)},N=g.kind==="text",y=ri(g.text,g.isWordLike,g.kind),E=Ae(g.text),R=$t(g.text),_=Ke(g.text),W=Ve(g.text),Z=si(g.text),w=r-1;t.carryCJKAfterClosingQuote&&N&&r>0&&c[w]==="text"&&E&&h[w]&&C[w]||N&&r>0&&c[w]==="text"&&ni(g.text)&&h[w]||N&&r>0&&c[w]==="text"&&D[w]?Q():N&&r>0&&c[w]==="text"&&g.isWordLike&&R&&L[w]?(Q(),d[w]=!0):y!==null&&r>0&&c[w]==="text"&&a[w]===y?m[w]=(m[w]??1)+1:N&&!g.isWordLike&&r>0&&c[w]==="text"&&(ti(g.text)||g.text==="-"&&d[w])?Q():(o[r]=g.text,u[r]=[g.text],d[r]=g.isWordLike,c[r]=g.kind,s[r]=g.start,a[r]=y,m[r]=y===null?0:1,h[r]=E,A[r]=R,C[r]=W,D[r]=Z,L[r]=Jt(R,_),r++)}for(let x=0;x<r;x++){if(a[x]!==null){o[x]=Vt(o,a,m,x);continue}o[x]=Se(u[x])}for(let x=1;x<r;x++)c[x]==="text"&&!d[x]&&mt(o[x])&&c[x-1]==="text"&&(o[x-1]+=o[x],d[x-1]=d[x-1]||d[x],o[x]="");let G=Array.from({length:r},()=>null),U=-1;for(let x=r-1;x>=0;x--){let g=o[x];if(g.length!==0){if(c[x]==="text"&&!d[x]&&ii(g)&&U>=0&&c[U]==="text"){let N=G[U]??[];N.push(g),G[U]=N,s[U]=s[x],o[x]="";continue}U=x}}for(let x=0;x<r;x++){let g=G[x];g!=null&&(o[x]=ci(g,o[x]))}let k=0;for(let x=0;x<r;x++){let g=o[x];g.length!==0&&(k!==x&&(o[k]=g,d[k]=d[x],c[k]=c[x],s[k]=s[x]),k++)}o.length=k,d.length=k,c.length=k,s.length=k;let X=Ni({len:k,texts:o,isWordLike:d,kinds:c,starts:s}),S=Ei(Fi(Ai(Si(hi(pi(X))))));for(let x=0;x<S.len-1;x++){let g=ai(S.texts[x]);g!==null&&(S.kinds[x]!=="space"&&S.kinds[x]!=="preserved-space"||S.kinds[x+1]!=="text"||!$t(S.texts[x+1])||(S.texts[x]=g.space,S.isWordLike[x]=!1,S.kinds[x]=S.kinds[x]==="preserved-space"?"preserved-space":"space",S.texts[x+1]=g.marks+S.texts[x+1],S.starts[x+1]=S.starts[x]+g.space.length))}return S}function yi(e,t){if(e.len===0)return[];if(!t.preserveHardBreaks)return[{startSegmentIndex:0,endSegmentIndex:e.len,consumedEndSegmentIndex:e.len}];let n=[],i=0;for(let r=0;r<e.len;r++)e.kinds[r]==="hard-break"&&(n.push({startSegmentIndex:i,endSegmentIndex:r,consumedEndSegmentIndex:r+1}),i=r+1);return i<e.len&&n.push({startSegmentIndex:i,endSegmentIndex:e.len,consumedEndSegmentIndex:e.len}),n}function bi(e){if(e.len<=1)return e;let t=[],n=[],i=[],r=[],o=null,u=!1,d=0,c=!1,s=!1;function a(){o!==null&&(t.push(Se(o)),n.push(u),i.push("text"),r.push(d),o=null)}for(let m=0;m<e.len;m++){let h=e.texts[m],A=e.kinds[m],C=e.isWordLike[m],D=e.starts[m];if(A==="text"){let L=Qn(h),G=qe(h);if(o!==null&&c&&s){o.push(h),u=u||C,c=c||L,s=G;continue}a(),o=[h],u=C,d=D,c=L,s=G;continue}a(),t.push(h),n.push(C),i.push(A),r.push(D)}return a(),{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}function nn(e,t,n="normal",i="normal"){let r=zn(n),o=r.mode==="pre-wrap"?Gn(e):Un(e);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let u=i==="keep-all"?bi(Yt(o,t,r)):Yt(o,t,r);return{normalized:o,chunks:yi(u,r),...u}}var Be=null,on=new Map,Re=null,Mi=96,Ci=/\\p{Emoji_Presentation}/u,Di=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,xt=null,rn=new Map;function ft(){if(Be!==null)return Be;if(typeof OffscreenCanvas<"u")return Be=new OffscreenCanvas(1,1).getContext("2d"),Be;if(typeof document<"u")return Be=document.createElement("canvas").getContext("2d"),Be;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function ki(e){let t=on.get(e);return t||(t=new Map,on.set(e,t)),t}function Ne(e,t){let n=t.get(e);return n===void 0&&(n={width:ft().measureText(e).width,containsCJK:Ae(e)},t.set(e,n)),n}function ve(){if(Re!==null)return Re;if(typeof navigator>"u")return Re={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},Re;let e=navigator.userAgent,n=navigator.vendor==="Apple Computer, Inc."&&e.includes("Safari/")&&!e.includes("Chrome/")&&!e.includes("Chromium/")&&!e.includes("CriOS/")&&!e.includes("FxiOS/")&&!e.includes("EdgiOS/"),i=e.includes("Chrome/")||e.includes("Chromium/")||e.includes("CriOS/")||e.includes("Edg/");return Re={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:i,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},Re}function Li(e){let t=e.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return t?parseFloat(t[1]):16}function sn(){return xt===null&&(xt=new Intl.Segmenter(void 0,{granularity:"grapheme"})),xt}function Ti(e){return Ci.test(e)||e.includes("\\uFE0F")}function an(e){return Di.test(e)}function wi(e,t){let n=rn.get(e);if(n!==void 0)return n;let i=ft();i.font=e;let r=i.measureText("\\u{1F600}").width;if(n=0,r>t+.5&&typeof document<"u"&&document.body!==null){let o=document.createElement("span");o.style.font=e,o.style.display="inline-block",o.style.visibility="hidden",o.style.position="absolute",o.textContent="\\u{1F600}",document.body.appendChild(o);let u=o.getBoundingClientRect().width;document.body.removeChild(o),r-u>.5&&(n=r-u)}return rn.set(e,n),n}function Bi(e){let t=0,n=sn();for(let i of n.segment(e))Ti(i.segment)&&t++;return t}function Ri(e,t){return t.emojiCount===void 0&&(t.emojiCount=Bi(e)),t.emojiCount}function Me(e,t,n){return n===0?t.width:t.width-Ri(e,t)*n}function ln(e,t,n,i,r){if(t.breakableFitAdvances!==void 0)return t.breakableFitAdvances;let o=sn(),u=[];for(let a of o.segment(e))u.push(a.segment);if(u.length<=1)return t.breakableFitAdvances=null,t.breakableFitAdvances;if(r==="sum-graphemes"){let a=[];for(let m of u){let h=Ne(m,n);a.push(Me(m,h,i))}return t.breakableFitAdvances=a,t.breakableFitAdvances}if(r==="pair-context"||u.length>Mi){let a=[],m=null,h=0;for(let A of u){let C=Ne(A,n),D=Me(A,C,i);if(m===null)a.push(D);else{let L=m+A,G=Ne(L,n);a.push(Me(L,G,i)-h)}m=A,h=D}return t.breakableFitAdvances=a,t.breakableFitAdvances}let d=[],c="",s=0;for(let a of u){c+=a;let m=Ne(c,n),h=Me(c,m,i);d.push(h-s),s=h}return t.breakableFitAdvances=d,t.breakableFitAdvances}function un(e,t){let n=ft();n.font=e;let i=ki(e),r=Li(e),o=t?wi(e,r):0;return{cache:i,fontSize:r,emojiCorrection:o}}function vi(e,t){for(;t<e.widths.length;){let n=e.kinds[t];if(n!=="space"&&n!=="zero-width-break"&&n!=="soft-hyphen")break;t++}return t}function Ii(e,t){if(t<=0)return 0;let n=e%t;return Math.abs(n)<=1e-6?t:t-n}function Pi(e,t,n,i,r){let o=0,u=t;for(;o<e.length;){let d=u+e[o];if((o+1<e.length?d+r:d)>n+i)break;u=d,o++}return{fitCount:o,fittedWidth:u}}function cn(e,t){return e.simpleLineWalkFastPath?dn(e,t):mn(e,t)}function dn(e,t,n){let{widths:i,kinds:r,breakableFitAdvances:o}=e;if(i.length===0)return 0;let d=ve().lineFitEpsilon,c=t+d,s=0,a=0,m=!1,h=0,A=0,C=0,D=0,L=-1,G=0;function U(){L=-1,G=0}function k(y=C,E=D,R=a){s++,n?.({startSegmentIndex:h,startGraphemeIndex:A,endSegmentIndex:y,endGraphemeIndex:E,width:R}),a=0,m=!1,U()}function X(y,E){m=!0,h=y,A=0,C=y+1,D=0,a=E}function S(y,E,R){m=!0,h=y,A=E,C=y,D=E+1,a=R}function x(y,E){if(!m){X(y,E);return}a+=E,C=y+1,D=0}function g(y,E){let R=o[y];for(let _=E;_<R.length;_++){let W=R[_];m?a+W>c?(k(),S(y,_,W)):(a+=W,C=y,D=_+1):S(y,_,W)}m&&C===y&&D===R.length&&(C=y+1,D=0)}let N=0;for(;N<i.length&&!(!m&&(N=vi(e,N),N>=i.length));){let y=i[N],E=r[N],R=E==="space"||E==="preserved-space"||E==="tab"||E==="zero-width-break"||E==="soft-hyphen";if(!m){y>t&&o[N]!==null?g(N,0):X(N,y),R&&(L=N+1,G=a-y),N++;continue}if(a+y>c){if(R){x(N,y),k(N+1,0,a-y),N++;continue}if(L>=0){if(C>L||C===L&&D>0){k();continue}k(L,0,G);continue}if(y>t&&o[N]!==null){k(),g(N,0),N++;continue}k();continue}x(N,y),R&&(L=N+1,G=a-y),N++}return m&&k(),s}function mn(e,t,n){if(e.simpleLineWalkFastPath)return dn(e,t,n);let{widths:i,lineEndFitAdvances:r,lineEndPaintAdvances:o,kinds:u,breakableFitAdvances:d,discretionaryHyphenWidth:c,tabStopAdvance:s,chunks:a}=e;if(i.length===0||a.length===0)return 0;let m=ve(),h=m.lineFitEpsilon,A=t+h,C=0,D=0,L=!1,G=0,U=0,k=0,X=0,S=-1,x=0,g=0,N=null;function y(){S=-1,x=0,g=0,N=null}function E(H=k,z=X,v=D){C++,n?.({startSegmentIndex:G,startGraphemeIndex:U,endSegmentIndex:H,endGraphemeIndex:z,width:v}),D=0,L=!1,y()}function R(H,z){L=!0,G=H,U=0,k=H+1,X=0,D=z}function _(H,z,v){L=!0,G=H,U=z,k=H,X=z+1,D=v}function W(H,z){if(!L){R(H,z);return}D+=z,k=H+1,X=0}function Z(H,z,v,K){if(!z)return;let he=H==="tab"?0:r[v],ue=H==="tab"?K:o[v];S=v+1,x=D-K+he,g=D-K+ue,N=H}function w(H,z){let v=d[H];for(let K=z;K<v.length;K++){let he=v[K];L?D+he>A?(E(),_(H,K,he)):(D+=he,k=H,X=K+1):_(H,K,he)}L&&k===H&&X===v.length&&(k=H+1,X=0)}function Q(H){if(N!=="soft-hyphen")return!1;let z=d[H];if(z==null)return!1;let{fitCount:v,fittedWidth:K}=Pi(z,D,t,h,c);return v===0?!1:(D=K,k=H,X=v,y(),v===z.length?(k=H+1,X=0,!0):(E(H,v,K+c),w(H,v),!0))}function ee(H){C++,n?.({startSegmentIndex:H.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:H.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),y()}for(let H=0;H<a.length;H++){let z=a[H];if(z.startSegmentIndex===z.endSegmentIndex){ee(z);continue}L=!1,D=0,G=z.startSegmentIndex,U=0,k=z.startSegmentIndex,X=0,y();let v=z.startSegmentIndex;for(;v<z.endSegmentIndex;){let K=u[v],he=K==="space"||K==="preserved-space"||K==="tab"||K==="zero-width-break"||K==="soft-hyphen",ue=K==="tab"?Ii(D,s):i[v];if(K==="soft-hyphen"){L&&(k=v+1,X=0,S=v+1,x=D+c,g=D+c,N=K),v++;continue}if(!L){ue>t&&d[v]!==null?w(v,0):R(v,ue),Z(K,he,v,ue),v++;continue}if(D+ue>A){let b=D+(K==="tab"?0:r[v]),T=D+(K==="tab"?ue:o[v]);if(N==="soft-hyphen"&&m.preferEarlySoftHyphenBreak&&x<=A){E(S,0,g);continue}if(N==="soft-hyphen"&&Q(v)){v++;continue}if(he&&b<=A){W(v,ue),E(v+1,0,T),v++;continue}if(S>=0&&x<=A){if(k>S||k===S&&X>0){E();continue}let Y=S;E(Y,0,g),v=Y;continue}if(ue>t&&d[v]!==null){E(),w(v,0),v++;continue}E();continue}W(v,ue),Z(K,he,v,ue),v++}if(L){let K=S===z.consumedEndSegmentIndex?g:D;E(z.consumedEndSegmentIndex,0,K)}}return C}var pt=null;function Oi(){return pt===null&&(pt=new Intl.Segmenter(void 0,{granularity:"grapheme"})),pt}function _i(e){return e?{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[],segments:[]}:{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[]}}function Wi(e,t){let n=[],i=[],r=0,o=!1,u=!1,d=!1;function c(){i.length!==0&&(n.push({text:i.length===1?i[0]:i.join(""),start:r}),i=[],o=!1,u=!1,d=!1)}function s(m,h,A){i=[m],r=h,o=A,u=Ve(m),d=He.has(m)}function a(m,h){i.push(m),o=o||h;let A=Ve(m);m.length===1&&be.has(m)?u=u||A:u=A,d=!1}for(let m of Oi().segment(e)){let h=m.segment,A=Ae(h);if(i.length===0){s(h,m.index,A);continue}if(d||$e.has(h)||be.has(h)||t.carryCJKAfterClosingQuote&&A&&u){a(h,A);continue}if(!o&&!A){a(h,A);continue}c(),s(h,m.index,A)}return c(),n}function Hi(e){if(e.length<=1)return e;let t=[],n=[e[0].text],i=e[0].start,r=Ae(e[0].text),o=qe(e[0].text);function u(){t.push({text:n.length===1?n[0]:n.join(""),start:i})}for(let d=1;d<e.length;d++){let c=e[d],s=Ae(c.text),a=qe(c.text);if(r&&o){n.push(c.text),r=r||s,o=a;continue}u(),n=[c.text],i=c.start,r=s,o=a}return u(),t}function ji(e,t,n,i){let r=ve(),{cache:o,emojiCorrection:u}=un(t,an(e.normalized)),d=Me("-",Ne("-",o),u),s=Me(" ",Ne(" ",o),u)*8;if(e.len===0)return _i(n);let a=[],m=[],h=[],A=[],C=e.chunks.length<=1,D=n?[]:null,L=[],G=n?[]:null,U=Array.from({length:e.len});function k(g,N,y,E,R,_,W){R!=="text"&&R!=="space"&&R!=="zero-width-break"&&(C=!1),a.push(N),m.push(y),h.push(E),A.push(R),D?.push(_),L.push(W),G!==null&&G.push(g)}function X(g,N,y,E,R){let _=Ne(g,o),W=Me(g,_,u),Z=N==="space"||N==="preserved-space"||N==="zero-width-break"?0:W,w=N==="space"||N==="zero-width-break"?0:W;if(R&&E&&g.length>1){let Q="sum-graphemes";We(g)?Q="pair-context":r.preferPrefixWidthsForBreakableRuns&&(Q="segment-prefixes");let ee=ln(g,_,o,u,Q);k(g,W,Z,w,N,y,ee);return}k(g,W,Z,w,N,y,null)}for(let g=0;g<e.len;g++){U[g]=a.length;let N=e.texts[g],y=e.isWordLike[g],E=e.kinds[g],R=e.starts[g];if(E==="soft-hyphen"){k(N,0,d,d,E,R,null);continue}if(E==="hard-break"){k(N,0,0,0,E,R,null);continue}if(E==="tab"){k(N,0,0,0,E,R,null);continue}let _=Ne(N,o);if(E==="text"&&_.containsCJK){let W=Wi(N,r),Z=i==="keep-all"?Hi(W):W;for(let w=0;w<Z.length;w++){let Q=Z[w];X(Q.text,"text",R+Q.start,y,i==="keep-all"||!Ae(Q.text))}continue}X(N,E,R,y,!0)}let S=zi(e.chunks,U,a.length),x=D===null?null:qt(e.normalized,D);return G!==null?{widths:a,lineEndFitAdvances:m,lineEndPaintAdvances:h,kinds:A,simpleLineWalkFastPath:C,segLevels:x,breakableFitAdvances:L,discretionaryHyphenWidth:d,tabStopAdvance:s,chunks:S,segments:G}:{widths:a,lineEndFitAdvances:m,lineEndPaintAdvances:h,kinds:A,simpleLineWalkFastPath:C,segLevels:x,breakableFitAdvances:L,discretionaryHyphenWidth:d,tabStopAdvance:s,chunks:S}}function zi(e,t,n){let i=[];for(let r=0;r<e.length;r++){let o=e[r],u=o.startSegmentIndex<t.length?t[o.startSegmentIndex]:n,d=o.endSegmentIndex<t.length?t[o.endSegmentIndex]:n,c=o.consumedEndSegmentIndex<t.length?t[o.consumedEndSegmentIndex]:n;i.push({startSegmentIndex:u,endSegmentIndex:d,consumedEndSegmentIndex:c})}return i}function Ui(e,t,n,i){let r=i?.wordBreak??"normal",o=nn(e,ve(),i?.whiteSpace,r);return ji(o,t,n,r)}function xn(e,t,n){return Ui(e,t,!1,n)}function fn(e,t,n){let i=cn(e,t);return{lineCount:i,height:i*n}}var Gi={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function pn(e,t){let n={...Gi,...t},i=1.2;for(let r=n.baseFontSize;r>=n.minFontSize;r-=n.step){let o=`${n.fontWeight} ${r}px ${n.fontFamily}`,u=xn(e,o),{lineCount:d}=fn(u,n.maxWidth,r*i);if(d<=1)return{fontSize:r,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}window.__timelines=window.__timelines||{};window.__hyperframes={fitTextFontSize:pn};function hn(){let e=window;e.__hyperframeRuntimeBootstrapped||(e.__hyperframeRuntimeBootstrapped=!0,Ut())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",hn,{once:!0}):hn();})();\n';
6195
+ RUNTIME_IIFE = '"use strict";(()=>{var No=Object.create;var Jn=Object.defineProperty;var wo=Object.getOwnPropertyDescriptor;var Co=Object.getOwnPropertyNames;var Mo=Object.getPrototypeOf,Do=Object.prototype.hasOwnProperty;var K=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var ko=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Co(e))!Do.call(n,r)&&r!==t&&Jn(n,r,{get:()=>e[r],enumerable:!(i=wo(e,r))||i.enumerable});return n};var Lo=(n,e,t)=>(t=n!=null?No(Mo(n)):{},ko(e||!n||!n.__esModule?Jn(t,"default",{value:n,enumerable:!0}):t,n));var hi=K((ja,ln)=>{var q=String,pi=function(){return{isColorSupported:!1,reset:q,bold:q,dim:q,italic:q,underline:q,inverse:q,hidden:q,strikethrough:q,black:q,red:q,green:q,yellow:q,blue:q,magenta:q,cyan:q,white:q,gray:q,bgBlack:q,bgRed:q,bgGreen:q,bgYellow:q,bgBlue:q,bgMagenta:q,bgCyan:q,bgWhite:q,blackBright:q,redBright:q,greenBright:q,yellowBright:q,blueBright:q,magentaBright:q,cyanBright:q,whiteBright:q,bgBlackBright:q,bgRedBright:q,bgGreenBright:q,bgYellowBright:q,bgBlueBright:q,bgMagentaBright:q,bgCyanBright:q,bgWhiteBright:q}};ln.exports=pi();ln.exports.createColors=pi});var an=K(()=>{});var kt=K((Va,Si)=>{"use strict";var xi=hi(),gi=an(),ot=class n extends Error{constructor(e,t,i,r,o,s){super(e),this.name="CssSyntaxError",this.reason=e,o&&(this.file=o),r&&(this.source=r),s&&(this.plugin=s),typeof t<"u"&&typeof i<"u"&&(typeof t=="number"?(this.line=t,this.column=i):(this.line=t.line,this.column=t.column,this.endLine=i.line,this.endColumn=i.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,n)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;e==null&&(e=xi.isColorSupported);let i=l=>l,r=l=>l,o=l=>l;if(e){let{bold:l,gray:f,red:m}=xi.createColors(!0);r=h=>l(m(h)),i=h=>f(h),gi&&(o=h=>gi(h))}let s=t.split(/\\r?\\n/),c=Math.max(this.line-3,0),u=Math.min(this.line+2,s.length),a=String(u).length;return s.slice(c,u).map((l,f)=>{let m=c+1+f,h=" "+(" "+m).slice(-a)+" | ";if(m===this.line){if(l.length>160){let C=20,A=Math.max(0,this.column-C),z=Math.max(this.column+C,this.endColumn+C),P=l.slice(A,z),k=i(h.replace(/\\d/g," "))+l.slice(0,Math.min(this.column-1,C-1)).replace(/[^\\t]/g," ");return r(">")+i(h)+o(P)+`\n `+k+r("^")}let M=i(h.replace(/\\d/g," "))+l.slice(0,this.column-1).replace(/[^\\t]/g," ");return r(">")+i(h)+o(l)+`\n `+M+r("^")}return" "+i(h)+o(l)}).join(`\n`)}toString(){let e=this.showSourceCode();return e&&(e=`\n\n`+e+`\n`),this.name+": "+this.message+e}};Si.exports=ot;ot.default=ot});var un=K((Ka,Ai)=>{"use strict";var yi={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function $o(n){return n[0].toUpperCase()+n.slice(1)}var st=class{constructor(e){this.builder=e}atrule(e,t){let i="@"+e.name,r=e.params?this.rawValue(e,"params"):"";if(typeof e.raws.afterName<"u"?i+=e.raws.afterName:r&&(i+=" "),e.nodes)this.block(e,i+r);else{let o=(e.raws.between||"")+(t?";":"");this.builder(i+r+o,e)}}beforeAfter(e,t){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):t==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let r=e.parent,o=0;for(;r&&r.type!=="root";)o+=1,r=r.parent;if(i.includes(`\n`)){let s=this.raw(e,null,"indent");if(s.length)for(let c=0;c<o;c++)i+=s}return i}block(e,t){let i=this.raw(e,"between","beforeOpen");this.builder(t+i+"{",e,"start");let r;e.nodes&&e.nodes.length?(this.body(e),r=this.raw(e,"after")):r=this.raw(e,"after","emptyBody"),r&&this.builder(r),this.builder("}",e,"end")}body(e){let t=e.nodes.length-1;for(;t>0&&e.nodes[t].type==="comment";)t-=1;let i=this.raw(e,"semicolon");for(let r=0;r<e.nodes.length;r++){let o=e.nodes[r],s=this.raw(o,"before");s&&this.builder(s),this.stringify(o,t!==r||i)}}comment(e){let t=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder("/*"+t+e.text+i+"*/",e)}decl(e,t){let i=this.raw(e,"between","colon"),r=e.prop+i+this.rawValue(e,"value");e.important&&(r+=e.raws.important||" !important"),t&&(r+=";"),this.builder(r,e)}document(e){this.body(e)}raw(e,t,i){let r;if(i||(i=t),t&&(r=e.raws[t],typeof r<"u"))return r;let o=e.parent;if(i==="before"&&(!o||o.type==="root"&&o.first===e||o&&o.type==="document"))return"";if(!o)return yi[i];let s=e.root();if(s.rawCache||(s.rawCache={}),typeof s.rawCache[i]<"u")return s.rawCache[i];if(i==="before"||i==="after")return this.beforeAfter(e,i);{let c="raw"+$o(i);this[c]?r=this[c](s,e):s.walk(u=>{if(r=u.raws[t],typeof r<"u")return!1})}return typeof r>"u"&&(r=yi[i]),s.rawCache[i]=r,r}rawBeforeClose(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after<"u")return t=i.raws.after,t.includes(`\n`)&&(t=t.replace(/[^\\n]+$/,"")),!1}),t&&(t=t.replace(/\\S/g,"")),t}rawBeforeComment(e,t){let i;return e.walkComments(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(t,null,"beforeDecl"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeDecl(e,t){let i;return e.walkDecls(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(t,null,"beforeRule"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeOpen(e){let t;return e.walk(i=>{if(i.type!=="decl"&&(t=i.raws.between,typeof t<"u"))return!1}),t}rawBeforeRule(e){let t;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&typeof i.raws.before<"u")return t=i.raws.before,t.includes(`\n`)&&(t=t.replace(/[^\\n]+$/,"")),!1}),t&&(t=t.replace(/\\S/g,"")),t}rawColon(e){let t;return e.walkDecls(i=>{if(typeof i.raws.between<"u")return t=i.raws.between.replace(/[^\\s:]/g,""),!1}),t}rawEmptyBody(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(t=i.raws.after,typeof t<"u"))return!1}),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk(i=>{let r=i.parent;if(r&&r!==e&&r.parent&&r.parent===e&&typeof i.raws.before<"u"){let o=i.raws.before.split(`\n`);return t=o[o.length-1],t=t.replace(/\\S/g,""),!1}}),t}rawSemicolon(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(t=i.raws.semicolon,typeof t<"u"))return!1}),t}rawValue(e,t){let i=e[t],r=e.raws[t];return r&&r.value===i?r.raw:i}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}};Ai.exports=st;st.default=st});var lt=K((Ja,Ei)=>{"use strict";var Vo=un();function cn(n,e){new Vo(e).stringify(n)}Ei.exports=cn;cn.default=cn});var Lt=K((Qa,dn)=>{"use strict";dn.exports.isClean=Symbol("isClean");dn.exports.my=Symbol("my")});var ct=K((Ya,Fi)=>{"use strict";var Ko=kt(),Jo=un(),Qo=lt(),{isClean:at,my:Yo}=Lt();function fn(n,e){let t=new n.constructor;for(let i in n){if(!Object.prototype.hasOwnProperty.call(n,i)||i==="proxyCache")continue;let r=n[i],o=typeof r;i==="parent"&&o==="object"?e&&(t[i]=e):i==="source"?t[i]=r:Array.isArray(r)?t[i]=r.map(s=>fn(s,t)):(o==="object"&&r!==null&&(r=fn(r)),t[i]=r)}return t}function ke(n,e){if(e&&typeof e.offset<"u")return e.offset;let t=1,i=1,r=0;for(let o=0;o<n.length;o++){if(i===e.line&&t===e.column){r=o;break}n[o]===`\n`?(t=1,i+=1):t+=1}return r}var ut=class{get proxyOf(){return this}constructor(e={}){this.raws={},this[at]=!1,this[Yo]=!0;for(let t in e)if(t==="nodes"){this.nodes=[];for(let i of e[t])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}else this[t]=e[t]}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\\n\\s{4}at /.test(e.stack)){let t=this.source;e.stack=e.stack.replace(/\\n\\s{4}at /,`$&${t.input.from}:${t.start.line}:${t.start.column}$&`)}return e}after(e){return this.parent.insertAfter(this,e),this}assign(e={}){for(let t in e)this[t]=e[t];return this}before(e){return this.parent.insertBefore(this,e),this}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}clone(e={}){let t=fn(this);for(let i in e)t[i]=e[i];return t}cloneAfter(e={}){let t=this.clone(e);return this.parent.insertAfter(this,t),t}cloneBefore(e={}){let t=this.clone(e);return this.parent.insertBefore(this,t),t}error(e,t={}){if(this.source){let{end:i,start:r}=this.rangeBy(t);return this.source.input.error(e,{column:r.column,line:r.line},{column:i.column,line:i.line},t)}return new Ko(e)}getProxyProcessor(){return{get(e,t){return t==="proxyOf"?e:t==="root"?()=>e.root().toProxy():e[t]},set(e,t,i){return e[t]===i||(e[t]=i,(t==="prop"||t==="value"||t==="name"||t==="params"||t==="important"||t==="text")&&e.markDirty()),!0}}}markClean(){this[at]=!0}markDirty(){if(this[at]){this[at]=!1;let e=this;for(;e=e.parent;)e[at]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e={}){let t=this.source.start;if(e.index)t=this.positionInside(e.index);else if(e.word){let i="document"in this.source.input?this.source.input.document:this.source.input.css,o=i.slice(ke(i,this.source.start),ke(i,this.source.end)).indexOf(e.word);o!==-1&&(t=this.positionInside(o))}return t}positionInside(e){let t=this.source.start.column,i=this.source.start.line,r="document"in this.source.input?this.source.input.document:this.source.input.css,o=ke(r,this.source.start),s=o+e;for(let c=o;c<s;c++)r[c]===`\n`?(t=1,i+=1):t+=1;return{column:t,line:i,offset:s}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e={}){let t="document"in this.source.input?this.source.input.document:this.source.input.css,i={column:this.source.start.column,line:this.source.start.line,offset:ke(t,this.source.start)},r=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:ke(t,this.source.end)+1}:{column:i.column+1,line:i.line,offset:i.offset+1};if(e.word){let s=t.slice(ke(t,this.source.start),ke(t,this.source.end)).indexOf(e.word);s!==-1&&(i=this.positionInside(s),r=this.positionInside(s+e.word.length))}else e.start?i={column:e.start.column,line:e.start.line,offset:ke(t,e.start)}:e.index&&(i=this.positionInside(e.index)),e.end?r={column:e.end.column,line:e.end.line,offset:ke(t,e.end)}:typeof e.endIndex=="number"?r=this.positionInside(e.endIndex):e.index&&(r=this.positionInside(e.index+1));return(r.line<i.line||r.line===i.line&&r.column<=i.column)&&(r={column:i.column+1,line:i.line,offset:i.offset+1}),{end:r,start:i}}raw(e,t){return new Jo().raw(this,e,t)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let t=this,i=!1;for(let r of e)r===this?i=!0:i?(this.parent.insertAfter(t,r),t=r):this.parent.insertBefore(t,r);i||this.remove()}return this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}toJSON(e,t){let i={},r=t==null;t=t||new Map;let o=0;for(let s in this){if(!Object.prototype.hasOwnProperty.call(this,s)||s==="parent"||s==="proxyCache")continue;let c=this[s];if(Array.isArray(c))i[s]=c.map(u=>typeof u=="object"&&u.toJSON?u.toJSON(null,t):u);else if(typeof c=="object"&&c.toJSON)i[s]=c.toJSON(null,t);else if(s==="source"){if(c==null)continue;let u=t.get(c.input);u==null&&(u=o,t.set(c.input,o),o++),i[s]={end:c.end,inputId:u,start:c.start}}else i[s]=c}return r&&(i.inputs=[...t.keys()].map(s=>s.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=Qo){e.stringify&&(e=e.stringify);let t="";return e(this,i=>{t+=i}),t}warn(e,t,i={}){let r={node:this};for(let o in i)r[o]=i[o];return e.warn(t,r)}};Fi.exports=ut;ut.default=ut});var ft=K((Za,bi)=>{"use strict";var Zo=ct(),dt=class extends Zo{constructor(e){super(e),this.type="comment"}};bi.exports=dt;dt.default=dt});var pt=K((Xa,Ni)=>{"use strict";var Xo=ct(),mt=class extends Xo{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(e){e&&typeof e.value<"u"&&typeof e.value!="string"&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}};Ni.exports=mt;mt.default=mt});var ve=K((eu,vi)=>{"use strict";var wi=ft(),Ci=pt(),es=ct(),{isClean:Mi,my:Di}=Lt(),mn,ki,Li,pn;function Ti(n){return n.map(e=>(e.nodes&&(e.nodes=Ti(e.nodes)),delete e.source,e))}function Ri(n){if(n[Mi]=!1,n.proxyOf.nodes)for(let e of n.proxyOf.nodes)Ri(e)}var Ce=class n extends es{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...e){for(let t of e){let i=this.normalize(t,this.last);for(let r of i)this.proxyOf.nodes.push(r)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let t=this.getIterator(),i,r;for(;this.indexes[t]<this.proxyOf.nodes.length&&(i=this.indexes[t],r=e(this.proxyOf.nodes[i],i),r!==!1);)this.indexes[t]+=1;return delete this.indexes[t],r}every(e){return this.nodes.every(e)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}getProxyProcessor(){return{get(e,t){return t==="proxyOf"?e:e[t]?t==="each"||typeof t=="string"&&t.startsWith("walk")?(...i)=>e[t](...i.map(r=>typeof r=="function"?(o,s)=>r(o.toProxy(),s):r)):t==="every"||t==="some"?i=>e[t]((r,...o)=>i(r.toProxy(),...o)):t==="root"?()=>e.root().toProxy():t==="nodes"?e.nodes.map(i=>i.toProxy()):t==="first"||t==="last"?e[t].toProxy():e[t]:e[t]},set(e,t,i){return e[t]===i||(e[t]=i,(t==="name"||t==="params"||t==="selector")&&e.markDirty()),!0}}}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,t){let i=this.index(e),r=this.normalize(t,this.proxyOf.nodes[i]).reverse();i=this.index(e);for(let s of r)this.proxyOf.nodes.splice(i+1,0,s);let o;for(let s in this.indexes)o=this.indexes[s],i<o&&(this.indexes[s]=o+r.length);return this.markDirty(),this}insertBefore(e,t){let i=this.index(e),r=i===0?"prepend":!1,o=this.normalize(t,this.proxyOf.nodes[i],r).reverse();i=this.index(e);for(let c of o)this.proxyOf.nodes.splice(i,0,c);let s;for(let c in this.indexes)s=this.indexes[c],i<=s&&(this.indexes[c]=s+o.length);return this.markDirty(),this}normalize(e,t){if(typeof e=="string")e=Ti(ki(e).nodes);else if(typeof e>"u")e=[];else if(Array.isArray(e)){e=e.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type==="root"&&this.type!=="document"){e=e.nodes.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value>"u")throw new Error("Value field is missed in node creation");typeof e.value!="string"&&(e.value=String(e.value)),e=[new Ci(e)]}else if(e.selector||e.selectors)e=[new pn(e)];else if(e.name)e=[new mn(e)];else if(e.text)e=[new wi(e)];else throw new Error("Unknown node type in node creation");return e.map(r=>(r[Di]||n.rebuild(r),r=r.proxyOf,r.parent&&r.parent.removeChild(r),r[Mi]&&Ri(r),r.raws||(r.raws={}),typeof r.raws.before>"u"&&t&&typeof t.raws.before<"u"&&(r.raws.before=t.raws.before.replace(/\\S/g,"")),r.parent=this.proxyOf,r))}prepend(...e){e=e.reverse();for(let t of e){let i=this.normalize(t,this.first,"prepend").reverse();for(let r of i)this.proxyOf.nodes.unshift(r);for(let r in this.indexes)this.indexes[r]=this.indexes[r]+i.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let t;for(let i in this.indexes)t=this.indexes[i],t>=e&&(this.indexes[i]=t-1);return this.markDirty(),this}replaceValues(e,t,i){return i||(i=t,t={}),this.walkDecls(r=>{t.props&&!t.props.includes(r.prop)||t.fast&&!r.value.includes(t.fast)||(r.value=r.value.replace(e,i))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((t,i)=>{let r;try{r=e(t,i)}catch(o){throw t.addToError(o)}return r!==!1&&t.walk&&(r=t.walk(e)),r})}walkAtRules(e,t){return t?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="atrule"&&e.test(i.name))return t(i,r)}):this.walk((i,r)=>{if(i.type==="atrule"&&i.name===e)return t(i,r)}):(t=e,this.walk((i,r)=>{if(i.type==="atrule")return t(i,r)}))}walkComments(e){return this.walk((t,i)=>{if(t.type==="comment")return e(t,i)})}walkDecls(e,t){return t?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="decl"&&e.test(i.prop))return t(i,r)}):this.walk((i,r)=>{if(i.type==="decl"&&i.prop===e)return t(i,r)}):(t=e,this.walk((i,r)=>{if(i.type==="decl")return t(i,r)}))}walkRules(e,t){return t?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="rule"&&e.test(i.selector))return t(i,r)}):this.walk((i,r)=>{if(i.type==="rule"&&i.selector===e)return t(i,r)}):(t=e,this.walk((i,r)=>{if(i.type==="rule")return t(i,r)}))}};Ce.registerParse=n=>{ki=n};Ce.registerRule=n=>{pn=n};Ce.registerAtRule=n=>{mn=n};Ce.registerRoot=n=>{Li=n};vi.exports=Ce;Ce.default=Ce;Ce.rebuild=n=>{n.type==="atrule"?Object.setPrototypeOf(n,mn.prototype):n.type==="rule"?Object.setPrototypeOf(n,pn.prototype):n.type==="decl"?Object.setPrototypeOf(n,Ci.prototype):n.type==="comment"?Object.setPrototypeOf(n,wi.prototype):n.type==="root"&&Object.setPrototypeOf(n,Li.prototype),n[Di]=!0,n.nodes&&n.nodes.forEach(e=>{Ce.rebuild(e)})}});var Tt=K((tu,Oi)=>{"use strict";var Bi=ve(),$e=class extends Bi{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};Oi.exports=$e;$e.default=$e;Bi.registerAtRule($e)});var Rt=K((nu,Ii)=>{"use strict";var ts=ve(),Pi,_i,Ue=class extends ts{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new Pi(new _i,this,e).stringify()}};Ue.registerLazyResult=n=>{Pi=n};Ue.registerProcessor=n=>{_i=n};Ii.exports=Ue;Ue.default=Ue});var Hi=K((iu,Wi)=>{var ns="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",is=(n,e=21)=>(t=e)=>{let i="",r=t|0;for(;r--;)i+=n[Math.random()*n.length|0];return i},rs=(n=21)=>{let e="",t=n|0;for(;t--;)e+=ns[Math.random()*64|0];return e};Wi.exports={nanoid:rs,customAlphabet:is}});var vt=K(()=>{});var Bt=K(()=>{});var hn=K(()=>{});var Ui=K(()=>{});var gn=K((fu,ji)=>{"use strict";var{existsSync:os,readFileSync:ss}=Ui(),{dirname:xn,join:ls}=vt(),{SourceMapConsumer:qi,SourceMapGenerator:zi}=Bt();function as(n){return Buffer?Buffer.from(n,"base64").toString():window.atob(n)}var ht=class{constructor(e,t){if(t.map===!1)return;this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let i=t.map?t.map.prev:void 0,r=this.loadMap(t.from,i);!this.mapFile&&t.from&&(this.mapFile=t.from),this.mapFile&&(this.root=xn(this.mapFile)),r&&(this.text=r)}consumer(){return this.consumerCache||(this.consumerCache=new qi(this.text)),this.consumerCache}decodeInline(e){let t=/^data:application\\/json;charset=utf-?8;base64,/,i=/^data:application\\/json;base64,/,r=/^data:application\\/json;charset=utf-?8,/,o=/^data:application\\/json,/,s=e.match(r)||e.match(o);if(s)return decodeURIComponent(e.substr(s[0].length));let c=e.match(t)||e.match(i);if(c)return as(e.substr(c[0].length));let u=e.match(/data:application\\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+u)}getAnnotationURL(e){return e.replace(/^\\/\\*\\s*# sourceMappingURL=/,"").trim()}isMap(e){return typeof e!="object"?!1:typeof e.mappings=="string"||typeof e._mappings=="string"||Array.isArray(e.sections)}loadAnnotation(e){let t=e.match(/\\/\\*\\s*# sourceMappingURL=/g);if(!t)return;let i=e.lastIndexOf(t.pop()),r=e.indexOf("*/",i);i>-1&&r>-1&&(this.annotation=this.getAnnotationURL(e.substring(i,r)))}loadFile(e){if(this.root=xn(e),os(e))return this.mapFile=e,ss(e,"utf-8").toString().trim()}loadMap(e,t){if(t===!1)return!1;if(t){if(typeof t=="string")return t;if(typeof t=="function"){let i=t(e);if(i){let r=this.loadFile(i);if(!r)throw new Error("Unable to load previous source map: "+i.toString());return r}}else{if(t instanceof qi)return zi.fromSourceMap(t).toString();if(t instanceof zi)return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let i=this.annotation;return e&&(i=ls(xn(e),i)),this.loadFile(i)}}}startWith(e,t){return e?e.substr(0,t.length)===t:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};ji.exports=ht;ht.default=ht});var xt=K((mu,Ji)=>{"use strict";var{nanoid:us}=Hi(),{isAbsolute:An,resolve:En}=vt(),{SourceMapConsumer:cs,SourceMapGenerator:ds}=Bt(),{fileURLToPath:Gi,pathToFileURL:Ot}=hn(),$i=kt(),fs=gn(),Sn=an(),yn=Symbol("lineToIndexCache"),ms=!!(cs&&ds),Vi=!!(En&&An);function Ki(n){if(n[yn])return n[yn];let e=n.css.split(`\n`),t=new Array(e.length),i=0;for(let r=0,o=e.length;r<o;r++)t[r]=i,i+=e[r].length+1;return n[yn]=t,t}var Ve=class{get from(){return this.file||this.id}constructor(e,t={}){if(e===null||typeof e>"u"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\\uFEFF"||this.css[0]==="\\uFFFE"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,t.document&&(this.document=t.document.toString()),t.from&&(!Vi||/^\\w+:\\/\\//.test(t.from)||An(t.from)?this.file=t.from:this.file=En(t.from)),Vi&&ms){let i=new fs(this.css,t);if(i.text){this.map=i;let r=i.consumer().file;!this.file&&r&&(this.file=this.mapResolve(r))}}this.file||(this.id="<input css "+us(6)+">"),this.map&&(this.map.file=this.from)}error(e,t,i,r={}){let o,s,c,u,a;if(t&&typeof t=="object"){let f=t,m=i;if(typeof f.offset=="number"){u=f.offset;let h=this.fromOffset(u);t=h.line,i=h.col}else t=f.line,i=f.column,u=this.fromLineAndColumn(t,i);if(typeof m.offset=="number"){c=m.offset;let h=this.fromOffset(c);s=h.line,o=h.col}else s=m.line,o=m.column,c=this.fromLineAndColumn(m.line,m.column)}else if(i)u=this.fromLineAndColumn(t,i);else{u=t;let f=this.fromOffset(u);t=f.line,i=f.col}let l=this.origin(t,i,s,o);return l?a=new $i(e,l.endLine===void 0?l.line:{column:l.column,line:l.line},l.endLine===void 0?l.column:{column:l.endColumn,line:l.endLine},l.source,l.file,r.plugin):a=new $i(e,s===void 0?t:{column:i,line:t},s===void 0?i:{column:o,line:s},this.css,this.file,r.plugin),a.input={column:i,endColumn:o,endLine:s,endOffset:c,line:t,offset:u,source:this.css},this.file&&(Ot&&(a.input.url=Ot(this.file).toString()),a.input.file=this.file),a}fromLineAndColumn(e,t){return Ki(this)[e-1]+t-1}fromOffset(e){let t=Ki(this),i=t[t.length-1],r=0;if(e>=i)r=t.length-1;else{let o=t.length-2,s;for(;r<o;)if(s=r+(o-r>>1),e<t[s])o=s-1;else if(e>=t[s+1])r=s+1;else{r=s;break}}return{col:e-t[r]+1,line:r+1}}mapResolve(e){return/^\\w+:\\/\\//.test(e)?e:En(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,t,i,r){if(!this.map)return!1;let o=this.map.consumer(),s=o.originalPositionFor({column:t,line:e});if(!s.source)return!1;let c;typeof i=="number"&&(c=o.originalPositionFor({column:r,line:i}));let u;An(s.source)?u=Ot(s.source):u=new URL(s.source,this.map.consumer().sourceRoot||Ot(this.map.mapFile));let a={column:s.column,endColumn:c&&c.column,endLine:c&&c.line,line:s.line,url:u.toString()};if(u.protocol==="file:")if(Gi)a.file=Gi(u);else throw new Error("file: protocol is not available in this PostCSS build");let l=o.sourceContentFor(s.source);return l&&(a.source=l),a}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])this[t]!=null&&(e[t]=this[t]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};Ji.exports=Ve;Ve.default=Ve;Sn&&Sn.registerInput&&Sn.registerInput(Ve)});var Ke=K((pu,Xi)=>{"use strict";var Qi=ve(),Yi,Zi,Be=class extends Qi{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,t,i){let r=super.normalize(e);if(t){if(i==="prepend")this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let o of r)o.raws.before=t.raws.before}return r}removeChild(e,t){let i=this.index(e);return!t&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}toResult(e={}){return new Yi(new Zi,this,e).stringify()}};Be.registerLazyResult=n=>{Yi=n};Be.registerProcessor=n=>{Zi=n};Xi.exports=Be;Be.default=Be;Qi.registerRoot(Be)});var Fn=K((hu,er)=>{"use strict";var gt={comma(n){return gt.split(n,[","],!0)},space(n){let e=[" ",`\n`," "];return gt.split(n,e)},split(n,e,t){let i=[],r="",o=!1,s=0,c=!1,u="",a=!1;for(let l of n)a?a=!1:l==="\\\\"?a=!0:c?l===u&&(c=!1):l===\'"\'||l==="\'"?(c=!0,u=l):l==="("?s+=1:l===")"?s>0&&(s-=1):s===0&&e.includes(l)&&(o=!0),o?(r!==""&&i.push(r.trim()),r="",o=!1):r+=l;return(t||r!=="")&&i.push(r.trim()),i}};er.exports=gt;gt.default=gt});var Pt=K((xu,nr)=>{"use strict";var tr=ve(),ps=Fn(),Je=class extends tr{get selectors(){return ps.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\\s*/):null,i=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}};nr.exports=Je;Je.default=Je;tr.registerRule(Je)});var rr=K((gu,ir)=>{"use strict";var hs=Tt(),xs=ft(),gs=pt(),Ss=xt(),ys=gn(),As=Ke(),Es=Pt();function St(n,e){if(Array.isArray(n))return n.map(r=>St(r));let{inputs:t,...i}=n;if(t){e=[];for(let r of t){let o={...r,__proto__:Ss.prototype};o.map&&(o.map={...o.map,__proto__:ys.prototype}),e.push(o)}}if(i.nodes&&(i.nodes=n.nodes.map(r=>St(r,e))),i.source){let{inputId:r,...o}=i.source;i.source=o,r!=null&&(i.source.input=e[r])}if(i.type==="root")return new As(i);if(i.type==="decl")return new gs(i);if(i.type==="rule")return new Es(i);if(i.type==="comment")return new xs(i);if(i.type==="atrule")return new hs(i);throw new Error("Unknown node type: "+n.type)}ir.exports=St;St.default=St});var Nn=K((Su,cr)=>{"use strict";var{dirname:_t,relative:sr,resolve:lr,sep:ar}=vt(),{SourceMapConsumer:ur,SourceMapGenerator:It}=Bt(),{pathToFileURL:or}=hn(),Fs=xt(),bs=!!(ur&&It),Ns=!!(_t&&lr&&sr&&ar),bn=class{constructor(e,t,i,r){this.stringify=e,this.mapOpts=i.map||{},this.root=t,this.opts=i,this.css=r,this.originalCSS=r,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;this.isInline()?e="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?e=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?e=this.mapOpts.annotation(this.opts.to,this.root):e=this.outputFile()+".map";let t=`\n`;this.css.includes(`\\r\n`)&&(t=`\\r\n`),this.css+=t+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let t=this.toUrl(this.path(e.file)),i=e.root||_t(e.file),r;this.mapOpts.sourcesContent===!1?(r=new ur(e.text),r.sourcesContent&&(r.sourcesContent=null)):r=e.consumer(),this.map.applySourceMap(r,t,this.toUrl(this.path(i)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let e;for(let t=this.root.nodes.length-1;t>=0;t--)e=this.root.nodes[t],e.type==="comment"&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(t)}else if(this.css){let e;for(;(e=this.css.lastIndexOf("/*#"))!==-1;){let t=this.css.indexOf("*/",e+3);if(t===-1)break;for(;e>0&&this.css[e-1]===`\n`;)e--;this.css=this.css.slice(0,e)+this.css.slice(t+2)}}}}generate(){if(this.clearAnnotation(),Ns&&bs&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,t=>{e+=t}),[e]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=It.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new It({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new It({file:this.outputFile(),ignoreInvalidMapping:!0});let e=1,t=1,i="<no source>",r={generated:{column:0,line:0},original:{column:0,line:0},source:""},o,s;this.stringify(this.root,(c,u,a)=>{if(this.css+=c,u&&a!=="end"&&(r.generated.line=e,r.generated.column=t-1,u.source&&u.source.start?(r.source=this.sourcePath(u),r.original.line=u.source.start.line,r.original.column=u.source.start.column-1,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,this.map.addMapping(r))),s=c.match(/\\n/g),s?(e+=s.length,o=c.lastIndexOf(`\n`),t=c.length-o):t+=c.length,u&&a!=="start"){let l=u.parent||{raws:{}};(!(u.type==="decl"||u.type==="atrule"&&!u.nodes)||u!==l.last||l.raws.semicolon)&&(u.source&&u.source.end?(r.source=this.sourcePath(u),r.original.line=u.source.end.line,r.original.column=u.source.end.column-1,r.generated.line=e,r.generated.column=t-2,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,r.generated.line=e,r.generated.column=t-1,this.map.addMapping(r)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(e=>e.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let e=this.mapOpts.annotation;return typeof e<"u"&&e!==!0?!1:this.previous().length?this.previous().some(t=>t.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(e=>e.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||e.charCodeAt(0)===60||/^\\w+:\\/\\//.test(e))return e;let t=this.memoizedPaths.get(e);if(t)return t;let i=this.opts.to?_t(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(i=_t(lr(i,this.mapOpts.annotation)));let r=sr(i,e);return this.memoizedPaths.set(e,r),r}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let t=e.source.input.map;this.previousMaps.includes(t)||this.previousMaps.push(t)}});else{let e=new Fs(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(t=>{if(t.source){let i=t.source.input.from;if(i&&!e[i]){e[i]=!0;let r=this.usesFileUrls?this.toFileUrl(i):this.toUrl(this.path(i));this.map.setSourceContent(r,t.source.input.css)}}});else if(this.css){let t=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(t,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let t=this.memoizedFileURLs.get(e);if(t)return t;if(or){let i=or(e).toString();return this.memoizedFileURLs.set(e,i),i}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let t=this.memoizedURLs.get(e);if(t)return t;ar==="\\\\"&&(e=e.replace(/\\\\/g,"/"));let i=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,i),i}};cr.exports=bn});var mr=K((yu,fr)=>{"use strict";var Wt=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,Ht=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,ws=/.[\\r\\n"\'(/\\\\]/,dr=/[\\da-f]/i;fr.exports=function(e,t={}){let i=e.css.valueOf(),r=t.ignoreErrors,o,s,c,u,a,l,f,m,h,M,C=i.length,A=0,z=[],P=[];function k(){return A}function Y(F){throw e.error("Unclosed "+F,A)}function y(){return P.length===0&&A>=C}function p(F){if(P.length)return P.pop();if(A>=C)return;let b=F?F.ignoreUnclosed:!1;switch(o=i.charCodeAt(A),o){case 10:case 32:case 9:case 13:case 12:{u=A;do u+=1,o=i.charCodeAt(u);while(o===32||o===10||o===9||o===13||o===12);l=["space",i.slice(A,u)],A=u-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let N=String.fromCharCode(o);l=[N,N,A];break}case 40:{if(M=z.length?z.pop()[1]:"",h=i.charCodeAt(A+1),M==="url"&&h!==39&&h!==34&&h!==32&&h!==10&&h!==9&&h!==12&&h!==13){u=A;do{if(f=!1,u=i.indexOf(")",u+1),u===-1)if(r||b){u=A;break}else Y("bracket");for(m=u;i.charCodeAt(m-1)===92;)m-=1,f=!f}while(f);l=["brackets",i.slice(A,u+1),A,u],A=u}else u=i.indexOf(")",A+1),s=i.slice(A,u+1),u===-1||ws.test(s)?l=["(","(",A]:(l=["brackets",s,A,u],A=u);break}case 39:case 34:{a=o===39?"\'":\'"\',u=A;do{if(f=!1,u=i.indexOf(a,u+1),u===-1)if(r||b){u=A+1;break}else Y("string");for(m=u;i.charCodeAt(m-1)===92;)m-=1,f=!f}while(f);l=["string",i.slice(A,u+1),A,u],A=u;break}case 64:{Wt.lastIndex=A+1,Wt.test(i),Wt.lastIndex===0?u=i.length-1:u=Wt.lastIndex-2,l=["at-word",i.slice(A,u+1),A,u],A=u;break}case 92:{for(u=A,c=!0;i.charCodeAt(u+1)===92;)u+=1,c=!c;if(o=i.charCodeAt(u+1),c&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(u+=1,dr.test(i.charAt(u)))){for(;dr.test(i.charAt(u+1));)u+=1;i.charCodeAt(u+1)===32&&(u+=1)}l=["word",i.slice(A,u+1),A,u],A=u;break}default:{o===47&&i.charCodeAt(A+1)===42?(u=i.indexOf("*/",A+2)+1,u===0&&(r||b?u=i.length:Y("comment")),l=["comment",i.slice(A,u+1),A,u],A=u):(Ht.lastIndex=A+1,Ht.test(i),Ht.lastIndex===0?u=i.length-1:u=Ht.lastIndex-2,l=["word",i.slice(A,u+1),A,u],z.push(l),A=u);break}}return A++,l}function S(F){P.push(F)}return{back:S,endOfFile:y,nextToken:p,position:k}}});var gr=K((Au,xr)=>{"use strict";var Cs=Tt(),Ms=ft(),Ds=pt(),ks=Ke(),pr=Pt(),Ls=mr(),hr={empty:!0,space:!0};function Ts(n){for(let e=n.length-1;e>=0;e--){let t=n[e],i=t[3]||t[2];if(i)return i}}var wn=class{constructor(e){this.input=e,this.root=new ks,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let t=new Cs;t.name=e[1].slice(1),t.name===""&&this.unnamedAtrule(t,e),this.init(t,e[2]);let i,r,o,s=!1,c=!1,u=[],a=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?a.push(i==="("?")":"]"):i==="{"&&a.length>0?a.push("}"):i===a[a.length-1]&&a.pop(),a.length===0)if(i===";"){t.source.end=this.getPosition(e[2]),t.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){c=!0;break}else if(i==="}"){if(u.length>0){for(o=u.length-1,r=u[o];r&&r[0]==="space";)r=u[--o];r&&(t.source.end=this.getPosition(r[3]||r[2]),t.source.end.offset++)}this.end(e);break}else u.push(e);else u.push(e);if(this.tokenizer.endOfFile()){s=!0;break}}t.raws.between=this.spacesAndCommentsFromEnd(u),u.length?(t.raws.afterName=this.spacesAndCommentsFromStart(u),this.raw(t,"params",u),s&&(e=u[u.length-1],t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++,this.spaces=t.raws.between,t.raws.between="")):(t.raws.afterName="",t.params=""),c&&(t.nodes=[],this.current=t)}checkMissedSemicolon(e){let t=this.colon(e);if(t===!1)return;let i=0,r;for(let o=t-1;o>=0&&(r=e[o],!(r[0]!=="space"&&(i+=1,i===2)));o--);throw this.input.error("Missed semicolon",r[0]==="word"?r[3]+1:r[2])}colon(e){let t=0,i,r,o;for(let[s,c]of e.entries()){if(r=c,o=r[0],o==="("&&(t+=1),o===")"&&(t-=1),t===0&&o===":")if(!i)this.doubleColon(r);else{if(i[0]==="word"&&i[1]==="progid")continue;return s}i=r}return!1}comment(e){let t=new Ms;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++;let i=e[1].slice(2,-2);if(!i.trim())t.text="",t.raws.left=i,t.raws.right="";else{let r=i.match(/^(\\s*)([^]*\\S)(\\s*)$/);t.text=r[2],t.raws.left=r[1],t.raws.right=r[3]}}createTokenizer(){this.tokenizer=Ls(this.input)}decl(e,t){let i=new Ds;this.init(i,e[0][2]);let r=e[e.length-1];for(r[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(r[3]||r[2]||Ts(e)),i.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let a=e[0][0];if(a===":"||a==="space"||a==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let o;for(;e.length;)if(o=e.shift(),o[0]===":"){i.raws.between+=o[1];break}else o[0]==="word"&&/\\w/.test(o[1])&&this.unknownWord([o]),i.raws.between+=o[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let s=[],c;for(;e.length&&(c=e[0][0],!(c!=="space"&&c!=="comment"));)s.push(e.shift());this.precheckMissedSemicolon(e);for(let a=e.length-1;a>=0;a--){if(o=e[a],o[1].toLowerCase()==="!important"){i.important=!0;let l=this.stringFrom(e,a);l=this.spacesFromEnd(e)+l,l!==" !important"&&(i.raws.important=l);break}else if(o[1].toLowerCase()==="important"){let l=e.slice(0),f="";for(let m=a;m>0;m--){let h=l[m][0];if(f.trim().startsWith("!")&&h!=="space")break;f=l.pop()[1]+f}f.trim().startsWith("!")&&(i.important=!0,i.raws.important=f,e=l)}if(o[0]!=="space"&&o[0]!=="comment")break}e.some(a=>a[0]!=="space"&&a[0]!=="comment")&&(i.raws.between+=s.map(a=>a[1]).join(""),s=[]),this.raw(i,"value",s.concat(e),t),i.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let t=new pr;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let t=this.current.nodes[this.current.nodes.length-1];t&&t.type==="rule"&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="",t.source.end=this.getPosition(e[2]),t.source.end.offset+=t.raws.ownSemicolon.length)}}getPosition(e){let t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}}init(e,t){this.current.push(e),e.source={input:this.input,start:this.getPosition(t)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let t=!1,i=null,r=!1,o=null,s=[],c=e[1].startsWith("--"),u=[],a=e;for(;a;){if(i=a[0],u.push(a),i==="("||i==="[")o||(o=a),s.push(i==="("?")":"]");else if(c&&r&&i==="{")o||(o=a),s.push("}");else if(s.length===0)if(i===";")if(r){this.decl(u,c);return}else break;else if(i==="{"){this.rule(u);return}else if(i==="}"){this.tokenizer.back(u.pop()),t=!0;break}else i===":"&&(r=!0);else i===s[s.length-1]&&(s.pop(),s.length===0&&(o=null));a=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),s.length>0&&this.unclosedBracket(o),t&&r){if(!c)for(;u.length&&(a=u[u.length-1][0],!(a!=="space"&&a!=="comment"));)this.tokenizer.back(u.pop());this.decl(u,c)}else this.unknownWord(u)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,t,i,r){let o,s,c=i.length,u="",a=!0,l,f;for(let m=0;m<c;m+=1)o=i[m],s=o[0],s==="space"&&m===c-1&&!r?a=!1:s==="comment"?(f=i[m-1]?i[m-1][0]:"empty",l=i[m+1]?i[m+1][0]:"empty",!hr[f]&&!hr[l]?u.slice(-1)===","?a=!1:u+=o[1]:a=!1):u+=o[1];if(!a){let m=i.reduce((h,M)=>h+M[1],"");e.raws[t]={raw:m,value:u}}e[t]=u}rule(e){e.pop();let t=new pr;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}spacesAndCommentsFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],!(t!=="space"&&t!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let t,i="";for(;e.length&&(t=e[0][0],!(t!=="space"&&t!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],t==="space");)i=e.pop()[1]+i;return i}stringFrom(e,t){let i="";for(let r=t;r<e.length;r++)i+=e[r][1];return e.splice(t,e.length-t),i}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word "+e[0][1],{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,t){throw this.input.error("At-rule without name",{offset:t[2]},{offset:t[2]+t[1].length})}};xr.exports=wn});var qt=K((Eu,Sr)=>{"use strict";var Rs=ve(),vs=xt(),Bs=gr();function Ut(n,e){let t=new vs(n,e),i=new Bs(t);try{i.parse()}catch(r){throw r}return i.root}Sr.exports=Ut;Ut.default=Ut;Rs.registerParse(Ut)});var Cn=K((Fu,yr)=>{"use strict";var yt=class{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let i=t.node.rangeBy(t);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in t)this[i]=t[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};yr.exports=yt;yt.default=yt});var zt=K((bu,Ar)=>{"use strict";var Os=Cn(),At=class{get content(){return this.css}constructor(e,t,i){this.processor=e,this.messages=[],this.root=t,this.opts=i,this.css="",this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let i=new Os(e,t);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}};Ar.exports=At;At.default=At});var Mn=K((Nu,Fr)=>{"use strict";var Er={};Fr.exports=function(e){Er[e]||(Er[e]=!0,typeof console<"u"&&console.warn&&console.warn(e))}});var Ln=K((Cu,Cr)=>{"use strict";var Ps=ve(),_s=Rt(),Is=Nn(),Ws=qt(),br=zt(),Hs=Ke(),Us=lt(),{isClean:De,my:qs}=Lt(),wu=Mn(),zs={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},js={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},Gs={Once:!0,postcssPlugin:!0,prepare:!0},Qe=0;function Et(n){return typeof n=="object"&&typeof n.then=="function"}function wr(n){let e=!1,t=zs[n.type];return n.type==="decl"?e=n.prop.toLowerCase():n.type==="atrule"&&(e=n.name.toLowerCase()),e&&n.append?[t,t+"-"+e,Qe,t+"Exit",t+"Exit-"+e]:e?[t,t+"-"+e,t+"Exit",t+"Exit-"+e]:n.append?[t,Qe,t+"Exit"]:[t,t+"Exit"]}function Nr(n){let e;return n.type==="document"?e=["Document",Qe,"DocumentExit"]:n.type==="root"?e=["Root",Qe,"RootExit"]:e=wr(n),{eventIndex:0,events:e,iterator:0,node:n,visitorIndex:0,visitors:[]}}function Dn(n){return n[De]=!1,n.nodes&&n.nodes.forEach(e=>Dn(e)),n}var kn={},Oe=class n{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(e,t,i){this.stringified=!1,this.processed=!1;let r;if(typeof t=="object"&&t!==null&&(t.type==="root"||t.type==="document"))r=Dn(t);else if(t instanceof n||t instanceof br)r=Dn(t.root),t.map&&(typeof i.map>"u"&&(i.map={}),i.map.inline||(i.map.inline=!1),i.map.prev=t.map);else{let o=Ws;i.syntax&&(o=i.syntax.parse),i.parser&&(o=i.parser),o.parse&&(o=o.parse);try{r=o(t,i)}catch(s){this.processed=!0,this.error=s}r&&!r[qs]&&Ps.rebuild(r)}this.result=new br(e,r,i),this.helpers={...kn,postcss:kn,result:this.result},this.plugins=this.processor.plugins.map(o=>typeof o=="object"&&o.prepare?{...o,...o.prepare(this.result)}:o)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let i=this.result.lastPlugin;try{t&&t.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=i.postcssPlugin,e.setMessage()):i.postcssVersion}catch(r){console&&console.error&&console.error(r)}return e}prepareVisitors(){this.listeners={};let e=(t,i,r)=>{this.listeners[i]||(this.listeners[i]=[]),this.listeners[i].push([t,r])};for(let t of this.plugins)if(typeof t=="object")for(let i in t){if(!js[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!Gs[i])if(typeof t[i]=="object")for(let r in t[i])r==="*"?e(t,i,t[i][r]):e(t,i+"-"+r.toLowerCase(),t[i][r]);else typeof t[i]=="function"&&e(t,i,t[i])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e<this.plugins.length;e++){let t=this.plugins[e],i=this.runOnRoot(t);if(Et(i))try{await i}catch(r){throw this.handleError(r)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[De];){e[De]=!0;let t=[Nr(e)];for(;t.length>0;){let i=this.visitTick(t);if(Et(i))try{await i}catch(r){let o=t[t.length-1].node;throw this.handleError(r,o)}}}if(this.listeners.OnceExit)for(let[t,i]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if(e.type==="document"){let r=e.nodes.map(o=>i(o,this.helpers));await Promise.all(r)}else await i(e,this.helpers)}catch(r){throw this.handleError(r)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let t=this.result.root.nodes.map(i=>e.Once(i,this.helpers));return Et(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(this.result.root,this.result)}catch(t){throw this.handleError(t)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=Us;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let r=new Is(t,this.result.root,this.result.opts).generate();return this.result.css=r[0],this.result.map=r[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let t=this.runOnRoot(e);if(Et(t))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[De];)e[De]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,t){return this.async().then(e,t)}toString(){return this.css}visitSync(e,t){for(let[i,r]of e){this.result.lastPlugin=i;let o;try{o=r(t,this.helpers)}catch(s){throw this.handleError(s,t.proxyOf)}if(t.type!=="root"&&t.type!=="document"&&!t.parent)return!0;if(Et(o))throw this.getAsyncError()}}visitTick(e){let t=e[e.length-1],{node:i,visitors:r}=t;if(i.type!=="root"&&i.type!=="document"&&!i.parent){e.pop();return}if(r.length>0&&t.visitorIndex<r.length){let[s,c]=r[t.visitorIndex];t.visitorIndex+=1,t.visitorIndex===r.length&&(t.visitors=[],t.visitorIndex=0),this.result.lastPlugin=s;try{return c(i.toProxy(),this.helpers)}catch(u){throw this.handleError(u,i)}}if(t.iterator!==0){let s=t.iterator,c;for(;c=i.nodes[i.indexes[s]];)if(i.indexes[s]+=1,!c[De]){c[De]=!0,e.push(Nr(c));return}t.iterator=0,delete i.indexes[s]}let o=t.events;for(;t.eventIndex<o.length;){let s=o[t.eventIndex];if(t.eventIndex+=1,s===Qe){i.nodes&&i.nodes.length&&(i[De]=!0,t.iterator=i.getIterator());return}else if(this.listeners[s]){t.visitors=this.listeners[s];return}}e.pop()}walkSync(e){e[De]=!0;let t=wr(e);for(let i of t)if(i===Qe)e.nodes&&e.each(r=>{r[De]||this.walkSync(r)});else{let r=this.listeners[i];if(r&&this.visitSync(r,e.toProxy()))return}}warnings(){return this.sync().warnings()}};Oe.registerPostcss=n=>{kn=n};Cr.exports=Oe;Oe.default=Oe;Hs.registerLazyResult(Oe);_s.registerLazyResult(Oe)});var Dr=K((Du,Mr)=>{"use strict";var $s=Nn(),Vs=qt(),Ks=zt(),Js=lt(),Mu=Mn(),Ft=class{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,t=Vs;try{e=t(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(e,t,i){t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=i,this._map=void 0;let r=Js;this.result=new Ks(this._processor,void 0,this._opts),this.result.css=t;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let s=new $s(r,void 0,this._opts,t);if(s.isMap()){let[c,u]=s.generate();c&&(this.result.css=c),u&&(this.result.map=u)}else s.clearAnnotation(),this.result.css=s.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,t){return this.async().then(e,t)}toString(){return this._css}warnings(){return[]}};Mr.exports=Ft;Ft.default=Ft});var Lr=K((ku,kr)=>{"use strict";var Qs=Rt(),Ys=Ln(),Zs=Dr(),Xs=Ke(),qe=class{constructor(e=[]){this.version="8.5.8",this.plugins=this.normalize(e)}normalize(e){let t=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))t=t.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)t.push(i);else if(typeof i=="function")t.push(i);else if(!(typeof i=="object"&&(i.parse||i.stringify)))throw new Error(i+" is not a PostCSS plugin");return t}process(e,t={}){return!this.plugins.length&&!t.parser&&!t.stringifier&&!t.syntax?new Zs(this,e,t):new Ys(this,e,t)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};kr.exports=qe;qe.default=qe;Xs.registerProcessor(qe);Qs.registerProcessor(qe)});var Ir=K((Lu,_r)=>{"use strict";var Tr=Tt(),Rr=ft(),el=ve(),tl=kt(),vr=pt(),Br=Rt(),nl=rr(),il=xt(),rl=Ln(),ol=Fn(),sl=ct(),ll=qt(),Tn=Lr(),al=zt(),Or=Ke(),Pr=Pt(),ul=lt(),cl=Cn();function te(...n){return n.length===1&&Array.isArray(n[0])&&(n=n[0]),new Tn(n)}te.plugin=function(e,t){let i=!1;function r(...s){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(e+`: \\u91CC\\u9762 postcss.plugin \\u88AB\\u5F03\\u7528. \\u8FC1\\u79FB\\u6307\\u5357:\nhttps://www.w3ctech.com/topic/2226`));let c=t(...s);return c.postcssPlugin=e,c.postcssVersion=new Tn().version,c}let o;return Object.defineProperty(r,"postcss",{get(){return o||(o=r()),o}}),r.process=function(s,c,u){return te([r(u)]).process(s,c)},r};te.stringify=ul;te.parse=ll;te.fromJSON=nl;te.list=ol;te.comment=n=>new Rr(n);te.atRule=n=>new Tr(n);te.decl=n=>new vr(n);te.rule=n=>new Pr(n);te.root=n=>new Or(n);te.document=n=>new Br(n);te.CssSyntaxError=tl;te.Declaration=vr;te.Container=el;te.Processor=Tn;te.Document=Br;te.Comment=Rr;te.Warning=cl;te.AtRule=Tr;te.Result=al;te.Input=il;te.Rule=Pr;te.Root=Or;te.Node=sl;rl.registerPostcss(te);_r.exports=te;te.default=te});function ge(n){try{window.parent.postMessage(n,"*")}catch{}}function Qn(n){let e=t=>{let i=t.data;if(!i||i.source!=="hf-parent"||i.type!=="control")return;let r=i.action;if(r==="play"){n.onPlay();return}if(r==="pause"){n.onPause();return}if(r==="seek"){n.onSeek(Number(i.frame??0),i.seekMode??"commit");return}if(r==="set-muted"){n.onSetMuted(!!i.muted);return}if(r==="set-media-output-muted"){n.onSetMediaOutputMuted(!!i.muted);return}if(r==="set-playback-rate"){n.onSetPlaybackRate(Number(i.playbackRate??1));return}if(r==="enable-pick-mode"){n.onEnablePickMode();return}if(r==="disable-pick-mode"){n.onDisablePickMode();return}if(r==="flash-elements"){let o=i.selectors,s=i.duration||800;o&&To(o,s)}};return window.addEventListener("message",e),e}function To(n,e){if(!document.getElementById("__hf-flash-styles")){let t=document.createElement("style");t.id="__hf-flash-styles",t.textContent=`\n .__hf-flash {\n outline: 2px solid rgba(59, 130, 246, 0.6) !important;\n outline-offset: 2px !important;\n animation: __hf-flash-pulse ${e}ms ease-out forwards !important;\n }\n @keyframes __hf-flash-pulse {\n 0% { outline-color: rgba(59, 130, 246, 0.8); }\n 100% { outline-color: transparent; }\n }\n `,document.head.appendChild(t)}for(let t of n)try{document.querySelectorAll(t).forEach(r=>{r.classList.add("__hf-flash"),setTimeout(()=>r.classList.remove("__hf-flash"),e)})}catch{}}var tn=null;function Yn(n){tn=n}function nt(n,e){if(tn)try{tn({source:"hf-preview",type:"analytics",event:n,properties:e??{}})}catch{}}function Zn(n){let e=[],t=c=>{if(typeof c.getAnimations!="function")return[];try{return c.getAnimations()}catch{return[]}},i=(c,u)=>{for(let a of c){try{a.currentTime=u}catch{}try{a.pause()}catch{}}},r=c=>{for(let u of c)try{u.play()}catch{}},o=c=>{for(let u of c)try{u.pause()}catch{}},s=c=>{c.baseDelay?c.el.style.animationDelay=c.baseDelay:c.el.style.removeProperty("animation-delay"),c.basePlayState?c.el.style.animationPlayState=c.basePlayState:c.el.style.removeProperty("animation-play-state")};return{name:"css",discover:()=>{e=[];let c=document.querySelectorAll("*");for(let u of c){if(!(u instanceof HTMLElement))continue;let a=window.getComputedStyle(u);!a.animationName||a.animationName==="none"||e.push({el:u,baseDelay:u.style.animationDelay||"",basePlayState:u.style.animationPlayState||""})}},seek:c=>{let u=Number(c.time)||0;for(let a of e){if(!a.el.isConnected)continue;let l=n?.resolveStartSeconds?n.resolveStartSeconds(a.el):Number.parseFloat(a.el.getAttribute("data-start")??"0")||0,f=Math.max(0,u-l)*1e3,m=t(a.el);if(m.length>0){i(m,f);continue}a.el.style.animationPlayState="paused",a.el.style.animationDelay=`-${(f/1e3).toFixed(3)}s`}},pause:()=>{for(let c of e){if(!c.el.isConnected)continue;let u=t(c.el);u.length>0&&o(u),s(c)}},play:()=>{for(let c of e)c.el.isConnected&&(s(c),r(t(c.el)))},revert:()=>{e=[]}}}function Xn(n){return{name:"gsap",discover:()=>{},seek:e=>{let t=n.getTimeline();if(!t)return;t.pause();let i=Math.max(0,Number(e.time)||0);typeof t.totalTime=="function"?t.totalTime(i,!1):t.seek(i,!1)},pause:()=>{let e=n.getTimeline();e&&e.pause()}}}function ni(){return{name:"lottie",discover:()=>{try{let n=window.lottie;if(n&&typeof n.getRegisteredAnimations=="function"){let e=n.getRegisteredAnimations();if(Array.isArray(e)&&e.length>0){let t=window.__hfLottie??[],i=new Set(t);for(let r of e)i.has(r)||t.push(r);window.__hfLottie=t}}}catch{}},seek:n=>{let e=Math.max(0,Number(n.time)||0),t=window.__hfLottie;if(!(!t||t.length===0))for(let i of t)try{if(ei(i))i.goToAndStop(e*1e3,!1);else if(ti(i)){if(typeof i.setCurrentRawFrameValue=="function"){let r=i.totalFrames??0,o=i.frameRate??30,s=e*o;r>0&&i.setCurrentRawFrameValue(Math.min(s,r-1))}else if(typeof i.seek=="function"){let r=i.duration??1,o=Math.min(100,e/r*100);i.seek(o)}}}catch{}},pause:()=>{let n=window.__hfLottie;if(!(!n||n.length===0))for(let e of n)try{(ei(e)||ti(e))&&e.pause()}catch{}},revert:()=>{}}}function ei(n){return typeof n=="object"&&n!==null&&typeof n.goToAndStop=="function"}function ti(n){return typeof n=="object"&&n!==null&&typeof n.pause=="function"&&("totalFrames"in n||"duration"in n)}function ii(){let n=null,e=0;return{name:"three",discover:()=>{},seek:t=>{n=Math.max(0,Number(t.time)||0),e=n,window.__hfThreeTime=n;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:n}}))}catch{}},pause:()=>{n==null&&(n=Math.max(0,e))},play:()=>{n=null},revert:()=>{n=null,e=0}}}function ri(){return{name:"waapi",discover:()=>{},seek:n=>{if(!document.getAnimations)return;let e=Math.max(0,(Number(n.time)||0)*1e3);for(let t of document.getAnimations()){try{t.currentTime=e}catch{}try{t.pause()}catch{}}},pause:()=>{if(document.getAnimations)for(let n of document.getAnimations())try{n.pause()}catch{}}}}function oi(n){let e=Array.from(document.querySelectorAll("video, audio")),t=n?.shouldIncludeElement?e.filter(s=>n.shouldIncludeElement?.(s)):e.filter(s=>s.hasAttribute("data-start")),i=[],r=[],o=0;for(let s of t){let c=n?.resolveStartSeconds?n.resolveStartSeconds(s):Number.parseFloat(s.dataset.start??"0");if(!Number.isFinite(c))continue;let u=Number.parseFloat(s.dataset.playbackStart??s.dataset.mediaStart??"0")||0,a=s.defaultPlaybackRate,l=Number.isFinite(a)&&a>0?Math.max(.1,Math.min(5,a)):1,f=s.loop,m=Number.isFinite(s.duration)&&s.duration>0?s.duration:null,h=n?.resolveDurationSeconds?.(s)??Number.parseFloat(s.dataset.duration??"");(!Number.isFinite(h)||h<=0)&&m!=null&&(h=Math.max(0,(m-u)/l));let M=Number.isFinite(h)&&h>0?c+h:Number.POSITIVE_INFINITY,C=Number.parseFloat(s.dataset.volume??""),A={el:s,start:c,mediaStart:u,duration:Number.isFinite(h)&&h>0?h:Number.POSITIVE_INFINITY,end:M,volume:Number.isFinite(C)?C:null,playbackRate:l,loop:f,sourceDuration:m};i.push(A),s.tagName==="VIDEO"&&r.push(A),Number.isFinite(M)&&(o=Math.max(o,M))}return{timedMediaEls:t,mediaClips:i,videoClips:r,maxMediaEnd:o}}var nn=new WeakMap,it=new WeakSet;function Ro(n){if(it.has(n))return;it.add(n);let e=()=>it.delete(n);n.addEventListener("playing",e,{once:!0}),n.addEventListener("pause",e,{once:!0}),n.addEventListener("error",e,{once:!0})}function si(n){let e=!!(n.outputMuted||n.userMuted);for(let t of n.clips){let{el:i}=t;if(!i.isConnected)continue;let r=(n.timeSeconds-t.start)*t.playbackRate+t.mediaStart;if(n.timeSeconds>=t.start&&n.timeSeconds<t.end&&r>=0){if(t.loop&&t.sourceDuration!=null&&t.sourceDuration>0){let h=t.sourceDuration-t.mediaStart;h>0&&r>=t.sourceDuration&&(r=t.mediaStart+(r-t.mediaStart)%h)}t.volume!=null&&(i.volume=t.volume),e&&(i.muted=!0);try{i.playbackRate=t.playbackRate*n.playbackRate}catch{}let s=i.currentTime||0,c=Math.abs(s-r),u=r-s,a=nn.get(i);nn.set(i,u);let l=a===void 0,f=!l&&Math.abs(u-a)>.5,m=c>3;if(c>.5&&(l||f||m))try{i.currentTime=r}catch{}n.playing&&i.paused&&!it.has(i)?(i.preload!=="auto"&&(i.preload="auto"),Ro(i),i.play().catch(h=>{it.delete(i),(h&&typeof h=="object"&&"name"in h?String(h.name??""):"")==="NotAllowedError"&&n.onAutoplayBlocked?.()})):!n.playing&&!i.paused&&i.pause();continue}nn.delete(i),i.paused||i.pause()}}function li(n){let e=!1,t=null,i=null,r=null,o=null;function s(y,p){try{window.dispatchEvent(new CustomEvent(y,{detail:p}))}catch{}}function c(y){r=y,s("hyperframe:picker:hovered",{elementInfo:r,isPickMode:e,timestamp:Date.now()})}function u(y){o=y,s("hyperframe:picker:selected",{elementInfo:o,isPickMode:e,timestamp:Date.now()})}function a(y){if(!y||y===document.body||y===document.documentElement)return!1;let p=y.tagName.toLowerCase();return!(p==="script"||p==="style"||p==="link"||p==="meta"||y.classList.contains("__hf-pick-highlight"))}function l(y){let p=y;if(p.id)return`#${p.id}`;let S=y.getAttribute("data-composition-id");if(S)return`[data-composition-id="${S}"]`;let F=y.getAttribute("data-composition-src");if(F)return`[data-composition-src="${F}"]`;let b=y.getAttribute("data-track-index");if(b)return`[data-track-index="${b}"]`;let N=y.tagName.toLowerCase(),v=y.parentElement;if(!v)return N;let W=v.querySelectorAll(`:scope > ${N}`);if(W.length===1)return N;for(let H=0;H<W.length;H+=1)if(W[H]===y)return`${N}:nth-of-type(${H+1})`;return N}function f(y){let p=y.tagName.toLowerCase(),S=(y.textContent??"").trim().replace(/\\s+/g," "),F=(b,N)=>b.length>N?`${b.slice(0,N-1)}\\u2026`:b;return p==="h1"||p==="h2"||p==="h3"?"Heading":p==="p"||p==="span"||p==="div"?S.length>0?F(S,56):"Text":p==="img"?"Image":p==="video"?"Video":p==="audio"?"Audio":p==="svg"?"Shape":y.getAttribute("data-composition-src")?"Composition":p==="section"?"Section":`${p.charAt(0).toUpperCase()}${p.slice(1)}`}function m(y,p,S){let F=typeof S=="number"&&S>0?S:8,b=[];if(document.elementsFromPoint)b=document.elementsFromPoint(y,p);else if(document.elementFromPoint){let W=document.elementFromPoint(y,p);b=W?[W]:[]}let N={},v=[];for(let W=0;W<b.length;W+=1){let H=b[W];if(!a(H))continue;let X=`${H.tagName}::${H.id||""}::${W}`;if(!N[X]&&(N[X]=!0,v.push(H),v.length>=F))break}return v}function h(y){let p=y.getBoundingClientRect(),S={};for(let b=0;b<y.attributes.length;b+=1){let N=y.attributes[b];N.name.startsWith("data-")&&(S[N.name]=N.value)}return{id:y.id||null,tagName:y.tagName.toLowerCase(),selector:l(y),label:f(y),boundingBox:{x:p.left,y:p.top,width:p.width,height:p.height},textContent:y.textContent?y.textContent.trim().slice(0,200):null,src:y.getAttribute("src")||y.getAttribute("data-composition-src")||null,dataAttributes:S}}function M(y,p,S){return m(y,p,S).map(h)}function C(y){if(!e)return;let S=m(y.clientX,y.clientY,1)[0]??(y.target instanceof Element?y.target:null);if(!a(S)||t===S)return;t&&t.classList.remove("__hf-pick-highlight"),t=S,S.classList.add("__hf-pick-highlight");let F=h(S);c(F),n.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:F})}function A(y){if(!e)return;y.preventDefault(),y.stopPropagation(),y.stopImmediatePropagation();let p=M(y.clientX,y.clientY,8);p.length!==0&&(c(p[0]??null),n.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:p,selectedIndex:0,point:{x:y.clientX,y:y.clientY}}))}function z(y){y.key==="Escape"&&(k(),n.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function P(){e||(e=!0,i=document.createElement("style"),i.textContent=[".__hf-pick-highlight { outline: 2px solid #4f8cf7 !important; outline-offset: 2px; cursor: crosshair !important; }",".__hf-pick-active * { cursor: crosshair !important; }"].join(`\n`),document.head.appendChild(i),document.body.classList.add("__hf-pick-active"),document.addEventListener("mousemove",C,!0),document.addEventListener("click",A,!0),document.addEventListener("keydown",z,!0),s("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function k(){e&&(e=!1,t&&(t.classList.remove("__hf-pick-highlight"),t=null),i&&(i.remove(),i=null),document.body.classList.remove("__hf-pick-active"),document.removeEventListener("mousemove",C,!0),document.removeEventListener("click",A,!0),document.removeEventListener("keydown",z,!0),s("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function Y(){window.__HF_PICKER_API={enable:P,disable:k,isActive:()=>e,getHovered:()=>r,getSelected:()=>o,getCandidatesAtPoint:(y,p,S)=>Number.isFinite(y)&&Number.isFinite(p)?M(y,p,S):[],pickAtPoint:(y,p,S)=>{if(!Number.isFinite(y)||!Number.isFinite(p))return null;let F=M(y,p,8);if(!F.length)return null;let b=Math.max(0,Math.min(F.length-1,Number(S??0))),N=F[b]??null;return N?(u(N),n.postMessage({source:"hf-preview",type:"element-picked",elementInfo:N}),k(),N):null},pickManyAtPoint:(y,p,S)=>{if(!Number.isFinite(y)||!Number.isFinite(p))return[];let F=M(y,p,8);if(!F.length)return[];let b=[],N=Array.isArray(S)?S:[0];for(let v of N){let W=Math.max(0,Math.min(F.length-1,Math.floor(Number(v)))),H=F[W];if(!H)continue;b.some(T=>T.selector===H.selector&&T.tagName===H.tagName)||b.push(H)}return b.length?(u(b[0]??null),n.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:b}),k(),b):[]}},s("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:P,disablePickMode:k,installPickerApi:Y}}function rn(n,e){let t=Number.isFinite(e)&&e>0?e:30,i=Number.isFinite(n)&&n>0?n:0;return Math.floor(i*t+1e-9)/t}function Dt(n,e,t){if(n){for(let i of Object.values(n))if(!(!i||i===e))try{t(i)}catch{}}}function ai(n,e,t){let i=rn(e,t);return n.pause(),typeof n.totalTime=="function"?n.totalTime(i,!1):n.seek(i,!1),i}function vo(n,e,t,i){let r=[];Dt(n,e,o=>{o.play(),r.push(o)});try{return ai(e,t,i)}finally{for(let o of r)try{o.pause()}catch{}}}function Bo(n,e){Dt(n,e,t=>{t.play()})}function ui(n){return{_timeline:null,play:()=>{let e=n.getTimeline();if(!e||n.getIsPlaying())return;let t=Math.max(0,Number(n.getSafeDuration?.()??e.duration()??0)||0);t>0&&Math.max(0,Number(e.time())||0)>=t&&(e.pause(),e.seek(0,!1),n.onDeterministicSeek(0),n.setIsPlaying(!1),n.onSyncMedia(0,!1),n.onRenderFrameSeek(0)),typeof e.timeScale=="function"&&e.timeScale(n.getPlaybackRate()),e.play(),Dt(n.getTimelineRegistry?.(),e,i=>{typeof i.timeScale=="function"&&i.timeScale(n.getPlaybackRate()),i.play()}),n.onDeterministicPlay(),n.setIsPlaying(!0),n.onShowNativeVideos(),n.onStatePost(!0)},pause:()=>{let e=n.getTimeline();if(!e)return;e.pause(),Dt(n.getTimelineRegistry?.(),e,i=>{i.pause()});let t=Math.max(0,Number(e.time())||0);n.onDeterministicSeek(t),n.onDeterministicPause(),n.setIsPlaying(!1),n.onSyncMedia(t,!1),n.onRenderFrameSeek(t),n.onStatePost(!0)},seek:e=>{let t=n.getTimeline();if(!t)return;let i=Math.max(0,Number(e)||0),r=vo(n.getTimelineRegistry?.(),t,i,n.getCanonicalFps());n.onDeterministicSeek(r),n.setIsPlaying(!1),n.onSyncMedia(r,!1),n.onRenderFrameSeek(r),n.onStatePost(!0)},renderSeek:e=>{let t=n.getTimeline(),i=n.getCanonicalFps(),r=t?(Bo(n.getTimelineRegistry?.(),t),ai(t,e,i)):rn(Math.max(0,Number(e)||0),i);n.onDeterministicSeek(r),n.setIsPlaying(!1),n.onSyncMedia(r,!1),n.onRenderFrameSeek(r),n.onStatePost(!0)},getTime:()=>Number(n.getTimeline()?.time()??0),getDuration:()=>Number(n.getTimeline()?.duration()??0),isPlaying:()=>n.getIsPlaying(),setPlaybackRate:e=>n.setPlaybackRate(e),getPlaybackRate:()=>n.getPlaybackRate()}}function ci(){return{capturedTimeline:null,isPlaying:!1,rafId:null,currentTime:0,deterministicAdapters:[],parityModeEnabled:!0,canonicalFps:30,bridgeMuted:!1,mediaOutputMuted:!1,mediaAutoplayBlockedPosted:!1,playbackRate:1,bridgeLastPostedFrame:-1,bridgeLastPostedAt:0,bridgeLastPostedPlaying:!1,bridgeLastPostedMuted:!1,bridgeMaxPostIntervalMs:80,timelinePollIntervalId:null,controlBridgeHandler:null,clampDurationLoggedRaw:null,beforeUnloadHandler:null,domReadyHandler:null,injectedCompStyles:[],injectedCompScripts:[],cachedTimedMediaEls:[],cachedMediaClips:[],cachedVideoClips:[],cachedMediaTimelineDurationSeconds:0,tornDown:!1,maxTimelineDurationSeconds:1800,nativeVisualWatchdogTick:0}}var Oo="data-hf-authored-duration",Po="data-hf-authored-end";function We(n){if(n==null||n==="")return null;let e=Number(n);return Number.isFinite(e)?e:null}function _o(n){return We(n.getAttribute("data-duration"))}function Io(n){return We(n.getAttribute("data-end"))}function Wo(n){return We(n.getAttribute(Oo))}function Ho(n){return We(n.getAttribute(Po))}function Uo(n){let e=(n??"").trim();if(!e)return null;let t=We(e);if(t!=null)return{kind:"absolute",value:t};let i=e.match(/^([A-Za-z0-9_.:-]+)(?:\\s*([+-])\\s*([0-9]*\\.?[0-9]+))?$/);if(!i)return null;let r=(i[1]??"").trim();if(!r)return null;let o=i[2]??"+",s=i[3]??"0",c=Number.parseFloat(s),u=Number.isFinite(c)?Math.max(0,c):0,a=o==="-"?-u:u;return{kind:"reference",refId:r,offset:a}}function He(n){let e=n.timelineRegistry??{},t=n.includeAuthoredTimingAttrs??!1,i=new WeakMap,r=new WeakMap,o=new Set,s=l=>{let f=document.getElementById(l);return f||(document.querySelector(`[data-composition-id="${CSS.escape(l)}"]`)??null)},c=l=>{let f=r.get(l);if(f!==void 0)return f;let m=null,h=_o(l)??(t?Wo(l):null);if(h!=null&&h>0&&(m=h),m==null||m<=0){let M=Io(l)??(t?Ho(l):null);if(M!=null){let C=a(l,0),A=M-C;Number.isFinite(A)&&A>0&&(m=A)}}if((m==null||m<=0)&&l instanceof HTMLMediaElement){let M=We(l.getAttribute("data-playback-start"))??We(l.getAttribute("data-media-start"))??0;Number.isFinite(l.duration)&&l.duration>M&&(m=l.duration-M)}if(m==null||m<=0){let M=l.getAttribute("data-composition-id");if(M){let C=e[M]??null;if(C&&typeof C.duration=="function")try{let A=Number(C.duration());Number.isFinite(A)&&A>0&&(m=A)}catch{}}}return m!=null&&Number.isFinite(m)&&m>0?(r.set(l,m),m):(r.set(l,null),null)},u=(l,f)=>{if(l.hasAttribute("data-composition-id")){let h=l.parentElement?.closest("[data-composition-id]");return h?a(h,f):0}let m=l.closest("[data-composition-id]");return m?a(m,f):0},a=(l,f)=>{let m=i.get(l);if(m!==void 0)return m??f;if(o.has(l))return f;o.add(l);try{let h=Uo(l.getAttribute("data-start"));if(!h){if(l.hasAttribute("data-composition-id")){let P=l.parentElement;if(P&&(P.hasAttribute("data-composition-src")||P.hasAttribute("data-composition-id"))){let k=a(P,f);return i.set(l,k),k}}return i.set(l,f),f}if(h.kind==="absolute"){let P=Math.max(0,h.value),k=Math.max(0,u(l,f)+P);return i.set(l,k),k}let M=s(h.refId);if(!M)return i.set(l,f),f;let C=a(M,0),A=c(M);if(A==null||A<=0){let P=Math.max(0,C+h.offset);return i.set(l,P),P}let z=Math.max(0,C+A+h.offset);return i.set(l,z),z}finally{o.delete(l)}};return{resolveStartForElement:(l,f=0)=>a(l,Math.max(0,f)),resolveDurationForElement:l=>c(l)}}var qo="data-hf-authored-duration",zo="data-hf-authored-end";function Se(n){if(n==null||n==="")return null;let e=Number(n);return Number.isFinite(e)?e:null}function on(n){return Se(n.getAttribute("data-duration"))??Se(n.getAttribute(qo))}function di(n){return Se(n.getAttribute("data-end"))??Se(n.getAttribute(zo))}function sn(...n){let e=n.filter(t=>Number.isFinite(t??null));return e.length===0?null:Math.max(...e)}var fi={composition:0,video:1,image:2,element:3,audio:4};function jo(n){if(n.length===0)return;let e=new Map;for(let s of n){let c=e.get(s.track)??new Set;c.add(s.kind),e.set(s.track,c)}if(!Array.from(e.values()).some(s=>s.size>1))return;let i=0,r=new Map,o=[...e.keys()].sort((s,c)=>s-c);for(let s of o){let c=e.get(s);if(c.size===1)r.set(`${s}:${[...c][0]}`,i++);else{let u=[...c].sort((a,l)=>(fi[a]??99)-(fi[l]??99));for(let a of u)r.set(`${s}:${a}`,i++)}}for(let s of n){let c=`${s.track}:${s.kind}`,u=r.get(c);u!=null&&(s.track=u)}}function rt(n){let e=String(n??"").trim();if(!e)return null;let t=e.toLowerCase();if(t.startsWith("data:")||t.startsWith("javascript:"))return null;try{return new URL(e,document.baseURI).toString()}catch{return e}}function Go(n){let e=n.getAttribute("src")??n.getAttribute("data-src");if(e)return rt(e);let t=n.getAttribute("data-composition-src");if(t)return rt(t);let i=n.querySelector("img[src], video[src], audio[src], source[src]");return i?rt(i.getAttribute("src")):null}function mi(n){let t=window.__timelines??{},i=He({timelineRegistry:t,includeAuthoredTimingAttrs:!0}),r=R=>{if(!R)return null;let D=t[R]??null;if(!D||typeof D.duration!="function")return null;try{let L=Number(D.duration());return Number.isFinite(L)&&L>0?L:null}catch{return null}},o=R=>{let D=Se(R.getAttribute("data-duration"));if(D!=null&&D>0)return D;let L=Se(R.getAttribute("data-playback-start"))??Se(R.getAttribute("data-media-start"))??0;return Number.isFinite(R.duration)&&R.duration>L?Math.max(0,R.duration-L):null},s=()=>{let R=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(R.length===0)return null;let D=0;for(let L of R){let Q=i.resolveStartForElement(L,0);if(!Number.isFinite(Q))continue;let ne=o(L);ne==null||ne<=0||(D=Math.max(D,Math.max(0,Q)+ne))}return D>0?D:null},c=R=>{let D=R.trim().toLowerCase();return!(!D||D==="main"||D.includes("caption")||D.includes("ambient"))},u=(R,D)=>{let L=[],Q=null,ne=null,_=null,I=R.parentElement;for(;I;){let j=I.getAttribute("data-composition-id");j&&(L.push(j),!_&&I!==D&&(_=j),Q==null&&(Q=i.resolveStartForElement(I,0)),ne==null&&(ne=Se(I.getAttribute("data-duration"))??r(j)??null)),I=I.parentElement}return{parentCompositionId:_,compositionAncestors:L.reverse(),inheritedStart:Q,inheritedDuration:ne}},a=document.querySelector("[data-composition-id]"),l=Array.from(document.querySelectorAll("[data-composition-id]")),f=a?.getAttribute("data-composition-id")??null,m=a?i.resolveStartForElement(a,0):0,h=s(),M=h!=null?Math.max(0,h-Math.max(0,m)):null,C=r(f),A=on(a??document.body),z=sn(...l.filter(R=>R!==a).map(R=>{let D=i.resolveStartForElement(R,0),L=i.resolveDurationForElement(R)??r(R.getAttribute("data-composition-id"))??null;return!Number.isFinite(D)||L==null||L<=0?null:Math.max(0,D)+L})),P=z!=null?Math.max(0,z-Math.max(0,m)):null,k=typeof C=="number"&&Number.isFinite(C)&&C>0?C:null,Y=typeof A=="number"&&Number.isFinite(A)&&A>0?A:null,y=typeof M=="number"&&Number.isFinite(M)&&M>0?M:null,p=typeof P=="number"&&Number.isFinite(P)&&P>0?P:null,S=sn(y,p),F=k!=null&&S!=null&&k>S+1,b=Y??(F?S:sn(k,y,p)),N=b!=null?Math.min(b,n.maxTimelineDurationSeconds):null,W=(N!=null?m+N:null)??(typeof h=="number"&&Number.isFinite(h)&&h>0?h:null),H=(R,D)=>!Number.isFinite(D)||D<=0?0:W==null||!Number.isFinite(W)?D:!Number.isFinite(R)||R>=W?0:Math.max(0,Math.min(D,W-R)),X=[],T=[],Z=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),ee=0;for(let R=0;R<Z.length;R+=1){let D=Z[R];if(D===a||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(D.tagName))continue;let L=u(D,a),Q=i.resolveStartForElement(D,L.inheritedStart??0),ne=D.getAttribute("data-composition-id"),_=on(D);if((_==null||_<=0)&&ne&&ne!==f&&(_=r(ne)),(_==null||_<=0)&&D instanceof HTMLMediaElement){let ce=Se(D.getAttribute("data-playback-start"))??Se(D.getAttribute("data-media-start"))??0;Number.isFinite(D.duration)&&D.duration>0&&(_=Math.max(0,D.duration-ce))}if(_==null||_<=0){let ce=L.inheritedDuration;if(ce!=null&&ce>0){let Fe=(L.inheritedStart??0)+ce;_=Math.max(0,Fe-Q)}}if(_==null||_<=0||(_=H(Q,_),_<=0))continue;let I=Q+_;ee=Math.max(ee,I);let j=D.tagName.toLowerCase(),Ne=ne&&ne!==f?"composition":j==="video"?"video":j==="audio"?"audio":j==="img"?"image":"element";X.push({id:D.id||ne||`__node__index_${R}`,label:D.getAttribute("data-timeline-label")??D.getAttribute("data-label")??D.getAttribute("aria-label")??ne??D.id??D.className?.split(" ")[0]??Ne,start:Q,duration:_,track:Number.parseInt(D.getAttribute("data-track-index")??D.getAttribute("data-track")??String(R),10)||0,kind:Ne,tagName:j,compositionId:D.getAttribute("data-composition-id"),compositionAncestors:L.compositionAncestors,parentCompositionId:L.parentCompositionId,nodePath:null,compositionSrc:rt(D.getAttribute("data-composition-src")),assetUrl:Go(D),timelineRole:D.getAttribute("data-timeline-role"),timelineLabel:D.getAttribute("data-timeline-label"),timelineGroup:D.getAttribute("data-timeline-group"),timelinePriority:Se(D.getAttribute("data-timeline-priority"))})}let U=new Set(X.map(R=>R.id)),G=a?.getAttribute("data-composition-id")??null,B=G?t[G]??null:null;if(B&&a){let R=B;if(typeof R.getChildren=="function")try{let D=R.getChildren(!0,!0,!1)??[],L=new Map;for(let _ of a.children){let I=_;if(!I.id)continue;let j=I.tagName.toLowerCase();j==="script"||j==="style"||j==="link"||L.set(I,{id:I.id,start:1/0,end:-1/0})}let Q=_=>{let I=_;for(;I;){if(L.has(I))return I;if(I===a)return null;I=I.parentElement}return null};for(let _ of D){if(typeof _.targets!="function"||typeof _.startTime!="function"||typeof _.duration!="function")continue;let I=_.startTime(),j=_.parent;for(;j&&typeof j.startTime=="function";)I+=j.startTime(),j=j.parent;let Ne=I+_.duration();if(!(!Number.isFinite(I)||!Number.isFinite(Ne)))for(let ce of _.targets()){if(!(ce instanceof Element))continue;let ze=Q(ce);if(!ze)continue;let Fe=L.get(ze);Fe&&(Fe.start=Math.min(Fe.start,I),Fe.end=Math.max(Fe.end,Ne))}}let ne=X.length>0?Math.max(...X.map(_=>_.track))+1:0;for(let[_,I]of L){if(I.start===1/0||I.end===-1/0)continue;let j=_;if(U.has(j.id))continue;let Ne=Math.max(0,I.end-I.start);if(Ne<=0)continue;let ce=H(I.start,Ne);ce<=0||(ee=Math.max(ee,I.start+ce),X.push({id:j.id,label:j.getAttribute("data-timeline-label")??j.getAttribute("data-label")??j.getAttribute("aria-label")??j.id,start:I.start,duration:ce,track:Number.parseInt(j.getAttribute("data-track-index")??j.getAttribute("data-track")??"",10)||ne,kind:"element",tagName:j.tagName.toLowerCase(),compositionId:j.getAttribute("data-composition-id"),compositionAncestors:G?[G]:[],parentCompositionId:G,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:j.getAttribute("data-timeline-role"),timelineLabel:j.getAttribute("data-timeline-label"),timelineGroup:j.getAttribute("data-timeline-group"),timelinePriority:Se(j.getAttribute("data-timeline-priority"))}),U.add(j.id))}}catch{}}if(a&&N!=null&&N>0){let R=X.length>0?Math.max(...X.map(D=>D.track))+1:0;for(let D of a.children){let L=D;if(!L.id||U.has(L.id))continue;let Q=L.getAttribute("data-timeline-role");if(Q!=="overlay"&&Q!=="persistent-overlay")continue;let ne=L.tagName.toLowerCase();if(ne==="script"||ne==="style"||ne==="link"||ne==="meta"||window.getComputedStyle(L).display==="none")continue;let I=H(0,N);I<=0||(ee=Math.max(ee,I),X.push({id:L.id,label:L.getAttribute("data-timeline-label")??L.getAttribute("data-label")??L.getAttribute("aria-label")??L.id,start:0,duration:I,track:Number.parseInt(L.getAttribute("data-track-index")??L.getAttribute("data-track")??"",10)||R,kind:"element",tagName:ne,compositionId:L.getAttribute("data-composition-id"),compositionAncestors:G?[G]:[],parentCompositionId:G,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:Q,timelineLabel:L.getAttribute("data-timeline-label"),timelineGroup:L.getAttribute("data-timeline-group"),timelinePriority:Se(L.getAttribute("data-timeline-priority"))}),U.add(L.id))}}jo(X);for(let R of l){if(R===a)continue;let D=R.getAttribute("data-composition-id");if(!D||!c(D))continue;let L=i.resolveStartForElement(R,0),Q=on(R);if((Q==null||Q<=0)&&di(R)!=null){let j=di(R);Q=Math.max(0,j-L)}let ne=r(D),_=Q&&Q>0?Q:ne;if(_==null||_<=0)continue;let I=H(L,_);I<=0||T.push({id:D,label:R.getAttribute("data-label")??D,start:L,duration:I,thumbnailUrl:rt(R.getAttribute("data-thumbnail-url")),avatarName:null})}let J=Math.max(1,Math.min(Math.max(ee||1,N??0),n.maxTimelineDurationSeconds));return{source:"hf-preview",type:"timeline",durationInFrames:F&&Y==null?Number.POSITIVE_INFINITY:Math.max(1,Math.round(J*Math.max(1,n.canonicalFps))),clips:X,scenes:T,compositionWidth:Se(a?.getAttribute("data-width"))??1920,compositionHeight:Se(a?.getAttribute("data-height"))??1080}}var re=Lo(Ir(),1),Wr=re.default,Tu=re.default.stringify,Ru=re.default.fromJSON,vu=re.default.plugin,Bu=re.default.parse,Ou=re.default.list,Pu=re.default.document,_u=re.default.comment,Iu=re.default.atRule,Wu=re.default.rule,Hu=re.default.decl,Uu=re.default.root,qu=re.default.CssSyntaxError,zu=re.default.Declaration,ju=re.default.Container,Gu=re.default.Processor,$u=re.default.Document,Vu=re.default.Comment,Ku=re.default.Warning,Ju=re.default.AtRule,Qu=re.default.Result,Yu=re.default.Input,Zu=re.default.Rule,Xu=re.default.Root,ec=re.default.Node;function Rn(n){return n.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function dl(n){return n.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function fl(n,e,t){let i=ml(n,e,t),r=i.trim();if(!r||/^(html|body|:root|\\*)$/i.test(r))return n;if(new RegExp(`data-composition-id\\\\s*=\\\\s*(["\'])${Rn(t)}\\\\1`).test(r))return i;let s=i.match(/^\\s*/)?.[0]??"",c=i.match(/\\s*$/)?.[0]??"";return`${s}${e} ${r}${c}`}function ml(n,e,t){let i=Rn(t),r=String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${i}"|\'${i}\')\\s*\\]`,o=String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`;return n.replace(new RegExp(`${r}(?:${o})+`,"g"),e).replace(new RegExp(`(?:${o})+${r}`,"g"),e)}var pl=new Set(["keyframes","-webkit-keyframes","font-face"]);function hl(n){return n?.type==="atrule"}function xl(n){let e=n.parent;for(;e;){if(hl(e)&&pl.has(e.name.toLowerCase()))return!0;e=e.parent}return!1}function vn(n,e){let t=e.trim();if(!n||!t)return n;let i=`[data-composition-id="${dl(t)}"]`,r=Wr.parse(n);return r.walkRules(o=>{xl(o)||(o.selectors=o.selectors.map(s=>fl(s,i,t)))}),r.toResult({map:!1}).css}function Hr(n,e,t="[HyperFrames] composition script error:"){let i=JSON.stringify(e),r=JSON.stringify(t),o=Rn(e),s=JSON.stringify(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${o}"|\'${o}\')\\s*\\]`),c=JSON.stringify(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`);return`(function(){\n var __hfCompId = ${i};\n var __hfErrorLabel = ${r};\n var __hfEscapeAttr = function(value) {\n return (value + "").replace(/\\\\\\\\/g, "\\\\\\\\\\\\\\\\").replace(/"/g, "\\\\\\\\\\\\"");\n };\n var __hfRootSelector = __hfCompId\n ? \'[data-composition-id="\' + __hfEscapeAttr(__hfCompId) + \'"]\'\n : "";\n var __hfRoot = null;\n var __hfRootSelectorPattern = ${s};\n var __hfTimingSelectorPattern = ${c};\n var __hfNormalizeSelector = function(selector) {\n if (!__hfCompId || typeof selector !== "string") return selector;\n return selector\n .replace(new RegExp(__hfRootSelectorPattern + \'(?:\' + __hfTimingSelectorPattern + \')+\', \'g\'), __hfRootSelector)\n .replace(new RegExp(\'(?:\' + __hfTimingSelectorPattern + \')+\' + __hfRootSelectorPattern, \'g\'), __hfRootSelector);\n };\n var __hfFindRoot = function() {\n if (!__hfRoot && __hfRootSelector) {\n __hfRoot = window.document.querySelector(__hfRootSelector);\n }\n return __hfRoot;\n };\n var __hfContains = function(node) {\n var root = __hfFindRoot();\n return !root || node === root || root.contains(node);\n };\n var __hfQueryAll = function(selector) {\n var root = __hfFindRoot();\n if (!root || typeof selector !== "string") {\n return window.document.querySelectorAll(selector);\n }\n return Array.prototype.filter.call(window.document.querySelectorAll(__hfNormalizeSelector(selector)), function(node) {\n return __hfContains(node);\n });\n };\n var __hfQueryOne = function(selector) {\n var matches = __hfQueryAll(selector);\n return matches[0] || null;\n };\n var __hfScopedDocument = typeof Proxy === "function"\n ? new Proxy(window.document, {\n get: function(target, prop, receiver) {\n if (prop === "querySelector") return __hfQueryOne;\n if (prop === "querySelectorAll") return __hfQueryAll;\n if (prop === "getElementById") {\n return function(id) {\n var found = target.getElementById(id);\n return found && __hfContains(found) ? found : null;\n };\n }\n var value = Reflect.get(target, prop, receiver);\n return typeof value === "function" ? value.bind(target) : value;\n },\n })\n : window.document;\n var __hfResolveGsapTarget = function(target) {\n if (typeof target !== "string") return target;\n return __hfQueryAll(target);\n };\n var __hfScopeTimeline = function(timeline) {\n if (!timeline || timeline.__hfScopedCompositionRoot === __hfFindRoot()) return timeline;\n ["to", "from", "fromTo", "set"].forEach(function(method) {\n var original = timeline[method];\n if (typeof original !== "function") return;\n timeline[method] = function(target) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(target);\n return original.apply(timeline, args);\n };\n });\n try {\n Object.defineProperty(timeline, "__hfScopedCompositionRoot", {\n value: __hfFindRoot(),\n configurable: true,\n });\n } catch (_err) {}\n return timeline;\n };\n var __hfBaseGsap = typeof gsap === "undefined" ? window.gsap : gsap;\n var __hfScopedGsap = !__hfBaseGsap || typeof Proxy !== "function"\n ? __hfBaseGsap\n : new Proxy(__hfBaseGsap, {\n get: function(target, prop, receiver) {\n if (prop === "timeline") {\n return function() {\n return __hfScopeTimeline(target.timeline.apply(target, arguments));\n };\n }\n if (prop === "to" || prop === "from" || prop === "fromTo" || prop === "set") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return target[prop].apply(target, args);\n };\n }\n if (prop === "utils" && target.utils && typeof Proxy === "function") {\n return new Proxy(target.utils, {\n get: function(utilsTarget, utilsProp, utilsReceiver) {\n if (utilsProp === "toArray") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return utilsTarget.toArray.apply(utilsTarget, args);\n };\n }\n if (utilsProp === "selector") {\n return function(base) {\n var baseEl = typeof base === "string" ? __hfQueryOne(base) : base;\n var root = baseEl || __hfFindRoot();\n return function(selector) {\n if (!root || typeof selector !== "string") return [];\n return Array.prototype.slice.call(root.querySelectorAll(selector));\n };\n };\n }\n var value = Reflect.get(utilsTarget, utilsProp, utilsReceiver);\n return typeof value === "function" ? value.bind(utilsTarget) : value;\n },\n });\n }\n var value = Reflect.get(target, prop, receiver);\n return typeof value === "function" ? value.bind(target) : value;\n },\n });\n var __hfRun = function() {\n try {\n (function(document, gsap) {\n${n}\n }).call(window, __hfScopedDocument, __hfScopedGsap);\n } catch (_err) {\n console.error(__hfErrorLabel, __hfCompId, _err);\n }\n };\n __hfFindRoot();\n __hfRun();\n})()`}var gl=8e3,Sl=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/,yl=n=>new Promise(e=>{let t=!1,i=Date.now(),r=null,o=s=>{t||(t=!0,r!=null&&window.clearTimeout(r),e({status:s,elapsedMs:Math.max(0,Date.now()-i)}))};n.addEventListener("load",()=>o("load"),{once:!0}),n.addEventListener("error",()=>o("error"),{once:!0}),r=window.setTimeout(()=>o("timeout"),gl)});function Bn(n){for(;n.firstChild;)n.removeChild(n.firstChild);n.textContent=""}function Ur(n,e){let t=n.trim();if(!t)return n;try{return Sl.test(t)?new URL(t,document.baseURI).toString():e?new URL(t,e).toString():new URL(t,document.baseURI).toString()}catch{return n}}async function On(n){let e=null;n.hostCompositionId&&(e=Array.from(n.sourceNode.querySelectorAll("[data-composition-id]")).find(l=>l.getAttribute("data-composition-id")===n.hostCompositionId)??null);let t=e??n.sourceNode,i=e?.getAttribute("data-composition-id")?.trim()||n.hostCompositionId||null;if(n.headStyles)for(let a of n.headStyles){let l=a.cloneNode(!0);l instanceof HTMLStyleElement&&(i&&(l.textContent=vn(l.textContent||"",i)),document.head.appendChild(l),n.injectedStyles.push(l))}let r=Array.from(t.querySelectorAll("style"));for(let a of r){let l=a.cloneNode(!0);l instanceof HTMLStyleElement&&(i&&(l.textContent=vn(l.textContent||"",i)),document.head.appendChild(l),n.injectedStyles.push(l))}let o=[];if(n.headScripts)for(let a of n.headScripts){let l=a.getAttribute("type")?.trim()??"",f=a.getAttribute("src")?.trim()??"";if(f){let m=Ur(f,n.compositionUrl);o.push({kind:"external",src:m,type:l})}else{let m=a.textContent?.trim()??"";m&&o.push({kind:"inline",content:m,type:l,scopeCompositionId:i})}}let s=Array.from(t.querySelectorAll("script")),c=[...o];for(let a of s){let l=a.getAttribute("type")?.trim()??"",f=a.getAttribute("src")?.trim()??"";if(f){let m=Ur(f,n.compositionUrl);c.push({kind:"external",src:m,type:l})}else{let m=a.textContent?.trim()??"";m&&c.push({kind:"inline",content:m,type:l,scopeCompositionId:i})}a.parentNode?.removeChild(a)}let u=Array.from(t.querySelectorAll("style"));for(let a of u)a.parentNode?.removeChild(a);if(e){let a=document.importNode(e,!0),l=e.getAttribute("data-width"),f=e.getAttribute("data-height"),m=n.parseDimensionPx(l),h=n.parseDimensionPx(f);for(l&&n.host.setAttribute("data-width",l),f&&n.host.setAttribute("data-height",f),m&&n.host instanceof HTMLElement&&(n.host.style.width=m),h&&n.host instanceof HTMLElement&&(n.host.style.height=h);a.firstChild;)n.host.appendChild(a.firstChild)}else n.hasTemplate?n.host.appendChild(document.importNode(t,!0)):n.host.innerHTML=n.fallbackBodyInnerHtml;for(let a of c){let l=document.createElement("script");if(a.type&&(l.type=a.type),l.async=!1,a.kind==="external"?l.src=a.src:a.type.toLowerCase()==="module"?l.textContent=a.content:a.scopeCompositionId?l.textContent=Hr(a.content,a.scopeCompositionId):l.textContent=`(function(){${a.content}})();`,document.body.appendChild(l),n.injectedScripts.push(l),a.kind==="external"){let f=await yl(l);f.status!=="load"&&n.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:n.hostCompositionId,hostCompositionSrc:n.hostCompositionSrc,resolvedScriptSrc:a.src,loadStatus:f.status,elapsedMs:f.elapsedMs}})}}}async function qr(n){let e=Array.from(document.querySelectorAll("[data-composition-id]:not([data-composition-src])")).filter(t=>{if(t.children.length>0)return!1;let i=t.getAttribute("data-composition-id");return i?!!document.querySelector(`template#${CSS.escape(i)}-template`):!1});if(e.length!==0)for(let t of e){let i=t.getAttribute("data-composition-id"),r=document.querySelector(`template#${CSS.escape(i)}-template`);Bn(t),await On({host:t,hostCompositionId:i,hostCompositionSrc:`template#${i}-template`,sourceNode:r.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:n.injectedStyles,injectedScripts:n.injectedScripts,parseDimensionPx:n.parseDimensionPx,onDiagnostic:n.onDiagnostic})}}async function zr(n){let e=Array.from(document.querySelectorAll("[data-composition-src]"));e.length!==0&&await Promise.all(e.map(async t=>{let i=t.getAttribute("data-composition-src");if(!i)return;let r=null;try{r=new URL(i,document.baseURI)}catch{r=null}Bn(t);try{let o=t.getAttribute("data-composition-id"),s=o!=null?document.querySelector(`template#${CSS.escape(o)}-template`):null;if(s){await On({host:t,hostCompositionId:o,hostCompositionSrc:i,sourceNode:s.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:r,injectedStyles:n.injectedStyles,injectedScripts:n.injectedScripts,parseDimensionPx:n.parseDimensionPx,onDiagnostic:n.onDiagnostic});return}let c=await fetch(i);if(!c.ok)throw new Error(`HTTP ${c.status}`);let u=await c.text(),l=new DOMParser().parseFromString(u,"text/html"),f=(o?l.querySelector(`template#${CSS.escape(o)}-template`):null)??l.querySelector("template"),m=f?f.content:l.body,h=f?void 0:Array.from(l.head.querySelectorAll("style")),M=f?void 0:Array.from(l.head.querySelectorAll("script"));await On({host:t,hostCompositionId:o,hostCompositionSrc:i,sourceNode:m,hasTemplate:!!f,fallbackBodyInnerHtml:l.body.innerHTML,compositionUrl:r,injectedStyles:n.injectedStyles,injectedScripts:n.injectedScripts,parseDimensionPx:n.parseDimensionPx,headStyles:h,headScripts:M,onDiagnostic:n.onDiagnostic})}catch(o){n.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:t.getAttribute("data-composition-id"),hostCompositionSrc:i,errorMessage:o instanceof Error?o.message:"unknown_error"}}),Bn(t)}}))}function Pn(){let n=window.gsap;n&&document.querySelectorAll(".caption-group").length!==0&&fetch("caption-overrides.json").then(e=>e.ok?e.json():null).then(e=>{if(!e||!Array.isArray(e)||e.length===0)return;let t=[],i=document.querySelectorAll(".caption-group");for(let r of i){let o=r.querySelectorAll(":scope > span");for(let s of o)t.push(s)}for(let r of e){let o=null;if(r.wordId&&(o=document.getElementById(r.wordId)),!o&&r.wordIndex!==void 0&&(o=t[r.wordIndex]??null),!o||!(o instanceof HTMLElement))continue;let s={},c={};if(r.x!==void 0&&(s.x=r.x),r.y!==void 0&&(s.y=r.y),r.scale!==void 0&&(s.scale=r.scale),r.rotation!==void 0&&(s.rotation=r.rotation),r.opacity!==void 0&&(c.opacity=r.opacity),r.fontSize!==void 0&&(c.fontSize=`${r.fontSize}px`),r.fontWeight!==void 0&&(c.fontWeight=r.fontWeight),r.fontFamily!==void 0&&(c.fontFamily=r.fontFamily),r.activeColor||r.dimColor){let a=n.getTweensOf(o).filter(f=>f.vars.color!==void 0).sort((f,m)=>f.startTime()-m.startTime()),l=a.length>0?String(a[0].vars.color):"";for(let f of a)String(f.vars.color)===l?r.dimColor&&(f.vars.color=r.dimColor):r.activeColor&&(f.vars.color=r.activeColor);r.dimColor&&n.set(o,{color:r.dimColor})}if(Object.keys(c).length>0&&n.set(o,c),Object.keys(s).length>0){let u=document.createElement("span");u.style.display="inline-block",u.dataset.captionWrapper="true",o.parentNode?.insertBefore(u,o),u.appendChild(o),n.set(u,s)}}}).catch(()=>{})}var jr="data-hf-authored-duration",Gr="data-hf-authored-end";function $r(){let n=ci(),e=window,t=null,i=null,r=[],o=new Set,s=null;if(typeof e.__hfRuntimeTeardown=="function")try{e.__hfRuntimeTeardown()}catch{}document.documentElement&&(document.documentElement.style.margin="0",document.documentElement.style.padding="0",document.documentElement.style.overflow="hidden"),document.body&&(document.body.style.margin="0",document.body.style.padding="0",document.body.style.overflow="hidden"),window.__timelines=window.__timelines||{};let c=d=>{r.push(d)},u=(d,g,x)=>{let w=x??`${d}:${JSON.stringify(g)}`;o.has(w)||(o.add(w),ge({source:"hf-preview",type:"diagnostic",code:d,details:g}))},a=d=>{let g={scale:1,focusX:960,focusY:540},x=[],w=[],E={time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying(),renderMode:!1,timelineDirty:!1};return{play:d.play,pause:d.pause,seek:d.seek,getTime:d.getTime,getDuration:d.getDuration,isPlaying:d.isPlaying,getMainTimeline:()=>null,getElementBounds:()=>{},getElementsAtPoint:()=>{},setElementPosition:()=>{},previewElementPosition:()=>{},setElementKeyframes:()=>{},setElementScale:()=>{},setElementFontSize:()=>{},setElementTextContent:()=>{},setElementTextColor:()=>{},setElementTextShadow:()=>{},setElementTextFontWeight:()=>{},setElementTextFontFamily:()=>{},setElementTextOutline:()=>{},setElementTextHighlight:()=>{},setElementVolume:()=>{},setStageZoom:()=>{},getStageZoom:()=>g,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>x,addElement:()=>!1,removeElement:()=>!1,updateElementTiming:()=>!1,setElementTiming:()=>{},updateElementSrc:()=>!1,updateElementLayer:()=>!1,updateElementBasePosition:()=>!1,markTimelineDirty:()=>{},isTimelineDirty:()=>!1,rebuildTimeline:()=>{},ensureTimeline:()=>{},enableRenderMode:()=>{},disableRenderMode:()=>{},renderSeek:d.renderSeek,getElementVisibility:()=>({visible:!1}),getVisibleElements:()=>w,getRenderState:()=>({...E,time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying()})}},l=1/60,f=.75,m=.75,h=.35,M=900,C=3,A=2,z=.05,P=100,k=240,Y=d=>{if(d instanceof Error)return d.message||String(d);if(typeof d=="string")return d;try{return JSON.stringify(d)}catch{return String(d??"")}},y=d=>{let g=d.toLowerCase();return g.includes("cannot read properties of null")||g.includes("cannot set properties of null")?{code:"runtime_null_dom_access",category:"dom-null-access"}:g.includes("failed to execute \'queryselector\'")?{code:"runtime_invalid_selector",category:"selector-invalid"}:g.includes("is not defined")?{code:"runtime_reference_missing",category:"reference-missing"}:{code:"runtime_script_error",category:"script-error"}},p=d=>{if(d==null||d.trim()==="")return null;let g=Number.parseFloat(d);return!Number.isFinite(g)||g<=0?null:`${g}px`},S=()=>{let d=document.querySelector(\'[data-composition-id][data-root="true"]\');if(d instanceof HTMLElement)return d;let g=Array.from(document.querySelectorAll("[data-composition-id]"));return g.length===0?null:g.find(x=>!x.parentElement?.closest("[data-composition-id]"))??g[0]??null},F=()=>{let d=S();if(!d)return;let g=p(d.getAttribute("data-width")),x=p(d.getAttribute("data-height"));g&&(d.style.width=g),x&&(d.style.height=x),g&&d.style.setProperty("--comp-width",g),x&&d.style.setProperty("--comp-height",x)},b=()=>{let d=S(),g=Array.from(document.querySelectorAll("[data-composition-id]")).filter(x=>x.hasAttribute("data-duration")||x.hasAttribute("data-end"));for(let x of g){if(d&&x===d)continue;let w=x.getAttribute("data-duration"),E=x.getAttribute("data-end");w!=null&&!x.hasAttribute(jr)&&x.setAttribute(jr,w),E!=null&&!x.hasAttribute(Gr)&&x.setAttribute(Gr,E),x.removeAttribute("data-duration"),x.removeAttribute("data-end")}},N=()=>{let d=S();if(!d)return;d.style.position||(d.style.position="relative"),d.style.overflow="hidden";let g=p(d.getAttribute("data-width")),x=p(d.getAttribute("data-height"));g&&(d.style.width=g),x&&(d.style.height=x);let w=Array.from(d.children);for(let E of w){let O=E.tagName.toLowerCase();if(O==="script"||O==="style"||O==="link"||O==="meta"||!E.hasAttribute("data-start"))continue;let le=(E.style.top==="0px"||E.style.top==="0")&&(E.style.left==="0px"||E.style.left==="0")&&E.style.width==="100%"&&E.style.height==="100%",ae=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(E.style.transform);if(le&&ae&&!E.hasAttribute("data-width")&&!E.hasAttribute("data-height")){let ye=E.style.top,ue=E.style.left,tt=E.style.width,ie=E.style.height;E.style.top="",E.style.left="",E.style.width="",E.style.height="";let $=window.getComputedStyle(E);$.top!=="auto"||$.bottom!=="auto"||$.left!=="auto"||$.right!=="auto"||$.width!=="0px"||$.height!=="0px"||(E.style.top=ye,E.style.left=ue,E.style.width=tt,E.style.height=ie)}let V=window.getComputedStyle(E),we=V.position;if(we!=="absolute"&&we!=="fixed"&&(E.style.position="absolute"),!!E.style.top||!!E.style.bottom||V.top!=="auto"||V.bottom!=="auto"||(E.style.top="0"),!!E.style.left||!!E.style.right||V.left!=="auto"||V.right!=="auto"||(E.style.left="0"),O!=="audio"){let ye=p(E.getAttribute("data-width")),ue=p(E.getAttribute("data-height")),tt=V.width!=="0px"&&V.width!=="auto",ie=V.height!=="0px"&&V.height!=="auto";ye?!E.style.width&&!tt&&(E.style.width=ye):!E.style.width&&V.width==="0px"&&(E.style.width="100%"),ue?!E.style.height&&!ie&&(E.style.height=ue):!E.style.height&&V.height==="0px"&&(E.style.height="100%")}}},v=(d,g=0,x)=>He({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:x?.includeAuthoredTimingAttrs??!0}).resolveStartForElement(d,g),W=(d,g)=>He({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:g?.includeAuthoredTimingAttrs??!0}).resolveDurationForElement(d),H=!!document.querySelector("[data-composition-src]"),X=!1;{let d=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let g of d){let x=g.getAttribute("data-composition-id");if(x&&g.children.length===0&&document.querySelector(`template#${CSS.escape(x)}-template`)){X=!0;break}}}let T=!H&&!X,Z=d=>{if(!d||typeof d.duration!="function")return null;try{let g=Number(d.duration());return Number.isFinite(g)?Math.max(0,g):null}catch{return null}},ee=d=>typeof d=="number"&&Number.isFinite(d)&&d>l,U=d=>{let g=Number(d.getAttribute("data-duration"));if(Number.isFinite(g)&&g>0)return g;let x=Number(d.getAttribute("data-playback-start")??d.getAttribute("data-media-start")??"0"),w=Number.isFinite(x)?Math.max(0,x):0;return Number.isFinite(d.duration)&&d.duration>w?Math.max(0,d.duration-w):null},G=()=>{let d=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(d.length===0)return null;let g=0;for(let x of d){let w=v(x,0);if(!Number.isFinite(w))continue;let E=U(x);E==null||E<=l||(g=Math.max(g,Math.max(0,w)+E))}return g>l?g:null},B=()=>{let d=S();if(!d)return null;let g=window.__timelines??{},x=He({timelineRegistry:g,includeAuthoredTimingAttrs:!0}),w=0,E=Array.from(d.querySelectorAll("[data-composition-id][data-start]"));for(let O of E){if(!(O instanceof Element)||O.parentElement?.closest("[data-composition-id]")!==d)continue;let ae=x.resolveStartForElement(O,0),V=x.resolveDurationForElement(O);!Number.isFinite(ae)||V==null||V<=0||(w=Math.max(w,Math.max(0,ae)+V))}return w>l?w:null},J=()=>{let d=G();return typeof d!="number"||!Number.isFinite(d)||d<=l?null:d},Ee=d=>ee(d)?Math.max(l,d*f):l,xe=(d,g=0)=>{let x=Z(d),w=J(),E=B(),O=Math.max(w??0,E??0),le=Number.isFinite(g)&&g>l?g:0,ae=0;ee(x)?ae=Math.max(x,O,le):ee(O)?ae=Math.max(O,le):ae=le;let V=Math.max(1,Number(n.maxTimelineDurationSeconds)||1800);return ae>0?Math.max(0,Math.min(ae,V)):0},R=()=>{let d=window.__timelines??{},g=He({timelineRegistry:d,includeAuthoredTimingAttrs:!0}),x=J(),w=B(),E=Math.max(x??0,w??0)||null,O=Ee(E),le=ie=>{let $=document.querySelector(`[data-composition-id="${CSS.escape(ie)}"]`);return $?g.resolveStartForElement($,0):0},ae=ie=>{let $=window.gsap;if(!$||typeof $.timeline!="function")return null;let oe=$.timeline({paused:!0});for(let pe of ie)oe.add(pe.timeline,le(pe.compositionId));return oe},V=(ie,$)=>{if(!ee(ie))return null;let oe=window.gsap;if(!oe||typeof oe.timeline!="function")return null;let pe=oe.timeline({paused:!0});if($)try{pe.add($,0)}catch{}let he=pe;if(typeof he.to=="function")try{he.to({},{duration:ie})}catch{}return pe},we=(ie,$)=>{let oe=ie;if(typeof oe.getChildren!="function")return[];try{let pe=oe.getChildren(!0,!0,!0)??[];if(!Array.isArray(pe))return[];let he=[];for(let se of $)if(!pe.some(Ie=>Ie===se.timeline))try{let Ie=le(se.compositionId);ie.add(se.timeline,Ie),he.push(se.compositionId)}catch{}return he}catch{return[]}},Re=S(),de=Re?.getAttribute("data-composition-id")??null;if(!de)return{timeline:null};let me=d[de]??null,ue=(()=>{if(!Re)return[];let ie=new Set,$=Array.from(Re.querySelectorAll("[data-composition-id]")),oe=[];for(let pe of $){let he=pe.getAttribute("data-composition-id");if(!he||he===de||ie.has(he))continue;ie.add(he);let se=d[he]??null;if(!se||typeof se.play!="function"||typeof se.pause!="function")continue;let Ae=Z(se);oe.push({compositionId:he,timeline:se,durationSeconds:Ae??0})}return oe})(),tt=ie=>{for(let $ of ie){let oe=$.timeline;if(typeof oe.paused=="function")try{oe.paused(!1)}catch{}}};if(ue.length>0&&tt(ue),me){let ie=ue.length>0?we(me,ue):[];if((ue.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+de+"\'])"))&&(L=!0),ie.length>0)try{let se=me.time();me.seek(se,!1)}catch{}let $=Z(me);if(!ee($)&&ue.length>0){let se=ue.map(bo=>bo.compositionId),Ae=ae(ue),Ie=Z(Ae);if(Ae&&ee(Ie))return{timeline:Ae,selectedTimelineIds:se,selectedDurationSeconds:Ie,mediaDurationFloorSeconds:x,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:de,rootDurationSeconds:$,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:O,selectedDurationSeconds:Ie,mediaDurationFloorSeconds:x,authoredCompositionDurationFloorSeconds:w,selectedTimelineIds:se,autoNestedChildren:ie}}};let Xt=V(E??0,me),en=Z(Xt);if(Xt&&ee(en))return{timeline:Xt,selectedTimelineIds:[de],selectedDurationSeconds:en,mediaDurationFloorSeconds:x,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:de,rootDurationSeconds:$,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:x,authoredCompositionDurationFloorSeconds:w,selectedDurationSeconds:en,selectedTimelineIds:[de],autoNestedChildren:ie}}}}if(!ee($)&&ue.length===0){let se=V(E??0,me),Ae=Z(se);if(se&&ee(Ae))return{timeline:se,selectedTimelineIds:[de],selectedDurationSeconds:Ae,mediaDurationFloorSeconds:x,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:de,rootDurationSeconds:$,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:x,authoredCompositionDurationFloorSeconds:w,selectedDurationSeconds:Ae,selectedTimelineIds:[de]}}}}let oe=Re?.getAttribute("data-duration"),pe=oe?parseFloat(oe):null,he=Math.max(ee(pe)?pe:0,w??0);if(he>0&&ee(he)&&ee($)&&he>=$+.5){let se=me;if(typeof se.to=="function")try{se.to({},{duration:0},he)}catch{}let Ae=Z(me);if(ee(Ae))return{timeline:me,selectedTimelineIds:[de],selectedDurationSeconds:Ae,mediaDurationFloorSeconds:x,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:de,rootDurationSeconds:$,rootDeclaredDur:pe,authoredCompositionDurationFloorSeconds:w,newDur:Ae}}}}return{timeline:me,selectedTimelineIds:[de],selectedDurationSeconds:$,mediaDurationFloorSeconds:x,diagnostics:ie.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:de,selectedDurationSeconds:$,autoNestedChildren:ie}}:void 0}}if(ue.length>0){let ie=ue.map(pe=>pe.compositionId),$=ae(ue),oe=Z($);if($)return{timeline:$,selectedTimelineIds:ie,selectedDurationSeconds:oe,mediaDurationFloorSeconds:x,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:de,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:O,selectedDurationSeconds:oe,mediaDurationFloorSeconds:x,selectedTimelineIds:ie}}}}return{timeline:null}},D=()=>{let d=n.capturedTimeline;if(!d||typeof d.time!="function")return;let g=Number(d.time());Number.isFinite(g)&&(n.currentTime=Math.max(0,g))},L=!1,Q=()=>{if(!T)return!1;let d=n.capturedTimeline,g=Z(d),x=ee(g);if(d&&x&&L)return!1;let w=R();return w.timeline?d&&d===w.timeline?(typeof d.timeScale=="function"&&d.timeScale(n.playbackRate),!1):(n.capturedTimeline=w.timeline,typeof n.capturedTimeline.timeScale=="function"&&n.capturedTimeline.timeScale(n.playbackRate),w.diagnostics&&ge({source:"hf-preview",type:"diagnostic",code:w.diagnostics.code,details:w.diagnostics.details}),ge({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:w.selectedTimelineIds??[],selectedDurationSeconds:w.selectedDurationSeconds??null,mediaDurationFloorSeconds:w.mediaDurationFloorSeconds??null}}),!0):!1},ne=()=>{let d=S();if(!(d instanceof HTMLElement))return;let g=d.getBoundingClientRect(),x=Number(d.getAttribute("data-width")),w=Number(d.getAttribute("data-height")),E=window.getComputedStyle(d),O=Number.isFinite(x)&&x>0&&Number.isFinite(w)&&w>0,le=g.width<=0||g.height<=0||d.clientWidth<=0||d.clientHeight<=0;!O||!le||u("root_stage_layout_zero",{compositionId:d.getAttribute("data-composition-id")??null,declaredWidth:x,declaredHeight:w,rectWidth:Math.round(g.width),rectHeight:Math.round(g.height),clientWidth:d.clientWidth,clientHeight:d.clientHeight,display:E.display,visibility:E.visibility,overflow:E.overflow},`root-stage-layout-zero:${d.getAttribute("data-composition-id")??"unknown"}`)},_=()=>{n.tornDown||(s!=null&&window.cancelAnimationFrame(s),s=window.requestAnimationFrame(()=>{s=null,ne()}))},I=()=>{t=d=>{let g=Y(d.error??d.message).slice(0,k);if(!g)return;let x=y(g);ge({source:"hf-preview",type:"diagnostic",code:x.code,details:{category:x.category,message:g,filename:d.filename||null,line:Number.isFinite(d.lineno)?d.lineno:null,column:Number.isFinite(d.colno)?d.colno:null}})},i=d=>{let g=Y(d.reason).slice(0,k);if(!g)return;let x=y(g);ge({source:"hf-preview",type:"diagnostic",code:`${x.code}_unhandled_rejection`,details:{category:`${x.category}-unhandled-rejection`,message:g}})},window.addEventListener("error",t),window.addEventListener("unhandledrejection",i)},j=()=>{let d=Array.from(document.querySelectorAll("img, video, audio, source, link[rel=\'stylesheet\']"));for(let x of d){let w=()=>{if(!(x instanceof Element))return;let E=x.tagName.toLowerCase(),O=x.getAttribute("src")??x.getAttribute("href")??x.getAttribute("poster")??null,le=E==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";u(le,{tagName:E,assetUrl:O,currentSrc:(x instanceof HTMLImageElement||x instanceof HTMLMediaElement)&&x.currentSrc||null,readyState:x instanceof HTMLMediaElement?x.readyState:null,networkState:x instanceof HTMLMediaElement?x.networkState:null},`${le}:${E}:${O??"unknown"}`)};x.addEventListener("error",w),c(()=>{x.removeEventListener("error",w)})}let g=document.fonts;g&&g.ready.then(()=>{if(n.tornDown)return;let x=Array.from(g).filter(w=>w.status==="error").map(w=>w.family).filter(w=>!!w).slice(0,10);x.length!==0&&u("runtime_font_load_issue",{failedFamilies:x,totalFaces:Array.from(g).length},`runtime-font-load-issue:${x.join("|")}`)}).catch(()=>{})},Ne=(d,g)=>{if(!d.timeline)return!1;let x=n.capturedTimeline;if(x&&x===d.timeline)return!1;let w=Math.max(0,n.currentTime||0),E=n.isPlaying;n.capturedTimeline=d.timeline,typeof n.capturedTimeline.timeScale=="function"&&n.capturedTimeline.timeScale(n.playbackRate);try{n.capturedTimeline.pause(),n.capturedTimeline.seek(w,!1),E&&n.capturedTimeline.play()}catch{}return ge({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:g,previousTime:w,selectedTimelineIds:d.selectedTimelineIds??[],selectedDurationSeconds:d.selectedDurationSeconds??null,mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),!0},ce=null,ze=!1,Fe=new Set,wt=()=>{n.tornDown||(ce!=null&&window.clearTimeout(ce),ce=window.setTimeout(()=>{if(n.tornDown)return;ce=null;let d=R();if(!d.timeline||!ee(d.mediaDurationFloorSeconds??null))return;if(!n.capturedTimeline){Q()&&(je(),Te(!0));return}if(ze)return;let x=Z(n.capturedTimeline),w=d.selectedDurationSeconds??Z(d.timeline);ee(w)&&(!ee(x)||w>=x+z)&&Ne(d,"manual")&&(ze=!0,ge({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:x??null,selectedDurationSeconds:w??null,selectedTimelineIds:d.selectedTimelineIds??[],mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),je(),Te(!0))},P))},Ao=()=>{for(let d of Fe)d.removeEventListener("loadedmetadata",wt),d.removeEventListener("durationchange",wt);Fe.clear()},Jt=()=>{if(n.tornDown)return;let d=Array.from(document.querySelectorAll("video, audio"));for(let g of d)Fe.has(g)||(Fe.add(g),g.addEventListener("loadedmetadata",wt),g.addEventListener("durationchange",wt),g.preload!=="auto"&&(g.preload="auto"),g.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&g.load())},Gn=()=>{let d=E=>{let O=E.closest("[data-composition-id]"),le=O?v(O,0):null,ae=O?W(O,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:O,inheritedStart:le,inheritedDuration:ae}},g=oi({shouldIncludeElement:E=>E.hasAttribute("data-start")||!!d(E).compositionRoot,resolveStartSeconds:E=>{let O=d(E);return v(E,O.inheritedStart??0)},resolveDurationSeconds:E=>{let O=d(E),le=v(E,O.inheritedStart??0),ae=Number.parseFloat(E.dataset.playbackStart??E.dataset.mediaStart??"0")||0,V=O.inheritedStart!=null&&O.inheritedDuration!=null&&O.inheritedDuration>0?Math.max(0,O.inheritedStart+O.inheritedDuration-le):null,we=Number.isFinite(E.duration)&&E.duration>ae?Math.max(0,E.duration-ae):null;return we!=null&&V!=null?Math.min(we,V):we??V}});si({clips:g.mediaClips,timeSeconds:n.currentTime,playing:n.isPlaying,playbackRate:n.playbackRate,outputMuted:n.mediaOutputMuted,userMuted:n.bridgeMuted,onAutoplayBlocked:()=>{n.mediaAutoplayBlockedPosted||(n.mediaAutoplayBlockedPosted=!0,ge({source:"hf-preview",type:"media-autoplay-blocked"}))}});let x=document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null,w=Array.from(document.querySelectorAll("[data-start]"));for(let E of w){if(!(E instanceof HTMLElement))continue;let O=E.tagName.toLowerCase();if(O==="script"||O==="style"||O==="link"||O==="meta")continue;if(!E.getAttribute("data-composition-id")){let ye=E.closest("[data-composition-id]")?.getAttribute("data-composition-id")??null;if(ye&&ye!==x)continue}let ae=v(E,0),V=W(E),we=E.getAttribute("data-composition-id");if(we){let me=(window.__timelines??{})[we],ye=null;if(me&&typeof me.duration=="function"){let ue=Number(me.duration());Number.isFinite(ue)&&ue>0&&(ye=ue)}V!=null&&V>0&&ye!=null?V=Math.min(V,ye):(V==null||V<=0)&&ye!=null&&(V=ye)}let Re=V!=null&&V>0?ae+V:Number.POSITIVE_INFINITY,de=n.currentTime>=ae&&(Number.isFinite(Re)?n.currentTime<Re:!0);E.style.visibility=de?"visible":"hidden"}},Te=d=>{D();let g=Math.max(0,Math.round((n.currentTime||0)*n.canonicalFps)),x=Date.now();(d||g!==n.bridgeLastPostedFrame||n.isPlaying!==n.bridgeLastPostedPlaying||n.bridgeMuted!==n.bridgeLastPostedMuted||x-n.bridgeLastPostedAt>=n.bridgeMaxPostIntervalMs)&&(n.bridgeLastPostedFrame=g,n.bridgeLastPostedPlaying=n.isPlaying,n.bridgeLastPostedMuted=n.bridgeMuted,n.bridgeLastPostedAt=x,ge({source:"hf-preview",type:"state",frame:g,isPlaying:n.isPlaying,muted:n.bridgeMuted,playbackRate:n.playbackRate}))},je=()=>{b(),F(),N();let d=S();if(d){let x=p(d.getAttribute("data-width")),w=p(d.getAttribute("data-height")),E=x?parseInt(x,10):0,O=w?parseInt(w,10):0;E>0&&O>0&&ge({source:"hf-preview",type:"stage-size",width:E,height:O})}Q();let g=mi({canonicalFps:n.canonicalFps,maxTimelineDurationSeconds:n.maxTimelineDurationSeconds});window.__clipManifest=g,ge(g),_()},et=(d,g=0)=>{for(let x of n.deterministicAdapters){try{d==="discover"&&x.discover(),d==="pause"&&x.pause(),d==="play"&&x.play&&x.play()}catch{}if(d==="discover")try{x.seek({time:g})}catch{}}};if(T)Pn();else{let d={injectedStyles:n.injectedCompStyles,injectedScripts:n.injectedCompScripts,parseDimensionPx:p,onDiagnostic:({code:g,details:x})=>{ge({source:"hf-preview",type:"diagnostic",code:g,details:x})}};zr(d).then(()=>qr(d)).finally(()=>{T=!0,et("discover",n.currentTime),Jt(),j(),Pn(),je(),Te(!0)})}let Ct=li({postMessage:d=>ge(d)});Ct.installPickerApi();let $n=d=>{let g=Number(d);!Number.isFinite(g)||g<=0?n.playbackRate=1:n.playbackRate=Math.max(.1,Math.min(5,g)),n.capturedTimeline&&typeof n.capturedTimeline.timeScale=="function"&&n.capturedTimeline.timeScale(n.playbackRate);let x=document.querySelectorAll("video, audio");for(let w of x)if(w instanceof HTMLMediaElement)try{w.playbackRate=n.playbackRate}catch{}},fe=ui({getTimeline:()=>n.capturedTimeline,setTimeline:d=>{n.capturedTimeline=d},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>n.isPlaying,setIsPlaying:d=>{n.isPlaying=d},getPlaybackRate:()=>n.playbackRate,setPlaybackRate:$n,getCanonicalFps:()=>n.canonicalFps,onSyncMedia:(d,g)=>{n.currentTime=Math.max(0,Number(d)||0),n.isPlaying=g,Gn()},onStatePost:Te,onDeterministicSeek:d=>{for(let g of n.deterministicAdapters)try{g.seek({time:Number(d)||0})}catch{}},onDeterministicPause:()=>et("pause"),onDeterministicPlay:()=>et("play"),onRenderFrameSeek:()=>{},onShowNativeVideos:()=>{},getSafeDuration:()=>xe(n.capturedTimeline,0)});window.__player=a(fe),window.__playerReady=!0,window.__renderReady=!0,Yn(ge),nt("composition_loaded",{duration:fe.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),n.controlBridgeHandler=Qn({onPlay:()=>{fe.play(),nt("composition_played",{time:fe.getTime()})},onPause:()=>{fe.pause(),nt("composition_paused",{time:fe.getTime()})},onSeek:(d,g)=>{let x=Math.max(0,d)/n.canonicalFps;fe.seek(x),nt("composition_seeked",{time:x})},onSetMuted:d=>{n.bridgeMuted=d;let g=d||n.mediaOutputMuted,x=document.querySelectorAll("video, audio");for(let w of x)w instanceof HTMLMediaElement&&(w.muted=g)},onSetMediaOutputMuted:d=>{n.mediaOutputMuted=d;let g=d||n.bridgeMuted,x=document.querySelectorAll("video, audio");for(let w of x)w instanceof HTMLMediaElement&&(w.muted=g)},onSetPlaybackRate:d=>$n(d),onEnablePickMode:()=>Ct.enablePickMode(),onDisablePickMode:()=>Ct.disablePickMode()}),Q(),n.capturedTimeline&&(fe._timeline=n.capturedTimeline),T&&setTimeout(()=>{let d=n.capturedTimeline;Q()&&n.capturedTimeline!==d&&(fe._timeline=n.capturedTimeline),et("discover",n.currentTime),je(),Te(!0)},0),n.deterministicAdapters=[ri(),Zn({resolveStartSeconds:d=>v(d,0)}),ni(),ii(),Xn({getTimeline:()=>n.capturedTimeline})],I(),et("discover"),Jt(),n.timelinePollIntervalId&&clearInterval(n.timelinePollIntervalId);let Qt=0,Mt=null,Vn=0,Yt=!1,Ge=0,Kn=()=>{Vn=Date.now(),Yt=!1,Ge=0};n.timelinePollIntervalId=setInterval(()=>{Qt+=1;let g=n.isPlaying&&n.capturedTimeline!=null&&Math.max(0,n.currentTime||0)<A?!1:Q();if(n.capturedTimeline&&!fe._timeline&&(fe._timeline=n.capturedTimeline),(g||Qt%20===0)&&je(),Qt%10===0&&Jt(),D(),n.isPlaying&&n.capturedTimeline){let x=Math.max(0,n.currentTime||0),w=Mt,E=xe(n.capturedTimeline,0);if(E>0&&x>=E){fe.pause(),fe.seek(E),Mt=E,Ge=0,Te(!0);return}if(w!=null&&w>=m&&x<=h?Ge+=1:Ge=0,!Yt&&Ge>=C&&Date.now()-Vn>M){let le=R();Ne(le,"loop_guard")&&(Yt=!0,Ge=0)}Mt=Math.max(0,n.currentTime||0)}else Mt=Math.max(0,n.currentTime||0);n.isPlaying&&Gn(),Te(!1)},50),je(),Te(!0);let Eo=fe.seek;fe.seek=d=>{Kn(),Eo(d)};let Fo=fe.renderSeek;fe.renderSeek=d=>{Kn(),Fo(d)};let Zt=()=>{if(!n.tornDown){n.tornDown=!0,n.timelinePollIntervalId&&(clearInterval(n.timelinePollIntervalId),n.timelinePollIntervalId=null),ce!=null&&(window.clearTimeout(ce),ce=null),s!=null&&(window.cancelAnimationFrame(s),s=null),Ao(),n.controlBridgeHandler&&(window.removeEventListener("message",n.controlBridgeHandler),n.controlBridgeHandler=null),t&&(window.removeEventListener("error",t),t=null),i&&(window.removeEventListener("unhandledrejection",i),i=null),n.beforeUnloadHandler&&(window.removeEventListener("beforeunload",n.beforeUnloadHandler),n.beforeUnloadHandler=null),Ct.disablePickMode();for(let d of n.deterministicAdapters)if(!(!d||typeof d.revert!="function"))try{d.revert()}catch{}n.deterministicAdapters=[];for(let d of r.splice(0))try{d()}catch{}for(let d of n.injectedCompStyles)try{d.remove()}catch{}n.injectedCompStyles=[];for(let d of n.injectedCompScripts)try{d.remove()}catch{}n.injectedCompScripts=[],n.capturedTimeline=null,e.__hfRuntimeTeardown===Zt&&(e.__hfRuntimeTeardown=null)}};e.__hfRuntimeTeardown=Zt,n.beforeUnloadHandler=Zt,window.addEventListener("beforeunload",n.beforeUnloadHandler)}var Vr=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],_n=[[697,698,"ON"],[706,719,"ON"],[722,735,"ON"],[741,749,"ON"],[751,767,"ON"],[768,879,"NSM"],[884,885,"ON"],[894,894,"ON"],[900,901,"ON"],[903,903,"ON"],[1014,1014,"ON"],[1155,1161,"NSM"],[1418,1418,"ON"],[1421,1422,"ON"],[1423,1423,"ET"],[1424,1424,"R"],[1425,1469,"NSM"],[1470,1470,"R"],[1471,1471,"NSM"],[1472,1472,"R"],[1473,1474,"NSM"],[1475,1475,"R"],[1476,1477,"NSM"],[1478,1478,"R"],[1479,1479,"NSM"],[1480,1535,"R"],[1536,1541,"AN"],[1542,1543,"ON"],[1544,1544,"AL"],[1545,1546,"ET"],[1547,1547,"AL"],[1548,1548,"CS"],[1549,1549,"AL"],[1550,1551,"ON"],[1552,1562,"NSM"],[1563,1610,"AL"],[1611,1631,"NSM"],[1632,1641,"AN"],[1642,1642,"ET"],[1643,1644,"AN"],[1645,1647,"AL"],[1648,1648,"NSM"],[1649,1749,"AL"],[1750,1756,"NSM"],[1757,1757,"AN"],[1758,1758,"ON"],[1759,1764,"NSM"],[1765,1766,"AL"],[1767,1768,"NSM"],[1769,1769,"ON"],[1770,1773,"NSM"],[1774,1775,"AL"],[1776,1785,"EN"],[1786,1808,"AL"],[1809,1809,"NSM"],[1810,1839,"AL"],[1840,1866,"NSM"],[1867,1957,"AL"],[1958,1968,"NSM"],[1969,1983,"AL"],[1984,2026,"R"],[2027,2035,"NSM"],[2036,2037,"R"],[2038,2041,"ON"],[2042,2044,"R"],[2045,2045,"NSM"],[2046,2069,"R"],[2070,2073,"NSM"],[2074,2074,"R"],[2075,2083,"NSM"],[2084,2084,"R"],[2085,2087,"NSM"],[2088,2088,"R"],[2089,2093,"NSM"],[2094,2136,"R"],[2137,2139,"NSM"],[2140,2143,"R"],[2144,2191,"AL"],[2192,2193,"AN"],[2194,2198,"AL"],[2199,2207,"NSM"],[2208,2249,"AL"],[2250,2273,"NSM"],[2274,2274,"AN"],[2275,2306,"NSM"],[2362,2362,"NSM"],[2364,2364,"NSM"],[2369,2376,"NSM"],[2381,2381,"NSM"],[2385,2391,"NSM"],[2402,2403,"NSM"],[2433,2433,"NSM"],[2492,2492,"NSM"],[2497,2500,"NSM"],[2509,2509,"NSM"],[2530,2531,"NSM"],[2546,2547,"ET"],[2555,2555,"ET"],[2558,2558,"NSM"],[2561,2562,"NSM"],[2620,2620,"NSM"],[2625,2626,"NSM"],[2631,2632,"NSM"],[2635,2637,"NSM"],[2641,2641,"NSM"],[2672,2673,"NSM"],[2677,2677,"NSM"],[2689,2690,"NSM"],[2748,2748,"NSM"],[2753,2757,"NSM"],[2759,2760,"NSM"],[2765,2765,"NSM"],[2786,2787,"NSM"],[2801,2801,"ET"],[2810,2815,"NSM"],[2817,2817,"NSM"],[2876,2876,"NSM"],[2879,2879,"NSM"],[2881,2884,"NSM"],[2893,2893,"NSM"],[2901,2902,"NSM"],[2914,2915,"NSM"],[2946,2946,"NSM"],[3008,3008,"NSM"],[3021,3021,"NSM"],[3059,3064,"ON"],[3065,3065,"ET"],[3066,3066,"ON"],[3072,3072,"NSM"],[3076,3076,"NSM"],[3132,3132,"NSM"],[3134,3136,"NSM"],[3142,3144,"NSM"],[3146,3149,"NSM"],[3157,3158,"NSM"],[3170,3171,"NSM"],[3192,3198,"ON"],[3201,3201,"NSM"],[3260,3260,"NSM"],[3276,3277,"NSM"],[3298,3299,"NSM"],[3328,3329,"NSM"],[3387,3388,"NSM"],[3393,3396,"NSM"],[3405,3405,"NSM"],[3426,3427,"NSM"],[3457,3457,"NSM"],[3530,3530,"NSM"],[3538,3540,"NSM"],[3542,3542,"NSM"],[3633,3633,"NSM"],[3636,3642,"NSM"],[3647,3647,"ET"],[3655,3662,"NSM"],[3761,3761,"NSM"],[3764,3772,"NSM"],[3784,3790,"NSM"],[3864,3865,"NSM"],[3893,3893,"NSM"],[3895,3895,"NSM"],[3897,3897,"NSM"],[3898,3901,"ON"],[3953,3966,"NSM"],[3968,3972,"NSM"],[3974,3975,"NSM"],[3981,3991,"NSM"],[3993,4028,"NSM"],[4038,4038,"NSM"],[4141,4144,"NSM"],[4146,4151,"NSM"],[4153,4154,"NSM"],[4157,4158,"NSM"],[4184,4185,"NSM"],[4190,4192,"NSM"],[4209,4212,"NSM"],[4226,4226,"NSM"],[4229,4230,"NSM"],[4237,4237,"NSM"],[4253,4253,"NSM"],[4957,4959,"NSM"],[5008,5017,"ON"],[5120,5120,"ON"],[5760,5760,"WS"],[5787,5788,"ON"],[5906,5908,"NSM"],[5938,5939,"NSM"],[5970,5971,"NSM"],[6002,6003,"NSM"],[6068,6069,"NSM"],[6071,6077,"NSM"],[6086,6086,"NSM"],[6089,6099,"NSM"],[6107,6107,"ET"],[6109,6109,"NSM"],[6128,6137,"ON"],[6144,6154,"ON"],[6155,6157,"NSM"],[6158,6158,"BN"],[6159,6159,"NSM"],[6277,6278,"NSM"],[6313,6313,"NSM"],[6432,6434,"NSM"],[6439,6440,"NSM"],[6450,6450,"NSM"],[6457,6459,"NSM"],[6464,6464,"ON"],[6468,6469,"ON"],[6622,6655,"ON"],[6679,6680,"NSM"],[6683,6683,"NSM"],[6742,6742,"NSM"],[6744,6750,"NSM"],[6752,6752,"NSM"],[6754,6754,"NSM"],[6757,6764,"NSM"],[6771,6780,"NSM"],[6783,6783,"NSM"],[6832,6877,"NSM"],[6880,6891,"NSM"],[6912,6915,"NSM"],[6964,6964,"NSM"],[6966,6970,"NSM"],[6972,6972,"NSM"],[6978,6978,"NSM"],[7019,7027,"NSM"],[7040,7041,"NSM"],[7074,7077,"NSM"],[7080,7081,"NSM"],[7083,7085,"NSM"],[7142,7142,"NSM"],[7144,7145,"NSM"],[7149,7149,"NSM"],[7151,7153,"NSM"],[7212,7219,"NSM"],[7222,7223,"NSM"],[7376,7378,"NSM"],[7380,7392,"NSM"],[7394,7400,"NSM"],[7405,7405,"NSM"],[7412,7412,"NSM"],[7416,7417,"NSM"],[7616,7679,"NSM"],[8125,8125,"ON"],[8127,8129,"ON"],[8141,8143,"ON"],[8157,8159,"ON"],[8173,8175,"ON"],[8189,8190,"ON"],[8192,8202,"WS"],[8203,8205,"BN"],[8207,8207,"R"],[8208,8231,"ON"],[8232,8232,"WS"],[8233,8233,"B"],[8234,8238,"BN"],[8239,8239,"CS"],[8240,8244,"ET"],[8245,8259,"ON"],[8260,8260,"CS"],[8261,8286,"ON"],[8287,8287,"WS"],[8288,8303,"BN"],[8304,8304,"EN"],[8308,8313,"EN"],[8314,8315,"ES"],[8316,8318,"ON"],[8320,8329,"EN"],[8330,8331,"ES"],[8332,8334,"ON"],[8352,8399,"ET"],[8400,8432,"NSM"],[8448,8449,"ON"],[8451,8454,"ON"],[8456,8457,"ON"],[8468,8468,"ON"],[8470,8472,"ON"],[8478,8483,"ON"],[8485,8485,"ON"],[8487,8487,"ON"],[8489,8489,"ON"],[8494,8494,"ET"],[8506,8507,"ON"],[8512,8516,"ON"],[8522,8525,"ON"],[8528,8543,"ON"],[8585,8587,"ON"],[8592,8721,"ON"],[8722,8722,"ES"],[8723,8723,"ET"],[8724,9013,"ON"],[9083,9108,"ON"],[9110,9257,"ON"],[9280,9290,"ON"],[9312,9351,"ON"],[9352,9371,"EN"],[9450,9899,"ON"],[9901,10239,"ON"],[10496,11123,"ON"],[11126,11263,"ON"],[11493,11498,"ON"],[11503,11505,"NSM"],[11513,11519,"ON"],[11647,11647,"NSM"],[11744,11775,"NSM"],[11776,11869,"ON"],[11904,11929,"ON"],[11931,12019,"ON"],[12032,12245,"ON"],[12272,12287,"ON"],[12288,12288,"WS"],[12289,12292,"ON"],[12296,12320,"ON"],[12330,12333,"NSM"],[12336,12336,"ON"],[12342,12343,"ON"],[12349,12351,"ON"],[12441,12442,"NSM"],[12443,12444,"ON"],[12448,12448,"ON"],[12539,12539,"ON"],[12736,12773,"ON"],[12783,12783,"ON"],[12829,12830,"ON"],[12880,12895,"ON"],[12924,12926,"ON"],[12977,12991,"ON"],[13004,13007,"ON"],[13175,13178,"ON"],[13278,13279,"ON"],[13311,13311,"ON"],[19904,19967,"ON"],[42128,42182,"ON"],[42509,42511,"ON"],[42607,42610,"NSM"],[42611,42611,"ON"],[42612,42621,"NSM"],[42622,42623,"ON"],[42654,42655,"NSM"],[42736,42737,"NSM"],[42752,42785,"ON"],[42888,42888,"ON"],[43010,43010,"NSM"],[43014,43014,"NSM"],[43019,43019,"NSM"],[43045,43046,"NSM"],[43048,43051,"ON"],[43052,43052,"NSM"],[43064,43065,"ET"],[43124,43127,"ON"],[43204,43205,"NSM"],[43232,43249,"NSM"],[43263,43263,"NSM"],[43302,43309,"NSM"],[43335,43345,"NSM"],[43392,43394,"NSM"],[43443,43443,"NSM"],[43446,43449,"NSM"],[43452,43453,"NSM"],[43493,43493,"NSM"],[43561,43566,"NSM"],[43569,43570,"NSM"],[43573,43574,"NSM"],[43587,43587,"NSM"],[43596,43596,"NSM"],[43644,43644,"NSM"],[43696,43696,"NSM"],[43698,43700,"NSM"],[43703,43704,"NSM"],[43710,43711,"NSM"],[43713,43713,"NSM"],[43756,43757,"NSM"],[43766,43766,"NSM"],[43882,43883,"ON"],[44005,44005,"NSM"],[44008,44008,"NSM"],[44013,44013,"NSM"],[64285,64285,"R"],[64286,64286,"NSM"],[64287,64296,"R"],[64297,64297,"ES"],[64298,64335,"R"],[64336,64450,"AL"],[64451,64466,"ON"],[64467,64829,"AL"],[64830,64847,"ON"],[64848,64911,"AL"],[64912,64913,"ON"],[64914,64967,"AL"],[64968,64975,"ON"],[64976,65007,"BN"],[65008,65020,"AL"],[65021,65023,"ON"],[65024,65039,"NSM"],[65040,65049,"ON"],[65056,65071,"NSM"],[65072,65103,"ON"],[65104,65104,"CS"],[65105,65105,"ON"],[65106,65106,"CS"],[65108,65108,"ON"],[65109,65109,"CS"],[65110,65118,"ON"],[65119,65119,"ET"],[65120,65121,"ON"],[65122,65123,"ES"],[65124,65126,"ON"],[65128,65128,"ON"],[65129,65130,"ET"],[65131,65131,"ON"],[65136,65278,"AL"],[65279,65279,"BN"],[65281,65282,"ON"],[65283,65285,"ET"],[65286,65290,"ON"],[65291,65291,"ES"],[65292,65292,"CS"],[65293,65293,"ES"],[65294,65295,"CS"],[65296,65305,"EN"],[65306,65306,"CS"],[65307,65312,"ON"],[65339,65344,"ON"],[65371,65381,"ON"],[65504,65505,"ET"],[65506,65508,"ON"],[65509,65510,"ET"],[65512,65518,"ON"],[65520,65528,"BN"],[65529,65533,"ON"],[65534,65535,"BN"],[65793,65793,"ON"],[65856,65932,"ON"],[65936,65948,"ON"],[65952,65952,"ON"],[66045,66045,"NSM"],[66272,66272,"NSM"],[66273,66299,"EN"],[66422,66426,"NSM"],[67584,67870,"R"],[67871,67871,"ON"],[67872,68096,"R"],[68097,68099,"NSM"],[68100,68100,"R"],[68101,68102,"NSM"],[68103,68107,"R"],[68108,68111,"NSM"],[68112,68151,"R"],[68152,68154,"NSM"],[68155,68158,"R"],[68159,68159,"NSM"],[68160,68324,"R"],[68325,68326,"NSM"],[68327,68408,"R"],[68409,68415,"ON"],[68416,68863,"R"],[68864,68899,"AL"],[68900,68903,"NSM"],[68904,68911,"AL"],[68912,68921,"AN"],[68922,68927,"AL"],[68928,68937,"AN"],[68938,68968,"R"],[68969,68973,"NSM"],[68974,68974,"ON"],[68975,69215,"R"],[69216,69246,"AN"],[69247,69290,"R"],[69291,69292,"NSM"],[69293,69311,"R"],[69312,69327,"AL"],[69328,69336,"ON"],[69337,69369,"AL"],[69370,69375,"NSM"],[69376,69423,"R"],[69424,69445,"AL"],[69446,69456,"NSM"],[69457,69487,"AL"],[69488,69505,"R"],[69506,69509,"NSM"],[69510,69631,"R"],[69633,69633,"NSM"],[69688,69702,"NSM"],[69714,69733,"ON"],[69744,69744,"NSM"],[69747,69748,"NSM"],[69759,69761,"NSM"],[69811,69814,"NSM"],[69817,69818,"NSM"],[69826,69826,"NSM"],[69888,69890,"NSM"],[69927,69931,"NSM"],[69933,69940,"NSM"],[70003,70003,"NSM"],[70016,70017,"NSM"],[70070,70078,"NSM"],[70089,70092,"NSM"],[70095,70095,"NSM"],[70191,70193,"NSM"],[70196,70196,"NSM"],[70198,70199,"NSM"],[70206,70206,"NSM"],[70209,70209,"NSM"],[70367,70367,"NSM"],[70371,70378,"NSM"],[70400,70401,"NSM"],[70459,70460,"NSM"],[70464,70464,"NSM"],[70502,70508,"NSM"],[70512,70516,"NSM"],[70587,70592,"NSM"],[70606,70606,"NSM"],[70608,70608,"NSM"],[70610,70610,"NSM"],[70625,70626,"NSM"],[70712,70719,"NSM"],[70722,70724,"NSM"],[70726,70726,"NSM"],[70750,70750,"NSM"],[70835,70840,"NSM"],[70842,70842,"NSM"],[70847,70848,"NSM"],[70850,70851,"NSM"],[71090,71093,"NSM"],[71100,71101,"NSM"],[71103,71104,"NSM"],[71132,71133,"NSM"],[71219,71226,"NSM"],[71229,71229,"NSM"],[71231,71232,"NSM"],[71264,71276,"ON"],[71339,71339,"NSM"],[71341,71341,"NSM"],[71344,71349,"NSM"],[71351,71351,"NSM"],[71453,71453,"NSM"],[71455,71455,"NSM"],[71458,71461,"NSM"],[71463,71467,"NSM"],[71727,71735,"NSM"],[71737,71738,"NSM"],[71995,71996,"NSM"],[71998,71998,"NSM"],[72003,72003,"NSM"],[72148,72151,"NSM"],[72154,72155,"NSM"],[72160,72160,"NSM"],[72193,72198,"NSM"],[72201,72202,"NSM"],[72243,72248,"NSM"],[72251,72254,"NSM"],[72263,72263,"NSM"],[72273,72278,"NSM"],[72281,72283,"NSM"],[72330,72342,"NSM"],[72344,72345,"NSM"],[72544,72544,"NSM"],[72546,72548,"NSM"],[72550,72550,"NSM"],[72752,72758,"NSM"],[72760,72765,"NSM"],[72850,72871,"NSM"],[72874,72880,"NSM"],[72882,72883,"NSM"],[72885,72886,"NSM"],[73009,73014,"NSM"],[73018,73018,"NSM"],[73020,73021,"NSM"],[73023,73029,"NSM"],[73031,73031,"NSM"],[73104,73105,"NSM"],[73109,73109,"NSM"],[73111,73111,"NSM"],[73459,73460,"NSM"],[73472,73473,"NSM"],[73526,73530,"NSM"],[73536,73536,"NSM"],[73538,73538,"NSM"],[73562,73562,"NSM"],[73685,73692,"ON"],[73693,73696,"ET"],[73697,73713,"ON"],[78912,78912,"NSM"],[78919,78933,"NSM"],[90398,90409,"NSM"],[90413,90415,"NSM"],[92912,92916,"NSM"],[92976,92982,"NSM"],[94031,94031,"NSM"],[94095,94098,"NSM"],[94178,94178,"ON"],[94180,94180,"NSM"],[113821,113822,"NSM"],[113824,113827,"BN"],[117760,117973,"ON"],[118e3,118009,"EN"],[118010,118012,"ON"],[118016,118451,"ON"],[118458,118480,"ON"],[118496,118512,"ON"],[118528,118573,"NSM"],[118576,118598,"NSM"],[119143,119145,"NSM"],[119155,119162,"BN"],[119163,119170,"NSM"],[119173,119179,"NSM"],[119210,119213,"NSM"],[119273,119274,"ON"],[119296,119361,"ON"],[119362,119364,"NSM"],[119365,119365,"ON"],[119552,119638,"ON"],[120513,120513,"ON"],[120539,120539,"ON"],[120571,120571,"ON"],[120597,120597,"ON"],[120629,120629,"ON"],[120655,120655,"ON"],[120687,120687,"ON"],[120713,120713,"ON"],[120745,120745,"ON"],[120771,120771,"ON"],[120782,120831,"EN"],[121344,121398,"NSM"],[121403,121452,"NSM"],[121461,121461,"NSM"],[121476,121476,"NSM"],[121499,121503,"NSM"],[121505,121519,"NSM"],[122880,122886,"NSM"],[122888,122904,"NSM"],[122907,122913,"NSM"],[122915,122916,"NSM"],[122918,122922,"NSM"],[123023,123023,"NSM"],[123184,123190,"NSM"],[123566,123566,"NSM"],[123628,123631,"NSM"],[123647,123647,"ET"],[124140,124143,"NSM"],[124398,124399,"NSM"],[124643,124643,"NSM"],[124646,124646,"NSM"],[124654,124655,"NSM"],[124661,124661,"NSM"],[124928,125135,"R"],[125136,125142,"NSM"],[125143,125251,"R"],[125252,125258,"NSM"],[125259,126063,"R"],[126064,126143,"AL"],[126144,126207,"R"],[126208,126287,"AL"],[126288,126463,"R"],[126464,126703,"AL"],[126704,126705,"ON"],[126706,126719,"AL"],[126720,126975,"R"],[126976,127019,"ON"],[127024,127123,"ON"],[127136,127150,"ON"],[127153,127167,"ON"],[127169,127183,"ON"],[127185,127221,"ON"],[127232,127242,"EN"],[127243,127247,"ON"],[127279,127279,"ON"],[127338,127343,"ON"],[127405,127405,"ON"],[127584,127589,"ON"],[127744,128728,"ON"],[128732,128748,"ON"],[128752,128764,"ON"],[128768,128985,"ON"],[128992,129003,"ON"],[129008,129008,"ON"],[129024,129035,"ON"],[129040,129095,"ON"],[129104,129113,"ON"],[129120,129159,"ON"],[129168,129197,"ON"],[129200,129211,"ON"],[129216,129217,"ON"],[129232,129240,"ON"],[129280,129623,"ON"],[129632,129645,"ON"],[129648,129660,"ON"],[129664,129674,"ON"],[129678,129734,"ON"],[129736,129736,"ON"],[129741,129756,"ON"],[129759,129770,"ON"],[129775,129784,"ON"],[129792,129938,"ON"],[129940,130031,"ON"],[130032,130041,"EN"],[130042,130042,"ON"],[131070,131071,"BN"],[196606,196607,"BN"],[262142,262143,"BN"],[327678,327679,"BN"],[393214,393215,"BN"],[458750,458751,"BN"],[524286,524287,"BN"],[589822,589823,"BN"],[655358,655359,"BN"],[720894,720895,"BN"],[786430,786431,"BN"],[851966,851967,"BN"],[917502,917759,"BN"],[917760,917999,"NSM"],[918e3,921599,"BN"],[983038,983039,"BN"],[1048574,1048575,"BN"],[1114110,1114111,"BN"]];function Al(n){if(n<=255)return Vr[n];let e=0,t=_n.length-1;for(;e<=t;){let i=e+t>>1,r=_n[i];if(n<r[0]){t=i-1;continue}if(n>r[1]){e=i+1;continue}return r[2]}return"L"}function El(n){let e=n.length;if(e===0)return null;let t=new Array(e),i=!1;for(let a=0;a<e;){let l=n.charCodeAt(a),f=l,m=1;if(l>=55296&&l<=56319&&a+1<e){let M=n.charCodeAt(a+1);M>=56320&&M<=57343&&(f=(l-55296<<10)+(M-56320)+65536,m=2)}let h=Al(f);(h==="R"||h==="AL"||h==="AN")&&(i=!0);for(let M=0;M<m;M++)t[a+M]=h;a+=m}if(!i)return null;let r=0;for(let a=0;a<e;a++){let l=t[a];if(l==="L"){r=0;break}if(l==="R"||l==="AL"){r=1;break}}let o=new Int8Array(e);for(let a=0;a<e;a++)o[a]=r;let s=r&1?"R":"L",c=s,u=c;for(let a=0;a<e;a++)t[a]==="NSM"?t[a]=u:u=t[a];u=c;for(let a=0;a<e;a++){let l=t[a];l==="EN"?t[a]=u==="AL"?"AN":"EN":(l==="R"||l==="L"||l==="AL")&&(u=l)}for(let a=0;a<e;a++)t[a]==="AL"&&(t[a]="R");for(let a=1;a<e-1;a++)t[a]==="ES"&&t[a-1]==="EN"&&t[a+1]==="EN"&&(t[a]="EN"),t[a]==="CS"&&(t[a-1]==="EN"||t[a-1]==="AN")&&t[a+1]===t[a-1]&&(t[a]=t[a-1]);for(let a=0;a<e;a++){if(t[a]!=="EN")continue;let l;for(l=a-1;l>=0&&t[l]==="ET";l--)t[l]="EN";for(l=a+1;l<e&&t[l]==="ET";l++)t[l]="EN"}for(let a=0;a<e;a++){let l=t[a];(l==="WS"||l==="ES"||l==="ET"||l==="CS")&&(t[a]="ON")}u=c;for(let a=0;a<e;a++){let l=t[a];l==="EN"?t[a]=u==="L"?"L":"EN":(l==="R"||l==="L")&&(u=l)}for(let a=0;a<e;a++){if(t[a]!=="ON")continue;let l=a+1;for(;l<e&&t[l]==="ON";)l++;let f=a>0?t[a-1]:c,m=l<e?t[l]:c,h=f!=="L"?"R":"L";if(h===(m!=="L"?"R":"L"))for(let C=a;C<l;C++)t[C]=h;a=l-1}for(let a=0;a<e;a++)t[a]==="ON"&&(t[a]=s);for(let a=0;a<e;a++){let l=t[a];(o[a]&1)===0?l==="R"?o[a]++:(l==="AN"||l==="EN")&&(o[a]+=2):(l==="L"||l==="AN"||l==="EN")&&o[a]++}return o}function Kr(n,e){let t=El(n);if(t===null)return null;let i=new Int8Array(e.length);for(let r=0;r<e.length;r++)i[r]=t[e[r]];return i}var Fl=/[ \\t\\n\\r\\f]+/g,bl=/[\\t\\n\\r\\f]| {2,}|^ | $/;function Nl(n){let e=n??"normal";return e==="pre-wrap"?{mode:e,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:e,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function wl(n){if(!bl.test(n))return n;let e=n.replace(Fl," ");return e.charCodeAt(0)===32&&(e=e.slice(1)),e.length>0&&e.charCodeAt(e.length-1)===32&&(e=e.slice(0,-1)),e}function Cl(n){return/[\\r\\f]/.test(n)?n.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):n.replace(/\\r\\n/g,`\n`)}var In=null,Ml;function Dl(){return In===null&&(In=new Intl.Segmenter(Ml,{granularity:"word"})),In}var kl=/\\p{Script=Arabic}/u,jt=/\\p{M}/u,no=/\\p{Nd}/u;function Jr(n){return kl.test(n)}function Qr(n){return n>=19968&&n<=40959||n>=13312&&n<=19903||n>=131072&&n<=173791||n>=173824&&n<=177983||n>=177984&&n<=178207||n>=178208&&n<=183983||n>=183984&&n<=191471||n>=191472&&n<=192093||n>=194560&&n<=195103||n>=196608&&n<=201551||n>=201552&&n<=205743||n>=205744&&n<=210041||n>=63744&&n<=64255||n>=12288&&n<=12351||n>=12352&&n<=12447||n>=12448&&n<=12543||n>=44032&&n<=55215||n>=65280&&n<=65519}function Me(n){for(let e=0;e<n.length;e++){let t=n.charCodeAt(e);if(!(t<12288)){if(t>=55296&&t<=56319&&e+1<n.length){let i=n.charCodeAt(e+1);if(i>=56320&&i<=57343){let r=(t-55296<<10)+(i-56320)+65536;if(Qr(r))return!0;e++;continue}}if(Qr(t))return!0}}return!1}function Ll(n){let e=Vt(n);return e!==null&&($t.has(e)||Pe.has(e))}var Tl=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function Rl(n){return Me(n)}function vl(n){let e=Vt(n);return e!==null&&Tl.has(e)}function Gt(n){return!Ll(n)&&!vl(n)}var $t=new Set(["\\uFF0C","\\uFF0E","\\uFF01","\\uFF1A","\\uFF1B","\\uFF1F","\\u3001","\\u3002","\\u30FB","\\uFF09","\\u3015","\\u3009","\\u300B","\\u300D","\\u300F","\\u3011","\\u3017","\\u3019","\\u301B","\\u30FC","\\u3005","\\u303B","\\u309D","\\u309E","\\u30FD","\\u30FE"]),Nt=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),Hn=new Set(["\'","\\u2019"]),Pe=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),Bl=new Set([":",".","\\u060C","\\u061B"]),Ol=new Set(["\\u104F"]),Pl=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function _l(n){if(Un(n))return!0;let e=!1;for(let t of n){if(Pe.has(t)){e=!0;continue}if(!(e&&jt.test(t)))return!1}return e}function Il(n){for(let e of n)if(!$t.has(e)&&!Pe.has(e))return!1;return n.length>0}function Wl(n){if(Un(n))return!0;for(let e of n)if(!Nt.has(e)&&!Hn.has(e)&&!jt.test(e))return!1;return n.length>0}function Un(n){let e=!1;for(let t of n)if(!(t==="\\\\"||jt.test(t))){if(Nt.has(t)||Pe.has(t)||Hn.has(t)){e=!0;continue}return!1}return e}function io(n,e){let t=e-1;if(t<=0)return Math.max(t,0);let i=n.charCodeAt(t);if(i<56320||i>57343)return t;let r=t-1;if(r<0)return t;let o=n.charCodeAt(r);return o>=55296&&o<=56319?r:t}function Vt(n){if(n.length===0)return null;let e=io(n,n.length);return n.slice(e)}function Hl(n){let e=Array.from(n),t=e.length;for(;t>0;){let i=e[t-1];if(jt.test(i)){t--;continue}if(Nt.has(i)||Hn.has(i)){t--;continue}break}return t<=0||t===e.length?null:{head:e.slice(0,t).join(""),tail:e.slice(t).join("")}}function Ul(n,e,t){return t==="text"&&!e&&n.length===1&&n!=="-"&&n!=="\\u2014"?n:null}function Yr(n,e,t,i){let r=e[i],o=n[i];if(r==null)return o;let s=t[i];if(o.length===s)return o;let c=r.repeat(s);return n[i]=c,c}function Zr(n,e){return n&&e!==null&&Bl.has(e)}function ql(n){let e=Vt(n);return e!==null&&Ol.has(e)}function zl(n){if(n.length<2||n[0]!==" ")return null;let e=n.slice(1);return/^\\p{M}+$/u.test(e)?{space:" ",marks:e}:null}function Kt(n){let e=n.length;for(;e>0;){let t=io(n,e),i=n.slice(t,e);if(Pl.has(i))return!0;if(!Pe.has(i))return!1;e=t}return!1}function jl(n,e){if(e.preserveOrdinarySpaces||e.preserveHardBreaks){if(n===" ")return"preserved-space";if(n===" ")return"tab";if(e.preserveHardBreaks&&n===`\n`)return"hard-break"}return n===" "?"space":n==="\\xA0"||n==="\\u202F"||n==="\\u2060"||n==="\\uFEFF"?"glue":n==="\\u200B"?"zero-width-break":n==="\\xAD"?"soft-hyphen":"text"}var Gl=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function be(n){return n.length===1?n[0]:n.join("")}function $l(n,e){let t=[];for(let i=n.length-1;i>=0;i--)t.push(n[i]);return t.push(e),be(t)}function Vl(n,e,t,i){if(!Gl.test(n))return[{text:n,isWordLike:e,kind:"text",start:t}];let r=[],o=null,s=[],c=t,u=!1,a=0;for(let l of n){let f=jl(l,i),m=f==="text"&&e;if(o!==null&&f===o&&m===u){s.push(l),a+=l.length;continue}o!==null&&r.push({text:be(s),isWordLike:u,kind:o,start:c}),o=f,s=[l],c=t+a,u=m,a+=l.length}return o!==null&&r.push({text:be(s),isWordLike:u,kind:o,start:c}),r}function Wn(n){return n==="space"||n==="preserved-space"||n==="zero-width-break"||n==="hard-break"}var Kl=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function Jl(n,e){let t=n.texts[e];return t.startsWith("www.")?!0:Kl.test(t)&&e+1<n.len&&n.kinds[e+1]==="text"&&n.texts[e+1]==="//"}function Ql(n){return n.includes("?")&&(n.includes("://")||n.startsWith("www."))}function Yl(n){let e=n.texts.slice(),t=n.isWordLike.slice(),i=n.kinds.slice(),r=n.starts.slice();for(let s=0;s<n.len;s++){if(i[s]!=="text"||!Jl(n,s))continue;let c=[e[s]],u=s+1;for(;u<n.len&&!Wn(i[u]);){c.push(e[u]),t[s]=!0;let a=e[u].includes("?");if(i[u]="text",e[u]="",u++,a)break}e[s]=be(c)}let o=0;for(let s=0;s<e.length;s++){let c=e[s];c.length!==0&&(o!==s&&(e[o]=c,t[o]=t[s],i[o]=i[s],r[o]=r[s]),o++)}return e.length=o,t.length=o,i.length=o,r.length=o,{len:o,texts:e,isWordLike:t,kinds:i,starts:r}}function Zl(n){let e=[],t=[],i=[],r=[];for(let o=0;o<n.len;o++){let s=n.texts[o];if(e.push(s),t.push(n.isWordLike[o]),i.push(n.kinds[o]),r.push(n.starts[o]),!Ql(s))continue;let c=o+1;if(c>=n.len||Wn(n.kinds[c]))continue;let u=[],a=n.starts[c],l=c;for(;l<n.len&&!Wn(n.kinds[l]);)u.push(n.texts[l]),l++;u.length>0&&(e.push(be(u)),t.push(!0),i.push("text"),r.push(a),o=l-1)}return{len:e.length,texts:e,isWordLike:t,kinds:i,starts:r}}var Xl=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),Xr=/^[A-Za-z0-9_]+[,:;]*$/,eo=/[,:;]+$/;function ro(n){for(let e of n)if(no.test(e))return!0;return!1}function bt(n){if(n.length===0)return!1;for(let e of n)if(!(no.test(e)||Xl.has(e)))return!1;return!0}function ea(n){let e=[],t=[],i=[],r=[];for(let o=0;o<n.len;o++){let s=n.texts[o],c=n.kinds[o];if(c==="text"&&bt(s)&&ro(s)){let u=[s],a=o+1;for(;a<n.len&&n.kinds[a]==="text"&&bt(n.texts[a]);)u.push(n.texts[a]),a++;e.push(be(u)),t.push(!0),i.push("text"),r.push(n.starts[o]),o=a-1;continue}e.push(s),t.push(n.isWordLike[o]),i.push(c),r.push(n.starts[o])}return{len:e.length,texts:e,isWordLike:t,kinds:i,starts:r}}function ta(n){let e=[],t=[],i=[],r=[];for(let o=0;o<n.len;o++){let s=n.texts[o],c=n.kinds[o],u=n.isWordLike[o];if(c==="text"&&u&&Xr.test(s)){let a=[s],l=eo.test(s),f=o+1;for(;l&&f<n.len&&n.kinds[f]==="text"&&n.isWordLike[f]&&Xr.test(n.texts[f]);){let m=n.texts[f];a.push(m),l=eo.test(m),f++}e.push(be(a)),t.push(!0),i.push("text"),r.push(n.starts[o]),o=f-1;continue}e.push(s),t.push(u),i.push(c),r.push(n.starts[o])}return{len:e.length,texts:e,isWordLike:t,kinds:i,starts:r}}function na(n){let e=[],t=[],i=[],r=[];for(let o=0;o<n.len;o++){let s=n.texts[o];if(n.kinds[o]==="text"&&s.includes("-")){let c=s.split("-"),u=c.length>1;for(let a=0;a<c.length;a++){let l=c[a];if(!u)break;(l.length===0||!ro(l)||!bt(l))&&(u=!1)}if(u){let a=0;for(let l=0;l<c.length;l++){let f=c[l],m=l<c.length-1?`${f}-`:f;e.push(m),t.push(!0),i.push("text"),r.push(n.starts[o]+a),a+=m.length}continue}}e.push(s),t.push(n.isWordLike[o]),i.push(n.kinds[o]),r.push(n.starts[o])}return{len:e.length,texts:e,isWordLike:t,kinds:i,starts:r}}function ia(n){let e=[],t=[],i=[],r=[],o=0;for(;o<n.len;){let s=[n.texts[o]],c=n.isWordLike[o],u=n.kinds[o],a=n.starts[o];if(u==="glue"){let l=[s[0]],f=a;for(o++;o<n.len&&n.kinds[o]==="glue";)l.push(n.texts[o]),o++;let m=be(l);if(o<n.len&&n.kinds[o]==="text")s[0]=m,s.push(n.texts[o]),c=n.isWordLike[o],u="text",a=f,o++;else{e.push(m),t.push(!1),i.push("glue"),r.push(f);continue}}else o++;if(u==="text")for(;o<n.len&&n.kinds[o]==="glue";){let l=[];for(;o<n.len&&n.kinds[o]==="glue";)l.push(n.texts[o]),o++;let f=be(l);if(o<n.len&&n.kinds[o]==="text"){s.push(f,n.texts[o]),c=c||n.isWordLike[o],o++;continue}s.push(f)}e.push(be(s)),t.push(c),i.push(u),r.push(a)}return{len:e.length,texts:e,isWordLike:t,kinds:i,starts:r}}function ra(n){let e=n.texts.slice(),t=n.isWordLike.slice(),i=n.kinds.slice(),r=n.starts.slice();for(let o=0;o<e.length-1;o++){if(i[o]!=="text"||i[o+1]!=="text"||!Me(e[o])||!Me(e[o+1]))continue;let s=Hl(e[o]);s!==null&&(e[o]=s.head,e[o+1]=s.tail+e[o+1],r[o+1]=r[o]+s.head.length)}return{len:e.length,texts:e,isWordLike:t,kinds:i,starts:r}}function to(n,e,t){let i=Dl(),r=0,o=[],s=[],c=[],u=[],a=[],l=[],f=[],m=[],h=[],M=[],C=[],A=[];for(let p of i.segment(n))for(let S of Vl(p.segment,p.isWordLike??!1,p.index,t)){let Z=function(){l[T]!==null&&(s[T]=[Yr(o,l,f,T)],l[T]=null),s[T].push(S.text),c[T]=c[T]||S.isWordLike,m[T]=m[T]||N,h[T]=h[T]||v,M[T]=H,C[T]=X,A[T]=Zr(h[T],W)},F=S.kind==="text",b=Ul(S.text,S.isWordLike,S.kind),N=Me(S.text),v=Jr(S.text),W=Vt(S.text),H=Kt(S.text),X=ql(S.text),T=r-1;e.carryCJKAfterClosingQuote&&F&&r>0&&u[T]==="text"&&N&&m[T]&&M[T]||F&&r>0&&u[T]==="text"&&Il(S.text)&&m[T]||F&&r>0&&u[T]==="text"&&C[T]?Z():F&&r>0&&u[T]==="text"&&S.isWordLike&&v&&A[T]?(Z(),c[T]=!0):b!==null&&r>0&&u[T]==="text"&&l[T]===b?f[T]=(f[T]??1)+1:F&&!S.isWordLike&&r>0&&u[T]==="text"&&(_l(S.text)||S.text==="-"&&c[T])?Z():(o[r]=S.text,s[r]=[S.text],c[r]=S.isWordLike,u[r]=S.kind,a[r]=S.start,l[r]=b,f[r]=b===null?0:1,m[r]=N,h[r]=v,M[r]=H,C[r]=X,A[r]=Zr(v,W),r++)}for(let p=0;p<r;p++){if(l[p]!==null){o[p]=Yr(o,l,f,p);continue}o[p]=be(s[p])}for(let p=1;p<r;p++)u[p]==="text"&&!c[p]&&Un(o[p])&&u[p-1]==="text"&&(o[p-1]+=o[p],c[p-1]=c[p-1]||c[p],o[p]="");let z=Array.from({length:r},()=>null),P=-1;for(let p=r-1;p>=0;p--){let S=o[p];if(S.length!==0){if(u[p]==="text"&&!c[p]&&Wl(S)&&P>=0&&u[P]==="text"){let F=z[P]??[];F.push(S),z[P]=F,a[P]=a[p],o[p]="";continue}P=p}}for(let p=0;p<r;p++){let S=z[p];S!=null&&(o[p]=$l(S,o[p]))}let k=0;for(let p=0;p<r;p++){let S=o[p];S.length!==0&&(k!==p&&(o[k]=S,c[k]=c[p],u[k]=u[p],a[k]=a[p]),k++)}o.length=k,c.length=k,u.length=k,a.length=k;let Y=ia({len:k,texts:o,isWordLike:c,kinds:u,starts:a}),y=ra(ta(na(ea(Zl(Yl(Y))))));for(let p=0;p<y.len-1;p++){let S=zl(y.texts[p]);S!==null&&(y.kinds[p]!=="space"&&y.kinds[p]!=="preserved-space"||y.kinds[p+1]!=="text"||!Jr(y.texts[p+1])||(y.texts[p]=S.space,y.isWordLike[p]=!1,y.kinds[p]=y.kinds[p]==="preserved-space"?"preserved-space":"space",y.texts[p+1]=S.marks+y.texts[p+1],y.starts[p+1]=y.starts[p]+S.space.length))}return y}function oa(n,e){if(n.len===0)return[];if(!e.preserveHardBreaks)return[{startSegmentIndex:0,endSegmentIndex:n.len,consumedEndSegmentIndex:n.len}];let t=[],i=0;for(let r=0;r<n.len;r++)n.kinds[r]==="hard-break"&&(t.push({startSegmentIndex:i,endSegmentIndex:r,consumedEndSegmentIndex:r+1}),i=r+1);return i<n.len&&t.push({startSegmentIndex:i,endSegmentIndex:n.len,consumedEndSegmentIndex:n.len}),t}function sa(n){if(n.len<=1)return n;let e=[],t=[],i=[],r=[],o=null,s=!1,c=0,u=!1,a=!1;function l(){o!==null&&(e.push(be(o)),t.push(s),i.push("text"),r.push(c),o=null)}for(let f=0;f<n.len;f++){let m=n.texts[f],h=n.kinds[f],M=n.isWordLike[f],C=n.starts[f];if(h==="text"){let A=Rl(m),z=Gt(m);if(o!==null&&u&&a){o.push(m),s=s||M,u=u||A,a=z;continue}l(),o=[m],s=M,c=C,u=A,a=z;continue}l(),e.push(m),t.push(M),i.push(h),r.push(C)}return l(),{len:e.length,texts:e,isWordLike:t,kinds:i,starts:r}}function oo(n,e,t="normal",i="normal"){let r=Nl(t),o=r.mode==="pre-wrap"?Cl(n):wl(n);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let s=i==="keep-all"?sa(to(o,e,r)):to(o,e,r);return{normalized:o,chunks:oa(s,r),...s}}var Ye=null,so=new Map,Ze=null,la=96,aa=/\\p{Emoji_Presentation}/u,ua=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,qn=null,lo=new Map;function zn(){if(Ye!==null)return Ye;if(typeof OffscreenCanvas<"u")return Ye=new OffscreenCanvas(1,1).getContext("2d"),Ye;if(typeof document<"u")return Ye=document.createElement("canvas").getContext("2d"),Ye;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function ca(n){let e=so.get(n);return e||(e=new Map,so.set(n,e)),e}function Le(n,e){let t=e.get(n);return t===void 0&&(t={width:zn().measureText(n).width,containsCJK:Me(n)},e.set(n,t)),t}function Xe(){if(Ze!==null)return Ze;if(typeof navigator>"u")return Ze={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},Ze;let n=navigator.userAgent,t=navigator.vendor==="Apple Computer, Inc."&&n.includes("Safari/")&&!n.includes("Chrome/")&&!n.includes("Chromium/")&&!n.includes("CriOS/")&&!n.includes("FxiOS/")&&!n.includes("EdgiOS/"),i=n.includes("Chrome/")||n.includes("Chromium/")||n.includes("CriOS/")||n.includes("Edg/");return Ze={lineFitEpsilon:t?1/64:.005,carryCJKAfterClosingQuote:i,preferPrefixWidthsForBreakableRuns:t,preferEarlySoftHyphenBreak:t},Ze}function da(n){let e=n.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return e?parseFloat(e[1]):16}function ao(){return qn===null&&(qn=new Intl.Segmenter(void 0,{granularity:"grapheme"})),qn}function fa(n){return aa.test(n)||n.includes("\\uFE0F")}function uo(n){return ua.test(n)}function ma(n,e){let t=lo.get(n);if(t!==void 0)return t;let i=zn();i.font=n;let r=i.measureText("\\u{1F600}").width;if(t=0,r>e+.5&&typeof document<"u"&&document.body!==null){let o=document.createElement("span");o.style.font=n,o.style.display="inline-block",o.style.visibility="hidden",o.style.position="absolute",o.textContent="\\u{1F600}",document.body.appendChild(o);let s=o.getBoundingClientRect().width;document.body.removeChild(o),r-s>.5&&(t=r-s)}return lo.set(n,t),t}function pa(n){let e=0,t=ao();for(let i of t.segment(n))fa(i.segment)&&e++;return e}function ha(n,e){return e.emojiCount===void 0&&(e.emojiCount=pa(n)),e.emojiCount}function _e(n,e,t){return t===0?e.width:e.width-ha(n,e)*t}function co(n,e,t,i,r){if(e.breakableFitAdvances!==void 0)return e.breakableFitAdvances;let o=ao(),s=[];for(let l of o.segment(n))s.push(l.segment);if(s.length<=1)return e.breakableFitAdvances=null,e.breakableFitAdvances;if(r==="sum-graphemes"){let l=[];for(let f of s){let m=Le(f,t);l.push(_e(f,m,i))}return e.breakableFitAdvances=l,e.breakableFitAdvances}if(r==="pair-context"||s.length>la){let l=[],f=null,m=0;for(let h of s){let M=Le(h,t),C=_e(h,M,i);if(f===null)l.push(C);else{let A=f+h,z=Le(A,t);l.push(_e(A,z,i)-m)}f=h,m=C}return e.breakableFitAdvances=l,e.breakableFitAdvances}let c=[],u="",a=0;for(let l of s){u+=l;let f=Le(u,t),m=_e(u,f,i);c.push(m-a),a=m}return e.breakableFitAdvances=c,e.breakableFitAdvances}function fo(n,e){let t=zn();t.font=n;let i=ca(n),r=da(n),o=e?ma(n,r):0;return{cache:i,fontSize:r,emojiCorrection:o}}function xa(n,e){for(;e<n.widths.length;){let t=n.kinds[e];if(t!=="space"&&t!=="zero-width-break"&&t!=="soft-hyphen")break;e++}return e}function ga(n,e){if(e<=0)return 0;let t=n%e;return Math.abs(t)<=1e-6?e:e-t}function Sa(n,e,t,i,r){let o=0,s=e;for(;o<n.length;){let c=s+n[o];if((o+1<n.length?c+r:c)>t+i)break;s=c,o++}return{fitCount:o,fittedWidth:s}}function mo(n,e){return n.simpleLineWalkFastPath?po(n,e):ho(n,e)}function po(n,e,t){let{widths:i,kinds:r,breakableFitAdvances:o}=n;if(i.length===0)return 0;let c=Xe().lineFitEpsilon,u=e+c,a=0,l=0,f=!1,m=0,h=0,M=0,C=0,A=-1,z=0;function P(){A=-1,z=0}function k(b=M,N=C,v=l){a++,t?.({startSegmentIndex:m,startGraphemeIndex:h,endSegmentIndex:b,endGraphemeIndex:N,width:v}),l=0,f=!1,P()}function Y(b,N){f=!0,m=b,h=0,M=b+1,C=0,l=N}function y(b,N,v){f=!0,m=b,h=N,M=b,C=N+1,l=v}function p(b,N){if(!f){Y(b,N);return}l+=N,M=b+1,C=0}function S(b,N){let v=o[b];for(let W=N;W<v.length;W++){let H=v[W];f?l+H>u?(k(),y(b,W,H)):(l+=H,M=b,C=W+1):y(b,W,H)}f&&M===b&&C===v.length&&(M=b+1,C=0)}let F=0;for(;F<i.length&&!(!f&&(F=xa(n,F),F>=i.length));){let b=i[F],N=r[F],v=N==="space"||N==="preserved-space"||N==="tab"||N==="zero-width-break"||N==="soft-hyphen";if(!f){b>e&&o[F]!==null?S(F,0):Y(F,b),v&&(A=F+1,z=l-b),F++;continue}if(l+b>u){if(v){p(F,b),k(F+1,0,l-b),F++;continue}if(A>=0){if(M>A||M===A&&C>0){k();continue}k(A,0,z);continue}if(b>e&&o[F]!==null){k(),S(F,0),F++;continue}k();continue}p(F,b),v&&(A=F+1,z=l-b),F++}return f&&k(),a}function ho(n,e,t){if(n.simpleLineWalkFastPath)return po(n,e,t);let{widths:i,lineEndFitAdvances:r,lineEndPaintAdvances:o,kinds:s,breakableFitAdvances:c,discretionaryHyphenWidth:u,tabStopAdvance:a,chunks:l}=n;if(i.length===0||l.length===0)return 0;let f=Xe(),m=f.lineFitEpsilon,h=e+m,M=0,C=0,A=!1,z=0,P=0,k=0,Y=0,y=-1,p=0,S=0,F=null;function b(){y=-1,p=0,S=0,F=null}function N(U=k,G=Y,B=C){M++,t?.({startSegmentIndex:z,startGraphemeIndex:P,endSegmentIndex:U,endGraphemeIndex:G,width:B}),C=0,A=!1,b()}function v(U,G){A=!0,z=U,P=0,k=U+1,Y=0,C=G}function W(U,G,B){A=!0,z=U,P=G,k=U,Y=G+1,C=B}function H(U,G){if(!A){v(U,G);return}C+=G,k=U+1,Y=0}function X(U,G,B,J){if(!G)return;let Ee=U==="tab"?0:r[B],xe=U==="tab"?J:o[B];y=B+1,p=C-J+Ee,S=C-J+xe,F=U}function T(U,G){let B=c[U];for(let J=G;J<B.length;J++){let Ee=B[J];A?C+Ee>h?(N(),W(U,J,Ee)):(C+=Ee,k=U,Y=J+1):W(U,J,Ee)}A&&k===U&&Y===B.length&&(k=U+1,Y=0)}function Z(U){if(F!=="soft-hyphen")return!1;let G=c[U];if(G==null)return!1;let{fitCount:B,fittedWidth:J}=Sa(G,C,e,m,u);return B===0?!1:(C=J,k=U,Y=B,b(),B===G.length?(k=U+1,Y=0,!0):(N(U,B,J+u),T(U,B),!0))}function ee(U){M++,t?.({startSegmentIndex:U.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:U.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),b()}for(let U=0;U<l.length;U++){let G=l[U];if(G.startSegmentIndex===G.endSegmentIndex){ee(G);continue}A=!1,C=0,z=G.startSegmentIndex,P=0,k=G.startSegmentIndex,Y=0,b();let B=G.startSegmentIndex;for(;B<G.endSegmentIndex;){let J=s[B],Ee=J==="space"||J==="preserved-space"||J==="tab"||J==="zero-width-break"||J==="soft-hyphen",xe=J==="tab"?ga(C,a):i[B];if(J==="soft-hyphen"){A&&(k=B+1,Y=0,y=B+1,p=C+u,S=C+u,F=J),B++;continue}if(!A){xe>e&&c[B]!==null?T(B,0):v(B,xe),X(J,Ee,B,xe),B++;continue}if(C+xe>h){let D=C+(J==="tab"?0:r[B]),L=C+(J==="tab"?xe:o[B]);if(F==="soft-hyphen"&&f.preferEarlySoftHyphenBreak&&p<=h){N(y,0,S);continue}if(F==="soft-hyphen"&&Z(B)){B++;continue}if(Ee&&D<=h){H(B,xe),N(B+1,0,L),B++;continue}if(y>=0&&p<=h){if(k>y||k===y&&Y>0){N();continue}let Q=y;N(Q,0,S),B=Q;continue}if(xe>e&&c[B]!==null){N(),T(B,0),B++;continue}N();continue}H(B,xe),X(J,Ee,B,xe),B++}if(A){let J=y===G.consumedEndSegmentIndex?S:C;N(G.consumedEndSegmentIndex,0,J)}}return M}var jn=null;function ya(){return jn===null&&(jn=new Intl.Segmenter(void 0,{granularity:"grapheme"})),jn}function Aa(n){return n?{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[],segments:[]}:{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[]}}function Ea(n,e){let t=[],i=[],r=0,o=!1,s=!1,c=!1;function u(){i.length!==0&&(t.push({text:i.length===1?i[0]:i.join(""),start:r}),i=[],o=!1,s=!1,c=!1)}function a(f,m,h){i=[f],r=m,o=h,s=Kt(f),c=Nt.has(f)}function l(f,m){i.push(f),o=o||m;let h=Kt(f);f.length===1&&Pe.has(f)?s=s||h:s=h,c=!1}for(let f of ya().segment(n)){let m=f.segment,h=Me(m);if(i.length===0){a(m,f.index,h);continue}if(c||$t.has(m)||Pe.has(m)||e.carryCJKAfterClosingQuote&&h&&s){l(m,h);continue}if(!o&&!h){l(m,h);continue}u(),a(m,f.index,h)}return u(),t}function Fa(n){if(n.length<=1)return n;let e=[],t=[n[0].text],i=n[0].start,r=Me(n[0].text),o=Gt(n[0].text);function s(){e.push({text:t.length===1?t[0]:t.join(""),start:i})}for(let c=1;c<n.length;c++){let u=n[c],a=Me(u.text),l=Gt(u.text);if(r&&o){t.push(u.text),r=r||a,o=l;continue}s(),t=[u.text],i=u.start,r=a,o=l}return s(),e}function ba(n,e,t,i){let r=Xe(),{cache:o,emojiCorrection:s}=fo(e,uo(n.normalized)),c=_e("-",Le("-",o),s),a=_e(" ",Le(" ",o),s)*8;if(n.len===0)return Aa(t);let l=[],f=[],m=[],h=[],M=n.chunks.length<=1,C=t?[]:null,A=[],z=t?[]:null,P=Array.from({length:n.len});function k(S,F,b,N,v,W,H){v!=="text"&&v!=="space"&&v!=="zero-width-break"&&(M=!1),l.push(F),f.push(b),m.push(N),h.push(v),C?.push(W),A.push(H),z!==null&&z.push(S)}function Y(S,F,b,N,v){let W=Le(S,o),H=_e(S,W,s),X=F==="space"||F==="preserved-space"||F==="zero-width-break"?0:H,T=F==="space"||F==="zero-width-break"?0:H;if(v&&N&&S.length>1){let Z="sum-graphemes";bt(S)?Z="pair-context":r.preferPrefixWidthsForBreakableRuns&&(Z="segment-prefixes");let ee=co(S,W,o,s,Z);k(S,H,X,T,F,b,ee);return}k(S,H,X,T,F,b,null)}for(let S=0;S<n.len;S++){P[S]=l.length;let F=n.texts[S],b=n.isWordLike[S],N=n.kinds[S],v=n.starts[S];if(N==="soft-hyphen"){k(F,0,c,c,N,v,null);continue}if(N==="hard-break"){k(F,0,0,0,N,v,null);continue}if(N==="tab"){k(F,0,0,0,N,v,null);continue}let W=Le(F,o);if(N==="text"&&W.containsCJK){let H=Ea(F,r),X=i==="keep-all"?Fa(H):H;for(let T=0;T<X.length;T++){let Z=X[T];Y(Z.text,"text",v+Z.start,b,i==="keep-all"||!Me(Z.text))}continue}Y(F,N,v,b,!0)}let y=Na(n.chunks,P,l.length),p=C===null?null:Kr(n.normalized,C);return z!==null?{widths:l,lineEndFitAdvances:f,lineEndPaintAdvances:m,kinds:h,simpleLineWalkFastPath:M,segLevels:p,breakableFitAdvances:A,discretionaryHyphenWidth:c,tabStopAdvance:a,chunks:y,segments:z}:{widths:l,lineEndFitAdvances:f,lineEndPaintAdvances:m,kinds:h,simpleLineWalkFastPath:M,segLevels:p,breakableFitAdvances:A,discretionaryHyphenWidth:c,tabStopAdvance:a,chunks:y}}function Na(n,e,t){let i=[];for(let r=0;r<n.length;r++){let o=n[r],s=o.startSegmentIndex<e.length?e[o.startSegmentIndex]:t,c=o.endSegmentIndex<e.length?e[o.endSegmentIndex]:t,u=o.consumedEndSegmentIndex<e.length?e[o.consumedEndSegmentIndex]:t;i.push({startSegmentIndex:s,endSegmentIndex:c,consumedEndSegmentIndex:u})}return i}function wa(n,e,t,i){let r=i?.wordBreak??"normal",o=oo(n,Xe(),i?.whiteSpace,r);return ba(o,e,t,r)}function xo(n,e,t){return wa(n,e,!1,t)}function go(n,e,t){let i=mo(n,e);return{lineCount:i,height:i*t}}var Ca={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function So(n,e){let t={...Ca,...e},i=1.2;for(let r=t.baseFontSize;r>=t.minFontSize;r-=t.step){let o=`${t.fontWeight} ${r}px ${t.fontFamily}`,s=xo(n,o),{lineCount:c}=go(s,t.maxWidth,r*i);if(c<=1)return{fontSize:r,fits:!0}}return{fontSize:t.minFontSize,fits:!1}}window.__timelines=window.__timelines||{};window.__hyperframes={fitTextFontSize:So};function yo(){let n=window;n.__hyperframeRuntimeBootstrapped||(n.__hyperframeRuntimeBootstrapped=!0,$r())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",yo,{once:!0}):yo();})();\n';
6099
6196
  }
6100
6197
  });
6101
6198
 
@@ -9381,9 +9478,12 @@ function readCache(path2) {
9381
9478
  }
9382
9479
  }
9383
9480
  function writeCache(path2, data) {
9384
- mkdirSync(dirname3(path2), { recursive: true });
9385
- const entry = { fetchedAt: Date.now(), data };
9386
- writeFileSync(path2, JSON.stringify(entry), "utf-8");
9481
+ try {
9482
+ mkdirSync(dirname3(path2), { recursive: true });
9483
+ const entry = { fetchedAt: Date.now(), data };
9484
+ writeFileSync(path2, JSON.stringify(entry), "utf-8");
9485
+ } catch {
9486
+ }
9387
9487
  }
9388
9488
  async function fetchJson(url) {
9389
9489
  const res = await fetch(url, { signal: AbortSignal.timeout(FETCH_TIMEOUT_MS) });
@@ -25564,13 +25664,13 @@ async function beginFrameCapture(page, options, frameTimeTicks, interval) {
25564
25664
  }
25565
25665
  async function pageScreenshotCapture(page, options) {
25566
25666
  const client = await getCdpSession(page);
25567
- const format = options.format === "png" ? "png" : "jpeg";
25667
+ const isPng = options.format === "png";
25568
25668
  const result = await client.send("Page.captureScreenshot", {
25569
- format,
25570
- quality: format === "jpeg" ? options.quality ?? 80 : void 0,
25669
+ format: isPng ? "png" : "jpeg",
25670
+ quality: isPng ? void 0 : options.quality ?? 80,
25571
25671
  fromSurface: true,
25572
25672
  captureBeyondViewport: false,
25573
- optimizeForSpeed: true
25673
+ optimizeForSpeed: !isPng
25574
25674
  });
25575
25675
  return Buffer.from(result.data, "base64");
25576
25676
  }
@@ -25814,12 +25914,6 @@ async function createCaptureSession(serverUrl, outputDir, options, onBeforeCaptu
25814
25914
  deviceScaleFactor: options.deviceScaleFactor || 1
25815
25915
  };
25816
25916
  await page.setViewport(viewport);
25817
- if (options.format === "png") {
25818
- const cdp = await getCdpSession(page);
25819
- await cdp.send("Emulation.setDefaultBackgroundColorOverride", {
25820
- color: { r: 0, g: 0, b: 0, a: 0 }
25821
- });
25822
- }
25823
25917
  return {
25824
25918
  browser,
25825
25919
  page,
@@ -25915,6 +26009,9 @@ async function initializeSession(session) {
25915
26009
  );
25916
26010
  }
25917
26011
  await page.evaluate(`document.fonts?.ready`);
26012
+ if (session.options.format === "png") {
26013
+ await initTransparentBackground(session.page);
26014
+ }
25918
26015
  session.isInitialized = true;
25919
26016
  return;
25920
26017
  }
@@ -25978,6 +26075,9 @@ async function initializeSession(session) {
25978
26075
  await page.evaluate(`document.fonts?.ready`);
25979
26076
  warmupRunning = false;
25980
26077
  session.beginFrameTimeTicks = (warmupTicks + 10) * session.beginFrameIntervalMs;
26078
+ if (session.options.format === "png") {
26079
+ await initTransparentBackground(session.page);
26080
+ }
25981
26081
  session.isInitialized = true;
25982
26082
  }
25983
26083
  async function captureFrameErrorDiagnostics(session, frameIndex, time, error) {
@@ -28788,6 +28888,7 @@ function calculateOptimalWorkers(totalFrames, requested, config) {
28788
28888
  const effectiveCoresPerWorker = config?.coresPerWorker ?? DEFAULT_CONFIG2.coresPerWorker;
28789
28889
  const effectiveMinParallelFrames = config?.minParallelFrames ?? DEFAULT_CONFIG2.minParallelFrames;
28790
28890
  const effectiveLargeRenderThreshold = config?.largeRenderThreshold ?? DEFAULT_CONFIG2.largeRenderThreshold;
28891
+ const captureCostMultiplier = Math.max(1, config?.captureCostMultiplier ?? 1);
28791
28892
  if (requested !== void 0) {
28792
28893
  return Math.max(MIN_WORKERS, Math.min(effectiveMaxWorkers, requested));
28793
28894
  }
@@ -28800,8 +28901,14 @@ function calculateOptimalWorkers(totalFrames, requested, config) {
28800
28901
  const optimal = Math.min(cpuBasedWorkers, memoryBasedWorkers, frameBasedWorkers);
28801
28902
  const minWorkersForJob = totalFrames >= effectiveMinParallelFrames ? 2 : MIN_WORKERS;
28802
28903
  let finalWorkers = Math.max(minWorkersForJob, Math.min(effectiveMaxWorkers, optimal));
28803
- if (totalFrames >= effectiveLargeRenderThreshold) {
28804
- const cpuScaledMax = Math.max(2, Math.floor(cpuCount / effectiveCoresPerWorker));
28904
+ const weightedFrames = totalFrames * captureCostMultiplier;
28905
+ const contentionThreshold = Math.max(
28906
+ effectiveMinParallelFrames,
28907
+ Math.floor(effectiveLargeRenderThreshold / 3)
28908
+ );
28909
+ if (totalFrames >= effectiveLargeRenderThreshold || weightedFrames >= contentionThreshold) {
28910
+ const weightedCoresPerWorker = effectiveCoresPerWorker * captureCostMultiplier;
28911
+ const cpuScaledMax = Math.max(MIN_WORKERS, Math.floor(cpuCount / weightedCoresPerWorker));
28805
28912
  if (finalWorkers > cpuScaledMax) {
28806
28913
  finalWorkers = cpuScaledMax;
28807
28914
  }
@@ -30705,6 +30812,220 @@ var init_htmlCompiler = __esm({
30705
30812
  }
30706
30813
  });
30707
30814
 
30815
+ // ../core/src/compiler/compositionScoping.ts
30816
+ import postcss from "postcss";
30817
+ function escapeRegExp2(value) {
30818
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
30819
+ }
30820
+ function escapeCssAttributeValue(value) {
30821
+ return value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
30822
+ }
30823
+ function scopeSelector(selector, scope, compositionId) {
30824
+ const selectorWithoutRootTiming = normalizeCompositionRootSelector(
30825
+ selector,
30826
+ scope,
30827
+ compositionId
30828
+ );
30829
+ const trimmed = selectorWithoutRootTiming.trim();
30830
+ if (!trimmed) return selector;
30831
+ if (/^(html|body|:root|\*)$/i.test(trimmed)) return selector;
30832
+ const compositionIdPattern = new RegExp(
30833
+ `data-composition-id\\s*=\\s*(["'])${escapeRegExp2(compositionId)}\\1`
30834
+ );
30835
+ if (compositionIdPattern.test(trimmed)) return selectorWithoutRootTiming;
30836
+ const leading = selectorWithoutRootTiming.match(/^\s*/)?.[0] ?? "";
30837
+ const trailing = selectorWithoutRootTiming.match(/\s*$/)?.[0] ?? "";
30838
+ return `${leading}${scope} ${trimmed}${trailing}`;
30839
+ }
30840
+ function normalizeCompositionRootSelector(selector, scope, compositionId) {
30841
+ const quotedCompId = escapeRegExp2(compositionId);
30842
+ const compAttr = String.raw`\[\s*data-composition-id\s*=\s*(?:"${quotedCompId}"|'${quotedCompId}')\s*\]`;
30843
+ const timingAttr = String.raw`\s*\[\s*data-(?:start|duration)\s*=\s*(?:"[^"]*"|'[^']*')\s*\]`;
30844
+ return selector.replace(new RegExp(`${compAttr}(?:${timingAttr})+`, "g"), scope).replace(new RegExp(`(?:${timingAttr})+${compAttr}`, "g"), scope);
30845
+ }
30846
+ function isAtRuleNode(node) {
30847
+ return node?.type === "atrule";
30848
+ }
30849
+ function isInsideGlobalAtRule(rule) {
30850
+ let current = rule.parent;
30851
+ while (current) {
30852
+ if (isAtRuleNode(current) && GLOBAL_AT_RULES.has(current.name.toLowerCase())) {
30853
+ return true;
30854
+ }
30855
+ current = current.parent;
30856
+ }
30857
+ return false;
30858
+ }
30859
+ function scopeCssToComposition(css, compositionId) {
30860
+ const trimmedCompositionId = compositionId.trim();
30861
+ if (!css || !trimmedCompositionId) return css;
30862
+ const scope = `[data-composition-id="${escapeCssAttributeValue(trimmedCompositionId)}"]`;
30863
+ const root = postcss.parse(css);
30864
+ root.walkRules((rule) => {
30865
+ if (isInsideGlobalAtRule(rule)) return;
30866
+ rule.selectors = rule.selectors.map(
30867
+ (selector) => scopeSelector(selector, scope, trimmedCompositionId)
30868
+ );
30869
+ });
30870
+ return root.toResult({ map: false }).css;
30871
+ }
30872
+ function wrapScopedCompositionScript(source, compositionId, errorLabel = "[HyperFrames] composition script error:") {
30873
+ const compositionIdLiteral = JSON.stringify(compositionId);
30874
+ const errorLabelLiteral = JSON.stringify(errorLabel);
30875
+ const escapedCompositionId = escapeRegExp2(compositionId);
30876
+ const rootSelectorPatternLiteral = JSON.stringify(
30877
+ String.raw`\[\s*data-composition-id\s*=\s*(?:"${escapedCompositionId}"|'${escapedCompositionId}')\s*\]`
30878
+ );
30879
+ const timingSelectorPatternLiteral = JSON.stringify(
30880
+ String.raw`\s*\[\s*data-(?:start|duration)\s*=\s*(?:"[^"]*"|'[^']*')\s*\]`
30881
+ );
30882
+ return `(function(){
30883
+ var __hfCompId = ${compositionIdLiteral};
30884
+ var __hfErrorLabel = ${errorLabelLiteral};
30885
+ var __hfEscapeAttr = function(value) {
30886
+ return (value + "").replace(/\\\\/g, "\\\\\\\\").replace(/"/g, "\\\\\\"");
30887
+ };
30888
+ var __hfRootSelector = __hfCompId
30889
+ ? '[data-composition-id="' + __hfEscapeAttr(__hfCompId) + '"]'
30890
+ : "";
30891
+ var __hfRoot = null;
30892
+ var __hfRootSelectorPattern = ${rootSelectorPatternLiteral};
30893
+ var __hfTimingSelectorPattern = ${timingSelectorPatternLiteral};
30894
+ var __hfNormalizeSelector = function(selector) {
30895
+ if (!__hfCompId || typeof selector !== "string") return selector;
30896
+ return selector
30897
+ .replace(new RegExp(__hfRootSelectorPattern + '(?:' + __hfTimingSelectorPattern + ')+', 'g'), __hfRootSelector)
30898
+ .replace(new RegExp('(?:' + __hfTimingSelectorPattern + ')+' + __hfRootSelectorPattern, 'g'), __hfRootSelector);
30899
+ };
30900
+ var __hfFindRoot = function() {
30901
+ if (!__hfRoot && __hfRootSelector) {
30902
+ __hfRoot = window.document.querySelector(__hfRootSelector);
30903
+ }
30904
+ return __hfRoot;
30905
+ };
30906
+ var __hfContains = function(node) {
30907
+ var root = __hfFindRoot();
30908
+ return !root || node === root || root.contains(node);
30909
+ };
30910
+ var __hfQueryAll = function(selector) {
30911
+ var root = __hfFindRoot();
30912
+ if (!root || typeof selector !== "string") {
30913
+ return window.document.querySelectorAll(selector);
30914
+ }
30915
+ return Array.prototype.filter.call(window.document.querySelectorAll(__hfNormalizeSelector(selector)), function(node) {
30916
+ return __hfContains(node);
30917
+ });
30918
+ };
30919
+ var __hfQueryOne = function(selector) {
30920
+ var matches = __hfQueryAll(selector);
30921
+ return matches[0] || null;
30922
+ };
30923
+ var __hfScopedDocument = typeof Proxy === "function"
30924
+ ? new Proxy(window.document, {
30925
+ get: function(target, prop, receiver) {
30926
+ if (prop === "querySelector") return __hfQueryOne;
30927
+ if (prop === "querySelectorAll") return __hfQueryAll;
30928
+ if (prop === "getElementById") {
30929
+ return function(id) {
30930
+ var found = target.getElementById(id);
30931
+ return found && __hfContains(found) ? found : null;
30932
+ };
30933
+ }
30934
+ var value = Reflect.get(target, prop, receiver);
30935
+ return typeof value === "function" ? value.bind(target) : value;
30936
+ },
30937
+ })
30938
+ : window.document;
30939
+ var __hfResolveGsapTarget = function(target) {
30940
+ if (typeof target !== "string") return target;
30941
+ return __hfQueryAll(target);
30942
+ };
30943
+ var __hfScopeTimeline = function(timeline) {
30944
+ if (!timeline || timeline.__hfScopedCompositionRoot === __hfFindRoot()) return timeline;
30945
+ ["to", "from", "fromTo", "set"].forEach(function(method) {
30946
+ var original = timeline[method];
30947
+ if (typeof original !== "function") return;
30948
+ timeline[method] = function(target) {
30949
+ var args = Array.prototype.slice.call(arguments);
30950
+ args[0] = __hfResolveGsapTarget(target);
30951
+ return original.apply(timeline, args);
30952
+ };
30953
+ });
30954
+ try {
30955
+ Object.defineProperty(timeline, "__hfScopedCompositionRoot", {
30956
+ value: __hfFindRoot(),
30957
+ configurable: true,
30958
+ });
30959
+ } catch (_err) {}
30960
+ return timeline;
30961
+ };
30962
+ var __hfBaseGsap = typeof gsap === "undefined" ? window.gsap : gsap;
30963
+ var __hfScopedGsap = !__hfBaseGsap || typeof Proxy !== "function"
30964
+ ? __hfBaseGsap
30965
+ : new Proxy(__hfBaseGsap, {
30966
+ get: function(target, prop, receiver) {
30967
+ if (prop === "timeline") {
30968
+ return function() {
30969
+ return __hfScopeTimeline(target.timeline.apply(target, arguments));
30970
+ };
30971
+ }
30972
+ if (prop === "to" || prop === "from" || prop === "fromTo" || prop === "set") {
30973
+ return function(firstArg) {
30974
+ var args = Array.prototype.slice.call(arguments);
30975
+ args[0] = __hfResolveGsapTarget(firstArg);
30976
+ return target[prop].apply(target, args);
30977
+ };
30978
+ }
30979
+ if (prop === "utils" && target.utils && typeof Proxy === "function") {
30980
+ return new Proxy(target.utils, {
30981
+ get: function(utilsTarget, utilsProp, utilsReceiver) {
30982
+ if (utilsProp === "toArray") {
30983
+ return function(firstArg) {
30984
+ var args = Array.prototype.slice.call(arguments);
30985
+ args[0] = __hfResolveGsapTarget(firstArg);
30986
+ return utilsTarget.toArray.apply(utilsTarget, args);
30987
+ };
30988
+ }
30989
+ if (utilsProp === "selector") {
30990
+ return function(base) {
30991
+ var baseEl = typeof base === "string" ? __hfQueryOne(base) : base;
30992
+ var root = baseEl || __hfFindRoot();
30993
+ return function(selector) {
30994
+ if (!root || typeof selector !== "string") return [];
30995
+ return Array.prototype.slice.call(root.querySelectorAll(selector));
30996
+ };
30997
+ };
30998
+ }
30999
+ var value = Reflect.get(utilsTarget, utilsProp, utilsReceiver);
31000
+ return typeof value === "function" ? value.bind(utilsTarget) : value;
31001
+ },
31002
+ });
31003
+ }
31004
+ var value = Reflect.get(target, prop, receiver);
31005
+ return typeof value === "function" ? value.bind(target) : value;
31006
+ },
31007
+ });
31008
+ var __hfRun = function() {
31009
+ try {
31010
+ (function(document, gsap) {
31011
+ ${source}
31012
+ }).call(window, __hfScopedDocument, __hfScopedGsap);
31013
+ } catch (_err) {
31014
+ console.error(__hfErrorLabel, __hfCompId, _err);
31015
+ }
31016
+ };
31017
+ __hfFindRoot();
31018
+ __hfRun();
31019
+ })()`;
31020
+ }
31021
+ var GLOBAL_AT_RULES;
31022
+ var init_compositionScoping = __esm({
31023
+ "../core/src/compiler/compositionScoping.ts"() {
31024
+ "use strict";
31025
+ GLOBAL_AT_RULES = /* @__PURE__ */ new Set(["keyframes", "-webkit-keyframes", "font-face"]);
31026
+ }
31027
+ });
31028
+
30708
31029
  // ../core/src/compiler/staticGuard.ts
30709
31030
  function validateHyperframeHtmlContract(html) {
30710
31031
  const result = lintHyperframeHtml(html);
@@ -31091,9 +31412,12 @@ async function bundleToSingleHtml(projectDir, options) {
31091
31412
  const contentHtml = contentRoot ? contentRoot.innerHTML || "" : compDoc.body.innerHTML || "";
31092
31413
  const contentDoc = parseHTMLContent2(contentHtml);
31093
31414
  const innerRoot = compId ? contentDoc.querySelector(`[data-composition-id="${compId}"]`) : contentDoc.querySelector("[data-composition-id]");
31415
+ const inferredCompId = innerRoot?.getAttribute("data-composition-id")?.trim() || "";
31416
+ const scopeCompId = compId || inferredCompId;
31094
31417
  if (!contentRoot && compDoc.head) {
31095
31418
  for (const s2 of [...compDoc.head.querySelectorAll("style")]) {
31096
- compStyleChunks.push(rewriteCssAssetUrls(s2.textContent || "", src));
31419
+ const css = rewriteCssAssetUrls(s2.textContent || "", src);
31420
+ compStyleChunks.push(scopeCompId ? scopeCssToComposition(css, scopeCompId) : css);
31097
31421
  }
31098
31422
  for (const s2 of [...compDoc.head.querySelectorAll("script")]) {
31099
31423
  const externalSrc = (s2.getAttribute("src") || "").trim();
@@ -31103,7 +31427,8 @@ async function bundleToSingleHtml(projectDir, options) {
31103
31427
  }
31104
31428
  }
31105
31429
  for (const s2 of [...contentDoc.querySelectorAll("style")]) {
31106
- compStyleChunks.push(rewriteCssAssetUrls(s2.textContent || "", src));
31430
+ const css = rewriteCssAssetUrls(s2.textContent || "", src);
31431
+ compStyleChunks.push(scopeCompId ? scopeCssToComposition(css, scopeCompId) : css);
31107
31432
  s2.remove();
31108
31433
  }
31109
31434
  for (const s2 of [...contentDoc.querySelectorAll("script")]) {
@@ -31114,7 +31439,11 @@ async function bundleToSingleHtml(projectDir, options) {
31114
31439
  }
31115
31440
  } else {
31116
31441
  compScriptChunks.push(
31117
- `(function(){ try { ${s2.textContent || ""} } catch (_err) { console.error('[HyperFrames] composition script error:', _err); } })();`
31442
+ scopeCompId ? wrapScopedCompositionScript(
31443
+ s2.textContent || "",
31444
+ scopeCompId,
31445
+ "[HyperFrames] composition script error:"
31446
+ ) : `(function(){ try { ${s2.textContent || ""} } catch (_err) { console.error('[HyperFrames] composition script error:', _err); } })();`
31118
31447
  );
31119
31448
  }
31120
31449
  s2.remove();
@@ -31129,15 +31458,12 @@ async function bundleToSingleHtml(projectDir, options) {
31129
31458
  }
31130
31459
  );
31131
31460
  if (innerRoot) {
31132
- const innerCompId = innerRoot.getAttribute("data-composition-id");
31133
31461
  const innerW = innerRoot.getAttribute("data-width");
31134
31462
  const innerH = innerRoot.getAttribute("data-height");
31135
- if (innerCompId && !hostEl.getAttribute("data-composition-id"))
31136
- hostEl.setAttribute("data-composition-id", innerCompId);
31137
31463
  if (innerW && !hostEl.getAttribute("data-width")) hostEl.setAttribute("data-width", innerW);
31138
31464
  if (innerH && !hostEl.getAttribute("data-height")) hostEl.setAttribute("data-height", innerH);
31139
31465
  for (const child of [...innerRoot.querySelectorAll("style, script")]) child.remove();
31140
- hostEl.innerHTML = innerRoot.innerHTML || "";
31466
+ hostEl.innerHTML = compId ? innerRoot.innerHTML || "" : innerRoot.outerHTML || "";
31141
31467
  } else {
31142
31468
  for (const child of [...contentDoc.querySelectorAll("style, script")]) child.remove();
31143
31469
  hostEl.innerHTML = contentDoc.body.innerHTML || "";
@@ -31158,7 +31484,8 @@ async function bundleToSingleHtml(projectDir, options) {
31158
31484
  const innerRoot = innerDoc.querySelector(`[data-composition-id="${compId}"]`);
31159
31485
  if (innerRoot) {
31160
31486
  for (const styleEl of [...innerRoot.querySelectorAll("style")]) {
31161
- compStyleChunks.push(styleEl.textContent || "");
31487
+ const css = styleEl.textContent || "";
31488
+ compStyleChunks.push(compId ? scopeCssToComposition(css, compId) : css);
31162
31489
  styleEl.remove();
31163
31490
  }
31164
31491
  for (const scriptEl of [...innerRoot.querySelectorAll("script")]) {
@@ -31169,7 +31496,11 @@ async function bundleToSingleHtml(projectDir, options) {
31169
31496
  }
31170
31497
  } else {
31171
31498
  compScriptChunks.push(
31172
- `(function(){ try { ${scriptEl.textContent || ""} } catch (_err) { console.error('[HyperFrames] composition script error:', _err); } })();`
31499
+ compId ? wrapScopedCompositionScript(
31500
+ scriptEl.textContent || "",
31501
+ compId,
31502
+ "[HyperFrames] composition script error:"
31503
+ ) : `(function(){ try { ${scriptEl.textContent || ""} } catch (_err) { console.error('[HyperFrames] composition script error:', _err); } })();`
31173
31504
  );
31174
31505
  }
31175
31506
  scriptEl.remove();
@@ -31181,7 +31512,8 @@ async function bundleToSingleHtml(projectDir, options) {
31181
31512
  host.innerHTML = innerRoot.innerHTML || "";
31182
31513
  } else {
31183
31514
  for (const styleEl of [...innerDoc.querySelectorAll("style")]) {
31184
- compStyleChunks.push(styleEl.textContent || "");
31515
+ const css = styleEl.textContent || "";
31516
+ compStyleChunks.push(compId ? scopeCssToComposition(css, compId) : css);
31185
31517
  styleEl.remove();
31186
31518
  }
31187
31519
  for (const scriptEl of [...innerDoc.querySelectorAll("script")]) {
@@ -31192,7 +31524,11 @@ async function bundleToSingleHtml(projectDir, options) {
31192
31524
  }
31193
31525
  } else {
31194
31526
  compScriptChunks.push(
31195
- `(function(){ try { ${scriptEl.textContent || ""} } catch (_err) { console.error('[HyperFrames] composition script error:', _err); } })();`
31527
+ compId ? wrapScopedCompositionScript(
31528
+ scriptEl.textContent || "",
31529
+ compId,
31530
+ "[HyperFrames] composition script error:"
31531
+ ) : `(function(){ try { ${scriptEl.textContent || ""} } catch (_err) { console.error('[HyperFrames] composition script error:', _err); } })();`
31196
31532
  );
31197
31533
  }
31198
31534
  scriptEl.remove();
@@ -31251,6 +31587,7 @@ var init_htmlBundler = __esm({
31251
31587
  init_esm10();
31252
31588
  init_htmlCompiler();
31253
31589
  init_rewriteSubCompPaths();
31590
+ init_compositionScoping();
31254
31591
  init_staticGuard();
31255
31592
  RUNTIME_BOOTSTRAP_ATTR = "data-hyperframes-preview-runtime";
31256
31593
  DEFAULT_RUNTIME_SCRIPT_URL = "";
@@ -31266,7 +31603,9 @@ __export(compiler_exports, {
31266
31603
  compileTimingAttrs: () => compileTimingAttrs,
31267
31604
  extractResolvedMedia: () => extractResolvedMedia,
31268
31605
  injectDurations: () => injectDurations,
31269
- validateHyperframeHtmlContract: () => validateHyperframeHtmlContract
31606
+ scopeCssToComposition: () => scopeCssToComposition,
31607
+ validateHyperframeHtmlContract: () => validateHyperframeHtmlContract,
31608
+ wrapScopedCompositionScript: () => wrapScopedCompositionScript
31270
31609
  });
31271
31610
  var init_compiler = __esm({
31272
31611
  "../core/src/compiler/index.ts"() {
@@ -31275,6 +31614,7 @@ var init_compiler = __esm({
31275
31614
  init_htmlCompiler();
31276
31615
  init_htmlBundler();
31277
31616
  init_staticGuard();
31617
+ init_compositionScoping();
31278
31618
  }
31279
31619
  });
31280
31620
 
@@ -32273,7 +32613,6 @@ var init_deterministicFonts = __esm({
32273
32613
  // ../producer/src/services/htmlCompiler.ts
32274
32614
  import { readFileSync as readFileSync22, existsSync as existsSync32, mkdirSync as mkdirSync19 } from "fs";
32275
32615
  import { join as join34, dirname as dirname10, resolve as resolve16 } from "path";
32276
- import postcss from "postcss";
32277
32616
  function dedupeElementsById(elements) {
32278
32617
  const deduped = /* @__PURE__ */ new Map();
32279
32618
  for (const element of elements) {
@@ -32320,6 +32659,17 @@ function detectRenderModeHints(html) {
32320
32659
  reasons
32321
32660
  };
32322
32661
  }
32662
+ function detectShaderTransitionUsage(html) {
32663
+ let scriptMatch;
32664
+ const scriptPattern = new RegExp(INLINE_SCRIPT_PATTERN.source, INLINE_SCRIPT_PATTERN.flags);
32665
+ while ((scriptMatch = scriptPattern.exec(html)) !== null) {
32666
+ const attrs = scriptMatch[1] || "";
32667
+ if (/\bsrc\s*=/i.test(attrs)) continue;
32668
+ const content = stripJsComments(stripCompilerMountBootstrap(scriptMatch[2] || ""));
32669
+ if (SHADER_TRANSITION_USAGE_PATTERN.test(content)) return true;
32670
+ }
32671
+ return false;
32672
+ }
32323
32673
  async function resolveMediaDuration(src, mediaStart, baseDir, downloadDir, tagName19) {
32324
32674
  let filePath = src;
32325
32675
  if (isHttpUrl(src)) {
@@ -32519,27 +32869,6 @@ function promoteCssImportsToLinkTags(html) {
32519
32869
  }
32520
32870
  return document2.toString();
32521
32871
  }
32522
- function scopeCssToComposition(css, compositionId) {
32523
- const scope = `[data-composition-id="${compositionId}"]`;
32524
- const globalAtRules = /* @__PURE__ */ new Set(["keyframes", "-webkit-keyframes", "font-face"]);
32525
- const root = postcss.parse(css);
32526
- root.walkRules((rule) => {
32527
- let node = rule.parent;
32528
- while (node) {
32529
- if (node.type === "atrule" && globalAtRules.has(node.name.toLowerCase())) {
32530
- return;
32531
- }
32532
- node = node.parent;
32533
- }
32534
- rule.selectors = rule.selectors.map((sel) => {
32535
- if (!sel.trim()) return sel;
32536
- if (/^(html|body|:root|\*)$/i.test(sel.trim())) return sel;
32537
- if (sel.includes(`data-composition-id="${compositionId}"`)) return sel;
32538
- return `${scope} ${sel}`;
32539
- });
32540
- });
32541
- return root.toResult().css;
32542
- }
32543
32872
  function coalesceHeadStylesAndBodyScripts2(html) {
32544
32873
  const { document: document2 } = parseHTML(html);
32545
32874
  const head = document2.querySelector("head");
@@ -32668,28 +32997,13 @@ function inlineSubCompositions(html, subCompositions, projectDir) {
32668
32997
  const content = (scriptEl.textContent || "").trim();
32669
32998
  if (content) {
32670
32999
  const scriptMountCompId = compId || inferredCompId || "";
32671
- const compIdLiteral = JSON.stringify(scriptMountCompId);
32672
- collectedScripts.push(`(function(){
32673
- var __compId = ${compIdLiteral};
32674
- var __run = function() {
32675
- try {
32676
- ${content}
32677
- } catch (_err) {
32678
- console.error("[Compiler] Composition script failed", __compId, _err);
32679
- }
32680
- };
32681
- if (!__compId) { __run(); return; }
32682
- ${COMPILER_MOUNT_BLOCK_START}
32683
- var __selector = '[data-composition-id="' + (__compId + '').replace(/"/g, '\\\\"') + '"]';
32684
- var __attempt = 0;
32685
- var __tryRun = function() {
32686
- if (document.querySelector(__selector)) { __run(); return; }
32687
- if (++__attempt >= 8) { __run(); return; }
32688
- requestAnimationFrame(__tryRun);
32689
- };
32690
- __tryRun();
32691
- ${COMPILER_MOUNT_BLOCK_END}
32692
- })()`);
33000
+ collectedScripts.push(
33001
+ scriptMountCompId ? wrapScopedCompositionScript(
33002
+ content,
33003
+ scriptMountCompId,
33004
+ "[Compiler] Composition script failed"
33005
+ ) : `(function(){ try { ${content} } catch (_err) { console.error("[Compiler] Composition script failed", _err); } })()`
33006
+ );
32693
33007
  }
32694
33008
  scriptEl.remove();
32695
33009
  }
@@ -32706,23 +33020,12 @@ function inlineSubCompositions(html, subCompositions, projectDir) {
32706
33020
  if (innerW && !host.getAttribute("data-width")) host.setAttribute("data-width", innerW);
32707
33021
  if (innerH && !host.getAttribute("data-height")) host.setAttribute("data-height", innerH);
32708
33022
  innerRoot.querySelectorAll("style, script").forEach((el) => el.remove());
32709
- if (!compId && inferredCompId) {
32710
- host.innerHTML = innerRoot.outerHTML || "";
32711
- } else {
32712
- host.innerHTML = innerRoot.innerHTML || "";
32713
- }
33023
+ host.innerHTML = compId ? innerRoot.innerHTML || "" : innerRoot.outerHTML || "";
32714
33024
  } else {
32715
33025
  contentDoc.querySelectorAll("style, script").forEach((el) => el.remove());
32716
33026
  host.innerHTML = contentDoc.toString();
32717
33027
  }
32718
33028
  host.removeAttribute("data-composition-src");
32719
- const hostDataStart = host.getAttribute("data-start");
32720
- if (hostDataStart != null) {
32721
- const innerComp = host.querySelector("[data-composition-id]");
32722
- if (innerComp && !innerComp.getAttribute("data-start")) {
32723
- innerComp.setAttribute("data-start", hostDataStart);
32724
- }
32725
- }
32726
33029
  const hostW = host.getAttribute("data-width");
32727
33030
  const hostH = host.getAttribute("data-height");
32728
33031
  if (hostW && hostH) {
@@ -32903,6 +33206,7 @@ async function compileForRender(projectDir, htmlPath, downloadDir) {
32903
33206
  "$1"
32904
33207
  );
32905
33208
  const renderModeHints = detectRenderModeHints(sanitizedHtml);
33209
+ const hasShaderTransitions = detectShaderTransitionUsage(sanitizedHtml);
32906
33210
  const coalescedHtml = await injectDeterministicFontFaces(
32907
33211
  coalesceHeadStylesAndBodyScripts2(promoteCssImportsToLinkTags(sanitizedHtml))
32908
33212
  );
@@ -32950,7 +33254,8 @@ async function compileForRender(projectDir, htmlPath, downloadDir) {
32950
33254
  width,
32951
33255
  height,
32952
33256
  staticDuration,
32953
- renderModeHints
33257
+ renderModeHints,
33258
+ hasShaderTransitions
32954
33259
  };
32955
33260
  }
32956
33261
  async function discoverMediaFromBrowser(page) {
@@ -33052,15 +33357,17 @@ async function recompileWithResolutions(compiled, resolutions, projectDir, downl
33052
33357
  audios,
33053
33358
  images,
33054
33359
  unresolvedCompositions: remaining,
33055
- renderModeHints: compiled.renderModeHints
33360
+ renderModeHints: compiled.renderModeHints,
33361
+ hasShaderTransitions: compiled.hasShaderTransitions
33056
33362
  };
33057
33363
  }
33058
- var INLINE_SCRIPT_PATTERN, COMPILER_MOUNT_BLOCK_START, COMPILER_MOUNT_BLOCK_END;
33364
+ var INLINE_SCRIPT_PATTERN, COMPILER_MOUNT_BLOCK_START, COMPILER_MOUNT_BLOCK_END, SHADER_TRANSITION_USAGE_PATTERN;
33059
33365
  var init_htmlCompiler2 = __esm({
33060
33366
  "../producer/src/services/htmlCompiler.ts"() {
33061
33367
  "use strict";
33062
33368
  init_esm10();
33063
33369
  init_src();
33370
+ init_compiler();
33064
33371
  init_ffprobe2();
33065
33372
  init_paths();
33066
33373
  init_src2();
@@ -33069,6 +33376,7 @@ var init_htmlCompiler2 = __esm({
33069
33376
  INLINE_SCRIPT_PATTERN = /<script\b([^>]*)>([\s\S]*?)<\/script>/gi;
33070
33377
  COMPILER_MOUNT_BLOCK_START = "/* __HF_COMPILER_MOUNT_START__ */";
33071
33378
  COMPILER_MOUNT_BLOCK_END = "/* __HF_COMPILER_MOUNT_END__ */";
33379
+ SHADER_TRANSITION_USAGE_PATTERN = /\b(?:(?:window|globalThis)\s*\.\s*)?HyperShader\s*\.\s*init\s*\(|\b__hf\s*\.\s*transitions\s*=/;
33072
33380
  }
33073
33381
  });
33074
33382
 
@@ -33372,7 +33680,8 @@ function writeCompiledArtifacts(compiled, workDir, includeSummary) {
33372
33680
  mediaStart: a.mediaStart
33373
33681
  })),
33374
33682
  subCompositions: Array.from(compiled.subCompositions.keys()),
33375
- renderModeHints: compiled.renderModeHints
33683
+ renderModeHints: compiled.renderModeHints,
33684
+ hasShaderTransitions: compiled.hasShaderTransitions
33376
33685
  };
33377
33686
  writeFileSync14(join35(compileDir, "summary.json"), JSON.stringify(summary, null, 2), "utf-8");
33378
33687
  }
@@ -33385,6 +33694,287 @@ function applyRenderModeHints(cfg, compiled, log2 = defaultLogger) {
33385
33694
  reasons: compiled.renderModeHints.reasons.map((reason) => reason.message)
33386
33695
  });
33387
33696
  }
33697
+ function resolveRenderWorkerCount(totalFrames, requestedWorkers, cfg, compiled, composition, log2 = defaultLogger, measuredCaptureCost) {
33698
+ const captureCost = combineCaptureCostEstimates(
33699
+ estimateCaptureCostMultiplier(compiled, composition),
33700
+ measuredCaptureCost
33701
+ );
33702
+ const workerCount = calculateOptimalWorkers(totalFrames, requestedWorkers, {
33703
+ ...cfg,
33704
+ captureCostMultiplier: captureCost.multiplier
33705
+ });
33706
+ if (requestedWorkers !== void 0 || captureCost.multiplier <= 1) {
33707
+ return workerCount;
33708
+ }
33709
+ const baselineWorkers = calculateOptimalWorkers(totalFrames, void 0, cfg);
33710
+ if (workerCount < baselineWorkers) {
33711
+ log2.warn(
33712
+ "[Render] Reduced auto worker count for high-cost capture workload to avoid Chrome compositor starvation.",
33713
+ {
33714
+ from: baselineWorkers,
33715
+ to: workerCount,
33716
+ costMultiplier: captureCost.multiplier,
33717
+ reasons: captureCost.reasons
33718
+ }
33719
+ );
33720
+ }
33721
+ return workerCount;
33722
+ }
33723
+ function estimateCaptureCostMultiplier(compiled, composition) {
33724
+ let multiplier = 1;
33725
+ const reasons = [];
33726
+ if (compiled.hasShaderTransitions) {
33727
+ multiplier += 2;
33728
+ reasons.push("shader-transitions");
33729
+ }
33730
+ const reasonCodes = new Set(compiled.renderModeHints.reasons.map((reason) => reason.code));
33731
+ if (reasonCodes.has("requestAnimationFrame")) {
33732
+ multiplier += 1;
33733
+ reasons.push("requestAnimationFrame");
33734
+ }
33735
+ if (reasonCodes.has("iframe")) {
33736
+ multiplier += 0.5;
33737
+ reasons.push("iframe");
33738
+ }
33739
+ if (composition.videos.length > 0) {
33740
+ multiplier += Math.min(2, composition.videos.length * 0.75);
33741
+ reasons.push(`${composition.videos.length} video${composition.videos.length === 1 ? "" : "s"}`);
33742
+ }
33743
+ if (composition.audios.length > 0) {
33744
+ multiplier += Math.min(1, composition.audios.length * 0.75);
33745
+ reasons.push(`${composition.audios.length} audio${composition.audios.length === 1 ? "" : "s"}`);
33746
+ }
33747
+ return {
33748
+ multiplier: Math.round(multiplier * 100) / 100,
33749
+ reasons
33750
+ };
33751
+ }
33752
+ function combineCaptureCostEstimates(staticCost, measuredCost) {
33753
+ if (!measuredCost || measuredCost.multiplier <= 1) return staticCost;
33754
+ if (staticCost.multiplier >= measuredCost.multiplier) {
33755
+ return {
33756
+ multiplier: staticCost.multiplier,
33757
+ reasons: [...staticCost.reasons, ...measuredCost.reasons],
33758
+ p95Ms: measuredCost.p95Ms
33759
+ };
33760
+ }
33761
+ return {
33762
+ multiplier: measuredCost.multiplier,
33763
+ reasons: [...measuredCost.reasons, ...staticCost.reasons],
33764
+ p95Ms: measuredCost.p95Ms
33765
+ };
33766
+ }
33767
+ function createCaptureCalibrationConfig(cfg) {
33768
+ return {
33769
+ ...cfg,
33770
+ protocolTimeout: Math.min(cfg.protocolTimeout, CAPTURE_CALIBRATION_PROTOCOL_TIMEOUT_MS)
33771
+ };
33772
+ }
33773
+ function estimateMeasuredCaptureCostMultiplier(samples) {
33774
+ if (samples.length === 0) {
33775
+ return { multiplier: 1, reasons: [] };
33776
+ }
33777
+ const sorted = [...samples].sort((a, b) => a.captureTimeMs - b.captureTimeMs);
33778
+ const p95Index = Math.max(0, Math.ceil(sorted.length * 0.95) - 1);
33779
+ const p95Sample = sorted[p95Index] ?? sorted[sorted.length - 1];
33780
+ if (!p95Sample) {
33781
+ return { multiplier: 1, reasons: [] };
33782
+ }
33783
+ const p95Ms = Math.round(p95Sample.captureTimeMs);
33784
+ const multiplier = Math.min(
33785
+ MAX_MEASURED_CAPTURE_COST_MULTIPLIER,
33786
+ Math.max(1, Math.round(p95Ms / CAPTURE_CALIBRATION_TARGET_MS * 100) / 100)
33787
+ );
33788
+ return {
33789
+ multiplier,
33790
+ reasons: multiplier > 1 ? [`calibration-p95=${p95Ms}ms`] : [],
33791
+ p95Ms
33792
+ };
33793
+ }
33794
+ function selectCaptureCalibrationFrames(totalFrames) {
33795
+ if (totalFrames <= 0) return [];
33796
+ const lastFrame = totalFrames - 1;
33797
+ const candidates = [
33798
+ 0,
33799
+ Math.floor(totalFrames * 0.25),
33800
+ Math.floor(totalFrames * 0.5),
33801
+ Math.floor(totalFrames * 0.75),
33802
+ lastFrame
33803
+ ];
33804
+ return Array.from(
33805
+ new Set(candidates.map((frame) => Math.max(0, Math.min(lastFrame, frame))))
33806
+ ).sort((a, b) => a - b);
33807
+ }
33808
+ function findMissingFrameRanges(totalFrames, framesDir, frameExt) {
33809
+ const ranges = [];
33810
+ let rangeStart = null;
33811
+ for (let frameIndex = 0; frameIndex < totalFrames; frameIndex++) {
33812
+ const framePath = join35(framesDir, `frame_${String(frameIndex).padStart(6, "0")}.${frameExt}`);
33813
+ const missing = !existsSync33(framePath);
33814
+ if (missing && rangeStart === null) {
33815
+ rangeStart = frameIndex;
33816
+ } else if (!missing && rangeStart !== null) {
33817
+ ranges.push({ startFrame: rangeStart, endFrame: frameIndex });
33818
+ rangeStart = null;
33819
+ }
33820
+ }
33821
+ if (rangeStart !== null) {
33822
+ ranges.push({ startFrame: rangeStart, endFrame: totalFrames });
33823
+ }
33824
+ return ranges;
33825
+ }
33826
+ function buildMissingFrameRetryBatches(ranges, maxWorkers, workDir, attempt) {
33827
+ const workersPerBatch = Math.max(1, Math.floor(maxWorkers));
33828
+ const batches = [];
33829
+ for (let i2 = 0; i2 < ranges.length; i2 += workersPerBatch) {
33830
+ const batchIndex = batches.length;
33831
+ const batch = ranges.slice(i2, i2 + workersPerBatch).map((range, workerId) => ({
33832
+ workerId,
33833
+ startFrame: range.startFrame,
33834
+ endFrame: range.endFrame,
33835
+ outputDir: join35(workDir, `retry-${attempt}-batch-${batchIndex}-worker-${workerId}`)
33836
+ }));
33837
+ batches.push(batch);
33838
+ }
33839
+ return batches;
33840
+ }
33841
+ function getNextRetryWorkerCount(currentWorkers) {
33842
+ return Math.max(1, Math.floor(currentWorkers / 2));
33843
+ }
33844
+ function isRecoverableParallelCaptureError(error) {
33845
+ const message = error instanceof Error ? error.message : String(error);
33846
+ return message.includes("[Parallel] Capture failed") && /Runtime\.callFunctionOn timed out|HeadlessExperimental\.beginFrame timed out|Waiting failed|timeout exceeded|timed out|Navigation timeout|Protocol error|Target closed/i.test(
33847
+ message
33848
+ );
33849
+ }
33850
+ function shouldFallbackToScreenshotAfterCalibrationError(error) {
33851
+ const message = error instanceof Error ? error.message : String(error);
33852
+ return /HeadlessExperimental\.beginFrame timed out|beginFrame probe timeout|Another frame is pending|Frame still pending|Protocol error.*HeadlessExperimental\.beginFrame/i.test(
33853
+ message
33854
+ );
33855
+ }
33856
+ function countCapturedFrames(totalFrames, framesDir, frameExt) {
33857
+ let captured = 0;
33858
+ for (let frameIndex = 0; frameIndex < totalFrames; frameIndex++) {
33859
+ const framePath = join35(framesDir, `frame_${String(frameIndex).padStart(6, "0")}.${frameExt}`);
33860
+ if (existsSync33(framePath)) captured++;
33861
+ }
33862
+ return captured;
33863
+ }
33864
+ function countFrameRanges(ranges) {
33865
+ return ranges.reduce((sum, range) => sum + (range.endFrame - range.startFrame), 0);
33866
+ }
33867
+ async function measureCaptureCostFromSession(session, totalFrames, fps) {
33868
+ const sampledFrames = selectCaptureCalibrationFrames(totalFrames);
33869
+ const samples = [];
33870
+ for (const frameIndex of sampledFrames) {
33871
+ const time = frameIndex / fps;
33872
+ const startedAt = Date.now();
33873
+ const result = await captureFrameToBuffer(session, frameIndex, time);
33874
+ samples.push({
33875
+ frameIndex,
33876
+ captureTimeMs: result.captureTimeMs || Date.now() - startedAt
33877
+ });
33878
+ }
33879
+ return {
33880
+ estimate: estimateMeasuredCaptureCostMultiplier(samples),
33881
+ samples
33882
+ };
33883
+ }
33884
+ async function executeDiskCaptureWithAdaptiveRetry(options) {
33885
+ const attempts = [];
33886
+ let currentWorkers = options.initialWorkerCount;
33887
+ let missingRanges = null;
33888
+ let attempt = 0;
33889
+ while (true) {
33890
+ const frameCount = missingRanges ? countFrameRanges(missingRanges) : options.totalFrames;
33891
+ attempts.push({
33892
+ attempt,
33893
+ workers: currentWorkers,
33894
+ frameCount,
33895
+ reason: attempt === 0 ? "initial" : "retry"
33896
+ });
33897
+ const attemptWorkDir = join35(options.workDir, `capture-attempt-${attempt}`);
33898
+ const batches = missingRanges ? buildMissingFrameRetryBatches(missingRanges, currentWorkers, attemptWorkDir, attempt) : [distributeFrames(options.totalFrames, currentWorkers, attemptWorkDir)];
33899
+ try {
33900
+ for (const tasks of batches) {
33901
+ const capturedBeforeBatch = countCapturedFrames(
33902
+ options.totalFrames,
33903
+ options.framesDir,
33904
+ options.frameExt
33905
+ );
33906
+ try {
33907
+ await executeParallelCapture(
33908
+ options.serverUrl,
33909
+ attemptWorkDir,
33910
+ tasks,
33911
+ options.captureOptions,
33912
+ options.createBeforeCaptureHook,
33913
+ options.abortSignal,
33914
+ options.onProgress ? (progress) => {
33915
+ options.onProgress?.({
33916
+ ...progress,
33917
+ totalFrames: options.totalFrames,
33918
+ capturedFrames: Math.min(
33919
+ options.totalFrames,
33920
+ capturedBeforeBatch + progress.capturedFrames
33921
+ )
33922
+ });
33923
+ } : void 0,
33924
+ void 0,
33925
+ options.cfg
33926
+ );
33927
+ } finally {
33928
+ await mergeWorkerFrames(attemptWorkDir, tasks, options.framesDir);
33929
+ }
33930
+ }
33931
+ const remaining = findMissingFrameRanges(
33932
+ options.totalFrames,
33933
+ options.framesDir,
33934
+ options.frameExt
33935
+ );
33936
+ if (remaining.length === 0) {
33937
+ return attempts;
33938
+ }
33939
+ if (!options.allowRetry || currentWorkers <= 1) {
33940
+ throw new Error(
33941
+ `[Render] Capture completed but ${countFrameRanges(remaining)} frame(s) are missing`
33942
+ );
33943
+ }
33944
+ const nextWorkers = getNextRetryWorkerCount(currentWorkers);
33945
+ options.log.warn("[Render] Retrying missing captured frames with fewer workers.", {
33946
+ fromWorkers: currentWorkers,
33947
+ toWorkers: nextWorkers,
33948
+ missingFrames: countFrameRanges(remaining)
33949
+ });
33950
+ currentWorkers = nextWorkers;
33951
+ missingRanges = remaining;
33952
+ attempt++;
33953
+ } catch (error) {
33954
+ const remaining = findMissingFrameRanges(
33955
+ options.totalFrames,
33956
+ options.framesDir,
33957
+ options.frameExt
33958
+ );
33959
+ if (remaining.length === 0) {
33960
+ return attempts;
33961
+ }
33962
+ if (!options.allowRetry || currentWorkers <= 1 || !isRecoverableParallelCaptureError(error)) {
33963
+ throw error;
33964
+ }
33965
+ const nextWorkers = getNextRetryWorkerCount(currentWorkers);
33966
+ options.log.warn("[Render] Parallel capture timed out; retrying missing frames.", {
33967
+ fromWorkers: currentWorkers,
33968
+ toWorkers: nextWorkers,
33969
+ missingFrames: countFrameRanges(remaining),
33970
+ error: error instanceof Error ? error.message : String(error)
33971
+ });
33972
+ currentWorkers = nextWorkers;
33973
+ missingRanges = remaining;
33974
+ attempt++;
33975
+ }
33976
+ }
33977
+ }
33388
33978
  function blitHdrVideoLayer(canvas, el, time, fps, hdrFrameDirs, hdrStartTimes, width, height, log2, sourceTransfer, targetTransfer) {
33389
33979
  const frameDir = hdrFrameDirs.get(el.id);
33390
33980
  const startTime = hdrStartTimes.get(el.id);
@@ -33708,13 +34298,14 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
33708
34298
  const outputFormat = job.config.format ?? "mp4";
33709
34299
  const isWebm = outputFormat === "webm";
33710
34300
  const isMov = outputFormat === "mov";
33711
- const needsAlpha = isWebm || isMov;
34301
+ const isPngSequence = outputFormat === "png-sequence";
34302
+ const needsAlpha = isWebm || isMov || isPngSequence;
33712
34303
  if (needsAlpha) {
33713
34304
  cfg.forceScreenshot = true;
33714
34305
  }
33715
34306
  const enableChunkedEncode = cfg.enableChunkedEncode;
33716
34307
  const chunkedEncodeSize = cfg.chunkSizeFrames;
33717
- const enableStreamingEncode = cfg.enableStreamingEncode;
34308
+ const enableStreamingEncode = cfg.enableStreamingEncode && !isPngSequence;
33718
34309
  let peakRssBytes = 0;
33719
34310
  let peakHeapUsedBytes = 0;
33720
34311
  const sampleMemory = () => {
@@ -34010,7 +34601,7 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
34010
34601
  let extractionResult = null;
34011
34602
  const nativeHdrVideoIds = /* @__PURE__ */ new Set();
34012
34603
  const videoTransfers = /* @__PURE__ */ new Map();
34013
- if (job.config.hdr && composition.videos.length > 0) {
34604
+ if (job.config.hdrMode !== "force-sdr" && composition.videos.length > 0) {
34014
34605
  await Promise.all(
34015
34606
  composition.videos.map(async (v) => {
34016
34607
  let videoPath = v.src;
@@ -34031,7 +34622,7 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
34031
34622
  const imageTransfers = /* @__PURE__ */ new Map();
34032
34623
  const hdrImageSrcPaths = /* @__PURE__ */ new Map();
34033
34624
  const imageColorSpaces = [];
34034
- if (job.config.hdr && composition.images.length > 0) {
34625
+ if (job.config.hdrMode !== "force-sdr" && composition.images.length > 0) {
34035
34626
  const probed = await Promise.all(
34036
34627
  composition.images.map(async (img) => {
34037
34628
  let imgPath = img.src;
@@ -34088,28 +34679,53 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
34088
34679
  perfStages.videoExtractMs = Date.now() - stage2Start;
34089
34680
  }
34090
34681
  let effectiveHdr;
34091
- if (job.config.hdr) {
34682
+ let forcedHdrWithoutSources = false;
34683
+ {
34684
+ const hdrMode = job.config.hdrMode ?? "auto";
34092
34685
  const videoColorSpaces = (extractionResult?.extracted ?? []).map(
34093
34686
  (ext) => ext.metadata.colorSpace
34094
34687
  );
34095
34688
  const allColorSpaces = [...videoColorSpaces, ...imageColorSpaces];
34096
- if (allColorSpaces.length > 0) {
34097
- const info = analyzeCompositionHdr(allColorSpaces);
34098
- if (info.hasHdr && info.dominantTransfer) {
34689
+ const info = allColorSpaces.length > 0 ? analyzeCompositionHdr(allColorSpaces) : null;
34690
+ if (hdrMode === "force-sdr") {
34691
+ effectiveHdr = void 0;
34692
+ } else if (hdrMode === "force-hdr") {
34693
+ if (info?.hasHdr && info.dominantTransfer) {
34694
+ effectiveHdr = { transfer: info.dominantTransfer };
34695
+ } else {
34696
+ effectiveHdr = { transfer: "hlg" };
34697
+ forcedHdrWithoutSources = true;
34698
+ }
34699
+ } else {
34700
+ if (info?.hasHdr && info.dominantTransfer) {
34099
34701
  effectiveHdr = { transfer: info.dominantTransfer };
34100
34702
  }
34101
34703
  }
34102
34704
  }
34103
34705
  if (effectiveHdr && outputFormat !== "mp4") {
34706
+ const hdrSourceReason = forcedHdrWithoutSources ? "HDR was forced without detected HDR sources" : "HDR source detected";
34104
34707
  log2.warn(
34105
- `[Render] HDR source detected but format is ${outputFormat} \u2014 falling back to SDR. Use --format mp4 for HDR10 output.`
34708
+ `[Render] ${hdrSourceReason}, but format is "${outputFormat}" \u2014 falling back to SDR. HDR + alpha is not supported. Use --format mp4 for HDR10 output.`
34106
34709
  );
34107
34710
  effectiveHdr = void 0;
34108
34711
  }
34109
- if (effectiveHdr) {
34110
- log2.info(
34111
- `[Render] HDR source detected \u2014 output: ${effectiveHdr.transfer.toUpperCase()} (BT.2020, 10-bit H.265)`
34112
- );
34712
+ {
34713
+ const hdrMode = job.config.hdrMode ?? "auto";
34714
+ if (forcedHdrWithoutSources) {
34715
+ log2.warn(
34716
+ "[Render] HDR forced by --hdr flag, but no HDR sources were detected \u2014 defaulting to HLG. SDR-only compositions may look perceptually wrong on HDR displays."
34717
+ );
34718
+ }
34719
+ if (effectiveHdr) {
34720
+ const reason = hdrMode === "force-hdr" ? forcedHdrWithoutSources ? "forced by --hdr flag (no HDR sources detected \u2014 defaulting to HLG)" : "forced by --hdr flag" : "auto-detected from source(s)";
34721
+ log2.info(
34722
+ `[Render] HDR ${reason} \u2014 output: ${effectiveHdr.transfer.toUpperCase()} (BT.2020, 10-bit H.265)`
34723
+ );
34724
+ } else if (hdrMode === "force-sdr") {
34725
+ log2.info("[Render] SDR forced by --sdr flag");
34726
+ } else {
34727
+ log2.info("[Render] No HDR sources detected \u2014 rendering SDR");
34728
+ }
34113
34729
  }
34114
34730
  const stage3Start = Date.now();
34115
34731
  updateJobStatus(job, "preprocessing", "Processing audio tracks", 20, onProgress);
@@ -34156,14 +34772,114 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
34156
34772
  ...captureOptions,
34157
34773
  skipReadinessVideoIds: Array.from(nativeHdrVideoIds)
34158
34774
  });
34159
- const workerCount = calculateOptimalWorkers(totalFrames, job.config.workers, cfg);
34160
- const FORMAT_EXT2 = { mp4: ".mp4", webm: ".webm", mov: ".mov" };
34775
+ let captureCalibration;
34776
+ let switchedToScreenshotAfterCalibration = false;
34777
+ if (job.config.workers === void 0 && totalFrames >= 60) {
34778
+ const calibrationDir = join35(workDir, "capture-calibration");
34779
+ const calibrationCfg = createCaptureCalibrationConfig(cfg);
34780
+ const videoInjector = createVideoFrameInjector(frameLookup);
34781
+ let calibrationSession = null;
34782
+ try {
34783
+ calibrationSession = await createCaptureSession(
34784
+ fileServer.url,
34785
+ calibrationDir,
34786
+ buildHdrCaptureOptions(),
34787
+ videoInjector,
34788
+ calibrationCfg
34789
+ );
34790
+ if (!calibrationSession.isInitialized) {
34791
+ await initializeSession(calibrationSession);
34792
+ }
34793
+ assertNotAborted();
34794
+ captureCalibration = await measureCaptureCostFromSession(
34795
+ calibrationSession,
34796
+ totalFrames,
34797
+ job.config.fps
34798
+ );
34799
+ if (captureCalibration.estimate.multiplier > 1) {
34800
+ log2.warn("[Render] Measured slow frame capture during auto-worker calibration.", {
34801
+ multiplier: captureCalibration.estimate.multiplier,
34802
+ p95Ms: captureCalibration.estimate.p95Ms,
34803
+ sampledFrames: captureCalibration.samples.map((sample) => sample.frameIndex)
34804
+ });
34805
+ } else {
34806
+ log2.debug("[Render] Auto-worker calibration kept baseline capture cost.", {
34807
+ p95Ms: captureCalibration.estimate.p95Ms,
34808
+ sampledFrames: captureCalibration.samples.map((sample) => sample.frameIndex)
34809
+ });
34810
+ }
34811
+ } catch (error) {
34812
+ const shouldFallbackToScreenshot = !cfg.forceScreenshot && shouldFallbackToScreenshotAfterCalibrationError(error);
34813
+ if (shouldFallbackToScreenshot) {
34814
+ cfg.forceScreenshot = true;
34815
+ switchedToScreenshotAfterCalibration = true;
34816
+ if (probeSession) {
34817
+ lastBrowserConsole = probeSession.browserConsoleBuffer;
34818
+ await closeCaptureSession(probeSession).catch(() => {
34819
+ });
34820
+ probeSession = null;
34821
+ }
34822
+ }
34823
+ captureCalibration = {
34824
+ estimate: {
34825
+ multiplier: MAX_MEASURED_CAPTURE_COST_MULTIPLIER,
34826
+ reasons: shouldFallbackToScreenshot ? ["calibration-beginframe-timeout", "screenshot-fallback"] : ["calibration-failed"]
34827
+ },
34828
+ samples: []
34829
+ };
34830
+ if (shouldFallbackToScreenshot) {
34831
+ log2.warn(
34832
+ "[Render] BeginFrame auto-worker calibration timed out; falling back to screenshot capture mode.",
34833
+ {
34834
+ protocolTimeout: calibrationCfg.protocolTimeout,
34835
+ error: error instanceof Error ? error.message : String(error)
34836
+ }
34837
+ );
34838
+ } else {
34839
+ log2.warn("[Render] Auto-worker calibration failed; using conservative worker budget.", {
34840
+ protocolTimeout: calibrationCfg.protocolTimeout,
34841
+ error: error instanceof Error ? error.message : String(error)
34842
+ });
34843
+ }
34844
+ } finally {
34845
+ if (calibrationSession) {
34846
+ lastBrowserConsole = calibrationSession.browserConsoleBuffer;
34847
+ await closeCaptureSession(calibrationSession).catch(() => {
34848
+ });
34849
+ }
34850
+ }
34851
+ }
34852
+ let workerCount = resolveRenderWorkerCount(
34853
+ totalFrames,
34854
+ job.config.workers,
34855
+ cfg,
34856
+ compiled,
34857
+ composition,
34858
+ log2,
34859
+ captureCalibration?.estimate
34860
+ );
34861
+ if (switchedToScreenshotAfterCalibration && workerCount > 1) {
34862
+ workerCount = 1;
34863
+ }
34864
+ if (workerCount > 1 && probeSession) {
34865
+ lastBrowserConsole = probeSession.browserConsoleBuffer;
34866
+ await closeCaptureSession(probeSession);
34867
+ probeSession = null;
34868
+ }
34869
+ const captureAttempts = [];
34870
+ const FORMAT_EXT2 = {
34871
+ mp4: ".mp4",
34872
+ webm: ".webm",
34873
+ mov: ".mov",
34874
+ "png-sequence": ""
34875
+ };
34161
34876
  const videoExt = FORMAT_EXT2[outputFormat] ?? ".mp4";
34162
34877
  const videoOnlyPath = join35(workDir, `video-only${videoExt}`);
34163
34878
  const nativeHdrIds = /* @__PURE__ */ new Set([...nativeHdrVideoIds, ...nativeHdrImageIds]);
34164
34879
  const hasHdrContent = effectiveHdr && nativeHdrIds.size > 0;
34165
34880
  const encoderHdr = hasHdrContent ? effectiveHdr : void 0;
34166
- const preset = getEncoderPreset(job.config.quality, outputFormat, encoderHdr);
34881
+ const presetFormat = isPngSequence ? "mp4" : outputFormat;
34882
+ const preset = getEncoderPreset(job.config.quality, presetFormat, encoderHdr);
34167
34883
  if (job.config.crf != null && job.config.videoBitrate) {
34168
34884
  log2.warn(
34169
34885
  `[Render] Both crf=${job.config.crf} and videoBitrate=${job.config.videoBitrate} were set. These are mutually exclusive; honoring crf and ignoring videoBitrate. Set only one to silence this warning.`
@@ -34742,15 +35458,18 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
34742
35458
  perfStages.encodeMs = encodeResult.durationMs;
34743
35459
  } else {
34744
35460
  if (workerCount > 1) {
34745
- const tasks = distributeFrames(job.totalFrames, workerCount, workDir);
34746
- await executeParallelCapture(
34747
- fileServer.url,
35461
+ const attempts = await executeDiskCaptureWithAdaptiveRetry({
35462
+ serverUrl: fileServer.url,
34748
35463
  workDir,
34749
- tasks,
34750
- buildHdrCaptureOptions(),
34751
- () => createVideoFrameInjector(frameLookup),
35464
+ framesDir,
35465
+ totalFrames: job.totalFrames,
35466
+ initialWorkerCount: workerCount,
35467
+ allowRetry: job.config.workers === void 0,
35468
+ frameExt: needsAlpha ? "png" : "jpg",
35469
+ captureOptions: buildHdrCaptureOptions(),
35470
+ createBeforeCaptureHook: () => createVideoFrameInjector(frameLookup),
34752
35471
  abortSignal,
34753
- (progress) => {
35472
+ onProgress: (progress) => {
34754
35473
  job.framesRendered = progress.capturedFrames;
34755
35474
  const frameProgress = progress.capturedFrames / progress.totalFrames;
34756
35475
  const progressPct = 25 + frameProgress * 45;
@@ -34758,16 +35477,20 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
34758
35477
  updateJobStatus(
34759
35478
  job,
34760
35479
  "rendering",
34761
- `Capturing frame ${progress.capturedFrames}/${progress.totalFrames} (${workerCount} workers)`,
35480
+ `Capturing frame ${progress.capturedFrames}/${progress.totalFrames} (${progress.activeWorkers} workers)`,
34762
35481
  Math.round(progressPct),
34763
35482
  onProgress
34764
35483
  );
34765
35484
  }
34766
35485
  },
34767
- void 0,
34768
- cfg
34769
- );
34770
- await mergeWorkerFrames(workDir, tasks, framesDir);
35486
+ cfg,
35487
+ log: log2
35488
+ });
35489
+ captureAttempts.push(...attempts);
35490
+ const lastAttempt = attempts[attempts.length - 1];
35491
+ if (lastAttempt) {
35492
+ workerCount = lastAttempt.workers;
35493
+ }
34771
35494
  if (probeSession) {
34772
35495
  lastBrowserConsole = probeSession.browserConsoleBuffer;
34773
35496
  await closeCaptureSession(probeSession);
@@ -34813,41 +35536,64 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
34813
35536
  }
34814
35537
  }
34815
35538
  perfStages.captureMs = Date.now() - stage4Start;
34816
- const stage5Start = Date.now();
34817
- updateJobStatus(job, "encoding", "Encoding video", 75, onProgress);
34818
- const frameExt = needsAlpha ? "png" : "jpg";
34819
- const framePattern = `frame_%06d.${frameExt}`;
34820
- const encoderOpts = {
34821
- fps: job.config.fps,
34822
- width,
34823
- height,
34824
- codec: preset.codec,
34825
- preset: preset.preset,
34826
- quality: effectiveQuality,
34827
- bitrate: effectiveBitrate,
34828
- pixelFormat: preset.pixelFormat,
34829
- useGpu: job.config.useGpu,
34830
- hdr: preset.hdr
34831
- };
34832
- const encodeResult = enableChunkedEncode ? await encodeFramesChunkedConcat(
34833
- framesDir,
34834
- framePattern,
34835
- videoOnlyPath,
34836
- encoderOpts,
34837
- chunkedEncodeSize,
34838
- abortSignal
34839
- ) : await encodeFramesFromDir(
34840
- framesDir,
34841
- framePattern,
34842
- videoOnlyPath,
34843
- encoderOpts,
34844
- abortSignal
34845
- );
34846
- assertNotAborted();
34847
- if (!encodeResult.success) {
34848
- throw new Error(`Encoding failed: ${encodeResult.error}`);
35539
+ if (isPngSequence) {
35540
+ const stage5Start = Date.now();
35541
+ updateJobStatus(job, "encoding", "Writing PNG sequence", 75, onProgress);
35542
+ if (!existsSync33(outputPath)) mkdirSync20(outputPath, { recursive: true });
35543
+ const captured = readdirSync13(framesDir).filter((name) => name.endsWith(".png")).sort();
35544
+ if (captured.length === 0) {
35545
+ throw new Error(
35546
+ `[Render] png-sequence output requested but no PNGs were captured to ${framesDir}`
35547
+ );
35548
+ }
35549
+ captured.forEach((name, i2) => {
35550
+ const dst = join35(outputPath, `frame_${String(i2 + 1).padStart(6, "0")}.png`);
35551
+ copyFileSync2(join35(framesDir, name), dst);
35552
+ });
35553
+ if (hasAudio && existsSync33(audioOutputPath)) {
35554
+ copyFileSync2(audioOutputPath, join35(outputPath, "audio.aac"));
35555
+ log2.info(
35556
+ `[Render] png-sequence: audio.aac sidecar written to ${outputPath}/audio.aac`
35557
+ );
35558
+ }
35559
+ perfStages.encodeMs = Date.now() - stage5Start;
35560
+ } else {
35561
+ const stage5Start = Date.now();
35562
+ updateJobStatus(job, "encoding", "Encoding video", 75, onProgress);
35563
+ const frameExt = needsAlpha ? "png" : "jpg";
35564
+ const framePattern = `frame_%06d.${frameExt}`;
35565
+ const encoderOpts = {
35566
+ fps: job.config.fps,
35567
+ width,
35568
+ height,
35569
+ codec: preset.codec,
35570
+ preset: preset.preset,
35571
+ quality: effectiveQuality,
35572
+ bitrate: effectiveBitrate,
35573
+ pixelFormat: preset.pixelFormat,
35574
+ useGpu: job.config.useGpu,
35575
+ hdr: preset.hdr
35576
+ };
35577
+ const encodeResult = enableChunkedEncode ? await encodeFramesChunkedConcat(
35578
+ framesDir,
35579
+ framePattern,
35580
+ videoOnlyPath,
35581
+ encoderOpts,
35582
+ chunkedEncodeSize,
35583
+ abortSignal
35584
+ ) : await encodeFramesFromDir(
35585
+ framesDir,
35586
+ framePattern,
35587
+ videoOnlyPath,
35588
+ encoderOpts,
35589
+ abortSignal
35590
+ );
35591
+ assertNotAborted();
35592
+ if (!encodeResult.success) {
35593
+ throw new Error(`Encoding failed: ${encodeResult.error}`);
35594
+ }
35595
+ perfStages.encodeMs = Date.now() - stage5Start;
34849
35596
  }
34850
- perfStages.encodeMs = Date.now() - stage5Start;
34851
35597
  }
34852
35598
  } finally {
34853
35599
  if (streamingEncoder && !streamingEncoderClosed) {
@@ -34870,27 +35616,29 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
34870
35616
  if (frameLookup) frameLookup.cleanup();
34871
35617
  fileServer.close();
34872
35618
  fileServer = null;
34873
- const stage6Start = Date.now();
34874
- updateJobStatus(job, "assembling", "Assembling final video", 90, onProgress);
34875
- if (hasAudio) {
34876
- const muxResult = await muxVideoWithAudio(
34877
- videoOnlyPath,
34878
- audioOutputPath,
34879
- outputPath,
34880
- abortSignal
34881
- );
34882
- assertNotAborted();
34883
- if (!muxResult.success) {
34884
- throw new Error(`Audio muxing failed: ${muxResult.error}`);
34885
- }
34886
- } else {
34887
- const faststartResult = await applyFaststart(videoOnlyPath, outputPath, abortSignal);
34888
- assertNotAborted();
34889
- if (!faststartResult.success) {
34890
- throw new Error(`Faststart failed: ${faststartResult.error}`);
35619
+ if (!isPngSequence) {
35620
+ const stage6Start = Date.now();
35621
+ updateJobStatus(job, "assembling", "Assembling final video", 90, onProgress);
35622
+ if (hasAudio) {
35623
+ const muxResult = await muxVideoWithAudio(
35624
+ videoOnlyPath,
35625
+ audioOutputPath,
35626
+ outputPath,
35627
+ abortSignal
35628
+ );
35629
+ assertNotAborted();
35630
+ if (!muxResult.success) {
35631
+ throw new Error(`Audio muxing failed: ${muxResult.error}`);
35632
+ }
35633
+ } else {
35634
+ const faststartResult = await applyFaststart(videoOnlyPath, outputPath, abortSignal);
35635
+ assertNotAborted();
35636
+ if (!faststartResult.success) {
35637
+ throw new Error(`Faststart failed: ${faststartResult.error}`);
35638
+ }
34891
35639
  }
35640
+ perfStages.assembleMs = Date.now() - stage6Start;
34892
35641
  }
34893
- perfStages.assembleMs = Date.now() - stage6Start;
34894
35642
  job.outputPath = outputPath;
34895
35643
  updateJobStatus(job, "complete", "Render complete", 100, onProgress);
34896
35644
  const totalElapsed = Date.now() - pipelineStart;
@@ -34912,6 +35660,13 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
34912
35660
  stages: perfStages,
34913
35661
  videoExtractBreakdown: extractionResult?.phaseBreakdown,
34914
35662
  tmpPeakBytes,
35663
+ captureCalibration: captureCalibration ? {
35664
+ sampledFrames: captureCalibration.samples.map((sample) => sample.frameIndex),
35665
+ p95Ms: captureCalibration.estimate.p95Ms,
35666
+ multiplier: captureCalibration.estimate.multiplier,
35667
+ reasons: captureCalibration.estimate.reasons
35668
+ } : void 0,
35669
+ captureAttempts: captureAttempts.length > 0 ? captureAttempts : void 0,
34915
35670
  hdrDiagnostics: hdrDiagnostics.videoExtractionFailures > 0 || hdrDiagnostics.imageDecodeFailures > 0 ? { ...hdrDiagnostics } : void 0,
34916
35671
  captureAvgMs: totalFrames > 0 ? Math.round((perfStages.captureMs ?? 0) / totalFrames) : void 0,
34917
35672
  peakRssMb: Math.round(peakRssBytes / (1024 * 1024)),
@@ -34929,7 +35684,7 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
34929
35684
  }
34930
35685
  }
34931
35686
  if (job.config.debug) {
34932
- if (existsSync33(outputPath)) {
35687
+ if (!isPngSequence && existsSync33(outputPath)) {
34933
35688
  const debugOutput = join35(workDir, `output${videoExt}`);
34934
35689
  copyFileSync2(outputPath, debugOutput);
34935
35690
  }
@@ -35027,7 +35782,7 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
35027
35782
  clearInterval(memSamplerInterval);
35028
35783
  }
35029
35784
  }
35030
- var RenderCancelledError, BROWSER_MEDIA_EPSILON;
35785
+ var RenderCancelledError, BROWSER_MEDIA_EPSILON, CAPTURE_CALIBRATION_TARGET_MS, MAX_MEASURED_CAPTURE_COST_MULTIPLIER, CAPTURE_CALIBRATION_PROTOCOL_TIMEOUT_MS;
35031
35786
  var init_renderOrchestrator = __esm({
35032
35787
  "../producer/src/services/renderOrchestrator.ts"() {
35033
35788
  "use strict";
@@ -35048,6 +35803,9 @@ var init_renderOrchestrator = __esm({
35048
35803
  }
35049
35804
  };
35050
35805
  BROWSER_MEDIA_EPSILON = 1e-4;
35806
+ CAPTURE_CALIBRATION_TARGET_MS = 600;
35807
+ MAX_MEASURED_CAPTURE_COST_MULTIPLIER = 8;
35808
+ CAPTURE_CALIBRATION_PROTOCOL_TIMEOUT_MS = 3e4;
35051
35809
  }
35052
35810
  });
35053
35811
 
@@ -38069,13 +38827,13 @@ function buildDockerRunArgs(input) {
38069
38827
  options.quality,
38070
38828
  "--format",
38071
38829
  options.format,
38072
- "--workers",
38073
- String(options.workers),
38830
+ ...options.workers != null ? ["--workers", String(options.workers)] : [],
38074
38831
  ...options.crf != null ? ["--crf", String(options.crf)] : [],
38075
38832
  ...options.videoBitrate ? ["--video-bitrate", options.videoBitrate] : [],
38076
38833
  ...options.quiet ? ["--quiet"] : [],
38077
38834
  ...options.gpu ? ["--gpu"] : [],
38078
- ...options.hdr ? ["--hdr"] : []
38835
+ ...options.hdrMode === "force-hdr" ? ["--hdr"] : [],
38836
+ ...options.hdrMode === "force-sdr" ? ["--sdr"] : []
38079
38837
  ];
38080
38838
  }
38081
38839
  var init_dockerRunArgs = __esm({
@@ -38131,9 +38889,6 @@ import { mkdirSync as mkdirSync24, readFileSync as readFileSync29, statSync as s
38131
38889
  import { cpus as cpus3, freemem as freemem3, tmpdir as tmpdir4 } from "os";
38132
38890
  import { resolve as resolve28, dirname as dirname16, join as join43, basename as basename9 } from "path";
38133
38891
  import { execFileSync as execFileSync5, spawn as spawn11 } from "child_process";
38134
- function defaultWorkerCount() {
38135
- return Math.max(1, Math.min(Math.floor(CPU_CORE_COUNT * 3 / 4), 8));
38136
- }
38137
38892
  function dockerImageTag(version) {
38138
38893
  return `${DOCKER_IMAGE_PREFIX}:${version}`;
38139
38894
  }
@@ -38225,7 +38980,7 @@ async function renderDocker(projectDir, outputPath, options) {
38225
38980
  format: options.format,
38226
38981
  workers: options.workers,
38227
38982
  gpu: options.gpu,
38228
- hdr: options.hdr,
38983
+ hdrMode: options.hdrMode,
38229
38984
  crf: options.crf,
38230
38985
  videoBitrate: options.videoBitrate,
38231
38986
  quiet: options.quiet
@@ -38274,7 +39029,7 @@ async function renderLocal(projectDir, outputPath, options) {
38274
39029
  format: options.format,
38275
39030
  workers: options.workers,
38276
39031
  useGpu: options.gpu,
38277
- hdr: options.hdr,
39032
+ hdrMode: options.hdrMode,
38278
39033
  crf: options.crf,
38279
39034
  videoBitrate: options.videoBitrate
38280
39035
  });
@@ -38321,7 +39076,7 @@ function trackRenderMetrics(job, elapsedMs, options, docker) {
38321
39076
  durationMs: elapsedMs,
38322
39077
  fps: options.fps,
38323
39078
  quality: options.quality,
38324
- workers: options.workers,
39079
+ workers: options.workers ?? perf?.workers,
38325
39080
  docker,
38326
39081
  gpu: options.gpu,
38327
39082
  compositionDurationMs,
@@ -38387,7 +39142,7 @@ var init_render2 = __esm({
38387
39142
  ["High quality at 60fps", "hyperframes render --fps 60 --quality high --output hd.mp4"],
38388
39143
  ["Deterministic render via Docker", "hyperframes render --docker --output deterministic.mp4"],
38389
39144
  ["Parallel rendering with 6 workers", "hyperframes render --workers 6 --output fast.mp4"],
38390
- ["HDR output (H.265 10-bit)", "hyperframes render --hdr --output hdr-output.mp4"]
39145
+ ["HDR output (auto-detected)", "hyperframes render --output hdr-output.mp4"]
38391
39146
  ];
38392
39147
  VALID_FPS = /* @__PURE__ */ new Set([24, 30, 60]);
38393
39148
  VALID_QUALITY = /* @__PURE__ */ new Set(["draft", "standard", "high"]);
@@ -38439,7 +39194,12 @@ var init_render2 = __esm({
38439
39194
  },
38440
39195
  hdr: {
38441
39196
  type: "boolean",
38442
- description: "Enable HDR: probe sources for PQ/HLG, output H.265 10-bit BT.2020",
39197
+ description: "Force HDR output even if no HDR sources are detected",
39198
+ default: false
39199
+ },
39200
+ sdr: {
39201
+ type: "boolean",
39202
+ description: "Force SDR output even if HDR sources are detected",
38443
39203
  default: false
38444
39204
  },
38445
39205
  crf: {
@@ -38545,9 +39305,8 @@ var init_render2 = __esm({
38545
39305
  );
38546
39306
  process.exit(1);
38547
39307
  }
38548
- const workerCount = workers ?? defaultWorkerCount();
38549
39308
  if (!quiet) {
38550
- const workerLabel = args.workers != null ? `${workerCount} workers` : `${workerCount} workers (auto \u2014 ${CPU_CORE_COUNT} cores detected)`;
39309
+ const workerLabel = workers != null ? `${workers} workers` : `auto workers (${CPU_CORE_COUNT} cores detected)`;
38551
39310
  console.log("");
38552
39311
  console.log(
38553
39312
  c.accent("\u25C6") + " Rendering " + c.accent(project.name) + c.dim(" \u2192 " + outputPath)
@@ -38615,14 +39374,18 @@ var init_render2 = __esm({
38615
39374
  console.log("");
38616
39375
  }
38617
39376
  }
39377
+ if (args.hdr && args.sdr) {
39378
+ console.error("Error: --hdr and --sdr are mutually exclusive.");
39379
+ process.exit(1);
39380
+ }
38618
39381
  if (useDocker) {
38619
39382
  await renderDocker(project.dir, outputPath, {
38620
39383
  fps,
38621
39384
  quality,
38622
39385
  format,
38623
- workers: workerCount,
39386
+ workers,
38624
39387
  gpu: useGpu,
38625
- hdr: args.hdr ?? false,
39388
+ hdrMode: args.sdr ? "force-sdr" : args.hdr ? "force-hdr" : "auto",
38626
39389
  crf,
38627
39390
  videoBitrate,
38628
39391
  quiet
@@ -38632,9 +39395,9 @@ var init_render2 = __esm({
38632
39395
  fps,
38633
39396
  quality,
38634
39397
  format,
38635
- workers: workerCount,
39398
+ workers,
38636
39399
  gpu: useGpu,
38637
- hdr: args.hdr ?? false,
39400
+ hdrMode: args.sdr ? "force-sdr" : args.hdr ? "force-hdr" : "auto",
38638
39401
  crf,
38639
39402
  videoBitrate,
38640
39403
  quiet,