hyperframes 0.8.17 → 0.8.18
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 +347 -316
- package/dist/fontLocalizeCli.js +2 -2
- package/dist/hyperframe-runtime.js +5 -5
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +5 -5
- package/dist/hyperframes-player.global.js +1 -1
- package/dist/studio/assets/{hyperframes-player-DejBDgXB.js → hyperframes-player-DzRNJZAz.js} +1 -1
- package/dist/studio/assets/{index-CklNVmi3.js → index-B4qse6wy.js} +1 -1
- package/dist/studio/assets/{index-CU6o8PuW.js → index-F-PUkOVc.js} +4 -4
- package/dist/studio/assets/{index-uu4Zd3BU.js → index-SGl0bb71.js} +1 -1
- package/dist/studio/index.html +1 -1
- package/dist/studio/index.js +2 -2
- package/dist/studio/index.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -50,7 +50,7 @@ var VERSION;
|
|
|
50
50
|
var init_version = __esm({
|
|
51
51
|
"src/version.ts"() {
|
|
52
52
|
"use strict";
|
|
53
|
-
VERSION = true ? "0.8.
|
|
53
|
+
VERSION = true ? "0.8.18" : "0.0.0-dev";
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
56
|
|
|
@@ -809,11 +809,11 @@ function __metadata(metadataKey, metadataValue) {
|
|
|
809
809
|
}
|
|
810
810
|
function __awaiter(thisArg, _arguments, P2, generator) {
|
|
811
811
|
function adopt(value) {
|
|
812
|
-
return value instanceof P2 ? value : new P2(function(
|
|
813
|
-
|
|
812
|
+
return value instanceof P2 ? value : new P2(function(resolve80) {
|
|
813
|
+
resolve80(value);
|
|
814
814
|
});
|
|
815
815
|
}
|
|
816
|
-
return new (P2 || (P2 = Promise))(function(
|
|
816
|
+
return new (P2 || (P2 = Promise))(function(resolve80, reject2) {
|
|
817
817
|
function fulfilled(value) {
|
|
818
818
|
try {
|
|
819
819
|
step(generator.next(value));
|
|
@@ -829,7 +829,7 @@ function __awaiter(thisArg, _arguments, P2, generator) {
|
|
|
829
829
|
}
|
|
830
830
|
}
|
|
831
831
|
function step(result) {
|
|
832
|
-
result.done ?
|
|
832
|
+
result.done ? resolve80(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
833
833
|
}
|
|
834
834
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
835
835
|
});
|
|
@@ -1020,14 +1020,14 @@ function __asyncValues(o) {
|
|
|
1020
1020
|
}, i2);
|
|
1021
1021
|
function verb(n2) {
|
|
1022
1022
|
i2[n2] = o[n2] && function(v2) {
|
|
1023
|
-
return new Promise(function(
|
|
1024
|
-
v2 = o[n2](v2), settle(
|
|
1023
|
+
return new Promise(function(resolve80, reject2) {
|
|
1024
|
+
v2 = o[n2](v2), settle(resolve80, reject2, v2.done, v2.value);
|
|
1025
1025
|
});
|
|
1026
1026
|
};
|
|
1027
1027
|
}
|
|
1028
|
-
function settle(
|
|
1028
|
+
function settle(resolve80, reject2, d2, v2) {
|
|
1029
1029
|
Promise.resolve(v2).then(function(v3) {
|
|
1030
|
-
|
|
1030
|
+
resolve80({ value: v3, done: d2 });
|
|
1031
1031
|
}, reject2);
|
|
1032
1032
|
}
|
|
1033
1033
|
}
|
|
@@ -41855,8 +41855,8 @@ var init_custom_element_registry = __esm({
|
|
|
41855
41855
|
} : (element) => element.localName === localName;
|
|
41856
41856
|
registry.set(localName, { Class, check });
|
|
41857
41857
|
if (waiting.has(localName)) {
|
|
41858
|
-
for (const
|
|
41859
|
-
|
|
41858
|
+
for (const resolve80 of waiting.get(localName))
|
|
41859
|
+
resolve80(Class);
|
|
41860
41860
|
waiting.delete(localName);
|
|
41861
41861
|
}
|
|
41862
41862
|
ownerDocument.querySelectorAll(
|
|
@@ -41896,13 +41896,13 @@ var init_custom_element_registry = __esm({
|
|
|
41896
41896
|
*/
|
|
41897
41897
|
whenDefined(localName) {
|
|
41898
41898
|
const { registry, waiting } = this;
|
|
41899
|
-
return new Promise((
|
|
41899
|
+
return new Promise((resolve80) => {
|
|
41900
41900
|
if (registry.has(localName))
|
|
41901
|
-
|
|
41901
|
+
resolve80(registry.get(localName).Class);
|
|
41902
41902
|
else {
|
|
41903
41903
|
if (!waiting.has(localName))
|
|
41904
41904
|
waiting.set(localName, []);
|
|
41905
|
-
waiting.get(localName).push(
|
|
41905
|
+
waiting.get(localName).push(resolve80);
|
|
41906
41906
|
}
|
|
41907
41907
|
});
|
|
41908
41908
|
}
|
|
@@ -52269,14 +52269,14 @@ function inlineHelper(call, ctx) {
|
|
|
52269
52269
|
};
|
|
52270
52270
|
return expandBody(fn.body.body, bindings, prov, ctx);
|
|
52271
52271
|
}
|
|
52272
|
-
function assignStep(update2,
|
|
52273
|
-
if (update2.operator === "+=") return asNum(
|
|
52272
|
+
function assignStep(update2, resolve80) {
|
|
52273
|
+
if (update2.operator === "+=") return asNum(resolve80(update2.right));
|
|
52274
52274
|
if (update2.operator === "-=") {
|
|
52275
|
-
const s2 = asNum(
|
|
52275
|
+
const s2 = asNum(resolve80(update2.right));
|
|
52276
52276
|
return s2 === void 0 ? void 0 : -s2;
|
|
52277
52277
|
}
|
|
52278
52278
|
if (update2.operator === "=" && update2.right?.type === "BinaryExpression") {
|
|
52279
|
-
return asNum(
|
|
52279
|
+
return asNum(resolve80(update2.right.right));
|
|
52280
52280
|
}
|
|
52281
52281
|
return void 0;
|
|
52282
52282
|
}
|
|
@@ -52285,10 +52285,10 @@ function updatedVarName(update2) {
|
|
|
52285
52285
|
if (update2?.type === "AssignmentExpression") return update2.left?.name ?? null;
|
|
52286
52286
|
return null;
|
|
52287
52287
|
}
|
|
52288
|
-
function loopStep(update2, varName,
|
|
52288
|
+
function loopStep(update2, varName, resolve80) {
|
|
52289
52289
|
if (updatedVarName(update2) !== varName) return void 0;
|
|
52290
52290
|
if (update2.type === "UpdateExpression") return update2.operator === "++" ? 1 : -1;
|
|
52291
|
-
return assignStep(update2,
|
|
52291
|
+
return assignStep(update2, resolve80);
|
|
52292
52292
|
}
|
|
52293
52293
|
function asNum(v2) {
|
|
52294
52294
|
return typeof v2 === "number" && Number.isFinite(v2) ? v2 : void 0;
|
|
@@ -52305,13 +52305,13 @@ function forInitVar(init) {
|
|
|
52305
52305
|
const d2 = init.declarations[0];
|
|
52306
52306
|
return d2.id?.type === "Identifier" ? { name: d2.id.name, initExpr: d2.init } : null;
|
|
52307
52307
|
}
|
|
52308
|
-
function parseForHeader(stmt,
|
|
52308
|
+
function parseForHeader(stmt, resolve80) {
|
|
52309
52309
|
const iv = forInitVar(stmt.init);
|
|
52310
52310
|
const test = stmt.test;
|
|
52311
52311
|
if (!iv || test?.type !== "BinaryExpression" || test.left?.name !== iv.name) return null;
|
|
52312
|
-
const start = asNum(
|
|
52313
|
-
const end = asNum(
|
|
52314
|
-
const step = loopStep(stmt.update, iv.name,
|
|
52312
|
+
const start = asNum(resolve80(iv.initExpr));
|
|
52313
|
+
const end = asNum(resolve80(test.right));
|
|
52314
|
+
const step = loopStep(stmt.update, iv.name, resolve80);
|
|
52315
52315
|
if (start === void 0 || end === void 0 || !step) return null;
|
|
52316
52316
|
return { v: iv.name, start, end, op: test.operator, step };
|
|
52317
52317
|
}
|
|
@@ -52423,12 +52423,12 @@ function expandStatements(stmts, ctx) {
|
|
|
52423
52423
|
}
|
|
52424
52424
|
return out;
|
|
52425
52425
|
}
|
|
52426
|
-
function inlineComputedTimelines(ast, timelineVar,
|
|
52426
|
+
function inlineComputedTimelines(ast, timelineVar, resolve80) {
|
|
52427
52427
|
const helpers = collectInlinableHelpers(ast, timelineVar);
|
|
52428
52428
|
const ctx = {
|
|
52429
52429
|
helpers,
|
|
52430
52430
|
timelineVar,
|
|
52431
|
-
resolve:
|
|
52431
|
+
resolve: resolve80,
|
|
52432
52432
|
depth: 0,
|
|
52433
52433
|
site: { n: 0 },
|
|
52434
52434
|
order: { n: 0 }
|
|
@@ -58784,7 +58784,7 @@ var RUNTIME_IIFE;
|
|
|
58784
58784
|
var init_runtime_inline = __esm({
|
|
58785
58785
|
"../core/dist/generated/runtime-inline.js"() {
|
|
58786
58786
|
"use strict";
|
|
58787
|
-
RUNTIME_IIFE = '"use strict";(()=>{var Dm=Object.create;var Yi=Object.defineProperty;var Im=Object.getOwnPropertyDescriptor;var Pm=Object.getOwnPropertyNames;var Om=Object.getPrototypeOf,Hm=Object.prototype.hasOwnProperty;var Gm=(e,t,n)=>t in e?Yi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ie=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Bm=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Pm(t))!Hm.call(e,i)&&i!==n&&Yi(e,i,{get:()=>t[i],enumerable:!(r=Im(t,i))||r.enumerable});return e};var Um=(e,t,n)=>(n=e!=null?Dm(Om(e)):{},Bm(t||!e||!e.__esModule?Yi(n,"default",{value:e,enumerable:!0}):n,e));var ge=(e,t,n)=>Gm(e,typeof t!="symbol"?t+"":t,n);var _u=ie((YS,jo)=>{var Z=String,Cu=function(){return{isColorSupported:!1,reset:Z,bold:Z,dim:Z,italic:Z,underline:Z,inverse:Z,hidden:Z,strikethrough:Z,black:Z,red:Z,green:Z,yellow:Z,blue:Z,magenta:Z,cyan:Z,white:Z,gray:Z,bgBlack:Z,bgRed:Z,bgGreen:Z,bgYellow:Z,bgBlue:Z,bgMagenta:Z,bgCyan:Z,bgWhite:Z,blackBright:Z,redBright:Z,greenBright:Z,yellowBright:Z,blueBright:Z,magentaBright:Z,cyanBright:Z,whiteBright:Z,bgBlackBright:Z,bgRedBright:Z,bgGreenBright:Z,bgYellowBright:Z,bgBlueBright:Z,bgMagentaBright:Z,bgCyanBright:Z,bgWhiteBright:Z}};jo.exports=Cu();jo.exports.createColors=Cu});var Ko=ie(()=>{});var jr=ie((QS,ku)=>{"use strict";var Tu=_u(),Ru=Ko(),Hn=class e extends Error{constructor(t,n,r,i,o,a){super(t),this.name="CssSyntaxError",this.reason=t,o&&(this.file=o),i&&(this.source=i),a&&(this.plugin=a),typeof n<"u"&&typeof r<"u"&&(typeof n=="number"?(this.line=n,this.column=r):(this.line=n.line,this.column=n.column,this.endLine=r.line,this.endColumn=r.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,e)}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(t){if(!this.source)return"";let n=this.source;t==null&&(t=Tu.isColorSupported);let r=c=>c,i=c=>c,o=c=>c;if(t){let{bold:c,gray:m,red:f}=Tu.createColors(!0);i=p=>c(f(p)),r=p=>m(p),Ru&&(o=p=>Ru(p))}let a=n.split(/\\r?\\n/),l=Math.max(this.line-3,0),s=Math.min(this.line+2,a.length),u=String(s).length;return a.slice(l,s).map((c,m)=>{let f=l+1+m,p=" "+(" "+f).slice(-u)+" | ";if(f===this.line){if(c.length>160){let v=20,x=Math.max(0,this.column-v),_=Math.max(this.column+v,this.endColumn+v),R=c.slice(x,_),T=r(p.replace(/\\d/g," "))+c.slice(0,Math.min(this.column-1,v-1)).replace(/[^\\t]/g," ");return i(">")+r(p)+o(R)+`\n `+T+i("^")}let b=r(p.replace(/\\d/g," "))+c.slice(0,this.column-1).replace(/[^\\t]/g," ");return i(">")+r(p)+o(c)+`\n `+b+i("^")}return" "+r(p)+o(c)}).join(`\n`)}toString(){let t=this.showSourceCode();return t&&(t=`\n\n`+t+`\n`),this.name+": "+this.message+t}};ku.exports=Hn;Hn.default=Hn});var Yo=ie((ZS,Fu)=>{"use strict";var o0=/(<)(\\/?style\\b)/gi,a0=/(<)(!--)/g;function ht(e){return typeof e!="string"||!e.includes("<")?e:e.replace(o0,"\\\\3c $2").replace(a0,"\\\\3c $2")}var Mu={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function s0(e){return e[0].toUpperCase()+e.slice(1)}var Gn=class{constructor(t){this.builder=t}atrule(t,n){let r=t.raws,i="@"+t.name,o=t.params?this.rawValue(t,"params"):"";if(typeof r.afterName<"u"?i+=r.afterName:o&&(i+=" "),t.nodes)this.block(t,i+o);else{let a=(r.between||"")+(n?";":"");this.builder(ht(i+o+a),t)}}beforeAfter(t,n){let r;t.type==="decl"?r=this.raw(t,null,"beforeDecl"):t.type==="comment"?r=this.raw(t,null,"beforeComment"):n==="before"?r=this.raw(t,null,"beforeRule"):r=this.raw(t,null,"beforeClose");let i=t.parent,o=0;for(;i&&i.type!=="root";)o+=1,i=i.parent;if(r.includes(`\n`)){let a=this.raw(t,null,"indent");if(a.length)for(let l=0;l<o;l++)r+=a}return r}block(t,n){let r=this.raw(t,"between","beforeOpen");this.builder(ht(n+r)+"{",t,"start");let i;t.nodes&&t.nodes.length?(this.body(t),i=this.raw(t,"after")):i=this.raw(t,"after","emptyBody"),i&&this.builder(ht(i)),this.builder("}",t,"end")}body(t){let n=t.nodes,r=n.length-1;for(;r>0&&n[r].type==="comment";)r-=1;let i=this.raw(t,"semicolon"),o=t.type==="document";for(let a=0;a<n.length;a++){let l=n[a],s=this.raw(l,"before");s&&this.builder(o?s:ht(s)),this.stringify(l,r!==a||i)}}comment(t){let n=this.raw(t,"left","commentLeft"),r=this.raw(t,"right","commentRight");this.builder(ht("/*"+n+t.text+r+"*/"),t)}decl(t,n){let r=t.raws,i=this.raw(t,"between","colon"),o=t.prop+i+this.rawValue(t,"value");t.important&&(o+=r.important||" !important"),n&&(o+=";"),this.builder(ht(o),t)}document(t){this.body(t)}raw(t,n,r){let i;if(r||(r=n),n&&(i=t.raws[n],typeof i<"u"))return i;let o=t.parent;if(r==="before"&&(!o||o.type==="root"&&o.first===t||o&&o.type==="document"))return"";if(!o)return Mu[r];let a=t.root(),l=a.rawCache||(a.rawCache={});if(typeof l[r]<"u")return l[r];if(r==="before"||r==="after")return this.beforeAfter(t,r);{let s="raw"+s0(r);this[s]?i=this[s](a,t):a.walk(u=>{if(i=u.raws[n],typeof i<"u")return!1})}return typeof i>"u"&&(i=Mu[r]),l[r]=i,i}rawBeforeClose(t){let n;return t.walk(r=>{if(r.nodes&&r.nodes.length>0&&typeof r.raws.after<"u")return n=r.raws.after,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawBeforeComment(t,n){let r;return t.walkComments(i=>{if(typeof i.raws.before<"u")return r=i.raws.before,r.includes(`\n`)&&(r=r.replace(/[^\\n]+$/,"")),!1}),typeof r>"u"?r=this.raw(n,null,"beforeDecl"):r&&(r=r.replace(/\\S/g,"")),r}rawBeforeDecl(t,n){let r;return t.walkDecls(i=>{if(typeof i.raws.before<"u")return r=i.raws.before,r.includes(`\n`)&&(r=r.replace(/[^\\n]+$/,"")),!1}),typeof r>"u"?r=this.raw(n,null,"beforeRule"):r&&(r=r.replace(/\\S/g,"")),r}rawBeforeOpen(t){let n;return t.walk(r=>{if(r.type!=="decl"&&(n=r.raws.between,typeof n<"u"))return!1}),n}rawBeforeRule(t){let n;return t.walk(r=>{if(r.nodes&&(r.parent!==t||t.first!==r)&&typeof r.raws.before<"u")return n=r.raws.before,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawColon(t){let n;return t.walkDecls(r=>{if(typeof r.raws.between<"u")return n=r.raws.between.replace(/[^\\s:]/g,""),!1}),n}rawEmptyBody(t){let n;return t.walk(r=>{if(r.nodes&&r.nodes.length===0&&(n=r.raws.after,typeof n<"u"))return!1}),n}rawIndent(t){if(t.raws.indent)return t.raws.indent;let n;return t.walk(r=>{let i=r.parent;if(i&&i!==t&&i.parent&&i.parent===t&&typeof r.raws.before<"u"){let o=r.raws.before.split(`\n`);return n=o[o.length-1],n=n.replace(/\\S/g,""),!1}}),n}rawSemicolon(t){let n;return t.walk(r=>{if(r.nodes&&r.nodes.length&&r.last.type==="decl"&&(n=r.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(t,n){let r=t[n],i=t.raws[n];return i&&i.value===r?i.raw:r}root(t){if(this.body(t),t.raws.after){let n=t.raws.after,r=t.parent&&t.parent.type==="document";this.builder(r?n:ht(n))}}rule(t){this.block(t,this.rawValue(t,"selector")),t.raws.ownSemicolon&&this.builder(ht(t.raws.ownSemicolon),t,"end")}stringify(t,n){if(!this[t.type])throw new Error("Unknown AST node type "+t.type+". Maybe you need to change PostCSS stringifier.");this[t.type](t,n)}};Fu.exports=Gn;Gn.default=Gn});var Bn=ie((eA,Nu)=>{"use strict";var l0=Yo();function Xo(e,t){new l0(t).stringify(e)}Nu.exports=Xo;Xo.default=Xo});var Kr=ie((tA,Jo)=>{"use strict";Jo.exports.isClean=Symbol("isClean");Jo.exports.my=Symbol("my")});var Vn=ie((nA,Lu)=>{"use strict";var u0=jr(),c0=Yo(),d0=Bn(),{isClean:Un,my:f0}=Kr();function Qo(e,t){let n=new e.constructor;for(let r in e){if(!Object.prototype.hasOwnProperty.call(e,r)||r==="proxyCache")continue;let i=e[r],o=typeof i;r==="parent"&&o==="object"?t&&(n[r]=t):r==="source"?n[r]=i:Array.isArray(i)?n[r]=i.map(a=>Qo(a,n)):(o==="object"&&i!==null&&(i=Qo(i)),n[r]=i)}return n}function nt(e,t){if(t&&typeof t.offset<"u")return t.offset;let n=1,r=1,i=0;for(let o=0;o<e.length;o++){if(r===t.line&&n===t.column){i=o;break}e[o]===`\n`?(n=1,r+=1):n+=1}return i}var Wn=class{get proxyOf(){return this}constructor(t={}){this.raws={},this[Un]=!1,this[f0]=!0;for(let n in t)if(n==="nodes"){this.nodes=[];for(let r of t[n])typeof r.clone=="function"?this.append(r.clone()):this.append(r)}else this[n]=t[n]}addToError(t){if(t.postcssNode=this,t.stack&&this.source&&/\\n\\s{4}at /.test(t.stack)){let n=this.source;t.stack=t.stack.replace(/\\n\\s{4}at /,`$&${n.input.from}:${n.start.line}:${n.start.column}$&`)}return t}after(t){return this.parent.insertAfter(this,t),this}assign(t={}){for(let n in t)this[n]=t[n];return this}before(t){return this.parent.insertBefore(this,t),this}cleanRaws(t){delete this.raws.before,delete this.raws.after,t||delete this.raws.between}clone(t={}){let n=Qo(this);for(let r in t)n[r]=t[r];return n}cloneAfter(t={}){let n=this.clone(t);return this.parent.insertAfter(this,n),n}cloneBefore(t={}){let n=this.clone(t);return this.parent.insertBefore(this,n),n}error(t,n={}){if(this.source){let{end:r,start:i}=this.rangeBy(n);return this.source.input.error(t,{column:i.column,line:i.line},{column:r.column,line:r.line},n)}return new u0(t)}getProxyProcessor(){return{get(t,n){return n==="proxyOf"?t:n==="root"?()=>t.root().toProxy():t[n]},set(t,n,r){return t[n]===r||(t[n]=r,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&t.markDirty()),!0}}}markClean(){this[Un]=!0}markDirty(){if(this[Un]){this[Un]=!1;let t=this;for(;t=t.parent;)t[Un]=!1}}next(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t+1]}positionBy(t={}){let n=this.source.start;if(t.index)n=this.positionInside(t.index);else if(t.word){let r="document"in this.source.input?this.source.input.document:this.source.input.css,o=r.slice(nt(r,this.source.start),nt(r,this.source.end)).indexOf(t.word);o!==-1&&(n=this.positionInside(o))}return n}positionInside(t){let n=this.source.start.column,r=this.source.start.line,i="document"in this.source.input?this.source.input.document:this.source.input.css,o=nt(i,this.source.start),a=o+t;for(let l=o;l<a;l++)i[l]===`\n`?(n=1,r+=1):n+=1;return{column:n,line:r,offset:a}}prev(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t-1]}rangeBy(t={}){let n="document"in this.source.input?this.source.input.document:this.source.input.css,r={column:this.source.start.column,line:this.source.start.line,offset:nt(n,this.source.start)},i=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:nt(n,this.source.end)+1}:{column:r.column+1,line:r.line,offset:r.offset+1};if(t.word){let a=n.slice(nt(n,this.source.start),nt(n,this.source.end)).indexOf(t.word);a!==-1&&(r=this.positionInside(a),i=this.positionInside(a+t.word.length))}else t.start?r={column:t.start.column,line:t.start.line,offset:nt(n,t.start)}:t.index&&(r=this.positionInside(t.index)),t.end?i={column:t.end.column,line:t.end.line,offset:nt(n,t.end)}:typeof t.endIndex=="number"?i=this.positionInside(t.endIndex):t.index&&(i=this.positionInside(t.index+1));return(i.line<r.line||i.line===r.line&&i.column<=r.column)&&(i={column:r.column+1,line:r.line,offset:r.offset+1}),{end:i,start:r}}raw(t,n){return new c0().raw(this,t,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...t){if(this.parent){let n=this,r=!1;for(let i of t)i===this?r=!0:r?(this.parent.insertAfter(n,i),n=i):this.parent.insertBefore(n,i);r||this.remove()}return this}root(){let t=this;for(;t.parent&&t.parent.type!=="document";)t=t.parent;return t}toJSON(t,n){let r={},i=n==null;n=n||new Map;let o=0;for(let a in this){if(!Object.prototype.hasOwnProperty.call(this,a)||a==="parent"||a==="proxyCache")continue;let l=this[a];if(Array.isArray(l))r[a]=l.map(s=>typeof s=="object"&&s.toJSON?s.toJSON(null,n):s);else if(typeof l=="object"&&l.toJSON)r[a]=l.toJSON(null,n);else if(a==="source"){if(l==null)continue;let s=n.get(l.input);s==null&&(s=o,n.set(l.input,o),o++),r[a]={end:l.end,inputId:s,start:l.start}}else r[a]=l}return i&&(r.inputs=[...n.keys()].map(a=>a.toJSON())),r}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(t=d0){t.stringify&&(t=t.stringify);let n="";return t(this,r=>{n+=r}),n}warn(t,n,r={}){let i={node:this};for(let o in r)i[o]=r[o];return t.warn(n,i)}};Lu.exports=Wn;Wn.default=Wn});var qn=ie((rA,Du)=>{"use strict";var m0=Vn(),zn=class extends m0{constructor(t){super(t),this.type="comment"}};Du.exports=zn;zn.default=zn});var jn=ie((iA,Iu)=>{"use strict";var p0=Vn(),$n=class extends p0{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(t){t&&typeof t.value<"u"&&typeof t.value!="string"&&(t={...t,value:String(t.value)}),super(t),this.type="decl"}};Iu.exports=$n;$n.default=$n});var gt=ie((oA,zu)=>{"use strict";var Pu=qn(),Ou=jn(),h0=Vn(),{isClean:Hu,my:Gu}=Kr(),Zo,Bu,Uu,ea;function Wu(e){return e.map(t=>(t.nodes&&(t.nodes=Wu(t.nodes)),delete t.source,t))}function Vu(e){if(e[Hu]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)Vu(t)}var Ue=class e extends h0{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(...t){for(let n of t){let r=this.normalize(n,this.last);for(let i of r)this.proxyOf.nodes.push(i)}return this.markDirty(),this}cleanRaws(t){if(super.cleanRaws(t),this.nodes)for(let n of this.nodes)n.cleanRaws(t)}each(t){if(!this.proxyOf.nodes)return;let n=this.getIterator(),r,i;for(;this.indexes[n]<this.proxyOf.nodes.length&&(r=this.indexes[n],i=t(this.proxyOf.nodes[r],r),i!==!1);)this.indexes[n]+=1;return delete this.indexes[n],i}every(t){return this.nodes.every(t)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let t=this.lastEach;return this.indexes[t]=0,t}getProxyProcessor(){return{get(t,n){return n==="proxyOf"?t:t[n]?n==="each"||typeof n=="string"&&n.startsWith("walk")?(...r)=>t[n](...r.map(i=>typeof i=="function"?(o,a)=>i(o.toProxy(),a):i)):n==="every"||n==="some"?r=>t[n]((i,...o)=>r(i.toProxy(),...o)):n==="root"?()=>t.root().toProxy():n==="nodes"?t.nodes.map(r=>r.toProxy()):n==="first"||n==="last"?t[n].toProxy():t[n]:t[n]},set(t,n,r){return t[n]===r||(t[n]=r,(n==="name"||n==="params"||n==="selector")&&t.markDirty()),!0}}}index(t){return typeof t=="number"?t:(t.proxyOf&&(t=t.proxyOf),this.proxyOf.nodes.indexOf(t))}insertAfter(t,n){let r=this.index(t),i=this.normalize(n,this.proxyOf.nodes[r]).reverse();r=this.index(t);for(let a of i)this.proxyOf.nodes.splice(r+1,0,a);let o;for(let a in this.indexes)o=this.indexes[a],r<o&&(this.indexes[a]=o+i.length);return this.markDirty(),this}insertBefore(t,n){let r=this.index(t),i=r===0?"prepend":!1,o=this.normalize(n,this.proxyOf.nodes[r],i).reverse();r=this.index(t);for(let l of o)this.proxyOf.nodes.splice(r,0,l);let a;for(let l in this.indexes)a=this.indexes[l],r<=a&&(this.indexes[l]=a+o.length);return this.markDirty(),this}normalize(t,n){if(typeof t=="string")t=Wu(Bu(t).nodes);else if(typeof t>"u")t=[];else if(Array.isArray(t)){t=t.slice(0);for(let i of t)i.parent&&i.parent.removeChild(i,"ignore")}else if(t.type==="root"&&this.type!=="document"){t=t.nodes.slice(0);for(let i of t)i.parent&&i.parent.removeChild(i,"ignore")}else if(t.type)t=[t];else if(t.prop){if(typeof t.value>"u")throw new Error("Value field is missed in node creation");typeof t.value!="string"&&(t.value=String(t.value)),t=[new Ou(t)]}else if(t.selector||t.selectors)t=[new ea(t)];else if(t.name)t=[new Zo(t)];else if(t.text)t=[new Pu(t)];else throw new Error("Unknown node type in node creation");return t.map(i=>(i[Gu]||e.rebuild(i),i=i.proxyOf,i.parent&&i.parent.removeChild(i),i[Hu]&&Vu(i),i.raws||(i.raws={}),typeof i.raws.before>"u"&&n&&typeof n.raws.before<"u"&&(i.raws.before=n.raws.before.replace(/\\S/g,"")),i.parent=this.proxyOf,i))}prepend(...t){t=t.reverse();for(let n of t){let r=this.normalize(n,this.first,"prepend").reverse();for(let i of r)this.proxyOf.nodes.unshift(i);for(let i in this.indexes)this.indexes[i]=this.indexes[i]+r.length}return this.markDirty(),this}push(t){return t.parent=this,this.proxyOf.nodes.push(t),this}removeAll(){for(let t of this.proxyOf.nodes)t.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(t){t=this.index(t),this.proxyOf.nodes[t].parent=void 0,this.proxyOf.nodes.splice(t,1);let n;for(let r in this.indexes)n=this.indexes[r],n>=t&&(this.indexes[r]=n-1);return this.markDirty(),this}replaceValues(t,n,r){return r||(r=n,n={}),this.walkDecls(i=>{n.props&&!n.props.includes(i.prop)||n.fast&&!i.value.includes(n.fast)||(i.value=i.value.replace(t,r))}),this.markDirty(),this}some(t){return this.nodes.some(t)}walk(t){return this.each((n,r)=>{let i;try{i=t(n,r)}catch(o){throw n.addToError(o)}return i!==!1&&n.walk&&(i=n.walk(t)),i})}walkAtRules(t,n){return n?t instanceof RegExp?this.walk((r,i)=>{if(r.type==="atrule"&&t.test(r.name))return n(r,i)}):this.walk((r,i)=>{if(r.type==="atrule"&&r.name===t)return n(r,i)}):(n=t,this.walk((r,i)=>{if(r.type==="atrule")return n(r,i)}))}walkComments(t){return this.walk((n,r)=>{if(n.type==="comment")return t(n,r)})}walkDecls(t,n){return n?t instanceof RegExp?this.walk((r,i)=>{if(r.type==="decl"&&t.test(r.prop))return n(r,i)}):this.walk((r,i)=>{if(r.type==="decl"&&r.prop===t)return n(r,i)}):(n=t,this.walk((r,i)=>{if(r.type==="decl")return n(r,i)}))}walkRules(t,n){return n?t instanceof RegExp?this.walk((r,i)=>{if(r.type==="rule"&&t.test(r.selector))return n(r,i)}):this.walk((r,i)=>{if(r.type==="rule"&&r.selector===t)return n(r,i)}):(n=t,this.walk((r,i)=>{if(r.type==="rule")return n(r,i)}))}};Ue.registerParse=e=>{Bu=e};Ue.registerRule=e=>{ea=e};Ue.registerAtRule=e=>{Zo=e};Ue.registerRoot=e=>{Uu=e};zu.exports=Ue;Ue.default=Ue;Ue.rebuild=e=>{e.type==="atrule"?Object.setPrototypeOf(e,Zo.prototype):e.type==="rule"?Object.setPrototypeOf(e,ea.prototype):e.type==="decl"?Object.setPrototypeOf(e,Ou.prototype):e.type==="comment"?Object.setPrototypeOf(e,Pu.prototype):e.type==="root"&&Object.setPrototypeOf(e,Uu.prototype),e[Gu]=!0,e.nodes&&e.nodes.forEach(t=>{Ue.rebuild(t)})}});var Yr=ie((aA,$u)=>{"use strict";var qu=gt(),Xt=class extends qu{constructor(t){super(t),this.type="atrule"}append(...t){return this.proxyOf.nodes||(this.nodes=[]),super.append(...t)}prepend(...t){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...t)}};$u.exports=Xt;Xt.default=Xt;qu.registerAtRule(Xt)});var Xr=ie((sA,Yu)=>{"use strict";var g0=gt(),ju,Ku,Mt=class extends g0{constructor(t){super({type:"document",...t}),this.nodes||(this.nodes=[])}toResult(t={}){return new ju(new Ku,this,t).stringify()}};Mt.registerLazyResult=e=>{ju=e};Mt.registerProcessor=e=>{Ku=e};Yu.exports=Mt;Mt.default=Mt});var Ju=ie((lA,Xu)=>{var b0="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",x0=(e,t=21)=>(n=t)=>{let r="",i=n|0;for(;i--;)r+=e[Math.random()*e.length|0];return r},y0=(e=21)=>{let t="",n=e|0;for(;n--;)t+=b0[Math.random()*64|0];return t};Xu.exports={nanoid:y0,customAlphabet:x0}});var Jr=ie(()=>{});var Qr=ie(()=>{});var ta=ie(()=>{});var Qu=ie(()=>{});var ra=ie((bA,tc)=>{"use strict";var{existsSync:v0,readFileSync:S0}=Qu(),{dirname:na,join:A0}=Jr(),{SourceMapConsumer:Zu,SourceMapGenerator:ec}=Qr();function E0(e){return Buffer?Buffer.from(e,"base64").toString():window.atob(e)}var Kn=class{constructor(t,n){if(n.map===!1)return;n.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(t),this.inline=this.startWith(this.annotation,"data:");let r=n.map?n.map.prev:void 0,i=this.loadMap(n.from,r);!this.mapFile&&n.from&&(this.mapFile=n.from),this.mapFile&&(this.root=na(this.mapFile)),i&&(this.text=i)}consumer(){return this.consumerCache||(this.consumerCache=new Zu(this.json||this.text)),this.consumerCache}decodeInline(t){let n=/^data:application\\/json;charset=utf-?8;base64,/,r=/^data:application\\/json;base64,/,i=/^data:application\\/json;charset=utf-?8,/,o=/^data:application\\/json,/,a=t.match(i)||t.match(o);if(a)return decodeURIComponent(t.substr(a[0].length));let l=t.match(n)||t.match(r);if(l)return E0(t.substr(l[0].length));let s=t.slice(22);throw s=s.slice(0,s.indexOf(",")),new Error("Unsupported source map encoding "+s)}getAnnotationURL(t){return t.replace(/^\\/\\*\\s*# sourceMappingURL=/,"").trim()}isMap(t){return typeof t!="object"?!1:typeof t.mappings=="string"||typeof t._mappings=="string"||Array.isArray(t.sections)}loadAnnotation(t){let n=t.match(/\\/\\*\\s*# sourceMappingURL=/g);if(!n)return;let r=t.lastIndexOf(n.pop()),i=t.indexOf("*/",r);r>-1&&i>-1&&(this.annotation=this.getAnnotationURL(t.substring(r,i)))}loadFile(t,n,r){if(!(!r&&!this.unsafeMap&&!/\\.map$/i.test(t))&&(this.root=na(t),v0(t)))return this.mapFile=t,S0(t,"utf-8").toString().trim()}loadMap(t,n){if(n===!1)return!1;if(n){if(typeof n=="string")return n;if(typeof n=="function"){let r=n(t);if(r){let i=this.loadFile(r,t,!0);if(!i)throw new Error("Unable to load previous source map: "+r.toString());return i}}else{if(n instanceof Zu)return ec.fromSourceMap(n).toString();if(n instanceof ec)return n.toString();if(this.isMap(n))return JSON.stringify(n);throw new Error("Unsupported previous source map format: "+n.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let r=this.annotation;t&&(r=A0(na(t),r));let i=this.loadFile(r,t,!1);if(i)try{this.json=JSON.parse(i.replace(/^\\)]}\'[^\\n]*\\n/,""))}catch{return}return i}}}startWith(t,n){return t?t.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};tc.exports=Kn;Kn.default=Kn});var Yn=ie((xA,ac)=>{"use strict";var{nanoid:w0}=Ju(),{isAbsolute:aa,resolve:sa}=Jr(),{SourceMapConsumer:C0,SourceMapGenerator:_0}=Qr(),{fileURLToPath:nc,pathToFileURL:Zr}=ta(),rc=jr(),T0=ra(),ia=Ko(),oa=Symbol("lineToIndexCache"),R0=!!(C0&&_0),ic=!!(sa&&aa);function oc(e){if(e[oa])return e[oa];let t=e.css.split(`\n`),n=new Array(t.length),r=0;for(let i=0,o=t.length;i<o;i++)n[i]=r,r+=t[i].length+1;return e[oa]=n,n}var Jt=class{get from(){return this.file||this.id}constructor(t,n={}){if(t===null||typeof t>"u"||typeof t=="object"&&!t.toString)throw new Error(`PostCSS received ${t} instead of CSS string`);if(this.css=t.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,n.document&&(this.document=n.document.toString()),n.from&&(!ic||/^\\w+:\\/\\//.test(n.from)||aa(n.from)?this.file=n.from:this.file=sa(n.from)),ic&&R0){let r=new T0(this.css,n);if(r.text){this.map=r;let i=r.consumer().file;!this.file&&i&&(this.file=this.mapResolve(i))}}this.file||(this.id="<input css "+w0(6)+">"),this.map&&(this.map.file=this.from)}error(t,n,r,i={}){let o,a,l,s,u;if(n&&typeof n=="object"){let m=n,f=r;if(typeof m.offset=="number"){s=m.offset;let p=this.fromOffset(s);n=p.line,r=p.col}else n=m.line,r=m.column,s=this.fromLineAndColumn(n,r);if(typeof f.offset=="number"){l=f.offset;let p=this.fromOffset(l);a=p.line,o=p.col}else a=f.line,o=f.column,l=this.fromLineAndColumn(f.line,f.column)}else if(r)s=this.fromLineAndColumn(n,r);else{s=n;let m=this.fromOffset(s);n=m.line,r=m.col}let c=this.origin(n,r,a,o);return c?u=new rc(t,c.endLine===void 0?c.line:{column:c.column,line:c.line},c.endLine===void 0?c.column:{column:c.endColumn,line:c.endLine},c.source,c.file,i.plugin):u=new rc(t,a===void 0?n:{column:r,line:n},a===void 0?r:{column:o,line:a},this.css,this.file,i.plugin),u.input={column:r,endColumn:o,endLine:a,endOffset:l,line:n,offset:s,source:this.css},this.file&&(Zr&&(u.input.url=Zr(this.file).toString()),u.input.file=this.file),u}fromLineAndColumn(t,n){return oc(this)[t-1]+n-1}fromOffset(t){let n=oc(this),r=n[n.length-1],i=0;if(t>=r)i=n.length-1;else{let o=n.length-2,a;for(;i<o;)if(a=i+(o-i>>1),t<n[a])o=a-1;else if(t>=n[a+1])i=a+1;else{i=a;break}}return{col:t-n[i]+1,line:i+1}}mapResolve(t){return/^\\w+:\\/\\//.test(t)?t:sa(this.map.consumer().sourceRoot||this.map.root||".",t)}origin(t,n,r,i){if(!this.map)return!1;let o=this.map.consumer(),a=o.originalPositionFor({column:n,line:t});if(!a.source)return!1;let l;typeof r=="number"&&(l=o.originalPositionFor({column:i,line:r}));let s;aa(a.source)?s=Zr(a.source):s=new URL(a.source,this.map.consumer().sourceRoot||Zr(this.map.mapFile));let u={column:a.column,endColumn:l&&l.column,endLine:l&&l.line,line:a.line,url:s.toString()};if(s.protocol==="file:")if(nc)u.file=nc(s);else throw new Error("file: protocol is not available in this PostCSS build");let c=o.sourceContentFor(a.source);return c&&(u.source=c),u}toJSON(){let t={};for(let n of["hasBOM","css","file","id"])this[n]!=null&&(t[n]=this[n]);return this.map&&(t.map={...this.map},t.map.consumerCache&&(t.map.consumerCache=void 0)),t}};ac.exports=Jt;Jt.default=Jt;ia&&ia.registerInput&&ia.registerInput(Jt)});var Qt=ie((yA,cc)=>{"use strict";var sc=gt(),lc,uc,bt=class extends sc{constructor(t){super(t),this.type="root",this.nodes||(this.nodes=[])}normalize(t,n,r){let i=super.normalize(t);if(n){if(r==="prepend")this.nodes.length>1?n.raws.before=this.nodes[1].raws.before:delete n.raws.before;else if(this.first!==n)for(let o of i)o.raws.before=n.raws.before}return i}removeChild(t,n){let r=this.index(t);return!n&&r===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[r].raws.before),super.removeChild(t)}toResult(t={}){return new lc(new uc,this,t).stringify()}};bt.registerLazyResult=e=>{lc=e};bt.registerProcessor=e=>{uc=e};cc.exports=bt;bt.default=bt;sc.registerRoot(bt)});var la=ie((vA,dc)=>{"use strict";var Xn={comma(e){return Xn.split(e,[","],!0)},space(e){let t=[" ",`\n`," "];return Xn.split(e,t)},split(e,t,n){let r=[],i="",o=!1,a=0,l=!1,s="",u=!1;for(let c of e)u?u=!1:c==="\\\\"?u=!0:l?c===s&&(l=!1):c===\'"\'||c==="\'"?(l=!0,s=c):c==="("?a+=1:c===")"?a>0&&(a-=1):a===0&&t.includes(c)&&(o=!0),o?(i!==""&&r.push(i.trim()),i="",o=!1):i+=c;return(n||i!=="")&&r.push(i.trim()),r}};dc.exports=Xn;Xn.default=Xn});var ei=ie((SA,mc)=>{"use strict";var fc=gt(),k0=la(),Zt=class extends fc{get selectors(){return k0.comma(this.selector)}set selectors(t){let n=this.selector?this.selector.match(/,\\s*/):null,r=n?n[0]:","+this.raw("between","beforeOpen");this.selector=t.join(r)}constructor(t){super(t),this.type="rule",this.nodes||(this.nodes=[])}};mc.exports=Zt;Zt.default=Zt;fc.registerRule(Zt)});var hc=ie((AA,pc)=>{"use strict";var M0=Yr(),F0=qn(),N0=jn(),L0=Yn(),D0=ra(),I0=Qt(),P0=ei();function Jn(e,t){if(Array.isArray(e))return e.map(i=>Jn(i));let{inputs:n,...r}=e;if(n){t=[];for(let i of n){let o={...i,__proto__:L0.prototype};o.map&&(o.map={...o.map,__proto__:D0.prototype}),t.push(o)}}if(r.nodes&&(r.nodes=e.nodes.map(i=>Jn(i,t))),r.source){let{inputId:i,...o}=r.source;r.source=o,i!=null&&(r.source.input=t[i])}if(r.type==="root")return new I0(r);if(r.type==="decl")return new N0(r);if(r.type==="rule")return new P0(r);if(r.type==="comment")return new F0(r);if(r.type==="atrule")return new M0(r);throw new Error("Unknown node type: "+e.type)}pc.exports=Jn;Jn.default=Jn});var ca=ie((EA,Sc)=>{"use strict";var{dirname:ti,relative:bc,resolve:xc,sep:yc}=Jr(),{SourceMapConsumer:vc,SourceMapGenerator:ni}=Qr(),{pathToFileURL:gc}=ta(),O0=Yn(),H0=!!(vc&&ni),G0=!!(ti&&xc&&bc&&yc),ua=class{constructor(t,n,r,i){this.stringify=t,this.mapOpts=r.map||{},this.root=n,this.opts=r,this.css=i,this.originalCSS=i,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let t;this.isInline()?t="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?t=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?t=this.mapOpts.annotation(this.opts.to,this.root):t=this.outputFile()+".map";let n=`\n`;this.css.includes(`\\r\n`)&&(n=`\\r\n`),this.css+=n+"/*# sourceMappingURL="+t+" */"}applyPrevMaps(){for(let t of this.previous()){let n=this.toUrl(this.path(t.file)),r=t.root||ti(t.file),i;this.mapOpts.sourcesContent===!1?(i=new vc(t.text),i.sourcesContent&&(i.sourcesContent=null)):i=t.consumer(),this.map.applySourceMap(i,n,this.toUrl(this.path(r)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let t;for(let n=this.root.nodes.length-1;n>=0;n--)t=this.root.nodes[n],t.type==="comment"&&t.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(n)}else if(this.css){let t;for(;(t=this.css.lastIndexOf("/*#"))!==-1;){let n=this.css.indexOf("*/",t+3);if(n===-1)break;for(;t>0&&this.css[t-1]===`\n`;)t--;this.css=this.css.slice(0,t)+this.css.slice(n+2)}}}}generate(){if(this.clearAnnotation(),G0&&H0&&this.isMap())return this.generateMap();{let t="";return this.stringify(this.root,n=>{t+=n}),[t]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let t=this.previous()[0].consumer();t.file=this.outputFile(),this.map=ni.fromSourceMap(t,{ignoreInvalidMapping:!0})}else this.map=new ni({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 ni({file:this.outputFile(),ignoreInvalidMapping:!0});let t=1,n=1,r="<no source>",i={generated:{column:0,line:0},original:{column:0,line:0},source:""},o,a;this.stringify(this.root,(l,s,u)=>{if(this.css+=l,s&&u!=="end"&&(i.generated.line=t,i.generated.column=n-1,s.source&&s.source.start?(i.source=this.sourcePath(s),i.original.line=s.source.start.line,i.original.column=s.source.start.column-1,this.map.addMapping(i)):(i.source=r,i.original.line=1,i.original.column=0,this.map.addMapping(i))),a=l.match(/\\n/g),a?(t+=a.length,o=l.lastIndexOf(`\n`),n=l.length-o):n+=l.length,s&&u!=="start"){let c=s.parent||{raws:{}};(!(s.type==="decl"||s.type==="atrule"&&!s.nodes)||s!==c.last||c.raws.semicolon)&&(s.source&&s.source.end?(i.source=this.sourcePath(s),i.original.line=s.source.end.line,i.original.column=s.source.end.column-1,i.generated.line=t,i.generated.column=n-2,this.map.addMapping(i)):(i.source=r,i.original.line=1,i.original.column=0,i.generated.line=t,i.generated.column=n-1,this.map.addMapping(i)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(t=>t.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let t=this.mapOpts.annotation;return typeof t<"u"&&t!==!0?!1:this.previous().length?this.previous().some(n=>n.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(t=>t.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(t){if(this.mapOpts.absolute||t.charCodeAt(0)===60||/^\\w+:\\/\\//.test(t))return t;let n=this.memoizedPaths.get(t);if(n)return n;let r=this.opts.to?ti(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(r=ti(xc(r,this.mapOpts.annotation)));let i=bc(r,t);return this.memoizedPaths.set(t,i),i}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(t=>{if(t.source&&t.source.input.map){let n=t.source.input.map;this.previousMaps.includes(n)||this.previousMaps.push(n)}});else{let t=new O0(this.originalCSS,this.opts);t.map&&this.previousMaps.push(t.map)}return this.previousMaps}setSourcesContent(){let t={};if(this.root)this.root.walk(n=>{if(n.source){let r=n.source.input.from;if(r&&!t[r]){t[r]=!0;let i=this.usesFileUrls?this.toFileUrl(r):this.toUrl(this.path(r));this.map.setSourceContent(i,n.source.input.css)}}});else if(this.css){let n=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(n,this.css)}}sourcePath(t){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(t.source.input.from):this.toUrl(this.path(t.source.input.from))}toBase64(t){return Buffer?Buffer.from(t).toString("base64"):window.btoa(unescape(encodeURIComponent(t)))}toFileUrl(t){let n=this.memoizedFileURLs.get(t);if(n)return n;if(gc){let r=gc(t).toString();return this.memoizedFileURLs.set(t,r),r}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(t){let n=this.memoizedURLs.get(t);if(n)return n;yc==="\\\\"&&(t=t.replace(/\\\\/g,"/"));let r=encodeURI(t).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(t,r),r}};Sc.exports=ua});var wc=ie((wA,Ec)=>{"use strict";var ri=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,ii=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,B0=/.[\\r\\n"\'(/\\\\]/,Ac=/[\\da-f]/i;Ec.exports=function(t,n={}){let r=t.css.valueOf(),i=n.ignoreErrors,o,a,l,s,u,c,m,f,p,b,v=r.length,x=0,_=[],R=[],T=-1;function M(){return x}function F(C){throw t.error("Unclosed "+C,x)}function E(){return R.length===0&&x>=v}function S(C){if(R.length)return R.pop();if(x>=v)return;let N=C?C.ignoreUnclosed:!1;switch(o=r.charCodeAt(x),o){case 10:case 32:case 9:case 13:case 12:{s=x;do s+=1,o=r.charCodeAt(s);while(o===32||o===10||o===9||o===13||o===12);c=["space",r.slice(x,s)],x=s-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let I=String.fromCharCode(o);c=[I,I,x];break}case 40:{if(b=_.length?_.pop()[1]:"",p=r.charCodeAt(x+1),b==="url"&&p!==39&&p!==34&&p!==32&&p!==10&&p!==9&&p!==12&&p!==13){s=x;do{if(m=!1,s=r.indexOf(")",s+1),s===-1)if(i||N){s=x;break}else F("bracket");for(f=s;r.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);c=["brackets",r.slice(x,s+1),x,s],x=s}else x<=T?c=["(","(",x]:(s=r.indexOf(")",x+1),a=r.slice(x,s+1),s===-1||B0.test(a)?(T=s===-1?v:s,c=["(","(",x]):(c=["brackets",a,x,s],x=s));break}case 39:case 34:{u=o===39?"\'":\'"\',s=x;do{if(m=!1,s=r.indexOf(u,s+1),s===-1)if(i||N){s=x+1;break}else F("string");for(f=s;r.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);c=["string",r.slice(x,s+1),x,s],x=s;break}case 64:{ri.lastIndex=x+1,ri.test(r),ri.lastIndex===0?s=r.length-1:s=ri.lastIndex-2,c=["at-word",r.slice(x,s+1),x,s],x=s;break}case 92:{for(s=x,l=!0;r.charCodeAt(s+1)===92;)s+=1,l=!l;if(o=r.charCodeAt(s+1),l&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(s+=1,Ac.test(r.charAt(s)))){for(;Ac.test(r.charAt(s+1));)s+=1;r.charCodeAt(s+1)===32&&(s+=1)}c=["word",r.slice(x,s+1),x,s],x=s;break}default:{o===47&&r.charCodeAt(x+1)===42?(s=r.indexOf("*/",x+2)+1,s===0&&(i||N?s=r.length:F("comment")),c=["comment",r.slice(x,s+1),x,s],x=s):(ii.lastIndex=x+1,ii.test(r),ii.lastIndex===0?s=r.length-1:s=ii.lastIndex-2,c=["word",r.slice(x,s+1),x,s],_.push(c),x=s);break}}return x++,c}function A(C){R.push(C)}return{back:A,endOfFile:E,nextToken:S,position:M}}});var Rc=ie((CA,Tc)=>{"use strict";var U0=Yr(),W0=qn(),V0=jn(),z0=Qt(),Cc=ei(),q0=wc(),_c={empty:!0,space:!0};function $0(e){for(let t=e.length-1;t>=0;t--){let n=e[t],r=n[3]||n[2];if(r)return r}}var da=class{constructor(t){this.input=t,this.root=new z0,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:t,start:{column:1,line:1,offset:0}}}atrule(t){let n=new U0;n.name=t[1].slice(1),n.name===""&&this.unnamedAtrule(n,t),this.init(n,t[2]);let r,i,o,a=!1,l=!1,s=[],u=[];for(;!this.tokenizer.endOfFile();){if(t=this.tokenizer.nextToken(),r=t[0],r==="("||r==="["?u.push(r==="("?")":"]"):r==="{"&&u.length>0?u.push("}"):r===u[u.length-1]&&u.pop(),u.length===0)if(r===";"){n.source.end=this.getPosition(t[2]),n.source.end.offset++,this.semicolon=!0;break}else if(r==="{"){l=!0;break}else if(r==="}"){if(s.length>0){for(o=s.length-1,i=s[o];i&&i[0]==="space";)i=s[--o];i&&(n.source.end=this.getPosition(i[3]||i[2]),n.source.end.offset++)}this.end(t);break}else s.push(t);else s.push(t);if(this.tokenizer.endOfFile()){a=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(s),s.length?(n.raws.afterName=this.spacesAndCommentsFromStart(s),this.raw(n,"params",s),a&&(t=s[s.length-1],n.source.end=this.getPosition(t[3]||t[2]),n.source.end.offset++,this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),l&&(n.nodes=[],this.current=n)}checkMissedSemicolon(t){let n=this.colon(t);if(n===!1)return;let r=0,i;for(let o=n-1;o>=0&&(i=t[o],!(i[0]!=="space"&&(r+=1,r===2)));o--);throw this.input.error("Missed semicolon",i[0]==="word"?i[3]+1:i[2])}colon(t){let n=0,r,i,o;for(let[a,l]of t.entries()){if(i=l,o=i[0],o==="("&&(n+=1),o===")"&&(n-=1),n===0&&o===":")if(!r)this.doubleColon(i);else{if(r[0]==="word"&&r[1]==="progid")continue;return a}r=i}return!1}comment(t){let n=new W0;this.init(n,t[2]),n.source.end=this.getPosition(t[3]||t[2]),n.source.end.offset++;let r=t[1].slice(2,-2);if(!r.trim())n.text="",n.raws.left=r,n.raws.right="";else{let i=r.match(/^(\\s*)([^]*\\S)(\\s*)$/);n.text=i[2],n.raws.left=i[1],n.raws.right=i[3]}}createTokenizer(){this.tokenizer=q0(this.input)}decl(t,n){let r=new V0;this.init(r,t[0][2]);let i=t[t.length-1];for(i[0]===";"&&(this.semicolon=!0,t.pop()),r.source.end=this.getPosition(i[3]||i[2]||$0(t)),r.source.end.offset++;t[0][0]!=="word";)t.length===1&&this.unknownWord(t),r.raws.before+=t.shift()[1];for(r.source.start=this.getPosition(t[0][2]),r.prop="";t.length;){let u=t[0][0];if(u===":"||u==="space"||u==="comment")break;r.prop+=t.shift()[1]}r.raws.between="";let o;for(;t.length;)if(o=t.shift(),o[0]===":"){r.raws.between+=o[1];break}else o[0]==="word"&&/\\w/.test(o[1])&&this.unknownWord([o]),r.raws.between+=o[1];(r.prop[0]==="_"||r.prop[0]==="*")&&(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));let a=[],l;for(;t.length&&(l=t[0][0],!(l!=="space"&&l!=="comment"));)a.push(t.shift());this.precheckMissedSemicolon(t);for(let u=t.length-1;u>=0;u--){if(o=t[u],o[1].toLowerCase()==="!important"){r.important=!0;let c=this.stringFrom(t,u);c=this.spacesFromEnd(t)+c,c!==" !important"&&(r.raws.important=c);break}else if(o[1].toLowerCase()==="important"){let c=t.slice(0),m="";for(let f=u;f>0;f--){let p=c[f][0];if(m.trim().startsWith("!")&&p!=="space")break;m=c.pop()[1]+m}m.trim().startsWith("!")&&(r.important=!0,r.raws.important=m,t=c)}if(o[0]!=="space"&&o[0]!=="comment")break}t.some(u=>u[0]!=="space"&&u[0]!=="comment")&&(r.raws.between+=a.map(u=>u[1]).join(""),a=[]),this.raw(r,"value",a.concat(t),n),r.value.includes(":")&&!n&&this.checkMissedSemicolon(t)}doubleColon(t){throw this.input.error("Double colon",{offset:t[2]},{offset:t[2]+t[1].length})}emptyRule(t){let n=new Cc;this.init(n,t[2]),n.selector="",n.raws.between="",this.current=n}end(t){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(t[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(t)}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(t){if(this.spaces+=t[1],this.current.nodes){let n=this.current.nodes[this.current.nodes.length-1];n&&n.type==="rule"&&!n.raws.ownSemicolon&&(n.raws.ownSemicolon=this.spaces,this.spaces="",n.source.end=this.getPosition(t[2]),n.source.end.offset+=n.raws.ownSemicolon.length)}}getPosition(t){let n=this.input.fromOffset(t);return{column:n.col,line:n.line,offset:t}}init(t,n){this.current.push(t),t.source={input:this.input,start:this.getPosition(n)},t.raws.before=this.spaces,this.spaces="",t.type!=="comment"&&(this.semicolon=!1)}other(t){let n=!1,r=null,i=!1,o=null,a=[],l=t[1].startsWith("--"),s=[],u=t;for(;u;){if(r=u[0],s.push(u),r==="("||r==="[")o||(o=u),a.push(r==="("?")":"]");else if(l&&i&&r==="{")o||(o=u),a.push("}");else if(a.length===0)if(r===";")if(i){this.decl(s,l);return}else break;else if(r==="{"){this.rule(s);return}else if(r==="}"){this.tokenizer.back(s.pop()),n=!0;break}else r===":"&&(i=!0);else r===a[a.length-1]&&(a.pop(),a.length===0&&(o=null));u=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),a.length>0&&this.unclosedBracket(o),n&&i){if(!l)for(;s.length&&(u=s[s.length-1][0],!(u!=="space"&&u!=="comment"));)this.tokenizer.back(s.pop());this.decl(s,l)}else this.unknownWord(s)}parse(){let t;for(;!this.tokenizer.endOfFile();)switch(t=this.tokenizer.nextToken(),t[0]){case"space":this.spaces+=t[1];break;case";":this.freeSemicolon(t);break;case"}":this.end(t);break;case"comment":this.comment(t);break;case"at-word":this.atrule(t);break;case"{":this.emptyRule(t);break;default:this.other(t);break}this.endFile()}precheckMissedSemicolon(){}raw(t,n,r,i){let o,a,l=r.length,s="",u=!0,c,m;for(let f=0;f<l;f+=1)o=r[f],a=o[0],a==="space"&&f===l-1&&!i?u=!1:a==="comment"?(m=r[f-1]?r[f-1][0]:"empty",c=r[f+1]?r[f+1][0]:"empty",!_c[m]&&!_c[c]?s.slice(-1)===","?u=!1:s+=o[1]:u=!1):s+=o[1];if(!u){let f=r.reduce((p,b)=>p+b[1],"");t.raws[n]={raw:f,value:s}}t[n]=s}rule(t){t.pop();let n=new Cc;this.init(n,t[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(t),this.raw(n,"selector",t),this.current=n}spacesAndCommentsFromEnd(t){let n,r="";for(;t.length&&(n=t[t.length-1][0],!(n!=="space"&&n!=="comment"));)r=t.pop()[1]+r;return r}spacesAndCommentsFromStart(t){let n,r="";for(;t.length&&(n=t[0][0],!(n!=="space"&&n!=="comment"));)r+=t.shift()[1];return r}spacesFromEnd(t){let n,r="";for(;t.length&&(n=t[t.length-1][0],n==="space");)r=t.pop()[1]+r;return r}stringFrom(t,n){let r="";for(let i=n;i<t.length;i++)r+=t[i][1];return t.splice(n,t.length-n),r}unclosedBlock(){let t=this.current.source.start;throw this.input.error("Unclosed block",t.line,t.column)}unclosedBracket(t){throw this.input.error("Unclosed bracket",{offset:t[2]},{offset:t[2]+1})}unexpectedClose(t){throw this.input.error("Unexpected }",{offset:t[2]},{offset:t[2]+1})}unknownWord(t){throw this.input.error("Unknown word "+t[0][1],{offset:t[0][2]},{offset:t[0][2]+t[0][1].length})}unnamedAtrule(t,n){throw this.input.error("At-rule without name",{offset:n[2]},{offset:n[2]+n[1].length})}};Tc.exports=da});var ai=ie((_A,kc)=>{"use strict";var j0=gt(),K0=Yn(),Y0=Rc();function oi(e,t){let n=new K0(e,t),r=new Y0(n);try{r.parse()}catch(i){throw i}return r.root}kc.exports=oi;oi.default=oi;j0.registerParse(oi)});var fa=ie((TA,Mc)=>{"use strict";var Qn=class{constructor(t,n={}){if(this.type="warning",this.text=t,n.node&&n.node.source){let r=n.node.rangeBy(n);this.line=r.start.line,this.column=r.start.column,this.endLine=r.end.line,this.endColumn=r.end.column}for(let r in n)this[r]=n[r]}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}};Mc.exports=Qn;Qn.default=Qn});var si=ie((RA,Fc)=>{"use strict";var X0=fa(),Zn=class{get content(){return this.css}constructor(t,n,r){this.processor=t,this.messages=[],this.root=n,this.opts=r,this.css="",this.map=void 0}toString(){return this.css}warn(t,n={}){n.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(n.plugin=this.lastPlugin.postcssPlugin);let r=new X0(t,n);return this.messages.push(r),r}warnings(){return this.messages.filter(t=>t.type==="warning")}};Fc.exports=Zn;Zn.default=Zn});var ma=ie((kA,Lc)=>{"use strict";var Nc={};Lc.exports=function(t){Nc[t]||(Nc[t]=!0,typeof console<"u"&&console.warn&&console.warn(t))}});var ga=ie((FA,Oc)=>{"use strict";var J0=gt(),Q0=Xr(),Z0=ca(),eg=ai(),Dc=si(),tg=Qt(),ng=Bn(),{isClean:Ye,my:rg}=Kr(),MA=ma(),ig={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},og={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},ag={Once:!0,postcssPlugin:!0,prepare:!0},en=0;function er(e){return typeof e=="object"&&typeof e.then=="function"}function Pc(e){let t=!1,n=ig[e.type];return e.type==="decl"?t=e.prop.toLowerCase():e.type==="atrule"&&(t=e.name.toLowerCase()),t&&e.append?[n,n+"-"+t,en,n+"Exit",n+"Exit-"+t]:t?[n,n+"-"+t,n+"Exit",n+"Exit-"+t]:e.append?[n,en,n+"Exit"]:[n,n+"Exit"]}function Ic(e){let t;return e.type==="document"?t=["Document",en,"DocumentExit"]:e.type==="root"?t=["Root",en,"RootExit"]:t=Pc(e),{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function pa(e){return e[Ye]=!1,e.nodes&&e.nodes.forEach(t=>pa(t)),e}var ha={},xt=class e{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(t,n,r){this.stringified=!1,this.processed=!1;let i;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))i=pa(n);else if(n instanceof e||n instanceof Dc)i=pa(n.root),n.map&&(typeof r.map>"u"&&(r.map={}),r.map.inline||(r.map.inline=!1),r.map.prev=n.map);else{let o=eg;r.syntax&&(o=r.syntax.parse),r.parser&&(o=r.parser),o.parse&&(o=o.parse);try{i=o(n,r)}catch(a){this.processed=!0,this.error=a}i&&!i[rg]&&J0.rebuild(i)}this.result=new Dc(t,i,r),this.helpers={...ha,postcss:ha,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(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(t,n){let r=this.result.lastPlugin;try{n&&n.addToError(t),this.error=t,t.name==="CssSyntaxError"&&!t.plugin?(t.plugin=r.postcssPlugin,t.setMessage()):r.postcssVersion}catch(i){console&&console.error&&console.error(i)}return t}prepareVisitors(){this.listeners={};let t=(n,r,i)=>{this.listeners[r]||(this.listeners[r]=[]),this.listeners[r].push([n,i])};for(let n of this.plugins)if(typeof n=="object")for(let r in n){if(!og[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!ag[r])if(typeof n[r]=="object")for(let i in n[r])i==="*"?t(n,r,n[r][i]):t(n,r+"-"+i.toLowerCase(),n[r][i]);else typeof n[r]=="function"&&t(n,r,n[r])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let t=0;t<this.plugins.length;t++){let n=this.plugins[t],r=this.runOnRoot(n);if(er(r))try{await r}catch(i){throw this.handleError(i)}}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[Ye];){t[Ye]=!0;let n=[Ic(t)];for(;n.length>0;){let r=this.visitTick(n);if(er(r))try{await r}catch(i){let o=n[n.length-1].node;throw this.handleError(i,o)}}}if(this.listeners.OnceExit)for(let[n,r]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if(t.type==="document"){let i=t.nodes.map(o=>r(o,this.helpers));await Promise.all(i)}else await r(t,this.helpers)}catch(i){throw this.handleError(i)}}}return this.processed=!0,this.stringify()}runOnRoot(t){this.result.lastPlugin=t;try{if(typeof t=="object"&&t.Once){if(this.result.root.type==="document"){let n=this.result.root.nodes.map(r=>t.Once(r,this.helpers));return er(n[0])?Promise.all(n):n}return t.Once(this.result.root,this.helpers)}else if(typeof t=="function")return t(this.result.root,this.result)}catch(n){throw this.handleError(n)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let t=this.result.opts,n=ng;t.syntax&&(n=t.syntax.stringify),t.stringifier&&(n=t.stringifier),n.stringify&&(n=n.stringify);let r=this.result.root.source;if(t.map===void 0&&!(r&&r.input&&r.input.map)){let a="";return n(this.result.root,l=>{a+=l}),this.result.css=a,this.result}let o=new Z0(n,this.result.root,this.result.opts).generate();return this.result.css=o[0],this.result.map=o[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 t of this.plugins){let n=this.runOnRoot(t);if(er(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[Ye];)t[Ye]=!0,this.walkSync(t);if(this.listeners.OnceExit)if(t.type==="document")for(let n of t.nodes)this.visitSync(this.listeners.OnceExit,n);else this.visitSync(this.listeners.OnceExit,t)}return this.result}then(t,n){return this.async().then(t,n)}toString(){return this.css}visitSync(t,n){for(let[r,i]of t){this.result.lastPlugin=r;let o;try{o=i(n,this.helpers)}catch(a){throw this.handleError(a,n.proxyOf)}if(n.type!=="root"&&n.type!=="document"&&!n.parent)return!0;if(er(o))throw this.getAsyncError()}}visitTick(t){let n=t[t.length-1],{node:r,visitors:i}=n;if(r.type!=="root"&&r.type!=="document"&&!r.parent){t.pop();return}if(i.length>0&&n.visitorIndex<i.length){let[a,l]=i[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===i.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=a;try{return l(r.toProxy(),this.helpers)}catch(s){throw this.handleError(s,r)}}if(n.iterator!==0){let a=n.iterator,l;for(;l=r.nodes[r.indexes[a]];)if(r.indexes[a]+=1,!l[Ye]){l[Ye]=!0,t.push(Ic(l));return}n.iterator=0,delete r.indexes[a]}let o=n.events;for(;n.eventIndex<o.length;){let a=o[n.eventIndex];if(n.eventIndex+=1,a===en){r.nodes&&r.nodes.length&&(r[Ye]=!0,n.iterator=r.getIterator());return}else if(this.listeners[a]){n.visitors=this.listeners[a];return}}t.pop()}walkSync(t){t[Ye]=!0;let n=Pc(t);for(let r of n)if(r===en)t.nodes&&t.each(i=>{i[Ye]||this.walkSync(i)});else{let i=this.listeners[r];if(i&&this.visitSync(i,t.toProxy()))return}}warnings(){return this.sync().warnings()}};xt.registerPostcss=e=>{ha=e};Oc.exports=xt;xt.default=xt;tg.registerLazyResult(xt);Q0.registerLazyResult(xt)});var Gc=ie((LA,Hc)=>{"use strict";var sg=ca(),lg=ai(),ug=si(),cg=Bn(),NA=ma(),tr=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 t,n=lg;try{t=n(this._css,this._opts)}catch(r){this.error=r}if(this.error)throw this.error;return this._root=t,t}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(t,n,r){n=n.toString(),this.stringified=!1,this._processor=t,this._css=n,this._opts=r,this._map=void 0;let i=cg;this.result=new ug(this._processor,void 0,this._opts),this.result.css=n;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let a=new sg(i,void 0,this._opts,n);if(a.isMap()){let[l,s]=a.generate();l&&(this.result.css=l),s&&(this.result.map=s)}else a.clearAnnotation(),this.result.css=a.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}sync(){if(this.error)throw this.error;return this.result}then(t,n){return this.async().then(t,n)}toString(){return this._css}warnings(){return[]}};Hc.exports=tr;tr.default=tr});var Uc=ie((DA,Bc)=>{"use strict";var dg=Xr(),fg=ga(),mg=Gc(),pg=Qt(),Ft=class{constructor(t=[]){this.version="8.5.14",this.plugins=this.normalize(t)}normalize(t){let n=[];for(let r of t)if(r.postcss===!0?r=r():r.postcss&&(r=r.postcss),typeof r=="object"&&Array.isArray(r.plugins))n=n.concat(r.plugins);else if(typeof r=="object"&&r.postcssPlugin)n.push(r);else if(typeof r=="function")n.push(r);else if(!(typeof r=="object"&&(r.parse||r.stringify)))throw new Error(r+" is not a PostCSS plugin");return n}process(t,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new mg(this,t,n):new fg(this,t,n)}use(t){return this.plugins=this.plugins.concat(this.normalize([t])),this}};Bc.exports=Ft;Ft.default=Ft;pg.registerProcessor(Ft);dg.registerProcessor(Ft)});var Yc=ie((IA,Kc)=>{"use strict";var Wc=Yr(),Vc=qn(),hg=gt(),gg=jr(),zc=jn(),qc=Xr(),bg=hc(),xg=Yn(),yg=ga(),vg=la(),Sg=Vn(),Ag=ai(),ba=Uc(),Eg=si(),$c=Qt(),jc=ei(),wg=Bn(),Cg=fa();function ue(...e){return e.length===1&&Array.isArray(e[0])&&(e=e[0]),new ba(e)}ue.plugin=function(t,n){let r=!1;function i(...a){console&&console.warn&&!r&&(r=!0,console.warn(t+`: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(t+`: \\u91CC\\u9762 postcss.plugin \\u88AB\\u5F03\\u7528. \\u8FC1\\u79FB\\u6307\\u5357:\nhttps://www.w3ctech.com/topic/2226`));let l=n(...a);return l.postcssPlugin=t,l.postcssVersion=new ba().version,l}let o;return Object.defineProperty(i,"postcss",{get(){return o||(o=i()),o}}),i.process=function(a,l,s){return ue([i(s)]).process(a,l)},i};ue.stringify=wg;ue.parse=Ag;ue.fromJSON=bg;ue.list=vg;ue.comment=e=>new Vc(e);ue.atRule=e=>new Wc(e);ue.decl=e=>new zc(e);ue.rule=e=>new jc(e);ue.root=e=>new $c(e);ue.document=e=>new qc(e);ue.CssSyntaxError=gg;ue.Declaration=zc;ue.Container=hg;ue.Processor=ba;ue.Document=qc;ue.Comment=Vc;ue.Warning=Cg;ue.AtRule=Wc;ue.Result=Eg;ue.Input=xg;ue.Rule=jc;ue.Root=$c;ue.Node=Sg;yg.registerPostcss(ue);Kc.exports=ue;ue.default=ue});function Ar(){return globalThis}function L(e,t){if(typeof window>"u")return;let n=Ar(),r=n.__hf?.onSwallowed;if(r)try{r({label:e,error:t})}catch(i){}(n.__hfDebug||n.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${e} swallowed:`,t)}var Wm=["seconds-time","rational-fps","seek-keep-playing","composition-manifest-v1","runtime-data"];function Vm(e,t){let n=Math.abs(e),r=Math.abs(t);for(;r!==0;){let i=n%r;n=r,r=i}return n||1}function zm(e){let t=Number.isFinite(e)&&e>0?e:30,n=Number.isInteger(t)?1:1e6,r=Math.round(t*n),i=Vm(r,n);return{numerator:r/i,denominator:n/i}}function Xi(e){if(typeof e!="object"||e===null)return null;let t=e;return!Number.isFinite(t.numerator)||!Number.isFinite(t.denominator)||(t.numerator??0)<=0||(t.denominator??0)<=0?null:Number(t.numerator)/Number(t.denominator)}function Er(e){return{protocolVersion:1,capabilities:Wm,fps:zm(e)}}function qm(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function Fs(e,t=30){if(typeof e!="object"||e===null)return{status:"legacy",fps:t};let n=e;if(n.protocolVersion===void 0)return{status:"legacy",fps:t};if(n.protocolVersion!==1)return{status:"unsupported",code:"unsupported_protocol_version",receivedVersion:n.protocolVersion};let r=Xi(n.fps);return r===null||!qm(n.capabilities)?{status:"unsupported",code:"invalid_protocol_metadata",receivedVersion:n.protocolVersion}:{status:"supported",fps:r,metadata:n}}var Ns=30;function Ls(e){Ns=Number.isFinite(e)&&e>0?e:30}function xe(e){try{window.parent.postMessage({...e,...Er(Ns)},"*")}catch(t){L("bridge.postMessage",t)}}var $m={play:(e,t)=>t.onPlay(),pause:(e,t)=>t.onPause(),"stop-media":(e,t)=>t.onStopMedia(),seek:(e,t)=>t.onSeek(jm(e,t),e.seekMode??"commit"),tick:(e,t)=>t.onTick(),"set-muted":(e,t)=>t.onSetMuted(!!e.muted),"set-volume":(e,t)=>t.onSetVolume(Math.max(0,Math.min(1,Number(e.volume??1)))),"set-media-output-muted":(e,t)=>t.onSetMediaOutputMuted(!!e.muted),"set-native-media-sync-disabled":(e,t)=>t.onSetNativeMediaSyncDisabled(!!e.disabled),"set-web-audio-media-disabled":(e,t)=>t.onSetWebAudioMediaDisabled(!!e.disabled),"set-playback-rate":(e,t)=>t.onSetPlaybackRate(Number(e.playbackRate??1)),"set-root-duration":(e,t)=>t.onSetRootDuration(Number(e.durationSeconds??0)),"set-color-grading":(e,t)=>t.onSetColorGrading(e.target??null,e.grading??null),"set-color-grading-compare":(e,t)=>t.onSetColorGradingCompare(e.target??null,e.compare??null),"enable-pick-mode":(e,t)=>t.onEnablePickMode(),"disable-pick-mode":(e,t)=>t.onDisablePickMode(),"flash-elements":e=>Ym(e),"set-runtime-data":(e,t)=>{typeof e.channel=="string"&&t.onSetRuntimeData?.(e.channel,e.payload)},"clear-runtime-data":(e,t)=>{typeof e.channel=="string"&&t.onClearRuntimeData?.(e.channel)}};function jm(e,t){let n=Number(e.timeSeconds);if(Number.isFinite(n))return Math.max(0,n);let i=Xi(e.fps)??t.getCanonicalFps();return Math.max(0,Number(e.frame??0))/i}function Km(e){let t=Fs(e);return t.status!=="unsupported"?!1:(xe({source:"hf-preview",type:"diagnostic",code:`runtime.protocol.${t.code}`,details:{receivedVersion:typeof t.receivedVersion=="string"||typeof t.receivedVersion=="number"?t.receivedVersion:null}}),!0)}function Ym(e){let t=e.selectors,n=e.duration||800;t&&Xm(t,n)}function Ds(e){let t=n=>{let r=n.data;if(!r||r.source!=="hf-parent"||r.type!=="control"||Km(r))return;let i=r.action;if(typeof i!="string")return;let o=$m[i];o&&o(r,e)};return window.addEventListener("message",t),xe({source:"hf-preview",type:"ready"}),t}function Xm(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(i=>{i.classList.add("__hf-flash"),setTimeout(()=>i.classList.remove("__hf-flash"),t)})}catch(r){L("bridge.flashElements.querySelector",r)}}var Ji=null;function Is(e){Ji=e}function Ne(e,t){if(Ji)try{Ji({source:"hf-preview",type:"analytics",event:e,properties:t??{}})}catch(n){L("runtime.analytics.site1",n)}}function Jm(e){let t=e.toLowerCase().replace(/[^a-z0-9]+/g,"-"),n=0,r=t.length;for(;n<r&&t[n]==="-";)n++;for(;r>n&&t[r-1]==="-";)r--;let i=t.slice(n,r);return i.length>0?i:"node"}function Ot(e){return`--${Jm(e)}`}function Ps(e){let t=new Map;for(let n of e){let r=Ot(n),i=t.get(r);i?i.includes(n)||i.push(n):t.set(r,[n])}return[...t.values()].filter(n=>n.length>1)}function Hs(){if(typeof document>"u")return{};let e=new Set;document.documentElement?.hasAttribute("data-composition-variables")&&e.add(document.documentElement);for(let i of Array.from(document.querySelectorAll("[data-composition-variables]")))e.add(i);let t={};for(let i of e)Object.assign(t,bn(i));let n=Cr(),r={...t,...n};for(let i of e)Zi(i,r);return r}var Os=new Set;function Gs(e){let t=e?.getAttribute("data-composition-variables");if(!t)return[];let n;try{n=JSON.parse(t)}catch{return[]}return Array.isArray(n)?n.filter(r=>!!r&&typeof r=="object"):[]}function Qm(e,t){return t?.trim()||e.getAttribute("data-composition-id")?.trim()||e.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")?.trim()||"composition"}function Zm(e){return Array.isArray(e.options)?e.options.map(t=>t&&typeof t=="object"?t.value:t).filter(t=>typeof t=="string"||typeof t=="number"):[]}function ep(e,t){if(typeof e.id!="string")return null;let n=t[e.id];if(n==null||"default"in e&&String(n)===String(e.default))return null;let r=Zm(e);return r.length===0||r.some(i=>String(i)===String(n))?null:{id:e.id,value:n,allowed:r}}function Zi(e,t,n){if(!e)return;let r=Gs(e);if(r.length===0)return;let i=Qm(e,n);for(let o of r){let a=ep(o,t);if(!a)continue;let l=`${i}|${a.id}|${String(a.value)}`;if(Os.has(l))continue;Os.add(l);let s="default"in o?JSON.stringify(o.default):"the composition default";console.warn(`[hyperframes] runtime_unknown_enum_value: ${i} variable "${a.id}" got ${JSON.stringify(a.value)}, which is not a declared option (${a.allowed.join(", ")}). Rendering ${s} instead.`)}}function bn(e){let t={};for(let n of Gs(e))typeof n.id!="string"||!("default"in n)||(t[n.id]=n.default);return t}var Qi="data-hf-css-vars";function wr(e){return"style"in e&&typeof e.style?.setProperty=="function"}function eo(e,t){if(!wr(e))return;let n=[];for(let[r,i]of Object.entries(t))if(typeof i=="string"&&i!==""||typeof i=="number"){let o=Ot(r);e.style.setProperty(o,String(i)),n.push(o)}n.length>0&&e.setAttribute(Qi,n.join(" "))}function Bs(e,t,n){let r={};for(let[i,o]of Object.entries(t)){let a=Ot(i);((wr(e)?e.style.getPropertyValue(a):"")||(n?n.getComputedStyle(e).getPropertyValue(a):"")).trim()===""&&(r[i]=o)}return r}function Us(e){if(!wr(e))return;let t=e.getAttribute(Qi);if(t){for(let n of t.split(" "))n.startsWith("--")&&e.style.removeProperty(n);e.removeAttribute(Qi)}}function Ws(e){let t=new Set;e.documentElement?.hasAttribute("data-composition-variables")&&t.add(e.documentElement);for(let i of Array.from(e.querySelectorAll("[data-composition-variables]")))t.add(i);let n=Cr(),r=[];for(let i of t)r.push(...tp(i,n,e.defaultView));for(let i of Ps(r))console.warn(`composition variables ${i.join(", ")} collapse to the same CSS property ${Ot(i[0]??"")} \\u2014 rename one to avoid cross-talk`)}function tp(e,t,n){if(!wr(e))return[];let r=bn(e),i={};for(let[o,a]of Object.entries(r)){if(o in t)continue;let l=Ot(o);(e.style.getPropertyValue(l)||(n?n.getComputedStyle(e).getPropertyValue(l):"")).trim()===""&&(i[o]=a)}for(let[o,a]of Object.entries(t))o in r&&(i[o]=a);return eo(e,i),Object.keys(r)}function Vs(e){let t=e.getAttribute("data-variable-values");if(!t)return{};let n;try{n=JSON.parse(t)}catch{return{}}return!n||typeof n!="object"||Array.isArray(n)?{}:n}function Cr(){if(typeof window>"u")return{};let e=window.__hfVariables;return!e||typeof e!="object"||Array.isArray(e)?{}:e}function zs(e){let t=[],n=u=>{if(typeof u.getAnimations!="function")return[];try{return u.getAnimations()}catch{return[]}},r=u=>e?.resolveStartSeconds?e.resolveStartSeconds(u):Number.parseFloat(u.getAttribute("data-start")??"0")||0,i=(u,c)=>{let m=null;try{m=u.effect?.getComputedTiming?.()??null}catch(p){L("runtime.adapters.css.site5",p)}if(!m)return{};let f=Number(m.endTime);return Number.isFinite(f)?{endSeconds:c+f/1e3}:{unbounded:!0}},o=(u,c)=>{for(let m of u){try{m.currentTime=c}catch(f){L("runtime.adapters.css.site1",f)}try{m.pause()}catch(f){L("runtime.adapters.css.site2",f)}}},a=u=>{for(let c of u)try{c.play()}catch(m){L("runtime.adapters.css.site3",m)}},l=u=>{for(let c of u)try{c.pause()}catch(m){L("runtime.adapters.css.site4",m)}},s=u=>{u.baseDelay?u.el.style.animationDelay=u.baseDelay:u.el.style.removeProperty("animation-delay"),u.basePlayState?u.el.style.animationPlayState=u.basePlayState:u.el.style.removeProperty("animation-play-state")};return{name:"css",discover:()=>{t=[];let u=document.querySelectorAll("*");for(let c of u){if(!(c instanceof HTMLElement))continue;let m=window.getComputedStyle(c);!m.animationName||m.animationName==="none"||t.push({el:c,baseDelay:c.style.animationDelay||"",basePlayState:c.style.animationPlayState||"",animations:n(c)})}},getInferredDurationSeconds:()=>{let u=0;for(let c of t){if(!c.el.isConnected)continue;let m=r(c.el);for(let f of n(c.el)){let p=i(f,m);p.endSeconds!=null&&(u=Math.max(u,p.endSeconds))}}return u>0?u:null},seek:u=>{let c=Number(u.time)||0;for(let m of t){if(!m.el.isConnected)continue;let f=r(m.el),p=Math.max(0,c-f)*1e3,b=m.animations;if(b.length>0){o(b,p);continue}m.el.style.animationPlayState="paused",m.el.style.animationDelay=`-${(p/1e3).toFixed(3)}s`}},pause:()=>{for(let u of t){if(!u.el.isConnected)continue;let c=u.animations;c.length>0&&l(c),s(u)}},play:()=>{for(let u of t)u.el.isConnected&&(s(u),a(u.animations))},revert:()=>{t=[]}}}function qs(e){return{name:"gsap",discover:()=>{},seek:t=>{let n=e.getTimeline();if(!n)return;n.pause();let r=Math.max(0,Number(t.time)||0),i=t.suppressEvents===!0;typeof n.totalTime=="function"?(n.totalTime(r+.001,!0),n.totalTime(r,i)):n.seek(r,i)},pause:()=>{let t=e.getTimeline();t&&t.pause()}}}function $s(){return{name:"animejs",discover:()=>{try{let e=window.anime;if(!e||typeof e.running>"u")return;let t=e.running;if(!Array.isArray(t)||t.length===0)return;let n=window.__hfAnime??[],r=new Set(n);for(let i of t)r.has(i)||n.push(i);window.__hfAnime=n}catch(e){L("runtime.adapters.animejs.site1",e)}},seek:e=>{let t=Math.max(0,(Number(e.time)||0)*1e3),n=window.__hfAnime;if(!(!n||n.length===0))for(let r of n)try{typeof r.seek=="function"&&r.seek(t)}catch(i){L("runtime.adapters.animejs.site2",i)}},pause:()=>{let e=window.__hfAnime;if(!(!e||e.length===0))for(let t of e)try{typeof t.pause=="function"&&t.pause()}catch(n){L("runtime.adapters.animejs.site3",n)}},play:()=>{let e=window.__hfAnime;if(!(!e||e.length===0))for(let t of e)try{typeof t.play=="function"&&t.play()}catch(n){L("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function Ks(){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??[],r=new Set(n);for(let i of t)r.has(i)||n.push(i);window.__hfLottie=n}}}catch(e){L("runtime.adapters.lottie.site1",e)}},seek:e=>{let t=Math.max(0,Number(e.time)||0),n=window.__hfLottie;if(!(!n||n.length===0))for(let r of n)try{if(to(r))r.goToAndStop(t*1e3,!1);else if(no(r)){if(typeof r.setCurrentRawFrameValue=="function"){let i=r.totalFrames??0,o=r.frameRate??30,a=t*o;i>0&&r.setCurrentRawFrameValue(Math.min(a,i-1))}else if(typeof r.seek=="function"){let i=r.duration??1,o=Math.min(100,t/i*100);r.seek(o)}}}catch(i){L("runtime.adapters.lottie.site2",i)}},pause:()=>{let e=window.__hfLottie;if(!(!e||e.length===0))for(let t of e)try{(to(t)||no(t))&&t.pause()}catch(n){L("runtime.adapters.lottie.site3",n)}},revert:()=>{},getInferredDurationSeconds:()=>{let e=window.__hfLottie;if(!e||e.length===0)return null;let t=0,n=!1;for(let r of e){let i=null;try{i=np(r)}catch(o){L("runtime.adapters.lottie.site4",o)}i!=null&&(n=!0,t=Math.max(t,i))}return n?t:null}}}function js(e,t){return!Number.isFinite(e)||!e||e<=0||!Number.isFinite(t)||!t||t<=0?null:e/t}function np(e){return to(e)?js(e.totalFrames,e.frameRate):no(e)?Number.isFinite(e.duration)&&(e.duration??0)>0?e.duration??null:js(e.totalFrames,e.frameRate):null}function to(e){return typeof e=="object"&&e!==null&&typeof e.goToAndStop=="function"}function no(e){return typeof e=="object"&&e!==null&&typeof e.pause=="function"&&("totalFrames"in e||"duration"in e)}var ro=-1,_r=new Set,Ht,io=0;function Ys(e){let t=[],n=!0,r={time:e,waitUntil:o=>{if(!n)throw new Error("hf-seek waitUntil() must be called synchronously from the event listener");t.push(o)}};try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:r}))}catch(o){L("runtime.adapters.seek-dispatch.site1",o)}finally{n=!1}if(t.length===0)return;let i=Promise.all(t).then(()=>({status:"fulfilled"})).catch(o=>({status:"rejected",reason:o}));_r.add(i),i.then(o=>{_r.delete(i)&&o.status==="rejected"&&Ht===void 0&&(Ht={reason:o.reason})})}function Tr(e){e!==ro&&(ro=e,Ys(e))}function Rr(e){ro=e,Ys(e)}function Xs(){return io>0}async function oo(){io+=1;let e=Ht;try{for(await Promise.resolve();_r.size>0;){let r=(await Promise.all([..._r])).find(i=>i.status==="rejected");e===void 0&&r?.status==="rejected"&&(e={reason:r.reason})}let t=Ht;if(e===void 0&&(e=t),Ht===t&&(Ht=void 0),e)throw e.reason}finally{io-=1}}function Js(){let e=null,t=0,n=null,r=null,i=null,o=null,a=()=>{if(typeof window>"u")return null;let c=window.THREE?.DefaultLoadingManager;return!c||typeof c!="object"||typeof c.itemsLoaded!="number"||typeof c.itemsTotal!="number"?null:c},l=u=>{o||u.itemsTotal<=u.itemsLoaded||(o=new Promise(c=>{u.onLoad=function(){try{i?.call(this)}finally{o=null,u.onLoad=i??null,c()}}}))},s=u=>{n!==u&&(n=u,r=u.onStart??null,i=u.onLoad??null,u.onStart=function(c,m,f){try{r?.call(this,c,m,f)}finally{l(u)}})};return{name:"three",discover:()=>{let u=a();u&&(s(u),l(u))},seek:u=>{e=Math.max(0,Number(u.time)||0),t=e,window.__hfThreeTime=e,Tr(e)},pause:()=>{e==null&&(e=Math.max(0,t))},play:()=>{e=null},revert:()=>{e=null,t=0},getReadyPromise:()=>{let u=a();return!u||u.itemsTotal<=u.itemsLoaded?null:(o||l(u),o)}}}function $e(e){let t=null,n=new WeakSet;return{name:e.name,discover:()=>{},seek:()=>{},pause:()=>{},play:()=>{},revert:()=>{},getReadyPromise:()=>{let r=e.getInstances();if(r.length===0)return null;let i=r.filter(o=>!n.has(o));return i.length===0?null:t||(t=Promise.allSettled(i.map(o=>e.waitFor(o).then(()=>{n.add(o)}))).then(()=>{t=null}),t)}}}function Qs(){return $e({name:"mapbox",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfMapbox;return Array.isArray(e)?e:[]},waitFor:e=>new Promise(t=>{if(e.loaded()){t();return}e.on("load",t)})})}function Zs(){return $e({name:"leaflet",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfLeaflet;return Array.isArray(e)?e:[]},waitFor:e=>new Promise(t=>e.whenReady(t))})}function el(){return $e({name:"google-maps",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfGoogleMaps;return Array.isArray(e)?e:[]},waitFor:e=>new Promise(t=>{let n=e.addListener("tilesloaded",()=>{n.remove(),t()})})})}function tl(){return $e({name:"maplibre",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfMaplibre;return Array.isArray(e)?e:[]},waitFor:e=>new Promise(t=>{if(e.loaded()){t();return}e.on("load",t)})})}function nl(){return $e({name:"d3",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfD3;return Array.isArray(e)?e:[]},waitFor:e=>e.end()})}var rp=250;function rl(){let e=null,t=0,n=null,r=()=>{n!==null&&(window.clearInterval(n),n=null)},i=()=>{n===null&&document.querySelector("[data-composition-id][data-requires-webgpu]")&&(n=window.setInterval(()=>{e!==null&&(Xs()||(window.__hfTypegpuTime=e,Rr(e)))},rp))};return{name:"typegpu",discover:()=>{},seek:o=>{e=Math.max(0,Number(o.time)||0),t=e,window.__hfTypegpuTime=e,Tr(e)},pause:()=>{e==null&&(e=Math.max(0,t)),i()},play:()=>{r(),e=null},revert:()=>{r(),e=null,t=0}}}var xn="data-hf-render-id",il="data-hf-group-render-id";function ip(e){return e.getAttribute(xn)||e.id||null}var op="__render_frame_",ap="__";function sp(e){return`${op}${e}${ap}`}function lp(e){let t=ip(e);return t?sp(t):null}function ut(e){let t=lp(e);if(!t)return null;let n=document.getElementById(t);return n instanceof HTMLImageElement?n:null}function ol(e){let t=e.nextElementSibling;if(t instanceof HTMLImageElement&&t.classList.contains("__render_frame__")&&t.complete&&t.naturalWidth>0)return t;let n=ut(e);return n&&n.complete&&n.naturalWidth>0?n:null}function al(){let e=globalThis.GPUQueue;if(!e?.prototype?.copyExternalImageToTexture)return;let t=e.prototype.copyExternalImageToTexture;e.prototype.copyExternalImageToTexture=function(n,r,i){if(n?.source instanceof HTMLVideoElement){let o=ol(n.source);if(o)return t.call(this,{...n,source:o},r,i)}return t.call(this,n,r,i)}}function sl(){let e=[globalThis.WebGL2RenderingContext,globalThis.WebGLRenderingContext],t=["texImage2D","texSubImage2D"];for(let n of e){let r=n?.prototype;if(r)for(let i of t){let o=r[i];if(typeof o!="function"||o.__hfVideoPatched)continue;let a=function(...l){let s=l.length-1,u=l[s];if(u instanceof HTMLVideoElement){let c=ol(u);c&&(l[s]=c)}return o.apply(this,l)};a.__hfVideoPatched=!0,r[i]=a}}}function ll(){let e=!1,t=0,n=!1,r,i,o,a=new Set,l=new WeakMap,s=()=>{if(!document.getAnimations)return[];try{return document.getAnimations()}catch{return[]}},u=x=>{let _=Number(x.currentTime);return Number.isFinite(_)&&_>0?_:0},c=(x,_)=>_<=0?x:x>=_?Math.max(0,x-_):x,m=(x,_)=>{let R=l.get(x);if(R)return R;let T={compositionTimeMs:_,animationTimeMs:e?c(u(x),_):u(x)};return l.set(x,T),T},f=(x,_)=>{if(!a.has(x)){a.add(x);let R=()=>{a.delete(x)};try{x.addEventListener("finish",R,{once:!0}),x.addEventListener("cancel",R,{once:!0})}catch(T){L("runtime.adapters.waapi.site4",T)}}m(x,_)},p=(x,_)=>{for(let R of x)f(R,_)},b=()=>{if(n||typeof Element>"u")return;let x=Element.prototype;if(typeof x.animate!="function"||x.__hfOriginalAnimate)return;let _=x.animate;try{Object.defineProperty(x,"__hfOriginalAnimate",{value:_,configurable:!0});let R=function(...T){let M=_.apply(this,T);return f(M,t),M};x.animate=R,r=x,i=_,o=R,n=!0}catch{}},v=x=>{let _=null;try{_=x.effect?.getComputedTiming?.()??null}catch(M){L("runtime.adapters.waapi.site4",M)}if(!_)return{};let R=Number(_.endTime);return Number.isFinite(R)?{endSeconds:(l.get(x)?.compositionTimeMs??0)/1e3+R/1e3}:{unbounded:!0}};return{name:"waapi",discover:()=>{e=!0,b(),p(s(),t)},seek:x=>{let _=Math.max(0,(Number(x.time)||0)*1e3);t=_,(!e||a.size>0)&&p(s(),e?_:0);for(let R of a){let T=e?m(R,_):m(R,0),M=T.animationTimeMs+Math.max(0,_-T.compositionTimeMs);try{R.currentTime=M}catch(F){L("runtime.adapters.waapi.site1",F)}try{R.pause()}catch(F){L("runtime.adapters.waapi.site2",F)}}},pause:()=>{e||p(s(),t);for(let x of a)try{x.pause()}catch(_){L("runtime.adapters.waapi.site3",_)}},revert:()=>{if(a.clear(),l=new WeakMap,e=!1,t=0,r&&i&&o&&r.animate===o)try{r.animate=i,r.__hfOriginalAnimate===i&&delete r.__hfOriginalAnimate}catch(x){L("runtime.adapters.waapi.site5",x)}r=void 0,i=void 0,o=void 0,n=!1},getInferredDurationSeconds:()=>{let x=0;for(let _ of s()){let R=v(_);R.endSeconds!=null&&(x=Math.max(x,R.endSeconds))}return x>0?x:null}}}var ao=3.981071705534972;function Le(e){return Number.isFinite(e)?Math.max(0,Math.min(ao,e)):1}function kr(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):1}function ul(e,t){let n=typeof HTMLMediaElement>"u"?void 0:Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype,"volume"),r=n?.get,i=n?.set;if(!r||!i)return t();let o=Number(r.call(e));Object.defineProperty(e,"volume",{configurable:!0,get:()=>o,set:a=>{o=Number(a),i.call(e,kr(o))}});try{return t()}finally{delete e.volume,i.call(e,kr(o))}}var Gt=Object.freeze({start:"data-start",duration:"data-duration",trackIndex:"data-track-index",derivedEnd:"data-end",legacyTrack:"data-layer"}),lv=Object.freeze([Gt.start,Gt.duration,Gt.trackIndex]),uv=Object.freeze([Gt.derivedEnd]),cv=Object.freeze([Gt.derivedEnd,Gt.legacyTrack]);function Bt(e){if(e==null||e.trim()==="")return null;let t=Number(e);return Number.isFinite(t)?t:null}var dl=/^[A-Za-z0-9_.:-]+$/;function fl(e,t){let n=e.charCodeAt(t);return n>=48&&n<=57}function cl(e,t){let n=t;for(;n>=0&&fl(e,n);)n--;return n}function up(e,t){let n=t;for(;n>=0&&(e[n]??"").trim()==="";)n--;return n}function cp(e){let t=e.length-1;if(!fl(e,t))return null;let n=cl(e,t);return e[n]==="."&&(n=cl(e,n-1)),n+1}function dp(e){let t=cp(e);if(t==null)return null;let n=up(e,t-1),r=e[n];if(r!=="+"&&r!=="-")return null;let i=e.slice(0,n).trim();if(!dl.test(i))return null;let o=Number(e.slice(t));return Number.isFinite(o)?{refId:i,operator:r,magnitude:o}:null}function so(e){let t=(e??"").trim();if(!t)return null;let n=Bt(t);if(n!=null)return{kind:"absolute",value:n};if(dl.test(t))return{kind:"reference",refId:t,offset:0};let r=dp(t);return r?{kind:"reference",refId:r.refId,offset:r.operator==="-"?-r.magnitude:r.magnitude}:null}function ml(e){return Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1}function ve(e){return Bt(e)}function Ce(e){let t=Number.parseFloat(e.getAttribute("data-playback-rate")??""),n=Number.isFinite(t)&&t>0?t:typeof HTMLMediaElement<"u"&&e instanceof HTMLMediaElement?e.defaultPlaybackRate:1;return ml(n)}function yn(e){let t=n=>{let r=ve(n);return r==null?null:Number.isFinite(r)&&r>=0?r:null};return t(e.getAttribute("data-playback-start"))??t(e.getAttribute("data-media-start"))??0}function Ze(e,t){return fp(t,yn(e),Ce(e))}function fp(e,t,n){return Number.isFinite(e)?Math.max(0,e-t)/ml(n):null}function mp(e,t,n){let r=e.filter(o=>Number.isFinite(o.time)&&Number.isFinite(o.volume)).map(o=>({time:Math.max(0,o.time-t),volume:Le(o.volume)})).sort((o,a)=>o.time-a.time),i=[];for(let o of r){let a=i.at(-1);a&&Math.abs(a.time-o.time)<1e-9?a.volume=o.volume:i.push(o)}return i.length===0||i[0].time>0&&i.unshift({time:0,volume:Le(n)}),i}function pl(e,t){if(e.length===0)return 1;let n=0;for(;n<e.length-2&&t>=e[n+1].time;)n+=1;let r=e[n],i=e[n+1]??r,o=i.time-r.time,a=o<=0?0:Math.min(1,Math.max(0,(t-r.time)/o));return r.volume+(i.volume-r.volume)*a}function pp(e,t,n,r){let i=e.at(-1);!i||Math.abs(i.volume-n.volume)>1e-4?(i&&t&&t.time>i.time&&e.push(t),e.push(n)):r&&n.time>i.time&&e.push(n)}function hp(e){let t=Number.parseFloat(e??"");return Number.isFinite(t)?t:void 0}function hl(e,t){let n=ve(e.dataset.start)??0,r=ve(e.dataset.end)??void 0,i=ve(e.dataset.duration)??void 0,o=t;i!==void 0&&i>0?o=n+i:r!==void 0&&r>n&&(o=r);let a=hp(e.dataset.volume)??1;return{start:n,end:o,staticVolume:Le(a)}}function gp(e,t,n,r){let{start:i,end:o,staticVolume:a}=hl(e,n),l=1/Math.min(60,Math.max(1,r)),s=Math.max(0,i),u=Math.min(n,o),c=ul(e,()=>{e.volume=a;let f=[],p;for(let b=s;b<=u+1e-6;b=Math.min(u,b+l)){t(b);let v=Number(e.volume);if(Number.isFinite(v)){let x={time:Number(b.toFixed(6)),volume:Number(Le(v).toFixed(6))};pp(f,p,x,b===u),p=x}if(b===u)break}return f});return c.some(f=>Math.abs(f.volume-a)>1e-4)?c:null}function gl(e,t,n,r,i={}){if(i.allowLiveTimelineSeek===!1||!t||!(e instanceof HTMLAudioElement)&&!(e instanceof HTMLVideoElement)||n<=0)return;let o=s=>{try{typeof t.totalTime=="function"?t.totalTime(s,!0):typeof t.seek=="function"&&t.seek(s,!0)}catch{}},a=typeof t.totalTime=="function"?Number(t.totalTime()):typeof t.seek=="function"?Number(t.seek()):0,l=gp(e,o,n,60);if(Number.isFinite(a)&&o(a),l){let{start:s,staticVolume:u}=hl(e,n),c=mp(l,s,u);c.length>0&&r.set(e,c)}}var Rt="data-fx-chain",vv=Rt.slice(5),bl=1,vn=(e="frequency",t="Frequency",n=1e3,r=20,i=2e4)=>({kind:"number",key:e,label:t,unit:"Hz",min:r,max:i,step:1,default:n,scale:"log",automatable:!0}),lo=(e=.707,t="Bandwidth \\u2014 higher is narrower.")=>({kind:"number",key:"q",label:"Q",unit:"",min:.1,max:20,step:.01,default:e,scale:"log",automatable:!0,hint:t}),Mr=(e=-40,t=40,n=0)=>({kind:"number",key:"gain",label:"Gain",unit:"dB",min:e,max:t,step:.1,default:n,automatable:!0}),xl={kind:"enum",key:"poles",label:"Slope",options:[{value:"1",label:"6 dB/oct"},{value:"2",label:"12 dB/oct"}],default:"2",hint:"Two poles is the usual biquad; one pole is gentler."},vl=[{id:"gain",label:"Gain",group:"dynamics",description:"Raise or lower the whole signal. Automate it to duck under something else.",params:[Mr(-60,12,0)],web:"gain-node"},{id:"peaking",label:"Peaking EQ",group:"filter",description:"Boost or cut a band, leaving everything either side alone.",params:[vn("frequency","Frequency",1e3),Mr(-40,40,0),lo(1)],web:"biquad-peaking"},{id:"lowshelf",label:"Low Shelf",group:"filter",description:"Lift or drop everything below the corner frequency.",params:[vn("frequency","Frequency",200,20,2e3),Mr(-40,40,0)],web:"biquad-lowshelf"},{id:"highshelf",label:"High Shelf",group:"filter",description:"Lift or drop everything above the corner frequency.",params:[vn("frequency","Frequency",4e3,500,2e4),Mr(-40,40,0)],web:"biquad-highshelf"},{id:"highpass",label:"High-pass",group:"filter",description:"Remove low frequencies \\u2014 the usual fix for rumble on a voice.",params:[vn("frequency","Cutoff",300,20,2e4),lo(.707),xl],web:"biquad-highpass"},{id:"lowpass",label:"Low-pass",group:"filter",description:"Remove high frequencies \\u2014 darkens or muffles a track.",params:[vn("frequency","Cutoff",8e3,100,2e4),lo(.707),xl],web:"biquad-lowpass"},{id:"compressor",label:"Compressor",group:"dynamics",description:"Pull loud parts down so the quiet ones can come up.",params:[{kind:"number",key:"threshold",label:"Threshold",unit:"dB",min:-60,max:0,step:.5,default:-24,hint:"Level above which the compressor starts working."},{kind:"number",key:"ratio",label:"Ratio",unit:":1",min:1,max:20,step:.1,default:4},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.01,max:2e3,step:.1,default:20,scale:"log"},{kind:"number",key:"release",label:"Release",unit:"ms",min:.01,max:9e3,step:1,default:250,scale:"log"},{kind:"number",key:"knee",label:"Knee",unit:"",min:1,max:8,step:.01,default:2.83,hint:"1 is a hard corner; higher eases into it."},{kind:"number",key:"makeup",label:"Makeup",unit:"dB",min:0,max:36,step:.1,default:0},{kind:"number",key:"mix",label:"Mix",unit:"",min:0,max:1,step:.01,default:1,hint:"Below 1 blends the dry signal back in."}],web:"worklet-compressor"},{id:"limiter",label:"Limiter",group:"dynamics",description:"Hard ceiling \\u2014 nothing gets past the limit.",params:[{kind:"number",key:"limit",label:"Ceiling",unit:"dB",min:-24,max:0,step:.1,default:-1},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.1,max:80,step:.1,default:5},{kind:"number",key:"release",label:"Release",unit:"ms",min:1,max:8e3,step:1,default:50,scale:"log"},{kind:"number",key:"level_out",label:"Output",unit:"dB",min:-24,max:24,step:.1,default:0}],web:"worklet-limiter"},{id:"gate",label:"Noise Gate",group:"dynamics",description:"Silence the track when it drops below the threshold.",params:[{kind:"number",key:"threshold",label:"Threshold",unit:"dB",min:-80,max:0,step:.5,default:-35},{kind:"number",key:"range",label:"Range",unit:"dB",min:-80,max:0,step:.5,default:-24,hint:"How far down the gate pulls when closed."},{kind:"number",key:"ratio",label:"Ratio",unit:":1",min:1,max:20,step:.1,default:10},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.01,max:9e3,step:.1,default:1,scale:"log"},{kind:"number",key:"release",label:"Release",unit:"ms",min:.01,max:9e3,step:1,default:100,scale:"log"},{kind:"number",key:"knee",label:"Knee",unit:"",min:1,max:8,step:.01,default:2.83}],web:"worklet-gate"},{id:"saturate",label:"Saturation",group:"nonlinear",description:"Soft-clip the waveform for warmth or outright distortion.",params:[{kind:"enum",key:"type",label:"Curve",options:[{value:"tanh",label:"Tanh"},{value:"atan",label:"Arctan"},{value:"cubic",label:"Cubic"},{value:"exp",label:"Exponential"},{value:"alg",label:"Algebraic"},{value:"quintic",label:"Quintic"},{value:"sin",label:"Sine"},{value:"erf",label:"Error function"},{value:"hard",label:"Hard clip"}],default:"tanh"},{kind:"number",key:"threshold",label:"Threshold",unit:"dB",min:-40,max:0,step:.1,default:-6},{kind:"number",key:"output",automatable:!0,label:"Output",unit:"dB",min:-24,max:24,step:.1,default:0},{kind:"number",key:"oversample",label:"Oversample",unit:"x",min:1,max:8,step:1,default:4,hint:"Higher costs more but keeps aliasing down."}],web:"waveshaper"},{id:"bitcrush",label:"Bitcrush",group:"nonlinear",description:"Drop bit depth and sample rate for a lo-fi, digital sound.",params:[{kind:"number",key:"bits",label:"Bit depth",unit:"bit",min:1,max:32,step:.1,default:8},{kind:"number",key:"samples",label:"Sample hold",unit:"x",min:1,max:250,step:1,default:1,hint:"Repeats each sample N times \\u2014 a crude downsample."},{kind:"number",key:"mix",label:"Mix",unit:"",min:0,max:1,step:.01,default:1}],web:"worklet-bitcrush"},{id:"pitchshift",label:"Pitch shift",group:"time",description:"Shifts pitch up or down without changing playback speed. Adds ~50 ms of latency.",params:[{kind:"number",key:"semitones",label:"Semitones",unit:"st",min:-12,max:12,step:1,default:0},{kind:"number",key:"mix",label:"Mix",unit:"",min:0,max:1,step:.01,default:1}],web:"worklet-pitchshift"},{id:"delay",label:"Delay",group:"time",description:"Repeating echoes behind the dry signal.",params:[{kind:"number",key:"time",automatable:!0,label:"Time",unit:"ms",min:1,max:5e3,step:1,default:250,scale:"log"},{kind:"number",key:"feedback",automatable:!0,label:"Feedback",unit:"",min:.01,max:.95,step:.01,default:.35},{kind:"number",key:"mix",automatable:!0,label:"Mix",unit:"",min:0,max:1,step:.01,default:.4}],web:"delay-feedback"},{id:"chorus",label:"Chorus",group:"time",description:"Detuned copies of the signal for width and thickness.",params:[{kind:"number",key:"delay",automatable:!0,label:"Delay",unit:"ms",min:1,max:100,step:.1,default:7},{kind:"number",key:"depth",automatable:!0,label:"Depth",unit:"ms",min:0,max:10,step:.01,default:2},{kind:"number",key:"speed",automatable:!0,label:"Rate",unit:"Hz",min:.01,max:10,step:.01,default:1},{kind:"number",key:"mix",automatable:!0,label:"Mix",unit:"",min:0,max:1,step:.01,default:.5}],web:"chorus-lfo"},{id:"phaser",label:"Phaser",group:"time",description:"Sweeping notches moving through the spectrum.",params:[{kind:"number",key:"in_gain",automatable:!0,label:"Input",unit:"",min:0,max:1,step:.01,default:.4},{kind:"number",key:"out_gain",automatable:!0,label:"Output",unit:"",min:0,max:2,step:.01,default:.74},{kind:"number",key:"delay",label:"Delay",unit:"ms",min:.1,max:5,step:.1,default:3},{kind:"number",key:"decay",label:"Decay",unit:"",min:0,max:.99,step:.01,default:.4},{kind:"number",key:"speed",automatable:!0,label:"Rate",unit:"Hz",min:.1,max:2,step:.01,default:.5},{kind:"enum",key:"type",label:"Waveform",options:[{value:"0",label:"Triangular"},{value:"1",label:"Sinusoidal"}],default:"0"}],web:"allpass-phaser"},{id:"reverb",label:"Reverb",group:"time",description:"Room tail. Both ends convolve the same generated impulse, so preview matches render.",params:[{kind:"number",key:"size",label:"Room size",unit:"",min:.05,max:1,step:.01,default:.7},{kind:"number",key:"damping",label:"Damping",unit:"",min:0,max:1,step:.01,default:.5,hint:"Higher rolls the top off the tail faster."},{kind:"number",key:"wet",automatable:!0,label:"Wet",unit:"",min:0,max:1,step:.01,default:.35},{kind:"number",key:"dry",automatable:!0,label:"Dry",unit:"",min:0,max:1,step:.01,default:.7}],web:"convolver"}],uo=new Map(vl.map(e=>[e.id,e]));function Sn(e){return uo.get(e)}var Sv=vl.map(e=>e.id);function An(e,t){let n=uo.get(e);if(!n)return{};let r={};for(let i of n.params){let o=t?.[i.key];if(i.kind==="enum"){let l=i.options.some(s=>s.value===o);r[i.key]=l?o:i.default;continue}let a=typeof o=="number"?o:typeof o=="string"&&o.trim()!==""?Number(o):Number.NaN;r[i.key]=Number.isFinite(a)?Math.min(i.max,Math.max(i.min,a)):i.default}return r}var ct=class extends Error{constructor(t){super(t),this.name="AudioFxChainError"}};function Sl(e){let t;try{t=JSON.parse(e)}catch(i){throw new ct(`Chain file is not valid JSON: ${i.message}`)}if(typeof t!="object"||t===null)throw new ct("Chain file must be a JSON object.");let n=t;if(n.version!==bl)throw new ct(`Unsupported chain version: ${String(n.version)}`);if(!Array.isArray(n.nodes))throw new ct("Chain file is missing a `nodes` array.");let r=n.nodes.map(bp);return{version:bl,nodes:r}}function En(e){return e.nodes.filter(t=>t.enabled!==!1)}function bp(e,t){if(typeof e!="object"||e===null)throw new ct(`Node ${t} is not an object.`);let n=e;if(typeof n.type!="string"||!uo.has(n.type))throw new ct(`Node ${t} has unknown effect type: ${String(n.type)}`);return yp({type:n.type,id:Fr(n.id),fromCarve:yl(n.fromCarve),fromPreset:Fr(n.fromPreset),label:Fr(n.label),fromEq:Fr(n.fromEq),fromLeveller:yl(n.fromLeveller),presetAmount:xp(n.presetAmount),enabled:n.enabled!==!1,params:An(n.type,n.params??void 0)})}function Fr(e){return typeof e=="string"&&e?e:void 0}function yl(e){return e===!0?!0:void 0}function xp(e){if(!(typeof e!="number"||!Number.isFinite(e)))return Math.min(1,Math.max(0,e))}function yp(e){for(let t of Object.keys(e))e[t]===void 0&&delete e[t];return e}var tt="data-automation",Cv=tt.slice(5),Nr=1,vp=512,et=class extends Error{constructor(t){super(t),this.name="AudioAutomationError"}},Ut="volume";function Cn(e){if(e===Ut)return{kind:"volume"};let t=e.split(".");if(t.length===3&&t[0]==="fx"&&t[1]===Sp){let i=t[2];return i?{kind:"preset",presetId:i}:null}if(t.length!==3||t[0]!=="fx")return null;let[,n,r]=t;return!n||!r?null:{kind:"fx",nodeId:n,param:r}}var Sp="preset";var Ap={min:0,max:1,step:.01,unit:"",label:"Amount",scale:"linear",default:1},Lr={min:0,max:ao,step:.01,unit:"",label:"Volume",scale:"linear",default:1};function co(e,t){let n=Cn(e);if(!n)return null;if(n.kind==="volume")return Lr;if(n.kind==="preset")return t?.nodes.some(l=>l.fromPreset===n.presetId)?{...Ap,label:`${n.presetId} \\xB7 Amount`}:null;let r=t?.nodes.find(a=>a.id===n.nodeId);if(!r)return null;let i=Sn(r.type),o=i?.params.find(a=>a.key===n.param);return!o||o.kind!=="number"?null:{min:o.min,max:o.max,step:o.step,unit:o.unit,label:`${i?.label??r.type} \\xB7 ${o.label}`,scale:o.scale==="log"&&o.min>0?"log":"linear",default:o.default}}function wn(e){if(typeof e=="number")return Number.isFinite(e)?e:null;if(typeof e=="string"&&e.trim()!==""){let t=Number(e);return Number.isFinite(t)?t:null}return null}function Ep(e){let t=wn(e);return t===null||t===0?0:Math.min(1,Math.max(-1,t))}function Al(e,t){let n=wn(e),r=wn(t);if(n===null||r===null)return null;let i=l=>Math.min(.999,Math.max(.001,l)),o=i(n),a=i(r);return Math.abs(o-a)<1e-6?null:{x:o,y:a}}function wp(e){let t=Ep(e?.curve),n=Al(e?.viaX,e?.viaY);return{...t?{curve:t}:{},...n?{viaX:n.x,viaY:n.y}:{}}}function Cp(e,t){let n=wn(e?.t),r=wn(e?.v);if(n===null||r===null)return null;let i=t?Math.min(t.max,Math.max(t.min,r)):r;return{t:Math.max(0,n),v:i,...wp(e)}}function El(e,t){let n=e.map(i=>Cp(i,t)).filter(i=>i!==null).sort((i,o)=>i.t-o.t),r=[];for(let i of n)r.length>0&&r[r.length-1].t===i.t?r[r.length-1]=i:r.push(i);return r.slice(0,vp)}function _p(e){let t=[];for(let n of e.lanes){if(!Cn(n.target))continue;let r=n.target===Ut?Lr:null,i=El(n.points??[],r);i.length>0&&t.push({target:n.target,points:i})}return{version:Nr,lanes:t}}function wl(e,t){let n=[];for(let r of e.lanes){let i=co(r.target,t);if(!i)continue;let o=El(r.points,i);o.length>0&&n.push({target:r.target,points:o})}return{version:Nr,lanes:n}}function Dr(e){let t;try{t=JSON.parse(e)}catch(i){throw new et(`Automation is not valid JSON: ${i.message}`)}if(typeof t!="object"||t===null)throw new et("Automation must be a JSON object.");let n=t;if(n.version!==Nr)throw new et(`Unsupported automation version: ${String(n.version)}`);if(!Array.isArray(n.lanes))throw new et("Automation is missing a `lanes` array.");let r=n.lanes.map((i,o)=>{if(typeof i!="object"||i===null)throw new et(`Lane ${o} is not an object.`);let a=i;if(typeof a.target!="string"||!Cn(a.target))throw new et(`Lane ${o} has an unreadable target: ${String(a.target)}`);if(!Array.isArray(a.points))throw new et(`Lane ${o} is missing a \\`points\\` array.`);return{target:a.target,points:a.points}});return _p({version:Nr,lanes:r})}function Tp(e,t){return t?Math.pow(e,Math.pow(2,2*t)):e}function Rp(e,t){let n=e-.5,r=t-.5,i=.999,o=1e6,a=n>0?n/(i-e):n<0?-n/(e-(1-i)):0,l=r>0?r/(i-t):r<0?-r/(t-(1-i)):0,s=Math.min(o,Math.max(1,a,l));return{cx:e+n/s,cy:t+r/s,w:s}}function kp(e,t,n){let{cx:r,cy:i,w:o}=Rp(t,n),a=2-2*o,l=e*a-1+2*o*r,s=-e*a-2*o*r,u=Mp(l,s,e),c=1-u,m=c*c+2*o*u*c+u*u;return m>0?(2*o*i*u*c+u*u)/m:e}function Mp(e,t,n){if(Math.abs(e)<1e-12)return Math.abs(t)<1e-12?n:-n/t;let r=Math.sqrt(Math.max(0,t*t-4*e*n)),i=(-t+r)/(2*e),o=(-t-r)/(2*e),a=l=>l>=-1e-9&&l<=1+1e-9;return a(i)?Math.min(1,Math.max(0,i)):a(o)?Math.min(1,Math.max(0,o)):n}function Fp(e,t){let n=Al(t.viaX,t.viaY);return n?kp(Math.min(1,Math.max(0,e)),n.x,n.y):Tp(e,t.curve)}function Np(e,t,n,r){return r==="log"&&e>0&&t>0?Math.exp(Math.log(e)+(Math.log(t)-Math.log(e))*n):e+(t-e)*n}function _n(e,t,n="linear"){let r=e.points;if(r.length===0)return 0;let i=r[0];if(t<=i.t)return i.v;let o=r[r.length-1];if(t>=o.t)return o.v;let a=0,l=r.length-1;for(;l-a>1;){let m=a+l>>1;r[m].t<=t?a=m:l=m}let s=r[a],u=r[l],c=u.t-s.t;return c<=0?u.v:Np(s.v,u.v,Fp((t-s.t)/c,s),n)}function Cl(e){return e.points.length<=1||e.points.every(t=>t.v===e.points[0].v)}function _l(e,t,n,r,i="linear"){let o=Math.max(2,Math.floor(r)),a=new Float32Array(o),l=n-t;for(let s=0;s<o;s+=1)a[s]=_n(e,t+l*s/(o-1),i);return a}var Ir=new Map,Lp=64;function Dp(e){let t=Ir.get(e);if(t!==void 0)return t;let n=null;try{n=Dr(e).lanes.find(r=>r.target===Ut)??null}catch{n=null}return Ir.size>Lp&&Ir.clear(),Ir.set(e,n),n}function Tl(e,t){let n=(typeof e.getAttribute=="function"?e.getAttribute(tt):null)??"";if(!n)return null;let r=Dp(n);return!r||r.points.length===0?null:_n(r,t)}var Wt="hf-audio-group",Pr="data-audio-group";function fo(e){let t=e?.getAttribute("data-volume"),n=t?parseFloat(t):1;return Number.isFinite(n)?n:1}function mo(e,t){let n=Array.from(e?.querySelectorAll?.(`${Wt}[${xn}]`)??[]).find(i=>i.getAttribute(xn)===t);if(n)return n;let r=e?.getElementById(t)??null;return r&&r.tagName?.toLowerCase()===Wt?r:null}function Or(e,t){let n=t?.getAttribute?.(il)??t?.getAttribute?.(Pr);return n?mo(e,n)?.hasAttribute("data-hidden")??!1:!1}function Rl(e){return typeof e.tagName!="string"||e.tagName.toLowerCase()!=="audio"||typeof e.getAttribute!="function"?null:e.getAttribute(Pr)||null}function kl(e){let t="__hf-audio-group-inert";if(!e?.head||e.getElementById(t))return;let n=e.createElement("style");n.id=t,n.textContent=`${Wt}{display:none!important}`,e.head.appendChild(n)}function je(e){return yn(e)}function Ml(e){let t=e.isVideo?e.explicitDuration??e.sourceDuration:e.sourceDuration,n=(e.isVideo?[t,e.hostRemaining]:[t,e.hostRemaining,e.explicitDuration]).filter(r=>r!=null&&Number.isFinite(r)&&r>=0);return n.length>0?Math.min(...n):null}function Fl(e){let t=Array.from(document.querySelectorAll("video, audio")),n=e?.shouldIncludeElement?t.filter(a=>e.shouldIncludeElement?.(a)):t.filter(a=>a.hasAttribute("data-start")),r=[],i=[],o=0;for(let a of n){let l=e?.resolveStartSeconds?e.resolveStartSeconds(a):Number.parseFloat(a.dataset.start??"0");if(!Number.isFinite(l))continue;let s=je(a),u=Ce(a),c=a.loop,m=Number.isFinite(a.duration)&&a.duration>0?a.duration:null,f=e?.resolveDurationSeconds?.(a)??Number.parseFloat(a.dataset.duration??"");(!Number.isFinite(f)||f<0)&&m!=null&&(f=Math.max(0,(m-s)/u));let p=Number.isFinite(f)&&f>=0,b=p?l+f:Number.POSITIVE_INFINITY,v=Number.parseFloat(a.dataset.volume??""),x={el:a,start:l,mediaStart:s,duration:p?f:Number.POSITIVE_INFINITY,end:b,volume:Number.isFinite(v)?v:null,playbackRate:u,loop:c,sourceDuration:m};r.push(x),a.tagName==="VIDEO"&&i.push(x),Number.isFinite(b)&&(o=Math.max(o,b))}return{timedMediaEls:n,mediaClips:r,videoClips:i,maxMediaEnd:o}}var ho=new WeakMap,Hr=new WeakMap,Tn=new WeakMap,go=new WeakSet,Vt=new WeakSet;function Ip(e){if(Vt.has(e))return;Vt.add(e);let t=()=>Vt.delete(e);e.addEventListener("playing",t,{once:!0}),e.addEventListener("pause",t,{once:!0}),e.addEventListener("error",t,{once:!0})}var Pp=3;function Op(e){return e.error!=null||e.networkState===Pp}var bo=new WeakMap;function po(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):1}function xo(e){ho.delete(e),Hr.delete(e),Tn.delete(e),go.delete(e),bo.delete(e)}function Nl(e){let t=!!(e.outputMuted||e.userMuted);for(let n of e.clips){let{el:r}=n;if(!r.isConnected)continue;let i=(e.timeSeconds-n.start)*n.playbackRate+n.mediaStart,o=r.tagName==="VIDEO"&&!n.loop,a=o&&n.sourceDuration!=null&&i>=n.sourceDuration&&e.timeSeconds>=n.start&&e.timeSeconds<n.end;a&&n.sourceDuration!=null&&(i=n.sourceDuration);let l=Hr.get(r),s=r.tagName==="AUDIO"&&(l===void 0||i<l-.04),u=!n.loop&&n.sourceDuration!=null&&i>=n.mediaStart&&i<n.sourceDuration&&(o||s);if(e.timeSeconds>=n.start&&e.timeSeconds<n.end&&i>=0&&(!r.ended||n.loop||a||u)){if(Hr.set(r,i),n.loop&&n.sourceDuration!=null&&n.sourceDuration>0){let H=n.sourceDuration-n.mediaStart;H>0&&i>=n.sourceDuration&&(i=n.mediaStart+(i-n.mediaStart)%H)}let f=po(e.userVolume??1),p=Le(n.volume??1),b=bo.get(r),v=po(r.volume),x,_=Tl(r,e.timeSeconds-n.start);if(_!==null)x=Le(_);else if(n.volumeKeyframes&&n.volumeKeyframes.length>0){let H=e.timeSeconds-n.start;x=Le(pl(n.volumeKeyframes,H))}else e.isWebAudioRouted?.(r)?x=p:b===void 0?x=p>1?p:v:Math.abs(v-b)>1e-4?x=v:x=p;let T=r.closest("[data-hidden]")!==null||Or(r.ownerDocument,r)?0:po(x*f);r.volume=T,bo.set(r,T),e.onElementVolume?.(r,T,x),(t||e.isWebAudioOwned?.(r))&&(r.muted=!0),r.preload!=="auto"&&(r.preload="auto");try{r.playbackRate=n.playbackRate*e.playbackRate}catch(H){L("runtime.media.site1",H)}let M=.04,F=2,E=r.currentTime||0,S=Math.abs(E-i),A=i-E,C=ho.get(r);ho.set(r,A);let N=C===void 0,I=!N&&Math.abs(A-C)>.5,W=S>3,U=r.tagName==="AUDIO"&&N&&E-i>M,oe=a&&S>.001||r.ended&&u&&S>.001||U||S>.5&&(N||I||W),k=r.tagName==="VIDEO"&&!r.paused,V=C!==void 0&&Math.abs(A-C)<.004,Q=!1;if(!k&&!oe&&!N&&V&&S>M){let H=(Tn.get(r)??0)+1;Tn.set(r,H),H>=F&&(Q=!0,Tn.set(r,0))}else S<=M&&Tn.set(r,0);let G=!k&&e.forceSync&&S>.02;if(oe||Q||G){if(!(r.tagName==="VIDEO"&&!!ut(r))){try{r.currentTime=i}catch(z){L("runtime.media.site2",z)}if(Math.abs(r.currentTime-i)>.5&&!go.has(r)){go.add(r),r.load();try{r.currentTime=i}catch(z){L("runtime.media.site3",z)}}}Vt.delete(r)}a?r.paused||r.pause():e.playing&&r.paused&&!Vt.has(r)&&!Op(r)?(Ip(r),r.play().catch(H=>{Vt.delete(r),(H&&typeof H=="object"&&"name"in H?String(H.name??""):"")==="NotAllowedError"&&e.onAutoplayBlocked?.()})):!e.playing&&!r.paused&&r.pause();continue}let m=e.timeSeconds>=n.start&&e.timeSeconds<n.end;xo(r),m&&Hr.set(r,i),r.paused||r.pause()}}var Hp="hf-proxy",Ll="runtime_media_proxy_fallback",Dl="runtime_media_proxy_unavailable",Rn=new WeakSet,Il=new WeakSet;function Gr(e){return e.currentSrc||e.src}function yo(e){return window.__HF_EXPORT_RENDER_SEEK_CONFIG?!0:e instanceof HTMLVideoElement&&!!ut(e)}function vo(e){let t=Gr(e);if(!t)return null;let n;try{n=new URL(t,document.baseURI)}catch{return null}if(n.origin!==window.location.origin)return null;try{return decodeURIComponent(n.pathname)}catch{return n.pathname}}function Gp(e,t){let n=null;for(let r of Object.keys(t))e.endsWith(r)&&(n===null||r.length>n.length)&&(n=r);return n?t[n]??null:null}function Bp(e,t){let n=e.normalize("NFC").toLowerCase(),r=-1,i=null,o=!1;for(let[a,l]of Object.entries(t)){let s=a.normalize("NFC").toLowerCase();n.endsWith(s)&&(s.length>r?(r=s.length,i=l,o=!1):s.length===r&&(o=!0))}return o?null:i}function So(e,t){return t[e]??Gp(e,t)??Bp(e,t)}function Up(e,t){let n=new URL(e,document.baseURI);return n.searchParams.set(Hp,t?t.hasAlpha?"vp8":"h264":"auto"),n.href}var Wp={cross_origin:"video reports zero decodable width but its source is cross-origin; no local proxy can be served for it",proxy_playback_failed:"the authoring proxy itself failed to decode; render output is unaffected",browser_safe_codec:"the file errored but its codec is browser-decodable; a proxy cannot help (the file itself is likely corrupt)",invalid_source_url:"the media source URL is malformed and cannot be proxied"};function kt(e,t,n){if(Il.has(e))return;Il.add(e);let r=Wp[t];xe({source:"hf-preview",type:"diagnostic",code:Dl,details:{asset:n,codecName:null,reason:t,note:r}}),console.info(`[hyperframes] ${Dl}: "${n}" (${t}): ${r}`)}function Ao(e,t=null,n="reactive"){if(Rn.has(e))return;let r=Gr(e),i;try{i=Up(r,t)}catch(l){L("runtime.mediaProxy.swap",l),kt(e,"invalid_source_url",r);return}Rn.add(e),xo(e),e.src=i,e.load();let o=t?.codecName??null;xe({source:"hf-preview",type:"diagnostic",code:Ll,details:{asset:r,codecName:o,trigger:n,note:"render output is unaffected; only this preview element was swapped to an authoring proxy"}}),console.info(`[hyperframes] ${Ll}: "${r}" uses a codec (${o??"unknown"}) this browser can\'t decode; auto-swapped to an authoring proxy for this preview only. Render output is unaffected.`)}function Pl(e){if(yo(e)||!(e instanceof HTMLVideoElement)||Rn.has(e))return;let t=window.__HF_MEDIA_CODEC_MAP__;if(!t)return;let n=vo(e);if(n===null)return;let r=So(n,t);if(!r||!r.browserHostile)return;let i=r.representativeMime?e.canPlayType(r.representativeMime):"";i==="probably"||i==="maybe"||Ao(e,r,"proactive")}function Ol(e){if(yo(e)||!(e instanceof HTMLVideoElement)||e.videoWidth!==0)return;let t=Gr(e);if(Rn.has(e)){kt(e,"proxy_playback_failed",t);return}let n=window.__HF_MEDIA_CODEC_MAP__;if(!n)return;let r=vo(e);if(r===null){kt(e,"cross_origin",t);return}let i=So(r,n);if(i&&!i.browserHostile){kt(e,"browser_safe_codec",t);return}Ao(e,i,"reactive")}function Hl(e){if(yo(e)||!(e instanceof HTMLVideoElement))return;let t=Gr(e);if(Rn.has(e)){kt(e,"proxy_playback_failed",t);return}let n=window.__HF_MEDIA_CODEC_MAP__;if(!n)return;let r=vo(e);if(r===null){kt(e,"cross_origin",t);return}let i=So(r,n);if(i&&!i.browserHostile){kt(e,"browser_safe_codec",t);return}Ao(e,i,"tertiary")}var Se=class extends Error{constructor(n,r=null){super(r==null?n:`${n} at line ${r}`);ge(this,"lineNumber");this.name="CubeLutParseError",this.lineNumber=r}},Vp=[0,0,0],zp=[1,1,1],Br=64;function qp(e){let t=!1;for(let n=0;n<e.length;n++){let r=e[n];if(r===\'"\'&&(t=!t),r==="#"&&!t)return e.slice(0,n)}return e}function dt(e,t){let n=Number(e);if(!Number.isFinite(n))throw new Se(`Invalid number "${e}"`,t);return n}function Gl(e,t,n){if(e.length!==3)throw new Se(`${t} expects three numbers`,n);return[dt(e[0],n),dt(e[1],n),dt(e[2],n)]}function Bl(e,t,n){if(!e)throw new Se(`${t} expects a size`,n);let r=Number(e);if(!Number.isInteger(r)||r<2)throw new Se(`${t} must be an integer greater than 1`,n);return r}function $p(e,t){if(t[0]<=e[0]||t[1]<=e[1]||t[2]<=e[2])throw new Se("DOMAIN_MAX values must be greater than DOMAIN_MIN values")}function jp(e){let t=/^TITLE\\s+"([^"]*)"\\s*$/i.exec(e);if(t)return t[1]??null;let n=/^TITLE\\s+(.+)\\s*$/i.exec(e);return n&&(n[1]??"").trim()||null}function Kp(e){return/^[+-]?(?:\\d|\\.\\d)/.test(e)}function Ul(e,t={}){let n=t.maxSize??Br,r=null,i=Vp,o=zp,a=null,l=null,s=[],u=e.replace(/^\\uFEFF/,"").split(/\\r?\\n/);for(let m=0;m<u.length;m++){let f=m+1,p=qp(u[m]??"").trim();if(!p)continue;let b=p.split(/\\s+/),v=(b[0]??"").toUpperCase(),x=b.slice(1);if(v==="TITLE"){r=jp(p);continue}if(v==="DOMAIN_MIN"){i=Gl(x,v,f);continue}if(v==="DOMAIN_MAX"){o=Gl(x,v,f);continue}if(v==="LUT_3D_INPUT_RANGE"){if(x.length!==2)throw new Se(`${v} expects two numbers`,f);let _=dt(x[0],f),R=dt(x[1],f);if(R<=_)throw new Se("LUT_3D_INPUT_RANGE max must exceed min",f);i=[_,_,_],o=[R,R,R];continue}if(v==="LUT_1D_SIZE"){a=Bl(x[0],v,f);continue}if(v==="LUT_3D_SIZE"){if(l=Bl(x[0],v,f),l>n)throw new Se(`LUT_3D_SIZE ${l} exceeds max ${n}`,f);continue}if(!Kp(v)){if(v.startsWith("LUT_"))throw new Se(`Unsupported cube keyword ${v}`,f);continue}if(!l)throw a?new Se("1D cube LUTs are not supported yet",f):new Se("LUT data appears before LUT_3D_SIZE",f);if(b.length!==3)throw new Se("LUT data rows must contain three numbers",f);s.push(dt(b[0],f),dt(b[1],f),dt(b[2],f))}if(a&&l)throw new Se("Mixed 1D and 3D cube LUTs are not supported yet");if(!l)throw a?new Se("1D cube LUTs are not supported yet"):new Se("Missing LUT_3D_SIZE");$p(i,o);let c=l*l*l;if(s.length!==c*3)throw new Se(`Expected ${c} LUT rows for size ${l}, found ${s.length/3}`);return{title:r,size:l,domainMin:i,domainMax:o,data:new Float32Array(s)}}function Yp(e){return Number.isFinite(e)?Math.min(1,Math.max(0,e)):0}function kn(e){return Math.round(Yp(e)*255)}function Eo(e){let t=e.size,n=t*t,r=t,i=new Uint8Array(n*r*4);for(let o=0;o<t;o++)for(let a=0;a<t;a++)for(let l=0;l<t;l++){let s=((o*t+a)*t+l)*3,u=(a*n+o*t+l)*4;i[u]=kn(e.data[s]??0),i[u+1]=kn(e.data[s+1]??0),i[u+2]=kn(e.data[s+2]??0),i[u+3]=255}return{width:n,height:r,data:i}}var Wl="rec709";var me={hueDegrees:{min:0,max:360,inclusiveMax:!1},unit:{min:0,max:1},signedUnit:{min:-1,max:1},secondaryHueRange:{min:0,max:180},secondaryHueSoftness:{min:0,max:180},secondaryHueCombinedMax:180,secondarySoftRangeSoftness:{min:0,max:.5},secondaryHueShift:{min:-180,max:180},effects:{asciiStyle:{min:0,max:7},bloom:{min:0,max:3},bloomRadius:{min:1,max:100},monoScreenShape:{min:0,max:4}}};var Vl=["exposure","contrast","highlights","shadows","whites","blacks","temperature","tint","vibrance","saturation"],zl=["shadows","midtones","highlights"],ql=["master","red","green","blue"],$l=["hueVsHue","hueVsSaturation","hueVsLuma"];var jl=["vignette","vignetteMidpoint","vignetteRoundness","vignetteFeather","grain","grainSize","grainRoughness"],Kl=["blur","pixelate","chromaBleed","tapeDamage","tapeTracking","tapeNoise","tapeSpeed","filmArtifacts","halftone","halftoneSize","twoInkPrint","twoInkPrintSize","ascii","asciiSize","asciiInvert","asciiStyle","asciiColor","asciiRotation","dither","ditherSize","bloom","bloomRadius","monoScreen","monoScreenSize","monoScreenAngle","monoScreenSpread","monoScreenShape","monoScreenInvert","scanlines","scanlineCount","scanlineSoftness","chromaticAberration","chromaticAngle","crtCurvature","digitalGlitch","digitalGlitchColorSplit","digitalGlitchLineTear","digitalGlitchPixelate","digitalGlitchBlockAmount","digitalGlitchBlockDisplacement","digitalGlitchBlockOpacity","digitalGlitchSpeed","engraving","engravingSpacing","engravingMinThickness","engravingMaxThickness","engravingAngle","engravingContrast","engravingSharpness","engravingWave","engravingWaveFrequency","crosshatch","crosshatchSpacing","crosshatchThickness","crosshatchAngle","crosshatchContrast","crosshatchEdges","crosshatchLineWeight","crosshatchWave","crosshatchWaveFrequency","kuwahara","kuwaharaRadius","kuwaharaSharpness","kuwaharaSaturation"];var Yv=me.unit,Xv=me.signedUnit,Jv=me.effects;var Ke=1024,Mn=16;function Yl(e,t,n,r){let i=((2*e+t)*n-e*r)/(e+t);return Math.sign(i)!==Math.sign(n)?0:Math.sign(n)!==Math.sign(r)&&Math.abs(i)>3*Math.abs(n)?3*n:i}function Ae(e,t){let n=e[t];if(n===void 0)throw new RangeError("Color curve points must be contiguous");return n}function Xp(e){let t=[],n=[],r=Ae(e,0);for(let a of e.slice(1)){let l=a[0]-r[0];t.push(l),n.push((a[1]-r[1])/l),r=a}let i=Ae(n,0);if(e.length===2)return[i,i];let o=new Array(e.length);o[0]=Yl(Ae(t,0),Ae(t,1),i,Ae(n,1)),o[o.length-1]=Yl(Ae(t,t.length-1),Ae(t,t.length-2),Ae(n,n.length-1),Ae(n,n.length-2));for(let a=1;a<e.length-1;a+=1){let l=Ae(n,a-1),s=Ae(n,a);if(l===0||s===0||Math.sign(l)!==Math.sign(s)){o[a]=0;continue}let u=Ae(t,a-1),c=Ae(t,a),m=2*c+u,f=c+2*u;o[a]=(m+f)/(m/l+f/s)}return o}function Xl(e,t){if(e.length<2)throw new RangeError("A color curve requires at least two points");if(!Number.isInteger(t)||t<2)throw new RangeError("Curve LUT size must be at least 2");let n=Number.NEGATIVE_INFINITY;for(let[r,i]of e){if(!Number.isFinite(r)||!Number.isFinite(i))throw new TypeError("Color curve points must be finite");if(r<=n)throw new RangeError("Color curve inputs must be strictly increasing");n=r}}function Jp(e,t,n){if(!Number.isFinite(t)||!Number.isFinite(n)||t>=n)throw new RangeError("Curve output bounds must be finite and increasing");if(e.some(([,r])=>r<t||r>n))throw new RangeError(`Curve outputs must be between ${t} and ${n}`)}function Qp(e,t,n,r,i){let o=n[0]-t[0],a=Math.min(1,Math.max(0,(e-t[0])/o)),l=a*a,s=l*a;return(2*s-3*l+1)*t[1]+(s-2*l+a)*o*r+(-2*s+3*l)*n[1]+(s-l)*o*i}function Jl(e,t,n,r,i){Jp(e,r,i);let o=Xp(e),a=new Float32Array(t),l=0;for(let s=0;s<t;s+=1){let u=n(s);for(;l<e.length-2&&u>Ae(e,l+1)[0];)l+=1;let c=Ae(e,l),m=Ae(e,l+1),f=Qp(u,c,m,Ae(o,l),Ae(o,l+1));a[s]=Math.min(i,Math.max(r,f))}return a}function zt(e,t=Ke){if(Xl(e,t),e.length>Mn)throw new RangeError(`A color curve supports at most ${Mn} points`);if(e.some(([n])=>n<0||n>1))throw new RangeError("Color curve inputs must be between 0 and 1");if(e[0]?.[0]!==0||e[e.length-1]?.[0]!==1)throw new RangeError("Color curves must include input endpoints 0 and 1");return Jl(e,t,n=>n/(t-1),0,1)}function Co(e,t,n,r=Ke){if(e.length<3)throw new RangeError("A hue curve requires at least three points");if(e.length>Mn)throw new RangeError(`A hue curve supports at most ${Mn} points`);let i=[...e].sort((s,u)=>s[0]-u[0]);for(let s=0;s<i.length;s+=1){let u=i[s];if(!u||u[0]<0||u[0]>=360)throw new RangeError("Hue curve inputs must be from 0 up to 360 degrees");if(s>0&&u[0]===i[s-1]?.[0])throw new RangeError("Hue curve inputs must be unique")}let o=i.slice(-2).map(([s,u])=>[s-360,u]),a=i.slice(0,2).map(([s,u])=>[s+360,u]),l=[...o,...i,...a];return Xl(l,r),Jl(l,r,s=>s/r*360,t,n)}var Fn="data-color-grading",Nn="data-hf-color-grading-source-hidden",Vr="data-hf-authored-opacity",nu="__hf_color_grading_",eh=Wl,Ro={exposure:0,contrast:0,highlights:0,shadows:0,whites:0,blacks:0,temperature:0,tint:0,vibrance:0,saturation:0},ko={vignette:0,vignetteMidpoint:.5,vignetteRoundness:0,vignetteFeather:.65,grain:0,grainSize:.25,grainRoughness:.5},Mo={blur:0,pixelate:0,chromaBleed:0,tapeDamage:0,tapeTracking:0,tapeNoise:1,tapeSpeed:.5,filmArtifacts:0,halftone:0,halftoneSize:0,twoInkPrint:0,twoInkPrintSize:0,ascii:0,asciiSize:5/76,asciiInvert:0,asciiStyle:0,asciiColor:1,asciiRotation:0,dither:0,ditherSize:0,bloom:0,bloomRadius:8,monoScreen:0,monoScreenSize:0,monoScreenAngle:0,monoScreenSpread:0,monoScreenShape:0,monoScreenInvert:0,scanlines:0,scanlineCount:0,scanlineSoftness:0,chromaticAberration:0,chromaticAngle:0,crtCurvature:0,digitalGlitch:0,digitalGlitchColorSplit:0,digitalGlitchLineTear:0,digitalGlitchPixelate:0,digitalGlitchBlockAmount:0,digitalGlitchBlockDisplacement:0,digitalGlitchBlockOpacity:0,digitalGlitchSpeed:0,engraving:0,engravingSpacing:7/17,engravingMinThickness:.2,engravingMaxThickness:3.2/7,engravingAngle:.25,engravingContrast:7/15,engravingSharpness:.59,engravingWave:.2,engravingWaveFrequency:2/9,crosshatch:0,crosshatchSpacing:7/25,crosshatchThickness:.25,crosshatchAngle:.25,crosshatchContrast:1/3,crosshatchEdges:.5,crosshatchLineWeight:0,crosshatchWave:.33,crosshatchWaveFrequency:2/9,kuwahara:0,kuwaharaRadius:1/7,kuwaharaSharpness:5/16,kuwaharaSaturation:.5};var zr=Vl,ru=zl,iu=ql,ou=$l,No=jl,Lo=Kl,Ql={exposure:.03,contrast:-.12,highlights:-.1,shadows:.16,whites:-.04,blacks:.08,temperature:.13,vibrance:-.08,saturation:-.08},Zl={vignette:.18};function Ee(e,t,n={},r={},i={},o=1){return{id:e,label:t,intensity:o,adjust:{...Ro,...n},details:{...ko,...r},effects:{...Mo,...i}}}var Do=[Ee("neutral","Neutral"),Ee("warm-daylight","Warm Daylight",{exposure:.06,contrast:.07,highlights:-.06,shadows:.08,temperature:.18,saturation:.08}),Ee("clean-studio","Clean Studio",{contrast:.08,highlights:-.08,shadows:.06,temperature:-.08,tint:.03,saturation:.04}),Ee("skin-soft","Skin Soft",{exposure:.04,contrast:-.03,highlights:-.12,shadows:.12,temperature:.08,tint:.02,saturation:.04}),Ee("food-pop","Food Pop",{exposure:.06,contrast:.1,shadows:.06,temperature:.14,vibrance:.1,saturation:.18}),Ee("night-lift","Night Lift",{exposure:.08,contrast:.08,highlights:-.18,shadows:.2,blacks:-.08,saturation:.04},{vignette:.12}),Ee("muted-editorial","Muted Editorial",{exposure:-.02,contrast:.08,highlights:-.08,shadows:.06,blacks:-.05,temperature:-.03,saturation:-.12},{vignette:.1}),Ee("vintage-wash","Vintage Wash",Ql,Zl),Ee("mono-clean","Mono Clean",{contrast:.12,highlights:-.04,shadows:.04,blacks:-.08,saturation:-1}),Ee("mono-fade","Mono Fade",{contrast:-.04,highlights:-.06,shadows:.1,blacks:.12,saturation:-1},{vignette:.08}),Ee("soft-boost","Soft Boost",{exposure:.06,contrast:-.04,highlights:-.14,shadows:.16,vibrance:.08,saturation:.1}),Ee("bright-pop","Bright Pop",{exposure:.12,contrast:.12,whites:.08,blacks:-.04,vibrance:.08,saturation:.14}),Ee("deep-contrast","Deep Contrast",{exposure:-.03,contrast:.2,highlights:-.08,shadows:-.08,blacks:-.12,saturation:.06}),Ee("creator-camcorder","Creator Camcorder",{contrast:.08,highlights:-.05,shadows:.02,whites:.03,blacks:-.04,temperature:-.03,tint:-.015,vibrance:-.03,saturation:-.06},{vignette:.06,grain:.08,grainSize:.18,grainRoughness:.58},{chromaBleed:.55},.72),Ee("vhs-playback","VHS Playback",{contrast:-.04,saturation:-.08},{grain:.16,grainSize:.12,grainRoughness:.72},{tapeDamage:.82,tapeTracking:.85,tapeNoise:.3,tapeSpeed:.5,chromaBleed:.5,chromaticAberration:.18,scanlines:.35,scanlineCount:.17,scanlineSoftness:1,digitalGlitch:.32,digitalGlitchLineTear:.08,digitalGlitchSpeed:.5}),Ee("home-movie-8mm","8mm Home Movie",Ql,{...Zl,vignette:.28,vignetteMidpoint:.54,vignetteFeather:.72,grain:.34,grainSize:.18,grainRoughness:.72},{filmArtifacts:.62},.72),Ee("editorial-halftone","Editorial Halftone",{contrast:.04,saturation:.04},{},{halftone:.94,halftoneSize:.36}),Ee("two-ink-print","Two-Ink Print",{contrast:.08,highlights:-.06,shadows:.04},{},{twoInkPrint:1,twoInkPrintSize:.42})],th=new Map(Do.map(e=>[e.id,e])),nh=/^\\$(?:\\{([A-Za-z0-9_.:-]+)\\}|([A-Za-z0-9_.:-]+))$/,rh={exposure:{min:-2,max:2},contrast:{min:-1,max:1},highlights:{min:-1,max:1},shadows:{min:-1,max:1},whites:{min:-1,max:1},blacks:{min:-1,max:1},temperature:{min:-1,max:1},tint:{min:-1,max:1},vibrance:{min:-1,max:1},saturation:{min:-1,max:1}},qt={hue:0,amount:0,level:0},eu={amount:me.unit,level:me.signedUnit},ft=[[0,0],[1,1]],$t=[],ih={hueVsHue:me.secondaryHueShift,hueVsSaturation:me.signedUnit,hueVsLuma:me.signedUnit},_o={center:0,range:180,softness:0},To={min:0,max:1,softness:.05},oh={vignette:me.unit,vignetteMidpoint:me.unit,vignetteRoundness:me.signedUnit,vignetteFeather:me.unit,grain:me.unit,grainSize:me.unit,grainRoughness:me.unit},Fo=me.unit,ah=me.effects,au=["blur","pixelate","chromaBleed","tapeDamage","filmArtifacts","halftone","twoInkPrint","ascii","dither","bloom","monoScreen","scanlines","chromaticAberration","crtCurvature","digitalGlitch","engraving","crosshatch","kuwahara"];var sh=Do.filter(e=>au.some(t=>e.effects[t]>1e-4)),oS=Do.filter(e=>!sh.includes(e)),aS={blur:{blur:.45},pixelate:{pixelate:.55},bloom:{bloom:.55,bloomRadius:8},chromaBleed:{chromaBleed:.55},tapeDamage:{tapeDamage:.65,tapeTracking:.55,tapeNoise:.25,tapeSpeed:.5},filmArtifacts:{filmArtifacts:.55},scanlines:{scanlines:.35,scanlineCount:.17,scanlineSoftness:1},chromaticAberration:{chromaticAberration:.15,chromaticAngle:0},crtCurvature:{crtCurvature:.2},digitalGlitch:{digitalGlitch:.55,digitalGlitchColorSplit:.25,digitalGlitchLineTear:.25,digitalGlitchPixelate:.15,digitalGlitchBlockAmount:.5,digitalGlitchBlockDisplacement:.25,digitalGlitchBlockOpacity:0,digitalGlitchSpeed:.5},halftone:{halftone:.94,halftoneSize:.36},twoInkPrint:{twoInkPrint:1,twoInkPrintSize:.42},ascii:{ascii:1,asciiSize:5/76,asciiInvert:0,asciiStyle:0,asciiColor:1,asciiRotation:0},dither:{dither:1,ditherSize:.5},monoScreen:{monoScreen:1,monoScreenSize:.35,monoScreenAngle:.25,monoScreenSpread:.3,monoScreenShape:0,monoScreenInvert:0},engraving:{engraving:1,engravingSpacing:7/17,engravingMinThickness:.2,engravingMaxThickness:3.2/7,engravingAngle:.25,engravingContrast:7/15,engravingSharpness:.59,engravingWave:.2,engravingWaveFrequency:2/9},crosshatch:{crosshatch:1,crosshatchSpacing:7/25,crosshatchThickness:.25,crosshatchAngle:.25,crosshatchContrast:1/3,crosshatchEdges:.5,crosshatchLineWeight:0,crosshatchWave:.33,crosshatchWaveFrequency:2/9},kuwahara:{kuwahara:1,kuwaharaRadius:1/7,kuwaharaSharpness:5/16,kuwaharaSaturation:.5}},su=[{path:"intensity",name:"--hf-color-grading-intensity",min:0,max:1},{path:"lut.intensity",name:"--hf-color-grading-lut-intensity",min:0,max:1},{path:"adjust.exposure",name:"--hf-color-grading-exposure",min:-2,max:2},{path:"effects.blur",name:"--hf-color-grading-blur",min:0,max:1},{path:"effects.bloom",name:"--hf-color-grading-bloom",min:0,max:3},{path:"effects.kuwahara",name:"--hf-color-grading-kuwahara",min:0,max:1},{path:"effects.pixelate",name:"--hf-color-grading-pixelate",min:0,max:1},{path:"effects.ascii",name:"--hf-color-grading-ascii",min:0,max:1},{path:"effects.dither",name:"--hf-color-grading-dither",min:0,max:1}];var lh=/^#[0-9a-f]{6}$/i;function uh(e){return!Array.isArray(e)||e.length<2||e.length>6||!e.every(t=>typeof t=="string"&&lh.test(t))?null:e.map(t=>t.toLowerCase())}function _e(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Wr(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,e)):0}function lu(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Math.min(1,Math.max(0,n)):t}function Te(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Wr(n,t.min,t.max):0}function Io(e,t=0){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?(n%360+360)%360:t}function ch(e){let t=_e(e)?e:{};return ru.reduce((n,r)=>{let i=_e(t[r])?t[r]:{};return n[r]={hue:Io(i.hue,qt.hue),amount:Te(i.amount??qt.amount,eu.amount),level:Te(i.level??qt.level,eu.level)},n},{shadows:{...qt},midtones:{...qt},highlights:{...qt}})}function dh(e){if(!Array.isArray(e)||e.length!==2)return null;let t=Number(e[0]),n=Number(e[1]);return Number.isFinite(t)&&Number.isFinite(n)?[Wr(t,0,1),Wr(n,0,1)]:null}function uu(e){return e.some((t,n)=>n>0&&t[0]===e[n-1]?.[0])}function fh(e){(e[0]?.[0]??0)>0&&e.unshift([0,0]),(e.at(-1)?.[0]??1)<1&&e.push([1,1])}function mh(e){if(!Array.isArray(e)||e.length<2)return ft;let t=[];for(let n of e){let r=dh(n);if(!r)return ft;t.push(r)}return t.sort((n,r)=>n[0]-r[0]),uu(t)||(fh(t),t.length>16)?ft:t}function ph(e){let t=_e(e)?e:{};return iu.reduce((n,r)=>(n[r]=mh(t[r]),n),{master:ft,red:ft,green:ft,blue:ft})}function hh(e,t){if(!Array.isArray(e)||e.length!==2)return null;let n=Number(e[0]),r=Number(e[1]);return Number.isFinite(n)&&Number.isFinite(r)?[Io(n),Wr(r,t.min,t.max)]:null}function gh(e,t){if(!Array.isArray(e)||e.length<3||e.length>16)return $t;let n=[];for(let r of e){let i=hh(r,t);if(!i)return $t;n.push(i)}return n.sort((r,i)=>r[0]-i[0]),uu(n)?$t:n}function bh(e){let t=_e(e)?e:{};return ou.reduce((n,r)=>(n[r]=gh(t[r],ih[r]),n),{hueVsHue:$t,hueVsSaturation:$t,hueVsLuma:$t})}function tu(e){let t=_e(e)?e:{},n=Te(t.min??To.min,Fo),r=Te(t.max??To.max,Fo);return{min:Math.min(n,r),max:Math.max(n,r),softness:Te(t.softness??To.softness,me.secondarySoftRangeSoftness)}}function xh(e){let t=_e(e)?e:{},n=Te(t.range??_o.range,me.secondaryHueRange);return{center:Io(t.center,_o.center),range:n,softness:Te(t.softness??_o.softness,{min:me.secondaryHueSoftness.min,max:me.secondaryHueCombinedMax-n})}}function yh(e){return{hueShift:Te(e.hueShift??0,me.secondaryHueShift),saturation:Te(e.saturation??0,me.signedUnit),luma:Te(e.luma??0,me.signedUnit),temperature:Te(e.temperature??0,me.signedUnit),tint:Te(e.tint??0,me.signedUnit)}}function vh(e){return!_e(e)||!_e(e.key)||!_e(e.correction)?null:{enabled:e.enabled!==!1,key:{hue:xh(e.key.hue),saturation:tu(e.key.saturation),luma:tu(e.key.luma)},correction:yh(e.correction)}}function Sh(e){if(!Array.isArray(e))return[];let t=[];for(let n of e.slice(0,4)){let r=vh(n);r&&t.push(r)}return t}function Ah(e){if(e==null)return null;let t=String(e).trim();return t||null}function Eh(e){if(e==null)return null;if(typeof e=="string"){let n=e.trim();return n?{src:n,intensity:1}:null}if(!_e(e))return null;let t=e.src;return typeof t!="string"||t.trim()===""?null:{src:t.trim(),intensity:lu(e.intensity,1)}}function wh(e){if(typeof e=="string"){let t=e.trim();if(!t)return null;if(t.startsWith("{"))try{let n=JSON.parse(t);return _e(n)?n:null}catch{return null}return{preset:t}}return _e(e)?e:null}function Ch(e,t){let n=e.trim().match(nh);if(!n)return e;let r=n[1]??n[2]??"";return r&&Object.hasOwn(t,r)?t[r]:e}function Ur(e,t){if(typeof e=="string"){let r=Ch(e,t);if(r!==e)return r;let i=e.trim();if(!i.startsWith("{"))return e;try{return Ur(JSON.parse(i),t)}catch{return e}}if(Array.isArray(e))return e.map(r=>Ur(r,t));if(!_e(e))return e;let n={};for(let[r,i]of Object.entries(e))n[r]=Ur(i,t);return n}function _h(e){return e?th.get(e)??null:null}function qr(e){let t=wh(e);if(!t||t.enabled===!1)return null;let n=Ah(t.preset),r=_h(n),i=r?.adjust??Ro,o=r?.details??ko,a=r?.effects??Mo,l=_e(t.adjust)?t.adjust:{},s=_e(t.details)?t.details:{},u=_e(t.effects)?t.effects:{},c=zr.reduce((p,b)=>(p[b]=Te(l[b]??i[b],rh[b]),p),{...Ro}),m=No.reduce((p,b)=>(p[b]=Te(s[b]??o[b],oh[b]),p),{...ko}),f=Lo.reduce((p,b)=>(p[b]=Te(u[b]??a[b],ah[b]??Fo),p),{...Mo});return{enabled:!0,preset:n,intensity:lu(t.intensity,r?.intensity??1),adjust:c,wheels:ch(t.wheels),curves:ph(t.curves),hueCurves:bh(t.hueCurves),secondaries:Sh(t.secondaries),details:m,effects:f,palette:uh(t.palette),lut:Eh(t.lut),colorSpace:typeof t.colorSpace=="string"&&t.colorSpace.trim()?t.colorSpace.trim():eh}}function cu(e,t){return qr(Ur(e,t))}function Th(e){return ru.some(t=>Math.abs(e[t].amount)>1e-4||Math.abs(e[t].level)>1e-4)}function Po(e){return iu.some(t=>e[t].some(([n,r])=>Math.abs(n-r)>1e-4))}function Oo(e){return ou.some(t=>e[t].some(([,n])=>Math.abs(n)>1e-4))}function Ho(e){return e.some(t=>t.enabled&&Object.values(t.correction).some(n=>Math.abs(n)>1e-4))}function du(e){return e?.enabled?Math.abs(e.details.vignette)>1e-4||Math.abs(e.details.grain)>1e-4||au.some(n=>Math.abs(e.effects[n])>1e-4)?!0:e.intensity===0?!1:e.lut&&e.lut.intensity!==0?!0:zr.some(n=>Math.abs(e.adjust[n])>1e-4)||(e.wheels?Th(e.wheels):!1)||(e.curves?Po(e.curves):!1)||(e.hueCurves?Oo(e.hueCurves):!1)||(e.secondaries?Ho(e.secondaries):!1):!1}var Rh=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),kh=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(",");function fu(e){let t=!1,n=null,r=null,i=null,o=null;function a(S,A){try{window.dispatchEvent(new CustomEvent(S,{detail:A}))}catch(C){L("runtime.picker.site1",C)}}function l(S){i=S,a("hyperframe:picker:hovered",{elementInfo:i,isPickMode:t,timestamp:Date.now()})}function s(S){o=S,a("hyperframe:picker:selected",{elementInfo:o,isPickMode:t,timestamp:Date.now()})}function u(S){let A=S.ownerDocument.defaultView;if(!A)return!1;let C=S;for(;C&&C!==document.body&&C!==document.documentElement;){let N=A.getComputedStyle(C);if(N.display==="none"||N.visibility==="hidden"||N.pointerEvents==="none")return!0;let I=Number.parseFloat(N.opacity);if(Number.isFinite(I)&&I<=.01&&!C.hasAttribute(Nn))return!0;C=C.parentElement}return!1}function c(S){if(!S||S===document.body||S===document.documentElement)return!1;let A=S.tagName.toLowerCase();return!(A==="script"||A==="style"||A==="link"||A==="meta"||S.classList.contains("__hf-pick-highlight")||S.closest(Rh)||u(S))}function m(S){return!!S?.closest(kh)}function f(S){let A=S;if(A.id)return`#${CSS.escape(A.id)}`;let C=S.getAttribute("data-composition-id");if(C)return`[data-composition-id="${CSS.escape(C)}"]`;let N=S.getAttribute("data-composition-src");if(N)return`[data-composition-src="${CSS.escape(N)}"]`;let I=S.getAttribute("data-track-index");if(I)return`[data-track-index="${CSS.escape(I)}"]`;let W=S.tagName.toLowerCase(),U=S.parentElement;if(!U)return W;let oe=U.querySelectorAll(`:scope > ${W}`);if(oe.length===1)return W;for(let k=0;k<oe.length;k+=1)if(oe[k]===S)return`${W}:nth-of-type(${k+1})`;return W}function p(S){let A=S.tagName.toLowerCase(),C=(S.textContent??"").trim().replace(/\\s+/g," "),N=(I,W)=>I.length>W?`${I.slice(0,W-1)}\\u2026`:I;return A==="h1"||A==="h2"||A==="h3"?"Heading":A==="p"||A==="span"||A==="div"?C.length>0?N(C,56):"Text":A==="img"?"Image":A==="video"?"Video":A==="audio"?"Audio":A==="svg"?"Shape":S.getAttribute("data-composition-src")?"Composition":A==="section"?"Section":`${A.charAt(0).toUpperCase()}${A.slice(1)}`}function b(S,A,C){let N=typeof C=="number"&&C>0?C:8,I=[];if(document.elementsFromPoint)I=document.elementsFromPoint(S,A);else if(document.elementFromPoint){let oe=document.elementFromPoint(S,A);I=oe?[oe]:[]}if(m(I[0]??null))return[];let W={},U=[];for(let[oe,k]of I.entries()){if(!c(k))continue;let V=`${k.tagName}::${k.id||""}::${oe}`;if(!W[V]&&(W[V]=!0,U.push(k),U.length>=N))break}return U}function v(S){let A=S.getBoundingClientRect(),C={};for(let I of Array.from(S.attributes))I.name.startsWith("data-")&&(C[I.name]=I.value);return{id:S.id||null,tagName:S.tagName.toLowerCase(),selector:f(S),label:p(S),boundingBox:{x:A.left,y:A.top,width:A.width,height:A.height},textContent:S.textContent?S.textContent.trim().slice(0,200):null,src:S.getAttribute("src")||S.getAttribute("data-composition-src")||null,dataAttributes:C}}function x(S,A,C){return b(S,A,C).map(v)}function _(S){if(!t)return;let C=b(S.clientX,S.clientY,1)[0]??(S.target instanceof Element?S.target:null);if(!c(C)||n===C)return;n&&n.classList.remove("__hf-pick-highlight"),n=C,C.classList.add("__hf-pick-highlight");let N=v(C);l(N),e.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:N})}function R(S){if(!t)return;S.preventDefault(),S.stopPropagation(),S.stopImmediatePropagation();let A=x(S.clientX,S.clientY,8);A.length!==0&&(l(A[0]??null),e.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:A,selectedIndex:0,point:{x:S.clientX,y:S.clientY}}))}function T(S){S.key==="Escape"&&(F(),e.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function M(){t||(t=!0,r=document.createElement("style"),r.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(r),document.body.classList.add("__hf-pick-active"),document.addEventListener("mousemove",_,!0),document.addEventListener("click",R,!0),document.addEventListener("keydown",T,!0),a("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function F(){t&&(t=!1,n&&(n.classList.remove("__hf-pick-highlight"),n=null),r&&(r.remove(),r=null),document.body.classList.remove("__hf-pick-active"),document.removeEventListener("mousemove",_,!0),document.removeEventListener("click",R,!0),document.removeEventListener("keydown",T,!0),a("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function E(){window.__HF_PICKER_API={enable:M,disable:F,isActive:()=>t,getHovered:()=>i,getSelected:()=>o,getCandidatesAtPoint:(S,A,C)=>Number.isFinite(S)&&Number.isFinite(A)?x(S,A,C):[],pickAtPoint:(S,A,C)=>{if(!Number.isFinite(S)||!Number.isFinite(A))return null;let N=x(S,A,8);if(!N.length)return null;let I=Math.max(0,Math.min(N.length-1,Number(C??0))),W=N[I]??null;return W?(s(W),e.postMessage({source:"hf-preview",type:"element-picked",elementInfo:W}),F(),W):null},pickManyAtPoint:(S,A,C)=>{if(!Number.isFinite(S)||!Number.isFinite(A))return[];let N=x(S,A,8);if(!N.length)return[];let I=[],W=Array.isArray(C)?C:[0];for(let U of W){let oe=Math.max(0,Math.min(N.length-1,Math.floor(Number(U)))),k=N[oe];if(!k)continue;I.some(Q=>Q.selector===k.selector&&Q.tagName===k.tagName)||I.push(k)}return I.length?(s(I[0]??null),e.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:I}),F(),I):[]}},a("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:M,disablePickMode:F,installPickerApi:E}}var Mh=["width","height","top","left","right","bottom","inset","object-fit","object-position","z-index","opacity","visibility","filter","mix-blend-mode","backdrop-filter","border-radius","overflow","clip-path","mask","mask-image","mask-size","mask-position","mask-repeat","transform","transform-origin","translate","rotate","scale","box-sizing"];function jt(e,t){let n=Number.isFinite(t)&&t>0?t:30,r=Number.isFinite(e)&&e>0?e:0;return Math.floor(r*n+1e-9)/n}function mu(e,t,n=Mh){for(let r of n){let i=t.getPropertyValue(r);i&&e.setProperty(r,i)}}function Ln(e,t,n){let r=e?.[t];return typeof r=="function"?Number(r.call(e))||n:typeof r=="number"&&Number.isFinite(r)?r:(r!=null&&L("runtime.player.nonConformantNum",{prop:t,actual:typeof r}),n)}function Be(e,t){let n=e?.[t];if(typeof n=="function"){n.call(e);return}n!==void 0&&L("runtime.player.nonConformantVoid",{method:t,actual:typeof n})}function Dn(e,t,n){if(e){for(let r of Object.values(e))if(!(!r||r===t))try{n(r)}catch(i){L("runtime.player.site1",i)}}}function pu(e,t,n,r){let i=jt(t,n),o=r?.suppressEvents===!0;return Be(e,"pause"),typeof e.totalTime=="function"?e.totalTime(i,o):typeof e.seek=="function"&&e.seek(i,o),i}function Fh(e,t,n,r,i){let o=[];Dn(e,t,a=>{Be(a,"play"),o.push(a)});try{return pu(t,n,r,i)}finally{for(let a of o)try{Be(a,"pause")}catch(l){L("runtime.player.site2",l)}}}function Nh(e,t){Dn(e,t,n=>{Be(n,"play")})}function hu(e){let t=e.transport;return t?{_timeline:null,play:()=>t.play(),pause:()=>t.pause(),seek:(n,r)=>t.seek(n,r),renderSeek:(n,r)=>t.renderSeek(n,r),getTime:()=>t.getTime(),getDuration:()=>t.getDuration(),isPlaying:()=>t.isPlaying(),setPlaybackRate:n=>t.setPlaybackRate(n),getPlaybackRate:()=>t.getPlaybackRate()}:{_timeline:null,play:()=>{let n=e.getTimeline();if(!n||e.getIsPlaying())return;let r=Math.max(0,Number(e.getSafeDuration?.()??Ln(n,"duration",0))||0);r>0&&Math.max(0,Ln(n,"time",0))>=r&&(Be(n,"pause"),typeof n.seek=="function"&&n.seek(0,!1),e.onDeterministicSeek(0),e.setIsPlaying(!1),e.onSyncMedia(0,!1),e.onRenderFrameSeek(0)),typeof n.timeScale=="function"&&n.timeScale(e.getPlaybackRate()),Be(n,"play"),Dn(e.getTimelineRegistry?.(),n,i=>{typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),Be(i,"play")}),e.onDeterministicPlay(),e.setIsPlaying(!0),e.onShowNativeVideos(),e.onStatePost(!0)},pause:()=>{let n=e.getTimeline();if(!n)return;Be(n,"pause"),Dn(e.getTimelineRegistry?.(),n,i=>{Be(i,"pause")});let r=Math.max(0,Ln(n,"time",0));e.onDeterministicSeek(r),e.onDeterministicPause(),e.setIsPlaying(!1),e.onSyncMedia(r,!1),e.onRenderFrameSeek(r),e.onStatePost(!0)},seek:(n,r)=>{let i=e.getTimeline();if(!i)return;let o=Math.max(0,Number(n)||0),a=e.getIsPlaying(),l=Fh(e.getTimelineRegistry?.(),i,o,e.getCanonicalFps());e.onDeterministicSeek(l),r?.keepPlaying&&a?(typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),Be(i,"play"),Dn(e.getTimelineRegistry?.(),i,s=>{typeof s.timeScale=="function"&&s.timeScale(e.getPlaybackRate()),Be(s,"play")}),e.onDeterministicPlay(),e.onShowNativeVideos(),e.onSyncMedia(l,!0)):(e.setIsPlaying(!1),e.onSyncMedia(l,!1)),e.onRenderFrameSeek(l),e.onStatePost(!0)},renderSeek:(n,r)=>{let i=e.getTimeline(),o=e.getCanonicalFps(),a=i?(Nh(e.getTimelineRegistry?.(),i),pu(i,n,o,r)):jt(Math.max(0,Number(n)||0),o);e.onDeterministicSeek(a,r),e.setIsPlaying(!1),e.onSyncMedia(a,!1),e.onRenderFrameSeek(a),e.onStatePost(!0)},getTime:()=>Ln(e.getTimeline(),"time",0),getDuration:()=>Ln(e.getTimeline(),"duration",0),isPlaying:()=>e.getIsPlaying(),setPlaybackRate:n=>e.setPlaybackRate(n),getPlaybackRate:()=>e.getPlaybackRate()}}function gu(){return{capturedTimeline:null,isPlaying:!1,currentTime:0,deterministicAdapters:[],canonicalFps:30,bridgeMuted:!1,bridgeVolume:1,mediaOutputMuted:!1,nativeMediaSyncDisabled:!1,webAudioMediaDisabled:!1,mediaAutoplayBlockedPosted:!1,mediaForceSyncNextTick:!1,playbackRate:1,bridgeLastPostedFrame:-1,bridgeLastPostedAt:0,bridgeLastPostedPlaying:!1,bridgeLastPostedMuted:!1,bridgeMaxPostIntervalMs:80,controlBridgeHandler:null,beforeUnloadHandler:null,injectedCompStyles:[],injectedCompScripts:[],injectedCompLinks:[],cachedTimedMediaEls:[],cachedMediaClips:[],cachedVideoClips:[],cachedMediaTimelineDurationSeconds:0,tornDown:!1,transportClock:null,transportRafId:null}}var Lh=new Set(["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"]);function Go(e){return e.id||e.getAttribute("data-hf-id")||null}function Dh(e){return ve(e)}function Ih(e,t){let n=e.getAttribute("data-composition-id");if(!n)return null;let r=Number(t[n]?.duration?.());return Number.isFinite(r)&&r>0?r:null}function Ph(e){return!(e instanceof HTMLMediaElement)||!Number.isFinite(e.duration)?null:Ze(e,e.duration)}function Oh(e,t,n,r){let i=Dh(e.getAttribute("data-duration"));return i!=null&&i>0?i:Ih(e,t)??Ph(e)??Math.max(0,n-r)}function Hh(e){for(let[t,n]of e){let r=t.parentElement;for(;r;){let i=e.get(r);if(i){n.parentId=i.id,i.children.push(n);break}r=r.parentElement}}}function bu(e){let{startResolver:t,timelineRegistry:n,rootDuration:r}=e,i=new Map,o=document.querySelector("[data-composition-id]"),a=0;for(let l of document.querySelectorAll("[data-start]")){if(l===o||Lh.has(l.tagName))continue;let s=t.resolveStartForElement(l,0);if(Oh(l,n,r,s)<=0)continue;let u={id:Go(l)??`__clip-${a++}`,element:l,parentId:null,children:[]};i.set(l,u)}return Hh(i),{roots:Array.from(i.values()).filter(l=>l.parentId===null)}}function In(e){if(e==null||typeof e=="string"&&e.trim()==="")return null;let t=typeof e=="number"?e:Number(e);return Number.isFinite(t)?t:null}function Kt(e){let t=In(e.start);if(t==null)return null;let n=Math.max(0,t),r=In(e.duration),i=In(e.authoredDuration),o=r!=null&&r>0?r:i!=null&&i>0?i:null;if(o!=null)return{start:n,duration:o,end:n+o};let a=In(e.end),l=In(e.authoredEnd),s=a!=null&&a>n?a:l!=null&&l>n?l:null;return{start:n,duration:s==null?null:s-n,end:s}}var Bo="css:root",xu=["backdrop-filter","clip-path","filter","mask","mask-border-source","mask-image","perspective","rotate","scale","transform","translate","-webkit-mask-image"],Gh=new Set([...xu,"contain","isolation","mask-border","mix-blend-mode","opacity"]),Bh=new Set(["absolute","relative"]),Uh=new Set(["flex","inline-flex","grid","inline-grid"]),Wh=new Set(["layout","paint","strict","content"]),Vh=new Set(["size","inline-size"]);function zh(e){return e.position==="fixed"||e.position==="sticky"}function qh(e,t){if(t.zIndex==="auto"||t.zIndex==="")return!1;if(Bh.has(t.position))return!0;let n=e.parentElement?e.ownerDocument.defaultView?.getComputedStyle(e.parentElement).display:null;return n!=null&&Uh.has(n)}function $h(e){let t=Number.parseFloat(e.opacity);if(Number.isFinite(t)&&t<1||e.getPropertyValue("isolation")==="isolate")return!0;let n=e.getPropertyValue("mix-blend-mode");return n&&n!=="normal"?!0:xu.some(r=>{let i=e.getPropertyValue(r);return i!==""&&i!=="none"})}function jh(e){return e.getPropertyValue("contain").split(/\\s+/).some(n=>Wh.has(n))?!0:Vh.has(e.getPropertyValue("container-type"))}function Kh(e){return e.getPropertyValue("will-change").split(",").map(t=>t.trim()).some(t=>Gh.has(t))}function Yh(e,t){return zh(t)||qh(e,t)||$h(t)||jh(t)?!0:Kh(t)}function Xh(e){let t=[],n=e;for(;n?.parentElement;)t.push(Array.prototype.indexOf.call(n.parentElement.children,n)),n=n.parentElement;return`css:${t.reverse().join(".")}`}function $r(e){let t=e.ownerDocument.defaultView;if(!t)return Bo;let n=e.parentElement;for(;n&&n!==e.ownerDocument.documentElement;){try{if(Yh(n,t.getComputedStyle(n)))return Xh(n)}catch{return Bo}n=n.parentElement}return Bo}function mt(e){let t=e.timelineRegistry??{},n=e.includeAuthoredTimingAttrs??!1,r=e.documentRef??document,i=new WeakMap,o=new WeakMap,a=new Set,l=f=>{let p=r.getElementById(f);return p||(r.querySelector(`[data-composition-id="${CSS.escape(f)}"]`)??null)},s=f=>{let p=f.ownerDocument.defaultView?.HTMLMediaElement;return p?f instanceof p:typeof HTMLMediaElement<"u"&&f instanceof HTMLMediaElement},u=f=>{let p=o.get(f);if(p!==void 0)return p;let b=null,v=Kt({start:0,duration:f.getAttribute("data-duration"),authoredDuration:n?f.getAttribute("data-hf-authored-duration"):null});if(v?.duration!=null&&v.duration>0&&(b=v.duration),b==null||b<=0){let x=m(f,0),_=Kt({start:x,end:f.getAttribute("data-end"),authoredEnd:n?f.getAttribute("data-hf-authored-end"):null});_?.duration!=null&&_.duration>0&&(b=_.duration)}if((b==null||b<=0)&&s(f)){let x=yn(f);Number.isFinite(f.duration)&&f.duration>x&&(b=(f.duration-x)/Ce(f))}if(b==null||b<=0){let x=f.getAttribute("data-composition-id");if(x){let _=t[x]??null;if(_&&typeof _.duration=="function")try{let R=Number(_.duration());Number.isFinite(R)&&R>0&&(b=R)}catch(R){L("runtime.startResolver.site1",R)}}}return b!=null&&Number.isFinite(b)&&b>0?(o.set(f,b),b):(o.set(f,null),null)},c=(f,p)=>{if(f.hasAttribute("data-composition-id")){let v=f.parentElement?.closest("[data-composition-id]");return v?m(v,p):0}let b=f.closest("[data-composition-id]");return b?m(b,p):0},m=(f,p)=>{let b=i.get(f);if(b!==void 0)return b??p;if(a.has(f))return p;a.add(f);try{let v=so(f.getAttribute("data-start"));if(!v){if(f.hasAttribute("data-composition-id")){let M=f.parentElement;if(M&&(M.hasAttribute("data-composition-src")||M.hasAttribute("data-composition-id")||M.hasAttribute("data-composition-file"))){let F=m(M,p);return i.set(f,F),F}}return i.set(f,p),p}if(v.kind==="absolute"){let M=Math.max(0,v.value),F=Math.max(0,c(f,p)+M);return i.set(f,F),F}let x=l(v.refId);if(!x)return i.set(f,p),p;let _=m(x,0),R=u(x);if(R==null||R<=0){let M=Math.max(0,_+v.offset);return i.set(f,M),M}let T=Math.max(0,_+R+v.offset);return i.set(f,T),T}finally{a.delete(f)}};return{resolveStartForElement:(f,p=0)=>m(f,Math.max(0,p)),resolveDurationForElement:f=>u(f)}}function Uo(e){let t=e.trim().toLowerCase();return!(!t||t==="main"||t.includes("caption")||t.includes("ambient"))}function pt(e){return ve(e)}function Wo(e){let t=e.getAttribute("data-duration"),n=e.getAttribute("data-hf-authored-duration"),r=Kt({start:0,duration:t,authoredDuration:n})?.duration;return r??([t,n].map(pt).some(o=>o!=null&&o<=0)?0:null)}function yu(e){return Kt({start:0,end:e.getAttribute("data-end"),authoredEnd:e.getAttribute("data-hf-authored-end")})?.end??null}function Vo(e){try{let t=e.style?.zIndex;if(t&&t!=="auto"){let n=parseInt(t,10);if(Number.isFinite(n))return n}return 0}catch{return 0}}function zo(...e){let t=e.filter(n=>Number.isFinite(n??null));return t.length===0?null:Math.max(...t)}function qo(e,t){let n=e.getAttribute("data-track-index")??e.getAttribute("data-track");if(n==null)return t;let r=Number.parseInt(n,10);return Number.isFinite(r)?r:t}function On(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 vu(e){let t=e.getAttribute("src")??e.getAttribute("data-src");if(t)return On(t);let n=e.getAttribute("data-composition-src");if(n)return On(n);let r=e.querySelector("img[src], video[src], audio[src], source[src]");return r?On(r.getAttribute("src")):null}function Qh(e){let t=e.className;return typeof t!="string"?null:t.split(/\\s+/).map(n=>n.trim()).find(n=>n&&n!=="clip"&&!n.startsWith("__hf-"))??null}function Zh(e){if(!e)return null;try{return new URL(e,document.baseURI).pathname.split("/").filter(Boolean).at(-1)??null}catch{return e.split(/[\\\\/]/).filter(Boolean).at(-1)??null}}function e0(e){let t=e.textContent?.replace(/\\s+/g," ").trim();return t?t.length>32?`${t.slice(0,31)}...`:t:null}function Pn(e){let t=e.replace(/\\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\\s+/g," ").trim();return t?t.replace(/\\b\\w/g,n=>n.toUpperCase()):e}function t0(e,t,n){let r=e.getAttribute("data-timeline-label")??e.getAttribute("data-label")??e.getAttribute("aria-label")??null;if(r?.trim())return r.trim();let i=e.getAttribute("data-composition-id");if(i)return Pn(i);let o=e.id;if(o)return Pn(o);let a=Qh(e);if(a)return Pn(a);let l=Zh(vu(e));if(l)return Pn(l);let s=e0(e);return s||`${Pn(t)} ${n+1}`}function Su(e){let n=window.__timelines??{},r=mt({timelineRegistry:n,includeAuthoredTimingAttrs:!0}),i=q=>{if(!q)return null;let P=n[q]??null;if(!P||typeof P.duration!="function")return null;try{let O=Number(P.duration());return Number.isFinite(O)&&O>0?O:null}catch{return null}},o=q=>{let P=pt(q.getAttribute("data-duration"));return P!=null&&P>0?P:Number.isFinite(q.duration)?Ze(q,q.duration):null},a=()=>{let q=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(q.length===0)return null;let P=0;for(let O of q){let j=O.hasAttribute("data-hf-auto-start")?r.resolveStartForElement(O,0):Math.max(0,Number(O.getAttribute("data-start")??0)||0);if(!Number.isFinite(j))continue;let le=o(O);le==null||le<=0||(P=Math.max(P,Math.max(0,j)+le))}return P>0?P:null},l=(q,P)=>{let O=[],j=null,le=null,ee=null,K=q.parentElement;for(;K;){let Y=K.getAttribute("data-composition-id");Y&&(O.push(Y),!ee&&K!==P&&(ee=Y),j==null&&(j=r.resolveStartForElement(K,0)),le==null&&(le=pt(K.getAttribute("data-duration"))??i(Y)??null)),K=K.parentElement}return{parentCompositionId:ee,compositionAncestors:O.reverse(),inheritedStart:j,inheritedDuration:le}},s=document.querySelector("[data-composition-id]"),u=Array.from(document.querySelectorAll("[data-composition-id]")),c=s?.getAttribute("data-composition-id")??null,m=s?r.resolveStartForElement(s,0):0,f=a(),p=f!=null?Math.max(0,f-Math.max(0,m)):null,b=i(c),v=Wo(s??document.body),x=zo(...u.filter(q=>q!==s).map(q=>{let P=r.resolveStartForElement(q,0),O=r.resolveDurationForElement(q)??i(q.getAttribute("data-composition-id"))??null;return!Number.isFinite(P)||O==null||O<=0?null:Math.max(0,P)+O})),_=x!=null?Math.max(0,x-Math.max(0,m)):null,R=typeof b=="number"&&Number.isFinite(b)&&b>0?b:null,T=typeof v=="number"&&Number.isFinite(v)&&v>0?v:null,M=typeof p=="number"&&Number.isFinite(p)&&p>0?p:null,F=typeof _=="number"&&Number.isFinite(_)&&_>0?_:null,E=zo(M,F),S=R!=null&&E!=null&&R>E+1,C=T??(S?E:zo(R,M,F))??null,I=(C!=null?m+C:null)??(typeof f=="number"&&Number.isFinite(f)&&f>0?f:null),W=(q,P)=>!Number.isFinite(P)||P<=0?0:I==null||!Number.isFinite(I)?P:!Number.isFinite(q)||q>=I?0:Math.max(0,Math.min(P,I-q)),U=[],oe=[],k=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),V=0;for(let[q,P]of k.entries()){if(P===s||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(P.tagName))continue;let O=l(P,s),j=r.resolveStartForElement(P,O.inheritedStart??0),le=P.getAttribute("data-composition-id"),ee=Wo(P);if(ee==null&&le&&le!==c&&(ee=i(le)),ee==null&&P instanceof HTMLMediaElement&&Number.isFinite(P.duration)&&(ee=Ze(P,P.duration)),ee==null){let Fe=O.inheritedDuration;if(Fe!=null&&Fe>0){let ze=(O.inheritedStart??0)+Fe;ee=Math.max(0,ze-j)}}if(ee==null||ee<=0||(ee=W(j,ee),ee<=0))continue;let K=j+ee;V=Math.max(V,K);let Y=P.tagName.toLowerCase(),Ve=le&&le!==c?"composition":Y==="video"?"video":Y==="audio"?"audio":Y==="img"?"image":"element";U.push({id:Go(P)??le??null,label:t0(P,Ve,U.length),start:j,duration:ee,track:qo(P,q),zIndex:Vo(P),stackingContextId:$r(P),kind:Ve,tagName:Y,compositionId:P.getAttribute("data-composition-id"),compositionAncestors:O.compositionAncestors,parentCompositionId:O.parentCompositionId,nodePath:null,compositionSrc:On(P.getAttribute("data-composition-src")),playbackStart:je(P),playbackRate:Ce(P),assetUrl:vu(P),timelineRole:P.getAttribute("data-timeline-role"),timelineLabel:P.getAttribute("data-timeline-label"),timelineGroup:P.getAttribute("data-timeline-group"),timelinePriority:pt(P.getAttribute("data-timeline-priority"))})}let Q=new Set(U.map(q=>q.id)),G=s?.getAttribute("data-composition-id")??null,H=G?n[G]??null:null;if(H&&s){let q=H;if(typeof q.getChildren=="function")try{let P=q.getChildren(!0,!0,!1)??[],O=new Map;for(let ee of s.children){let K=ee;if(!K.id)continue;let Y=K.tagName.toLowerCase();Y==="script"||Y==="style"||Y==="link"||O.set(K,{id:K.id,start:1/0,end:-1/0})}let j=ee=>{let K=ee;for(;K;){if(O.has(K))return K;if(K===s)return null;K=K.parentElement}return null};for(let ee of P){if(typeof ee.targets!="function"||typeof ee.startTime!="function"||typeof ee.duration!="function")continue;let K=ee.startTime(),Y=ee.parent;for(;Y&&Y!==H&&typeof Y.startTime=="function";)K+=Y.startTime(),Y=Y.parent;let Ve=K+ee.duration();if(!(!Number.isFinite(K)||!Number.isFinite(Ve)))for(let Fe of ee.targets()){if(!(Fe instanceof Element))continue;let Re=j(Fe);if(!Re)continue;let ze=O.get(Re);ze&&(ze.start=Math.min(ze.start,K),ze.end=Math.max(ze.end,Ve))}}let le=U.length>0?Math.max(...U.map(ee=>ee.track))+1:0;for(let[ee,K]of O){if(K.start===1/0||K.end===-1/0)continue;let Y=ee;if(Q.has(Y.id))continue;let Ve=Math.max(0,K.end-K.start);if(Ve<=0)continue;let Fe=W(K.start,Ve);Fe<=0||(V=Math.max(V,K.start+Fe),U.push({id:Y.id,label:Y.getAttribute("data-timeline-label")??Y.getAttribute("data-label")??Y.getAttribute("aria-label")??Y.id,start:K.start,duration:Fe,track:qo(Y,le),zIndex:Vo(Y),stackingContextId:$r(Y),kind:"element",tagName:Y.tagName.toLowerCase(),compositionId:Y.getAttribute("data-composition-id"),compositionAncestors:G?[G]:[],parentCompositionId:G,nodePath:null,compositionSrc:null,playbackStart:je(Y),playbackRate:Ce(Y),assetUrl:null,timelineRole:Y.getAttribute("data-timeline-role"),timelineLabel:Y.getAttribute("data-timeline-label"),timelineGroup:Y.getAttribute("data-timeline-group"),timelinePriority:pt(Y.getAttribute("data-timeline-priority"))}),Q.add(Y.id))}}catch(P){L("runtime.timeline.site1",P)}}if(s&&C!=null&&C>0){let q=U.length>0?Math.max(...U.map(P=>P.track))+1:0;for(let P of s.children){let O=P;if(!O.id||Q.has(O.id))continue;let j=O.getAttribute("data-timeline-role");if(j!=="overlay"&&j!=="persistent-overlay")continue;let le=O.tagName.toLowerCase();if(le==="script"||le==="style"||le==="link"||le==="meta"||window.getComputedStyle(O).display==="none")continue;let K=W(0,C);K<=0||(V=Math.max(V,K),U.push({id:O.id,label:O.getAttribute("data-timeline-label")??O.getAttribute("data-label")??O.getAttribute("aria-label")??O.id,start:0,duration:K,track:qo(O,q),zIndex:Vo(O),stackingContextId:$r(O),kind:"element",tagName:le,compositionId:O.getAttribute("data-composition-id"),compositionAncestors:G?[G]:[],parentCompositionId:G,nodePath:null,compositionSrc:null,playbackStart:je(O),playbackRate:Ce(O),assetUrl:null,timelineRole:j,timelineLabel:O.getAttribute("data-timeline-label"),timelineGroup:O.getAttribute("data-timeline-group"),timelinePriority:pt(O.getAttribute("data-timeline-priority"))}),Q.add(O.id))}}for(let q of u){if(q===s)continue;let P=q.getAttribute("data-composition-id");if(!P||!Uo(P))continue;let O=r.resolveStartForElement(q,0),j=Wo(q);if((j==null||j<=0)&&yu(q)!=null){let Y=yu(q);j=Math.max(0,Y-O)}let le=i(P),ee=j&&j>0?j:le;if(ee==null||ee<=0)continue;let K=W(O,ee);K<=0||oe.push({id:P,label:q.getAttribute("data-label")??P,start:O,duration:K,thumbnailUrl:On(q.getAttribute("data-thumbnail-url")),avatarName:null})}let z=Math.max(1,V||1,C??0),X=S&&T==null,we=X?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(z*Math.max(1,e.canonicalFps)));return{...Er(e.canonicalFps),source:"hf-preview",type:"timeline",compositionContractVersion:1,durationSeconds:X?Number.POSITIVE_INFINITY:z,durationInFrames:we,clips:U,scenes:oe,compositionWidth:pt(s?.getAttribute("data-width"))??1920,compositionHeight:pt(s?.getAttribute("data-height"))??1080}}var $o="data-composition-id",n0="data-composition-src",r0=`[${$o}]`,jS=`[${n0}]`,Au="style",Eu="script",i0=\'link[rel="stylesheet"], link[rel="preconnect"]\';function Yt(e){return e?Array.from(e):[]}function wu(e){let{contentNode:t,head:n,documentElement:r,hasTemplate:i,compositionId:o}=e,a=Yt(t.querySelectorAll(r0)),l=o?a.find(c=>c.getAttribute($o)===o)??null:a[0]??null,s=(l??a[0])?.getAttribute($o)?.trim()||"",u=i?null:n??null;return{innerRoot:l,authoredCompositionId:o||s||null,scriptCompositionId:s||o||null,authoredRootId:l?.getAttribute("id")?.trim()||null,styleSources:[...Yt(u?.querySelectorAll(Au)),...Yt(t.querySelectorAll(Au))],scriptSources:[...Yt(u?.querySelectorAll(Eu)),...Yt(t.querySelectorAll(Eu))],linkSources:Yt(n?.querySelectorAll(i0)),variableDefaultCarriers:[r,l].filter(c=>c!=null)}}var pe=Um(Yc(),1),Xc=pe.default,PA=pe.default.stringify,OA=pe.default.fromJSON,HA=pe.default.plugin,GA=pe.default.parse,BA=pe.default.list,UA=pe.default.document,WA=pe.default.comment,VA=pe.default.atRule,zA=pe.default.rule,qA=pe.default.decl,$A=pe.default.root,jA=pe.default.CssSyntaxError,KA=pe.default.Declaration,YA=pe.default.Container,XA=pe.default.Processor,JA=pe.default.Document,QA=pe.default.Comment,ZA=pe.default.Warning,eE=pe.default.AtRule,tE=pe.default.Result,nE=pe.default.Input,rE=pe.default.Rule,iE=pe.default.Root,oE=pe.default.Node;var xa="data-hf-authored-id",Jc="data-hf-inner-root";function ya(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function va(e){return e.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function _g(e){return e&&e.replace(/[^a-zA-Z0-9_-]/g,n=>`\\\\${n}`).replace(/^-?\\d/,n=>`\\\\${n}`)}function Zc(e){let t=e.trim();return t?Array.from(new Set([t,_g(t)])).filter(Boolean):[]}function Tg(e){return!!e&&/[\\w-]/.test(e)}function Rg(e,t,n){let r=Zc(t).sort((l,s)=>s.length-l.length);if(r.length===0)return e;let i="",o=0,a=null;for(let l=0;l<e.length;l+=1){let s=e[l],u=l>0?e[l-1]:"";if(a){i+=s,s===a&&u!=="\\\\"&&(a=null);continue}if(s===\'"\'||s==="\'"){a=s,i+=s;continue}if(s==="["){o+=1,i+=s;continue}if(s==="]"){o=Math.max(0,o-1),i+=s;continue}if(s==="#"&&o===0){let c=r.find(m=>e.startsWith(m,l+1));if(c){let m=e[l+1+c.length];if(!Tg(m)){i+=n,l+=c.length;continue}}}i+=s}return i}function kg(e,t){let n=t?.trim();return n?Rg(e,n,`[${xa}="${va(n)}"]`):e}function Qc(e){return`${e}:not(:has([${Jc}])), ${e} > [${Jc}]`}function Mg(e,t,n,r,i,o){let a=kg(e,r),l=Fg(a,t,n),s=l.trim();if(!s||s==="*")return e;if(/^(html|body|:root)$/i.test(s))return o?Qc(t):e;let u=new RegExp(`\\\\[\\\\s*data-composition-id\\\\s*=\\\\s*(["\'])${ya(n)}\\\\1\\\\s*\\\\]`,"g");if(u.test(s))return s.replace(u,"").trim()===""?Qc(t):l.replace(u,t);let c=l.match(/^\\s*/)?.[0]??"",m=l.match(/\\s*$/)?.[0]??"";if(i){let f=r?`[${xa}="${va(r)}"]`:null;if(f&&s.startsWith(f)){let p=s.slice(f.length);return`${c}${t}${f}${p}${m}`}}return`${c}${t} ${s}${m}`}function Fg(e,t,n){let r=ya(n),i=String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${r}"|\'${r}\')\\s*\\]`,o=String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`;return e.replace(new RegExp(`${i}(?:${o})+`,"g"),t).replace(new RegExp(`(?:${o})+${i}`,"g"),t)}var Ng=new Set(["keyframes","-webkit-keyframes","font-face"]);function Lg(e){return e?.type==="atrule"}function Dg(e){let t=e.parent;for(;t;){if(Lg(t)&&Ng.has(t.name.toLowerCase()))return!0;t=t.parent}return!1}function Ig(e){let t=e.parent;for(;t;){if(t.type==="rule")return!0;t=t.parent}return!1}function ed(e,t,n,r,i){let o=t.trim();if(!e||!o)return e;let a=n||`[data-composition-id="${va(o)}"]`,l=Xc.parse(e);return l.walkRules(s=>{Dg(s)||Ig(s)||(s.selectors=s.selectors.map(u=>Mg(u,a,o,r,i?.compoundAuthoredRoot,i?.scopeRootSelectors)))}),l.toResult({map:!1}).css}function rt(e){return JSON.stringify(e).replace(/</g,"\\\\u003c")}function td(e,t,n="[HyperFrames] composition script error:",r,i=t,o){let a=rt(t),l=rt(i),s=rt(n),u=ya(t),c=rt(o?.trim()||null),m=rt(r??null),f=rt(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${u}"|\'${u}\')\\s*\\]`),p=rt(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`),b=rt(Zc(o?.trim()||""));return`(function(){\n var __hfCompId = ${a};\n var __hfTimelineCompId = ${l};\n var __hfErrorLabel = ${s};\n var __hfAuthoredRootId = ${c};\n var __hfAuthoredRootAttr = ${rt(xa)};\n var __hfEscapeAttr = function(value) {\n return (value + "").replace(/\\\\\\\\/g, "\\\\\\\\\\\\\\\\").replace(/"/g, "\\\\\\\\\\\\"");\n };\n var __hfRootSelector = ${m} || (__hfCompId\n ? \'[data-composition-id="\' + __hfEscapeAttr(__hfCompId) + \'"]\'\n : "");\n var __hfRoot = null;\n var __hfRootSelectorPattern = ${f};\n var __hfTimingSelectorPattern = ${p};\n var __hfAuthoredRootIdForms = ${b};\n var __hfAuthoredRootSelector = __hfAuthoredRootId\n ? "[" + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(__hfAuthoredRootId) + \'"]\'\n : "";\n var __hfIsSelectorNameChar = function(char) {\n return !!char && /[\\\\w-]/.test(char);\n };\n var __hfReplaceAuthoredRootIdSelectors = function(selector) {\n if (!__hfAuthoredRootSelector || !__hfAuthoredRootIdForms.length || typeof selector !== "string") {\n return selector;\n }\n var result = "";\n var bracketDepth = 0;\n var quote = null;\n for (var index = 0; index < selector.length; index += 1) {\n var char = selector[index];\n var previousChar = index > 0 ? selector[index - 1] : "";\n if (quote) {\n result += char;\n if (char === quote && previousChar !== "\\\\\\\\") {\n quote = null;\n }\n continue;\n }\n if (char === \'"\' || char === "\'") {\n quote = char;\n result += char;\n continue;\n }\n if (char === "[") {\n bracketDepth += 1;\n result += char;\n continue;\n }\n if (char === "]") {\n bracketDepth = Math.max(0, bracketDepth - 1);\n result += char;\n continue;\n }\n if (char === "#" && bracketDepth === 0) {\n var matchedForm = null;\n for (var formIndex = 0; formIndex < __hfAuthoredRootIdForms.length; formIndex += 1) {\n var form = __hfAuthoredRootIdForms[formIndex];\n if (selector.slice(index + 1, index + 1 + form.length) === form) {\n matchedForm = form;\n break;\n }\n }\n if (matchedForm) {\n var nextChar = selector[index + 1 + matchedForm.length];\n if (!__hfIsSelectorNameChar(nextChar)) {\n result += __hfAuthoredRootSelector;\n index += matchedForm.length;\n continue;\n }\n }\n }\n result += char;\n }\n return result;\n };\n var __hfNormalizeSelector = function(selector) {\n if (!__hfCompId || typeof selector !== "string") return selector;\n var normalized = selector\n .replace(new RegExp(__hfRootSelectorPattern + \'(?:\' + __hfTimingSelectorPattern + \')+\', \'g\'), __hfRootSelector)\n .replace(new RegExp(\'(?:\' + __hfTimingSelectorPattern + \')+\' + __hfRootSelectorPattern, \'g\'), __hfRootSelector);\n if (__hfAuthoredRootSelector) {\n normalized = __hfReplaceAuthoredRootIdSelectors(normalized);\n }\n return normalized;\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 __hfGetElementById = function(id) {\n var found = window.document.getElementById(id);\n if (found && __hfContains(found)) return found;\n var root = __hfFindRoot();\n if (!root) return found || null;\n var idValue = id + "";\n if (__hfAuthoredRootId && __hfAuthoredRootId === idValue && root.getAttribute && root.getAttribute(__hfAuthoredRootAttr) === idValue) {\n return root;\n }\n if (root.id === idValue) return root;\n if (typeof root.querySelector !== "function") return null;\n try {\n var authoredRootMatch = root.querySelector(\'[\' + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(idValue) + \'"]\');\n if (authoredRootMatch) return authoredRootMatch;\n } catch {}\n if (typeof CSS !== "undefined" && CSS && typeof CSS.escape === "function") {\n try {\n return root.querySelector("#" + CSS.escape(idValue)) || null;\n } catch {}\n }\n try {\n return root.querySelector(\'[id="\' + __hfEscapeAttr(idValue) + \'"]\') || null;\n } catch {}\n return 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") return __hfGetElementById;\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n })\n : window.document;\n var __hfTimelineRegistryProxy = null;\n var __hfGetTimelineRegistry = function() {\n window.__timelines = window.__timelines || {};\n if (!__hfCompId || __hfCompId === __hfTimelineCompId || typeof Proxy !== "function") {\n return window.__timelines;\n }\n if (!__hfTimelineRegistryProxy) {\n __hfTimelineRegistryProxy = new Proxy(window.__timelines, {\n get: function(target, prop, receiver) {\n if (prop !== __hfCompId) {\n return Reflect.get(target, prop, target);\n }\n var authoredValue = Reflect.get(target, prop, target);\n return authoredValue === undefined\n ? Reflect.get(target, __hfTimelineCompId, target)\n : authoredValue;\n },\n set: function(target, prop, value, receiver) {\n if (prop !== __hfCompId) {\n return Reflect.set(target, prop, value, target);\n }\n // The authored node remains in the compiled DOM when its local id\n // differs from the runtime mount id, so readiness legitimately sees\n // both compositions. Publish the same timeline under both identities\n // instead of replacing one with the other.\n var authoredSet = Reflect.set(target, __hfCompId, value, target);\n var runtimeSet = Reflect.set(target, __hfTimelineCompId, value, target);\n return authoredSet && runtimeSet;\n },\n });\n }\n return __hfTimelineRegistryProxy;\n };\n var __hfScopedWindow = typeof Proxy === "function"\n ? new Proxy(window, {\n get: function(target, prop, receiver) {\n if (prop === "__timelines") return __hfGetTimelineRegistry();\n // Inside a sub-composition, __hyperframes is passed as a bare script\n // param bound to the SCOPED variant (per-comp getVariables). But\n // authors routinely write the documented window.__hyperframes.\n // getVariables() form, which would otherwise fall through to the host\n // page\'s base __hyperframes and return the WRONG (or empty) variables\n // for this instance. Route it to the scoped variant too so both\n // spellings resolve to this composition\'s own variables.\n // (__hfScopedHyperframes is a hoisted var assigned below, before any\n // sub-comp script -- the only code that reads this -- runs.)\n if (prop === "__hyperframes") return __hfScopedHyperframes;\n // Native window methods must stay bound to the real window. Handed\n // back unbound, "this" at call time is this Proxy and Chrome rejects\n // it with "Illegal invocation", which broke window.addEventListener,\n // setTimeout, matchMedia and getComputedStyle inside every\n // sub-composition -- including the window.addEventListener("hf-seek",\n // ...) form the Three.js and TypeGPU adapters document. The sibling\n // document and gsap proxies here already bind.\n //\n // Only bind non-constructors. Function.prototype.bind drops static\n // members, so binding a class exposed on window (window.Texts and\n // friends) would silently strip its statics. Built-in methods have\n // no .prototype; classes and constructor functions do.\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" && value.prototype === undefined\n ? value.bind(target)\n : value;\n },\n set: function(target, prop, value, receiver) {\n if (prop === "__timelines") {\n // Common authoring boilerplate assigns the registry back to\n // itself (window.__timelines = window.__timelines || {}). The\n // getter above returns our proxy; do not replace the canonical\n // registry with that proxy or later wrappers will stack proxies.\n if (value === __hfTimelineRegistryProxy) return true;\n target.__timelines = value || {};\n __hfTimelineRegistryProxy = null;\n return true;\n }\n return Reflect.set(target, prop, value, target);\n },\n })\n : window;\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 {\n // Best-effort: timelines coming from user code may have a frozen target\n // or a non-extensible defineProperty path. Swallow \\u2014 the scoped root\n // is an enrichment, not a correctness invariant for playback.\n }\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.filter.call(\n window.document.querySelectorAll(__hfNormalizeSelector(selector)),\n function(node) {\n return node === root || (typeof root.contains === "function" && root.contains(node));\n },\n );\n };\n };\n }\n var value = Reflect.get(utilsTarget, utilsProp, utilsTarget);\n return typeof value === "function" ? value.bind(utilsTarget) : value;\n },\n });\n }\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n });\n var __hfBaseHyperframes = window.__hyperframes;\n var __hfScopedHyperframes = !__hfBaseHyperframes\n ? __hfBaseHyperframes\n : Object.assign({}, __hfBaseHyperframes, {\n getVariables: function() {\n var byComp = window.__hfVariablesByComp;\n var scoped = byComp && __hfTimelineCompId ? byComp[__hfTimelineCompId] : null;\n return scoped ? Object.assign({}, scoped) : {};\n },\n });\n var __hfRun = function() {\n try {\n (function(document, gsap, window, __hyperframes) {\n${e.replace(/<\\/(script)/gi,"<\\\\/$1")}\n }).call(window, __hfScopedDocument, __hfScopedGsap, __hfScopedWindow, __hfScopedHyperframes);\n } catch (_err) {\n console.error(__hfErrorLabel, __hfCompId, _err);\n }\n };\n __hfFindRoot();\n __hfRun();\n})();`}var Pg=["data-composition-id","data-composition-file","data-start","data-duration","data-end","data-track-index","data-track","data-composition-src","data-hf-authored-duration","data-hf-authored-end"];function nd(e){let t=e.getAttribute("id")?.trim();for(let n of Pg)e.removeAttribute(n);t&&(e.removeAttribute("id"),e.setAttribute("data-hf-authored-id",t)),e.setAttribute("data-hf-inner-root","true")}var Og=8e3,Hg=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/,Gg=/\\burl\\(\\s*(["\']?)([^)"\']+)\\1\\s*\\)/g,Bg=["src","href"];function Ug(e){return!e||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("//")||e.startsWith("data:")||e.startsWith("#")||e.startsWith("/")}function od(e,t){if(!t)return e;let n=e.trim();if(Ug(n)||!n.startsWith("../")&&n!=="..")return e;try{return new URL(n,t).href}catch{return e}}function ad(e,t){return!t||!e?e:e.replace(Gg,(n,r,i)=>{let o=od(i||"",t);return o===i?n:`url(${r||""}${o}${r||""})`})}function Wg(e,t){for(let n of Array.from(e.querySelectorAll("[src], [href]")))for(let r of Bg){let i=n.getAttribute(r);if(i==null)continue;let o=od(i,t);o!==i&&n.setAttribute(r,o)}}function Vg(e,t){for(let n of Array.from(e.querySelectorAll("[style]"))){let r=n.getAttribute("style");if(r==null)continue;let i=ad(r,t);i!==r&&n.setAttribute("style",i)}}function zg(e,t){for(let n of Array.from(e.querySelectorAll("style"))){let r=n.textContent||"",i=ad(r,t);i!==r&&(n.textContent=i)}}function sd(e,t){if(t){Wg(e,t),Vg(e,t),zg(e,t);for(let n of Array.from(e.querySelectorAll("template")))sd(n.content,t)}}function qg(e,t){return`${e}__hf${t}`}var $g=e=>new Promise(t=>{let n=!1,r=Date.now(),i=null,o=a=>{n||(n=!0,i!=null&&window.clearTimeout(i),t({status:a,elapsedMs:Math.max(0,Date.now()-r)}))};e.addEventListener("load",()=>o("load"),{once:!0}),e.addEventListener("error",()=>o("error"),{once:!0}),i=window.setTimeout(()=>o("timeout"),Og)});function Sa(e){for(;e.firstChild;)e.removeChild(e.firstChild);e.textContent=""}function rd(e){for(let t of Array.from(e.querySelectorAll("style, script")))t.remove()}function jg(e){let t=document.importNode(e,!0);nd(t);let n=t.getAttribute("data-width"),r=t.getAttribute("data-height");return t.style.width=n?`${n}px`:"100%",t.style.height=r?`${r}px`:"100%",t}function Kg(e,t){let n=e.trim();if(!n)return e;try{return Hg.test(n)&&!n.startsWith("#")&&!n.startsWith("?")?new URL(n,document.baseURI).toString():t?new URL(n,t).toString():new URL(n,document.baseURI).toString()}catch{return e}}function id(e,t){try{let n=new URL(e),r=new URL(t);return n.search="",n.hash="",r.search="",r.hash="",n.href===r.href}catch{return!1}}function li(e){let t=(e.getAttribute("data-composition-id")||"").trim()||null;return{authoredCompositionId:(e.getAttribute("data-hf-original-composition-id")||t||"").trim()||null,runtimeCompositionId:t}}function Yg(e){let t=new Map;for(let n of e){let r=li(n).authoredCompositionId||"";r&&t.set(r,(t.get(r)||0)+1)}return t}function ld(e){let t=li(e).authoredCompositionId;return t?!!document.querySelector(`template#${CSS.escape(t)}-template`):!1}function Xg(e){return!!e.querySelector(\'[data-hf-inner-root="true"]\')}function Jg(e){return e.hasAttribute("data-composition-src")?!0:ld(e)?e.children.length===0||e.hasAttribute("data-hf-original-composition-id")?!0:Xg(e):!1}function Ea(){return Array.from(document.querySelectorAll("[data-composition-src], [data-composition-id]")).filter(t=>t.hasAttribute("data-composition-src")?!0:ld(t))}function ud(){let e=window.__hfVariablesByComp;if(!e)return;let t=new Set(Ea().map(n=>li(n).runtimeCompositionId).filter(n=>!!n));for(let n of Object.keys(e))t.has(n)||delete e[n]}function cd(e,t=Yg(e)){let n=new Map,r=new Map;for(let i of e){let{authoredCompositionId:o,runtimeCompositionId:a}=li(i),l=Jg(i);if(!o){r.set(i,{authoredCompositionId:null,runtimeCompositionId:a});continue}let s=(t.get(o)||0)>1,u=a||o;if(l){let c=s?(n.get(o)||0)+1:0;s&&n.set(o,c),u=s?qg(o,c):o,s?i.setAttribute("data-hf-original-composition-id",o):i.removeAttribute("data-hf-original-composition-id"),i.setAttribute("data-composition-id",u),a&&a!==u&&window.__hfVariablesByComp&&delete window.__hfVariablesByComp[a]}r.set(i,{authoredCompositionId:o,runtimeCompositionId:u})}return r}async function Aa(e){let t=wu({contentNode:e.sourceNode,head:e.head,hasTemplate:e.hasTemplate,compositionId:e.authoredCompositionId}),n=t.innerRoot instanceof HTMLElement?t.innerRoot:null,r=n??e.sourceNode,i=t.authoredCompositionId,o=t.scriptCompositionId,a=e.runtimeCompositionId||null,l=t.authoredRootId,s=a?`[data-composition-id="${CSS.escape(a)}"]`:void 0;for(let f of t.linkSources){let p=(f.getAttribute("href")||"").trim();if(!p)continue;let b=e.compositionUrl?new URL(p,e.compositionUrl).href:p;if(e.compositionUrl&&id(b,e.compositionUrl)||document.head.querySelector(`link[href="${CSS.escape(b)}"]`))continue;let v=f.cloneNode(!0);v instanceof HTMLLinkElement&&(v.href=b,document.head.appendChild(v),e.injectedLinks.push(v))}(f=>{for(let p of f){let b=p.cloneNode(!0);b instanceof HTMLStyleElement&&(i&&(b.textContent=ed(b.textContent||"",i,s,l,{scopeRootSelectors:!0})),document.head.appendChild(b),e.injectedStyles.push(b))}})(t.styleSources);let c=f=>{let p=f.getAttribute("type")?.trim()??"",b=f.getAttribute("src")?.trim()??"";if(b){let x=Kg(b,e.compositionUrl);return e.compositionUrl&&id(x,e.compositionUrl)?null:{kind:"external",src:x,type:p}}let v=f.textContent?.trim()??"";return v?{kind:"inline",content:v,type:p,scopeCompositionId:o}:null},m=t.scriptSources.map(c).filter(f=>f!==null);if(n){let f=n.getAttribute("data-width"),p=n.getAttribute("data-height"),b=e.parseDimensionPx(f),v=e.parseDimensionPx(p);f&&e.host.setAttribute("data-width",f),p&&e.host.setAttribute("data-height",p),b&&e.host instanceof HTMLElement&&(e.host.style.width=b),v&&e.host instanceof HTMLElement&&(e.host.style.height=v),n.hasAttribute("data-timeline-locked")&&e.host.setAttribute("data-timeline-locked","");let x=jg(n);!e.authoredCompositionId&&i&&x.setAttribute("data-composition-id",i),rd(x),e.host.appendChild(x)}else if(e.hasTemplate){let f=document.importNode(r,!0);rd(f),e.host.appendChild(f)}else e.host.innerHTML=e.fallbackBodyInnerHtml;a&&Qg(e,r,a);for(let f of m){let p=document.createElement("script");if(f.type&&(p.type=f.type),p.async=!1,f.kind==="external"?p.src=f.src:f.type.toLowerCase()==="module"?p.textContent=f.content:f.scopeCompositionId?p.textContent=td(f.content,f.scopeCompositionId,"[HyperFrames] composition script error:",s,a||f.scopeCompositionId,l):p.textContent=`(function(){${f.content}})();`,document.body.appendChild(p),e.injectedScripts.push(p),f.kind==="external"){let b=await $g(p);b.status!=="load"&&e.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:e.authoredCompositionId,runtimeCompositionId:e.runtimeCompositionId,hostCompositionSrc:e.hostCompositionSrc,resolvedScriptSrc:f.src,loadStatus:b.status,elapsedMs:b.elapsedMs}})}}}async function dd(e){let t=Ea();if(ud(),t.length===0)return;let n=cd(t),r=t.filter(i=>{if(i.hasAttribute("data-composition-src")||i.children.length>0)return!1;let o=n.get(i)?.authoredCompositionId;return o?!!document.querySelector(`template#${CSS.escape(o)}-template`):!1});if(r.length!==0)for(let i of r){let o=n.get(i),a=o?.authoredCompositionId;if(!a)continue;let l=document.querySelector(`template#${CSS.escape(a)}-template`);Sa(i),await Aa({host:i,authoredCompositionId:a,runtimeCompositionId:o?.runtimeCompositionId||a,hostCompositionSrc:`template#${a}-template`,sourceNode:l.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,injectedLinks:e.injectedLinks,parseDimensionPx:e.parseDimensionPx,onDiagnostic:e.onDiagnostic})}}async function fd(e){let t=Ea();if(ud(),t.length===0)return;let n=cd(t),r=t.filter(i=>i.hasAttribute("data-composition-src"));r.length!==0&&await Promise.all(r.map(async i=>{let o=i.getAttribute("data-composition-src");if(!o)return;let a=n.get(i),l=a?.authoredCompositionId||null,s=a?.runtimeCompositionId||l||null,u=null;try{u=new URL(o,document.baseURI)}catch{u=null}Sa(i);try{let c=l!=null?document.querySelector(`template#${CSS.escape(l)}-template`):null;if(c){await Aa({host:i,authoredCompositionId:l,runtimeCompositionId:s,hostCompositionSrc:o,sourceNode:c.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:u,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,injectedLinks:e.injectedLinks,parseDimensionPx:e.parseDimensionPx,onDiagnostic:e.onDiagnostic});return}let m=await fetch(o);if(!m.ok)throw new Error(`HTTP ${m.status}`);let f=await m.text(),b=new DOMParser().parseFromString(f,"text/html");sd(b,u);let v=(l?b.querySelector(`template#${CSS.escape(l)}-template`):null)??b.querySelector("template"),x=v?v.content:b.body;await Aa({host:i,authoredCompositionId:l,runtimeCompositionId:s,hostCompositionSrc:o,sourceNode:x,hasTemplate:!!v,fallbackBodyInnerHtml:b.body.innerHTML,compositionUrl:u,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,injectedLinks:e.injectedLinks,parseDimensionPx:e.parseDimensionPx,head:b.head,declaredVariableDefaults:bn(b.documentElement),variableDeclarer:b.documentElement,onDiagnostic:e.onDiagnostic})}catch(c){e.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:l,runtimeCompositionId:s,hostCompositionSrc:o,errorMessage:c instanceof Error?c.message:"unknown_error"}}),Sa(i)}}))}function Qg(e,t,n){let i={...e.declaredVariableDefaults??(t instanceof Element?bn(t):{}),...Vs(e.host)};Zi(e.variableDeclarer??(t instanceof Element?t:null),i,n),Us(e.host),Object.keys(i).length>0?(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[n]=i,eo(e.host,{...Bs(e.host,i,window),...Cr()})):window.__hfVariablesByComp&&delete window.__hfVariablesByComp[n]}function wa(e){let n=e.vars.data?.captionState;return n==="dim"||n==="active"?n:void 0}function Zg(e){return e instanceof HTMLElement?e.dataset.captionWrapper!=="true"?e:e.querySelector(":scope > span")??null:null}function eb(){let e=[],t=document.querySelectorAll(".caption-group");for(let n of t)for(let r of n.children){if(!(r instanceof HTMLElement))continue;let i=r.dataset.captionWrapper==="true"?r.querySelector(":scope > span"):r.tagName==="SPAN"?r:null;i&&e.push(i)}return e}function tb(e){let t=e.parentElement;if(t?.dataset.captionWrapper==="true")return t;let n=document.createElement("span");return n.style.display="inline-block",n.dataset.captionWrapper="true",e.parentNode?.insertBefore(n,e),n.appendChild(e),n}function Ca(){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=eb();for(let r of t){let i=null;if(r.wordId&&(i=Zg(document.getElementById(r.wordId))),!i&&r.wordIndex!==void 0&&(i=n[r.wordIndex]??null),!i)continue;let o={},a={};if(r.x!==void 0&&(o.x=r.x),r.y!==void 0&&(o.y=r.y),r.scale!==void 0&&(o.scale=r.scale),r.rotation!==void 0&&(o.rotation=r.rotation),r.opacity!==void 0&&(a.opacity=r.opacity),r.fontSize!==void 0&&(a.fontSize=`${r.fontSize}px`),r.fontWeight!==void 0&&(a.fontWeight=r.fontWeight),r.fontFamily!==void 0&&(a.fontFamily=r.fontFamily),r.activeColor||r.dimColor){let s=e.getTweensOf(i).filter(m=>m.vars.color!==void 0).sort((m,f)=>m.startTime()-f.startTime()),u=s.find(m=>wa(m)==="dim")??s.find(m=>wa(m)===void 0),c=u?String(u.vars.color):"";for(let m of s)(wa(m)??(String(m.vars.color)===c?"dim":"active"))==="dim"?r.dimColor&&(m.vars.color=r.dimColor):r.activeColor&&(m.vars.color=r.activeColor);r.dimColor&&e.set(i,{color:r.dimColor})}if(Object.keys(a).length>0&&e.set(i,a),Object.keys(o).length>0){let l=tb(i);e.set(l,o)}}}).catch(()=>{})}var Ta="data-hf-edit-base-x",Ra="data-hf-edit-base-y",tn="data-hf-edit-original-translate",ui=e=>{let t=parseFloat(e??"");return Number.isFinite(t)?t:0},nb=e=>{let t=[],n=0,r="";for(let i of e.trim())i==="("&&(n+=1),i===")"&&(n=Math.max(0,n-1)),/\\s/.test(i)&&n===0?(r&&t.push(r),r=""):r+=i;return r&&t.push(r),t},md=/^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)px$/,_a=(e,t)=>md.test(e)&&md.test(t)?`${parseFloat(e)+parseFloat(t)}px`:`calc(${e} + ${t})`,rb=(e,t,n)=>{if(!e||e==="none")return`${t} ${n}`;let[r,i,o]=nb(e);if(r===void 0)return`${t} ${n}`;if(i===void 0)return`${_a(r,t)} ${n}`;let a=o===void 0?"":` ${o}`;return`${_a(r,t)} ${_a(i,n)}${a}`},ib=e=>{try{e.ownerDocument.defaultView?.gsap?.getProperty?.(e,"x")}catch{}},ob=e=>{let t=e.style.getPropertyValue("translate").trim();if(t)return t==="none"?"":t;try{let n=e.ownerDocument.defaultView,r=n?n.getComputedStyle(e).getPropertyValue("translate").trim():"";return r==="none"?"":r}catch{return""}},ka=new WeakMap;function ab(e,t){let n=ka.get(e);if(!t?.force&&n!==void 0&&e.style.getPropertyValue("translate")!==n){Ne("position_edit_fold_skipped",{hfId:e.getAttribute("data-hf-id")});return}let r=ui(e.getAttribute("data-x"))-ui(e.getAttribute(Ta)),i=ui(e.getAttribute("data-y"))-ui(e.getAttribute(Ra));e.hasAttribute(tn)||e.setAttribute(tn,ob(e)),n===void 0&&ib(e);let o=e.getAttribute(tn)??"",a=rb(o,`${r}px`,`${i}px`);e.style.setProperty("translate",a),ka.set(e,e.style.getPropertyValue("translate"))}function ci(e,t){let n=e.defaultView?.HTMLElement,r=e.defaultView?.SVGElement,i=s=>n||r?n!==void 0&&s instanceof n||r!==void 0&&s instanceof r:typeof s.style?.setProperty=="function",o=e.querySelectorAll(`[${tn}]:not([${Ta}]):not([${Ra}])`);for(let s=0;s<o.length;s++){let u=o[s];if(u===void 0||!i(u))continue;let c=u.getAttribute(tn)??"";c===""?u.style.removeProperty("translate"):u.style.setProperty("translate",c),u.removeAttribute(tn),ka.delete(u)}let a=e.querySelectorAll(`[${Ta}], [${Ra}]`),l=0;for(let s=0;s<a.length;s++){let u=a[s];u===void 0||!i(u)||(ab(u,t),l+=1)}return l}var pd="__hfPositionEditsSeekReapplyWrapped",hd=new WeakSet,gd=new WeakMap,bd=new WeakMap;function xd(e){let t=e,n=()=>{try{ci(t.document)}catch{}},r=m=>typeof m=="function"&&(hd.has(m)||!!m[pd]),i=m=>{hd.add(m);try{Object.defineProperty(m,pd,{value:!0})}catch{}},o=m=>{if(typeof m!="function"||r(m))return m;let f=function(...p){let b=m.apply(this,p);return n(),b};return i(f),f},a=(m,f)=>{let p=gd.get(m);if(p?.has(f))return!0;let b=Object.getOwnPropertyDescriptor(m,f);if(b?.configurable===!1){let _=m[f];return typeof _=="function"&&(m[f]=o(_),n()),!1}let v=m[f],x=b?.set;return Object.defineProperty(m,f,{configurable:!0,enumerable:b?.enumerable??!0,get:()=>v,set:_=>{v=o(_),x?.call(m,_)}}),v=o(v),p??(p=new Set),p.add(f),gd.set(m,p),n(),!0},l=(m,f)=>{let p=bd.get(t),b=Object.getOwnPropertyDescriptor(t,m);if(!p?.has(m)){if(b?.configurable===!1){let _=t[m];return _?a(_,f):!1}let x=t[m];Object.defineProperty(t,m,{configurable:!0,enumerable:b?.enumerable??!0,get:()=>x,set:_=>{x=_,x&&a(x,f)}}),p??(p=new Set),p.add(m),bd.set(t,p)}let v=t[m];return v?a(v,f):!1},s=()=>{let m=l("__hf","seek"),f=l("__player","renderSeek");return m&&f};if(s())return;let u=120,c=t.setInterval(()=>{if(s()){t.clearInterval(c);return}u-=1,u<=0&&t.clearInterval(c)},50)}function di(e){let t=window,r=e.closest("[data-composition-id]")?.getAttribute("data-composition-id")?.trim()??"",i=r?t.__hfVariablesByComp?.[r]:void 0;if(i)return i;let o=t.__hyperframes?.getVariables?.();return o&&typeof o=="object"?o:t.__hfVariables??{}}function fi(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function Ma(e){let t=e.replace(/[\\u0000-\\u0020]/g,""),n=/^([a-z][a-z0-9+.-]*):/i.exec(t);if(!n)return!0;let r=n[1]?.toLowerCase();return r?r==="https"||r==="http"||r==="blob"?!0:r==="data"?/^data:image\\//i.test(t):!1:!1}var yd=new Set(["img","video","audio","source"]);function sb(e){if(typeof e=="string"&&e.length>0)return e;if(e!==null&&typeof e=="object"){let t=e.url;if(typeof t=="string"&&t.length>0)return t}return null}function lb(e){return e.replace(/[;{}<>\\r\\n]/g,"")}function ub(e){if(fi(e))return String(e);if(e!==null&&typeof e=="object"){let t=e.name;if(typeof t=="string"&&t.length>0)return t}return null}function Fa(e,t){let n=e.closest("[data-composition-id]"),r=t.get(n);if(r)return r;let i=di(e);return t.set(n,i),i}function cb(e,t){if(e.childElementCount===0){e.textContent=t;return}let n=!1;for(let r of Array.from(e.childNodes))r.nodeType===Node.TEXT_NODE&&(r.nodeValue=n?"":t,n=!0);n||e.insertBefore(e.ownerDocument.createTextNode(t),e.firstChild)}function db(e){return e.querySelector("[data-hf-root]")??e.getElementById("stage")??e.body?.firstElementChild??e.body}function fb(e,t){let n=new Set,r=db(e);r&&n.add(r);for(let i of Array.from(e.querySelectorAll("[data-composition-id]")))n.add(i);for(let i of n){let o=Fa(i,t);for(let[a,l]of Object.entries(o)){let s=ub(l);s!==null&&i instanceof HTMLElement&&i.style.setProperty(`--${a}`,lb(s))}}}function Na(e){let t=new Map;fb(e,t);for(let n of Array.from(e.querySelectorAll("[data-var-src]"))){let r=n.getAttribute("data-var-src")?.trim();if(!r)continue;if(!yd.has(n.tagName.toLowerCase())){console.warn(`[hyperframes] Ignoring data-var-src on <${n.tagName.toLowerCase()}>: variable-bound src is only allowed on ${Array.from(yd).join("/")}.`);continue}let i=sb(Fa(n,t)[r]);if(i!==null){if(!Ma(i)){console.warn(`[hyperframes] Ignoring data-var-src="${r}": unsafe URL protocol.`);continue}n.setAttribute("src",i)}}for(let n of Array.from(e.querySelectorAll("[data-var-text]"))){let r=n.getAttribute("data-var-text")?.trim();if(!r)continue;let i=Fa(n,t)[r];fi(i)&&cb(n,String(i))}}var it=new Map,mb="data-hf-color-grading-canvas",pb="__hf_color_grading_canvas__";function Md(){if(typeof MutationObserver>"u"||typeof document>"u")return;let e=document.documentElement;if(!e)return;let t=r=>{r instanceof HTMLElement&&(r.hasAttribute(Vr)||r.setAttribute(Vr,r.style.opacity))},n=r=>{if(r instanceof Element){r.matches("video, img")&&t(r);for(let i of r.querySelectorAll("video, img"))t(i)}};n(e),new MutationObserver(r=>{for(let i of r)for(let o of i.addedNodes)n(o)}).observe(e,{childList:!0,subtree:!0})}var hb=16,gb=4,rn={enabled:!1,position:.5,softness:0,lineWidth:2},La=["#000000","#ffffff"],bb=["#1a1a1a","#f5f5dc"],sr=3,xb=sr-1,yb=5,Da=`${Ke}.0`,vd=`${Ke-1}.0`,vb=`${sr}.0`,Sb=`${(xb+.5)/sr}`;function mi(e){let t=e.getAttribute(Fn);return t==null?null:cu(t,di(e))}var Ab=["attribute vec2 a_pos;","varying vec2 v_uv;","void main(){"," v_uv = a_pos * 0.5 + 0.5;"," gl_Position = vec4(a_pos, 0.0, 1.0);","}"].join(`\n`),Eb=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_source;","uniform sampler2D u_blurSource;","uniform sampler2D u_bloomSource;","uniform sampler2D u_kuwaharaSource;","uniform sampler2D u_lut;","uniform sampler2D u_advanced;","uniform vec2 u_resolution;","uniform vec2 u_uvScale;","uniform vec2 u_uvOffset;","uniform float u_blurReady;","uniform float u_bloomReady;","uniform float u_kuwaharaReady;","uniform float u_lutEnabled;","uniform float u_lutSize;","uniform vec2 u_lutTextureSize;","uniform vec3 u_lutDomainMin;","uniform vec3 u_lutDomainMax;","uniform float u_lutIntensity;","uniform vec3 u_shadowWheel;","uniform vec3 u_midtoneWheel;","uniform vec3 u_highlightWheel;","uniform float u_rgbCurvesEnabled;","uniform float u_hueCurvesEnabled;","uniform float u_secondaryCount;","uniform float u_exposure;","uniform float u_contrast;","uniform float u_highlights;","uniform float u_shadows;","uniform float u_whites;","uniform float u_blacks;","uniform float u_temperature;","uniform float u_tint;","uniform float u_vibrance;","uniform float u_saturation;","uniform float u_vignette;","uniform float u_vignetteMidpoint;","uniform float u_vignetteRoundness;","uniform float u_vignetteFeather;","uniform float u_grain;","uniform float u_grainSize;","uniform float u_grainRoughness;","uniform float u_grainSeed;","uniform float u_effectTime;","uniform float u_blur;","uniform float u_bloom;","uniform float u_kuwahara;","uniform float u_pixelate;","uniform float u_chromaBleed;","uniform float u_tapeDamage;","uniform float u_tapeTracking;","uniform float u_tapeNoise;","uniform float u_tapeSpeed;","uniform float u_filmArtifacts;","uniform float u_halftone;","uniform float u_halftoneSize;","uniform float u_twoInkPrint;","uniform float u_twoInkPrintSize;","uniform float u_ascii;","uniform float u_asciiSize;","uniform float u_asciiInvert;","uniform float u_asciiStyle;","uniform float u_asciiColor;","uniform float u_asciiRotation;","uniform float u_dither;","uniform float u_ditherSize;","uniform float u_monoScreen;","uniform float u_monoScreenSize;","uniform float u_monoScreenAngle;","uniform float u_monoScreenSpread;","uniform float u_monoScreenShape;","uniform float u_monoScreenInvert;","uniform float u_scanlines;","uniform float u_scanlineCount;","uniform float u_scanlineSoftness;","uniform float u_chromaticAberration;","uniform float u_chromaticAngle;","uniform float u_crtCurvature;","uniform float u_digitalGlitch;","uniform float u_digitalGlitchColorSplit;","uniform float u_digitalGlitchLineTear;","uniform float u_digitalGlitchPixelate;","uniform float u_digitalGlitchBlockAmount;","uniform float u_digitalGlitchBlockDisplacement;","uniform float u_digitalGlitchBlockOpacity;","uniform float u_digitalGlitchSpeed;","uniform float u_engraving;","uniform float u_engravingSpacing;","uniform float u_engravingMinThickness;","uniform float u_engravingMaxThickness;","uniform float u_engravingAngle;","uniform float u_engravingContrast;","uniform float u_engravingSharpness;","uniform float u_engravingWave;","uniform float u_engravingWaveFrequency;","uniform float u_crosshatch;","uniform float u_crosshatchSpacing;","uniform float u_crosshatchThickness;","uniform float u_crosshatchAngle;","uniform float u_crosshatchContrast;","uniform float u_crosshatchEdges;","uniform float u_crosshatchLineWeight;","uniform float u_crosshatchWave;","uniform float u_crosshatchWaveFrequency;","uniform float u_paletteSize;","uniform vec3 u_palette0;","uniform vec3 u_palette1;","uniform vec3 u_palette2;","uniform vec3 u_palette3;","uniform vec3 u_palette4;","uniform vec3 u_palette5;","uniform float u_intensity;","uniform float u_compareEnabled;","uniform float u_comparePosition;","uniform float u_compareSoftness;","uniform float u_compareLineWidth;","const float PI = 3.14159265359;","float lumaOf(vec3 c){ return dot(c, vec3(0.2126, 0.7152, 0.0722)); }","float bt601Luma(vec3 c){ return dot(c, vec3(0.299, 0.587, 0.114)); }","float grainHash(vec2 p){ return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123); }","float digitalHash(vec2 p){"," vec2 q = mod(floor(p), 251.0);"," float x = mod(q.x * q.x * 157.0 + q.x * 89.0, 251.0);"," float y = mod(q.y * q.y * 113.0 + q.y * 47.0, 251.0);"," float xy = mod(q.x * q.y * 71.0, 251.0);"," return mod(x + y + xy + 19.0, 251.0) / 251.0;","}","float colorSaturation(vec3 c){ return max(max(c.r, c.g), c.b) - min(min(c.r, c.g), c.b); }","vec2 clampUv(vec2 uv){ return clamp(uv, vec2(0.0), vec2(1.0)); }","vec2 applyCrtWarp(vec2 uv){"," vec2 centered = uv * 2.0 - 1.0;"," float curvature = clamp(u_crtCurvature, 0.0, 1.0) * 0.5;"," float dist = dot(centered, centered);"," centered *= 1.0 + curvature * dist;"," return centered * 0.5 + 0.5;","}","vec4 sampleSource(vec2 uv){ return texture2D(u_source, clampUv(uv)); }","vec4 sampleBlur(vec2 uv){ return texture2D(u_blurSource, clampUv(uv)); }","vec3 sampleBloom(vec2 uv){ return texture2D(u_bloomSource, clampUv(uv)).rgb; }","vec3 sampleKuwahara(vec2 uv){"," vec2 displayUv = uv * u_uvScale + u_uvOffset;"," return texture2D(u_kuwaharaSource, clampUv(displayUv)).rgb;","}","vec4 samplePrepared(vec2 uv){"," vec4 base = sampleSource(uv);"," float blur = clamp(u_blur, 0.0, 1.0);"," if (blur > 0.0 && u_blurReady > 0.5) base = mix(base, sampleBlur(uv), blur);"," float kuwahara = clamp(u_kuwahara, 0.0, 1.0);"," if (kuwahara > 0.0 && u_kuwaharaReady > 0.5) {"," base.rgb = mix(base.rgb, sampleKuwahara(uv), kuwahara);"," }"," return base;","}","float tapeTrackingBand(float y, float center, float width){"," float offset = fract(y - center + 0.5) - 0.5;"," float triangle = max(0.0, 1.0 - abs(offset) / max(width, 0.0001));"," return triangle * triangle * (3.0 - 2.0 * triangle);","}","vec4 sampleMedia(vec2 uv){"," float pixel = clamp(u_pixelate, 0.0, 1.0);"," vec2 sampleUv = uv;"," if (pixel > 0.0) {"," float blockSize = mix(1.0, 48.0, pixel);"," vec2 cells = max(u_resolution / blockSize, vec2(1.0));"," sampleUv = (floor(clamp(uv, vec2(0.0), vec2(0.999999)) * cells) + 0.5) / cells;"," }"," float tapeDamage = clamp(u_tapeDamage, 0.0, 1.0);"," float tapeTracking = clamp(u_tapeTracking, 0.0, 1.0);"," float tapeNoise = clamp(u_tapeNoise, 0.0, 1.0);"," float tapeTime = u_effectTime * mix(0.0, 2.0, clamp(u_tapeSpeed, 0.0, 1.0));"," float tapeFrame = floor(tapeTime * 60.0);"," float tapeLine = floor(sampleUv.y * u_resolution.y * 0.5);"," float lineJitter = (digitalHash(vec2(tapeLine, floor(tapeFrame * 0.5))) - 0.5) * 1.8 * tapeNoise;"," float slowWobble = sin(sampleUv.y * 32.0 + tapeTime * 2.6) * 0.55;"," float headSwitch = smoothstep(0.88, 1.0, sampleUv.y) * sin(sampleUv.y * 240.0 + tapeTime * 8.0) * 4.0;"," float trackingShift = tapeTrackingBand(sampleUv.y, fract(0.08 + tapeTime * 0.083), 0.035);"," trackingShift -= tapeTrackingBand(sampleUv.y, fract(0.28 + tapeTime * 0.061), 0.03) * 0.8;"," trackingShift += tapeTrackingBand(sampleUv.y, fract(0.5 + tapeTime * 0.047), 0.04) * 0.75;"," trackingShift -= tapeTrackingBand(sampleUv.y, fract(0.72 + tapeTime * 0.037), 0.028) * 0.65;"," trackingShift += tapeTrackingBand(sampleUv.y, fract(0.89 + tapeTime * 0.029), 0.032) * 0.55;"," trackingShift *= tapeTracking * 48.0;"," float tapeShift = (lineJitter + slowWobble + headSwitch + trackingShift) * tapeDamage;"," float texelX = 1.0 / max(u_resolution.x * max(u_uvScale.x, 0.00001), 1.0);"," vec2 tapeUv = sampleUv + vec2(tapeShift * texelX, 0.0);"," vec4 base = samplePrepared(tapeUv);"," if (tapeDamage > 0.0) {"," vec2 lumaStep = vec2(texelX * mix(1.0, 3.5, tapeDamage), 0.0);"," vec3 leftTape = samplePrepared(tapeUv - lumaStep).rgb;"," vec3 rightTape = samplePrepared(tapeUv + lumaStep).rgb;"," float tapeLuma = (bt601Luma(leftTape) + bt601Luma(base.rgb) * 2.0 + bt601Luma(rightTape)) * 0.25;"," vec3 centerChroma = base.rgb - vec3(bt601Luma(base.rgb));"," vec3 tapeColor = vec3(tapeLuma) + centerChroma;"," vec3 ghost = samplePrepared(tapeUv - vec2(texelX * 12.0, 0.0)).rgb;"," tapeColor = mix(tapeColor, ghost, 0.045 * tapeDamage);"," float fineNoise = digitalHash(floor(gl_FragCoord.xy) + vec2(tapeFrame * 17.0, tapeFrame * 3.0)) - 0.5;"," float band = digitalHash(vec2(floor(sampleUv.y * 92.0), floor(tapeFrame / 3.0)));"," float dropout = smoothstep(0.985, 1.0, band) * (digitalHash(vec2(floor(sampleUv.x * 18.0), tapeLine)) - 0.5);"," tapeColor += (fineNoise * 0.035 + dropout * 0.12) * tapeDamage * tapeNoise;"," base.rgb = mix(base.rgb, clamp(tapeColor, 0.0, 1.0), tapeDamage);"," }"," float chromaBleed = clamp(u_chromaBleed, 0.0, 1.0);"," if (chromaBleed > 0.0) {"," float radius = mix(1.0, 4.0, chromaBleed);"," vec2 stepUv = vec2(texelX * radius, 0.0);"," vec3 c0 = base.rgb;"," vec3 c1 = samplePrepared(tapeUv - stepUv).rgb;"," vec3 c2 = samplePrepared(tapeUv + stepUv).rgb;"," vec3 c3 = samplePrepared(tapeUv - stepUv * 2.0).rgb;"," vec3 c4 = samplePrepared(tapeUv + stepUv * 2.0).rgb;"," float centerLuma = lumaOf(base.rgb);"," vec3 blurredChroma = ((c0 - vec3(lumaOf(c0))) * 6.0 + (c1 - vec3(lumaOf(c1))) * 4.0 + (c2 - vec3(lumaOf(c2))) * 4.0 + (c3 - vec3(lumaOf(c3))) + (c4 - vec3(lumaOf(c4)))) / 16.0;"," base.rgb = mix(base.rgb, clamp(vec3(centerLuma) + blurredChroma, 0.0, 1.0), chromaBleed);"," }"," return base;","}","vec4 sampleChromaticMedia(vec2 uv, vec4 center){"," float amount = clamp(u_chromaticAberration, 0.0, 1.0);"," if (amount <= 0.0) return center;"," float angle = clamp(u_chromaticAngle, 0.0, 1.0) * PI * 2.0;"," vec2 offset = vec2(cos(angle), sin(angle)) * amount * 0.02;"," vec4 positive = sampleMedia(uv + offset);"," vec4 negative = sampleMedia(uv - offset);"," vec3 split = vec3(positive.r, center.g, negative.b);"," return vec4(split, center.a);","}","vec3 sampleDigitalSplit(vec2 uv, vec2 block, float time, float amount){"," float split = amount * 0.06;"," float direction = digitalHash(block * 0.4 + vec2(floor(time * 3.7), floor(time * 5.3)));"," vec2 axis = direction > 0.66 ? vec2(1.0, 0.0) : direction > 0.33 ? vec2(0.0, 1.0) : vec2(0.7071);"," vec4 center = sampleMedia(uv);"," return vec3(sampleMedia(uv + axis * split).r, center.g, sampleMedia(uv - axis * split).b);","}","vec3 applyDigitalGlitch(vec2 uv, vec3 source){"," float amount = clamp(u_digitalGlitch, 0.0, 1.0);"," if (amount <= 0.0) return source;"," float colorSplit = clamp(u_digitalGlitchColorSplit, 0.0, 1.0) * 2.0;"," float lineTear = clamp(u_digitalGlitchLineTear, 0.0, 1.0) * 2.0;"," float pixelate = clamp(u_digitalGlitchPixelate, 0.0, 1.0) * 2.0;"," float blockAmount = clamp(u_digitalGlitchBlockAmount, 0.0, 1.0);"," float blockDisplacement = clamp(u_digitalGlitchBlockDisplacement, 0.0, 1.0) * 2.0;"," float blockOpacity = clamp(u_digitalGlitchBlockOpacity, 0.0, 1.0);"," float speed = clamp(u_digitalGlitchSpeed, 0.0, 1.0) * 2.0;"," float time = u_effectTime * speed;"," float blockCount = 8.0 + blockAmount * 60.0;"," vec2 block = floor(uv * blockCount);"," float randomA = digitalHash(block + vec2(floor(time * 7.3), floor(time * 11.1)));"," float randomB = digitalHash(block * 0.7 + vec2(17.3 + floor(time * 6.6), 29.1));"," float randomC = digitalHash(block + vec2(floor(time * 5.7) * 13.0, 41.0));"," float randomD = digitalHash(block * 1.3 + vec2(7.0, floor(time * 3.2) * 7.0));"," vec2 displaced = uv;"," if (blockDisplacement > 0.0 && blockOpacity > 0.0) {"," float threshold = 1.0 - blockDisplacement * 0.4;"," if (randomA > threshold) {"," displaced += vec2((randomB - 0.5) * blockDisplacement * 0.5, (randomC - 0.5) * blockDisplacement * 0.3);"," }"," if (randomD > 0.92 && blockDisplacement > 0.5) {"," displaced.x += (digitalHash(vec2(block.y, floor(time * 8.0))) - 0.5) * blockDisplacement;"," }"," displaced = mix(uv, displaced, blockOpacity);"," }"," if (lineTear > 0.0) {"," float row = floor(uv.y * (50.0 + lineTear * 150.0));"," float tearA = digitalHash(vec2(row * 7.3 + floor(time * 12.0 + row * 0.1) * 3.7, 13.0));"," float tearB = digitalHash(vec2(row * 13.7 + floor(time * 8.3) * 5.1, 31.0));"," if (tearA > 1.0 - lineTear * 0.5) displaced.x += (tearB - 0.5) * lineTear * 0.4;"," if (tearB > 0.95 && lineTear > 0.3) displaced.x += (tearA - 0.5) * lineTear * 0.8;"," }"," if (pixelate > 0.0) {"," float pixelRandom = digitalHash(block * 0.5 + vec2(floor(time * 4.9), 53.0));"," if (pixelRandom > 1.0 - pixelate * 0.35) {"," float cells = 4.0 + (1.0 - pixelRandom) * pixelate * 40.0;"," displaced = (floor(clampUv(displaced) * cells) + 0.5) / cells;"," }"," }"," displaced = clampUv(displaced);"," vec3 glitch = sampleDigitalSplit(displaced, block, time, colorSplit);"," if (blockDisplacement > 0.2 && blockOpacity > 0.0) {"," float corruption = digitalHash(block * 1.1 + vec2(floor(time * 11.9), 67.0));"," vec3 changed = glitch;"," if (corruption > 0.9) changed = 1.0 - glitch;"," else if (corruption > 0.85) changed = corruption > 0.875 ? glitch.gbr : glitch.brg;"," else if (corruption > 0.8) {"," float channel = digitalHash(block + vec2(73.0));"," if (channel > 0.66) changed.r = min(changed.r * 2.0, 1.0);"," else if (channel > 0.33) changed.g = min(changed.g * 2.0, 1.0);"," else changed.b = min(changed.b * 2.0, 1.0);"," }"," glitch = mix(glitch, changed, blockOpacity);"," }"," if (blockOpacity > 0.0) {"," float flash = digitalHash(block * 0.8 + vec2(floor(time * 14.7), 83.0));"," vec3 flashed = flash > 0.97 ? min(glitch * 1.8, vec3(1.0)) : flash > 0.94 ? glitch * 0.3 : glitch;"," glitch = mix(glitch, flashed, blockOpacity * 0.6);"," }"," if (lineTear > 0.1) {"," float interference = pow(sin(uv.y * (300.0 + randomA * 200.0) + time * 30.0) * 0.5 + 0.5, 6.0);"," glitch -= interference * 0.08 * lineTear;"," }"," return mix(source, clamp(glitch, 0.0, 1.0), amount);","}","float dustMask(vec2 uv, float frameBucket){"," vec2 grid = vec2(128.0, 72.0);"," vec2 cell = floor(uv * grid);"," vec2 local = fract(uv * grid) - 0.5;"," float chance = grainHash(cell + frameBucket * 19.13);"," float radius = mix(0.05, 0.34, grainHash(cell + 7.1));"," return step(0.9975, chance) * (1.0 - smoothstep(radius, radius + 0.08, length(local)));","}","float screenDot(vec2 p, float ink, float angle, float sharpness){"," float c = cos(angle);"," float s = sin(angle);"," vec2 q = mat2(c, -s, s, c) * p;"," vec2 d = fract(q) - 0.5;"," float radius = sqrt(clamp(ink, 0.0, 1.0)) * 0.68;"," float edge = mix(0.16, 0.025, sharpness);"," return 1.0 - smoothstep(radius - edge, radius + edge, length(d));","}","vec3 paletteColor(float index);","float monoScreenMask(vec2 local, float radius, float shape, float softness){"," vec2 centered = local - 0.5;"," float distanceToInk = length(centered);"," if (shape > 0.5 && shape < 1.5) distanceToInk = max(abs(centered.x), abs(centered.y));"," if (shape > 1.5 && shape < 2.5) distanceToInk = abs(centered.x) + abs(centered.y);"," if (shape > 2.5 && shape < 3.5) distanceToInk = max(abs(centered.x) * 0.86 + centered.y * 0.5, -centered.y);"," if (shape > 3.5) distanceToInk = abs(centered.y);"," float shapeRadius = shape > 3.5 ? radius * 0.45 : radius;"," return 1.0 - smoothstep(shapeRadius, shapeRadius + softness, distanceToInk);","}","vec3 applyMonoScreen(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float invert = step(0.5, u_monoScreenInvert);"," float coverage = mix(1.0 - lumaOf(source), lumaOf(source), invert);"," coverage = pow(clamp(coverage, 0.0, 1.0), mix(1.7, 0.58, clamp(u_monoScreenSpread, 0.0, 1.0)));"," float scale = max(min(u_resolution.x, u_resolution.y) / 540.0, 0.25);"," float cellPx = mix(4.0, 18.0, clamp(u_monoScreenSize, 0.0, 1.0)) * scale;"," float angle = clamp(u_monoScreenAngle, 0.0, 1.0) * PI * 0.5;"," float cosine = cos(angle);"," float sine = sin(angle);"," vec2 point = mat2(cosine, -sine, sine, cosine) * gl_FragCoord.xy / max(cellPx, 1.0);"," float radius = sqrt(coverage) * 0.68;"," float inkMask = monoScreenMask(fract(point), radius, floor(u_monoScreenShape + 0.5), 0.035);"," vec3 ink = paletteColor(0.0);"," vec3 paper = paletteColor(max(u_paletteSize - 1.0, 1.0));"," return mix(source, mix(paper, ink, inkMask), amount);","}","vec3 applyEngraving(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float spacing = mix(3.0, 20.0, clamp(u_engravingSpacing, 0.0, 1.0));"," float minThickness = mix(0.0, 2.0, clamp(u_engravingMinThickness, 0.0, 1.0));"," float maxThickness = mix(1.0, 8.0, clamp(u_engravingMaxThickness, 0.0, 1.0));"," float angle = clamp(u_engravingAngle, 0.0, 1.0) * PI;"," vec2 alongAxis = vec2(cos(angle), sin(angle));"," vec2 acrossAxis = vec2(-alongAxis.y, alongAxis.x);"," float along = dot(gl_FragCoord.xy, alongAxis);"," float across = dot(gl_FragCoord.xy, acrossAxis);"," float frequency = mix(1.0, 10.0, clamp(u_engravingWaveFrequency, 0.0, 1.0));"," float wave = sin(along * frequency * 0.01);"," across += wave * clamp(u_engravingWave, 0.0, 1.0) * 3.0;"," float lineIndex = floor(across / max(spacing, 1.0));"," float lineDistance = abs(fract(across / max(spacing, 1.0)) - 0.5) * spacing;"," float contrast = mix(0.5, 2.0, clamp(u_engravingContrast, 0.0, 1.0));"," float darkness = 1.0 - pow(clamp(lumaOf(source), 0.0, 1.0), contrast);"," float variation = mix(0.88, 1.12, digitalHash(vec2(lineIndex, 73.0)));"," float thickness = mix(minThickness, maxThickness, darkness) * variation;"," float edge = mix(1.0, 0.3, clamp(u_engravingSharpness, 0.0, 1.0));"," float inkMask = 1.0 - smoothstep(max(thickness * 0.5 - edge, 0.0), thickness * 0.5 + edge, lineDistance);"," inkMask *= smoothstep(0.015, 0.12, darkness);"," vec3 ink = paletteColor(0.0);"," vec3 paper = paletteColor(max(u_paletteSize - 1.0, 1.0));"," return mix(source, mix(paper, ink, inkMask), amount);","}","float crosshatchLine(vec2 pixel, float angle, float spacing, float thickness, float seed){"," vec2 alongAxis = vec2(cos(angle), sin(angle));"," vec2 acrossAxis = vec2(-alongAxis.y, alongAxis.x);"," float along = dot(pixel, alongAxis);"," float across = dot(pixel, acrossAxis);"," float frequency = mix(1.0, 10.0, clamp(u_crosshatchWaveFrequency, 0.0, 1.0));"," across += sin(along * frequency * 0.02 + u_effectTime + seed) * clamp(u_crosshatchWave, 0.0, 1.0) * 5.0;"," float lineIndex = floor(across / max(spacing, 1.0));"," float distanceToLine = abs(fract(across / max(spacing, 1.0)) - 0.5) * spacing;"," float variation = mix(1.0, 0.5 + digitalHash(vec2(lineIndex, seed)), clamp(u_crosshatchLineWeight, 0.0, 1.0));"," float halfWidth = thickness * variation * 0.5;"," return 1.0 - smoothstep(max(halfWidth - 0.5, 0.0), halfWidth + 0.5, distanceToLine);","}","float crosshatchEdge(vec2 uv){"," vec2 texel = 1.0 / max(u_resolution * u_uvScale, vec2(1.0));"," float tl = lumaOf(sampleMedia(uv + texel * vec2(-1.0, -1.0)).rgb);"," float tc = lumaOf(sampleMedia(uv + texel * vec2( 0.0, -1.0)).rgb);"," float tr = lumaOf(sampleMedia(uv + texel * vec2( 1.0, -1.0)).rgb);"," float ml = lumaOf(sampleMedia(uv + texel * vec2(-1.0, 0.0)).rgb);"," float mr = lumaOf(sampleMedia(uv + texel * vec2( 1.0, 0.0)).rgb);"," float bl = lumaOf(sampleMedia(uv + texel * vec2(-1.0, 1.0)).rgb);"," float bc = lumaOf(sampleMedia(uv + texel * vec2( 0.0, 1.0)).rgb);"," float br = lumaOf(sampleMedia(uv + texel * vec2( 1.0, 1.0)).rgb);"," float gx = -tl - 2.0 * ml - bl + tr + 2.0 * mr + br;"," float gy = -tl - 2.0 * tc - tr + bl + 2.0 * bc + br;"," return length(vec2(gx, gy));","}","vec3 applyCrosshatch(vec2 uv, vec3 source, float amount){"," if (amount <= 0.0) return source;"," float spacing = mix(5.0, 30.0, clamp(u_crosshatchSpacing, 0.0, 1.0));"," float thickness = mix(1.0, 5.0, clamp(u_crosshatchThickness, 0.0, 1.0));"," float baseAngle = -clamp(u_crosshatchAngle, 0.0, 1.0) * PI;"," float contrast = mix(0.5, 2.0, clamp(u_crosshatchContrast, 0.0, 1.0));"," float darkness = 1.0 - pow(clamp(lumaOf(source), 0.0, 1.0), contrast);"," vec3 ink = paletteColor(0.0);"," vec3 paper = paletteColor(max(u_paletteSize - 1.0, 1.0));"," vec3 result = paper;"," float layer = crosshatchLine(gl_FragCoord.xy, baseAngle, spacing, thickness, 1.0) * smoothstep(0.2, 0.4, darkness);"," result = mix(result, ink, layer);"," layer = crosshatchLine(gl_FragCoord.xy, baseAngle + PI * 0.5, spacing * 0.95, thickness * 0.9, 2.0) * smoothstep(0.4, 0.6, darkness);"," result = mix(result, ink, layer);"," layer = crosshatchLine(gl_FragCoord.xy, baseAngle + PI * 0.25, spacing * 0.9, thickness * 0.8, 3.0) * smoothstep(0.6, 0.8, darkness);"," result = mix(result, ink, layer);"," layer = crosshatchLine(gl_FragCoord.xy, baseAngle - PI * 0.25, spacing * 0.85, thickness * 0.7, 4.0) * smoothstep(0.75, 0.9, darkness);"," result = mix(result, ink, layer);"," result = mix(result, ink, smoothstep(0.9, 1.0, darkness) * 0.8);"," float edgeStrength = mix(0.0, 2.0, clamp(u_crosshatchEdges, 0.0, 1.0));"," float edge = smoothstep(0.1, 0.3, crosshatchEdge(uv)) * edgeStrength;"," result = mix(result, ink, clamp(edge, 0.0, 1.0));"," return mix(source, result, amount);","}","vec3 applyHalftone(vec3 source, float amount){"," if (amount <= 0.0) return source;"," vec3 cmy = 1.0 - source;"," float k = min(cmy.r, min(cmy.g, cmy.b));"," vec3 inks = max(cmy - vec3(k * 0.72), 0.0);"," float scale = min(u_resolution.x, u_resolution.y) / 540.0;"," float cellPx = mix(5.0, 14.0, clamp(u_halftoneSize, 0.0, 1.0)) * max(scale, 0.25);"," vec2 p = gl_FragCoord.xy / max(cellPx, 1.0);"," float cyan = screenDot(p, inks.r, 0.261799, 0.78);"," float magenta = screenDot(p, inks.g, 1.308997, 0.78);"," float yellow = screenDot(p, inks.b, 0.0, 0.78);"," float blackInk = screenDot(p, k, 0.785398, 0.82);"," vec3 printColor = vec3(0.975, 0.962, 0.925);"," printColor *= mix(vec3(1.0), vec3(0.05, 0.79, 0.86), cyan);"," printColor *= mix(vec3(1.0), vec3(0.91, 0.08, 0.48), magenta);"," printColor *= mix(vec3(1.0), vec3(0.98, 0.83, 0.08), yellow);"," printColor *= mix(vec3(1.0), vec3(0.035), blackInk * 0.92);"," return mix(source, printColor, amount);","}","vec3 applyTwoInkPrint(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float sourceLuma = lumaOf(source);"," float darkness = 1.0 - sourceLuma;"," float warmBias = clamp(source.r - (source.g + source.b) * 0.5, -0.35, 0.35);"," float coolBias = clamp((source.g + source.b) * 0.5 - source.r, -0.35, 0.35);"," float redTone = smoothstep(0.08, 0.72, darkness) * (1.0 - 0.68 * smoothstep(0.66, 1.0, darkness));"," float tealTone = smoothstep(0.30, 0.92, darkness);"," float redCoverage = clamp(redTone + warmBias * 1.35 - coolBias * 0.35, 0.0, 1.0);"," float tealCoverage = clamp(tealTone + coolBias * 1.1 - warmBias * 0.45, 0.0, 1.0);"," float scale = min(u_resolution.x, u_resolution.y) / 540.0;"," float cellPx = mix(4.5, 12.0, clamp(u_twoInkPrintSize, 0.0, 1.0)) * max(scale, 0.25);"," vec2 p = gl_FragCoord.xy / max(cellPx, 1.0);"," float redDot = screenDot(p, redCoverage, 0.261799, 0.84);"," float tealDot = screenDot(p + vec2(0.12, -0.08), tealCoverage, 1.308997, 0.84);"," float paperNoise = grainHash(floor(gl_FragCoord.xy * 0.5)) - 0.5;"," vec3 paper = vec3(0.955, 0.910, 0.795) + paperNoise * 0.018;"," vec3 vermilion = vec3(0.88, 0.13, 0.075);"," vec3 teal = vec3(0.035, 0.285, 0.355);"," vec3 overprint = vec3(0.045, 0.055, 0.052);"," vec3 printColor = paper * (1.0 - redDot) * (1.0 - tealDot);"," printColor += vermilion * redDot * (1.0 - tealDot);"," printColor += teal * (1.0 - redDot) * tealDot;"," printColor += overprint * redDot * tealDot;"," return mix(source, clamp(printColor, 0.0, 1.0), amount);","}","vec3 paletteColor(float index){"," if (index < 0.5) return u_palette0;"," if (index < 1.5) return u_palette1;"," if (index < 2.5) return u_palette2;"," if (index < 3.5) return u_palette3;"," if (index < 4.5) return u_palette4;"," return u_palette5;","}","float bayer4(vec2 point){"," vec2 cell = mod(floor(point), 4.0);"," if (cell.y < 0.5) {"," if (cell.x < 0.5) return 0.5 / 16.0;"," if (cell.x < 1.5) return 8.5 / 16.0;"," if (cell.x < 2.5) return 2.5 / 16.0;"," return 10.5 / 16.0;"," }"," if (cell.y < 1.5) {"," if (cell.x < 0.5) return 12.5 / 16.0;"," if (cell.x < 1.5) return 4.5 / 16.0;"," if (cell.x < 2.5) return 14.5 / 16.0;"," return 6.5 / 16.0;"," }"," if (cell.y < 2.5) {"," if (cell.x < 0.5) return 3.5 / 16.0;"," if (cell.x < 1.5) return 11.5 / 16.0;"," if (cell.x < 2.5) return 1.5 / 16.0;"," return 9.5 / 16.0;"," }"," if (cell.x < 0.5) return 15.5 / 16.0;"," if (cell.x < 1.5) return 7.5 / 16.0;"," if (cell.x < 2.5) return 13.5 / 16.0;"," return 5.5 / 16.0;","}","float standardAsciiSample(float brightness, vec2 grid){"," if (brightness < 0.1) return 0.0;"," if (brightness < 0.2) return grid.x == 2.0 && grid.y == 5.0 ? 1.0 : 0.0;"," if (brightness < 0.3) return grid.x == 2.0 && (grid.y == 2.0 || grid.y == 4.0) ? 1.0 : 0.0;"," if (brightness < 0.4) return (grid.y == 2.0 || grid.y == 4.0) && grid.x >= 1.0 && grid.x <= 3.0 ? 1.0 : 0.0;"," if (brightness < 0.5) {"," bool cross = (grid.x == 2.0 && grid.y >= 2.0 && grid.y <= 4.0) || (grid.y == 3.0 && grid.x >= 1.0 && grid.x <= 3.0);"," bool diagonals = (grid.x == 1.0 || grid.x == 3.0) && (grid.y == 2.0 || grid.y == 4.0);"," return cross || diagonals ? 1.0 : 0.0;"," }"," if (brightness < 0.6) {"," bool ring = ((grid.y == 2.0 || grid.y == 4.0) && grid.x >= 1.0 && grid.x <= 3.0) || ((grid.x == 1.0 || grid.x == 3.0) && grid.y == 3.0);"," return ring ? 1.0 : 0.0;"," }"," bool outline = ((grid.y == 1.0 || grid.y == 5.0) && grid.x >= 1.0 && grid.x <= 3.0) || ((grid.x == 0.0 || grid.x == 4.0) && grid.y >= 2.0 && grid.y <= 4.0) || ((grid.x == 1.0 || grid.x == 3.0) && grid.y >= 1.0 && grid.y <= 5.0);"," if (brightness < 0.7) return outline ? 1.0 : 0.0;"," if (brightness < 0.8) {"," bool slash = abs(grid.x - 2.0) == abs(grid.y - 3.0) && grid.x >= 1.0 && grid.x <= 3.0;"," return outline || slash ? 1.0 : 0.0;"," }"," if (brightness < 0.9) {"," bool loops = ((grid.y == 1.0 || grid.y == 3.0 || grid.y == 5.0) && grid.x >= 1.0 && grid.x <= 3.0) || ((grid.x == 1.0 || grid.x == 3.0) && (grid.y == 2.0 || grid.y == 4.0));"," return loops ? 1.0 : 0.0;"," }"," return 1.0;","}","float asciiStyleSample(float style, float brightness, vec2 uv){"," vec2 grid = floor(uv * vec2(5.0, 7.0));"," if (style < 0.5) return standardAsciiSample(brightness, grid);"," if (style < 1.5) {"," float checker = mod(grid.x + grid.y, 2.0);"," float ruled = mod(grid.x, 2.0) == 0.0 || mod(grid.y, 2.0) == 0.0 ? 1.0 : 0.0;"," if (brightness < 0.125) return 0.0;"," if (brightness < 0.25) return checker == 0.0 ? 0.5 : 0.0;"," if (brightness < 0.375) return ruled * 0.6;"," if (brightness < 0.5) return checker == 0.0 ? 1.0 : 0.0;"," if (brightness < 0.625) return ruled > 0.5 ? 1.0 : 0.3;"," if (brightness < 0.75) return checker == 0.0 ? 1.0 : 0.7;"," if (brightness < 0.875) return ruled > 0.5 ? 1.0 : 0.85;"," return 1.0;"," }"," if (style < 2.5) {"," if (brightness < 0.14) return 0.0;"," if (brightness < 0.28) return grid.x == 2.0 && grid.y == 1.0 ? 1.0 : 0.0;"," if (brightness < 0.42) return grid.x == 2.0 && grid.y == 5.0 ? 1.0 : 0.0;"," if (brightness < 0.56) return grid.y == 3.0 && grid.x >= 1.0 && grid.x <= 3.0 ? 1.0 : 0.0;"," if (brightness < 0.7) return (grid.x == 2.0 && grid.y >= 2.0 && grid.y <= 4.0) || (grid.y == 3.0 && grid.x >= 1.0 && grid.x <= 3.0) ? 1.0 : 0.0;"," if (brightness < 0.84) return abs(grid.x - 2.0) == abs(grid.y - 3.0) && grid.y >= 2.0 && grid.y <= 4.0 ? 1.0 : 0.0;"," return grid.x == 1.0 || grid.x == 3.0 || grid.y == 2.0 || grid.y == 4.0 ? 1.0 : 0.0;"," }"," if (style < 3.5) return grid.y >= 6.0 - brightness * 7.0 ? 1.0 : 0.0;"," if (style < 4.5) {"," vec2 dots = floor(uv * vec2(2.0, 4.0));"," if (brightness < 0.125) return 0.0;"," if (brightness < 0.25) return dots.y == 3.0 ? 1.0 : 0.0;"," if (brightness < 0.375) return dots.y >= 2.0 ? 1.0 : 0.0;"," if (brightness < 0.5) return dots.y >= 1.0 ? 1.0 : 0.0;"," if (brightness < 0.625) return dots.y >= 1.0 || dots.x == 1.0 ? 1.0 : 0.0;"," if (brightness < 0.75) return 1.0;"," if (brightness < 0.875) return mod(grid.x + grid.y, 2.0) < 1.5 ? 1.0 : 0.7;"," return 1.0;"," }"," if (style < 5.5) {"," if (brightness < 0.125) return 0.0;"," if (brightness < 0.25) return grid.x == 2.0 && grid.y == 3.0 ? 1.0 : 0.0;"," if (brightness < 0.375) return grid.y == 3.0 && grid.x >= 1.0 && grid.x <= 3.0 ? 1.0 : 0.0;"," if (brightness < 0.5) return grid.x + grid.y == 5.0 || grid.x + grid.y == 6.0 ? 1.0 : 0.0;"," if (brightness < 0.625) return grid.x == 2.0 ? 1.0 : 0.0;"," if (brightness < 0.75) return abs(grid.x - grid.y / 1.4) < 0.7 && grid.x >= 1.0 && grid.x <= 3.0 ? 1.0 : 0.0;"," if (brightness < 0.875) return grid.x == 2.0 || grid.y == 3.0 ? 1.0 : 0.0;"," return grid.x == 1.0 || grid.x == 3.0 || grid.y == 2.0 || grid.y == 4.0 ? 1.0 : 0.0;"," }"," if (style < 6.5) {"," bool top = grid.y == 0.0 && grid.x >= 1.0 && grid.x <= 3.0;"," bool topLeft = grid.x == 1.0 && grid.y <= 3.0;"," bool topRight = grid.x == 3.0 && grid.y <= 3.0;"," bool middle = grid.y == 3.0 && grid.x >= 1.0 && grid.x <= 3.0;"," bool bottomLeft = grid.x == 1.0 && grid.y >= 3.0;"," bool bottomRight = grid.x == 3.0 && grid.y >= 3.0;"," bool bottom = grid.y == 6.0 && grid.x >= 1.0 && grid.x <= 3.0;"," if (brightness < 0.1) return 0.0;"," if (brightness < 0.2) return topRight || bottomRight ? 1.0 : 0.0;"," if (brightness < 0.3) return top || topRight || middle || bottomLeft || bottom ? 1.0 : 0.0;"," if (brightness < 0.4) return top || topRight || middle || bottomRight || bottom ? 1.0 : 0.0;"," if (brightness < 0.5) return topLeft || middle || topRight || bottomRight ? 1.0 : 0.0;"," if (brightness < 0.6) return top || topLeft || middle || bottomRight || bottom ? 1.0 : 0.0;"," if (brightness < 0.7) return top || topLeft || middle || bottomLeft || bottomRight || bottom ? 1.0 : 0.0;"," if (brightness < 0.8) return top || topRight || bottomRight ? 1.0 : 0.0;"," if (brightness < 0.9) return top || topLeft || topRight || middle || bottomLeft || bottomRight || bottom ? 1.0 : 0.0;"," return top || topLeft || topRight || middle || bottomRight || bottom ? 1.0 : 0.0;"," }"," float slash = grid.x - grid.y;"," float backslash = grid.x + grid.y;"," if (brightness < 0.16) return 0.0;"," if (brightness < 0.33) return mod(slash, 3.0) < 0.5 ? 1.0 : 0.0;"," if (brightness < 0.5) return mod(slash, 2.0) < 0.5 ? 1.0 : 0.0;"," bool diagonalA = mod(slash, 2.0) < 0.5;"," bool diagonalB = mod(backslash, 2.0) < 0.5;"," if (brightness < 0.66) return diagonalA || diagonalB ? 1.0 : 0.0;"," if (brightness < 0.83) return mod(slash, 1.5) < 0.5 || mod(backslash, 1.5) < 0.5 ? 1.0 : 0.2;"," return mod(slash, 1.0) < 0.6 || mod(backslash, 1.0) < 0.6 ? 1.0 : 0.5;","}","vec3 rgbToHsv(vec3 color){"," float maximum = max(max(color.r, color.g), color.b);"," float minimum = min(min(color.r, color.g), color.b);"," float delta = maximum - minimum;"," float hue = 0.0;"," if (delta > 0.00001) {"," if (maximum == color.r) hue = mod((color.g - color.b) / delta, 6.0);"," else if (maximum == color.g) hue = (color.b - color.r) / delta + 2.0;"," else hue = (color.r - color.g) / delta + 4.0;"," hue = fract(hue / 6.0);"," }"," return vec3(hue, maximum > 0.00001 ? delta / maximum : 0.0, maximum);","}","vec3 hsvToRgb(vec3 color){"," vec3 bands = abs(fract(color.xxx + vec3(0.0, 0.6666667, 0.3333333)) * 6.0 - 3.0);"," return color.z * mix(vec3(1.0), clamp(bands - 1.0, 0.0, 1.0), color.y);","}","vec4 sampleAdvancedCurve(float coordinate, float row){",` float position = clamp(coordinate, 0.0, 1.0) * ${vd};`," float lower = floor(position);",` float upper = min(lower + 1.0, ${vd});`,` float y = (row + 0.5) / ${vb};`,` vec4 before = texture2D(u_advanced, vec2((lower + 0.5) / ${Da}, y));`,` vec4 after = texture2D(u_advanced, vec2((upper + 0.5) / ${Da}, y));`," return mix(before, after, position - lower);","}","vec4 advancedConfig(float index){",` return texture2D(u_advanced, vec2((index + 0.5) / ${Da}, ${Sb}));`,"}","vec3 wheelDirection(float hue){"," vec3 direction = hsvToRgb(vec3(fract(hue), 1.0, 1.0));"," direction -= vec3(lumaOf(direction));"," return direction / max(max(max(abs(direction.r), abs(direction.g)), abs(direction.b)), 0.0001);","}","vec3 applyTonalWheels(vec3 color){"," float luma = lumaOf(color);"," float shadows = 1.0 - smoothstep(0.0, 0.6, luma);"," float highlights = smoothstep(0.4, 1.0, luma);"," float midtones = max(0.0, 1.0 - shadows - highlights);"," float total = max(shadows + midtones + highlights, 0.0001);"," vec3 weights = vec3(shadows, midtones, highlights) / total;"," color += wheelDirection(u_shadowWheel.x) * u_shadowWheel.y * weights.x * 0.18;"," color += wheelDirection(u_midtoneWheel.x) * u_midtoneWheel.y * weights.y * 0.18;"," color += wheelDirection(u_highlightWheel.x) * u_highlightWheel.y * weights.z * 0.18;"," color += u_shadowWheel.z * weights.x * 0.25;"," color += u_midtoneWheel.z * weights.y * 0.25;"," color += u_highlightWheel.z * weights.z * 0.25;"," return color;","}","vec3 applyRgbCurves(vec3 color){"," if (u_rgbCurvesEnabled < 0.5) return color;"," vec3 master = vec3("," sampleAdvancedCurve(color.r, 0.0).a,"," sampleAdvancedCurve(color.g, 0.0).a,"," sampleAdvancedCurve(color.b, 0.0).a"," );"," return vec3("," sampleAdvancedCurve(master.r, 0.0).r,"," sampleAdvancedCurve(master.g, 0.0).g,"," sampleAdvancedCurve(master.b, 0.0).b"," );","}","float decodeSigned(float value){ return (value * 255.0 - 128.0) / 127.0; }","vec3 applyHueCurves(vec3 color){"," if (u_hueCurvesEnabled < 0.5) return color;"," vec3 hsv = rgbToHsv(clamp(color, 0.0, 1.0));"," vec3 curves = sampleAdvancedCurve(hsv.x, 1.0).rgb;"," float originalLuma = lumaOf(color);"," hsv.x = fract(hsv.x + decodeSigned(curves.r) * 0.5);"," hsv.y = clamp(hsv.y * max(0.0, 1.0 + decodeSigned(curves.g)), 0.0, 1.0);"," vec3 shifted = hsvToRgb(hsv);"," shifted += vec3(originalLuma - lumaOf(shifted) + decodeSigned(curves.b));"," return shifted;","}","float softRangeMask(float value, float minimum, float maximum, float softness){"," if (value < minimum) {"," if (softness <= 0.0) return 0.0;"," return smoothstep(minimum - softness, minimum, value);"," }"," if (value > maximum) {"," if (softness <= 0.0) return 0.0;"," return 1.0 - smoothstep(maximum, maximum + softness, value);"," }"," return 1.0;","}","float hueRangeMask(float hue, float saturation, vec3 key){"," float distance = abs(fract(hue - key.x + 0.5) - 0.5) * 360.0;"," float range = key.y * 180.0;"," float softness = key.z * 180.0;"," if (range < 179.999 && saturation < 0.001) return 0.0;"," if (distance <= range) return 1.0;"," if (softness <= 0.0) return 0.0;"," return 1.0 - smoothstep(range, range + softness, distance);","}","vec3 applySecondary(vec3 color, float index){"," float base = index * 5.0;"," vec4 hueKey = advancedConfig(base);"," vec4 saturationKey = advancedConfig(base + 1.0);"," vec4 lumaKey = advancedConfig(base + 2.0);"," vec4 correction = advancedConfig(base + 3.0);"," vec4 tintCorrection = advancedConfig(base + 4.0);"," vec3 hsv = rgbToHsv(clamp(color, 0.0, 1.0));"," float luma = lumaOf(color);"," float mask = hueRangeMask(hsv.x, hsv.y, hueKey.rgb);"," mask *= softRangeMask(hsv.y, saturationKey.x, saturationKey.y, saturationKey.z * 0.5);"," mask *= softRangeMask(luma, lumaKey.x, lumaKey.y, lumaKey.z * 0.5);"," if (mask <= 0.0) return color;"," hsv.x = fract(hsv.x + decodeSigned(correction.x) * 0.5);"," vec3 corrected = hsvToRgb(hsv);"," float correctedLuma = lumaOf(corrected);"," corrected = mix(vec3(correctedLuma), corrected, max(0.0, 1.0 + decodeSigned(correction.y)));"," corrected += vec3(decodeSigned(correction.z));"," float temperature = decodeSigned(correction.w);"," float tint = decodeSigned(tintCorrection.x);"," corrected.r += temperature * 0.08 + tint * 0.04;"," corrected.b -= temperature * 0.08 - tint * 0.04;"," corrected.g -= tint * 0.08;"," return mix(color, corrected, mask);","}","vec3 applyAdvancedGrade(vec3 color){"," color = applyTonalWheels(color);"," color = applyRgbCurves(color);"," color = applyHueCurves(color);"," if (u_secondaryCount > 0.5) color = applySecondary(color, 0.0);"," if (u_secondaryCount > 1.5) color = applySecondary(color, 1.0);"," if (u_secondaryCount > 2.5) color = applySecondary(color, 2.0);"," if (u_secondaryCount > 3.5) color = applySecondary(color, 3.0);"," return color;","}","vec3 sampleLut(float r, float g, float b){"," float size = max(u_lutSize, 2.0);"," float x = (r + b * size + 0.5) / max(u_lutTextureSize.x, 1.0);"," float y = (g + 0.5) / max(u_lutTextureSize.y, 1.0);"," return texture2D(u_lut, vec2(x, y)).rgb;","}","vec3 applyLut(vec3 color){"," if (u_lutEnabled < 0.5) return color;"," float size = max(u_lutSize, 2.0);"," vec3 span = max(u_lutDomainMax - u_lutDomainMin, vec3(0.00001));"," vec3 scaled = clamp((color - u_lutDomainMin) / span, 0.0, 1.0) * (size - 1.0);"," vec3 lo = floor(scaled);"," vec3 hi = min(lo + 1.0, vec3(size - 1.0));"," vec3 f = scaled - lo;"," vec3 c000 = sampleLut(lo.r, lo.g, lo.b);"," vec3 c100 = sampleLut(hi.r, lo.g, lo.b);"," vec3 c010 = sampleLut(lo.r, hi.g, lo.b);"," vec3 c110 = sampleLut(hi.r, hi.g, lo.b);"," vec3 c001 = sampleLut(lo.r, lo.g, hi.b);"," vec3 c101 = sampleLut(hi.r, lo.g, hi.b);"," vec3 c011 = sampleLut(lo.r, hi.g, hi.b);"," vec3 c111 = sampleLut(hi.r, hi.g, hi.b);"," vec3 c00 = mix(c000, c100, f.r);"," vec3 c10 = mix(c010, c110, f.r);"," vec3 c01 = mix(c001, c101, f.r);"," vec3 c11 = mix(c011, c111, f.r);"," vec3 c0 = mix(c00, c10, f.g);"," vec3 c1 = mix(c01, c11, f.g);"," vec3 lutColor = mix(c0, c1, f.b);"," return mix(color, lutColor, clamp(u_lutIntensity, 0.0, 1.0));","}","vec3 applyPrimaryGrade(vec3 color){"," color *= pow(2.0, u_exposure);"," float y = lumaOf(color);"," float shadowMask = 1.0 - smoothstep(0.0, 0.65, y);"," float highlightMask = smoothstep(0.35, 1.0, y);"," color += u_shadows * 0.35 * shadowMask;"," color += u_highlights * 0.35 * highlightMask;"," float blackPoint = clamp(u_blacks * 0.18, -0.18, 0.18);"," float whitePoint = clamp(1.0 - u_whites * 0.18, 0.82, 1.18);"," color = (color - blackPoint) / max(whitePoint - blackPoint, 0.2);"," color.r += u_temperature * 0.08 + u_tint * 0.04;"," color.b -= u_temperature * 0.08 - u_tint * 0.04;"," color.g -= u_tint * 0.08;"," color = (color - 0.5) * max(0.0, 1.0 + u_contrast) + 0.5;"," float satLuma = lumaOf(color);"," float currentSat = clamp(colorSaturation(color), 0.0, 1.0);"," float skinLike = smoothstep(0.02, 0.18, color.r - color.g) * smoothstep(0.0, 0.16, color.g - color.b) * smoothstep(0.18, 0.82, satLuma);"," float vibranceWeight = (1.0 - currentSat * 0.72) * mix(1.0, 0.55, skinLike);"," color = mix(vec3(satLuma), color, max(0.0, 1.0 + u_vibrance * vibranceWeight));"," color = mix(vec3(satLuma), color, max(0.0, 1.0 + u_saturation));"," return color;","}","vec3 applyColorGrade(vec3 color){"," color = applyPrimaryGrade(color);"," color = applyAdvancedGrade(color);"," return clamp(applyLut(clamp(color, 0.0, 1.0)), 0.0, 1.0);","}","vec3 applyDither(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float scale = max(min(u_resolution.x, u_resolution.y) / 540.0, 0.25);"," float pixelSize = mix(1.0, 5.0, clamp(u_ditherSize, 0.0, 1.0)) * scale;"," vec2 block = floor(gl_FragCoord.xy / max(pixelSize, 1.0));"," float levels = clamp(u_paletteSize, 2.0, 6.0);"," float index = floor(clamp(lumaOf(source) * (levels - 1.0) + bayer4(block), 0.0, levels - 1.0));"," return mix(source, paletteColor(index), amount);","}","vec2 asciiEdgeDirection(vec2 uv, vec2 stepUv){"," float topLeft = bt601Luma(sampleMedia(uv + vec2(-stepUv.x, -stepUv.y)).rgb);"," float top = bt601Luma(sampleMedia(uv + vec2(0.0, -stepUv.y)).rgb);"," float topRight = bt601Luma(sampleMedia(uv + vec2(stepUv.x, -stepUv.y)).rgb);"," float left = bt601Luma(sampleMedia(uv + vec2(-stepUv.x, 0.0)).rgb);"," float right = bt601Luma(sampleMedia(uv + vec2(stepUv.x, 0.0)).rgb);"," float bottomLeft = bt601Luma(sampleMedia(uv + vec2(-stepUv.x, stepUv.y)).rgb);"," float bottom = bt601Luma(sampleMedia(uv + vec2(0.0, stepUv.y)).rgb);"," float bottomRight = bt601Luma(sampleMedia(uv + stepUv).rgb);"," float x = -topLeft - 2.0 * left - bottomLeft + topRight + 2.0 * right + bottomRight;"," float y = -topLeft - 2.0 * top - topRight + bottomLeft + 2.0 * bottom + bottomRight;"," return vec2(x, y);","}","vec2 rotateAsciiUv(vec2 uv, float angle){"," float cosine = cos(angle);"," float sine = sin(angle);"," vec2 centered = uv - 0.5;"," return vec2(centered.x * cosine - centered.y * sine, centered.x * sine + centered.y * cosine) + 0.5;","}","vec3 applyAscii(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float scale = max(min(u_resolution.x, u_resolution.y) / 540.0, 0.25);"," float cellHeight = mix(4.0, 80.0, clamp(u_asciiSize, 0.0, 1.0)) * scale;"," vec2 cellSize = vec2(cellHeight);"," vec2 cell = floor(gl_FragCoord.xy / cellSize);"," vec2 cellVuv = (cell + 0.5) * cellSize / max(u_resolution, vec2(1.0));"," vec2 cellUv = (cellVuv - u_uvOffset) / u_uvScale;"," cellUv = applyCrtWarp(cellUv);"," vec3 cellColor = applyColorGrade(sampleMedia(cellUv).rgb);"," float brightness = bt601Luma(cellColor);"," float invert = step(0.5, u_asciiInvert);"," brightness = mix(brightness, 1.0 - brightness, invert);"," vec2 glyphUv = fract(gl_FragCoord.xy / cellSize);"," float rotation = clamp(u_asciiRotation, 0.0, 1.0);"," if (rotation > 0.0) {"," vec2 cellStepUv = cellSize / max(u_resolution * u_uvScale, vec2(1.0));"," vec2 edge = asciiEdgeDirection(cellUv, cellStepUv);"," if (length(edge) > 0.1) glyphUv = mix(glyphUv, rotateAsciiUv(glyphUv, atan(edge.y, edge.x)), rotation);"," }"," float ink = asciiStyleSample(floor(u_asciiStyle + 0.5), brightness, glyphUv);"," vec3 background = paletteColor(0.0);"," vec3 inkColor = mix(paletteColor(max(u_paletteSize - 1.0, 1.0)), cellColor, clamp(u_asciiColor, 0.0, 1.0));"," vec3 asciiColor = mix(background, inkColor, ink);"," return mix(source, asciiColor, amount);","}","vec3 applyScanlines(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float count = mix(50.0, 500.0, clamp(u_scanlineCount, 0.0, 1.0));"," float softness = clamp(u_scanlineSoftness, 0.0, 1.0);"," float wave = 0.5 + 0.5 * sin(v_uv.y * count * PI);"," float line = mix(1.0 - wave, pow(1.0 - wave, 2.2), softness);"," return source * (1.0 - line * amount);","}","void main(){"," vec2 uv = (v_uv - u_uvOffset) / u_uvScale;"," if (uv.x < 0.0 || uv.y < 0.0 || uv.x > 1.0 || uv.y > 1.0) {"," gl_FragColor = vec4(0.0);"," return;"," }"," vec4 originalSample = sampleSource(uv);"," uv = applyCrtWarp(uv);"," vec2 displayEdge = smoothstep(vec2(0.0), vec2(0.006), uv) * (1.0 - smoothstep(vec2(0.994), vec2(1.0), uv));"," float displayMask = displayEdge.x * displayEdge.y;"," vec4 sampleColor = sampleMedia(uv);"," sampleColor = sampleChromaticMedia(uv, sampleColor);"," sampleColor.rgb = applyDigitalGlitch(uv, sampleColor.rgb);"," vec3 original = originalSample.rgb;"," vec3 color = mix(sampleColor.rgb, applyColorGrade(sampleColor.rgb), u_intensity);"," float grainAmount = clamp(u_grain, 0.0, 1.0);"," if (grainAmount > 0.0) {"," float grainPixelSize = mix(1.0, 6.0, clamp(u_grainSize, 0.0, 1.0));"," vec2 grainCoord = floor(gl_FragCoord.xy / grainPixelSize) + vec2(u_grainSeed, u_grainSeed * 1.37);"," float grainBase = grainHash(grainCoord) - grainHash(grainCoord + vec2(19.19, 73.31));"," float grainFine = grainHash(gl_FragCoord.xy + vec2(u_grainSeed * 2.11, u_grainSeed * 0.71)) - 0.5;"," float grain = mix(grainBase * 0.7, grainBase + grainFine * 0.35, clamp(u_grainRoughness, 0.0, 1.0));"," float grainLuma = lumaOf(color);"," float grainMask = smoothstep(0.02, 0.55, grainLuma) * (1.0 - smoothstep(0.88, 1.0, grainLuma));"," color += grain * grainAmount * mix(0.025, 0.08, grainMask);"," }"," float filmArtifacts = clamp(u_filmArtifacts, 0.0, 1.0);"," if (filmArtifacts > 0.0) {"," float filmFrame = floor(u_grainSeed);"," float dust = dustMask(v_uv, floor(filmFrame / 3.0));"," float dustTone = grainHash(vec2(floor(filmFrame / 3.0), 8.0));"," color = mix(color, vec3(dustTone > 0.5 ? 0.95 : 0.02), dust * 0.72 * filmArtifacts);"," float scratchBucket = floor(filmFrame / 12.0);"," float scratchX = grainHash(vec2(scratchBucket, 4.2));"," float scratchLife = step(0.78, grainHash(vec2(scratchBucket, 8.4)));"," float scratch = (1.0 - smoothstep(0.0, 1.4 / max(u_resolution.x, 1.0), abs(v_uv.x - scratchX))) * scratchLife;"," color = mix(color, vec3(0.94, 0.88, 0.76), scratch * 0.28 * filmArtifacts);"," }"," color = applyMonoScreen(clamp(color, 0.0, 1.0), clamp(u_monoScreen, 0.0, 1.0));"," color = applyEngraving(clamp(color, 0.0, 1.0), clamp(u_engraving, 0.0, 1.0));"," color = applyCrosshatch(uv, clamp(color, 0.0, 1.0), clamp(u_crosshatch, 0.0, 1.0));"," color = applyHalftone(clamp(color, 0.0, 1.0), clamp(u_halftone, 0.0, 1.0));"," color = applyTwoInkPrint(clamp(color, 0.0, 1.0), clamp(u_twoInkPrint, 0.0, 1.0));"," color = applyDither(clamp(color, 0.0, 1.0), clamp(u_dither, 0.0, 1.0));"," color = applyAscii(clamp(color, 0.0, 1.0), clamp(u_ascii, 0.0, 1.0));"," if (u_bloomReady > 0.5 && u_bloom > 0.0) color += sampleBloom(uv) * u_bloom;"," color = applyScanlines(clamp(color, 0.0, 1.0), clamp(u_scanlines, 0.0, 1.0));"," vec2 vignetteAspect = u_resolution.x > u_resolution.y"," ? vec2(u_resolution.x / max(u_resolution.y, 1.0), 1.0)"," : vec2(1.0, u_resolution.y / max(u_resolution.x, 1.0));"," vec2 vignetteUv = abs((v_uv - vec2(0.5)) * 2.0) * vignetteAspect;"," float vignettePower = mix(8.0, 1.8, clamp(u_vignetteRoundness * 0.5 + 0.5, 0.0, 1.0));"," float vignetteDistance = pow(pow(vignetteUv.x, vignettePower) + pow(vignetteUv.y, vignettePower), 1.0 / vignettePower);"," float vignetteMidpoint = mix(0.22, 1.08, clamp(u_vignetteMidpoint, 0.0, 1.0));"," float vignetteFeather = mix(0.08, 0.72, clamp(u_vignetteFeather, 0.0, 1.0));"," float vignetteMask = smoothstep(vignetteMidpoint, vignetteMidpoint + vignetteFeather, vignetteDistance);"," color *= 1.0 - vignetteMask * clamp(u_vignette, 0.0, 1.0) * 0.75;"," float warpActive = step(0.0001, u_crtCurvature);"," color *= mix(1.0, displayMask, warpActive);"," vec3 graded = clamp(color, 0.0, 1.0);"," if (u_compareEnabled > 0.5) {"," float pos = clamp(u_comparePosition, 0.0, 1.0);"," float softness = max(u_compareSoftness, 0.00001);"," float afterMask = smoothstep(pos - softness, pos + softness, v_uv.x);"," vec3 splitColor = mix(original, graded, afterMask);"," float lineMask = 0.0;"," if (u_compareLineWidth > 0.0) {"," float lineWidth = max(u_compareLineWidth / max(u_resolution.x, 1.0), 0.00001);"," lineMask = 1.0 - smoothstep(lineWidth, lineWidth * 1.8, abs(v_uv.x - pos));"," }"," gl_FragColor = vec4(mix(splitColor, vec3(1.0), lineMask * 0.82), sampleColor.a);"," return;"," }"," gl_FragColor = vec4(graded, sampleColor.a);","}"].join(`\n`),wb=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_source;","uniform vec2 u_resolution;","uniform vec2 u_direction;","uniform float u_radius;","uniform float u_bloomPass;","uniform float u_threshold;","vec4 readSource(vec2 uv){"," vec4 color = texture2D(u_source, clamp(uv, vec2(0.0), vec2(1.0)));"," if (u_bloomPass > 0.5) {"," float luminance = dot(color.rgb, vec3(0.299, 0.587, 0.114));"," if (u_threshold >= 0.0 && luminance <= u_threshold) color.rgb = vec3(0.0);"," return vec4(color.rgb, 1.0);"," }"," color.rgb *= color.a;"," return color;","}","void main(){"," if (u_bloomPass > 0.5) {"," vec2 stepUv = u_direction * max(u_radius, 0.0) / max(u_resolution, vec2(1.0)) * 0.5;"," vec4 bloom = readSource(v_uv) * 0.227027;"," bloom += readSource(v_uv + stepUv) * 0.1945946;"," bloom += readSource(v_uv - stepUv) * 0.1945946;"," bloom += readSource(v_uv + stepUv * 2.0) * 0.1216216;"," bloom += readSource(v_uv - stepUv * 2.0) * 0.1216216;"," bloom += readSource(v_uv + stepUv * 3.0) * 0.054054;"," bloom += readSource(v_uv - stepUv * 3.0) * 0.054054;"," bloom += readSource(v_uv + stepUv * 4.0) * 0.016216;"," bloom += readSource(v_uv - stepUv * 4.0) * 0.016216;"," gl_FragColor = bloom;"," return;"," }"," vec2 stepUv = u_direction * max(u_radius, 0.0) / max(u_resolution, vec2(1.0)) / 12.0;"," vec4 color = readSource(v_uv) * 0.08077993;"," color += readSource(v_uv + stepUv * 1.0) * 0.07918038;"," color += readSource(v_uv - stepUv * 1.0) * 0.07918038;"," color += readSource(v_uv + stepUv * 2.0) * 0.07456928;"," color += readSource(v_uv - stepUv * 2.0) * 0.07456928;"," color += readSource(v_uv + stepUv * 3.0) * 0.06747307;"," color += readSource(v_uv - stepUv * 3.0) * 0.06747307;"," color += readSource(v_uv + stepUv * 4.0) * 0.05865827;"," color += readSource(v_uv - stepUv * 4.0) * 0.05865827;"," color += readSource(v_uv + stepUv * 5.0) * 0.04899551;"," color += readSource(v_uv - stepUv * 5.0) * 0.04899551;"," color += readSource(v_uv + stepUv * 6.0) * 0.03931982;"," color += readSource(v_uv - stepUv * 6.0) * 0.03931982;"," color += readSource(v_uv + stepUv * 7.0) * 0.03031761;"," color += readSource(v_uv - stepUv * 7.0) * 0.03031761;"," color += readSource(v_uv + stepUv * 8.0) * 0.02245983;"," color += readSource(v_uv - stepUv * 8.0) * 0.02245983;"," color += readSource(v_uv + stepUv * 9.0) * 0.01598624;"," color += readSource(v_uv - stepUv * 9.0) * 0.01598624;"," color += readSource(v_uv + stepUv * 10.0) * 0.01093238;"," color += readSource(v_uv - stepUv * 10.0) * 0.01093238;"," color += readSource(v_uv + stepUv * 11.0) * 0.00718308;"," color += readSource(v_uv - stepUv * 11.0) * 0.00718308;"," color += readSource(v_uv + stepUv * 12.0) * 0.00453456;"," color += readSource(v_uv - stepUv * 12.0) * 0.00453456;"," if (color.a > 0.0001) color.rgb /= color.a;"," gl_FragColor = color;","}"].join(`\n`),Cb=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_source;","uniform sampler2D u_blurSource;","uniform vec2 u_texel;","uniform vec2 u_uvScale;","uniform vec2 u_uvOffset;","uniform float u_blurReady;","uniform float u_blur;","uniform float u_kuwaharaRadius;","vec3 readPrepared(vec2 displayUv){"," vec2 uv = (displayUv - u_uvOffset) / u_uvScale;"," vec3 color = texture2D(u_source, clamp(uv, vec2(0.0), vec2(1.0))).rgb;"," if (u_blurReady > 0.5 && u_blur > 0.0) {"," vec3 blurred = texture2D(u_blurSource, clamp(uv, vec2(0.0), vec2(1.0))).rgb;"," color = mix(color, blurred, clamp(u_blur, 0.0, 1.0));"," }"," return color;","}","void main(){"," float radius = floor(mix(2.0, 16.0, clamp(u_kuwaharaRadius, 0.0, 1.0)) + 0.5);"," vec3 sum = vec3(0.0);"," float sumSquares = 0.0;"," float count = 0.0;"," for (int offset = 0; offset <= 16; offset++) {"," if (float(offset) > radius) continue;"," vec3 color = readPrepared(v_uv + vec2(float(offset), 0.0) * u_texel);"," sum += color;"," sumSquares += dot(color, color) / 3.0;"," count += 1.0;"," }"," gl_FragColor = vec4(sum / count, sumSquares / count);","}"].join(`\n`),_b=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_kuwaharaMoments;","uniform vec2 u_texel;","uniform float u_kuwaharaRadius;","uniform float u_kuwaharaSharpness;","uniform float u_kuwaharaSaturation;","void main(){"," float radius = floor(mix(2.0, 16.0, clamp(u_kuwaharaRadius, 0.0, 1.0)) + 0.5);"," vec2 origins[4];"," origins[0] = vec2(-radius, -radius);"," origins[1] = vec2(0.0, -radius);"," origins[2] = vec2(-radius, 0.0);"," origins[3] = vec2(0.0, 0.0);"," vec3 means[4];"," float variances[4];"," float minVariance = 1.0;"," for (int quadrant = 0; quadrant < 4; quadrant++) {"," vec4 moment = vec4(0.0);"," float count = 0.0;"," for (int offset = 0; offset <= 16; offset++) {"," if (float(offset) > radius) continue;"," vec2 sampleOffset = origins[quadrant] + vec2(0.0, float(offset));"," moment += texture2D(u_kuwaharaMoments, clamp(v_uv + sampleOffset * u_texel, vec2(0.0), vec2(1.0)));"," count += 1.0;"," }"," moment /= count;"," vec3 mean = moment.rgb;"," float meanSquare = moment.a * 3.0;"," float variance = max(meanSquare - dot(mean, mean), 0.0);"," means[quadrant] = mean;"," variances[quadrant] = variance;"," minVariance = min(minVariance, variance);"," }"," float exponent = 1.0 + clamp(u_kuwaharaSharpness, 0.0, 1.0) * 8.0;"," vec3 result = vec3(0.0);"," float totalWeight = 0.0;"," for (int quadrant = 0; quadrant < 4; quadrant++) {"," float weight = pow((minVariance + 0.0001) / (variances[quadrant] + 0.0001), exponent);"," result += means[quadrant] * weight;"," totalWeight += weight;"," }"," result /= max(totalWeight, 0.0001);"," float luma = dot(result, vec3(0.2126, 0.7152, 0.0722));"," float saturation = clamp(u_kuwaharaSaturation, 0.0, 1.0) * 2.0;"," gl_FragColor = vec4(clamp(mix(vec3(luma), result, saturation), 0.0, 1.0), 1.0);","}"].join(`\n`);function Lt(e){return e instanceof HTMLVideoElement||e instanceof HTMLImageElement}function Sd(e){let t=window.getComputedStyle(e);return t.display!=="none"&&t.visibility!=="hidden"}function Ad(e,t,n){let r=e.createShader(n);return r?(e.shaderSource(r,t),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)?r:(L("runtime.colorGrading.compileShader",e.getShaderInfoLog(r)),e.deleteShader(r),null)):null}function xi(e,t=Eb){let n=Ad(e,Ab,e.VERTEX_SHADER),r=Ad(e,t,e.FRAGMENT_SHADER);if(!n||!r)return n&&e.deleteShader(n),r&&e.deleteShader(r),null;let i=e.createProgram();return i?(e.attachShader(i,n),e.attachShader(i,r),e.linkProgram(i),e.deleteShader(n),e.deleteShader(r),e.getProgramParameter(i,e.LINK_STATUS)?i:(L("runtime.colorGrading.linkProgram",e.getProgramInfoLog(i)),e.deleteProgram(i),null)):null}function pi(e,t=e.LINEAR,n=e.UNSIGNED_BYTE){let r=e.createTexture();return r?(e.bindTexture(e.TEXTURE_2D,r),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,t),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,1,1,0,e.RGBA,n,null),r):null}function Tb(e,t){let n=xi(e,wb);return n?{program:n,quad:t,position:e.getAttribLocation(n,"a_pos"),source:e.getUniformLocation(n,"u_source"),resolution:e.getUniformLocation(n,"u_resolution"),direction:e.getUniformLocation(n,"u_direction"),radius:e.getUniformLocation(n,"u_radius"),bloomPass:e.getUniformLocation(n,"u_bloomPass"),threshold:e.getUniformLocation(n,"u_threshold")}:null}function Rb(e,t){let n=xi(e,Cb);return n?{program:n,quad:t,position:e.getAttribLocation(n,"a_pos"),source:e.getUniformLocation(n,"u_source"),blurSource:e.getUniformLocation(n,"u_blurSource"),texel:e.getUniformLocation(n,"u_texel"),uvScale:e.getUniformLocation(n,"u_uvScale"),uvOffset:e.getUniformLocation(n,"u_uvOffset"),blurReady:e.getUniformLocation(n,"u_blurReady"),blur:e.getUniformLocation(n,"u_blur"),radius:e.getUniformLocation(n,"u_kuwaharaRadius")}:null}function kb(e,t){let n=xi(e,_b);return n?{program:n,quad:t,position:e.getAttribLocation(n,"a_pos"),moments:e.getUniformLocation(n,"u_kuwaharaMoments"),texel:e.getUniformLocation(n,"u_texel"),radius:e.getUniformLocation(n,"u_kuwaharaRadius"),sharpness:e.getUniformLocation(n,"u_kuwaharaSharpness"),saturation:e.getUniformLocation(n,"u_kuwaharaSaturation")}:null}function ir(e,t=e.UNSIGNED_BYTE,n=e.LINEAR){let r=pi(e,n,t),i=e.createFramebuffer();if(!r||!i)return r&&e.deleteTexture(r),i&&e.deleteFramebuffer(i),null;e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0);let o=e.checkFramebufferStatus(e.FRAMEBUFFER);return e.bindFramebuffer(e.FRAMEBUFFER,null),o!==e.FRAMEBUFFER_COMPLETE?(e.deleteTexture(r),e.deleteFramebuffer(i),null):{texture:r,framebuffer:i,type:t,width:1,height:1}}function gi(e,t,n,r){t.width===n&&t.height===r||(t.width=n,t.height=r,e.bindTexture(e.TEXTURE_2D,t.texture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n,r,0,e.RGBA,t.type,null))}function Ia(e,t,n){let r=[];for(let i of n){let o=e.getUniformLocation(t,`u_${i}`);o!==null&&r.push([i,o])}return r}function Ed(e,t,n){t&&e.deleteProgram(t);for(let r of n)r&&e.deleteTexture(r)}function Ga(e){let t=e.getContext("webgl",{alpha:!0,premultipliedAlpha:!1});if(!t)return null;let n=xi(t),r=pi(t),i=pi(t,t.NEAREST),o=pi(t,t.NEAREST);if(!n||!r||!i||!o)return Ed(t,n,[r,i,o]),null;let a=t.createBuffer();return a?(t.bindBuffer(t.ARRAY_BUFFER,a),t.bufferData(t.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),t.STATIC_DRAW),{gl:t,program:{program:n,texture:r,lutTexture:i,advancedTexture:o,advancedSignature:null,quad:a,position:t.getAttribLocation(n,"a_pos"),source:t.getUniformLocation(n,"u_source"),blurSource:t.getUniformLocation(n,"u_blurSource"),bloomSource:t.getUniformLocation(n,"u_bloomSource"),kuwaharaSource:t.getUniformLocation(n,"u_kuwaharaSource"),lut:t.getUniformLocation(n,"u_lut"),advanced:t.getUniformLocation(n,"u_advanced"),resolution:t.getUniformLocation(n,"u_resolution"),uvScale:t.getUniformLocation(n,"u_uvScale"),uvOffset:t.getUniformLocation(n,"u_uvOffset"),blurReady:t.getUniformLocation(n,"u_blurReady"),bloomReady:t.getUniformLocation(n,"u_bloomReady"),kuwaharaReady:t.getUniformLocation(n,"u_kuwaharaReady"),lutEnabled:t.getUniformLocation(n,"u_lutEnabled"),lutSize:t.getUniformLocation(n,"u_lutSize"),lutTextureSize:t.getUniformLocation(n,"u_lutTextureSize"),lutDomainMin:t.getUniformLocation(n,"u_lutDomainMin"),lutDomainMax:t.getUniformLocation(n,"u_lutDomainMax"),lutIntensity:t.getUniformLocation(n,"u_lutIntensity"),shadowWheel:t.getUniformLocation(n,"u_shadowWheel"),midtoneWheel:t.getUniformLocation(n,"u_midtoneWheel"),highlightWheel:t.getUniformLocation(n,"u_highlightWheel"),rgbCurvesEnabled:t.getUniformLocation(n,"u_rgbCurvesEnabled"),hueCurvesEnabled:t.getUniformLocation(n,"u_hueCurvesEnabled"),secondaryCount:t.getUniformLocation(n,"u_secondaryCount"),adjustUniforms:Ia(t,n,zr),detailUniforms:Ia(t,n,No),effectUniforms:Ia(t,n,Lo),grainSeed:t.getUniformLocation(n,"u_grainSeed"),effectTime:t.getUniformLocation(n,"u_effectTime"),paletteSize:t.getUniformLocation(n,"u_paletteSize"),palette0:t.getUniformLocation(n,"u_palette0"),palette1:t.getUniformLocation(n,"u_palette1"),palette2:t.getUniformLocation(n,"u_palette2"),palette3:t.getUniformLocation(n,"u_palette3"),palette4:t.getUniformLocation(n,"u_palette4"),palette5:t.getUniformLocation(n,"u_palette5"),intensity:t.getUniformLocation(n,"u_intensity"),compareEnabled:t.getUniformLocation(n,"u_compareEnabled"),comparePosition:t.getUniformLocation(n,"u_comparePosition"),compareSoftness:t.getUniformLocation(n,"u_compareSoftness"),compareLineWidth:t.getUniformLocation(n,"u_compareLineWidth")}}):(Ed(t,n,[r,i,o]),null)}function Mb(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Fb(e){if(!Mb(e))return{...rn};let t=(n,r,i,o)=>{let a=typeof n=="number"?n:Number(n);return Math.min(o,Math.max(i,Number.isFinite(a)?a:r))};return{enabled:e.enabled===!0,position:t(e.position,rn.position,0,1),softness:t(e.softness,rn.softness,0,.25),lineWidth:t(e.lineWidth,rn.lineWidth,0,12)}}function Fd(e){try{let t=new URL(e,document.baseURI);return t.protocol==="data:"?{href:t.href}:t.protocol!=="http:"&&t.protocol!=="https:"?{error:"LUT must be project-local or a data URL"}:t.origin!==window.location.origin?{error:"Remote LUT URLs are not supported"}:{href:t.href}}catch{return{error:"Invalid LUT URL"}}}function yi(e){return e instanceof Error?e.message:"LUT failed to load"}function Nb(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0)%1e4}function Nd(e){let t=e.id||e.currentSrc||e.getAttribute("src")||`${e.tagName}:${Array.prototype.indexOf.call(e.parentNode?.children??[],e)}`;return Nb(t)}function Ba(e){let t=Fd(e);if("error"in t)return{state:"error",message:t.error};let n=it.get(t.href);if(n)return n;let r=fetch(t.href,{credentials:"same-origin"}).then(o=>{if(!o.ok)throw new Error(`Failed to load LUT (${o.status})`);return o.text()}).then(o=>Ul(o,{maxSize:Br})),i={state:"pending",promise:r};for(;it.size>=hb;){let o=it.keys().next().value;if(!o)break;it.delete(o)}return it.set(t.href,i),r.then(o=>{it.get(t.href)===i&&it.set(t.href,{state:"ready",lut:o})},o=>{it.get(t.href)===i&&it.set(t.href,{state:"error",message:yi(o)})}),i}function wd(e,t,n){if(e.lut?.src===t)return e.lut;let r=Eo(n),{gl:i,program:o}=e;try{return Ld(i,o.lutTexture,r),e.lut={src:t,size:n.size,domainMin:n.domainMin,domainMax:n.domainMax,textureWidth:r.width,textureHeight:r.height},e.lutError=null,e.lutLoadingSrc=null,e.lut}catch(a){return e.lut=null,e.lutError=yi(a),e.lutLoadingSrc=null,L("runtime.colorGrading.uploadLut",a),null}}async function Lb(e){let t=Ba(e);if(t.state==="ready")return t.lut;if(t.state==="pending")return t.promise;throw new Error(t.message)}function Ld(e,t,n){e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,t),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)}function Db(e,t,n){let r=Eo(n),{gl:i,program:o}=e;return Ld(i,o.lutTexture,r),{src:t,size:n.size,domainMin:n.domainMin,domainMax:n.domainMax,textureWidth:r.width,textureHeight:r.height}}function Je(e,t){e.deleteTexture(t.texture),e.deleteFramebuffer(t.framebuffer)}function Ua(e){let t=e.effectTargets;t&&(e.gl.deleteProgram(t.blurProgram.program),Je(e.gl,t.scratch),Je(e.gl,t.blur),t.bloom&&Je(e.gl,t.bloom),e.effectTargets=null)}function Wa(e){let t=e.kuwaharaTargets;t&&(e.gl.deleteProgram(t.horizontalProgram.program),e.gl.deleteProgram(t.resolveProgram.program),Je(e.gl,t.moments),Je(e.gl,t.output),e.kuwaharaTargets=null)}function hi(e,t=!1){Ua(e),Wa(e),Ib(e.gl,e.program),t&&e.gl.getExtension("WEBGL_lose_context")?.loseContext()}function Ib(e,t){e.deleteTexture(t.texture),e.deleteTexture(t.lutTexture),e.deleteTexture(t.advancedTexture),e.deleteBuffer(t.quad),e.deleteProgram(t.program)}function Pb(e){let t=Ga(e.canvas);return t?(hi(e),e.gl=t.gl,e.program=t.program,e.lut=null,e.lutLoadingSrc=null,e.lutError=null,e.effectError=null,!0):!1}function Ha(e){if(!e.sourceHidden)return;e.element.removeAttribute(Nn);let t=e.element.style.getPropertyValue("opacity"),n=e.element.style.getPropertyPriority("opacity");t==="0"&&n==="important"&&(e.sourceInlineOpacity===null?e.element.style.removeProperty("opacity"):e.element.style.setProperty("opacity",e.sourceInlineOpacity,e.sourceInlineOpacityPriority)),e.sourceHidden=!1}function Ob(e){if(e.effectTargets)return e.effectTargets;let{gl:t}=e,n=Tb(t,e.program.quad),r=ir(t),i=ir(t);return!n||!r||!i?(n&&t.deleteProgram(n.program),r&&Je(t,r),i&&Je(t,i),e.effectError="Framebuffer effects unavailable",null):(e.effectError=null,e.effectTargets={blurProgram:n,scratch:r,blur:i,bloom:null},e.effectTargets)}function Hb(e,t){return t.bloom||(t.bloom=ir(e.gl),e.effectError=t.bloom?null:"Framebuffer effects unavailable"),t.bloom}function Cd(e){let t=e.effectTargets;t?.bloom&&(Je(e.gl,t.bloom),t.bloom=null)}function Gb(e){if(e.kuwaharaTargets)return e.kuwaharaTargets;let{gl:t}=e,n=t.getExtension("OES_texture_half_float"),r=t.getExtension("EXT_color_buffer_half_float");if(!n||!r)return e.effectError="Kuwahara requires half-float framebuffer support",null;let i=Rb(t,e.program.quad),o=kb(t,e.program.quad),a=ir(t,n.HALF_FLOAT_OES,t.NEAREST),l=ir(t);return!i||!o||!a||!l?(Bb(t,i,o,a,l),e.effectError="Kuwahara framebuffer effects unavailable",null):(e.kuwaharaTargets={horizontalProgram:i,resolveProgram:o,moments:a,output:l},e.kuwaharaTargets)}function Bb(e,t,n,r,i){t&&e.deleteProgram(t.program),n&&e.deleteProgram(n.program),r&&Je(e,r),i&&Je(e,i)}function Dd(e,t,n,r,i){let o=Math.max(1,Math.ceil(r)),a=Math.max(1,Math.ceil(i));return gi(e,t,o,a),gi(e,n,o,a),{width:o,height:a}}function bi(e,t,n,r,i,o,a,l=!1,s=-1){e.bindFramebuffer(e.FRAMEBUFFER,r.framebuffer),e.viewport(0,0,i.width,i.height),e.useProgram(t.program),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,n),e.uniform1i(t.source,0),e.uniform2f(t.resolution,i.width,i.height),e.uniform2f(t.direction,o.x,o.y),e.uniform1f(t.radius,a),e.uniform1f(t.bloomPass,l?1:0),e.uniform1f(t.threshold,s),or(e,t)}function Ub(e,t,n,r,i,o,a){let l=Dd(e,t.scratch,r,i/2,o/2),s=a/2;bi(e,t.blurProgram,n,t.scratch,l,{x:1,y:0},s,!0,.5),bi(e,t.blurProgram,t.scratch.texture,r,l,{x:0,y:1},s,!0)}function Wb(e,t,n,r,i,o,a){let l=n;for(let s=0;s<Math.max(1,Math.floor(a));s++)bi(e,t.blurProgram,l,t.scratch,i,{x:1,y:0},o),bi(e,t.blurProgram,t.scratch.texture,r,i,{x:0,y:1},o),l=r.texture}function or(e,t){e.bindBuffer(e.ARRAY_BUFFER,t.quad),e.enableVertexAttribArray(t.position),e.vertexAttribPointer(t.position,2,e.FLOAT,!1,0,0),e.drawArrays(e.TRIANGLE_STRIP,0,4)}function Vb(e,t,n,r,i,o,a,l){gi(e,t.moments,i.width,i.height),gi(e,t.output,i.width,i.height);let s=t.horizontalProgram;e.bindFramebuffer(e.FRAMEBUFFER,t.moments.framebuffer),e.viewport(0,0,i.width,i.height),e.useProgram(s.program),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,n),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,r),e.uniform1i(s.source,0),e.uniform1i(s.blurSource,1),e.uniform2f(s.texel,1/i.width,1/i.height),e.uniform2f(s.uvScale,o.scaleX,o.scaleY),e.uniform2f(s.uvOffset,o.offsetX,o.offsetY),e.uniform1f(s.blurReady,a?1:0),e.uniform1f(s.blur,l.blur),e.uniform1f(s.radius,l.kuwaharaRadius),or(e,s);let u=t.resolveProgram;e.bindFramebuffer(e.FRAMEBUFFER,t.output.framebuffer),e.useProgram(u.program),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,t.moments.texture),e.uniform1i(u.moments,0),e.uniform2f(u.texel,1/i.width,1/i.height),e.uniform1f(u.radius,l.kuwaharaRadius),e.uniform1f(u.sharpness,l.kuwaharaSharpness),e.uniform1f(u.saturation,l.kuwaharaSaturation),or(e,u)}function zb(e,t,n,r){if(n<=0)return!1;let i=Dd(e.gl,t.scratch,t.blur,r.width,r.height);return Wb(e.gl,t,e.program.texture,t.blur,i,.75+Math.pow(n,1.35)*32,n>.55?3:2),!0}function qb(e,t,n,r,i,o){if(n<=0)return Cd(e),null;o||Cd(e);let a=o?Hb(e,t):t.blur;return a?(Ub(e.gl,t,e.program.texture,a,i.width,i.height,r),a.texture):null}function $b(e,t,n,r){let{program:i}=e,o=t.effects.blur,a=t.effects.bloom;if(o<=0&&a<=0)return e.effectTargets&&r&&Ua(e),{blurReady:!1,bloomReady:!1,blurTexture:i.texture,bloomTexture:i.texture};let l=Ob(e);if(!l)return{blurReady:!1,bloomReady:!1,blurTexture:i.texture,bloomTexture:i.texture};let s=zb(e,l,o,n),u=qb(e,l,a,t.effects.bloomRadius,n,s);return{blurReady:s,bloomReady:u!==null,blurTexture:l.blur.texture,bloomTexture:u??i.texture}}function jb(e,t,n,r,i,o,a){let l=t.effects.kuwahara;if(l<=0&&!o)return e.kuwaharaTargets&&a&&Wa(e),{kuwaharaReady:!1,kuwaharaTexture:e.program.texture};let s=Gb(e);return!s||l<=0?{kuwaharaReady:!1,kuwaharaTexture:s?.output.texture??e.program.texture}:(Vb(e.gl,s,e.program.texture,e.effectTargets?.blur.texture??e.program.texture,n,r,i,t.effects),{kuwaharaReady:!0,kuwaharaTexture:s.output.texture})}function Id(e,t,n,r,i={}){let o=i.releaseIdleTargets??!0;e.effectError=null;let a=$b(e,t,n,o),l=jb(e,t,n,r,a.blurReady,i.preserveKuwahara??!1,o);return{...a,...l}}function Kb(e){let t=e.grading.lut?.src.trim()??"",n=e.grading.lut?.intensity??1;if(!t||n<=0)return e.lut=null,e.lutLoadingSrc=null,e.lutError=null,null;let r=Fd(t);if("error"in r)return e.lut=null,e.lutLoadingSrc=null,e.lutError=r.error,null;if(e.lut?.src===r.href)return e.lut;e.lut=null;let i=Ba(t);return i.state==="ready"?wd(e,r.href,i.lut):i.state==="error"?(e.lutError=i.message,e.lutLoadingSrc=null,null):(e.lutLoadingSrc!==r.href&&(e.lutLoadingSrc=r.href,e.lutError=null,i.promise.then(o=>{e.destroyed||e.grading.lut?.src.trim()!==t||(wd(e,r.href,o),De(e))},o=>{e.destroyed||e.grading.lut?.src.trim()!==t||(e.lut=null,e.lutError=yi(o),e.lutLoadingSrc=null,De(e))})),null)}function nr(e){if(!e)return null;if(typeof e=="string"){let t=e.trim();if(!t)return null;let n=document.getElementById(t.replace(/^#/,""));if(n&&Lt(n))return n;try{let r=document.querySelector(t);return r&&Lt(r)?r:null}catch{return null}}if(e.hfId){let t=document.querySelector(`[data-hf-id="${CSS.escape(e.hfId)}"]`);if(t&&Lt(t))return t}if(e.id){let t=document.getElementById(e.id);if(t&&Lt(t))return t}if(!e.selector)return null;try{let t=Array.from(document.querySelectorAll(e.selector)),n=Math.max(0,Math.floor(Number(e.selectorIndex??0)||0)),r=t[n]??null;return r&&Lt(r)?r:null}catch{return null}}function Pd(e){return e instanceof HTMLVideoElement?e.videoWidth>0&&e.videoHeight>0?{width:e.videoWidth,height:e.videoHeight}:null:e instanceof HTMLImageElement&&e.naturalWidth>0&&e.naturalHeight>0?{width:e.naturalWidth,height:e.naturalHeight}:null}function Od(e){return e instanceof HTMLVideoElement?e.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&e.videoWidth>0&&e.videoHeight>0:e instanceof HTMLImageElement?e.complete&&e.naturalWidth>0&&e.naturalHeight>0:!1}function Hd(e){let t=ut(e);return t&&Od(t)?t:null}function _d(e){if(!(e instanceof HTMLVideoElement))return!1;let t=Hd(e);if(!t)return!1;let n=window.getComputedStyle(t);return n.display!=="none"&&n.visibility!=="hidden"}function Yb(e){return e instanceof HTMLImageElement&&e.classList.contains("__render_frame__")}function Xb(e,t){t.parentNode&&t.nextSibling!==e.canvas&&t.parentNode.insertBefore(e.canvas,t.nextSibling)}function Gd(e){if(e instanceof HTMLVideoElement){let t=Hd(e);if(t)return t}return Od(e)?e:null}function Td(e,t){let n=e.toLowerCase();if(n==="center")return .5;if(t==="x"){if(n==="left")return 0;if(n==="right")return 1}else{if(n==="top")return 0;if(n==="bottom")return 1}if(n.endsWith("%")){let r=Number.parseFloat(n);return Number.isFinite(r)?r/100:null}return null}function Jb(e){let t=e.trim().split(/\\s+/).filter(Boolean),n=.5,r=.5;for(let i=0;i<t.length;i++){let o=t[i]??"",a=Td(o,"x"),l=Td(o,"y");if(a!==null&&(o==="left"||o==="right"||o.endsWith("%")&&i===0)){n=a;continue}if(l!==null&&(o==="top"||o==="bottom"||o.endsWith("%")&&i>0)){r=l;continue}}return{x:n,y:r}}function Bd(e,t,n,r,i,o){if(e<=0||t<=0||n<=0||r<=0)return{scaleX:1,scaleY:1,offsetX:0,offsetY:0};let a=i||"fill",l=e,s=t;if(a==="contain"||a==="cover"||a==="scale-down"){let f=a==="cover"?Math.max(e/n,t/r):Math.min(e/n,t/r);l=n*f,s=r*f,a==="scale-down"&&l>n&&s>r&&(l=n,s=r)}else a==="none"&&(l=n,s=r);let u=Jb(o||"center"),c=(e-l)*u.x/e,m=(t-s)*u.y/t;return{scaleX:l/e,scaleY:s/t,offsetX:c,offsetY:m}}function Qb(e,t){window.getComputedStyle(t).position==="static"&&(e.touchedParent||(e.touchedParent=t,e.parentInlinePosition=t.style.position||null),t.style.position="relative")}function Rd(e,t){return Math.max(0,Math.round(e>0?e:t))}function Zb(e,t){let{element:n,canvas:r}=e,i=n.parentElement;i&&Qb(e,i);let o=window.getComputedStyle(t);mu(r.style,o),r.style.pointerEvents="none",r.style.position="absolute",r.style.inset="auto",r.style.left=`${n.offsetLeft}px`,r.style.top=`${n.offsetTop}px`,r.style.right="auto",r.style.bottom="auto",r.style.width=`${n.offsetWidth}px`,r.style.height=`${n.offsetHeight}px`,r.style.display="block",r.style.opacity=e.sourceOpacityForCanvas,r.style.visibility=e.sourceVisibleForCanvas?"visible":"hidden";let a=n.getBoundingClientRect(),l=Rd(n.offsetWidth,a.width),s=Rd(n.offsetHeight,a.height);if(l<=0||s<=0)return r.style.display="none",null;let u=Math.max(1,window.devicePixelRatio||1),c=Math.round(l*u),m=Math.round(s*u);return r.width!==c&&(r.width=c),r.height!==m&&(r.height=m),{width:c,height:m}}function nn(e,t,n){e.uniform3f(t,Number.parseInt(n.slice(1,3),16)/255,Number.parseInt(n.slice(3,5),16)/255,Number.parseInt(n.slice(5,7),16)/255)}function Dt(e,t,n,r){e.set(r,(t*Ke+n)*4)}function yt(e,t){return Math.min(1,Math.max(1/255,(e*(127/t)+128)/255))}function Pa(e,t,n){return e.length>=3?Co(e,t,n):new Float32Array(Ke)}function Nt(e,t){return e[t]??0}function ex(e,t,n){let r=zt(t.red),i=zt(t.green),o=zt(t.blue),a=zt(t.master),l=Pa(n.hueVsHue,-180,180),s=Pa(n.hueVsSaturation,-1,1),u=Pa(n.hueVsLuma,-1,1);for(let c=0;c<Ke;c+=1)Dt(e,0,c,[Nt(r,c),Nt(i,c),Nt(o,c),Nt(a,c)]),Dt(e,1,c,[yt(Nt(l,c),180),yt(Nt(s,c),1),yt(Nt(u,c),1),1])}function tx(e,t,n){let r=n*yb;Dt(e,2,r,[t.key.hue.center/360,t.key.hue.range/180,t.key.hue.softness/180,1]),Dt(e,2,r+1,[t.key.saturation.min,t.key.saturation.max,t.key.saturation.softness/.5,0]),Dt(e,2,r+2,[t.key.luma.min,t.key.luma.max,t.key.luma.softness/.5,0]),Dt(e,2,r+3,[yt(t.correction.hueShift,180),yt(t.correction.saturation,1),yt(t.correction.luma,1),yt(t.correction.temperature,1)]),Dt(e,2,r+4,[yt(t.correction.tint,1),.5,.5,1])}function nx(e,t,n){let r=new Float32Array(Ke*sr*4);ex(r,e,t);let i=0;for(let o of n)o.enabled&&(tx(r,o,i),i+=1);return r}var kd=new WeakMap;function rx(e,t,n){let r=kd.get(e);if(r?.hueCurves===t&&r.secondaries===n)return r.signature;let i=JSON.stringify([e,t,n]);return kd.set(e,{hueCurves:t,secondaries:n,signature:i}),i}function ix(e,t,n,r){let{curves:i,hueCurves:o}=n,a=rx(i,o,r);if(t.advancedSignature===a)return;let l=Uint8Array.from(nx(i,o,r),kn);e.activeTexture(e.TEXTURE5),e.bindTexture(e.TEXTURE_2D,t.advancedTexture),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,Ke,sr,0,e.RGBA,e.UNSIGNED_BYTE,l),t.advancedSignature=a}function Oa(e,t,n){e.uniform3f(t,n.hue/360,n.amount,n.level)}function Ud(e,t,n,r,i,o,a,l,s,u,c,m){e.uniform1i(t.source,0),e.uniform1i(t.blurSource,1),e.uniform1i(t.lut,2),e.uniform1i(t.kuwaharaSource,3),e.uniform1i(t.bloomSource,4),e.uniform1i(t.advanced,5),e.uniform2f(t.resolution,s.width,s.height),e.uniform2f(t.uvScale,u.scaleX,u.scaleY),e.uniform2f(t.uvOffset,u.offsetX,u.offsetY),e.uniform1f(t.blurReady,i?1:0),e.uniform1f(t.bloomReady,o?1:0),e.uniform1f(t.kuwaharaReady,a?1:0),e.uniform1f(t.lutEnabled,r?1:0),e.uniform1f(t.lutSize,r?.size??2),e.uniform2f(t.lutTextureSize,r?.textureWidth??1,r?.textureHeight??1),e.uniform3f(t.lutDomainMin,r?.domainMin[0]??0,r?.domainMin[1]??0,r?.domainMin[2]??0),e.uniform3f(t.lutDomainMax,r?.domainMax[0]??1,r?.domainMax[1]??1,r?.domainMax[2]??1),e.uniform1f(t.lutIntensity,n.lut?.intensity??0);let{curves:f,hueCurves:p,secondaries:b}=n,v=Po(f),x=Oo(p),_=Ho(b)?b.reduce((M,F)=>M+Number(F.enabled),0):0;(v||x||_>0)&&ix(e,t,n,b),Oa(e,t.shadowWheel,n.wheels.shadows),Oa(e,t.midtoneWheel,n.wheels.midtones),Oa(e,t.highlightWheel,n.wheels.highlights),e.uniform1f(t.rgbCurvesEnabled,v?1:0),e.uniform1f(t.hueCurvesEnabled,x?1:0),e.uniform1f(t.secondaryCount,_);for(let[M,F]of t.adjustUniforms)e.uniform1f(F,n.adjust[M]);for(let[M,F]of t.detailUniforms)e.uniform1f(F,n.details[M]);e.uniform1f(t.grainSeed,c),e.uniform1f(t.effectTime,m);for(let[M,F]of t.effectUniforms)e.uniform1f(F,n.effects[M]);let R=n.palette??(n.effects.engraving>0||n.effects.crosshatch>0?bb:La),T=R[R.length-1]??La[1];e.uniform1f(t.paletteSize,R.length),nn(e,t.palette0,R[0]??La[0]),nn(e,t.palette1,R[1]??T),nn(e,t.palette2,R[2]??T),nn(e,t.palette3,R[3]??T),nn(e,t.palette4,R[4]??T),nn(e,t.palette5,R[5]??T),e.uniform1f(t.intensity,n.intensity),e.uniform1f(t.compareEnabled,l.enabled?1:0),e.uniform1f(t.comparePosition,l.position),e.uniform1f(t.compareSoftness,l.softness),e.uniform1f(t.compareLineWidth,l.lineWidth)}function ox(e){if(!e.sourceHidden){let t=e.element.getAttribute(Vr);t!==null?(e.sourceInlineOpacity=t===""?null:t,e.sourceInlineOpacityPriority=""):(e.sourceInlineOpacity=e.element.style.getPropertyValue("opacity")||null,e.sourceInlineOpacityPriority=e.element.style.getPropertyPriority("opacity"))}e.element.setAttribute(Nn,"true"),e.element.style.setProperty("opacity","0","important"),e.sourceHidden=!0}function ot(e){let t=su.find(n=>n.path===e);if(!t)throw new Error(`Missing color-grading animation property: ${e}`);return t}var Wd=ot("intensity"),Vd=ot("lut.intensity"),zd=ot("adjust.exposure"),qd=ot("effects.kuwahara"),$d=[["blur",ot("effects.blur")],["bloom",ot("effects.bloom")],["kuwahara",qd],["pixelate",ot("effects.pixelate")],["ascii",ot("effects.ascii")],["dither",ot("effects.dither")]],jd=[Wd,Vd,zd,...$d.map(([,e])=>e)];function It(e,t){let n=e.style.getPropertyValue(t.name);if(!n)return null;let r=Number(n);return Number.isFinite(r)?Math.min(t.max,Math.max(t.min,r)):null}function rr(e,t){return t!==null&&(du(t)||jd.some(n=>It(e,n)!==null))}function ax(e,t){let n=null;for(let[r,i]of $d){let o=It(e,i);o!==null&&(n??(n={...t.effects}),n[r]=o)}return n}function sx(e){let{element:t,grading:n}=e,r=It(t,Wd),i=It(t,Vd),o=It(t,zd),a=ax(t,n);if(![r,i,o].some(u=>u!==null)&&a===null)return n;let s={...n,adjust:o===null?n.adjust:{...n.adjust,exposure:o},effects:a??n.effects};return r!==null&&(s.intensity=r),n.lut&&i!==null&&(s.lut={...n.lut,intensity:i}),s}function Kd(e,t,n){e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,t),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)}function Yd(e,t,n){let r=[t.texture,n.blurTexture,t.lutTexture,n.kuwaharaTexture,n.bloomTexture,t.advancedTexture];for(let[i,o]of r.entries())e.activeTexture(e.TEXTURE0+i),e.bindTexture(e.TEXTURE_2D,o)}function De(e){if(e.destroyed||e.contextLost)return!1;let t=Gd(e.element);if(!t)return e.hasDrawn||(e.canvas.style.display="none"),!1;let n=Pd(t);if(!n)return!1;let r=t instanceof HTMLElement?t:e.element,i=e.element.style.getPropertyValue("opacity"),o=e.element.style.getPropertyPriority("opacity"),a=e.sourceHidden&&i==="0"&&o==="important",l=e.element.style.getPropertyValue("visibility"),s=Yb(t);s&&Xb(e,t),a&&!s&&(e.sourceInlineOpacity!==null?e.element.style.setProperty("opacity",e.sourceInlineOpacity,e.sourceInlineOpacityPriority||""):e.element.style.removeProperty("opacity"));let u=window.getComputedStyle(s?t:e.element);e.sourceOpacityForCanvas=u.opacity||"1",a&&!s&&e.element.style.setProperty("opacity","0","important"),e.sourceVisibleForCanvas=(s||l!=="hidden")&&u.visibility!=="hidden";let c=Zb(e,r);if(!c)return!1;let m=window.getComputedStyle(r),f=Bd(c.width,c.height,n.width,n.height,m.objectFit,m.objectPosition),{gl:p,program:b}=e;try{let v=sx(e),x=Kb(e);Kd(p,b.texture,t);let _=It(e.element,qd)!==null,R=Id(e,v,c,f,{preserveKuwahara:_});p.bindFramebuffer(p.FRAMEBUFFER,null),p.viewport(0,0,c.width,c.height),p.useProgram(b.program),Yd(p,b,R);let T=window.__player?.getTime?.(),M=typeof T=="number"&&Number.isFinite(T)?Math.max(0,T):e.element instanceof HTMLVideoElement?Math.max(0,e.element.currentTime):0,F=e.grainSeed+Math.floor(M*60);return Ud(p,b,v,x,R.blurReady,R.bloomReady,R.kuwaharaReady,e.compare,c,f,F,M),or(p,b),ox(e),e.hasDrawn=!0,e.drawError=null,!0}catch(v){return e.drawError=v instanceof Error?v.message:"Shader draw failed",L("runtime.colorGrading.drawEntry",v),!1}}function lx(e,t,n){let r=e.getBoundingClientRect(),i=e.offsetWidth||r.width||t.width,o=e.offsetHeight||r.height||t.height,a=Math.min(320,Math.max(64,Math.round(n??160))),l=i>0&&o>0?i/o:t.width/t.height;return l>=1?{width:a,height:Math.max(1,Math.round(a/l))}:{width:Math.max(1,Math.round(a*l)),height:a}}function ux(){let e=document.createElement("canvas"),t=Ga(e);return t?{canvas:e,...t,lut:null,effectTargets:null,kuwaharaTargets:null,effectError:null}:null}function cx(e,t){let n=t?void 0:window.__player?.getTime?.();return typeof n=="number"&&Number.isFinite(n)?Math.max(0,n):e instanceof HTMLVideoElement?Math.max(0,e.currentTime):0}function dx(e,t,n,r){let i=Gd(t);if(!i)return null;let o=Pd(i);if(!o)return null;let a=lx(t,o,n);e.canvas.width=a.width,e.canvas.height=a.height;let l=i instanceof HTMLElement?i:t,s=window.getComputedStyle(l),u=Bd(a.width,a.height,o.width,o.height,s.objectFit,s.objectPosition);return Kd(e.gl,e.program.texture,i),{dimensions:a,uv:u,effectTime:cx(t,r),grainSeed:Nd(t)+(t instanceof HTMLVideoElement?Math.floor(t.currentTime*60):0)}}async function fx(e,t,n,r,i=!1){let o=dx(e,t,r,i);if(!o)return null;let{dimensions:a,uv:l,grainSeed:s,effectTime:u}=o,c=[];for(let m of n.slice(0,32)){let f=qr(m.grading);if(!f){c.push({id:m.id,dataUrl:null,error:"Invalid grading"});continue}let p=null;try{f.lut&&(e.lut?.src!==f.lut.src&&(e.lut=Db(e,f.lut.src,await Lb(f.lut.src))),p=e.lut),c.push({id:m.id,dataUrl:mx(e,f,p,a,l,s,u)})}catch(b){c.push({id:m.id,dataUrl:null,error:yi(b)})}}return{...a,images:c}}function mx(e,t,n,r,i,o,a){let{canvas:l,gl:s,program:u}=e,c=Id(e,t,r,i,{releaseIdleTargets:!1});return s.bindFramebuffer(s.FRAMEBUFFER,null),s.viewport(0,0,r.width,r.height),s.useProgram(u.program),Yd(s,u,c),n||(e.lut=null),Ud(s,u,t,n,c.blurReady,c.bloomReady,c.kuwaharaReady,rn,r,i,o,a),or(s,u),l.toDataURL("image/png")}function Xe(e,t,n,r){t.addEventListener(n,r),e.cleanup.push(()=>t.removeEventListener(n,r))}function px(e){e.animationFrame!==null&&(window.cancelAnimationFrame(e.animationFrame),e.animationFrame=null),e.videoFrameHandle!==null&&e.element instanceof HTMLVideoElement&&(e.element.cancelVideoFrameCallback?.(e.videoFrameHandle),e.videoFrameHandle=null)}function ar(e){if(e.destroyed||!(e.element instanceof HTMLVideoElement)||e.videoFrameHandle!==null||e.animationFrame!==null)return;let t=e.element,n=t;if(typeof n.requestVideoFrameCallback=="function"){e.videoFrameHandle=n.requestVideoFrameCallback(()=>{e.videoFrameHandle=null,De(e),!e.destroyed&&!t.paused&&!t.ended&&ar(e)});return}e.animationFrame=window.requestAnimationFrame(()=>{e.animationFrame=null,De(e),!e.destroyed&&!t.paused&&!t.ended&&ar(e)})}function hx(e){let t=()=>{De(e)};if(Xe(e,e.element,"load",t),Xe(e,e.element,"loadedmetadata",t),Xe(e,e.element,"loadeddata",t),Xe(e,e.element,"seeked",t),Xe(e,e.element,"timeupdate",t),Xe(e,window,"resize",t),e.element instanceof HTMLVideoElement&&(Xe(e,e.element,"play",()=>ar(e)),Xe(e,e.element,"pause",t)),Xe(e,e.canvas,"webglcontextlost",n=>{n.preventDefault(),e.contextLost=!0,e.drawError="WebGL context lost",e.canvas.style.display="none",Ha(e)}),Xe(e,e.canvas,"webglcontextrestored",()=>{if(e.contextLost=!1,!Pb(e)){e.contextLost=!0,e.drawError="WebGL context restore failed",Ha(e);return}e.drawError=null,De(e)}),typeof ResizeObserver<"u"&&(e.resizeObserver=new ResizeObserver(t),e.resizeObserver.observe(e.element)),typeof MutationObserver<"u"){let n=()=>{let a=e.element.style;return`${a.transform}|${a.translate}|${a.rotate}|${a.scale}|${a.left}|${a.top}|${a.width}|${a.height}`},r=n(),i=!1,o=new MutationObserver(()=>{i||n()!==r&&(i=!0,requestAnimationFrame(()=>{i=!1,r=n(),De(e)}))});o.observe(e.element,{attributes:!0,attributeFilter:["style"]}),e.cleanup.push(()=>o.disconnect())}}function gx(e){if(e.destroyed)return null;e.destroyed=!0,px(e),e.resizeObserver?.disconnect();for(let t of e.cleanup)t();return e.cleanup.length=0,e.canvas.remove(),Ua(e),Wa(e),Ha(e),e.touchedParent&&(e.parentInlinePosition===null?e.touchedParent.style.removeProperty("position"):e.touchedParent.style.position=e.parentInlinePosition),{canvas:e.canvas,gl:e.gl,program:e.program,effectTargets:null,kuwaharaTargets:null,effectError:null}}function Xd(e,t){return e.removeAttribute("style"),t.id?e.id=`${nu}${t.id}`:e.removeAttribute("id"),e.className=pb,e.setAttribute(mb,"true"),e.setAttribute("data-hyperframes-ignore",""),e.setAttribute("data-hyperframes-picker-ignore",""),e.setAttribute("data-hf-ignore",""),e.setAttribute("aria-hidden","true"),e.style.pointerEvents="none",e.style.display="none",t.parentNode?.insertBefore(e,t.nextSibling),e}function bx(e){return Xd(document.createElement("canvas"),e)}function Jd(){let e=new WeakMap,t=new Set,n=[],r=null,i=null,o=Promise.resolve(),a=!1,l=(E,S,A)=>{let C=e.get(E);if(C)return C.grading=S,C.source=A,De(C),E instanceof HTMLVideoElement&&!E.paused&&ar(C),!0;let N=n.pop();if(N)Xd(N.canvas,E);else{let W=bx(E),U=Ga(W);if(!U)return W.remove(),!1;N={canvas:W,gl:U.gl,program:U.program,effectTargets:null,kuwaharaTargets:null,effectError:null}}let I={element:E,...N,grading:S,compare:{...rn},lut:null,lutLoadingSrc:null,lutError:null,drawError:null,effectTargets:null,kuwaharaTargets:null,effectError:null,source:A,animationFrame:null,videoFrameHandle:null,resizeObserver:null,cleanup:[],touchedParent:null,parentInlinePosition:null,sourceHidden:!1,sourceInlineOpacity:null,sourceInlineOpacityPriority:"",sourceOpacityForCanvas:window.getComputedStyle(E).opacity||"1",sourceVisibleForCanvas:window.getComputedStyle(E).visibility!=="hidden",hasDrawn:!1,contextLost:!1,grainSeed:Nd(E),destroyed:!1};return e.set(E,I),t.add(E),hx(I),De(I),E instanceof HTMLVideoElement&&!E.paused&&ar(I),!0},s=(E,S)=>{if(a)return!1;let A=nr(E);if(!A)return!1;let C=e.get(A);if(!C){let N=mi(A);if(!rr(A,N)||!l(A,N,"attribute"))return!1;C=e.get(A)}return C?(C.compare=Fb(S),De(C),!0):!1},u=E=>{let S=e.get(E);if(!S)return;let A=gx(S);A&&(S.contextLost||n.length>=gb?hi(A,!0):n.push(A)),e.delete(E),t.delete(E)},c=()=>{if(a)return 0;let E=new Set;document.querySelectorAll(`video[${Fn}], img[${Fn}]`).forEach(A=>{if(!Lt(A))return;E.add(A);let C=mi(A);rr(A,C)&&(Sd(A)||_d(A))?l(A,C,"attribute"):u(A)});for(let A of t){let C=e.get(A);C&&(!A.isConnected||C.source==="attribute"&&!E.has(A))&&u(A)}return t.size},m=()=>{if(a)return 0;let E=0;for(let S of t){let A=e.get(S);A&&De(A)&&(E+=1)}return E},f=async()=>{let E=new Set;for(let S of t){let A=e.get(S)?.grading.lut;if(!A?.src.trim()||(A.intensity??1)<=0)continue;let C=Ba(A.src);C.state==="pending"&&E.add(C.promise)}return E.size>0&&await Promise.allSettled(E),m(),E.size},p=()=>{if(a)return 0;let E=0;for(let S of t){let A=e.get(S);!A||!jd.some(N=>It(S,N)!==null)||S instanceof HTMLVideoElement&&!S.paused&&!S.ended||De(A)&&(E+=1)}return E},b=(E,S)=>{if(a)return!1;let A=nr(E);if(!A)return!1;let C=qr(S);return rr(A,C)?l(A,C,"live"):(u(A),!0)},v=(E,S)=>{if(!Lt(E))return!1;let A=e.get(E);if(!A){if(!S)return!1;let C=mi(E);return rr(E,C)&&l(E,C,"attribute")}return A.sourceVisibleForCanvas=S,!S&&A.source==="attribute"&&u(E),!0},x=E=>{let S=nr(E);if(!S)return{state:"missing",message:"Media not found"};let A=e.get(S);if(A)return A.effectError?{state:"unavailable",message:A.effectError}:A.drawError?{state:"unavailable",message:A.drawError}:A.lutError?{state:"unavailable",message:`LUT error: ${A.lutError}`}:A.grading.lut&&A.lutLoadingSrc?{state:"pending",message:"Loading LUT"}:A.canvas.style.display==="none"?{state:"pending",message:"Waiting for media frame"}:{state:"active",message:A.lut?"Shader + LUT active":"Shader active"};let C=mi(S);return rr(S,C)?!Sd(S)&&!_d(S)?{state:"pending",message:"Waiting for visible media"}:{state:"unavailable",message:"WebGL unavailable"}:{state:"inactive",message:"No grading applied"}},_=async(E,S,A)=>{let C=async()=>{if(a||S.length===0)return null;let I=nr(E);return!I||(i??(i=ux()),!i)?null:fx(i,I,S,A?.maxDimension,A?.useMediaTime)},N=o.then(C,C);return o=N.then(()=>{},()=>{}),N},R=E=>{let S=nr(E);if(!(S instanceof HTMLVideoElement))return null;if(!S.paused)return()=>{};let A=S.currentTime,C=S.loop,N=S.muted;return S.loop=!0,S.muted=!0,(S.ended||Number.isFinite(S.duration)&&A>=S.duration)&&(S.currentTime=0),S.play().catch(()=>{}),()=>{S.pause(),S.loop=C,S.muted=N,S.currentTime=A}},T=()=>{if(!a){a=!0,r?.disconnect(),r=null;for(let E of t)u(E);for(let E of n)hi(E,!0);n.length=0,i&&(hi(i,!0),i=null)}};document.body&&(r=new MutationObserver(()=>c()),r.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[Fn]}));let M={refresh:c,redraw:m,redrawAnimated:p,waitForActiveLuts:f,setGrading:b,setCompare:s,setSourceVisibility:v,getStatus:x,renderPreviews:_,startPreviewPlayback:R,destroy:T},F=window;return F.__hf=F.__hf||{},F.__hf.colorGrading=M,c(),M}var vi=class{constructor(t){ge(this,"_baseTime",0);ge(this,"_playStartMs",null);ge(this,"_rate",1);ge(this,"_duration",1/0);ge(this,"_nowMs");ge(this,"_audioSource",null);this._baseTime=t?.initialTime??0,this._rate=t?.rate??1,this._duration=t?.duration??1/0,this._nowMs=t?.nowMs??(()=>performance.now())}now(){if(this._playStartMs===null)return this._baseTime;if(this._audioSource){let r=null;if("currentTimeSeconds"in this._audioSource)r=this._audioSource.currentTimeSeconds;else{let{el:i,compositionStart:o,mediaStart:a}=this._audioSource;!i.paused&&Number.isFinite(i.currentTime)&&(r=(i.currentTime-a)/(i.playbackRate>0?i.playbackRate:1)*this._rate+o)}if(r!==null)return Number.isFinite(this._duration)&&r>=this._duration?this._duration:Math.max(0,r)}let t=(this._nowMs()-this._playStartMs)/1e3,n=this._baseTime+t*this._rate;return Number.isFinite(this._duration)&&n>=this._duration?this._duration:Math.max(0,n)}play(){return this._playStartMs!==null||Number.isFinite(this._duration)&&this._baseTime>=this._duration?!1:(this._playStartMs=this._nowMs(),!0)}pause(){return this._playStartMs===null?!1:(this._baseTime=this.now(),this._playStartMs=null,!0)}seek(t){let n=Number.isFinite(this._duration)?Math.max(0,Math.min(t,this._duration)):Math.max(0,t);this._baseTime=n,this._playStartMs!==null&&(this._playStartMs=this._nowMs())}isPlaying(){return this._playStartMs!==null}setRate(t){let n=Number.isFinite(t)&&t>0?Math.max(.1,Math.min(5,t)):1;this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._rate=n}getRate(){return this._rate}setDuration(t){this._duration=Number.isFinite(t)&&t>0?t:1/0,this._baseTime>this._duration&&(this._baseTime=this._duration)}getDuration(){return this._duration}attachAudioSource(t){this._audioSource=t}detachAudioSource(){this._audioSource&&this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._audioSource=null}hasAudioSource(){return this._audioSource!==null}getSource(){if(this._audioSource&&this._playStartMs!==null){if("currentTimeSeconds"in this._audioSource)return"audio";let{el:t}=this._audioSource;if(!t.paused&&Number.isFinite(t.currentTime))return"audio"}return"monotonic"}snapshot(){return{time:this.now(),playing:this.isPlaying(),rate:this._rate,duration:this._duration,source:this.getSource()}}reachedEnd(){return Number.isFinite(this._duration)&&this.now()>=this._duration}};var xx=100,yx=8,vx=4096,Va=e=>e;function Sx(e,t,n){return!(!!e.curve||e.viaX!==void 0&&e.viaY!==void 0)&&t==="linear"&&!n}function Ax(e){let t=Math.ceil(e*xx);return Math.min(vx,Math.max(yx,t))}function Ex(e,t,n,r,i){let{scheduledAt:o,elapsed:a,rate:l}=r,s=i??Va,u=R=>o+(R-a)/l,c=e.points[t],m=e.points[t+1],f=u(m.t);if(f<=o)return null;let p=Math.max(o,u(c.t)),b=f-p;if(b<=0)return null;if(Sx(c,n,i))return{kind:"ramp",time:f,value:s(m.v)};let v=Ax(b),x=_l(e,Math.max(c.t,a),m.t,v,n),_=new Float32Array(v);for(let R=0;R<v;R+=1)_[R]=s(x[R]??0);return{kind:"curve",time:p,duration:b,values:_}}function wx(e,t,n,r){let i=[];for(let a=0;a+1<e.points.length;a+=1){let l=Ex(e,a,t,n,r);l&&i.push(l)}let o=i[0];return o?.kind==="curve"&&o.time<=n.scheduledAt||i.unshift({kind:"set",time:n.scheduledAt,value:(r??Va)(_n(e,n.elapsed,t))}),i}function Cx(e,t){for(let n of t)if(n.kind==="set")e.setValueAtTime(n.value,n.time);else if(n.kind==="ramp")e.linearRampToValueAtTime(n.value,n.time);else try{e.setValueCurveAtTime(n.values,n.time,n.duration)}catch{let r=n.values[n.values.length-1]??0;e.linearRampToValueAtTime(r,n.time+n.duration)}}function lr(e){for(let t of e)t.param.cancelScheduledValues(0)}function on(e,t){for(let n of e)typeof n.param.cancelAndHoldAtTime=="function"?n.param.cancelAndHoldAtTime(t):n.param.cancelScheduledValues(t)}function za(e,t,n,r){if(t.points.length!==0)for(let i of e){if(lr([i]),Cl(t)){let o=(i.map??Va)(t.points[0].v);i.param.setValueAtTime(o,r.scheduledAt);continue}Cx(i.param,wx(t,n,r,i.map))}}function Qd(e,t,n,r,i){let o=new Map(n.filter(l=>l.id).map(l=>[l.id,l.handle])),a=[];for(let l of e.lanes){let s=Cn(l.target);if(!s)continue;let u=s.kind==="preset"?i?.[s.presetId]:s.kind==="fx"?o.get(s.nodeId)?.automation?.[s.param]:void 0;if(!u||u.length===0)continue;let c=co(l.target,t);c&&(za(u,l,c.scale,r),a.push(...u))}return a}function Zd(e){return e.lanes.find(t=>t.target===Ut)??null}var _x=`\nconst dbToLin = (db) => Math.pow(10, db / 20);\n\n/**\n * One-pole envelope followers, one per channel.\n *\n * Per channel matters: the followers advance once per sample, so a single shared\n * follower stepped once per channel per sample. On stereo that ran a 20 ms attack\n * as 10 ms, and gave the right channel a gain computed from an envelope that had\n * already traversed the left \\u2014 so the two channels ducked by different amounts\n * from the same input and the image pumped.\n */\nclass EnvBank {\n constructor(attackMs, releaseMs) { this.set(attackMs, releaseMs); this.values = []; }\n set(attackMs, releaseMs) {\n this.a = Math.exp(-1 / (sampleRate * Math.max(1e-5, attackMs / 1000)));\n this.r = Math.exp(-1 / (sampleRate * Math.max(1e-5, releaseMs / 1000)));\n }\n push(ch, x) {\n const prev = this.values[ch] ?? 0;\n const m = Math.abs(x);\n const c = m > prev ? this.a : this.r;\n const next = m + c * (prev - m);\n this.values[ch] = next;\n return next;\n }\n}\n\n/** Soft-knee gain computer in dB, matching acompressor\'s shape. */\nfunction kneeGain(envDb, thresholdDb, ratio, kneeDb) {\n const over = envDb - thresholdDb;\n if (kneeDb > 0 && over > -kneeDb && over < kneeDb) {\n const t = (over + kneeDb) / (2 * kneeDb);\n return -((1 - 1 / ratio) * kneeDb * t * t);\n }\n return over > 0 ? -(over * (1 - 1 / ratio)) : 0;\n}\n\n// log10/exp per sample is the single most expensive thing a dynamics processor\n// can do on the audio thread, and every sample below the knee needs neither:\n// its gain is exactly unity. Comparing envelopes in the linear domain lets the\n// quiet majority of samples skip the transcendentals entirely.\nconst LN10_OVER_20 = Math.LN10 / 20;\nconst dbToLinFast = (db) => Math.exp(db * LN10_OVER_20);\n\nclass HfCompressor extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.env = new EnvBank(this.p.attack ?? 20, this.p.release ?? 250);\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n this.p = { ...this.p, ...e.data };\n this.env.set(this.p.attack ?? 20, this.p.release ?? 250);\n };\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const p = this.p;\n const makeup = dbToLin(p.makeup ?? 0);\n const mix = p.mix ?? 1;\n // Knee is expressed as a ratio in FFmpeg; convert to dB width.\n const kneeDb = 20 * Math.log10(Math.max(1.0001, p.knee ?? 2.83));\n const thresholdDb = p.threshold ?? -24;\n const ratio = p.ratio ?? 4;\n // Below this the gain computer returns unity, so the sample needs no\n // logarithm at all.\n const kneeStartLin = dbToLin(thresholdDb - kneeDb);\n const dry = 1 - mix;\n for (let ch = 0; ch < i.length; ch++) {\n const inp = i[ch], out = o[ch];\n for (let n = 0; n < inp.length; n++) {\n const x = inp[n];\n // Per-channel follower, and the sub-knee shortcut: below the knee the\n // gain is exactly unity, so the sample needs no logarithm at all.\n const env = this.env.push(ch, x);\n if (env <= kneeStartLin) {\n out[n] = x * makeup * mix + x * dry;\n continue;\n }\n const envDb = 20 * Math.log10(env);\n const g = dbToLinFast(kneeGain(envDb, thresholdDb, ratio, kneeDb));\n out[n] = x * g * makeup * mix + x * dry;\n }\n }\n return true;\n }\n}\nregisterProcessor("hf-compressor", HfCompressor);\n\nclass HfLimiter extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.env = new EnvBank(this.p.attack ?? 5, this.p.release ?? 50);\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n this.p = { ...this.p, ...e.data };\n this.env.set(this.p.attack ?? 5, this.p.release ?? 50);\n };\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const ceiling = dbToLin(this.p.limit ?? -1);\n const outGain = dbToLin(this.p.level_out ?? 0);\n for (let ch = 0; ch < i.length; ch++) {\n const inp = i[ch], out = o[ch];\n for (let n = 0; n < inp.length; n++) {\n const x = inp[n];\n const env = this.env.push(ch, x);\n // Only ever attenuate: a limiter that can raise level is a compressor.\n const g = env > ceiling ? ceiling / env : 1;\n out[n] = x * g * outGain;\n }\n }\n return true;\n }\n}\nregisterProcessor("hf-limiter", HfLimiter);\n\nclass HfGate extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.env = new EnvBank(this.p.attack ?? 1, this.p.release ?? 100);\n this.gains = [];\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n this.p = { ...this.p, ...e.data };\n this.env.set(this.p.attack ?? 1, this.p.release ?? 100);\n };\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const p = this.p;\n const threshold = dbToLin(p.threshold ?? -35);\n const floor = dbToLin(p.range ?? -24);\n const ratio = p.ratio ?? 10;\n // Knee is declared in the registry as a ratio, like the compressor\'s; a\n // hard threshold ignored it and chattered on material sitting right at the\n // gate point.\n const kneeDb = 20 * Math.log10(Math.max(1.0001, p.knee ?? 2.83));\n const kneeLin = dbToLin((p.threshold ?? -35) + kneeDb);\n for (let ch = 0; ch < i.length; ch++) {\n const inp = i[ch], out = o[ch];\n for (let n = 0; n < inp.length; n++) {\n const x = inp[n];\n const env = this.env.push(ch, x);\n let target = 1;\n // Above the threshold the gate is fully open; skip the pow entirely.\n if (env < threshold) {\n const under = env > 1e-9 ? threshold / env : 1e9;\n target = Math.max(floor, 1 / Math.pow(under, ratio - 1));\n if (!isFinite(target)) target = floor;\n }\n // Smooth toward the target so the gate does not click on every sample.\n const held = this.gains[ch] ?? 1;\n const c = target < held ? this.env.r : this.env.a;\n const smoothed = target + c * (held - target);\n this.gains[ch] = smoothed;\n out[n] = x * smoothed;\n }\n }\n return true;\n }\n}\nregisterProcessor("hf-gate", HfGate);\n\nclass HfBitcrush extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.holds = [];\n this.held = [];\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n this.p = { ...this.p, ...e.data };\n };\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const p = this.p;\n const levels = Math.pow(2, (p.bits ?? 8) - 1);\n const step = Math.max(1, Math.round(p.samples ?? 1));\n const mix = p.mix ?? 1;\n for (let ch = 0; ch < i.length; ch++) {\n const inp = i[ch], out = o[ch];\n if (this.held[ch] === undefined) this.held[ch] = 0;\n if (this.holds[ch] === undefined) this.holds[ch] = 0;\n for (let n = 0; n < inp.length; n++) {\n // Per channel: advancing one shared counter only on the last channel\n // left every earlier channel either unheld or frozen for a whole\n // 128-sample quantum, clicking once a block.\n if (this.holds[ch] === 0) this.held[ch] = Math.round(inp[n] * levels) / levels;\n out[n] = this.held[ch] * mix + inp[n] * (1 - mix);\n this.holds[ch] = (this.holds[ch] + 1) % step;\n }\n }\n return true;\n }\n}\nregisterProcessor("hf-bitcrush", HfBitcrush);\n\n/** Linear-interpolated read, \\`delaySamples\\` behind the write head. */\nfunction readTap(ring, write, delaySamples) {\n const len = ring.length;\n const pos = (write - 1 - delaySamples + len) % len;\n const i0 = Math.floor(pos);\n const frac = pos - i0;\n const i1 = (i0 + 1) % len;\n return ring[i0] * (1 - frac) + ring[i1] * frac;\n}\n\n/** Equal-power-ish crossfade, zero at a tap\'s reset point \\u2014 hides the splice. */\nfunction xfade(phase) {\n return Math.sin(Math.PI * phase);\n}\n\n/**\n * Dual-tap granular delay line: two read taps 180\\xB0 apart in a 100 ms grain,\n * each sweeping at a speed relative to the write head that shifts pitch\n * without changing duration. One tap is always fading in as the other fades\n * out, which hides the splice each tap makes when it wraps.\n *\n * write/phase are block-level state, advanced once per SAMPLE across all\n * channels together (not once per channel) \\u2014 advancing them inside the\n * per-channel loop would move the tap 2x/4x too fast on a stereo/quad input.\n */\nclass HfPitchshift extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.grain = Math.round(sampleRate * 0.1);\n this.buf = [];\n this.write = 0;\n this.phase = 0;\n // Samples written so far, capped at one grain. The taps read up to a grain\n // behind the write head, so until this fills they would read the ring\'s\n // zeros \\u2014 the head of every clip came out attenuated or silent.\n this.filled = 0;\n // How much of the wet (pitch-shifted) path is currently in the output, and\n // where it is heading. Crossing between dry and wet is a ~50 ms jump in the\n // signal, so it is RAMPED rather than switched: a hard swap either way is a\n // click. Ramping in both directions is also what lets a node return to true\n // bypass at semitones 0 \\u2014 a one-way latch left preview stuck with the delay\n // that the render, building a fresh node from the attribute, does not have.\n this.wet = 0;\n this.wetTarget = 0;\n // ~15 ms one-pole, short enough to feel immediate on a slider drag and long\n // enough that the splice is inaudible.\n this.wetCoef = Math.exp(-1 / (sampleRate * 0.015));\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n this.p = { ...this.p, ...e.data };\n };\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const p = this.p;\n const semitones = Math.max(-12, Math.min(12, p.semitones ?? 0));\n const mix = Math.max(0, Math.min(1, p.mix ?? 1));\n const grain = this.grain;\n const ringLen = grain * 2;\n const n = i[0] ? i[0].length : 0;\n for (let ch = 0; ch < i.length; ch++) {\n if (!this.buf[ch]) this.buf[ch] = new Float32Array(ringLen);\n }\n\n // Nothing to shift, or mixed fully out. The grain delay is ~grain/2\n // whatever the ratio, so at semitones=0 this degenerated into a pure 50 ms\n // delay of the signal \\u2014 while the copy for that exact setting reads\n // "Unchanged pitch".\n this.wetTarget = semitones === 0 ? 0 : mix;\n\n // Fully dry AND settled: take the cheap transparent path. The ring keeps\n // filling, so a later shift does not start cold.\n if (this.wetTarget === 0 && this.wet < 1e-4) {\n this.wet = 0;\n let w = this.write;\n for (let s = 0; s < n; s++) {\n for (let ch = 0; ch < i.length; ch++) {\n const x = i[ch][s];\n this.buf[ch][w] = x;\n o[ch][s] = x;\n }\n w = (w + 1) % ringLen;\n }\n this.write = w;\n this.filled = Math.min(grain, this.filled + n);\n return true;\n }\n\n const ratio = Math.pow(2, semitones / 12);\n const inc = (1 - ratio) / grain;\n let write = this.write, phase = this.phase, filled = this.filled, wetNow = this.wet;\n const target = this.wetTarget, coef = this.wetCoef;\n for (let s = 0; s < n; s++) {\n phase += inc;\n phase -= Math.floor(phase);\n const phaseB = (phase + 0.5) % 1;\n const gA = xfade(phase), gB = xfade(phaseB);\n // Ramp the wet path in as the ring fills rather than reading zeros:\n // 100 ms of unshifted audio at the head of a clip beats 50 ms of silence.\n const warm = filled >= grain ? 1 : filled / grain;\n wetNow = target + coef * (wetNow - target);\n const wetMix = wetNow * warm;\n for (let ch = 0; ch < i.length; ch++) {\n const ring = this.buf[ch];\n const inp = i[ch], out = o[ch];\n const x = inp[s];\n ring[write] = x;\n const wet =\n readTap(ring, write, phase * grain) * gA + readTap(ring, write, phaseB * grain) * gB;\n out[s] = x * (1 - wetMix) + wet * wetMix;\n }\n write = (write + 1) % ringLen;\n if (filled < grain) filled++;\n }\n this.write = write;\n this.phase = phase;\n this.filled = filled;\n this.wet = wetNow;\n return true;\n }\n}\nregisterProcessor("hf-pitchshift", HfPitchshift);\n`,qa=new WeakMap;function $a(e){return ef.has(e)}var ef=new WeakSet;function ja(e){let t=qa.get(e);return t||(t=(async()=>{if(!e.audioWorklet)throw new Error("AudioWorklet is unavailable \\u2014 the page needs a secure context (https, localhost or file://)");let n=`data:text/javascript;base64,${btoa(String.fromCharCode(...new TextEncoder().encode(_x)))}`;await e.audioWorklet.addModule(n),ef.add(e)})().catch(n=>{throw qa.delete(e),n}),qa.set(e,t)),t}function Tx(e,t,n){let r=.6+Math.max(0,Math.min(1,t))*2.6,i=Math.max(1,Math.floor(e*r)),o=new Float32Array(i),a=Math.round(t*1e3)*2654435761+Math.round(n*1e3)*40503>>>0,l=()=>(a=a*1664525+1013904223>>>0,a/4294967295*2-1),s=Math.max(.001,1-Math.max(0,Math.min(1,n))),u=0,c=0;for(let f=0;f<i;f++){u+=s*(l()-u);let p=u*Math.pow(1-f/i,2.5);o[f]=p,c+=p*p}let m=Math.sqrt(c);if(m>0)for(let f=0;f<i;f++)o[f]=(o[f]??0)/m;return o}var ce=e=>typeof e=="number"?e:Number(e??0),Ka=e=>e/1e3;function of(e,t,n,r){let i=Math.max(1,Math.round(e.sampleRate)),o=e.createBuffer(1,i,e.sampleRate),a=o.getChannelData(0);for(let u=0;u<i;u++){let c=u/i;a[u]=t==="sine"?Math.sin(2*Math.PI*c):4*Math.abs((c+.75)%1-.5)-1}let l=e.createBufferSource();l.buffer=o,l.loop=!0,l.playbackRate.value=n;let s=(r*n%1+1)%1*(i/e.sampleRate);return l.start(typeof e.currentTime=="number"?e.currentTime:0,s),l}function af(e){try{e.stop()}catch{}e.disconnect()}function Ya(e,t){return[{param:e},{param:t,map:n=>1-n}]}function sf(e,t,n){e.gain.value=n,t.gain.value=1-n}function Xa(e,t,n){return{input:e,output:e,update:t,automation:n,dispose:()=>e.disconnect()}}var Rx=new Set(["peaking","highpass","lowpass"]),tf=e=>Math.pow(10,e/20),kx=(e,t)=>{let n=e.createGain(),r=i=>{n.gain.value=tf(ce(i.gain))};return r(t),Xa(n,r,{gain:[{param:n.gain,map:tf}]})};function ur(e,t){return(n,r)=>{let i=n.createBiquadFilter();i.type=e;let o=a=>{i.frequency.value=ce(a.frequency),a.q!==void 0&&(i.Q.value=ce(a.q)),t&&(i.gain.value=ce(a.gain))};return o(r),Xa(i,o,{frequency:[{param:i.frequency}],...Rx.has(e)?{q:[{param:i.Q}]}:{},...t?{gain:[{param:i.gain}]}:{}})}}function Mx(e){return(t,n)=>{let r=Math.tan(Math.PI*ce(n.frequency)/t.sampleRate),i=e==="highpass"?t.createIIRFilter([1/(1+r),-1/(1+r)],[1,(r-1)/(r+1)]):t.createIIRFilter([r/(1+r),r/(1+r)],[1,(r-1)/(r+1)]);return Xa(i,()=>{})}}function cr(e){return(t,n)=>{let r=new AudioWorkletNode(t,e,{processorOptions:{...n}});return{input:r,output:r,update:i=>r.port.postMessage({...i}),dispose:()=>{r.port.postMessage({__hfDispose:!0}),r.disconnect()}}}}var Fx={tanh:Math.tanh,atan:e=>2/Math.PI*Math.atan(Math.PI/2*e),cubic:e=>Math.abs(e)>=1?Math.sign(e):e-e**3/3,exp:e=>Math.sign(e)*(1-Math.exp(-Math.abs(e))),alg:e=>e/Math.sqrt(1+e*e),quintic:e=>Math.abs(e)>=1?Math.sign(e):e-e**5/5,sin:e=>Math.abs(e)>=1?Math.sign(e):Math.sin(Math.PI/2*e),erf:e=>Math.tanh(1.20211*e),hard:e=>Math.max(-1,Math.min(1,e))},Nx=(e,t)=>{let n=e.createWaveShaper(),r=e.createGain(),i=e.createGain();r.connect(n).connect(i);let o=a=>{let l=Fx[String(a.type)]??Math.tanh,s=Math.pow(10,ce(a.threshold)/20),u=8192,c=new Float32Array(u);for(let m=0;m<u;m++){let f=m/(u-1)*2-1;c[m]=l(f/Math.max(1e-6,s))*s}n.curve=c,n.oversample=ce(a.oversample)>=4?"4x":ce(a.oversample)>=2?"2x":"none",i.gain.value=Math.pow(10,ce(a.output)/20)};return o(t),{input:r,output:i,update:o,automation:{output:[{param:i.gain,map:a=>Math.pow(10,a/20)}]},dispose:()=>{r.disconnect(),n.disconnect(),i.disconnect()}}},Lx=(e,t)=>{let n=e.createGain(),r=e.createGain(),i=e.createDelay(5),o=e.createGain(),a=e.createGain(),l=e.createGain();n.connect(i),i.connect(o),o.connect(i),i.connect(a).connect(r),n.connect(l).connect(r);let s=u=>{i.delayTime.value=Math.min(5,ce(u.time)/1e3),o.gain.value=ce(u.feedback),sf(a,l,ce(u.mix))};return s(t),{input:n,output:r,update:s,automation:{time:[{param:i.delayTime,map:u=>Math.min(5,Ka(u))}],feedback:[{param:o.gain}],mix:Ya(a.gain,l.gain)},dispose:()=>[n,r,i,o,a,l].forEach(u=>u.disconnect())}},Dx=(e,t,n)=>{let r=e.createGain(),i=e.createGain(),o=e.createDelay(.5),a=of(e,"sine",ce(t.speed),n),l=e.createGain(),s=e.createGain(),u=e.createGain();a.connect(l).connect(o.delayTime),r.connect(o).connect(s).connect(i),r.connect(u).connect(i);let c=m=>{o.delayTime.value=ce(m.delay)/1e3,l.gain.value=ce(m.depth)/1e3,a.playbackRate.value=ce(m.speed),sf(s,u,ce(m.mix))};return c(t),{input:r,output:i,update:c,automation:{delay:[{param:o.delayTime,map:Ka}],depth:[{param:l.gain,map:Ka}],speed:[{param:a.playbackRate}],mix:Ya(s.gain,u.gain)},dispose:()=>{af(a),[r,i,o,l,s,u].forEach(m=>m.disconnect())}}},Ix=6,Px=(e,t,n)=>{let r=e.createGain(),i=e.createGain(),o=e.createGain(),a=e.createGain(),l=of(e,String(t.type)==="1"?"sine":"triangle",ce(t.speed),n),s=e.createGain(),u=e.createGain(),c=e.createGain(),m=[];r.connect(o);let f=o;for(let b=0;b<Ix;b++){let v=e.createBiquadFilter();v.type="allpass",v.Q.value=.7071,s.connect(v.frequency),f.connect(v),f=v,m.push(v)}l.connect(s),f.connect(u).connect(a),o.connect(c).connect(a),a.connect(i);let p=b=>{let v=1e3/Math.max(.1,ce(b.delay));for(let x of m)x.frequency.value=v;s.gain.value=v*ce(b.decay),l.playbackRate.value=ce(b.speed),o.gain.value=ce(b.in_gain),a.gain.value=ce(b.out_gain),u.gain.value=1,c.gain.value=1};return p(t),{input:r,output:i,update:p,automation:{speed:[{param:l.playbackRate}],in_gain:[{param:o.gain}],out_gain:[{param:a.gain}]},dispose:()=>{af(l),[r,i,o,a,s,u,c,...m].forEach(b=>b.disconnect())}}},Ox=(e,t)=>{let n=e.createGain(),r=e.createGain(),i=e.createConvolver(),o=e.createGain(),a=e.createGain();i.normalize=!1,n.connect(i).connect(o).connect(r),n.connect(a).connect(r);let l="",s=u=>{let c=`${ce(u.size)}:${ce(u.damping)}`;if(c!==l){let m=Tx(e.sampleRate,ce(u.size),ce(u.damping)),f=e.createBuffer(1,m.length,e.sampleRate);f.getChannelData(0).set(m),i.buffer=f,l=c}o.gain.value=ce(u.wet),a.gain.value=ce(u.dry)};return s(t),{input:n,output:r,update:s,automation:{wet:[{param:o.gain}],dry:[{param:a.gain}]},dispose:()=>[n,r,i,o,a].forEach(u=>u.disconnect())}},Hx={"gain-node":kx,"biquad-peaking":ur("peaking",!0),"biquad-lowshelf":ur("lowshelf",!0),"biquad-highshelf":ur("highshelf",!0),"biquad-highpass":ur("highpass",!1),"biquad-lowpass":ur("lowpass",!1),"worklet-compressor":cr("hf-compressor"),"worklet-limiter":cr("hf-limiter"),"worklet-gate":cr("hf-gate"),"worklet-bitcrush":cr("hf-bitcrush"),"worklet-pitchshift":cr("hf-pitchshift"),waveshaper:Nx,"delay-feedback":Lx,"chorus-lfo":Dx,"allpass-phaser":Px,convolver:Ox};function lf(e){return e.nodes.some(t=>Sn(t.type)?.web.startsWith("worklet-")??!1)}function Gx(e,t,n,r=0){let i=Sn(t);if(!i)throw new Error(`Unknown effect type: ${t}`);let o=An(t,n);if((t==="highpass"||t==="lowpass")&&String(o.poles)==="1")return Mx(t)(e,o,r);let a=Hx[i.web];if(!a)throw new Error(`No Web Audio builder for ${i.web}`);return a(e,o,r)}function nf(e){let t=[];for(let n of e){let r=n.fromPreset,i=t.at(-1);if(i&&i.preset===r)i.nodes.push(n);else{let o=typeof n.presetAmount=="number"?n.presetAmount:1;t.push({...r?{preset:r}:{},amount:Math.min(1,Math.max(0,o)),nodes:[n]})}}return t}function rf(e){return En(e).map(t=>{let n=An(t.type,t.params),r=n.poles!==void 0?`:${n.poles}`:"",i=String(n.poles)==="1"?`@${n.frequency}`:"",o=t.type==="phaser"?`~${n.type}`:"",a=t.fromPreset?`%${t.fromPreset}`:"";return`${t.type}${r}${i}${o}${a}`}).join("|")}function uf(e,t,n=0){var m;let r=e.createGain(),i=e.createGain(),o=[],a=[],l=nf(En(t)),s=r;for(let f of l){let p=null;if(f.preset){let b=e.createGain(),v=e.createGain(),x=e.createGain(),_=e.createGain();x.gain.value=f.amount,v.gain.value=1-f.amount,s.connect(b),b.connect(v).connect(_),p={entry:b,wet:x,dry:v,join:_},s=b}for(let b of f.nodes){let v=Gx(e,b.type,b.params??{},n);s.connect(v.input),s=v.output,o.push({...b.id?{id:b.id}:{},type:b.type,handle:v})}p&&f.preset&&(s.connect(p.wet).connect(p.join),a.push({id:f.preset,...p}),s=p.join)}s.connect(i);let u=rf(t),c={};for(let f of a)(c[m=f.id]??(c[m]=[])).push(...Ya(f.wet.gain,f.dry.gain));return{input:r,output:i,presets:c,nodes:o,update(f){if(rf(f)!==u)return!1;En(f).forEach((b,v)=>{let x=o[v];x&&(x.handle.update(An(b.type,b.params)),b.id===void 0?delete x.id:x.id=b.id)});let p=0;for(let b of nf(En(f))){if(!b.preset)continue;let v=a[p++];!v||v.id!==b.preset||(v.wet.gain.value=b.amount,v.dry.gain.value=1-b.amount)}return!0},dispose(){for(let{handle:f}of o)f.dispose();for(let{entry:f,wet:p,dry:b,join:v}of a)f.disconnect(),p.disconnect(),b.disconnect(),v.disconnect();r.disconnect(),i.disconnect()}}}var cf={version:1,nodes:[]},df={version:1,lanes:[]};function ff(e,t){let n=(typeof e.getAttribute=="function"?e.getAttribute(tt):null)??"";if(!n)return df;try{return wl(Dr(n),t)}catch{return df}}function an(e){let t=(typeof e.getAttribute=="function"?e.getAttribute(Rt):null)??"";if(!t)return{chain:cf,raw:""};try{return{chain:Sl(t),raw:t}}catch{return{chain:cf,raw:""}}}function mf(e){return ff(e,an(e).chain)}function Si(e,t,n,r,i){let{chain:o}=an(t),a=null,l=[],s=!1,u=0,c=()=>{try{a?(n.disconnect(a.input),a.output.disconnect(r),a.dispose()):n.disconnect(r)}catch{}a=null},m=(T,M)=>{if(T.nodes.length===0){n.connect(r);return}if(lf(T)&&!$a(e)){n.connect(r);let F=++u;ja(e).then(()=>{s||F!==u||x(an(t).chain)}).catch(()=>{});return}try{let F=uf(e,T,M);n.connect(F.input),F.output.connect(r),a=F}catch{n.connect(r)}},f=(T,M)=>{l=M&&a?Qd(ff(t,T),T,a.nodes,M,a.presets):[]},p=i?{...i}:null;m(o,p?.elapsed??0),f(o,p);let b=()=>{if(!p)return null;let T=typeof e.currentTime=="number"?e.currentTime:p.scheduledAt;return{scheduledAt:T,elapsed:p.elapsed+(T-p.scheduledAt)*p.rate,rate:p.rate}},v=T=>{let M=b();M&&(on(l,M.scheduledAt),f(T,M))},x=T=>{let M=b();on(l,M?.scheduledAt??0),c(),m(T,M?.elapsed??0),f(T,M)},_=null,R=t;return typeof MutationObserver<"u"&&typeof R?.nodeType=="number"&&(_=new MutationObserver(()=>{let T=an(t);l.length>0&&lr(l),!a||!a.update(T.chain)?x(T.chain):v(T.chain)}),_.observe(R,{attributes:!0,attributeFilter:[Rt,tt]})),{reanchor:T=>{if(s)return;let M=b();M&&on(l,M.scheduledAt),p={...T},f(an(t).chain,p)},setRate:T=>{let M=b();s||!M||!Number.isFinite(T)||T<=0||T===M.rate||(p={...M,rate:T},on(l,M.scheduledAt),f(an(t).chain,p))},dispose:()=>{s=!0,_?.disconnect(),l.length>0&&on(l,typeof e.currentTime=="number"?e.currentTime:0),a?.dispose()}}}var pf="runtime_web_audio_bypass";function Ja(e,t){return typeof e.getAttribute=="function"?e.getAttribute(t):null}function dr(e,t){return Ja(e,t)!==null}function Bx(e){return dr(e,"crossorigin")?!0:e.crossOrigin!=null}function Ux(e){return typeof e.baseURI=="string"&&e.baseURI?e.baseURI:typeof document<"u"?document.baseURI:""}function Wx(e){let t=typeof e.currentSrc=="string"?e.currentSrc:"";if(t)return[t];let n=Ja(e,"src");if(n)return[n];if(typeof e.querySelectorAll!="function")return[];let r=[];for(let i of Array.from(e.querySelectorAll("source"))){let o=i.getAttribute("src");o&&r.push(o)}return r}function Vx(e,t){if(typeof window>"u")return!1;let n;try{n=new URL(e,Ux(t))}catch{return!1}return n.protocol!=="http:"&&n.protocol!=="https:"||n.origin===window.location.origin?!1:!Bx(t)}function gf(e){return(typeof e.currentSrc=="string"?e.currentSrc:"")?!0:dr(e,"src")}function sn(e){for(let t of Wx(e))if(Vx(t,e))return{kind:"decode-only",reason:"cross_origin_no_cors",asset:t};return{kind:"web-audio"}}function zx(e){let t=[];dr(e,Rt)&&t.push("fx-chain"),dr(e,tt)&&t.push("automation"),dr(e,Pr)&&t.push("audio-group");let n=Number.parseFloat(Ja(e,"data-volume")??"");return Number.isFinite(n)&&n>1&&t.push("above-unity-gain"),t}function qx(){return typeof window<"u"&&!!window.__HF_EXPORT_RENDER_SEEK_CONFIG}var hf=new WeakSet;function ln(e,t){if(t.kind==="web-audio"||qx()||hf.has(e))return;let n=zx(e);hf.add(e);let r={asset:t.asset,reason:t.reason,lostProcessing:n,note:"cross-origin media without a `crossorigin` opt-in is silent through createMediaElementSource (Web Audio spec); using native playback instead"};xe({source:"hf-preview",type:"diagnostic",code:pf,details:r});let i=n.length>0?` Native playback cannot reproduce: ${n.join(", ")} \\u2014 proxy or download the asset to a same-origin URL to keep it.`:"";console.info(`[hyperframes] ${pf}: "${t.asset}" (${t.reason}): Web Audio capture withheld; the track plays through native HTMLMediaElement output.${i}`)}function Qa(e){return!Number.isFinite(e)||e<=0?1:e}function bf(e){return Le(e)}function $x(e,t){t||e.paused||!Ar().__hfDebug||console.debug("[hyperframes] webAudioTransport claimed fallback-playing element:",e.currentSrc||e.getAttribute("src")||"")}function jx(e,t){let{elapsed:n,mediaStart:r,scheduledAt:i,globalRate:o,mediaRate:a,clipDuration:l}=t,s=Number.isFinite(l)&&l>0,u=l*a;if(n>=0){let m=n*a,f=u-m;return s&&f<=0?!1:(s?e.start(0,m+r,f):e.start(0,m+r),!0)}let c=-n/o;return s?e.start(i+c,r,u):e.start(i+c,r),!0}function Ai(e,t,n){let r=Zd(mf(e));r&&za([{param:t.gain}],r,Lr.scale,n)}function fr(e){return e.sourceKind==="buffer"}var Ei=class{constructor(){ge(this,"_ctx",null);ge(this,"_bufferCache",new Map);ge(this,"_failedSrcs",new Set);ge(this,"_mediaElementSources",new WeakMap);ge(this,"_activeSources",[]);ge(this,"_masterGain",null);ge(this,"_masterVolume",1);ge(this,"_masterMuted",!1);ge(this,"_groups",new Map);ge(this,"_rateAnchorCtx",0);ge(this,"_rateAnchorComp",0);ge(this,"_rate",1);ge(this,"_paused",!0);ge(this,"_playGeneration",0)}async init(){try{return this._ctx=new AudioContext,this._masterGain=this._ctx.createGain(),this._masterGain.connect(this._ctx.destination),this.applyMasterGain(),!0}catch{return!1}}get context(){return this._ctx}getTime(){return!this._ctx||this._paused?-1:this._rateAnchorComp+(this._ctx.currentTime-this._rateAnchorCtx)*this._rate}async decodeAudioElement(t){let n=t.currentSrc||t.getAttribute("src");if(!n)return null;if(this._bufferCache.has(n))return this._bufferCache.get(n);if(this._failedSrcs.has(n)||!this._ctx)return null;let r;try{let i=await fetch(n,{cache:"no-store"});if(!i.ok)return L("webAudioTransport.fetch",new Error(`${i.status} ${n}`)),null;r=await i.arrayBuffer()}catch(i){return L("webAudioTransport.fetch",i),null}try{let i=await this._ctx.decodeAudioData(r);return this._bufferCache.set(n,i),i}catch(i){return this._failedSrcs.add(n),L("webAudioTransport.decode",i),null}}startGeneration(){return this._playGeneration+=1,this._playGeneration}currentGeneration(){return this._playGeneration}acquireMediaElementSource(t){let n=this._mediaElementSources.get(t);if(n){let o=sn(t);if(o.kind!=="web-audio"){try{n.disconnect()}catch{}return this._mediaElementSources.delete(t),ln(t,o),null}return n}if(!this._ctx)return null;let r=sn(t);if(r.kind!=="web-audio")return ln(t,r),null;let i=this._ctx.createMediaElementSource(t);return this._mediaElementSources.set(t,i),i}async scheduleMediaElementPlayback(t,n,r,i,o,a,l=1){if(!this._ctx||!this._masterGain||a!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),a!==this._playGeneration)return null;let s=this.acquireMediaElementSource(t);if(!s)return null;let u=Qa(l),c=this._ctx.createGain();c.gain.value=o;let m=this._ctx.currentTime,f=i-n,p={scheduledAt:m,elapsed:f,rate:u},b=Si(this._ctx,t,s,c,p);c.connect(this.resolveDestination(t,m,i,u)??this._masterGain),Ai(t,c,p),this._rate=u,this._rateAnchorCtx=m,this._rateAnchorComp=i;let v={fx:b,el:t,sourceNode:s,sourceKind:"media-element",gainNode:c,compositionStart:n,mediaStart:r,scheduledAt:m,priorMuted:t.muted,priorVolume:t.volume,mediaPlaybackRate:Ce(t),bounded:!1};return t.volume=1,this._activeSources.push(v),this._paused=!1,v}catch(s){return L("webAudioTransport.mediaElementSource",s),null}}groupInput(t,n,r){let i=this._groups.get(t);if(i){if(i.generation!==this._playGeneration)try{i.reanchor(r),i.generation=this._playGeneration}catch(f){L("webAudioTransport.groupReanchor",f)}return i.input}if(!this._ctx||!this._masterGain)return null;let o=this._ctx.createGain(),a=this._ctx.createGain();a.connect(this._masterGain);let l=()=>mo(n,t),s=l(),u=this._ctx.createGain();u.gain.value=s?.hasAttribute("data-hidden")?0:1,u.connect(a);let c=this._ctx.createGain();c.gain.value=bf(fo(s)),c.connect(u);let m=Si(this._ctx,s??{getAttribute:()=>null},o,c,r);return s&&Ai(s,c,r),this._groups.set(t,{input:o,fader:c,muteGain:u,fx:m,generation:this._playGeneration,reanchor:f=>{lr([{param:c.gain}]);let p=l();c.gain.value=bf(fo(p)),u.gain.value=p?.hasAttribute("data-hidden")?0:1,m?.reanchor(f),p&&Ai(p,c,f)},dispose:()=>{try{m?.dispose(),o.disconnect(),c.disconnect(),u.disconnect(),a.disconnect()}catch{}}}),o}setGroupMuted(t,n){let r=this._groups.get(t);if(r)try{r.muteGain.gain.value=n?0:1}catch(i){L("webAudioTransport.setGroupMuted",i)}}resolveDestination(t,n,r,i){if(!this._masterGain)return null;let o=Rl(t);if(!o)return this._masterGain;let a={scheduledAt:n,elapsed:r,rate:i};return this.groupInput(o,t.ownerDocument,a)??this._masterGain}handleSourceEnded(t,n,r,i){let o=this._activeSources.indexOf(n);if(o!==-1){this._activeSources.splice(o,1),r.muted=i;try{t.disconnect(),n.fx?.dispose(),n.gainNode.disconnect()}catch{}this._activeSources.length===0&&(this._paused=!0)}}async schedulePlayback(t,n,r,i,o,a,l,s=1,u=Number.POSITIVE_INFINITY){if(!this._ctx||!this._masterGain||l!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),l!==this._playGeneration)return null;let c=Qa(s),m=Ce(t),f=c*m,p=this._ctx.createBufferSource();p.buffer=n,p.playbackRate.value=f;let b=this._ctx.createGain();b.gain.value=a;let v=o-r,x=this._ctx.currentTime,_={scheduledAt:x,elapsed:v,rate:c},R=Si(this._ctx,t,p,b,_);if(b.connect(this.resolveDestination(t,x,o,c)??this._masterGain),Ai(t,b,_),this._rate=c,this._rateAnchorCtx=x,this._rateAnchorComp=o,!jx(p,{elapsed:v,mediaStart:i,scheduledAt:x,globalRate:c,mediaRate:m,clipDuration:u}))return p.disconnect(),R?.dispose(),b.disconnect(),null;let T=t.muted;t.muted=!0,$x(t,T);let M={fx:R,el:t,sourceNode:p,sourceKind:"buffer",gainNode:b,compositionStart:r,mediaStart:i,scheduledAt:x,priorMuted:T,priorVolume:t.volume,mediaPlaybackRate:m,bounded:Number.isFinite(u)&&u>0};return this._activeSources.push(M),this._paused=!1,p.addEventListener("ended",()=>this.handleSourceEnded(p,M,t,T)),M}catch(c){return L("webAudioTransport.schedule",c),null}}setRate(t){let n=Qa(t);if(n===this._rate)return!1;this._ctx&&!this._paused&&(this._rateAnchorComp=this.getTime(),this._rateAnchorCtx=this._ctx.currentTime),this._rate=n;for(let r of this._activeSources)try{fr(r)&&(r.sourceNode.playbackRate.value=n*r.mediaPlaybackRate),r.fx?.setRate(n)}catch(i){L("webAudioTransport.setRate",i)}for(let r of this._groups.values())try{r.fx?.setRate(n)}catch(i){L("webAudioTransport.setRate.group",i)}return!0}hasBoundedActiveSources(){return this._activeSources.some(t=>fr(t)&&t.bounded)}stopAll(){for(let t of this._activeSources){try{fr(t)&&t.sourceNode.stop(),t.sourceNode.disconnect(),t.fx?.dispose(),t.gainNode.disconnect()}catch{}fr(t)?t.el.muted=t.priorMuted:t.el.volume=t.priorVolume}this._activeSources=[],this._paused=!0}setVolume(t){this._masterVolume=Math.max(0,Math.min(1,t)),this.applyMasterGain()}setElementVolume(t,n){let r=Le(n);for(let i of this._activeSources)if(i.el===t)try{i.sourceKind==="media-element"&&(i.el.volume=1),i.gainNode.gain.value=r}catch(o){L("webAudioTransport.setElementVolume",o)}}setMuted(t){this._masterMuted=t,this.applyMasterGain()}applyMasterGain(){this._masterGain&&(this._masterGain.gain.value=this._masterMuted?0:this._masterVolume)}isActive(){return this._activeSources.length>0&&!this._paused}ownsElement(t){return!this._paused&&this._activeSources.some(n=>n.el===t&&fr(n))}routesElement(t){return!this._paused&&this._activeSources.some(n=>n.el===t)}destroy(){this.stopAll();for(let t of this._groups.values())t.dispose();if(this._groups.clear(),this._bufferCache.clear(),this._failedSrcs.clear(),this._mediaElementSources=new WeakMap,this._ctx)try{this._ctx.close()}catch{}this._ctx=null,this._masterGain=null,this._masterVolume=1,this._masterMuted=!1}};var xf="data-hf-studio-manual-edit-gesture";function yf(e){return!Number.isInteger(e.tick)||e.tick<=0||e.tick%60!==0?!1:!(e.isPlaying&&e.hasCapturedTimeline&&e.currentTimeSeconds<2)}var Kx=/^\\s*spring\\(\\s*([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+))\\s*\\)\\s*$/;function vf(e){return Math.max(0,Math.min(1,e))}function Sf(e){let t=Kx.exec(e);if(!t)return null;let n=Number(t[1]);return Number.isFinite(n)?vf(n):null}function Af(e,t){if(!Number.isFinite(e))return e;if(e<=0)return 0;if(e>=1)return 1;let n=vf(t),r=12-n*6,i=Math.PI*2*(1+n*1.5),o=1-Math.exp(-r)*Math.cos(i);return(1-Math.exp(-r*e)*Math.cos(i*e))/o}var Yx=/^\\s*wiggle\\(\\s*(\\d+)\\s*,\\s*(easeOut|easeInOut|anticipate|uniform)\\s*(?:,\\s*([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?)\\s*)?\\)\\s*$/,Xx=Math.PI*2;function Jx(e){let t=Yx.exec(e);if(!t)return null;let n=Number(t[1]);if(!Number.isSafeInteger(n)||n<1)return null;let r=t[2];if(r!=="easeOut"&&r!=="easeInOut"&&r!=="anticipate"&&r!=="uniform")return null;if(t[3]===void 0)return{wiggles:n,type:r};let i=Number(t[3]);return!Number.isFinite(i)||i<0||i>1?null:{wiggles:n,type:r,amplitude:i}}function Qx(e,t,n,r){if(!Number.isFinite(e))return e;if(e<=0)return 0;if(e>=1)return 1;let i=r??(n==="easeInOut"?.08:n==="uniform"?.14:n==="anticipate"?.12:.16),o=n==="easeInOut"?i*Math.sin(Math.PI*e):n==="uniform"?i:i*(1-e);return e+(n==="anticipate"?-1:1)*o*Math.sin(Xx*t*e)}function Ef(e,t){let n=Jx(e);if(!n)return null;let r=`${n.wiggles}:${n.type}:${n.amplitude??"default"}`,i=t?.get(r);if(i)return i;let o=a=>Qx(a,n.wiggles,n.type,n.amplitude);return t?.set(r,o),o}var Zx=24,wf=e=>e>=1?1:0,ey=e=>e,wi=String.raw`([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)`,ty=new RegExp(String.raw`^\\s*M\\s*0\\s*,\\s*0\\s+C\\s*${wi}\\s*,\\s*${wi}\\s+${wi}\\s*,\\s*${wi}\\s+1\\s*,\\s*1\\s*$`,"i");function Cf(e,t,n){let r=1-e;return 3*r*r*e*t+3*r*e*e*n+e*e*e}function ny(e,t,n,r,i){if(!Number.isFinite(e))return e;if(e<=0)return 0;if(e>=1)return 1;let o=0,a=1;for(let l=0;l<Zx;l+=1){let s=(o+a)/2;Cf(s,t,r)<e?o=s:a=s}return Cf((o+a)/2,n,i)}function ry(e){let t=ty.exec(e);if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]),o=Number(t[4]);return Math.min(n,i)<0||Math.max(n,i)>1?null:a=>ny(a,n,r,i,o)}function iy(e,t){if(!e.startsWith("spring("))return null;let n=Sf(e);if(n===null)return null;let r=t.get(n);if(r)return r;let i=o=>Af(o,n);return t.set(n,i),i}function oy(e,t){if(!e.startsWith("custom(")||!e.endsWith(")"))return null;let n=e.slice(7,-1),r=t.get(n);if(r)return r;let i=ry(n);return i&&t.set(n,i),i}function _f(e){if(e.__hfCustomEaseInstalled)return!0;let t=e.parseEase;if(!t)return!1;let n=new Map,r=new Map,i=new Map,o=s=>typeof s!="string"?null:s==="hold"?wf:Ef(s,i)??iy(s,r)??oy(s,n),a=(s,u,c=[])=>{let m=o(s);return m||(typeof s=="string"&&/^(?:hold|spring|wiggle|custom)(?:\\(|$)/.test(s.trim())&&Ne("custom_ease_parse_failed",{ease:s}),t.call(u,s,...c)??ey)};e.parseEase=function(u,...c){return a(u,this,c)};let l=e.registerEase;if(typeof l=="function"){l("hold",wf);let s=u=>{let c=m=>m;c.config=(...m)=>a(`${u}(${m.join(",")})`,e),l(u,c)};s("spring"),s("wiggle"),s("custom")}return e.__hfCustomEaseInstalled=!0,!0}var _i=new Map,Ci=new Map,Tf=()=>{};function Za(e){return/^[a-z][a-z0-9-]{0,63}$/.test(e)}function es(e,t){let n=Ci.get(e);if(n)try{n(t)}catch(r){Tf(e,r)}}function Rf(e){Tf=e}function Ti(e,t){Za(e)&&(_i.set(e,t),es(e,t))}function Ri(e){Za(e)&&(_i.delete(e),es(e,void 0))}function kf(e,t){if(!Za(e))throw new Error(`Invalid HyperFrames runtime-data channel: ${e}`);return Ci.set(e,t),_i.has(e)&&es(e,_i.get(e)),()=>{Ci.get(e)===t&&Ci.delete(e)}}var ts="data-hf-authored-duration",ns="data-hf-authored-end",Mf=!1;function at(e){if(e){if(typeof e.pause!="function"){Mf||(Mf=!0,Ne("timeline_missing_pause",{}));return}try{e.pause()}catch(t){L("runtime.timeline.pause",t)}}}function ay(){let e=window.__HF_EXPORT_RENDER_SEEK_CONFIG,t=e?.fps,n=e?.fpsSource,r=Number(t);return!e||t==null?{fps:null,source:"default",rawFpsSource:n,rawFps:t,fallbackReason:"missing"}:!Number.isFinite(r)||r<=0?{fps:null,source:"default",rawFpsSource:n,rawFps:t,fallbackReason:"invalid"}:{fps:r,source:n==="render-options"||n==="default"?n:"unknown",rawFpsSource:n,rawFps:t,fallbackReason:e.fpsFallbackReason}}function Ff(){let e=gu();Is(xe),Rf((d,h)=>{xe({source:"hf-preview",type:"runtime-data-error",channel:d,message:h instanceof Error?h.message:String(h)})}),ci(document),Na(document),kl(document);let t=ay();e.canonicalFps=t.fps??e.canonicalFps,Ls(e.canonicalFps),window.__HF_EXPORT_RENDER_SEEK_CONFIG&&console.info("[hyperframes] render runtime fps",{canonicalFps:e.canonicalFps,source:t.source,rawFpsSource:t.rawFpsSource,rawFps:t.rawFps,fallbackReason:t.fallbackReason});let n=null,r=null,i=null,o=[],a=new Set,l=null,s=new Set,u=(d,h,g)=>{s.has(d)||(s.add(d),Ne(h,g))};if(typeof window.__hfRuntimeTeardown=="function")try{window.__hfRuntimeTeardown()}catch(d){L("runtime.init.site1",d)}let c=new vi;e.transportClock=c;let m=new Ei,f=!1;m.init().then(d=>{f=d}),window.__hf=window.__hf||{};let p=d=>d.closest("[data-hidden]")!==null||Or(d.ownerDocument,d),b=()=>{let d=window.gsap,h=window;if(!(!d?.registerPlugin||h.__hfAutoNoopRegistered))try{d.registerPlugin({name:"_auto",init:()=>!1}),h.__hfAutoNoopRegistered=!0}catch(g){u("auto_marker_install_failed","auto_marker_install_failed",{reason:"threw"}),L("runtime.autoMarker.install",g)}},v=()=>{let d=window.gsap;if(!d){u("custom_ease_missing_gsap","custom_ease_install_failed",{reason:"missing_gsap"});return}try{_f(d)||u("custom_ease_no_parse_ease","custom_ease_install_failed",{reason:"no_parseEase"})}catch(h){u("custom_ease_install_threw","custom_ease_install_failed",{reason:"threw"}),L("runtime.customEase.install",h)}};b(),v(),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");try{Ws(document)}catch(d){L("runtime.init.cssVariables",d)}window.__timelines=window.__timelines||{};let x=()=>{let d=document.querySelector(\'[data-composition-id][data-root="true"]\');if(d instanceof HTMLElement)return d;let h=Array.from(document.querySelectorAll("[data-composition-id]"));return h.find(g=>!g.parentElement?.closest("[data-composition-id]"))??h[0]??null};if(Array.isArray(window.__timelines)){let d=window.__timelines,h=x()?.getAttribute("data-composition-id")??"root",g={};if(d.length===1)g[h]=d[0];else for(let y=0;y<d.length;y++)g[`tl-${y}`]=d[y];window.__timelines=g}let _=x();_&&!_.hasAttribute("data-start")&&_.setAttribute("data-start","0");let R=d=>{o.push(d)},T=(d,h,g)=>{let y=g??`${d}:${JSON.stringify(h)}`;a.has(y)||(a.add(y),xe({source:"hf-preview",type:"diagnostic",code:d,details:h}))},M=d=>{let h={scale:1,focusX:960,focusY:540},g=[],y=[],w={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:()=>h,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>g,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:()=>y,getRenderState:()=>({...w,time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying()})}},F=1/60,E=.75,S=.05,A=100,C=240,N=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??"")}},I=d=>{let h=d.toLowerCase();return h.includes("cannot read properties of null")||h.includes("cannot set properties of null")?{code:"runtime_null_dom_access",category:"dom-null-access"}:h.includes("failed to execute \'queryselector\'")?{code:"runtime_invalid_selector",category:"selector-invalid"}:h.includes("is not defined")?{code:"runtime_reference_missing",category:"reference-missing"}:{code:"runtime_script_error",category:"script-error"}},W=d=>{if(d==null||d.trim()==="")return null;let h=Number.parseFloat(d);return!Number.isFinite(h)||h<=0?null:`${h}px`},U=()=>x(),oe=()=>{let d=U();if(!d)return;let h=W(d.getAttribute("data-width")),g=W(d.getAttribute("data-height"));h&&(d.style.width=h),g&&(d.style.height=g),h&&d.style.setProperty("--comp-width",h),g&&d.style.setProperty("--comp-height",g)},k=()=>{let d=U(),h=Array.from(document.querySelectorAll("[data-composition-id]")).filter(g=>g.hasAttribute("data-duration")||g.hasAttribute("data-end"));for(let g of h){if(d&&g===d)continue;let y=g.getAttribute("data-duration"),w=g.getAttribute("data-end");y!=null&&!g.hasAttribute(ts)&&g.setAttribute(ts,y),w!=null&&!g.hasAttribute(ns)&&g.setAttribute(ns,w),g.removeAttribute("data-duration"),g.removeAttribute("data-end")}},V=()=>{let d=U();if(!d)return;d.style.position||(d.style.position="relative"),d.style.overflow="hidden";let h=W(d.getAttribute("data-width")),g=W(d.getAttribute("data-height"));h&&(d.style.width=h),g&&(d.style.height=g);let y=Array.from(d.children);for(let w of y){let D=w.tagName.toLowerCase();if(D==="script"||D==="style"||D==="link"||D==="meta"||!w.hasAttribute("data-start")||w.hasAttribute("data-hf-autostamped"))continue;let B=(w.style.top==="0px"||w.style.top==="0")&&(w.style.left==="0px"||w.style.left==="0")&&w.style.width==="100%"&&w.style.height==="100%",ne=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(w.style.transform);if(B&&ne&&!w.hasAttribute("data-width")&&!w.hasAttribute("data-height")){let te=w.style.top,Tt=w.style.left,ye=w.style.width,gn=w.style.height;w.style.top="",w.style.left="",w.style.width="",w.style.height="";let ae=window.getComputedStyle(w);ae.top!=="auto"||ae.bottom!=="auto"||ae.left!=="auto"||ae.right!=="auto"||ae.width!=="0px"||ae.height!=="0px"||(w.style.top=te,w.style.left=Tt,w.style.width=ye,w.style.height=gn)}let $=window.getComputedStyle(w),de=$.position;if(de!=="absolute"&&de!=="fixed"&&(w.style.position="absolute"),!!w.style.top||!!w.style.bottom||$.top!=="auto"||$.bottom!=="auto"||(w.style.top="0"),!!w.style.left||!!w.style.right||$.left!=="auto"||$.right!=="auto"||(w.style.left="0"),D!=="audio"){let te=W(w.getAttribute("data-width")),Tt=W(w.getAttribute("data-height")),ye=$.width!=="0px"&&$.width!=="auto",gn=$.height!=="0px"&&$.height!=="auto";te?!w.style.width&&!ye&&(w.style.width=te):!w.style.width&&$.width==="0px"&&(w.style.width="100%"),Tt?!w.style.height&&!gn&&(w.style.height=Tt):!w.style.height&&$.height==="0px"&&(w.style.height="100%")}}},Q=(d,h=0,g)=>mt({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:g?.includeAuthoredTimingAttrs??!0}).resolveStartForElement(d,h),G=(d,h)=>mt({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:h?.includeAuthoredTimingAttrs??!0}).resolveDurationForElement(d),H=d=>{let h=d.closest("[data-composition-id]"),g=h?Q(h,0):null,y=h?G(h,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:h,inheritedStart:g,inheritedDuration:y}},z=d=>{let h=H(d),g=h.inheritedStart??0,y=Bt(d.getAttribute("data-start"));if(d.hasAttribute("data-hf-auto-start")||y==null||g<=0)return Q(d,g);let w=ve(d.getAttribute("data-duration")),D=h.inheritedDuration,B=D!=null&&D>0?g+D:null,ne=w!=null&&w>0?y+w:y;return(B==null?y>=g:y<B&&(ne>g||y===g))?y:g+y};window.__hfResolveMediaStartSeconds=z,o.push(()=>{window.__hfResolveMediaStartSeconds===z&&delete window.__hfResolveMediaStartSeconds});let X=(d,h)=>{let g=d.tagName.toLowerCase();if(g==="script"||g==="style"||g==="link"||g==="meta")return!1;let w=g==="video"||g==="audio"?z(d):Q(d,0),D=G(d),B=d.getAttribute("data-composition-id");if(B){let $=(window.__timelines??{})[B],de=null;if($&&typeof $.duration=="function"){let Me=Number($.duration());Number.isFinite(Me)&&Me>0&&(de=Me)}!(d.hasAttribute("data-duration")||d.hasAttribute("data-end")||d.hasAttribute(ts)||d.hasAttribute(ns))&&(D==null||D<=0)&&de!=null&&(D=de)}let ne=D!=null&&D>0?w+D:Number.POSITIVE_INFINITY;return h>=w&&(Number.isFinite(ne)?h<ne:!0)},we=!!document.querySelector("[data-composition-src]"),q=!1;{let d=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let h of d){let g=h.getAttribute("data-composition-id");if(g&&h.children.length===0&&document.querySelector(`template#${CSS.escape(g)}-template`)){q=!0;break}}}let P=!we&&!q,O=d=>{if(!d||typeof d.duration!="function")return null;try{let h=Number(d.duration());return Number.isFinite(h)?Math.max(0,h):null}catch{return null}},j=d=>typeof d=="number"&&Number.isFinite(d)&&d>F,le=d=>{let h=ve(d.getAttribute("data-duration"));return h!=null&&h>0?h:Number.isFinite(d.duration)?Ze(d,d.duration):null},ee=()=>{let d=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(d.length===0)return null;let h=0;for(let g of d){let y=z(g);if(!Number.isFinite(y))continue;let w=le(g);w==null||w<=F||(h=Math.max(h,Math.max(0,y)+w))}return h>F?h:null},K=()=>{let d=U();if(!d)return null;let h=window.__timelines??{},g=mt({timelineRegistry:h,includeAuthoredTimingAttrs:!0}),y=0,w=ve(d.getAttribute("data-duration"));w!=null&&w>0&&(y=w);let D=Array.from(d.querySelectorAll("[data-composition-id][data-start]"));for(let B of D){if(!(B instanceof Element)||B.parentElement?.closest("[data-composition-id]")!==d)continue;let $=g.resolveStartForElement(B,0),de=g.resolveDurationForElement(B);!Number.isFinite($)||de==null||de<=0||(y=Math.max(y,Math.max(0,$)+de))}return y>F?y:null},Y=()=>{let d=ee();return typeof d!="number"||!Number.isFinite(d)||d<=F?null:d},Ve=d=>j(d)?Math.max(F,d*E):F,Fe=()=>{let d=0;for(let h of e.deterministicAdapters){let g=h.getInferredDurationSeconds;if(typeof g!="function")continue;let y=null;try{y=g()}catch(w){L("runtime.init.adapterDuration",w)}typeof y=="number"&&Number.isFinite(y)&&y>0&&(d=Math.max(d,y))}return d>F?d:null},Re=(d,h=0)=>{let g=O(d),y=Y(),w=K(),D=Fe(),B=Math.max(y??0,w??0,D??0),ne=Number.isFinite(h)&&h>F?h:0,$=0;return j(g)?$=Math.max(g,B,ne):j(B)?$=Math.max(B,ne):$=ne,$>0?Math.max(0,$):0},ze=()=>{let d=window.__timelines??{},h=ae=>{let re=Object.entries(d).filter(se=>!!se[1]&&typeof se[1].play=="function"&&typeof se[1].pause=="function");if(re.length!==1)return{timeline:null};let he=re[0];if(!he)return{timeline:null};let[be,fe]=he;return{timeline:fe,selectedTimelineIds:[be],selectedDurationSeconds:O(fe),diagnostics:{code:"root_timeline_sole_registered_fallback",details:{reason:ae,soleTimelineId:be}}}},g=mt({timelineRegistry:d,includeAuthoredTimingAttrs:!0}),y=Y(),w=K(),D=Math.max(y??0,w??0)||null,B=Ve(D),ne=ae=>{let re=document.querySelector(`[data-composition-id="${CSS.escape(ae)}"]`);return re?g.resolveStartForElement(re,0):0},$=ae=>{let re=window.gsap;if(!re||typeof re.timeline!="function")return null;let he=re.timeline({paused:!0});for(let be of ae)he.add(be.timeline,ne(be.compositionId));return he},de=(ae,re)=>{if(!j(ae))return null;let he=window.gsap;if(!he||typeof he.timeline!="function")return null;let be=he.timeline({paused:!0});if(re)try{be.add(re,0)}catch(se){L("runtime.init.site2",se)}let fe=be;if(typeof fe.to=="function")try{fe.to({},{duration:ae})}catch(se){L("runtime.init.site3",se)}return be},Ge=(ae,re)=>{let he=ae;if(typeof he.getChildren!="function")return[];try{let be=he.getChildren(!0,!0,!0)??[];if(!Array.isArray(be))return[];let fe=[];for(let se of re)if(!be.some(Qe=>Qe===se.timeline))try{let Qe=ne(se.compositionId);ae.add(se.timeline,Qe),fe.push(se.compositionId)}catch(Qe){L("runtime.init.site4",Qe)}return fe}catch{return[]}},Me=U(),J=Me?.getAttribute("data-composition-id")??null;if(!J)return h("root_missing_composition_id");let te=d[J]??null,ye=(()=>{if(!Me)return[];let ae=new Set,re=Array.from(Me.querySelectorAll("[data-composition-id]")),he=[];for(let be of re){let fe=be.getAttribute("data-composition-id");if(!fe||fe===J||ae.has(fe))continue;ae.add(fe);let se=d[fe]??null;if(!se||typeof se.play!="function"||typeof se.pause!="function")continue;let lt=O(se);he.push({compositionId:fe,timeline:se,durationSeconds:lt??0})}return he})(),gn=ae=>{for(let re of ae){let he=re.timeline;if(typeof he.paused=="function")try{he.paused(!1)}catch(be){L("runtime.init.site5",be)}}};if(ye.length>0&&gn(ye),te){let ae=ye.length>0?Ge(te,ye):[];if((ye.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+J+"\'])"))&&(Pi=!0),ae.length>0)try{let fe=te.time();te.seek(fe,!1)}catch{}let re=O(te);if(!j(re)&&ye.length>0){let fe=ye.map(Lm=>Lm.compositionId),se=$(ye),lt=O(se);if(se&&j(lt))return{timeline:se,selectedTimelineIds:fe,selectedDurationSeconds:lt,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:J,rootDurationSeconds:re,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:B,selectedDurationSeconds:lt,mediaDurationFloorSeconds:y,authoredCompositionDurationFloorSeconds:w,selectedTimelineIds:fe,autoNestedChildren:ae}}};let Qe=de(D??0,te),Ki=O(Qe);if(Qe&&j(Ki))return{timeline:Qe,selectedTimelineIds:[J],selectedDurationSeconds:Ki,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:J,rootDurationSeconds:re,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:y,authoredCompositionDurationFloorSeconds:w,selectedDurationSeconds:Ki,selectedTimelineIds:[J],autoNestedChildren:ae}}}}if(!j(re)&&ye.length===0){let fe=de(D??0,te),se=O(fe);if(fe&&j(se))return{timeline:fe,selectedTimelineIds:[J],selectedDurationSeconds:se,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:J,rootDurationSeconds:re,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:y,authoredCompositionDurationFloorSeconds:w,selectedDurationSeconds:se,selectedTimelineIds:[J]}}}}let he=ve(Me?.getAttribute("data-duration")),be=Math.max(j(he)?he:0,w??0);if(be>0&&j(be)&&j(re)&&be>=re+.5){let fe=te;if(typeof fe.to=="function")try{fe.to({},{duration:0},be)}catch(lt){L("runtime.init.site6",lt)}let se=O(te);if(j(se))return{timeline:te,selectedTimelineIds:[J],selectedDurationSeconds:se,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:J,rootDurationSeconds:re,rootDeclaredDur:he,authoredCompositionDurationFloorSeconds:w,newDur:se}}}}return{timeline:te,selectedTimelineIds:[J],selectedDurationSeconds:re,mediaDurationFloorSeconds:y,diagnostics:ae.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:J,selectedDurationSeconds:re,autoNestedChildren:ae}}:void 0}}if(ye.length>0){let ae=ye.map(be=>be.compositionId),re=$(ye),he=O(re);if(re)return{timeline:re,selectedTimelineIds:ae,selectedDurationSeconds:he,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:J,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:B,selectedDurationSeconds:he,mediaDurationFloorSeconds:y,selectedTimelineIds:ae}}}}return h("root_composition_id_unmatched_in_registry")},Pi=!1,fm=d=>{let h=window.gsap,g=d;if(!(!g||typeof g.getChildren!="function"||!h||typeof h.parseEase!="function"))for(let y of g.getChildren(!0,!0,!0)){let w=y,D=w.timeline;if(!D||!("_ease"in D)||typeof D._ease=="function")continue;let B=w.vars?.keyframes,$=(B&&!Array.isArray(B)?B.ease:void 0)??w.vars?.ease??"none";try{let de=h.parseEase($);typeof de=="function"&&(D._ease=de)}catch(de){Ne("keyframe_ease_repair_failed",{ease:typeof $=="string"?$:String($)}),L("runtime.keyframeEase.repair",de)}}},dn=()=>{if(v(),!P)return!1;let d=e.capturedTimeline,h=O(d),g=j(h);if(d&&g&&Pi)return!1;let y=ze();if(!y.timeline)return!1;if(d&&d===y.timeline)return typeof d.timeScale=="function"&&d.timeScale(e.playbackRate),!1;e.capturedTimeline=y.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate),fm(e.capturedTimeline);let w=Re(e.capturedTimeline,0);if(w<=0&&typeof e.capturedTimeline.progress=="function"&&(e.capturedTimeline.progress(1,!0),e.capturedTimeline.progress(0,!1),at(e.capturedTimeline)),w>0){try{c.setDuration(w)}catch{}if(typeof e.capturedTimeline.totalTime=="function"){typeof e.capturedTimeline.progress=="function"&&e.capturedTimeline.progress(1e-4,!0);let B=Math.max(0,e.currentTime||0);e.capturedTimeline.totalTime(B,!1),at(e.capturedTimeline)}let D=window.__hfStudioManualEditsApply;typeof D=="function"&&D(),ci(document)}if(y.diagnostics&&xe({source:"hf-preview",type:"diagnostic",code:y.diagnostics.code,details:y.diagnostics.details}),xe({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:y.selectedTimelineIds??[],selectedDurationSeconds:y.selectedDurationSeconds??null,mediaDurationFloorSeconds:y.mediaDurationFloorSeconds??null}}),window.parent!==window){let D=U(),B=w>0?w:0,ne=String(B>0?B:1),$=new Set,de=J=>J.tagName.toLowerCase()===Wt,Ge=new Set(document.querySelectorAll("[data-start]")),Me=J=>{let te=J.parentElement;for(;te&&te!==D;){if(Ge.has(te))return!0;te=te.parentElement}return!1};if(e.capturedTimeline.getChildren)try{for(let J of e.capturedTimeline.getChildren(!0))if(typeof J.targets=="function")for(let te of J.targets())te instanceof HTMLElement&&te!==D&&(de(te)||te.hasAttribute("data-start")||Me(te)||$.has(te)||($.add(te),te.setAttribute("data-start","0"),te.setAttribute("data-duration",ne),te.setAttribute("data-hf-autostamped","1")))}catch{}if(D instanceof HTMLElement)for(let J of D.querySelectorAll("[id]"))J instanceof HTMLElement&&J!==D&&(J.hasAttribute("data-start")||Me(J)||$.has(J)||J.tagName==="SCRIPT"||J.tagName==="STYLE"||J.tagName==="LINK"||de(J)||($.add(J),J.setAttribute("data-start","0"),J.setAttribute("data-duration",ne),J.setAttribute("data-hf-autostamped","1")))}for(let D of fn)hr.delete(D),xs(D);return!0};window.__hfForceTimelineRebind=()=>{Pi=!1,dn(),Ui(e.currentTime)};let mm=()=>{let d=U();if(!(d instanceof HTMLElement))return;let h=d.getBoundingClientRect(),g=Number(d.getAttribute("data-width")),y=Number(d.getAttribute("data-height")),w=window.getComputedStyle(d),D=Number.isFinite(g)&&g>0&&Number.isFinite(y)&&y>0,B=h.width<=0||h.height<=0||d.clientWidth<=0||d.clientHeight<=0;!D||!B||T("root_stage_layout_zero",{compositionId:d.getAttribute("data-composition-id")??null,declaredWidth:g,declaredHeight:y,rectWidth:Math.round(h.width),rectHeight:Math.round(h.height),clientWidth:d.clientWidth,clientHeight:d.clientHeight,display:w.display,visibility:w.visibility,overflow:w.overflow},`root-stage-layout-zero:${d.getAttribute("data-composition-id")??"unknown"}`)},pm=()=>{e.tornDown||(l!=null&&window.cancelAnimationFrame(l),l=window.requestAnimationFrame(()=>{l=null,mm()}))},hm=()=>{r=d=>{let h=N(d.error??d.message).slice(0,C);if(!h)return;let g=I(h);xe({source:"hf-preview",type:"diagnostic",code:g.code,details:{category:g.category,message:h,filename:d.filename||null,line:Number.isFinite(d.lineno)?d.lineno:null,column:Number.isFinite(d.colno)?d.colno:null}})},i=d=>{let h=N(d.reason).slice(0,C);if(!h)return;let g=I(h);xe({source:"hf-preview",type:"diagnostic",code:`${g.code}_unhandled_rejection`,details:{category:`${g.category}-unhandled-rejection`,message:h}})},window.addEventListener("error",r),window.addEventListener("unhandledrejection",i)},gm=()=>{let d=Array.from(document.querySelectorAll("img, video, audio, source, link[rel=\'stylesheet\']"));for(let g of d){let y=()=>{if(!(g instanceof Element))return;let w=g.tagName.toLowerCase(),D=g.getAttribute("src")??g.getAttribute("href")??g.getAttribute("poster")??null,B=w==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";T(B,{tagName:w,assetUrl:D,currentSrc:(g instanceof HTMLImageElement||g instanceof HTMLMediaElement)&&g.currentSrc||null,readyState:g instanceof HTMLMediaElement?g.readyState:null,networkState:g instanceof HTMLMediaElement?g.networkState:null},`${B}:${w}:${D??"unknown"}`)};g.addEventListener("error",y),R(()=>{g.removeEventListener("error",y)})}let h=document.fonts;h&&h.ready.then(()=>{if(e.tornDown)return;let g=Array.from(h).filter(y=>y.status==="error").map(y=>y.family).filter(y=>!!y).slice(0,10);g.length!==0&&T("runtime_font_load_issue",{failedFamilies:g,totalFaces:Array.from(h).length},`runtime-font-load-issue:${g.join("|")}`)}).catch(()=>{})},bm=(d,h)=>{if(!d.timeline)return!1;let g=e.capturedTimeline;if(g&&g===d.timeline)return!1;let y=Math.max(0,e.currentTime||0),w=e.isPlaying;e.capturedTimeline=d.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate);try{at(e.capturedTimeline),typeof e.capturedTimeline.seek=="function"&&e.capturedTimeline.seek(y,!1),w&&typeof e.capturedTimeline.play=="function"&&e.capturedTimeline.play()}catch(D){L("runtime.init.site7",D)}return xe({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:h,previousTime:y,selectedTimelineIds:d.selectedTimelineIds??[],selectedDurationSeconds:d.selectedDurationSeconds??null,mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),!0},Et=null,fs=!1,ms=!1,fn=new Set,hr=new WeakMap,gr=()=>{e.tornDown||(Et!=null&&window.clearTimeout(Et),Et=window.setTimeout(()=>{if(e.tornDown||(Et=null,ms&&window.__HF_EXPORT_RENDER_SEEK_CONFIG))return;let d=ze();if(!d.timeline||!j(d.mediaDurationFloorSeconds??null))return;if(!e.capturedTimeline){dn()&&(wt(),ke(!0));return}if(fs)return;let g=O(e.capturedTimeline),y=d.selectedDurationSeconds??O(d.timeline);j(y)&&(!j(g)||y>=g+S)&&bm(d,"manual")&&(fs=!0,xe({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:g??null,selectedDurationSeconds:y??null,selectedTimelineIds:d.selectedTimelineIds??[],mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),wt(),ke(!0))},A))},ps=d=>{d.currentTarget instanceof HTMLMediaElement&&Ol(d.currentTarget)},hs=d=>{d.currentTarget instanceof HTMLMediaElement&&Hl(d.currentTarget)},gs=d=>{d instanceof HTMLAudioElement&&gf(d)&&ln(d,sn(d))},bs=d=>{let h=d.currentTarget;h instanceof HTMLMediaElement&&gs(h)},xm=()=>{for(let d of fn)d.removeEventListener("loadedmetadata",gr),d.removeEventListener("durationchange",gr),d.removeEventListener("loadedmetadata",ps),d.removeEventListener("loadedmetadata",bs),d.removeEventListener("error",hs);fn.clear()},Oi=()=>{if(e.tornDown)return;let d=Array.from(document.querySelectorAll("video, audio"));for(let h of d){if(fn.has(h))continue;fn.add(h);let g=Number.parseFloat(h.dataset.volume??"");Number.isFinite(g)&&(h.volume=Math.max(0,Math.min(1,g))),h.addEventListener("loadedmetadata",gr),h.addEventListener("durationchange",gr),h.addEventListener("loadedmetadata",bs),gs(h),h.addEventListener("loadedmetadata",ps),h.addEventListener("error",hs),Pl(h),h.preload!=="auto"&&(h.preload="auto"),h.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&h.load(),xs(h)}},xs=d=>{hr.has(d)||gl(d,e.capturedTimeline,Re(e.capturedTimeline,0),hr,{allowLiveTimelineSeek:!window.__HF_RENDER_CAPTURE_MODE})},Hi=new WeakMap,ys=d=>{let h=Hi.get(d);if(h!==void 0)return h;let g=window.getComputedStyle(d).position,y=g==="static"||g==="relative"||g==="sticky";return Hi.set(d,y),y},Gi=new WeakMap,ym=d=>{let h=Gi.get(d);if(h!==void 0)return h;let g=d.querySelector("[data-start]")===null;return Gi.set(d,g),g},vm=()=>{Hi=new WeakMap,Gi=new WeakMap},Bi=new WeakMap,br=new WeakSet,xr=!1,vs=d=>d.matches("audio[data-start]")||d.querySelector("audio[data-start]")!==null,Ss=new WeakMap,yr=!0,Sm=()=>{if(yr){yr=!1;for(let d of document.querySelectorAll(Wt)){let h=d.hasAttribute("data-hidden");Ss.get(d)!==h&&(Ss.set(d,h),d.id&&m.setGroupMuted(d.id,h))}}},Ui=(d,h=Array.from(document.querySelectorAll("[data-start]")))=>{let g=U();for(let y of h){if(!(y instanceof HTMLElement))continue;if(y.hasAttribute("data-hidden")){br.has(y)||(Bi.set(y,y.style.getPropertyValue("display")),br.add(y),vs(y)&&(xr=!0),yr=!0),y.style.display="none",(y instanceof HTMLVideoElement||y instanceof HTMLImageElement)&&n?.setSourceVisibility(y,!1);continue}if(br.has(y)){let D=Bi.get(y);D?y.style.display=D:y.style.removeProperty("display"),Bi.delete(y),br.delete(y),vs(y)&&(xr=!0),yr=!0}let w=X(y,d);if(w){let D=y.parentElement;for(;D&&D!==g;){if(D instanceof HTMLElement&&D.hasAttribute("data-start")&&!X(D,d)){w=!1;break}D=D.parentElement}}y.style.visibility=w?"visible":"hidden",(y instanceof HTMLVideoElement||y instanceof HTMLImageElement)&&n?.setSourceVisibility(y,w),w?ys(y)&&y.style.removeProperty("display"):ys(y)&&ym(y)&&(y.style.display="none")}xr&&c.isPlaying()&&(m.stopAll(),$i()),xr=!1,Sm()},Pe=()=>{let d=Fl({shouldIncludeElement:g=>g.hasAttribute("data-start")||!!H(g).compositionRoot,resolveStartSeconds:g=>z(g),resolveDurationSeconds:g=>{let y=H(g),w=z(g),D=y.inheritedStart!=null&&y.inheritedDuration!=null&&y.inheritedDuration>0?Math.max(0,y.inheritedStart+y.inheritedDuration-w):null,B=Number.isFinite(g.duration)?Ze(g,g.duration):null,ne=ve(g.dataset.duration),$=ne!=null&&ne>0?ne:null;return Ml({isVideo:g.tagName==="VIDEO",sourceDuration:B,hostRemaining:D,explicitDuration:$})}});for(let g of d.mediaClips){let y=hr.get(g.el);y&&(g.volumeKeyframes=y)}let h=e.mediaForceSyncNextTick;h&&(e.mediaForceSyncNextTick=!1),e.nativeMediaSyncDisabled||Nl({clips:d.mediaClips,timeSeconds:e.currentTime,playing:e.isPlaying,playbackRate:e.playbackRate,outputMuted:e.mediaOutputMuted,userMuted:e.bridgeMuted,userVolume:e.bridgeVolume,forceSync:h,onElementVolume:(g,y,w)=>m.setElementVolume(g,w),isWebAudioOwned:g=>m.ownsElement(g),isWebAudioRouted:g=>m.routesElement(g),onAutoplayBlocked:()=>{e.mediaAutoplayBlockedPosted||(e.mediaAutoplayBlockedPosted=!0,xe({source:"hf-preview",type:"media-autoplay-blocked"}))}}),Ui(e.currentTime)},ke=d=>{let h=Math.max(0,Math.round((e.currentTime||0)*e.canonicalFps)),g=Date.now();(d||h!==e.bridgeLastPostedFrame||e.isPlaying!==e.bridgeLastPostedPlaying||e.bridgeMuted!==e.bridgeLastPostedMuted||g-e.bridgeLastPostedAt>=e.bridgeMaxPostIntervalMs)&&(e.bridgeLastPostedFrame=h,e.bridgeLastPostedPlaying=e.isPlaying,e.bridgeLastPostedMuted=e.bridgeMuted,e.bridgeLastPostedAt=g,xe({source:"hf-preview",type:"state",frame:h,isPlaying:e.isPlaying,muted:e.bridgeMuted,playbackRate:e.playbackRate}))},Wi="",As=0,Am=()=>{let d="";for(let h of document.querySelectorAll("[data-start]"))d+=`${h.id}:${h.tagName}|`;return d},wt=()=>{k(),oe(),V();let d=U();if(d){let y=W(d.getAttribute("data-width")),w=W(d.getAttribute("data-height")),D=y?parseInt(y,10):0,B=w?parseInt(w,10):0;D>0&&B>0&&xe({source:"hf-preview",type:"stage-size",width:D,height:B})}dn();let h=Su({canonicalFps:e.canonicalFps});window.__clipManifest=h;let g=Am();if(Wi!==g&&vm(),!window.__clipTree||Wi!==g){let y=window;window.__clipTree=bu({startResolver:mt({timelineRegistry:y.__timelines??{},includeAuthoredTimingAttrs:!0}),timelineRegistry:y.__timelines??{},rootDuration:h.durationInFrames/e.canonicalFps}),Wi=g}xe(h),pm()},Vi=d=>typeof d=="number"&&Number.isFinite(d)&&d>0?d:0,Em=d=>{let h=Vi(Number(d));if(h<=0)return;let g=U(),y=Vi(ve(g?.getAttribute("data-duration"))),w=Math.max(As,Vi(c.getDuration()),y);h<=w||(As=h,g?.setAttribute("data-duration",String(h)),c.setDuration(h),wt(),ke(!0))},Oe=(d,h=0)=>{for(let g of e.deterministicAdapters){try{d==="discover"&&g.discover(),d==="pause"&&g.pause(),d==="play"&&g.play&&g.play()}catch(y){L("runtime.init.site8",y)}if(d==="discover")try{g.seek({time:h,suppressEvents:!0})}catch(y){L("runtime.init.site9",y)}}},Ct=()=>{window.__renderReady=!1},mn=null,pn=!0,wm=()=>{let d=[];for(let h of e.deterministicAdapters){let g=h.getReadyPromise;if(typeof g=="function")try{let y=g();y&&d.push(y)}catch(y){L("runtime.init.adapterReady",y)}}return d},Cm=()=>{let d=wm();if(d.length===0)return mn=null,pn=!0,!0;let h=d[0];if(!h)return!0;let g=d.length===1?h:Promise.all(d);return g!==mn&&(mn=g,pn=!1,Promise.resolve(g).then(()=>{mn===g&&(pn=!0,Ct())},y=>{mn===g&&(pn=!0,L("runtime.init.adapterReady",y),Ct())})),pn};if(P)Ca();else{let d={injectedStyles:e.injectedCompStyles,injectedScripts:e.injectedCompScripts,injectedLinks:e.injectedCompLinks,parseDimensionPx:W,onDiagnostic:({code:h,details:g})=>{xe({source:"hf-preview",type:"diagnostic",code:h,details:g})}};fd(d).then(()=>dd(d)).finally(()=>{P=!0,Oi(),gm(),Ca(),Na(document),Ct()})}let vr=fu({postMessage:d=>xe(d)});vr.installPickerApi(),Ui(e.currentTime,Array.from(document.querySelectorAll("video[data-start], img[data-start]")));let qe=Jd();n=qe,R(()=>{qe.destroy(),n=null});let zi=d=>{let h=Number(d);!Number.isFinite(h)||h<=0?e.playbackRate=1:e.playbackRate=Math.max(.1,Math.min(5,h)),e.mediaForceSyncNextTick=!0,e.capturedTimeline&&typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate);let g=document.querySelectorAll("video, audio");for(let y of g)if(y instanceof HTMLMediaElement)try{y.playbackRate=e.playbackRate}catch(w){L("runtime.init.site10",w)}},Es={play:()=>{let d=e.capturedTimeline;if(c.isPlaying())return;let h=Re(d,0);if(h>0)c.setDuration(h),c.reachedEnd()&&(c.seek(0),e.currentTime=0,_t(0));else{let g=U(),y=Number(g?.getAttribute("data-duration")??0);y>0&&c.setDuration(y)}at(d),c.play()&&(e.isPlaying=!0,e.mediaForceSyncNextTick=!0,ks(c.now()),f&&!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&$i(),Oe("play"),Pe(),qe.redraw(),ke(!0))},pause:()=>{if(!c.isPlaying())return;m.stopAll(),c.detachAudioSource(),c.pause(),e.isPlaying=!1,e.currentTime=c.now(),e.mediaForceSyncNextTick=!0,ks(e.currentTime);let d=e.capturedTimeline;at(d),Oe("pause"),Pe(),qe.redraw(),ke(!0)},seek:(d,h)=>{let g=jt(Math.max(0,Number(d)||0),e.canonicalFps);m.stopAll(),c.detachAudioSource();let y=c.isPlaying();y&&c.pause(),c.seek(g),e.currentTime=c.now(),e.isPlaying=!1,e.mediaForceSyncNextTick=!0;let w=e.capturedTimeline;if(at(w),_t(e.currentTime),Oe("pause"),h?.keepPlaying&&y){Es.play();return}Pe(),qe.redraw(),ke(!0)},renderSeek:(d,h)=>{ms=!0;let g=jt(Math.max(0,Number(d)||0),e.canonicalFps);m.stopAll(),c.detachAudioSource(),c.isPlaying()&&c.pause(),c.seek(g),e.currentTime=c.now(),e.isPlaying=!1,e.mediaForceSyncNextTick=!0,_t(e.currentTime,{activateChildren:!0,suppressEvents:h?.suppressEvents}),Oe("pause"),Pe(),qe.redraw(),ke(!0)},getTime:()=>c.now(),getDuration:()=>{let d=c.getDuration();return Number.isFinite(d)?d:0},isPlaying:()=>c.isPlaying(),setPlaybackRate:d=>{zi(d),c.setRate(e.playbackRate),Ms()},getPlaybackRate:()=>e.playbackRate},ws=Re(e.capturedTimeline,0);ws>0&&c.setDuration(ws);let He=hu({getTimeline:()=>e.capturedTimeline,setTimeline:d=>{e.capturedTimeline=d},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>e.isPlaying,setIsPlaying:d=>{e.isPlaying!==d&&(e.mediaForceSyncNextTick=!0),e.isPlaying=d},getPlaybackRate:()=>e.playbackRate,setPlaybackRate:zi,getCanonicalFps:()=>e.canonicalFps,onSyncMedia:(d,h)=>{e.currentTime=Math.max(0,Number(d)||0),e.isPlaying!==h&&(e.mediaForceSyncNextTick=!0),e.isPlaying=h,Pe()},onStatePost:ke,onDeterministicSeek:(d,h)=>{for(let g of e.deterministicAdapters)if(!(g.name==="gsap"&&e.capturedTimeline))try{g.seek({time:Number(d)||0,suppressEvents:h?.suppressEvents})}catch(y){L("runtime.init.site11",y)}},onDeterministicPause:()=>Oe("pause"),onDeterministicPlay:()=>Oe("play"),onRenderFrameSeek:()=>{qe.redraw()},onShowNativeVideos:()=>{},getSafeDuration:()=>Re(e.capturedTimeline,0),transport:Es});window.__player=M(He),window.__playerReady=!0,Ne("composition_loaded",{duration:He.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),e.deterministicAdapters=[ll(),zs({resolveStartSeconds:d=>Q(d,0)}),$s(),Ks(),Js(),Qs(),Zs(),el(),tl(),nl(),rl(),qs({getTimeline:()=>e.capturedTimeline})],al(),sl(),window.__hfReseekGpu=d=>{let h=Math.max(0,Number(d)||0);window.__hfThreeTime=h,window.__hfTypegpuTime=h,Rr(h)},window.__hfWaitForSeekCompletion=oo,o.push(()=>{window.__hfWaitForSeekCompletion===oo&&delete window.__hfWaitForSeekCompletion}),hm(),Oi(),Oe("discover");let _m=()=>{let d=e.capturedTimeline,h=dn();e.capturedTimeline&&(h||e.capturedTimeline!==d||!He._timeline)&&(He._timeline=e.capturedTimeline);let g=Re(e.capturedTimeline,0);if(g>0&&c.setDuration(g),Oe("discover",e.currentTime),!e.capturedTimeline){let y=window.__timelines??{},w=Object.keys(y).filter(D=>y[D]);if(w.length>0){let B=U()?.getAttribute("data-composition-id")??null;T("root_timeline_unbound_registry_present",{reason:B?"root data-composition-id has no matching key in window.__timelines":"root composition element has no data-composition-id attribute",rootCompositionId:B,registeredTimelineKeys:w},"root_timeline_unbound_registry_present"),console.warn("[hyperframes] Root timeline not bound \\u2014 render will freeze at t=0. "+(B?`Root data-composition-id is "${B}" but window.__timelines has no such key. `:"Root composition element has no data-composition-id. ")+`Registered timeline keys: [${w.join(", ")}]. Register the root timeline under its data-composition-id (window.__timelines["${B??"<root-id>"}"] = tl).`)}}window.__renderReady=!0,wt(),ke(!0)},Pt=null,Tm=()=>{if(Pt)return;let d=()=>{window.removeEventListener("hf-timelines-built",d),Pt=null,Ct()};Pt=d,window.addEventListener("hf-timelines-built",d)};R(()=>{Pt&&(window.removeEventListener("hf-timelines-built",Pt),Pt=null)}),Ct=()=>{if(!P){window.__renderReady=!1;return}if(window.__hfTimelinesBuilding){window.__renderReady=!1,Tm();return}if(Oe("discover",e.currentTime),!Cm()){window.__renderReady=!1;return}_m()},Ct(),P&&setTimeout(()=>{Ct()},0);let Sr=0,qi=!1,Rm=(d,h,g,y)=>{try{let w=y?.suppressEvents===!0;at(d),typeof d.totalTime=="function"?d.totalTime(h,w):d.seek(h,w)}catch(w){L(g,w)}},km=(d,h)=>{let g=window.__timelines??{},y=U()?.getAttribute("data-composition-id")??null;for(let[w,D]of Object.entries(g)){if(!D||w===y)continue;let B=document.querySelector(`[data-composition-id="${CSS.escape(w)}"]`);if(!B)continue;let ne=Q(B,0);if(!Number.isFinite(ne))continue;let $=O(D),de=je(B)+Math.max(0,d-ne)*Ce(B),Ge=Math.max(0,$!=null&&$>0?Math.min($,de):de);Rm(D,Ge,"runtime.init.transport.childTimeline",h)}},Cs=d=>{let h=window.__timelines??{};for(let g of Object.values(h))if(!(!g||g===d))try{g.play()}catch(y){L("runtime.init.activateSiblings",y)}},_s=d=>typeof d=="object"&&d!==null,hn=new WeakMap,Mm=["onStart","onUpdate","onComplete","onReverseComplete","onRepeat"],Ts=(d,h)=>{let g=d[h];if(typeof g!="function")return null;try{let y=Number(g.call(d));return Number.isFinite(y)?y:null}catch(y){return L("runtime.init.gsapCallbackDuration",y),null}},Fm=d=>{let h=hn.get(d);if(h!=null)return h;if(!("getChildren"in d)||typeof d.getChildren!="function")return!1;let g;try{g=d.getChildren(!0,!0,!0)}catch(y){return L("runtime.init.gsapCallbackChildren",y),hn.set(d,!1),!1}if(!Array.isArray(g))return hn.set(d,!1),!1;for(let y of g){if(!_s(y))continue;let w=y.vars;if(!_s(w)||!Mm.some($=>typeof w[$]=="function"))continue;let ne=Ts(y,"totalDuration")??Ts(y,"duration");if(ne!=null&&ne<=1e-6)return hn.set(d,!0),!0}return hn.set(d,!1),!1};function _t(d,h){let g=e.capturedTimeline,y=h?.suppressEvents===!0;if(g){h?.activateChildren&&Cs(g);let w=g,D=d;if(typeof w.totalDuration=="function")try{let B=Number(w.totalDuration());Number.isFinite(B)&&B>0&&d>B&&(D=B)}catch(B){L("runtime.init.transport.clampDuration",B)}try{typeof g.totalTime=="function"?(g.totalTime(D,y),!y&&!Fm(g)&&(g.totalTime(D+.001,!0),g.totalTime(D,!0))):g.seek(D,y)}catch(B){L("runtime.init.transport.seek",B)}}km(d,h),g&&h?.activateChildren&&Cs(g);for(let w of e.deterministicAdapters)if(!(w.name==="gsap"&&g))try{w.seek({time:d,suppressEvents:y})}catch(D){L("runtime.init.transport.adapter",D)}}let Nm=()=>{try{return document.querySelector(`[${xf}]`)!=null}catch{return!1}},Rs=()=>{if(!(e.tornDown||qi)){qi=!0;try{if(e.transportRafId=window.requestAnimationFrame(Rs),Sr+=1,yf({tick:Sr,isPlaying:c.isPlaying(),hasCapturedTimeline:e.capturedTimeline!=null,currentTimeSeconds:c.now()})){let h=e.capturedTimeline;if(dn()){e.capturedTimeline&&!He._timeline&&(He._timeline=e.capturedTimeline),e.capturedTimeline&&e.capturedTimeline!==h&&at(e.capturedTimeline);let g=Re(e.capturedTimeline,0);g>0&&c.setDuration(g),wt()}}if(Sr%20===0&&wt(),Sr%30===0&&Oi(),e.capturedTimeline){let h=Re(e.capturedTimeline,0);h>0&&(!c.isPlaying()||h>=c.getDuration())&&c.setDuration(h)}if(c.isPlaying()&&!e.mediaOutputMuted)if(!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&m.isActive()&&m.context){let h=m.getTime();h>=0&&c.attachAudioSource({currentTimeSeconds:h})}else{let h=document.querySelectorAll("audio[data-start]"),g=!1;for(let y of h){if(!(y instanceof HTMLMediaElement)||!y.isConnected||p(y))continue;let w=Number.parseFloat(y.dataset.start??""),D=ve(y.dataset.duration),B=D!=null&&D>0?w+D:1/0,ne=je(y);if(Number.isFinite(w)&&e.currentTime>=w&&e.currentTime<B){y.paused?!y.error&&y.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(c.attachAudioSource({currentTimeSeconds:e.currentTime}),g=!0):(c.attachAudioSource({el:y,compositionStart:w,mediaStart:ne}),g=!0);break}}!g&&c.hasAudioSource()&&c.detachAudioSource()}else c.hasAudioSource()&&c.detachAudioSource();let d=c.now();if(e.currentTime=d,(c.isPlaying()||!Nm())&&_t(d),c.isPlaying()&&qe.redrawAnimated(),c.isPlaying()&&c.reachedEnd()){m.stopAll(),c.detachAudioSource(),c.pause(),e.isPlaying=!1;let h=c.getDuration();Number.isFinite(h)&&(c.seek(h),e.currentTime=h,_t(h)),Oe("pause"),Pe(),ke(!0);return}c.isPlaying()&&Pe(),ke(!1)}finally{qi=!1}}},ks=d=>{let h=document.querySelectorAll("video, audio");for(let g of h){if(!(g instanceof HTMLMediaElement)||!g.isConnected)continue;let y=Number.parseFloat(g.dataset.start??"");if(!Number.isFinite(y))continue;let w=ve(g.dataset.duration),D=w!=null&&w>0?y+w:1/0;if(d<y||d>=D)continue;let B=je(g),ne=d-y+B;if(ne>=0)try{g.currentTime=ne}catch{}}},$i=()=>{if(e.nativeMediaSyncDisabled||e.webAudioMediaDisabled)return;let d=m.startGeneration(),h=document.querySelectorAll("audio[data-start]");for(let g of h){if(!(g instanceof HTMLMediaElement)||!g.isConnected||p(g))continue;let y=Number.parseFloat(g.dataset.start??"");if(!Number.isFinite(y))continue;let w=je(g),D=Number.parseFloat(g.dataset.volume??""),B=Number.isFinite(D)?D:1,ne=ve(g.dataset.duration),$=ne!=null&&ne>0?ne:Number.POSITIVE_INFINITY,de=g.closest("[data-composition-id]");if(de){let J=Q(de,0),te=G(de,{includeAuthoredTimingAttrs:!0});te!=null&&te>0&&($=Math.min($,Math.max(0,J+te-y)))}let Ge=sn(g);ln(g,Ge),(Ge.kind==="web-audio"?m.scheduleMediaElementPlayback(g,y,w,c.now(),B,d,e.playbackRate):Promise.resolve(null)).then(J=>{if(J||!c.isPlaying())return;let te=e.playbackRate*Ce(g),Tt=g.hasAttribute("data-fx-chain")||g.hasAttribute("data-automation");if(Math.abs(te-1)>1e-9){Ge.kind==="web-audio"&&Tt&&(g.muted=!0);return}m.decodeAudioElement(g).then(ye=>{!ye||!c.isPlaying()||m.schedulePlayback(g,ye,y,w,c.now(),B,d,e.playbackRate,$)})})}};function Ms(){m.setRate(e.playbackRate)&&!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&f&&c.isPlaying()&&m.hasBoundedActiveSources()&&(m.stopAll(),$i())}if(e.capturedTimeline){let d=Re(e.capturedTimeline,0);d>0&&c.setDuration(d),at(e.capturedTimeline)}xd(window),e.transportRafId=window.requestAnimationFrame(Rs),wt(),ke(!0),e.controlBridgeHandler=Ds({onPlay:()=>{He.play(),Ne("composition_played",{time:He.getTime()})},onPause:()=>{He.pause(),Ne("composition_paused",{time:He.getTime()})},onStopMedia:()=>{m.stopAll();let d=document.querySelectorAll("video, audio");for(let h of d)h instanceof HTMLMediaElement&&!h.paused&&h.pause()},onSeek:(d,h)=>{He.seek(d),Ne("composition_seeked",{time:d})},onSetMuted:d=>{e.bridgeMuted=d;let h=d||e.mediaOutputMuted;m.setMuted(h);let g=document.querySelectorAll("video, audio");for(let y of g)y instanceof HTMLMediaElement&&(y.muted=h||y.defaultMuted)},onSetVolume:d=>{e.bridgeVolume=d,m.setVolume(d);let h=document.querySelectorAll("video, audio");for(let g of h){if(!(g instanceof HTMLMediaElement))continue;let y=parseFloat(g.dataset.volume??""),w=Number.isFinite(y)?y:1;g.volume=kr(w*d)}},onSetMediaOutputMuted:d=>{e.mediaOutputMuted=d;let h=d||e.bridgeMuted;m.setMuted(h);let g=document.querySelectorAll("video, audio");for(let y of g)y instanceof HTMLMediaElement&&(y.muted=h||y.defaultMuted)},onSetNativeMediaSyncDisabled:d=>{e.nativeMediaSyncDisabled!==d&&(e.nativeMediaSyncDisabled=d,e.mediaForceSyncNextTick=!0,d?(m.stopAll(),c.detachAudioSource()):Pe())},onSetWebAudioMediaDisabled:d=>{e.webAudioMediaDisabled!==d&&(e.webAudioMediaDisabled=d,e.mediaForceSyncNextTick=!0,d&&(m.stopAll(),c.detachAudioSource()),Pe())},onSetPlaybackRate:d=>{zi(d),e.transportClock&&e.transportClock.setRate(e.playbackRate),Ms()},onSetRootDuration:Em,onSetColorGrading:(d,h)=>{qe.setGrading(d,h)},onSetColorGradingCompare:(d,h)=>{qe.setCompare(d,h)},onTick:()=>{if(e.tornDown||!c.isPlaying())return;let d=c.now();if(e.currentTime=d,_t(d),c.reachedEnd()){m.stopAll(),c.detachAudioSource(),c.pause(),e.isPlaying=!1;let h=c.getDuration();Number.isFinite(h)&&(c.seek(h),e.currentTime=h,_t(h)),Oe("pause"),Pe(),ke(!0)}},onEnablePickMode:()=>vr.enablePickMode(),onDisablePickMode:()=>vr.disablePickMode(),onSetRuntimeData:Ti,onClearRuntimeData:Ri,getCanonicalFps:()=>e.canonicalFps});let ji=()=>{if(!e.tornDown){e.tornDown=!0,e.transportRafId!=null&&(window.cancelAnimationFrame(e.transportRafId),e.transportRafId=null),e.transportClock=null,m.destroy(),Et!=null&&(window.clearTimeout(Et),Et=null),l!=null&&(window.cancelAnimationFrame(l),l=null),xm(),e.controlBridgeHandler&&(window.removeEventListener("message",e.controlBridgeHandler),e.controlBridgeHandler=null),r&&(window.removeEventListener("error",r),r=null),i&&(window.removeEventListener("unhandledrejection",i),i=null),e.beforeUnloadHandler&&(window.removeEventListener("beforeunload",e.beforeUnloadHandler),e.beforeUnloadHandler=null),vr.disablePickMode();for(let d of e.deterministicAdapters)if(!(!d||typeof d.revert!="function"))try{d.revert()}catch(h){L("runtime.init.site12",h)}e.deterministicAdapters=[];for(let d of o.splice(0))try{d()}catch(h){L("runtime.init.site13",h)}for(let d of e.injectedCompStyles)try{d.remove()}catch(h){L("runtime.init.site14",h)}e.injectedCompStyles=[];for(let d of e.injectedCompLinks)try{d.remove()}catch(h){L("runtime.init.site15",h)}e.injectedCompLinks=[];for(let d of e.injectedCompScripts)try{d.remove()}catch(h){L("runtime.init.site16",h)}e.injectedCompScripts=[],e.capturedTimeline=null,window.__hfRuntimeTeardown===ji&&(window.__hfRuntimeTeardown=null)}};window.__hfRuntimeTeardown=ji,e.beforeUnloadHandler=ji,window.addEventListener("beforeunload",e.beforeUnloadHandler)}var Nf=["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"],rs=[[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 sy(e){if(e<=255)return Nf[e];let t=0,n=rs.length-1;for(;t<=n;){let r=t+n>>1,i=rs[r];if(e<i[0]){n=r-1;continue}if(e>i[1]){t=r+1;continue}return i[2]}return"L"}function ly(e){let t=e.length;if(t===0)return null;let n=new Array(t),r=!1;for(let u=0;u<t;){let c=e.charCodeAt(u),m=c,f=1;if(c>=55296&&c<=56319&&u+1<t){let b=e.charCodeAt(u+1);b>=56320&&b<=57343&&(m=(c-55296<<10)+(b-56320)+65536,f=2)}let p=sy(m);(p==="R"||p==="AL"||p==="AN")&&(r=!0);for(let b=0;b<f;b++)n[u+b]=p;u+=f}if(!r)return null;let i=0;for(let u=0;u<t;u++){let c=n[u];if(c==="L"){i=0;break}if(c==="R"||c==="AL"){i=1;break}}let o=new Int8Array(t);for(let u=0;u<t;u++)o[u]=i;let a=i&1?"R":"L",l=a,s=l;for(let u=0;u<t;u++)n[u]==="NSM"?n[u]=s:s=n[u];s=l;for(let u=0;u<t;u++){let c=n[u];c==="EN"?n[u]=s==="AL"?"AN":"EN":(c==="R"||c==="L"||c==="AL")&&(s=c)}for(let u=0;u<t;u++)n[u]==="AL"&&(n[u]="R");for(let u=1;u<t-1;u++)n[u]==="ES"&&n[u-1]==="EN"&&n[u+1]==="EN"&&(n[u]="EN"),n[u]==="CS"&&(n[u-1]==="EN"||n[u-1]==="AN")&&n[u+1]===n[u-1]&&(n[u]=n[u-1]);for(let u=0;u<t;u++){if(n[u]!=="EN")continue;let c;for(c=u-1;c>=0&&n[c]==="ET";c--)n[c]="EN";for(c=u+1;c<t&&n[c]==="ET";c++)n[c]="EN"}for(let u=0;u<t;u++){let c=n[u];(c==="WS"||c==="ES"||c==="ET"||c==="CS")&&(n[u]="ON")}s=l;for(let u=0;u<t;u++){let c=n[u];c==="EN"?n[u]=s==="L"?"L":"EN":(c==="R"||c==="L")&&(s=c)}for(let u=0;u<t;u++){if(n[u]!=="ON")continue;let c=u+1;for(;c<t&&n[c]==="ON";)c++;let m=u>0?n[u-1]:l,f=c<t?n[c]:l,p=m!=="L"?"R":"L";if(p===(f!=="L"?"R":"L"))for(let v=u;v<c;v++)n[v]=p;u=c-1}for(let u=0;u<t;u++)n[u]==="ON"&&(n[u]=a);for(let u=0;u<t;u++){let c=n[u];(o[u]&1)===0?c==="R"?o[u]++:(c==="AN"||c==="EN")&&(o[u]+=2):(c==="L"||c==="AN"||c==="EN")&&o[u]++}return o}function Lf(e,t){let n=ly(e);if(n===null)return null;let r=new Int8Array(t.length);for(let i=0;i<t.length;i++)r[i]=n[t[i]];return r}var uy=/[ \\t\\n\\r\\f]+/g,cy=/[\\t\\n\\r\\f]| {2,}|^ | $/;function dy(e){let t=e??"normal";return t==="pre-wrap"?{mode:t,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:t,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function fy(e){if(!cy.test(e))return e;let t=e.replace(uy," ");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 my(e){return/[\\r\\f]/.test(e)?e.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):e.replace(/\\r\\n/g,`\n`)}var is=null,py;function hy(){return is===null&&(is=new Intl.Segmenter(py,{granularity:"word"})),is}var gy=/\\p{Script=Arabic}/u,ki=/\\p{M}/u,Uf=/\\p{Nd}/u;function Df(e){return gy.test(e)}function If(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 We(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 r=e.charCodeAt(t+1);if(r>=56320&&r<=57343){let i=(n-55296<<10)+(r-56320)+65536;if(If(i))return!0;t++;continue}}if(If(n))return!0}}return!1}function by(e){let t=Ni(e);return t!==null&&(Fi.has(t)||vt.has(t))}var xy=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function yy(e){return We(e)}function vy(e){let t=Ni(e);return t!==null&&xy.has(t)}function Mi(e){return!by(e)&&!vy(e)}var Fi=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"]),pr=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),as=new Set(["\'","\\u2019"]),vt=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),Sy=new Set([":",".","\\u060C","\\u061B"]),Ay=new Set(["\\u104F"]),Ey=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function wy(e){if(ss(e))return!0;let t=!1;for(let n of e){if(vt.has(n)){t=!0;continue}if(!(t&&ki.test(n)))return!1}return t}function Cy(e){for(let t of e)if(!Fi.has(t)&&!vt.has(t))return!1;return e.length>0}function _y(e){if(ss(e))return!0;for(let t of e)if(!pr.has(t)&&!as.has(t)&&!ki.test(t))return!1;return e.length>0}function ss(e){let t=!1;for(let n of e)if(!(n==="\\\\"||ki.test(n))){if(pr.has(n)||vt.has(n)||as.has(n)){t=!0;continue}return!1}return t}function Wf(e,t){let n=t-1;if(n<=0)return Math.max(n,0);let r=e.charCodeAt(n);if(r<56320||r>57343)return n;let i=n-1;if(i<0)return n;let o=e.charCodeAt(i);return o>=55296&&o<=56319?i:n}function Ni(e){if(e.length===0)return null;let t=Wf(e,e.length);return e.slice(t)}function Ty(e){let t=Array.from(e),n=t.length;for(;n>0;){let r=t[n-1];if(ki.test(r)){n--;continue}if(pr.has(r)||as.has(r)){n--;continue}break}return n<=0||n===t.length?null:{head:t.slice(0,n).join(""),tail:t.slice(n).join("")}}function Ry(e,t,n){return n==="text"&&!t&&e.length===1&&e!=="-"&&e!=="\\u2014"?e:null}function Pf(e,t,n,r){let i=t[r],o=e[r];if(i==null)return o;let a=n[r];if(o.length===a)return o;let l=i.repeat(a);return e[r]=l,l}function Of(e,t){return e&&t!==null&&Sy.has(t)}function ky(e){let t=Ni(e);return t!==null&&Ay.has(t)}function My(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 Li(e){let t=e.length;for(;t>0;){let n=Wf(e,t),r=e.slice(n,t);if(Ey.has(r))return!0;if(!vt.has(r))return!1;t=n}return!1}function Fy(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 Ny=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function Ie(e){return e.length===1?e[0]:e.join("")}function Ly(e,t){let n=[];for(let r=e.length-1;r>=0;r--)n.push(e[r]);return n.push(t),Ie(n)}function Dy(e,t,n,r){if(!Ny.test(e))return[{text:e,isWordLike:t,kind:"text",start:n}];let i=[],o=null,a=[],l=n,s=!1,u=0;for(let c of e){let m=Fy(c,r),f=m==="text"&&t;if(o!==null&&m===o&&f===s){a.push(c),u+=c.length;continue}o!==null&&i.push({text:Ie(a),isWordLike:s,kind:o,start:l}),o=m,a=[c],l=n+u,s=f,u+=c.length}return o!==null&&i.push({text:Ie(a),isWordLike:s,kind:o,start:l}),i}function os(e){return e==="space"||e==="preserved-space"||e==="zero-width-break"||e==="hard-break"}var Iy=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function Py(e,t){let n=e.texts[t];return n.startsWith("www.")?!0:Iy.test(n)&&t+1<e.len&&e.kinds[t+1]==="text"&&e.texts[t+1]==="//"}function Oy(e){return e.includes("?")&&(e.includes("://")||e.startsWith("www."))}function Hy(e){let t=e.texts.slice(),n=e.isWordLike.slice(),r=e.kinds.slice(),i=e.starts.slice();for(let a=0;a<e.len;a++){if(r[a]!=="text"||!Py(e,a))continue;let l=[t[a]],s=a+1;for(;s<e.len&&!os(r[s]);){l.push(t[s]),n[a]=!0;let u=t[s].includes("?");if(r[s]="text",t[s]="",s++,u)break}t[a]=Ie(l)}let o=0;for(let a=0;a<t.length;a++){let l=t[a];l.length!==0&&(o!==a&&(t[o]=l,n[o]=n[a],r[o]=r[a],i[o]=i[a]),o++)}return t.length=o,n.length=o,r.length=o,i.length=o,{len:o,texts:t,isWordLike:n,kinds:r,starts:i}}function Gy(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o];if(t.push(a),n.push(e.isWordLike[o]),r.push(e.kinds[o]),i.push(e.starts[o]),!Oy(a))continue;let l=o+1;if(l>=e.len||os(e.kinds[l]))continue;let s=[],u=e.starts[l],c=l;for(;c<e.len&&!os(e.kinds[c]);)s.push(e.texts[c]),c++;s.length>0&&(t.push(Ie(s)),n.push(!0),r.push("text"),i.push(u),o=c-1)}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}var By=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),Hf=/^[A-Za-z0-9_]+[,:;]*$/,Gf=/[,:;]+$/;function Vf(e){for(let t of e)if(Uf.test(t))return!0;return!1}function mr(e){if(e.length===0)return!1;for(let t of e)if(!(Uf.test(t)||By.has(t)))return!1;return!0}function Uy(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o],l=e.kinds[o];if(l==="text"&&mr(a)&&Vf(a)){let s=[a],u=o+1;for(;u<e.len&&e.kinds[u]==="text"&&mr(e.texts[u]);)s.push(e.texts[u]),u++;t.push(Ie(s)),n.push(!0),r.push("text"),i.push(e.starts[o]),o=u-1;continue}t.push(a),n.push(e.isWordLike[o]),r.push(l),i.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function Wy(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o],l=e.kinds[o],s=e.isWordLike[o];if(l==="text"&&s&&Hf.test(a)){let u=[a],c=Gf.test(a),m=o+1;for(;c&&m<e.len&&e.kinds[m]==="text"&&e.isWordLike[m]&&Hf.test(e.texts[m]);){let f=e.texts[m];u.push(f),c=Gf.test(f),m++}t.push(Ie(u)),n.push(!0),r.push("text"),i.push(e.starts[o]),o=m-1;continue}t.push(a),n.push(s),r.push(l),i.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function Vy(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o];if(e.kinds[o]==="text"&&a.includes("-")){let l=a.split("-"),s=l.length>1;for(let u=0;u<l.length;u++){let c=l[u];if(!s)break;(c.length===0||!Vf(c)||!mr(c))&&(s=!1)}if(s){let u=0;for(let c=0;c<l.length;c++){let m=l[c],f=c<l.length-1?`${m}-`:m;t.push(f),n.push(!0),r.push("text"),i.push(e.starts[o]+u),u+=f.length}continue}}t.push(a),n.push(e.isWordLike[o]),r.push(e.kinds[o]),i.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function zy(e){let t=[],n=[],r=[],i=[],o=0;for(;o<e.len;){let a=[e.texts[o]],l=e.isWordLike[o],s=e.kinds[o],u=e.starts[o];if(s==="glue"){let c=[a[0]],m=u;for(o++;o<e.len&&e.kinds[o]==="glue";)c.push(e.texts[o]),o++;let f=Ie(c);if(o<e.len&&e.kinds[o]==="text")a[0]=f,a.push(e.texts[o]),l=e.isWordLike[o],s="text",u=m,o++;else{t.push(f),n.push(!1),r.push("glue"),i.push(m);continue}}else o++;if(s==="text")for(;o<e.len&&e.kinds[o]==="glue";){let c=[];for(;o<e.len&&e.kinds[o]==="glue";)c.push(e.texts[o]),o++;let m=Ie(c);if(o<e.len&&e.kinds[o]==="text"){a.push(m,e.texts[o]),l=l||e.isWordLike[o],o++;continue}a.push(m)}t.push(Ie(a)),n.push(l),r.push(s),i.push(u)}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function qy(e){let t=e.texts.slice(),n=e.isWordLike.slice(),r=e.kinds.slice(),i=e.starts.slice();for(let o=0;o<t.length-1;o++){if(r[o]!=="text"||r[o+1]!=="text"||!We(t[o])||!We(t[o+1]))continue;let a=Ty(t[o]);a!==null&&(t[o]=a.head,t[o+1]=a.tail+t[o+1],i[o+1]=i[o]+a.head.length)}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function Bf(e,t,n){let r=hy(),i=0,o=[],a=[],l=[],s=[],u=[],c=[],m=[],f=[],p=[],b=[],v=[],x=[];for(let E of r.segment(e))for(let S of Dy(E.segment,E.isWordLike??!1,E.index,n)){let V=function(){c[k]!==null&&(a[k]=[Pf(o,c,m,k)],c[k]=null),a[k].push(S.text),l[k]=l[k]||S.isWordLike,f[k]=f[k]||N,p[k]=p[k]||I,b[k]=U,v[k]=oe,x[k]=Of(p[k],W)},A=S.kind==="text",C=Ry(S.text,S.isWordLike,S.kind),N=We(S.text),I=Df(S.text),W=Ni(S.text),U=Li(S.text),oe=ky(S.text),k=i-1;t.carryCJKAfterClosingQuote&&A&&i>0&&s[k]==="text"&&N&&f[k]&&b[k]||A&&i>0&&s[k]==="text"&&Cy(S.text)&&f[k]||A&&i>0&&s[k]==="text"&&v[k]?V():A&&i>0&&s[k]==="text"&&S.isWordLike&&I&&x[k]?(V(),l[k]=!0):C!==null&&i>0&&s[k]==="text"&&c[k]===C?m[k]=(m[k]??1)+1:A&&!S.isWordLike&&i>0&&s[k]==="text"&&(wy(S.text)||S.text==="-"&&l[k])?V():(o[i]=S.text,a[i]=[S.text],l[i]=S.isWordLike,s[i]=S.kind,u[i]=S.start,c[i]=C,m[i]=C===null?0:1,f[i]=N,p[i]=I,b[i]=U,v[i]=oe,x[i]=Of(I,W),i++)}for(let E=0;E<i;E++){if(c[E]!==null){o[E]=Pf(o,c,m,E);continue}o[E]=Ie(a[E])}for(let E=1;E<i;E++)s[E]==="text"&&!l[E]&&ss(o[E])&&s[E-1]==="text"&&(o[E-1]+=o[E],l[E-1]=l[E-1]||l[E],o[E]="");let _=Array.from({length:i},()=>null),R=-1;for(let E=i-1;E>=0;E--){let S=o[E];if(S.length!==0){if(s[E]==="text"&&!l[E]&&_y(S)&&R>=0&&s[R]==="text"){let A=_[R]??[];A.push(S),_[R]=A,u[R]=u[E],o[E]="";continue}R=E}}for(let E=0;E<i;E++){let S=_[E];S!=null&&(o[E]=Ly(S,o[E]))}let T=0;for(let E=0;E<i;E++){let S=o[E];S.length!==0&&(T!==E&&(o[T]=S,l[T]=l[E],s[T]=s[E],u[T]=u[E]),T++)}o.length=T,l.length=T,s.length=T,u.length=T;let M=zy({len:T,texts:o,isWordLike:l,kinds:s,starts:u}),F=qy(Wy(Vy(Uy(Gy(Hy(M))))));for(let E=0;E<F.len-1;E++){let S=My(F.texts[E]);S!==null&&(F.kinds[E]!=="space"&&F.kinds[E]!=="preserved-space"||F.kinds[E+1]!=="text"||!Df(F.texts[E+1])||(F.texts[E]=S.space,F.isWordLike[E]=!1,F.kinds[E]=F.kinds[E]==="preserved-space"?"preserved-space":"space",F.texts[E+1]=S.marks+F.texts[E+1],F.starts[E+1]=F.starts[E]+S.space.length))}return F}function $y(e,t){if(e.len===0)return[];if(!t.preserveHardBreaks)return[{startSegmentIndex:0,endSegmentIndex:e.len,consumedEndSegmentIndex:e.len}];let n=[],r=0;for(let i=0;i<e.len;i++)e.kinds[i]==="hard-break"&&(n.push({startSegmentIndex:r,endSegmentIndex:i,consumedEndSegmentIndex:i+1}),r=i+1);return r<e.len&&n.push({startSegmentIndex:r,endSegmentIndex:e.len,consumedEndSegmentIndex:e.len}),n}function jy(e){if(e.len<=1)return e;let t=[],n=[],r=[],i=[],o=null,a=!1,l=0,s=!1,u=!1;function c(){o!==null&&(t.push(Ie(o)),n.push(a),r.push("text"),i.push(l),o=null)}for(let m=0;m<e.len;m++){let f=e.texts[m],p=e.kinds[m],b=e.isWordLike[m],v=e.starts[m];if(p==="text"){let x=yy(f),_=Mi(f);if(o!==null&&s&&u){o.push(f),a=a||b,s=s||x,u=_;continue}c(),o=[f],a=b,l=v,s=x,u=_;continue}c(),t.push(f),n.push(b),r.push(p),i.push(v)}return c(),{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function zf(e,t,n="normal",r="normal"){let i=dy(n),o=i.mode==="pre-wrap"?my(e):fy(e);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let a=r==="keep-all"?jy(Bf(o,t,i)):Bf(o,t,i);return{normalized:o,chunks:$y(a,i),...a}}var un=null,qf=new Map,cn=null,Ky=96,Yy=/\\p{Emoji_Presentation}/u,Xy=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,ls=null,$f=new Map;function us(){if(un!==null)return un;if(typeof OffscreenCanvas<"u")return un=new OffscreenCanvas(1,1).getContext("2d"),un;if(typeof document<"u")return un=document.createElement("canvas").getContext("2d"),un;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function Jy(e){let t=qf.get(e);return t||(t=new Map,qf.set(e,t)),t}function st(e,t){let n=t.get(e);return n===void 0&&(n={width:us().measureText(e).width,containsCJK:We(e)},t.set(e,n)),n}function At(){if(cn!==null)return cn;if(typeof navigator>"u")return cn={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},cn;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/"),r=e.includes("Chrome/")||e.includes("Chromium/")||e.includes("CriOS/")||e.includes("Edg/");return cn={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:r,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},cn}function Qy(e){let t=e.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return t?parseFloat(t[1]):16}function jf(){return ls===null&&(ls=new Intl.Segmenter(void 0,{granularity:"grapheme"})),ls}function Zy(e){return Yy.test(e)||e.includes("\\uFE0F")}function Kf(e){return Xy.test(e)}function e1(e,t){let n=$f.get(e);if(n!==void 0)return n;let r=us();r.font=e;let i=r.measureText("\\u{1F600}").width;if(n=0,i>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 a=o.getBoundingClientRect().width;document.body.removeChild(o),i-a>.5&&(n=i-a)}return $f.set(e,n),n}function t1(e){let t=0,n=jf();for(let r of n.segment(e))Zy(r.segment)&&t++;return t}function n1(e,t){return t.emojiCount===void 0&&(t.emojiCount=t1(e)),t.emojiCount}function St(e,t,n){return n===0?t.width:t.width-n1(e,t)*n}function Yf(e,t,n,r,i){if(t.breakableFitAdvances!==void 0)return t.breakableFitAdvances;let o=jf(),a=[];for(let c of o.segment(e))a.push(c.segment);if(a.length<=1)return t.breakableFitAdvances=null,t.breakableFitAdvances;if(i==="sum-graphemes"){let c=[];for(let m of a){let f=st(m,n);c.push(St(m,f,r))}return t.breakableFitAdvances=c,t.breakableFitAdvances}if(i==="pair-context"||a.length>Ky){let c=[],m=null,f=0;for(let p of a){let b=st(p,n),v=St(p,b,r);if(m===null)c.push(v);else{let x=m+p,_=st(x,n);c.push(St(x,_,r)-f)}m=p,f=v}return t.breakableFitAdvances=c,t.breakableFitAdvances}let l=[],s="",u=0;for(let c of a){s+=c;let m=st(s,n),f=St(s,m,r);l.push(f-u),u=f}return t.breakableFitAdvances=l,t.breakableFitAdvances}function Xf(e,t){let n=us();n.font=e;let r=Jy(e),i=Qy(e),o=t?e1(e,i):0;return{cache:r,fontSize:i,emojiCorrection:o}}function r1(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 Jf(e,t){if(t<=0)return 0;let n=e%t;return Math.abs(n)<=1e-6?t:t-n}function Qf(e,t,n,r,i){let o=0,a=t;for(;o<e.length;){let l=a+e[o];if((o+1<e.length?l+i:l)>n+r)break;a=l,o++}return{fitCount:o,fittedWidth:a}}function i1(e,t){let n=0,r=e.chunks.length;for(;n<r;){let i=Math.floor((n+r)/2);t<e.chunks[i].consumedEndSegmentIndex?r=i:n=i+1}return n<e.chunks.length?n:-1}function Zf(e,t,n){let r=n.segmentIndex;if(n.graphemeIndex>0)return t;let i=e.chunks[t];if(i.startSegmentIndex===i.endSegmentIndex&&r===i.startSegmentIndex)return n.segmentIndex=r,n.graphemeIndex=0,t;for(r<i.startSegmentIndex&&(r=i.startSegmentIndex);r<i.endSegmentIndex;){let o=e.kinds[r];if(o!=="space"&&o!=="zero-width-break"&&o!=="soft-hyphen")return n.segmentIndex=r,n.graphemeIndex=0,t;r++}return i.consumedEndSegmentIndex>=e.widths.length?-1:(n.segmentIndex=i.consumedEndSegmentIndex,n.graphemeIndex=0,t+1)}function em(e,t){if(t.segmentIndex>=e.widths.length)return-1;let n=i1(e,t.segmentIndex);return n<0?-1:Zf(e,n,t)}function o1(e,t,n){if(n.segmentIndex>=e.widths.length)return-1;let r=t;for(;r<e.chunks.length&&n.segmentIndex>=e.chunks[r].consumedEndSegmentIndex;)r++;return r>=e.chunks.length?-1:Zf(e,r,n)}function tm(e,t){return e.simpleLineWalkFastPath?nm(e,t):cs(e,t)}function nm(e,t,n){let{widths:r,kinds:i,breakableFitAdvances:o}=e;if(r.length===0)return 0;let l=At().lineFitEpsilon,s=t+l,u=0,c=0,m=!1,f=0,p=0,b=0,v=0,x=-1,_=0;function R(){x=-1,_=0}function T(C=b,N=v,I=c){u++,n?.({startSegmentIndex:f,startGraphemeIndex:p,endSegmentIndex:C,endGraphemeIndex:N,width:I}),c=0,m=!1,R()}function M(C,N){m=!0,f=C,p=0,b=C+1,v=0,c=N}function F(C,N,I){m=!0,f=C,p=N,b=C,v=N+1,c=I}function E(C,N){if(!m){M(C,N);return}c+=N,b=C+1,v=0}function S(C,N){let I=o[C];for(let W=N;W<I.length;W++){let U=I[W];m?c+U>s?(T(),F(C,W,U)):(c+=U,b=C,v=W+1):F(C,W,U)}m&&b===C&&v===I.length&&(b=C+1,v=0)}let A=0;for(;A<r.length&&!(!m&&(A=r1(e,A),A>=r.length));){let C=r[A],N=i[A],I=N==="space"||N==="preserved-space"||N==="tab"||N==="zero-width-break"||N==="soft-hyphen";if(!m){C>t&&o[A]!==null?S(A,0):M(A,C),I&&(x=A+1,_=c-C),A++;continue}if(c+C>s){if(I){E(A,C),T(A+1,0,c-C),A++;continue}if(x>=0){if(b>x||b===x&&v>0){T();continue}T(x,0,_);continue}if(C>t&&o[A]!==null){T(),S(A,0),A++;continue}T();continue}E(A,C),I&&(x=A+1,_=c-C),A++}return m&&T(),u}function cs(e,t,n){if(e.simpleLineWalkFastPath)return nm(e,t,n);let{widths:r,lineEndFitAdvances:i,lineEndPaintAdvances:o,kinds:a,breakableFitAdvances:l,discretionaryHyphenWidth:s,tabStopAdvance:u,chunks:c}=e;if(r.length===0||c.length===0)return 0;let m=At(),f=m.lineFitEpsilon,p=t+f,b=0,v=0,x=!1,_=0,R=0,T=0,M=0,F=-1,E=0,S=0,A=null;function C(){F=-1,E=0,S=0,A=null}function N(G=T,H=M,z=v){b++,n?.({startSegmentIndex:_,startGraphemeIndex:R,endSegmentIndex:G,endGraphemeIndex:H,width:z}),v=0,x=!1,C()}function I(G,H){x=!0,_=G,R=0,T=G+1,M=0,v=H}function W(G,H,z){x=!0,_=G,R=H,T=G,M=H+1,v=z}function U(G,H){if(!x){I(G,H);return}v+=H,T=G+1,M=0}function oe(G,H,z,X){if(!H)return;let we=G==="tab"?0:i[z],q=G==="tab"?X:o[z];F=z+1,E=v-X+we,S=v-X+q,A=G}function k(G,H){let z=l[G];for(let X=H;X<z.length;X++){let we=z[X];x?v+we>p?(N(),W(G,X,we)):(v+=we,T=G,M=X+1):W(G,X,we)}x&&T===G&&M===z.length&&(T=G+1,M=0)}function V(G){if(A!=="soft-hyphen")return!1;let H=l[G];if(H==null)return!1;let{fitCount:z,fittedWidth:X}=Qf(H,v,t,f,s);return z===0?!1:(v=X,T=G,M=z,C(),z===H.length?(T=G+1,M=0,!0):(N(G,z,X+s),k(G,z),!0))}function Q(G){b++,n?.({startSegmentIndex:G.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:G.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),C()}for(let G=0;G<c.length;G++){let H=c[G];if(H.startSegmentIndex===H.endSegmentIndex){Q(H);continue}x=!1,v=0,_=H.startSegmentIndex,R=0,T=H.startSegmentIndex,M=0,C();let z=H.startSegmentIndex;for(;z<H.endSegmentIndex;){let X=a[z],we=X==="space"||X==="preserved-space"||X==="tab"||X==="zero-width-break"||X==="soft-hyphen",q=X==="tab"?Jf(v,u):r[z];if(X==="soft-hyphen"){x&&(T=z+1,M=0,F=z+1,E=v+s,S=v+s,A=X),z++;continue}if(!x){q>t&&l[z]!==null?k(z,0):I(z,q),oe(X,we,z,q),z++;continue}if(v+q>p){let O=v+(X==="tab"?0:i[z]),j=v+(X==="tab"?q:o[z]);if(A==="soft-hyphen"&&m.preferEarlySoftHyphenBreak&&E<=p){N(F,0,S);continue}if(A==="soft-hyphen"&&V(z)){z++;continue}if(we&&O<=p){U(z,q),N(z+1,0,j),z++;continue}if(F>=0&&E<=p){if(T>F||T===F&&M>0){N();continue}let le=F;N(le,0,S),z=le;continue}if(q>t&&l[z]!==null){N(),k(z,0),z++;continue}N();continue}U(z,q),oe(X,we,z,q),z++}if(x){let X=F===H.consumedEndSegmentIndex?S:v;N(H.consumedEndSegmentIndex,0,X)}}return b}function rm(e,t,n,r){let i=e.chunks[n];if(i.startSegmentIndex===i.endSegmentIndex)return t.segmentIndex=i.consumedEndSegmentIndex,t.graphemeIndex=0,0;let{widths:o,lineEndFitAdvances:a,lineEndPaintAdvances:l,kinds:s,breakableFitAdvances:u,discretionaryHyphenWidth:c,tabStopAdvance:m}=e,f=At(),p=f.lineFitEpsilon,b=r+p,v=0,x=!1,_=t.segmentIndex,R=t.graphemeIndex,T=-1,M=0,F=0,E=null;function S(){T=-1,M=0,F=0,E=null}function A(k=_,V=R,Q=v){return x?(t.segmentIndex=k,t.graphemeIndex=V,Q):null}function C(k,V){x=!0,_=k+1,R=0,v=V}function N(k,V,Q){x=!0,_=k,R=V+1,v=Q}function I(k,V){if(!x){C(k,V);return}v+=V,_=k+1,R=0}function W(k,V,Q,G){if(!V)return;let H=k==="tab"?0:a[Q],z=k==="tab"?G:l[Q];T=Q+1,M=v-G+H,F=v-G+z,E=k}function U(k,V){let Q=u[k];for(let G=V;G<Q.length;G++){let H=Q[G];if(!x)N(k,G,H);else{if(v+H>b)return A();v+=H,_=k,R=G+1}}return x&&_===k&&R===Q.length&&(_=k+1,R=0),null}function oe(k){if(E!=="soft-hyphen"||T<0)return null;let V=u[k]??null;if(V!==null){let{fitCount:Q,fittedWidth:G}=Qf(V,v,r,p,c);if(Q===V.length)return v=G,_=k+1,R=0,S(),null;if(Q>0)return A(k,Q,G+c)}return M<=b?A(T,0,F):null}for(let k=t.segmentIndex;k<i.endSegmentIndex;k++){let V=s[k],Q=V==="space"||V==="preserved-space"||V==="tab"||V==="zero-width-break"||V==="soft-hyphen",G=k===t.segmentIndex?t.graphemeIndex:0,H=V==="tab"?Jf(v,m):o[k];if(V==="soft-hyphen"&&G===0){x&&(_=k+1,R=0,T=k+1,M=v+c,F=v+c,E=V);continue}if(!x){if(G>0){let X=U(k,G);if(X!==null)return X}else if(H>r&&u[k]!==null){let X=U(k,0);if(X!==null)return X}else C(k,H);W(V,Q,k,H);continue}if(v+H>b){let X=v+(V==="tab"?0:a[k]),we=v+(V==="tab"?H:l[k]);if(E==="soft-hyphen"&&f.preferEarlySoftHyphenBreak&&M<=b)return A(T,0,F);let q=oe(k);if(q!==null)return q;if(Q&&X<=b)return I(k,H),A(k+1,0,we);if(T>=0&&M<=b)return _>T||_===T&&R>0?A():A(T,0,F);if(H>r&&u[k]!==null){let P=A();if(P!==null)return P;let O=U(k,0);if(O!==null)return O}return A()}I(k,H),W(V,Q,k,H)}return T===i.consumedEndSegmentIndex&&R===0?A(i.consumedEndSegmentIndex,0,F):A(i.consumedEndSegmentIndex,0,v)}function a1(e,t,n){let{widths:r,kinds:i,breakableFitAdvances:o}=e,l=At().lineFitEpsilon,s=n+l,u=0,c=!1,m=t.segmentIndex,f=t.graphemeIndex,p=-1,b=0;for(let v=t.segmentIndex;v<r.length;v++){let x=r[v],_=i[v],R=_==="space"||_==="preserved-space"||_==="tab"||_==="zero-width-break"||_==="soft-hyphen",T=v===t.segmentIndex?t.graphemeIndex:0,M=o[v];if(!c){if(T>0||x>n&&M!==null){let F=M,E=F[T];c=!0,u=E,m=v,f=T+1;for(let S=T+1;S<F.length;S++){let A=F[S];if(u+A>s)return t.segmentIndex=m,t.graphemeIndex=f,u;u+=A,m=v,f=S+1}m===v&&f===F.length&&(m=v+1,f=0)}else c=!0,u=x,m=v+1,f=0;R&&(p=v+1,b=u-x);continue}if(u+x>s)return R?(t.segmentIndex=v+1,t.graphemeIndex=0,u):p>=0?m>p||m===p&&f>0?(t.segmentIndex=m,t.graphemeIndex=f,u):(t.segmentIndex=p,t.graphemeIndex=0,b):(t.segmentIndex=m,t.graphemeIndex=f,u);u+=x,m=v+1,f=0,R&&(p=v+1,b=u-x)}return c?(t.segmentIndex=m,t.graphemeIndex=f,u):null}function s1(e,t,n){let r=em(e,t);return r<0?null:e.simpleLineWalkFastPath?a1(e,t,n):rm(e,t,r,n)}function im(e,t){if(e.widths.length===0)return{lineCount:0,maxLineWidth:0};let n={segmentIndex:0,graphemeIndex:0},r=0,i=0;if(!e.simpleLineWalkFastPath){let o=em(e,n);for(;o>=0;){let a=rm(e,n,o,t);if(a===null)return{lineCount:r,maxLineWidth:i};r++,a>i&&(i=a),o=o1(e,o,n)}return{lineCount:r,maxLineWidth:i}}for(;;){let o=s1(e,n,t);if(o===null)return{lineCount:r,maxLineWidth:i};r++,o>i&&(i=o)}}var ds=null;function l1(){return ds===null&&(ds=new Intl.Segmenter(void 0,{granularity:"grapheme"})),ds}function u1(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 c1(e,t){let n=[],r=[],i=0,o=!1,a=!1,l=!1;function s(){r.length!==0&&(n.push({text:r.length===1?r[0]:r.join(""),start:i}),r=[],o=!1,a=!1,l=!1)}function u(m,f,p){r=[m],i=f,o=p,a=Li(m),l=pr.has(m)}function c(m,f){r.push(m),o=o||f;let p=Li(m);m.length===1&&vt.has(m)?a=a||p:a=p,l=!1}for(let m of l1().segment(e)){let f=m.segment,p=We(f);if(r.length===0){u(f,m.index,p);continue}if(l||Fi.has(f)||vt.has(f)||t.carryCJKAfterClosingQuote&&p&&a){c(f,p);continue}if(!o&&!p){c(f,p);continue}s(),u(f,m.index,p)}return s(),n}function d1(e){if(e.length<=1)return e;let t=[],n=[e[0].text],r=e[0].start,i=We(e[0].text),o=Mi(e[0].text);function a(){t.push({text:n.length===1?n[0]:n.join(""),start:r})}for(let l=1;l<e.length;l++){let s=e[l],u=We(s.text),c=Mi(s.text);if(i&&o){n.push(s.text),i=i||u,o=c;continue}a(),n=[s.text],r=s.start,i=u,o=c}return a(),t}function f1(e,t,n,r){let i=At(),{cache:o,emojiCorrection:a}=Xf(t,Kf(e.normalized)),l=St("-",st("-",o),a),u=St(" ",st(" ",o),a)*8;if(e.len===0)return u1(n);let c=[],m=[],f=[],p=[],b=e.chunks.length<=1,v=n?[]:null,x=[],_=n?[]:null,R=Array.from({length:e.len});function T(S,A,C,N,I,W,U){I!=="text"&&I!=="space"&&I!=="zero-width-break"&&(b=!1),c.push(A),m.push(C),f.push(N),p.push(I),v?.push(W),x.push(U),_!==null&&_.push(S)}function M(S,A,C,N,I){let W=st(S,o),U=St(S,W,a),oe=A==="space"||A==="preserved-space"||A==="zero-width-break"?0:U,k=A==="space"||A==="zero-width-break"?0:U;if(I&&N&&S.length>1){let V="sum-graphemes";mr(S)?V="pair-context":i.preferPrefixWidthsForBreakableRuns&&(V="segment-prefixes");let Q=Yf(S,W,o,a,V);T(S,U,oe,k,A,C,Q);return}T(S,U,oe,k,A,C,null)}for(let S=0;S<e.len;S++){R[S]=c.length;let A=e.texts[S],C=e.isWordLike[S],N=e.kinds[S],I=e.starts[S];if(N==="soft-hyphen"){T(A,0,l,l,N,I,null);continue}if(N==="hard-break"){T(A,0,0,0,N,I,null);continue}if(N==="tab"){T(A,0,0,0,N,I,null);continue}let W=st(A,o);if(N==="text"&&W.containsCJK){let U=c1(A,i),oe=r==="keep-all"?d1(U):U;for(let k=0;k<oe.length;k++){let V=oe[k];M(V.text,"text",I+V.start,C,r==="keep-all"||!We(V.text))}continue}M(A,N,I,C,!0)}let F=m1(e.chunks,R,c.length),E=v===null?null:Lf(e.normalized,v);return _!==null?{widths:c,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:p,simpleLineWalkFastPath:b,segLevels:E,breakableFitAdvances:x,discretionaryHyphenWidth:l,tabStopAdvance:u,chunks:F,segments:_}:{widths:c,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:p,simpleLineWalkFastPath:b,segLevels:E,breakableFitAdvances:x,discretionaryHyphenWidth:l,tabStopAdvance:u,chunks:F}}function m1(e,t,n){let r=[];for(let i=0;i<e.length;i++){let o=e[i],a=o.startSegmentIndex<t.length?t[o.startSegmentIndex]:n,l=o.endSegmentIndex<t.length?t[o.endSegmentIndex]:n,s=o.consumedEndSegmentIndex<t.length?t[o.consumedEndSegmentIndex]:n;r.push({startSegmentIndex:a,endSegmentIndex:l,consumedEndSegmentIndex:s})}return r}function om(e,t,n,r){let i=r?.wordBreak??"normal",o=zf(e,At(),r?.whiteSpace,i);return f1(o,t,n,i)}function Di(e,t,n){return om(e,t,!1,n)}function am(e,t,n){return om(e,t,!0,n)}function Ii(e,t,n){let r=tm(e,t);return{lineCount:r,height:r*n}}function p1(e){return{width:e.width,start:{segmentIndex:e.startSegmentIndex,graphemeIndex:e.startGraphemeIndex},end:{segmentIndex:e.endSegmentIndex,graphemeIndex:e.endGraphemeIndex}}}function h1(e,t,n){return e.widths.length===0?0:cs(e,t,r=>{n(p1(r))})}function sm(e,t){return im(e,t)}function lm(e){let t=0;return h1(e,Number.POSITIVE_INFINITY,n=>{n.width>t&&(t=n.width)}),t}var g1={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function um(e,t){let n={...g1,...t},r=1.2;for(let i=n.baseFontSize;i>=n.minFontSize;i-=n.step){let o=`${n.fontWeight} ${i}px ${n.fontFamily}`,a=Di(e,o),{lineCount:l}=Ii(a,n.maxWidth,i*r);if(l<=1)return{fontSize:i,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}var cm={prepare:Di,layout:Ii,prepareWithSegments:am,measureLineStats:sm,measureNaturalWidth:lm};window.__timelines=window.__timelines||{};Md();window.__hyperframes={fitTextFontSize:um,getVariables:Hs,pretext:cm,registerRuntimeDataHandler:kf,setRuntimeData:Ti,clearRuntimeData:Ri};function dm(){let e=window;e.__hyperframeRuntimeBootstrapped||(e.__hyperframeRuntimeBootstrapped=!0,Ff())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",dm,{once:!0}):dm();})();\n';
|
|
58787
|
+
RUNTIME_IIFE = '"use strict";(()=>{var Dm=Object.create;var Yi=Object.defineProperty;var Im=Object.getOwnPropertyDescriptor;var Pm=Object.getOwnPropertyNames;var Om=Object.getPrototypeOf,Hm=Object.prototype.hasOwnProperty;var Gm=(e,t,n)=>t in e?Yi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ie=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Bm=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Pm(t))!Hm.call(e,i)&&i!==n&&Yi(e,i,{get:()=>t[i],enumerable:!(r=Im(t,i))||r.enumerable});return e};var Um=(e,t,n)=>(n=e!=null?Dm(Om(e)):{},Bm(t||!e||!e.__esModule?Yi(n,"default",{value:e,enumerable:!0}):n,e));var ge=(e,t,n)=>Gm(e,typeof t!="symbol"?t+"":t,n);var _u=ie((YS,jo)=>{var Z=String,Cu=function(){return{isColorSupported:!1,reset:Z,bold:Z,dim:Z,italic:Z,underline:Z,inverse:Z,hidden:Z,strikethrough:Z,black:Z,red:Z,green:Z,yellow:Z,blue:Z,magenta:Z,cyan:Z,white:Z,gray:Z,bgBlack:Z,bgRed:Z,bgGreen:Z,bgYellow:Z,bgBlue:Z,bgMagenta:Z,bgCyan:Z,bgWhite:Z,blackBright:Z,redBright:Z,greenBright:Z,yellowBright:Z,blueBright:Z,magentaBright:Z,cyanBright:Z,whiteBright:Z,bgBlackBright:Z,bgRedBright:Z,bgGreenBright:Z,bgYellowBright:Z,bgBlueBright:Z,bgMagentaBright:Z,bgCyanBright:Z,bgWhiteBright:Z}};jo.exports=Cu();jo.exports.createColors=Cu});var Ko=ie(()=>{});var jr=ie((QS,ku)=>{"use strict";var Tu=_u(),Ru=Ko(),Hn=class e extends Error{constructor(t,n,r,i,o,a){super(t),this.name="CssSyntaxError",this.reason=t,o&&(this.file=o),i&&(this.source=i),a&&(this.plugin=a),typeof n<"u"&&typeof r<"u"&&(typeof n=="number"?(this.line=n,this.column=r):(this.line=n.line,this.column=n.column,this.endLine=r.line,this.endColumn=r.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,e)}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(t){if(!this.source)return"";let n=this.source;t==null&&(t=Tu.isColorSupported);let r=c=>c,i=c=>c,o=c=>c;if(t){let{bold:c,gray:m,red:f}=Tu.createColors(!0);i=p=>c(f(p)),r=p=>m(p),Ru&&(o=p=>Ru(p))}let a=n.split(/\\r?\\n/),l=Math.max(this.line-3,0),s=Math.min(this.line+2,a.length),u=String(s).length;return a.slice(l,s).map((c,m)=>{let f=l+1+m,p=" "+(" "+f).slice(-u)+" | ";if(f===this.line){if(c.length>160){let v=20,x=Math.max(0,this.column-v),_=Math.max(this.column+v,this.endColumn+v),R=c.slice(x,_),T=r(p.replace(/\\d/g," "))+c.slice(0,Math.min(this.column-1,v-1)).replace(/[^\\t]/g," ");return i(">")+r(p)+o(R)+`\n `+T+i("^")}let b=r(p.replace(/\\d/g," "))+c.slice(0,this.column-1).replace(/[^\\t]/g," ");return i(">")+r(p)+o(c)+`\n `+b+i("^")}return" "+r(p)+o(c)}).join(`\n`)}toString(){let t=this.showSourceCode();return t&&(t=`\n\n`+t+`\n`),this.name+": "+this.message+t}};ku.exports=Hn;Hn.default=Hn});var Yo=ie((ZS,Fu)=>{"use strict";var o0=/(<)(\\/?style\\b)/gi,a0=/(<)(!--)/g;function ht(e){return typeof e!="string"||!e.includes("<")?e:e.replace(o0,"\\\\3c $2").replace(a0,"\\\\3c $2")}var Mu={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function s0(e){return e[0].toUpperCase()+e.slice(1)}var Gn=class{constructor(t){this.builder=t}atrule(t,n){let r=t.raws,i="@"+t.name,o=t.params?this.rawValue(t,"params"):"";if(typeof r.afterName<"u"?i+=r.afterName:o&&(i+=" "),t.nodes)this.block(t,i+o);else{let a=(r.between||"")+(n?";":"");this.builder(ht(i+o+a),t)}}beforeAfter(t,n){let r;t.type==="decl"?r=this.raw(t,null,"beforeDecl"):t.type==="comment"?r=this.raw(t,null,"beforeComment"):n==="before"?r=this.raw(t,null,"beforeRule"):r=this.raw(t,null,"beforeClose");let i=t.parent,o=0;for(;i&&i.type!=="root";)o+=1,i=i.parent;if(r.includes(`\n`)){let a=this.raw(t,null,"indent");if(a.length)for(let l=0;l<o;l++)r+=a}return r}block(t,n){let r=this.raw(t,"between","beforeOpen");this.builder(ht(n+r)+"{",t,"start");let i;t.nodes&&t.nodes.length?(this.body(t),i=this.raw(t,"after")):i=this.raw(t,"after","emptyBody"),i&&this.builder(ht(i)),this.builder("}",t,"end")}body(t){let n=t.nodes,r=n.length-1;for(;r>0&&n[r].type==="comment";)r-=1;let i=this.raw(t,"semicolon"),o=t.type==="document";for(let a=0;a<n.length;a++){let l=n[a],s=this.raw(l,"before");s&&this.builder(o?s:ht(s)),this.stringify(l,r!==a||i)}}comment(t){let n=this.raw(t,"left","commentLeft"),r=this.raw(t,"right","commentRight");this.builder(ht("/*"+n+t.text+r+"*/"),t)}decl(t,n){let r=t.raws,i=this.raw(t,"between","colon"),o=t.prop+i+this.rawValue(t,"value");t.important&&(o+=r.important||" !important"),n&&(o+=";"),this.builder(ht(o),t)}document(t){this.body(t)}raw(t,n,r){let i;if(r||(r=n),n&&(i=t.raws[n],typeof i<"u"))return i;let o=t.parent;if(r==="before"&&(!o||o.type==="root"&&o.first===t||o&&o.type==="document"))return"";if(!o)return Mu[r];let a=t.root(),l=a.rawCache||(a.rawCache={});if(typeof l[r]<"u")return l[r];if(r==="before"||r==="after")return this.beforeAfter(t,r);{let s="raw"+s0(r);this[s]?i=this[s](a,t):a.walk(u=>{if(i=u.raws[n],typeof i<"u")return!1})}return typeof i>"u"&&(i=Mu[r]),l[r]=i,i}rawBeforeClose(t){let n;return t.walk(r=>{if(r.nodes&&r.nodes.length>0&&typeof r.raws.after<"u")return n=r.raws.after,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawBeforeComment(t,n){let r;return t.walkComments(i=>{if(typeof i.raws.before<"u")return r=i.raws.before,r.includes(`\n`)&&(r=r.replace(/[^\\n]+$/,"")),!1}),typeof r>"u"?r=this.raw(n,null,"beforeDecl"):r&&(r=r.replace(/\\S/g,"")),r}rawBeforeDecl(t,n){let r;return t.walkDecls(i=>{if(typeof i.raws.before<"u")return r=i.raws.before,r.includes(`\n`)&&(r=r.replace(/[^\\n]+$/,"")),!1}),typeof r>"u"?r=this.raw(n,null,"beforeRule"):r&&(r=r.replace(/\\S/g,"")),r}rawBeforeOpen(t){let n;return t.walk(r=>{if(r.type!=="decl"&&(n=r.raws.between,typeof n<"u"))return!1}),n}rawBeforeRule(t){let n;return t.walk(r=>{if(r.nodes&&(r.parent!==t||t.first!==r)&&typeof r.raws.before<"u")return n=r.raws.before,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawColon(t){let n;return t.walkDecls(r=>{if(typeof r.raws.between<"u")return n=r.raws.between.replace(/[^\\s:]/g,""),!1}),n}rawEmptyBody(t){let n;return t.walk(r=>{if(r.nodes&&r.nodes.length===0&&(n=r.raws.after,typeof n<"u"))return!1}),n}rawIndent(t){if(t.raws.indent)return t.raws.indent;let n;return t.walk(r=>{let i=r.parent;if(i&&i!==t&&i.parent&&i.parent===t&&typeof r.raws.before<"u"){let o=r.raws.before.split(`\n`);return n=o[o.length-1],n=n.replace(/\\S/g,""),!1}}),n}rawSemicolon(t){let n;return t.walk(r=>{if(r.nodes&&r.nodes.length&&r.last.type==="decl"&&(n=r.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(t,n){let r=t[n],i=t.raws[n];return i&&i.value===r?i.raw:r}root(t){if(this.body(t),t.raws.after){let n=t.raws.after,r=t.parent&&t.parent.type==="document";this.builder(r?n:ht(n))}}rule(t){this.block(t,this.rawValue(t,"selector")),t.raws.ownSemicolon&&this.builder(ht(t.raws.ownSemicolon),t,"end")}stringify(t,n){if(!this[t.type])throw new Error("Unknown AST node type "+t.type+". Maybe you need to change PostCSS stringifier.");this[t.type](t,n)}};Fu.exports=Gn;Gn.default=Gn});var Bn=ie((eA,Nu)=>{"use strict";var l0=Yo();function Xo(e,t){new l0(t).stringify(e)}Nu.exports=Xo;Xo.default=Xo});var Kr=ie((tA,Jo)=>{"use strict";Jo.exports.isClean=Symbol("isClean");Jo.exports.my=Symbol("my")});var Vn=ie((nA,Lu)=>{"use strict";var u0=jr(),c0=Yo(),d0=Bn(),{isClean:Un,my:f0}=Kr();function Qo(e,t){let n=new e.constructor;for(let r in e){if(!Object.prototype.hasOwnProperty.call(e,r)||r==="proxyCache")continue;let i=e[r],o=typeof i;r==="parent"&&o==="object"?t&&(n[r]=t):r==="source"?n[r]=i:Array.isArray(i)?n[r]=i.map(a=>Qo(a,n)):(o==="object"&&i!==null&&(i=Qo(i)),n[r]=i)}return n}function nt(e,t){if(t&&typeof t.offset<"u")return t.offset;let n=1,r=1,i=0;for(let o=0;o<e.length;o++){if(r===t.line&&n===t.column){i=o;break}e[o]===`\n`?(n=1,r+=1):n+=1}return i}var Wn=class{get proxyOf(){return this}constructor(t={}){this.raws={},this[Un]=!1,this[f0]=!0;for(let n in t)if(n==="nodes"){this.nodes=[];for(let r of t[n])typeof r.clone=="function"?this.append(r.clone()):this.append(r)}else this[n]=t[n]}addToError(t){if(t.postcssNode=this,t.stack&&this.source&&/\\n\\s{4}at /.test(t.stack)){let n=this.source;t.stack=t.stack.replace(/\\n\\s{4}at /,`$&${n.input.from}:${n.start.line}:${n.start.column}$&`)}return t}after(t){return this.parent.insertAfter(this,t),this}assign(t={}){for(let n in t)this[n]=t[n];return this}before(t){return this.parent.insertBefore(this,t),this}cleanRaws(t){delete this.raws.before,delete this.raws.after,t||delete this.raws.between}clone(t={}){let n=Qo(this);for(let r in t)n[r]=t[r];return n}cloneAfter(t={}){let n=this.clone(t);return this.parent.insertAfter(this,n),n}cloneBefore(t={}){let n=this.clone(t);return this.parent.insertBefore(this,n),n}error(t,n={}){if(this.source){let{end:r,start:i}=this.rangeBy(n);return this.source.input.error(t,{column:i.column,line:i.line},{column:r.column,line:r.line},n)}return new u0(t)}getProxyProcessor(){return{get(t,n){return n==="proxyOf"?t:n==="root"?()=>t.root().toProxy():t[n]},set(t,n,r){return t[n]===r||(t[n]=r,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&t.markDirty()),!0}}}markClean(){this[Un]=!0}markDirty(){if(this[Un]){this[Un]=!1;let t=this;for(;t=t.parent;)t[Un]=!1}}next(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t+1]}positionBy(t={}){let n=this.source.start;if(t.index)n=this.positionInside(t.index);else if(t.word){let r="document"in this.source.input?this.source.input.document:this.source.input.css,o=r.slice(nt(r,this.source.start),nt(r,this.source.end)).indexOf(t.word);o!==-1&&(n=this.positionInside(o))}return n}positionInside(t){let n=this.source.start.column,r=this.source.start.line,i="document"in this.source.input?this.source.input.document:this.source.input.css,o=nt(i,this.source.start),a=o+t;for(let l=o;l<a;l++)i[l]===`\n`?(n=1,r+=1):n+=1;return{column:n,line:r,offset:a}}prev(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t-1]}rangeBy(t={}){let n="document"in this.source.input?this.source.input.document:this.source.input.css,r={column:this.source.start.column,line:this.source.start.line,offset:nt(n,this.source.start)},i=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:nt(n,this.source.end)+1}:{column:r.column+1,line:r.line,offset:r.offset+1};if(t.word){let a=n.slice(nt(n,this.source.start),nt(n,this.source.end)).indexOf(t.word);a!==-1&&(r=this.positionInside(a),i=this.positionInside(a+t.word.length))}else t.start?r={column:t.start.column,line:t.start.line,offset:nt(n,t.start)}:t.index&&(r=this.positionInside(t.index)),t.end?i={column:t.end.column,line:t.end.line,offset:nt(n,t.end)}:typeof t.endIndex=="number"?i=this.positionInside(t.endIndex):t.index&&(i=this.positionInside(t.index+1));return(i.line<r.line||i.line===r.line&&i.column<=r.column)&&(i={column:r.column+1,line:r.line,offset:r.offset+1}),{end:i,start:r}}raw(t,n){return new c0().raw(this,t,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...t){if(this.parent){let n=this,r=!1;for(let i of t)i===this?r=!0:r?(this.parent.insertAfter(n,i),n=i):this.parent.insertBefore(n,i);r||this.remove()}return this}root(){let t=this;for(;t.parent&&t.parent.type!=="document";)t=t.parent;return t}toJSON(t,n){let r={},i=n==null;n=n||new Map;let o=0;for(let a in this){if(!Object.prototype.hasOwnProperty.call(this,a)||a==="parent"||a==="proxyCache")continue;let l=this[a];if(Array.isArray(l))r[a]=l.map(s=>typeof s=="object"&&s.toJSON?s.toJSON(null,n):s);else if(typeof l=="object"&&l.toJSON)r[a]=l.toJSON(null,n);else if(a==="source"){if(l==null)continue;let s=n.get(l.input);s==null&&(s=o,n.set(l.input,o),o++),r[a]={end:l.end,inputId:s,start:l.start}}else r[a]=l}return i&&(r.inputs=[...n.keys()].map(a=>a.toJSON())),r}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(t=d0){t.stringify&&(t=t.stringify);let n="";return t(this,r=>{n+=r}),n}warn(t,n,r={}){let i={node:this};for(let o in r)i[o]=r[o];return t.warn(n,i)}};Lu.exports=Wn;Wn.default=Wn});var qn=ie((rA,Du)=>{"use strict";var m0=Vn(),zn=class extends m0{constructor(t){super(t),this.type="comment"}};Du.exports=zn;zn.default=zn});var jn=ie((iA,Iu)=>{"use strict";var p0=Vn(),$n=class extends p0{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(t){t&&typeof t.value<"u"&&typeof t.value!="string"&&(t={...t,value:String(t.value)}),super(t),this.type="decl"}};Iu.exports=$n;$n.default=$n});var gt=ie((oA,zu)=>{"use strict";var Pu=qn(),Ou=jn(),h0=Vn(),{isClean:Hu,my:Gu}=Kr(),Zo,Bu,Uu,ea;function Wu(e){return e.map(t=>(t.nodes&&(t.nodes=Wu(t.nodes)),delete t.source,t))}function Vu(e){if(e[Hu]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)Vu(t)}var Ue=class e extends h0{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(...t){for(let n of t){let r=this.normalize(n,this.last);for(let i of r)this.proxyOf.nodes.push(i)}return this.markDirty(),this}cleanRaws(t){if(super.cleanRaws(t),this.nodes)for(let n of this.nodes)n.cleanRaws(t)}each(t){if(!this.proxyOf.nodes)return;let n=this.getIterator(),r,i;for(;this.indexes[n]<this.proxyOf.nodes.length&&(r=this.indexes[n],i=t(this.proxyOf.nodes[r],r),i!==!1);)this.indexes[n]+=1;return delete this.indexes[n],i}every(t){return this.nodes.every(t)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let t=this.lastEach;return this.indexes[t]=0,t}getProxyProcessor(){return{get(t,n){return n==="proxyOf"?t:t[n]?n==="each"||typeof n=="string"&&n.startsWith("walk")?(...r)=>t[n](...r.map(i=>typeof i=="function"?(o,a)=>i(o.toProxy(),a):i)):n==="every"||n==="some"?r=>t[n]((i,...o)=>r(i.toProxy(),...o)):n==="root"?()=>t.root().toProxy():n==="nodes"?t.nodes.map(r=>r.toProxy()):n==="first"||n==="last"?t[n].toProxy():t[n]:t[n]},set(t,n,r){return t[n]===r||(t[n]=r,(n==="name"||n==="params"||n==="selector")&&t.markDirty()),!0}}}index(t){return typeof t=="number"?t:(t.proxyOf&&(t=t.proxyOf),this.proxyOf.nodes.indexOf(t))}insertAfter(t,n){let r=this.index(t),i=this.normalize(n,this.proxyOf.nodes[r]).reverse();r=this.index(t);for(let a of i)this.proxyOf.nodes.splice(r+1,0,a);let o;for(let a in this.indexes)o=this.indexes[a],r<o&&(this.indexes[a]=o+i.length);return this.markDirty(),this}insertBefore(t,n){let r=this.index(t),i=r===0?"prepend":!1,o=this.normalize(n,this.proxyOf.nodes[r],i).reverse();r=this.index(t);for(let l of o)this.proxyOf.nodes.splice(r,0,l);let a;for(let l in this.indexes)a=this.indexes[l],r<=a&&(this.indexes[l]=a+o.length);return this.markDirty(),this}normalize(t,n){if(typeof t=="string")t=Wu(Bu(t).nodes);else if(typeof t>"u")t=[];else if(Array.isArray(t)){t=t.slice(0);for(let i of t)i.parent&&i.parent.removeChild(i,"ignore")}else if(t.type==="root"&&this.type!=="document"){t=t.nodes.slice(0);for(let i of t)i.parent&&i.parent.removeChild(i,"ignore")}else if(t.type)t=[t];else if(t.prop){if(typeof t.value>"u")throw new Error("Value field is missed in node creation");typeof t.value!="string"&&(t.value=String(t.value)),t=[new Ou(t)]}else if(t.selector||t.selectors)t=[new ea(t)];else if(t.name)t=[new Zo(t)];else if(t.text)t=[new Pu(t)];else throw new Error("Unknown node type in node creation");return t.map(i=>(i[Gu]||e.rebuild(i),i=i.proxyOf,i.parent&&i.parent.removeChild(i),i[Hu]&&Vu(i),i.raws||(i.raws={}),typeof i.raws.before>"u"&&n&&typeof n.raws.before<"u"&&(i.raws.before=n.raws.before.replace(/\\S/g,"")),i.parent=this.proxyOf,i))}prepend(...t){t=t.reverse();for(let n of t){let r=this.normalize(n,this.first,"prepend").reverse();for(let i of r)this.proxyOf.nodes.unshift(i);for(let i in this.indexes)this.indexes[i]=this.indexes[i]+r.length}return this.markDirty(),this}push(t){return t.parent=this,this.proxyOf.nodes.push(t),this}removeAll(){for(let t of this.proxyOf.nodes)t.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(t){t=this.index(t),this.proxyOf.nodes[t].parent=void 0,this.proxyOf.nodes.splice(t,1);let n;for(let r in this.indexes)n=this.indexes[r],n>=t&&(this.indexes[r]=n-1);return this.markDirty(),this}replaceValues(t,n,r){return r||(r=n,n={}),this.walkDecls(i=>{n.props&&!n.props.includes(i.prop)||n.fast&&!i.value.includes(n.fast)||(i.value=i.value.replace(t,r))}),this.markDirty(),this}some(t){return this.nodes.some(t)}walk(t){return this.each((n,r)=>{let i;try{i=t(n,r)}catch(o){throw n.addToError(o)}return i!==!1&&n.walk&&(i=n.walk(t)),i})}walkAtRules(t,n){return n?t instanceof RegExp?this.walk((r,i)=>{if(r.type==="atrule"&&t.test(r.name))return n(r,i)}):this.walk((r,i)=>{if(r.type==="atrule"&&r.name===t)return n(r,i)}):(n=t,this.walk((r,i)=>{if(r.type==="atrule")return n(r,i)}))}walkComments(t){return this.walk((n,r)=>{if(n.type==="comment")return t(n,r)})}walkDecls(t,n){return n?t instanceof RegExp?this.walk((r,i)=>{if(r.type==="decl"&&t.test(r.prop))return n(r,i)}):this.walk((r,i)=>{if(r.type==="decl"&&r.prop===t)return n(r,i)}):(n=t,this.walk((r,i)=>{if(r.type==="decl")return n(r,i)}))}walkRules(t,n){return n?t instanceof RegExp?this.walk((r,i)=>{if(r.type==="rule"&&t.test(r.selector))return n(r,i)}):this.walk((r,i)=>{if(r.type==="rule"&&r.selector===t)return n(r,i)}):(n=t,this.walk((r,i)=>{if(r.type==="rule")return n(r,i)}))}};Ue.registerParse=e=>{Bu=e};Ue.registerRule=e=>{ea=e};Ue.registerAtRule=e=>{Zo=e};Ue.registerRoot=e=>{Uu=e};zu.exports=Ue;Ue.default=Ue;Ue.rebuild=e=>{e.type==="atrule"?Object.setPrototypeOf(e,Zo.prototype):e.type==="rule"?Object.setPrototypeOf(e,ea.prototype):e.type==="decl"?Object.setPrototypeOf(e,Ou.prototype):e.type==="comment"?Object.setPrototypeOf(e,Pu.prototype):e.type==="root"&&Object.setPrototypeOf(e,Uu.prototype),e[Gu]=!0,e.nodes&&e.nodes.forEach(t=>{Ue.rebuild(t)})}});var Yr=ie((aA,$u)=>{"use strict";var qu=gt(),Xt=class extends qu{constructor(t){super(t),this.type="atrule"}append(...t){return this.proxyOf.nodes||(this.nodes=[]),super.append(...t)}prepend(...t){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...t)}};$u.exports=Xt;Xt.default=Xt;qu.registerAtRule(Xt)});var Xr=ie((sA,Yu)=>{"use strict";var g0=gt(),ju,Ku,Mt=class extends g0{constructor(t){super({type:"document",...t}),this.nodes||(this.nodes=[])}toResult(t={}){return new ju(new Ku,this,t).stringify()}};Mt.registerLazyResult=e=>{ju=e};Mt.registerProcessor=e=>{Ku=e};Yu.exports=Mt;Mt.default=Mt});var Ju=ie((lA,Xu)=>{var b0="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",x0=(e,t=21)=>(n=t)=>{let r="",i=n|0;for(;i--;)r+=e[Math.random()*e.length|0];return r},y0=(e=21)=>{let t="",n=e|0;for(;n--;)t+=b0[Math.random()*64|0];return t};Xu.exports={nanoid:y0,customAlphabet:x0}});var Jr=ie(()=>{});var Qr=ie(()=>{});var ta=ie(()=>{});var Qu=ie(()=>{});var ra=ie((bA,tc)=>{"use strict";var{existsSync:v0,readFileSync:S0}=Qu(),{dirname:na,join:A0}=Jr(),{SourceMapConsumer:Zu,SourceMapGenerator:ec}=Qr();function E0(e){return Buffer?Buffer.from(e,"base64").toString():window.atob(e)}var Kn=class{constructor(t,n){if(n.map===!1)return;n.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(t),this.inline=this.startWith(this.annotation,"data:");let r=n.map?n.map.prev:void 0,i=this.loadMap(n.from,r);!this.mapFile&&n.from&&(this.mapFile=n.from),this.mapFile&&(this.root=na(this.mapFile)),i&&(this.text=i)}consumer(){return this.consumerCache||(this.consumerCache=new Zu(this.json||this.text)),this.consumerCache}decodeInline(t){let n=/^data:application\\/json;charset=utf-?8;base64,/,r=/^data:application\\/json;base64,/,i=/^data:application\\/json;charset=utf-?8,/,o=/^data:application\\/json,/,a=t.match(i)||t.match(o);if(a)return decodeURIComponent(t.substr(a[0].length));let l=t.match(n)||t.match(r);if(l)return E0(t.substr(l[0].length));let s=t.slice(22);throw s=s.slice(0,s.indexOf(",")),new Error("Unsupported source map encoding "+s)}getAnnotationURL(t){return t.replace(/^\\/\\*\\s*# sourceMappingURL=/,"").trim()}isMap(t){return typeof t!="object"?!1:typeof t.mappings=="string"||typeof t._mappings=="string"||Array.isArray(t.sections)}loadAnnotation(t){let n=t.match(/\\/\\*\\s*# sourceMappingURL=/g);if(!n)return;let r=t.lastIndexOf(n.pop()),i=t.indexOf("*/",r);r>-1&&i>-1&&(this.annotation=this.getAnnotationURL(t.substring(r,i)))}loadFile(t,n,r){if(!(!r&&!this.unsafeMap&&!/\\.map$/i.test(t))&&(this.root=na(t),v0(t)))return this.mapFile=t,S0(t,"utf-8").toString().trim()}loadMap(t,n){if(n===!1)return!1;if(n){if(typeof n=="string")return n;if(typeof n=="function"){let r=n(t);if(r){let i=this.loadFile(r,t,!0);if(!i)throw new Error("Unable to load previous source map: "+r.toString());return i}}else{if(n instanceof Zu)return ec.fromSourceMap(n).toString();if(n instanceof ec)return n.toString();if(this.isMap(n))return JSON.stringify(n);throw new Error("Unsupported previous source map format: "+n.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let r=this.annotation;t&&(r=A0(na(t),r));let i=this.loadFile(r,t,!1);if(i)try{this.json=JSON.parse(i.replace(/^\\)]}\'[^\\n]*\\n/,""))}catch{return}return i}}}startWith(t,n){return t?t.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};tc.exports=Kn;Kn.default=Kn});var Yn=ie((xA,ac)=>{"use strict";var{nanoid:w0}=Ju(),{isAbsolute:aa,resolve:sa}=Jr(),{SourceMapConsumer:C0,SourceMapGenerator:_0}=Qr(),{fileURLToPath:nc,pathToFileURL:Zr}=ta(),rc=jr(),T0=ra(),ia=Ko(),oa=Symbol("lineToIndexCache"),R0=!!(C0&&_0),ic=!!(sa&&aa);function oc(e){if(e[oa])return e[oa];let t=e.css.split(`\n`),n=new Array(t.length),r=0;for(let i=0,o=t.length;i<o;i++)n[i]=r,r+=t[i].length+1;return e[oa]=n,n}var Jt=class{get from(){return this.file||this.id}constructor(t,n={}){if(t===null||typeof t>"u"||typeof t=="object"&&!t.toString)throw new Error(`PostCSS received ${t} instead of CSS string`);if(this.css=t.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,n.document&&(this.document=n.document.toString()),n.from&&(!ic||/^\\w+:\\/\\//.test(n.from)||aa(n.from)?this.file=n.from:this.file=sa(n.from)),ic&&R0){let r=new T0(this.css,n);if(r.text){this.map=r;let i=r.consumer().file;!this.file&&i&&(this.file=this.mapResolve(i))}}this.file||(this.id="<input css "+w0(6)+">"),this.map&&(this.map.file=this.from)}error(t,n,r,i={}){let o,a,l,s,u;if(n&&typeof n=="object"){let m=n,f=r;if(typeof m.offset=="number"){s=m.offset;let p=this.fromOffset(s);n=p.line,r=p.col}else n=m.line,r=m.column,s=this.fromLineAndColumn(n,r);if(typeof f.offset=="number"){l=f.offset;let p=this.fromOffset(l);a=p.line,o=p.col}else a=f.line,o=f.column,l=this.fromLineAndColumn(f.line,f.column)}else if(r)s=this.fromLineAndColumn(n,r);else{s=n;let m=this.fromOffset(s);n=m.line,r=m.col}let c=this.origin(n,r,a,o);return c?u=new rc(t,c.endLine===void 0?c.line:{column:c.column,line:c.line},c.endLine===void 0?c.column:{column:c.endColumn,line:c.endLine},c.source,c.file,i.plugin):u=new rc(t,a===void 0?n:{column:r,line:n},a===void 0?r:{column:o,line:a},this.css,this.file,i.plugin),u.input={column:r,endColumn:o,endLine:a,endOffset:l,line:n,offset:s,source:this.css},this.file&&(Zr&&(u.input.url=Zr(this.file).toString()),u.input.file=this.file),u}fromLineAndColumn(t,n){return oc(this)[t-1]+n-1}fromOffset(t){let n=oc(this),r=n[n.length-1],i=0;if(t>=r)i=n.length-1;else{let o=n.length-2,a;for(;i<o;)if(a=i+(o-i>>1),t<n[a])o=a-1;else if(t>=n[a+1])i=a+1;else{i=a;break}}return{col:t-n[i]+1,line:i+1}}mapResolve(t){return/^\\w+:\\/\\//.test(t)?t:sa(this.map.consumer().sourceRoot||this.map.root||".",t)}origin(t,n,r,i){if(!this.map)return!1;let o=this.map.consumer(),a=o.originalPositionFor({column:n,line:t});if(!a.source)return!1;let l;typeof r=="number"&&(l=o.originalPositionFor({column:i,line:r}));let s;aa(a.source)?s=Zr(a.source):s=new URL(a.source,this.map.consumer().sourceRoot||Zr(this.map.mapFile));let u={column:a.column,endColumn:l&&l.column,endLine:l&&l.line,line:a.line,url:s.toString()};if(s.protocol==="file:")if(nc)u.file=nc(s);else throw new Error("file: protocol is not available in this PostCSS build");let c=o.sourceContentFor(a.source);return c&&(u.source=c),u}toJSON(){let t={};for(let n of["hasBOM","css","file","id"])this[n]!=null&&(t[n]=this[n]);return this.map&&(t.map={...this.map},t.map.consumerCache&&(t.map.consumerCache=void 0)),t}};ac.exports=Jt;Jt.default=Jt;ia&&ia.registerInput&&ia.registerInput(Jt)});var Qt=ie((yA,cc)=>{"use strict";var sc=gt(),lc,uc,bt=class extends sc{constructor(t){super(t),this.type="root",this.nodes||(this.nodes=[])}normalize(t,n,r){let i=super.normalize(t);if(n){if(r==="prepend")this.nodes.length>1?n.raws.before=this.nodes[1].raws.before:delete n.raws.before;else if(this.first!==n)for(let o of i)o.raws.before=n.raws.before}return i}removeChild(t,n){let r=this.index(t);return!n&&r===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[r].raws.before),super.removeChild(t)}toResult(t={}){return new lc(new uc,this,t).stringify()}};bt.registerLazyResult=e=>{lc=e};bt.registerProcessor=e=>{uc=e};cc.exports=bt;bt.default=bt;sc.registerRoot(bt)});var la=ie((vA,dc)=>{"use strict";var Xn={comma(e){return Xn.split(e,[","],!0)},space(e){let t=[" ",`\n`," "];return Xn.split(e,t)},split(e,t,n){let r=[],i="",o=!1,a=0,l=!1,s="",u=!1;for(let c of e)u?u=!1:c==="\\\\"?u=!0:l?c===s&&(l=!1):c===\'"\'||c==="\'"?(l=!0,s=c):c==="("?a+=1:c===")"?a>0&&(a-=1):a===0&&t.includes(c)&&(o=!0),o?(i!==""&&r.push(i.trim()),i="",o=!1):i+=c;return(n||i!=="")&&r.push(i.trim()),r}};dc.exports=Xn;Xn.default=Xn});var ei=ie((SA,mc)=>{"use strict";var fc=gt(),k0=la(),Zt=class extends fc{get selectors(){return k0.comma(this.selector)}set selectors(t){let n=this.selector?this.selector.match(/,\\s*/):null,r=n?n[0]:","+this.raw("between","beforeOpen");this.selector=t.join(r)}constructor(t){super(t),this.type="rule",this.nodes||(this.nodes=[])}};mc.exports=Zt;Zt.default=Zt;fc.registerRule(Zt)});var hc=ie((AA,pc)=>{"use strict";var M0=Yr(),F0=qn(),N0=jn(),L0=Yn(),D0=ra(),I0=Qt(),P0=ei();function Jn(e,t){if(Array.isArray(e))return e.map(i=>Jn(i));let{inputs:n,...r}=e;if(n){t=[];for(let i of n){let o={...i,__proto__:L0.prototype};o.map&&(o.map={...o.map,__proto__:D0.prototype}),t.push(o)}}if(r.nodes&&(r.nodes=e.nodes.map(i=>Jn(i,t))),r.source){let{inputId:i,...o}=r.source;r.source=o,i!=null&&(r.source.input=t[i])}if(r.type==="root")return new I0(r);if(r.type==="decl")return new N0(r);if(r.type==="rule")return new P0(r);if(r.type==="comment")return new F0(r);if(r.type==="atrule")return new M0(r);throw new Error("Unknown node type: "+e.type)}pc.exports=Jn;Jn.default=Jn});var ca=ie((EA,Sc)=>{"use strict";var{dirname:ti,relative:bc,resolve:xc,sep:yc}=Jr(),{SourceMapConsumer:vc,SourceMapGenerator:ni}=Qr(),{pathToFileURL:gc}=ta(),O0=Yn(),H0=!!(vc&&ni),G0=!!(ti&&xc&&bc&&yc),ua=class{constructor(t,n,r,i){this.stringify=t,this.mapOpts=r.map||{},this.root=n,this.opts=r,this.css=i,this.originalCSS=i,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let t;this.isInline()?t="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?t=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?t=this.mapOpts.annotation(this.opts.to,this.root):t=this.outputFile()+".map";let n=`\n`;this.css.includes(`\\r\n`)&&(n=`\\r\n`),this.css+=n+"/*# sourceMappingURL="+t+" */"}applyPrevMaps(){for(let t of this.previous()){let n=this.toUrl(this.path(t.file)),r=t.root||ti(t.file),i;this.mapOpts.sourcesContent===!1?(i=new vc(t.text),i.sourcesContent&&(i.sourcesContent=null)):i=t.consumer(),this.map.applySourceMap(i,n,this.toUrl(this.path(r)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let t;for(let n=this.root.nodes.length-1;n>=0;n--)t=this.root.nodes[n],t.type==="comment"&&t.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(n)}else if(this.css){let t;for(;(t=this.css.lastIndexOf("/*#"))!==-1;){let n=this.css.indexOf("*/",t+3);if(n===-1)break;for(;t>0&&this.css[t-1]===`\n`;)t--;this.css=this.css.slice(0,t)+this.css.slice(n+2)}}}}generate(){if(this.clearAnnotation(),G0&&H0&&this.isMap())return this.generateMap();{let t="";return this.stringify(this.root,n=>{t+=n}),[t]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let t=this.previous()[0].consumer();t.file=this.outputFile(),this.map=ni.fromSourceMap(t,{ignoreInvalidMapping:!0})}else this.map=new ni({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 ni({file:this.outputFile(),ignoreInvalidMapping:!0});let t=1,n=1,r="<no source>",i={generated:{column:0,line:0},original:{column:0,line:0},source:""},o,a;this.stringify(this.root,(l,s,u)=>{if(this.css+=l,s&&u!=="end"&&(i.generated.line=t,i.generated.column=n-1,s.source&&s.source.start?(i.source=this.sourcePath(s),i.original.line=s.source.start.line,i.original.column=s.source.start.column-1,this.map.addMapping(i)):(i.source=r,i.original.line=1,i.original.column=0,this.map.addMapping(i))),a=l.match(/\\n/g),a?(t+=a.length,o=l.lastIndexOf(`\n`),n=l.length-o):n+=l.length,s&&u!=="start"){let c=s.parent||{raws:{}};(!(s.type==="decl"||s.type==="atrule"&&!s.nodes)||s!==c.last||c.raws.semicolon)&&(s.source&&s.source.end?(i.source=this.sourcePath(s),i.original.line=s.source.end.line,i.original.column=s.source.end.column-1,i.generated.line=t,i.generated.column=n-2,this.map.addMapping(i)):(i.source=r,i.original.line=1,i.original.column=0,i.generated.line=t,i.generated.column=n-1,this.map.addMapping(i)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(t=>t.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let t=this.mapOpts.annotation;return typeof t<"u"&&t!==!0?!1:this.previous().length?this.previous().some(n=>n.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(t=>t.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(t){if(this.mapOpts.absolute||t.charCodeAt(0)===60||/^\\w+:\\/\\//.test(t))return t;let n=this.memoizedPaths.get(t);if(n)return n;let r=this.opts.to?ti(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(r=ti(xc(r,this.mapOpts.annotation)));let i=bc(r,t);return this.memoizedPaths.set(t,i),i}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(t=>{if(t.source&&t.source.input.map){let n=t.source.input.map;this.previousMaps.includes(n)||this.previousMaps.push(n)}});else{let t=new O0(this.originalCSS,this.opts);t.map&&this.previousMaps.push(t.map)}return this.previousMaps}setSourcesContent(){let t={};if(this.root)this.root.walk(n=>{if(n.source){let r=n.source.input.from;if(r&&!t[r]){t[r]=!0;let i=this.usesFileUrls?this.toFileUrl(r):this.toUrl(this.path(r));this.map.setSourceContent(i,n.source.input.css)}}});else if(this.css){let n=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(n,this.css)}}sourcePath(t){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(t.source.input.from):this.toUrl(this.path(t.source.input.from))}toBase64(t){return Buffer?Buffer.from(t).toString("base64"):window.btoa(unescape(encodeURIComponent(t)))}toFileUrl(t){let n=this.memoizedFileURLs.get(t);if(n)return n;if(gc){let r=gc(t).toString();return this.memoizedFileURLs.set(t,r),r}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(t){let n=this.memoizedURLs.get(t);if(n)return n;yc==="\\\\"&&(t=t.replace(/\\\\/g,"/"));let r=encodeURI(t).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(t,r),r}};Sc.exports=ua});var wc=ie((wA,Ec)=>{"use strict";var ri=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,ii=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,B0=/.[\\r\\n"\'(/\\\\]/,Ac=/[\\da-f]/i;Ec.exports=function(t,n={}){let r=t.css.valueOf(),i=n.ignoreErrors,o,a,l,s,u,c,m,f,p,b,v=r.length,x=0,_=[],R=[],T=-1;function M(){return x}function F(C){throw t.error("Unclosed "+C,x)}function E(){return R.length===0&&x>=v}function S(C){if(R.length)return R.pop();if(x>=v)return;let N=C?C.ignoreUnclosed:!1;switch(o=r.charCodeAt(x),o){case 10:case 32:case 9:case 13:case 12:{s=x;do s+=1,o=r.charCodeAt(s);while(o===32||o===10||o===9||o===13||o===12);c=["space",r.slice(x,s)],x=s-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let I=String.fromCharCode(o);c=[I,I,x];break}case 40:{if(b=_.length?_.pop()[1]:"",p=r.charCodeAt(x+1),b==="url"&&p!==39&&p!==34&&p!==32&&p!==10&&p!==9&&p!==12&&p!==13){s=x;do{if(m=!1,s=r.indexOf(")",s+1),s===-1)if(i||N){s=x;break}else F("bracket");for(f=s;r.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);c=["brackets",r.slice(x,s+1),x,s],x=s}else x<=T?c=["(","(",x]:(s=r.indexOf(")",x+1),a=r.slice(x,s+1),s===-1||B0.test(a)?(T=s===-1?v:s,c=["(","(",x]):(c=["brackets",a,x,s],x=s));break}case 39:case 34:{u=o===39?"\'":\'"\',s=x;do{if(m=!1,s=r.indexOf(u,s+1),s===-1)if(i||N){s=x+1;break}else F("string");for(f=s;r.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);c=["string",r.slice(x,s+1),x,s],x=s;break}case 64:{ri.lastIndex=x+1,ri.test(r),ri.lastIndex===0?s=r.length-1:s=ri.lastIndex-2,c=["at-word",r.slice(x,s+1),x,s],x=s;break}case 92:{for(s=x,l=!0;r.charCodeAt(s+1)===92;)s+=1,l=!l;if(o=r.charCodeAt(s+1),l&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(s+=1,Ac.test(r.charAt(s)))){for(;Ac.test(r.charAt(s+1));)s+=1;r.charCodeAt(s+1)===32&&(s+=1)}c=["word",r.slice(x,s+1),x,s],x=s;break}default:{o===47&&r.charCodeAt(x+1)===42?(s=r.indexOf("*/",x+2)+1,s===0&&(i||N?s=r.length:F("comment")),c=["comment",r.slice(x,s+1),x,s],x=s):(ii.lastIndex=x+1,ii.test(r),ii.lastIndex===0?s=r.length-1:s=ii.lastIndex-2,c=["word",r.slice(x,s+1),x,s],_.push(c),x=s);break}}return x++,c}function A(C){R.push(C)}return{back:A,endOfFile:E,nextToken:S,position:M}}});var Rc=ie((CA,Tc)=>{"use strict";var U0=Yr(),W0=qn(),V0=jn(),z0=Qt(),Cc=ei(),q0=wc(),_c={empty:!0,space:!0};function $0(e){for(let t=e.length-1;t>=0;t--){let n=e[t],r=n[3]||n[2];if(r)return r}}var da=class{constructor(t){this.input=t,this.root=new z0,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:t,start:{column:1,line:1,offset:0}}}atrule(t){let n=new U0;n.name=t[1].slice(1),n.name===""&&this.unnamedAtrule(n,t),this.init(n,t[2]);let r,i,o,a=!1,l=!1,s=[],u=[];for(;!this.tokenizer.endOfFile();){if(t=this.tokenizer.nextToken(),r=t[0],r==="("||r==="["?u.push(r==="("?")":"]"):r==="{"&&u.length>0?u.push("}"):r===u[u.length-1]&&u.pop(),u.length===0)if(r===";"){n.source.end=this.getPosition(t[2]),n.source.end.offset++,this.semicolon=!0;break}else if(r==="{"){l=!0;break}else if(r==="}"){if(s.length>0){for(o=s.length-1,i=s[o];i&&i[0]==="space";)i=s[--o];i&&(n.source.end=this.getPosition(i[3]||i[2]),n.source.end.offset++)}this.end(t);break}else s.push(t);else s.push(t);if(this.tokenizer.endOfFile()){a=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(s),s.length?(n.raws.afterName=this.spacesAndCommentsFromStart(s),this.raw(n,"params",s),a&&(t=s[s.length-1],n.source.end=this.getPosition(t[3]||t[2]),n.source.end.offset++,this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),l&&(n.nodes=[],this.current=n)}checkMissedSemicolon(t){let n=this.colon(t);if(n===!1)return;let r=0,i;for(let o=n-1;o>=0&&(i=t[o],!(i[0]!=="space"&&(r+=1,r===2)));o--);throw this.input.error("Missed semicolon",i[0]==="word"?i[3]+1:i[2])}colon(t){let n=0,r,i,o;for(let[a,l]of t.entries()){if(i=l,o=i[0],o==="("&&(n+=1),o===")"&&(n-=1),n===0&&o===":")if(!r)this.doubleColon(i);else{if(r[0]==="word"&&r[1]==="progid")continue;return a}r=i}return!1}comment(t){let n=new W0;this.init(n,t[2]),n.source.end=this.getPosition(t[3]||t[2]),n.source.end.offset++;let r=t[1].slice(2,-2);if(!r.trim())n.text="",n.raws.left=r,n.raws.right="";else{let i=r.match(/^(\\s*)([^]*\\S)(\\s*)$/);n.text=i[2],n.raws.left=i[1],n.raws.right=i[3]}}createTokenizer(){this.tokenizer=q0(this.input)}decl(t,n){let r=new V0;this.init(r,t[0][2]);let i=t[t.length-1];for(i[0]===";"&&(this.semicolon=!0,t.pop()),r.source.end=this.getPosition(i[3]||i[2]||$0(t)),r.source.end.offset++;t[0][0]!=="word";)t.length===1&&this.unknownWord(t),r.raws.before+=t.shift()[1];for(r.source.start=this.getPosition(t[0][2]),r.prop="";t.length;){let u=t[0][0];if(u===":"||u==="space"||u==="comment")break;r.prop+=t.shift()[1]}r.raws.between="";let o;for(;t.length;)if(o=t.shift(),o[0]===":"){r.raws.between+=o[1];break}else o[0]==="word"&&/\\w/.test(o[1])&&this.unknownWord([o]),r.raws.between+=o[1];(r.prop[0]==="_"||r.prop[0]==="*")&&(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));let a=[],l;for(;t.length&&(l=t[0][0],!(l!=="space"&&l!=="comment"));)a.push(t.shift());this.precheckMissedSemicolon(t);for(let u=t.length-1;u>=0;u--){if(o=t[u],o[1].toLowerCase()==="!important"){r.important=!0;let c=this.stringFrom(t,u);c=this.spacesFromEnd(t)+c,c!==" !important"&&(r.raws.important=c);break}else if(o[1].toLowerCase()==="important"){let c=t.slice(0),m="";for(let f=u;f>0;f--){let p=c[f][0];if(m.trim().startsWith("!")&&p!=="space")break;m=c.pop()[1]+m}m.trim().startsWith("!")&&(r.important=!0,r.raws.important=m,t=c)}if(o[0]!=="space"&&o[0]!=="comment")break}t.some(u=>u[0]!=="space"&&u[0]!=="comment")&&(r.raws.between+=a.map(u=>u[1]).join(""),a=[]),this.raw(r,"value",a.concat(t),n),r.value.includes(":")&&!n&&this.checkMissedSemicolon(t)}doubleColon(t){throw this.input.error("Double colon",{offset:t[2]},{offset:t[2]+t[1].length})}emptyRule(t){let n=new Cc;this.init(n,t[2]),n.selector="",n.raws.between="",this.current=n}end(t){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(t[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(t)}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(t){if(this.spaces+=t[1],this.current.nodes){let n=this.current.nodes[this.current.nodes.length-1];n&&n.type==="rule"&&!n.raws.ownSemicolon&&(n.raws.ownSemicolon=this.spaces,this.spaces="",n.source.end=this.getPosition(t[2]),n.source.end.offset+=n.raws.ownSemicolon.length)}}getPosition(t){let n=this.input.fromOffset(t);return{column:n.col,line:n.line,offset:t}}init(t,n){this.current.push(t),t.source={input:this.input,start:this.getPosition(n)},t.raws.before=this.spaces,this.spaces="",t.type!=="comment"&&(this.semicolon=!1)}other(t){let n=!1,r=null,i=!1,o=null,a=[],l=t[1].startsWith("--"),s=[],u=t;for(;u;){if(r=u[0],s.push(u),r==="("||r==="[")o||(o=u),a.push(r==="("?")":"]");else if(l&&i&&r==="{")o||(o=u),a.push("}");else if(a.length===0)if(r===";")if(i){this.decl(s,l);return}else break;else if(r==="{"){this.rule(s);return}else if(r==="}"){this.tokenizer.back(s.pop()),n=!0;break}else r===":"&&(i=!0);else r===a[a.length-1]&&(a.pop(),a.length===0&&(o=null));u=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),a.length>0&&this.unclosedBracket(o),n&&i){if(!l)for(;s.length&&(u=s[s.length-1][0],!(u!=="space"&&u!=="comment"));)this.tokenizer.back(s.pop());this.decl(s,l)}else this.unknownWord(s)}parse(){let t;for(;!this.tokenizer.endOfFile();)switch(t=this.tokenizer.nextToken(),t[0]){case"space":this.spaces+=t[1];break;case";":this.freeSemicolon(t);break;case"}":this.end(t);break;case"comment":this.comment(t);break;case"at-word":this.atrule(t);break;case"{":this.emptyRule(t);break;default:this.other(t);break}this.endFile()}precheckMissedSemicolon(){}raw(t,n,r,i){let o,a,l=r.length,s="",u=!0,c,m;for(let f=0;f<l;f+=1)o=r[f],a=o[0],a==="space"&&f===l-1&&!i?u=!1:a==="comment"?(m=r[f-1]?r[f-1][0]:"empty",c=r[f+1]?r[f+1][0]:"empty",!_c[m]&&!_c[c]?s.slice(-1)===","?u=!1:s+=o[1]:u=!1):s+=o[1];if(!u){let f=r.reduce((p,b)=>p+b[1],"");t.raws[n]={raw:f,value:s}}t[n]=s}rule(t){t.pop();let n=new Cc;this.init(n,t[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(t),this.raw(n,"selector",t),this.current=n}spacesAndCommentsFromEnd(t){let n,r="";for(;t.length&&(n=t[t.length-1][0],!(n!=="space"&&n!=="comment"));)r=t.pop()[1]+r;return r}spacesAndCommentsFromStart(t){let n,r="";for(;t.length&&(n=t[0][0],!(n!=="space"&&n!=="comment"));)r+=t.shift()[1];return r}spacesFromEnd(t){let n,r="";for(;t.length&&(n=t[t.length-1][0],n==="space");)r=t.pop()[1]+r;return r}stringFrom(t,n){let r="";for(let i=n;i<t.length;i++)r+=t[i][1];return t.splice(n,t.length-n),r}unclosedBlock(){let t=this.current.source.start;throw this.input.error("Unclosed block",t.line,t.column)}unclosedBracket(t){throw this.input.error("Unclosed bracket",{offset:t[2]},{offset:t[2]+1})}unexpectedClose(t){throw this.input.error("Unexpected }",{offset:t[2]},{offset:t[2]+1})}unknownWord(t){throw this.input.error("Unknown word "+t[0][1],{offset:t[0][2]},{offset:t[0][2]+t[0][1].length})}unnamedAtrule(t,n){throw this.input.error("At-rule without name",{offset:n[2]},{offset:n[2]+n[1].length})}};Tc.exports=da});var ai=ie((_A,kc)=>{"use strict";var j0=gt(),K0=Yn(),Y0=Rc();function oi(e,t){let n=new K0(e,t),r=new Y0(n);try{r.parse()}catch(i){throw i}return r.root}kc.exports=oi;oi.default=oi;j0.registerParse(oi)});var fa=ie((TA,Mc)=>{"use strict";var Qn=class{constructor(t,n={}){if(this.type="warning",this.text=t,n.node&&n.node.source){let r=n.node.rangeBy(n);this.line=r.start.line,this.column=r.start.column,this.endLine=r.end.line,this.endColumn=r.end.column}for(let r in n)this[r]=n[r]}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}};Mc.exports=Qn;Qn.default=Qn});var si=ie((RA,Fc)=>{"use strict";var X0=fa(),Zn=class{get content(){return this.css}constructor(t,n,r){this.processor=t,this.messages=[],this.root=n,this.opts=r,this.css="",this.map=void 0}toString(){return this.css}warn(t,n={}){n.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(n.plugin=this.lastPlugin.postcssPlugin);let r=new X0(t,n);return this.messages.push(r),r}warnings(){return this.messages.filter(t=>t.type==="warning")}};Fc.exports=Zn;Zn.default=Zn});var ma=ie((kA,Lc)=>{"use strict";var Nc={};Lc.exports=function(t){Nc[t]||(Nc[t]=!0,typeof console<"u"&&console.warn&&console.warn(t))}});var ga=ie((FA,Oc)=>{"use strict";var J0=gt(),Q0=Xr(),Z0=ca(),eg=ai(),Dc=si(),tg=Qt(),ng=Bn(),{isClean:Ye,my:rg}=Kr(),MA=ma(),ig={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},og={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},ag={Once:!0,postcssPlugin:!0,prepare:!0},en=0;function er(e){return typeof e=="object"&&typeof e.then=="function"}function Pc(e){let t=!1,n=ig[e.type];return e.type==="decl"?t=e.prop.toLowerCase():e.type==="atrule"&&(t=e.name.toLowerCase()),t&&e.append?[n,n+"-"+t,en,n+"Exit",n+"Exit-"+t]:t?[n,n+"-"+t,n+"Exit",n+"Exit-"+t]:e.append?[n,en,n+"Exit"]:[n,n+"Exit"]}function Ic(e){let t;return e.type==="document"?t=["Document",en,"DocumentExit"]:e.type==="root"?t=["Root",en,"RootExit"]:t=Pc(e),{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function pa(e){return e[Ye]=!1,e.nodes&&e.nodes.forEach(t=>pa(t)),e}var ha={},xt=class e{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(t,n,r){this.stringified=!1,this.processed=!1;let i;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))i=pa(n);else if(n instanceof e||n instanceof Dc)i=pa(n.root),n.map&&(typeof r.map>"u"&&(r.map={}),r.map.inline||(r.map.inline=!1),r.map.prev=n.map);else{let o=eg;r.syntax&&(o=r.syntax.parse),r.parser&&(o=r.parser),o.parse&&(o=o.parse);try{i=o(n,r)}catch(a){this.processed=!0,this.error=a}i&&!i[rg]&&J0.rebuild(i)}this.result=new Dc(t,i,r),this.helpers={...ha,postcss:ha,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(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(t,n){let r=this.result.lastPlugin;try{n&&n.addToError(t),this.error=t,t.name==="CssSyntaxError"&&!t.plugin?(t.plugin=r.postcssPlugin,t.setMessage()):r.postcssVersion}catch(i){console&&console.error&&console.error(i)}return t}prepareVisitors(){this.listeners={};let t=(n,r,i)=>{this.listeners[r]||(this.listeners[r]=[]),this.listeners[r].push([n,i])};for(let n of this.plugins)if(typeof n=="object")for(let r in n){if(!og[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!ag[r])if(typeof n[r]=="object")for(let i in n[r])i==="*"?t(n,r,n[r][i]):t(n,r+"-"+i.toLowerCase(),n[r][i]);else typeof n[r]=="function"&&t(n,r,n[r])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let t=0;t<this.plugins.length;t++){let n=this.plugins[t],r=this.runOnRoot(n);if(er(r))try{await r}catch(i){throw this.handleError(i)}}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[Ye];){t[Ye]=!0;let n=[Ic(t)];for(;n.length>0;){let r=this.visitTick(n);if(er(r))try{await r}catch(i){let o=n[n.length-1].node;throw this.handleError(i,o)}}}if(this.listeners.OnceExit)for(let[n,r]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if(t.type==="document"){let i=t.nodes.map(o=>r(o,this.helpers));await Promise.all(i)}else await r(t,this.helpers)}catch(i){throw this.handleError(i)}}}return this.processed=!0,this.stringify()}runOnRoot(t){this.result.lastPlugin=t;try{if(typeof t=="object"&&t.Once){if(this.result.root.type==="document"){let n=this.result.root.nodes.map(r=>t.Once(r,this.helpers));return er(n[0])?Promise.all(n):n}return t.Once(this.result.root,this.helpers)}else if(typeof t=="function")return t(this.result.root,this.result)}catch(n){throw this.handleError(n)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let t=this.result.opts,n=ng;t.syntax&&(n=t.syntax.stringify),t.stringifier&&(n=t.stringifier),n.stringify&&(n=n.stringify);let r=this.result.root.source;if(t.map===void 0&&!(r&&r.input&&r.input.map)){let a="";return n(this.result.root,l=>{a+=l}),this.result.css=a,this.result}let o=new Z0(n,this.result.root,this.result.opts).generate();return this.result.css=o[0],this.result.map=o[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 t of this.plugins){let n=this.runOnRoot(t);if(er(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[Ye];)t[Ye]=!0,this.walkSync(t);if(this.listeners.OnceExit)if(t.type==="document")for(let n of t.nodes)this.visitSync(this.listeners.OnceExit,n);else this.visitSync(this.listeners.OnceExit,t)}return this.result}then(t,n){return this.async().then(t,n)}toString(){return this.css}visitSync(t,n){for(let[r,i]of t){this.result.lastPlugin=r;let o;try{o=i(n,this.helpers)}catch(a){throw this.handleError(a,n.proxyOf)}if(n.type!=="root"&&n.type!=="document"&&!n.parent)return!0;if(er(o))throw this.getAsyncError()}}visitTick(t){let n=t[t.length-1],{node:r,visitors:i}=n;if(r.type!=="root"&&r.type!=="document"&&!r.parent){t.pop();return}if(i.length>0&&n.visitorIndex<i.length){let[a,l]=i[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===i.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=a;try{return l(r.toProxy(),this.helpers)}catch(s){throw this.handleError(s,r)}}if(n.iterator!==0){let a=n.iterator,l;for(;l=r.nodes[r.indexes[a]];)if(r.indexes[a]+=1,!l[Ye]){l[Ye]=!0,t.push(Ic(l));return}n.iterator=0,delete r.indexes[a]}let o=n.events;for(;n.eventIndex<o.length;){let a=o[n.eventIndex];if(n.eventIndex+=1,a===en){r.nodes&&r.nodes.length&&(r[Ye]=!0,n.iterator=r.getIterator());return}else if(this.listeners[a]){n.visitors=this.listeners[a];return}}t.pop()}walkSync(t){t[Ye]=!0;let n=Pc(t);for(let r of n)if(r===en)t.nodes&&t.each(i=>{i[Ye]||this.walkSync(i)});else{let i=this.listeners[r];if(i&&this.visitSync(i,t.toProxy()))return}}warnings(){return this.sync().warnings()}};xt.registerPostcss=e=>{ha=e};Oc.exports=xt;xt.default=xt;tg.registerLazyResult(xt);Q0.registerLazyResult(xt)});var Gc=ie((LA,Hc)=>{"use strict";var sg=ca(),lg=ai(),ug=si(),cg=Bn(),NA=ma(),tr=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 t,n=lg;try{t=n(this._css,this._opts)}catch(r){this.error=r}if(this.error)throw this.error;return this._root=t,t}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(t,n,r){n=n.toString(),this.stringified=!1,this._processor=t,this._css=n,this._opts=r,this._map=void 0;let i=cg;this.result=new ug(this._processor,void 0,this._opts),this.result.css=n;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let a=new sg(i,void 0,this._opts,n);if(a.isMap()){let[l,s]=a.generate();l&&(this.result.css=l),s&&(this.result.map=s)}else a.clearAnnotation(),this.result.css=a.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}sync(){if(this.error)throw this.error;return this.result}then(t,n){return this.async().then(t,n)}toString(){return this._css}warnings(){return[]}};Hc.exports=tr;tr.default=tr});var Uc=ie((DA,Bc)=>{"use strict";var dg=Xr(),fg=ga(),mg=Gc(),pg=Qt(),Ft=class{constructor(t=[]){this.version="8.5.14",this.plugins=this.normalize(t)}normalize(t){let n=[];for(let r of t)if(r.postcss===!0?r=r():r.postcss&&(r=r.postcss),typeof r=="object"&&Array.isArray(r.plugins))n=n.concat(r.plugins);else if(typeof r=="object"&&r.postcssPlugin)n.push(r);else if(typeof r=="function")n.push(r);else if(!(typeof r=="object"&&(r.parse||r.stringify)))throw new Error(r+" is not a PostCSS plugin");return n}process(t,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new mg(this,t,n):new fg(this,t,n)}use(t){return this.plugins=this.plugins.concat(this.normalize([t])),this}};Bc.exports=Ft;Ft.default=Ft;pg.registerProcessor(Ft);dg.registerProcessor(Ft)});var Yc=ie((IA,Kc)=>{"use strict";var Wc=Yr(),Vc=qn(),hg=gt(),gg=jr(),zc=jn(),qc=Xr(),bg=hc(),xg=Yn(),yg=ga(),vg=la(),Sg=Vn(),Ag=ai(),ba=Uc(),Eg=si(),$c=Qt(),jc=ei(),wg=Bn(),Cg=fa();function ue(...e){return e.length===1&&Array.isArray(e[0])&&(e=e[0]),new ba(e)}ue.plugin=function(t,n){let r=!1;function i(...a){console&&console.warn&&!r&&(r=!0,console.warn(t+`: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(t+`: \\u91CC\\u9762 postcss.plugin \\u88AB\\u5F03\\u7528. \\u8FC1\\u79FB\\u6307\\u5357:\nhttps://www.w3ctech.com/topic/2226`));let l=n(...a);return l.postcssPlugin=t,l.postcssVersion=new ba().version,l}let o;return Object.defineProperty(i,"postcss",{get(){return o||(o=i()),o}}),i.process=function(a,l,s){return ue([i(s)]).process(a,l)},i};ue.stringify=wg;ue.parse=Ag;ue.fromJSON=bg;ue.list=vg;ue.comment=e=>new Vc(e);ue.atRule=e=>new Wc(e);ue.decl=e=>new zc(e);ue.rule=e=>new jc(e);ue.root=e=>new $c(e);ue.document=e=>new qc(e);ue.CssSyntaxError=gg;ue.Declaration=zc;ue.Container=hg;ue.Processor=ba;ue.Document=qc;ue.Comment=Vc;ue.Warning=Cg;ue.AtRule=Wc;ue.Result=Eg;ue.Input=xg;ue.Rule=jc;ue.Root=$c;ue.Node=Sg;yg.registerPostcss(ue);Kc.exports=ue;ue.default=ue});function Ar(){return globalThis}function L(e,t){if(typeof window>"u")return;let n=Ar(),r=n.__hf?.onSwallowed;if(r)try{r({label:e,error:t})}catch(i){}(n.__hfDebug||n.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${e} swallowed:`,t)}var Wm=["seconds-time","rational-fps","seek-keep-playing","composition-manifest-v1","runtime-data"];function Vm(e,t){let n=Math.abs(e),r=Math.abs(t);for(;r!==0;){let i=n%r;n=r,r=i}return n||1}function zm(e){let t=Number.isFinite(e)&&e>0?e:30,n=Number.isInteger(t)?1:1e6,r=Math.round(t*n),i=Vm(r,n);return{numerator:r/i,denominator:n/i}}function Xi(e){if(typeof e!="object"||e===null)return null;let t=e;return!Number.isFinite(t.numerator)||!Number.isFinite(t.denominator)||(t.numerator??0)<=0||(t.denominator??0)<=0?null:Number(t.numerator)/Number(t.denominator)}function Er(e){return{protocolVersion:1,capabilities:Wm,fps:zm(e)}}function qm(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function Fs(e,t=30){if(typeof e!="object"||e===null)return{status:"legacy",fps:t};let n=e;if(n.protocolVersion===void 0)return{status:"legacy",fps:t};if(n.protocolVersion!==1)return{status:"unsupported",code:"unsupported_protocol_version",receivedVersion:n.protocolVersion};let r=Xi(n.fps);return r===null||!qm(n.capabilities)?{status:"unsupported",code:"invalid_protocol_metadata",receivedVersion:n.protocolVersion}:{status:"supported",fps:r,metadata:n}}var Ns=30;function Ls(e){Ns=Number.isFinite(e)&&e>0?e:30}function xe(e){try{window.parent.postMessage({...e,...Er(Ns)},"*")}catch(t){L("bridge.postMessage",t)}}var $m={play:(e,t)=>t.onPlay(),pause:(e,t)=>t.onPause(),"stop-media":(e,t)=>t.onStopMedia(),seek:(e,t)=>t.onSeek(jm(e,t),e.seekMode??"commit"),tick:(e,t)=>t.onTick(),"set-muted":(e,t)=>t.onSetMuted(!!e.muted),"set-volume":(e,t)=>t.onSetVolume(Math.max(0,Math.min(1,Number(e.volume??1)))),"set-media-output-muted":(e,t)=>t.onSetMediaOutputMuted(!!e.muted),"set-native-media-sync-disabled":(e,t)=>t.onSetNativeMediaSyncDisabled(!!e.disabled),"set-web-audio-media-disabled":(e,t)=>t.onSetWebAudioMediaDisabled(!!e.disabled),"set-playback-rate":(e,t)=>t.onSetPlaybackRate(Number(e.playbackRate??1)),"set-root-duration":(e,t)=>t.onSetRootDuration(Number(e.durationSeconds??0)),"set-color-grading":(e,t)=>t.onSetColorGrading(e.target??null,e.grading??null),"set-color-grading-compare":(e,t)=>t.onSetColorGradingCompare(e.target??null,e.compare??null),"enable-pick-mode":(e,t)=>t.onEnablePickMode(),"disable-pick-mode":(e,t)=>t.onDisablePickMode(),"flash-elements":e=>Ym(e),"set-runtime-data":(e,t)=>{typeof e.channel=="string"&&t.onSetRuntimeData?.(e.channel,e.payload)},"clear-runtime-data":(e,t)=>{typeof e.channel=="string"&&t.onClearRuntimeData?.(e.channel)}};function jm(e,t){let n=Number(e.timeSeconds);if(Number.isFinite(n))return Math.max(0,n);let i=Xi(e.fps)??t.getCanonicalFps();return Math.max(0,Number(e.frame??0))/i}function Km(e){let t=Fs(e);return t.status!=="unsupported"?!1:(xe({source:"hf-preview",type:"diagnostic",code:`runtime.protocol.${t.code}`,details:{receivedVersion:typeof t.receivedVersion=="string"||typeof t.receivedVersion=="number"?t.receivedVersion:null}}),!0)}function Ym(e){let t=e.selectors,n=e.duration||800;t&&Xm(t,n)}function Ds(e){let t=n=>{let r=n.data;if(!r||r.source!=="hf-parent"||r.type!=="control"||Km(r))return;let i=r.action;if(typeof i!="string")return;let o=$m[i];o&&o(r,e)};return window.addEventListener("message",t),xe({source:"hf-preview",type:"ready"}),t}function Xm(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(i=>{i.classList.add("__hf-flash"),setTimeout(()=>i.classList.remove("__hf-flash"),t)})}catch(r){L("bridge.flashElements.querySelector",r)}}var Ji=null;function Is(e){Ji=e}function Ne(e,t){if(Ji)try{Ji({source:"hf-preview",type:"analytics",event:e,properties:t??{}})}catch(n){L("runtime.analytics.site1",n)}}function Jm(e){let t=e.toLowerCase().replace(/[^a-z0-9]+/g,"-"),n=0,r=t.length;for(;n<r&&t[n]==="-";)n++;for(;r>n&&t[r-1]==="-";)r--;let i=t.slice(n,r);return i.length>0?i:"node"}function Ot(e){return`--${Jm(e)}`}function Ps(e){let t=new Map;for(let n of e){let r=Ot(n),i=t.get(r);i?i.includes(n)||i.push(n):t.set(r,[n])}return[...t.values()].filter(n=>n.length>1)}function Hs(){if(typeof document>"u")return{};let e=new Set;document.documentElement?.hasAttribute("data-composition-variables")&&e.add(document.documentElement);for(let i of Array.from(document.querySelectorAll("[data-composition-variables]")))e.add(i);let t={};for(let i of e)Object.assign(t,bn(i));let n=Cr(),r={...t,...n};for(let i of e)Zi(i,r);return r}var Os=new Set;function Gs(e){let t=e?.getAttribute("data-composition-variables");if(!t)return[];let n;try{n=JSON.parse(t)}catch{return[]}return Array.isArray(n)?n.filter(r=>!!r&&typeof r=="object"):[]}function Qm(e,t){return t?.trim()||e.getAttribute("data-composition-id")?.trim()||e.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")?.trim()||"composition"}function Zm(e){return Array.isArray(e.options)?e.options.map(t=>t&&typeof t=="object"?t.value:t).filter(t=>typeof t=="string"||typeof t=="number"):[]}function ep(e,t){if(typeof e.id!="string")return null;let n=t[e.id];if(n==null||"default"in e&&String(n)===String(e.default))return null;let r=Zm(e);return r.length===0||r.some(i=>String(i)===String(n))?null:{id:e.id,value:n,allowed:r}}function Zi(e,t,n){if(!e)return;let r=Gs(e);if(r.length===0)return;let i=Qm(e,n);for(let o of r){let a=ep(o,t);if(!a)continue;let l=`${i}|${a.id}|${String(a.value)}`;if(Os.has(l))continue;Os.add(l);let s="default"in o?JSON.stringify(o.default):"the composition default";console.warn(`[hyperframes] runtime_unknown_enum_value: ${i} variable "${a.id}" got ${JSON.stringify(a.value)}, which is not a declared option (${a.allowed.join(", ")}). Rendering ${s} instead.`)}}function bn(e){let t={};for(let n of Gs(e))typeof n.id!="string"||!("default"in n)||(t[n.id]=n.default);return t}var Qi="data-hf-css-vars";function wr(e){return"style"in e&&typeof e.style?.setProperty=="function"}function eo(e,t){if(!wr(e))return;let n=[];for(let[r,i]of Object.entries(t))if(typeof i=="string"&&i!==""||typeof i=="number"){let o=Ot(r);e.style.setProperty(o,String(i)),n.push(o)}n.length>0&&e.setAttribute(Qi,n.join(" "))}function Bs(e,t,n){let r={};for(let[i,o]of Object.entries(t)){let a=Ot(i);((wr(e)?e.style.getPropertyValue(a):"")||(n?n.getComputedStyle(e).getPropertyValue(a):"")).trim()===""&&(r[i]=o)}return r}function Us(e){if(!wr(e))return;let t=e.getAttribute(Qi);if(t){for(let n of t.split(" "))n.startsWith("--")&&e.style.removeProperty(n);e.removeAttribute(Qi)}}function Ws(e){let t=new Set;e.documentElement?.hasAttribute("data-composition-variables")&&t.add(e.documentElement);for(let i of Array.from(e.querySelectorAll("[data-composition-variables]")))t.add(i);let n=Cr(),r=[];for(let i of t)r.push(...tp(i,n,e.defaultView));for(let i of Ps(r))console.warn(`composition variables ${i.join(", ")} collapse to the same CSS property ${Ot(i[0]??"")} \\u2014 rename one to avoid cross-talk`)}function tp(e,t,n){if(!wr(e))return[];let r=bn(e),i={};for(let[o,a]of Object.entries(r)){if(o in t)continue;let l=Ot(o);(e.style.getPropertyValue(l)||(n?n.getComputedStyle(e).getPropertyValue(l):"")).trim()===""&&(i[o]=a)}for(let[o,a]of Object.entries(t))o in r&&(i[o]=a);return eo(e,i),Object.keys(r)}function Vs(e){let t=e.getAttribute("data-variable-values");if(!t)return{};let n;try{n=JSON.parse(t)}catch{return{}}return!n||typeof n!="object"||Array.isArray(n)?{}:n}function Cr(){if(typeof window>"u")return{};let e=window.__hfVariables;return!e||typeof e!="object"||Array.isArray(e)?{}:e}function zs(e){let t=[],n=u=>{if(typeof u.getAnimations!="function")return[];try{return u.getAnimations()}catch{return[]}},r=u=>e?.resolveStartSeconds?e.resolveStartSeconds(u):Number.parseFloat(u.getAttribute("data-start")??"0")||0,i=(u,c)=>{let m=null;try{m=u.effect?.getComputedTiming?.()??null}catch(p){L("runtime.adapters.css.site5",p)}if(!m)return{};let f=Number(m.endTime);return Number.isFinite(f)?{endSeconds:c+f/1e3}:{unbounded:!0}},o=(u,c)=>{for(let m of u){try{m.currentTime=c}catch(f){L("runtime.adapters.css.site1",f)}try{m.pause()}catch(f){L("runtime.adapters.css.site2",f)}}},a=u=>{for(let c of u)try{c.play()}catch(m){L("runtime.adapters.css.site3",m)}},l=u=>{for(let c of u)try{c.pause()}catch(m){L("runtime.adapters.css.site4",m)}},s=u=>{u.baseDelay?u.el.style.animationDelay=u.baseDelay:u.el.style.removeProperty("animation-delay"),u.basePlayState?u.el.style.animationPlayState=u.basePlayState:u.el.style.removeProperty("animation-play-state")};return{name:"css",discover:()=>{t=[];let u=document.querySelectorAll("*");for(let c of u){if(!(c instanceof HTMLElement))continue;let m=window.getComputedStyle(c);!m.animationName||m.animationName==="none"||t.push({el:c,baseDelay:c.style.animationDelay||"",basePlayState:c.style.animationPlayState||"",animations:n(c)})}},getInferredDurationSeconds:()=>{let u=0;for(let c of t){if(!c.el.isConnected)continue;let m=r(c.el);for(let f of n(c.el)){let p=i(f,m);p.endSeconds!=null&&(u=Math.max(u,p.endSeconds))}}return u>0?u:null},seek:u=>{let c=Number(u.time)||0;for(let m of t){if(!m.el.isConnected)continue;let f=r(m.el),p=Math.max(0,c-f)*1e3,b=m.animations;if(b.length>0){o(b,p);continue}m.el.style.animationPlayState="paused",m.el.style.animationDelay=`-${(p/1e3).toFixed(3)}s`}},pause:()=>{for(let u of t){if(!u.el.isConnected)continue;let c=u.animations;c.length>0&&l(c),s(u)}},play:()=>{for(let u of t)u.el.isConnected&&(s(u),a(u.animations))},revert:()=>{t=[]}}}function qs(e){return{name:"gsap",discover:()=>{},seek:t=>{let n=e.getTimeline();if(!n)return;n.pause();let r=Math.max(0,Number(t.time)||0),i=t.suppressEvents===!0;typeof n.totalTime=="function"?(n.totalTime(r+.001,!0),n.totalTime(r,i)):n.seek(r,i)},pause:()=>{let t=e.getTimeline();t&&t.pause()}}}function $s(){return{name:"animejs",discover:()=>{try{let e=window.anime;if(!e||typeof e.running>"u")return;let t=e.running;if(!Array.isArray(t)||t.length===0)return;let n=window.__hfAnime??[],r=new Set(n);for(let i of t)r.has(i)||n.push(i);window.__hfAnime=n}catch(e){L("runtime.adapters.animejs.site1",e)}},seek:e=>{let t=Math.max(0,(Number(e.time)||0)*1e3),n=window.__hfAnime;if(!(!n||n.length===0))for(let r of n)try{typeof r.seek=="function"&&r.seek(t)}catch(i){L("runtime.adapters.animejs.site2",i)}},pause:()=>{let e=window.__hfAnime;if(!(!e||e.length===0))for(let t of e)try{typeof t.pause=="function"&&t.pause()}catch(n){L("runtime.adapters.animejs.site3",n)}},play:()=>{let e=window.__hfAnime;if(!(!e||e.length===0))for(let t of e)try{typeof t.play=="function"&&t.play()}catch(n){L("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function Ks(){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??[],r=new Set(n);for(let i of t)r.has(i)||n.push(i);window.__hfLottie=n}}}catch(e){L("runtime.adapters.lottie.site1",e)}},seek:e=>{let t=Math.max(0,Number(e.time)||0),n=window.__hfLottie;if(!(!n||n.length===0))for(let r of n)try{if(to(r))r.goToAndStop(t*1e3,!1);else if(no(r)){if(typeof r.setCurrentRawFrameValue=="function"){let i=r.totalFrames??0,o=r.frameRate??30,a=t*o;i>0&&r.setCurrentRawFrameValue(Math.min(a,i-1))}else if(typeof r.seek=="function"){let i=r.duration??1,o=Math.min(100,t/i*100);r.seek(o)}}}catch(i){L("runtime.adapters.lottie.site2",i)}},pause:()=>{let e=window.__hfLottie;if(!(!e||e.length===0))for(let t of e)try{(to(t)||no(t))&&t.pause()}catch(n){L("runtime.adapters.lottie.site3",n)}},revert:()=>{},getInferredDurationSeconds:()=>{let e=window.__hfLottie;if(!e||e.length===0)return null;let t=0,n=!1;for(let r of e){let i=null;try{i=np(r)}catch(o){L("runtime.adapters.lottie.site4",o)}i!=null&&(n=!0,t=Math.max(t,i))}return n?t:null}}}function js(e,t){return!Number.isFinite(e)||!e||e<=0||!Number.isFinite(t)||!t||t<=0?null:e/t}function np(e){return to(e)?js(e.totalFrames,e.frameRate):no(e)?Number.isFinite(e.duration)&&(e.duration??0)>0?e.duration??null:js(e.totalFrames,e.frameRate):null}function to(e){return typeof e=="object"&&e!==null&&typeof e.goToAndStop=="function"}function no(e){return typeof e=="object"&&e!==null&&typeof e.pause=="function"&&("totalFrames"in e||"duration"in e)}var ro=-1,_r=new Set,Ht,io=0;function Ys(e){let t=[],n=!0,r={time:e,waitUntil:o=>{if(!n)throw new Error("hf-seek waitUntil() must be called synchronously from the event listener");t.push(o)}};try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:r}))}catch(o){L("runtime.adapters.seek-dispatch.site1",o)}finally{n=!1}if(t.length===0)return;let i=Promise.all(t).then(()=>({status:"fulfilled"})).catch(o=>({status:"rejected",reason:o}));_r.add(i),i.then(o=>{_r.delete(i)&&o.status==="rejected"&&Ht===void 0&&(Ht={reason:o.reason})})}function Tr(e){e!==ro&&(ro=e,Ys(e))}function Rr(e){ro=e,Ys(e)}function Xs(){return io>0}async function oo(){io+=1;let e=Ht;try{for(await Promise.resolve();_r.size>0;){let r=(await Promise.all([..._r])).find(i=>i.status==="rejected");e===void 0&&r?.status==="rejected"&&(e={reason:r.reason})}let t=Ht;if(e===void 0&&(e=t),Ht===t&&(Ht=void 0),e)throw e.reason}finally{io-=1}}function Js(){let e=null,t=0,n=null,r=null,i=null,o=null,a=()=>{if(typeof window>"u")return null;let c=window.THREE?.DefaultLoadingManager;return!c||typeof c!="object"||typeof c.itemsLoaded!="number"||typeof c.itemsTotal!="number"?null:c},l=u=>{o||u.itemsTotal<=u.itemsLoaded||(o=new Promise(c=>{u.onLoad=function(){try{i?.call(this)}finally{o=null,u.onLoad=i??null,c()}}}))},s=u=>{n!==u&&(n=u,r=u.onStart??null,i=u.onLoad??null,u.onStart=function(c,m,f){try{r?.call(this,c,m,f)}finally{l(u)}})};return{name:"three",discover:()=>{let u=a();u&&(s(u),l(u))},seek:u=>{e=Math.max(0,Number(u.time)||0),t=e,window.__hfThreeTime=e,Tr(e)},pause:()=>{e==null&&(e=Math.max(0,t))},play:()=>{e=null},revert:()=>{e=null,t=0},getReadyPromise:()=>{let u=a();return!u||u.itemsTotal<=u.itemsLoaded?null:(o||l(u),o)}}}function $e(e){let t=null,n=new WeakSet;return{name:e.name,discover:()=>{},seek:()=>{},pause:()=>{},play:()=>{},revert:()=>{},getReadyPromise:()=>{let r=e.getInstances();if(r.length===0)return null;let i=r.filter(o=>!n.has(o));return i.length===0?null:t||(t=Promise.allSettled(i.map(o=>e.waitFor(o).then(()=>{n.add(o)}))).then(()=>{t=null}),t)}}}function Qs(){return $e({name:"mapbox",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfMapbox;return Array.isArray(e)?e:[]},waitFor:e=>new Promise(t=>{if(e.loaded()){t();return}e.on("load",t)})})}function Zs(){return $e({name:"leaflet",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfLeaflet;return Array.isArray(e)?e:[]},waitFor:e=>new Promise(t=>e.whenReady(t))})}function el(){return $e({name:"google-maps",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfGoogleMaps;return Array.isArray(e)?e:[]},waitFor:e=>new Promise(t=>{let n=e.addListener("tilesloaded",()=>{n.remove(),t()})})})}function tl(){return $e({name:"maplibre",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfMaplibre;return Array.isArray(e)?e:[]},waitFor:e=>new Promise(t=>{if(e.loaded()){t();return}e.on("load",t)})})}function nl(){return $e({name:"d3",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfD3;return Array.isArray(e)?e:[]},waitFor:e=>e.end()})}var rp=250;function rl(){let e=null,t=0,n=null,r=()=>{n!==null&&(window.clearInterval(n),n=null)},i=()=>{n===null&&document.querySelector("[data-composition-id][data-requires-webgpu]")&&(n=window.setInterval(()=>{e!==null&&(Xs()||(window.__hfTypegpuTime=e,Rr(e)))},rp))};return{name:"typegpu",discover:()=>{},seek:o=>{e=Math.max(0,Number(o.time)||0),t=e,window.__hfTypegpuTime=e,Tr(e)},pause:()=>{e==null&&(e=Math.max(0,t)),i()},play:()=>{r(),e=null},revert:()=>{r(),e=null,t=0}}}var xn="data-hf-render-id",il="data-hf-group-render-id";function ip(e){return e.getAttribute(xn)||e.id||null}var op="__render_frame_",ap="__";function sp(e){return`${op}${e}${ap}`}function lp(e){let t=ip(e);return t?sp(t):null}function ut(e){let t=lp(e);if(!t)return null;let n=document.getElementById(t);return n instanceof HTMLImageElement?n:null}function ol(e){let t=e.nextElementSibling;if(t instanceof HTMLImageElement&&t.classList.contains("__render_frame__")&&t.complete&&t.naturalWidth>0)return t;let n=ut(e);return n&&n.complete&&n.naturalWidth>0?n:null}function al(){let e=globalThis.GPUQueue;if(!e?.prototype?.copyExternalImageToTexture)return;let t=e.prototype.copyExternalImageToTexture;e.prototype.copyExternalImageToTexture=function(n,r,i){if(n?.source instanceof HTMLVideoElement){let o=ol(n.source);if(o)return t.call(this,{...n,source:o},r,i)}return t.call(this,n,r,i)}}function sl(){let e=[globalThis.WebGL2RenderingContext,globalThis.WebGLRenderingContext],t=["texImage2D","texSubImage2D"];for(let n of e){let r=n?.prototype;if(r)for(let i of t){let o=r[i];if(typeof o!="function"||o.__hfVideoPatched)continue;let a=function(...l){let s=l.length-1,u=l[s];if(u instanceof HTMLVideoElement){let c=ol(u);c&&(l[s]=c)}return o.apply(this,l)};a.__hfVideoPatched=!0,r[i]=a}}}function ll(){let e=!1,t=0,n=!1,r,i,o,a=new Set,l=new WeakMap,s=()=>{if(!document.getAnimations)return[];try{return document.getAnimations()}catch{return[]}},u=x=>{let _=Number(x.currentTime);return Number.isFinite(_)&&_>0?_:0},c=(x,_)=>_<=0?x:x>=_?Math.max(0,x-_):x,m=(x,_)=>{let R=l.get(x);if(R)return R;let T={compositionTimeMs:_,animationTimeMs:e?c(u(x),_):u(x)};return l.set(x,T),T},f=(x,_)=>{if(!a.has(x)){a.add(x);let R=()=>{a.delete(x)};try{x.addEventListener("finish",R,{once:!0}),x.addEventListener("cancel",R,{once:!0})}catch(T){L("runtime.adapters.waapi.site4",T)}}m(x,_)},p=(x,_)=>{for(let R of x)f(R,_)},b=()=>{if(n||typeof Element>"u")return;let x=Element.prototype;if(typeof x.animate!="function"||x.__hfOriginalAnimate)return;let _=x.animate;try{Object.defineProperty(x,"__hfOriginalAnimate",{value:_,configurable:!0});let R=function(...T){let M=_.apply(this,T);return f(M,t),M};x.animate=R,r=x,i=_,o=R,n=!0}catch{}},v=x=>{let _=null;try{_=x.effect?.getComputedTiming?.()??null}catch(M){L("runtime.adapters.waapi.site4",M)}if(!_)return{};let R=Number(_.endTime);return Number.isFinite(R)?{endSeconds:(l.get(x)?.compositionTimeMs??0)/1e3+R/1e3}:{unbounded:!0}};return{name:"waapi",discover:()=>{e=!0,b(),p(s(),t)},seek:x=>{let _=Math.max(0,(Number(x.time)||0)*1e3);t=_,(!e||a.size>0)&&p(s(),e?_:0);for(let R of a){let T=e?m(R,_):m(R,0),M=T.animationTimeMs+Math.max(0,_-T.compositionTimeMs);try{R.currentTime=M}catch(F){L("runtime.adapters.waapi.site1",F)}try{R.pause()}catch(F){L("runtime.adapters.waapi.site2",F)}}},pause:()=>{e||p(s(),t);for(let x of a)try{x.pause()}catch(_){L("runtime.adapters.waapi.site3",_)}},revert:()=>{if(a.clear(),l=new WeakMap,e=!1,t=0,r&&i&&o&&r.animate===o)try{r.animate=i,r.__hfOriginalAnimate===i&&delete r.__hfOriginalAnimate}catch(x){L("runtime.adapters.waapi.site5",x)}r=void 0,i=void 0,o=void 0,n=!1},getInferredDurationSeconds:()=>{let x=0;for(let _ of s()){let R=v(_);R.endSeconds!=null&&(x=Math.max(x,R.endSeconds))}return x>0?x:null}}}var ao=3.981071705534972;function Le(e){return Number.isFinite(e)?Math.max(0,Math.min(ao,e)):1}function kr(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):1}function ul(e,t){let n=typeof HTMLMediaElement>"u"?void 0:Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype,"volume"),r=n?.get,i=n?.set;if(!r||!i)return t();let o=Number(r.call(e));Object.defineProperty(e,"volume",{configurable:!0,get:()=>o,set:a=>{o=Number(a),i.call(e,kr(o))}});try{return t()}finally{delete e.volume,i.call(e,kr(o))}}var Gt=Object.freeze({start:"data-start",duration:"data-duration",trackIndex:"data-track-index",derivedEnd:"data-end",legacyTrack:"data-layer"}),lv=Object.freeze([Gt.start,Gt.duration,Gt.trackIndex]),uv=Object.freeze([Gt.derivedEnd]),cv=Object.freeze([Gt.derivedEnd,Gt.legacyTrack]);function Bt(e){if(e==null||e.trim()==="")return null;let t=Number(e);return Number.isFinite(t)?t:null}var dl=/^[A-Za-z0-9_.:-]+$/;function fl(e,t){let n=e.charCodeAt(t);return n>=48&&n<=57}function cl(e,t){let n=t;for(;n>=0&&fl(e,n);)n--;return n}function up(e,t){let n=t;for(;n>=0&&(e[n]??"").trim()==="";)n--;return n}function cp(e){let t=e.length-1;if(!fl(e,t))return null;let n=cl(e,t);return e[n]==="."&&(n=cl(e,n-1)),n+1}function dp(e){let t=cp(e);if(t==null)return null;let n=up(e,t-1),r=e[n];if(r!=="+"&&r!=="-")return null;let i=e.slice(0,n).trim();if(!dl.test(i))return null;let o=Number(e.slice(t));return Number.isFinite(o)?{refId:i,operator:r,magnitude:o}:null}function so(e){let t=(e??"").trim();if(!t)return null;let n=Bt(t);if(n!=null)return{kind:"absolute",value:n};if(dl.test(t))return{kind:"reference",refId:t,offset:0};let r=dp(t);return r?{kind:"reference",refId:r.refId,offset:r.operator==="-"?-r.magnitude:r.magnitude}:null}function ml(e){return Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1}function ve(e){return Bt(e)}function Ce(e){let t=Number.parseFloat(e.getAttribute("data-playback-rate")??""),n=Number.isFinite(t)&&t>0?t:typeof HTMLMediaElement<"u"&&e instanceof HTMLMediaElement?e.defaultPlaybackRate:1;return ml(n)}function yn(e){let t=n=>{let r=ve(n);return r==null?null:Number.isFinite(r)&&r>=0?r:null};return t(e.getAttribute("data-playback-start"))??t(e.getAttribute("data-media-start"))??0}function Ze(e,t){return fp(t,yn(e),Ce(e))}function fp(e,t,n){return Number.isFinite(e)?Math.max(0,e-t)/ml(n):null}function mp(e,t,n){let r=e.filter(o=>Number.isFinite(o.time)&&Number.isFinite(o.volume)).map(o=>({time:Math.max(0,o.time-t),volume:Le(o.volume)})).sort((o,a)=>o.time-a.time),i=[];for(let o of r){let a=i.at(-1);a&&Math.abs(a.time-o.time)<1e-9?a.volume=o.volume:i.push(o)}return i.length===0||i[0].time>0&&i.unshift({time:0,volume:Le(n)}),i}function pl(e,t){if(e.length===0)return 1;let n=0;for(;n<e.length-2&&t>=e[n+1].time;)n+=1;let r=e[n],i=e[n+1]??r,o=i.time-r.time,a=o<=0?0:Math.min(1,Math.max(0,(t-r.time)/o));return r.volume+(i.volume-r.volume)*a}function pp(e,t,n,r){let i=e.at(-1);!i||Math.abs(i.volume-n.volume)>1e-4?(i&&t&&t.time>i.time&&e.push(t),e.push(n)):r&&n.time>i.time&&e.push(n)}function hp(e){let t=Number.parseFloat(e??"");return Number.isFinite(t)?t:void 0}function hl(e,t){let n=ve(e.dataset.start)??0,r=ve(e.dataset.end)??void 0,i=ve(e.dataset.duration)??void 0,o=t;i!==void 0&&i>0?o=n+i:r!==void 0&&r>n&&(o=r);let a=hp(e.dataset.volume)??1;return{start:n,end:o,staticVolume:Le(a)}}function gp(e,t,n,r){let{start:i,end:o,staticVolume:a}=hl(e,n),l=1/Math.min(60,Math.max(1,r)),s=Math.max(0,i),u=Math.min(n,o),c=ul(e,()=>{e.volume=a;let f=[],p;for(let b=s;b<=u+1e-6;b=Math.min(u,b+l)){t(b);let v=Number(e.volume);if(Number.isFinite(v)){let x={time:Number(b.toFixed(6)),volume:Number(Le(v).toFixed(6))};pp(f,p,x,b===u),p=x}if(b===u)break}return f});return c.some(f=>Math.abs(f.volume-a)>1e-4)?c:null}function gl(e,t,n,r,i={}){if(i.allowLiveTimelineSeek===!1||!t||!(e instanceof HTMLAudioElement)&&!(e instanceof HTMLVideoElement)||n<=0)return;let o=s=>{try{typeof t.totalTime=="function"?t.totalTime(s,!0):typeof t.seek=="function"&&t.seek(s,!0)}catch{}},a=typeof t.totalTime=="function"?Number(t.totalTime()):typeof t.seek=="function"?Number(t.seek()):0,l=gp(e,o,n,60);if(Number.isFinite(a)&&o(a),l){let{start:s,staticVolume:u}=hl(e,n),c=mp(l,s,u);c.length>0&&r.set(e,c)}}var Rt="data-fx-chain",vv=Rt.slice(5),bl=1,vn=(e="frequency",t="Frequency",n=1e3,r=20,i=2e4)=>({kind:"number",key:e,label:t,unit:"Hz",min:r,max:i,step:1,default:n,scale:"log",automatable:!0}),lo=(e=.707,t="Bandwidth \\u2014 higher is narrower.")=>({kind:"number",key:"q",label:"Q",unit:"",min:.1,max:20,step:.01,default:e,scale:"log",automatable:!0,hint:t}),Mr=(e=-40,t=40,n=0)=>({kind:"number",key:"gain",label:"Gain",unit:"dB",min:e,max:t,step:.1,default:n,automatable:!0}),xl={kind:"enum",key:"poles",label:"Slope",options:[{value:"1",label:"6 dB/oct"},{value:"2",label:"12 dB/oct"}],default:"2",hint:"Two poles is the usual biquad; one pole is gentler."},vl=[{id:"gain",label:"Gain",group:"dynamics",description:"Raise or lower the whole signal. Automate it to duck under something else.",params:[Mr(-60,12,0)],web:"gain-node"},{id:"peaking",label:"Peaking EQ",group:"filter",description:"Boost or cut a band, leaving everything either side alone.",params:[vn("frequency","Frequency",1e3),Mr(-40,40,0),lo(1)],web:"biquad-peaking"},{id:"lowshelf",label:"Low Shelf",group:"filter",description:"Lift or drop everything below the corner frequency.",params:[vn("frequency","Frequency",200,20,2e3),Mr(-40,40,0)],web:"biquad-lowshelf"},{id:"highshelf",label:"High Shelf",group:"filter",description:"Lift or drop everything above the corner frequency.",params:[vn("frequency","Frequency",4e3,500,2e4),Mr(-40,40,0)],web:"biquad-highshelf"},{id:"highpass",label:"High-pass",group:"filter",description:"Remove low frequencies \\u2014 the usual fix for rumble on a voice.",params:[vn("frequency","Cutoff",300,20,2e4),lo(.707),xl],web:"biquad-highpass"},{id:"lowpass",label:"Low-pass",group:"filter",description:"Remove high frequencies \\u2014 darkens or muffles a track.",params:[vn("frequency","Cutoff",8e3,100,2e4),lo(.707),xl],web:"biquad-lowpass"},{id:"compressor",label:"Compressor",group:"dynamics",description:"Pull loud parts down so the quiet ones can come up.",params:[{kind:"number",key:"threshold",label:"Threshold",unit:"dB",min:-60,max:0,step:.5,default:-24,hint:"Level above which the compressor starts working."},{kind:"number",key:"ratio",label:"Ratio",unit:":1",min:1,max:20,step:.1,default:4},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.01,max:2e3,step:.1,default:20,scale:"log"},{kind:"number",key:"release",label:"Release",unit:"ms",min:.01,max:9e3,step:1,default:250,scale:"log"},{kind:"number",key:"knee",label:"Knee",unit:"",min:1,max:8,step:.01,default:2.83,hint:"1 is a hard corner; higher eases into it."},{kind:"number",key:"makeup",label:"Makeup",unit:"dB",min:0,max:36,step:.1,default:0},{kind:"number",key:"mix",label:"Mix",unit:"",min:0,max:1,step:.01,default:1,hint:"Below 1 blends the dry signal back in."}],web:"worklet-compressor"},{id:"limiter",label:"Limiter",group:"dynamics",description:"Hard ceiling \\u2014 nothing gets past the limit.",params:[{kind:"number",key:"limit",label:"Ceiling",unit:"dB",min:-24,max:0,step:.1,default:-1},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.1,max:80,step:.1,default:5},{kind:"number",key:"release",label:"Release",unit:"ms",min:1,max:8e3,step:1,default:50,scale:"log"},{kind:"number",key:"level_out",label:"Output",unit:"dB",min:-24,max:24,step:.1,default:0}],web:"worklet-limiter"},{id:"gate",label:"Noise Gate",group:"dynamics",description:"Silence the track when it drops below the threshold.",params:[{kind:"number",key:"threshold",label:"Threshold",unit:"dB",min:-80,max:0,step:.5,default:-35},{kind:"number",key:"range",label:"Range",unit:"dB",min:-80,max:0,step:.5,default:-24,hint:"How far down the gate pulls when closed."},{kind:"number",key:"ratio",label:"Ratio",unit:":1",min:1,max:20,step:.1,default:10},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.01,max:9e3,step:.1,default:1,scale:"log"},{kind:"number",key:"release",label:"Release",unit:"ms",min:.01,max:9e3,step:1,default:100,scale:"log"},{kind:"number",key:"knee",label:"Knee",unit:"",min:1,max:8,step:.01,default:2.83}],web:"worklet-gate"},{id:"saturate",label:"Saturation",group:"nonlinear",description:"Soft-clip the waveform for warmth or outright distortion.",params:[{kind:"enum",key:"type",label:"Curve",options:[{value:"tanh",label:"Tanh"},{value:"atan",label:"Arctan"},{value:"cubic",label:"Cubic"},{value:"exp",label:"Exponential"},{value:"alg",label:"Algebraic"},{value:"quintic",label:"Quintic"},{value:"sin",label:"Sine"},{value:"erf",label:"Error function"},{value:"hard",label:"Hard clip"}],default:"tanh"},{kind:"number",key:"threshold",label:"Threshold",unit:"dB",min:-40,max:0,step:.1,default:-6},{kind:"number",key:"output",automatable:!0,label:"Output",unit:"dB",min:-24,max:24,step:.1,default:0},{kind:"number",key:"oversample",label:"Oversample",unit:"x",min:1,max:8,step:1,default:4,hint:"Higher costs more but keeps aliasing down."}],web:"waveshaper"},{id:"bitcrush",label:"Bitcrush",group:"nonlinear",description:"Drop bit depth and sample rate for a lo-fi, digital sound.",params:[{kind:"number",key:"bits",label:"Bit depth",unit:"bit",min:1,max:32,step:.1,default:8},{kind:"number",key:"samples",label:"Sample hold",unit:"x",min:1,max:250,step:1,default:1,hint:"Repeats each sample N times \\u2014 a crude downsample."},{kind:"number",key:"mix",label:"Mix",unit:"",min:0,max:1,step:.01,default:1}],web:"worklet-bitcrush"},{id:"pitchshift",label:"Pitch shift",group:"time",description:"Shifts pitch up or down without changing playback speed. Adds ~50 ms of latency.",params:[{kind:"number",key:"semitones",label:"Semitones",unit:"st",min:-12,max:12,step:1,default:0},{kind:"number",key:"mix",label:"Mix",unit:"",min:0,max:1,step:.01,default:1}],web:"worklet-pitchshift"},{id:"delay",label:"Delay",group:"time",description:"Repeating echoes behind the dry signal.",params:[{kind:"number",key:"time",automatable:!0,label:"Time",unit:"ms",min:1,max:5e3,step:1,default:250,scale:"log"},{kind:"number",key:"feedback",automatable:!0,label:"Feedback",unit:"",min:.01,max:.95,step:.01,default:.35},{kind:"number",key:"mix",automatable:!0,label:"Mix",unit:"",min:0,max:1,step:.01,default:.4}],web:"delay-feedback"},{id:"chorus",label:"Chorus",group:"time",description:"Detuned copies of the signal for width and thickness.",params:[{kind:"number",key:"delay",automatable:!0,label:"Delay",unit:"ms",min:1,max:100,step:.1,default:7},{kind:"number",key:"depth",automatable:!0,label:"Depth",unit:"ms",min:0,max:10,step:.01,default:2},{kind:"number",key:"speed",automatable:!0,label:"Rate",unit:"Hz",min:.01,max:10,step:.01,default:1},{kind:"number",key:"mix",automatable:!0,label:"Mix",unit:"",min:0,max:1,step:.01,default:.5}],web:"chorus-lfo"},{id:"phaser",label:"Phaser",group:"time",description:"Sweeping notches moving through the spectrum.",params:[{kind:"number",key:"in_gain",automatable:!0,label:"Input",unit:"",min:0,max:1,step:.01,default:.4},{kind:"number",key:"out_gain",automatable:!0,label:"Output",unit:"",min:0,max:2,step:.01,default:.74},{kind:"number",key:"delay",label:"Delay",unit:"ms",min:.1,max:5,step:.1,default:3},{kind:"number",key:"decay",label:"Decay",unit:"",min:0,max:.99,step:.01,default:.4},{kind:"number",key:"speed",automatable:!0,label:"Rate",unit:"Hz",min:.1,max:2,step:.01,default:.5},{kind:"enum",key:"type",label:"Waveform",options:[{value:"0",label:"Triangular"},{value:"1",label:"Sinusoidal"}],default:"0"}],web:"allpass-phaser"},{id:"reverb",label:"Reverb",group:"time",description:"Room tail. Both ends convolve the same generated impulse, so preview matches render.",params:[{kind:"number",key:"size",label:"Room size",unit:"",min:.05,max:1,step:.01,default:.7},{kind:"number",key:"damping",label:"Damping",unit:"",min:0,max:1,step:.01,default:.5,hint:"Higher rolls the top off the tail faster."},{kind:"number",key:"wet",automatable:!0,label:"Wet",unit:"",min:0,max:1,step:.01,default:.35},{kind:"number",key:"dry",automatable:!0,label:"Dry",unit:"",min:0,max:1,step:.01,default:.7}],web:"convolver"}],uo=new Map(vl.map(e=>[e.id,e]));function Sn(e){return uo.get(e)}var Sv=vl.map(e=>e.id);function An(e,t){let n=uo.get(e);if(!n)return{};let r={};for(let i of n.params){let o=t?.[i.key];if(i.kind==="enum"){let l=i.options.some(s=>s.value===o);r[i.key]=l?o:i.default;continue}let a=typeof o=="number"?o:typeof o=="string"&&o.trim()!==""?Number(o):Number.NaN;r[i.key]=Number.isFinite(a)?Math.min(i.max,Math.max(i.min,a)):i.default}return r}var ct=class extends Error{constructor(t){super(t),this.name="AudioFxChainError"}};function Sl(e){let t;try{t=JSON.parse(e)}catch(i){throw new ct(`Chain file is not valid JSON: ${i.message}`)}if(typeof t!="object"||t===null)throw new ct("Chain file must be a JSON object.");let n=t;if(n.version!==bl)throw new ct(`Unsupported chain version: ${String(n.version)}`);if(!Array.isArray(n.nodes))throw new ct("Chain file is missing a `nodes` array.");let r=n.nodes.map(bp);return{version:bl,nodes:r}}function En(e){return e.nodes.filter(t=>t.enabled!==!1)}function bp(e,t){if(typeof e!="object"||e===null)throw new ct(`Node ${t} is not an object.`);let n=e;if(typeof n.type!="string"||!uo.has(n.type))throw new ct(`Node ${t} has unknown effect type: ${String(n.type)}`);return yp({type:n.type,id:Fr(n.id),fromCarve:yl(n.fromCarve),fromPreset:Fr(n.fromPreset),label:Fr(n.label),fromEq:Fr(n.fromEq),fromLeveller:yl(n.fromLeveller),presetAmount:xp(n.presetAmount),enabled:n.enabled!==!1,params:An(n.type,n.params??void 0)})}function Fr(e){return typeof e=="string"&&e?e:void 0}function yl(e){return e===!0?!0:void 0}function xp(e){if(!(typeof e!="number"||!Number.isFinite(e)))return Math.min(1,Math.max(0,e))}function yp(e){for(let t of Object.keys(e))e[t]===void 0&&delete e[t];return e}var tt="data-automation",Cv=tt.slice(5),Nr=1,vp=512,et=class extends Error{constructor(t){super(t),this.name="AudioAutomationError"}},Ut="volume";function Cn(e){if(e===Ut)return{kind:"volume"};let t=e.split(".");if(t.length===3&&t[0]==="fx"&&t[1]===Sp){let i=t[2];return i?{kind:"preset",presetId:i}:null}if(t.length!==3||t[0]!=="fx")return null;let[,n,r]=t;return!n||!r?null:{kind:"fx",nodeId:n,param:r}}var Sp="preset";var Ap={min:0,max:1,step:.01,unit:"",label:"Amount",scale:"linear",default:1},Lr={min:0,max:ao,step:.01,unit:"",label:"Volume",scale:"linear",default:1};function co(e,t){let n=Cn(e);if(!n)return null;if(n.kind==="volume")return Lr;if(n.kind==="preset")return t?.nodes.some(l=>l.fromPreset===n.presetId)?{...Ap,label:`${n.presetId} \\xB7 Amount`}:null;let r=t?.nodes.find(a=>a.id===n.nodeId);if(!r)return null;let i=Sn(r.type),o=i?.params.find(a=>a.key===n.param);return!o||o.kind!=="number"?null:{min:o.min,max:o.max,step:o.step,unit:o.unit,label:`${i?.label??r.type} \\xB7 ${o.label}`,scale:o.scale==="log"&&o.min>0?"log":"linear",default:o.default}}function wn(e){if(typeof e=="number")return Number.isFinite(e)?e:null;if(typeof e=="string"&&e.trim()!==""){let t=Number(e);return Number.isFinite(t)?t:null}return null}function Ep(e){let t=wn(e);return t===null||t===0?0:Math.min(1,Math.max(-1,t))}function Al(e,t){let n=wn(e),r=wn(t);if(n===null||r===null)return null;let i=l=>Math.min(.999,Math.max(.001,l)),o=i(n),a=i(r);return Math.abs(o-a)<1e-6?null:{x:o,y:a}}function wp(e){let t=Ep(e?.curve),n=Al(e?.viaX,e?.viaY);return{...t?{curve:t}:{},...n?{viaX:n.x,viaY:n.y}:{}}}function Cp(e,t){let n=wn(e?.t),r=wn(e?.v);if(n===null||r===null)return null;let i=t?Math.min(t.max,Math.max(t.min,r)):r;return{t:Math.max(0,n),v:i,...wp(e)}}function El(e,t){let n=e.map(i=>Cp(i,t)).filter(i=>i!==null).sort((i,o)=>i.t-o.t),r=[];for(let i of n)r.length>0&&r[r.length-1].t===i.t?r[r.length-1]=i:r.push(i);return r.slice(0,vp)}function _p(e){let t=[];for(let n of e.lanes){if(!Cn(n.target))continue;let r=n.target===Ut?Lr:null,i=El(n.points??[],r);i.length>0&&t.push({target:n.target,points:i})}return{version:Nr,lanes:t}}function wl(e,t){let n=[];for(let r of e.lanes){let i=co(r.target,t);if(!i)continue;let o=El(r.points,i);o.length>0&&n.push({target:r.target,points:o})}return{version:Nr,lanes:n}}function Dr(e){let t;try{t=JSON.parse(e)}catch(i){throw new et(`Automation is not valid JSON: ${i.message}`)}if(typeof t!="object"||t===null)throw new et("Automation must be a JSON object.");let n=t;if(n.version!==Nr)throw new et(`Unsupported automation version: ${String(n.version)}`);if(!Array.isArray(n.lanes))throw new et("Automation is missing a `lanes` array.");let r=n.lanes.map((i,o)=>{if(typeof i!="object"||i===null)throw new et(`Lane ${o} is not an object.`);let a=i;if(typeof a.target!="string"||!Cn(a.target))throw new et(`Lane ${o} has an unreadable target: ${String(a.target)}`);if(!Array.isArray(a.points))throw new et(`Lane ${o} is missing a \\`points\\` array.`);return{target:a.target,points:a.points}});return _p({version:Nr,lanes:r})}function Tp(e,t){return t?Math.pow(e,Math.pow(2,2*t)):e}function Rp(e,t){let n=e-.5,r=t-.5,i=.999,o=1e6,a=n>0?n/(i-e):n<0?-n/(e-(1-i)):0,l=r>0?r/(i-t):r<0?-r/(t-(1-i)):0,s=Math.min(o,Math.max(1,a,l));return{cx:e+n/s,cy:t+r/s,w:s}}function kp(e,t,n){let{cx:r,cy:i,w:o}=Rp(t,n),a=2-2*o,l=e*a-1+2*o*r,s=-e*a-2*o*r,u=Mp(l,s,e),c=1-u,m=c*c+2*o*u*c+u*u;return m>0?(2*o*i*u*c+u*u)/m:e}function Mp(e,t,n){if(Math.abs(e)<1e-12)return Math.abs(t)<1e-12?n:-n/t;let r=Math.sqrt(Math.max(0,t*t-4*e*n)),i=(-t+r)/(2*e),o=(-t-r)/(2*e),a=l=>l>=-1e-9&&l<=1+1e-9;return a(i)?Math.min(1,Math.max(0,i)):a(o)?Math.min(1,Math.max(0,o)):n}function Fp(e,t){let n=Al(t.viaX,t.viaY);return n?kp(Math.min(1,Math.max(0,e)),n.x,n.y):Tp(e,t.curve)}function Np(e,t,n,r){return r==="log"&&e>0&&t>0?Math.exp(Math.log(e)+(Math.log(t)-Math.log(e))*n):e+(t-e)*n}function _n(e,t,n="linear"){let r=e.points;if(r.length===0)return 0;let i=r[0];if(t<=i.t)return i.v;let o=r[r.length-1];if(t>=o.t)return o.v;let a=0,l=r.length-1;for(;l-a>1;){let m=a+l>>1;r[m].t<=t?a=m:l=m}let s=r[a],u=r[l],c=u.t-s.t;return c<=0?u.v:Np(s.v,u.v,Fp((t-s.t)/c,s),n)}function Cl(e){return e.points.length<=1||e.points.every(t=>t.v===e.points[0].v)}function _l(e,t,n,r,i="linear"){let o=Math.max(2,Math.floor(r)),a=new Float32Array(o),l=n-t;for(let s=0;s<o;s+=1)a[s]=_n(e,t+l*s/(o-1),i);return a}var Ir=new Map,Lp=64;function Dp(e){let t=Ir.get(e);if(t!==void 0)return t;let n=null;try{n=Dr(e).lanes.find(r=>r.target===Ut)??null}catch{n=null}return Ir.size>Lp&&Ir.clear(),Ir.set(e,n),n}function Tl(e,t){let n=(typeof e.getAttribute=="function"?e.getAttribute(tt):null)??"";if(!n)return null;let r=Dp(n);return!r||r.points.length===0?null:_n(r,t)}var Wt="hf-audio-group",Pr="data-audio-group";function fo(e){let t=e?.getAttribute("data-volume"),n=t?parseFloat(t):1;return Number.isFinite(n)?n:1}function mo(e,t){let n=Array.from(e?.querySelectorAll?.(`${Wt}[${xn}]`)??[]).find(i=>i.getAttribute(xn)===t);if(n)return n;let r=e?.getElementById(t)??null;return r&&r.tagName?.toLowerCase()===Wt?r:null}function Or(e,t){let n=t?.getAttribute?.(il)??t?.getAttribute?.(Pr);return n?mo(e,n)?.hasAttribute("data-hidden")??!1:!1}function Rl(e){return typeof e.tagName!="string"||e.tagName.toLowerCase()!=="audio"||typeof e.getAttribute!="function"?null:e.getAttribute(Pr)||null}function kl(e){let t="__hf-audio-group-inert";if(!e?.head||e.getElementById(t))return;let n=e.createElement("style");n.id=t,n.textContent=`${Wt}{display:none!important}`,e.head.appendChild(n)}function je(e){return yn(e)}function Ml(e){let t=e.isVideo?e.explicitDuration??e.sourceDuration:e.sourceDuration,n=(e.isVideo?[t,e.hostRemaining]:[t,e.hostRemaining,e.explicitDuration]).filter(r=>r!=null&&Number.isFinite(r)&&r>=0);return n.length>0?Math.min(...n):null}function Fl(e){let t=Array.from(document.querySelectorAll("video, audio")),n=e?.shouldIncludeElement?t.filter(a=>e.shouldIncludeElement?.(a)):t.filter(a=>a.hasAttribute("data-start")),r=[],i=[],o=0;for(let a of n){let l=e?.resolveStartSeconds?e.resolveStartSeconds(a):Number.parseFloat(a.dataset.start??"0");if(!Number.isFinite(l))continue;let s=je(a),u=Ce(a),c=a.loop,m=Number.isFinite(a.duration)&&a.duration>0?a.duration:null,f=e?.resolveDurationSeconds?.(a)??Number.parseFloat(a.dataset.duration??"");(!Number.isFinite(f)||f<0)&&m!=null&&(f=Math.max(0,(m-s)/u));let p=Number.isFinite(f)&&f>=0,b=p?l+f:Number.POSITIVE_INFINITY,v=Number.parseFloat(a.dataset.volume??""),x={el:a,start:l,mediaStart:s,duration:p?f:Number.POSITIVE_INFINITY,end:b,volume:Number.isFinite(v)?v:null,playbackRate:u,loop:c,sourceDuration:m};r.push(x),a.tagName==="VIDEO"&&i.push(x),Number.isFinite(b)&&(o=Math.max(o,b))}return{timedMediaEls:n,mediaClips:r,videoClips:i,maxMediaEnd:o}}var ho=new WeakMap,Hr=new WeakMap,Tn=new WeakMap,go=new WeakSet,Vt=new WeakSet;function Ip(e){if(Vt.has(e))return;Vt.add(e);let t=()=>Vt.delete(e);e.addEventListener("playing",t,{once:!0}),e.addEventListener("pause",t,{once:!0}),e.addEventListener("error",t,{once:!0})}var Pp=3;function Op(e){return e.error!=null||e.networkState===Pp}var bo=new WeakMap;function po(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):1}function xo(e){ho.delete(e),Hr.delete(e),Tn.delete(e),go.delete(e),bo.delete(e)}function Nl(e){let t=!!(e.outputMuted||e.userMuted);for(let n of e.clips){let{el:r}=n;if(!r.isConnected)continue;let i=(e.timeSeconds-n.start)*n.playbackRate+n.mediaStart,o=r.tagName==="VIDEO"&&!n.loop,a=o&&n.sourceDuration!=null&&i>=n.sourceDuration&&e.timeSeconds>=n.start&&e.timeSeconds<n.end;a&&n.sourceDuration!=null&&(i=n.sourceDuration);let l=Hr.get(r),s=r.tagName==="AUDIO"&&(l===void 0||i<l-.04),u=!n.loop&&n.sourceDuration!=null&&i>=n.mediaStart&&i<n.sourceDuration&&(o||s);if(e.timeSeconds>=n.start&&e.timeSeconds<n.end&&i>=0&&(!r.ended||n.loop||a||u)){if(Hr.set(r,i),n.loop&&n.sourceDuration!=null&&n.sourceDuration>0){let H=n.sourceDuration-n.mediaStart;H>0&&i>=n.sourceDuration&&(i=n.mediaStart+(i-n.mediaStart)%H)}let f=po(e.userVolume??1),p=Le(n.volume??1),b=bo.get(r),v=po(r.volume),x,_=Tl(r,e.timeSeconds-n.start);if(_!==null)x=Le(_);else if(n.volumeKeyframes&&n.volumeKeyframes.length>0){let H=e.timeSeconds-n.start;x=Le(pl(n.volumeKeyframes,H))}else e.isWebAudioRouted?.(r)?x=p:b===void 0?x=p>1?p:v:Math.abs(v-b)>1e-4?x=v:x=p;let T=r.closest("[data-hidden]")!==null||Or(r.ownerDocument,r)?0:po(x*f);r.volume=T,bo.set(r,T),e.onElementVolume?.(r,T,x),(t||e.isWebAudioOwned?.(r))&&(r.muted=!0),r.preload!=="auto"&&(r.preload="auto");try{r.playbackRate=n.playbackRate*e.playbackRate}catch(H){L("runtime.media.site1",H)}let M=.04,F=2,E=r.currentTime||0,S=Math.abs(E-i),A=i-E,C=ho.get(r);ho.set(r,A);let N=C===void 0,I=!N&&Math.abs(A-C)>.5,W=S>3,B=r.tagName==="AUDIO"&&N&&E-i>M,oe=a&&S>.001||r.ended&&u&&S>.001||B||S>.5&&(N||I||W),k=r.tagName==="VIDEO"&&!r.paused,V=C!==void 0&&Math.abs(A-C)<.004,Q=!1;if(!k&&!oe&&!N&&V&&S>M){let H=(Tn.get(r)??0)+1;Tn.set(r,H),H>=F&&(Q=!0,Tn.set(r,0))}else S<=M&&Tn.set(r,0);let G=!k&&e.forceSync&&S>.02;if(oe||Q||G){if(!(r.tagName==="VIDEO"&&!!ut(r))){try{r.currentTime=i}catch(z){L("runtime.media.site2",z)}if(Math.abs(r.currentTime-i)>.5&&!go.has(r)){go.add(r),r.load();try{r.currentTime=i}catch(z){L("runtime.media.site3",z)}}}Vt.delete(r)}a?r.paused||r.pause():e.playing&&r.paused&&!Vt.has(r)&&!Op(r)?(Ip(r),r.play().catch(H=>{Vt.delete(r),(H&&typeof H=="object"&&"name"in H?String(H.name??""):"")==="NotAllowedError"&&e.onAutoplayBlocked?.()})):!e.playing&&!r.paused&&r.pause();continue}let m=e.timeSeconds>=n.start&&e.timeSeconds<n.end;xo(r),m&&Hr.set(r,i),r.paused||r.pause()}}var Hp="hf-proxy",Ll="runtime_media_proxy_fallback",Dl="runtime_media_proxy_unavailable",Rn=new WeakSet,Il=new WeakSet;function Gr(e){return e.currentSrc||e.src}function yo(e){return window.__HF_EXPORT_RENDER_SEEK_CONFIG?!0:e instanceof HTMLVideoElement&&!!ut(e)}function vo(e){let t=Gr(e);if(!t)return null;let n;try{n=new URL(t,document.baseURI)}catch{return null}if(n.origin!==window.location.origin)return null;try{return decodeURIComponent(n.pathname)}catch{return n.pathname}}function Gp(e,t){let n=null;for(let r of Object.keys(t))e.endsWith(r)&&(n===null||r.length>n.length)&&(n=r);return n?t[n]??null:null}function Bp(e,t){let n=e.normalize("NFC").toLowerCase(),r=-1,i=null,o=!1;for(let[a,l]of Object.entries(t)){let s=a.normalize("NFC").toLowerCase();n.endsWith(s)&&(s.length>r?(r=s.length,i=l,o=!1):s.length===r&&(o=!0))}return o?null:i}function So(e,t){return t[e]??Gp(e,t)??Bp(e,t)}function Up(e,t){let n=new URL(e,document.baseURI);return n.searchParams.set(Hp,t?t.hasAlpha?"vp8":"h264":"auto"),n.href}var Wp={cross_origin:"video reports zero decodable width but its source is cross-origin; no local proxy can be served for it",proxy_playback_failed:"the authoring proxy itself failed to decode; render output is unaffected",browser_safe_codec:"the file errored but its codec is browser-decodable; a proxy cannot help (the file itself is likely corrupt)",invalid_source_url:"the media source URL is malformed and cannot be proxied"};function kt(e,t,n){if(Il.has(e))return;Il.add(e);let r=Wp[t];xe({source:"hf-preview",type:"diagnostic",code:Dl,details:{asset:n,codecName:null,reason:t,note:r}}),console.info(`[hyperframes] ${Dl}: "${n}" (${t}): ${r}`)}function Ao(e,t=null,n="reactive"){if(Rn.has(e))return;let r=Gr(e),i;try{i=Up(r,t)}catch(l){L("runtime.mediaProxy.swap",l),kt(e,"invalid_source_url",r);return}Rn.add(e),xo(e),e.src=i,e.load();let o=t?.codecName??null;xe({source:"hf-preview",type:"diagnostic",code:Ll,details:{asset:r,codecName:o,trigger:n,note:"render output is unaffected; only this preview element was swapped to an authoring proxy"}}),console.info(`[hyperframes] ${Ll}: "${r}" uses a codec (${o??"unknown"}) this browser can\'t decode; auto-swapped to an authoring proxy for this preview only. Render output is unaffected.`)}function Pl(e){if(yo(e)||!(e instanceof HTMLVideoElement)||Rn.has(e))return;let t=window.__HF_MEDIA_CODEC_MAP__;if(!t)return;let n=vo(e);if(n===null)return;let r=So(n,t);if(!r||!r.browserHostile)return;let i=r.representativeMime?e.canPlayType(r.representativeMime):"";i==="probably"||i==="maybe"||Ao(e,r,"proactive")}function Ol(e){if(yo(e)||!(e instanceof HTMLVideoElement)||e.videoWidth!==0)return;let t=Gr(e);if(Rn.has(e)){kt(e,"proxy_playback_failed",t);return}let n=window.__HF_MEDIA_CODEC_MAP__;if(!n)return;let r=vo(e);if(r===null){kt(e,"cross_origin",t);return}let i=So(r,n);if(i&&!i.browserHostile){kt(e,"browser_safe_codec",t);return}Ao(e,i,"reactive")}function Hl(e){if(yo(e)||!(e instanceof HTMLVideoElement))return;let t=Gr(e);if(Rn.has(e)){kt(e,"proxy_playback_failed",t);return}let n=window.__HF_MEDIA_CODEC_MAP__;if(!n)return;let r=vo(e);if(r===null){kt(e,"cross_origin",t);return}let i=So(r,n);if(i&&!i.browserHostile){kt(e,"browser_safe_codec",t);return}Ao(e,i,"tertiary")}var Se=class extends Error{constructor(n,r=null){super(r==null?n:`${n} at line ${r}`);ge(this,"lineNumber");this.name="CubeLutParseError",this.lineNumber=r}},Vp=[0,0,0],zp=[1,1,1],Br=64;function qp(e){let t=!1;for(let n=0;n<e.length;n++){let r=e[n];if(r===\'"\'&&(t=!t),r==="#"&&!t)return e.slice(0,n)}return e}function dt(e,t){let n=Number(e);if(!Number.isFinite(n))throw new Se(`Invalid number "${e}"`,t);return n}function Gl(e,t,n){if(e.length!==3)throw new Se(`${t} expects three numbers`,n);return[dt(e[0],n),dt(e[1],n),dt(e[2],n)]}function Bl(e,t,n){if(!e)throw new Se(`${t} expects a size`,n);let r=Number(e);if(!Number.isInteger(r)||r<2)throw new Se(`${t} must be an integer greater than 1`,n);return r}function $p(e,t){if(t[0]<=e[0]||t[1]<=e[1]||t[2]<=e[2])throw new Se("DOMAIN_MAX values must be greater than DOMAIN_MIN values")}function jp(e){let t=/^TITLE\\s+"([^"]*)"\\s*$/i.exec(e);if(t)return t[1]??null;let n=/^TITLE\\s+(.+)\\s*$/i.exec(e);return n&&(n[1]??"").trim()||null}function Kp(e){return/^[+-]?(?:\\d|\\.\\d)/.test(e)}function Ul(e,t={}){let n=t.maxSize??Br,r=null,i=Vp,o=zp,a=null,l=null,s=[],u=e.replace(/^\\uFEFF/,"").split(/\\r?\\n/);for(let m=0;m<u.length;m++){let f=m+1,p=qp(u[m]??"").trim();if(!p)continue;let b=p.split(/\\s+/),v=(b[0]??"").toUpperCase(),x=b.slice(1);if(v==="TITLE"){r=jp(p);continue}if(v==="DOMAIN_MIN"){i=Gl(x,v,f);continue}if(v==="DOMAIN_MAX"){o=Gl(x,v,f);continue}if(v==="LUT_3D_INPUT_RANGE"){if(x.length!==2)throw new Se(`${v} expects two numbers`,f);let _=dt(x[0],f),R=dt(x[1],f);if(R<=_)throw new Se("LUT_3D_INPUT_RANGE max must exceed min",f);i=[_,_,_],o=[R,R,R];continue}if(v==="LUT_1D_SIZE"){a=Bl(x[0],v,f);continue}if(v==="LUT_3D_SIZE"){if(l=Bl(x[0],v,f),l>n)throw new Se(`LUT_3D_SIZE ${l} exceeds max ${n}`,f);continue}if(!Kp(v)){if(v.startsWith("LUT_"))throw new Se(`Unsupported cube keyword ${v}`,f);continue}if(!l)throw a?new Se("1D cube LUTs are not supported yet",f):new Se("LUT data appears before LUT_3D_SIZE",f);if(b.length!==3)throw new Se("LUT data rows must contain three numbers",f);s.push(dt(b[0],f),dt(b[1],f),dt(b[2],f))}if(a&&l)throw new Se("Mixed 1D and 3D cube LUTs are not supported yet");if(!l)throw a?new Se("1D cube LUTs are not supported yet"):new Se("Missing LUT_3D_SIZE");$p(i,o);let c=l*l*l;if(s.length!==c*3)throw new Se(`Expected ${c} LUT rows for size ${l}, found ${s.length/3}`);return{title:r,size:l,domainMin:i,domainMax:o,data:new Float32Array(s)}}function Yp(e){return Number.isFinite(e)?Math.min(1,Math.max(0,e)):0}function kn(e){return Math.round(Yp(e)*255)}function Eo(e){let t=e.size,n=t*t,r=t,i=new Uint8Array(n*r*4);for(let o=0;o<t;o++)for(let a=0;a<t;a++)for(let l=0;l<t;l++){let s=((o*t+a)*t+l)*3,u=(a*n+o*t+l)*4;i[u]=kn(e.data[s]??0),i[u+1]=kn(e.data[s+1]??0),i[u+2]=kn(e.data[s+2]??0),i[u+3]=255}return{width:n,height:r,data:i}}var Wl="rec709";var me={hueDegrees:{min:0,max:360,inclusiveMax:!1},unit:{min:0,max:1},signedUnit:{min:-1,max:1},secondaryHueRange:{min:0,max:180},secondaryHueSoftness:{min:0,max:180},secondaryHueCombinedMax:180,secondarySoftRangeSoftness:{min:0,max:.5},secondaryHueShift:{min:-180,max:180},effects:{asciiStyle:{min:0,max:7},bloom:{min:0,max:3},bloomRadius:{min:1,max:100},monoScreenShape:{min:0,max:4}}};var Vl=["exposure","contrast","highlights","shadows","whites","blacks","temperature","tint","vibrance","saturation"],zl=["shadows","midtones","highlights"],ql=["master","red","green","blue"],$l=["hueVsHue","hueVsSaturation","hueVsLuma"];var jl=["vignette","vignetteMidpoint","vignetteRoundness","vignetteFeather","grain","grainSize","grainRoughness"],Kl=["blur","pixelate","chromaBleed","tapeDamage","tapeTracking","tapeNoise","tapeSpeed","filmArtifacts","halftone","halftoneSize","twoInkPrint","twoInkPrintSize","ascii","asciiSize","asciiInvert","asciiStyle","asciiColor","asciiRotation","dither","ditherSize","bloom","bloomRadius","monoScreen","monoScreenSize","monoScreenAngle","monoScreenSpread","monoScreenShape","monoScreenInvert","scanlines","scanlineCount","scanlineSoftness","chromaticAberration","chromaticAngle","crtCurvature","digitalGlitch","digitalGlitchColorSplit","digitalGlitchLineTear","digitalGlitchPixelate","digitalGlitchBlockAmount","digitalGlitchBlockDisplacement","digitalGlitchBlockOpacity","digitalGlitchSpeed","engraving","engravingSpacing","engravingMinThickness","engravingMaxThickness","engravingAngle","engravingContrast","engravingSharpness","engravingWave","engravingWaveFrequency","crosshatch","crosshatchSpacing","crosshatchThickness","crosshatchAngle","crosshatchContrast","crosshatchEdges","crosshatchLineWeight","crosshatchWave","crosshatchWaveFrequency","kuwahara","kuwaharaRadius","kuwaharaSharpness","kuwaharaSaturation"];var Yv=me.unit,Xv=me.signedUnit,Jv=me.effects;var Ke=1024,Mn=16;function Yl(e,t,n,r){let i=((2*e+t)*n-e*r)/(e+t);return Math.sign(i)!==Math.sign(n)?0:Math.sign(n)!==Math.sign(r)&&Math.abs(i)>3*Math.abs(n)?3*n:i}function Ae(e,t){let n=e[t];if(n===void 0)throw new RangeError("Color curve points must be contiguous");return n}function Xp(e){let t=[],n=[],r=Ae(e,0);for(let a of e.slice(1)){let l=a[0]-r[0];t.push(l),n.push((a[1]-r[1])/l),r=a}let i=Ae(n,0);if(e.length===2)return[i,i];let o=new Array(e.length);o[0]=Yl(Ae(t,0),Ae(t,1),i,Ae(n,1)),o[o.length-1]=Yl(Ae(t,t.length-1),Ae(t,t.length-2),Ae(n,n.length-1),Ae(n,n.length-2));for(let a=1;a<e.length-1;a+=1){let l=Ae(n,a-1),s=Ae(n,a);if(l===0||s===0||Math.sign(l)!==Math.sign(s)){o[a]=0;continue}let u=Ae(t,a-1),c=Ae(t,a),m=2*c+u,f=c+2*u;o[a]=(m+f)/(m/l+f/s)}return o}function Xl(e,t){if(e.length<2)throw new RangeError("A color curve requires at least two points");if(!Number.isInteger(t)||t<2)throw new RangeError("Curve LUT size must be at least 2");let n=Number.NEGATIVE_INFINITY;for(let[r,i]of e){if(!Number.isFinite(r)||!Number.isFinite(i))throw new TypeError("Color curve points must be finite");if(r<=n)throw new RangeError("Color curve inputs must be strictly increasing");n=r}}function Jp(e,t,n){if(!Number.isFinite(t)||!Number.isFinite(n)||t>=n)throw new RangeError("Curve output bounds must be finite and increasing");if(e.some(([,r])=>r<t||r>n))throw new RangeError(`Curve outputs must be between ${t} and ${n}`)}function Qp(e,t,n,r,i){let o=n[0]-t[0],a=Math.min(1,Math.max(0,(e-t[0])/o)),l=a*a,s=l*a;return(2*s-3*l+1)*t[1]+(s-2*l+a)*o*r+(-2*s+3*l)*n[1]+(s-l)*o*i}function Jl(e,t,n,r,i){Jp(e,r,i);let o=Xp(e),a=new Float32Array(t),l=0;for(let s=0;s<t;s+=1){let u=n(s);for(;l<e.length-2&&u>Ae(e,l+1)[0];)l+=1;let c=Ae(e,l),m=Ae(e,l+1),f=Qp(u,c,m,Ae(o,l),Ae(o,l+1));a[s]=Math.min(i,Math.max(r,f))}return a}function zt(e,t=Ke){if(Xl(e,t),e.length>Mn)throw new RangeError(`A color curve supports at most ${Mn} points`);if(e.some(([n])=>n<0||n>1))throw new RangeError("Color curve inputs must be between 0 and 1");if(e[0]?.[0]!==0||e[e.length-1]?.[0]!==1)throw new RangeError("Color curves must include input endpoints 0 and 1");return Jl(e,t,n=>n/(t-1),0,1)}function Co(e,t,n,r=Ke){if(e.length<3)throw new RangeError("A hue curve requires at least three points");if(e.length>Mn)throw new RangeError(`A hue curve supports at most ${Mn} points`);let i=[...e].sort((s,u)=>s[0]-u[0]);for(let s=0;s<i.length;s+=1){let u=i[s];if(!u||u[0]<0||u[0]>=360)throw new RangeError("Hue curve inputs must be from 0 up to 360 degrees");if(s>0&&u[0]===i[s-1]?.[0])throw new RangeError("Hue curve inputs must be unique")}let o=i.slice(-2).map(([s,u])=>[s-360,u]),a=i.slice(0,2).map(([s,u])=>[s+360,u]),l=[...o,...i,...a];return Xl(l,r),Jl(l,r,s=>s/r*360,t,n)}var Fn="data-color-grading",Nn="data-hf-color-grading-source-hidden",Vr="data-hf-authored-opacity",nu="__hf_color_grading_",eh=Wl,Ro={exposure:0,contrast:0,highlights:0,shadows:0,whites:0,blacks:0,temperature:0,tint:0,vibrance:0,saturation:0},ko={vignette:0,vignetteMidpoint:.5,vignetteRoundness:0,vignetteFeather:.65,grain:0,grainSize:.25,grainRoughness:.5},Mo={blur:0,pixelate:0,chromaBleed:0,tapeDamage:0,tapeTracking:0,tapeNoise:1,tapeSpeed:.5,filmArtifacts:0,halftone:0,halftoneSize:0,twoInkPrint:0,twoInkPrintSize:0,ascii:0,asciiSize:5/76,asciiInvert:0,asciiStyle:0,asciiColor:1,asciiRotation:0,dither:0,ditherSize:0,bloom:0,bloomRadius:8,monoScreen:0,monoScreenSize:0,monoScreenAngle:0,monoScreenSpread:0,monoScreenShape:0,monoScreenInvert:0,scanlines:0,scanlineCount:0,scanlineSoftness:0,chromaticAberration:0,chromaticAngle:0,crtCurvature:0,digitalGlitch:0,digitalGlitchColorSplit:0,digitalGlitchLineTear:0,digitalGlitchPixelate:0,digitalGlitchBlockAmount:0,digitalGlitchBlockDisplacement:0,digitalGlitchBlockOpacity:0,digitalGlitchSpeed:0,engraving:0,engravingSpacing:7/17,engravingMinThickness:.2,engravingMaxThickness:3.2/7,engravingAngle:.25,engravingContrast:7/15,engravingSharpness:.59,engravingWave:.2,engravingWaveFrequency:2/9,crosshatch:0,crosshatchSpacing:7/25,crosshatchThickness:.25,crosshatchAngle:.25,crosshatchContrast:1/3,crosshatchEdges:.5,crosshatchLineWeight:0,crosshatchWave:.33,crosshatchWaveFrequency:2/9,kuwahara:0,kuwaharaRadius:1/7,kuwaharaSharpness:5/16,kuwaharaSaturation:.5};var zr=Vl,ru=zl,iu=ql,ou=$l,No=jl,Lo=Kl,Ql={exposure:.03,contrast:-.12,highlights:-.1,shadows:.16,whites:-.04,blacks:.08,temperature:.13,vibrance:-.08,saturation:-.08},Zl={vignette:.18};function Ee(e,t,n={},r={},i={},o=1){return{id:e,label:t,intensity:o,adjust:{...Ro,...n},details:{...ko,...r},effects:{...Mo,...i}}}var Do=[Ee("neutral","Neutral"),Ee("warm-daylight","Warm Daylight",{exposure:.06,contrast:.07,highlights:-.06,shadows:.08,temperature:.18,saturation:.08}),Ee("clean-studio","Clean Studio",{contrast:.08,highlights:-.08,shadows:.06,temperature:-.08,tint:.03,saturation:.04}),Ee("skin-soft","Skin Soft",{exposure:.04,contrast:-.03,highlights:-.12,shadows:.12,temperature:.08,tint:.02,saturation:.04}),Ee("food-pop","Food Pop",{exposure:.06,contrast:.1,shadows:.06,temperature:.14,vibrance:.1,saturation:.18}),Ee("night-lift","Night Lift",{exposure:.08,contrast:.08,highlights:-.18,shadows:.2,blacks:-.08,saturation:.04},{vignette:.12}),Ee("muted-editorial","Muted Editorial",{exposure:-.02,contrast:.08,highlights:-.08,shadows:.06,blacks:-.05,temperature:-.03,saturation:-.12},{vignette:.1}),Ee("vintage-wash","Vintage Wash",Ql,Zl),Ee("mono-clean","Mono Clean",{contrast:.12,highlights:-.04,shadows:.04,blacks:-.08,saturation:-1}),Ee("mono-fade","Mono Fade",{contrast:-.04,highlights:-.06,shadows:.1,blacks:.12,saturation:-1},{vignette:.08}),Ee("soft-boost","Soft Boost",{exposure:.06,contrast:-.04,highlights:-.14,shadows:.16,vibrance:.08,saturation:.1}),Ee("bright-pop","Bright Pop",{exposure:.12,contrast:.12,whites:.08,blacks:-.04,vibrance:.08,saturation:.14}),Ee("deep-contrast","Deep Contrast",{exposure:-.03,contrast:.2,highlights:-.08,shadows:-.08,blacks:-.12,saturation:.06}),Ee("creator-camcorder","Creator Camcorder",{contrast:.08,highlights:-.05,shadows:.02,whites:.03,blacks:-.04,temperature:-.03,tint:-.015,vibrance:-.03,saturation:-.06},{vignette:.06,grain:.08,grainSize:.18,grainRoughness:.58},{chromaBleed:.55},.72),Ee("vhs-playback","VHS Playback",{contrast:-.04,saturation:-.08},{grain:.16,grainSize:.12,grainRoughness:.72},{tapeDamage:.82,tapeTracking:.85,tapeNoise:.3,tapeSpeed:.5,chromaBleed:.5,chromaticAberration:.18,scanlines:.35,scanlineCount:.17,scanlineSoftness:1,digitalGlitch:.32,digitalGlitchLineTear:.08,digitalGlitchSpeed:.5}),Ee("home-movie-8mm","8mm Home Movie",Ql,{...Zl,vignette:.28,vignetteMidpoint:.54,vignetteFeather:.72,grain:.34,grainSize:.18,grainRoughness:.72},{filmArtifacts:.62},.72),Ee("editorial-halftone","Editorial Halftone",{contrast:.04,saturation:.04},{},{halftone:.94,halftoneSize:.36}),Ee("two-ink-print","Two-Ink Print",{contrast:.08,highlights:-.06,shadows:.04},{},{twoInkPrint:1,twoInkPrintSize:.42})],th=new Map(Do.map(e=>[e.id,e])),nh=/^\\$(?:\\{([A-Za-z0-9_.:-]+)\\}|([A-Za-z0-9_.:-]+))$/,rh={exposure:{min:-2,max:2},contrast:{min:-1,max:1},highlights:{min:-1,max:1},shadows:{min:-1,max:1},whites:{min:-1,max:1},blacks:{min:-1,max:1},temperature:{min:-1,max:1},tint:{min:-1,max:1},vibrance:{min:-1,max:1},saturation:{min:-1,max:1}},qt={hue:0,amount:0,level:0},eu={amount:me.unit,level:me.signedUnit},ft=[[0,0],[1,1]],$t=[],ih={hueVsHue:me.secondaryHueShift,hueVsSaturation:me.signedUnit,hueVsLuma:me.signedUnit},_o={center:0,range:180,softness:0},To={min:0,max:1,softness:.05},oh={vignette:me.unit,vignetteMidpoint:me.unit,vignetteRoundness:me.signedUnit,vignetteFeather:me.unit,grain:me.unit,grainSize:me.unit,grainRoughness:me.unit},Fo=me.unit,ah=me.effects,au=["blur","pixelate","chromaBleed","tapeDamage","filmArtifacts","halftone","twoInkPrint","ascii","dither","bloom","monoScreen","scanlines","chromaticAberration","crtCurvature","digitalGlitch","engraving","crosshatch","kuwahara"];var sh=Do.filter(e=>au.some(t=>e.effects[t]>1e-4)),oS=Do.filter(e=>!sh.includes(e)),aS={blur:{blur:.45},pixelate:{pixelate:.55},bloom:{bloom:.55,bloomRadius:8},chromaBleed:{chromaBleed:.55},tapeDamage:{tapeDamage:.65,tapeTracking:.55,tapeNoise:.25,tapeSpeed:.5},filmArtifacts:{filmArtifacts:.55},scanlines:{scanlines:.35,scanlineCount:.17,scanlineSoftness:1},chromaticAberration:{chromaticAberration:.15,chromaticAngle:0},crtCurvature:{crtCurvature:.2},digitalGlitch:{digitalGlitch:.55,digitalGlitchColorSplit:.25,digitalGlitchLineTear:.25,digitalGlitchPixelate:.15,digitalGlitchBlockAmount:.5,digitalGlitchBlockDisplacement:.25,digitalGlitchBlockOpacity:0,digitalGlitchSpeed:.5},halftone:{halftone:.94,halftoneSize:.36},twoInkPrint:{twoInkPrint:1,twoInkPrintSize:.42},ascii:{ascii:1,asciiSize:5/76,asciiInvert:0,asciiStyle:0,asciiColor:1,asciiRotation:0},dither:{dither:1,ditherSize:.5},monoScreen:{monoScreen:1,monoScreenSize:.35,monoScreenAngle:.25,monoScreenSpread:.3,monoScreenShape:0,monoScreenInvert:0},engraving:{engraving:1,engravingSpacing:7/17,engravingMinThickness:.2,engravingMaxThickness:3.2/7,engravingAngle:.25,engravingContrast:7/15,engravingSharpness:.59,engravingWave:.2,engravingWaveFrequency:2/9},crosshatch:{crosshatch:1,crosshatchSpacing:7/25,crosshatchThickness:.25,crosshatchAngle:.25,crosshatchContrast:1/3,crosshatchEdges:.5,crosshatchLineWeight:0,crosshatchWave:.33,crosshatchWaveFrequency:2/9},kuwahara:{kuwahara:1,kuwaharaRadius:1/7,kuwaharaSharpness:5/16,kuwaharaSaturation:.5}},su=[{path:"intensity",name:"--hf-color-grading-intensity",min:0,max:1},{path:"lut.intensity",name:"--hf-color-grading-lut-intensity",min:0,max:1},{path:"adjust.exposure",name:"--hf-color-grading-exposure",min:-2,max:2},{path:"effects.blur",name:"--hf-color-grading-blur",min:0,max:1},{path:"effects.bloom",name:"--hf-color-grading-bloom",min:0,max:3},{path:"effects.kuwahara",name:"--hf-color-grading-kuwahara",min:0,max:1},{path:"effects.pixelate",name:"--hf-color-grading-pixelate",min:0,max:1},{path:"effects.ascii",name:"--hf-color-grading-ascii",min:0,max:1},{path:"effects.dither",name:"--hf-color-grading-dither",min:0,max:1}];var lh=/^#[0-9a-f]{6}$/i;function uh(e){return!Array.isArray(e)||e.length<2||e.length>6||!e.every(t=>typeof t=="string"&&lh.test(t))?null:e.map(t=>t.toLowerCase())}function _e(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Wr(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,e)):0}function lu(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Math.min(1,Math.max(0,n)):t}function Te(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Wr(n,t.min,t.max):0}function Io(e,t=0){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?(n%360+360)%360:t}function ch(e){let t=_e(e)?e:{};return ru.reduce((n,r)=>{let i=_e(t[r])?t[r]:{};return n[r]={hue:Io(i.hue,qt.hue),amount:Te(i.amount??qt.amount,eu.amount),level:Te(i.level??qt.level,eu.level)},n},{shadows:{...qt},midtones:{...qt},highlights:{...qt}})}function dh(e){if(!Array.isArray(e)||e.length!==2)return null;let t=Number(e[0]),n=Number(e[1]);return Number.isFinite(t)&&Number.isFinite(n)?[Wr(t,0,1),Wr(n,0,1)]:null}function uu(e){return e.some((t,n)=>n>0&&t[0]===e[n-1]?.[0])}function fh(e){(e[0]?.[0]??0)>0&&e.unshift([0,0]),(e.at(-1)?.[0]??1)<1&&e.push([1,1])}function mh(e){if(!Array.isArray(e)||e.length<2)return ft;let t=[];for(let n of e){let r=dh(n);if(!r)return ft;t.push(r)}return t.sort((n,r)=>n[0]-r[0]),uu(t)||(fh(t),t.length>16)?ft:t}function ph(e){let t=_e(e)?e:{};return iu.reduce((n,r)=>(n[r]=mh(t[r]),n),{master:ft,red:ft,green:ft,blue:ft})}function hh(e,t){if(!Array.isArray(e)||e.length!==2)return null;let n=Number(e[0]),r=Number(e[1]);return Number.isFinite(n)&&Number.isFinite(r)?[Io(n),Wr(r,t.min,t.max)]:null}function gh(e,t){if(!Array.isArray(e)||e.length<3||e.length>16)return $t;let n=[];for(let r of e){let i=hh(r,t);if(!i)return $t;n.push(i)}return n.sort((r,i)=>r[0]-i[0]),uu(n)?$t:n}function bh(e){let t=_e(e)?e:{};return ou.reduce((n,r)=>(n[r]=gh(t[r],ih[r]),n),{hueVsHue:$t,hueVsSaturation:$t,hueVsLuma:$t})}function tu(e){let t=_e(e)?e:{},n=Te(t.min??To.min,Fo),r=Te(t.max??To.max,Fo);return{min:Math.min(n,r),max:Math.max(n,r),softness:Te(t.softness??To.softness,me.secondarySoftRangeSoftness)}}function xh(e){let t=_e(e)?e:{},n=Te(t.range??_o.range,me.secondaryHueRange);return{center:Io(t.center,_o.center),range:n,softness:Te(t.softness??_o.softness,{min:me.secondaryHueSoftness.min,max:me.secondaryHueCombinedMax-n})}}function yh(e){return{hueShift:Te(e.hueShift??0,me.secondaryHueShift),saturation:Te(e.saturation??0,me.signedUnit),luma:Te(e.luma??0,me.signedUnit),temperature:Te(e.temperature??0,me.signedUnit),tint:Te(e.tint??0,me.signedUnit)}}function vh(e){return!_e(e)||!_e(e.key)||!_e(e.correction)?null:{enabled:e.enabled!==!1,key:{hue:xh(e.key.hue),saturation:tu(e.key.saturation),luma:tu(e.key.luma)},correction:yh(e.correction)}}function Sh(e){if(!Array.isArray(e))return[];let t=[];for(let n of e.slice(0,4)){let r=vh(n);r&&t.push(r)}return t}function Ah(e){if(e==null)return null;let t=String(e).trim();return t||null}function Eh(e){if(e==null)return null;if(typeof e=="string"){let n=e.trim();return n?{src:n,intensity:1}:null}if(!_e(e))return null;let t=e.src;return typeof t!="string"||t.trim()===""?null:{src:t.trim(),intensity:lu(e.intensity,1)}}function wh(e){if(typeof e=="string"){let t=e.trim();if(!t)return null;if(t.startsWith("{"))try{let n=JSON.parse(t);return _e(n)?n:null}catch{return null}return{preset:t}}return _e(e)?e:null}function Ch(e,t){let n=e.trim().match(nh);if(!n)return e;let r=n[1]??n[2]??"";return r&&Object.hasOwn(t,r)?t[r]:e}function Ur(e,t){if(typeof e=="string"){let r=Ch(e,t);if(r!==e)return r;let i=e.trim();if(!i.startsWith("{"))return e;try{return Ur(JSON.parse(i),t)}catch{return e}}if(Array.isArray(e))return e.map(r=>Ur(r,t));if(!_e(e))return e;let n={};for(let[r,i]of Object.entries(e))n[r]=Ur(i,t);return n}function _h(e){return e?th.get(e)??null:null}function qr(e){let t=wh(e);if(!t||t.enabled===!1)return null;let n=Ah(t.preset),r=_h(n),i=r?.adjust??Ro,o=r?.details??ko,a=r?.effects??Mo,l=_e(t.adjust)?t.adjust:{},s=_e(t.details)?t.details:{},u=_e(t.effects)?t.effects:{},c=zr.reduce((p,b)=>(p[b]=Te(l[b]??i[b],rh[b]),p),{...Ro}),m=No.reduce((p,b)=>(p[b]=Te(s[b]??o[b],oh[b]),p),{...ko}),f=Lo.reduce((p,b)=>(p[b]=Te(u[b]??a[b],ah[b]??Fo),p),{...Mo});return{enabled:!0,preset:n,intensity:lu(t.intensity,r?.intensity??1),adjust:c,wheels:ch(t.wheels),curves:ph(t.curves),hueCurves:bh(t.hueCurves),secondaries:Sh(t.secondaries),details:m,effects:f,palette:uh(t.palette),lut:Eh(t.lut),colorSpace:typeof t.colorSpace=="string"&&t.colorSpace.trim()?t.colorSpace.trim():eh}}function cu(e,t){return qr(Ur(e,t))}function Th(e){return ru.some(t=>Math.abs(e[t].amount)>1e-4||Math.abs(e[t].level)>1e-4)}function Po(e){return iu.some(t=>e[t].some(([n,r])=>Math.abs(n-r)>1e-4))}function Oo(e){return ou.some(t=>e[t].some(([,n])=>Math.abs(n)>1e-4))}function Ho(e){return e.some(t=>t.enabled&&Object.values(t.correction).some(n=>Math.abs(n)>1e-4))}function du(e){return e?.enabled?Math.abs(e.details.vignette)>1e-4||Math.abs(e.details.grain)>1e-4||au.some(n=>Math.abs(e.effects[n])>1e-4)?!0:e.intensity===0?!1:e.lut&&e.lut.intensity!==0?!0:zr.some(n=>Math.abs(e.adjust[n])>1e-4)||(e.wheels?Th(e.wheels):!1)||(e.curves?Po(e.curves):!1)||(e.hueCurves?Oo(e.hueCurves):!1)||(e.secondaries?Ho(e.secondaries):!1):!1}var Rh=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),kh=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(",");function fu(e){let t=!1,n=null,r=null,i=null,o=null;function a(S,A){try{window.dispatchEvent(new CustomEvent(S,{detail:A}))}catch(C){L("runtime.picker.site1",C)}}function l(S){i=S,a("hyperframe:picker:hovered",{elementInfo:i,isPickMode:t,timestamp:Date.now()})}function s(S){o=S,a("hyperframe:picker:selected",{elementInfo:o,isPickMode:t,timestamp:Date.now()})}function u(S){let A=S.ownerDocument.defaultView;if(!A)return!1;let C=S;for(;C&&C!==document.body&&C!==document.documentElement;){let N=A.getComputedStyle(C);if(N.display==="none"||N.visibility==="hidden"||N.pointerEvents==="none")return!0;let I=Number.parseFloat(N.opacity);if(Number.isFinite(I)&&I<=.01&&!C.hasAttribute(Nn))return!0;C=C.parentElement}return!1}function c(S){if(!S||S===document.body||S===document.documentElement)return!1;let A=S.tagName.toLowerCase();return!(A==="script"||A==="style"||A==="link"||A==="meta"||S.classList.contains("__hf-pick-highlight")||S.closest(Rh)||u(S))}function m(S){return!!S?.closest(kh)}function f(S){let A=S;if(A.id)return`#${CSS.escape(A.id)}`;let C=S.getAttribute("data-composition-id");if(C)return`[data-composition-id="${CSS.escape(C)}"]`;let N=S.getAttribute("data-composition-src");if(N)return`[data-composition-src="${CSS.escape(N)}"]`;let I=S.getAttribute("data-track-index");if(I)return`[data-track-index="${CSS.escape(I)}"]`;let W=S.tagName.toLowerCase(),B=S.parentElement;if(!B)return W;let oe=B.querySelectorAll(`:scope > ${W}`);if(oe.length===1)return W;for(let k=0;k<oe.length;k+=1)if(oe[k]===S)return`${W}:nth-of-type(${k+1})`;return W}function p(S){let A=S.tagName.toLowerCase(),C=(S.textContent??"").trim().replace(/\\s+/g," "),N=(I,W)=>I.length>W?`${I.slice(0,W-1)}\\u2026`:I;return A==="h1"||A==="h2"||A==="h3"?"Heading":A==="p"||A==="span"||A==="div"?C.length>0?N(C,56):"Text":A==="img"?"Image":A==="video"?"Video":A==="audio"?"Audio":A==="svg"?"Shape":S.getAttribute("data-composition-src")?"Composition":A==="section"?"Section":`${A.charAt(0).toUpperCase()}${A.slice(1)}`}function b(S,A,C){let N=typeof C=="number"&&C>0?C:8,I=[];if(document.elementsFromPoint)I=document.elementsFromPoint(S,A);else if(document.elementFromPoint){let oe=document.elementFromPoint(S,A);I=oe?[oe]:[]}if(m(I[0]??null))return[];let W={},B=[];for(let[oe,k]of I.entries()){if(!c(k))continue;let V=`${k.tagName}::${k.id||""}::${oe}`;if(!W[V]&&(W[V]=!0,B.push(k),B.length>=N))break}return B}function v(S){let A=S.getBoundingClientRect(),C={};for(let I of Array.from(S.attributes))I.name.startsWith("data-")&&(C[I.name]=I.value);return{id:S.id||null,tagName:S.tagName.toLowerCase(),selector:f(S),label:p(S),boundingBox:{x:A.left,y:A.top,width:A.width,height:A.height},textContent:S.textContent?S.textContent.trim().slice(0,200):null,src:S.getAttribute("src")||S.getAttribute("data-composition-src")||null,dataAttributes:C}}function x(S,A,C){return b(S,A,C).map(v)}function _(S){if(!t)return;let C=b(S.clientX,S.clientY,1)[0]??(S.target instanceof Element?S.target:null);if(!c(C)||n===C)return;n&&n.classList.remove("__hf-pick-highlight"),n=C,C.classList.add("__hf-pick-highlight");let N=v(C);l(N),e.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:N})}function R(S){if(!t)return;S.preventDefault(),S.stopPropagation(),S.stopImmediatePropagation();let A=x(S.clientX,S.clientY,8);A.length!==0&&(l(A[0]??null),e.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:A,selectedIndex:0,point:{x:S.clientX,y:S.clientY}}))}function T(S){S.key==="Escape"&&(F(),e.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function M(){t||(t=!0,r=document.createElement("style"),r.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(r),document.body.classList.add("__hf-pick-active"),document.addEventListener("mousemove",_,!0),document.addEventListener("click",R,!0),document.addEventListener("keydown",T,!0),a("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function F(){t&&(t=!1,n&&(n.classList.remove("__hf-pick-highlight"),n=null),r&&(r.remove(),r=null),document.body.classList.remove("__hf-pick-active"),document.removeEventListener("mousemove",_,!0),document.removeEventListener("click",R,!0),document.removeEventListener("keydown",T,!0),a("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function E(){window.__HF_PICKER_API={enable:M,disable:F,isActive:()=>t,getHovered:()=>i,getSelected:()=>o,getCandidatesAtPoint:(S,A,C)=>Number.isFinite(S)&&Number.isFinite(A)?x(S,A,C):[],pickAtPoint:(S,A,C)=>{if(!Number.isFinite(S)||!Number.isFinite(A))return null;let N=x(S,A,8);if(!N.length)return null;let I=Math.max(0,Math.min(N.length-1,Number(C??0))),W=N[I]??null;return W?(s(W),e.postMessage({source:"hf-preview",type:"element-picked",elementInfo:W}),F(),W):null},pickManyAtPoint:(S,A,C)=>{if(!Number.isFinite(S)||!Number.isFinite(A))return[];let N=x(S,A,8);if(!N.length)return[];let I=[],W=Array.isArray(C)?C:[0];for(let B of W){let oe=Math.max(0,Math.min(N.length-1,Math.floor(Number(B)))),k=N[oe];if(!k)continue;I.some(Q=>Q.selector===k.selector&&Q.tagName===k.tagName)||I.push(k)}return I.length?(s(I[0]??null),e.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:I}),F(),I):[]}},a("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:M,disablePickMode:F,installPickerApi:E}}var Mh=["width","height","top","left","right","bottom","inset","object-fit","object-position","z-index","opacity","visibility","filter","mix-blend-mode","backdrop-filter","border-radius","overflow","clip-path","mask","mask-image","mask-size","mask-position","mask-repeat","transform","transform-origin","translate","rotate","scale","box-sizing"];function jt(e,t){let n=Number.isFinite(t)&&t>0?t:30,r=Number.isFinite(e)&&e>0?e:0;return Math.floor(r*n+1e-9)/n}function mu(e,t,n=Mh){for(let r of n){let i=t.getPropertyValue(r);i&&e.setProperty(r,i)}}function Ln(e,t,n){let r=e?.[t];return typeof r=="function"?Number(r.call(e))||n:typeof r=="number"&&Number.isFinite(r)?r:(r!=null&&L("runtime.player.nonConformantNum",{prop:t,actual:typeof r}),n)}function Be(e,t){let n=e?.[t];if(typeof n=="function"){n.call(e);return}n!==void 0&&L("runtime.player.nonConformantVoid",{method:t,actual:typeof n})}function Dn(e,t,n){if(e){for(let r of Object.values(e))if(!(!r||r===t))try{n(r)}catch(i){L("runtime.player.site1",i)}}}function pu(e,t,n,r){let i=jt(t,n),o=r?.suppressEvents===!0;return Be(e,"pause"),typeof e.totalTime=="function"?e.totalTime(i,o):typeof e.seek=="function"&&e.seek(i,o),i}function Fh(e,t,n,r,i){let o=[];Dn(e,t,a=>{Be(a,"play"),o.push(a)});try{return pu(t,n,r,i)}finally{for(let a of o)try{Be(a,"pause")}catch(l){L("runtime.player.site2",l)}}}function Nh(e,t){Dn(e,t,n=>{Be(n,"play")})}function hu(e){let t=e.transport;return t?{_timeline:null,play:()=>t.play(),pause:()=>t.pause(),seek:(n,r)=>t.seek(n,r),renderSeek:(n,r)=>t.renderSeek(n,r),getTime:()=>t.getTime(),getDuration:()=>t.getDuration(),isPlaying:()=>t.isPlaying(),setPlaybackRate:n=>t.setPlaybackRate(n),getPlaybackRate:()=>t.getPlaybackRate()}:{_timeline:null,play:()=>{let n=e.getTimeline();if(!n||e.getIsPlaying())return;let r=Math.max(0,Number(e.getSafeDuration?.()??Ln(n,"duration",0))||0);r>0&&Math.max(0,Ln(n,"time",0))>=r&&(Be(n,"pause"),typeof n.seek=="function"&&n.seek(0,!1),e.onDeterministicSeek(0),e.setIsPlaying(!1),e.onSyncMedia(0,!1),e.onRenderFrameSeek(0)),typeof n.timeScale=="function"&&n.timeScale(e.getPlaybackRate()),Be(n,"play"),Dn(e.getTimelineRegistry?.(),n,i=>{typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),Be(i,"play")}),e.onDeterministicPlay(),e.setIsPlaying(!0),e.onShowNativeVideos(),e.onStatePost(!0)},pause:()=>{let n=e.getTimeline();if(!n)return;Be(n,"pause"),Dn(e.getTimelineRegistry?.(),n,i=>{Be(i,"pause")});let r=Math.max(0,Ln(n,"time",0));e.onDeterministicSeek(r),e.onDeterministicPause(),e.setIsPlaying(!1),e.onSyncMedia(r,!1),e.onRenderFrameSeek(r),e.onStatePost(!0)},seek:(n,r)=>{let i=e.getTimeline();if(!i)return;let o=Math.max(0,Number(n)||0),a=e.getIsPlaying(),l=Fh(e.getTimelineRegistry?.(),i,o,e.getCanonicalFps());e.onDeterministicSeek(l),r?.keepPlaying&&a?(typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),Be(i,"play"),Dn(e.getTimelineRegistry?.(),i,s=>{typeof s.timeScale=="function"&&s.timeScale(e.getPlaybackRate()),Be(s,"play")}),e.onDeterministicPlay(),e.onShowNativeVideos(),e.onSyncMedia(l,!0)):(e.setIsPlaying(!1),e.onSyncMedia(l,!1)),e.onRenderFrameSeek(l),e.onStatePost(!0)},renderSeek:(n,r)=>{let i=e.getTimeline(),o=e.getCanonicalFps(),a=i?(Nh(e.getTimelineRegistry?.(),i),pu(i,n,o,r)):jt(Math.max(0,Number(n)||0),o);e.onDeterministicSeek(a,r),e.setIsPlaying(!1),e.onSyncMedia(a,!1),e.onRenderFrameSeek(a),e.onStatePost(!0)},getTime:()=>Ln(e.getTimeline(),"time",0),getDuration:()=>Ln(e.getTimeline(),"duration",0),isPlaying:()=>e.getIsPlaying(),setPlaybackRate:n=>e.setPlaybackRate(n),getPlaybackRate:()=>e.getPlaybackRate()}}function gu(){return{capturedTimeline:null,isPlaying:!1,currentTime:0,deterministicAdapters:[],canonicalFps:30,bridgeMuted:!1,bridgeVolume:1,mediaOutputMuted:!1,nativeMediaSyncDisabled:!1,webAudioMediaDisabled:!1,mediaAutoplayBlockedPosted:!1,mediaForceSyncNextTick:!1,playbackRate:1,bridgeLastPostedFrame:-1,bridgeLastPostedAt:0,bridgeLastPostedPlaying:!1,bridgeLastPostedMuted:!1,bridgeMaxPostIntervalMs:80,controlBridgeHandler:null,beforeUnloadHandler:null,injectedCompStyles:[],injectedCompScripts:[],injectedCompLinks:[],cachedTimedMediaEls:[],cachedMediaClips:[],cachedVideoClips:[],cachedMediaTimelineDurationSeconds:0,tornDown:!1,transportClock:null,transportRafId:null}}var Lh=new Set(["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"]);function Go(e){return e.id||e.getAttribute("data-hf-id")||null}function Dh(e){return ve(e)}function Ih(e,t){let n=e.getAttribute("data-composition-id");if(!n)return null;let r=Number(t[n]?.duration?.());return Number.isFinite(r)&&r>0?r:null}function Ph(e){return!(e instanceof HTMLMediaElement)||!Number.isFinite(e.duration)?null:Ze(e,e.duration)}function Oh(e,t,n,r){let i=Dh(e.getAttribute("data-duration"));return i!=null&&i>0?i:Ih(e,t)??Ph(e)??Math.max(0,n-r)}function Hh(e){for(let[t,n]of e){let r=t.parentElement;for(;r;){let i=e.get(r);if(i){n.parentId=i.id,i.children.push(n);break}r=r.parentElement}}}function bu(e){let{startResolver:t,timelineRegistry:n,rootDuration:r}=e,i=new Map,o=document.querySelector("[data-composition-id]"),a=0;for(let l of document.querySelectorAll("[data-start]")){if(l===o||Lh.has(l.tagName))continue;let s=t.resolveStartForElement(l,0);if(Oh(l,n,r,s)<=0)continue;let u={id:Go(l)??`__clip-${a++}`,element:l,parentId:null,children:[]};i.set(l,u)}return Hh(i),{roots:Array.from(i.values()).filter(l=>l.parentId===null)}}function In(e){if(e==null||typeof e=="string"&&e.trim()==="")return null;let t=typeof e=="number"?e:Number(e);return Number.isFinite(t)?t:null}function Kt(e){let t=In(e.start);if(t==null)return null;let n=Math.max(0,t),r=In(e.duration),i=In(e.authoredDuration),o=r!=null&&r>0?r:i!=null&&i>0?i:null;if(o!=null)return{start:n,duration:o,end:n+o};let a=In(e.end),l=In(e.authoredEnd),s=a!=null&&a>n?a:l!=null&&l>n?l:null;return{start:n,duration:s==null?null:s-n,end:s}}var Bo="css:root",xu=["backdrop-filter","clip-path","filter","mask","mask-border-source","mask-image","perspective","rotate","scale","transform","translate","-webkit-mask-image"],Gh=new Set([...xu,"contain","isolation","mask-border","mix-blend-mode","opacity"]),Bh=new Set(["absolute","relative"]),Uh=new Set(["flex","inline-flex","grid","inline-grid"]),Wh=new Set(["layout","paint","strict","content"]),Vh=new Set(["size","inline-size"]);function zh(e){return e.position==="fixed"||e.position==="sticky"}function qh(e,t){if(t.zIndex==="auto"||t.zIndex==="")return!1;if(Bh.has(t.position))return!0;let n=e.parentElement?e.ownerDocument.defaultView?.getComputedStyle(e.parentElement).display:null;return n!=null&&Uh.has(n)}function $h(e){let t=Number.parseFloat(e.opacity);if(Number.isFinite(t)&&t<1||e.getPropertyValue("isolation")==="isolate")return!0;let n=e.getPropertyValue("mix-blend-mode");return n&&n!=="normal"?!0:xu.some(r=>{let i=e.getPropertyValue(r);return i!==""&&i!=="none"})}function jh(e){return e.getPropertyValue("contain").split(/\\s+/).some(n=>Wh.has(n))?!0:Vh.has(e.getPropertyValue("container-type"))}function Kh(e){return e.getPropertyValue("will-change").split(",").map(t=>t.trim()).some(t=>Gh.has(t))}function Yh(e,t){return zh(t)||qh(e,t)||$h(t)||jh(t)?!0:Kh(t)}function Xh(e){let t=[],n=e;for(;n?.parentElement;)t.push(Array.prototype.indexOf.call(n.parentElement.children,n)),n=n.parentElement;return`css:${t.reverse().join(".")}`}function $r(e){let t=e.ownerDocument.defaultView;if(!t)return Bo;let n=e.parentElement;for(;n&&n!==e.ownerDocument.documentElement;){try{if(Yh(n,t.getComputedStyle(n)))return Xh(n)}catch{return Bo}n=n.parentElement}return Bo}function mt(e){let t=e.timelineRegistry??{},n=e.includeAuthoredTimingAttrs??!1,r=e.documentRef??document,i=new WeakMap,o=new WeakMap,a=new Set,l=f=>{let p=r.getElementById(f);return p||(r.querySelector(`[data-composition-id="${CSS.escape(f)}"]`)??null)},s=f=>{let p=f.ownerDocument.defaultView?.HTMLMediaElement;return p?f instanceof p:typeof HTMLMediaElement<"u"&&f instanceof HTMLMediaElement},u=f=>{let p=o.get(f);if(p!==void 0)return p;let b=null,v=Kt({start:0,duration:f.getAttribute("data-duration"),authoredDuration:n?f.getAttribute("data-hf-authored-duration"):null});if(v?.duration!=null&&v.duration>0&&(b=v.duration),b==null||b<=0){let x=m(f,0),_=Kt({start:x,end:f.getAttribute("data-end"),authoredEnd:n?f.getAttribute("data-hf-authored-end"):null});_?.duration!=null&&_.duration>0&&(b=_.duration)}if((b==null||b<=0)&&s(f)){let x=yn(f);Number.isFinite(f.duration)&&f.duration>x&&(b=(f.duration-x)/Ce(f))}if(b==null||b<=0){let x=f.getAttribute("data-composition-id");if(x){let _=t[x]??null;if(_&&typeof _.duration=="function")try{let R=Number(_.duration());Number.isFinite(R)&&R>0&&(b=R)}catch(R){L("runtime.startResolver.site1",R)}}}return b!=null&&Number.isFinite(b)&&b>0?(o.set(f,b),b):(o.set(f,null),null)},c=(f,p)=>{if(f.hasAttribute("data-composition-id")){let v=f.parentElement?.closest("[data-composition-id]");return v?m(v,p):0}let b=f.closest("[data-composition-id]");return b?m(b,p):0},m=(f,p)=>{let b=i.get(f);if(b!==void 0)return b??p;if(a.has(f))return p;a.add(f);try{let v=so(f.getAttribute("data-start"));if(!v){if(f.hasAttribute("data-composition-id")){let M=f.parentElement;if(M&&(M.hasAttribute("data-composition-src")||M.hasAttribute("data-composition-id")||M.hasAttribute("data-composition-file"))){let F=m(M,p);return i.set(f,F),F}}return i.set(f,p),p}if(v.kind==="absolute"){let M=Math.max(0,v.value),F=Math.max(0,c(f,p)+M);return i.set(f,F),F}let x=l(v.refId);if(!x)return i.set(f,p),p;let _=m(x,0),R=u(x);if(R==null||R<=0){let M=Math.max(0,_+v.offset);return i.set(f,M),M}let T=Math.max(0,_+R+v.offset);return i.set(f,T),T}finally{a.delete(f)}};return{resolveStartForElement:(f,p=0)=>m(f,Math.max(0,p)),resolveDurationForElement:f=>u(f)}}function Uo(e){let t=e.trim().toLowerCase();return!(!t||t==="main"||t.includes("caption")||t.includes("ambient"))}function pt(e){return ve(e)}function Wo(e){let t=e.getAttribute("data-duration"),n=e.getAttribute("data-hf-authored-duration"),r=Kt({start:0,duration:t,authoredDuration:n})?.duration;return r??([t,n].map(pt).some(o=>o!=null&&o<=0)?0:null)}function yu(e){return Kt({start:0,end:e.getAttribute("data-end"),authoredEnd:e.getAttribute("data-hf-authored-end")})?.end??null}function Vo(e){try{let t=e.style?.zIndex;if(t&&t!=="auto"){let n=parseInt(t,10);if(Number.isFinite(n))return n}return 0}catch{return 0}}function zo(...e){let t=e.filter(n=>Number.isFinite(n??null));return t.length===0?null:Math.max(...t)}function qo(e,t){let n=e.getAttribute("data-track-index")??e.getAttribute("data-track");if(n==null)return t;let r=Number.parseInt(n,10);return Number.isFinite(r)?r:t}function On(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 vu(e){let t=e.getAttribute("src")??e.getAttribute("data-src");if(t)return On(t);let n=e.getAttribute("data-composition-src");if(n)return On(n);let r=e.querySelector("img[src], video[src], audio[src], source[src]");return r?On(r.getAttribute("src")):null}function Qh(e){let t=e.className;return typeof t!="string"?null:t.split(/\\s+/).map(n=>n.trim()).find(n=>n&&n!=="clip"&&!n.startsWith("__hf-"))??null}function Zh(e){if(!e)return null;try{return new URL(e,document.baseURI).pathname.split("/").filter(Boolean).at(-1)??null}catch{return e.split(/[\\\\/]/).filter(Boolean).at(-1)??null}}function e0(e){let t=e.textContent?.replace(/\\s+/g," ").trim();return t?t.length>32?`${t.slice(0,31)}...`:t:null}function Pn(e){let t=e.replace(/\\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\\s+/g," ").trim();return t?t.replace(/\\b\\w/g,n=>n.toUpperCase()):e}function t0(e,t,n){let r=e.getAttribute("data-timeline-label")??e.getAttribute("data-label")??e.getAttribute("aria-label")??null;if(r?.trim())return r.trim();let i=e.getAttribute("data-composition-id");if(i)return Pn(i);let o=e.id;if(o)return Pn(o);let a=Qh(e);if(a)return Pn(a);let l=Zh(vu(e));if(l)return Pn(l);let s=e0(e);return s||`${Pn(t)} ${n+1}`}function Su(e){let n=window.__timelines??{},r=mt({timelineRegistry:n,includeAuthoredTimingAttrs:!0}),i=q=>{if(!q)return null;let P=n[q]??null;if(!P||typeof P.duration!="function")return null;try{let O=Number(P.duration());return Number.isFinite(O)&&O>0?O:null}catch{return null}},o=q=>{let P=pt(q.getAttribute("data-duration"));return P!=null&&P>0?P:Number.isFinite(q.duration)?Ze(q,q.duration):null},a=()=>{let q=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(q.length===0)return null;let P=0;for(let O of q){let j=O.hasAttribute("data-hf-auto-start")?r.resolveStartForElement(O,0):Math.max(0,Number(O.getAttribute("data-start")??0)||0);if(!Number.isFinite(j))continue;let le=o(O);le==null||le<=0||(P=Math.max(P,Math.max(0,j)+le))}return P>0?P:null},l=(q,P)=>{let O=[],j=null,le=null,ee=null,K=q.parentElement;for(;K;){let Y=K.getAttribute("data-composition-id");Y&&(O.push(Y),!ee&&K!==P&&(ee=Y),j==null&&(j=r.resolveStartForElement(K,0)),le==null&&(le=pt(K.getAttribute("data-duration"))??i(Y)??null)),K=K.parentElement}return{parentCompositionId:ee,compositionAncestors:O.reverse(),inheritedStart:j,inheritedDuration:le}},s=document.querySelector("[data-composition-id]"),u=Array.from(document.querySelectorAll("[data-composition-id]")),c=s?.getAttribute("data-composition-id")??null,m=s?r.resolveStartForElement(s,0):0,f=a(),p=f!=null?Math.max(0,f-Math.max(0,m)):null,b=i(c),v=Wo(s??document.body),x=zo(...u.filter(q=>q!==s).map(q=>{let P=r.resolveStartForElement(q,0),O=r.resolveDurationForElement(q)??i(q.getAttribute("data-composition-id"))??null;return!Number.isFinite(P)||O==null||O<=0?null:Math.max(0,P)+O})),_=x!=null?Math.max(0,x-Math.max(0,m)):null,R=typeof b=="number"&&Number.isFinite(b)&&b>0?b:null,T=typeof v=="number"&&Number.isFinite(v)&&v>0?v:null,M=typeof p=="number"&&Number.isFinite(p)&&p>0?p:null,F=typeof _=="number"&&Number.isFinite(_)&&_>0?_:null,E=zo(M,F),S=R!=null&&E!=null&&R>E+1,C=T??(S?E:zo(R,M,F))??null,I=(C!=null?m+C:null)??(typeof f=="number"&&Number.isFinite(f)&&f>0?f:null),W=(q,P)=>!Number.isFinite(P)||P<=0?0:I==null||!Number.isFinite(I)?P:!Number.isFinite(q)||q>=I?0:Math.max(0,Math.min(P,I-q)),B=[],oe=[],k=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),V=0;for(let[q,P]of k.entries()){if(P===s||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(P.tagName))continue;let O=l(P,s),j=r.resolveStartForElement(P,O.inheritedStart??0),le=P.getAttribute("data-composition-id"),ee=Wo(P);if(ee==null&&le&&le!==c&&(ee=i(le)),ee==null&&P instanceof HTMLMediaElement&&Number.isFinite(P.duration)&&(ee=Ze(P,P.duration)),ee==null){let Fe=O.inheritedDuration;if(Fe!=null&&Fe>0){let ze=(O.inheritedStart??0)+Fe;ee=Math.max(0,ze-j)}}if(ee==null||ee<=0||(ee=W(j,ee),ee<=0))continue;let K=j+ee;V=Math.max(V,K);let Y=P.tagName.toLowerCase(),Ve=le&&le!==c?"composition":Y==="video"?"video":Y==="audio"?"audio":Y==="img"?"image":"element";B.push({id:Go(P)??le??null,label:t0(P,Ve,B.length),start:j,duration:ee,track:qo(P,q),zIndex:Vo(P),stackingContextId:$r(P),kind:Ve,tagName:Y,compositionId:P.getAttribute("data-composition-id"),compositionAncestors:O.compositionAncestors,parentCompositionId:O.parentCompositionId,nodePath:null,compositionSrc:On(P.getAttribute("data-composition-src")),playbackStart:je(P),playbackRate:Ce(P),assetUrl:vu(P),timelineRole:P.getAttribute("data-timeline-role"),timelineLabel:P.getAttribute("data-timeline-label"),timelineGroup:P.getAttribute("data-timeline-group"),timelinePriority:pt(P.getAttribute("data-timeline-priority"))})}let Q=new Set(B.map(q=>q.id)),G=s?.getAttribute("data-composition-id")??null,H=G?n[G]??null:null;if(H&&s){let q=H;if(typeof q.getChildren=="function")try{let P=q.getChildren(!0,!0,!1)??[],O=new Map;for(let ee of s.children){let K=ee;if(!K.id)continue;let Y=K.tagName.toLowerCase();Y==="script"||Y==="style"||Y==="link"||O.set(K,{id:K.id,start:1/0,end:-1/0})}let j=ee=>{let K=ee;for(;K;){if(O.has(K))return K;if(K===s)return null;K=K.parentElement}return null};for(let ee of P){if(typeof ee.targets!="function"||typeof ee.startTime!="function"||typeof ee.duration!="function")continue;let K=ee.startTime(),Y=ee.parent;for(;Y&&Y!==H&&typeof Y.startTime=="function";)K+=Y.startTime(),Y=Y.parent;let Ve=K+ee.duration();if(!(!Number.isFinite(K)||!Number.isFinite(Ve)))for(let Fe of ee.targets()){if(!(Fe instanceof Element))continue;let Re=j(Fe);if(!Re)continue;let ze=O.get(Re);ze&&(ze.start=Math.min(ze.start,K),ze.end=Math.max(ze.end,Ve))}}let le=B.length>0?Math.max(...B.map(ee=>ee.track))+1:0;for(let[ee,K]of O){if(K.start===1/0||K.end===-1/0)continue;let Y=ee;if(Q.has(Y.id))continue;let Ve=Math.max(0,K.end-K.start);if(Ve<=0)continue;let Fe=W(K.start,Ve);Fe<=0||(V=Math.max(V,K.start+Fe),B.push({id:Y.id,label:Y.getAttribute("data-timeline-label")??Y.getAttribute("data-label")??Y.getAttribute("aria-label")??Y.id,start:K.start,duration:Fe,track:qo(Y,le),zIndex:Vo(Y),stackingContextId:$r(Y),kind:"element",tagName:Y.tagName.toLowerCase(),compositionId:Y.getAttribute("data-composition-id"),compositionAncestors:G?[G]:[],parentCompositionId:G,nodePath:null,compositionSrc:null,playbackStart:je(Y),playbackRate:Ce(Y),assetUrl:null,timelineRole:Y.getAttribute("data-timeline-role"),timelineLabel:Y.getAttribute("data-timeline-label"),timelineGroup:Y.getAttribute("data-timeline-group"),timelinePriority:pt(Y.getAttribute("data-timeline-priority"))}),Q.add(Y.id))}}catch(P){L("runtime.timeline.site1",P)}}if(s&&C!=null&&C>0){let q=B.length>0?Math.max(...B.map(P=>P.track))+1:0;for(let P of s.children){let O=P;if(!O.id||Q.has(O.id))continue;let j=O.getAttribute("data-timeline-role");if(j!=="overlay"&&j!=="persistent-overlay")continue;let le=O.tagName.toLowerCase();if(le==="script"||le==="style"||le==="link"||le==="meta"||window.getComputedStyle(O).display==="none")continue;let K=W(0,C);K<=0||(V=Math.max(V,K),B.push({id:O.id,label:O.getAttribute("data-timeline-label")??O.getAttribute("data-label")??O.getAttribute("aria-label")??O.id,start:0,duration:K,track:qo(O,q),zIndex:Vo(O),stackingContextId:$r(O),kind:"element",tagName:le,compositionId:O.getAttribute("data-composition-id"),compositionAncestors:G?[G]:[],parentCompositionId:G,nodePath:null,compositionSrc:null,playbackStart:je(O),playbackRate:Ce(O),assetUrl:null,timelineRole:j,timelineLabel:O.getAttribute("data-timeline-label"),timelineGroup:O.getAttribute("data-timeline-group"),timelinePriority:pt(O.getAttribute("data-timeline-priority"))}),Q.add(O.id))}}for(let q of u){if(q===s)continue;let P=q.getAttribute("data-composition-id");if(!P||!Uo(P))continue;let O=r.resolveStartForElement(q,0),j=Wo(q);if((j==null||j<=0)&&yu(q)!=null){let Y=yu(q);j=Math.max(0,Y-O)}let le=i(P),ee=j&&j>0?j:le;if(ee==null||ee<=0)continue;let K=W(O,ee);K<=0||oe.push({id:P,label:q.getAttribute("data-label")??P,start:O,duration:K,thumbnailUrl:On(q.getAttribute("data-thumbnail-url")),avatarName:null})}let z=Math.max(1,V||1,C??0),X=S&&T==null,we=X?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(z*Math.max(1,e.canonicalFps)));return{...Er(e.canonicalFps),source:"hf-preview",type:"timeline",compositionContractVersion:1,durationSeconds:X?Number.POSITIVE_INFINITY:z,durationInFrames:we,clips:B,scenes:oe,compositionWidth:pt(s?.getAttribute("data-width"))??1920,compositionHeight:pt(s?.getAttribute("data-height"))??1080}}var $o="data-composition-id",n0="data-composition-src",r0=`[${$o}]`,jS=`[${n0}]`,Au="style",Eu="script",i0=\'link[rel="stylesheet"], link[rel="preconnect"]\';function Yt(e){return e?Array.from(e):[]}function wu(e){let{contentNode:t,head:n,documentElement:r,hasTemplate:i,compositionId:o}=e,a=Yt(t.querySelectorAll(r0)),l=o?a.find(c=>c.getAttribute($o)===o)??null:a[0]??null,s=(l??a[0])?.getAttribute($o)?.trim()||"",u=i?null:n??null;return{innerRoot:l,authoredCompositionId:o||s||null,scriptCompositionId:s||o||null,authoredRootId:l?.getAttribute("id")?.trim()||null,styleSources:[...Yt(u?.querySelectorAll(Au)),...Yt(t.querySelectorAll(Au))],scriptSources:[...Yt(u?.querySelectorAll(Eu)),...Yt(t.querySelectorAll(Eu))],linkSources:Yt(n?.querySelectorAll(i0)),variableDefaultCarriers:[r,l].filter(c=>c!=null)}}var pe=Um(Yc(),1),Xc=pe.default,PA=pe.default.stringify,OA=pe.default.fromJSON,HA=pe.default.plugin,GA=pe.default.parse,BA=pe.default.list,UA=pe.default.document,WA=pe.default.comment,VA=pe.default.atRule,zA=pe.default.rule,qA=pe.default.decl,$A=pe.default.root,jA=pe.default.CssSyntaxError,KA=pe.default.Declaration,YA=pe.default.Container,XA=pe.default.Processor,JA=pe.default.Document,QA=pe.default.Comment,ZA=pe.default.Warning,eE=pe.default.AtRule,tE=pe.default.Result,nE=pe.default.Input,rE=pe.default.Rule,iE=pe.default.Root,oE=pe.default.Node;var xa="data-hf-authored-id",Jc="data-hf-inner-root";function ya(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function va(e){return e.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function _g(e){return e&&e.replace(/[^a-zA-Z0-9_-]/g,n=>`\\\\${n}`).replace(/^-?\\d/,n=>`\\\\${n}`)}function Zc(e){let t=e.trim();return t?Array.from(new Set([t,_g(t)])).filter(Boolean):[]}function Tg(e){return!!e&&/[\\w-]/.test(e)}function Rg(e,t,n){let r=Zc(t).sort((l,s)=>s.length-l.length);if(r.length===0)return e;let i="",o=0,a=null;for(let l=0;l<e.length;l+=1){let s=e[l],u=l>0?e[l-1]:"";if(a){i+=s,s===a&&u!=="\\\\"&&(a=null);continue}if(s===\'"\'||s==="\'"){a=s,i+=s;continue}if(s==="["){o+=1,i+=s;continue}if(s==="]"){o=Math.max(0,o-1),i+=s;continue}if(s==="#"&&o===0){let c=r.find(m=>e.startsWith(m,l+1));if(c){let m=e[l+1+c.length];if(!Tg(m)){i+=n,l+=c.length;continue}}}i+=s}return i}function kg(e,t){let n=t?.trim();return n?Rg(e,n,`[${xa}="${va(n)}"]`):e}function Qc(e){return`${e}:not(:has([${Jc}])), ${e} > [${Jc}]`}function Mg(e,t,n,r,i,o){let a=kg(e,r),l=Fg(a,t,n),s=l.trim();if(!s||s==="*")return e;if(/^(html|body|:root)$/i.test(s))return o?Qc(t):e;let u=new RegExp(`\\\\[\\\\s*data-composition-id\\\\s*=\\\\s*(["\'])${ya(n)}\\\\1\\\\s*\\\\]`,"g");if(u.test(s))return s.replace(u,"").trim()===""?Qc(t):l.replace(u,t);let c=l.match(/^\\s*/)?.[0]??"",m=l.match(/\\s*$/)?.[0]??"";if(i){let f=r?`[${xa}="${va(r)}"]`:null;if(f&&s.startsWith(f)){let p=s.slice(f.length);return`${c}${t}${f}${p}${m}`}}return`${c}${t} ${s}${m}`}function Fg(e,t,n){let r=ya(n),i=String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${r}"|\'${r}\')\\s*\\]`,o=String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`;return e.replace(new RegExp(`${i}(?:${o})+`,"g"),t).replace(new RegExp(`(?:${o})+${i}`,"g"),t)}var Ng=new Set(["keyframes","-webkit-keyframes","font-face"]);function Lg(e){return e?.type==="atrule"}function Dg(e){let t=e.parent;for(;t;){if(Lg(t)&&Ng.has(t.name.toLowerCase()))return!0;t=t.parent}return!1}function Ig(e){let t=e.parent;for(;t;){if(t.type==="rule")return!0;t=t.parent}return!1}function ed(e,t,n,r,i){let o=t.trim();if(!e||!o)return e;let a=n||`[data-composition-id="${va(o)}"]`,l=Xc.parse(e);return l.walkRules(s=>{Dg(s)||Ig(s)||(s.selectors=s.selectors.map(u=>Mg(u,a,o,r,i?.compoundAuthoredRoot,i?.scopeRootSelectors)))}),l.toResult({map:!1}).css}function rt(e){return JSON.stringify(e).replace(/</g,"\\\\u003c")}function td(e,t,n="[HyperFrames] composition script error:",r,i=t,o){let a=rt(t),l=rt(i),s=rt(n),u=ya(t),c=rt(o?.trim()||null),m=rt(r??null),f=rt(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${u}"|\'${u}\')\\s*\\]`),p=rt(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`),b=rt(Zc(o?.trim()||""));return`(function(){\n var __hfCompId = ${a};\n var __hfTimelineCompId = ${l};\n var __hfErrorLabel = ${s};\n var __hfAuthoredRootId = ${c};\n var __hfAuthoredRootAttr = ${rt(xa)};\n var __hfEscapeAttr = function(value) {\n return (value + "").replace(/\\\\\\\\/g, "\\\\\\\\\\\\\\\\").replace(/"/g, "\\\\\\\\\\\\"");\n };\n var __hfRootSelector = ${m} || (__hfCompId\n ? \'[data-composition-id="\' + __hfEscapeAttr(__hfCompId) + \'"]\'\n : "");\n var __hfRoot = null;\n var __hfRootSelectorPattern = ${f};\n var __hfTimingSelectorPattern = ${p};\n var __hfAuthoredRootIdForms = ${b};\n var __hfAuthoredRootSelector = __hfAuthoredRootId\n ? "[" + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(__hfAuthoredRootId) + \'"]\'\n : "";\n var __hfIsSelectorNameChar = function(char) {\n return !!char && /[\\\\w-]/.test(char);\n };\n var __hfReplaceAuthoredRootIdSelectors = function(selector) {\n if (!__hfAuthoredRootSelector || !__hfAuthoredRootIdForms.length || typeof selector !== "string") {\n return selector;\n }\n var result = "";\n var bracketDepth = 0;\n var quote = null;\n for (var index = 0; index < selector.length; index += 1) {\n var char = selector[index];\n var previousChar = index > 0 ? selector[index - 1] : "";\n if (quote) {\n result += char;\n if (char === quote && previousChar !== "\\\\\\\\") {\n quote = null;\n }\n continue;\n }\n if (char === \'"\' || char === "\'") {\n quote = char;\n result += char;\n continue;\n }\n if (char === "[") {\n bracketDepth += 1;\n result += char;\n continue;\n }\n if (char === "]") {\n bracketDepth = Math.max(0, bracketDepth - 1);\n result += char;\n continue;\n }\n if (char === "#" && bracketDepth === 0) {\n var matchedForm = null;\n for (var formIndex = 0; formIndex < __hfAuthoredRootIdForms.length; formIndex += 1) {\n var form = __hfAuthoredRootIdForms[formIndex];\n if (selector.slice(index + 1, index + 1 + form.length) === form) {\n matchedForm = form;\n break;\n }\n }\n if (matchedForm) {\n var nextChar = selector[index + 1 + matchedForm.length];\n if (!__hfIsSelectorNameChar(nextChar)) {\n result += __hfAuthoredRootSelector;\n index += matchedForm.length;\n continue;\n }\n }\n }\n result += char;\n }\n return result;\n };\n var __hfNormalizeSelector = function(selector) {\n if (!__hfCompId || typeof selector !== "string") return selector;\n var normalized = selector\n .replace(new RegExp(__hfRootSelectorPattern + \'(?:\' + __hfTimingSelectorPattern + \')+\', \'g\'), __hfRootSelector)\n .replace(new RegExp(\'(?:\' + __hfTimingSelectorPattern + \')+\' + __hfRootSelectorPattern, \'g\'), __hfRootSelector);\n if (__hfAuthoredRootSelector) {\n normalized = __hfReplaceAuthoredRootIdSelectors(normalized);\n }\n return normalized;\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 __hfGetElementById = function(id) {\n var found = window.document.getElementById(id);\n if (found && __hfContains(found)) return found;\n var root = __hfFindRoot();\n if (!root) return found || null;\n var idValue = id + "";\n if (__hfAuthoredRootId && __hfAuthoredRootId === idValue && root.getAttribute && root.getAttribute(__hfAuthoredRootAttr) === idValue) {\n return root;\n }\n if (root.id === idValue) return root;\n if (typeof root.querySelector !== "function") return null;\n try {\n var authoredRootMatch = root.querySelector(\'[\' + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(idValue) + \'"]\');\n if (authoredRootMatch) return authoredRootMatch;\n } catch {}\n if (typeof CSS !== "undefined" && CSS && typeof CSS.escape === "function") {\n try {\n return root.querySelector("#" + CSS.escape(idValue)) || null;\n } catch {}\n }\n try {\n return root.querySelector(\'[id="\' + __hfEscapeAttr(idValue) + \'"]\') || null;\n } catch {}\n return 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") return __hfGetElementById;\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n })\n : window.document;\n var __hfTimelineRegistryProxy = null;\n var __hfGetTimelineRegistry = function() {\n window.__timelines = window.__timelines || {};\n if (!__hfCompId || __hfCompId === __hfTimelineCompId || typeof Proxy !== "function") {\n return window.__timelines;\n }\n if (!__hfTimelineRegistryProxy) {\n __hfTimelineRegistryProxy = new Proxy(window.__timelines, {\n get: function(target, prop, receiver) {\n if (prop !== __hfCompId) {\n return Reflect.get(target, prop, target);\n }\n var authoredValue = Reflect.get(target, prop, target);\n return authoredValue === undefined\n ? Reflect.get(target, __hfTimelineCompId, target)\n : authoredValue;\n },\n set: function(target, prop, value, receiver) {\n if (prop !== __hfCompId) {\n return Reflect.set(target, prop, value, target);\n }\n // The authored node remains in the compiled DOM when its local id\n // differs from the runtime mount id, so readiness legitimately sees\n // both compositions. Publish the same timeline under both identities\n // instead of replacing one with the other.\n var authoredSet = Reflect.set(target, __hfCompId, value, target);\n var runtimeSet = Reflect.set(target, __hfTimelineCompId, value, target);\n return authoredSet && runtimeSet;\n },\n });\n }\n return __hfTimelineRegistryProxy;\n };\n var __hfScopedWindow = typeof Proxy === "function"\n ? new Proxy(window, {\n get: function(target, prop, receiver) {\n if (prop === "__timelines") return __hfGetTimelineRegistry();\n // Inside a sub-composition, __hyperframes is passed as a bare script\n // param bound to the SCOPED variant (per-comp getVariables). But\n // authors routinely write the documented window.__hyperframes.\n // getVariables() form, which would otherwise fall through to the host\n // page\'s base __hyperframes and return the WRONG (or empty) variables\n // for this instance. Route it to the scoped variant too so both\n // spellings resolve to this composition\'s own variables.\n // (__hfScopedHyperframes is a hoisted var assigned below, before any\n // sub-comp script -- the only code that reads this -- runs.)\n if (prop === "__hyperframes") return __hfScopedHyperframes;\n // Native window methods must stay bound to the real window. Handed\n // back unbound, "this" at call time is this Proxy and Chrome rejects\n // it with "Illegal invocation", which broke window.addEventListener,\n // setTimeout, matchMedia and getComputedStyle inside every\n // sub-composition -- including the window.addEventListener("hf-seek",\n // ...) form the Three.js and TypeGPU adapters document. The sibling\n // document and gsap proxies here already bind.\n //\n // Only bind non-constructors. Function.prototype.bind drops static\n // members, so binding a class exposed on window (window.Texts and\n // friends) would silently strip its statics. Built-in methods have\n // no .prototype; classes and constructor functions do.\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" && value.prototype === undefined\n ? value.bind(target)\n : value;\n },\n set: function(target, prop, value, receiver) {\n if (prop === "__timelines") {\n // Common authoring boilerplate assigns the registry back to\n // itself (window.__timelines = window.__timelines || {}). The\n // getter above returns our proxy; do not replace the canonical\n // registry with that proxy or later wrappers will stack proxies.\n if (value === __hfTimelineRegistryProxy) return true;\n target.__timelines = value || {};\n __hfTimelineRegistryProxy = null;\n return true;\n }\n return Reflect.set(target, prop, value, target);\n },\n })\n : window;\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 {\n // Best-effort: timelines coming from user code may have a frozen target\n // or a non-extensible defineProperty path. Swallow \\u2014 the scoped root\n // is an enrichment, not a correctness invariant for playback.\n }\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.filter.call(\n window.document.querySelectorAll(__hfNormalizeSelector(selector)),\n function(node) {\n return node === root || (typeof root.contains === "function" && root.contains(node));\n },\n );\n };\n };\n }\n var value = Reflect.get(utilsTarget, utilsProp, utilsTarget);\n return typeof value === "function" ? value.bind(utilsTarget) : value;\n },\n });\n }\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n });\n var __hfBaseHyperframes = window.__hyperframes;\n var __hfScopedHyperframes = !__hfBaseHyperframes\n ? __hfBaseHyperframes\n : Object.assign({}, __hfBaseHyperframes, {\n getVariables: function() {\n var byComp = window.__hfVariablesByComp;\n var scoped = byComp && __hfTimelineCompId ? byComp[__hfTimelineCompId] : null;\n return scoped ? Object.assign({}, scoped) : {};\n },\n });\n var __hfRun = function() {\n try {\n (function(document, gsap, window, __hyperframes) {\n${e.replace(/<\\/(script)/gi,"<\\\\/$1")}\n }).call(window, __hfScopedDocument, __hfScopedGsap, __hfScopedWindow, __hfScopedHyperframes);\n } catch (_err) {\n console.error(__hfErrorLabel, __hfCompId, _err);\n }\n };\n __hfFindRoot();\n __hfRun();\n})();`}var Pg=["data-composition-id","data-composition-file","data-start","data-duration","data-end","data-track-index","data-track","data-composition-src","data-hf-authored-duration","data-hf-authored-end"];function nd(e){let t=e.getAttribute("id")?.trim();for(let n of Pg)e.removeAttribute(n);t&&(e.removeAttribute("id"),e.setAttribute("data-hf-authored-id",t)),e.setAttribute("data-hf-inner-root","true")}var Og=8e3,Hg=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/,Gg=/\\burl\\(\\s*(["\']?)([^)"\']+)\\1\\s*\\)/g,Bg=["src","href"];function Ug(e){return!e||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("//")||e.startsWith("data:")||e.startsWith("#")||e.startsWith("/")}function od(e,t){if(!t)return e;let n=e.trim();if(Ug(n)||!n.startsWith("../")&&n!=="..")return e;try{return new URL(n,t).href}catch{return e}}function ad(e,t){return!t||!e?e:e.replace(Gg,(n,r,i)=>{let o=od(i||"",t);return o===i?n:`url(${r||""}${o}${r||""})`})}function Wg(e,t){for(let n of Array.from(e.querySelectorAll("[src], [href]")))for(let r of Bg){let i=n.getAttribute(r);if(i==null)continue;let o=od(i,t);o!==i&&n.setAttribute(r,o)}}function Vg(e,t){for(let n of Array.from(e.querySelectorAll("[style]"))){let r=n.getAttribute("style");if(r==null)continue;let i=ad(r,t);i!==r&&n.setAttribute("style",i)}}function zg(e,t){for(let n of Array.from(e.querySelectorAll("style"))){let r=n.textContent||"",i=ad(r,t);i!==r&&(n.textContent=i)}}function sd(e,t){if(t){Wg(e,t),Vg(e,t),zg(e,t);for(let n of Array.from(e.querySelectorAll("template")))sd(n.content,t)}}function qg(e,t){return`${e}__hf${t}`}var $g=e=>new Promise(t=>{let n=!1,r=Date.now(),i=null,o=a=>{n||(n=!0,i!=null&&window.clearTimeout(i),t({status:a,elapsedMs:Math.max(0,Date.now()-r)}))};e.addEventListener("load",()=>o("load"),{once:!0}),e.addEventListener("error",()=>o("error"),{once:!0}),i=window.setTimeout(()=>o("timeout"),Og)});function Sa(e){for(;e.firstChild;)e.removeChild(e.firstChild);e.textContent=""}function rd(e){for(let t of Array.from(e.querySelectorAll("style, script")))t.remove()}function jg(e){let t=document.importNode(e,!0);nd(t);let n=t.getAttribute("data-width"),r=t.getAttribute("data-height");return t.style.width=n?`${n}px`:"100%",t.style.height=r?`${r}px`:"100%",t}function Kg(e,t){let n=e.trim();if(!n)return e;try{return Hg.test(n)&&!n.startsWith("#")&&!n.startsWith("?")?new URL(n,document.baseURI).toString():t?new URL(n,t).toString():new URL(n,document.baseURI).toString()}catch{return e}}function id(e,t){try{let n=new URL(e),r=new URL(t);return n.search="",n.hash="",r.search="",r.hash="",n.href===r.href}catch{return!1}}function li(e){let t=(e.getAttribute("data-composition-id")||"").trim()||null;return{authoredCompositionId:(e.getAttribute("data-hf-original-composition-id")||t||"").trim()||null,runtimeCompositionId:t}}function Yg(e){let t=new Map;for(let n of e){let r=li(n).authoredCompositionId||"";r&&t.set(r,(t.get(r)||0)+1)}return t}function ld(e){let t=li(e).authoredCompositionId;return t?!!document.querySelector(`template#${CSS.escape(t)}-template`):!1}function Xg(e){return!!e.querySelector(\'[data-hf-inner-root="true"]\')}function Jg(e){return e.hasAttribute("data-composition-src")?!0:ld(e)?e.children.length===0||e.hasAttribute("data-hf-original-composition-id")?!0:Xg(e):!1}function Ea(){return Array.from(document.querySelectorAll("[data-composition-src], [data-composition-id]")).filter(t=>t.hasAttribute("data-composition-src")?!0:ld(t))}function ud(){let e=window.__hfVariablesByComp;if(!e)return;let t=new Set(Ea().map(n=>li(n).runtimeCompositionId).filter(n=>!!n));for(let n of Object.keys(e))t.has(n)||delete e[n]}function cd(e,t=Yg(e)){let n=new Map,r=new Map;for(let i of e){let{authoredCompositionId:o,runtimeCompositionId:a}=li(i),l=Jg(i);if(!o){r.set(i,{authoredCompositionId:null,runtimeCompositionId:a});continue}let s=(t.get(o)||0)>1,u=a||o;if(l){let c=s?(n.get(o)||0)+1:0;s&&n.set(o,c),u=s?qg(o,c):o,s?i.setAttribute("data-hf-original-composition-id",o):i.removeAttribute("data-hf-original-composition-id"),i.setAttribute("data-composition-id",u),a&&a!==u&&window.__hfVariablesByComp&&delete window.__hfVariablesByComp[a]}r.set(i,{authoredCompositionId:o,runtimeCompositionId:u})}return r}async function Aa(e){let t=wu({contentNode:e.sourceNode,head:e.head,hasTemplate:e.hasTemplate,compositionId:e.authoredCompositionId}),n=t.innerRoot instanceof HTMLElement?t.innerRoot:null,r=n??e.sourceNode,i=t.authoredCompositionId,o=t.scriptCompositionId,a=e.runtimeCompositionId||null,l=t.authoredRootId,s=a?`[data-composition-id="${CSS.escape(a)}"]`:void 0;for(let f of t.linkSources){let p=(f.getAttribute("href")||"").trim();if(!p)continue;let b=e.compositionUrl?new URL(p,e.compositionUrl).href:p;if(e.compositionUrl&&id(b,e.compositionUrl)||document.head.querySelector(`link[href="${CSS.escape(b)}"]`))continue;let v=f.cloneNode(!0);v instanceof HTMLLinkElement&&(v.href=b,document.head.appendChild(v),e.injectedLinks.push(v))}(f=>{for(let p of f){let b=p.cloneNode(!0);b instanceof HTMLStyleElement&&(i&&(b.textContent=ed(b.textContent||"",i,s,l,{scopeRootSelectors:!0})),document.head.appendChild(b),e.injectedStyles.push(b))}})(t.styleSources);let c=f=>{let p=f.getAttribute("type")?.trim()??"",b=f.getAttribute("src")?.trim()??"";if(b){let x=Kg(b,e.compositionUrl);return e.compositionUrl&&id(x,e.compositionUrl)?null:{kind:"external",src:x,type:p}}let v=f.textContent?.trim()??"";return v?{kind:"inline",content:v,type:p,scopeCompositionId:o}:null},m=t.scriptSources.map(c).filter(f=>f!==null);if(n){let f=n.getAttribute("data-width"),p=n.getAttribute("data-height"),b=e.parseDimensionPx(f),v=e.parseDimensionPx(p);f&&e.host.setAttribute("data-width",f),p&&e.host.setAttribute("data-height",p),b&&e.host instanceof HTMLElement&&(e.host.style.width=b),v&&e.host instanceof HTMLElement&&(e.host.style.height=v),n.hasAttribute("data-timeline-locked")&&e.host.setAttribute("data-timeline-locked","");let x=jg(n);!e.authoredCompositionId&&i&&x.setAttribute("data-composition-id",i),rd(x),e.host.appendChild(x)}else if(e.hasTemplate){let f=document.importNode(r,!0);rd(f),e.host.appendChild(f)}else e.host.innerHTML=e.fallbackBodyInnerHtml;a&&Qg(e,r,a);for(let f of m){let p=document.createElement("script");if(f.type&&(p.type=f.type),p.async=!1,f.kind==="external"?p.src=f.src:f.type.toLowerCase()==="module"?p.textContent=f.content:f.scopeCompositionId?p.textContent=td(f.content,f.scopeCompositionId,"[HyperFrames] composition script error:",s,a||f.scopeCompositionId,l):p.textContent=`(function(){${f.content}})();`,document.body.appendChild(p),e.injectedScripts.push(p),f.kind==="external"){let b=await $g(p);b.status!=="load"&&e.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:e.authoredCompositionId,runtimeCompositionId:e.runtimeCompositionId,hostCompositionSrc:e.hostCompositionSrc,resolvedScriptSrc:f.src,loadStatus:b.status,elapsedMs:b.elapsedMs}})}}}async function dd(e){let t=Ea();if(ud(),t.length===0)return;let n=cd(t),r=t.filter(i=>{if(i.hasAttribute("data-composition-src")||i.children.length>0)return!1;let o=n.get(i)?.authoredCompositionId;return o?!!document.querySelector(`template#${CSS.escape(o)}-template`):!1});if(r.length!==0)for(let i of r){let o=n.get(i),a=o?.authoredCompositionId;if(!a)continue;let l=document.querySelector(`template#${CSS.escape(a)}-template`);Sa(i),await Aa({host:i,authoredCompositionId:a,runtimeCompositionId:o?.runtimeCompositionId||a,hostCompositionSrc:`template#${a}-template`,sourceNode:l.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,injectedLinks:e.injectedLinks,parseDimensionPx:e.parseDimensionPx,onDiagnostic:e.onDiagnostic})}}async function fd(e){let t=Ea();if(ud(),t.length===0)return;let n=cd(t),r=t.filter(i=>i.hasAttribute("data-composition-src"));r.length!==0&&await Promise.all(r.map(async i=>{let o=i.getAttribute("data-composition-src");if(!o)return;let a=n.get(i),l=a?.authoredCompositionId||null,s=a?.runtimeCompositionId||l||null,u=null;try{u=new URL(o,document.baseURI)}catch{u=null}Sa(i);try{let c=l!=null?document.querySelector(`template#${CSS.escape(l)}-template`):null;if(c){await Aa({host:i,authoredCompositionId:l,runtimeCompositionId:s,hostCompositionSrc:o,sourceNode:c.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:u,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,injectedLinks:e.injectedLinks,parseDimensionPx:e.parseDimensionPx,onDiagnostic:e.onDiagnostic});return}let m=await fetch(o);if(!m.ok)throw new Error(`HTTP ${m.status}`);let f=await m.text(),b=new DOMParser().parseFromString(f,"text/html");sd(b,u);let v=(l?b.querySelector(`template#${CSS.escape(l)}-template`):null)??b.querySelector("template"),x=v?v.content:b.body;await Aa({host:i,authoredCompositionId:l,runtimeCompositionId:s,hostCompositionSrc:o,sourceNode:x,hasTemplate:!!v,fallbackBodyInnerHtml:b.body.innerHTML,compositionUrl:u,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,injectedLinks:e.injectedLinks,parseDimensionPx:e.parseDimensionPx,head:b.head,declaredVariableDefaults:bn(b.documentElement),variableDeclarer:b.documentElement,onDiagnostic:e.onDiagnostic})}catch(c){e.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:l,runtimeCompositionId:s,hostCompositionSrc:o,errorMessage:c instanceof Error?c.message:"unknown_error"}}),Sa(i)}}))}function Qg(e,t,n){let i={...e.declaredVariableDefaults??(t instanceof Element?bn(t):{}),...Vs(e.host)};Zi(e.variableDeclarer??(t instanceof Element?t:null),i,n),Us(e.host),Object.keys(i).length>0?(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[n]=i,eo(e.host,{...Bs(e.host,i,window),...Cr()})):window.__hfVariablesByComp&&delete window.__hfVariablesByComp[n]}function wa(e){let n=e.vars.data?.captionState;return n==="dim"||n==="active"?n:void 0}function Zg(e){return e instanceof HTMLElement?e.dataset.captionWrapper!=="true"?e:e.querySelector(":scope > span")??null:null}function eb(){let e=[],t=document.querySelectorAll(".caption-group");for(let n of t)for(let r of n.children){if(!(r instanceof HTMLElement))continue;let i=r.dataset.captionWrapper==="true"?r.querySelector(":scope > span"):r.tagName==="SPAN"?r:null;i&&e.push(i)}return e}function tb(e){let t=e.parentElement;if(t?.dataset.captionWrapper==="true")return t;let n=document.createElement("span");return n.style.display="inline-block",n.dataset.captionWrapper="true",e.parentNode?.insertBefore(n,e),n.appendChild(e),n}function Ca(){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=eb();for(let r of t){let i=null;if(r.wordId&&(i=Zg(document.getElementById(r.wordId))),!i&&r.wordIndex!==void 0&&(i=n[r.wordIndex]??null),!i)continue;let o={},a={};if(r.x!==void 0&&(o.x=r.x),r.y!==void 0&&(o.y=r.y),r.scale!==void 0&&(o.scale=r.scale),r.rotation!==void 0&&(o.rotation=r.rotation),r.opacity!==void 0&&(a.opacity=r.opacity),r.fontSize!==void 0&&(a.fontSize=`${r.fontSize}px`),r.fontWeight!==void 0&&(a.fontWeight=r.fontWeight),r.fontFamily!==void 0&&(a.fontFamily=r.fontFamily),r.activeColor||r.dimColor){let s=e.getTweensOf(i).filter(m=>m.vars.color!==void 0).sort((m,f)=>m.startTime()-f.startTime()),u=s.find(m=>wa(m)==="dim")??s.find(m=>wa(m)===void 0),c=u?String(u.vars.color):"";for(let m of s)(wa(m)??(String(m.vars.color)===c?"dim":"active"))==="dim"?r.dimColor&&(m.vars.color=r.dimColor):r.activeColor&&(m.vars.color=r.activeColor);r.dimColor&&e.set(i,{color:r.dimColor})}if(Object.keys(a).length>0&&e.set(i,a),Object.keys(o).length>0){let l=tb(i);e.set(l,o)}}}).catch(()=>{})}var Ta="data-hf-edit-base-x",Ra="data-hf-edit-base-y",tn="data-hf-edit-original-translate",ui=e=>{let t=parseFloat(e??"");return Number.isFinite(t)?t:0},nb=e=>{let t=[],n=0,r="";for(let i of e.trim())i==="("&&(n+=1),i===")"&&(n=Math.max(0,n-1)),/\\s/.test(i)&&n===0?(r&&t.push(r),r=""):r+=i;return r&&t.push(r),t},md=/^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)px$/,_a=(e,t)=>md.test(e)&&md.test(t)?`${parseFloat(e)+parseFloat(t)}px`:`calc(${e} + ${t})`,rb=(e,t,n)=>{if(!e||e==="none")return`${t} ${n}`;let[r,i,o]=nb(e);if(r===void 0)return`${t} ${n}`;if(i===void 0)return`${_a(r,t)} ${n}`;let a=o===void 0?"":` ${o}`;return`${_a(r,t)} ${_a(i,n)}${a}`},ib=e=>{try{e.ownerDocument.defaultView?.gsap?.getProperty?.(e,"x")}catch{}},ob=e=>{let t=e.style.getPropertyValue("translate").trim();if(t)return t==="none"?"":t;try{let n=e.ownerDocument.defaultView,r=n?n.getComputedStyle(e).getPropertyValue("translate").trim():"";return r==="none"?"":r}catch{return""}},ka=new WeakMap;function ab(e,t){let n=ka.get(e);if(!t?.force&&n!==void 0&&e.style.getPropertyValue("translate")!==n){Ne("position_edit_fold_skipped",{hfId:e.getAttribute("data-hf-id")});return}let r=ui(e.getAttribute("data-x"))-ui(e.getAttribute(Ta)),i=ui(e.getAttribute("data-y"))-ui(e.getAttribute(Ra));e.hasAttribute(tn)||e.setAttribute(tn,ob(e)),n===void 0&&ib(e);let o=e.getAttribute(tn)??"",a=rb(o,`${r}px`,`${i}px`);e.style.setProperty("translate",a),ka.set(e,e.style.getPropertyValue("translate"))}function ci(e,t){let n=e.defaultView?.HTMLElement,r=e.defaultView?.SVGElement,i=s=>n||r?n!==void 0&&s instanceof n||r!==void 0&&s instanceof r:typeof s.style?.setProperty=="function",o=e.querySelectorAll(`[${tn}]:not([${Ta}]):not([${Ra}])`);for(let s=0;s<o.length;s++){let u=o[s];if(u===void 0||!i(u))continue;let c=u.getAttribute(tn)??"";c===""?u.style.removeProperty("translate"):u.style.setProperty("translate",c),u.removeAttribute(tn),ka.delete(u)}let a=e.querySelectorAll(`[${Ta}], [${Ra}]`),l=0;for(let s=0;s<a.length;s++){let u=a[s];u===void 0||!i(u)||(ab(u,t),l+=1)}return l}var pd="__hfPositionEditsSeekReapplyWrapped",hd=new WeakSet,gd=new WeakMap,bd=new WeakMap;function xd(e){let t=e,n=()=>{try{ci(t.document)}catch{}},r=m=>typeof m=="function"&&(hd.has(m)||!!m[pd]),i=m=>{hd.add(m);try{Object.defineProperty(m,pd,{value:!0})}catch{}},o=m=>{if(typeof m!="function"||r(m))return m;let f=function(...p){let b=m.apply(this,p);return n(),b};return i(f),f},a=(m,f)=>{let p=gd.get(m);if(p?.has(f))return!0;let b=Object.getOwnPropertyDescriptor(m,f);if(b?.configurable===!1){let _=m[f];return typeof _=="function"&&(m[f]=o(_),n()),!1}let v=m[f],x=b?.set;return Object.defineProperty(m,f,{configurable:!0,enumerable:b?.enumerable??!0,get:()=>v,set:_=>{v=o(_),x?.call(m,_)}}),v=o(v),p??(p=new Set),p.add(f),gd.set(m,p),n(),!0},l=(m,f)=>{let p=bd.get(t),b=Object.getOwnPropertyDescriptor(t,m);if(!p?.has(m)){if(b?.configurable===!1){let _=t[m];return _?a(_,f):!1}let x=t[m];Object.defineProperty(t,m,{configurable:!0,enumerable:b?.enumerable??!0,get:()=>x,set:_=>{x=_,x&&a(x,f)}}),p??(p=new Set),p.add(m),bd.set(t,p)}let v=t[m];return v?a(v,f):!1},s=()=>{let m=l("__hf","seek"),f=l("__player","renderSeek");return m&&f};if(s())return;let u=120,c=t.setInterval(()=>{if(s()){t.clearInterval(c);return}u-=1,u<=0&&t.clearInterval(c)},50)}function di(e){let t=window,r=e.closest("[data-composition-id]")?.getAttribute("data-composition-id")?.trim()??"",i=r?t.__hfVariablesByComp?.[r]:void 0;if(i)return i;let o=t.__hyperframes?.getVariables?.();return o&&typeof o=="object"?o:t.__hfVariables??{}}function fi(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function Ma(e){let t=e.replace(/[\\u0000-\\u0020]/g,""),n=/^([a-z][a-z0-9+.-]*):/i.exec(t);if(!n)return!0;let r=n[1]?.toLowerCase();return r?r==="https"||r==="http"||r==="blob"?!0:r==="data"?/^data:image\\//i.test(t):!1:!1}var yd=new Set(["img","video","audio","source"]);function sb(e){if(typeof e=="string"&&e.length>0)return e;if(e!==null&&typeof e=="object"){let t=e.url;if(typeof t=="string"&&t.length>0)return t}return null}function lb(e){return e.replace(/[;{}<>\\r\\n]/g,"")}function ub(e){if(fi(e))return String(e);if(e!==null&&typeof e=="object"){let t=e.name;if(typeof t=="string"&&t.length>0)return t}return null}function Fa(e,t){let n=e.closest("[data-composition-id]"),r=t.get(n);if(r)return r;let i=di(e);return t.set(n,i),i}function cb(e,t){if(e.childElementCount===0){e.textContent=t;return}let n=!1;for(let r of Array.from(e.childNodes))r.nodeType===Node.TEXT_NODE&&(r.nodeValue=n?"":t,n=!0);n||e.insertBefore(e.ownerDocument.createTextNode(t),e.firstChild)}function db(e){return e.querySelector("[data-hf-root]")??e.getElementById("stage")??e.body?.firstElementChild??e.body}function fb(e,t){let n=new Set,r=db(e);r&&n.add(r);for(let i of Array.from(e.querySelectorAll("[data-composition-id]")))n.add(i);for(let i of n){let o=Fa(i,t);for(let[a,l]of Object.entries(o)){let s=ub(l);s!==null&&i instanceof HTMLElement&&i.style.setProperty(`--${a}`,lb(s))}}}function Na(e){let t=new Map;fb(e,t);for(let n of Array.from(e.querySelectorAll("[data-var-src]"))){let r=n.getAttribute("data-var-src")?.trim();if(!r)continue;if(!yd.has(n.tagName.toLowerCase())){console.warn(`[hyperframes] Ignoring data-var-src on <${n.tagName.toLowerCase()}>: variable-bound src is only allowed on ${Array.from(yd).join("/")}.`);continue}let i=sb(Fa(n,t)[r]);if(i!==null){if(!Ma(i)){console.warn(`[hyperframes] Ignoring data-var-src="${r}": unsafe URL protocol.`);continue}n.setAttribute("src",i)}}for(let n of Array.from(e.querySelectorAll("[data-var-text]"))){let r=n.getAttribute("data-var-text")?.trim();if(!r)continue;let i=Fa(n,t)[r];fi(i)&&cb(n,String(i))}}var it=new Map,mb="data-hf-color-grading-canvas",pb="__hf_color_grading_canvas__";function Md(){if(typeof MutationObserver>"u"||typeof document>"u")return;let e=document.documentElement;if(!e)return;let t=r=>{r instanceof HTMLElement&&(r.hasAttribute(Vr)||r.setAttribute(Vr,r.style.opacity))},n=r=>{if(r instanceof Element){r.matches("video, img")&&t(r);for(let i of r.querySelectorAll("video, img"))t(i)}};n(e),new MutationObserver(r=>{for(let i of r)for(let o of i.addedNodes)n(o)}).observe(e,{childList:!0,subtree:!0})}var hb=16,gb=4,rn={enabled:!1,position:.5,softness:0,lineWidth:2},La=["#000000","#ffffff"],bb=["#1a1a1a","#f5f5dc"],sr=3,xb=sr-1,yb=5,Da=`${Ke}.0`,vd=`${Ke-1}.0`,vb=`${sr}.0`,Sb=`${(xb+.5)/sr}`;function mi(e){let t=e.getAttribute(Fn);return t==null?null:cu(t,di(e))}var Ab=["attribute vec2 a_pos;","varying vec2 v_uv;","void main(){"," v_uv = a_pos * 0.5 + 0.5;"," gl_Position = vec4(a_pos, 0.0, 1.0);","}"].join(`\n`),Eb=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_source;","uniform sampler2D u_blurSource;","uniform sampler2D u_bloomSource;","uniform sampler2D u_kuwaharaSource;","uniform sampler2D u_lut;","uniform sampler2D u_advanced;","uniform vec2 u_resolution;","uniform vec2 u_uvScale;","uniform vec2 u_uvOffset;","uniform float u_blurReady;","uniform float u_bloomReady;","uniform float u_kuwaharaReady;","uniform float u_lutEnabled;","uniform float u_lutSize;","uniform vec2 u_lutTextureSize;","uniform vec3 u_lutDomainMin;","uniform vec3 u_lutDomainMax;","uniform float u_lutIntensity;","uniform vec3 u_shadowWheel;","uniform vec3 u_midtoneWheel;","uniform vec3 u_highlightWheel;","uniform float u_rgbCurvesEnabled;","uniform float u_hueCurvesEnabled;","uniform float u_secondaryCount;","uniform float u_exposure;","uniform float u_contrast;","uniform float u_highlights;","uniform float u_shadows;","uniform float u_whites;","uniform float u_blacks;","uniform float u_temperature;","uniform float u_tint;","uniform float u_vibrance;","uniform float u_saturation;","uniform float u_vignette;","uniform float u_vignetteMidpoint;","uniform float u_vignetteRoundness;","uniform float u_vignetteFeather;","uniform float u_grain;","uniform float u_grainSize;","uniform float u_grainRoughness;","uniform float u_grainSeed;","uniform float u_effectTime;","uniform float u_blur;","uniform float u_bloom;","uniform float u_kuwahara;","uniform float u_pixelate;","uniform float u_chromaBleed;","uniform float u_tapeDamage;","uniform float u_tapeTracking;","uniform float u_tapeNoise;","uniform float u_tapeSpeed;","uniform float u_filmArtifacts;","uniform float u_halftone;","uniform float u_halftoneSize;","uniform float u_twoInkPrint;","uniform float u_twoInkPrintSize;","uniform float u_ascii;","uniform float u_asciiSize;","uniform float u_asciiInvert;","uniform float u_asciiStyle;","uniform float u_asciiColor;","uniform float u_asciiRotation;","uniform float u_dither;","uniform float u_ditherSize;","uniform float u_monoScreen;","uniform float u_monoScreenSize;","uniform float u_monoScreenAngle;","uniform float u_monoScreenSpread;","uniform float u_monoScreenShape;","uniform float u_monoScreenInvert;","uniform float u_scanlines;","uniform float u_scanlineCount;","uniform float u_scanlineSoftness;","uniform float u_chromaticAberration;","uniform float u_chromaticAngle;","uniform float u_crtCurvature;","uniform float u_digitalGlitch;","uniform float u_digitalGlitchColorSplit;","uniform float u_digitalGlitchLineTear;","uniform float u_digitalGlitchPixelate;","uniform float u_digitalGlitchBlockAmount;","uniform float u_digitalGlitchBlockDisplacement;","uniform float u_digitalGlitchBlockOpacity;","uniform float u_digitalGlitchSpeed;","uniform float u_engraving;","uniform float u_engravingSpacing;","uniform float u_engravingMinThickness;","uniform float u_engravingMaxThickness;","uniform float u_engravingAngle;","uniform float u_engravingContrast;","uniform float u_engravingSharpness;","uniform float u_engravingWave;","uniform float u_engravingWaveFrequency;","uniform float u_crosshatch;","uniform float u_crosshatchSpacing;","uniform float u_crosshatchThickness;","uniform float u_crosshatchAngle;","uniform float u_crosshatchContrast;","uniform float u_crosshatchEdges;","uniform float u_crosshatchLineWeight;","uniform float u_crosshatchWave;","uniform float u_crosshatchWaveFrequency;","uniform float u_paletteSize;","uniform vec3 u_palette0;","uniform vec3 u_palette1;","uniform vec3 u_palette2;","uniform vec3 u_palette3;","uniform vec3 u_palette4;","uniform vec3 u_palette5;","uniform float u_intensity;","uniform float u_compareEnabled;","uniform float u_comparePosition;","uniform float u_compareSoftness;","uniform float u_compareLineWidth;","const float PI = 3.14159265359;","float lumaOf(vec3 c){ return dot(c, vec3(0.2126, 0.7152, 0.0722)); }","float bt601Luma(vec3 c){ return dot(c, vec3(0.299, 0.587, 0.114)); }","float grainHash(vec2 p){ return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123); }","float digitalHash(vec2 p){"," vec2 q = mod(floor(p), 251.0);"," float x = mod(q.x * q.x * 157.0 + q.x * 89.0, 251.0);"," float y = mod(q.y * q.y * 113.0 + q.y * 47.0, 251.0);"," float xy = mod(q.x * q.y * 71.0, 251.0);"," return mod(x + y + xy + 19.0, 251.0) / 251.0;","}","float colorSaturation(vec3 c){ return max(max(c.r, c.g), c.b) - min(min(c.r, c.g), c.b); }","vec2 clampUv(vec2 uv){ return clamp(uv, vec2(0.0), vec2(1.0)); }","vec2 applyCrtWarp(vec2 uv){"," vec2 centered = uv * 2.0 - 1.0;"," float curvature = clamp(u_crtCurvature, 0.0, 1.0) * 0.5;"," float dist = dot(centered, centered);"," centered *= 1.0 + curvature * dist;"," return centered * 0.5 + 0.5;","}","vec4 sampleSource(vec2 uv){ return texture2D(u_source, clampUv(uv)); }","vec4 sampleBlur(vec2 uv){ return texture2D(u_blurSource, clampUv(uv)); }","vec3 sampleBloom(vec2 uv){ return texture2D(u_bloomSource, clampUv(uv)).rgb; }","vec3 sampleKuwahara(vec2 uv){"," vec2 displayUv = uv * u_uvScale + u_uvOffset;"," return texture2D(u_kuwaharaSource, clampUv(displayUv)).rgb;","}","vec4 samplePrepared(vec2 uv){"," vec4 base = sampleSource(uv);"," float blur = clamp(u_blur, 0.0, 1.0);"," if (blur > 0.0 && u_blurReady > 0.5) base = mix(base, sampleBlur(uv), blur);"," float kuwahara = clamp(u_kuwahara, 0.0, 1.0);"," if (kuwahara > 0.0 && u_kuwaharaReady > 0.5) {"," base.rgb = mix(base.rgb, sampleKuwahara(uv), kuwahara);"," }"," return base;","}","float tapeTrackingBand(float y, float center, float width){"," float offset = fract(y - center + 0.5) - 0.5;"," float triangle = max(0.0, 1.0 - abs(offset) / max(width, 0.0001));"," return triangle * triangle * (3.0 - 2.0 * triangle);","}","vec4 sampleMedia(vec2 uv){"," float pixel = clamp(u_pixelate, 0.0, 1.0);"," vec2 sampleUv = uv;"," if (pixel > 0.0) {"," float blockSize = mix(1.0, 48.0, pixel);"," vec2 cells = max(u_resolution / blockSize, vec2(1.0));"," sampleUv = (floor(clamp(uv, vec2(0.0), vec2(0.999999)) * cells) + 0.5) / cells;"," }"," float tapeDamage = clamp(u_tapeDamage, 0.0, 1.0);"," float tapeTracking = clamp(u_tapeTracking, 0.0, 1.0);"," float tapeNoise = clamp(u_tapeNoise, 0.0, 1.0);"," float tapeTime = u_effectTime * mix(0.0, 2.0, clamp(u_tapeSpeed, 0.0, 1.0));"," float tapeFrame = floor(tapeTime * 60.0);"," float tapeLine = floor(sampleUv.y * u_resolution.y * 0.5);"," float lineJitter = (digitalHash(vec2(tapeLine, floor(tapeFrame * 0.5))) - 0.5) * 1.8 * tapeNoise;"," float slowWobble = sin(sampleUv.y * 32.0 + tapeTime * 2.6) * 0.55;"," float headSwitch = smoothstep(0.88, 1.0, sampleUv.y) * sin(sampleUv.y * 240.0 + tapeTime * 8.0) * 4.0;"," float trackingShift = tapeTrackingBand(sampleUv.y, fract(0.08 + tapeTime * 0.083), 0.035);"," trackingShift -= tapeTrackingBand(sampleUv.y, fract(0.28 + tapeTime * 0.061), 0.03) * 0.8;"," trackingShift += tapeTrackingBand(sampleUv.y, fract(0.5 + tapeTime * 0.047), 0.04) * 0.75;"," trackingShift -= tapeTrackingBand(sampleUv.y, fract(0.72 + tapeTime * 0.037), 0.028) * 0.65;"," trackingShift += tapeTrackingBand(sampleUv.y, fract(0.89 + tapeTime * 0.029), 0.032) * 0.55;"," trackingShift *= tapeTracking * 48.0;"," float tapeShift = (lineJitter + slowWobble + headSwitch + trackingShift) * tapeDamage;"," float texelX = 1.0 / max(u_resolution.x * max(u_uvScale.x, 0.00001), 1.0);"," vec2 tapeUv = sampleUv + vec2(tapeShift * texelX, 0.0);"," vec4 base = samplePrepared(tapeUv);"," if (tapeDamage > 0.0) {"," vec2 lumaStep = vec2(texelX * mix(1.0, 3.5, tapeDamage), 0.0);"," vec3 leftTape = samplePrepared(tapeUv - lumaStep).rgb;"," vec3 rightTape = samplePrepared(tapeUv + lumaStep).rgb;"," float tapeLuma = (bt601Luma(leftTape) + bt601Luma(base.rgb) * 2.0 + bt601Luma(rightTape)) * 0.25;"," vec3 centerChroma = base.rgb - vec3(bt601Luma(base.rgb));"," vec3 tapeColor = vec3(tapeLuma) + centerChroma;"," vec3 ghost = samplePrepared(tapeUv - vec2(texelX * 12.0, 0.0)).rgb;"," tapeColor = mix(tapeColor, ghost, 0.045 * tapeDamage);"," float fineNoise = digitalHash(floor(gl_FragCoord.xy) + vec2(tapeFrame * 17.0, tapeFrame * 3.0)) - 0.5;"," float band = digitalHash(vec2(floor(sampleUv.y * 92.0), floor(tapeFrame / 3.0)));"," float dropout = smoothstep(0.985, 1.0, band) * (digitalHash(vec2(floor(sampleUv.x * 18.0), tapeLine)) - 0.5);"," tapeColor += (fineNoise * 0.035 + dropout * 0.12) * tapeDamage * tapeNoise;"," base.rgb = mix(base.rgb, clamp(tapeColor, 0.0, 1.0), tapeDamage);"," }"," float chromaBleed = clamp(u_chromaBleed, 0.0, 1.0);"," if (chromaBleed > 0.0) {"," float radius = mix(1.0, 4.0, chromaBleed);"," vec2 stepUv = vec2(texelX * radius, 0.0);"," vec3 c0 = base.rgb;"," vec3 c1 = samplePrepared(tapeUv - stepUv).rgb;"," vec3 c2 = samplePrepared(tapeUv + stepUv).rgb;"," vec3 c3 = samplePrepared(tapeUv - stepUv * 2.0).rgb;"," vec3 c4 = samplePrepared(tapeUv + stepUv * 2.0).rgb;"," float centerLuma = lumaOf(base.rgb);"," vec3 blurredChroma = ((c0 - vec3(lumaOf(c0))) * 6.0 + (c1 - vec3(lumaOf(c1))) * 4.0 + (c2 - vec3(lumaOf(c2))) * 4.0 + (c3 - vec3(lumaOf(c3))) + (c4 - vec3(lumaOf(c4)))) / 16.0;"," base.rgb = mix(base.rgb, clamp(vec3(centerLuma) + blurredChroma, 0.0, 1.0), chromaBleed);"," }"," return base;","}","vec4 sampleChromaticMedia(vec2 uv, vec4 center){"," float amount = clamp(u_chromaticAberration, 0.0, 1.0);"," if (amount <= 0.0) return center;"," float angle = clamp(u_chromaticAngle, 0.0, 1.0) * PI * 2.0;"," vec2 offset = vec2(cos(angle), sin(angle)) * amount * 0.02;"," vec4 positive = sampleMedia(uv + offset);"," vec4 negative = sampleMedia(uv - offset);"," vec3 split = vec3(positive.r, center.g, negative.b);"," return vec4(split, center.a);","}","vec3 sampleDigitalSplit(vec2 uv, vec2 block, float time, float amount){"," float split = amount * 0.06;"," float direction = digitalHash(block * 0.4 + vec2(floor(time * 3.7), floor(time * 5.3)));"," vec2 axis = direction > 0.66 ? vec2(1.0, 0.0) : direction > 0.33 ? vec2(0.0, 1.0) : vec2(0.7071);"," vec4 center = sampleMedia(uv);"," return vec3(sampleMedia(uv + axis * split).r, center.g, sampleMedia(uv - axis * split).b);","}","vec3 applyDigitalGlitch(vec2 uv, vec3 source){"," float amount = clamp(u_digitalGlitch, 0.0, 1.0);"," if (amount <= 0.0) return source;"," float colorSplit = clamp(u_digitalGlitchColorSplit, 0.0, 1.0) * 2.0;"," float lineTear = clamp(u_digitalGlitchLineTear, 0.0, 1.0) * 2.0;"," float pixelate = clamp(u_digitalGlitchPixelate, 0.0, 1.0) * 2.0;"," float blockAmount = clamp(u_digitalGlitchBlockAmount, 0.0, 1.0);"," float blockDisplacement = clamp(u_digitalGlitchBlockDisplacement, 0.0, 1.0) * 2.0;"," float blockOpacity = clamp(u_digitalGlitchBlockOpacity, 0.0, 1.0);"," float speed = clamp(u_digitalGlitchSpeed, 0.0, 1.0) * 2.0;"," float time = u_effectTime * speed;"," float blockCount = 8.0 + blockAmount * 60.0;"," vec2 block = floor(uv * blockCount);"," float randomA = digitalHash(block + vec2(floor(time * 7.3), floor(time * 11.1)));"," float randomB = digitalHash(block * 0.7 + vec2(17.3 + floor(time * 6.6), 29.1));"," float randomC = digitalHash(block + vec2(floor(time * 5.7) * 13.0, 41.0));"," float randomD = digitalHash(block * 1.3 + vec2(7.0, floor(time * 3.2) * 7.0));"," vec2 displaced = uv;"," if (blockDisplacement > 0.0 && blockOpacity > 0.0) {"," float threshold = 1.0 - blockDisplacement * 0.4;"," if (randomA > threshold) {"," displaced += vec2((randomB - 0.5) * blockDisplacement * 0.5, (randomC - 0.5) * blockDisplacement * 0.3);"," }"," if (randomD > 0.92 && blockDisplacement > 0.5) {"," displaced.x += (digitalHash(vec2(block.y, floor(time * 8.0))) - 0.5) * blockDisplacement;"," }"," displaced = mix(uv, displaced, blockOpacity);"," }"," if (lineTear > 0.0) {"," float row = floor(uv.y * (50.0 + lineTear * 150.0));"," float tearA = digitalHash(vec2(row * 7.3 + floor(time * 12.0 + row * 0.1) * 3.7, 13.0));"," float tearB = digitalHash(vec2(row * 13.7 + floor(time * 8.3) * 5.1, 31.0));"," if (tearA > 1.0 - lineTear * 0.5) displaced.x += (tearB - 0.5) * lineTear * 0.4;"," if (tearB > 0.95 && lineTear > 0.3) displaced.x += (tearA - 0.5) * lineTear * 0.8;"," }"," if (pixelate > 0.0) {"," float pixelRandom = digitalHash(block * 0.5 + vec2(floor(time * 4.9), 53.0));"," if (pixelRandom > 1.0 - pixelate * 0.35) {"," float cells = 4.0 + (1.0 - pixelRandom) * pixelate * 40.0;"," displaced = (floor(clampUv(displaced) * cells) + 0.5) / cells;"," }"," }"," displaced = clampUv(displaced);"," vec3 glitch = sampleDigitalSplit(displaced, block, time, colorSplit);"," if (blockDisplacement > 0.2 && blockOpacity > 0.0) {"," float corruption = digitalHash(block * 1.1 + vec2(floor(time * 11.9), 67.0));"," vec3 changed = glitch;"," if (corruption > 0.9) changed = 1.0 - glitch;"," else if (corruption > 0.85) changed = corruption > 0.875 ? glitch.gbr : glitch.brg;"," else if (corruption > 0.8) {"," float channel = digitalHash(block + vec2(73.0));"," if (channel > 0.66) changed.r = min(changed.r * 2.0, 1.0);"," else if (channel > 0.33) changed.g = min(changed.g * 2.0, 1.0);"," else changed.b = min(changed.b * 2.0, 1.0);"," }"," glitch = mix(glitch, changed, blockOpacity);"," }"," if (blockOpacity > 0.0) {"," float flash = digitalHash(block * 0.8 + vec2(floor(time * 14.7), 83.0));"," vec3 flashed = flash > 0.97 ? min(glitch * 1.8, vec3(1.0)) : flash > 0.94 ? glitch * 0.3 : glitch;"," glitch = mix(glitch, flashed, blockOpacity * 0.6);"," }"," if (lineTear > 0.1) {"," float interference = pow(sin(uv.y * (300.0 + randomA * 200.0) + time * 30.0) * 0.5 + 0.5, 6.0);"," glitch -= interference * 0.08 * lineTear;"," }"," return mix(source, clamp(glitch, 0.0, 1.0), amount);","}","float dustMask(vec2 uv, float frameBucket){"," vec2 grid = vec2(128.0, 72.0);"," vec2 cell = floor(uv * grid);"," vec2 local = fract(uv * grid) - 0.5;"," float chance = grainHash(cell + frameBucket * 19.13);"," float radius = mix(0.05, 0.34, grainHash(cell + 7.1));"," return step(0.9975, chance) * (1.0 - smoothstep(radius, radius + 0.08, length(local)));","}","float screenDot(vec2 p, float ink, float angle, float sharpness){"," float c = cos(angle);"," float s = sin(angle);"," vec2 q = mat2(c, -s, s, c) * p;"," vec2 d = fract(q) - 0.5;"," float radius = sqrt(clamp(ink, 0.0, 1.0)) * 0.68;"," float edge = mix(0.16, 0.025, sharpness);"," return 1.0 - smoothstep(radius - edge, radius + edge, length(d));","}","vec3 paletteColor(float index);","float monoScreenMask(vec2 local, float radius, float shape, float softness){"," vec2 centered = local - 0.5;"," float distanceToInk = length(centered);"," if (shape > 0.5 && shape < 1.5) distanceToInk = max(abs(centered.x), abs(centered.y));"," if (shape > 1.5 && shape < 2.5) distanceToInk = abs(centered.x) + abs(centered.y);"," if (shape > 2.5 && shape < 3.5) distanceToInk = max(abs(centered.x) * 0.86 + centered.y * 0.5, -centered.y);"," if (shape > 3.5) distanceToInk = abs(centered.y);"," float shapeRadius = shape > 3.5 ? radius * 0.45 : radius;"," return 1.0 - smoothstep(shapeRadius, shapeRadius + softness, distanceToInk);","}","vec3 applyMonoScreen(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float invert = step(0.5, u_monoScreenInvert);"," float coverage = mix(1.0 - lumaOf(source), lumaOf(source), invert);"," coverage = pow(clamp(coverage, 0.0, 1.0), mix(1.7, 0.58, clamp(u_monoScreenSpread, 0.0, 1.0)));"," float scale = max(min(u_resolution.x, u_resolution.y) / 540.0, 0.25);"," float cellPx = mix(4.0, 18.0, clamp(u_monoScreenSize, 0.0, 1.0)) * scale;"," float angle = clamp(u_monoScreenAngle, 0.0, 1.0) * PI * 0.5;"," float cosine = cos(angle);"," float sine = sin(angle);"," vec2 point = mat2(cosine, -sine, sine, cosine) * gl_FragCoord.xy / max(cellPx, 1.0);"," float radius = sqrt(coverage) * 0.68;"," float inkMask = monoScreenMask(fract(point), radius, floor(u_monoScreenShape + 0.5), 0.035);"," vec3 ink = paletteColor(0.0);"," vec3 paper = paletteColor(max(u_paletteSize - 1.0, 1.0));"," return mix(source, mix(paper, ink, inkMask), amount);","}","vec3 applyEngraving(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float spacing = mix(3.0, 20.0, clamp(u_engravingSpacing, 0.0, 1.0));"," float minThickness = mix(0.0, 2.0, clamp(u_engravingMinThickness, 0.0, 1.0));"," float maxThickness = mix(1.0, 8.0, clamp(u_engravingMaxThickness, 0.0, 1.0));"," float angle = clamp(u_engravingAngle, 0.0, 1.0) * PI;"," vec2 alongAxis = vec2(cos(angle), sin(angle));"," vec2 acrossAxis = vec2(-alongAxis.y, alongAxis.x);"," float along = dot(gl_FragCoord.xy, alongAxis);"," float across = dot(gl_FragCoord.xy, acrossAxis);"," float frequency = mix(1.0, 10.0, clamp(u_engravingWaveFrequency, 0.0, 1.0));"," float wave = sin(along * frequency * 0.01);"," across += wave * clamp(u_engravingWave, 0.0, 1.0) * 3.0;"," float lineIndex = floor(across / max(spacing, 1.0));"," float lineDistance = abs(fract(across / max(spacing, 1.0)) - 0.5) * spacing;"," float contrast = mix(0.5, 2.0, clamp(u_engravingContrast, 0.0, 1.0));"," float darkness = 1.0 - pow(clamp(lumaOf(source), 0.0, 1.0), contrast);"," float variation = mix(0.88, 1.12, digitalHash(vec2(lineIndex, 73.0)));"," float thickness = mix(minThickness, maxThickness, darkness) * variation;"," float edge = mix(1.0, 0.3, clamp(u_engravingSharpness, 0.0, 1.0));"," float inkMask = 1.0 - smoothstep(max(thickness * 0.5 - edge, 0.0), thickness * 0.5 + edge, lineDistance);"," inkMask *= smoothstep(0.015, 0.12, darkness);"," vec3 ink = paletteColor(0.0);"," vec3 paper = paletteColor(max(u_paletteSize - 1.0, 1.0));"," return mix(source, mix(paper, ink, inkMask), amount);","}","float crosshatchLine(vec2 pixel, float angle, float spacing, float thickness, float seed){"," vec2 alongAxis = vec2(cos(angle), sin(angle));"," vec2 acrossAxis = vec2(-alongAxis.y, alongAxis.x);"," float along = dot(pixel, alongAxis);"," float across = dot(pixel, acrossAxis);"," float frequency = mix(1.0, 10.0, clamp(u_crosshatchWaveFrequency, 0.0, 1.0));"," across += sin(along * frequency * 0.02 + u_effectTime + seed) * clamp(u_crosshatchWave, 0.0, 1.0) * 5.0;"," float lineIndex = floor(across / max(spacing, 1.0));"," float distanceToLine = abs(fract(across / max(spacing, 1.0)) - 0.5) * spacing;"," float variation = mix(1.0, 0.5 + digitalHash(vec2(lineIndex, seed)), clamp(u_crosshatchLineWeight, 0.0, 1.0));"," float halfWidth = thickness * variation * 0.5;"," return 1.0 - smoothstep(max(halfWidth - 0.5, 0.0), halfWidth + 0.5, distanceToLine);","}","float crosshatchEdge(vec2 uv){"," vec2 texel = 1.0 / max(u_resolution * u_uvScale, vec2(1.0));"," float tl = lumaOf(sampleMedia(uv + texel * vec2(-1.0, -1.0)).rgb);"," float tc = lumaOf(sampleMedia(uv + texel * vec2( 0.0, -1.0)).rgb);"," float tr = lumaOf(sampleMedia(uv + texel * vec2( 1.0, -1.0)).rgb);"," float ml = lumaOf(sampleMedia(uv + texel * vec2(-1.0, 0.0)).rgb);"," float mr = lumaOf(sampleMedia(uv + texel * vec2( 1.0, 0.0)).rgb);"," float bl = lumaOf(sampleMedia(uv + texel * vec2(-1.0, 1.0)).rgb);"," float bc = lumaOf(sampleMedia(uv + texel * vec2( 0.0, 1.0)).rgb);"," float br = lumaOf(sampleMedia(uv + texel * vec2( 1.0, 1.0)).rgb);"," float gx = -tl - 2.0 * ml - bl + tr + 2.0 * mr + br;"," float gy = -tl - 2.0 * tc - tr + bl + 2.0 * bc + br;"," return length(vec2(gx, gy));","}","vec3 applyCrosshatch(vec2 uv, vec3 source, float amount){"," if (amount <= 0.0) return source;"," float spacing = mix(5.0, 30.0, clamp(u_crosshatchSpacing, 0.0, 1.0));"," float thickness = mix(1.0, 5.0, clamp(u_crosshatchThickness, 0.0, 1.0));"," float baseAngle = -clamp(u_crosshatchAngle, 0.0, 1.0) * PI;"," float contrast = mix(0.5, 2.0, clamp(u_crosshatchContrast, 0.0, 1.0));"," float darkness = 1.0 - pow(clamp(lumaOf(source), 0.0, 1.0), contrast);"," vec3 ink = paletteColor(0.0);"," vec3 paper = paletteColor(max(u_paletteSize - 1.0, 1.0));"," vec3 result = paper;"," float layer = crosshatchLine(gl_FragCoord.xy, baseAngle, spacing, thickness, 1.0) * smoothstep(0.2, 0.4, darkness);"," result = mix(result, ink, layer);"," layer = crosshatchLine(gl_FragCoord.xy, baseAngle + PI * 0.5, spacing * 0.95, thickness * 0.9, 2.0) * smoothstep(0.4, 0.6, darkness);"," result = mix(result, ink, layer);"," layer = crosshatchLine(gl_FragCoord.xy, baseAngle + PI * 0.25, spacing * 0.9, thickness * 0.8, 3.0) * smoothstep(0.6, 0.8, darkness);"," result = mix(result, ink, layer);"," layer = crosshatchLine(gl_FragCoord.xy, baseAngle - PI * 0.25, spacing * 0.85, thickness * 0.7, 4.0) * smoothstep(0.75, 0.9, darkness);"," result = mix(result, ink, layer);"," result = mix(result, ink, smoothstep(0.9, 1.0, darkness) * 0.8);"," float edgeStrength = mix(0.0, 2.0, clamp(u_crosshatchEdges, 0.0, 1.0));"," float edge = smoothstep(0.1, 0.3, crosshatchEdge(uv)) * edgeStrength;"," result = mix(result, ink, clamp(edge, 0.0, 1.0));"," return mix(source, result, amount);","}","vec3 applyHalftone(vec3 source, float amount){"," if (amount <= 0.0) return source;"," vec3 cmy = 1.0 - source;"," float k = min(cmy.r, min(cmy.g, cmy.b));"," vec3 inks = max(cmy - vec3(k * 0.72), 0.0);"," float scale = min(u_resolution.x, u_resolution.y) / 540.0;"," float cellPx = mix(5.0, 14.0, clamp(u_halftoneSize, 0.0, 1.0)) * max(scale, 0.25);"," vec2 p = gl_FragCoord.xy / max(cellPx, 1.0);"," float cyan = screenDot(p, inks.r, 0.261799, 0.78);"," float magenta = screenDot(p, inks.g, 1.308997, 0.78);"," float yellow = screenDot(p, inks.b, 0.0, 0.78);"," float blackInk = screenDot(p, k, 0.785398, 0.82);"," vec3 printColor = vec3(0.975, 0.962, 0.925);"," printColor *= mix(vec3(1.0), vec3(0.05, 0.79, 0.86), cyan);"," printColor *= mix(vec3(1.0), vec3(0.91, 0.08, 0.48), magenta);"," printColor *= mix(vec3(1.0), vec3(0.98, 0.83, 0.08), yellow);"," printColor *= mix(vec3(1.0), vec3(0.035), blackInk * 0.92);"," return mix(source, printColor, amount);","}","vec3 applyTwoInkPrint(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float sourceLuma = lumaOf(source);"," float darkness = 1.0 - sourceLuma;"," float warmBias = clamp(source.r - (source.g + source.b) * 0.5, -0.35, 0.35);"," float coolBias = clamp((source.g + source.b) * 0.5 - source.r, -0.35, 0.35);"," float redTone = smoothstep(0.08, 0.72, darkness) * (1.0 - 0.68 * smoothstep(0.66, 1.0, darkness));"," float tealTone = smoothstep(0.30, 0.92, darkness);"," float redCoverage = clamp(redTone + warmBias * 1.35 - coolBias * 0.35, 0.0, 1.0);"," float tealCoverage = clamp(tealTone + coolBias * 1.1 - warmBias * 0.45, 0.0, 1.0);"," float scale = min(u_resolution.x, u_resolution.y) / 540.0;"," float cellPx = mix(4.5, 12.0, clamp(u_twoInkPrintSize, 0.0, 1.0)) * max(scale, 0.25);"," vec2 p = gl_FragCoord.xy / max(cellPx, 1.0);"," float redDot = screenDot(p, redCoverage, 0.261799, 0.84);"," float tealDot = screenDot(p + vec2(0.12, -0.08), tealCoverage, 1.308997, 0.84);"," float paperNoise = grainHash(floor(gl_FragCoord.xy * 0.5)) - 0.5;"," vec3 paper = vec3(0.955, 0.910, 0.795) + paperNoise * 0.018;"," vec3 vermilion = vec3(0.88, 0.13, 0.075);"," vec3 teal = vec3(0.035, 0.285, 0.355);"," vec3 overprint = vec3(0.045, 0.055, 0.052);"," vec3 printColor = paper * (1.0 - redDot) * (1.0 - tealDot);"," printColor += vermilion * redDot * (1.0 - tealDot);"," printColor += teal * (1.0 - redDot) * tealDot;"," printColor += overprint * redDot * tealDot;"," return mix(source, clamp(printColor, 0.0, 1.0), amount);","}","vec3 paletteColor(float index){"," if (index < 0.5) return u_palette0;"," if (index < 1.5) return u_palette1;"," if (index < 2.5) return u_palette2;"," if (index < 3.5) return u_palette3;"," if (index < 4.5) return u_palette4;"," return u_palette5;","}","float bayer4(vec2 point){"," vec2 cell = mod(floor(point), 4.0);"," if (cell.y < 0.5) {"," if (cell.x < 0.5) return 0.5 / 16.0;"," if (cell.x < 1.5) return 8.5 / 16.0;"," if (cell.x < 2.5) return 2.5 / 16.0;"," return 10.5 / 16.0;"," }"," if (cell.y < 1.5) {"," if (cell.x < 0.5) return 12.5 / 16.0;"," if (cell.x < 1.5) return 4.5 / 16.0;"," if (cell.x < 2.5) return 14.5 / 16.0;"," return 6.5 / 16.0;"," }"," if (cell.y < 2.5) {"," if (cell.x < 0.5) return 3.5 / 16.0;"," if (cell.x < 1.5) return 11.5 / 16.0;"," if (cell.x < 2.5) return 1.5 / 16.0;"," return 9.5 / 16.0;"," }"," if (cell.x < 0.5) return 15.5 / 16.0;"," if (cell.x < 1.5) return 7.5 / 16.0;"," if (cell.x < 2.5) return 13.5 / 16.0;"," return 5.5 / 16.0;","}","float standardAsciiSample(float brightness, vec2 grid){"," if (brightness < 0.1) return 0.0;"," if (brightness < 0.2) return grid.x == 2.0 && grid.y == 5.0 ? 1.0 : 0.0;"," if (brightness < 0.3) return grid.x == 2.0 && (grid.y == 2.0 || grid.y == 4.0) ? 1.0 : 0.0;"," if (brightness < 0.4) return (grid.y == 2.0 || grid.y == 4.0) && grid.x >= 1.0 && grid.x <= 3.0 ? 1.0 : 0.0;"," if (brightness < 0.5) {"," bool cross = (grid.x == 2.0 && grid.y >= 2.0 && grid.y <= 4.0) || (grid.y == 3.0 && grid.x >= 1.0 && grid.x <= 3.0);"," bool diagonals = (grid.x == 1.0 || grid.x == 3.0) && (grid.y == 2.0 || grid.y == 4.0);"," return cross || diagonals ? 1.0 : 0.0;"," }"," if (brightness < 0.6) {"," bool ring = ((grid.y == 2.0 || grid.y == 4.0) && grid.x >= 1.0 && grid.x <= 3.0) || ((grid.x == 1.0 || grid.x == 3.0) && grid.y == 3.0);"," return ring ? 1.0 : 0.0;"," }"," bool outline = ((grid.y == 1.0 || grid.y == 5.0) && grid.x >= 1.0 && grid.x <= 3.0) || ((grid.x == 0.0 || grid.x == 4.0) && grid.y >= 2.0 && grid.y <= 4.0) || ((grid.x == 1.0 || grid.x == 3.0) && grid.y >= 1.0 && grid.y <= 5.0);"," if (brightness < 0.7) return outline ? 1.0 : 0.0;"," if (brightness < 0.8) {"," bool slash = abs(grid.x - 2.0) == abs(grid.y - 3.0) && grid.x >= 1.0 && grid.x <= 3.0;"," return outline || slash ? 1.0 : 0.0;"," }"," if (brightness < 0.9) {"," bool loops = ((grid.y == 1.0 || grid.y == 3.0 || grid.y == 5.0) && grid.x >= 1.0 && grid.x <= 3.0) || ((grid.x == 1.0 || grid.x == 3.0) && (grid.y == 2.0 || grid.y == 4.0));"," return loops ? 1.0 : 0.0;"," }"," return 1.0;","}","float asciiStyleSample(float style, float brightness, vec2 uv){"," vec2 grid = floor(uv * vec2(5.0, 7.0));"," if (style < 0.5) return standardAsciiSample(brightness, grid);"," if (style < 1.5) {"," float checker = mod(grid.x + grid.y, 2.0);"," float ruled = mod(grid.x, 2.0) == 0.0 || mod(grid.y, 2.0) == 0.0 ? 1.0 : 0.0;"," if (brightness < 0.125) return 0.0;"," if (brightness < 0.25) return checker == 0.0 ? 0.5 : 0.0;"," if (brightness < 0.375) return ruled * 0.6;"," if (brightness < 0.5) return checker == 0.0 ? 1.0 : 0.0;"," if (brightness < 0.625) return ruled > 0.5 ? 1.0 : 0.3;"," if (brightness < 0.75) return checker == 0.0 ? 1.0 : 0.7;"," if (brightness < 0.875) return ruled > 0.5 ? 1.0 : 0.85;"," return 1.0;"," }"," if (style < 2.5) {"," if (brightness < 0.14) return 0.0;"," if (brightness < 0.28) return grid.x == 2.0 && grid.y == 1.0 ? 1.0 : 0.0;"," if (brightness < 0.42) return grid.x == 2.0 && grid.y == 5.0 ? 1.0 : 0.0;"," if (brightness < 0.56) return grid.y == 3.0 && grid.x >= 1.0 && grid.x <= 3.0 ? 1.0 : 0.0;"," if (brightness < 0.7) return (grid.x == 2.0 && grid.y >= 2.0 && grid.y <= 4.0) || (grid.y == 3.0 && grid.x >= 1.0 && grid.x <= 3.0) ? 1.0 : 0.0;"," if (brightness < 0.84) return abs(grid.x - 2.0) == abs(grid.y - 3.0) && grid.y >= 2.0 && grid.y <= 4.0 ? 1.0 : 0.0;"," return grid.x == 1.0 || grid.x == 3.0 || grid.y == 2.0 || grid.y == 4.0 ? 1.0 : 0.0;"," }"," if (style < 3.5) return grid.y >= 6.0 - brightness * 7.0 ? 1.0 : 0.0;"," if (style < 4.5) {"," vec2 dots = floor(uv * vec2(2.0, 4.0));"," if (brightness < 0.125) return 0.0;"," if (brightness < 0.25) return dots.y == 3.0 ? 1.0 : 0.0;"," if (brightness < 0.375) return dots.y >= 2.0 ? 1.0 : 0.0;"," if (brightness < 0.5) return dots.y >= 1.0 ? 1.0 : 0.0;"," if (brightness < 0.625) return dots.y >= 1.0 || dots.x == 1.0 ? 1.0 : 0.0;"," if (brightness < 0.75) return 1.0;"," if (brightness < 0.875) return mod(grid.x + grid.y, 2.0) < 1.5 ? 1.0 : 0.7;"," return 1.0;"," }"," if (style < 5.5) {"," if (brightness < 0.125) return 0.0;"," if (brightness < 0.25) return grid.x == 2.0 && grid.y == 3.0 ? 1.0 : 0.0;"," if (brightness < 0.375) return grid.y == 3.0 && grid.x >= 1.0 && grid.x <= 3.0 ? 1.0 : 0.0;"," if (brightness < 0.5) return grid.x + grid.y == 5.0 || grid.x + grid.y == 6.0 ? 1.0 : 0.0;"," if (brightness < 0.625) return grid.x == 2.0 ? 1.0 : 0.0;"," if (brightness < 0.75) return abs(grid.x - grid.y / 1.4) < 0.7 && grid.x >= 1.0 && grid.x <= 3.0 ? 1.0 : 0.0;"," if (brightness < 0.875) return grid.x == 2.0 || grid.y == 3.0 ? 1.0 : 0.0;"," return grid.x == 1.0 || grid.x == 3.0 || grid.y == 2.0 || grid.y == 4.0 ? 1.0 : 0.0;"," }"," if (style < 6.5) {"," bool top = grid.y == 0.0 && grid.x >= 1.0 && grid.x <= 3.0;"," bool topLeft = grid.x == 1.0 && grid.y <= 3.0;"," bool topRight = grid.x == 3.0 && grid.y <= 3.0;"," bool middle = grid.y == 3.0 && grid.x >= 1.0 && grid.x <= 3.0;"," bool bottomLeft = grid.x == 1.0 && grid.y >= 3.0;"," bool bottomRight = grid.x == 3.0 && grid.y >= 3.0;"," bool bottom = grid.y == 6.0 && grid.x >= 1.0 && grid.x <= 3.0;"," if (brightness < 0.1) return 0.0;"," if (brightness < 0.2) return topRight || bottomRight ? 1.0 : 0.0;"," if (brightness < 0.3) return top || topRight || middle || bottomLeft || bottom ? 1.0 : 0.0;"," if (brightness < 0.4) return top || topRight || middle || bottomRight || bottom ? 1.0 : 0.0;"," if (brightness < 0.5) return topLeft || middle || topRight || bottomRight ? 1.0 : 0.0;"," if (brightness < 0.6) return top || topLeft || middle || bottomRight || bottom ? 1.0 : 0.0;"," if (brightness < 0.7) return top || topLeft || middle || bottomLeft || bottomRight || bottom ? 1.0 : 0.0;"," if (brightness < 0.8) return top || topRight || bottomRight ? 1.0 : 0.0;"," if (brightness < 0.9) return top || topLeft || topRight || middle || bottomLeft || bottomRight || bottom ? 1.0 : 0.0;"," return top || topLeft || topRight || middle || bottomRight || bottom ? 1.0 : 0.0;"," }"," float slash = grid.x - grid.y;"," float backslash = grid.x + grid.y;"," if (brightness < 0.16) return 0.0;"," if (brightness < 0.33) return mod(slash, 3.0) < 0.5 ? 1.0 : 0.0;"," if (brightness < 0.5) return mod(slash, 2.0) < 0.5 ? 1.0 : 0.0;"," bool diagonalA = mod(slash, 2.0) < 0.5;"," bool diagonalB = mod(backslash, 2.0) < 0.5;"," if (brightness < 0.66) return diagonalA || diagonalB ? 1.0 : 0.0;"," if (brightness < 0.83) return mod(slash, 1.5) < 0.5 || mod(backslash, 1.5) < 0.5 ? 1.0 : 0.2;"," return mod(slash, 1.0) < 0.6 || mod(backslash, 1.0) < 0.6 ? 1.0 : 0.5;","}","vec3 rgbToHsv(vec3 color){"," float maximum = max(max(color.r, color.g), color.b);"," float minimum = min(min(color.r, color.g), color.b);"," float delta = maximum - minimum;"," float hue = 0.0;"," if (delta > 0.00001) {"," if (maximum == color.r) hue = mod((color.g - color.b) / delta, 6.0);"," else if (maximum == color.g) hue = (color.b - color.r) / delta + 2.0;"," else hue = (color.r - color.g) / delta + 4.0;"," hue = fract(hue / 6.0);"," }"," return vec3(hue, maximum > 0.00001 ? delta / maximum : 0.0, maximum);","}","vec3 hsvToRgb(vec3 color){"," vec3 bands = abs(fract(color.xxx + vec3(0.0, 0.6666667, 0.3333333)) * 6.0 - 3.0);"," return color.z * mix(vec3(1.0), clamp(bands - 1.0, 0.0, 1.0), color.y);","}","vec4 sampleAdvancedCurve(float coordinate, float row){",` float position = clamp(coordinate, 0.0, 1.0) * ${vd};`," float lower = floor(position);",` float upper = min(lower + 1.0, ${vd});`,` float y = (row + 0.5) / ${vb};`,` vec4 before = texture2D(u_advanced, vec2((lower + 0.5) / ${Da}, y));`,` vec4 after = texture2D(u_advanced, vec2((upper + 0.5) / ${Da}, y));`," return mix(before, after, position - lower);","}","vec4 advancedConfig(float index){",` return texture2D(u_advanced, vec2((index + 0.5) / ${Da}, ${Sb}));`,"}","vec3 wheelDirection(float hue){"," vec3 direction = hsvToRgb(vec3(fract(hue), 1.0, 1.0));"," direction -= vec3(lumaOf(direction));"," return direction / max(max(max(abs(direction.r), abs(direction.g)), abs(direction.b)), 0.0001);","}","vec3 applyTonalWheels(vec3 color){"," float luma = lumaOf(color);"," float shadows = 1.0 - smoothstep(0.0, 0.6, luma);"," float highlights = smoothstep(0.4, 1.0, luma);"," float midtones = max(0.0, 1.0 - shadows - highlights);"," float total = max(shadows + midtones + highlights, 0.0001);"," vec3 weights = vec3(shadows, midtones, highlights) / total;"," color += wheelDirection(u_shadowWheel.x) * u_shadowWheel.y * weights.x * 0.18;"," color += wheelDirection(u_midtoneWheel.x) * u_midtoneWheel.y * weights.y * 0.18;"," color += wheelDirection(u_highlightWheel.x) * u_highlightWheel.y * weights.z * 0.18;"," color += u_shadowWheel.z * weights.x * 0.25;"," color += u_midtoneWheel.z * weights.y * 0.25;"," color += u_highlightWheel.z * weights.z * 0.25;"," return color;","}","vec3 applyRgbCurves(vec3 color){"," if (u_rgbCurvesEnabled < 0.5) return color;"," vec3 master = vec3("," sampleAdvancedCurve(color.r, 0.0).a,"," sampleAdvancedCurve(color.g, 0.0).a,"," sampleAdvancedCurve(color.b, 0.0).a"," );"," return vec3("," sampleAdvancedCurve(master.r, 0.0).r,"," sampleAdvancedCurve(master.g, 0.0).g,"," sampleAdvancedCurve(master.b, 0.0).b"," );","}","float decodeSigned(float value){ return (value * 255.0 - 128.0) / 127.0; }","vec3 applyHueCurves(vec3 color){"," if (u_hueCurvesEnabled < 0.5) return color;"," vec3 hsv = rgbToHsv(clamp(color, 0.0, 1.0));"," vec3 curves = sampleAdvancedCurve(hsv.x, 1.0).rgb;"," float originalLuma = lumaOf(color);"," hsv.x = fract(hsv.x + decodeSigned(curves.r) * 0.5);"," hsv.y = clamp(hsv.y * max(0.0, 1.0 + decodeSigned(curves.g)), 0.0, 1.0);"," vec3 shifted = hsvToRgb(hsv);"," shifted += vec3(originalLuma - lumaOf(shifted) + decodeSigned(curves.b));"," return shifted;","}","float softRangeMask(float value, float minimum, float maximum, float softness){"," if (value < minimum) {"," if (softness <= 0.0) return 0.0;"," return smoothstep(minimum - softness, minimum, value);"," }"," if (value > maximum) {"," if (softness <= 0.0) return 0.0;"," return 1.0 - smoothstep(maximum, maximum + softness, value);"," }"," return 1.0;","}","float hueRangeMask(float hue, float saturation, vec3 key){"," float distance = abs(fract(hue - key.x + 0.5) - 0.5) * 360.0;"," float range = key.y * 180.0;"," float softness = key.z * 180.0;"," if (range < 179.999 && saturation < 0.001) return 0.0;"," if (distance <= range) return 1.0;"," if (softness <= 0.0) return 0.0;"," return 1.0 - smoothstep(range, range + softness, distance);","}","vec3 applySecondary(vec3 color, float index){"," float base = index * 5.0;"," vec4 hueKey = advancedConfig(base);"," vec4 saturationKey = advancedConfig(base + 1.0);"," vec4 lumaKey = advancedConfig(base + 2.0);"," vec4 correction = advancedConfig(base + 3.0);"," vec4 tintCorrection = advancedConfig(base + 4.0);"," vec3 hsv = rgbToHsv(clamp(color, 0.0, 1.0));"," float luma = lumaOf(color);"," float mask = hueRangeMask(hsv.x, hsv.y, hueKey.rgb);"," mask *= softRangeMask(hsv.y, saturationKey.x, saturationKey.y, saturationKey.z * 0.5);"," mask *= softRangeMask(luma, lumaKey.x, lumaKey.y, lumaKey.z * 0.5);"," if (mask <= 0.0) return color;"," hsv.x = fract(hsv.x + decodeSigned(correction.x) * 0.5);"," vec3 corrected = hsvToRgb(hsv);"," float correctedLuma = lumaOf(corrected);"," corrected = mix(vec3(correctedLuma), corrected, max(0.0, 1.0 + decodeSigned(correction.y)));"," corrected += vec3(decodeSigned(correction.z));"," float temperature = decodeSigned(correction.w);"," float tint = decodeSigned(tintCorrection.x);"," corrected.r += temperature * 0.08 + tint * 0.04;"," corrected.b -= temperature * 0.08 - tint * 0.04;"," corrected.g -= tint * 0.08;"," return mix(color, corrected, mask);","}","vec3 applyAdvancedGrade(vec3 color){"," color = applyTonalWheels(color);"," color = applyRgbCurves(color);"," color = applyHueCurves(color);"," if (u_secondaryCount > 0.5) color = applySecondary(color, 0.0);"," if (u_secondaryCount > 1.5) color = applySecondary(color, 1.0);"," if (u_secondaryCount > 2.5) color = applySecondary(color, 2.0);"," if (u_secondaryCount > 3.5) color = applySecondary(color, 3.0);"," return color;","}","vec3 sampleLut(float r, float g, float b){"," float size = max(u_lutSize, 2.0);"," float x = (r + b * size + 0.5) / max(u_lutTextureSize.x, 1.0);"," float y = (g + 0.5) / max(u_lutTextureSize.y, 1.0);"," return texture2D(u_lut, vec2(x, y)).rgb;","}","vec3 applyLut(vec3 color){"," if (u_lutEnabled < 0.5) return color;"," float size = max(u_lutSize, 2.0);"," vec3 span = max(u_lutDomainMax - u_lutDomainMin, vec3(0.00001));"," vec3 scaled = clamp((color - u_lutDomainMin) / span, 0.0, 1.0) * (size - 1.0);"," vec3 lo = floor(scaled);"," vec3 hi = min(lo + 1.0, vec3(size - 1.0));"," vec3 f = scaled - lo;"," vec3 c000 = sampleLut(lo.r, lo.g, lo.b);"," vec3 c100 = sampleLut(hi.r, lo.g, lo.b);"," vec3 c010 = sampleLut(lo.r, hi.g, lo.b);"," vec3 c110 = sampleLut(hi.r, hi.g, lo.b);"," vec3 c001 = sampleLut(lo.r, lo.g, hi.b);"," vec3 c101 = sampleLut(hi.r, lo.g, hi.b);"," vec3 c011 = sampleLut(lo.r, hi.g, hi.b);"," vec3 c111 = sampleLut(hi.r, hi.g, hi.b);"," vec3 c00 = mix(c000, c100, f.r);"," vec3 c10 = mix(c010, c110, f.r);"," vec3 c01 = mix(c001, c101, f.r);"," vec3 c11 = mix(c011, c111, f.r);"," vec3 c0 = mix(c00, c10, f.g);"," vec3 c1 = mix(c01, c11, f.g);"," vec3 lutColor = mix(c0, c1, f.b);"," return mix(color, lutColor, clamp(u_lutIntensity, 0.0, 1.0));","}","vec3 applyPrimaryGrade(vec3 color){"," color *= pow(2.0, u_exposure);"," float y = lumaOf(color);"," float shadowMask = 1.0 - smoothstep(0.0, 0.65, y);"," float highlightMask = smoothstep(0.35, 1.0, y);"," color += u_shadows * 0.35 * shadowMask;"," color += u_highlights * 0.35 * highlightMask;"," float blackPoint = clamp(u_blacks * 0.18, -0.18, 0.18);"," float whitePoint = clamp(1.0 - u_whites * 0.18, 0.82, 1.18);"," color = (color - blackPoint) / max(whitePoint - blackPoint, 0.2);"," color.r += u_temperature * 0.08 + u_tint * 0.04;"," color.b -= u_temperature * 0.08 - u_tint * 0.04;"," color.g -= u_tint * 0.08;"," color = (color - 0.5) * max(0.0, 1.0 + u_contrast) + 0.5;"," float satLuma = lumaOf(color);"," float currentSat = clamp(colorSaturation(color), 0.0, 1.0);"," float skinLike = smoothstep(0.02, 0.18, color.r - color.g) * smoothstep(0.0, 0.16, color.g - color.b) * smoothstep(0.18, 0.82, satLuma);"," float vibranceWeight = (1.0 - currentSat * 0.72) * mix(1.0, 0.55, skinLike);"," color = mix(vec3(satLuma), color, max(0.0, 1.0 + u_vibrance * vibranceWeight));"," color = mix(vec3(satLuma), color, max(0.0, 1.0 + u_saturation));"," return color;","}","vec3 applyColorGrade(vec3 color){"," color = applyPrimaryGrade(color);"," color = applyAdvancedGrade(color);"," return clamp(applyLut(clamp(color, 0.0, 1.0)), 0.0, 1.0);","}","vec3 applyDither(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float scale = max(min(u_resolution.x, u_resolution.y) / 540.0, 0.25);"," float pixelSize = mix(1.0, 5.0, clamp(u_ditherSize, 0.0, 1.0)) * scale;"," vec2 block = floor(gl_FragCoord.xy / max(pixelSize, 1.0));"," float levels = clamp(u_paletteSize, 2.0, 6.0);"," float index = floor(clamp(lumaOf(source) * (levels - 1.0) + bayer4(block), 0.0, levels - 1.0));"," return mix(source, paletteColor(index), amount);","}","vec2 asciiEdgeDirection(vec2 uv, vec2 stepUv){"," float topLeft = bt601Luma(sampleMedia(uv + vec2(-stepUv.x, -stepUv.y)).rgb);"," float top = bt601Luma(sampleMedia(uv + vec2(0.0, -stepUv.y)).rgb);"," float topRight = bt601Luma(sampleMedia(uv + vec2(stepUv.x, -stepUv.y)).rgb);"," float left = bt601Luma(sampleMedia(uv + vec2(-stepUv.x, 0.0)).rgb);"," float right = bt601Luma(sampleMedia(uv + vec2(stepUv.x, 0.0)).rgb);"," float bottomLeft = bt601Luma(sampleMedia(uv + vec2(-stepUv.x, stepUv.y)).rgb);"," float bottom = bt601Luma(sampleMedia(uv + vec2(0.0, stepUv.y)).rgb);"," float bottomRight = bt601Luma(sampleMedia(uv + stepUv).rgb);"," float x = -topLeft - 2.0 * left - bottomLeft + topRight + 2.0 * right + bottomRight;"," float y = -topLeft - 2.0 * top - topRight + bottomLeft + 2.0 * bottom + bottomRight;"," return vec2(x, y);","}","vec2 rotateAsciiUv(vec2 uv, float angle){"," float cosine = cos(angle);"," float sine = sin(angle);"," vec2 centered = uv - 0.5;"," return vec2(centered.x * cosine - centered.y * sine, centered.x * sine + centered.y * cosine) + 0.5;","}","vec3 applyAscii(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float scale = max(min(u_resolution.x, u_resolution.y) / 540.0, 0.25);"," float cellHeight = mix(4.0, 80.0, clamp(u_asciiSize, 0.0, 1.0)) * scale;"," vec2 cellSize = vec2(cellHeight);"," vec2 cell = floor(gl_FragCoord.xy / cellSize);"," vec2 cellVuv = (cell + 0.5) * cellSize / max(u_resolution, vec2(1.0));"," vec2 cellUv = (cellVuv - u_uvOffset) / u_uvScale;"," cellUv = applyCrtWarp(cellUv);"," vec3 cellColor = applyColorGrade(sampleMedia(cellUv).rgb);"," float brightness = bt601Luma(cellColor);"," float invert = step(0.5, u_asciiInvert);"," brightness = mix(brightness, 1.0 - brightness, invert);"," vec2 glyphUv = fract(gl_FragCoord.xy / cellSize);"," float rotation = clamp(u_asciiRotation, 0.0, 1.0);"," if (rotation > 0.0) {"," vec2 cellStepUv = cellSize / max(u_resolution * u_uvScale, vec2(1.0));"," vec2 edge = asciiEdgeDirection(cellUv, cellStepUv);"," if (length(edge) > 0.1) glyphUv = mix(glyphUv, rotateAsciiUv(glyphUv, atan(edge.y, edge.x)), rotation);"," }"," float ink = asciiStyleSample(floor(u_asciiStyle + 0.5), brightness, glyphUv);"," vec3 background = paletteColor(0.0);"," vec3 inkColor = mix(paletteColor(max(u_paletteSize - 1.0, 1.0)), cellColor, clamp(u_asciiColor, 0.0, 1.0));"," vec3 asciiColor = mix(background, inkColor, ink);"," return mix(source, asciiColor, amount);","}","vec3 applyScanlines(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float count = mix(50.0, 500.0, clamp(u_scanlineCount, 0.0, 1.0));"," float softness = clamp(u_scanlineSoftness, 0.0, 1.0);"," float wave = 0.5 + 0.5 * sin(v_uv.y * count * PI);"," float line = mix(1.0 - wave, pow(1.0 - wave, 2.2), softness);"," return source * (1.0 - line * amount);","}","void main(){"," vec2 uv = (v_uv - u_uvOffset) / u_uvScale;"," if (uv.x < 0.0 || uv.y < 0.0 || uv.x > 1.0 || uv.y > 1.0) {"," gl_FragColor = vec4(0.0);"," return;"," }"," vec4 originalSample = sampleSource(uv);"," uv = applyCrtWarp(uv);"," vec2 displayEdge = smoothstep(vec2(0.0), vec2(0.006), uv) * (1.0 - smoothstep(vec2(0.994), vec2(1.0), uv));"," float displayMask = displayEdge.x * displayEdge.y;"," vec4 sampleColor = sampleMedia(uv);"," sampleColor = sampleChromaticMedia(uv, sampleColor);"," sampleColor.rgb = applyDigitalGlitch(uv, sampleColor.rgb);"," vec3 original = originalSample.rgb;"," vec3 color = mix(sampleColor.rgb, applyColorGrade(sampleColor.rgb), u_intensity);"," float grainAmount = clamp(u_grain, 0.0, 1.0);"," if (grainAmount > 0.0) {"," float grainPixelSize = mix(1.0, 6.0, clamp(u_grainSize, 0.0, 1.0));"," vec2 grainCoord = floor(gl_FragCoord.xy / grainPixelSize) + vec2(u_grainSeed, u_grainSeed * 1.37);"," float grainBase = grainHash(grainCoord) - grainHash(grainCoord + vec2(19.19, 73.31));"," float grainFine = grainHash(gl_FragCoord.xy + vec2(u_grainSeed * 2.11, u_grainSeed * 0.71)) - 0.5;"," float grain = mix(grainBase * 0.7, grainBase + grainFine * 0.35, clamp(u_grainRoughness, 0.0, 1.0));"," float grainLuma = lumaOf(color);"," float grainMask = smoothstep(0.02, 0.55, grainLuma) * (1.0 - smoothstep(0.88, 1.0, grainLuma));"," color += grain * grainAmount * mix(0.025, 0.08, grainMask);"," }"," float filmArtifacts = clamp(u_filmArtifacts, 0.0, 1.0);"," if (filmArtifacts > 0.0) {"," float filmFrame = floor(u_grainSeed);"," float dust = dustMask(v_uv, floor(filmFrame / 3.0));"," float dustTone = grainHash(vec2(floor(filmFrame / 3.0), 8.0));"," color = mix(color, vec3(dustTone > 0.5 ? 0.95 : 0.02), dust * 0.72 * filmArtifacts);"," float scratchBucket = floor(filmFrame / 12.0);"," float scratchX = grainHash(vec2(scratchBucket, 4.2));"," float scratchLife = step(0.78, grainHash(vec2(scratchBucket, 8.4)));"," float scratch = (1.0 - smoothstep(0.0, 1.4 / max(u_resolution.x, 1.0), abs(v_uv.x - scratchX))) * scratchLife;"," color = mix(color, vec3(0.94, 0.88, 0.76), scratch * 0.28 * filmArtifacts);"," }"," color = applyMonoScreen(clamp(color, 0.0, 1.0), clamp(u_monoScreen, 0.0, 1.0));"," color = applyEngraving(clamp(color, 0.0, 1.0), clamp(u_engraving, 0.0, 1.0));"," color = applyCrosshatch(uv, clamp(color, 0.0, 1.0), clamp(u_crosshatch, 0.0, 1.0));"," color = applyHalftone(clamp(color, 0.0, 1.0), clamp(u_halftone, 0.0, 1.0));"," color = applyTwoInkPrint(clamp(color, 0.0, 1.0), clamp(u_twoInkPrint, 0.0, 1.0));"," color = applyDither(clamp(color, 0.0, 1.0), clamp(u_dither, 0.0, 1.0));"," color = applyAscii(clamp(color, 0.0, 1.0), clamp(u_ascii, 0.0, 1.0));"," if (u_bloomReady > 0.5 && u_bloom > 0.0) color += sampleBloom(uv) * u_bloom;"," color = applyScanlines(clamp(color, 0.0, 1.0), clamp(u_scanlines, 0.0, 1.0));"," vec2 vignetteAspect = u_resolution.x > u_resolution.y"," ? vec2(u_resolution.x / max(u_resolution.y, 1.0), 1.0)"," : vec2(1.0, u_resolution.y / max(u_resolution.x, 1.0));"," vec2 vignetteUv = abs((v_uv - vec2(0.5)) * 2.0) * vignetteAspect;"," float vignettePower = mix(8.0, 1.8, clamp(u_vignetteRoundness * 0.5 + 0.5, 0.0, 1.0));"," float vignetteDistance = pow(pow(vignetteUv.x, vignettePower) + pow(vignetteUv.y, vignettePower), 1.0 / vignettePower);"," float vignetteMidpoint = mix(0.22, 1.08, clamp(u_vignetteMidpoint, 0.0, 1.0));"," float vignetteFeather = mix(0.08, 0.72, clamp(u_vignetteFeather, 0.0, 1.0));"," float vignetteMask = smoothstep(vignetteMidpoint, vignetteMidpoint + vignetteFeather, vignetteDistance);"," color *= 1.0 - vignetteMask * clamp(u_vignette, 0.0, 1.0) * 0.75;"," float warpActive = step(0.0001, u_crtCurvature);"," color *= mix(1.0, displayMask, warpActive);"," vec3 graded = clamp(color, 0.0, 1.0);"," if (u_compareEnabled > 0.5) {"," float pos = clamp(u_comparePosition, 0.0, 1.0);"," float softness = max(u_compareSoftness, 0.00001);"," float afterMask = smoothstep(pos - softness, pos + softness, v_uv.x);"," vec3 splitColor = mix(original, graded, afterMask);"," float lineMask = 0.0;"," if (u_compareLineWidth > 0.0) {"," float lineWidth = max(u_compareLineWidth / max(u_resolution.x, 1.0), 0.00001);"," lineMask = 1.0 - smoothstep(lineWidth, lineWidth * 1.8, abs(v_uv.x - pos));"," }"," gl_FragColor = vec4(mix(splitColor, vec3(1.0), lineMask * 0.82), sampleColor.a);"," return;"," }"," gl_FragColor = vec4(graded, sampleColor.a);","}"].join(`\n`),wb=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_source;","uniform vec2 u_resolution;","uniform vec2 u_direction;","uniform float u_radius;","uniform float u_bloomPass;","uniform float u_threshold;","vec4 readSource(vec2 uv){"," vec4 color = texture2D(u_source, clamp(uv, vec2(0.0), vec2(1.0)));"," if (u_bloomPass > 0.5) {"," float luminance = dot(color.rgb, vec3(0.299, 0.587, 0.114));"," if (u_threshold >= 0.0 && luminance <= u_threshold) color.rgb = vec3(0.0);"," return vec4(color.rgb, 1.0);"," }"," color.rgb *= color.a;"," return color;","}","void main(){"," if (u_bloomPass > 0.5) {"," vec2 stepUv = u_direction * max(u_radius, 0.0) / max(u_resolution, vec2(1.0)) * 0.5;"," vec4 bloom = readSource(v_uv) * 0.227027;"," bloom += readSource(v_uv + stepUv) * 0.1945946;"," bloom += readSource(v_uv - stepUv) * 0.1945946;"," bloom += readSource(v_uv + stepUv * 2.0) * 0.1216216;"," bloom += readSource(v_uv - stepUv * 2.0) * 0.1216216;"," bloom += readSource(v_uv + stepUv * 3.0) * 0.054054;"," bloom += readSource(v_uv - stepUv * 3.0) * 0.054054;"," bloom += readSource(v_uv + stepUv * 4.0) * 0.016216;"," bloom += readSource(v_uv - stepUv * 4.0) * 0.016216;"," gl_FragColor = bloom;"," return;"," }"," vec2 stepUv = u_direction * max(u_radius, 0.0) / max(u_resolution, vec2(1.0)) / 12.0;"," vec4 color = readSource(v_uv) * 0.08077993;"," color += readSource(v_uv + stepUv * 1.0) * 0.07918038;"," color += readSource(v_uv - stepUv * 1.0) * 0.07918038;"," color += readSource(v_uv + stepUv * 2.0) * 0.07456928;"," color += readSource(v_uv - stepUv * 2.0) * 0.07456928;"," color += readSource(v_uv + stepUv * 3.0) * 0.06747307;"," color += readSource(v_uv - stepUv * 3.0) * 0.06747307;"," color += readSource(v_uv + stepUv * 4.0) * 0.05865827;"," color += readSource(v_uv - stepUv * 4.0) * 0.05865827;"," color += readSource(v_uv + stepUv * 5.0) * 0.04899551;"," color += readSource(v_uv - stepUv * 5.0) * 0.04899551;"," color += readSource(v_uv + stepUv * 6.0) * 0.03931982;"," color += readSource(v_uv - stepUv * 6.0) * 0.03931982;"," color += readSource(v_uv + stepUv * 7.0) * 0.03031761;"," color += readSource(v_uv - stepUv * 7.0) * 0.03031761;"," color += readSource(v_uv + stepUv * 8.0) * 0.02245983;"," color += readSource(v_uv - stepUv * 8.0) * 0.02245983;"," color += readSource(v_uv + stepUv * 9.0) * 0.01598624;"," color += readSource(v_uv - stepUv * 9.0) * 0.01598624;"," color += readSource(v_uv + stepUv * 10.0) * 0.01093238;"," color += readSource(v_uv - stepUv * 10.0) * 0.01093238;"," color += readSource(v_uv + stepUv * 11.0) * 0.00718308;"," color += readSource(v_uv - stepUv * 11.0) * 0.00718308;"," color += readSource(v_uv + stepUv * 12.0) * 0.00453456;"," color += readSource(v_uv - stepUv * 12.0) * 0.00453456;"," if (color.a > 0.0001) color.rgb /= color.a;"," gl_FragColor = color;","}"].join(`\n`),Cb=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_source;","uniform sampler2D u_blurSource;","uniform vec2 u_texel;","uniform vec2 u_uvScale;","uniform vec2 u_uvOffset;","uniform float u_blurReady;","uniform float u_blur;","uniform float u_kuwaharaRadius;","vec3 readPrepared(vec2 displayUv){"," vec2 uv = (displayUv - u_uvOffset) / u_uvScale;"," vec3 color = texture2D(u_source, clamp(uv, vec2(0.0), vec2(1.0))).rgb;"," if (u_blurReady > 0.5 && u_blur > 0.0) {"," vec3 blurred = texture2D(u_blurSource, clamp(uv, vec2(0.0), vec2(1.0))).rgb;"," color = mix(color, blurred, clamp(u_blur, 0.0, 1.0));"," }"," return color;","}","void main(){"," float radius = floor(mix(2.0, 16.0, clamp(u_kuwaharaRadius, 0.0, 1.0)) + 0.5);"," vec3 sum = vec3(0.0);"," float sumSquares = 0.0;"," float count = 0.0;"," for (int offset = 0; offset <= 16; offset++) {"," if (float(offset) > radius) continue;"," vec3 color = readPrepared(v_uv + vec2(float(offset), 0.0) * u_texel);"," sum += color;"," sumSquares += dot(color, color) / 3.0;"," count += 1.0;"," }"," gl_FragColor = vec4(sum / count, sumSquares / count);","}"].join(`\n`),_b=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_kuwaharaMoments;","uniform vec2 u_texel;","uniform float u_kuwaharaRadius;","uniform float u_kuwaharaSharpness;","uniform float u_kuwaharaSaturation;","void main(){"," float radius = floor(mix(2.0, 16.0, clamp(u_kuwaharaRadius, 0.0, 1.0)) + 0.5);"," vec2 origins[4];"," origins[0] = vec2(-radius, -radius);"," origins[1] = vec2(0.0, -radius);"," origins[2] = vec2(-radius, 0.0);"," origins[3] = vec2(0.0, 0.0);"," vec3 means[4];"," float variances[4];"," float minVariance = 1.0;"," for (int quadrant = 0; quadrant < 4; quadrant++) {"," vec4 moment = vec4(0.0);"," float count = 0.0;"," for (int offset = 0; offset <= 16; offset++) {"," if (float(offset) > radius) continue;"," vec2 sampleOffset = origins[quadrant] + vec2(0.0, float(offset));"," moment += texture2D(u_kuwaharaMoments, clamp(v_uv + sampleOffset * u_texel, vec2(0.0), vec2(1.0)));"," count += 1.0;"," }"," moment /= count;"," vec3 mean = moment.rgb;"," float meanSquare = moment.a * 3.0;"," float variance = max(meanSquare - dot(mean, mean), 0.0);"," means[quadrant] = mean;"," variances[quadrant] = variance;"," minVariance = min(minVariance, variance);"," }"," float exponent = 1.0 + clamp(u_kuwaharaSharpness, 0.0, 1.0) * 8.0;"," vec3 result = vec3(0.0);"," float totalWeight = 0.0;"," for (int quadrant = 0; quadrant < 4; quadrant++) {"," float weight = pow((minVariance + 0.0001) / (variances[quadrant] + 0.0001), exponent);"," result += means[quadrant] * weight;"," totalWeight += weight;"," }"," result /= max(totalWeight, 0.0001);"," float luma = dot(result, vec3(0.2126, 0.7152, 0.0722));"," float saturation = clamp(u_kuwaharaSaturation, 0.0, 1.0) * 2.0;"," gl_FragColor = vec4(clamp(mix(vec3(luma), result, saturation), 0.0, 1.0), 1.0);","}"].join(`\n`);function Lt(e){return e instanceof HTMLVideoElement||e instanceof HTMLImageElement}function Sd(e){let t=window.getComputedStyle(e);return t.display!=="none"&&t.visibility!=="hidden"}function Ad(e,t,n){let r=e.createShader(n);return r?(e.shaderSource(r,t),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)?r:(L("runtime.colorGrading.compileShader",e.getShaderInfoLog(r)),e.deleteShader(r),null)):null}function xi(e,t=Eb){let n=Ad(e,Ab,e.VERTEX_SHADER),r=Ad(e,t,e.FRAGMENT_SHADER);if(!n||!r)return n&&e.deleteShader(n),r&&e.deleteShader(r),null;let i=e.createProgram();return i?(e.attachShader(i,n),e.attachShader(i,r),e.linkProgram(i),e.deleteShader(n),e.deleteShader(r),e.getProgramParameter(i,e.LINK_STATUS)?i:(L("runtime.colorGrading.linkProgram",e.getProgramInfoLog(i)),e.deleteProgram(i),null)):null}function pi(e,t=e.LINEAR,n=e.UNSIGNED_BYTE){let r=e.createTexture();return r?(e.bindTexture(e.TEXTURE_2D,r),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,t),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,1,1,0,e.RGBA,n,null),r):null}function Tb(e,t){let n=xi(e,wb);return n?{program:n,quad:t,position:e.getAttribLocation(n,"a_pos"),source:e.getUniformLocation(n,"u_source"),resolution:e.getUniformLocation(n,"u_resolution"),direction:e.getUniformLocation(n,"u_direction"),radius:e.getUniformLocation(n,"u_radius"),bloomPass:e.getUniformLocation(n,"u_bloomPass"),threshold:e.getUniformLocation(n,"u_threshold")}:null}function Rb(e,t){let n=xi(e,Cb);return n?{program:n,quad:t,position:e.getAttribLocation(n,"a_pos"),source:e.getUniformLocation(n,"u_source"),blurSource:e.getUniformLocation(n,"u_blurSource"),texel:e.getUniformLocation(n,"u_texel"),uvScale:e.getUniformLocation(n,"u_uvScale"),uvOffset:e.getUniformLocation(n,"u_uvOffset"),blurReady:e.getUniformLocation(n,"u_blurReady"),blur:e.getUniformLocation(n,"u_blur"),radius:e.getUniformLocation(n,"u_kuwaharaRadius")}:null}function kb(e,t){let n=xi(e,_b);return n?{program:n,quad:t,position:e.getAttribLocation(n,"a_pos"),moments:e.getUniformLocation(n,"u_kuwaharaMoments"),texel:e.getUniformLocation(n,"u_texel"),radius:e.getUniformLocation(n,"u_kuwaharaRadius"),sharpness:e.getUniformLocation(n,"u_kuwaharaSharpness"),saturation:e.getUniformLocation(n,"u_kuwaharaSaturation")}:null}function ir(e,t=e.UNSIGNED_BYTE,n=e.LINEAR){let r=pi(e,n,t),i=e.createFramebuffer();if(!r||!i)return r&&e.deleteTexture(r),i&&e.deleteFramebuffer(i),null;e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0);let o=e.checkFramebufferStatus(e.FRAMEBUFFER);return e.bindFramebuffer(e.FRAMEBUFFER,null),o!==e.FRAMEBUFFER_COMPLETE?(e.deleteTexture(r),e.deleteFramebuffer(i),null):{texture:r,framebuffer:i,type:t,width:1,height:1}}function gi(e,t,n,r){t.width===n&&t.height===r||(t.width=n,t.height=r,e.bindTexture(e.TEXTURE_2D,t.texture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n,r,0,e.RGBA,t.type,null))}function Ia(e,t,n){let r=[];for(let i of n){let o=e.getUniformLocation(t,`u_${i}`);o!==null&&r.push([i,o])}return r}function Ed(e,t,n){t&&e.deleteProgram(t);for(let r of n)r&&e.deleteTexture(r)}function Ga(e){let t=e.getContext("webgl",{alpha:!0,premultipliedAlpha:!1});if(!t)return null;let n=xi(t),r=pi(t),i=pi(t,t.NEAREST),o=pi(t,t.NEAREST);if(!n||!r||!i||!o)return Ed(t,n,[r,i,o]),null;let a=t.createBuffer();return a?(t.bindBuffer(t.ARRAY_BUFFER,a),t.bufferData(t.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),t.STATIC_DRAW),{gl:t,program:{program:n,texture:r,lutTexture:i,advancedTexture:o,advancedSignature:null,quad:a,position:t.getAttribLocation(n,"a_pos"),source:t.getUniformLocation(n,"u_source"),blurSource:t.getUniformLocation(n,"u_blurSource"),bloomSource:t.getUniformLocation(n,"u_bloomSource"),kuwaharaSource:t.getUniformLocation(n,"u_kuwaharaSource"),lut:t.getUniformLocation(n,"u_lut"),advanced:t.getUniformLocation(n,"u_advanced"),resolution:t.getUniformLocation(n,"u_resolution"),uvScale:t.getUniformLocation(n,"u_uvScale"),uvOffset:t.getUniformLocation(n,"u_uvOffset"),blurReady:t.getUniformLocation(n,"u_blurReady"),bloomReady:t.getUniformLocation(n,"u_bloomReady"),kuwaharaReady:t.getUniformLocation(n,"u_kuwaharaReady"),lutEnabled:t.getUniformLocation(n,"u_lutEnabled"),lutSize:t.getUniformLocation(n,"u_lutSize"),lutTextureSize:t.getUniformLocation(n,"u_lutTextureSize"),lutDomainMin:t.getUniformLocation(n,"u_lutDomainMin"),lutDomainMax:t.getUniformLocation(n,"u_lutDomainMax"),lutIntensity:t.getUniformLocation(n,"u_lutIntensity"),shadowWheel:t.getUniformLocation(n,"u_shadowWheel"),midtoneWheel:t.getUniformLocation(n,"u_midtoneWheel"),highlightWheel:t.getUniformLocation(n,"u_highlightWheel"),rgbCurvesEnabled:t.getUniformLocation(n,"u_rgbCurvesEnabled"),hueCurvesEnabled:t.getUniformLocation(n,"u_hueCurvesEnabled"),secondaryCount:t.getUniformLocation(n,"u_secondaryCount"),adjustUniforms:Ia(t,n,zr),detailUniforms:Ia(t,n,No),effectUniforms:Ia(t,n,Lo),grainSeed:t.getUniformLocation(n,"u_grainSeed"),effectTime:t.getUniformLocation(n,"u_effectTime"),paletteSize:t.getUniformLocation(n,"u_paletteSize"),palette0:t.getUniformLocation(n,"u_palette0"),palette1:t.getUniformLocation(n,"u_palette1"),palette2:t.getUniformLocation(n,"u_palette2"),palette3:t.getUniformLocation(n,"u_palette3"),palette4:t.getUniformLocation(n,"u_palette4"),palette5:t.getUniformLocation(n,"u_palette5"),intensity:t.getUniformLocation(n,"u_intensity"),compareEnabled:t.getUniformLocation(n,"u_compareEnabled"),comparePosition:t.getUniformLocation(n,"u_comparePosition"),compareSoftness:t.getUniformLocation(n,"u_compareSoftness"),compareLineWidth:t.getUniformLocation(n,"u_compareLineWidth")}}):(Ed(t,n,[r,i,o]),null)}function Mb(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Fb(e){if(!Mb(e))return{...rn};let t=(n,r,i,o)=>{let a=typeof n=="number"?n:Number(n);return Math.min(o,Math.max(i,Number.isFinite(a)?a:r))};return{enabled:e.enabled===!0,position:t(e.position,rn.position,0,1),softness:t(e.softness,rn.softness,0,.25),lineWidth:t(e.lineWidth,rn.lineWidth,0,12)}}function Fd(e){try{let t=new URL(e,document.baseURI);return t.protocol==="data:"?{href:t.href}:t.protocol!=="http:"&&t.protocol!=="https:"?{error:"LUT must be project-local or a data URL"}:t.origin!==window.location.origin?{error:"Remote LUT URLs are not supported"}:{href:t.href}}catch{return{error:"Invalid LUT URL"}}}function yi(e){return e instanceof Error?e.message:"LUT failed to load"}function Nb(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0)%1e4}function Nd(e){let t=e.id||e.currentSrc||e.getAttribute("src")||`${e.tagName}:${Array.prototype.indexOf.call(e.parentNode?.children??[],e)}`;return Nb(t)}function Ba(e){let t=Fd(e);if("error"in t)return{state:"error",message:t.error};let n=it.get(t.href);if(n)return n;let r=fetch(t.href,{credentials:"same-origin"}).then(o=>{if(!o.ok)throw new Error(`Failed to load LUT (${o.status})`);return o.text()}).then(o=>Ul(o,{maxSize:Br})),i={state:"pending",promise:r};for(;it.size>=hb;){let o=it.keys().next().value;if(!o)break;it.delete(o)}return it.set(t.href,i),r.then(o=>{it.get(t.href)===i&&it.set(t.href,{state:"ready",lut:o})},o=>{it.get(t.href)===i&&it.set(t.href,{state:"error",message:yi(o)})}),i}function wd(e,t,n){if(e.lut?.src===t)return e.lut;let r=Eo(n),{gl:i,program:o}=e;try{return Ld(i,o.lutTexture,r),e.lut={src:t,size:n.size,domainMin:n.domainMin,domainMax:n.domainMax,textureWidth:r.width,textureHeight:r.height},e.lutError=null,e.lutLoadingSrc=null,e.lut}catch(a){return e.lut=null,e.lutError=yi(a),e.lutLoadingSrc=null,L("runtime.colorGrading.uploadLut",a),null}}async function Lb(e){let t=Ba(e);if(t.state==="ready")return t.lut;if(t.state==="pending")return t.promise;throw new Error(t.message)}function Ld(e,t,n){e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,t),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)}function Db(e,t,n){let r=Eo(n),{gl:i,program:o}=e;return Ld(i,o.lutTexture,r),{src:t,size:n.size,domainMin:n.domainMin,domainMax:n.domainMax,textureWidth:r.width,textureHeight:r.height}}function Je(e,t){e.deleteTexture(t.texture),e.deleteFramebuffer(t.framebuffer)}function Ua(e){let t=e.effectTargets;t&&(e.gl.deleteProgram(t.blurProgram.program),Je(e.gl,t.scratch),Je(e.gl,t.blur),t.bloom&&Je(e.gl,t.bloom),e.effectTargets=null)}function Wa(e){let t=e.kuwaharaTargets;t&&(e.gl.deleteProgram(t.horizontalProgram.program),e.gl.deleteProgram(t.resolveProgram.program),Je(e.gl,t.moments),Je(e.gl,t.output),e.kuwaharaTargets=null)}function hi(e,t=!1){Ua(e),Wa(e),Ib(e.gl,e.program),t&&e.gl.getExtension("WEBGL_lose_context")?.loseContext()}function Ib(e,t){e.deleteTexture(t.texture),e.deleteTexture(t.lutTexture),e.deleteTexture(t.advancedTexture),e.deleteBuffer(t.quad),e.deleteProgram(t.program)}function Pb(e){let t=Ga(e.canvas);return t?(hi(e),e.gl=t.gl,e.program=t.program,e.lut=null,e.lutLoadingSrc=null,e.lutError=null,e.effectError=null,!0):!1}function Ha(e){if(!e.sourceHidden)return;e.element.removeAttribute(Nn);let t=e.element.style.getPropertyValue("opacity"),n=e.element.style.getPropertyPriority("opacity");t==="0"&&n==="important"&&(e.sourceInlineOpacity===null?e.element.style.removeProperty("opacity"):e.element.style.setProperty("opacity",e.sourceInlineOpacity,e.sourceInlineOpacityPriority)),e.sourceHidden=!1}function Ob(e){if(e.effectTargets)return e.effectTargets;let{gl:t}=e,n=Tb(t,e.program.quad),r=ir(t),i=ir(t);return!n||!r||!i?(n&&t.deleteProgram(n.program),r&&Je(t,r),i&&Je(t,i),e.effectError="Framebuffer effects unavailable",null):(e.effectError=null,e.effectTargets={blurProgram:n,scratch:r,blur:i,bloom:null},e.effectTargets)}function Hb(e,t){return t.bloom||(t.bloom=ir(e.gl),e.effectError=t.bloom?null:"Framebuffer effects unavailable"),t.bloom}function Cd(e){let t=e.effectTargets;t?.bloom&&(Je(e.gl,t.bloom),t.bloom=null)}function Gb(e){if(e.kuwaharaTargets)return e.kuwaharaTargets;let{gl:t}=e,n=t.getExtension("OES_texture_half_float"),r=t.getExtension("EXT_color_buffer_half_float");if(!n||!r)return e.effectError="Kuwahara requires half-float framebuffer support",null;let i=Rb(t,e.program.quad),o=kb(t,e.program.quad),a=ir(t,n.HALF_FLOAT_OES,t.NEAREST),l=ir(t);return!i||!o||!a||!l?(Bb(t,i,o,a,l),e.effectError="Kuwahara framebuffer effects unavailable",null):(e.kuwaharaTargets={horizontalProgram:i,resolveProgram:o,moments:a,output:l},e.kuwaharaTargets)}function Bb(e,t,n,r,i){t&&e.deleteProgram(t.program),n&&e.deleteProgram(n.program),r&&Je(e,r),i&&Je(e,i)}function Dd(e,t,n,r,i){let o=Math.max(1,Math.ceil(r)),a=Math.max(1,Math.ceil(i));return gi(e,t,o,a),gi(e,n,o,a),{width:o,height:a}}function bi(e,t,n,r,i,o,a,l=!1,s=-1){e.bindFramebuffer(e.FRAMEBUFFER,r.framebuffer),e.viewport(0,0,i.width,i.height),e.useProgram(t.program),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,n),e.uniform1i(t.source,0),e.uniform2f(t.resolution,i.width,i.height),e.uniform2f(t.direction,o.x,o.y),e.uniform1f(t.radius,a),e.uniform1f(t.bloomPass,l?1:0),e.uniform1f(t.threshold,s),or(e,t)}function Ub(e,t,n,r,i,o,a){let l=Dd(e,t.scratch,r,i/2,o/2),s=a/2;bi(e,t.blurProgram,n,t.scratch,l,{x:1,y:0},s,!0,.5),bi(e,t.blurProgram,t.scratch.texture,r,l,{x:0,y:1},s,!0)}function Wb(e,t,n,r,i,o,a){let l=n;for(let s=0;s<Math.max(1,Math.floor(a));s++)bi(e,t.blurProgram,l,t.scratch,i,{x:1,y:0},o),bi(e,t.blurProgram,t.scratch.texture,r,i,{x:0,y:1},o),l=r.texture}function or(e,t){e.bindBuffer(e.ARRAY_BUFFER,t.quad),e.enableVertexAttribArray(t.position),e.vertexAttribPointer(t.position,2,e.FLOAT,!1,0,0),e.drawArrays(e.TRIANGLE_STRIP,0,4)}function Vb(e,t,n,r,i,o,a,l){gi(e,t.moments,i.width,i.height),gi(e,t.output,i.width,i.height);let s=t.horizontalProgram;e.bindFramebuffer(e.FRAMEBUFFER,t.moments.framebuffer),e.viewport(0,0,i.width,i.height),e.useProgram(s.program),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,n),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,r),e.uniform1i(s.source,0),e.uniform1i(s.blurSource,1),e.uniform2f(s.texel,1/i.width,1/i.height),e.uniform2f(s.uvScale,o.scaleX,o.scaleY),e.uniform2f(s.uvOffset,o.offsetX,o.offsetY),e.uniform1f(s.blurReady,a?1:0),e.uniform1f(s.blur,l.blur),e.uniform1f(s.radius,l.kuwaharaRadius),or(e,s);let u=t.resolveProgram;e.bindFramebuffer(e.FRAMEBUFFER,t.output.framebuffer),e.useProgram(u.program),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,t.moments.texture),e.uniform1i(u.moments,0),e.uniform2f(u.texel,1/i.width,1/i.height),e.uniform1f(u.radius,l.kuwaharaRadius),e.uniform1f(u.sharpness,l.kuwaharaSharpness),e.uniform1f(u.saturation,l.kuwaharaSaturation),or(e,u)}function zb(e,t,n,r){if(n<=0)return!1;let i=Dd(e.gl,t.scratch,t.blur,r.width,r.height);return Wb(e.gl,t,e.program.texture,t.blur,i,.75+Math.pow(n,1.35)*32,n>.55?3:2),!0}function qb(e,t,n,r,i,o){if(n<=0)return Cd(e),null;o||Cd(e);let a=o?Hb(e,t):t.blur;return a?(Ub(e.gl,t,e.program.texture,a,i.width,i.height,r),a.texture):null}function $b(e,t,n,r){let{program:i}=e,o=t.effects.blur,a=t.effects.bloom;if(o<=0&&a<=0)return e.effectTargets&&r&&Ua(e),{blurReady:!1,bloomReady:!1,blurTexture:i.texture,bloomTexture:i.texture};let l=Ob(e);if(!l)return{blurReady:!1,bloomReady:!1,blurTexture:i.texture,bloomTexture:i.texture};let s=zb(e,l,o,n),u=qb(e,l,a,t.effects.bloomRadius,n,s);return{blurReady:s,bloomReady:u!==null,blurTexture:l.blur.texture,bloomTexture:u??i.texture}}function jb(e,t,n,r,i,o,a){let l=t.effects.kuwahara;if(l<=0&&!o)return e.kuwaharaTargets&&a&&Wa(e),{kuwaharaReady:!1,kuwaharaTexture:e.program.texture};let s=Gb(e);return!s||l<=0?{kuwaharaReady:!1,kuwaharaTexture:s?.output.texture??e.program.texture}:(Vb(e.gl,s,e.program.texture,e.effectTargets?.blur.texture??e.program.texture,n,r,i,t.effects),{kuwaharaReady:!0,kuwaharaTexture:s.output.texture})}function Id(e,t,n,r,i={}){let o=i.releaseIdleTargets??!0;e.effectError=null;let a=$b(e,t,n,o),l=jb(e,t,n,r,a.blurReady,i.preserveKuwahara??!1,o);return{...a,...l}}function Kb(e){let t=e.grading.lut?.src.trim()??"",n=e.grading.lut?.intensity??1;if(!t||n<=0)return e.lut=null,e.lutLoadingSrc=null,e.lutError=null,null;let r=Fd(t);if("error"in r)return e.lut=null,e.lutLoadingSrc=null,e.lutError=r.error,null;if(e.lut?.src===r.href)return e.lut;e.lut=null;let i=Ba(t);return i.state==="ready"?wd(e,r.href,i.lut):i.state==="error"?(e.lutError=i.message,e.lutLoadingSrc=null,null):(e.lutLoadingSrc!==r.href&&(e.lutLoadingSrc=r.href,e.lutError=null,i.promise.then(o=>{e.destroyed||e.grading.lut?.src.trim()!==t||(wd(e,r.href,o),De(e))},o=>{e.destroyed||e.grading.lut?.src.trim()!==t||(e.lut=null,e.lutError=yi(o),e.lutLoadingSrc=null,De(e))})),null)}function nr(e){if(!e)return null;if(typeof e=="string"){let t=e.trim();if(!t)return null;let n=document.getElementById(t.replace(/^#/,""));if(n&&Lt(n))return n;try{let r=document.querySelector(t);return r&&Lt(r)?r:null}catch{return null}}if(e.hfId){let t=document.querySelector(`[data-hf-id="${CSS.escape(e.hfId)}"]`);if(t&&Lt(t))return t}if(e.id){let t=document.getElementById(e.id);if(t&&Lt(t))return t}if(!e.selector)return null;try{let t=Array.from(document.querySelectorAll(e.selector)),n=Math.max(0,Math.floor(Number(e.selectorIndex??0)||0)),r=t[n]??null;return r&&Lt(r)?r:null}catch{return null}}function Pd(e){return e instanceof HTMLVideoElement?e.videoWidth>0&&e.videoHeight>0?{width:e.videoWidth,height:e.videoHeight}:null:e instanceof HTMLImageElement&&e.naturalWidth>0&&e.naturalHeight>0?{width:e.naturalWidth,height:e.naturalHeight}:null}function Od(e){return e instanceof HTMLVideoElement?e.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&e.videoWidth>0&&e.videoHeight>0:e instanceof HTMLImageElement?e.complete&&e.naturalWidth>0&&e.naturalHeight>0:!1}function Hd(e){let t=ut(e);return t&&Od(t)?t:null}function _d(e){if(!(e instanceof HTMLVideoElement))return!1;let t=Hd(e);if(!t)return!1;let n=window.getComputedStyle(t);return n.display!=="none"&&n.visibility!=="hidden"}function Yb(e){return e instanceof HTMLImageElement&&e.classList.contains("__render_frame__")}function Xb(e,t){t.parentNode&&t.nextSibling!==e.canvas&&t.parentNode.insertBefore(e.canvas,t.nextSibling)}function Gd(e){if(e instanceof HTMLVideoElement){let t=Hd(e);if(t)return t}return Od(e)?e:null}function Td(e,t){let n=e.toLowerCase();if(n==="center")return .5;if(t==="x"){if(n==="left")return 0;if(n==="right")return 1}else{if(n==="top")return 0;if(n==="bottom")return 1}if(n.endsWith("%")){let r=Number.parseFloat(n);return Number.isFinite(r)?r/100:null}return null}function Jb(e){let t=e.trim().split(/\\s+/).filter(Boolean),n=.5,r=.5;for(let i=0;i<t.length;i++){let o=t[i]??"",a=Td(o,"x"),l=Td(o,"y");if(a!==null&&(o==="left"||o==="right"||o.endsWith("%")&&i===0)){n=a;continue}if(l!==null&&(o==="top"||o==="bottom"||o.endsWith("%")&&i>0)){r=l;continue}}return{x:n,y:r}}function Bd(e,t,n,r,i,o){if(e<=0||t<=0||n<=0||r<=0)return{scaleX:1,scaleY:1,offsetX:0,offsetY:0};let a=i||"fill",l=e,s=t;if(a==="contain"||a==="cover"||a==="scale-down"){let f=a==="cover"?Math.max(e/n,t/r):Math.min(e/n,t/r);l=n*f,s=r*f,a==="scale-down"&&l>n&&s>r&&(l=n,s=r)}else a==="none"&&(l=n,s=r);let u=Jb(o||"center"),c=(e-l)*u.x/e,m=(t-s)*u.y/t;return{scaleX:l/e,scaleY:s/t,offsetX:c,offsetY:m}}function Qb(e,t){window.getComputedStyle(t).position==="static"&&(e.touchedParent||(e.touchedParent=t,e.parentInlinePosition=t.style.position||null),t.style.position="relative")}function Rd(e,t){return Math.max(0,Math.round(e>0?e:t))}function Zb(e,t){let{element:n,canvas:r}=e,i=n.parentElement;i&&Qb(e,i);let o=window.getComputedStyle(t);mu(r.style,o),r.style.pointerEvents="none",r.style.position="absolute",r.style.inset="auto",r.style.left=`${n.offsetLeft}px`,r.style.top=`${n.offsetTop}px`,r.style.right="auto",r.style.bottom="auto",r.style.width=`${n.offsetWidth}px`,r.style.height=`${n.offsetHeight}px`,r.style.display="block",r.style.opacity=e.sourceOpacityForCanvas,r.style.visibility=e.sourceVisibleForCanvas?"visible":"hidden";let a=n.getBoundingClientRect(),l=Rd(n.offsetWidth,a.width),s=Rd(n.offsetHeight,a.height);if(l<=0||s<=0)return r.style.display="none",null;let u=Math.max(1,window.devicePixelRatio||1),c=Math.round(l*u),m=Math.round(s*u);return r.width!==c&&(r.width=c),r.height!==m&&(r.height=m),{width:c,height:m}}function nn(e,t,n){e.uniform3f(t,Number.parseInt(n.slice(1,3),16)/255,Number.parseInt(n.slice(3,5),16)/255,Number.parseInt(n.slice(5,7),16)/255)}function Dt(e,t,n,r){e.set(r,(t*Ke+n)*4)}function yt(e,t){return Math.min(1,Math.max(1/255,(e*(127/t)+128)/255))}function Pa(e,t,n){return e.length>=3?Co(e,t,n):new Float32Array(Ke)}function Nt(e,t){return e[t]??0}function ex(e,t,n){let r=zt(t.red),i=zt(t.green),o=zt(t.blue),a=zt(t.master),l=Pa(n.hueVsHue,-180,180),s=Pa(n.hueVsSaturation,-1,1),u=Pa(n.hueVsLuma,-1,1);for(let c=0;c<Ke;c+=1)Dt(e,0,c,[Nt(r,c),Nt(i,c),Nt(o,c),Nt(a,c)]),Dt(e,1,c,[yt(Nt(l,c),180),yt(Nt(s,c),1),yt(Nt(u,c),1),1])}function tx(e,t,n){let r=n*yb;Dt(e,2,r,[t.key.hue.center/360,t.key.hue.range/180,t.key.hue.softness/180,1]),Dt(e,2,r+1,[t.key.saturation.min,t.key.saturation.max,t.key.saturation.softness/.5,0]),Dt(e,2,r+2,[t.key.luma.min,t.key.luma.max,t.key.luma.softness/.5,0]),Dt(e,2,r+3,[yt(t.correction.hueShift,180),yt(t.correction.saturation,1),yt(t.correction.luma,1),yt(t.correction.temperature,1)]),Dt(e,2,r+4,[yt(t.correction.tint,1),.5,.5,1])}function nx(e,t,n){let r=new Float32Array(Ke*sr*4);ex(r,e,t);let i=0;for(let o of n)o.enabled&&(tx(r,o,i),i+=1);return r}var kd=new WeakMap;function rx(e,t,n){let r=kd.get(e);if(r?.hueCurves===t&&r.secondaries===n)return r.signature;let i=JSON.stringify([e,t,n]);return kd.set(e,{hueCurves:t,secondaries:n,signature:i}),i}function ix(e,t,n,r){let{curves:i,hueCurves:o}=n,a=rx(i,o,r);if(t.advancedSignature===a)return;let l=Uint8Array.from(nx(i,o,r),kn);e.activeTexture(e.TEXTURE5),e.bindTexture(e.TEXTURE_2D,t.advancedTexture),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,Ke,sr,0,e.RGBA,e.UNSIGNED_BYTE,l),t.advancedSignature=a}function Oa(e,t,n){e.uniform3f(t,n.hue/360,n.amount,n.level)}function Ud(e,t,n,r,i,o,a,l,s,u,c,m){e.uniform1i(t.source,0),e.uniform1i(t.blurSource,1),e.uniform1i(t.lut,2),e.uniform1i(t.kuwaharaSource,3),e.uniform1i(t.bloomSource,4),e.uniform1i(t.advanced,5),e.uniform2f(t.resolution,s.width,s.height),e.uniform2f(t.uvScale,u.scaleX,u.scaleY),e.uniform2f(t.uvOffset,u.offsetX,u.offsetY),e.uniform1f(t.blurReady,i?1:0),e.uniform1f(t.bloomReady,o?1:0),e.uniform1f(t.kuwaharaReady,a?1:0),e.uniform1f(t.lutEnabled,r?1:0),e.uniform1f(t.lutSize,r?.size??2),e.uniform2f(t.lutTextureSize,r?.textureWidth??1,r?.textureHeight??1),e.uniform3f(t.lutDomainMin,r?.domainMin[0]??0,r?.domainMin[1]??0,r?.domainMin[2]??0),e.uniform3f(t.lutDomainMax,r?.domainMax[0]??1,r?.domainMax[1]??1,r?.domainMax[2]??1),e.uniform1f(t.lutIntensity,n.lut?.intensity??0);let{curves:f,hueCurves:p,secondaries:b}=n,v=Po(f),x=Oo(p),_=Ho(b)?b.reduce((M,F)=>M+Number(F.enabled),0):0;(v||x||_>0)&&ix(e,t,n,b),Oa(e,t.shadowWheel,n.wheels.shadows),Oa(e,t.midtoneWheel,n.wheels.midtones),Oa(e,t.highlightWheel,n.wheels.highlights),e.uniform1f(t.rgbCurvesEnabled,v?1:0),e.uniform1f(t.hueCurvesEnabled,x?1:0),e.uniform1f(t.secondaryCount,_);for(let[M,F]of t.adjustUniforms)e.uniform1f(F,n.adjust[M]);for(let[M,F]of t.detailUniforms)e.uniform1f(F,n.details[M]);e.uniform1f(t.grainSeed,c),e.uniform1f(t.effectTime,m);for(let[M,F]of t.effectUniforms)e.uniform1f(F,n.effects[M]);let R=n.palette??(n.effects.engraving>0||n.effects.crosshatch>0?bb:La),T=R[R.length-1]??La[1];e.uniform1f(t.paletteSize,R.length),nn(e,t.palette0,R[0]??La[0]),nn(e,t.palette1,R[1]??T),nn(e,t.palette2,R[2]??T),nn(e,t.palette3,R[3]??T),nn(e,t.palette4,R[4]??T),nn(e,t.palette5,R[5]??T),e.uniform1f(t.intensity,n.intensity),e.uniform1f(t.compareEnabled,l.enabled?1:0),e.uniform1f(t.comparePosition,l.position),e.uniform1f(t.compareSoftness,l.softness),e.uniform1f(t.compareLineWidth,l.lineWidth)}function ox(e){if(!e.sourceHidden){let t=e.element.getAttribute(Vr);t!==null?(e.sourceInlineOpacity=t===""?null:t,e.sourceInlineOpacityPriority=""):(e.sourceInlineOpacity=e.element.style.getPropertyValue("opacity")||null,e.sourceInlineOpacityPriority=e.element.style.getPropertyPriority("opacity"))}e.element.setAttribute(Nn,"true"),e.element.style.setProperty("opacity","0","important"),e.sourceHidden=!0}function ot(e){let t=su.find(n=>n.path===e);if(!t)throw new Error(`Missing color-grading animation property: ${e}`);return t}var Wd=ot("intensity"),Vd=ot("lut.intensity"),zd=ot("adjust.exposure"),qd=ot("effects.kuwahara"),$d=[["blur",ot("effects.blur")],["bloom",ot("effects.bloom")],["kuwahara",qd],["pixelate",ot("effects.pixelate")],["ascii",ot("effects.ascii")],["dither",ot("effects.dither")]],jd=[Wd,Vd,zd,...$d.map(([,e])=>e)];function It(e,t){let n=e.style.getPropertyValue(t.name);if(!n)return null;let r=Number(n);return Number.isFinite(r)?Math.min(t.max,Math.max(t.min,r)):null}function rr(e,t){return t!==null&&(du(t)||jd.some(n=>It(e,n)!==null))}function ax(e,t){let n=null;for(let[r,i]of $d){let o=It(e,i);o!==null&&(n??(n={...t.effects}),n[r]=o)}return n}function sx(e){let{element:t,grading:n}=e,r=It(t,Wd),i=It(t,Vd),o=It(t,zd),a=ax(t,n);if(![r,i,o].some(u=>u!==null)&&a===null)return n;let s={...n,adjust:o===null?n.adjust:{...n.adjust,exposure:o},effects:a??n.effects};return r!==null&&(s.intensity=r),n.lut&&i!==null&&(s.lut={...n.lut,intensity:i}),s}function Kd(e,t,n){e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,t),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)}function Yd(e,t,n){let r=[t.texture,n.blurTexture,t.lutTexture,n.kuwaharaTexture,n.bloomTexture,t.advancedTexture];for(let[i,o]of r.entries())e.activeTexture(e.TEXTURE0+i),e.bindTexture(e.TEXTURE_2D,o)}function De(e){if(e.destroyed||e.contextLost)return!1;let t=Gd(e.element);if(!t)return e.hasDrawn||(e.canvas.style.display="none"),!1;let n=Pd(t);if(!n)return!1;let r=t instanceof HTMLElement?t:e.element,i=e.element.style.getPropertyValue("opacity"),o=e.element.style.getPropertyPriority("opacity"),a=e.sourceHidden&&i==="0"&&o==="important",l=e.element.style.getPropertyValue("visibility"),s=Yb(t);s&&Xb(e,t),a&&!s&&(e.sourceInlineOpacity!==null?e.element.style.setProperty("opacity",e.sourceInlineOpacity,e.sourceInlineOpacityPriority||""):e.element.style.removeProperty("opacity"));let u=window.getComputedStyle(s?t:e.element);e.sourceOpacityForCanvas=u.opacity||"1",a&&!s&&e.element.style.setProperty("opacity","0","important"),e.sourceVisibleForCanvas=(s||l!=="hidden")&&u.visibility!=="hidden";let c=Zb(e,r);if(!c)return!1;let m=window.getComputedStyle(r),f=Bd(c.width,c.height,n.width,n.height,m.objectFit,m.objectPosition),{gl:p,program:b}=e;try{let v=sx(e),x=Kb(e);Kd(p,b.texture,t);let _=It(e.element,qd)!==null,R=Id(e,v,c,f,{preserveKuwahara:_});p.bindFramebuffer(p.FRAMEBUFFER,null),p.viewport(0,0,c.width,c.height),p.useProgram(b.program),Yd(p,b,R);let T=window.__player?.getTime?.(),M=typeof T=="number"&&Number.isFinite(T)?Math.max(0,T):e.element instanceof HTMLVideoElement?Math.max(0,e.element.currentTime):0,F=e.grainSeed+Math.floor(M*60);return Ud(p,b,v,x,R.blurReady,R.bloomReady,R.kuwaharaReady,e.compare,c,f,F,M),or(p,b),ox(e),e.hasDrawn=!0,e.drawError=null,!0}catch(v){return e.drawError=v instanceof Error?v.message:"Shader draw failed",L("runtime.colorGrading.drawEntry",v),!1}}function lx(e,t,n){let r=e.getBoundingClientRect(),i=e.offsetWidth||r.width||t.width,o=e.offsetHeight||r.height||t.height,a=Math.min(320,Math.max(64,Math.round(n??160))),l=i>0&&o>0?i/o:t.width/t.height;return l>=1?{width:a,height:Math.max(1,Math.round(a/l))}:{width:Math.max(1,Math.round(a*l)),height:a}}function ux(){let e=document.createElement("canvas"),t=Ga(e);return t?{canvas:e,...t,lut:null,effectTargets:null,kuwaharaTargets:null,effectError:null}:null}function cx(e,t){let n=t?void 0:window.__player?.getTime?.();return typeof n=="number"&&Number.isFinite(n)?Math.max(0,n):e instanceof HTMLVideoElement?Math.max(0,e.currentTime):0}function dx(e,t,n,r){let i=Gd(t);if(!i)return null;let o=Pd(i);if(!o)return null;let a=lx(t,o,n);e.canvas.width=a.width,e.canvas.height=a.height;let l=i instanceof HTMLElement?i:t,s=window.getComputedStyle(l),u=Bd(a.width,a.height,o.width,o.height,s.objectFit,s.objectPosition);return Kd(e.gl,e.program.texture,i),{dimensions:a,uv:u,effectTime:cx(t,r),grainSeed:Nd(t)+(t instanceof HTMLVideoElement?Math.floor(t.currentTime*60):0)}}async function fx(e,t,n,r,i=!1){let o=dx(e,t,r,i);if(!o)return null;let{dimensions:a,uv:l,grainSeed:s,effectTime:u}=o,c=[];for(let m of n.slice(0,32)){let f=qr(m.grading);if(!f){c.push({id:m.id,dataUrl:null,error:"Invalid grading"});continue}let p=null;try{f.lut&&(e.lut?.src!==f.lut.src&&(e.lut=Db(e,f.lut.src,await Lb(f.lut.src))),p=e.lut),c.push({id:m.id,dataUrl:mx(e,f,p,a,l,s,u)})}catch(b){c.push({id:m.id,dataUrl:null,error:yi(b)})}}return{...a,images:c}}function mx(e,t,n,r,i,o,a){let{canvas:l,gl:s,program:u}=e,c=Id(e,t,r,i,{releaseIdleTargets:!1});return s.bindFramebuffer(s.FRAMEBUFFER,null),s.viewport(0,0,r.width,r.height),s.useProgram(u.program),Yd(s,u,c),n||(e.lut=null),Ud(s,u,t,n,c.blurReady,c.bloomReady,c.kuwaharaReady,rn,r,i,o,a),or(s,u),l.toDataURL("image/png")}function Xe(e,t,n,r){t.addEventListener(n,r),e.cleanup.push(()=>t.removeEventListener(n,r))}function px(e){e.animationFrame!==null&&(window.cancelAnimationFrame(e.animationFrame),e.animationFrame=null),e.videoFrameHandle!==null&&e.element instanceof HTMLVideoElement&&(e.element.cancelVideoFrameCallback?.(e.videoFrameHandle),e.videoFrameHandle=null)}function ar(e){if(e.destroyed||!(e.element instanceof HTMLVideoElement)||e.videoFrameHandle!==null||e.animationFrame!==null)return;let t=e.element,n=t;if(typeof n.requestVideoFrameCallback=="function"){e.videoFrameHandle=n.requestVideoFrameCallback(()=>{e.videoFrameHandle=null,De(e),!e.destroyed&&!t.paused&&!t.ended&&ar(e)});return}e.animationFrame=window.requestAnimationFrame(()=>{e.animationFrame=null,De(e),!e.destroyed&&!t.paused&&!t.ended&&ar(e)})}function hx(e){let t=()=>{De(e)};if(Xe(e,e.element,"load",t),Xe(e,e.element,"loadedmetadata",t),Xe(e,e.element,"loadeddata",t),Xe(e,e.element,"seeked",t),Xe(e,e.element,"timeupdate",t),Xe(e,window,"resize",t),e.element instanceof HTMLVideoElement&&(Xe(e,e.element,"play",()=>ar(e)),Xe(e,e.element,"pause",t)),Xe(e,e.canvas,"webglcontextlost",n=>{n.preventDefault(),e.contextLost=!0,e.drawError="WebGL context lost",e.canvas.style.display="none",Ha(e)}),Xe(e,e.canvas,"webglcontextrestored",()=>{if(e.contextLost=!1,!Pb(e)){e.contextLost=!0,e.drawError="WebGL context restore failed",Ha(e);return}e.drawError=null,De(e)}),typeof ResizeObserver<"u"&&(e.resizeObserver=new ResizeObserver(t),e.resizeObserver.observe(e.element)),typeof MutationObserver<"u"){let n=()=>{let a=e.element.style;return`${a.transform}|${a.translate}|${a.rotate}|${a.scale}|${a.left}|${a.top}|${a.width}|${a.height}`},r=n(),i=!1,o=new MutationObserver(()=>{i||n()!==r&&(i=!0,requestAnimationFrame(()=>{i=!1,r=n(),De(e)}))});o.observe(e.element,{attributes:!0,attributeFilter:["style"]}),e.cleanup.push(()=>o.disconnect())}}function gx(e){if(e.destroyed)return null;e.destroyed=!0,px(e),e.resizeObserver?.disconnect();for(let t of e.cleanup)t();return e.cleanup.length=0,e.canvas.remove(),Ua(e),Wa(e),Ha(e),e.touchedParent&&(e.parentInlinePosition===null?e.touchedParent.style.removeProperty("position"):e.touchedParent.style.position=e.parentInlinePosition),{canvas:e.canvas,gl:e.gl,program:e.program,effectTargets:null,kuwaharaTargets:null,effectError:null}}function Xd(e,t){return e.removeAttribute("style"),t.id?e.id=`${nu}${t.id}`:e.removeAttribute("id"),e.className=pb,e.setAttribute(mb,"true"),e.setAttribute("data-hyperframes-ignore",""),e.setAttribute("data-hyperframes-picker-ignore",""),e.setAttribute("data-hf-ignore",""),e.setAttribute("aria-hidden","true"),e.style.pointerEvents="none",e.style.display="none",t.parentNode?.insertBefore(e,t.nextSibling),e}function bx(e){return Xd(document.createElement("canvas"),e)}function Jd(){let e=new WeakMap,t=new Set,n=[],r=null,i=null,o=Promise.resolve(),a=!1,l=(E,S,A)=>{let C=e.get(E);if(C)return C.grading=S,C.source=A,De(C),E instanceof HTMLVideoElement&&!E.paused&&ar(C),!0;let N=n.pop();if(N)Xd(N.canvas,E);else{let W=bx(E),B=Ga(W);if(!B)return W.remove(),!1;N={canvas:W,gl:B.gl,program:B.program,effectTargets:null,kuwaharaTargets:null,effectError:null}}let I={element:E,...N,grading:S,compare:{...rn},lut:null,lutLoadingSrc:null,lutError:null,drawError:null,effectTargets:null,kuwaharaTargets:null,effectError:null,source:A,animationFrame:null,videoFrameHandle:null,resizeObserver:null,cleanup:[],touchedParent:null,parentInlinePosition:null,sourceHidden:!1,sourceInlineOpacity:null,sourceInlineOpacityPriority:"",sourceOpacityForCanvas:window.getComputedStyle(E).opacity||"1",sourceVisibleForCanvas:window.getComputedStyle(E).visibility!=="hidden",hasDrawn:!1,contextLost:!1,grainSeed:Nd(E),destroyed:!1};return e.set(E,I),t.add(E),hx(I),De(I),E instanceof HTMLVideoElement&&!E.paused&&ar(I),!0},s=(E,S)=>{if(a)return!1;let A=nr(E);if(!A)return!1;let C=e.get(A);if(!C){let N=mi(A);if(!rr(A,N)||!l(A,N,"attribute"))return!1;C=e.get(A)}return C?(C.compare=Fb(S),De(C),!0):!1},u=E=>{let S=e.get(E);if(!S)return;let A=gx(S);A&&(S.contextLost||n.length>=gb?hi(A,!0):n.push(A)),e.delete(E),t.delete(E)},c=()=>{if(a)return 0;let E=new Set;document.querySelectorAll(`video[${Fn}], img[${Fn}]`).forEach(A=>{if(!Lt(A))return;E.add(A);let C=mi(A);rr(A,C)&&(Sd(A)||_d(A))?l(A,C,"attribute"):u(A)});for(let A of t){let C=e.get(A);C&&(!A.isConnected||C.source==="attribute"&&!E.has(A))&&u(A)}return t.size},m=()=>{if(a)return 0;let E=0;for(let S of t){let A=e.get(S);A&&De(A)&&(E+=1)}return E},f=async()=>{let E=new Set;for(let S of t){let A=e.get(S)?.grading.lut;if(!A?.src.trim()||(A.intensity??1)<=0)continue;let C=Ba(A.src);C.state==="pending"&&E.add(C.promise)}return E.size>0&&await Promise.allSettled(E),m(),E.size},p=()=>{if(a)return 0;let E=0;for(let S of t){let A=e.get(S);!A||!jd.some(N=>It(S,N)!==null)||S instanceof HTMLVideoElement&&!S.paused&&!S.ended||De(A)&&(E+=1)}return E},b=(E,S)=>{if(a)return!1;let A=nr(E);if(!A)return!1;let C=qr(S);return rr(A,C)?l(A,C,"live"):(u(A),!0)},v=(E,S)=>{if(!Lt(E))return!1;let A=e.get(E);if(!A){if(!S)return!1;let C=mi(E);return rr(E,C)&&l(E,C,"attribute")}return A.sourceVisibleForCanvas=S,!S&&A.source==="attribute"&&u(E),!0},x=E=>{let S=nr(E);if(!S)return{state:"missing",message:"Media not found"};let A=e.get(S);if(A)return A.effectError?{state:"unavailable",message:A.effectError}:A.drawError?{state:"unavailable",message:A.drawError}:A.lutError?{state:"unavailable",message:`LUT error: ${A.lutError}`}:A.grading.lut&&A.lutLoadingSrc?{state:"pending",message:"Loading LUT"}:A.canvas.style.display==="none"?{state:"pending",message:"Waiting for media frame"}:{state:"active",message:A.lut?"Shader + LUT active":"Shader active"};let C=mi(S);return rr(S,C)?!Sd(S)&&!_d(S)?{state:"pending",message:"Waiting for visible media"}:{state:"unavailable",message:"WebGL unavailable"}:{state:"inactive",message:"No grading applied"}},_=async(E,S,A)=>{let C=async()=>{if(a||S.length===0)return null;let I=nr(E);return!I||(i??(i=ux()),!i)?null:fx(i,I,S,A?.maxDimension,A?.useMediaTime)},N=o.then(C,C);return o=N.then(()=>{},()=>{}),N},R=E=>{let S=nr(E);if(!(S instanceof HTMLVideoElement))return null;if(!S.paused)return()=>{};let A=S.currentTime,C=S.loop,N=S.muted;return S.loop=!0,S.muted=!0,(S.ended||Number.isFinite(S.duration)&&A>=S.duration)&&(S.currentTime=0),S.play().catch(()=>{}),()=>{S.pause(),S.loop=C,S.muted=N,S.currentTime=A}},T=()=>{if(!a){a=!0,r?.disconnect(),r=null;for(let E of t)u(E);for(let E of n)hi(E,!0);n.length=0,i&&(hi(i,!0),i=null)}};document.body&&(r=new MutationObserver(()=>c()),r.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[Fn]}));let M={refresh:c,redraw:m,redrawAnimated:p,waitForActiveLuts:f,setGrading:b,setCompare:s,setSourceVisibility:v,getStatus:x,renderPreviews:_,startPreviewPlayback:R,destroy:T},F=window;return F.__hf=F.__hf||{},F.__hf.colorGrading=M,c(),M}var vi=class{constructor(t){ge(this,"_baseTime",0);ge(this,"_playStartMs",null);ge(this,"_rate",1);ge(this,"_duration",1/0);ge(this,"_nowMs");ge(this,"_audioSource",null);this._baseTime=t?.initialTime??0,this._rate=t?.rate??1,this._duration=t?.duration??1/0,this._nowMs=t?.nowMs??(()=>performance.now())}now(){if(this._playStartMs===null)return this._baseTime;if(this._audioSource){let r=null;if("currentTimeSeconds"in this._audioSource)r=this._audioSource.currentTimeSeconds;else{let{el:i,compositionStart:o,mediaStart:a}=this._audioSource;!i.paused&&Number.isFinite(i.currentTime)&&(r=(i.currentTime-a)/(i.playbackRate>0?i.playbackRate:1)*this._rate+o)}if(r!==null)return Number.isFinite(this._duration)&&r>=this._duration?this._duration:Math.max(0,r)}let t=(this._nowMs()-this._playStartMs)/1e3,n=this._baseTime+t*this._rate;return Number.isFinite(this._duration)&&n>=this._duration?this._duration:Math.max(0,n)}play(){return this._playStartMs!==null||Number.isFinite(this._duration)&&this._baseTime>=this._duration?!1:(this._playStartMs=this._nowMs(),!0)}pause(){return this._playStartMs===null?!1:(this._baseTime=this.now(),this._playStartMs=null,!0)}seek(t){let n=Number.isFinite(this._duration)?Math.max(0,Math.min(t,this._duration)):Math.max(0,t);this._baseTime=n,this._playStartMs!==null&&(this._playStartMs=this._nowMs())}isPlaying(){return this._playStartMs!==null}setRate(t){let n=Number.isFinite(t)&&t>0?Math.max(.1,Math.min(5,t)):1;this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._rate=n}getRate(){return this._rate}setDuration(t){this._duration=Number.isFinite(t)&&t>0?t:1/0,this._baseTime>this._duration&&(this._baseTime=this._duration)}getDuration(){return this._duration}attachAudioSource(t){this._audioSource=t}detachAudioSource(){this._audioSource&&this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._audioSource=null}hasAudioSource(){return this._audioSource!==null}getSource(){if(this._audioSource&&this._playStartMs!==null){if("currentTimeSeconds"in this._audioSource)return"audio";let{el:t}=this._audioSource;if(!t.paused&&Number.isFinite(t.currentTime))return"audio"}return"monotonic"}snapshot(){return{time:this.now(),playing:this.isPlaying(),rate:this._rate,duration:this._duration,source:this.getSource()}}reachedEnd(){return Number.isFinite(this._duration)&&this.now()>=this._duration}};var xx=100,yx=8,vx=4096,Va=e=>e;function Sx(e,t,n){return!(!!e.curve||e.viaX!==void 0&&e.viaY!==void 0)&&t==="linear"&&!n}function Ax(e){let t=Math.ceil(e*xx);return Math.min(vx,Math.max(yx,t))}function Ex(e,t,n,r,i){let{scheduledAt:o,elapsed:a,rate:l}=r,s=i??Va,u=R=>o+(R-a)/l,c=e.points[t],m=e.points[t+1],f=u(m.t);if(f<=o)return null;let p=Math.max(o,u(c.t)),b=f-p;if(b<=0)return null;if(Sx(c,n,i))return{kind:"ramp",time:f,value:s(m.v)};let v=Ax(b),x=_l(e,Math.max(c.t,a),m.t,v,n),_=new Float32Array(v);for(let R=0;R<v;R+=1)_[R]=s(x[R]??0);return{kind:"curve",time:p,duration:b,values:_}}function wx(e,t,n,r){let i=[];for(let a=0;a+1<e.points.length;a+=1){let l=Ex(e,a,t,n,r);l&&i.push(l)}let o=i[0];return o?.kind==="curve"&&o.time<=n.scheduledAt||i.unshift({kind:"set",time:n.scheduledAt,value:(r??Va)(_n(e,n.elapsed,t))}),i}function Cx(e,t){for(let n of t)if(n.kind==="set")e.setValueAtTime(n.value,n.time);else if(n.kind==="ramp")e.linearRampToValueAtTime(n.value,n.time);else try{e.setValueCurveAtTime(n.values,n.time,n.duration)}catch{let r=n.values[n.values.length-1]??0;e.linearRampToValueAtTime(r,n.time+n.duration)}}function lr(e){for(let t of e)t.param.cancelScheduledValues(0)}function on(e,t){for(let n of e)typeof n.param.cancelAndHoldAtTime=="function"?n.param.cancelAndHoldAtTime(t):n.param.cancelScheduledValues(t)}function za(e,t,n,r){if(t.points.length!==0)for(let i of e){if(lr([i]),Cl(t)){let o=(i.map??Va)(t.points[0].v);i.param.setValueAtTime(o,r.scheduledAt);continue}Cx(i.param,wx(t,n,r,i.map))}}function Qd(e,t,n,r,i){let o=new Map(n.filter(l=>l.id).map(l=>[l.id,l.handle])),a=[];for(let l of e.lanes){let s=Cn(l.target);if(!s)continue;let u=s.kind==="preset"?i?.[s.presetId]:s.kind==="fx"?o.get(s.nodeId)?.automation?.[s.param]:void 0;if(!u||u.length===0)continue;let c=co(l.target,t);c&&(za(u,l,c.scale,r),a.push(...u))}return a}function Zd(e){return e.lanes.find(t=>t.target===Ut)??null}var _x=`\nconst dbToLin = (db) => Math.pow(10, db / 20);\n\n/**\n * One-pole envelope followers, one per channel.\n *\n * Per channel matters: the followers advance once per sample, so a single shared\n * follower stepped once per channel per sample. On stereo that ran a 20 ms attack\n * as 10 ms, and gave the right channel a gain computed from an envelope that had\n * already traversed the left \\u2014 so the two channels ducked by different amounts\n * from the same input and the image pumped.\n */\nclass EnvBank {\n constructor(attackMs, releaseMs) { this.set(attackMs, releaseMs); this.values = []; }\n set(attackMs, releaseMs) {\n this.a = Math.exp(-1 / (sampleRate * Math.max(1e-5, attackMs / 1000)));\n this.r = Math.exp(-1 / (sampleRate * Math.max(1e-5, releaseMs / 1000)));\n }\n push(ch, x) {\n const prev = this.values[ch] ?? 0;\n const m = Math.abs(x);\n const c = m > prev ? this.a : this.r;\n const next = m + c * (prev - m);\n this.values[ch] = next;\n return next;\n }\n}\n\n/** Soft-knee gain computer in dB, matching acompressor\'s shape. */\nfunction kneeGain(envDb, thresholdDb, ratio, kneeDb) {\n const over = envDb - thresholdDb;\n if (kneeDb > 0 && over > -kneeDb && over < kneeDb) {\n const t = (over + kneeDb) / (2 * kneeDb);\n return -((1 - 1 / ratio) * kneeDb * t * t);\n }\n return over > 0 ? -(over * (1 - 1 / ratio)) : 0;\n}\n\n// log10/exp per sample is the single most expensive thing a dynamics processor\n// can do on the audio thread, and every sample below the knee needs neither:\n// its gain is exactly unity. Comparing envelopes in the linear domain lets the\n// quiet majority of samples skip the transcendentals entirely.\nconst LN10_OVER_20 = Math.LN10 / 20;\nconst dbToLinFast = (db) => Math.exp(db * LN10_OVER_20);\n\nclass HfCompressor extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.env = new EnvBank(this.p.attack ?? 20, this.p.release ?? 250);\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n this.p = { ...this.p, ...e.data };\n this.env.set(this.p.attack ?? 20, this.p.release ?? 250);\n };\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const p = this.p;\n const makeup = dbToLin(p.makeup ?? 0);\n const mix = p.mix ?? 1;\n // Knee is expressed as a ratio in FFmpeg; convert to dB width.\n const kneeDb = 20 * Math.log10(Math.max(1.0001, p.knee ?? 2.83));\n const thresholdDb = p.threshold ?? -24;\n const ratio = p.ratio ?? 4;\n // Below this the gain computer returns unity, so the sample needs no\n // logarithm at all.\n const kneeStartLin = dbToLin(thresholdDb - kneeDb);\n const dry = 1 - mix;\n for (let ch = 0; ch < i.length; ch++) {\n const inp = i[ch], out = o[ch];\n for (let n = 0; n < inp.length; n++) {\n const x = inp[n];\n // Per-channel follower, and the sub-knee shortcut: below the knee the\n // gain is exactly unity, so the sample needs no logarithm at all.\n const env = this.env.push(ch, x);\n if (env <= kneeStartLin) {\n out[n] = x * makeup * mix + x * dry;\n continue;\n }\n const envDb = 20 * Math.log10(env);\n const g = dbToLinFast(kneeGain(envDb, thresholdDb, ratio, kneeDb));\n out[n] = x * g * makeup * mix + x * dry;\n }\n }\n return true;\n }\n}\nregisterProcessor("hf-compressor", HfCompressor);\n\nclass HfLimiter extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.env = new EnvBank(this.p.attack ?? 5, this.p.release ?? 50);\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n this.p = { ...this.p, ...e.data };\n this.env.set(this.p.attack ?? 5, this.p.release ?? 50);\n };\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const ceiling = dbToLin(this.p.limit ?? -1);\n const outGain = dbToLin(this.p.level_out ?? 0);\n for (let ch = 0; ch < i.length; ch++) {\n const inp = i[ch], out = o[ch];\n for (let n = 0; n < inp.length; n++) {\n const x = inp[n];\n const env = this.env.push(ch, x);\n // Only ever attenuate: a limiter that can raise level is a compressor.\n const g = env > ceiling ? ceiling / env : 1;\n out[n] = x * g * outGain;\n }\n }\n return true;\n }\n}\nregisterProcessor("hf-limiter", HfLimiter);\n\nclass HfGate extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.env = new EnvBank(this.p.attack ?? 1, this.p.release ?? 100);\n this.gains = [];\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n this.p = { ...this.p, ...e.data };\n this.env.set(this.p.attack ?? 1, this.p.release ?? 100);\n };\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const p = this.p;\n const threshold = dbToLin(p.threshold ?? -35);\n const floor = dbToLin(p.range ?? -24);\n const ratio = p.ratio ?? 10;\n // Knee is declared in the registry as a ratio, like the compressor\'s; a\n // hard threshold ignored it and chattered on material sitting right at the\n // gate point.\n const kneeDb = 20 * Math.log10(Math.max(1.0001, p.knee ?? 2.83));\n const kneeLin = dbToLin((p.threshold ?? -35) + kneeDb);\n for (let ch = 0; ch < i.length; ch++) {\n const inp = i[ch], out = o[ch];\n for (let n = 0; n < inp.length; n++) {\n const x = inp[n];\n const env = this.env.push(ch, x);\n let target = 1;\n // Above the threshold the gate is fully open; skip the pow entirely.\n if (env < threshold) {\n const under = env > 1e-9 ? threshold / env : 1e9;\n target = Math.max(floor, 1 / Math.pow(under, ratio - 1));\n if (!isFinite(target)) target = floor;\n }\n // Smooth toward the target so the gate does not click on every sample.\n const held = this.gains[ch] ?? 1;\n const c = target < held ? this.env.r : this.env.a;\n const smoothed = target + c * (held - target);\n this.gains[ch] = smoothed;\n out[n] = x * smoothed;\n }\n }\n return true;\n }\n}\nregisterProcessor("hf-gate", HfGate);\n\nclass HfBitcrush extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.holds = [];\n this.held = [];\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n this.p = { ...this.p, ...e.data };\n };\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const p = this.p;\n const levels = Math.pow(2, (p.bits ?? 8) - 1);\n const step = Math.max(1, Math.round(p.samples ?? 1));\n const mix = p.mix ?? 1;\n for (let ch = 0; ch < i.length; ch++) {\n const inp = i[ch], out = o[ch];\n if (this.held[ch] === undefined) this.held[ch] = 0;\n if (this.holds[ch] === undefined) this.holds[ch] = 0;\n for (let n = 0; n < inp.length; n++) {\n // Per channel: advancing one shared counter only on the last channel\n // left every earlier channel either unheld or frozen for a whole\n // 128-sample quantum, clicking once a block.\n if (this.holds[ch] === 0) this.held[ch] = Math.round(inp[n] * levels) / levels;\n out[n] = this.held[ch] * mix + inp[n] * (1 - mix);\n this.holds[ch] = (this.holds[ch] + 1) % step;\n }\n }\n return true;\n }\n}\nregisterProcessor("hf-bitcrush", HfBitcrush);\n\n/** Linear-interpolated read, \\`delaySamples\\` behind the write head. */\nfunction readTap(ring, write, delaySamples) {\n const len = ring.length;\n const pos = (write - 1 - delaySamples + len) % len;\n const i0 = Math.floor(pos);\n const frac = pos - i0;\n const i1 = (i0 + 1) % len;\n return ring[i0] * (1 - frac) + ring[i1] * frac;\n}\n\n/** Equal-power-ish crossfade, zero at a tap\'s reset point \\u2014 hides the splice. */\nfunction xfade(phase) {\n return Math.sin(Math.PI * phase);\n}\n\n/**\n * Dual-tap granular delay line: two read taps 180\\xB0 apart in a 100 ms grain,\n * each sweeping at a speed relative to the write head that shifts pitch\n * without changing duration. One tap is always fading in as the other fades\n * out, which hides the splice each tap makes when it wraps.\n *\n * write/phase are block-level state, advanced once per SAMPLE across all\n * channels together (not once per channel) \\u2014 advancing them inside the\n * per-channel loop would move the tap 2x/4x too fast on a stereo/quad input.\n */\nclass HfPitchshift extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.grain = Math.round(sampleRate * 0.1);\n this.buf = [];\n this.write = 0;\n this.phase = 0;\n // Samples written so far, capped at one grain. The taps read up to a grain\n // behind the write head, so until this fills they would read the ring\'s\n // zeros \\u2014 the head of every clip came out attenuated or silent.\n this.filled = 0;\n // How much of the wet (pitch-shifted) path is currently in the output, and\n // where it is heading. Crossing between dry and wet is a ~50 ms jump in the\n // signal, so it is RAMPED rather than switched: a hard swap either way is a\n // click. Ramping in both directions is also what lets a node return to true\n // bypass at semitones 0 \\u2014 a one-way latch left preview stuck with the delay\n // that the render, building a fresh node from the attribute, does not have.\n this.wet = 0;\n this.wetTarget = 0;\n // ~15 ms one-pole, short enough to feel immediate on a slider drag and long\n // enough that the splice is inaudible.\n this.wetCoef = Math.exp(-1 / (sampleRate * 0.015));\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n this.p = { ...this.p, ...e.data };\n };\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const p = this.p;\n const semitones = Math.max(-12, Math.min(12, p.semitones ?? 0));\n const mix = Math.max(0, Math.min(1, p.mix ?? 1));\n const grain = this.grain;\n const ringLen = grain * 2;\n const n = i[0] ? i[0].length : 0;\n for (let ch = 0; ch < i.length; ch++) {\n if (!this.buf[ch]) this.buf[ch] = new Float32Array(ringLen);\n }\n\n // Nothing to shift, or mixed fully out. The grain delay is ~grain/2\n // whatever the ratio, so at semitones=0 this degenerated into a pure 50 ms\n // delay of the signal \\u2014 while the copy for that exact setting reads\n // "Unchanged pitch".\n this.wetTarget = semitones === 0 ? 0 : mix;\n\n // Fully dry AND settled: take the cheap transparent path. The ring keeps\n // filling, so a later shift does not start cold.\n if (this.wetTarget === 0 && this.wet < 1e-4) {\n this.wet = 0;\n let w = this.write;\n for (let s = 0; s < n; s++) {\n for (let ch = 0; ch < i.length; ch++) {\n const x = i[ch][s];\n this.buf[ch][w] = x;\n o[ch][s] = x;\n }\n w = (w + 1) % ringLen;\n }\n this.write = w;\n this.filled = Math.min(grain, this.filled + n);\n return true;\n }\n\n const ratio = Math.pow(2, semitones / 12);\n const inc = (1 - ratio) / grain;\n let write = this.write, phase = this.phase, filled = this.filled, wetNow = this.wet;\n const target = this.wetTarget, coef = this.wetCoef;\n for (let s = 0; s < n; s++) {\n phase += inc;\n phase -= Math.floor(phase);\n const phaseB = (phase + 0.5) % 1;\n const gA = xfade(phase), gB = xfade(phaseB);\n // Ramp the wet path in as the ring fills rather than reading zeros:\n // 100 ms of unshifted audio at the head of a clip beats 50 ms of silence.\n const warm = filled >= grain ? 1 : filled / grain;\n wetNow = target + coef * (wetNow - target);\n const wetMix = wetNow * warm;\n for (let ch = 0; ch < i.length; ch++) {\n const ring = this.buf[ch];\n const inp = i[ch], out = o[ch];\n const x = inp[s];\n ring[write] = x;\n const wet =\n readTap(ring, write, phase * grain) * gA + readTap(ring, write, phaseB * grain) * gB;\n out[s] = x * (1 - wetMix) + wet * wetMix;\n }\n write = (write + 1) % ringLen;\n if (filled < grain) filled++;\n }\n this.write = write;\n this.phase = phase;\n this.filled = filled;\n this.wet = wetNow;\n return true;\n }\n}\nregisterProcessor("hf-pitchshift", HfPitchshift);\n`,qa=new WeakMap;function $a(e){return ef.has(e)}var ef=new WeakSet;function ja(e){let t=qa.get(e);return t||(t=(async()=>{if(!e.audioWorklet)throw new Error("AudioWorklet is unavailable \\u2014 the page needs a secure context (https, localhost or file://)");let n=`data:text/javascript;base64,${btoa(String.fromCharCode(...new TextEncoder().encode(_x)))}`;await e.audioWorklet.addModule(n),ef.add(e)})().catch(n=>{throw qa.delete(e),n}),qa.set(e,t)),t}function Tx(e,t,n){let r=.6+Math.max(0,Math.min(1,t))*2.6,i=Math.max(1,Math.floor(e*r)),o=new Float32Array(i),a=Math.round(t*1e3)*2654435761+Math.round(n*1e3)*40503>>>0,l=()=>(a=a*1664525+1013904223>>>0,a/4294967295*2-1),s=Math.max(.001,1-Math.max(0,Math.min(1,n))),u=0,c=0;for(let f=0;f<i;f++){u+=s*(l()-u);let p=u*Math.pow(1-f/i,2.5);o[f]=p,c+=p*p}let m=Math.sqrt(c);if(m>0)for(let f=0;f<i;f++)o[f]=(o[f]??0)/m;return o}var ce=e=>typeof e=="number"?e:Number(e??0),Ka=e=>e/1e3;function of(e,t,n,r){let i=Math.max(1,Math.round(e.sampleRate)),o=e.createBuffer(1,i,e.sampleRate),a=o.getChannelData(0);for(let u=0;u<i;u++){let c=u/i;a[u]=t==="sine"?Math.sin(2*Math.PI*c):4*Math.abs((c+.75)%1-.5)-1}let l=e.createBufferSource();l.buffer=o,l.loop=!0,l.playbackRate.value=n;let s=(r*n%1+1)%1*(i/e.sampleRate);return l.start(typeof e.currentTime=="number"?e.currentTime:0,s),l}function af(e){try{e.stop()}catch{}e.disconnect()}function Ya(e,t){return[{param:e},{param:t,map:n=>1-n}]}function sf(e,t,n){e.gain.value=n,t.gain.value=1-n}function Xa(e,t,n){return{input:e,output:e,update:t,automation:n,dispose:()=>e.disconnect()}}var Rx=new Set(["peaking","highpass","lowpass"]),tf=e=>Math.pow(10,e/20),kx=(e,t)=>{let n=e.createGain(),r=i=>{n.gain.value=tf(ce(i.gain))};return r(t),Xa(n,r,{gain:[{param:n.gain,map:tf}]})};function ur(e,t){return(n,r)=>{let i=n.createBiquadFilter();i.type=e;let o=a=>{i.frequency.value=ce(a.frequency),a.q!==void 0&&(i.Q.value=ce(a.q)),t&&(i.gain.value=ce(a.gain))};return o(r),Xa(i,o,{frequency:[{param:i.frequency}],...Rx.has(e)?{q:[{param:i.Q}]}:{},...t?{gain:[{param:i.gain}]}:{}})}}function Mx(e){return(t,n)=>{let r=Math.tan(Math.PI*ce(n.frequency)/t.sampleRate),i=e==="highpass"?t.createIIRFilter([1/(1+r),-1/(1+r)],[1,(r-1)/(r+1)]):t.createIIRFilter([r/(1+r),r/(1+r)],[1,(r-1)/(r+1)]);return Xa(i,()=>{})}}function cr(e){return(t,n)=>{let r=new AudioWorkletNode(t,e,{processorOptions:{...n}});return{input:r,output:r,update:i=>r.port.postMessage({...i}),dispose:()=>{r.port.postMessage({__hfDispose:!0}),r.disconnect()}}}}var Fx={tanh:Math.tanh,atan:e=>2/Math.PI*Math.atan(Math.PI/2*e),cubic:e=>Math.abs(e)>=1?Math.sign(e):e-e**3/3,exp:e=>Math.sign(e)*(1-Math.exp(-Math.abs(e))),alg:e=>e/Math.sqrt(1+e*e),quintic:e=>Math.abs(e)>=1?Math.sign(e):e-e**5/5,sin:e=>Math.abs(e)>=1?Math.sign(e):Math.sin(Math.PI/2*e),erf:e=>Math.tanh(1.20211*e),hard:e=>Math.max(-1,Math.min(1,e))},Nx=(e,t)=>{let n=e.createWaveShaper(),r=e.createGain(),i=e.createGain();r.connect(n).connect(i);let o=a=>{let l=Fx[String(a.type)]??Math.tanh,s=Math.pow(10,ce(a.threshold)/20),u=8192,c=new Float32Array(u);for(let m=0;m<u;m++){let f=m/(u-1)*2-1;c[m]=l(f/Math.max(1e-6,s))*s}n.curve=c,n.oversample=ce(a.oversample)>=4?"4x":ce(a.oversample)>=2?"2x":"none",i.gain.value=Math.pow(10,ce(a.output)/20)};return o(t),{input:r,output:i,update:o,automation:{output:[{param:i.gain,map:a=>Math.pow(10,a/20)}]},dispose:()=>{r.disconnect(),n.disconnect(),i.disconnect()}}},Lx=(e,t)=>{let n=e.createGain(),r=e.createGain(),i=e.createDelay(5),o=e.createGain(),a=e.createGain(),l=e.createGain();n.connect(i),i.connect(o),o.connect(i),i.connect(a).connect(r),n.connect(l).connect(r);let s=u=>{i.delayTime.value=Math.min(5,ce(u.time)/1e3),o.gain.value=ce(u.feedback),sf(a,l,ce(u.mix))};return s(t),{input:n,output:r,update:s,automation:{time:[{param:i.delayTime,map:u=>Math.min(5,Ka(u))}],feedback:[{param:o.gain}],mix:Ya(a.gain,l.gain)},dispose:()=>[n,r,i,o,a,l].forEach(u=>u.disconnect())}},Dx=(e,t,n)=>{let r=e.createGain(),i=e.createGain(),o=e.createDelay(.5),a=of(e,"sine",ce(t.speed),n),l=e.createGain(),s=e.createGain(),u=e.createGain();a.connect(l).connect(o.delayTime),r.connect(o).connect(s).connect(i),r.connect(u).connect(i);let c=m=>{o.delayTime.value=ce(m.delay)/1e3,l.gain.value=ce(m.depth)/1e3,a.playbackRate.value=ce(m.speed),sf(s,u,ce(m.mix))};return c(t),{input:r,output:i,update:c,automation:{delay:[{param:o.delayTime,map:Ka}],depth:[{param:l.gain,map:Ka}],speed:[{param:a.playbackRate}],mix:Ya(s.gain,u.gain)},dispose:()=>{af(a),[r,i,o,l,s,u].forEach(m=>m.disconnect())}}},Ix=6,Px=(e,t,n)=>{let r=e.createGain(),i=e.createGain(),o=e.createGain(),a=e.createGain(),l=of(e,String(t.type)==="1"?"sine":"triangle",ce(t.speed),n),s=e.createGain(),u=e.createGain(),c=e.createGain(),m=[];r.connect(o);let f=o;for(let b=0;b<Ix;b++){let v=e.createBiquadFilter();v.type="allpass",v.Q.value=.7071,s.connect(v.frequency),f.connect(v),f=v,m.push(v)}l.connect(s),f.connect(u).connect(a),o.connect(c).connect(a),a.connect(i);let p=b=>{let v=1e3/Math.max(.1,ce(b.delay));for(let x of m)x.frequency.value=v;s.gain.value=v*ce(b.decay),l.playbackRate.value=ce(b.speed),o.gain.value=ce(b.in_gain),a.gain.value=ce(b.out_gain),u.gain.value=1,c.gain.value=1};return p(t),{input:r,output:i,update:p,automation:{speed:[{param:l.playbackRate}],in_gain:[{param:o.gain}],out_gain:[{param:a.gain}]},dispose:()=>{af(l),[r,i,o,a,s,u,c,...m].forEach(b=>b.disconnect())}}},Ox=(e,t)=>{let n=e.createGain(),r=e.createGain(),i=e.createConvolver(),o=e.createGain(),a=e.createGain();i.normalize=!1,n.connect(i).connect(o).connect(r),n.connect(a).connect(r);let l="",s=u=>{let c=`${ce(u.size)}:${ce(u.damping)}`;if(c!==l){let m=Tx(e.sampleRate,ce(u.size),ce(u.damping)),f=e.createBuffer(1,m.length,e.sampleRate);f.getChannelData(0).set(m),i.buffer=f,l=c}o.gain.value=ce(u.wet),a.gain.value=ce(u.dry)};return s(t),{input:n,output:r,update:s,automation:{wet:[{param:o.gain}],dry:[{param:a.gain}]},dispose:()=>[n,r,i,o,a].forEach(u=>u.disconnect())}},Hx={"gain-node":kx,"biquad-peaking":ur("peaking",!0),"biquad-lowshelf":ur("lowshelf",!0),"biquad-highshelf":ur("highshelf",!0),"biquad-highpass":ur("highpass",!1),"biquad-lowpass":ur("lowpass",!1),"worklet-compressor":cr("hf-compressor"),"worklet-limiter":cr("hf-limiter"),"worklet-gate":cr("hf-gate"),"worklet-bitcrush":cr("hf-bitcrush"),"worklet-pitchshift":cr("hf-pitchshift"),waveshaper:Nx,"delay-feedback":Lx,"chorus-lfo":Dx,"allpass-phaser":Px,convolver:Ox};function lf(e){return e.nodes.some(t=>Sn(t.type)?.web.startsWith("worklet-")??!1)}function Gx(e,t,n,r=0){let i=Sn(t);if(!i)throw new Error(`Unknown effect type: ${t}`);let o=An(t,n);if((t==="highpass"||t==="lowpass")&&String(o.poles)==="1")return Mx(t)(e,o,r);let a=Hx[i.web];if(!a)throw new Error(`No Web Audio builder for ${i.web}`);return a(e,o,r)}function nf(e){let t=[];for(let n of e){let r=n.fromPreset,i=t.at(-1);if(i&&i.preset===r)i.nodes.push(n);else{let o=typeof n.presetAmount=="number"?n.presetAmount:1;t.push({...r?{preset:r}:{},amount:Math.min(1,Math.max(0,o)),nodes:[n]})}}return t}function rf(e){return En(e).map(t=>{let n=An(t.type,t.params),r=n.poles!==void 0?`:${n.poles}`:"",i=String(n.poles)==="1"?`@${n.frequency}`:"",o=t.type==="phaser"?`~${n.type}`:"",a=t.fromPreset?`%${t.fromPreset}`:"";return`${t.type}${r}${i}${o}${a}`}).join("|")}function uf(e,t,n=0){var m;let r=e.createGain(),i=e.createGain(),o=[],a=[],l=nf(En(t)),s=r;for(let f of l){let p=null;if(f.preset){let b=e.createGain(),v=e.createGain(),x=e.createGain(),_=e.createGain();x.gain.value=f.amount,v.gain.value=1-f.amount,s.connect(b),b.connect(v).connect(_),p={entry:b,wet:x,dry:v,join:_},s=b}for(let b of f.nodes){let v=Gx(e,b.type,b.params??{},n);s.connect(v.input),s=v.output,o.push({...b.id?{id:b.id}:{},type:b.type,handle:v})}p&&f.preset&&(s.connect(p.wet).connect(p.join),a.push({id:f.preset,...p}),s=p.join)}s.connect(i);let u=rf(t),c={};for(let f of a)(c[m=f.id]??(c[m]=[])).push(...Ya(f.wet.gain,f.dry.gain));return{input:r,output:i,presets:c,nodes:o,update(f){if(rf(f)!==u)return!1;En(f).forEach((b,v)=>{let x=o[v];x&&(x.handle.update(An(b.type,b.params)),b.id===void 0?delete x.id:x.id=b.id)});let p=0;for(let b of nf(En(f))){if(!b.preset)continue;let v=a[p++];!v||v.id!==b.preset||(v.wet.gain.value=b.amount,v.dry.gain.value=1-b.amount)}return!0},dispose(){for(let{handle:f}of o)f.dispose();for(let{entry:f,wet:p,dry:b,join:v}of a)f.disconnect(),p.disconnect(),b.disconnect(),v.disconnect();r.disconnect(),i.disconnect()}}}var cf={version:1,nodes:[]},df={version:1,lanes:[]};function ff(e,t){let n=(typeof e.getAttribute=="function"?e.getAttribute(tt):null)??"";if(!n)return df;try{return wl(Dr(n),t)}catch{return df}}function an(e){let t=(typeof e.getAttribute=="function"?e.getAttribute(Rt):null)??"";if(!t)return{chain:cf,raw:""};try{return{chain:Sl(t),raw:t}}catch{return{chain:cf,raw:""}}}function mf(e){return ff(e,an(e).chain)}function Si(e,t,n,r,i){let{chain:o}=an(t),a=null,l=[],s=!1,u=0,c=()=>{try{a?(n.disconnect(a.input),a.output.disconnect(r),a.dispose()):n.disconnect(r)}catch{}a=null},m=(T,M)=>{if(T.nodes.length===0){n.connect(r);return}if(lf(T)&&!$a(e)){n.connect(r);let F=++u;ja(e).then(()=>{s||F!==u||x(an(t).chain)}).catch(()=>{});return}try{let F=uf(e,T,M);n.connect(F.input),F.output.connect(r),a=F}catch{n.connect(r)}},f=(T,M)=>{l=M&&a?Qd(ff(t,T),T,a.nodes,M,a.presets):[]},p=i?{...i}:null;m(o,p?.elapsed??0),f(o,p);let b=()=>{if(!p)return null;let T=typeof e.currentTime=="number"?e.currentTime:p.scheduledAt;return{scheduledAt:T,elapsed:p.elapsed+(T-p.scheduledAt)*p.rate,rate:p.rate}},v=T=>{let M=b();M&&(on(l,M.scheduledAt),f(T,M))},x=T=>{let M=b();on(l,M?.scheduledAt??0),c(),m(T,M?.elapsed??0),f(T,M)},_=null,R=t;return typeof MutationObserver<"u"&&typeof R?.nodeType=="number"&&(_=new MutationObserver(()=>{let T=an(t);l.length>0&&lr(l),!a||!a.update(T.chain)?x(T.chain):v(T.chain)}),_.observe(R,{attributes:!0,attributeFilter:[Rt,tt]})),{reanchor:T=>{if(s)return;let M=b();M&&on(l,M.scheduledAt),p={...T},f(an(t).chain,p)},setRate:T=>{let M=b();s||!M||!Number.isFinite(T)||T<=0||T===M.rate||(p={...M,rate:T},on(l,M.scheduledAt),f(an(t).chain,p))},dispose:()=>{s=!0,_?.disconnect(),l.length>0&&on(l,typeof e.currentTime=="number"?e.currentTime:0),a?.dispose()}}}var pf="runtime_web_audio_bypass";function Ja(e,t){return typeof e.getAttribute=="function"?e.getAttribute(t):null}function dr(e,t){return Ja(e,t)!==null}function Bx(e){return dr(e,"crossorigin")?!0:e.crossOrigin!=null}function Ux(e){return typeof e.baseURI=="string"&&e.baseURI?e.baseURI:typeof document<"u"?document.baseURI:""}function Wx(e){let t=typeof e.currentSrc=="string"?e.currentSrc:"";if(t)return[t];let n=Ja(e,"src");if(n)return[n];if(typeof e.querySelectorAll!="function")return[];let r=[];for(let i of Array.from(e.querySelectorAll("source"))){let o=i.getAttribute("src");o&&r.push(o)}return r}function Vx(e,t){if(typeof window>"u")return!1;let n;try{n=new URL(e,Ux(t))}catch{return!1}return n.protocol!=="http:"&&n.protocol!=="https:"||n.origin===window.location.origin?!1:!Bx(t)}function gf(e){return(typeof e.currentSrc=="string"?e.currentSrc:"")?!0:dr(e,"src")}function sn(e){for(let t of Wx(e))if(Vx(t,e))return{kind:"decode-only",reason:"cross_origin_no_cors",asset:t};return{kind:"web-audio"}}function zx(e){let t=[];dr(e,Rt)&&t.push("fx-chain"),dr(e,tt)&&t.push("automation"),dr(e,Pr)&&t.push("audio-group");let n=Number.parseFloat(Ja(e,"data-volume")??"");return Number.isFinite(n)&&n>1&&t.push("above-unity-gain"),t}function qx(){return typeof window<"u"&&!!window.__HF_EXPORT_RENDER_SEEK_CONFIG}var hf=new WeakSet;function ln(e,t){if(t.kind==="web-audio"||qx()||hf.has(e))return;let n=zx(e);hf.add(e);let r={asset:t.asset,reason:t.reason,lostProcessing:n,note:"cross-origin media without a `crossorigin` opt-in is silent through createMediaElementSource (Web Audio spec); using native playback instead"};xe({source:"hf-preview",type:"diagnostic",code:pf,details:r});let i=n.length>0?` Native playback cannot reproduce: ${n.join(", ")} \\u2014 proxy or download the asset to a same-origin URL to keep it.`:"";console.info(`[hyperframes] ${pf}: "${t.asset}" (${t.reason}): Web Audio capture withheld; the track plays through native HTMLMediaElement output.${i}`)}function Qa(e){return!Number.isFinite(e)||e<=0?1:e}function bf(e){return Le(e)}function $x(e,t){t||e.paused||!Ar().__hfDebug||console.debug("[hyperframes] webAudioTransport claimed fallback-playing element:",e.currentSrc||e.getAttribute("src")||"")}function jx(e,t){let{elapsed:n,mediaStart:r,scheduledAt:i,globalRate:o,mediaRate:a,clipDuration:l}=t,s=Number.isFinite(l)&&l>0,u=l*a;if(n>=0){let m=n*a,f=u-m;return s&&f<=0?!1:(s?e.start(0,m+r,f):e.start(0,m+r),!0)}let c=-n/o;return s?e.start(i+c,r,u):e.start(i+c,r),!0}function Ai(e,t,n){let r=Zd(mf(e));r&&za([{param:t.gain}],r,Lr.scale,n)}function fr(e){return e.sourceKind==="buffer"}var Ei=class{constructor(){ge(this,"_ctx",null);ge(this,"_bufferCache",new Map);ge(this,"_failedSrcs",new Set);ge(this,"_mediaElementSources",new WeakMap);ge(this,"_activeSources",[]);ge(this,"_masterGain",null);ge(this,"_masterVolume",1);ge(this,"_masterMuted",!1);ge(this,"_groups",new Map);ge(this,"_rateAnchorCtx",0);ge(this,"_rateAnchorComp",0);ge(this,"_rate",1);ge(this,"_paused",!0);ge(this,"_playGeneration",0)}async init(){try{return this._ctx=new AudioContext,this._masterGain=this._ctx.createGain(),this._masterGain.connect(this._ctx.destination),this.applyMasterGain(),!0}catch{return!1}}get context(){return this._ctx}getTime(){return!this._ctx||this._paused?-1:this._rateAnchorComp+(this._ctx.currentTime-this._rateAnchorCtx)*this._rate}async decodeAudioElement(t){let n=t.currentSrc||t.getAttribute("src");if(!n)return null;if(this._bufferCache.has(n))return this._bufferCache.get(n);if(this._failedSrcs.has(n)||!this._ctx)return null;let r;try{let i=await fetch(n,{cache:"no-store"});if(!i.ok)return L("webAudioTransport.fetch",new Error(`${i.status} ${n}`)),null;r=await i.arrayBuffer()}catch(i){return L("webAudioTransport.fetch",i),null}try{let i=await this._ctx.decodeAudioData(r);return this._bufferCache.set(n,i),i}catch(i){return this._failedSrcs.add(n),L("webAudioTransport.decode",i),null}}startGeneration(){return this._playGeneration+=1,this._playGeneration}currentGeneration(){return this._playGeneration}acquireMediaElementSource(t){let n=this._mediaElementSources.get(t);if(n){let o=sn(t);if(o.kind!=="web-audio"){try{n.disconnect()}catch{}return this._mediaElementSources.delete(t),ln(t,o),null}return n}if(!this._ctx)return null;let r=sn(t);if(r.kind!=="web-audio")return ln(t,r),null;let i=this._ctx.createMediaElementSource(t);return this._mediaElementSources.set(t,i),i}async scheduleMediaElementPlayback(t,n,r,i,o,a,l=1){if(!this._ctx||!this._masterGain||a!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),a!==this._playGeneration)return null;let s=this.acquireMediaElementSource(t);if(!s)return null;let u=Qa(l),c=this._ctx.createGain();c.gain.value=o;let m=this._ctx.currentTime,f=i-n,p={scheduledAt:m,elapsed:f,rate:u},b=Si(this._ctx,t,s,c,p);c.connect(this.resolveDestination(t,m,i,u)??this._masterGain),Ai(t,c,p),this._rate=u,this._rateAnchorCtx=m,this._rateAnchorComp=i;let v={fx:b,el:t,sourceNode:s,sourceKind:"media-element",gainNode:c,compositionStart:n,mediaStart:r,scheduledAt:m,priorMuted:t.muted,priorVolume:t.volume,mediaPlaybackRate:Ce(t),bounded:!1};return t.volume=1,this._activeSources.push(v),this._paused=!1,v}catch(s){return L("webAudioTransport.mediaElementSource",s),null}}groupInput(t,n,r){let i=this._groups.get(t);if(i){if(i.generation!==this._playGeneration)try{i.reanchor(r),i.generation=this._playGeneration}catch(f){L("webAudioTransport.groupReanchor",f)}return i.input}if(!this._ctx||!this._masterGain)return null;let o=this._ctx.createGain(),a=this._ctx.createGain();a.connect(this._masterGain);let l=()=>mo(n,t),s=l(),u=this._ctx.createGain();u.gain.value=s?.hasAttribute("data-hidden")?0:1,u.connect(a);let c=this._ctx.createGain();c.gain.value=bf(fo(s)),c.connect(u);let m=Si(this._ctx,s??{getAttribute:()=>null},o,c,r);return s&&Ai(s,c,r),this._groups.set(t,{input:o,fader:c,muteGain:u,fx:m,generation:this._playGeneration,reanchor:f=>{lr([{param:c.gain}]);let p=l();c.gain.value=bf(fo(p)),u.gain.value=p?.hasAttribute("data-hidden")?0:1,m?.reanchor(f),p&&Ai(p,c,f)},dispose:()=>{try{m?.dispose(),o.disconnect(),c.disconnect(),u.disconnect(),a.disconnect()}catch{}}}),o}setGroupMuted(t,n){let r=this._groups.get(t);if(r)try{r.muteGain.gain.value=n?0:1}catch(i){L("webAudioTransport.setGroupMuted",i)}}resolveDestination(t,n,r,i){if(!this._masterGain)return null;let o=Rl(t);if(!o)return this._masterGain;let a={scheduledAt:n,elapsed:r,rate:i};return this.groupInput(o,t.ownerDocument,a)??this._masterGain}handleSourceEnded(t,n,r,i){let o=this._activeSources.indexOf(n);if(o!==-1){this._activeSources.splice(o,1),r.muted=i;try{t.disconnect(),n.fx?.dispose(),n.gainNode.disconnect()}catch{}this._activeSources.length===0&&(this._paused=!0)}}async schedulePlayback(t,n,r,i,o,a,l,s=1,u=Number.POSITIVE_INFINITY){if(!this._ctx||!this._masterGain||l!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),l!==this._playGeneration)return null;let c=Qa(s),m=Ce(t),f=c*m,p=this._ctx.createBufferSource();p.buffer=n,p.playbackRate.value=f;let b=this._ctx.createGain();b.gain.value=a;let v=o-r,x=this._ctx.currentTime,_={scheduledAt:x,elapsed:v,rate:c},R=Si(this._ctx,t,p,b,_);if(b.connect(this.resolveDestination(t,x,o,c)??this._masterGain),Ai(t,b,_),this._rate=c,this._rateAnchorCtx=x,this._rateAnchorComp=o,!jx(p,{elapsed:v,mediaStart:i,scheduledAt:x,globalRate:c,mediaRate:m,clipDuration:u}))return p.disconnect(),R?.dispose(),b.disconnect(),null;let T=t.muted;t.muted=!0,$x(t,T);let M={fx:R,el:t,sourceNode:p,sourceKind:"buffer",gainNode:b,compositionStart:r,mediaStart:i,scheduledAt:x,priorMuted:T,priorVolume:t.volume,mediaPlaybackRate:m,bounded:Number.isFinite(u)&&u>0};return this._activeSources.push(M),this._paused=!1,p.addEventListener("ended",()=>this.handleSourceEnded(p,M,t,T)),M}catch(c){return L("webAudioTransport.schedule",c),null}}setRate(t){let n=Qa(t);if(n===this._rate)return!1;this._ctx&&!this._paused&&(this._rateAnchorComp=this.getTime(),this._rateAnchorCtx=this._ctx.currentTime),this._rate=n;for(let r of this._activeSources)try{fr(r)&&(r.sourceNode.playbackRate.value=n*r.mediaPlaybackRate),r.fx?.setRate(n)}catch(i){L("webAudioTransport.setRate",i)}for(let r of this._groups.values())try{r.fx?.setRate(n)}catch(i){L("webAudioTransport.setRate.group",i)}return!0}hasBoundedActiveSources(){return this._activeSources.some(t=>fr(t)&&t.bounded)}stopAll(){for(let t of this._activeSources){try{fr(t)&&t.sourceNode.stop(),t.sourceNode.disconnect(),t.fx?.dispose(),t.gainNode.disconnect()}catch{}fr(t)?t.el.muted=t.priorMuted:t.el.volume=t.priorVolume}this._activeSources=[],this._paused=!0}setVolume(t){this._masterVolume=Math.max(0,Math.min(1,t)),this.applyMasterGain()}setElementVolume(t,n){let r=Le(n);for(let i of this._activeSources)if(i.el===t)try{i.sourceKind==="media-element"&&(i.el.volume=1),i.gainNode.gain.value=r}catch(o){L("webAudioTransport.setElementVolume",o)}}setMuted(t){this._masterMuted=t,this.applyMasterGain()}applyMasterGain(){this._masterGain&&(this._masterGain.gain.value=this._masterMuted?0:this._masterVolume)}isActive(){return this._activeSources.length>0&&!this._paused}ownsElement(t){return!this._paused&&this._activeSources.some(n=>n.el===t&&fr(n))}routesElement(t){return!this._paused&&this._activeSources.some(n=>n.el===t)}destroy(){this.stopAll();for(let t of this._groups.values())t.dispose();if(this._groups.clear(),this._bufferCache.clear(),this._failedSrcs.clear(),this._mediaElementSources=new WeakMap,this._ctx)try{this._ctx.close()}catch{}this._ctx=null,this._masterGain=null,this._masterVolume=1,this._masterMuted=!1}};var xf="data-hf-studio-manual-edit-gesture";function yf(e){return!Number.isInteger(e.tick)||e.tick<=0||e.tick%60!==0?!1:!(e.isPlaying&&e.hasCapturedTimeline&&e.currentTimeSeconds<2)}var Kx=/^\\s*spring\\(\\s*([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+))\\s*\\)\\s*$/;function vf(e){return Math.max(0,Math.min(1,e))}function Sf(e){let t=Kx.exec(e);if(!t)return null;let n=Number(t[1]);return Number.isFinite(n)?vf(n):null}function Af(e,t){if(!Number.isFinite(e))return e;if(e<=0)return 0;if(e>=1)return 1;let n=vf(t),r=12-n*6,i=Math.PI*2*(1+n*1.5),o=1-Math.exp(-r)*Math.cos(i);return(1-Math.exp(-r*e)*Math.cos(i*e))/o}var Yx=/^\\s*wiggle\\(\\s*(\\d+)\\s*,\\s*(easeOut|easeInOut|anticipate|uniform)\\s*(?:,\\s*([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?)\\s*)?\\)\\s*$/,Xx=Math.PI*2;function Jx(e){let t=Yx.exec(e);if(!t)return null;let n=Number(t[1]);if(!Number.isSafeInteger(n)||n<1)return null;let r=t[2];if(r!=="easeOut"&&r!=="easeInOut"&&r!=="anticipate"&&r!=="uniform")return null;if(t[3]===void 0)return{wiggles:n,type:r};let i=Number(t[3]);return!Number.isFinite(i)||i<0||i>1?null:{wiggles:n,type:r,amplitude:i}}function Qx(e,t,n,r){if(!Number.isFinite(e))return e;if(e<=0)return 0;if(e>=1)return 1;let i=r??(n==="easeInOut"?.08:n==="uniform"?.14:n==="anticipate"?.12:.16),o=n==="easeInOut"?i*Math.sin(Math.PI*e):n==="uniform"?i:i*(1-e);return e+(n==="anticipate"?-1:1)*o*Math.sin(Xx*t*e)}function Ef(e,t){let n=Jx(e);if(!n)return null;let r=`${n.wiggles}:${n.type}:${n.amplitude??"default"}`,i=t?.get(r);if(i)return i;let o=a=>Qx(a,n.wiggles,n.type,n.amplitude);return t?.set(r,o),o}var Zx=24,wf=e=>e>=1?1:0,ey=e=>e,wi=String.raw`([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)`,ty=new RegExp(String.raw`^\\s*M\\s*0\\s*,\\s*0\\s+C\\s*${wi}\\s*,\\s*${wi}\\s+${wi}\\s*,\\s*${wi}\\s+1\\s*,\\s*1\\s*$`,"i");function Cf(e,t,n){let r=1-e;return 3*r*r*e*t+3*r*e*e*n+e*e*e}function ny(e,t,n,r,i){if(!Number.isFinite(e))return e;if(e<=0)return 0;if(e>=1)return 1;let o=0,a=1;for(let l=0;l<Zx;l+=1){let s=(o+a)/2;Cf(s,t,r)<e?o=s:a=s}return Cf((o+a)/2,n,i)}function ry(e){let t=ty.exec(e);if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]),o=Number(t[4]);return Math.min(n,i)<0||Math.max(n,i)>1?null:a=>ny(a,n,r,i,o)}function iy(e,t){if(!e.startsWith("spring("))return null;let n=Sf(e);if(n===null)return null;let r=t.get(n);if(r)return r;let i=o=>Af(o,n);return t.set(n,i),i}function oy(e,t){if(!e.startsWith("custom(")||!e.endsWith(")"))return null;let n=e.slice(7,-1),r=t.get(n);if(r)return r;let i=ry(n);return i&&t.set(n,i),i}function _f(e){if(e.__hfCustomEaseInstalled)return!0;let t=e.parseEase;if(!t)return!1;let n=new Map,r=new Map,i=new Map,o=s=>typeof s!="string"?null:s==="hold"?wf:Ef(s,i)??iy(s,r)??oy(s,n),a=(s,u,c=[])=>{let m=o(s);return m||(typeof s=="string"&&/^(?:hold|spring|wiggle|custom)(?:\\(|$)/.test(s.trim())&&Ne("custom_ease_parse_failed",{ease:s}),t.call(u,s,...c)??ey)};e.parseEase=function(u,...c){return a(u,this,c)};let l=e.registerEase;if(typeof l=="function"){l("hold",wf);let s=u=>{let c=m=>m;c.config=(...m)=>a(`${u}(${m.join(",")})`,e),l(u,c)};s("spring"),s("wiggle"),s("custom")}return e.__hfCustomEaseInstalled=!0,!0}var _i=new Map,Ci=new Map,Tf=()=>{};function Za(e){return/^[a-z][a-z0-9-]{0,63}$/.test(e)}function es(e,t){let n=Ci.get(e);if(n)try{n(t)}catch(r){Tf(e,r)}}function Rf(e){Tf=e}function Ti(e,t){Za(e)&&(_i.set(e,t),es(e,t))}function Ri(e){Za(e)&&(_i.delete(e),es(e,void 0))}function kf(e,t){if(!Za(e))throw new Error(`Invalid HyperFrames runtime-data channel: ${e}`);return Ci.set(e,t),_i.has(e)&&es(e,_i.get(e)),()=>{Ci.get(e)===t&&Ci.delete(e)}}var ts="data-hf-authored-duration",ns="data-hf-authored-end",Mf=!1;function at(e){if(e){if(typeof e.pause!="function"){Mf||(Mf=!0,Ne("timeline_missing_pause",{}));return}try{e.pause()}catch(t){L("runtime.timeline.pause",t)}}}function ay(){let e=window.__HF_EXPORT_RENDER_SEEK_CONFIG,t=e?.fps,n=e?.fpsSource,r=Number(t);return!e||t==null?{fps:null,source:"default",rawFpsSource:n,rawFps:t,fallbackReason:"missing"}:!Number.isFinite(r)||r<=0?{fps:null,source:"default",rawFpsSource:n,rawFps:t,fallbackReason:"invalid"}:{fps:r,source:n==="render-options"||n==="default"?n:"unknown",rawFpsSource:n,rawFps:t,fallbackReason:e.fpsFallbackReason}}function Ff(){let e=gu();Is(xe),Rf((d,h)=>{xe({source:"hf-preview",type:"runtime-data-error",channel:d,message:h instanceof Error?h.message:String(h)})}),ci(document),Na(document),kl(document);let t=ay();e.canonicalFps=t.fps??e.canonicalFps,Ls(e.canonicalFps),window.__HF_EXPORT_RENDER_SEEK_CONFIG&&console.info("[hyperframes] render runtime fps",{canonicalFps:e.canonicalFps,source:t.source,rawFpsSource:t.rawFpsSource,rawFps:t.rawFps,fallbackReason:t.fallbackReason});let n=null,r=null,i=null,o=[],a=new Set,l=null,s=new Set,u=(d,h,g)=>{s.has(d)||(s.add(d),Ne(h,g))};if(typeof window.__hfRuntimeTeardown=="function")try{window.__hfRuntimeTeardown()}catch(d){L("runtime.init.site1",d)}let c=new vi;e.transportClock=c;let m=new Ei,f=!1;m.init().then(d=>{f=d}),window.__hf=window.__hf||{};let p=d=>d.closest("[data-hidden]")!==null||Or(d.ownerDocument,d),b=()=>{let d=window.gsap,h=window;if(!(!d?.registerPlugin||h.__hfAutoNoopRegistered))try{d.registerPlugin({name:"_auto",init:()=>!1}),h.__hfAutoNoopRegistered=!0}catch(g){u("auto_marker_install_failed","auto_marker_install_failed",{reason:"threw"}),L("runtime.autoMarker.install",g)}},v=()=>{let d=window.gsap;if(!d){u("custom_ease_missing_gsap","custom_ease_install_failed",{reason:"missing_gsap"});return}try{_f(d)||u("custom_ease_no_parse_ease","custom_ease_install_failed",{reason:"no_parseEase"})}catch(h){u("custom_ease_install_threw","custom_ease_install_failed",{reason:"threw"}),L("runtime.customEase.install",h)}};b(),v(),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");try{Ws(document)}catch(d){L("runtime.init.cssVariables",d)}window.__timelines=window.__timelines||{};let x=()=>{let d=document.querySelector(\'[data-composition-id][data-root="true"]\');if(d instanceof HTMLElement)return d;let h=Array.from(document.querySelectorAll("[data-composition-id]"));return h.find(g=>!g.parentElement?.closest("[data-composition-id]"))??h[0]??null};if(Array.isArray(window.__timelines)){let d=window.__timelines,h=x()?.getAttribute("data-composition-id")??"root",g={};if(d.length===1)g[h]=d[0];else for(let y=0;y<d.length;y++)g[`tl-${y}`]=d[y];window.__timelines=g}let _=x();_&&!_.hasAttribute("data-start")&&_.setAttribute("data-start","0");let R=d=>{o.push(d)},T=(d,h,g)=>{let y=g??`${d}:${JSON.stringify(h)}`;a.has(y)||(a.add(y),xe({source:"hf-preview",type:"diagnostic",code:d,details:h}))},M=d=>{let h={scale:1,focusX:960,focusY:540},g=[],y=[],w={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:()=>h,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>g,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:()=>y,getRenderState:()=>({...w,time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying()})}},F=1/60,E=.75,S=.05,A=100,C=240,N=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??"")}},I=d=>{let h=d.toLowerCase();return h.includes("cannot read properties of null")||h.includes("cannot set properties of null")?{code:"runtime_null_dom_access",category:"dom-null-access"}:h.includes("failed to execute \'queryselector\'")?{code:"runtime_invalid_selector",category:"selector-invalid"}:h.includes("is not defined")?{code:"runtime_reference_missing",category:"reference-missing"}:{code:"runtime_script_error",category:"script-error"}},W=d=>{if(d==null||d.trim()==="")return null;let h=Number.parseFloat(d);return!Number.isFinite(h)||h<=0?null:`${h}px`},B=()=>x(),oe=()=>{let d=B();if(!d)return;let h=W(d.getAttribute("data-width")),g=W(d.getAttribute("data-height"));h&&(d.style.width=h),g&&(d.style.height=g),h&&d.style.setProperty("--comp-width",h),g&&d.style.setProperty("--comp-height",g)},k=()=>{let d=B(),h=Array.from(document.querySelectorAll("[data-composition-id]")).filter(g=>g.hasAttribute("data-duration")||g.hasAttribute("data-end"));for(let g of h){if(d&&g===d)continue;let y=g.getAttribute("data-duration"),w=g.getAttribute("data-end");y!=null&&!g.hasAttribute(ts)&&g.setAttribute(ts,y),w!=null&&!g.hasAttribute(ns)&&g.setAttribute(ns,w),g.removeAttribute("data-duration"),g.removeAttribute("data-end")}},V=()=>{let d=B();if(!d)return;d.style.position||(d.style.position="relative"),d.style.overflow="hidden";let h=W(d.getAttribute("data-width")),g=W(d.getAttribute("data-height"));h&&(d.style.width=h),g&&(d.style.height=g);let y=Array.from(d.children);for(let w of y){let D=w.tagName.toLowerCase();if(D==="script"||D==="style"||D==="link"||D==="meta"||!w.hasAttribute("data-start")||w.hasAttribute("data-hf-autostamped"))continue;let U=(w.style.top==="0px"||w.style.top==="0")&&(w.style.left==="0px"||w.style.left==="0")&&w.style.width==="100%"&&w.style.height==="100%",ne=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(w.style.transform);if(U&&ne&&!w.hasAttribute("data-width")&&!w.hasAttribute("data-height")){let te=w.style.top,Tt=w.style.left,ye=w.style.width,gn=w.style.height;w.style.top="",w.style.left="",w.style.width="",w.style.height="";let ae=window.getComputedStyle(w);ae.top!=="auto"||ae.bottom!=="auto"||ae.left!=="auto"||ae.right!=="auto"||ae.width!=="0px"||ae.height!=="0px"||(w.style.top=te,w.style.left=Tt,w.style.width=ye,w.style.height=gn)}let $=window.getComputedStyle(w),de=$.position;if(de!=="absolute"&&de!=="fixed"&&(w.style.position="absolute"),!!w.style.top||!!w.style.bottom||$.top!=="auto"||$.bottom!=="auto"||(w.style.top="0"),!!w.style.left||!!w.style.right||$.left!=="auto"||$.right!=="auto"||(w.style.left="0"),D!=="audio"){let te=W(w.getAttribute("data-width")),Tt=W(w.getAttribute("data-height")),ye=$.width!=="0px"&&$.width!=="auto",gn=$.height!=="0px"&&$.height!=="auto";te?!w.style.width&&!ye&&(w.style.width=te):!w.style.width&&$.width==="0px"&&(w.style.width="100%"),Tt?!w.style.height&&!gn&&(w.style.height=Tt):!w.style.height&&$.height==="0px"&&(w.style.height="100%")}}},Q=(d,h=0,g)=>mt({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:g?.includeAuthoredTimingAttrs??!0}).resolveStartForElement(d,h),G=(d,h)=>mt({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:h?.includeAuthoredTimingAttrs??!0}).resolveDurationForElement(d),H=d=>{let h=d.closest("[data-composition-id]"),g=h?Q(h,0):null,y=h?G(h,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:h,inheritedStart:g,inheritedDuration:y}},z=d=>{let h=H(d),g=h.inheritedStart??0,y=Bt(d.getAttribute("data-start"));if(d.hasAttribute("data-hf-auto-start")||y==null||g<=0)return Q(d,g);let w=h.inheritedDuration,D=w!=null&&w>0?g+w:null;return y>=g&&(D==null||y<D)?y:g+y};window.__hfResolveMediaStartSeconds=z,o.push(()=>{window.__hfResolveMediaStartSeconds===z&&delete window.__hfResolveMediaStartSeconds});let X=(d,h)=>{let g=d.tagName.toLowerCase();if(g==="script"||g==="style"||g==="link"||g==="meta")return!1;let w=g==="video"||g==="audio"?z(d):Q(d,0),D=G(d),U=d.getAttribute("data-composition-id");if(U){let $=(window.__timelines??{})[U],de=null;if($&&typeof $.duration=="function"){let Me=Number($.duration());Number.isFinite(Me)&&Me>0&&(de=Me)}!(d.hasAttribute("data-duration")||d.hasAttribute("data-end")||d.hasAttribute(ts)||d.hasAttribute(ns))&&(D==null||D<=0)&&de!=null&&(D=de)}let ne=D!=null&&D>0?w+D:Number.POSITIVE_INFINITY;return h>=w&&(Number.isFinite(ne)?h<ne:!0)},we=!!document.querySelector("[data-composition-src]"),q=!1;{let d=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let h of d){let g=h.getAttribute("data-composition-id");if(g&&h.children.length===0&&document.querySelector(`template#${CSS.escape(g)}-template`)){q=!0;break}}}let P=!we&&!q,O=d=>{if(!d||typeof d.duration!="function")return null;try{let h=Number(d.duration());return Number.isFinite(h)?Math.max(0,h):null}catch{return null}},j=d=>typeof d=="number"&&Number.isFinite(d)&&d>F,le=d=>{let h=ve(d.getAttribute("data-duration"));return h!=null&&h>0?h:Number.isFinite(d.duration)?Ze(d,d.duration):null},ee=()=>{let d=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(d.length===0)return null;let h=0;for(let g of d){let y=z(g);if(!Number.isFinite(y))continue;let w=le(g);w==null||w<=F||(h=Math.max(h,Math.max(0,y)+w))}return h>F?h:null},K=()=>{let d=B();if(!d)return null;let h=window.__timelines??{},g=mt({timelineRegistry:h,includeAuthoredTimingAttrs:!0}),y=0,w=ve(d.getAttribute("data-duration"));w!=null&&w>0&&(y=w);let D=Array.from(d.querySelectorAll("[data-composition-id][data-start]"));for(let U of D){if(!(U instanceof Element)||U.parentElement?.closest("[data-composition-id]")!==d)continue;let $=g.resolveStartForElement(U,0),de=g.resolveDurationForElement(U);!Number.isFinite($)||de==null||de<=0||(y=Math.max(y,Math.max(0,$)+de))}return y>F?y:null},Y=()=>{let d=ee();return typeof d!="number"||!Number.isFinite(d)||d<=F?null:d},Ve=d=>j(d)?Math.max(F,d*E):F,Fe=()=>{let d=0;for(let h of e.deterministicAdapters){let g=h.getInferredDurationSeconds;if(typeof g!="function")continue;let y=null;try{y=g()}catch(w){L("runtime.init.adapterDuration",w)}typeof y=="number"&&Number.isFinite(y)&&y>0&&(d=Math.max(d,y))}return d>F?d:null},Re=(d,h=0)=>{let g=O(d),y=Y(),w=K(),D=Fe(),U=Math.max(y??0,w??0,D??0),ne=Number.isFinite(h)&&h>F?h:0,$=0;return j(g)?$=Math.max(g,U,ne):j(U)?$=Math.max(U,ne):$=ne,$>0?Math.max(0,$):0},ze=()=>{let d=window.__timelines??{},h=ae=>{let re=Object.entries(d).filter(se=>!!se[1]&&typeof se[1].play=="function"&&typeof se[1].pause=="function");if(re.length!==1)return{timeline:null};let he=re[0];if(!he)return{timeline:null};let[be,fe]=he;return{timeline:fe,selectedTimelineIds:[be],selectedDurationSeconds:O(fe),diagnostics:{code:"root_timeline_sole_registered_fallback",details:{reason:ae,soleTimelineId:be}}}},g=mt({timelineRegistry:d,includeAuthoredTimingAttrs:!0}),y=Y(),w=K(),D=Math.max(y??0,w??0)||null,U=Ve(D),ne=ae=>{let re=document.querySelector(`[data-composition-id="${CSS.escape(ae)}"]`);return re?g.resolveStartForElement(re,0):0},$=ae=>{let re=window.gsap;if(!re||typeof re.timeline!="function")return null;let he=re.timeline({paused:!0});for(let be of ae)he.add(be.timeline,ne(be.compositionId));return he},de=(ae,re)=>{if(!j(ae))return null;let he=window.gsap;if(!he||typeof he.timeline!="function")return null;let be=he.timeline({paused:!0});if(re)try{be.add(re,0)}catch(se){L("runtime.init.site2",se)}let fe=be;if(typeof fe.to=="function")try{fe.to({},{duration:ae})}catch(se){L("runtime.init.site3",se)}return be},Ge=(ae,re)=>{let he=ae;if(typeof he.getChildren!="function")return[];try{let be=he.getChildren(!0,!0,!0)??[];if(!Array.isArray(be))return[];let fe=[];for(let se of re)if(!be.some(Qe=>Qe===se.timeline))try{let Qe=ne(se.compositionId);ae.add(se.timeline,Qe),fe.push(se.compositionId)}catch(Qe){L("runtime.init.site4",Qe)}return fe}catch{return[]}},Me=B(),J=Me?.getAttribute("data-composition-id")??null;if(!J)return h("root_missing_composition_id");let te=d[J]??null,ye=(()=>{if(!Me)return[];let ae=new Set,re=Array.from(Me.querySelectorAll("[data-composition-id]")),he=[];for(let be of re){let fe=be.getAttribute("data-composition-id");if(!fe||fe===J||ae.has(fe))continue;ae.add(fe);let se=d[fe]??null;if(!se||typeof se.play!="function"||typeof se.pause!="function")continue;let lt=O(se);he.push({compositionId:fe,timeline:se,durationSeconds:lt??0})}return he})(),gn=ae=>{for(let re of ae){let he=re.timeline;if(typeof he.paused=="function")try{he.paused(!1)}catch(be){L("runtime.init.site5",be)}}};if(ye.length>0&&gn(ye),te){let ae=ye.length>0?Ge(te,ye):[];if((ye.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+J+"\'])"))&&(Pi=!0),ae.length>0)try{let fe=te.time();te.seek(fe,!1)}catch{}let re=O(te);if(!j(re)&&ye.length>0){let fe=ye.map(Lm=>Lm.compositionId),se=$(ye),lt=O(se);if(se&&j(lt))return{timeline:se,selectedTimelineIds:fe,selectedDurationSeconds:lt,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:J,rootDurationSeconds:re,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:U,selectedDurationSeconds:lt,mediaDurationFloorSeconds:y,authoredCompositionDurationFloorSeconds:w,selectedTimelineIds:fe,autoNestedChildren:ae}}};let Qe=de(D??0,te),Ki=O(Qe);if(Qe&&j(Ki))return{timeline:Qe,selectedTimelineIds:[J],selectedDurationSeconds:Ki,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:J,rootDurationSeconds:re,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:y,authoredCompositionDurationFloorSeconds:w,selectedDurationSeconds:Ki,selectedTimelineIds:[J],autoNestedChildren:ae}}}}if(!j(re)&&ye.length===0){let fe=de(D??0,te),se=O(fe);if(fe&&j(se))return{timeline:fe,selectedTimelineIds:[J],selectedDurationSeconds:se,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:J,rootDurationSeconds:re,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:y,authoredCompositionDurationFloorSeconds:w,selectedDurationSeconds:se,selectedTimelineIds:[J]}}}}let he=ve(Me?.getAttribute("data-duration")),be=Math.max(j(he)?he:0,w??0);if(be>0&&j(be)&&j(re)&&be>=re+.5){let fe=te;if(typeof fe.to=="function")try{fe.to({},{duration:0},be)}catch(lt){L("runtime.init.site6",lt)}let se=O(te);if(j(se))return{timeline:te,selectedTimelineIds:[J],selectedDurationSeconds:se,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:J,rootDurationSeconds:re,rootDeclaredDur:he,authoredCompositionDurationFloorSeconds:w,newDur:se}}}}return{timeline:te,selectedTimelineIds:[J],selectedDurationSeconds:re,mediaDurationFloorSeconds:y,diagnostics:ae.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:J,selectedDurationSeconds:re,autoNestedChildren:ae}}:void 0}}if(ye.length>0){let ae=ye.map(be=>be.compositionId),re=$(ye),he=O(re);if(re)return{timeline:re,selectedTimelineIds:ae,selectedDurationSeconds:he,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:J,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:U,selectedDurationSeconds:he,mediaDurationFloorSeconds:y,selectedTimelineIds:ae}}}}return h("root_composition_id_unmatched_in_registry")},Pi=!1,fm=d=>{let h=window.gsap,g=d;if(!(!g||typeof g.getChildren!="function"||!h||typeof h.parseEase!="function"))for(let y of g.getChildren(!0,!0,!0)){let w=y,D=w.timeline;if(!D||!("_ease"in D)||typeof D._ease=="function")continue;let U=w.vars?.keyframes,$=(U&&!Array.isArray(U)?U.ease:void 0)??w.vars?.ease??"none";try{let de=h.parseEase($);typeof de=="function"&&(D._ease=de)}catch(de){Ne("keyframe_ease_repair_failed",{ease:typeof $=="string"?$:String($)}),L("runtime.keyframeEase.repair",de)}}},dn=()=>{if(v(),!P)return!1;let d=e.capturedTimeline,h=O(d),g=j(h);if(d&&g&&Pi)return!1;let y=ze();if(!y.timeline)return!1;if(d&&d===y.timeline)return typeof d.timeScale=="function"&&d.timeScale(e.playbackRate),!1;e.capturedTimeline=y.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate),fm(e.capturedTimeline);let w=Re(e.capturedTimeline,0);if(w<=0&&typeof e.capturedTimeline.progress=="function"&&(e.capturedTimeline.progress(1,!0),e.capturedTimeline.progress(0,!1),at(e.capturedTimeline)),w>0){try{c.setDuration(w)}catch{}if(typeof e.capturedTimeline.totalTime=="function"){typeof e.capturedTimeline.progress=="function"&&e.capturedTimeline.progress(1e-4,!0);let U=Math.max(0,e.currentTime||0);e.capturedTimeline.totalTime(U,!1),at(e.capturedTimeline)}let D=window.__hfStudioManualEditsApply;typeof D=="function"&&D(),ci(document)}if(y.diagnostics&&xe({source:"hf-preview",type:"diagnostic",code:y.diagnostics.code,details:y.diagnostics.details}),xe({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:y.selectedTimelineIds??[],selectedDurationSeconds:y.selectedDurationSeconds??null,mediaDurationFloorSeconds:y.mediaDurationFloorSeconds??null}}),window.parent!==window){let D=B(),U=w>0?w:0,ne=String(U>0?U:1),$=new Set,de=J=>J.tagName.toLowerCase()===Wt,Ge=new Set(document.querySelectorAll("[data-start]")),Me=J=>{let te=J.parentElement;for(;te&&te!==D;){if(Ge.has(te))return!0;te=te.parentElement}return!1};if(e.capturedTimeline.getChildren)try{for(let J of e.capturedTimeline.getChildren(!0))if(typeof J.targets=="function")for(let te of J.targets())te instanceof HTMLElement&&te!==D&&(de(te)||te.hasAttribute("data-start")||Me(te)||$.has(te)||($.add(te),te.setAttribute("data-start","0"),te.setAttribute("data-duration",ne),te.setAttribute("data-hf-autostamped","1")))}catch{}if(D instanceof HTMLElement)for(let J of D.querySelectorAll("[id]"))J instanceof HTMLElement&&J!==D&&(J.hasAttribute("data-start")||Me(J)||$.has(J)||J.tagName==="SCRIPT"||J.tagName==="STYLE"||J.tagName==="LINK"||de(J)||($.add(J),J.setAttribute("data-start","0"),J.setAttribute("data-duration",ne),J.setAttribute("data-hf-autostamped","1")))}for(let D of fn)hr.delete(D),xs(D);return!0};window.__hfForceTimelineRebind=()=>{Pi=!1,dn(),Ui(e.currentTime)};let mm=()=>{let d=B();if(!(d instanceof HTMLElement))return;let h=d.getBoundingClientRect(),g=Number(d.getAttribute("data-width")),y=Number(d.getAttribute("data-height")),w=window.getComputedStyle(d),D=Number.isFinite(g)&&g>0&&Number.isFinite(y)&&y>0,U=h.width<=0||h.height<=0||d.clientWidth<=0||d.clientHeight<=0;!D||!U||T("root_stage_layout_zero",{compositionId:d.getAttribute("data-composition-id")??null,declaredWidth:g,declaredHeight:y,rectWidth:Math.round(h.width),rectHeight:Math.round(h.height),clientWidth:d.clientWidth,clientHeight:d.clientHeight,display:w.display,visibility:w.visibility,overflow:w.overflow},`root-stage-layout-zero:${d.getAttribute("data-composition-id")??"unknown"}`)},pm=()=>{e.tornDown||(l!=null&&window.cancelAnimationFrame(l),l=window.requestAnimationFrame(()=>{l=null,mm()}))},hm=()=>{r=d=>{let h=N(d.error??d.message).slice(0,C);if(!h)return;let g=I(h);xe({source:"hf-preview",type:"diagnostic",code:g.code,details:{category:g.category,message:h,filename:d.filename||null,line:Number.isFinite(d.lineno)?d.lineno:null,column:Number.isFinite(d.colno)?d.colno:null}})},i=d=>{let h=N(d.reason).slice(0,C);if(!h)return;let g=I(h);xe({source:"hf-preview",type:"diagnostic",code:`${g.code}_unhandled_rejection`,details:{category:`${g.category}-unhandled-rejection`,message:h}})},window.addEventListener("error",r),window.addEventListener("unhandledrejection",i)},gm=()=>{let d=Array.from(document.querySelectorAll("img, video, audio, source, link[rel=\'stylesheet\']"));for(let g of d){let y=()=>{if(!(g instanceof Element))return;let w=g.tagName.toLowerCase(),D=g.getAttribute("src")??g.getAttribute("href")??g.getAttribute("poster")??null,U=w==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";T(U,{tagName:w,assetUrl:D,currentSrc:(g instanceof HTMLImageElement||g instanceof HTMLMediaElement)&&g.currentSrc||null,readyState:g instanceof HTMLMediaElement?g.readyState:null,networkState:g instanceof HTMLMediaElement?g.networkState:null},`${U}:${w}:${D??"unknown"}`)};g.addEventListener("error",y),R(()=>{g.removeEventListener("error",y)})}let h=document.fonts;h&&h.ready.then(()=>{if(e.tornDown)return;let g=Array.from(h).filter(y=>y.status==="error").map(y=>y.family).filter(y=>!!y).slice(0,10);g.length!==0&&T("runtime_font_load_issue",{failedFamilies:g,totalFaces:Array.from(h).length},`runtime-font-load-issue:${g.join("|")}`)}).catch(()=>{})},bm=(d,h)=>{if(!d.timeline)return!1;let g=e.capturedTimeline;if(g&&g===d.timeline)return!1;let y=Math.max(0,e.currentTime||0),w=e.isPlaying;e.capturedTimeline=d.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate);try{at(e.capturedTimeline),typeof e.capturedTimeline.seek=="function"&&e.capturedTimeline.seek(y,!1),w&&typeof e.capturedTimeline.play=="function"&&e.capturedTimeline.play()}catch(D){L("runtime.init.site7",D)}return xe({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:h,previousTime:y,selectedTimelineIds:d.selectedTimelineIds??[],selectedDurationSeconds:d.selectedDurationSeconds??null,mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),!0},Et=null,fs=!1,ms=!1,fn=new Set,hr=new WeakMap,gr=()=>{e.tornDown||(Et!=null&&window.clearTimeout(Et),Et=window.setTimeout(()=>{if(e.tornDown||(Et=null,ms&&window.__HF_EXPORT_RENDER_SEEK_CONFIG))return;let d=ze();if(!d.timeline||!j(d.mediaDurationFloorSeconds??null))return;if(!e.capturedTimeline){dn()&&(wt(),ke(!0));return}if(fs)return;let g=O(e.capturedTimeline),y=d.selectedDurationSeconds??O(d.timeline);j(y)&&(!j(g)||y>=g+S)&&bm(d,"manual")&&(fs=!0,xe({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:g??null,selectedDurationSeconds:y??null,selectedTimelineIds:d.selectedTimelineIds??[],mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),wt(),ke(!0))},A))},ps=d=>{d.currentTarget instanceof HTMLMediaElement&&Ol(d.currentTarget)},hs=d=>{d.currentTarget instanceof HTMLMediaElement&&Hl(d.currentTarget)},gs=d=>{d instanceof HTMLAudioElement&&gf(d)&&ln(d,sn(d))},bs=d=>{let h=d.currentTarget;h instanceof HTMLMediaElement&&gs(h)},xm=()=>{for(let d of fn)d.removeEventListener("loadedmetadata",gr),d.removeEventListener("durationchange",gr),d.removeEventListener("loadedmetadata",ps),d.removeEventListener("loadedmetadata",bs),d.removeEventListener("error",hs);fn.clear()},Oi=()=>{if(e.tornDown)return;let d=Array.from(document.querySelectorAll("video, audio"));for(let h of d){if(fn.has(h))continue;fn.add(h);let g=Number.parseFloat(h.dataset.volume??"");Number.isFinite(g)&&(h.volume=Math.max(0,Math.min(1,g))),h.addEventListener("loadedmetadata",gr),h.addEventListener("durationchange",gr),h.addEventListener("loadedmetadata",bs),gs(h),h.addEventListener("loadedmetadata",ps),h.addEventListener("error",hs),Pl(h),h.preload!=="auto"&&(h.preload="auto"),h.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&h.load(),xs(h)}},xs=d=>{hr.has(d)||gl(d,e.capturedTimeline,Re(e.capturedTimeline,0),hr,{allowLiveTimelineSeek:!window.__HF_RENDER_CAPTURE_MODE})},Hi=new WeakMap,ys=d=>{let h=Hi.get(d);if(h!==void 0)return h;let g=window.getComputedStyle(d).position,y=g==="static"||g==="relative"||g==="sticky";return Hi.set(d,y),y},Gi=new WeakMap,ym=d=>{let h=Gi.get(d);if(h!==void 0)return h;let g=d.querySelector("[data-start]")===null;return Gi.set(d,g),g},vm=()=>{Hi=new WeakMap,Gi=new WeakMap},Bi=new WeakMap,br=new WeakSet,xr=!1,vs=d=>d.matches("audio[data-start]")||d.querySelector("audio[data-start]")!==null,Ss=new WeakMap,yr=!0,Sm=()=>{if(yr){yr=!1;for(let d of document.querySelectorAll(Wt)){let h=d.hasAttribute("data-hidden");Ss.get(d)!==h&&(Ss.set(d,h),d.id&&m.setGroupMuted(d.id,h))}}},Ui=(d,h=Array.from(document.querySelectorAll("[data-start]")))=>{let g=B();for(let y of h){if(!(y instanceof HTMLElement))continue;if(y.hasAttribute("data-hidden")){br.has(y)||(Bi.set(y,y.style.getPropertyValue("display")),br.add(y),vs(y)&&(xr=!0),yr=!0),y.style.display="none",(y instanceof HTMLVideoElement||y instanceof HTMLImageElement)&&n?.setSourceVisibility(y,!1);continue}if(br.has(y)){let D=Bi.get(y);D?y.style.display=D:y.style.removeProperty("display"),Bi.delete(y),br.delete(y),vs(y)&&(xr=!0),yr=!0}let w=X(y,d);if(w){let D=y.parentElement;for(;D&&D!==g;){if(D instanceof HTMLElement&&D.hasAttribute("data-start")&&!X(D,d)){w=!1;break}D=D.parentElement}}y.style.visibility=w?"visible":"hidden",(y instanceof HTMLVideoElement||y instanceof HTMLImageElement)&&n?.setSourceVisibility(y,w),w?ys(y)&&y.style.removeProperty("display"):ys(y)&&ym(y)&&(y.style.display="none")}xr&&c.isPlaying()&&(m.stopAll(),$i()),xr=!1,Sm()},Pe=()=>{let d=Fl({shouldIncludeElement:g=>g.hasAttribute("data-start")||!!H(g).compositionRoot,resolveStartSeconds:g=>z(g),resolveDurationSeconds:g=>{let y=H(g),w=z(g),D=y.inheritedStart!=null&&y.inheritedDuration!=null&&y.inheritedDuration>0?Math.max(0,y.inheritedStart+y.inheritedDuration-w):null,U=Number.isFinite(g.duration)?Ze(g,g.duration):null,ne=ve(g.dataset.duration),$=ne!=null&&ne>0?ne:null;return Ml({isVideo:g.tagName==="VIDEO",sourceDuration:U,hostRemaining:D,explicitDuration:$})}});for(let g of d.mediaClips){let y=hr.get(g.el);y&&(g.volumeKeyframes=y)}let h=e.mediaForceSyncNextTick;h&&(e.mediaForceSyncNextTick=!1),e.nativeMediaSyncDisabled||Nl({clips:d.mediaClips,timeSeconds:e.currentTime,playing:e.isPlaying,playbackRate:e.playbackRate,outputMuted:e.mediaOutputMuted,userMuted:e.bridgeMuted,userVolume:e.bridgeVolume,forceSync:h,onElementVolume:(g,y,w)=>m.setElementVolume(g,w),isWebAudioOwned:g=>m.ownsElement(g),isWebAudioRouted:g=>m.routesElement(g),onAutoplayBlocked:()=>{e.mediaAutoplayBlockedPosted||(e.mediaAutoplayBlockedPosted=!0,xe({source:"hf-preview",type:"media-autoplay-blocked"}))}}),Ui(e.currentTime)},ke=d=>{let h=Math.max(0,Math.round((e.currentTime||0)*e.canonicalFps)),g=Date.now();(d||h!==e.bridgeLastPostedFrame||e.isPlaying!==e.bridgeLastPostedPlaying||e.bridgeMuted!==e.bridgeLastPostedMuted||g-e.bridgeLastPostedAt>=e.bridgeMaxPostIntervalMs)&&(e.bridgeLastPostedFrame=h,e.bridgeLastPostedPlaying=e.isPlaying,e.bridgeLastPostedMuted=e.bridgeMuted,e.bridgeLastPostedAt=g,xe({source:"hf-preview",type:"state",frame:h,isPlaying:e.isPlaying,muted:e.bridgeMuted,playbackRate:e.playbackRate}))},Wi="",As=0,Am=()=>{let d="";for(let h of document.querySelectorAll("[data-start]"))d+=`${h.id}:${h.tagName}|`;return d},wt=()=>{k(),oe(),V();let d=B();if(d){let y=W(d.getAttribute("data-width")),w=W(d.getAttribute("data-height")),D=y?parseInt(y,10):0,U=w?parseInt(w,10):0;D>0&&U>0&&xe({source:"hf-preview",type:"stage-size",width:D,height:U})}dn();let h=Su({canonicalFps:e.canonicalFps});window.__clipManifest=h;let g=Am();if(Wi!==g&&vm(),!window.__clipTree||Wi!==g){let y=window;window.__clipTree=bu({startResolver:mt({timelineRegistry:y.__timelines??{},includeAuthoredTimingAttrs:!0}),timelineRegistry:y.__timelines??{},rootDuration:h.durationInFrames/e.canonicalFps}),Wi=g}xe(h),pm()},Vi=d=>typeof d=="number"&&Number.isFinite(d)&&d>0?d:0,Em=d=>{let h=Vi(Number(d));if(h<=0)return;let g=B(),y=Vi(ve(g?.getAttribute("data-duration"))),w=Math.max(As,Vi(c.getDuration()),y);h<=w||(As=h,g?.setAttribute("data-duration",String(h)),c.setDuration(h),wt(),ke(!0))},Oe=(d,h=0)=>{for(let g of e.deterministicAdapters){try{d==="discover"&&g.discover(),d==="pause"&&g.pause(),d==="play"&&g.play&&g.play()}catch(y){L("runtime.init.site8",y)}if(d==="discover")try{g.seek({time:h,suppressEvents:!0})}catch(y){L("runtime.init.site9",y)}}},Ct=()=>{window.__renderReady=!1},mn=null,pn=!0,wm=()=>{let d=[];for(let h of e.deterministicAdapters){let g=h.getReadyPromise;if(typeof g=="function")try{let y=g();y&&d.push(y)}catch(y){L("runtime.init.adapterReady",y)}}return d},Cm=()=>{let d=wm();if(d.length===0)return mn=null,pn=!0,!0;let h=d[0];if(!h)return!0;let g=d.length===1?h:Promise.all(d);return g!==mn&&(mn=g,pn=!1,Promise.resolve(g).then(()=>{mn===g&&(pn=!0,Ct())},y=>{mn===g&&(pn=!0,L("runtime.init.adapterReady",y),Ct())})),pn};if(P)Ca();else{let d={injectedStyles:e.injectedCompStyles,injectedScripts:e.injectedCompScripts,injectedLinks:e.injectedCompLinks,parseDimensionPx:W,onDiagnostic:({code:h,details:g})=>{xe({source:"hf-preview",type:"diagnostic",code:h,details:g})}};fd(d).then(()=>dd(d)).finally(()=>{P=!0,Oi(),gm(),Ca(),Na(document),Ct()})}let vr=fu({postMessage:d=>xe(d)});vr.installPickerApi(),Ui(e.currentTime,Array.from(document.querySelectorAll("video[data-start], img[data-start]")));let qe=Jd();n=qe,R(()=>{qe.destroy(),n=null});let zi=d=>{let h=Number(d);!Number.isFinite(h)||h<=0?e.playbackRate=1:e.playbackRate=Math.max(.1,Math.min(5,h)),e.mediaForceSyncNextTick=!0,e.capturedTimeline&&typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate);let g=document.querySelectorAll("video, audio");for(let y of g)if(y instanceof HTMLMediaElement)try{y.playbackRate=e.playbackRate}catch(w){L("runtime.init.site10",w)}},Es={play:()=>{let d=e.capturedTimeline;if(c.isPlaying())return;let h=Re(d,0);if(h>0)c.setDuration(h),c.reachedEnd()&&(c.seek(0),e.currentTime=0,_t(0));else{let g=B(),y=Number(g?.getAttribute("data-duration")??0);y>0&&c.setDuration(y)}at(d),c.play()&&(e.isPlaying=!0,e.mediaForceSyncNextTick=!0,ks(c.now()),f&&!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&$i(),Oe("play"),Pe(),qe.redraw(),ke(!0))},pause:()=>{if(!c.isPlaying())return;m.stopAll(),c.detachAudioSource(),c.pause(),e.isPlaying=!1,e.currentTime=c.now(),e.mediaForceSyncNextTick=!0,ks(e.currentTime);let d=e.capturedTimeline;at(d),Oe("pause"),Pe(),qe.redraw(),ke(!0)},seek:(d,h)=>{let g=jt(Math.max(0,Number(d)||0),e.canonicalFps);m.stopAll(),c.detachAudioSource();let y=c.isPlaying();y&&c.pause(),c.seek(g),e.currentTime=c.now(),e.isPlaying=!1,e.mediaForceSyncNextTick=!0;let w=e.capturedTimeline;if(at(w),_t(e.currentTime),Oe("pause"),h?.keepPlaying&&y){Es.play();return}Pe(),qe.redraw(),ke(!0)},renderSeek:(d,h)=>{ms=!0;let g=jt(Math.max(0,Number(d)||0),e.canonicalFps);m.stopAll(),c.detachAudioSource(),c.isPlaying()&&c.pause(),c.seek(g),e.currentTime=c.now(),e.isPlaying=!1,e.mediaForceSyncNextTick=!0,_t(e.currentTime,{activateChildren:!0,suppressEvents:h?.suppressEvents}),Oe("pause"),Pe(),qe.redraw(),ke(!0)},getTime:()=>c.now(),getDuration:()=>{let d=c.getDuration();return Number.isFinite(d)?d:0},isPlaying:()=>c.isPlaying(),setPlaybackRate:d=>{zi(d),c.setRate(e.playbackRate),Ms()},getPlaybackRate:()=>e.playbackRate},ws=Re(e.capturedTimeline,0);ws>0&&c.setDuration(ws);let He=hu({getTimeline:()=>e.capturedTimeline,setTimeline:d=>{e.capturedTimeline=d},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>e.isPlaying,setIsPlaying:d=>{e.isPlaying!==d&&(e.mediaForceSyncNextTick=!0),e.isPlaying=d},getPlaybackRate:()=>e.playbackRate,setPlaybackRate:zi,getCanonicalFps:()=>e.canonicalFps,onSyncMedia:(d,h)=>{e.currentTime=Math.max(0,Number(d)||0),e.isPlaying!==h&&(e.mediaForceSyncNextTick=!0),e.isPlaying=h,Pe()},onStatePost:ke,onDeterministicSeek:(d,h)=>{for(let g of e.deterministicAdapters)if(!(g.name==="gsap"&&e.capturedTimeline))try{g.seek({time:Number(d)||0,suppressEvents:h?.suppressEvents})}catch(y){L("runtime.init.site11",y)}},onDeterministicPause:()=>Oe("pause"),onDeterministicPlay:()=>Oe("play"),onRenderFrameSeek:()=>{qe.redraw()},onShowNativeVideos:()=>{},getSafeDuration:()=>Re(e.capturedTimeline,0),transport:Es});window.__player=M(He),window.__playerReady=!0,Ne("composition_loaded",{duration:He.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),e.deterministicAdapters=[ll(),zs({resolveStartSeconds:d=>Q(d,0)}),$s(),Ks(),Js(),Qs(),Zs(),el(),tl(),nl(),rl(),qs({getTimeline:()=>e.capturedTimeline})],al(),sl(),window.__hfReseekGpu=d=>{let h=Math.max(0,Number(d)||0);window.__hfThreeTime=h,window.__hfTypegpuTime=h,Rr(h)},window.__hfWaitForSeekCompletion=oo,o.push(()=>{window.__hfWaitForSeekCompletion===oo&&delete window.__hfWaitForSeekCompletion}),hm(),Oi(),Oe("discover");let _m=()=>{let d=e.capturedTimeline,h=dn();e.capturedTimeline&&(h||e.capturedTimeline!==d||!He._timeline)&&(He._timeline=e.capturedTimeline);let g=Re(e.capturedTimeline,0);if(g>0&&c.setDuration(g),Oe("discover",e.currentTime),!e.capturedTimeline){let y=window.__timelines??{},w=Object.keys(y).filter(D=>y[D]);if(w.length>0){let U=B()?.getAttribute("data-composition-id")??null;T("root_timeline_unbound_registry_present",{reason:U?"root data-composition-id has no matching key in window.__timelines":"root composition element has no data-composition-id attribute",rootCompositionId:U,registeredTimelineKeys:w},"root_timeline_unbound_registry_present"),console.warn("[hyperframes] Root timeline not bound \\u2014 render will freeze at t=0. "+(U?`Root data-composition-id is "${U}" but window.__timelines has no such key. `:"Root composition element has no data-composition-id. ")+`Registered timeline keys: [${w.join(", ")}]. Register the root timeline under its data-composition-id (window.__timelines["${U??"<root-id>"}"] = tl).`)}}window.__renderReady=!0,wt(),ke(!0)},Pt=null,Tm=()=>{if(Pt)return;let d=()=>{window.removeEventListener("hf-timelines-built",d),Pt=null,Ct()};Pt=d,window.addEventListener("hf-timelines-built",d)};R(()=>{Pt&&(window.removeEventListener("hf-timelines-built",Pt),Pt=null)}),Ct=()=>{if(!P){window.__renderReady=!1;return}if(window.__hfTimelinesBuilding){window.__renderReady=!1,Tm();return}if(Oe("discover",e.currentTime),!Cm()){window.__renderReady=!1;return}_m()},Ct(),P&&setTimeout(()=>{Ct()},0);let Sr=0,qi=!1,Rm=(d,h,g,y)=>{try{let w=y?.suppressEvents===!0;at(d),typeof d.totalTime=="function"?d.totalTime(h,w):d.seek(h,w)}catch(w){L(g,w)}},km=(d,h)=>{let g=window.__timelines??{},y=B()?.getAttribute("data-composition-id")??null;for(let[w,D]of Object.entries(g)){if(!D||w===y)continue;let U=document.querySelector(`[data-composition-id="${CSS.escape(w)}"]`);if(!U)continue;let ne=Q(U,0);if(!Number.isFinite(ne))continue;let $=O(D),de=je(U)+Math.max(0,d-ne)*Ce(U),Ge=Math.max(0,$!=null&&$>0?Math.min($,de):de);Rm(D,Ge,"runtime.init.transport.childTimeline",h)}},Cs=d=>{let h=window.__timelines??{};for(let g of Object.values(h))if(!(!g||g===d))try{g.play()}catch(y){L("runtime.init.activateSiblings",y)}},_s=d=>typeof d=="object"&&d!==null,hn=new WeakMap,Mm=["onStart","onUpdate","onComplete","onReverseComplete","onRepeat"],Ts=(d,h)=>{let g=d[h];if(typeof g!="function")return null;try{let y=Number(g.call(d));return Number.isFinite(y)?y:null}catch(y){return L("runtime.init.gsapCallbackDuration",y),null}},Fm=d=>{let h=hn.get(d);if(h!=null)return h;if(!("getChildren"in d)||typeof d.getChildren!="function")return!1;let g;try{g=d.getChildren(!0,!0,!0)}catch(y){return L("runtime.init.gsapCallbackChildren",y),hn.set(d,!1),!1}if(!Array.isArray(g))return hn.set(d,!1),!1;for(let y of g){if(!_s(y))continue;let w=y.vars;if(!_s(w)||!Mm.some($=>typeof w[$]=="function"))continue;let ne=Ts(y,"totalDuration")??Ts(y,"duration");if(ne!=null&&ne<=1e-6)return hn.set(d,!0),!0}return hn.set(d,!1),!1};function _t(d,h){let g=e.capturedTimeline,y=h?.suppressEvents===!0;if(g){h?.activateChildren&&Cs(g);let w=g,D=d;if(typeof w.totalDuration=="function")try{let U=Number(w.totalDuration());Number.isFinite(U)&&U>0&&d>U&&(D=U)}catch(U){L("runtime.init.transport.clampDuration",U)}try{typeof g.totalTime=="function"?(g.totalTime(D,y),!y&&!Fm(g)&&(g.totalTime(D+.001,!0),g.totalTime(D,!0))):g.seek(D,y)}catch(U){L("runtime.init.transport.seek",U)}}km(d,h),g&&h?.activateChildren&&Cs(g);for(let w of e.deterministicAdapters)if(!(w.name==="gsap"&&g))try{w.seek({time:d,suppressEvents:y})}catch(D){L("runtime.init.transport.adapter",D)}}let Nm=()=>{try{return document.querySelector(`[${xf}]`)!=null}catch{return!1}},Rs=()=>{if(!(e.tornDown||qi)){qi=!0;try{if(e.transportRafId=window.requestAnimationFrame(Rs),Sr+=1,yf({tick:Sr,isPlaying:c.isPlaying(),hasCapturedTimeline:e.capturedTimeline!=null,currentTimeSeconds:c.now()})){let h=e.capturedTimeline;if(dn()){e.capturedTimeline&&!He._timeline&&(He._timeline=e.capturedTimeline),e.capturedTimeline&&e.capturedTimeline!==h&&at(e.capturedTimeline);let g=Re(e.capturedTimeline,0);g>0&&c.setDuration(g),wt()}}if(Sr%20===0&&wt(),Sr%30===0&&Oi(),e.capturedTimeline){let h=Re(e.capturedTimeline,0);h>0&&(!c.isPlaying()||h>=c.getDuration())&&c.setDuration(h)}if(c.isPlaying()&&!e.mediaOutputMuted)if(!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&m.isActive()&&m.context){let h=m.getTime();h>=0&&c.attachAudioSource({currentTimeSeconds:h})}else{let h=document.querySelectorAll("audio[data-start]"),g=!1;for(let y of h){if(!(y instanceof HTMLMediaElement)||!y.isConnected||p(y))continue;let w=Number.parseFloat(y.dataset.start??""),D=ve(y.dataset.duration),U=D!=null&&D>0?w+D:1/0,ne=je(y);if(Number.isFinite(w)&&e.currentTime>=w&&e.currentTime<U){y.paused?!y.error&&y.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(c.attachAudioSource({currentTimeSeconds:e.currentTime}),g=!0):(c.attachAudioSource({el:y,compositionStart:w,mediaStart:ne}),g=!0);break}}!g&&c.hasAudioSource()&&c.detachAudioSource()}else c.hasAudioSource()&&c.detachAudioSource();let d=c.now();if(e.currentTime=d,(c.isPlaying()||!Nm())&&_t(d),c.isPlaying()&&qe.redrawAnimated(),c.isPlaying()&&c.reachedEnd()){m.stopAll(),c.detachAudioSource(),c.pause(),e.isPlaying=!1;let h=c.getDuration();Number.isFinite(h)&&(c.seek(h),e.currentTime=h,_t(h)),Oe("pause"),Pe(),ke(!0);return}c.isPlaying()&&Pe(),ke(!1)}finally{qi=!1}}},ks=d=>{let h=document.querySelectorAll("video, audio");for(let g of h){if(!(g instanceof HTMLMediaElement)||!g.isConnected)continue;let y=Number.parseFloat(g.dataset.start??"");if(!Number.isFinite(y))continue;let w=ve(g.dataset.duration),D=w!=null&&w>0?y+w:1/0;if(d<y||d>=D)continue;let U=je(g),ne=d-y+U;if(ne>=0)try{g.currentTime=ne}catch{}}},$i=()=>{if(e.nativeMediaSyncDisabled||e.webAudioMediaDisabled)return;let d=m.startGeneration(),h=document.querySelectorAll("audio[data-start]");for(let g of h){if(!(g instanceof HTMLMediaElement)||!g.isConnected||p(g))continue;let y=Number.parseFloat(g.dataset.start??"");if(!Number.isFinite(y))continue;let w=je(g),D=Number.parseFloat(g.dataset.volume??""),U=Number.isFinite(D)?D:1,ne=ve(g.dataset.duration),$=ne!=null&&ne>0?ne:Number.POSITIVE_INFINITY,de=g.closest("[data-composition-id]");if(de){let J=Q(de,0),te=G(de,{includeAuthoredTimingAttrs:!0});te!=null&&te>0&&($=Math.min($,Math.max(0,J+te-y)))}let Ge=sn(g);ln(g,Ge),(Ge.kind==="web-audio"?m.scheduleMediaElementPlayback(g,y,w,c.now(),U,d,e.playbackRate):Promise.resolve(null)).then(J=>{if(J||!c.isPlaying())return;let te=e.playbackRate*Ce(g),Tt=g.hasAttribute("data-fx-chain")||g.hasAttribute("data-automation");if(Math.abs(te-1)>1e-9){Ge.kind==="web-audio"&&Tt&&(g.muted=!0);return}m.decodeAudioElement(g).then(ye=>{!ye||!c.isPlaying()||m.schedulePlayback(g,ye,y,w,c.now(),U,d,e.playbackRate,$)})})}};function Ms(){m.setRate(e.playbackRate)&&!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&f&&c.isPlaying()&&m.hasBoundedActiveSources()&&(m.stopAll(),$i())}if(e.capturedTimeline){let d=Re(e.capturedTimeline,0);d>0&&c.setDuration(d),at(e.capturedTimeline)}xd(window),e.transportRafId=window.requestAnimationFrame(Rs),wt(),ke(!0),e.controlBridgeHandler=Ds({onPlay:()=>{He.play(),Ne("composition_played",{time:He.getTime()})},onPause:()=>{He.pause(),Ne("composition_paused",{time:He.getTime()})},onStopMedia:()=>{m.stopAll();let d=document.querySelectorAll("video, audio");for(let h of d)h instanceof HTMLMediaElement&&!h.paused&&h.pause()},onSeek:(d,h)=>{He.seek(d),Ne("composition_seeked",{time:d})},onSetMuted:d=>{e.bridgeMuted=d;let h=d||e.mediaOutputMuted;m.setMuted(h);let g=document.querySelectorAll("video, audio");for(let y of g)y instanceof HTMLMediaElement&&(y.muted=h||y.defaultMuted)},onSetVolume:d=>{e.bridgeVolume=d,m.setVolume(d);let h=document.querySelectorAll("video, audio");for(let g of h){if(!(g instanceof HTMLMediaElement))continue;let y=parseFloat(g.dataset.volume??""),w=Number.isFinite(y)?y:1;g.volume=kr(w*d)}},onSetMediaOutputMuted:d=>{e.mediaOutputMuted=d;let h=d||e.bridgeMuted;m.setMuted(h);let g=document.querySelectorAll("video, audio");for(let y of g)y instanceof HTMLMediaElement&&(y.muted=h||y.defaultMuted)},onSetNativeMediaSyncDisabled:d=>{e.nativeMediaSyncDisabled!==d&&(e.nativeMediaSyncDisabled=d,e.mediaForceSyncNextTick=!0,d?(m.stopAll(),c.detachAudioSource()):Pe())},onSetWebAudioMediaDisabled:d=>{e.webAudioMediaDisabled!==d&&(e.webAudioMediaDisabled=d,e.mediaForceSyncNextTick=!0,d&&(m.stopAll(),c.detachAudioSource()),Pe())},onSetPlaybackRate:d=>{zi(d),e.transportClock&&e.transportClock.setRate(e.playbackRate),Ms()},onSetRootDuration:Em,onSetColorGrading:(d,h)=>{qe.setGrading(d,h)},onSetColorGradingCompare:(d,h)=>{qe.setCompare(d,h)},onTick:()=>{if(e.tornDown||!c.isPlaying())return;let d=c.now();if(e.currentTime=d,_t(d),c.reachedEnd()){m.stopAll(),c.detachAudioSource(),c.pause(),e.isPlaying=!1;let h=c.getDuration();Number.isFinite(h)&&(c.seek(h),e.currentTime=h,_t(h)),Oe("pause"),Pe(),ke(!0)}},onEnablePickMode:()=>vr.enablePickMode(),onDisablePickMode:()=>vr.disablePickMode(),onSetRuntimeData:Ti,onClearRuntimeData:Ri,getCanonicalFps:()=>e.canonicalFps});let ji=()=>{if(!e.tornDown){e.tornDown=!0,e.transportRafId!=null&&(window.cancelAnimationFrame(e.transportRafId),e.transportRafId=null),e.transportClock=null,m.destroy(),Et!=null&&(window.clearTimeout(Et),Et=null),l!=null&&(window.cancelAnimationFrame(l),l=null),xm(),e.controlBridgeHandler&&(window.removeEventListener("message",e.controlBridgeHandler),e.controlBridgeHandler=null),r&&(window.removeEventListener("error",r),r=null),i&&(window.removeEventListener("unhandledrejection",i),i=null),e.beforeUnloadHandler&&(window.removeEventListener("beforeunload",e.beforeUnloadHandler),e.beforeUnloadHandler=null),vr.disablePickMode();for(let d of e.deterministicAdapters)if(!(!d||typeof d.revert!="function"))try{d.revert()}catch(h){L("runtime.init.site12",h)}e.deterministicAdapters=[];for(let d of o.splice(0))try{d()}catch(h){L("runtime.init.site13",h)}for(let d of e.injectedCompStyles)try{d.remove()}catch(h){L("runtime.init.site14",h)}e.injectedCompStyles=[];for(let d of e.injectedCompLinks)try{d.remove()}catch(h){L("runtime.init.site15",h)}e.injectedCompLinks=[];for(let d of e.injectedCompScripts)try{d.remove()}catch(h){L("runtime.init.site16",h)}e.injectedCompScripts=[],e.capturedTimeline=null,window.__hfRuntimeTeardown===ji&&(window.__hfRuntimeTeardown=null)}};window.__hfRuntimeTeardown=ji,e.beforeUnloadHandler=ji,window.addEventListener("beforeunload",e.beforeUnloadHandler)}var Nf=["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"],rs=[[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 sy(e){if(e<=255)return Nf[e];let t=0,n=rs.length-1;for(;t<=n;){let r=t+n>>1,i=rs[r];if(e<i[0]){n=r-1;continue}if(e>i[1]){t=r+1;continue}return i[2]}return"L"}function ly(e){let t=e.length;if(t===0)return null;let n=new Array(t),r=!1;for(let u=0;u<t;){let c=e.charCodeAt(u),m=c,f=1;if(c>=55296&&c<=56319&&u+1<t){let b=e.charCodeAt(u+1);b>=56320&&b<=57343&&(m=(c-55296<<10)+(b-56320)+65536,f=2)}let p=sy(m);(p==="R"||p==="AL"||p==="AN")&&(r=!0);for(let b=0;b<f;b++)n[u+b]=p;u+=f}if(!r)return null;let i=0;for(let u=0;u<t;u++){let c=n[u];if(c==="L"){i=0;break}if(c==="R"||c==="AL"){i=1;break}}let o=new Int8Array(t);for(let u=0;u<t;u++)o[u]=i;let a=i&1?"R":"L",l=a,s=l;for(let u=0;u<t;u++)n[u]==="NSM"?n[u]=s:s=n[u];s=l;for(let u=0;u<t;u++){let c=n[u];c==="EN"?n[u]=s==="AL"?"AN":"EN":(c==="R"||c==="L"||c==="AL")&&(s=c)}for(let u=0;u<t;u++)n[u]==="AL"&&(n[u]="R");for(let u=1;u<t-1;u++)n[u]==="ES"&&n[u-1]==="EN"&&n[u+1]==="EN"&&(n[u]="EN"),n[u]==="CS"&&(n[u-1]==="EN"||n[u-1]==="AN")&&n[u+1]===n[u-1]&&(n[u]=n[u-1]);for(let u=0;u<t;u++){if(n[u]!=="EN")continue;let c;for(c=u-1;c>=0&&n[c]==="ET";c--)n[c]="EN";for(c=u+1;c<t&&n[c]==="ET";c++)n[c]="EN"}for(let u=0;u<t;u++){let c=n[u];(c==="WS"||c==="ES"||c==="ET"||c==="CS")&&(n[u]="ON")}s=l;for(let u=0;u<t;u++){let c=n[u];c==="EN"?n[u]=s==="L"?"L":"EN":(c==="R"||c==="L")&&(s=c)}for(let u=0;u<t;u++){if(n[u]!=="ON")continue;let c=u+1;for(;c<t&&n[c]==="ON";)c++;let m=u>0?n[u-1]:l,f=c<t?n[c]:l,p=m!=="L"?"R":"L";if(p===(f!=="L"?"R":"L"))for(let v=u;v<c;v++)n[v]=p;u=c-1}for(let u=0;u<t;u++)n[u]==="ON"&&(n[u]=a);for(let u=0;u<t;u++){let c=n[u];(o[u]&1)===0?c==="R"?o[u]++:(c==="AN"||c==="EN")&&(o[u]+=2):(c==="L"||c==="AN"||c==="EN")&&o[u]++}return o}function Lf(e,t){let n=ly(e);if(n===null)return null;let r=new Int8Array(t.length);for(let i=0;i<t.length;i++)r[i]=n[t[i]];return r}var uy=/[ \\t\\n\\r\\f]+/g,cy=/[\\t\\n\\r\\f]| {2,}|^ | $/;function dy(e){let t=e??"normal";return t==="pre-wrap"?{mode:t,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:t,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function fy(e){if(!cy.test(e))return e;let t=e.replace(uy," ");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 my(e){return/[\\r\\f]/.test(e)?e.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):e.replace(/\\r\\n/g,`\n`)}var is=null,py;function hy(){return is===null&&(is=new Intl.Segmenter(py,{granularity:"word"})),is}var gy=/\\p{Script=Arabic}/u,ki=/\\p{M}/u,Uf=/\\p{Nd}/u;function Df(e){return gy.test(e)}function If(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 We(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 r=e.charCodeAt(t+1);if(r>=56320&&r<=57343){let i=(n-55296<<10)+(r-56320)+65536;if(If(i))return!0;t++;continue}}if(If(n))return!0}}return!1}function by(e){let t=Ni(e);return t!==null&&(Fi.has(t)||vt.has(t))}var xy=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function yy(e){return We(e)}function vy(e){let t=Ni(e);return t!==null&&xy.has(t)}function Mi(e){return!by(e)&&!vy(e)}var Fi=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"]),pr=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),as=new Set(["\'","\\u2019"]),vt=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),Sy=new Set([":",".","\\u060C","\\u061B"]),Ay=new Set(["\\u104F"]),Ey=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function wy(e){if(ss(e))return!0;let t=!1;for(let n of e){if(vt.has(n)){t=!0;continue}if(!(t&&ki.test(n)))return!1}return t}function Cy(e){for(let t of e)if(!Fi.has(t)&&!vt.has(t))return!1;return e.length>0}function _y(e){if(ss(e))return!0;for(let t of e)if(!pr.has(t)&&!as.has(t)&&!ki.test(t))return!1;return e.length>0}function ss(e){let t=!1;for(let n of e)if(!(n==="\\\\"||ki.test(n))){if(pr.has(n)||vt.has(n)||as.has(n)){t=!0;continue}return!1}return t}function Wf(e,t){let n=t-1;if(n<=0)return Math.max(n,0);let r=e.charCodeAt(n);if(r<56320||r>57343)return n;let i=n-1;if(i<0)return n;let o=e.charCodeAt(i);return o>=55296&&o<=56319?i:n}function Ni(e){if(e.length===0)return null;let t=Wf(e,e.length);return e.slice(t)}function Ty(e){let t=Array.from(e),n=t.length;for(;n>0;){let r=t[n-1];if(ki.test(r)){n--;continue}if(pr.has(r)||as.has(r)){n--;continue}break}return n<=0||n===t.length?null:{head:t.slice(0,n).join(""),tail:t.slice(n).join("")}}function Ry(e,t,n){return n==="text"&&!t&&e.length===1&&e!=="-"&&e!=="\\u2014"?e:null}function Pf(e,t,n,r){let i=t[r],o=e[r];if(i==null)return o;let a=n[r];if(o.length===a)return o;let l=i.repeat(a);return e[r]=l,l}function Of(e,t){return e&&t!==null&&Sy.has(t)}function ky(e){let t=Ni(e);return t!==null&&Ay.has(t)}function My(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 Li(e){let t=e.length;for(;t>0;){let n=Wf(e,t),r=e.slice(n,t);if(Ey.has(r))return!0;if(!vt.has(r))return!1;t=n}return!1}function Fy(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 Ny=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function Ie(e){return e.length===1?e[0]:e.join("")}function Ly(e,t){let n=[];for(let r=e.length-1;r>=0;r--)n.push(e[r]);return n.push(t),Ie(n)}function Dy(e,t,n,r){if(!Ny.test(e))return[{text:e,isWordLike:t,kind:"text",start:n}];let i=[],o=null,a=[],l=n,s=!1,u=0;for(let c of e){let m=Fy(c,r),f=m==="text"&&t;if(o!==null&&m===o&&f===s){a.push(c),u+=c.length;continue}o!==null&&i.push({text:Ie(a),isWordLike:s,kind:o,start:l}),o=m,a=[c],l=n+u,s=f,u+=c.length}return o!==null&&i.push({text:Ie(a),isWordLike:s,kind:o,start:l}),i}function os(e){return e==="space"||e==="preserved-space"||e==="zero-width-break"||e==="hard-break"}var Iy=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function Py(e,t){let n=e.texts[t];return n.startsWith("www.")?!0:Iy.test(n)&&t+1<e.len&&e.kinds[t+1]==="text"&&e.texts[t+1]==="//"}function Oy(e){return e.includes("?")&&(e.includes("://")||e.startsWith("www."))}function Hy(e){let t=e.texts.slice(),n=e.isWordLike.slice(),r=e.kinds.slice(),i=e.starts.slice();for(let a=0;a<e.len;a++){if(r[a]!=="text"||!Py(e,a))continue;let l=[t[a]],s=a+1;for(;s<e.len&&!os(r[s]);){l.push(t[s]),n[a]=!0;let u=t[s].includes("?");if(r[s]="text",t[s]="",s++,u)break}t[a]=Ie(l)}let o=0;for(let a=0;a<t.length;a++){let l=t[a];l.length!==0&&(o!==a&&(t[o]=l,n[o]=n[a],r[o]=r[a],i[o]=i[a]),o++)}return t.length=o,n.length=o,r.length=o,i.length=o,{len:o,texts:t,isWordLike:n,kinds:r,starts:i}}function Gy(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o];if(t.push(a),n.push(e.isWordLike[o]),r.push(e.kinds[o]),i.push(e.starts[o]),!Oy(a))continue;let l=o+1;if(l>=e.len||os(e.kinds[l]))continue;let s=[],u=e.starts[l],c=l;for(;c<e.len&&!os(e.kinds[c]);)s.push(e.texts[c]),c++;s.length>0&&(t.push(Ie(s)),n.push(!0),r.push("text"),i.push(u),o=c-1)}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}var By=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),Hf=/^[A-Za-z0-9_]+[,:;]*$/,Gf=/[,:;]+$/;function Vf(e){for(let t of e)if(Uf.test(t))return!0;return!1}function mr(e){if(e.length===0)return!1;for(let t of e)if(!(Uf.test(t)||By.has(t)))return!1;return!0}function Uy(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o],l=e.kinds[o];if(l==="text"&&mr(a)&&Vf(a)){let s=[a],u=o+1;for(;u<e.len&&e.kinds[u]==="text"&&mr(e.texts[u]);)s.push(e.texts[u]),u++;t.push(Ie(s)),n.push(!0),r.push("text"),i.push(e.starts[o]),o=u-1;continue}t.push(a),n.push(e.isWordLike[o]),r.push(l),i.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function Wy(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o],l=e.kinds[o],s=e.isWordLike[o];if(l==="text"&&s&&Hf.test(a)){let u=[a],c=Gf.test(a),m=o+1;for(;c&&m<e.len&&e.kinds[m]==="text"&&e.isWordLike[m]&&Hf.test(e.texts[m]);){let f=e.texts[m];u.push(f),c=Gf.test(f),m++}t.push(Ie(u)),n.push(!0),r.push("text"),i.push(e.starts[o]),o=m-1;continue}t.push(a),n.push(s),r.push(l),i.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function Vy(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o];if(e.kinds[o]==="text"&&a.includes("-")){let l=a.split("-"),s=l.length>1;for(let u=0;u<l.length;u++){let c=l[u];if(!s)break;(c.length===0||!Vf(c)||!mr(c))&&(s=!1)}if(s){let u=0;for(let c=0;c<l.length;c++){let m=l[c],f=c<l.length-1?`${m}-`:m;t.push(f),n.push(!0),r.push("text"),i.push(e.starts[o]+u),u+=f.length}continue}}t.push(a),n.push(e.isWordLike[o]),r.push(e.kinds[o]),i.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function zy(e){let t=[],n=[],r=[],i=[],o=0;for(;o<e.len;){let a=[e.texts[o]],l=e.isWordLike[o],s=e.kinds[o],u=e.starts[o];if(s==="glue"){let c=[a[0]],m=u;for(o++;o<e.len&&e.kinds[o]==="glue";)c.push(e.texts[o]),o++;let f=Ie(c);if(o<e.len&&e.kinds[o]==="text")a[0]=f,a.push(e.texts[o]),l=e.isWordLike[o],s="text",u=m,o++;else{t.push(f),n.push(!1),r.push("glue"),i.push(m);continue}}else o++;if(s==="text")for(;o<e.len&&e.kinds[o]==="glue";){let c=[];for(;o<e.len&&e.kinds[o]==="glue";)c.push(e.texts[o]),o++;let m=Ie(c);if(o<e.len&&e.kinds[o]==="text"){a.push(m,e.texts[o]),l=l||e.isWordLike[o],o++;continue}a.push(m)}t.push(Ie(a)),n.push(l),r.push(s),i.push(u)}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function qy(e){let t=e.texts.slice(),n=e.isWordLike.slice(),r=e.kinds.slice(),i=e.starts.slice();for(let o=0;o<t.length-1;o++){if(r[o]!=="text"||r[o+1]!=="text"||!We(t[o])||!We(t[o+1]))continue;let a=Ty(t[o]);a!==null&&(t[o]=a.head,t[o+1]=a.tail+t[o+1],i[o+1]=i[o]+a.head.length)}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function Bf(e,t,n){let r=hy(),i=0,o=[],a=[],l=[],s=[],u=[],c=[],m=[],f=[],p=[],b=[],v=[],x=[];for(let E of r.segment(e))for(let S of Dy(E.segment,E.isWordLike??!1,E.index,n)){let V=function(){c[k]!==null&&(a[k]=[Pf(o,c,m,k)],c[k]=null),a[k].push(S.text),l[k]=l[k]||S.isWordLike,f[k]=f[k]||N,p[k]=p[k]||I,b[k]=B,v[k]=oe,x[k]=Of(p[k],W)},A=S.kind==="text",C=Ry(S.text,S.isWordLike,S.kind),N=We(S.text),I=Df(S.text),W=Ni(S.text),B=Li(S.text),oe=ky(S.text),k=i-1;t.carryCJKAfterClosingQuote&&A&&i>0&&s[k]==="text"&&N&&f[k]&&b[k]||A&&i>0&&s[k]==="text"&&Cy(S.text)&&f[k]||A&&i>0&&s[k]==="text"&&v[k]?V():A&&i>0&&s[k]==="text"&&S.isWordLike&&I&&x[k]?(V(),l[k]=!0):C!==null&&i>0&&s[k]==="text"&&c[k]===C?m[k]=(m[k]??1)+1:A&&!S.isWordLike&&i>0&&s[k]==="text"&&(wy(S.text)||S.text==="-"&&l[k])?V():(o[i]=S.text,a[i]=[S.text],l[i]=S.isWordLike,s[i]=S.kind,u[i]=S.start,c[i]=C,m[i]=C===null?0:1,f[i]=N,p[i]=I,b[i]=B,v[i]=oe,x[i]=Of(I,W),i++)}for(let E=0;E<i;E++){if(c[E]!==null){o[E]=Pf(o,c,m,E);continue}o[E]=Ie(a[E])}for(let E=1;E<i;E++)s[E]==="text"&&!l[E]&&ss(o[E])&&s[E-1]==="text"&&(o[E-1]+=o[E],l[E-1]=l[E-1]||l[E],o[E]="");let _=Array.from({length:i},()=>null),R=-1;for(let E=i-1;E>=0;E--){let S=o[E];if(S.length!==0){if(s[E]==="text"&&!l[E]&&_y(S)&&R>=0&&s[R]==="text"){let A=_[R]??[];A.push(S),_[R]=A,u[R]=u[E],o[E]="";continue}R=E}}for(let E=0;E<i;E++){let S=_[E];S!=null&&(o[E]=Ly(S,o[E]))}let T=0;for(let E=0;E<i;E++){let S=o[E];S.length!==0&&(T!==E&&(o[T]=S,l[T]=l[E],s[T]=s[E],u[T]=u[E]),T++)}o.length=T,l.length=T,s.length=T,u.length=T;let M=zy({len:T,texts:o,isWordLike:l,kinds:s,starts:u}),F=qy(Wy(Vy(Uy(Gy(Hy(M))))));for(let E=0;E<F.len-1;E++){let S=My(F.texts[E]);S!==null&&(F.kinds[E]!=="space"&&F.kinds[E]!=="preserved-space"||F.kinds[E+1]!=="text"||!Df(F.texts[E+1])||(F.texts[E]=S.space,F.isWordLike[E]=!1,F.kinds[E]=F.kinds[E]==="preserved-space"?"preserved-space":"space",F.texts[E+1]=S.marks+F.texts[E+1],F.starts[E+1]=F.starts[E]+S.space.length))}return F}function $y(e,t){if(e.len===0)return[];if(!t.preserveHardBreaks)return[{startSegmentIndex:0,endSegmentIndex:e.len,consumedEndSegmentIndex:e.len}];let n=[],r=0;for(let i=0;i<e.len;i++)e.kinds[i]==="hard-break"&&(n.push({startSegmentIndex:r,endSegmentIndex:i,consumedEndSegmentIndex:i+1}),r=i+1);return r<e.len&&n.push({startSegmentIndex:r,endSegmentIndex:e.len,consumedEndSegmentIndex:e.len}),n}function jy(e){if(e.len<=1)return e;let t=[],n=[],r=[],i=[],o=null,a=!1,l=0,s=!1,u=!1;function c(){o!==null&&(t.push(Ie(o)),n.push(a),r.push("text"),i.push(l),o=null)}for(let m=0;m<e.len;m++){let f=e.texts[m],p=e.kinds[m],b=e.isWordLike[m],v=e.starts[m];if(p==="text"){let x=yy(f),_=Mi(f);if(o!==null&&s&&u){o.push(f),a=a||b,s=s||x,u=_;continue}c(),o=[f],a=b,l=v,s=x,u=_;continue}c(),t.push(f),n.push(b),r.push(p),i.push(v)}return c(),{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function zf(e,t,n="normal",r="normal"){let i=dy(n),o=i.mode==="pre-wrap"?my(e):fy(e);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let a=r==="keep-all"?jy(Bf(o,t,i)):Bf(o,t,i);return{normalized:o,chunks:$y(a,i),...a}}var un=null,qf=new Map,cn=null,Ky=96,Yy=/\\p{Emoji_Presentation}/u,Xy=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,ls=null,$f=new Map;function us(){if(un!==null)return un;if(typeof OffscreenCanvas<"u")return un=new OffscreenCanvas(1,1).getContext("2d"),un;if(typeof document<"u")return un=document.createElement("canvas").getContext("2d"),un;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function Jy(e){let t=qf.get(e);return t||(t=new Map,qf.set(e,t)),t}function st(e,t){let n=t.get(e);return n===void 0&&(n={width:us().measureText(e).width,containsCJK:We(e)},t.set(e,n)),n}function At(){if(cn!==null)return cn;if(typeof navigator>"u")return cn={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},cn;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/"),r=e.includes("Chrome/")||e.includes("Chromium/")||e.includes("CriOS/")||e.includes("Edg/");return cn={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:r,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},cn}function Qy(e){let t=e.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return t?parseFloat(t[1]):16}function jf(){return ls===null&&(ls=new Intl.Segmenter(void 0,{granularity:"grapheme"})),ls}function Zy(e){return Yy.test(e)||e.includes("\\uFE0F")}function Kf(e){return Xy.test(e)}function e1(e,t){let n=$f.get(e);if(n!==void 0)return n;let r=us();r.font=e;let i=r.measureText("\\u{1F600}").width;if(n=0,i>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 a=o.getBoundingClientRect().width;document.body.removeChild(o),i-a>.5&&(n=i-a)}return $f.set(e,n),n}function t1(e){let t=0,n=jf();for(let r of n.segment(e))Zy(r.segment)&&t++;return t}function n1(e,t){return t.emojiCount===void 0&&(t.emojiCount=t1(e)),t.emojiCount}function St(e,t,n){return n===0?t.width:t.width-n1(e,t)*n}function Yf(e,t,n,r,i){if(t.breakableFitAdvances!==void 0)return t.breakableFitAdvances;let o=jf(),a=[];for(let c of o.segment(e))a.push(c.segment);if(a.length<=1)return t.breakableFitAdvances=null,t.breakableFitAdvances;if(i==="sum-graphemes"){let c=[];for(let m of a){let f=st(m,n);c.push(St(m,f,r))}return t.breakableFitAdvances=c,t.breakableFitAdvances}if(i==="pair-context"||a.length>Ky){let c=[],m=null,f=0;for(let p of a){let b=st(p,n),v=St(p,b,r);if(m===null)c.push(v);else{let x=m+p,_=st(x,n);c.push(St(x,_,r)-f)}m=p,f=v}return t.breakableFitAdvances=c,t.breakableFitAdvances}let l=[],s="",u=0;for(let c of a){s+=c;let m=st(s,n),f=St(s,m,r);l.push(f-u),u=f}return t.breakableFitAdvances=l,t.breakableFitAdvances}function Xf(e,t){let n=us();n.font=e;let r=Jy(e),i=Qy(e),o=t?e1(e,i):0;return{cache:r,fontSize:i,emojiCorrection:o}}function r1(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 Jf(e,t){if(t<=0)return 0;let n=e%t;return Math.abs(n)<=1e-6?t:t-n}function Qf(e,t,n,r,i){let o=0,a=t;for(;o<e.length;){let l=a+e[o];if((o+1<e.length?l+i:l)>n+r)break;a=l,o++}return{fitCount:o,fittedWidth:a}}function i1(e,t){let n=0,r=e.chunks.length;for(;n<r;){let i=Math.floor((n+r)/2);t<e.chunks[i].consumedEndSegmentIndex?r=i:n=i+1}return n<e.chunks.length?n:-1}function Zf(e,t,n){let r=n.segmentIndex;if(n.graphemeIndex>0)return t;let i=e.chunks[t];if(i.startSegmentIndex===i.endSegmentIndex&&r===i.startSegmentIndex)return n.segmentIndex=r,n.graphemeIndex=0,t;for(r<i.startSegmentIndex&&(r=i.startSegmentIndex);r<i.endSegmentIndex;){let o=e.kinds[r];if(o!=="space"&&o!=="zero-width-break"&&o!=="soft-hyphen")return n.segmentIndex=r,n.graphemeIndex=0,t;r++}return i.consumedEndSegmentIndex>=e.widths.length?-1:(n.segmentIndex=i.consumedEndSegmentIndex,n.graphemeIndex=0,t+1)}function em(e,t){if(t.segmentIndex>=e.widths.length)return-1;let n=i1(e,t.segmentIndex);return n<0?-1:Zf(e,n,t)}function o1(e,t,n){if(n.segmentIndex>=e.widths.length)return-1;let r=t;for(;r<e.chunks.length&&n.segmentIndex>=e.chunks[r].consumedEndSegmentIndex;)r++;return r>=e.chunks.length?-1:Zf(e,r,n)}function tm(e,t){return e.simpleLineWalkFastPath?nm(e,t):cs(e,t)}function nm(e,t,n){let{widths:r,kinds:i,breakableFitAdvances:o}=e;if(r.length===0)return 0;let l=At().lineFitEpsilon,s=t+l,u=0,c=0,m=!1,f=0,p=0,b=0,v=0,x=-1,_=0;function R(){x=-1,_=0}function T(C=b,N=v,I=c){u++,n?.({startSegmentIndex:f,startGraphemeIndex:p,endSegmentIndex:C,endGraphemeIndex:N,width:I}),c=0,m=!1,R()}function M(C,N){m=!0,f=C,p=0,b=C+1,v=0,c=N}function F(C,N,I){m=!0,f=C,p=N,b=C,v=N+1,c=I}function E(C,N){if(!m){M(C,N);return}c+=N,b=C+1,v=0}function S(C,N){let I=o[C];for(let W=N;W<I.length;W++){let B=I[W];m?c+B>s?(T(),F(C,W,B)):(c+=B,b=C,v=W+1):F(C,W,B)}m&&b===C&&v===I.length&&(b=C+1,v=0)}let A=0;for(;A<r.length&&!(!m&&(A=r1(e,A),A>=r.length));){let C=r[A],N=i[A],I=N==="space"||N==="preserved-space"||N==="tab"||N==="zero-width-break"||N==="soft-hyphen";if(!m){C>t&&o[A]!==null?S(A,0):M(A,C),I&&(x=A+1,_=c-C),A++;continue}if(c+C>s){if(I){E(A,C),T(A+1,0,c-C),A++;continue}if(x>=0){if(b>x||b===x&&v>0){T();continue}T(x,0,_);continue}if(C>t&&o[A]!==null){T(),S(A,0),A++;continue}T();continue}E(A,C),I&&(x=A+1,_=c-C),A++}return m&&T(),u}function cs(e,t,n){if(e.simpleLineWalkFastPath)return nm(e,t,n);let{widths:r,lineEndFitAdvances:i,lineEndPaintAdvances:o,kinds:a,breakableFitAdvances:l,discretionaryHyphenWidth:s,tabStopAdvance:u,chunks:c}=e;if(r.length===0||c.length===0)return 0;let m=At(),f=m.lineFitEpsilon,p=t+f,b=0,v=0,x=!1,_=0,R=0,T=0,M=0,F=-1,E=0,S=0,A=null;function C(){F=-1,E=0,S=0,A=null}function N(G=T,H=M,z=v){b++,n?.({startSegmentIndex:_,startGraphemeIndex:R,endSegmentIndex:G,endGraphemeIndex:H,width:z}),v=0,x=!1,C()}function I(G,H){x=!0,_=G,R=0,T=G+1,M=0,v=H}function W(G,H,z){x=!0,_=G,R=H,T=G,M=H+1,v=z}function B(G,H){if(!x){I(G,H);return}v+=H,T=G+1,M=0}function oe(G,H,z,X){if(!H)return;let we=G==="tab"?0:i[z],q=G==="tab"?X:o[z];F=z+1,E=v-X+we,S=v-X+q,A=G}function k(G,H){let z=l[G];for(let X=H;X<z.length;X++){let we=z[X];x?v+we>p?(N(),W(G,X,we)):(v+=we,T=G,M=X+1):W(G,X,we)}x&&T===G&&M===z.length&&(T=G+1,M=0)}function V(G){if(A!=="soft-hyphen")return!1;let H=l[G];if(H==null)return!1;let{fitCount:z,fittedWidth:X}=Qf(H,v,t,f,s);return z===0?!1:(v=X,T=G,M=z,C(),z===H.length?(T=G+1,M=0,!0):(N(G,z,X+s),k(G,z),!0))}function Q(G){b++,n?.({startSegmentIndex:G.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:G.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),C()}for(let G=0;G<c.length;G++){let H=c[G];if(H.startSegmentIndex===H.endSegmentIndex){Q(H);continue}x=!1,v=0,_=H.startSegmentIndex,R=0,T=H.startSegmentIndex,M=0,C();let z=H.startSegmentIndex;for(;z<H.endSegmentIndex;){let X=a[z],we=X==="space"||X==="preserved-space"||X==="tab"||X==="zero-width-break"||X==="soft-hyphen",q=X==="tab"?Jf(v,u):r[z];if(X==="soft-hyphen"){x&&(T=z+1,M=0,F=z+1,E=v+s,S=v+s,A=X),z++;continue}if(!x){q>t&&l[z]!==null?k(z,0):I(z,q),oe(X,we,z,q),z++;continue}if(v+q>p){let O=v+(X==="tab"?0:i[z]),j=v+(X==="tab"?q:o[z]);if(A==="soft-hyphen"&&m.preferEarlySoftHyphenBreak&&E<=p){N(F,0,S);continue}if(A==="soft-hyphen"&&V(z)){z++;continue}if(we&&O<=p){B(z,q),N(z+1,0,j),z++;continue}if(F>=0&&E<=p){if(T>F||T===F&&M>0){N();continue}let le=F;N(le,0,S),z=le;continue}if(q>t&&l[z]!==null){N(),k(z,0),z++;continue}N();continue}B(z,q),oe(X,we,z,q),z++}if(x){let X=F===H.consumedEndSegmentIndex?S:v;N(H.consumedEndSegmentIndex,0,X)}}return b}function rm(e,t,n,r){let i=e.chunks[n];if(i.startSegmentIndex===i.endSegmentIndex)return t.segmentIndex=i.consumedEndSegmentIndex,t.graphemeIndex=0,0;let{widths:o,lineEndFitAdvances:a,lineEndPaintAdvances:l,kinds:s,breakableFitAdvances:u,discretionaryHyphenWidth:c,tabStopAdvance:m}=e,f=At(),p=f.lineFitEpsilon,b=r+p,v=0,x=!1,_=t.segmentIndex,R=t.graphemeIndex,T=-1,M=0,F=0,E=null;function S(){T=-1,M=0,F=0,E=null}function A(k=_,V=R,Q=v){return x?(t.segmentIndex=k,t.graphemeIndex=V,Q):null}function C(k,V){x=!0,_=k+1,R=0,v=V}function N(k,V,Q){x=!0,_=k,R=V+1,v=Q}function I(k,V){if(!x){C(k,V);return}v+=V,_=k+1,R=0}function W(k,V,Q,G){if(!V)return;let H=k==="tab"?0:a[Q],z=k==="tab"?G:l[Q];T=Q+1,M=v-G+H,F=v-G+z,E=k}function B(k,V){let Q=u[k];for(let G=V;G<Q.length;G++){let H=Q[G];if(!x)N(k,G,H);else{if(v+H>b)return A();v+=H,_=k,R=G+1}}return x&&_===k&&R===Q.length&&(_=k+1,R=0),null}function oe(k){if(E!=="soft-hyphen"||T<0)return null;let V=u[k]??null;if(V!==null){let{fitCount:Q,fittedWidth:G}=Qf(V,v,r,p,c);if(Q===V.length)return v=G,_=k+1,R=0,S(),null;if(Q>0)return A(k,Q,G+c)}return M<=b?A(T,0,F):null}for(let k=t.segmentIndex;k<i.endSegmentIndex;k++){let V=s[k],Q=V==="space"||V==="preserved-space"||V==="tab"||V==="zero-width-break"||V==="soft-hyphen",G=k===t.segmentIndex?t.graphemeIndex:0,H=V==="tab"?Jf(v,m):o[k];if(V==="soft-hyphen"&&G===0){x&&(_=k+1,R=0,T=k+1,M=v+c,F=v+c,E=V);continue}if(!x){if(G>0){let X=B(k,G);if(X!==null)return X}else if(H>r&&u[k]!==null){let X=B(k,0);if(X!==null)return X}else C(k,H);W(V,Q,k,H);continue}if(v+H>b){let X=v+(V==="tab"?0:a[k]),we=v+(V==="tab"?H:l[k]);if(E==="soft-hyphen"&&f.preferEarlySoftHyphenBreak&&M<=b)return A(T,0,F);let q=oe(k);if(q!==null)return q;if(Q&&X<=b)return I(k,H),A(k+1,0,we);if(T>=0&&M<=b)return _>T||_===T&&R>0?A():A(T,0,F);if(H>r&&u[k]!==null){let P=A();if(P!==null)return P;let O=B(k,0);if(O!==null)return O}return A()}I(k,H),W(V,Q,k,H)}return T===i.consumedEndSegmentIndex&&R===0?A(i.consumedEndSegmentIndex,0,F):A(i.consumedEndSegmentIndex,0,v)}function a1(e,t,n){let{widths:r,kinds:i,breakableFitAdvances:o}=e,l=At().lineFitEpsilon,s=n+l,u=0,c=!1,m=t.segmentIndex,f=t.graphemeIndex,p=-1,b=0;for(let v=t.segmentIndex;v<r.length;v++){let x=r[v],_=i[v],R=_==="space"||_==="preserved-space"||_==="tab"||_==="zero-width-break"||_==="soft-hyphen",T=v===t.segmentIndex?t.graphemeIndex:0,M=o[v];if(!c){if(T>0||x>n&&M!==null){let F=M,E=F[T];c=!0,u=E,m=v,f=T+1;for(let S=T+1;S<F.length;S++){let A=F[S];if(u+A>s)return t.segmentIndex=m,t.graphemeIndex=f,u;u+=A,m=v,f=S+1}m===v&&f===F.length&&(m=v+1,f=0)}else c=!0,u=x,m=v+1,f=0;R&&(p=v+1,b=u-x);continue}if(u+x>s)return R?(t.segmentIndex=v+1,t.graphemeIndex=0,u):p>=0?m>p||m===p&&f>0?(t.segmentIndex=m,t.graphemeIndex=f,u):(t.segmentIndex=p,t.graphemeIndex=0,b):(t.segmentIndex=m,t.graphemeIndex=f,u);u+=x,m=v+1,f=0,R&&(p=v+1,b=u-x)}return c?(t.segmentIndex=m,t.graphemeIndex=f,u):null}function s1(e,t,n){let r=em(e,t);return r<0?null:e.simpleLineWalkFastPath?a1(e,t,n):rm(e,t,r,n)}function im(e,t){if(e.widths.length===0)return{lineCount:0,maxLineWidth:0};let n={segmentIndex:0,graphemeIndex:0},r=0,i=0;if(!e.simpleLineWalkFastPath){let o=em(e,n);for(;o>=0;){let a=rm(e,n,o,t);if(a===null)return{lineCount:r,maxLineWidth:i};r++,a>i&&(i=a),o=o1(e,o,n)}return{lineCount:r,maxLineWidth:i}}for(;;){let o=s1(e,n,t);if(o===null)return{lineCount:r,maxLineWidth:i};r++,o>i&&(i=o)}}var ds=null;function l1(){return ds===null&&(ds=new Intl.Segmenter(void 0,{granularity:"grapheme"})),ds}function u1(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 c1(e,t){let n=[],r=[],i=0,o=!1,a=!1,l=!1;function s(){r.length!==0&&(n.push({text:r.length===1?r[0]:r.join(""),start:i}),r=[],o=!1,a=!1,l=!1)}function u(m,f,p){r=[m],i=f,o=p,a=Li(m),l=pr.has(m)}function c(m,f){r.push(m),o=o||f;let p=Li(m);m.length===1&&vt.has(m)?a=a||p:a=p,l=!1}for(let m of l1().segment(e)){let f=m.segment,p=We(f);if(r.length===0){u(f,m.index,p);continue}if(l||Fi.has(f)||vt.has(f)||t.carryCJKAfterClosingQuote&&p&&a){c(f,p);continue}if(!o&&!p){c(f,p);continue}s(),u(f,m.index,p)}return s(),n}function d1(e){if(e.length<=1)return e;let t=[],n=[e[0].text],r=e[0].start,i=We(e[0].text),o=Mi(e[0].text);function a(){t.push({text:n.length===1?n[0]:n.join(""),start:r})}for(let l=1;l<e.length;l++){let s=e[l],u=We(s.text),c=Mi(s.text);if(i&&o){n.push(s.text),i=i||u,o=c;continue}a(),n=[s.text],r=s.start,i=u,o=c}return a(),t}function f1(e,t,n,r){let i=At(),{cache:o,emojiCorrection:a}=Xf(t,Kf(e.normalized)),l=St("-",st("-",o),a),u=St(" ",st(" ",o),a)*8;if(e.len===0)return u1(n);let c=[],m=[],f=[],p=[],b=e.chunks.length<=1,v=n?[]:null,x=[],_=n?[]:null,R=Array.from({length:e.len});function T(S,A,C,N,I,W,B){I!=="text"&&I!=="space"&&I!=="zero-width-break"&&(b=!1),c.push(A),m.push(C),f.push(N),p.push(I),v?.push(W),x.push(B),_!==null&&_.push(S)}function M(S,A,C,N,I){let W=st(S,o),B=St(S,W,a),oe=A==="space"||A==="preserved-space"||A==="zero-width-break"?0:B,k=A==="space"||A==="zero-width-break"?0:B;if(I&&N&&S.length>1){let V="sum-graphemes";mr(S)?V="pair-context":i.preferPrefixWidthsForBreakableRuns&&(V="segment-prefixes");let Q=Yf(S,W,o,a,V);T(S,B,oe,k,A,C,Q);return}T(S,B,oe,k,A,C,null)}for(let S=0;S<e.len;S++){R[S]=c.length;let A=e.texts[S],C=e.isWordLike[S],N=e.kinds[S],I=e.starts[S];if(N==="soft-hyphen"){T(A,0,l,l,N,I,null);continue}if(N==="hard-break"){T(A,0,0,0,N,I,null);continue}if(N==="tab"){T(A,0,0,0,N,I,null);continue}let W=st(A,o);if(N==="text"&&W.containsCJK){let B=c1(A,i),oe=r==="keep-all"?d1(B):B;for(let k=0;k<oe.length;k++){let V=oe[k];M(V.text,"text",I+V.start,C,r==="keep-all"||!We(V.text))}continue}M(A,N,I,C,!0)}let F=m1(e.chunks,R,c.length),E=v===null?null:Lf(e.normalized,v);return _!==null?{widths:c,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:p,simpleLineWalkFastPath:b,segLevels:E,breakableFitAdvances:x,discretionaryHyphenWidth:l,tabStopAdvance:u,chunks:F,segments:_}:{widths:c,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:p,simpleLineWalkFastPath:b,segLevels:E,breakableFitAdvances:x,discretionaryHyphenWidth:l,tabStopAdvance:u,chunks:F}}function m1(e,t,n){let r=[];for(let i=0;i<e.length;i++){let o=e[i],a=o.startSegmentIndex<t.length?t[o.startSegmentIndex]:n,l=o.endSegmentIndex<t.length?t[o.endSegmentIndex]:n,s=o.consumedEndSegmentIndex<t.length?t[o.consumedEndSegmentIndex]:n;r.push({startSegmentIndex:a,endSegmentIndex:l,consumedEndSegmentIndex:s})}return r}function om(e,t,n,r){let i=r?.wordBreak??"normal",o=zf(e,At(),r?.whiteSpace,i);return f1(o,t,n,i)}function Di(e,t,n){return om(e,t,!1,n)}function am(e,t,n){return om(e,t,!0,n)}function Ii(e,t,n){let r=tm(e,t);return{lineCount:r,height:r*n}}function p1(e){return{width:e.width,start:{segmentIndex:e.startSegmentIndex,graphemeIndex:e.startGraphemeIndex},end:{segmentIndex:e.endSegmentIndex,graphemeIndex:e.endGraphemeIndex}}}function h1(e,t,n){return e.widths.length===0?0:cs(e,t,r=>{n(p1(r))})}function sm(e,t){return im(e,t)}function lm(e){let t=0;return h1(e,Number.POSITIVE_INFINITY,n=>{n.width>t&&(t=n.width)}),t}var g1={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function um(e,t){let n={...g1,...t},r=1.2;for(let i=n.baseFontSize;i>=n.minFontSize;i-=n.step){let o=`${n.fontWeight} ${i}px ${n.fontFamily}`,a=Di(e,o),{lineCount:l}=Ii(a,n.maxWidth,i*r);if(l<=1)return{fontSize:i,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}var cm={prepare:Di,layout:Ii,prepareWithSegments:am,measureLineStats:sm,measureNaturalWidth:lm};window.__timelines=window.__timelines||{};Md();window.__hyperframes={fitTextFontSize:um,getVariables:Hs,pretext:cm,registerRuntimeDataHandler:kf,setRuntimeData:Ti,clearRuntimeData:Ri};function dm(){let e=window;e.__hyperframeRuntimeBootstrapped||(e.__hyperframeRuntimeBootstrapped=!0,Ff())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",dm,{once:!0}):dm();})();\n';
|
|
58788
58788
|
}
|
|
58789
58789
|
});
|
|
58790
58790
|
|
|
@@ -65315,11 +65315,11 @@ var init_browserLeasePool = __esm({
|
|
|
65315
65315
|
await Promise.race([
|
|
65316
65316
|
this.options.close(result.browser).catch(() => {
|
|
65317
65317
|
}),
|
|
65318
|
-
new Promise((
|
|
65318
|
+
new Promise((resolve80) => {
|
|
65319
65319
|
entry.forceClose = () => {
|
|
65320
65320
|
entry.forceClose = void 0;
|
|
65321
65321
|
this.options.forceClose(result.browser);
|
|
65322
|
-
|
|
65322
|
+
resolve80();
|
|
65323
65323
|
};
|
|
65324
65324
|
})
|
|
65325
65325
|
]);
|
|
@@ -66041,8 +66041,8 @@ async function probeBeginFrameLiveness(page, timeoutMs, frameTimeTicks, interval
|
|
|
66041
66041
|
try {
|
|
66042
66042
|
return await Promise.race([
|
|
66043
66043
|
client.send("HeadlessExperimental.beginFrame", params).then(() => true).catch(() => false),
|
|
66044
|
-
new Promise((
|
|
66045
|
-
timer = setTimeout(() =>
|
|
66044
|
+
new Promise((resolve80) => {
|
|
66045
|
+
timer = setTimeout(() => resolve80(false), timeoutMs);
|
|
66046
66046
|
})
|
|
66047
66047
|
]);
|
|
66048
66048
|
} finally {
|
|
@@ -66823,7 +66823,7 @@ async function produceDrawElementFrame(page, width, height, quality = 80, syncTo
|
|
|
66823
66823
|
);
|
|
66824
66824
|
}
|
|
66825
66825
|
const frameId = ++state.nextId;
|
|
66826
|
-
const encodeResult = new Promise((
|
|
66826
|
+
const encodeResult = new Promise((resolve80, reject2) => {
|
|
66827
66827
|
const timer = setTimeout(() => {
|
|
66828
66828
|
if (state.pending.delete(frameId)) {
|
|
66829
66829
|
reject2(new Error(`drawElement worker encode timed out (frame ${frameId})`));
|
|
@@ -66832,7 +66832,7 @@ async function produceDrawElementFrame(page, width, height, quality = 80, syncTo
|
|
|
66832
66832
|
state.pending.set(frameId, {
|
|
66833
66833
|
resolve: (b2) => {
|
|
66834
66834
|
clearTimeout(timer);
|
|
66835
|
-
|
|
66835
|
+
resolve80(b2);
|
|
66836
66836
|
},
|
|
66837
66837
|
reject: (e3) => {
|
|
66838
66838
|
clearTimeout(timer);
|
|
@@ -66988,7 +66988,7 @@ async function produceDrawElementFrameBatch(page, times, width, height, quality
|
|
|
66988
66988
|
for (let i2 = 0; i2 < times.length; i2++) {
|
|
66989
66989
|
const frameId = ++state.nextId;
|
|
66990
66990
|
fids.push(frameId);
|
|
66991
|
-
const p2 = new Promise((
|
|
66991
|
+
const p2 = new Promise((resolve80, reject2) => {
|
|
66992
66992
|
const timer = setTimeout(() => {
|
|
66993
66993
|
if (state.pending.delete(frameId)) {
|
|
66994
66994
|
reject2(new Error(`drawElement worker encode timed out (frame ${frameId})`));
|
|
@@ -66997,7 +66997,7 @@ async function produceDrawElementFrameBatch(page, times, width, height, quality
|
|
|
66997
66997
|
state.pending.set(frameId, {
|
|
66998
66998
|
resolve: (b2) => {
|
|
66999
66999
|
clearTimeout(timer);
|
|
67000
|
-
|
|
67000
|
+
resolve80(b2);
|
|
67001
67001
|
},
|
|
67002
67002
|
reject: (e3) => {
|
|
67003
67003
|
clearTimeout(timer);
|
|
@@ -67280,9 +67280,9 @@ async function initThreeDProjectionInPage() {
|
|
|
67280
67280
|
const toDataUrl = async (url) => {
|
|
67281
67281
|
const resp = await fetch(url);
|
|
67282
67282
|
const blob = await resp.blob();
|
|
67283
|
-
return new Promise((
|
|
67283
|
+
return new Promise((resolve80, reject2) => {
|
|
67284
67284
|
const r2 = new FileReader();
|
|
67285
|
-
r2.onload = () =>
|
|
67285
|
+
r2.onload = () => resolve80(String(r2.result));
|
|
67286
67286
|
r2.onerror = () => reject2(new Error(`FileReader failed for ${url}`));
|
|
67287
67287
|
r2.readAsDataURL(blob);
|
|
67288
67288
|
});
|
|
@@ -68495,10 +68495,10 @@ async function waitForCloseWithTimeout(promise) {
|
|
|
68495
68495
|
() => void 0,
|
|
68496
68496
|
() => void 0
|
|
68497
68497
|
),
|
|
68498
|
-
new Promise((
|
|
68498
|
+
new Promise((resolve80) => {
|
|
68499
68499
|
timer = setTimeout(() => {
|
|
68500
68500
|
timedOut = true;
|
|
68501
|
-
|
|
68501
|
+
resolve80();
|
|
68502
68502
|
}, CAPTURE_SESSION_CLOSE_TIMEOUT_MS);
|
|
68503
68503
|
})
|
|
68504
68504
|
]);
|
|
@@ -68906,7 +68906,7 @@ async function pollHfReady(page, timeoutMs, intervalMs = 100) {
|
|
|
68906
68906
|
}
|
|
68907
68907
|
}
|
|
68908
68908
|
}
|
|
68909
|
-
await new Promise((
|
|
68909
|
+
await new Promise((resolve80) => setTimeout(resolve80, intervalMs));
|
|
68910
68910
|
}
|
|
68911
68911
|
const diag2 = await evaluateHfDiagnostic(page);
|
|
68912
68912
|
if (diag2.hasSeek && diag2.duration === 0) {
|
|
@@ -68947,7 +68947,7 @@ async function pollSubCompositionTimelines(page, timeoutMs, intervalMs = 150, ge
|
|
|
68947
68947
|
);
|
|
68948
68948
|
break;
|
|
68949
68949
|
}
|
|
68950
|
-
await new Promise((
|
|
68950
|
+
await new Promise((resolve80) => setTimeout(resolve80, intervalMs));
|
|
68951
68951
|
}
|
|
68952
68952
|
if (ready) {
|
|
68953
68953
|
await page.evaluate(`(function() {
|
|
@@ -68996,7 +68996,7 @@ async function pollVideosReady(page, skipIds, timeoutMs, intervalMs = 100) {
|
|
|
68996
68996
|
const deadline = Date.now() + timeoutMs;
|
|
68997
68997
|
while (Date.now() < deadline) {
|
|
68998
68998
|
if (await check()) return true;
|
|
68999
|
-
await new Promise((
|
|
68999
|
+
await new Promise((resolve80) => setTimeout(resolve80, intervalMs));
|
|
69000
69000
|
}
|
|
69001
69001
|
return check();
|
|
69002
69002
|
}
|
|
@@ -69019,7 +69019,7 @@ async function pollImagesReady(page, timeoutMs, intervalMs = 100) {
|
|
|
69019
69019
|
const deadline = Date.now() + timeoutMs;
|
|
69020
69020
|
while (Date.now() < deadline) {
|
|
69021
69021
|
if (await check()) return true;
|
|
69022
|
-
await new Promise((
|
|
69022
|
+
await new Promise((resolve80) => setTimeout(resolve80, intervalMs));
|
|
69023
69023
|
}
|
|
69024
69024
|
return check();
|
|
69025
69025
|
}
|
|
@@ -69147,7 +69147,7 @@ async function waitForOptionalTailwindReady(page, timeoutMs) {
|
|
|
69147
69147
|
page.evaluate(
|
|
69148
69148
|
`Promise.resolve(window.__tailwindReady).then(() => true, () => false)`
|
|
69149
69149
|
),
|
|
69150
|
-
new Promise((
|
|
69150
|
+
new Promise((resolve80) => setTimeout(() => resolve80(false), timeoutMs))
|
|
69151
69151
|
]);
|
|
69152
69152
|
if (!ready) {
|
|
69153
69153
|
throw new Error(
|
|
@@ -70481,7 +70481,7 @@ var init_frameCapture = __esm({
|
|
|
70481
70481
|
BROWSER_CONSOLE_BUFFER_SIZE = 200;
|
|
70482
70482
|
CAPTURE_SESSION_CLOSE_TIMEOUT_MS = 5e3;
|
|
70483
70483
|
LOCKED_WARMUP_TICKS = 60;
|
|
70484
|
-
realSleep = (ms) => new Promise((
|
|
70484
|
+
realSleep = (ms) => new Promise((resolve80) => setTimeout(resolve80, ms));
|
|
70485
70485
|
BEGIN_FRAME_CAPTURE_HEADROOM_INTERVALS = 10;
|
|
70486
70486
|
BEGIN_FRAME_COMMIT_LEAD_INTERVALS = 6;
|
|
70487
70487
|
BEGIN_FRAME_PROBE_LEAD_INTERVALS = 5;
|
|
@@ -70534,8 +70534,8 @@ var init_managedChildProcess = __esm({
|
|
|
70534
70534
|
this.options = options;
|
|
70535
70535
|
this.now = options.now ?? Date.now;
|
|
70536
70536
|
this.startedAtMs = this.now();
|
|
70537
|
-
this.outcomePromise = new Promise((
|
|
70538
|
-
this.resolveOutcome =
|
|
70537
|
+
this.outcomePromise = new Promise((resolve80) => {
|
|
70538
|
+
this.resolveOutcome = resolve80;
|
|
70539
70539
|
});
|
|
70540
70540
|
child.stderr?.on("data", this.onStderr);
|
|
70541
70541
|
child.once("spawn", this.onSpawn);
|
|
@@ -72177,12 +72177,12 @@ function createFrameReorderBuffer(startFrame, endFrame) {
|
|
|
72177
72177
|
let cursor = startFrame;
|
|
72178
72178
|
let aborted = null;
|
|
72179
72179
|
const pending = /* @__PURE__ */ new Map();
|
|
72180
|
-
const enqueueAt = (frame,
|
|
72180
|
+
const enqueueAt = (frame, resolve80, reject2) => {
|
|
72181
72181
|
const list = pending.get(frame);
|
|
72182
72182
|
if (list === void 0) {
|
|
72183
|
-
pending.set(frame, [{ resolve:
|
|
72183
|
+
pending.set(frame, [{ resolve: resolve80, reject: reject2 }]);
|
|
72184
72184
|
} else {
|
|
72185
|
-
list.push({ resolve:
|
|
72185
|
+
list.push({ resolve: resolve80, reject: reject2 });
|
|
72186
72186
|
}
|
|
72187
72187
|
};
|
|
72188
72188
|
const flushAt = (frame) => {
|
|
@@ -72191,31 +72191,31 @@ function createFrameReorderBuffer(startFrame, endFrame) {
|
|
|
72191
72191
|
pending.delete(frame);
|
|
72192
72192
|
for (const waiter of list) waiter.resolve();
|
|
72193
72193
|
};
|
|
72194
|
-
const waitForFrame = (frame) => new Promise((
|
|
72194
|
+
const waitForFrame = (frame) => new Promise((resolve80, reject2) => {
|
|
72195
72195
|
if (aborted) {
|
|
72196
72196
|
reject2(aborted);
|
|
72197
72197
|
return;
|
|
72198
72198
|
}
|
|
72199
72199
|
if (frame === cursor) {
|
|
72200
|
-
|
|
72200
|
+
resolve80();
|
|
72201
72201
|
return;
|
|
72202
72202
|
}
|
|
72203
|
-
enqueueAt(frame,
|
|
72203
|
+
enqueueAt(frame, resolve80, reject2);
|
|
72204
72204
|
});
|
|
72205
72205
|
const advanceTo = (frame) => {
|
|
72206
72206
|
cursor = frame;
|
|
72207
72207
|
flushAt(frame);
|
|
72208
72208
|
};
|
|
72209
|
-
const waitForAllDone = () => new Promise((
|
|
72209
|
+
const waitForAllDone = () => new Promise((resolve80, reject2) => {
|
|
72210
72210
|
if (aborted) {
|
|
72211
72211
|
reject2(aborted);
|
|
72212
72212
|
return;
|
|
72213
72213
|
}
|
|
72214
72214
|
if (cursor >= endFrame) {
|
|
72215
|
-
|
|
72215
|
+
resolve80();
|
|
72216
72216
|
return;
|
|
72217
72217
|
}
|
|
72218
|
-
enqueueAt(endFrame,
|
|
72218
|
+
enqueueAt(endFrame, resolve80, reject2);
|
|
72219
72219
|
});
|
|
72220
72220
|
const abort = (err) => {
|
|
72221
72221
|
if (aborted) return;
|
|
@@ -72486,8 +72486,8 @@ async function spawnStreamingEncoder(outputPath, options, signal, config) {
|
|
|
72486
72486
|
close: async () => {
|
|
72487
72487
|
const stdin = ffmpeg.stdin;
|
|
72488
72488
|
if (stdin && !stdin.destroyed) {
|
|
72489
|
-
await new Promise((
|
|
72490
|
-
stdin.end(() =>
|
|
72489
|
+
await new Promise((resolve80) => {
|
|
72490
|
+
stdin.end(() => resolve80());
|
|
72491
72491
|
});
|
|
72492
72492
|
}
|
|
72493
72493
|
const outcome = await exitPromise;
|
|
@@ -72762,10 +72762,10 @@ async function waitForCacheLock(signal) {
|
|
|
72762
72762
|
if (signal?.aborted) {
|
|
72763
72763
|
throw new UrlDownloadError("cancelled", false, "Download cancelled");
|
|
72764
72764
|
}
|
|
72765
|
-
await new Promise((
|
|
72765
|
+
await new Promise((resolve80, reject2) => {
|
|
72766
72766
|
const timeout = setTimeout(() => {
|
|
72767
72767
|
signal?.removeEventListener("abort", onAbort);
|
|
72768
|
-
|
|
72768
|
+
resolve80();
|
|
72769
72769
|
}, CACHE_LOCK_POLL_MS);
|
|
72770
72770
|
const onAbort = () => {
|
|
72771
72771
|
clearTimeout(timeout);
|
|
@@ -77756,7 +77756,7 @@ var require_processor = __commonJS({
|
|
|
77756
77756
|
if (options === void 0) {
|
|
77757
77757
|
options = {};
|
|
77758
77758
|
}
|
|
77759
|
-
return new Promise(function(
|
|
77759
|
+
return new Promise(function(resolve80, reject2) {
|
|
77760
77760
|
try {
|
|
77761
77761
|
var root_1 = _this._root(rule, options);
|
|
77762
77762
|
Promise.resolve(_this.func(root_1)).then(function(transform) {
|
|
@@ -77766,7 +77766,7 @@ var require_processor = __commonJS({
|
|
|
77766
77766
|
rule.selector = string;
|
|
77767
77767
|
}
|
|
77768
77768
|
return { transform, root: root_1, string };
|
|
77769
|
-
}).then(
|
|
77769
|
+
}).then(resolve80, reject2);
|
|
77770
77770
|
} catch (e3) {
|
|
77771
77771
|
reject2(e3);
|
|
77772
77772
|
return;
|
|
@@ -78496,14 +78496,14 @@ function inlineHelper2(call, ctx) {
|
|
|
78496
78496
|
};
|
|
78497
78497
|
return expandBody2(fn.body.body, bindings, prov, ctx);
|
|
78498
78498
|
}
|
|
78499
|
-
function assignStep2(update2,
|
|
78500
|
-
if (update2.operator === "+=") return asNum2(
|
|
78499
|
+
function assignStep2(update2, resolve80) {
|
|
78500
|
+
if (update2.operator === "+=") return asNum2(resolve80(update2.right));
|
|
78501
78501
|
if (update2.operator === "-=") {
|
|
78502
|
-
const s2 = asNum2(
|
|
78502
|
+
const s2 = asNum2(resolve80(update2.right));
|
|
78503
78503
|
return s2 === void 0 ? void 0 : -s2;
|
|
78504
78504
|
}
|
|
78505
78505
|
if (update2.operator === "=" && update2.right?.type === "BinaryExpression") {
|
|
78506
|
-
return asNum2(
|
|
78506
|
+
return asNum2(resolve80(update2.right.right));
|
|
78507
78507
|
}
|
|
78508
78508
|
return void 0;
|
|
78509
78509
|
}
|
|
@@ -78512,10 +78512,10 @@ function updatedVarName2(update2) {
|
|
|
78512
78512
|
if (update2?.type === "AssignmentExpression") return update2.left?.name ?? null;
|
|
78513
78513
|
return null;
|
|
78514
78514
|
}
|
|
78515
|
-
function loopStep2(update2, varName,
|
|
78515
|
+
function loopStep2(update2, varName, resolve80) {
|
|
78516
78516
|
if (updatedVarName2(update2) !== varName) return void 0;
|
|
78517
78517
|
if (update2.type === "UpdateExpression") return update2.operator === "++" ? 1 : -1;
|
|
78518
|
-
return assignStep2(update2,
|
|
78518
|
+
return assignStep2(update2, resolve80);
|
|
78519
78519
|
}
|
|
78520
78520
|
function asNum2(v2) {
|
|
78521
78521
|
return typeof v2 === "number" && Number.isFinite(v2) ? v2 : void 0;
|
|
@@ -78532,13 +78532,13 @@ function forInitVar2(init) {
|
|
|
78532
78532
|
const d2 = init.declarations[0];
|
|
78533
78533
|
return d2.id?.type === "Identifier" ? { name: d2.id.name, initExpr: d2.init } : null;
|
|
78534
78534
|
}
|
|
78535
|
-
function parseForHeader2(stmt,
|
|
78535
|
+
function parseForHeader2(stmt, resolve80) {
|
|
78536
78536
|
const iv = forInitVar2(stmt.init);
|
|
78537
78537
|
const test = stmt.test;
|
|
78538
78538
|
if (!iv || test?.type !== "BinaryExpression" || test.left?.name !== iv.name) return null;
|
|
78539
|
-
const start = asNum2(
|
|
78540
|
-
const end = asNum2(
|
|
78541
|
-
const step = loopStep2(stmt.update, iv.name,
|
|
78539
|
+
const start = asNum2(resolve80(iv.initExpr));
|
|
78540
|
+
const end = asNum2(resolve80(test.right));
|
|
78541
|
+
const step = loopStep2(stmt.update, iv.name, resolve80);
|
|
78542
78542
|
if (start === void 0 || end === void 0 || !step) return null;
|
|
78543
78543
|
return { v: iv.name, start, end, op: test.operator, step };
|
|
78544
78544
|
}
|
|
@@ -78650,12 +78650,12 @@ function expandStatements2(stmts, ctx) {
|
|
|
78650
78650
|
}
|
|
78651
78651
|
return out;
|
|
78652
78652
|
}
|
|
78653
|
-
function inlineComputedTimelines2(ast, timelineVar,
|
|
78653
|
+
function inlineComputedTimelines2(ast, timelineVar, resolve80) {
|
|
78654
78654
|
const helpers = collectInlinableHelpers2(ast, timelineVar);
|
|
78655
78655
|
const ctx = {
|
|
78656
78656
|
helpers,
|
|
78657
78657
|
timelineVar,
|
|
78658
|
-
resolve:
|
|
78658
|
+
resolve: resolve80,
|
|
78659
78659
|
depth: 0,
|
|
78660
78660
|
site: { n: 0 },
|
|
78661
78661
|
order: { n: 0 }
|
|
@@ -90830,13 +90830,13 @@ function shouldVerifyWorkerGpu(workerId, config) {
|
|
|
90830
90830
|
function raceAgainstAbort(promise, signal) {
|
|
90831
90831
|
if (!signal) return promise;
|
|
90832
90832
|
if (signal.aborted) return Promise.reject(new Error("Parallel worker cancelled"));
|
|
90833
|
-
return new Promise((
|
|
90833
|
+
return new Promise((resolve80, reject2) => {
|
|
90834
90834
|
const onAbort = () => reject2(new Error("Parallel worker cancelled"));
|
|
90835
90835
|
signal.addEventListener("abort", onAbort, { once: true });
|
|
90836
90836
|
promise.then(
|
|
90837
90837
|
(value) => {
|
|
90838
90838
|
signal.removeEventListener("abort", onAbort);
|
|
90839
|
-
|
|
90839
|
+
resolve80(value);
|
|
90840
90840
|
},
|
|
90841
90841
|
(error) => {
|
|
90842
90842
|
signal.removeEventListener("abort", onAbort);
|
|
@@ -91220,11 +91220,11 @@ function createFileServer(options) {
|
|
|
91220
91220
|
headers: { "Content-Type": contentType }
|
|
91221
91221
|
});
|
|
91222
91222
|
});
|
|
91223
|
-
return new Promise((
|
|
91223
|
+
return new Promise((resolve80) => {
|
|
91224
91224
|
const server = serve({ fetch: app.fetch, port }, (info) => {
|
|
91225
91225
|
const actualPort = info.port;
|
|
91226
91226
|
const url = `http://localhost:${actualPort}`;
|
|
91227
|
-
|
|
91227
|
+
resolve80({
|
|
91228
91228
|
url,
|
|
91229
91229
|
port: actualPort,
|
|
91230
91230
|
close: () => server.close()
|
|
@@ -96636,7 +96636,7 @@ async function fetchWithRetry(url, attempts = 3) {
|
|
|
96636
96636
|
} catch (err) {
|
|
96637
96637
|
lastErr = err;
|
|
96638
96638
|
if (attempt === attempts || !isRetryableTransport(err)) break;
|
|
96639
|
-
await new Promise((
|
|
96639
|
+
await new Promise((resolve80) => setTimeout(resolve80, 150 * attempt));
|
|
96640
96640
|
}
|
|
96641
96641
|
}
|
|
96642
96642
|
throw lastErr;
|
|
@@ -97460,7 +97460,7 @@ function downloadFile(url, dest, options = {}) {
|
|
|
97460
97460
|
const tmp = `${dest}.${process.pid}.${randomUUID6()}.tmp`;
|
|
97461
97461
|
const timeoutMs = options.timeoutMs ?? DEFAULT_DOWNLOAD_TIMEOUT_MS;
|
|
97462
97462
|
const maxBytes = options.maxBytes;
|
|
97463
|
-
return new Promise((
|
|
97463
|
+
return new Promise((resolve80, reject2) => {
|
|
97464
97464
|
const follow = (u, hops = 0) => {
|
|
97465
97465
|
let activeResponse;
|
|
97466
97466
|
let responsePipelineStarted = false;
|
|
@@ -97501,7 +97501,7 @@ function downloadFile(url, dest, options = {}) {
|
|
|
97501
97501
|
const transfer = maxBytes === void 0 ? pipeline2(res, file) : pipeline2(res, enforceByteLimit(maxBytes), file);
|
|
97502
97502
|
transfer.then(() => {
|
|
97503
97503
|
renameSync4(tmp, dest);
|
|
97504
|
-
|
|
97504
|
+
resolve80();
|
|
97505
97505
|
}).catch((err) => {
|
|
97506
97506
|
removePartialFile(tmp);
|
|
97507
97507
|
reject2(requestError ?? err);
|
|
@@ -99545,7 +99545,7 @@ function hasGit2() {
|
|
|
99545
99545
|
}
|
|
99546
99546
|
function spawnNpx(args, opts = {}) {
|
|
99547
99547
|
const npx = buildNpxCommand(args);
|
|
99548
|
-
return new Promise((
|
|
99548
|
+
return new Promise((resolve80, reject2) => {
|
|
99549
99549
|
const child = spawn6(npx.command, npx.args, {
|
|
99550
99550
|
// Route the child's stdout to the parent's stderr (fd 2), keeping stdin
|
|
99551
99551
|
// inherited. `skills update --json` runs this installer before printing its
|
|
@@ -99574,7 +99574,7 @@ function spawnNpx(args, opts = {}) {
|
|
|
99574
99574
|
}
|
|
99575
99575
|
});
|
|
99576
99576
|
child.on("close", (code, signal) => {
|
|
99577
|
-
if (code === 0)
|
|
99577
|
+
if (code === 0) resolve80();
|
|
99578
99578
|
else if (signal === "SIGINT" || code === 130)
|
|
99579
99579
|
reject2(new CliResultSignal({ exitCode: 0, kind: "success", presented: true }));
|
|
99580
99580
|
else reject2(new Error(`npx ${args.join(" ")} exited with code ${code}`));
|
|
@@ -115290,7 +115290,7 @@ function isErrno(err, code) {
|
|
|
115290
115290
|
return err.code === code;
|
|
115291
115291
|
}
|
|
115292
115292
|
function sleep(ms) {
|
|
115293
|
-
return new Promise((
|
|
115293
|
+
return new Promise((resolve80) => setTimeout(resolve80, ms));
|
|
115294
115294
|
}
|
|
115295
115295
|
function tryAcquireDirLock(lockDir) {
|
|
115296
115296
|
try {
|
|
@@ -116586,10 +116586,10 @@ function createFileServer2(options) {
|
|
|
116586
116586
|
}
|
|
116587
116587
|
});
|
|
116588
116588
|
});
|
|
116589
|
-
return new Promise((
|
|
116589
|
+
return new Promise((resolve80) => {
|
|
116590
116590
|
const connections = /* @__PURE__ */ new Set();
|
|
116591
116591
|
const server = serve2({ fetch: app.fetch, port, hostname: "127.0.0.1" }, (info) => {
|
|
116592
|
-
|
|
116592
|
+
resolve80({
|
|
116593
116593
|
url: `http://localhost:${info.port}`,
|
|
116594
116594
|
port: info.port,
|
|
116595
116595
|
addPreHeadScript: (script) => {
|
|
@@ -119300,9 +119300,9 @@ var require_compress_binding = __commonJS({
|
|
|
119300
119300
|
});
|
|
119301
119301
|
} else {
|
|
119302
119302
|
if (readAsync) {
|
|
119303
|
-
return new Promise(function(
|
|
119303
|
+
return new Promise(function(resolve80, reject2) {
|
|
119304
119304
|
readAsync(wasmBinaryFile, function(response) {
|
|
119305
|
-
|
|
119305
|
+
resolve80(new Uint8Array(response));
|
|
119306
119306
|
}, reject2);
|
|
119307
119307
|
});
|
|
119308
119308
|
}
|
|
@@ -120336,8 +120336,8 @@ var require_compress = __commonJS({
|
|
|
120336
120336
|
"../../node_modules/.bun/wawoff2@2.0.1/node_modules/wawoff2/compress.js"(exports, module) {
|
|
120337
120337
|
"use strict";
|
|
120338
120338
|
var em_module = require_compress_binding();
|
|
120339
|
-
var runtimeInit = new Promise((
|
|
120340
|
-
em_module.onRuntimeInitialized =
|
|
120339
|
+
var runtimeInit = new Promise((resolve80) => {
|
|
120340
|
+
em_module.onRuntimeInitialized = resolve80;
|
|
120341
120341
|
});
|
|
120342
120342
|
module.exports = async function compress2(buffer) {
|
|
120343
120343
|
await runtimeInit;
|
|
@@ -120856,9 +120856,9 @@ var require_decompress_binding = __commonJS({
|
|
|
120856
120856
|
});
|
|
120857
120857
|
} else {
|
|
120858
120858
|
if (readAsync) {
|
|
120859
|
-
return new Promise(function(
|
|
120859
|
+
return new Promise(function(resolve80, reject2) {
|
|
120860
120860
|
readAsync(wasmBinaryFile, function(response) {
|
|
120861
|
-
|
|
120861
|
+
resolve80(new Uint8Array(response));
|
|
120862
120862
|
}, reject2);
|
|
120863
120863
|
});
|
|
120864
120864
|
}
|
|
@@ -121873,8 +121873,8 @@ var require_decompress = __commonJS({
|
|
|
121873
121873
|
"../../node_modules/.bun/wawoff2@2.0.1/node_modules/wawoff2/decompress.js"(exports, module) {
|
|
121874
121874
|
"use strict";
|
|
121875
121875
|
var em_module = require_decompress_binding();
|
|
121876
|
-
var runtimeInit = new Promise((
|
|
121877
|
-
em_module.onRuntimeInitialized =
|
|
121876
|
+
var runtimeInit = new Promise((resolve80) => {
|
|
121877
|
+
em_module.onRuntimeInitialized = resolve80;
|
|
121878
121878
|
});
|
|
121879
121879
|
module.exports = async function decompress(buffer) {
|
|
121880
121880
|
await runtimeInit;
|
|
@@ -122461,10 +122461,10 @@ function throwIfCallerAborted(signal) {
|
|
|
122461
122461
|
async function waitForFontFetchRetry(delayMs, signal) {
|
|
122462
122462
|
throwIfCallerAborted(signal);
|
|
122463
122463
|
if (delayMs <= 0) return;
|
|
122464
|
-
await new Promise((
|
|
122464
|
+
await new Promise((resolve80, reject2) => {
|
|
122465
122465
|
const timeout = setTimeout(() => {
|
|
122466
122466
|
signal?.removeEventListener("abort", onAbort);
|
|
122467
|
-
|
|
122467
|
+
resolve80();
|
|
122468
122468
|
}, delayMs);
|
|
122469
122469
|
const onAbort = () => {
|
|
122470
122470
|
clearTimeout(timeout);
|
|
@@ -123193,10 +123193,10 @@ var init_semaphore = __esm({
|
|
|
123193
123193
|
this.active++;
|
|
123194
123194
|
return () => this.release();
|
|
123195
123195
|
}
|
|
123196
|
-
return new Promise((
|
|
123196
|
+
return new Promise((resolve80) => {
|
|
123197
123197
|
this.queue.push(() => {
|
|
123198
123198
|
this.active++;
|
|
123199
|
-
|
|
123199
|
+
resolve80(() => this.release());
|
|
123200
123200
|
});
|
|
123201
123201
|
});
|
|
123202
123202
|
}
|
|
@@ -127228,7 +127228,7 @@ function resolveDeStallTimeoutMs() {
|
|
|
127228
127228
|
return Number.isFinite(parsed) && parsed > 0 ? parsed : DEFAULT_DE_STALL_MS;
|
|
127229
127229
|
}
|
|
127230
127230
|
function raceAgainstStall(promise, deadlineMs, message, signal) {
|
|
127231
|
-
return new Promise((
|
|
127231
|
+
return new Promise((resolve80, reject2) => {
|
|
127232
127232
|
const timer = setTimeout(
|
|
127233
127233
|
() => {
|
|
127234
127234
|
reject2(
|
|
@@ -127242,7 +127242,7 @@ function raceAgainstStall(promise, deadlineMs, message, signal) {
|
|
|
127242
127242
|
promise.then(
|
|
127243
127243
|
(value) => {
|
|
127244
127244
|
clearTimeout(timer);
|
|
127245
|
-
|
|
127245
|
+
resolve80(value);
|
|
127246
127246
|
},
|
|
127247
127247
|
(error) => {
|
|
127248
127248
|
clearTimeout(timer);
|
|
@@ -128127,8 +128127,8 @@ async function createShaderTransitionWorkerPool(opts) {
|
|
|
128127
128127
|
if (terminated) {
|
|
128128
128128
|
throw new Error("shader-blend pool already terminated");
|
|
128129
128129
|
}
|
|
128130
|
-
return new Promise((
|
|
128131
|
-
const task = traceEnabled ? { req, resolve:
|
|
128130
|
+
return new Promise((resolve80, reject2) => {
|
|
128131
|
+
const task = traceEnabled ? { req, resolve: resolve80, reject: reject2, enqueuedAtMs: Date.now(), traceId: ++nextTaskId } : { req, resolve: resolve80, reject: reject2 };
|
|
128132
128132
|
const idle = slots.find((s2) => !s2.busy && !s2.dead);
|
|
128133
128133
|
if (idle) {
|
|
128134
128134
|
queue.unshift(task);
|
|
@@ -132037,12 +132037,12 @@ async function startHealthWorker(options = {}) {
|
|
|
132037
132037
|
stdout: false,
|
|
132038
132038
|
stderr: false
|
|
132039
132039
|
});
|
|
132040
|
-
await new Promise((
|
|
132040
|
+
await new Promise((resolve80, reject2) => {
|
|
132041
132041
|
const onMessage = (msg) => {
|
|
132042
132042
|
if (msg?.type === "listening") {
|
|
132043
132043
|
worker.off("error", onError);
|
|
132044
132044
|
worker.off("message", onMessage);
|
|
132045
|
-
|
|
132045
|
+
resolve80();
|
|
132046
132046
|
} else if (msg?.type === "listen-error") {
|
|
132047
132047
|
worker.off("error", onError);
|
|
132048
132048
|
worker.off("message", onMessage);
|
|
@@ -136421,12 +136421,12 @@ async function runPipeline(options, session, media, format, bgFormat, ffmpegPath
|
|
|
136421
136421
|
const drains = [];
|
|
136422
136422
|
if (!fgWroteFully) {
|
|
136423
136423
|
drains.push(
|
|
136424
|
-
new Promise((
|
|
136424
|
+
new Promise((resolve80) => fg.proc.stdin.once("drain", () => resolve80()))
|
|
136425
136425
|
);
|
|
136426
136426
|
}
|
|
136427
136427
|
if (!bgWroteFully && bg) {
|
|
136428
136428
|
drains.push(
|
|
136429
|
-
new Promise((
|
|
136429
|
+
new Promise((resolve80) => bg.proc.stdin.once("drain", () => resolve80()))
|
|
136430
136430
|
);
|
|
136431
136431
|
}
|
|
136432
136432
|
await Promise.all(drains);
|
|
@@ -136459,11 +136459,11 @@ ${decoder.getStderr().slice(-400)}`
|
|
|
136459
136459
|
return processed;
|
|
136460
136460
|
}
|
|
136461
136461
|
function waitForExit(proc, label2, getStderr) {
|
|
136462
|
-
return new Promise((
|
|
136462
|
+
return new Promise((resolve80, reject2) => {
|
|
136463
136463
|
proc.on("error", reject2);
|
|
136464
136464
|
proc.on("exit", (code, signal) => {
|
|
136465
136465
|
if (code === 0 && !signal) {
|
|
136466
|
-
|
|
136466
|
+
resolve80();
|
|
136467
136467
|
return;
|
|
136468
136468
|
}
|
|
136469
136469
|
const cause = signal ? `killed by ${signal}` : `exited with code ${code}`;
|
|
@@ -142276,8 +142276,8 @@ async function startLoopback(opts) {
|
|
|
142276
142276
|
const timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
142277
142277
|
let resolveResult;
|
|
142278
142278
|
let rejectResult;
|
|
142279
|
-
const result = new Promise((
|
|
142280
|
-
resolveResult =
|
|
142279
|
+
const result = new Promise((resolve80, reject2) => {
|
|
142280
|
+
resolveResult = resolve80;
|
|
142281
142281
|
rejectResult = reject2;
|
|
142282
142282
|
});
|
|
142283
142283
|
let redirectUri = "";
|
|
@@ -142293,7 +142293,7 @@ async function startLoopback(opts) {
|
|
|
142293
142293
|
closed = true;
|
|
142294
142294
|
clearTimeout(timer);
|
|
142295
142295
|
server.closeAllConnections?.();
|
|
142296
|
-
await new Promise((
|
|
142296
|
+
await new Promise((resolve80) => server.close(() => resolve80()));
|
|
142297
142297
|
};
|
|
142298
142298
|
const timer = setTimeout(() => {
|
|
142299
142299
|
rejectResult(new Error(`OAuth callback timed out after ${timeoutMs}ms`));
|
|
@@ -142304,11 +142304,11 @@ async function startLoopback(opts) {
|
|
|
142304
142304
|
return { result, redirectUri, close };
|
|
142305
142305
|
}
|
|
142306
142306
|
async function listen(server, port) {
|
|
142307
|
-
await new Promise((
|
|
142307
|
+
await new Promise((resolve80, reject2) => {
|
|
142308
142308
|
server.once("error", reject2);
|
|
142309
142309
|
server.listen(port, "127.0.0.1", () => {
|
|
142310
142310
|
server.off("error", reject2);
|
|
142311
|
-
|
|
142311
|
+
resolve80();
|
|
142312
142312
|
});
|
|
142313
142313
|
});
|
|
142314
142314
|
}
|
|
@@ -142495,7 +142495,7 @@ async function startDeviceAuthorizationFlow(opts = {}) {
|
|
|
142495
142495
|
const runtime = {
|
|
142496
142496
|
clientId: resolveClientId(),
|
|
142497
142497
|
fetchImpl: opts.fetchImpl ?? fetch,
|
|
142498
|
-
sleepImpl: opts.sleepImpl ?? ((ms) => new Promise((
|
|
142498
|
+
sleepImpl: opts.sleepImpl ?? ((ms) => new Promise((resolve80) => setTimeout(resolve80, ms))),
|
|
142499
142499
|
now: opts.now ?? Date.now,
|
|
142500
142500
|
requestTimeoutMs: opts.requestTimeoutMs ?? DEVICE_REQUEST_TIMEOUT_MS
|
|
142501
142501
|
};
|
|
@@ -143189,7 +143189,7 @@ function isRequestTimeout(error) {
|
|
|
143189
143189
|
return error instanceof DOMException && (error.name === "TimeoutError" || error.name === "AbortError");
|
|
143190
143190
|
}
|
|
143191
143191
|
function waitBeforePublishRetry() {
|
|
143192
|
-
return new Promise((
|
|
143192
|
+
return new Promise((resolve80) => setTimeout(resolve80, PUBLISH_RETRY_DELAY_MS));
|
|
143193
143193
|
}
|
|
143194
143194
|
async function fetchForPublish(input2, createInit, failureStage, attempts = 1) {
|
|
143195
143195
|
if (attempts < 1) throw new RangeError("Publish fetch attempts must be at least 1");
|
|
@@ -145230,18 +145230,18 @@ async function getDoctorSummary() {
|
|
|
145230
145230
|
}
|
|
145231
145231
|
}
|
|
145232
145232
|
function askQuestion(prompt) {
|
|
145233
|
-
return new Promise((
|
|
145233
|
+
return new Promise((resolve80) => {
|
|
145234
145234
|
const rl = readline.createInterface({
|
|
145235
145235
|
input: process.stdin,
|
|
145236
145236
|
output: process.stdout
|
|
145237
145237
|
});
|
|
145238
145238
|
rl.question(prompt, (answer) => {
|
|
145239
145239
|
rl.close();
|
|
145240
|
-
|
|
145240
|
+
resolve80(answer);
|
|
145241
145241
|
});
|
|
145242
145242
|
const timeout = setTimeout(() => {
|
|
145243
145243
|
rl.close();
|
|
145244
|
-
|
|
145244
|
+
resolve80("");
|
|
145245
145245
|
}, 1e4);
|
|
145246
145246
|
if (typeof timeout === "object" && timeout !== null && "unref" in timeout) {
|
|
145247
145247
|
timeout.unref();
|
|
@@ -147959,12 +147959,12 @@ async function getCompositionDuration3(page) {
|
|
|
147959
147959
|
}
|
|
147960
147960
|
function raceMediaReady(el, deadlineMs) {
|
|
147961
147961
|
if (Number.isFinite(el.duration) && el.duration > 0) return Promise.resolve();
|
|
147962
|
-
return new Promise((
|
|
147962
|
+
return new Promise((resolve80) => {
|
|
147963
147963
|
const onReady = () => {
|
|
147964
147964
|
el.removeEventListener("loadedmetadata", onReady);
|
|
147965
147965
|
el.removeEventListener("error", onReady);
|
|
147966
147966
|
clearTimeout(timer);
|
|
147967
|
-
|
|
147967
|
+
resolve80();
|
|
147968
147968
|
};
|
|
147969
147969
|
el.addEventListener("loadedmetadata", onReady, { once: true });
|
|
147970
147970
|
el.addEventListener("error", onReady, { once: true });
|
|
@@ -147980,7 +147980,7 @@ async function auditClipDurations(page, analyzeClipMediaFit2, extraWaitMs) {
|
|
|
147980
147980
|
await Promise.all(
|
|
147981
147981
|
nodes.map((el) => {
|
|
147982
147982
|
if (Number.isFinite(el.duration) && el.duration > 0) return Promise.resolve();
|
|
147983
|
-
return new Promise((
|
|
147983
|
+
return new Promise((resolve80) => {
|
|
147984
147984
|
const cleanup = () => {
|
|
147985
147985
|
el.removeEventListener("loadedmetadata", onReady);
|
|
147986
147986
|
el.removeEventListener("error", onReady);
|
|
@@ -147988,7 +147988,7 @@ async function auditClipDurations(page, analyzeClipMediaFit2, extraWaitMs) {
|
|
|
147988
147988
|
};
|
|
147989
147989
|
const onReady = () => {
|
|
147990
147990
|
cleanup();
|
|
147991
|
-
|
|
147991
|
+
resolve80();
|
|
147992
147992
|
};
|
|
147993
147993
|
el.addEventListener("loadedmetadata", onReady, { once: true });
|
|
147994
147994
|
el.addEventListener("error", onReady, { once: true });
|
|
@@ -148638,6 +148638,7 @@ function createPageDriver(page, setTime) {
|
|
|
148638
148638
|
return {
|
|
148639
148639
|
initialize: (contrast) => injectAuditScripts(page, contrast),
|
|
148640
148640
|
getDuration: () => getCompositionDuration4(page),
|
|
148641
|
+
hasNoTimelineDeclaration: () => hasNoTimelineDeclaration(page),
|
|
148641
148642
|
getTransitionBoundaries: () => collectTweenBoundaries2(page),
|
|
148642
148643
|
getCanvas: () => page.evaluate(() => ({ width: window.innerWidth, height: window.innerHeight })),
|
|
148643
148644
|
findAmbiguousSelectors: (selectors) => findAmbiguousSelectors2(page, selectors),
|
|
@@ -148660,6 +148661,11 @@ function createPageDriver(page, setTime) {
|
|
|
148660
148661
|
collectContrast: (time, annotations) => collectContrast(page, time, annotations)
|
|
148661
148662
|
};
|
|
148662
148663
|
}
|
|
148664
|
+
async function hasNoTimelineDeclaration(page) {
|
|
148665
|
+
return page.evaluate(
|
|
148666
|
+
() => document.querySelector("[data-composition-id]")?.hasAttribute("data-no-timeline") ?? false
|
|
148667
|
+
);
|
|
148668
|
+
}
|
|
148663
148669
|
async function injectAuditScripts(page, contrast) {
|
|
148664
148670
|
await page.addScriptTag({ content: loadBrowserScript("layout-audit.browser.js") });
|
|
148665
148671
|
await page.addScriptTag({ content: loadBrowserScript("motion-sample.browser.js") });
|
|
@@ -149580,7 +149586,8 @@ async function collectMotionOverlapSamples(driver, grid, collected) {
|
|
|
149580
149586
|
collected.layoutIssues.push(...await driver.collectOverlap(time));
|
|
149581
149587
|
}
|
|
149582
149588
|
}
|
|
149583
|
-
function detectSweepStatic(duration, geometrySignatures, motionIssues) {
|
|
149589
|
+
function detectSweepStatic(duration, geometrySignatures, motionIssues, hasNoTimelineDeclaration2) {
|
|
149590
|
+
if (hasNoTimelineDeclaration2) return [];
|
|
149584
149591
|
if (duration < SWEEP_STATIC_MIN_DURATION_SEC) return [];
|
|
149585
149592
|
if (geometrySignatures.length < 2) return [];
|
|
149586
149593
|
if (motionIssues.some((issue) => issue.code === "motion_frozen")) return [];
|
|
@@ -149933,7 +149940,8 @@ async function runAuditGrid(driver, options, motion) {
|
|
|
149933
149940
|
const sweepFindings = detectSweepStatic(
|
|
149934
149941
|
grid.duration,
|
|
149935
149942
|
collected.geometrySignatures,
|
|
149936
|
-
motionIssues
|
|
149943
|
+
motionIssues,
|
|
149944
|
+
await driver.hasNoTimelineDeclaration()
|
|
149937
149945
|
);
|
|
149938
149946
|
const rotationFindings = detectRotationPivotDrift(
|
|
149939
149947
|
collected.rotationSamples,
|
|
@@ -151932,14 +151940,14 @@ function inlineHelper3(call, ctx) {
|
|
|
151932
151940
|
};
|
|
151933
151941
|
return expandBody3(fn.body.body, bindings, prov, ctx);
|
|
151934
151942
|
}
|
|
151935
|
-
function assignStep3(update2,
|
|
151936
|
-
if (update2.operator === "+=") return asNum3(
|
|
151943
|
+
function assignStep3(update2, resolve80) {
|
|
151944
|
+
if (update2.operator === "+=") return asNum3(resolve80(update2.right));
|
|
151937
151945
|
if (update2.operator === "-=") {
|
|
151938
|
-
const s2 = asNum3(
|
|
151946
|
+
const s2 = asNum3(resolve80(update2.right));
|
|
151939
151947
|
return s2 === void 0 ? void 0 : -s2;
|
|
151940
151948
|
}
|
|
151941
151949
|
if (update2.operator === "=" && update2.right?.type === "BinaryExpression") {
|
|
151942
|
-
return asNum3(
|
|
151950
|
+
return asNum3(resolve80(update2.right.right));
|
|
151943
151951
|
}
|
|
151944
151952
|
return void 0;
|
|
151945
151953
|
}
|
|
@@ -151948,10 +151956,10 @@ function updatedVarName3(update2) {
|
|
|
151948
151956
|
if (update2?.type === "AssignmentExpression") return update2.left?.name ?? null;
|
|
151949
151957
|
return null;
|
|
151950
151958
|
}
|
|
151951
|
-
function loopStep3(update2, varName,
|
|
151959
|
+
function loopStep3(update2, varName, resolve80) {
|
|
151952
151960
|
if (updatedVarName3(update2) !== varName) return void 0;
|
|
151953
151961
|
if (update2.type === "UpdateExpression") return update2.operator === "++" ? 1 : -1;
|
|
151954
|
-
return assignStep3(update2,
|
|
151962
|
+
return assignStep3(update2, resolve80);
|
|
151955
151963
|
}
|
|
151956
151964
|
function asNum3(v2) {
|
|
151957
151965
|
return typeof v2 === "number" && Number.isFinite(v2) ? v2 : void 0;
|
|
@@ -151968,13 +151976,13 @@ function forInitVar3(init) {
|
|
|
151968
151976
|
const d2 = init.declarations[0];
|
|
151969
151977
|
return d2.id?.type === "Identifier" ? { name: d2.id.name, initExpr: d2.init } : null;
|
|
151970
151978
|
}
|
|
151971
|
-
function parseForHeader3(stmt,
|
|
151979
|
+
function parseForHeader3(stmt, resolve80) {
|
|
151972
151980
|
const iv = forInitVar3(stmt.init);
|
|
151973
151981
|
const test = stmt.test;
|
|
151974
151982
|
if (!iv || test?.type !== "BinaryExpression" || test.left?.name !== iv.name) return null;
|
|
151975
|
-
const start = asNum3(
|
|
151976
|
-
const end = asNum3(
|
|
151977
|
-
const step = loopStep3(stmt.update, iv.name,
|
|
151983
|
+
const start = asNum3(resolve80(iv.initExpr));
|
|
151984
|
+
const end = asNum3(resolve80(test.right));
|
|
151985
|
+
const step = loopStep3(stmt.update, iv.name, resolve80);
|
|
151978
151986
|
if (start === void 0 || end === void 0 || !step) return null;
|
|
151979
151987
|
return { v: iv.name, start, end, op: test.operator, step };
|
|
151980
151988
|
}
|
|
@@ -152086,12 +152094,12 @@ function expandStatements3(stmts, ctx) {
|
|
|
152086
152094
|
}
|
|
152087
152095
|
return out;
|
|
152088
152096
|
}
|
|
152089
|
-
function inlineComputedTimelines3(ast, timelineVar,
|
|
152097
|
+
function inlineComputedTimelines3(ast, timelineVar, resolve80) {
|
|
152090
152098
|
const helpers = collectInlinableHelpers3(ast, timelineVar);
|
|
152091
152099
|
const ctx = {
|
|
152092
152100
|
helpers,
|
|
152093
152101
|
timelineVar,
|
|
152094
|
-
resolve:
|
|
152102
|
+
resolve: resolve80,
|
|
152095
152103
|
depth: 0,
|
|
152096
152104
|
site: { n: 0 },
|
|
152097
152105
|
order: { n: 0 }
|
|
@@ -153477,9 +153485,26 @@ __export(motionShot_exports, {
|
|
|
153477
153485
|
ensureShotOutputDir: () => ensureShotOutputDir,
|
|
153478
153486
|
seekAllAdaptersInBrowser: () => seekAllAdaptersInBrowser
|
|
153479
153487
|
});
|
|
153480
|
-
import { mkdirSync as mkdirSync49, writeFileSync as writeFileSync39 } from "fs";
|
|
153481
|
-
import { dirname as dirname46 } from "path";
|
|
153482
|
-
function
|
|
153488
|
+
import { mkdirSync as mkdirSync49, statSync as statSync31, writeFileSync as writeFileSync39 } from "fs";
|
|
153489
|
+
import { dirname as dirname46, resolve as resolve60 } from "path";
|
|
153490
|
+
function pathsReferToSameFile(firstPath, secondPath) {
|
|
153491
|
+
const first = resolve60(firstPath);
|
|
153492
|
+
const second = resolve60(secondPath);
|
|
153493
|
+
if (first === second) return true;
|
|
153494
|
+
try {
|
|
153495
|
+
const firstStat = statSync31(first);
|
|
153496
|
+
const secondStat = statSync31(second);
|
|
153497
|
+
return firstStat.dev === secondStat.dev && firstStat.ino === secondStat.ino;
|
|
153498
|
+
} catch {
|
|
153499
|
+
return false;
|
|
153500
|
+
}
|
|
153501
|
+
}
|
|
153502
|
+
function ensureShotOutputDir(outPath, sourcePath) {
|
|
153503
|
+
if (sourcePath && pathsReferToSameFile(outPath, sourcePath)) {
|
|
153504
|
+
throw new Error(
|
|
153505
|
+
`--shot output must not overwrite the composition source: ${sourcePath}. Choose a separate .png path.`
|
|
153506
|
+
);
|
|
153507
|
+
}
|
|
153483
153508
|
mkdirSync49(dirname46(outPath), { recursive: true });
|
|
153484
153509
|
}
|
|
153485
153510
|
function applyOrbitCamera(selectors, cam) {
|
|
@@ -153502,13 +153527,13 @@ function applyOrbitCamera(selectors, cam) {
|
|
|
153502
153527
|
lens.style.perspectiveOrigin = "50% 50%";
|
|
153503
153528
|
}
|
|
153504
153529
|
function compositeGhostFrames(frames, alphas, W2, H3, label2) {
|
|
153505
|
-
return new Promise((
|
|
153530
|
+
return new Promise((resolve80) => {
|
|
153506
153531
|
const cv = document.createElement("canvas");
|
|
153507
153532
|
cv.width = W2;
|
|
153508
153533
|
cv.height = H3;
|
|
153509
153534
|
const ctx = cv.getContext("2d");
|
|
153510
153535
|
if (!ctx) {
|
|
153511
|
-
|
|
153536
|
+
resolve80("");
|
|
153512
153537
|
return;
|
|
153513
153538
|
}
|
|
153514
153539
|
ctx.fillStyle = "#000";
|
|
@@ -153520,7 +153545,7 @@ function compositeGhostFrames(frames, alphas, W2, H3, label2) {
|
|
|
153520
153545
|
ctx.font = "600 22px ui-monospace, SFMono-Regular, Menlo, monospace";
|
|
153521
153546
|
ctx.fillStyle = "#86c2ff";
|
|
153522
153547
|
ctx.fillText(label2, 24, 38);
|
|
153523
|
-
|
|
153548
|
+
resolve80(cv.toDataURL("image/png"));
|
|
153524
153549
|
return;
|
|
153525
153550
|
}
|
|
153526
153551
|
const img = new Image();
|
|
@@ -153875,7 +153900,7 @@ async function captureMarkerOnionSkin(page, requests, times, size, camera, frame
|
|
|
153875
153900
|
return outPath;
|
|
153876
153901
|
}
|
|
153877
153902
|
async function captureMotionPathShot(projectDir, requestsIn, outPath, opts = {}) {
|
|
153878
|
-
ensureShotOutputDir(outPath);
|
|
153903
|
+
ensureShotOutputDir(outPath, resolve60(projectDir, opts.entryFile ?? "index.html"));
|
|
153879
153904
|
let requests = requestsIn;
|
|
153880
153905
|
const samples = Math.max(1, Math.min(60, opts.samples ?? 9));
|
|
153881
153906
|
const layout2 = opts.layout ?? "path";
|
|
@@ -153943,8 +153968,8 @@ __export(keyframes_exports, {
|
|
|
153943
153968
|
resolveScope: () => resolveScope,
|
|
153944
153969
|
surfaceComposition: () => surfaceComposition
|
|
153945
153970
|
});
|
|
153946
|
-
import { existsSync as existsSync93, readFileSync as readFileSync68, statSync as
|
|
153947
|
-
import { resolve as
|
|
153971
|
+
import { existsSync as existsSync93, readFileSync as readFileSync68, statSync as statSync33 } from "fs";
|
|
153972
|
+
import { resolve as resolve61, dirname as dirname47, basename as basename18, join as join103, relative as relative25, sep as sep13 } from "path";
|
|
153948
153973
|
function queryIncludingTemplates(html, selector) {
|
|
153949
153974
|
const doc = new DOMParser().parseFromString(html, "text/html");
|
|
153950
153975
|
const roots = [doc];
|
|
@@ -154314,7 +154339,7 @@ function collectCompositions(indexPath2) {
|
|
|
154314
154339
|
for (const div of Array.from(doc.querySelectorAll("[data-composition-src]"))) {
|
|
154315
154340
|
const src = div.getAttribute("data-composition-src");
|
|
154316
154341
|
if (!src) continue;
|
|
154317
|
-
const subPath =
|
|
154342
|
+
const subPath = resolve61(baseDir, src);
|
|
154318
154343
|
if (!existsSync93(subPath)) continue;
|
|
154319
154344
|
const id = div.getAttribute("data-composition-id") ?? src;
|
|
154320
154345
|
out.push(surfaceComposition(readFileSync68(subPath, "utf-8"), id, src));
|
|
@@ -154421,7 +154446,7 @@ async function runOnionShot(comps, allComps, projectDir, entryFile, args) {
|
|
|
154421
154446
|
console.log(c.dim(guardError));
|
|
154422
154447
|
return true;
|
|
154423
154448
|
}
|
|
154424
|
-
const saved = await captureMotionPathShot2(projectDir, requests,
|
|
154449
|
+
const saved = await captureMotionPathShot2(projectDir, requests, resolve61(args.shot), {
|
|
154425
154450
|
...onionShotOptions(args),
|
|
154426
154451
|
entryFile
|
|
154427
154452
|
});
|
|
@@ -154434,8 +154459,8 @@ function resolveScope(args) {
|
|
|
154434
154459
|
let projectName;
|
|
154435
154460
|
let projectDir;
|
|
154436
154461
|
let entryFile;
|
|
154437
|
-
if (raw && raw.endsWith(".html") && existsSync93(raw) &&
|
|
154438
|
-
const entryPath =
|
|
154462
|
+
if (raw && raw.endsWith(".html") && existsSync93(raw) && statSync33(raw).isFile()) {
|
|
154463
|
+
const entryPath = resolve61(raw);
|
|
154439
154464
|
comps = [surfaceComposition(readFileSync68(entryPath, "utf-8"), basename18(entryPath), entryPath)];
|
|
154440
154465
|
projectName = basename18(entryPath);
|
|
154441
154466
|
projectDir = findProjectRoot(entryPath);
|
|
@@ -154657,7 +154682,7 @@ __export(info_exports, {
|
|
|
154657
154682
|
examples: () => examples17,
|
|
154658
154683
|
orientation: () => orientation
|
|
154659
154684
|
});
|
|
154660
|
-
import { readFileSync as readFileSync69, readdirSync as readdirSync31, statSync as
|
|
154685
|
+
import { readFileSync as readFileSync69, readdirSync as readdirSync31, statSync as statSync34 } from "fs";
|
|
154661
154686
|
import { join as join104 } from "path";
|
|
154662
154687
|
function orientation(width, height) {
|
|
154663
154688
|
if (width > height) return "landscape";
|
|
@@ -154676,7 +154701,7 @@ function totalSize(dir) {
|
|
|
154676
154701
|
if (entry.isDirectory()) {
|
|
154677
154702
|
total += totalSize(path2);
|
|
154678
154703
|
} else {
|
|
154679
|
-
total +=
|
|
154704
|
+
total += statSync34(path2).size;
|
|
154680
154705
|
}
|
|
154681
154706
|
}
|
|
154682
154707
|
return total;
|
|
@@ -154765,7 +154790,7 @@ __export(compositions_exports, {
|
|
|
154765
154790
|
parseSubComposition: () => parseSubComposition
|
|
154766
154791
|
});
|
|
154767
154792
|
import { existsSync as existsSync94, readFileSync as readFileSync70 } from "fs";
|
|
154768
|
-
import { resolve as
|
|
154793
|
+
import { resolve as resolve62, dirname as dirname48 } from "path";
|
|
154769
154794
|
function countRenderableDescendants(root) {
|
|
154770
154795
|
return Array.from(root.querySelectorAll("*")).filter(
|
|
154771
154796
|
(el) => !NON_RENDERED_TAGS2.has(el.tagName.toLowerCase())
|
|
@@ -154843,7 +154868,7 @@ function parseCompositions(html, baseDir) {
|
|
|
154843
154868
|
const height = parseInt(div.getAttribute("data-height") ?? "1080", 10);
|
|
154844
154869
|
const compositionSrc = div.getAttribute("data-composition-src");
|
|
154845
154870
|
if (compositionSrc) {
|
|
154846
|
-
const subPath =
|
|
154871
|
+
const subPath = resolve62(baseDir, compositionSrc);
|
|
154847
154872
|
if (existsSync94(subPath)) {
|
|
154848
154873
|
const subHtml = readFileSync70(subPath, "utf-8");
|
|
154849
154874
|
const subInfo = parseSubComposition(subHtml, id, width, height);
|
|
@@ -154989,8 +155014,8 @@ __export(benchmark_exports, {
|
|
|
154989
155014
|
default: () => benchmark_default,
|
|
154990
155015
|
examples: () => examples19
|
|
154991
155016
|
});
|
|
154992
|
-
import { existsSync as existsSync95, statSync as
|
|
154993
|
-
import { resolve as
|
|
155017
|
+
import { existsSync as existsSync95, statSync as statSync35 } from "fs";
|
|
155018
|
+
import { resolve as resolve63, join as join105 } from "path";
|
|
154994
155019
|
var examples19, FPS_30, FPS_60, DEFAULT_CONFIGS, benchmark_default;
|
|
154995
155020
|
var init_benchmark = __esm({
|
|
154996
155021
|
"src/commands/benchmark.ts"() {
|
|
@@ -155036,7 +155061,7 @@ var init_benchmark = __esm({
|
|
|
155036
155061
|
failCommand();
|
|
155037
155062
|
}
|
|
155038
155063
|
const jsonOutput = args.json ?? false;
|
|
155039
|
-
const benchDir =
|
|
155064
|
+
const benchDir = resolve63("renders", ".benchmark");
|
|
155040
155065
|
let producer = null;
|
|
155041
155066
|
try {
|
|
155042
155067
|
producer = await loadProducer();
|
|
@@ -155084,7 +155109,7 @@ var init_benchmark = __esm({
|
|
|
155084
155109
|
const elapsedMs = Date.now() - startTime;
|
|
155085
155110
|
let fileSize = null;
|
|
155086
155111
|
if (existsSync95(outputPath)) {
|
|
155087
|
-
const stat3 =
|
|
155112
|
+
const stat3 = statSync35(outputPath);
|
|
155088
155113
|
fileSize = stat3.size;
|
|
155089
155114
|
}
|
|
155090
155115
|
runs.push({ elapsedMs, fileSize });
|
|
@@ -155357,7 +155382,7 @@ __export(remove_background_exports, {
|
|
|
155357
155382
|
default: () => remove_background_default,
|
|
155358
155383
|
examples: () => examples21
|
|
155359
155384
|
});
|
|
155360
|
-
import { resolve as
|
|
155385
|
+
import { resolve as resolve64 } from "path";
|
|
155361
155386
|
import { existsSync as existsSync96 } from "fs";
|
|
155362
155387
|
async function showInfo(json) {
|
|
155363
155388
|
const { selectProviders: selectProviders2, listAvailableProviders: listAvailableProviders2, DEFAULT_MODEL: DEFAULT_MODEL5, MODEL_MEMORY_MB: MODEL_MEMORY_MB2, modelPath: modelPath2 } = await Promise.resolve().then(() => (init_manager3(), manager_exports3));
|
|
@@ -155501,10 +155526,10 @@ var init_remove_background = __esm({
|
|
|
155501
155526
|
);
|
|
155502
155527
|
failCommand();
|
|
155503
155528
|
}
|
|
155504
|
-
const inputPath =
|
|
155505
|
-
const outputPath =
|
|
155529
|
+
const inputPath = resolve64(args.input);
|
|
155530
|
+
const outputPath = resolve64(args.output);
|
|
155506
155531
|
const backgroundOutputArg = args["background-output"];
|
|
155507
|
-
const backgroundOutputPath = backgroundOutputArg ?
|
|
155532
|
+
const backgroundOutputPath = backgroundOutputArg ? resolve64(backgroundOutputArg) : void 0;
|
|
155508
155533
|
const { render: render3 } = await Promise.resolve().then(() => (init_pipeline(), pipeline_exports));
|
|
155509
155534
|
const spin = args.json ? null : ft();
|
|
155510
155535
|
spin?.start("Preparing background-removal pipeline...");
|
|
@@ -155671,7 +155696,7 @@ __export(transcribe_exports2, {
|
|
|
155671
155696
|
examples: () => examples22
|
|
155672
155697
|
});
|
|
155673
155698
|
import { existsSync as existsSync98, writeFileSync as writeFileSync41 } from "fs";
|
|
155674
|
-
import { resolve as
|
|
155699
|
+
import { resolve as resolve65, join as join107, extname as extname17, dirname as dirname49 } from "path";
|
|
155675
155700
|
function parseTimeoutMs(raw, json) {
|
|
155676
155701
|
const source = raw ?? process.env["HYPERFRAMES_TRANSCRIBE_TIMEOUT_MS"];
|
|
155677
155702
|
if (source == null || source === "") return void 0;
|
|
@@ -155725,7 +155750,7 @@ async function exportTranscript(inputPath, dir, to, output, json, preserveCues)
|
|
|
155725
155750
|
const { words, format } = loadTranscript2(inputPath);
|
|
155726
155751
|
if (words.length === 0) exitNoWords(json);
|
|
155727
155752
|
const preGrouped = preserveCues || format === "srt" || format === "vtt" || void 0;
|
|
155728
|
-
const outPath =
|
|
155753
|
+
const outPath = resolve65(output ?? join107(dir, `transcript.${to}`));
|
|
155729
155754
|
const content = to === "srt" ? formatSrt2(words, { preGrouped }) : formatVtt2(words, { preGrouped });
|
|
155730
155755
|
writeFileSync41(outPath, content);
|
|
155731
155756
|
if (json) {
|
|
@@ -155908,14 +155933,14 @@ var init_transcribe2 = __esm({
|
|
|
155908
155933
|
}
|
|
155909
155934
|
},
|
|
155910
155935
|
async run({ args }) {
|
|
155911
|
-
const inputPath =
|
|
155936
|
+
const inputPath = resolve65(args.input);
|
|
155912
155937
|
if (!existsSync98(inputPath)) {
|
|
155913
155938
|
const message = `File not found: ${args.input}`;
|
|
155914
155939
|
trackCommandFailure("transcribe", message);
|
|
155915
155940
|
console.error(c.error(message));
|
|
155916
155941
|
failCommand();
|
|
155917
155942
|
}
|
|
155918
|
-
const dir =
|
|
155943
|
+
const dir = resolve65(args.dir ?? dirname49(inputPath));
|
|
155919
155944
|
const ext = extname17(inputPath).toLowerCase();
|
|
155920
155945
|
const isImport = ext === ".json" || ext === ".srt" || ext === ".vtt";
|
|
155921
155946
|
const to = parseExportFormat(args.to, args.json);
|
|
@@ -156259,7 +156284,7 @@ __export(tts_exports, {
|
|
|
156259
156284
|
examples: () => examples23
|
|
156260
156285
|
});
|
|
156261
156286
|
import { existsSync as existsSync101, readFileSync as readFileSync73 } from "fs";
|
|
156262
|
-
import { resolve as
|
|
156287
|
+
import { resolve as resolve66, extname as extname18 } from "path";
|
|
156263
156288
|
function listVoices(json) {
|
|
156264
156289
|
const rows = BUNDLED_VOICES.map((v2) => ({ ...v2, defaultLang: inferLangFromVoiceId(v2.id) }));
|
|
156265
156290
|
if (json) {
|
|
@@ -156374,7 +156399,7 @@ var init_tts = __esm({
|
|
|
156374
156399
|
failCommand();
|
|
156375
156400
|
}
|
|
156376
156401
|
let text2;
|
|
156377
|
-
const maybeFile =
|
|
156402
|
+
const maybeFile = resolve66(input2);
|
|
156378
156403
|
if (existsSync101(maybeFile) && extname18(maybeFile).toLowerCase() === ".txt") {
|
|
156379
156404
|
text2 = readFileSync73(maybeFile, "utf-8").trim();
|
|
156380
156405
|
if (!text2) {
|
|
@@ -156388,7 +156413,7 @@ var init_tts = __esm({
|
|
|
156388
156413
|
console.error(c.error("No text provided."));
|
|
156389
156414
|
failCommand();
|
|
156390
156415
|
}
|
|
156391
|
-
const output =
|
|
156416
|
+
const output = resolve66(args.output ?? "speech.wav");
|
|
156392
156417
|
const voice = args.voice ?? DEFAULT_VOICE;
|
|
156393
156418
|
const speed = args.speed ? parseFloat(args.speed) : 1;
|
|
156394
156419
|
if (isNaN(speed) || speed <= 0 || speed > 3) {
|
|
@@ -156469,13 +156494,13 @@ __export(docs_exports, {
|
|
|
156469
156494
|
examples: () => examples24
|
|
156470
156495
|
});
|
|
156471
156496
|
import { readFileSync as readFileSync74, existsSync as existsSync103 } from "fs";
|
|
156472
|
-
import { resolve as
|
|
156497
|
+
import { resolve as resolve67, dirname as dirname51, join as join110 } from "path";
|
|
156473
156498
|
import { fileURLToPath as fileURLToPath14 } from "url";
|
|
156474
156499
|
function docsDir() {
|
|
156475
156500
|
const thisFile = fileURLToPath14(import.meta.url);
|
|
156476
156501
|
const dir = dirname51(thisFile);
|
|
156477
|
-
const devPath =
|
|
156478
|
-
const builtPath =
|
|
156502
|
+
const devPath = resolve67(dir, "..", "docs");
|
|
156503
|
+
const builtPath = resolve67(dir, "docs");
|
|
156479
156504
|
return existsSync103(devPath) ? devPath : builtPath;
|
|
156480
156505
|
}
|
|
156481
156506
|
function formatInlineCode(line2) {
|
|
@@ -156978,7 +157003,7 @@ __export(upgrade_exports, {
|
|
|
156978
157003
|
});
|
|
156979
157004
|
import { execFileSync as execFileSync17 } from "child_process";
|
|
156980
157005
|
import { existsSync as existsSync105, readFileSync as readFileSync75, writeFileSync as writeFileSync44, renameSync as renameSync16 } from "fs";
|
|
156981
|
-
import { resolve as
|
|
157006
|
+
import { resolve as resolve68 } from "path";
|
|
156982
157007
|
async function confirmUpgrade() {
|
|
156983
157008
|
const shouldUpgrade = await ue({ message: "Upgrade now?" });
|
|
156984
157009
|
return !q(shouldUpgrade) && shouldUpgrade === true;
|
|
@@ -157036,7 +157061,7 @@ function resolveProjectArgs(project, opts) {
|
|
|
157036
157061
|
return { dir: project, check: opts.check, json: opts.json };
|
|
157037
157062
|
}
|
|
157038
157063
|
async function upgradeProjectPins(dir, opts) {
|
|
157039
|
-
const pkgPath =
|
|
157064
|
+
const pkgPath = resolve68(dir, "package.json");
|
|
157040
157065
|
if (!existsSync105(pkgPath)) {
|
|
157041
157066
|
return { changed: false, from: [], to: "", path: pkgPath };
|
|
157042
157067
|
}
|
|
@@ -157118,7 +157143,7 @@ var init_upgrade = __esm({
|
|
|
157118
157143
|
const checkOnly = args.check === true;
|
|
157119
157144
|
if (args.project !== void 0) {
|
|
157120
157145
|
const p2 = resolveProjectArgs(args.project, { check: checkOnly, json: useJson });
|
|
157121
|
-
const res = await upgradeProjectPins(
|
|
157146
|
+
const res = await upgradeProjectPins(resolve68(p2.dir), { json: p2.json, check: p2.check });
|
|
157122
157147
|
if (p2.json) {
|
|
157123
157148
|
console.log(JSON.stringify(withMeta(res), null, 2));
|
|
157124
157149
|
return;
|
|
@@ -157317,7 +157342,7 @@ __export(feedback_exports, {
|
|
|
157317
157342
|
examples: () => examples27
|
|
157318
157343
|
});
|
|
157319
157344
|
import { randomUUID as randomUUID12 } from "crypto";
|
|
157320
|
-
import { resolve as
|
|
157345
|
+
import { resolve as resolve69 } from "path";
|
|
157321
157346
|
import open from "open";
|
|
157322
157347
|
function normalizeComment(raw) {
|
|
157323
157348
|
return raw || void 0;
|
|
@@ -157390,7 +157415,7 @@ async function openAndPrintIssue(url) {
|
|
|
157390
157415
|
console.log();
|
|
157391
157416
|
}
|
|
157392
157417
|
async function fileGithubIssue(opts) {
|
|
157393
|
-
const dir =
|
|
157418
|
+
const dir = resolve69(opts.rawDir ?? ".");
|
|
157394
157419
|
if (!await confirmFileIssue(dir, opts.yes)) return;
|
|
157395
157420
|
const repoPublicUrl = await publishRepro(dir);
|
|
157396
157421
|
const url = buildIssueUrl({
|
|
@@ -158195,7 +158220,7 @@ var require_p_retry = __commonJS({
|
|
|
158195
158220
|
return error;
|
|
158196
158221
|
};
|
|
158197
158222
|
var isNetworkError = (errorMessage2) => networkErrorMsgs.includes(errorMessage2);
|
|
158198
|
-
var pRetry2 = (input2, options) => new Promise((
|
|
158223
|
+
var pRetry2 = (input2, options) => new Promise((resolve80, reject2) => {
|
|
158199
158224
|
options = {
|
|
158200
158225
|
onFailedAttempt: () => {
|
|
158201
158226
|
},
|
|
@@ -158205,7 +158230,7 @@ var require_p_retry = __commonJS({
|
|
|
158205
158230
|
const operation = retry.operation(options);
|
|
158206
158231
|
operation.attempt(async (attemptNumber) => {
|
|
158207
158232
|
try {
|
|
158208
|
-
|
|
158233
|
+
resolve80(await input2(attemptNumber));
|
|
158209
158234
|
} catch (error) {
|
|
158210
158235
|
if (!(error instanceof Error)) {
|
|
158211
158236
|
reject2(new TypeError(`Non-error was thrown: "${error}". You should only throw errors.`));
|
|
@@ -158741,8 +158766,8 @@ var require_retry3 = __commonJS({
|
|
|
158741
158766
|
}
|
|
158742
158767
|
const delay2 = getNextRetryDelay(config);
|
|
158743
158768
|
err.config.retryConfig.currentRetryAttempt += 1;
|
|
158744
|
-
const backoff = config.retryBackoff ? config.retryBackoff(err, delay2) : new Promise((
|
|
158745
|
-
setTimeout(
|
|
158769
|
+
const backoff = config.retryBackoff ? config.retryBackoff(err, delay2) : new Promise((resolve80) => {
|
|
158770
|
+
setTimeout(resolve80, delay2);
|
|
158746
158771
|
});
|
|
158747
158772
|
if (config.onRetryAttempt) {
|
|
158748
158773
|
await config.onRetryAttempt(err);
|
|
@@ -158870,8 +158895,8 @@ var require_helpers = __commonJS({
|
|
|
158870
158895
|
function req(url, opts = {}) {
|
|
158871
158896
|
const href = typeof url === "string" ? url : url.href;
|
|
158872
158897
|
const req2 = (href.startsWith("https:") ? https2 : http4).request(url, opts);
|
|
158873
|
-
const promise = new Promise((
|
|
158874
|
-
req2.once("response",
|
|
158898
|
+
const promise = new Promise((resolve80, reject2) => {
|
|
158899
|
+
req2.once("response", resolve80).once("error", reject2).end();
|
|
158875
158900
|
});
|
|
158876
158901
|
req2.then = promise.then.bind(promise);
|
|
158877
158902
|
return req2;
|
|
@@ -159048,7 +159073,7 @@ var require_parse_proxy_response = __commonJS({
|
|
|
159048
159073
|
var debug_1 = __importDefault2(__require("debug"));
|
|
159049
159074
|
var debug = (0, debug_1.default)("https-proxy-agent:parse-proxy-response");
|
|
159050
159075
|
function parseProxyResponse(socket) {
|
|
159051
|
-
return new Promise((
|
|
159076
|
+
return new Promise((resolve80, reject2) => {
|
|
159052
159077
|
let buffersLength = 0;
|
|
159053
159078
|
const buffers = [];
|
|
159054
159079
|
function read() {
|
|
@@ -159114,7 +159139,7 @@ var require_parse_proxy_response = __commonJS({
|
|
|
159114
159139
|
}
|
|
159115
159140
|
debug("got proxy server response: %o %o", firstLine, headers);
|
|
159116
159141
|
cleanup();
|
|
159117
|
-
|
|
159142
|
+
resolve80({
|
|
159118
159143
|
connect: {
|
|
159119
159144
|
statusCode,
|
|
159120
159145
|
statusText,
|
|
@@ -159358,7 +159383,7 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
159358
159383
|
return new originalPromise(executor);
|
|
159359
159384
|
}
|
|
159360
159385
|
function promiseResolvedWith(value) {
|
|
159361
|
-
return newPromise((
|
|
159386
|
+
return newPromise((resolve80) => resolve80(value));
|
|
159362
159387
|
}
|
|
159363
159388
|
function promiseRejectedWith(reason) {
|
|
159364
159389
|
return originalPromiseReject(reason);
|
|
@@ -159528,8 +159553,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
159528
159553
|
return new TypeError("Cannot " + name + " a stream using a released reader");
|
|
159529
159554
|
}
|
|
159530
159555
|
function defaultReaderClosedPromiseInitialize(reader) {
|
|
159531
|
-
reader._closedPromise = newPromise((
|
|
159532
|
-
reader._closedPromise_resolve =
|
|
159556
|
+
reader._closedPromise = newPromise((resolve80, reject2) => {
|
|
159557
|
+
reader._closedPromise_resolve = resolve80;
|
|
159533
159558
|
reader._closedPromise_reject = reject2;
|
|
159534
159559
|
});
|
|
159535
159560
|
}
|
|
@@ -159703,8 +159728,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
159703
159728
|
}
|
|
159704
159729
|
let resolvePromise;
|
|
159705
159730
|
let rejectPromise;
|
|
159706
|
-
const promise = newPromise((
|
|
159707
|
-
resolvePromise =
|
|
159731
|
+
const promise = newPromise((resolve80, reject2) => {
|
|
159732
|
+
resolvePromise = resolve80;
|
|
159708
159733
|
rejectPromise = reject2;
|
|
159709
159734
|
});
|
|
159710
159735
|
const readRequest = {
|
|
@@ -159809,8 +159834,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
159809
159834
|
const reader = this._reader;
|
|
159810
159835
|
let resolvePromise;
|
|
159811
159836
|
let rejectPromise;
|
|
159812
|
-
const promise = newPromise((
|
|
159813
|
-
resolvePromise =
|
|
159837
|
+
const promise = newPromise((resolve80, reject2) => {
|
|
159838
|
+
resolvePromise = resolve80;
|
|
159814
159839
|
rejectPromise = reject2;
|
|
159815
159840
|
});
|
|
159816
159841
|
const readRequest = {
|
|
@@ -160829,8 +160854,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
160829
160854
|
}
|
|
160830
160855
|
let resolvePromise;
|
|
160831
160856
|
let rejectPromise;
|
|
160832
|
-
const promise = newPromise((
|
|
160833
|
-
resolvePromise =
|
|
160857
|
+
const promise = newPromise((resolve80, reject2) => {
|
|
160858
|
+
resolvePromise = resolve80;
|
|
160834
160859
|
rejectPromise = reject2;
|
|
160835
160860
|
});
|
|
160836
160861
|
const readIntoRequest = {
|
|
@@ -161142,10 +161167,10 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
161142
161167
|
wasAlreadyErroring = true;
|
|
161143
161168
|
reason = void 0;
|
|
161144
161169
|
}
|
|
161145
|
-
const promise = newPromise((
|
|
161170
|
+
const promise = newPromise((resolve80, reject2) => {
|
|
161146
161171
|
stream._pendingAbortRequest = {
|
|
161147
161172
|
_promise: void 0,
|
|
161148
|
-
_resolve:
|
|
161173
|
+
_resolve: resolve80,
|
|
161149
161174
|
_reject: reject2,
|
|
161150
161175
|
_reason: reason,
|
|
161151
161176
|
_wasAlreadyErroring: wasAlreadyErroring
|
|
@@ -161162,9 +161187,9 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
161162
161187
|
if (state === "closed" || state === "errored") {
|
|
161163
161188
|
return promiseRejectedWith(new TypeError(`The stream (in ${state} state) is not in the writable state and cannot be closed`));
|
|
161164
161189
|
}
|
|
161165
|
-
const promise = newPromise((
|
|
161190
|
+
const promise = newPromise((resolve80, reject2) => {
|
|
161166
161191
|
const closeRequest = {
|
|
161167
|
-
_resolve:
|
|
161192
|
+
_resolve: resolve80,
|
|
161168
161193
|
_reject: reject2
|
|
161169
161194
|
};
|
|
161170
161195
|
stream._closeRequest = closeRequest;
|
|
@@ -161177,9 +161202,9 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
161177
161202
|
return promise;
|
|
161178
161203
|
}
|
|
161179
161204
|
function WritableStreamAddWriteRequest(stream) {
|
|
161180
|
-
const promise = newPromise((
|
|
161205
|
+
const promise = newPromise((resolve80, reject2) => {
|
|
161181
161206
|
const writeRequest = {
|
|
161182
|
-
_resolve:
|
|
161207
|
+
_resolve: resolve80,
|
|
161183
161208
|
_reject: reject2
|
|
161184
161209
|
};
|
|
161185
161210
|
stream._writeRequests.push(writeRequest);
|
|
@@ -161795,8 +161820,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
161795
161820
|
return new TypeError("Cannot " + name + " a stream using a released writer");
|
|
161796
161821
|
}
|
|
161797
161822
|
function defaultWriterClosedPromiseInitialize(writer) {
|
|
161798
|
-
writer._closedPromise = newPromise((
|
|
161799
|
-
writer._closedPromise_resolve =
|
|
161823
|
+
writer._closedPromise = newPromise((resolve80, reject2) => {
|
|
161824
|
+
writer._closedPromise_resolve = resolve80;
|
|
161800
161825
|
writer._closedPromise_reject = reject2;
|
|
161801
161826
|
writer._closedPromiseState = "pending";
|
|
161802
161827
|
});
|
|
@@ -161832,8 +161857,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
161832
161857
|
writer._closedPromiseState = "resolved";
|
|
161833
161858
|
}
|
|
161834
161859
|
function defaultWriterReadyPromiseInitialize(writer) {
|
|
161835
|
-
writer._readyPromise = newPromise((
|
|
161836
|
-
writer._readyPromise_resolve =
|
|
161860
|
+
writer._readyPromise = newPromise((resolve80, reject2) => {
|
|
161861
|
+
writer._readyPromise_resolve = resolve80;
|
|
161837
161862
|
writer._readyPromise_reject = reject2;
|
|
161838
161863
|
});
|
|
161839
161864
|
writer._readyPromiseState = "pending";
|
|
@@ -161920,7 +161945,7 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
161920
161945
|
source._disturbed = true;
|
|
161921
161946
|
let shuttingDown = false;
|
|
161922
161947
|
let currentWrite = promiseResolvedWith(void 0);
|
|
161923
|
-
return newPromise((
|
|
161948
|
+
return newPromise((resolve80, reject2) => {
|
|
161924
161949
|
let abortAlgorithm;
|
|
161925
161950
|
if (signal !== void 0) {
|
|
161926
161951
|
abortAlgorithm = () => {
|
|
@@ -162065,7 +162090,7 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
162065
162090
|
if (isError) {
|
|
162066
162091
|
reject2(error);
|
|
162067
162092
|
} else {
|
|
162068
|
-
|
|
162093
|
+
resolve80(void 0);
|
|
162069
162094
|
}
|
|
162070
162095
|
return null;
|
|
162071
162096
|
}
|
|
@@ -162346,8 +162371,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
162346
162371
|
let branch1;
|
|
162347
162372
|
let branch2;
|
|
162348
162373
|
let resolveCancelPromise;
|
|
162349
|
-
const cancelPromise = newPromise((
|
|
162350
|
-
resolveCancelPromise =
|
|
162374
|
+
const cancelPromise = newPromise((resolve80) => {
|
|
162375
|
+
resolveCancelPromise = resolve80;
|
|
162351
162376
|
});
|
|
162352
162377
|
function pullAlgorithm() {
|
|
162353
162378
|
if (reading) {
|
|
@@ -162438,8 +162463,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
162438
162463
|
let branch1;
|
|
162439
162464
|
let branch2;
|
|
162440
162465
|
let resolveCancelPromise;
|
|
162441
|
-
const cancelPromise = newPromise((
|
|
162442
|
-
resolveCancelPromise =
|
|
162466
|
+
const cancelPromise = newPromise((resolve80) => {
|
|
162467
|
+
resolveCancelPromise = resolve80;
|
|
162443
162468
|
});
|
|
162444
162469
|
function forwardReaderError(thisReader) {
|
|
162445
162470
|
uponRejection(thisReader._closedPromise, (r2) => {
|
|
@@ -163219,8 +163244,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
163219
163244
|
const writableHighWaterMark = ExtractHighWaterMark(writableStrategy, 1);
|
|
163220
163245
|
const writableSizeAlgorithm = ExtractSizeAlgorithm(writableStrategy);
|
|
163221
163246
|
let startPromise_resolve;
|
|
163222
|
-
const startPromise = newPromise((
|
|
163223
|
-
startPromise_resolve =
|
|
163247
|
+
const startPromise = newPromise((resolve80) => {
|
|
163248
|
+
startPromise_resolve = resolve80;
|
|
163224
163249
|
});
|
|
163225
163250
|
InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);
|
|
163226
163251
|
SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);
|
|
@@ -163313,8 +163338,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
163313
163338
|
if (stream._backpressureChangePromise !== void 0) {
|
|
163314
163339
|
stream._backpressureChangePromise_resolve();
|
|
163315
163340
|
}
|
|
163316
|
-
stream._backpressureChangePromise = newPromise((
|
|
163317
|
-
stream._backpressureChangePromise_resolve =
|
|
163341
|
+
stream._backpressureChangePromise = newPromise((resolve80) => {
|
|
163342
|
+
stream._backpressureChangePromise_resolve = resolve80;
|
|
163318
163343
|
});
|
|
163319
163344
|
stream._backpressure = backpressure;
|
|
163320
163345
|
}
|
|
@@ -163482,8 +163507,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
163482
163507
|
return controller._finishPromise;
|
|
163483
163508
|
}
|
|
163484
163509
|
const readable = stream._readable;
|
|
163485
|
-
controller._finishPromise = newPromise((
|
|
163486
|
-
controller._finishPromise_resolve =
|
|
163510
|
+
controller._finishPromise = newPromise((resolve80, reject2) => {
|
|
163511
|
+
controller._finishPromise_resolve = resolve80;
|
|
163487
163512
|
controller._finishPromise_reject = reject2;
|
|
163488
163513
|
});
|
|
163489
163514
|
const cancelPromise = controller._cancelAlgorithm(reason);
|
|
@@ -163509,8 +163534,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
163509
163534
|
return controller._finishPromise;
|
|
163510
163535
|
}
|
|
163511
163536
|
const readable = stream._readable;
|
|
163512
|
-
controller._finishPromise = newPromise((
|
|
163513
|
-
controller._finishPromise_resolve =
|
|
163537
|
+
controller._finishPromise = newPromise((resolve80, reject2) => {
|
|
163538
|
+
controller._finishPromise_resolve = resolve80;
|
|
163514
163539
|
controller._finishPromise_reject = reject2;
|
|
163515
163540
|
});
|
|
163516
163541
|
const flushPromise = controller._flushAlgorithm();
|
|
@@ -163540,8 +163565,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
163540
163565
|
return controller._finishPromise;
|
|
163541
163566
|
}
|
|
163542
163567
|
const writable = stream._writable;
|
|
163543
|
-
controller._finishPromise = newPromise((
|
|
163544
|
-
controller._finishPromise_resolve =
|
|
163568
|
+
controller._finishPromise = newPromise((resolve80, reject2) => {
|
|
163569
|
+
controller._finishPromise_resolve = resolve80;
|
|
163545
163570
|
controller._finishPromise_reject = reject2;
|
|
163546
163571
|
});
|
|
163547
163572
|
const cancelPromise = controller._cancelAlgorithm(reason);
|
|
@@ -164087,7 +164112,7 @@ var require_node_domexception = __commonJS({
|
|
|
164087
164112
|
});
|
|
164088
164113
|
|
|
164089
164114
|
// ../../node_modules/.bun/fetch-blob@3.2.0/node_modules/fetch-blob/from.js
|
|
164090
|
-
import { statSync as
|
|
164115
|
+
import { statSync as statSync36, createReadStream as createReadStream8, promises as fs3 } from "fs";
|
|
164091
164116
|
import { basename as basename23 } from "path";
|
|
164092
164117
|
var import_node_domexception, stat, blobFromSync, blobFrom, fileFrom, fileFromSync, fromBlob, fromFile, BlobDataItem;
|
|
164093
164118
|
var init_from = __esm({
|
|
@@ -164097,10 +164122,10 @@ var init_from = __esm({
|
|
|
164097
164122
|
init_file();
|
|
164098
164123
|
init_fetch_blob();
|
|
164099
164124
|
({ stat } = fs3);
|
|
164100
|
-
blobFromSync = (path2, type) => fromBlob(
|
|
164125
|
+
blobFromSync = (path2, type) => fromBlob(statSync36(path2), path2, type);
|
|
164101
164126
|
blobFrom = (path2, type) => stat(path2).then((stat3) => fromBlob(stat3, path2, type));
|
|
164102
164127
|
fileFrom = (path2, type) => stat(path2).then((stat3) => fromFile(stat3, path2, type));
|
|
164103
|
-
fileFromSync = (path2, type) => fromFile(
|
|
164128
|
+
fileFromSync = (path2, type) => fromFile(statSync36(path2), path2, type);
|
|
164104
164129
|
fromBlob = (stat3, path2, type = "") => new fetch_blob_default([new BlobDataItem({
|
|
164105
164130
|
path: path2,
|
|
164106
164131
|
size: stat3.size,
|
|
@@ -165510,7 +165535,7 @@ import zlib2 from "zlib";
|
|
|
165510
165535
|
import Stream2, { PassThrough as PassThrough2, pipeline as pump } from "stream";
|
|
165511
165536
|
import { Buffer as Buffer4 } from "buffer";
|
|
165512
165537
|
async function fetch3(url, options_) {
|
|
165513
|
-
return new Promise((
|
|
165538
|
+
return new Promise((resolve80, reject2) => {
|
|
165514
165539
|
const request = new Request2(url, options_);
|
|
165515
165540
|
const { parsedURL, options } = getNodeRequestOptions(request);
|
|
165516
165541
|
if (!supportedSchemas.has(parsedURL.protocol)) {
|
|
@@ -165519,7 +165544,7 @@ async function fetch3(url, options_) {
|
|
|
165519
165544
|
if (parsedURL.protocol === "data:") {
|
|
165520
165545
|
const data2 = dist_default3(request.url);
|
|
165521
165546
|
const response2 = new Response2(data2, { headers: { "Content-Type": data2.typeFull } });
|
|
165522
|
-
|
|
165547
|
+
resolve80(response2);
|
|
165523
165548
|
return;
|
|
165524
165549
|
}
|
|
165525
165550
|
const send = (parsedURL.protocol === "https:" ? https : http3).request;
|
|
@@ -165641,7 +165666,7 @@ async function fetch3(url, options_) {
|
|
|
165641
165666
|
if (responseReferrerPolicy) {
|
|
165642
165667
|
requestOptions.referrerPolicy = responseReferrerPolicy;
|
|
165643
165668
|
}
|
|
165644
|
-
|
|
165669
|
+
resolve80(fetch3(new Request2(locationURL, requestOptions)));
|
|
165645
165670
|
finalize();
|
|
165646
165671
|
return;
|
|
165647
165672
|
}
|
|
@@ -165674,7 +165699,7 @@ async function fetch3(url, options_) {
|
|
|
165674
165699
|
const codings = headers.get("Content-Encoding");
|
|
165675
165700
|
if (!request.compress || request.method === "HEAD" || codings === null || response_.statusCode === 204 || response_.statusCode === 304) {
|
|
165676
165701
|
response = new Response2(body, responseOptions);
|
|
165677
|
-
|
|
165702
|
+
resolve80(response);
|
|
165678
165703
|
return;
|
|
165679
165704
|
}
|
|
165680
165705
|
const zlibOptions = {
|
|
@@ -165688,7 +165713,7 @@ async function fetch3(url, options_) {
|
|
|
165688
165713
|
}
|
|
165689
165714
|
});
|
|
165690
165715
|
response = new Response2(body, responseOptions);
|
|
165691
|
-
|
|
165716
|
+
resolve80(response);
|
|
165692
165717
|
return;
|
|
165693
165718
|
}
|
|
165694
165719
|
if (codings === "deflate" || codings === "x-deflate") {
|
|
@@ -165712,12 +165737,12 @@ async function fetch3(url, options_) {
|
|
|
165712
165737
|
});
|
|
165713
165738
|
}
|
|
165714
165739
|
response = new Response2(body, responseOptions);
|
|
165715
|
-
|
|
165740
|
+
resolve80(response);
|
|
165716
165741
|
});
|
|
165717
165742
|
raw.once("end", () => {
|
|
165718
165743
|
if (!response) {
|
|
165719
165744
|
response = new Response2(body, responseOptions);
|
|
165720
|
-
|
|
165745
|
+
resolve80(response);
|
|
165721
165746
|
}
|
|
165722
165747
|
});
|
|
165723
165748
|
return;
|
|
@@ -165729,11 +165754,11 @@ async function fetch3(url, options_) {
|
|
|
165729
165754
|
}
|
|
165730
165755
|
});
|
|
165731
165756
|
response = new Response2(body, responseOptions);
|
|
165732
|
-
|
|
165757
|
+
resolve80(response);
|
|
165733
165758
|
return;
|
|
165734
165759
|
}
|
|
165735
165760
|
response = new Response2(body, responseOptions);
|
|
165736
|
-
|
|
165761
|
+
resolve80(response);
|
|
165737
165762
|
});
|
|
165738
165763
|
writeToStream(request_, request).catch(reject2);
|
|
165739
165764
|
});
|
|
@@ -171815,7 +171840,7 @@ var require_jwtaccess = __commonJS({
|
|
|
171815
171840
|
}
|
|
171816
171841
|
}
|
|
171817
171842
|
fromStreamAsync(inputStream) {
|
|
171818
|
-
return new Promise((
|
|
171843
|
+
return new Promise((resolve80, reject2) => {
|
|
171819
171844
|
if (!inputStream) {
|
|
171820
171845
|
reject2(new Error("Must pass in a stream containing the service account auth settings."));
|
|
171821
171846
|
}
|
|
@@ -171824,7 +171849,7 @@ var require_jwtaccess = __commonJS({
|
|
|
171824
171849
|
try {
|
|
171825
171850
|
const data2 = JSON.parse(s2);
|
|
171826
171851
|
this.fromJSON(data2);
|
|
171827
|
-
|
|
171852
|
+
resolve80();
|
|
171828
171853
|
} catch (err) {
|
|
171829
171854
|
reject2(err);
|
|
171830
171855
|
}
|
|
@@ -172063,7 +172088,7 @@ var require_jwtclient = __commonJS({
|
|
|
172063
172088
|
}
|
|
172064
172089
|
}
|
|
172065
172090
|
fromStreamAsync(inputStream) {
|
|
172066
|
-
return new Promise((
|
|
172091
|
+
return new Promise((resolve80, reject2) => {
|
|
172067
172092
|
if (!inputStream) {
|
|
172068
172093
|
throw new Error("Must pass in a stream containing the service account auth settings.");
|
|
172069
172094
|
}
|
|
@@ -172072,7 +172097,7 @@ var require_jwtclient = __commonJS({
|
|
|
172072
172097
|
try {
|
|
172073
172098
|
const data2 = JSON.parse(s2);
|
|
172074
172099
|
this.fromJSON(data2);
|
|
172075
|
-
|
|
172100
|
+
resolve80();
|
|
172076
172101
|
} catch (e3) {
|
|
172077
172102
|
reject2(e3);
|
|
172078
172103
|
}
|
|
@@ -172205,7 +172230,7 @@ var require_refreshclient = __commonJS({
|
|
|
172205
172230
|
}
|
|
172206
172231
|
}
|
|
172207
172232
|
async fromStreamAsync(inputStream) {
|
|
172208
|
-
return new Promise((
|
|
172233
|
+
return new Promise((resolve80, reject2) => {
|
|
172209
172234
|
if (!inputStream) {
|
|
172210
172235
|
return reject2(new Error("Must pass in a stream containing the user refresh token."));
|
|
172211
172236
|
}
|
|
@@ -172214,7 +172239,7 @@ var require_refreshclient = __commonJS({
|
|
|
172214
172239
|
try {
|
|
172215
172240
|
const data2 = JSON.parse(s2);
|
|
172216
172241
|
this.fromJSON(data2);
|
|
172217
|
-
return
|
|
172242
|
+
return resolve80();
|
|
172218
172243
|
} catch (err) {
|
|
172219
172244
|
return reject2(err);
|
|
172220
172245
|
}
|
|
@@ -174047,7 +174072,7 @@ var require_pluggable_auth_handler = __commonJS({
|
|
|
174047
174072
|
* @return A promise that resolves with the executable response.
|
|
174048
174073
|
*/
|
|
174049
174074
|
retrieveResponseFromExecutable(envMap) {
|
|
174050
|
-
return new Promise((
|
|
174075
|
+
return new Promise((resolve80, reject2) => {
|
|
174051
174076
|
const child = childProcess.spawn(this.commandComponents[0], this.commandComponents.slice(1), {
|
|
174052
174077
|
env: { ...process.env, ...Object.fromEntries(envMap) }
|
|
174053
174078
|
});
|
|
@@ -174069,7 +174094,7 @@ var require_pluggable_auth_handler = __commonJS({
|
|
|
174069
174094
|
try {
|
|
174070
174095
|
const responseJson = JSON.parse(output);
|
|
174071
174096
|
const response = new executable_response_1.ExecutableResponse(responseJson);
|
|
174072
|
-
return
|
|
174097
|
+
return resolve80(response);
|
|
174073
174098
|
} catch (error) {
|
|
174074
174099
|
if (error instanceof executable_response_1.ExecutableResponseError) {
|
|
174075
174100
|
return reject2(error);
|
|
@@ -174972,7 +174997,7 @@ var require_googleauth = __commonJS({
|
|
|
174972
174997
|
}
|
|
174973
174998
|
}
|
|
174974
174999
|
fromStreamAsync(inputStream, options) {
|
|
174975
|
-
return new Promise((
|
|
175000
|
+
return new Promise((resolve80, reject2) => {
|
|
174976
175001
|
if (!inputStream) {
|
|
174977
175002
|
throw new Error("Must pass in a stream containing the Google auth settings.");
|
|
174978
175003
|
}
|
|
@@ -174982,7 +175007,7 @@ var require_googleauth = __commonJS({
|
|
|
174982
175007
|
try {
|
|
174983
175008
|
const data2 = JSON.parse(chunks.join(""));
|
|
174984
175009
|
const r2 = this._cacheClientFromJSON(data2, options);
|
|
174985
|
-
return
|
|
175010
|
+
return resolve80(r2);
|
|
174986
175011
|
} catch (err) {
|
|
174987
175012
|
if (!this.keyFilename)
|
|
174988
175013
|
throw err;
|
|
@@ -174992,7 +175017,7 @@ var require_googleauth = __commonJS({
|
|
|
174992
175017
|
});
|
|
174993
175018
|
this.cachedCredential = client;
|
|
174994
175019
|
this.setGapicJWTValues(client);
|
|
174995
|
-
return
|
|
175020
|
+
return resolve80(client);
|
|
174996
175021
|
}
|
|
174997
175022
|
} catch (err) {
|
|
174998
175023
|
return reject2(err);
|
|
@@ -175028,17 +175053,17 @@ var require_googleauth = __commonJS({
|
|
|
175028
175053
|
* Run the Google Cloud SDK command that prints the default project ID
|
|
175029
175054
|
*/
|
|
175030
175055
|
async getDefaultServiceProjectId() {
|
|
175031
|
-
return new Promise((
|
|
175056
|
+
return new Promise((resolve80) => {
|
|
175032
175057
|
(0, child_process_1.exec)("gcloud config config-helper --format json", (err, stdout2) => {
|
|
175033
175058
|
if (!err && stdout2) {
|
|
175034
175059
|
try {
|
|
175035
175060
|
const projectId = JSON.parse(stdout2).configuration.properties.core.project;
|
|
175036
|
-
|
|
175061
|
+
resolve80(projectId);
|
|
175037
175062
|
return;
|
|
175038
175063
|
} catch (e3) {
|
|
175039
175064
|
}
|
|
175040
175065
|
}
|
|
175041
|
-
|
|
175066
|
+
resolve80(null);
|
|
175042
175067
|
});
|
|
175043
175068
|
});
|
|
175044
175069
|
}
|
|
@@ -182881,14 +182906,14 @@ function __asyncValues2(o) {
|
|
|
182881
182906
|
}, i2);
|
|
182882
182907
|
function verb(n2) {
|
|
182883
182908
|
i2[n2] = o[n2] && function(v2) {
|
|
182884
|
-
return new Promise(function(
|
|
182885
|
-
v2 = o[n2](v2), settle(
|
|
182909
|
+
return new Promise(function(resolve80, reject2) {
|
|
182910
|
+
v2 = o[n2](v2), settle(resolve80, reject2, v2.done, v2.value);
|
|
182886
182911
|
});
|
|
182887
182912
|
};
|
|
182888
182913
|
}
|
|
182889
|
-
function settle(
|
|
182914
|
+
function settle(resolve80, reject2, d2, v2) {
|
|
182890
182915
|
Promise.resolve(v2).then(function(v3) {
|
|
182891
|
-
|
|
182916
|
+
resolve80({ value: v3, done: d2 });
|
|
182892
182917
|
}, reject2);
|
|
182893
182918
|
}
|
|
182894
182919
|
}
|
|
@@ -193378,8 +193403,8 @@ var init_node4 = __esm({
|
|
|
193378
193403
|
const url = `${websocketBaseUrl}/ws/google.ai.generativelanguage.${apiVersion}.GenerativeService.BidiGenerateMusic?key=${apiKey}`;
|
|
193379
193404
|
let onopenResolve = () => {
|
|
193380
193405
|
};
|
|
193381
|
-
const onopenPromise = new Promise((
|
|
193382
|
-
onopenResolve =
|
|
193406
|
+
const onopenPromise = new Promise((resolve80) => {
|
|
193407
|
+
onopenResolve = resolve80;
|
|
193383
193408
|
});
|
|
193384
193409
|
const callbacks = params.callbacks;
|
|
193385
193410
|
const onopenAwaitedCallback = function() {
|
|
@@ -193585,8 +193610,8 @@ var init_node4 = __esm({
|
|
|
193585
193610
|
}
|
|
193586
193611
|
let onopenResolve = () => {
|
|
193587
193612
|
};
|
|
193588
|
-
const onopenPromise = new Promise((
|
|
193589
|
-
onopenResolve =
|
|
193613
|
+
const onopenPromise = new Promise((resolve80) => {
|
|
193614
|
+
onopenResolve = resolve80;
|
|
193590
193615
|
});
|
|
193591
193616
|
const callbacks = params.callbacks;
|
|
193592
193617
|
const onopenAwaitedCallback = function() {
|
|
@@ -195934,7 +195959,7 @@ var init_node4 = __esm({
|
|
|
195934
195959
|
return void 0;
|
|
195935
195960
|
}
|
|
195936
195961
|
};
|
|
195937
|
-
sleep$1 = (ms) => new Promise((
|
|
195962
|
+
sleep$1 = (ms) => new Promise((resolve80) => setTimeout(resolve80, ms));
|
|
195938
195963
|
FallbackEncoder = ({ headers, body }) => {
|
|
195939
195964
|
return {
|
|
195940
195965
|
bodyHeaders: {
|
|
@@ -196443,8 +196468,8 @@ ${underline2}`);
|
|
|
196443
196468
|
};
|
|
196444
196469
|
APIPromise = class _APIPromise extends Promise {
|
|
196445
196470
|
constructor(client, responsePromise, parseResponse = defaultParseResponse) {
|
|
196446
|
-
super((
|
|
196447
|
-
|
|
196471
|
+
super((resolve80) => {
|
|
196472
|
+
resolve80(null);
|
|
196448
196473
|
});
|
|
196449
196474
|
this.responsePromise = responsePromise;
|
|
196450
196475
|
this.parseResponse = parseResponse;
|
|
@@ -197669,11 +197694,12 @@ __export(snapshot_exports, {
|
|
|
197669
197694
|
requireSnapshotFfmpeg: () => requireSnapshotFfmpeg,
|
|
197670
197695
|
resolveSnapshotVideoClipStart: () => resolveSnapshotVideoClipStart,
|
|
197671
197696
|
resolveSnapshotVideoFrameTime: () => resolveSnapshotVideoFrameTime,
|
|
197697
|
+
resolveSnapshotVideoPlaybackRate: () => resolveSnapshotVideoPlaybackRate,
|
|
197672
197698
|
tailFrameTime: () => tailFrameTime
|
|
197673
197699
|
});
|
|
197674
197700
|
import { existsSync as existsSync107, mkdtempSync as mkdtempSync16, readFileSync as readFileSync77, mkdirSync as mkdirSync53, rmSync as rmSync31, writeFileSync as writeFileSync46 } from "fs";
|
|
197675
197701
|
import { tmpdir as tmpdir16 } from "os";
|
|
197676
|
-
import { resolve as
|
|
197702
|
+
import { resolve as resolve70, join as join113, relative as relative26, isAbsolute as isAbsolute16, basename as basename25, posix as posix7 } from "path";
|
|
197677
197703
|
function orbitStageSource() {
|
|
197678
197704
|
return `function(cam) {
|
|
197679
197705
|
var root = document.querySelector("[data-composition-id]")
|
|
@@ -197712,6 +197738,11 @@ function resolveSnapshotVideoFrameTime(input2) {
|
|
|
197712
197738
|
function resolveSnapshotVideoClipStart(input2) {
|
|
197713
197739
|
return input2.runtimeResolvedStart ?? input2.authoredStart;
|
|
197714
197740
|
}
|
|
197741
|
+
function resolveSnapshotVideoPlaybackRate(input2) {
|
|
197742
|
+
const authoredRate = Number.parseFloat(input2.authoredRate ?? "");
|
|
197743
|
+
const rawRate = Number.isFinite(authoredRate) && authoredRate > 0 ? authoredRate : input2.defaultRate;
|
|
197744
|
+
return Number.isFinite(rawRate) && rawRate > 0 ? Math.max(0.1, Math.min(5, rawRate)) : 1;
|
|
197745
|
+
}
|
|
197715
197746
|
function requireSnapshotFfmpeg(ffmpegPath) {
|
|
197716
197747
|
if (ffmpegPath) return ffmpegPath;
|
|
197717
197748
|
throw new Error(
|
|
@@ -197881,20 +197912,18 @@ async function captureSnapshots(projectDir, opts) {
|
|
|
197881
197912
|
const v2 = el;
|
|
197882
197913
|
const authoredStart = parseFloat(v2.dataset.start ?? "0") || 0;
|
|
197883
197914
|
const runtimeResolvedStart = runtimeWindow.__hfResolveMediaStartSeconds?.(v2);
|
|
197884
|
-
const rawRate = v2.defaultPlaybackRate;
|
|
197885
|
-
const playbackRate = Number.isFinite(rawRate) && rawRate > 0 ? Math.max(0.1, Math.min(5, rawRate)) : 1;
|
|
197886
197915
|
const mediaStart = parseFloat(v2.dataset.playbackStart ?? v2.dataset.mediaStart ?? "0") || 0;
|
|
197887
197916
|
const rawDuration = parseFloat(v2.dataset.duration ?? "");
|
|
197888
197917
|
const srcDur = Number.isFinite(v2.duration) && v2.duration > 0 ? v2.duration : 0;
|
|
197889
|
-
const duration2 = Number.isFinite(rawDuration) && rawDuration > 0 ? rawDuration : srcDur > 0 ? Math.max(0, (srcDur - mediaStart) / playbackRate) : Number.POSITIVE_INFINITY;
|
|
197890
197918
|
return {
|
|
197891
197919
|
id: v2.id,
|
|
197892
197920
|
src: v2.currentSrc || v2.src,
|
|
197893
197921
|
authoredStart,
|
|
197922
|
+
authoredRate: v2.dataset.playbackRate,
|
|
197923
|
+
defaultRate: v2.defaultPlaybackRate,
|
|
197894
197924
|
runtimeResolvedStart: runtimeResolvedStart !== void 0 && Number.isFinite(runtimeResolvedStart) ? runtimeResolvedStart : null,
|
|
197895
|
-
|
|
197925
|
+
authoredDuration: Number.isFinite(rawDuration) && rawDuration > 0 ? rawDuration : null,
|
|
197896
197926
|
srcDuration: srcDur,
|
|
197897
|
-
playbackRate,
|
|
197898
197927
|
mediaStart,
|
|
197899
197928
|
loop: v2.loop
|
|
197900
197929
|
};
|
|
@@ -197902,7 +197931,9 @@ async function captureSnapshots(projectDir, opts) {
|
|
|
197902
197931
|
});
|
|
197903
197932
|
const active = candidates.flatMap((candidate) => {
|
|
197904
197933
|
const start = resolveSnapshotVideoClipStart(candidate);
|
|
197905
|
-
|
|
197934
|
+
const playbackRate = resolveSnapshotVideoPlaybackRate(candidate);
|
|
197935
|
+
const duration2 = candidate.authoredDuration ?? (candidate.srcDuration > 0 ? Math.max(0, (candidate.srcDuration - candidate.mediaStart) / playbackRate) : Number.POSITIVE_INFINITY);
|
|
197936
|
+
let relTime = (time - start) * playbackRate + candidate.mediaStart;
|
|
197906
197937
|
if (candidate.loop && candidate.srcDuration > candidate.mediaStart && relTime >= candidate.srcDuration) {
|
|
197907
197938
|
relTime = candidate.mediaStart + (relTime - candidate.mediaStart) % (candidate.srcDuration - candidate.mediaStart);
|
|
197908
197939
|
}
|
|
@@ -197910,11 +197941,11 @@ async function captureSnapshots(projectDir, opts) {
|
|
|
197910
197941
|
const frameTime = resolveSnapshotVideoFrameTime({
|
|
197911
197942
|
globalTime: time,
|
|
197912
197943
|
clipStart: start,
|
|
197913
|
-
clipDuration:
|
|
197944
|
+
clipDuration: duration2,
|
|
197914
197945
|
relativeTime: relTime,
|
|
197915
197946
|
sourceDuration: candidate.srcDuration
|
|
197916
197947
|
});
|
|
197917
|
-
return frameTime === null ? [] : [{ ...candidate, start, relTime: frameTime }];
|
|
197948
|
+
return frameTime === null ? [] : [{ ...candidate, start, playbackRate, duration: duration2, relTime: frameTime }];
|
|
197918
197949
|
});
|
|
197919
197950
|
const updates = [];
|
|
197920
197951
|
for (const v2 of active) {
|
|
@@ -197923,7 +197954,7 @@ async function captureSnapshots(projectDir, opts) {
|
|
|
197923
197954
|
try {
|
|
197924
197955
|
const url = new URL(v2.src);
|
|
197925
197956
|
const decodedPath = decodeURIComponent(url.pathname).replace(/^\//, "");
|
|
197926
|
-
const candidate =
|
|
197957
|
+
const candidate = resolve70(projectDir, decodedPath);
|
|
197927
197958
|
const rel2 = relative26(projectDir, candidate);
|
|
197928
197959
|
if (!rel2.startsWith("..") && !isAbsolute16(rel2) && existsSync107(candidate)) {
|
|
197929
197960
|
ffmpegInput = candidate;
|
|
@@ -198131,7 +198162,7 @@ var init_snapshot = __esm({
|
|
|
198131
198162
|
const angleLabel = camera && (camera.yaw !== 0 || camera.pitch !== 0) ? ` ${c.dim(`(angle yaw ${camera.yaw}\xB0 pitch ${camera.pitch}\xB0)`)}` : "";
|
|
198132
198163
|
console.log(`${c.accent("\u25C6")} Capturing ${label2} from ${c.accent(project.name)}${angleLabel}`);
|
|
198133
198164
|
try {
|
|
198134
|
-
const snapshotDir = args.output ?
|
|
198165
|
+
const snapshotDir = args.output ? resolve70(String(args.output)) : join113(project.dir, "snapshots");
|
|
198135
198166
|
const paths = await captureSnapshots(project.dir, {
|
|
198136
198167
|
frames,
|
|
198137
198168
|
timeout,
|
|
@@ -198265,14 +198296,14 @@ var init_sourceMutation = __esm({
|
|
|
198265
198296
|
});
|
|
198266
198297
|
|
|
198267
198298
|
// src/utils/pathArgs.ts
|
|
198268
|
-
import { isAbsolute as isAbsolute17, relative as relative27, resolve as
|
|
198299
|
+
import { isAbsolute as isAbsolute17, relative as relative27, resolve as resolve71 } from "path";
|
|
198269
198300
|
function readOptionalString(value) {
|
|
198270
198301
|
if (typeof value !== "string") return void 0;
|
|
198271
198302
|
const trimmed = value.trim();
|
|
198272
198303
|
return trimmed ? trimmed : void 0;
|
|
198273
198304
|
}
|
|
198274
198305
|
function resolveFromBase(baseDir, input2) {
|
|
198275
|
-
return isAbsolute17(input2) ? input2 :
|
|
198306
|
+
return isAbsolute17(input2) ? input2 : resolve71(baseDir, input2);
|
|
198276
198307
|
}
|
|
198277
198308
|
function displayPathFromBase(baseDir, filePath) {
|
|
198278
198309
|
const rel = relative27(baseDir, filePath);
|
|
@@ -198570,7 +198601,7 @@ __export(media_treatment_exports, {
|
|
|
198570
198601
|
resolveMediaTreatmentSource: () => resolveMediaTreatmentSource
|
|
198571
198602
|
});
|
|
198572
198603
|
import { existsSync as existsSync108, readFileSync as readFileSync78, writeFileSync as writeFileSync47 } from "fs";
|
|
198573
|
-
import { join as join114, relative as relative28, resolve as
|
|
198604
|
+
import { join as join114, relative as relative28, resolve as resolve72 } from "path";
|
|
198574
198605
|
function getMediaTreatmentCapabilityOverview() {
|
|
198575
198606
|
const capabilities = getHfColorGradingCapabilities();
|
|
198576
198607
|
const family = (id, label2, description) => ({
|
|
@@ -198997,7 +199028,7 @@ function runCapabilityQuery(args) {
|
|
|
198997
199028
|
function resolveMutationFile(args) {
|
|
198998
199029
|
const project = resolveProject(readOptionalString(args.project));
|
|
198999
199030
|
const fileArg = readOptionalString(args.file) ?? "index.html";
|
|
199000
|
-
const filePath =
|
|
199031
|
+
const filePath = resolve72(project.dir, fileArg);
|
|
199001
199032
|
if (!isPathInside(filePath, project.dir) || !filePath.toLowerCase().endsWith(".html")) {
|
|
199002
199033
|
throw new Error("--file must be an HTML file inside the project");
|
|
199003
199034
|
}
|
|
@@ -199232,7 +199263,7 @@ import {
|
|
|
199232
199263
|
writeFileSync as writeFileSync48
|
|
199233
199264
|
} from "fs";
|
|
199234
199265
|
import { tmpdir as tmpdir17 } from "os";
|
|
199235
|
-
import { basename as basename27, dirname as dirname54, extname as extname21, join as join115, resolve as
|
|
199266
|
+
import { basename as basename27, dirname as dirname54, extname as extname21, join as join115, resolve as resolve73 } from "path";
|
|
199236
199267
|
import sharp2 from "sharp";
|
|
199237
199268
|
function isRecord14(value) {
|
|
199238
199269
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
@@ -199364,7 +199395,7 @@ function parseGradeCompareArgs(args) {
|
|
|
199364
199395
|
if (Boolean(gradesArg) === Boolean(lutsArg)) {
|
|
199365
199396
|
throw new Error("Exactly one of --grades or --luts is required");
|
|
199366
199397
|
}
|
|
199367
|
-
const projectDir =
|
|
199398
|
+
const projectDir = resolve73(readOptionalString(args.project) ?? process.cwd());
|
|
199368
199399
|
const framePath = resolveFromBase(projectDir, frameArg);
|
|
199369
199400
|
const outPath = resolveFromBase(projectDir, readOptionalString(args.out) ?? "grade-compare.png");
|
|
199370
199401
|
return {
|
|
@@ -199777,7 +199808,7 @@ __export(compare_exports, {
|
|
|
199777
199808
|
parseCompareArgs: () => parseCompareArgs,
|
|
199778
199809
|
prepareCompareVariantProjects: () => prepareCompareVariantProjects
|
|
199779
199810
|
});
|
|
199780
|
-
import { cpSync as cpSync6, existsSync as existsSync110, mkdirSync as mkdirSync55, mkdtempSync as mkdtempSync18, renameSync as renameSync17, rmSync as rmSync34, statSync as
|
|
199811
|
+
import { cpSync as cpSync6, existsSync as existsSync110, mkdirSync as mkdirSync55, mkdtempSync as mkdtempSync18, renameSync as renameSync17, rmSync as rmSync34, statSync as statSync37 } from "fs";
|
|
199781
199812
|
import { tmpdir as tmpdir18 } from "os";
|
|
199782
199813
|
import { basename as basename28, dirname as dirname55, extname as extname23, join as join116 } from "path";
|
|
199783
199814
|
function defaultLabelForPath(input2) {
|
|
@@ -199908,7 +199939,7 @@ function prepareCompareVariantProjects(variants) {
|
|
|
199908
199939
|
if (!existsSync110(variant.inputPath)) {
|
|
199909
199940
|
throw inputError(variant);
|
|
199910
199941
|
}
|
|
199911
|
-
const stat3 =
|
|
199942
|
+
const stat3 = statSync37(variant.inputPath);
|
|
199912
199943
|
if (stat3.isDirectory() && existsSync110(join116(variant.inputPath, "index.html"))) {
|
|
199913
199944
|
prepared.push({
|
|
199914
199945
|
...variant,
|
|
@@ -200468,7 +200499,7 @@ __export(video_exports, {
|
|
|
200468
200499
|
safeFilename: () => safeFilename
|
|
200469
200500
|
});
|
|
200470
200501
|
import { createWriteStream as createWriteStream4, existsSync as existsSync111, mkdirSync as mkdirSync57, readFileSync as readFileSync80, unlinkSync as unlinkSync11 } from "fs";
|
|
200471
|
-
import { resolve as
|
|
200502
|
+
import { resolve as resolve74, join as join118, basename as basename29 } from "path";
|
|
200472
200503
|
async function streamToFile(url, destPath) {
|
|
200473
200504
|
const r2 = await safeFetch(url, {
|
|
200474
200505
|
signal: AbortSignal.timeout(12e4),
|
|
@@ -200586,7 +200617,7 @@ function pickManifestEntry(manifest, args) {
|
|
|
200586
200617
|
};
|
|
200587
200618
|
}
|
|
200588
200619
|
async function runVideoMode(args) {
|
|
200589
|
-
const projectDir =
|
|
200620
|
+
const projectDir = resolve74(args.project);
|
|
200590
200621
|
const directPath = join118(projectDir, "extracted", "video-manifest.json");
|
|
200591
200622
|
const w2hPath = join118(projectDir, "capture", "extracted", "video-manifest.json");
|
|
200592
200623
|
const manifestPath2 = existsSync111(directPath) ? directPath : w2hPath;
|
|
@@ -202208,7 +202239,7 @@ async function lazyScrollForCapture(page, budgetMs, opts = {}) {
|
|
|
202208
202239
|
return { steps: 0, timedOut: false, degraded: false };
|
|
202209
202240
|
}
|
|
202210
202241
|
const stepDelayMs = opts.stepDelayMs ?? LAZY_SCROLL_STEP_DELAY_MS;
|
|
202211
|
-
const sleep5 = opts.sleep ?? ((ms) => new Promise((
|
|
202242
|
+
const sleep5 = opts.sleep ?? ((ms) => new Promise((resolve80) => setTimeout(resolve80, ms)));
|
|
202212
202243
|
const deadline = Date.now() + budgetMs;
|
|
202213
202244
|
let steps = 0;
|
|
202214
202245
|
let timedOut = false;
|
|
@@ -202431,7 +202462,7 @@ var init_animationCataloger = __esm({
|
|
|
202431
202462
|
});
|
|
202432
202463
|
|
|
202433
202464
|
// src/capture/mediaCapture.ts
|
|
202434
|
-
import { mkdirSync as mkdirSync58, writeFileSync as writeFileSync51, readdirSync as readdirSync36, readFileSync as readFileSync83, statSync as
|
|
202465
|
+
import { mkdirSync as mkdirSync58, writeFileSync as writeFileSync51, readdirSync as readdirSync36, readFileSync as readFileSync83, statSync as statSync38 } from "fs";
|
|
202435
202466
|
import { join as join120, extname as extname25 } from "path";
|
|
202436
202467
|
function liveRemainingMs(budget, fallbackMs) {
|
|
202437
202468
|
return budget.remainingMs?.() ?? fallbackMs;
|
|
@@ -202509,7 +202540,7 @@ async function renderLottiePreviews(chromeBrowser, lottieDir, outputDir, budget
|
|
|
202509
202540
|
const dur = ((raw.op || 0) - (raw.ip || 0)) / fr;
|
|
202510
202541
|
const previewName = file.replace(".json", "-preview.png");
|
|
202511
202542
|
let preview;
|
|
202512
|
-
const fileSize =
|
|
202543
|
+
const fileSize = statSync38(join120(lottieDir, file)).size;
|
|
202513
202544
|
if (fileSize > 2e6) continue;
|
|
202514
202545
|
let previewPage;
|
|
202515
202546
|
try {
|
|
@@ -202816,7 +202847,7 @@ var init_mediaCapture = __esm({
|
|
|
202816
202847
|
});
|
|
202817
202848
|
|
|
202818
202849
|
// src/capture/contentExtractor.ts
|
|
202819
|
-
import { existsSync as existsSync114, readdirSync as readdirSync37, statSync as
|
|
202850
|
+
import { existsSync as existsSync114, readdirSync as readdirSync37, statSync as statSync39, readFileSync as readFileSync84 } from "fs";
|
|
202820
202851
|
import { basename as basename30, join as join121 } from "path";
|
|
202821
202852
|
function resolveVisionPhaseCompletion(outcome, remainingMs) {
|
|
202822
202853
|
if (outcome.budgetExhausted || remainingMs <= 0) {
|
|
@@ -203084,7 +203115,7 @@ async function captionImagesWithGemini(outputDir, progress, warnings, options =
|
|
|
203084
203115
|
const results = await Promise.allSettled(
|
|
203085
203116
|
batch.map(async (file) => {
|
|
203086
203117
|
const filePath = join121(outputDir, "assets", file);
|
|
203087
|
-
const stat3 =
|
|
203118
|
+
const stat3 = statSync39(filePath);
|
|
203088
203119
|
if (stat3.size > 4e6) return { file, caption: "" };
|
|
203089
203120
|
const buffer = readFileSync84(filePath);
|
|
203090
203121
|
const base64 = buffer.toString("base64");
|
|
@@ -203225,7 +203256,7 @@ function generateAssetDescriptions(outputDir, tokens, catalogedAssets, geminiCap
|
|
|
203225
203256
|
for (const file of readdirSync37(assetsPath)) {
|
|
203226
203257
|
if (file === "svgs" || file === "fonts" || file === "lottie" || file === "videos") continue;
|
|
203227
203258
|
const filePath = join121(assetsPath, file);
|
|
203228
|
-
const stat3 =
|
|
203259
|
+
const stat3 = statSync39(filePath);
|
|
203229
203260
|
if (!stat3.isFile()) continue;
|
|
203230
203261
|
const sizeKb = Math.round(stat3.size / 1024);
|
|
203231
203262
|
const catalogMatch = catalogedAssets.find(
|
|
@@ -203452,12 +203483,12 @@ var init_agentPromptGenerator = __esm({
|
|
|
203452
203483
|
|
|
203453
203484
|
// src/capture/scaffolding.ts
|
|
203454
203485
|
import { existsSync as existsSync116, writeFileSync as writeFileSync54, readFileSync as readFileSync85 } from "fs";
|
|
203455
|
-
import { join as join124, resolve as
|
|
203486
|
+
import { join as join124, resolve as resolve75 } from "path";
|
|
203456
203487
|
function loadEnvFile(startDir) {
|
|
203457
203488
|
try {
|
|
203458
|
-
let dir =
|
|
203489
|
+
let dir = resolve75(startDir);
|
|
203459
203490
|
for (let i2 = 0; i2 < 5; i2++) {
|
|
203460
|
-
const envPath =
|
|
203491
|
+
const envPath = resolve75(dir, ".env");
|
|
203461
203492
|
try {
|
|
203462
203493
|
const envContent = readFileSync85(envPath, "utf-8");
|
|
203463
203494
|
for (const line2 of envContent.split("\n")) {
|
|
@@ -203471,7 +203502,7 @@ function loadEnvFile(startDir) {
|
|
|
203471
203502
|
}
|
|
203472
203503
|
break;
|
|
203473
203504
|
} catch {
|
|
203474
|
-
dir =
|
|
203505
|
+
dir = resolve75(dir, "..");
|
|
203475
203506
|
}
|
|
203476
203507
|
}
|
|
203477
203508
|
} catch {
|
|
@@ -204753,7 +204784,7 @@ __export(capture_exports2, {
|
|
|
204753
204784
|
default: () => capture_default,
|
|
204754
204785
|
examples: () => examples33
|
|
204755
204786
|
});
|
|
204756
|
-
import { resolve as
|
|
204787
|
+
import { resolve as resolve76 } from "path";
|
|
204757
204788
|
function emitCapturePhase(event) {
|
|
204758
204789
|
diag.notice(`${CAPTURE_PHASE_PREFIX}${JSON.stringify(event)}`);
|
|
204759
204790
|
}
|
|
@@ -204877,13 +204908,13 @@ var init_capture2 = __esm({
|
|
|
204877
204908
|
const captureBudgetMs = parseCaptureBudget(args["capture-budget"]);
|
|
204878
204909
|
const isDefaultOutput = !args.output;
|
|
204879
204910
|
let outputName = args.output ?? "capture";
|
|
204880
|
-
let outputDir =
|
|
204911
|
+
let outputDir = resolve76(outputName);
|
|
204881
204912
|
if (isDefaultOutput) {
|
|
204882
204913
|
const { existsSync: existsSync131 } = await import("fs");
|
|
204883
204914
|
let n2 = 2;
|
|
204884
204915
|
while (existsSync131(outputDir) && n2 < 100) {
|
|
204885
204916
|
outputName = `capture-${n2}`;
|
|
204886
|
-
outputDir =
|
|
204917
|
+
outputDir = resolve76(outputName);
|
|
204887
204918
|
n2++;
|
|
204888
204919
|
}
|
|
204889
204920
|
if (existsSync131(outputDir)) {
|
|
@@ -205224,16 +205255,16 @@ var init_sam = __esm({
|
|
|
205224
205255
|
|
|
205225
205256
|
// src/commands/lambda/repoRoot.ts
|
|
205226
205257
|
import { existsSync as existsSync120 } from "fs";
|
|
205227
|
-
import { dirname as dirname57, resolve as
|
|
205258
|
+
import { dirname as dirname57, resolve as resolve77 } from "path";
|
|
205228
205259
|
import { fileURLToPath as fileURLToPath15 } from "url";
|
|
205229
205260
|
function repoRoot() {
|
|
205230
205261
|
const override = process.env.HYPERFRAMES_REPO_ROOT;
|
|
205231
|
-
if (override && existsSync120(
|
|
205262
|
+
if (override && existsSync120(resolve77(override, "packages", "aws-lambda", "package.json"))) {
|
|
205232
205263
|
return override;
|
|
205233
205264
|
}
|
|
205234
205265
|
let dir = dirname57(fileURLToPath15(import.meta.url));
|
|
205235
205266
|
for (let depth = 0; depth < 12; depth++) {
|
|
205236
|
-
if (existsSync120(
|
|
205267
|
+
if (existsSync120(resolve77(dir, "packages", "aws-lambda", "package.json"))) {
|
|
205237
205268
|
return dir;
|
|
205238
205269
|
}
|
|
205239
205270
|
const parent = dirname57(dir);
|
|
@@ -205257,7 +205288,7 @@ __export(deploy_exports, {
|
|
|
205257
205288
|
});
|
|
205258
205289
|
import { spawnSync as spawnSync5 } from "child_process";
|
|
205259
205290
|
import { existsSync as existsSync121 } from "fs";
|
|
205260
|
-
import { join as join129, resolve as
|
|
205291
|
+
import { join as join129, resolve as resolve78 } from "path";
|
|
205261
205292
|
async function runDeploy(args = {}) {
|
|
205262
205293
|
const resolved2 = {
|
|
205263
205294
|
stackName: args.stackName ?? DEFAULT_STACK_NAME,
|
|
@@ -205311,7 +205342,7 @@ async function runDeploy(args = {}) {
|
|
|
205311
205342
|
console.log(` ${c.dim("Bucket:")} ${outputs.bucketName}`);
|
|
205312
205343
|
console.log(` ${c.dim("State machine:")} ${outputs.stateMachineArn}`);
|
|
205313
205344
|
console.log(` ${c.dim("Function:")} ${outputs.functionName}`);
|
|
205314
|
-
console.log(` ${c.dim("State file:")} ${
|
|
205345
|
+
console.log(` ${c.dim("State file:")} ${resolve78(statePath2)}`);
|
|
205315
205346
|
console.log();
|
|
205316
205347
|
console.log(c.dim(`Render with: hyperframes lambda render <project-dir>`));
|
|
205317
205348
|
}
|
|
@@ -206647,7 +206678,7 @@ __export(cloudrun_exports, {
|
|
|
206647
206678
|
import { spawnSync as spawnSync6 } from "child_process";
|
|
206648
206679
|
import { existsSync as existsSync124, mkdirSync as mkdirSync63, readFileSync as readFileSync90, writeFileSync as writeFileSync58 } from "fs";
|
|
206649
206680
|
import { homedir as homedir23 } from "os";
|
|
206650
|
-
import { join as join134, resolve as
|
|
206681
|
+
import { join as join134, resolve as resolve79 } from "path";
|
|
206651
206682
|
function loadCloudRunAdapter() {
|
|
206652
206683
|
cloudRunAdapterPromise ??= Promise.all([
|
|
206653
206684
|
import("@hyperframes/gcp-cloud-run/sdk"),
|
|
@@ -206825,7 +206856,7 @@ function machineVars(args, project, region, image) {
|
|
|
206825
206856
|
return vars;
|
|
206826
206857
|
}
|
|
206827
206858
|
function findRepoRoot(tfDir) {
|
|
206828
|
-
const candidate =
|
|
206859
|
+
const candidate = resolve79(tfDir, "..", "..", "..");
|
|
206829
206860
|
if (existsSync124(join134(candidate, "packages", "gcp-cloud-run", "Dockerfile"))) return candidate;
|
|
206830
206861
|
return null;
|
|
206831
206862
|
}
|
|
@@ -206860,7 +206891,7 @@ async function runSites(args) {
|
|
|
206860
206891
|
const state = readState2(args);
|
|
206861
206892
|
const { deploySite } = await loadCloudRunAdapter();
|
|
206862
206893
|
const handle = await deploySite({
|
|
206863
|
-
projectDir:
|
|
206894
|
+
projectDir: resolve79(projectDir),
|
|
206864
206895
|
bucketName: state.bucketName,
|
|
206865
206896
|
siteId: args["site-id"]
|
|
206866
206897
|
});
|
|
@@ -206895,11 +206926,11 @@ async function runRender2(args) {
|
|
|
206895
206926
|
}
|
|
206896
206927
|
const fps = resolveCloudRunFps(args, projectDir, "render");
|
|
206897
206928
|
const state = readState2(args);
|
|
206898
|
-
const variables = resolveAndValidateVariables(args,
|
|
206929
|
+
const variables = resolveAndValidateVariables(args, resolve79(projectDir));
|
|
206899
206930
|
const config = buildRenderConfig(args, fps, width, height, variables);
|
|
206900
206931
|
const { renderToCloudRun, getRenderProgress } = await loadCloudRunAdapter();
|
|
206901
206932
|
const handle = await renderToCloudRun({
|
|
206902
|
-
projectDir:
|
|
206933
|
+
projectDir: resolve79(projectDir),
|
|
206903
206934
|
config,
|
|
206904
206935
|
bucketName: state.bucketName,
|
|
206905
206936
|
projectId: state.projectId,
|
|
@@ -206975,11 +207006,11 @@ async function runRenderBatch2(args) {
|
|
|
206975
207006
|
failCommand();
|
|
206976
207007
|
}
|
|
206977
207008
|
const fps = resolveCloudRunFps(args, projectDir, "render-batch");
|
|
206978
|
-
if (!existsSync124(
|
|
207009
|
+
if (!existsSync124(resolve79(batchPath))) {
|
|
206979
207010
|
console.error(`[cloudrun render-batch] batch file not found: ${batchPath}`);
|
|
206980
207011
|
failCommand();
|
|
206981
207012
|
}
|
|
206982
|
-
const entries2 = parseBatchFile2(
|
|
207013
|
+
const entries2 = parseBatchFile2(resolve79(batchPath));
|
|
206983
207014
|
if (entries2.length === 0) {
|
|
206984
207015
|
console.error("[cloudrun render-batch] batch file has no entries.");
|
|
206985
207016
|
failCommand();
|
|
@@ -206998,7 +207029,7 @@ async function runRenderBatch2(args) {
|
|
|
206998
207029
|
const maxConcurrent = parsePositiveInt2(args["max-concurrent"], "--max-concurrent") ?? DEFAULT_BATCH_MAX_CONCURRENT;
|
|
206999
207030
|
const { deploySite, renderToCloudRun } = await loadCloudRunAdapter();
|
|
207000
207031
|
const siteHandle = await deploySite({
|
|
207001
|
-
projectDir:
|
|
207032
|
+
projectDir: resolve79(projectDir),
|
|
207002
207033
|
bucketName: state.bucketName,
|
|
207003
207034
|
siteId: args["site-id"]
|
|
207004
207035
|
});
|
|
@@ -207451,14 +207482,14 @@ function signalAbortError(signal) {
|
|
|
207451
207482
|
return reason instanceof Error ? reason : new Error("Poll aborted");
|
|
207452
207483
|
}
|
|
207453
207484
|
function defaultAbortableSleep(signal) {
|
|
207454
|
-
return (ms) => new Promise((
|
|
207485
|
+
return (ms) => new Promise((resolve80, reject2) => {
|
|
207455
207486
|
const onAbort = () => {
|
|
207456
207487
|
clearTimeout(timer);
|
|
207457
207488
|
reject2(signalAbortError(signal));
|
|
207458
207489
|
};
|
|
207459
207490
|
const timer = setTimeout(() => {
|
|
207460
207491
|
signal?.removeEventListener("abort", onAbort);
|
|
207461
|
-
|
|
207492
|
+
resolve80();
|
|
207462
207493
|
}, ms);
|
|
207463
207494
|
signal?.addEventListener("abort", onAbort, { once: true });
|
|
207464
207495
|
});
|
|
@@ -207533,7 +207564,7 @@ async function downloadToFile(url, destPath, options = {}) {
|
|
|
207533
207564
|
return { path: destPath, bytes };
|
|
207534
207565
|
}
|
|
207535
207566
|
function waitForDrain(file, signal) {
|
|
207536
|
-
return new Promise((
|
|
207567
|
+
return new Promise((resolve80, reject2) => {
|
|
207537
207568
|
const cleanup = () => {
|
|
207538
207569
|
file.off("drain", onDrain);
|
|
207539
207570
|
file.off("error", onError);
|
|
@@ -207542,7 +207573,7 @@ function waitForDrain(file, signal) {
|
|
|
207542
207573
|
};
|
|
207543
207574
|
const onDrain = () => {
|
|
207544
207575
|
cleanup();
|
|
207545
|
-
|
|
207576
|
+
resolve80();
|
|
207546
207577
|
};
|
|
207547
207578
|
const onError = (err) => {
|
|
207548
207579
|
cleanup();
|
|
@@ -207564,10 +207595,10 @@ function waitForDrain(file, signal) {
|
|
|
207564
207595
|
});
|
|
207565
207596
|
}
|
|
207566
207597
|
function closeFile(file) {
|
|
207567
|
-
return new Promise((
|
|
207598
|
+
return new Promise((resolve80) => {
|
|
207568
207599
|
const done = () => {
|
|
207569
207600
|
file.off("error", done);
|
|
207570
|
-
|
|
207601
|
+
resolve80();
|
|
207571
207602
|
};
|
|
207572
207603
|
file.once("error", done);
|
|
207573
207604
|
file.end(() => done());
|
|
@@ -209360,7 +209391,7 @@ async function collectApiKey(inline) {
|
|
|
209360
209391
|
return await promptForKey();
|
|
209361
209392
|
}
|
|
209362
209393
|
async function readAllWithTimeout(stream, timeoutMs) {
|
|
209363
|
-
return await new Promise((
|
|
209394
|
+
return await new Promise((resolve80, reject2) => {
|
|
209364
209395
|
const chunks = [];
|
|
209365
209396
|
const timer = setTimeout(() => {
|
|
209366
209397
|
reject2(new Error(`Timed out waiting for stdin (${timeoutMs}ms). Pipe the key explicitly.`));
|
|
@@ -209370,7 +209401,7 @@ async function readAllWithTimeout(stream, timeoutMs) {
|
|
|
209370
209401
|
});
|
|
209371
209402
|
stream.on("end", () => {
|
|
209372
209403
|
clearTimeout(timer);
|
|
209373
|
-
|
|
209404
|
+
resolve80(Buffer.concat(chunks).toString("utf8"));
|
|
209374
209405
|
});
|
|
209375
209406
|
stream.on("error", (err) => {
|
|
209376
209407
|
clearTimeout(timer);
|
|
@@ -209761,8 +209792,8 @@ async function confirmInteractive(prompt) {
|
|
|
209761
209792
|
if (!process.stdin.isTTY) return false;
|
|
209762
209793
|
const { createInterface: createInterface3 } = await import("readline");
|
|
209763
209794
|
const rl = createInterface3({ input: process.stdin, output: process.stdout });
|
|
209764
|
-
const answer = await new Promise((
|
|
209765
|
-
rl.question(prompt, (line2) =>
|
|
209795
|
+
const answer = await new Promise((resolve80) => {
|
|
209796
|
+
rl.question(prompt, (line2) => resolve80(line2));
|
|
209766
209797
|
});
|
|
209767
209798
|
rl.close();
|
|
209768
209799
|
return /^y(es)?$/i.test(answer.trim());
|
|
@@ -210170,7 +210201,7 @@ var init_parseFigmaRef = __esm({
|
|
|
210170
210201
|
});
|
|
210171
210202
|
|
|
210172
210203
|
// ../core/dist/figma/freeze.js
|
|
210173
|
-
import { copyFileSync as copyFileSync11, mkdirSync as mkdirSync65, rmSync as rmSync36, statSync as
|
|
210204
|
+
import { copyFileSync as copyFileSync11, mkdirSync as mkdirSync65, rmSync as rmSync36, statSync as statSync40, writeFileSync as writeFileSync59 } from "fs";
|
|
210174
210205
|
import { dirname as dirname59 } from "path";
|
|
210175
210206
|
function exceedsFreezeCap(byteLength) {
|
|
210176
210207
|
return byteLength > MAX_FREEZE_BYTES;
|
|
@@ -212018,8 +212049,8 @@ if (rootVersionRequested) {
|
|
|
212018
212049
|
}
|
|
212019
212050
|
try {
|
|
212020
212051
|
const { readFileSync: readFileSync95 } = await import("fs");
|
|
212021
|
-
const { resolve:
|
|
212022
|
-
const envPath =
|
|
212052
|
+
const { resolve: resolve80 } = await import("path");
|
|
212053
|
+
const envPath = resolve80(process.cwd(), ".env");
|
|
212023
212054
|
const envContent = readFileSync95(envPath, "utf-8");
|
|
212024
212055
|
for (const rawLine of envContent.split("\n")) {
|
|
212025
212056
|
let line2 = rawLine.trim();
|