hyperframes 0.8.63 → 0.8.65
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 +1001 -247
- package/dist/fontLocalizeCli.js +817 -196
- package/dist/hyperframe-runtime.js +191 -28
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +191 -28
- package/dist/hyperframes-player.global.js +3 -3
- package/dist/studio/assets/hyperframes-player-CwFrSySS.js +464 -0
- package/dist/studio/assets/{index-CjueZL58.js → index-Cs1lQrQ6.js} +142 -142
- package/dist/studio/assets/{index-DCqmNhmi.js → index-a5nEhdAU.js} +1 -1
- package/dist/studio/assets/{index-CISQydDK.js → index-wQFEeTL3.js} +1 -1
- package/dist/studio/index.d.ts +4 -3
- package/dist/studio/index.html +1 -1
- package/dist/studio/index.js +852 -755
- package/dist/studio/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/studio/assets/hyperframes-player-FmXtbvEE.js +0 -464
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.65" : "0.0.0-dev";
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
56
|
|
|
@@ -2088,9 +2088,9 @@ var require_path = __commonJS({
|
|
|
2088
2088
|
};
|
|
2089
2089
|
function emptyMoves() {
|
|
2090
2090
|
}
|
|
2091
|
-
function getMoves(path,
|
|
2091
|
+
function getMoves(path, offset3, start, end) {
|
|
2092
2092
|
isArray3.assert(path.value);
|
|
2093
|
-
if (
|
|
2093
|
+
if (offset3 === 0) {
|
|
2094
2094
|
return emptyMoves;
|
|
2095
2095
|
}
|
|
2096
2096
|
var length = path.value.length;
|
|
@@ -2118,7 +2118,7 @@ var require_path = __commonJS({
|
|
|
2118
2118
|
if (childPath.name !== i) {
|
|
2119
2119
|
throw new Error("");
|
|
2120
2120
|
}
|
|
2121
|
-
var newIndex = i +
|
|
2121
|
+
var newIndex = i + offset3;
|
|
2122
2122
|
childPath.name = newIndex;
|
|
2123
2123
|
moves[newIndex] = childPath;
|
|
2124
2124
|
delete cache3[i];
|
|
@@ -6042,13 +6042,13 @@ var require_source_map_consumer = __commonJS({
|
|
|
6042
6042
|
if (s.url) {
|
|
6043
6043
|
throw new Error("Support for url field in sections not implemented.");
|
|
6044
6044
|
}
|
|
6045
|
-
var
|
|
6046
|
-
var offsetLine = util.getArg(
|
|
6047
|
-
var offsetColumn = util.getArg(
|
|
6045
|
+
var offset3 = util.getArg(s, "offset");
|
|
6046
|
+
var offsetLine = util.getArg(offset3, "line");
|
|
6047
|
+
var offsetColumn = util.getArg(offset3, "column");
|
|
6048
6048
|
if (offsetLine < lastOffset.line || offsetLine === lastOffset.line && offsetColumn < lastOffset.column) {
|
|
6049
6049
|
throw new Error("Section offsets must be ordered and non-overlapping.");
|
|
6050
6050
|
}
|
|
6051
|
-
lastOffset =
|
|
6051
|
+
lastOffset = offset3;
|
|
6052
6052
|
return {
|
|
6053
6053
|
generatedOffset: {
|
|
6054
6054
|
// The offset fields are 0-based, but we use 1-based indices when
|
|
@@ -11493,16 +11493,16 @@ var require_esprima2 = __commonJS({
|
|
|
11493
11493
|
}
|
|
11494
11494
|
this.errorHandler.tolerateError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);
|
|
11495
11495
|
};
|
|
11496
|
-
Scanner2.prototype.skipSingleLineComment = function(
|
|
11496
|
+
Scanner2.prototype.skipSingleLineComment = function(offset3) {
|
|
11497
11497
|
var comments = [];
|
|
11498
11498
|
var start, loc;
|
|
11499
11499
|
if (this.trackComment) {
|
|
11500
11500
|
comments = [];
|
|
11501
|
-
start = this.index -
|
|
11501
|
+
start = this.index - offset3;
|
|
11502
11502
|
loc = {
|
|
11503
11503
|
start: {
|
|
11504
11504
|
line: this.lineNumber,
|
|
11505
|
-
column: this.index - this.lineStart -
|
|
11505
|
+
column: this.index - this.lineStart - offset3
|
|
11506
11506
|
},
|
|
11507
11507
|
end: {}
|
|
11508
11508
|
};
|
|
@@ -11518,7 +11518,7 @@ var require_esprima2 = __commonJS({
|
|
|
11518
11518
|
};
|
|
11519
11519
|
var entry = {
|
|
11520
11520
|
multiLine: false,
|
|
11521
|
-
slice: [start +
|
|
11521
|
+
slice: [start + offset3, this.index - 1],
|
|
11522
11522
|
range: [start, this.index - 1],
|
|
11523
11523
|
loc
|
|
11524
11524
|
};
|
|
@@ -11539,7 +11539,7 @@ var require_esprima2 = __commonJS({
|
|
|
11539
11539
|
};
|
|
11540
11540
|
var entry = {
|
|
11541
11541
|
multiLine: false,
|
|
11542
|
-
slice: [start +
|
|
11542
|
+
slice: [start + offset3, this.index],
|
|
11543
11543
|
range: [start, this.index],
|
|
11544
11544
|
loc
|
|
11545
11545
|
};
|
|
@@ -32058,11 +32058,11 @@ function codePointToString(code) {
|
|
|
32058
32058
|
code -= 65536;
|
|
32059
32059
|
return String.fromCharCode((code >> 10) + 55296, (code & 1023) + 56320);
|
|
32060
32060
|
}
|
|
32061
|
-
function getLineInfo(input2,
|
|
32061
|
+
function getLineInfo(input2, offset3) {
|
|
32062
32062
|
for (var line3 = 1, cur = 0; ; ) {
|
|
32063
|
-
var nextBreak = nextLineBreak(input2, cur,
|
|
32063
|
+
var nextBreak = nextLineBreak(input2, cur, offset3);
|
|
32064
32064
|
if (nextBreak < 0) {
|
|
32065
|
-
return new Position(line3,
|
|
32065
|
+
return new Position(line3, offset3 - cur);
|
|
32066
32066
|
}
|
|
32067
32067
|
++line3;
|
|
32068
32068
|
cur = nextBreak;
|
|
@@ -38287,28 +38287,28 @@ var init_decode = __esm({
|
|
|
38287
38287
|
* @param offset The offset at which the entity begins. Should be 0 if this is not the first call.
|
|
38288
38288
|
* @returns The number of characters that were consumed, or -1 if the entity is incomplete.
|
|
38289
38289
|
*/
|
|
38290
|
-
write(input2,
|
|
38290
|
+
write(input2, offset3) {
|
|
38291
38291
|
switch (this.state) {
|
|
38292
38292
|
case EntityDecoderState.EntityStart: {
|
|
38293
|
-
if (input2.charCodeAt(
|
|
38293
|
+
if (input2.charCodeAt(offset3) === CharCodes.NUM) {
|
|
38294
38294
|
this.state = EntityDecoderState.NumericStart;
|
|
38295
38295
|
this.consumed += 1;
|
|
38296
|
-
return this.stateNumericStart(input2,
|
|
38296
|
+
return this.stateNumericStart(input2, offset3 + 1);
|
|
38297
38297
|
}
|
|
38298
38298
|
this.state = EntityDecoderState.NamedEntity;
|
|
38299
|
-
return this.stateNamedEntity(input2,
|
|
38299
|
+
return this.stateNamedEntity(input2, offset3);
|
|
38300
38300
|
}
|
|
38301
38301
|
case EntityDecoderState.NumericStart: {
|
|
38302
|
-
return this.stateNumericStart(input2,
|
|
38302
|
+
return this.stateNumericStart(input2, offset3);
|
|
38303
38303
|
}
|
|
38304
38304
|
case EntityDecoderState.NumericDecimal: {
|
|
38305
|
-
return this.stateNumericDecimal(input2,
|
|
38305
|
+
return this.stateNumericDecimal(input2, offset3);
|
|
38306
38306
|
}
|
|
38307
38307
|
case EntityDecoderState.NumericHex: {
|
|
38308
|
-
return this.stateNumericHex(input2,
|
|
38308
|
+
return this.stateNumericHex(input2, offset3);
|
|
38309
38309
|
}
|
|
38310
38310
|
case EntityDecoderState.NamedEntity: {
|
|
38311
|
-
return this.stateNamedEntity(input2,
|
|
38311
|
+
return this.stateNamedEntity(input2, offset3);
|
|
38312
38312
|
}
|
|
38313
38313
|
}
|
|
38314
38314
|
}
|
|
@@ -38321,17 +38321,17 @@ var init_decode = __esm({
|
|
|
38321
38321
|
* @param offset The current offset.
|
|
38322
38322
|
* @returns The number of characters that were consumed, or -1 if the entity is incomplete.
|
|
38323
38323
|
*/
|
|
38324
|
-
stateNumericStart(input2,
|
|
38325
|
-
if (
|
|
38324
|
+
stateNumericStart(input2, offset3) {
|
|
38325
|
+
if (offset3 >= input2.length) {
|
|
38326
38326
|
return -1;
|
|
38327
38327
|
}
|
|
38328
|
-
if ((input2.charCodeAt(
|
|
38328
|
+
if ((input2.charCodeAt(offset3) | TO_LOWER_BIT) === CharCodes.LOWER_X) {
|
|
38329
38329
|
this.state = EntityDecoderState.NumericHex;
|
|
38330
38330
|
this.consumed += 1;
|
|
38331
|
-
return this.stateNumericHex(input2,
|
|
38331
|
+
return this.stateNumericHex(input2, offset3 + 1);
|
|
38332
38332
|
}
|
|
38333
38333
|
this.state = EntityDecoderState.NumericDecimal;
|
|
38334
|
-
return this.stateNumericDecimal(input2,
|
|
38334
|
+
return this.stateNumericDecimal(input2, offset3);
|
|
38335
38335
|
}
|
|
38336
38336
|
/**
|
|
38337
38337
|
* Parses a hexadecimal numeric entity.
|
|
@@ -38342,14 +38342,14 @@ var init_decode = __esm({
|
|
|
38342
38342
|
* @param offset The current offset.
|
|
38343
38343
|
* @returns The number of characters that were consumed, or -1 if the entity is incomplete.
|
|
38344
38344
|
*/
|
|
38345
|
-
stateNumericHex(input2,
|
|
38346
|
-
while (
|
|
38347
|
-
const char = input2.charCodeAt(
|
|
38345
|
+
stateNumericHex(input2, offset3) {
|
|
38346
|
+
while (offset3 < input2.length) {
|
|
38347
|
+
const char = input2.charCodeAt(offset3);
|
|
38348
38348
|
if (isNumber(char) || isHexadecimalCharacter(char)) {
|
|
38349
38349
|
const digit = char <= CharCodes.NINE ? char - CharCodes.ZERO : (char | TO_LOWER_BIT) - CharCodes.LOWER_A + 10;
|
|
38350
38350
|
this.result = this.result * 16 + digit;
|
|
38351
38351
|
this.consumed++;
|
|
38352
|
-
|
|
38352
|
+
offset3++;
|
|
38353
38353
|
} else {
|
|
38354
38354
|
return this.emitNumericEntity(char, 3);
|
|
38355
38355
|
}
|
|
@@ -38365,13 +38365,13 @@ var init_decode = __esm({
|
|
|
38365
38365
|
* @param offset The current offset.
|
|
38366
38366
|
* @returns The number of characters that were consumed, or -1 if the entity is incomplete.
|
|
38367
38367
|
*/
|
|
38368
|
-
stateNumericDecimal(input2,
|
|
38369
|
-
while (
|
|
38370
|
-
const char = input2.charCodeAt(
|
|
38368
|
+
stateNumericDecimal(input2, offset3) {
|
|
38369
|
+
while (offset3 < input2.length) {
|
|
38370
|
+
const char = input2.charCodeAt(offset3);
|
|
38371
38371
|
if (isNumber(char)) {
|
|
38372
38372
|
this.result = this.result * 10 + (char - CharCodes.ZERO);
|
|
38373
38373
|
this.consumed++;
|
|
38374
|
-
|
|
38374
|
+
offset3++;
|
|
38375
38375
|
} else {
|
|
38376
38376
|
return this.emitNumericEntity(char, 2);
|
|
38377
38377
|
}
|
|
@@ -38420,34 +38420,34 @@ var init_decode = __esm({
|
|
|
38420
38420
|
* @param offset The current offset.
|
|
38421
38421
|
* @returns The number of characters that were consumed, or -1 if the entity is incomplete.
|
|
38422
38422
|
*/
|
|
38423
|
-
stateNamedEntity(input2,
|
|
38423
|
+
stateNamedEntity(input2, offset3) {
|
|
38424
38424
|
const { decodeTree } = this;
|
|
38425
38425
|
let current2 = decodeTree[this.treeIndex];
|
|
38426
38426
|
let valueLength = (current2 & BinTrieFlags.VALUE_LENGTH) >> 14;
|
|
38427
|
-
while (
|
|
38427
|
+
while (offset3 < input2.length) {
|
|
38428
38428
|
if (valueLength === 0 && (current2 & BinTrieFlags.FLAG13) !== 0) {
|
|
38429
38429
|
const runLength = (current2 & BinTrieFlags.BRANCH_LENGTH) >> 7;
|
|
38430
38430
|
if (this.runConsumed === 0) {
|
|
38431
38431
|
const firstChar = current2 & BinTrieFlags.JUMP_TABLE;
|
|
38432
|
-
if (input2.charCodeAt(
|
|
38432
|
+
if (input2.charCodeAt(offset3) !== firstChar) {
|
|
38433
38433
|
return this.result === 0 ? 0 : this.emitNotTerminatedNamedEntity();
|
|
38434
38434
|
}
|
|
38435
|
-
|
|
38435
|
+
offset3++;
|
|
38436
38436
|
this.excess++;
|
|
38437
38437
|
this.runConsumed++;
|
|
38438
38438
|
}
|
|
38439
38439
|
while (this.runConsumed < runLength) {
|
|
38440
|
-
if (
|
|
38440
|
+
if (offset3 >= input2.length) {
|
|
38441
38441
|
return -1;
|
|
38442
38442
|
}
|
|
38443
38443
|
const charIndexInPacked = this.runConsumed - 1;
|
|
38444
38444
|
const packedWord = decodeTree[this.treeIndex + 1 + (charIndexInPacked >> 1)];
|
|
38445
38445
|
const expectedChar = charIndexInPacked % 2 === 0 ? packedWord & 255 : packedWord >> 8 & 255;
|
|
38446
|
-
if (input2.charCodeAt(
|
|
38446
|
+
if (input2.charCodeAt(offset3) !== expectedChar) {
|
|
38447
38447
|
this.runConsumed = 0;
|
|
38448
38448
|
return this.result === 0 ? 0 : this.emitNotTerminatedNamedEntity();
|
|
38449
38449
|
}
|
|
38450
|
-
|
|
38450
|
+
offset3++;
|
|
38451
38451
|
this.excess++;
|
|
38452
38452
|
this.runConsumed++;
|
|
38453
38453
|
}
|
|
@@ -38456,9 +38456,9 @@ var init_decode = __esm({
|
|
|
38456
38456
|
current2 = decodeTree[this.treeIndex];
|
|
38457
38457
|
valueLength = (current2 & BinTrieFlags.VALUE_LENGTH) >> 14;
|
|
38458
38458
|
}
|
|
38459
|
-
if (
|
|
38459
|
+
if (offset3 >= input2.length)
|
|
38460
38460
|
break;
|
|
38461
|
-
const char = input2.charCodeAt(
|
|
38461
|
+
const char = input2.charCodeAt(offset3);
|
|
38462
38462
|
if (char === CharCodes.SEMI && valueLength !== 0 && (current2 & BinTrieFlags.FLAG13) !== 0) {
|
|
38463
38463
|
return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);
|
|
38464
38464
|
}
|
|
@@ -38481,7 +38481,7 @@ var init_decode = __esm({
|
|
|
38481
38481
|
this.excess = 0;
|
|
38482
38482
|
}
|
|
38483
38483
|
}
|
|
38484
|
-
|
|
38484
|
+
offset3++;
|
|
38485
38485
|
this.excess++;
|
|
38486
38486
|
}
|
|
38487
38487
|
return -1;
|
|
@@ -38830,10 +38830,10 @@ var init_Tokenizer = __esm({
|
|
|
38830
38830
|
isTagStartChar(c3) {
|
|
38831
38831
|
return this.xmlMode ? !isEndOfTagSection(c3) : isASCIIAlpha(c3);
|
|
38832
38832
|
}
|
|
38833
|
-
startSpecial(sequence,
|
|
38833
|
+
startSpecial(sequence, offset3) {
|
|
38834
38834
|
this.isSpecial = true;
|
|
38835
38835
|
this.currentSequence = sequence;
|
|
38836
|
-
this.sequenceIndex =
|
|
38836
|
+
this.sequenceIndex = offset3;
|
|
38837
38837
|
this.state = State.SpecialStartSequence;
|
|
38838
38838
|
}
|
|
38839
38839
|
stateBeforeTagName(c3) {
|
|
@@ -39562,18 +39562,18 @@ var init_Parser = __esm({
|
|
|
39562
39562
|
this.startIndex = endIndex + 1;
|
|
39563
39563
|
}
|
|
39564
39564
|
/** @internal */
|
|
39565
|
-
oncomment(start, endIndex,
|
|
39565
|
+
oncomment(start, endIndex, offset3) {
|
|
39566
39566
|
var _a3, _b, _c2, _d;
|
|
39567
39567
|
this.endIndex = endIndex;
|
|
39568
|
-
(_b = (_a3 = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a3, this.getSlice(start, endIndex -
|
|
39568
|
+
(_b = (_a3 = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a3, this.getSlice(start, endIndex - offset3));
|
|
39569
39569
|
(_d = (_c2 = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c2);
|
|
39570
39570
|
this.startIndex = endIndex + 1;
|
|
39571
39571
|
}
|
|
39572
39572
|
/** @internal */
|
|
39573
|
-
oncdata(start, endIndex,
|
|
39573
|
+
oncdata(start, endIndex, offset3) {
|
|
39574
39574
|
var _a3, _b, _c2, _d, _e2, _f, _g, _h, _j, _k;
|
|
39575
39575
|
this.endIndex = endIndex;
|
|
39576
|
-
const value = this.getSlice(start, endIndex -
|
|
39576
|
+
const value = this.getSlice(start, endIndex - offset3);
|
|
39577
39577
|
if (!this.htmlMode || this.options.recognizeCDATA) {
|
|
39578
39578
|
(_b = (_a3 = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a3);
|
|
39579
39579
|
(_d = (_c2 = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c2, value);
|
|
@@ -40271,21 +40271,21 @@ function getDecoder(decodeTree) {
|
|
|
40271
40271
|
const decoder = new EntityDecoder2(decodeTree, (str) => ret += fromCodePoint2(str));
|
|
40272
40272
|
return function decodeWithTrie(str, decodeMode) {
|
|
40273
40273
|
let lastIndex = 0;
|
|
40274
|
-
let
|
|
40275
|
-
while ((
|
|
40276
|
-
ret += str.slice(lastIndex,
|
|
40274
|
+
let offset3 = 0;
|
|
40275
|
+
while ((offset3 = str.indexOf("&", offset3)) >= 0) {
|
|
40276
|
+
ret += str.slice(lastIndex, offset3);
|
|
40277
40277
|
decoder.startEntity(decodeMode);
|
|
40278
40278
|
const len2 = decoder.write(
|
|
40279
40279
|
str,
|
|
40280
40280
|
// Skip the "&"
|
|
40281
|
-
|
|
40281
|
+
offset3 + 1
|
|
40282
40282
|
);
|
|
40283
40283
|
if (len2 < 0) {
|
|
40284
|
-
lastIndex =
|
|
40284
|
+
lastIndex = offset3 + decoder.end();
|
|
40285
40285
|
break;
|
|
40286
40286
|
}
|
|
40287
|
-
lastIndex =
|
|
40288
|
-
|
|
40287
|
+
lastIndex = offset3 + len2;
|
|
40288
|
+
offset3 = len2 === 0 ? lastIndex + 1 : lastIndex;
|
|
40289
40289
|
}
|
|
40290
40290
|
const result = ret + str.slice(lastIndex);
|
|
40291
40291
|
ret = "";
|
|
@@ -40389,28 +40389,28 @@ var init_decode2 = __esm({
|
|
|
40389
40389
|
* @param offset The offset at which the entity begins. Should be 0 if this is not the first call.
|
|
40390
40390
|
* @returns The number of characters that were consumed, or -1 if the entity is incomplete.
|
|
40391
40391
|
*/
|
|
40392
|
-
write(str,
|
|
40392
|
+
write(str, offset3) {
|
|
40393
40393
|
switch (this.state) {
|
|
40394
40394
|
case EntityDecoderState2.EntityStart: {
|
|
40395
|
-
if (str.charCodeAt(
|
|
40395
|
+
if (str.charCodeAt(offset3) === CharCodes3.NUM) {
|
|
40396
40396
|
this.state = EntityDecoderState2.NumericStart;
|
|
40397
40397
|
this.consumed += 1;
|
|
40398
|
-
return this.stateNumericStart(str,
|
|
40398
|
+
return this.stateNumericStart(str, offset3 + 1);
|
|
40399
40399
|
}
|
|
40400
40400
|
this.state = EntityDecoderState2.NamedEntity;
|
|
40401
|
-
return this.stateNamedEntity(str,
|
|
40401
|
+
return this.stateNamedEntity(str, offset3);
|
|
40402
40402
|
}
|
|
40403
40403
|
case EntityDecoderState2.NumericStart: {
|
|
40404
|
-
return this.stateNumericStart(str,
|
|
40404
|
+
return this.stateNumericStart(str, offset3);
|
|
40405
40405
|
}
|
|
40406
40406
|
case EntityDecoderState2.NumericDecimal: {
|
|
40407
|
-
return this.stateNumericDecimal(str,
|
|
40407
|
+
return this.stateNumericDecimal(str, offset3);
|
|
40408
40408
|
}
|
|
40409
40409
|
case EntityDecoderState2.NumericHex: {
|
|
40410
|
-
return this.stateNumericHex(str,
|
|
40410
|
+
return this.stateNumericHex(str, offset3);
|
|
40411
40411
|
}
|
|
40412
40412
|
case EntityDecoderState2.NamedEntity: {
|
|
40413
|
-
return this.stateNamedEntity(str,
|
|
40413
|
+
return this.stateNamedEntity(str, offset3);
|
|
40414
40414
|
}
|
|
40415
40415
|
}
|
|
40416
40416
|
}
|
|
@@ -40423,17 +40423,17 @@ var init_decode2 = __esm({
|
|
|
40423
40423
|
* @param offset The current offset.
|
|
40424
40424
|
* @returns The number of characters that were consumed, or -1 if the entity is incomplete.
|
|
40425
40425
|
*/
|
|
40426
|
-
stateNumericStart(str,
|
|
40427
|
-
if (
|
|
40426
|
+
stateNumericStart(str, offset3) {
|
|
40427
|
+
if (offset3 >= str.length) {
|
|
40428
40428
|
return -1;
|
|
40429
40429
|
}
|
|
40430
|
-
if ((str.charCodeAt(
|
|
40430
|
+
if ((str.charCodeAt(offset3) | TO_LOWER_BIT2) === CharCodes3.LOWER_X) {
|
|
40431
40431
|
this.state = EntityDecoderState2.NumericHex;
|
|
40432
40432
|
this.consumed += 1;
|
|
40433
|
-
return this.stateNumericHex(str,
|
|
40433
|
+
return this.stateNumericHex(str, offset3 + 1);
|
|
40434
40434
|
}
|
|
40435
40435
|
this.state = EntityDecoderState2.NumericDecimal;
|
|
40436
|
-
return this.stateNumericDecimal(str,
|
|
40436
|
+
return this.stateNumericDecimal(str, offset3);
|
|
40437
40437
|
}
|
|
40438
40438
|
addToNumericResult(str, start, end, base2) {
|
|
40439
40439
|
if (start !== end) {
|
|
@@ -40451,18 +40451,18 @@ var init_decode2 = __esm({
|
|
|
40451
40451
|
* @param offset The current offset.
|
|
40452
40452
|
* @returns The number of characters that were consumed, or -1 if the entity is incomplete.
|
|
40453
40453
|
*/
|
|
40454
|
-
stateNumericHex(str,
|
|
40455
|
-
const startIdx =
|
|
40456
|
-
while (
|
|
40457
|
-
const char = str.charCodeAt(
|
|
40454
|
+
stateNumericHex(str, offset3) {
|
|
40455
|
+
const startIdx = offset3;
|
|
40456
|
+
while (offset3 < str.length) {
|
|
40457
|
+
const char = str.charCodeAt(offset3);
|
|
40458
40458
|
if (isNumber2(char) || isHexadecimalCharacter2(char)) {
|
|
40459
|
-
|
|
40459
|
+
offset3 += 1;
|
|
40460
40460
|
} else {
|
|
40461
|
-
this.addToNumericResult(str, startIdx,
|
|
40461
|
+
this.addToNumericResult(str, startIdx, offset3, 16);
|
|
40462
40462
|
return this.emitNumericEntity(char, 3);
|
|
40463
40463
|
}
|
|
40464
40464
|
}
|
|
40465
|
-
this.addToNumericResult(str, startIdx,
|
|
40465
|
+
this.addToNumericResult(str, startIdx, offset3, 16);
|
|
40466
40466
|
return -1;
|
|
40467
40467
|
}
|
|
40468
40468
|
/**
|
|
@@ -40474,18 +40474,18 @@ var init_decode2 = __esm({
|
|
|
40474
40474
|
* @param offset The current offset.
|
|
40475
40475
|
* @returns The number of characters that were consumed, or -1 if the entity is incomplete.
|
|
40476
40476
|
*/
|
|
40477
|
-
stateNumericDecimal(str,
|
|
40478
|
-
const startIdx =
|
|
40479
|
-
while (
|
|
40480
|
-
const char = str.charCodeAt(
|
|
40477
|
+
stateNumericDecimal(str, offset3) {
|
|
40478
|
+
const startIdx = offset3;
|
|
40479
|
+
while (offset3 < str.length) {
|
|
40480
|
+
const char = str.charCodeAt(offset3);
|
|
40481
40481
|
if (isNumber2(char)) {
|
|
40482
|
-
|
|
40482
|
+
offset3 += 1;
|
|
40483
40483
|
} else {
|
|
40484
|
-
this.addToNumericResult(str, startIdx,
|
|
40484
|
+
this.addToNumericResult(str, startIdx, offset3, 10);
|
|
40485
40485
|
return this.emitNumericEntity(char, 2);
|
|
40486
40486
|
}
|
|
40487
40487
|
}
|
|
40488
|
-
this.addToNumericResult(str, startIdx,
|
|
40488
|
+
this.addToNumericResult(str, startIdx, offset3, 10);
|
|
40489
40489
|
return -1;
|
|
40490
40490
|
}
|
|
40491
40491
|
/**
|
|
@@ -40530,12 +40530,12 @@ var init_decode2 = __esm({
|
|
|
40530
40530
|
* @param offset The current offset.
|
|
40531
40531
|
* @returns The number of characters that were consumed, or -1 if the entity is incomplete.
|
|
40532
40532
|
*/
|
|
40533
|
-
stateNamedEntity(str,
|
|
40533
|
+
stateNamedEntity(str, offset3) {
|
|
40534
40534
|
const { decodeTree } = this;
|
|
40535
40535
|
let current2 = decodeTree[this.treeIndex];
|
|
40536
40536
|
let valueLength = (current2 & BinTrieFlags2.VALUE_LENGTH) >> 14;
|
|
40537
|
-
for (;
|
|
40538
|
-
const char = str.charCodeAt(
|
|
40537
|
+
for (; offset3 < str.length; offset3++, this.excess++) {
|
|
40538
|
+
const char = str.charCodeAt(offset3);
|
|
40539
40539
|
this.treeIndex = determineBranch2(decodeTree, current2, this.treeIndex + Math.max(1, valueLength), char);
|
|
40540
40540
|
if (this.treeIndex < 0) {
|
|
40541
40541
|
return this.result === 0 || // If we are parsing an attribute
|
|
@@ -42997,23 +42997,23 @@ var init_character_data = __esm({
|
|
|
42997
42997
|
get length() {
|
|
42998
42998
|
return this.data.length;
|
|
42999
42999
|
}
|
|
43000
|
-
substringData(
|
|
43001
|
-
return this.data.substr(
|
|
43000
|
+
substringData(offset3, count) {
|
|
43001
|
+
return this.data.substr(offset3, count);
|
|
43002
43002
|
}
|
|
43003
43003
|
appendData(data2) {
|
|
43004
43004
|
this.data += data2;
|
|
43005
43005
|
}
|
|
43006
|
-
insertData(
|
|
43006
|
+
insertData(offset3, data2) {
|
|
43007
43007
|
const { data: t } = this;
|
|
43008
|
-
this.data = t.slice(0,
|
|
43008
|
+
this.data = t.slice(0, offset3) + data2 + t.slice(offset3);
|
|
43009
43009
|
}
|
|
43010
|
-
deleteData(
|
|
43010
|
+
deleteData(offset3, count) {
|
|
43011
43011
|
const { data: t } = this;
|
|
43012
|
-
this.data = t.slice(0,
|
|
43012
|
+
this.data = t.slice(0, offset3) + t.slice(offset3 + count);
|
|
43013
43013
|
}
|
|
43014
|
-
replaceData(
|
|
43014
|
+
replaceData(offset3, count, data2) {
|
|
43015
43015
|
const { data: t } = this;
|
|
43016
|
-
this.data = t.slice(0,
|
|
43016
|
+
this.data = t.slice(0, offset3) + data2 + t.slice(offset3 + count);
|
|
43017
43017
|
}
|
|
43018
43018
|
/* c8 ignore stop */
|
|
43019
43019
|
toJSON() {
|
|
@@ -43160,17 +43160,17 @@ function parse4(selector) {
|
|
|
43160
43160
|
}
|
|
43161
43161
|
function parseSelector(subselects2, selector, selectorIndex) {
|
|
43162
43162
|
let tokens = [];
|
|
43163
|
-
function getName3(
|
|
43164
|
-
const match = selector.slice(selectorIndex +
|
|
43163
|
+
function getName3(offset3) {
|
|
43164
|
+
const match = selector.slice(selectorIndex + offset3).match(reName);
|
|
43165
43165
|
if (!match) {
|
|
43166
43166
|
throw new Error(`Expected name, found ${selector.slice(selectorIndex)}`);
|
|
43167
43167
|
}
|
|
43168
43168
|
const [name] = match;
|
|
43169
|
-
selectorIndex +=
|
|
43169
|
+
selectorIndex += offset3 + name.length;
|
|
43170
43170
|
return unescapeCSS(name);
|
|
43171
43171
|
}
|
|
43172
|
-
function stripWhitespace(
|
|
43173
|
-
selectorIndex +=
|
|
43172
|
+
function stripWhitespace(offset3) {
|
|
43173
|
+
selectorIndex += offset3;
|
|
43174
43174
|
while (selectorIndex < selector.length && isWhitespace2(selector.charCodeAt(selectorIndex))) {
|
|
43175
43175
|
selectorIndex++;
|
|
43176
43176
|
}
|
|
@@ -58807,16 +58807,16 @@ function readAscii(bytes, start, length) {
|
|
|
58807
58807
|
}
|
|
58808
58808
|
return value;
|
|
58809
58809
|
}
|
|
58810
|
-
function readU16LE(bytes,
|
|
58811
|
-
if (
|
|
58810
|
+
function readU16LE(bytes, offset3) {
|
|
58811
|
+
if (offset3 + 1 >= bytes.length)
|
|
58812
58812
|
return null;
|
|
58813
|
-
return (bytes[
|
|
58813
|
+
return (bytes[offset3] ?? 0) | (bytes[offset3 + 1] ?? 0) << 8;
|
|
58814
58814
|
}
|
|
58815
58815
|
function colorTableByteLength(packed) {
|
|
58816
58816
|
return 3 * 2 ** ((packed & 7) + 1);
|
|
58817
58817
|
}
|
|
58818
|
-
function skipSubBlocks(bytes,
|
|
58819
|
-
let pos =
|
|
58818
|
+
function skipSubBlocks(bytes, offset3) {
|
|
58819
|
+
let pos = offset3;
|
|
58820
58820
|
while (pos < bytes.length) {
|
|
58821
58821
|
const size = bytes[pos];
|
|
58822
58822
|
if (size === void 0)
|
|
@@ -58828,12 +58828,12 @@ function skipSubBlocks(bytes, offset2) {
|
|
|
58828
58828
|
}
|
|
58829
58829
|
return null;
|
|
58830
58830
|
}
|
|
58831
|
-
function parseApplicationExtension(bytes,
|
|
58832
|
-
const blockSize = bytes[
|
|
58833
|
-
if (blockSize === void 0 ||
|
|
58831
|
+
function parseApplicationExtension(bytes, offset3) {
|
|
58832
|
+
const blockSize = bytes[offset3];
|
|
58833
|
+
if (blockSize === void 0 || offset3 + 1 + blockSize > bytes.length)
|
|
58834
58834
|
return null;
|
|
58835
|
-
const appId = readAscii(bytes,
|
|
58836
|
-
let pos =
|
|
58835
|
+
const appId = readAscii(bytes, offset3 + 1, blockSize);
|
|
58836
|
+
let pos = offset3 + 1 + blockSize;
|
|
58837
58837
|
let loopCount = null;
|
|
58838
58838
|
while (pos < bytes.length) {
|
|
58839
58839
|
const size = bytes[pos];
|
|
@@ -60821,7 +60821,7 @@ var RUNTIME_IIFE;
|
|
|
60821
60821
|
var init_runtime_inline = __esm({
|
|
60822
60822
|
"../core/dist/generated/runtime-inline.js"() {
|
|
60823
60823
|
"use strict";
|
|
60824
|
-
RUNTIME_IIFE = '"use strict";(()=>{var n0=Object.create;var Bo=Object.defineProperty;var r0=Object.getOwnPropertyDescriptor;var i0=Object.getOwnPropertyNames;var o0=Object.getPrototypeOf,a0=Object.prototype.hasOwnProperty;var s0=(e,t,n)=>t in e?Bo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var oe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var l0=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of i0(t))!a0.call(e,i)&&i!==n&&Bo(e,i,{get:()=>t[i],enumerable:!(r=r0(t,i))||r.enumerable});return e};var u0=(e,t,n)=>(n=e!=null?n0(o0(e)):{},l0(t||!e||!e.__esModule?Bo(n,"default",{value:e,enumerable:!0}):n,e));var le=(e,t,n)=>s0(e,typeof t!="symbol"?t+"":t,n);var gd=oe((Vw,Xa)=>{var Z=String,hd=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}};Xa.exports=hd();Xa.exports.createColors=hd});var Ja=oe(()=>{});var Li=oe(($w,yd)=>{"use strict";var bd=gd(),xd=Ja(),sr=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=bd.isColorSupported);let r=d=>d,i=d=>d,o=d=>d;if(t){let{bold:d,gray:f,red:m}=bd.createColors(!0);i=p=>d(m(p)),r=p=>f(p),xd&&(o=p=>xd(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((d,f)=>{let m=l+1+f,p=" "+(" "+m).slice(-u)+" | ";if(m===this.line){if(d.length>160){let y=20,x=Math.max(0,this.column-y),w=Math.max(this.column+y,this.endColumn+y),k=d.slice(x,w),C=r(p.replace(/\\d/g," "))+d.slice(0,Math.min(this.column-1,y-1)).replace(/[^\\t]/g," ");return i(">")+r(p)+o(k)+`\n `+C+i("^")}let g=r(p.replace(/\\d/g," "))+d.slice(0,this.column-1).replace(/[^\\t]/g," ");return i(">")+r(p)+o(d)+`\n `+g+i("^")}return" "+r(p)+o(d)}).join(`\n`)}toString(){let t=this.showSourceCode();return t&&(t=`\n\n`+t+`\n`),this.name+": "+this.message+t}};yd.exports=sr;sr.default=sr});var Qa=oe((jw,_d)=>{"use strict";var Db=/(<)(\\/?style\\b)/gi,Ib=/(<)(!--)/g,Pb=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/;function Ke(e){return typeof e!="string"||!e.includes("<")?e:e.replace(Db,"\\\\3c $2").replace(Ib,"\\\\3c $2")}var Sd={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function Ob(e){return e[0].toUpperCase()+e.slice(1)}function vd(e,t){let n="@"+t.name,r=t.params?e.rawValue(t,"params"):"",i=t.raws.afterName;return typeof i>"u"?i=r?" ":"":i===""&&r&&!Pb.test(r[0])&&(i=" "),n+i+r}function Gb(e){if(!e.prop.startsWith("--"))return!1;let t=e.raws.before;return typeof t>"u"||!/\\S$/.test(t)}function Ed(e,t,n){let r=n.nodes,i=r.length-1;for(;i>0&&r[i].type==="comment";)i-=1;let o=e.raw(n,"semicolon"),a=n.type==="document";for(let l=r.length-1;l>=0;l--){let s=r[l],u=i!==l||o;!u&&l<r.length-1&&(s.type==="atrule"&&!s.nodes||s.type==="decl"&&Gb(s))&&(u=!0),t.push({document:a,node:s,semicolon:u})}}function Ad(e,t,n,r){let i=e.raw(n,"between","beforeOpen");e.builder(Ke(r+i)+"{",n,"start");let o=n.nodes&&n.nodes.length,a=()=>{let l=o?e.raw(n,"after"):e.raw(n,"after","emptyBody");l&&e.builder(Ke(l)),e.builder("}",n,"end"),n.type==="rule"&&n.raws.ownSemicolon&&e.builder(Ke(n.raws.ownSemicolon),n,"end")};o?(t.push(a),Ed(e,t,n)):a()}var lr=class e{constructor(t){this.builder=t}atrule(t,n){let r=vd(this,t);if(t.nodes)this.block(t,r);else{let i=(t.raws.between||"")+(n?";":"");this.builder(Ke(r+i),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(Ke(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(Ke(i)),this.builder("}",t,"end")}body(t){let n=e.prototype,r=["atrule","block","body","rule","stringify"].every(o=>this[o]===n[o]),i=[];for(Ed(this,i,t);i.length>0;){let o=i.pop();if(typeof o=="function"){o();continue}let a=o.node,l=this.raw(a,"before");l&&this.builder(o.document?l:Ke(l)),r&&a.type==="rule"?Ad(this,i,a,this.rawValue(a,"selector")):r&&a.type==="atrule"&&a.nodes?Ad(this,i,a,vd(this,a)):this.stringify(a,o.semicolon)}}comment(t){let n=this.raw(t,"left","commentLeft"),r=this.raw(t,"right","commentRight");this.builder(Ke("/*"+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(Ke(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 Sd[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"+Ob(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=Sd[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(t.source&&t.source.input.hasBOM&&this.builder("\\uFEFF",t,"start"),this.body(t),t.raws.after){let n=t.raws.after,r=t.parent&&t.parent.type==="document";this.builder(r?n:Ke(n))}}rule(t){this.block(t,this.rawValue(t,"selector")),t.raws.ownSemicolon&&this.builder(Ke(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)}};_d.exports=lr;lr.default=lr});var ur=oe((Kw,wd)=>{"use strict";var Hb=Qa();function Za(e,t){new Hb(t).stringify(e)}wd.exports=Za;Za.default=Za});var cr=oe((Yw,es)=>{"use strict";es.exports.isClean=Symbol("isClean");es.exports.my=Symbol("my")});var fr=oe((Xw,Cd)=>{"use strict";var Bb=Li(),Ub=Qa(),Wb=ur(),{isClean:dr,my:Vb}=cr();function zb(e,t){let n=new e.constructor,r=[[e,n,t]];for(;r.length>0;){let[i,o,a]=r.pop();for(let l in i){if(!Object.prototype.hasOwnProperty.call(i,l)||l==="proxyCache")continue;let s=i[l],u=typeof s;if(l==="parent"&&u==="object")a&&(o[l]=a);else if(l==="source")o[l]=s;else if(Array.isArray(s)){let d=[];o[l]=d;for(let f of s){let m=new f.constructor;d.push(m),r.push([f,m,o])}}else{if(u==="object"&&s!==null){let d=new s.constructor;r.push([s,d,void 0]),s=d}o[l]=s}}}return n}function rt(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 mr=class e{get proxyOf(){return this}constructor(t={}){this.raws={},this[dr]=!1,this[Vb]=!0;for(let n of Object.keys(t))if(n!=="__proto__")if(n==="nodes"){this.nodes=[];for(let r of t[n])typeof r.clone=="function"&&r.parent?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=zb(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 Bb(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[dr]=!0}markDirty(){if(this[dr]){this[dr]=!1;let t=this;for(;t=t.parent;)t[dr]=!1}}next(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t+1]}positionBy(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:rt(n,this.source.start)};if(t.index)r=this.positionInside(t.index);else if(t.word){let o=n.slice(rt(n,this.source.start),rt(n,this.source.end)).indexOf(t.word);o!==-1&&(r=this.positionInside(o))}return r}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=rt(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:rt(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:rt(n,this.source.end)+1}:{column:r.column+1,line:r.line,offset:r.offset+1};if(t.word){let a=n.slice(rt(n,this.source.start),rt(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:rt(n,t.start)}:typeof t.index=="number"&&(r=this.positionInside(t.index)),t.end?i={column:t.end.column,line:t.end.line,offset:rt(n,t.end)}:typeof t.endIndex=="number"?i=this.positionInside(t.endIndex):typeof t.index=="number"&&(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 Ub().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=n==null;n=n||new Map;let i=[],o=[[this,i,0]];for(let l=0;l<o.length;l++){let[s,u,d]=o[l],f={};u[d]=f;for(let m in s){if(!Object.prototype.hasOwnProperty.call(s,m)||m==="parent"||m==="proxyCache")continue;let p=s[m];if(Array.isArray(p)){let g=[];f[m]=g;for(let y=0;y<p.length;y++){let x=p[y];typeof x=="object"&&x.toJSON?x.toJSON===e.prototype.toJSON?o.push([x,g,y]):g[y]=x.toJSON(null,n):g[y]=x}}else if(typeof p=="object"&&p.toJSON)p.toJSON===e.prototype.toJSON?o.push([p,f,m]):f[m]=p.toJSON(null,n);else if(m==="source"){if(p==null)continue;let g=n.get(p.input);g==null&&(g=n.size,n.set(p.input,g)),f[m]={end:p.end,inputId:g,start:p.start}}else f[m]=p}}let a=i[0];return r&&(a.inputs=[...n.keys()].map(l=>l.toJSON())),a}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(t=Wb){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)}};Cd.exports=mr;mr.default=mr});var hr=oe((Jw,Rd)=>{"use strict";var qb=fr(),pr=class extends qb{constructor(t){super(t),this.type="comment"}};Rd.exports=pr;pr.default=pr});var br=oe((Qw,Td)=>{"use strict";var $b=fr(),gr=class extends $b{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"}};Td.exports=gr;gr.default=gr});var ft=oe((Zw,Pd)=>{"use strict";var Md=hr(),Fd=br(),kd=fr(),{isClean:Nd,my:Ld}=cr(),ts,Dd,Id,ns;function jb(e){let t=e.slice();for(;t.length>0;){let n=t.pop();if(delete n.source,n.nodes){n.nodes=n.nodes.slice();for(let r of n.nodes)t.push(r)}}return e.slice()}function Kb(e){let t=[e];for(;t.length>0;){let n=t.pop();if(n[Nd]=!1,n.proxyOf.nodes)for(let r of n.proxyOf.nodes)t.push(r)}}var it=class e extends kd{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){let n=[this];for(;n.length>0;){let r=n.pop();if(r!==this&&r.cleanRaws!==e.prototype.cleanRaws){r.cleanRaws(t);continue}if(kd.prototype.cleanRaws.call(r,t),r.nodes)for(let i of r.nodes)n.push(i)}}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=jb(Dd(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 Fd(t)]}else if(t.selector||t.selectors)t=[new ns(t)];else if(t.name)t=[new ts(t)];else if(t.text)t=[new Md(t)];else throw new Error("Unknown node type in node creation");return t.map(i=>(i[Ld]||e.rebuild(i),i=i.proxyOf,i.parent&&i.parent.removeChild(i),i[Nd]&&Kb(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){if(!this.proxyOf.nodes)return;let n=[{iterator:this.getIterator(),node:this.proxyOf}];for(;n.length>0;){let{iterator:r,node:i}=n[n.length-1],o=i.indexes[r];if(o>=i.proxyOf.nodes.length){delete i.indexes[r],n.pop();let s=n[n.length-1];s&&(s.node.indexes[s.iterator]+=1);continue}let a=i.proxyOf.nodes[o],l;try{l=t(a,o)}catch(s){throw a.addToError(s)}if(l===!1){for(let s of n)delete s.node.indexes[s.iterator];return!1}a.walk&&a.proxyOf.nodes?n.push({iterator:a.getIterator(),node:a}):i.indexes[r]+=1}}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)}))}};it.registerParse=e=>{Dd=e};it.registerRule=e=>{ns=e};it.registerAtRule=e=>{ts=e};it.registerRoot=e=>{Id=e};Pd.exports=it;it.default=it;it.rebuild=e=>{let t=[e];for(;t.length>0;){let n=t.pop();if(n.type==="atrule"?Object.setPrototypeOf(n,ts.prototype):n.type==="rule"?Object.setPrototypeOf(n,ns.prototype):n.type==="decl"?Object.setPrototypeOf(n,Fd.prototype):n.type==="comment"?Object.setPrototypeOf(n,Md.prototype):n.type==="root"&&Object.setPrototypeOf(n,Id.prototype),n[Ld]=!0,n.nodes)for(let r of n.nodes)t.push(r)}}});var Di=oe((eC,Gd)=>{"use strict";var Od=ft(),pn=class extends Od{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)}};Gd.exports=pn;pn.default=pn;Od.registerAtRule(pn)});var Ii=oe((tC,Ud)=>{"use strict";var Yb=ft(),Hd,Bd,Wt=class extends Yb{constructor(t){super({type:"document",...t}),this.nodes||(this.nodes=[])}toResult(t={}){return new Hd(new Bd,this,t).stringify()}};Wt.registerLazyResult=e=>{Hd=e};Wt.registerProcessor=e=>{Bd=e};Ud.exports=Wt;Wt.default=Wt});var Vd=oe((nC,Wd)=>{var Xb="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",Jb=(e,t=21)=>(n=t)=>{let r="",i=n|0;for(;i-- >0;)r+=e[Math.random()*e.length|0];return r},Qb=(e=21)=>{let t="",n=e|0;for(;n-- >0;)t+=Xb[Math.random()*64|0];return t};Wd.exports={nanoid:Qb,customAlphabet:Jb}});var Pi=oe(()=>{});var Oi=oe(()=>{});var rs=oe(()=>{});var zd=oe(()=>{});var is=oe((dC,Kd)=>{"use strict";var{existsSync:Zb,readFileSync:ex,realpathSync:tx}=zd(),{dirname:Gi,isAbsolute:nx,join:rx,relative:ix,sep:ox}=Pi(),{SourceMapConsumer:qd,SourceMapGenerator:$d}=Oi();function jd(e){try{return tx(e)}catch{return e}}function ax(e){return Buffer?Buffer.from(e,"base64").toString():window.atob(e)}var xr=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=Gi(this.mapFile)),i&&(this.text=i)}consumer(){return this.consumerCache||(this.consumerCache=new qd(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 ax(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){if(!/\\.map$/i.test(t)||!n)return;let i=ix(jd(Gi(n)),jd(t));if(i===".."||i.startsWith(".."+ox)||nx(i))return}if(this.root=Gi(t),Zb(t))return this.mapFile=t,ex(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 qd)return $d.fromSourceMap(n).toString();if(n instanceof $d)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=rx(Gi(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)}};Kd.exports=xr;xr.default=xr});var yr=oe((mC,Zd)=>{"use strict";var{nanoid:sx}=Vd(),{isAbsolute:ss,resolve:ls}=Pi(),{SourceMapConsumer:lx,SourceMapGenerator:ux}=Oi(),{fileURLToPath:Yd,pathToFileURL:Hi}=rs(),Xd=Li(),cx=is(),os=Ja(),as=Symbol("lineToIndexCache"),dx=!!(lx&&ux),Jd=!!(ls&&ss);function Qd(e){if(e[as])return e[as];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[as]=n,n}var hn=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&&(!Jd||/^\\w+:\\/\\//.test(n.from)||ss(n.from)?this.file=n.from:this.file=ls(n.from)),Jd&&dx){let r=new cx(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 "+sx(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 f=n,m=r;if(typeof f.offset=="number"){s=f.offset;let p=this.fromOffset(s);n=p.line,r=p.col}else n=f.line,r=f.column,s=this.fromLineAndColumn(n,r);if(typeof m.offset=="number"){l=m.offset;let p=this.fromOffset(l);a=p.line,o=p.col}else a=m.line,o=m.column,l=this.fromLineAndColumn(m.line,m.column)}else if(r)s=this.fromLineAndColumn(n,r);else{s=n;let f=this.fromOffset(s);n=f.line,r=f.col}let d=this.origin(n,r,a,o);return d?u=new Xd(t,d.endLine===void 0?d.line:{column:d.column,line:d.line},d.endLine===void 0?d.column:{column:d.endColumn,line:d.endLine},d.source,d.file,i.plugin):u=new Xd(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&&(Hi&&(u.input.url=Hi(this.file).toString()),u.input.file=this.file),u}fromLineAndColumn(t,n){return Qd(this)[t-1]+n-1}fromOffset(t){let n=Qd(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:ls(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-1,line:t});if(!a.source)return!1;let l;if(typeof r=="number"){let f=o.originalPositionFor({column:i-1,line:r});f.source&&(l=f)}let s;ss(a.source)?s=Hi(a.source):s=new URL(a.source,this.map.consumer().sourceRoot||Hi(this.map.mapFile));let u={column:a.column+1,endColumn:l&&l.column+1,endLine:l&&l.line,line:a.line,url:s.toString()};if(s.protocol==="file:")if(Yd)u.file=Yd(s);else throw new Error("file: protocol is not available in this PostCSS build");let d=o.sourceContentFor(a.source);return d&&(u.source=d),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}};Zd.exports=hn;hn.default=hn;os&&os.registerInput&&os.registerInput(hn)});var gn=oe((fC,rm)=>{"use strict";var em=ft(),tm,nm,Tt=class extends em{constructor(t){super(t),this.type="root",this.nodes||(this.nodes=[])}normalize(t,n,r){let i=new Set;for(let a of Array.isArray(t)?t:[t])a&&typeof a=="object"&&!a.parent&&a.raws&&typeof a.raws.before<"u"&&i.add(a.raws);let o=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 a of o)i.has(a.raws)||(a.raws.before=n.raws.before)}return o}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 tm(new nm,this,t).stringify()}};Tt.registerLazyResult=e=>{tm=e};Tt.registerProcessor=e=>{nm=e};rm.exports=Tt;Tt.default=Tt;em.registerRoot(Tt)});var us=oe((pC,im)=>{"use strict";var Sr={comma(e){return Sr.split(e,[","],!0)},space(e){let t=[" ",`\n`," "];return Sr.split(e,t)},split(e,t,n){if(typeof e!="string")return[];let r=[],i="",o=!1,a=0,l=!1,s="",u=!1;for(let f of e)if(u?u=!1:f==="\\\\"?u=!0:l?f===s&&(l=!1):f===\'"\'||f==="\'"?(l=!0,s=f):f==="("?a+=1:f===")"?a>0&&(a-=1):a===0&&t.includes(f)&&(o=!0),o){let m=i.trim();(n||m!=="")&&r.push(m),i="",o=!1}else i+=f;let d=i.trim();return(n||d!=="")&&r.push(d),r}};im.exports=Sr;Sr.default=Sr});var Bi=oe((hC,am)=>{"use strict";var om=ft(),mx=us(),bn=class extends om{get selectors(){return mx.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=[])}};am.exports=bn;bn.default=bn;om.registerRule(bn)});var um=oe((gC,lm)=>{"use strict";var fx=Di(),px=hr(),hx=br(),gx=yr(),bx=is(),xx=gn(),yx=Bi();function sm(e,t){return e.inputs?e.inputs.map(n=>{let r={...n,__proto__:gx.prototype};return r.map&&(r.map={...r.map,__proto__:bx.prototype}),r}):t}function Sx(e,t,n){let r={...e};if(delete r.inputs,delete r.nodes,r.source){let{inputId:o,...a}=r.source;r.source=a,o!=null&&(r.source.input=t[o])}let i;if(r.type==="root")i=new xx(r);else if(r.type==="decl")i=new hx(r);else if(r.type==="rule")i=new yx(r);else if(r.type==="comment")i=new px(r);else if(r.type==="atrule")i=new fx(r);else throw new Error("Unknown node type: "+e.type);if(n){i.nodes=n;for(let o of n)o.parent=i}return i}function Ui(e,t){if(Array.isArray(e))return e.map(i=>Ui(i));let n,r=[{childIndex:0,children:[],inputs:sm(e,t),json:e}];for(;r.length>0;){let i=r[r.length-1],o=i.json.nodes;if(o&&i.childIndex<o.length){let l=o[i.childIndex];i.childIndex+=1,r.push({childIndex:0,children:[],inputs:sm(l,i.inputs),json:l});continue}r.pop();let a=Sx(i.json,i.inputs,o?i.children:void 0);r.length>0?r[r.length-1].children.push(a):n=a}return n}lm.exports=Ui;Ui.default=Ui});var ds=oe((bC,hm)=>{"use strict";var{dirname:Wi,relative:dm,resolve:mm,sep:fm}=Pi(),{SourceMapConsumer:pm,SourceMapGenerator:Vi}=Oi(),{pathToFileURL:cm}=rs(),vx=yr(),Ax=!!(pm&&Vi),Ex=!!(Wi&&mm&&dm&&fm),cs=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||Wi(t.file),i;this.mapOpts.sourcesContent===!1?(i=new pm(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="/*# sourceMappingURL=",n;for(;(n=this.css.lastIndexOf(t))!==-1;){let r=this.css.indexOf("*/",n+t.length);if(r===-1)break;for(;n>0&&this.css[n-1]===`\n`;)n--;this.css=this.css.slice(0,n)+this.css.slice(r+2)}}}}generate(){if(this.clearAnnotation(),Ex&&Ax&&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=Vi.fromSourceMap(t,{ignoreInvalidMapping:!0})}else this.map=new Vi({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 Vi({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 d=s.parent||{raws:{}};(!(s.type==="decl"||s.type==="atrule"&&!s.nodes)||s!==d.last||d.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?Wi(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(r=Wi(mm(r,this.mapOpts.annotation)));let i=dm(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 vx(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(cm){let r=cm(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;fm==="\\\\"&&(t=t.replace(/\\\\/g,"/"));let r=encodeURI(t).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(t,r),r}};hm.exports=cs});var xm=oe((xC,bm)=>{"use strict";var zi=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,qi=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,_x=/.[\\r\\n"\'(/\\\\]/,gm=/[\\da-f]/i;bm.exports=function(t,n={}){let r=t.css.valueOf(),i=n.ignoreErrors,o,a,l,s,u,d,f,m,p,g,y=r.length,x=0,w=[],k=[],C=-1;function N(){return x}function O(E){throw t.error("Unclosed "+E,x)}function F(){return k.length===0&&x>=y}function S(E){if(k.length)return k.pop();if(x>=y)return;let T=E?E.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);d=["space",r.slice(x,s)],x=s-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let L=String.fromCharCode(o);d=[L,L,x];break}case 40:{if(g=w.length?w.pop()[1]:"",p=r.charCodeAt(x+1),g==="url"&&p!==39&&p!==34&&p!==32&&p!==10&&p!==9&&p!==12&&p!==13){s=x;do{if(f=!1,s=r.indexOf(")",s+1),s===-1)if(i||T){s=x;break}else O("bracket");for(m=s;r.charCodeAt(m-1)===92;)m-=1,f=!f}while(f);d=["brackets",r.slice(x,s+1),x,s],x=s}else x<=C?d=["(","(",x]:(s=r.indexOf(")",x+1),a=r.slice(x,s+1),s===-1||_x.test(a)?(C=s===-1?y:s,d=["(","(",x]):(d=["brackets",a,x,s],x=s));break}case 39:case 34:{u=o===39?"\'":\'"\',s=x;do{if(f=!1,s=r.indexOf(u,s+1),s===-1)if(i||T){s=x+1;break}else O("string");for(m=s;r.charCodeAt(m-1)===92;)m-=1,f=!f}while(f);d=["string",r.slice(x,s+1),x,s],x=s;break}case 64:{zi.lastIndex=x+1,zi.test(r),zi.lastIndex===0?s=r.length-1:s=zi.lastIndex-2,d=["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,gm.test(r.charAt(s)))){for(;gm.test(r.charAt(s+1));)s+=1;r.charCodeAt(s+1)===32&&(s+=1)}d=["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||T?s=r.length:O("comment")),d=["comment",r.slice(x,s+1),x,s],x=s):(qi.lastIndex=x+1,qi.test(r),qi.lastIndex===0?s=r.length-1:s=qi.lastIndex-2,d=["word",r.slice(x,s+1),x,s],w.push(d),x=s);break}}return x++,d}function v(E){k.push(E)}return{back:v,endOfFile:F,nextToken:S,position:N}}});var Am=oe((yC,vm)=>{"use strict";var wx=Di(),Cx=hr(),Rx=br(),Tx=gn(),ym=Bi(),kx=xm(),Sm={empty:!0,space:!0};function Mx(e){for(let t=e.length-1;t>=0;t--){let n=e[t],r=n[3]||n[2];if(r)return r}}function ms(e,t,n){let r="";for(let i=t;i<n;i++)r+=e[i][1];return r}var fs=class{constructor(t){this.input=t,this.root=new Tx,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 wx;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 Cx;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=kx(this.input)}decl(t,n){let r=new Rx;this.init(r,t[0][2]);let i=t[t.length-1];i[0]===";"&&(this.semicolon=!0,t.pop()),r.source.end=this.getPosition(i[3]||i[2]||Mx(t)),r.source.end.offset++;let o=0;for(;t[o][0]!=="word";)o===t.length-1&&this.unknownWord([t[o]]),o++;r.raws.before+=ms(t,0,o),r.source.start=this.getPosition(t[o][2]);let a=o;for(;o<t.length;){let m=t[o][0];if(m===":"||m==="space"||m==="comment")break;o++}r.prop=ms(t,a,o);let l=o,s;for(;o<t.length&&(s=t[o],o++,s[0]!==":");)s[0]==="word"&&/\\w/.test(s[1])&&this.unknownWord([s]);r.raws.between=ms(t,l,o),(r.prop[0]==="_"||r.prop[0]==="*")&&(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));let u=o;for(;o<t.length;){let m=t[o][0];if(m!=="space"&&m!=="comment")break;o++}let d=t.slice(u,o);t=t.slice(o),this.precheckMissedSemicolon(t);for(let m=t.length-1;m>=0;m--){if(s=t[m],s[1].toLowerCase()==="!important"){r.important=!0;let p=this.stringFrom(t,m);p=this.spacesFromEnd(t)+p,p!==" !important"&&(r.raws.important=p);break}else if(s[1].toLowerCase()==="important"){let p=t.slice(0),g="";for(let y=m;y>0;y--){let x=p[y][0];if(g.trim().startsWith("!")&&x!=="space")break;g=p.pop()[1]+g}g.trim().startsWith("!")&&(r.important=!0,r.raws.important=g,t=p)}if(s[0]!=="space"&&s[0]!=="comment")break}t.some(m=>m[0]!=="space"&&m[0]!=="comment")&&(r.raws.between+=d.map(m=>m[1]).join(""),d=[]),this.raw(r,"value",d.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 ym;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++)}}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,d,f;for(let m=0;m<l;m+=1)o=r[m],a=o[0],a==="space"&&m===l-1&&!i?u=!1:a==="comment"?(f=r[m-1]?r[m-1][0]:"empty",d=r[m+1]?r[m+1][0]:"empty",!Sm[f]&&!Sm[d]?s.slice(-1)===","?u=!1:s+=o[1]:u=!1):s+=o[1];if(!u){let m=r.reduce((p,g)=>p+g[1],"");t.raws[n]={raw:m,value:s}}t[n]=s}rule(t){t.pop();let n=new ym;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})}};vm.exports=fs});var ji=oe((SC,Em)=>{"use strict";var Fx=ft(),Nx=yr(),Lx=Am();function $i(e,t){let n=new Nx(e,t),r=new Lx(n);try{r.parse()}catch(i){throw i}return r.root}Em.exports=$i;$i.default=$i;Fx.registerParse($i)});var ps=oe((vC,_m)=>{"use strict";var Dx=ft(),{my:Ix}=cr(),vr=class{constructor(t,n={}){if(this.type="warning",this.text=t,n.node&&n.node.source){n.node[Ix]||Dx.rebuild(n.node);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}};_m.exports=vr;vr.default=vr});var Ki=oe((AC,wm)=>{"use strict";var Px=ps(),Ar=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 Px(t,n);return this.messages.push(r),r}warnings(){return this.messages.filter(t=>t.type==="warning")}};wm.exports=Ar;Ar.default=Ar});var hs=oe((EC,Rm)=>{"use strict";var Cm={};Rm.exports=function(t){Cm[t]||(Cm[t]=!0,typeof console<"u"&&console.warn&&console.warn(t))}});var xs=oe((wC,Fm)=>{"use strict";var Ox=ft(),Gx=Ii(),Hx=ds(),Bx=ji(),Tm=Ki(),Ux=gn(),Wx=ur(),{isClean:Ye,my:Vx}=cr(),_C=hs(),zx={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},qx={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},$x={Once:!0,postcssPlugin:!0,prepare:!0},xn=0;function Er(e){return typeof e=="object"&&typeof e.then=="function"}function gs(e){let t=!1,n=zx[e.type];return e.type==="decl"?t=e.prop.toLowerCase():e.type==="atrule"&&(t=e.name.toLowerCase()),t&&e.append?[n,n+"-"+t,xn,n+"Exit",n+"Exit-"+t]:t?[n,n+"-"+t,n+"Exit",n+"Exit-"+t]:e.append?[n,xn,n+"Exit"]:[n,n+"Exit"]}function km(e){let t;return e.type==="document"?t=["Document",xn,"DocumentExit"]:e.type==="root"?t=["Root",xn,"RootExit"]:t=gs(e),{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function Mm(e){let t=[e];for(;t.length>0;){let n=t.pop();if(n[Ye]=!1,n.nodes)for(let r of n.nodes)t.push(r)}return e}var bs={},kt=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=Mm(n);else if(n instanceof e||n instanceof Tm)i=Mm(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=Bx;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[Vx]&&Ox.rebuild(i)}this.result=new Tm(t,i,r),this.helpers={...bs,postcss:bs,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(!qx[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!$x[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=[km(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=Wx;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 Hx(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;n.descending&&(n.descending=!1,r.indexes[a]+=1);let l;for(;l=r.nodes[r.indexes[a]];){if(!l[Ye]){l[Ye]=!0,n.descending=!0,t.push(km(l));return}r.indexes[a]+=1}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===xn){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=[{eventIndex:0,events:gs(t),iterator:0,node:t}];for(;n.length>0;){let r=n[n.length-1],i=r.node;if(r.iterator!==0){let o=r.iterator;r.descending&&(r.descending=!1,i.indexes[o]+=1);let a,l=!1;for(;a=i.nodes[i.indexes[o]];){if(!a[Ye]){a[Ye]=!0,r.descending=!0,n.push({eventIndex:0,events:gs(a),iterator:0,node:a}),l=!0;break}i.indexes[o]+=1}if(l)continue;r.iterator=0,delete i.indexes[o]}if(r.eventIndex<r.events.length){let o=r.events[r.eventIndex];if(r.eventIndex+=1,o===xn)i.nodes&&i.nodes.length&&(r.iterator=i.getIterator());else{let a=this.listeners[o];a&&this.visitSync(a,i.toProxy())&&n.pop()}continue}n.pop()}}warnings(){return this.sync().warnings()}};kt.registerPostcss=e=>{bs=e};Fm.exports=kt;kt.default=kt;Ux.registerLazyResult(kt);Gx.registerLazyResult(kt)});var Lm=oe((RC,Nm)=>{"use strict";var jx=ds(),Kx=ji(),Yx=Ki(),Xx=ur(),CC=hs(),_r=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=Kx;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=Xx;this.result=new Yx(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 jx(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[]}};Nm.exports=_r;_r.default=_r});var Im=oe((TC,Dm)=>{"use strict";var Jx=Ii(),Qx=xs(),Zx=Lm(),ey=gn(),Vt=class{constructor(t=[]){this.version="8.5.28",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 Zx(this,t,n):new Qx(this,t,n)}use(t){return this.plugins=this.plugins.concat(this.normalize([t])),this}};Dm.exports=Vt;Vt.default=Vt;ey.registerProcessor(Vt);Jx.registerProcessor(Vt)});var Vm=oe((kC,Wm)=>{"use strict";var Pm=Di(),Om=hr(),ty=ft(),ny=Li(),Gm=br(),Hm=Ii(),ry=um(),iy=yr(),oy=xs(),ay=us(),sy=fr(),ly=ji(),ys=Im(),uy=Ki(),Bm=gn(),Um=Bi(),cy=ur(),dy=ps();function ue(...e){return e.length===1&&Array.isArray(e[0])&&(e=e[0]),new ys(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("zh")&&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 ys().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=cy;ue.parse=ly;ue.fromJSON=ry;ue.list=ay;ue.comment=e=>new Om(e);ue.atRule=e=>new Pm(e);ue.decl=e=>new Gm(e);ue.rule=e=>new Um(e);ue.root=e=>new Bm(e);ue.document=e=>new Hm(e);ue.CssSyntaxError=ny;ue.Declaration=Gm;ue.Container=ty;ue.Processor=ys;ue.Document=Hm;ue.Comment=Om;ue.Warning=dy;ue.AtRule=Pm;ue.Result=uy;ue.Input=iy;ue.Rule=Um;ue.Root=Bm;ue.Node=sy;oy.registerPostcss(ue);Wm.exports=ue;ue.default=ue});function ni(){return globalThis}function I(e,t){if(typeof window>"u")return;let n=ni(),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 c0=["seconds-time","rational-fps","seek-keep-playing","composition-manifest-v1","runtime-data"];function d0(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 m0(e){let t=Number.isFinite(e)&&e>0?e:30,n=Number.isInteger(t)?1:1e6,r=Math.round(t*n),i=d0(r,n);return{numerator:r/i,denominator:n/i}}function Uo(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 ri(e){return{protocolVersion:1,capabilities:c0,fps:m0(e)}}function f0(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function eu(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=Uo(n.fps);return r===null||!f0(n.capabilities)?{status:"unsupported",code:"invalid_protocol_metadata",receivedVersion:n.protocolVersion}:{status:"supported",fps:r,metadata:n}}var tu=30;function nu(e){tu=Number.isFinite(e)&&e>0?e:30}function xe(e){try{window.parent.postMessage({...e,...ri(tu)},"*")}catch(t){I("bridge.postMessage",t)}}var p0=new Map(Object.entries({play:(e,t)=>t.onPlay(),pause:(e,t)=>t.onPause(),"stop-media":(e,t)=>t.onStopMedia(),seek:(e,t)=>t.onSeek(h0(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=>b0(e),"set-runtime-data":(e,t)=>{typeof e.channel=="string"&&t.onSetRuntimeData?.(e.channel,e.payload,e.requestId)},"clear-runtime-data":(e,t)=>{typeof e.channel=="string"&&t.onClearRuntimeData?.(e.channel,e.requestId)}}));function h0(e,t){let n=Number(e.timeSeconds);if(Number.isFinite(n))return Math.max(0,n);let i=Uo(e.fps)??t.getCanonicalFps();return Math.max(0,Number(e.frame??0))/i}function g0(e){let t=eu(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 b0(e){let t=e.selectors,n=e.duration||800;t&&x0(t,n)}function ru(e){let t=n=>{if(n.source!==window.parent&&n.source!==window)return;let r=n.data;if(!r||r.source!=="hf-parent"||r.type!=="control"||g0(r))return;let i=r.action;if(typeof i!="string")return;let o=p0.get(i);o&&o(r,e)};return window.addEventListener("message",t),xe({source:"hf-preview",type:"ready"}),t}function x0(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){I("bridge.flashElements.querySelector",r)}}var vt=(e,t,n)=>e>=t&&e<n;var ii=(e,t,n,r)=>vt(e,t,n)||e>=t&&r>0&&n>=r-1e-6;var Wo=null;function iu(e){Wo=e}function He(e,t){if(Wo)try{Wo({source:"hf-preview",type:"analytics",event:e,properties:t??{}})}catch(n){I("runtime.analytics.site1",n)}}function y0(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 Qt(e){return`--${y0(e)}`}function ou(e){let t=new Map;for(let n of e){let r=Qt(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 su(){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,Pn(i));let n=ai(),r={...t,...n};for(let i of e)zo(i,r);return r}var au=new Set;function lu(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 S0(e,t){return t?.trim()||e.getAttribute("data-composition-id")?.trim()||e.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")?.trim()||"composition"}function v0(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 A0(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=v0(e);return r.length===0||r.some(i=>String(i)===String(n))?null:{id:e.id,value:n,allowed:r}}function zo(e,t,n){if(!e)return;let r=lu(e);if(r.length===0)return;let i=S0(e,n);for(let o of r){let a=A0(o,t);if(!a)continue;let l=`${i}|${a.id}|${String(a.value)}`;if(au.has(l))continue;au.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 Pn(e){let t={};for(let n of lu(e))typeof n.id!="string"||!("default"in n)||(t[n.id]=n.default);return t}var Vo="data-hf-css-vars";function oi(e){return"style"in e&&typeof e.style?.setProperty=="function"}function qo(e,t){if(!oi(e))return;let n=[];for(let[r,i]of Object.entries(t))if(typeof i=="string"&&i!==""||typeof i=="number"){let o=Qt(r);e.style.setProperty(o,String(i)),n.push(o)}n.length>0&&e.setAttribute(Vo,n.join(" "))}function uu(e,t,n){let r={};for(let[i,o]of Object.entries(t)){let a=Qt(i);((oi(e)?e.style.getPropertyValue(a):"")||(n?n.getComputedStyle(e).getPropertyValue(a):"")).trim()===""&&(r[i]=o)}return r}function cu(e){if(!oi(e))return;let t=e.getAttribute(Vo);if(t){for(let n of t.split(" "))n.startsWith("--")&&e.style.removeProperty(n);e.removeAttribute(Vo)}}function du(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=ai(),r=[];for(let i of t)r.push(...E0(i,n,e.defaultView));for(let i of ou(r))console.warn(`composition variables ${i.join(", ")} collapse to the same CSS property ${Qt(i[0]??"")} \\u2014 rename one to avoid cross-talk`)}function E0(e,t,n){if(!oi(e))return[];let r=Pn(e),i={};for(let[o,a]of Object.entries(r)){if(o in t)continue;let l=Qt(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 qo(e,i),Object.keys(r)}function mu(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 ai(){if(typeof window>"u")return{};let e=window.__hfVariables;return!e||typeof e!="object"||Array.isArray(e)?{}:e}var fu="http://www.w3.org/1999/xhtml";function ke(e){return e!=null&&e.nodeType===1}function Ae(e){return ke(e)&&e.namespaceURI===fu}function On(e,t){return Ae(e)&&e.localName===t}function fe(e){return On(e,"video")}function $o(e){return On(e,"audio")}function he(e){return fe(e)||$o(e)}function Le(e){return On(e,"img")}function pu(e){return On(e,"style")}function hu(e){return On(e,"link")}function jo(e){return ke(e)&&(e.namespaceURI===fu||e.namespaceURI==="http://www.w3.org/2000/svg")}function gu(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,d)=>{let f=null;try{f=u.effect?.getComputedTiming?.()??null}catch(p){I("runtime.adapters.css.site5",p)}if(!f)return{};let m=Number(f.endTime);return Number.isFinite(m)?{endSeconds:d+m/1e3}:{unbounded:!0}},o=(u,d)=>{for(let f of u){try{f.currentTime=d}catch(m){I("runtime.adapters.css.site1",m)}try{f.pause()}catch(m){I("runtime.adapters.css.site2",m)}}},a=u=>{for(let d of u)try{d.play()}catch(f){I("runtime.adapters.css.site3",f)}},l=u=>{for(let d of u)try{d.pause()}catch(f){I("runtime.adapters.css.site4",f)}},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 d of u){if(!Ae(d))continue;let f=window.getComputedStyle(d);!f.animationName||f.animationName==="none"||t.push({el:d,baseDelay:d.style.animationDelay||"",basePlayState:d.style.animationPlayState||"",animations:n(d)})}},getInferredDurationSeconds:()=>{let u=0;for(let d of t){if(!d.el.isConnected)continue;let f=r(d.el);for(let m of n(d.el)){let p=i(m,f);p.endSeconds!=null&&(u=Math.max(u,p.endSeconds))}}return u>0?u:null},seek:u=>{let d=Number(u.time)||0;for(let f of t){if(!f.el.isConnected)continue;let m=r(f.el),p=Math.max(0,d-m)*1e3,g=f.animations;if(g.length>0){o(g,p);continue}f.el.style.animationPlayState="paused",f.el.style.animationDelay=`-${(p/1e3).toFixed(3)}s`}},pause:()=>{for(let u of t){if(!u.el.isConnected)continue;let d=u.animations;d.length>0&&l(d),s(u)}},play:()=>{for(let u of t)u.el.isConnected&&(s(u),a(u.animations))},revert:()=>{t=[]}}}function bu(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 xu(){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){I("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){I("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){I("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){I("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function Su(){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){I("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(Ko(r))r.goToAndStop(t*1e3,!1);else if(Yo(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??0;if(Number.isFinite(i)&&i>0){let o=Math.min(100,t/i*100);r.seek(o)}}}}catch(i){I("runtime.adapters.lottie.site2",i)}},pause:()=>{let e=window.__hfLottie;if(!(!e||e.length===0))for(let t of e)try{(Ko(t)||Yo(t))&&t.pause()}catch(n){I("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=_0(r)}catch(o){I("runtime.adapters.lottie.site4",o)}i!=null&&(n=!0,t=Math.max(t,i))}return n?t:null}}}function yu(e,t){return!Number.isFinite(e)||!e||e<=0||!Number.isFinite(t)||!t||t<=0?null:e/t}function _0(e){return Ko(e)?yu(e.totalFrames,e.frameRate):Yo(e)?Number.isFinite(e.duration)&&(e.duration??0)>0?e.duration??null:yu(e.totalFrames,e.frameRate):null}function Ko(e){return typeof e=="object"&&e!==null&&typeof e.goToAndStop=="function"}function Yo(e){return typeof e=="object"&&e!==null&&typeof e.pause=="function"&&("totalFrames"in e||"duration"in e)}var Xo=-1,si=new Set,Zt,Jo=0;function vu(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){I("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}));si.add(i),i.then(o=>{si.delete(i)&&o.status==="rejected"&&Zt===void 0&&(Zt={reason:o.reason})})}function li(e){e!==Xo&&(Xo=e,vu(e))}function ui(e){Xo=e,vu(e)}function Au(){return Jo>0}async function Qo(){Jo+=1;let e=Zt;try{for(await Promise.resolve();si.size>0;){let r=(await Promise.all([...si])).find(i=>i.status==="rejected");e===void 0&&r?.status==="rejected"&&(e={reason:r.reason})}let t=Zt;if(e===void 0&&(e=t),Zt===t&&(Zt=void 0),e)throw e.reason}finally{Jo-=1}}function Eu(){let e=null,t=0,n=null,r=null,i=null,o=null,a=()=>{if(typeof window>"u")return null;let d=window.THREE?.DefaultLoadingManager;return!d||typeof d!="object"||typeof d.itemsLoaded!="number"||typeof d.itemsTotal!="number"?null:d},l=u=>{o||u.itemsTotal<=u.itemsLoaded||(o=new Promise(d=>{u.onLoad=function(){try{i?.call(this)}finally{o=null,u.onLoad=i??null,d()}}}))},s=u=>{n!==u&&(n=u,r=u.onStart??null,i=u.onLoad??null,u.onStart=function(d,f,m){try{r?.call(this,d,f,m)}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,li(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 Ze(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 _u(){return Ze({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 wu(){return Ze({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 Cu(){return Ze({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 Ru(){return Ze({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 Tu(){return Ze({name:"d3",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfD3;return Array.isArray(e)?e:[]},waitFor:e=>e.end()})}var w0=250;function ku(){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&&(Au()||(window.__hfTypegpuTime=e,ui(e)))},w0))};return{name:"typegpu",discover:()=>{},seek:o=>{e=Math.max(0,Number(o.time)||0),t=e,window.__hfTypegpuTime=e,li(e)},pause:()=>{e==null&&(e=Math.max(0,t)),i()},play:()=>{r(),e=null},revert:()=>{r(),e=null,t=0}}}var Gn="data-hf-render-id",Mu="data-hf-group-render-id";function C0(e){return e.getAttribute(Gn)||e.id||null}var R0="__render_frame_",T0="__";function k0(e){return`${R0}${e}${T0}`}function M0(e){let t=C0(e);return t?k0(t):null}function At(e){let t=M0(e);if(!t)return null;let n=document.getElementById(t);return Le(n)?n:null}function Fu(e){let t=e.nextElementSibling;if(Le(t)&&t.classList.contains("__render_frame__")&&t.complete&&t.naturalWidth>0)return t;let n=At(e);return n&&n.complete&&n.naturalWidth>0?n:null}function Nu(){let e=globalThis.GPUQueue;if(!e?.prototype?.copyExternalImageToTexture)return;let t=e.prototype.copyExternalImageToTexture;e.prototype.copyExternalImageToTexture=function(n,r,i){if(fe(n?.source)){let o=Fu(n.source);if(o)return t.call(this,{...n,source:o},r,i)}return t.call(this,n,r,i)}}function Lu(){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(fe(u)){let d=Fu(u);d&&(l[s]=d)}return o.apply(this,l)};a.__hfVideoPatched=!0,r[i]=a}}}var Ht="data-fx-chain",_E=Ht.slice(5),Du=1,Hn=(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}),Zo=(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}),ci=(e=-40,t=40,n=0)=>({kind:"number",key:"gain",label:"Gain",unit:"dB",min:e,max:t,step:.1,default:n,automatable:!0}),Iu={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."},Ou=[{id:"gain",label:"Gain",group:"dynamics",description:"Raise or lower the whole signal. Automate it to duck under something else.",params:[ci(-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:[Hn("frequency","Frequency",1e3),ci(-40,40,0),Zo(1)],web:"biquad-peaking"},{id:"lowshelf",label:"Low Shelf",group:"filter",description:"Lift or drop everything below the corner frequency.",params:[Hn("frequency","Frequency",200,20,2e3),ci(-40,40,0)],web:"biquad-lowshelf"},{id:"highshelf",label:"High Shelf",group:"filter",description:"Lift or drop everything above the corner frequency.",params:[Hn("frequency","Frequency",4e3,500,2e4),ci(-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:[Hn("frequency","Cutoff",300,20,2e4),Zo(.707),Iu],web:"biquad-highpass"},{id:"lowpass",label:"Low-pass",group:"filter",description:"Remove high frequencies \\u2014 darkens or muffles a track.",params:[Hn("frequency","Cutoff",8e3,100,2e4),Zo(.707),Iu],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"}],ea=new Map(Ou.map(e=>[e.id,e]));function Bn(e){return ea.get(e)}var wE=Ou.map(e=>e.id);function Un(e,t){let n=ea.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 Et=class extends Error{constructor(t){super(t),this.name="AudioFxChainError"}};function Gu(e){let t;try{t=JSON.parse(e)}catch(i){throw new Et(`Chain file is not valid JSON: ${i.message}`)}if(typeof t!="object"||t===null)throw new Et("Chain file must be a JSON object.");let n=t;if(n.version!==Du)throw new Et(`Unsupported chain version: ${String(n.version)}`);if(!Array.isArray(n.nodes))throw new Et("Chain file is missing a `nodes` array.");let r=n.nodes.map(F0);return{version:Du,nodes:r}}function Wn(e){return e.nodes.filter(t=>t.enabled!==!1)}function F0(e,t){if(typeof e!="object"||e===null)throw new Et(`Node ${t} is not an object.`);let n=e;if(typeof n.type!="string"||!ea.has(n.type))throw new Et(`Node ${t} has unknown effect type: ${String(n.type)}`);return L0({type:n.type,id:di(n.id),fromCarve:Pu(n.fromCarve),fromPreset:di(n.fromPreset),label:di(n.label),fromEq:di(n.fromEq),fromLeveller:Pu(n.fromLeveller),presetAmount:N0(n.presetAmount),enabled:n.enabled!==!1,params:Un(n.type,n.params??void 0)})}function di(e){return typeof e=="string"&&e?e:void 0}function Pu(e){return e===!0?!0:void 0}function N0(e){if(!(typeof e!="number"||!Number.isFinite(e)))return Math.min(1,Math.max(0,e))}function L0(e){for(let t of Object.keys(e))e[t]===void 0&&delete e[t];return e}function D0(e){return 10**(e/20)}var ta=D0(12);function Be(e){return Number.isFinite(e)?Math.max(0,Math.min(ta,e)):1}function mi(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):1}function Hu(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,mi(o))}});try{return t()}finally{delete e.volume,i.call(e,mi(o))}}var en=Object.freeze({start:"data-start",duration:"data-duration",trackIndex:"data-track-index",derivedEnd:"data-end",legacyTrack:"data-layer"}),TE=Object.freeze([en.start,en.duration,en.trackIndex]),kE=Object.freeze([en.derivedEnd]),ME=Object.freeze([en.derivedEnd,en.legacyTrack]);function _t(e){if(e==null||e.trim()==="")return null;let t=Number(e);return Number.isFinite(t)?t:null}var Uu=/^[A-Za-z0-9_.:-]+$/;function Wu(e,t){let n=e.charCodeAt(t);return n>=48&&n<=57}function Bu(e,t){let n=t;for(;n>=0&&Wu(e,n);)n--;return n}function I0(e,t){let n=t;for(;n>=0&&(e[n]??"").trim()==="";)n--;return n}function P0(e){let t=e.length-1;if(!Wu(e,t))return null;let n=Bu(e,t);return e[n]==="."&&(n=Bu(e,n-1)),n+1}function O0(e){let t=P0(e);if(t==null)return null;let n=I0(e,t-1),r=e[n];if(r!=="+"&&r!=="-")return null;let i=e.slice(0,n).trim();if(!Uu.test(i))return null;let o=Number(e.slice(t));return Number.isFinite(o)?{refId:i,operator:r,magnitude:o}:null}function na(e){let t=(e??"").trim();if(!t)return null;let n=_t(t);if(n!=null)return{kind:"absolute",value:n};if(Uu.test(t))return{kind:"reference",refId:t,offset:0};let r=O0(t);return r?{kind:"reference",refId:r.refId,offset:r.operator==="-"?-r.magnitude:r.magnitude}:null}var Vu=e=>{let t=_t(e);return t!==null&&t>=0?t:null};function zu(e){return Vu(e("data-playback-start"))??Vu(e("data-media-start"))??0}var Vn=.1,zn=10;function ra(e){return Number.isFinite(e)&&e>0?Math.max(Vn,Math.min(zn,e)):1}function qu(e,t=1){let n=Number.parseFloat(e("data-playback-rate")??"");return ra(Number.isFinite(n)&&n>0?n:t)}function ia(e){let t=_t(e("data-duration"));return t!==null&&t>0?t:null}function $u(e,t){let n=ia(e);if(n!==null)return n;let r=_t(e("data-end"));return r!==null?r-t:null}var G0=3;function oa(e,t,n){return Number.isFinite(e)?Math.max(0,e-t)/ra(n):null}function aa(e){let{tag:t,authoredDurationSeconds:n,sourceDurationSeconds:r,mediaStartSeconds:i,playbackRate:o}=e;if(n!==null&&n>0)return{seconds:n,source:"authored"};if(t==="img")return{seconds:G0,source:"default"};if(r===null)return{seconds:null,source:"pending",reason:"source duration not yet probed"};let a=oa(r,i,o);return a===null?{seconds:null,source:"pending",reason:"source reported a non-finite duration"}:{seconds:a,source:"media"}}var dt="data-automation",BE=dt.slice(5),fi=1,H0=512,ct=class extends Error{constructor(t){super(t),this.name="AudioAutomationError"}},tn="volume",pi="rate";function $n(e){if(e===tn)return{kind:"volume"};if(e===pi)return{kind:"rate"};let t=e.split(".");if(t.length===3&&t[0]==="fx"&&t[1]===B0){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 B0="preset";var U0={min:0,max:1,step:.01,unit:"",label:"Amount",scale:"linear",default:1},hi={min:0,max:ta,step:.01,unit:"",label:"Volume",scale:"linear",default:1},ju={min:Vn,max:zn,step:.05,unit:"x",label:"Speed",scale:"log",default:1};function sa(e,t){let n=$n(e);if(!n)return null;if(n.kind==="volume")return hi;if(n.kind==="rate")return ju;if(n.kind==="preset")return t?.nodes.some(l=>l.fromPreset===n.presetId)?{...U0,label:`${n.presetId} \\xB7 Amount`}:null;let r=t?.nodes.find(a=>a.id===n.nodeId);if(!r)return null;let i=Bn(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 qn(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 W0(e){let t=qn(e);return t===null||t===0?0:Math.min(1,Math.max(-1,t))}function Ku(e,t){let n=qn(e),r=qn(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 V0(e){let t=W0(e?.curve),n=Ku(e?.viaX,e?.viaY);return{...t?{curve:t}:{},...n?{viaX:n.x,viaY:n.y}:{}}}function z0(e,t){let n=qn(e?.t),r=qn(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,...V0(e)}}function Yu(e,t){let n=e.map(i=>z0(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,H0)}function q0(e){let t=[];for(let n of e.lanes){if(!$n(n.target))continue;let r=n.target===tn?hi:n.target===pi?ju:null,i=Yu(n.points??[],r);i.length>0&&t.push({target:n.target,points:i})}return{version:fi,lanes:t}}function Xu(e,t){let n=[];for(let r of e.lanes){let i=sa(r.target,t);if(!i)continue;let o=Yu(r.points,i);o.length>0&&n.push({target:r.target,points:o})}return{version:fi,lanes:n}}function gi(e){let t;try{t=JSON.parse(e)}catch(i){throw new ct(`Automation is not valid JSON: ${i.message}`)}if(typeof t!="object"||t===null)throw new ct("Automation must be a JSON object.");let n=t;if(n.version!==fi)throw new ct(`Unsupported automation version: ${String(n.version)}`);if(!Array.isArray(n.lanes))throw new ct("Automation is missing a `lanes` array.");let r=n.lanes.map((i,o)=>{if(typeof i!="object"||i===null)throw new ct(`Lane ${o} is not an object.`);let a=i;if(typeof a.target!="string"||!$n(a.target))throw new ct(`Lane ${o} has an unreadable target: ${String(a.target)}`);if(!Array.isArray(a.points))throw new ct(`Lane ${o} is missing a \\`points\\` array.`);return{target:a.target,points:a.points}});return q0({version:fi,lanes:r})}function $0(e,t){return t?Math.pow(e,Math.pow(2,2*t)):e}function j0(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 K0(e,t,n){let{cx:r,cy:i,w:o}=j0(t,n),a=2-2*o,l=e*a-1+2*o*r,s=-e*a-2*o*r,u=Y0(l,s,e),d=1-u,f=d*d+2*o*u*d+u*u;return f>0?(2*o*i*u*d+u*u)/f:e}function Y0(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 X0(e,t){let n=Ku(t.viaX,t.viaY);return n?K0(Math.min(1,Math.max(0,e)),n.x,n.y):$0(e,t.curve)}function J0(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 mt(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 f=a+l>>1;r[f].t<=t?a=f:l=f}let s=r[a],u=r[l],d=u.t-s.t;return d<=0?u.v:J0(s.v,u.v,X0((t-s.t)/d,s),n)}function Ju(e){return e.points.length<=1||e.points.every(t=>t.v===e.points[0].v)}function Qu(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]=mt(e,t+l*s/(o-1),i);return a}var bi=new Map,Q0=64;function la(e,t=tn){let n=`${t}\\0${e}`,r=bi.get(n);if(r!==void 0)return r;let i=null;try{i=gi(e).lanes.find(o=>o.target===t)??null}catch{i=null}return bi.size>Q0&&bi.clear(),bi.set(n,i),i}function Zu(e,t){let n=(typeof e.getAttribute=="function"?e.getAttribute(dt):null)??"";if(!n)return null;let r=la(n);return!r||r.points.length===0?null:mt(r,t)}var ec=48,tc=new WeakMap;function Z0(e){let t=e.points,n=t[0].v,r=t[t.length-1].v,i=[0],o=[0],a=s=>{let u=i[i.length-1];if(s<=u)return;let d=mt(e,u,"log");i.push(s),o.push(o[o.length-1]+(d+mt(e,s,"log"))/2*(s-u))},l=Math.max(0,t[0].t);a(l);for(let s=1;s<t.length;s+=1){let u=t[s-1].t,d=t[s].t;if(!(d<=0))for(let f=1;f<=ec;f+=1)a(Math.max(u,0)+(d-u)*f/ec)}return{ts:Float64Array.from(i),ss:Float64Array.from(o),firstRate:n,lastRate:r}}function nc(e){let t=tc.get(e);return t||(t=Z0(e),tc.set(e,t)),t}function ua(e){return typeof e!="number"&&e.points.length>0}function rc(e,t){return typeof e=="number"?e:ua(e)?mt(e,t,"log"):1}function ic(e,t,n){let r=0,i=e.length-1;for(;i-r>1;){let o=r+i>>1;e[o]<=n?r=o:i=o}return t[r]+(t[i]-t[r])*(n-e[r])/(e[i]-e[r])}function xi(e,t){if(typeof e=="number")return t*e;if(!ua(e))return t;let{ts:n,ss:r,firstRate:i,lastRate:o}=nc(e),a=n.length-1;return t<=0?t*i:t>=n[a]?r[a]+(t-n[a])*o:ic(n,r,t)}function nn(e,t){if(typeof e=="number")return t/e;if(!ua(e))return t;let{ts:n,ss:r,firstRate:i,lastRate:o}=nc(e),a=n.length-1;return t<=0?t/i:t>=r[a]?n[a]+(t-r[a])/o:ic(r,n,t)}function eg(e){return e?la(e,pi):null}function oc(e,t){return eg(e)??t}function ac(){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 w=Number(x.currentTime);return Number.isFinite(w)&&w>0?w:0},d=(x,w)=>w<=0?x:x>=w?Math.max(0,x-w):x,f=(x,w)=>{let k=l.get(x);if(k)return k;let C={compositionTimeMs:w,animationTimeMs:e?d(u(x),w):u(x)};return l.set(x,C),C},m=(x,w)=>{if(!a.has(x)){a.add(x);let k=()=>{a.delete(x)};try{x.addEventListener("finish",k,{once:!0}),x.addEventListener("cancel",k,{once:!0})}catch(C){I("runtime.adapters.waapi.site4",C)}}f(x,w)},p=(x,w)=>{for(let k of x)m(k,w)},g=()=>{if(n||typeof Element>"u")return;let x=Element.prototype;if(typeof x.animate!="function"||x.__hfOriginalAnimate)return;let w=x.animate;try{Object.defineProperty(x,"__hfOriginalAnimate",{value:w,configurable:!0});let k=function(...C){let N=w.apply(this,C);return m(N,t),N};x.animate=k,r=x,i=w,o=k,n=!0}catch{}},y=x=>{let w=null;try{w=x.effect?.getComputedTiming?.()??null}catch(N){I("runtime.adapters.waapi.site4",N)}if(!w)return{};let k=Number(w.endTime);return Number.isFinite(k)?{endSeconds:(l.get(x)?.compositionTimeMs??0)/1e3+k/1e3}:{unbounded:!0}};return{name:"waapi",discover:()=>{e=!0,g(),p(s(),t)},seek:x=>{let w=Math.max(0,(Number(x.time)||0)*1e3);t=w,(!e||a.size>0)&&p(s(),e?w:0);for(let k of a){let C=e?f(k,w):f(k,0),N=C.animationTimeMs+Math.max(0,w-C.compositionTimeMs);try{k.currentTime=N}catch(O){I("runtime.adapters.waapi.site1",O)}try{k.pause()}catch(O){I("runtime.adapters.waapi.site2",O)}}},pause:()=>{e||p(s(),t);for(let x of a)try{x.pause()}catch(w){I("runtime.adapters.waapi.site3",w)}},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){I("runtime.adapters.waapi.site5",x)}r=void 0,i=void 0,o=void 0,n=!1},getInferredDurationSeconds:()=>{let x=0;for(let w of s()){let k=y(w);k.endSeconds!=null&&(x=Math.max(x,k.endSeconds))}return x>0?x:null}}}function Me(e){return _t(e)}function Pe(e){return qu(t=>e.getAttribute(t),he(e)?e.defaultPlaybackRate:1)}function wt(e){return oc(e.getAttribute("data-automation"),Pe(e))}function yi(e){return zu(t=>e.getAttribute(t))}function et(e,t){return tg(t,yi(e),wt(e))}function Si(e){let t=aa({tag:"video",authoredDurationSeconds:ia(n=>e.getAttribute(n)),sourceDurationSeconds:Number.isFinite(e.duration)?e.duration:null,mediaStartSeconds:yi(e),playbackRate:Pe(e)});return t.source==="media"?et(e,e.duration):t.seconds}function rn(e,t=0){return!Le(e)||!e.hasAttribute("data-start")&&!e.hasAttribute("data-track-index")?null:aa({tag:"img",authoredDurationSeconds:$u(n=>e.getAttribute(n),t),sourceDurationSeconds:null,mediaStartSeconds:0,playbackRate:1}).seconds}function tg(e,t,n){return typeof n=="number"?oa(e,t,n):Number.isFinite(e)?nn(n,Math.max(0,e-t)):null}var on="data-hf-authored-duration",an="data-hf-authored-end";function jn(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 sn(e){let t=jn(e.start);if(t==null)return null;let n=Math.max(0,t),r=jn(e.duration),i=jn(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=jn(e.end),l=jn(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 vi="data-hf-media-start-basis";function ng(e){return e?.trim().toLowerCase()==="global"?"global":"local"}function rg(e){return ng(e.basis)==="global"?e.authoredStart:e.hostStart+e.authoredStart}function sc(e){return e.hasAutoStart||e.authoredStart==null||e.hostStart<=0?e.ordinaryStart():rg({authoredStart:e.authoredStart,hostStart:e.hostStart,basis:e.basis})}function Ue(e){let t=e.timelineRegistry??{},n=e.includeAuthoredTimingAttrs??!1,r=e.documentRef??document,i=new WeakMap,o=new WeakMap,a=new Set,l=m=>{let p=r.getElementById(m);return p||(r.querySelector(`[data-composition-id="${CSS.escape(m)}"]`)??null)},s=m=>{let p=o.get(m);if(p!==void 0)return p;let g=null,y=sn({start:0,duration:m.getAttribute("data-duration"),authoredDuration:n?m.getAttribute("data-hf-authored-duration"):null});if(y?.duration!=null&&y.duration>0&&(g=y.duration),g==null||g<=0){let x=d(m,0),w=sn({start:x,end:m.getAttribute("data-end"),authoredEnd:n?m.getAttribute("data-hf-authored-end"):null});w?.duration!=null&&w.duration>0&&(g=w.duration)}if((g==null||g<=0)&&he(m)&&(g=et(m,m.duration)),(g==null||g<=0)&&(g=rn(m)),g==null||g<=0){let x=m.getAttribute("data-composition-id");if(x){let w=t[x]??null;if(w&&typeof w.duration=="function")try{let k=Number(w.duration());Number.isFinite(k)&&k>0&&(g=k)}catch(k){I("runtime.startResolver.site1",k)}}}return g!=null&&Number.isFinite(g)&&g>0?(o.set(m,g),g):(o.set(m,null),null)},u=(m,p)=>{if(m.hasAttribute("data-composition-id")){let y=m.parentElement?.closest("[data-composition-id]");return y?d(y,p):0}let g=m.closest("[data-composition-id]");return g?d(g,p):0},d=(m,p)=>{let g=i.get(m);if(g!==void 0)return g??p;if(a.has(m))return p;a.add(m);try{let y=na(m.getAttribute("data-start"));if(!y){if(m.hasAttribute("data-composition-id")){let N=m.parentElement;if(N&&(N.hasAttribute("data-composition-src")||N.hasAttribute("data-composition-id")||N.hasAttribute("data-composition-file"))){let O=d(N,p);return i.set(m,O),O}}return i.set(m,p),p}if(y.kind==="absolute"){let N=Math.max(0,y.value),O=Math.max(0,u(m,p)+N);return i.set(m,O),O}let x=l(y.refId);if(!x)return i.set(m,p),p;let w=d(x,0),k=s(x);if(k==null||k<=0){let N=Math.max(0,w+y.offset);return i.set(m,N),N}let C=Math.max(0,w+k+y.offset);return i.set(m,C),C}finally{a.delete(m)}};return{resolveStartForElement:(m,p=0)=>d(m,Math.max(0,p)),resolveDurationForElement:m=>s(m),resolveMediaStartForElement:m=>{let p=m.closest("[data-composition-id]"),g=p?d(p,0):0;return sc({authoredStart:Me(m.getAttribute("data-start")),hostStart:g,hasAutoStart:m.hasAttribute("data-hf-auto-start"),basis:m.getAttribute(vi),ordinaryStart:()=>d(m,g)})}}}function ig(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:Be(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:Be(n)}),i}function lc(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 og(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 ag(e){let t=Number.parseFloat(e??"");return Number.isFinite(t)?t:void 0}function sg(e,t){let n=Ue({timelineRegistry:window.__timelines,includeAuthoredTimingAttrs:!0}).resolveMediaStartForElement(e),r=Me(e.dataset.end)??void 0,i=Me(e.dataset.duration)??void 0,o=t;i!==void 0&&i>0?o=n+i:r!==void 0&&r>n&&(o=r);let a=ag(e.dataset.volume)??1;return{start:n,end:o,staticVolume:Be(a)}}function lg(e,t,n,r,{start:i,end:o,staticVolume:a}){let l=1/Math.min(60,Math.max(1,r)),s=Math.max(0,i),u=Math.min(n,o),d=Hu(e,()=>{e.volume=a;let m=[],p;for(let g=s;g<=u+1e-6;g=Math.min(u,g+l)){t(g);let y=Number(e.volume);if(Number.isFinite(y)){let x={time:Number(g.toFixed(6)),volume:Number(Be(y).toFixed(6))};og(m,p,x,g===u),p=x}if(g===u)break}return m});return d.some(m=>Math.abs(m.volume-a)>1e-4)?d:null}function uc(e,t,n,r,i={}){if(i.allowLiveTimelineSeek===!1||!t||!he(e)||n<=0)return;let o=u=>{try{typeof t.totalTime=="function"?t.totalTime(u,!0):typeof t.seek=="function"&&t.seek(u,!0)}catch{}},a=typeof t.totalTime=="function"?Number(t.totalTime()):typeof t.seek=="function"?Number(t.seek()):0,l=sg(e,n),s=lg(e,o,n,60,l);if(Number.isFinite(a)&&o(a),s){let u=ig(s,l.start,l.staticVolume);u.length>0&&r.set(e,u)}}var mc="data-fade-in",fc="data-fade-out",b_=mc.slice(5),x_=fc.slice(5),pc=Object.freeze({fadeIn:0,fadeOut:0});function ca(e){return Number.isFinite(e)&&e>0?e:0}function cc(e){return e==null||e===""?0:ca(Number.parseFloat(e))}function hc(e){return{fadeIn:cc(e.getAttribute(mc)),fadeOut:cc(e.getAttribute(fc))}}function ug(e,t){let n=ca(e.fadeIn),r=ca(e.fadeOut);if(!Number.isFinite(t)||t<=0)return{fadeIn:n,fadeOut:r};let i=n+r;if(i<=t)return{fadeIn:n,fadeOut:r};let o=t/i;return{fadeIn:n*o,fadeOut:r*o}}function gc(e,t,n){if(!Number.isFinite(e))return 1;let{fadeIn:r,fadeOut:i}=ug(n,t),o=1;return r>0&&(o*=dc(e/r)),i>0&&Number.isFinite(t)&&(o*=dc((t-e)/i)),o}function dc(e){return!Number.isFinite(e)||e<0?0:e>1?1:e}var ln="hf-audio-group",Ai="data-audio-group";function da(e){let t=e?.getAttribute("data-volume"),n=t?parseFloat(t):1;return Number.isFinite(n)?n:1}function ma(e,t){let n=Array.from(e?.querySelectorAll?.(`${ln}[${Gn}]`)??[]).find(i=>i.getAttribute(Gn)===t);if(n)return n;let r=e?.getElementById(t)??null;return r&&r.tagName?.toLowerCase()===ln?r:null}function Ei(e,t){let n=t?.getAttribute?.(Mu)??t?.getAttribute?.(Ai);return n?ma(e,n)?.hasAttribute("data-hidden")??!1:!1}function bc(e){return typeof e.tagName!="string"||e.tagName.toLowerCase()!=="audio"||typeof e.getAttribute!="function"?null:e.getAttribute(Ai)||null}function xc(e){let t="__hf-audio-group-inert";if(!e?.head||e.getElementById(t))return;let n=e.createElement("style");n.id=t,n.textContent=`${ln}{display:none!important}`,e.head.appendChild(n)}function tt(e){return yi(e)}function yc(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 Sc(e){let t=e?.elements??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=tt(a),u=Pe(a),d=wt(a),f=a.loop,m=Number.isFinite(a.duration)&&a.duration>0?a.duration:null,p=e?.resolveDurationSeconds?.(a)??Number.parseFloat(a.dataset.duration??"");(!Number.isFinite(p)||p<0)&&m!=null&&(p=Math.max(0,nn(d,m-s)));let g=Number.isFinite(p)&&p>=0,y=g?l+p:Number.POSITIVE_INFINITY,x=Number.parseFloat(a.dataset.volume??""),w={el:a,start:l,mediaStart:s,duration:g?p:Number.POSITIVE_INFINITY,end:y,volume:Number.isFinite(x)?x:null,playbackRate:u,rate:d,loop:f,sourceDuration:m,fades:hc(a)};r.push(w),a.tagName==="VIDEO"&&i.push(w),Number.isFinite(y)&&(o=Math.max(o,y))}return{timedMediaEls:n,mediaClips:r,videoClips:i,maxMediaEnd:o}}var pa=new WeakMap,_i=new WeakMap,Kn=new WeakMap,ha=new WeakSet,un=new WeakSet;function cg(e){if(un.has(e))return;un.add(e);let t=()=>un.delete(e);e.addEventListener("playing",t,{once:!0}),e.addEventListener("pause",t,{once:!0}),e.addEventListener("error",t,{once:!0})}var dg=3;function mg(e){return e.error!=null||e.networkState===dg}var ga=new WeakMap;function fa(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):1}function ba(e){pa.delete(e),_i.delete(e),Kn.delete(e),ha.delete(e),ga.delete(e)}function vc(e){let t=!!(e.outputMuted||e.userMuted);for(let n of e.clips){let{el:r}=n;if(!r.isConnected)continue;let i=n.rate??n.playbackRate,o=r.tagName==="VIDEO"&&!n.loop,a=vt(e.timeSeconds,n.start,n.end),l=o&&!a&&e.timeSeconds>=n.end&&ii(e.timeSeconds,n.start,n.end,e.getCompositionDuration()),s=xi(i,Math.min(e.timeSeconds,n.end)-n.start)+n.mediaStart,u=l||o&&n.sourceDuration!=null&&s>=n.sourceDuration&&a;u&&n.sourceDuration!=null&&(s=Math.min(s,n.sourceDuration));let d=_i.get(r),f=r.tagName==="AUDIO"&&(d===void 0||s<d-.04),m=!n.loop&&n.sourceDuration!=null&&s>=n.mediaStart&&s<n.sourceDuration&&(o||f);if((a||l)&&s>=0&&(!r.ended||n.loop||u||m)){if(_i.set(r,s),n.loop&&n.sourceDuration!=null&&n.sourceDuration>0){let P=n.sourceDuration-n.mediaStart;P>0&&s>=n.sourceDuration&&(s=n.mediaStart+(s-n.mediaStart)%P)}let y=fa(e.userVolume??1),x=Be(n.volume??1),w=ga.get(r),k=fa(r.volume),C,N=Zu(r,e.timeSeconds-n.start);if(N!==null)C=Be(N);else if(n.volumeKeyframes&&n.volumeKeyframes.length>0){let P=e.timeSeconds-n.start;C=Be(lc(n.volumeKeyframes,P))}else e.isWebAudioRouted?.(r)?C=x:w===void 0?C=x>1?x:k:Math.abs(k-w)>1e-4?C=k:C=x;let O=n.fades??pc;(O.fadeIn>0||O.fadeOut>0)&&(C*=gc(e.timeSeconds-n.start,n.duration,O));let S=r.closest("[data-hidden]")!==null||Ei(r.ownerDocument,r)?0:fa(C*y);r.volume=S,ga.set(r,S),e.onElementVolume?.(r,S,C),(t||e.isWebAudioOwned?.(r))&&(r.muted=!0),r.preload!=="auto"&&(r.preload="auto");try{r.playbackRate=rc(i,e.timeSeconds-n.start)*e.playbackRate}catch(P){I("runtime.media.site1",P)}let v=.04,E=2,T=r.currentTime||0,L=Math.abs(T-s),G=s-T,z=pa.get(r);pa.set(r,G);let X=z===void 0,M=!X&&Math.abs(G-z)>.5,V=L>3,te=r.tagName==="AUDIO"&&X&&T-s>v,B=u&&L>.001||r.ended&&m&&L>.001||te||L>.5&&(X||M||V),q=r.tagName==="VIDEO"&&!r.paused,$=z!==void 0&&Math.abs(G-z)<.004,J=!1;if(!q&&!B&&!X&&$&&L>v){let P=(Kn.get(r)??0)+1;Kn.set(r,P),P>=E&&(J=!0,Kn.set(r,0))}else L<=v&&Kn.set(r,0);let j=!q&&e.forceSync&&L>.02;if(B||J||j){if(!(r.tagName==="VIDEO"&&!!At(r))){try{r.currentTime=s}catch(U){I("runtime.media.site2",U)}if(Math.abs(r.currentTime-s)>.5&&!ha.has(r)){ha.add(r),r.load();try{r.currentTime=s}catch(U){I("runtime.media.site3",U)}}}un.delete(r)}u?r.paused||r.pause():e.playing&&r.paused&&!un.has(r)&&!mg(r)?(cg(r),r.play().catch(P=>{un.delete(r),(P&&typeof P=="object"&&"name"in P?String(P.name??""):"")==="NotAllowedError"&&e.onAutoplayBlocked?.()})):!e.playing&&!r.paused&&r.pause();continue}let g=vt(e.timeSeconds,n.start,n.end);ba(r),g&&_i.set(r,s),r.paused||r.pause()}}var fg="hf-proxy",Ac="runtime_media_proxy_fallback",Ec="runtime_media_proxy_unavailable",Yn=new WeakSet,_c=new WeakSet;function wi(e){return e.currentSrc||e.src}function xa(e){return window.__HF_EXPORT_RENDER_SEEK_CONFIG?!0:fe(e)&&!!At(e)}function ya(e){let t=wi(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 pg(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 hg(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 Sa(e,t){return t[e]??pg(e,t)??hg(e,t)}function gg(e,t){let n=new URL(e,document.baseURI);return n.searchParams.set(fg,t?t.hasAlpha?"vp8":"h264":"auto"),n.href}var bg={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 Bt(e,t,n){if(_c.has(e))return;_c.add(e);let r=bg[t];xe({source:"hf-preview",type:"diagnostic",code:Ec,details:{asset:n,codecName:null,reason:t,note:r}}),console.info(`[hyperframes] ${Ec}: "${n}" (${t}): ${r}`)}function va(e,t=null,n="reactive"){if(Yn.has(e))return;let r=wi(e),i;try{i=gg(r,t)}catch(l){I("runtime.mediaProxy.swap",l),Bt(e,"invalid_source_url",r);return}Yn.add(e),ba(e),e.src=i,e.load();let o=t?.codecName??null;xe({source:"hf-preview",type:"diagnostic",code:Ac,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] ${Ac}: "${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 wc(e){if(xa(e)||!fe(e)||Yn.has(e))return;let t=window.__HF_MEDIA_CODEC_MAP__;if(!t)return;let n=ya(e);if(n===null)return;let r=Sa(n,t);if(!r||!r.browserHostile)return;let i=r.representativeMime?e.canPlayType(r.representativeMime):"";i==="probably"||i==="maybe"||va(e,r,"proactive")}function Cc(e){if(xa(e)||!fe(e)||e.videoWidth!==0)return;let t=wi(e);if(Yn.has(e)){Bt(e,"proxy_playback_failed",t);return}let n=window.__HF_MEDIA_CODEC_MAP__;if(!n)return;let r=ya(e);if(r===null){Bt(e,"cross_origin",t);return}let i=Sa(r,n);if(i&&!i.browserHostile){Bt(e,"browser_safe_codec",t);return}va(e,i,"reactive")}function Rc(e){if(xa(e)||!fe(e))return;let t=wi(e);if(Yn.has(e)){Bt(e,"proxy_playback_failed",t);return}let n=window.__HF_MEDIA_CODEC_MAP__;if(!n)return;let r=ya(e);if(r===null){Bt(e,"cross_origin",t);return}let i=Sa(r,n);if(i&&!i.browserHostile){Bt(e,"browser_safe_codec",t);return}va(e,i,"tertiary")}var Ce=class extends Error{constructor(n,r=null){super(r==null?n:`${n} at line ${r}`);le(this,"lineNumber");this.name="CubeLutParseError",this.lineNumber=r}},xg=[0,0,0],yg=[1,1,1],Ci=64;function Sg(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 Ct(e,t){let n=Number(e);if(!Number.isFinite(n))throw new Ce(`Invalid number "${e}"`,t);return n}function Tc(e,t,n){if(e.length!==3)throw new Ce(`${t} expects three numbers`,n);return[Ct(e[0],n),Ct(e[1],n),Ct(e[2],n)]}function kc(e,t,n){if(!e)throw new Ce(`${t} expects a size`,n);let r=Number(e);if(!Number.isInteger(r)||r<2)throw new Ce(`${t} must be an integer greater than 1`,n);return r}function vg(e,t){if(t[0]<=e[0]||t[1]<=e[1]||t[2]<=e[2])throw new Ce("DOMAIN_MAX values must be greater than DOMAIN_MIN values")}function Ag(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 Eg(e){return/^[+-]?(?:\\d|\\.\\d)/.test(e)}function Mc(e,t={}){let n=t.maxSize??Ci,r=null,i=xg,o=yg,a=null,l=null,s=[],u=e.replace(/^\\uFEFF/,"").split(/\\r?\\n/);for(let f=0;f<u.length;f++){let m=f+1,p=Sg(u[f]??"").trim();if(!p)continue;let g=p.split(/\\s+/),y=(g[0]??"").toUpperCase(),x=g.slice(1);if(y==="TITLE"){r=Ag(p);continue}if(y==="DOMAIN_MIN"){i=Tc(x,y,m);continue}if(y==="DOMAIN_MAX"){o=Tc(x,y,m);continue}if(y==="LUT_3D_INPUT_RANGE"){if(x.length!==2)throw new Ce(`${y} expects two numbers`,m);let w=Ct(x[0],m),k=Ct(x[1],m);if(k<=w)throw new Ce("LUT_3D_INPUT_RANGE max must exceed min",m);i=[w,w,w],o=[k,k,k];continue}if(y==="LUT_1D_SIZE"){a=kc(x[0],y,m);continue}if(y==="LUT_3D_SIZE"){if(l=kc(x[0],y,m),l>n)throw new Ce(`LUT_3D_SIZE ${l} exceeds max ${n}`,m);continue}if(!Eg(y)){if(y.startsWith("LUT_"))throw new Ce(`Unsupported cube keyword ${y}`,m);continue}if(!l)throw a?new Ce("1D cube LUTs are not supported yet",m):new Ce("LUT data appears before LUT_3D_SIZE",m);if(g.length!==3)throw new Ce("LUT data rows must contain three numbers",m);s.push(Ct(g[0],m),Ct(g[1],m),Ct(g[2],m))}if(a&&l)throw new Ce("Mixed 1D and 3D cube LUTs are not supported yet");if(!l)throw a?new Ce("1D cube LUTs are not supported yet"):new Ce("Missing LUT_3D_SIZE");vg(i,o);let d=l*l*l;if(s.length!==d*3)throw new Ce(`Expected ${d} LUT rows for size ${l}, found ${s.length/3}`);return{title:r,size:l,domainMin:i,domainMax:o,data:new Float32Array(s)}}function _g(e){return Number.isFinite(e)?Math.min(1,Math.max(0,e)):0}function Xn(e){return Math.round(_g(e)*255)}function Aa(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]=Xn(e.data[s]??0),i[u+1]=Xn(e.data[s+1]??0),i[u+2]=Xn(e.data[s+2]??0),i[u+3]=255}return{width:n,height:r,data:i}}var Fc="rec709";var ge={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 Nc=["exposure","contrast","highlights","shadows","whites","blacks","temperature","tint","vibrance","saturation"],Lc=["shadows","midtones","highlights"],Dc=["master","red","green","blue"],Ic=["hueVsHue","hueVsSaturation","hueVsLuma"];var Pc=["vignette","vignetteMidpoint","vignetteRoundness","vignetteFeather","grain","grainSize","grainRoughness"],Oc=["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 z_=ge.unit,q_=ge.signedUnit,$_=ge.effects;var nt=1024,Jn=16;function Gc(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 Re(e,t){let n=e[t];if(n===void 0)throw new RangeError("Color curve points must be contiguous");return n}function wg(e){let t=[],n=[],r=Re(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=Re(n,0);if(e.length===2)return[i,i];let o=new Array(e.length);o[0]=Gc(Re(t,0),Re(t,1),i,Re(n,1)),o[o.length-1]=Gc(Re(t,t.length-1),Re(t,t.length-2),Re(n,n.length-1),Re(n,n.length-2));for(let a=1;a<e.length-1;a+=1){let l=Re(n,a-1),s=Re(n,a);if(l===0||s===0||Math.sign(l)!==Math.sign(s)){o[a]=0;continue}let u=Re(t,a-1),d=Re(t,a),f=2*d+u,m=d+2*u;o[a]=(f+m)/(f/l+m/s)}return o}function Hc(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 Cg(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 Rg(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 Bc(e,t,n,r,i){Cg(e,r,i);let o=wg(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>Re(e,l+1)[0];)l+=1;let d=Re(e,l),f=Re(e,l+1),m=Rg(u,d,f,Re(o,l),Re(o,l+1));a[s]=Math.min(i,Math.max(r,m))}return a}function cn(e,t=nt){if(Hc(e,t),e.length>Jn)throw new RangeError(`A color curve supports at most ${Jn} 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 Bc(e,t,n=>n/(t-1),0,1)}function _a(e,t,n,r=nt){if(e.length<3)throw new RangeError("A hue curve requires at least three points");if(e.length>Jn)throw new RangeError(`A hue curve supports at most ${Jn} 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 Hc(l,r),Bc(l,r,s=>s/r*360,t,n)}var Qn="data-color-grading",Zn="data-hf-color-grading-source-hidden",ki="data-hf-authored-opacity",qc="__hf_color_grading_",kg=Fc,Ra={exposure:0,contrast:0,highlights:0,shadows:0,whites:0,blacks:0,temperature:0,tint:0,vibrance:0,saturation:0},Ta={vignette:0,vignetteMidpoint:.5,vignetteRoundness:0,vignetteFeather:.65,grain:0,grainSize:.25,grainRoughness:.5},ka={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 Mi=Nc,$c=Lc,jc=Dc,Kc=Ic,Fa=Pc,Na=Oc,Uc={exposure:.03,contrast:-.12,highlights:-.1,shadows:.16,whites:-.04,blacks:.08,temperature:.13,vibrance:-.08,saturation:-.08},Wc={vignette:.18};function Te(e,t,n={},r={},i={},o=1){return{id:e,label:t,intensity:o,adjust:{...Ra,...n},details:{...Ta,...r},effects:{...ka,...i}}}var La=[Te("neutral","Neutral"),Te("warm-daylight","Warm Daylight",{exposure:.06,contrast:.07,highlights:-.06,shadows:.08,temperature:.18,saturation:.08}),Te("clean-studio","Clean Studio",{contrast:.08,highlights:-.08,shadows:.06,temperature:-.08,tint:.03,saturation:.04}),Te("skin-soft","Skin Soft",{exposure:.04,contrast:-.03,highlights:-.12,shadows:.12,temperature:.08,tint:.02,saturation:.04}),Te("food-pop","Food Pop",{exposure:.06,contrast:.1,shadows:.06,temperature:.14,vibrance:.1,saturation:.18}),Te("night-lift","Night Lift",{exposure:.08,contrast:.08,highlights:-.18,shadows:.2,blacks:-.08,saturation:.04},{vignette:.12}),Te("muted-editorial","Muted Editorial",{exposure:-.02,contrast:.08,highlights:-.08,shadows:.06,blacks:-.05,temperature:-.03,saturation:-.12},{vignette:.1}),Te("vintage-wash","Vintage Wash",Uc,Wc),Te("mono-clean","Mono Clean",{contrast:.12,highlights:-.04,shadows:.04,blacks:-.08,saturation:-1}),Te("mono-fade","Mono Fade",{contrast:-.04,highlights:-.06,shadows:.1,blacks:.12,saturation:-1},{vignette:.08}),Te("soft-boost","Soft Boost",{exposure:.06,contrast:-.04,highlights:-.14,shadows:.16,vibrance:.08,saturation:.1}),Te("bright-pop","Bright Pop",{exposure:.12,contrast:.12,whites:.08,blacks:-.04,vibrance:.08,saturation:.14}),Te("deep-contrast","Deep Contrast",{exposure:-.03,contrast:.2,highlights:-.08,shadows:-.08,blacks:-.12,saturation:.06}),Te("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),Te("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}),Te("home-movie-8mm","8mm Home Movie",Uc,{...Wc,vignette:.28,vignetteMidpoint:.54,vignetteFeather:.72,grain:.34,grainSize:.18,grainRoughness:.72},{filmArtifacts:.62},.72),Te("editorial-halftone","Editorial Halftone",{contrast:.04,saturation:.04},{},{halftone:.94,halftoneSize:.36}),Te("two-ink-print","Two-Ink Print",{contrast:.08,highlights:-.06,shadows:.04},{},{twoInkPrint:1,twoInkPrintSize:.42})],Mg=new Map(La.map(e=>[e.id,e])),Fg=/^\\$(?:\\{([A-Za-z0-9_.:-]+)\\}|([A-Za-z0-9_.:-]+))$/,Ng={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}},dn={hue:0,amount:0,level:0},Vc={amount:ge.unit,level:ge.signedUnit},Rt=[[0,0],[1,1]],mn=[],Lg={hueVsHue:ge.secondaryHueShift,hueVsSaturation:ge.signedUnit,hueVsLuma:ge.signedUnit},wa={center:0,range:180,softness:0},Ca={min:0,max:1,softness:.05},Dg={vignette:ge.unit,vignetteMidpoint:ge.unit,vignetteRoundness:ge.signedUnit,vignetteFeather:ge.unit,grain:ge.unit,grainSize:ge.unit,grainRoughness:ge.unit},Ma=ge.unit,Ig=ge.effects,Yc=["blur","pixelate","chromaBleed","tapeDamage","filmArtifacts","halftone","twoInkPrint","ascii","dither","bloom","monoScreen","scanlines","chromaticAberration","crtCurvature","digitalGlitch","engraving","crosshatch","kuwahara"];var Pg=La.filter(e=>Yc.some(t=>e.effects[t]>1e-4)),ew=La.filter(e=>!Pg.includes(e)),tw={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}},Xc=[{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 Og=/^#[0-9a-f]{6}$/i;function Gg(e){return!Array.isArray(e)||e.length<2||e.length>6||!e.every(t=>typeof t=="string"&&Og.test(t))?null:e.map(t=>t.toLowerCase())}function Ne(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ti(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,e)):0}function Jc(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Math.min(1,Math.max(0,n)):t}function De(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Ti(n,t.min,t.max):0}function Da(e,t=0){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?(n%360+360)%360:t}function Hg(e){let t=Ne(e)?e:{};return $c.reduce((n,r)=>{let i=Ne(t[r])?t[r]:{};return n[r]={hue:Da(i.hue,dn.hue),amount:De(i.amount??dn.amount,Vc.amount),level:De(i.level??dn.level,Vc.level)},n},{shadows:{...dn},midtones:{...dn},highlights:{...dn}})}function Bg(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)?[Ti(t,0,1),Ti(n,0,1)]:null}function Qc(e){return e.some((t,n)=>n>0&&t[0]===e[n-1]?.[0])}function Ug(e){(e[0]?.[0]??0)>0&&e.unshift([0,0]),(e.at(-1)?.[0]??1)<1&&e.push([1,1])}function Wg(e){if(!Array.isArray(e)||e.length<2)return Rt;let t=[];for(let n of e){let r=Bg(n);if(!r)return Rt;t.push(r)}return t.sort((n,r)=>n[0]-r[0]),Qc(t)||(Ug(t),t.length>16)?Rt:t}function Vg(e){let t=Ne(e)?e:{};return jc.reduce((n,r)=>(n[r]=Wg(t[r]),n),{master:Rt,red:Rt,green:Rt,blue:Rt})}function zg(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)?[Da(n),Ti(r,t.min,t.max)]:null}function qg(e,t){if(!Array.isArray(e)||e.length<3||e.length>16)return mn;let n=[];for(let r of e){let i=zg(r,t);if(!i)return mn;n.push(i)}return n.sort((r,i)=>r[0]-i[0]),Qc(n)?mn:n}function $g(e){let t=Ne(e)?e:{};return Kc.reduce((n,r)=>(n[r]=qg(t[r],Lg[r]),n),{hueVsHue:mn,hueVsSaturation:mn,hueVsLuma:mn})}function zc(e){let t=Ne(e)?e:{},n=De(t.min??Ca.min,Ma),r=De(t.max??Ca.max,Ma);return{min:Math.min(n,r),max:Math.max(n,r),softness:De(t.softness??Ca.softness,ge.secondarySoftRangeSoftness)}}function jg(e){let t=Ne(e)?e:{},n=De(t.range??wa.range,ge.secondaryHueRange);return{center:Da(t.center,wa.center),range:n,softness:De(t.softness??wa.softness,{min:ge.secondaryHueSoftness.min,max:ge.secondaryHueCombinedMax-n})}}function Kg(e){return{hueShift:De(e.hueShift??0,ge.secondaryHueShift),saturation:De(e.saturation??0,ge.signedUnit),luma:De(e.luma??0,ge.signedUnit),temperature:De(e.temperature??0,ge.signedUnit),tint:De(e.tint??0,ge.signedUnit)}}function Yg(e){return!Ne(e)||!Ne(e.key)||!Ne(e.correction)?null:{enabled:e.enabled!==!1,key:{hue:jg(e.key.hue),saturation:zc(e.key.saturation),luma:zc(e.key.luma)},correction:Kg(e.correction)}}function Xg(e){if(!Array.isArray(e))return[];let t=[];for(let n of e.slice(0,4)){let r=Yg(n);r&&t.push(r)}return t}function Jg(e){if(e==null)return null;let t=String(e).trim();return t||null}function Qg(e){if(e==null)return null;if(typeof e=="string"){let n=e.trim();return n?{src:n,intensity:1}:null}if(!Ne(e))return null;let t=e.src;return typeof t!="string"||t.trim()===""?null:{src:t.trim(),intensity:Jc(e.intensity,1)}}function Zg(e){if(typeof e=="string"){let t=e.trim();if(!t)return null;if(t.startsWith("{"))try{let n=JSON.parse(t);return Ne(n)?n:null}catch{return null}return{preset:t}}return Ne(e)?e:null}function eb(e,t){let n=e.trim().match(Fg);if(!n)return e;let r=n[1]??n[2]??"";return r&&Object.hasOwn(t,r)?t[r]:e}function Ri(e,t){if(typeof e=="string"){let r=eb(e,t);if(r!==e)return r;let i=e.trim();if(!i.startsWith("{"))return e;try{return Ri(JSON.parse(i),t)}catch{return e}}if(Array.isArray(e))return e.map(r=>Ri(r,t));if(!Ne(e))return e;let n={};for(let[r,i]of Object.entries(e))n[r]=Ri(i,t);return n}function tb(e){return e?Mg.get(e)??null:null}function Fi(e){let t=Zg(e);if(!t||t.enabled===!1)return null;let n=Jg(t.preset),r=tb(n),i=r?.adjust??Ra,o=r?.details??Ta,a=r?.effects??ka,l=Ne(t.adjust)?t.adjust:{},s=Ne(t.details)?t.details:{},u=Ne(t.effects)?t.effects:{},d=Mi.reduce((p,g)=>(p[g]=De(l[g]??i[g],Ng[g]),p),{...Ra}),f=Fa.reduce((p,g)=>(p[g]=De(s[g]??o[g],Dg[g]),p),{...Ta}),m=Na.reduce((p,g)=>(p[g]=De(u[g]??a[g],Ig[g]??Ma),p),{...ka});return{enabled:!0,preset:n,intensity:Jc(t.intensity,r?.intensity??1),adjust:d,wheels:Hg(t.wheels),curves:Vg(t.curves),hueCurves:$g(t.hueCurves),secondaries:Xg(t.secondaries),details:f,effects:m,palette:Gg(t.palette),lut:Qg(t.lut),colorSpace:typeof t.colorSpace=="string"&&t.colorSpace.trim()?t.colorSpace.trim():kg}}function Zc(e,t){return Fi(Ri(e,t))}function nb(e){return $c.some(t=>Math.abs(e[t].amount)>1e-4||Math.abs(e[t].level)>1e-4)}function Ia(e){return jc.some(t=>e[t].some(([n,r])=>Math.abs(n-r)>1e-4))}function Pa(e){return Kc.some(t=>e[t].some(([,n])=>Math.abs(n)>1e-4))}function Oa(e){return e.some(t=>t.enabled&&Object.values(t.correction).some(n=>Math.abs(n)>1e-4))}function ed(e){return e?.enabled?Math.abs(e.details.vignette)>1e-4||Math.abs(e.details.grain)>1e-4||Yc.some(n=>Math.abs(e.effects[n])>1e-4)?!0:e.intensity===0?!1:e.lut&&e.lut.intensity!==0?!0:Mi.some(n=>Math.abs(e.adjust[n])>1e-4)||(e.wheels?nb(e.wheels):!1)||(e.curves?Ia(e.curves):!1)||(e.hueCurves?Pa(e.hueCurves):!1)||(e.secondaries?Oa(e.secondaries):!1):!1}var rb=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),ib=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(",");function td(e){let t=!1,n=null,r=null,i=null,o=null;function a(S,v){try{window.dispatchEvent(new CustomEvent(S,{detail:v}))}catch(E){I("runtime.picker.site1",E)}}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 v=S.ownerDocument.defaultView;if(!v)return!1;let E=S;for(;E&&E!==document.body&&E!==document.documentElement;){let T=v.getComputedStyle(E);if(T.display==="none"||T.visibility==="hidden"||T.pointerEvents==="none")return!0;let L=Number.parseFloat(T.opacity);if(Number.isFinite(L)&&L<=.01&&!E.hasAttribute(Zn))return!0;E=E.parentElement}return!1}function d(S){if(!S||S===document.body||S===document.documentElement)return!1;let v=S.tagName.toLowerCase();return!(v==="script"||v==="style"||v==="link"||v==="meta"||S.classList.contains("__hf-pick-highlight")||S.closest(rb)||u(S))}function f(S){return!!S?.closest(ib)}function m(S){let v=S;if(v.id)return`#${CSS.escape(v.id)}`;let E=S.getAttribute("data-composition-id");if(E)return`[data-composition-id="${CSS.escape(E)}"]`;let T=S.getAttribute("data-composition-src");if(T)return`[data-composition-src="${CSS.escape(T)}"]`;let L=S.getAttribute("data-track-index");if(L)return`[data-track-index="${CSS.escape(L)}"]`;let G=S.tagName.toLowerCase(),z=S.parentElement;if(!z)return G;let X=z.querySelectorAll(`:scope > ${G}`);if(X.length===1)return G;for(let M=0;M<X.length;M+=1)if(X[M]===S)return`${G}:nth-of-type(${M+1})`;return G}function p(S){let v=S.tagName.toLowerCase(),E=(S.textContent??"").trim().replace(/\\s+/g," "),T=(L,G)=>L.length>G?`${L.slice(0,G-1)}\\u2026`:L;return v==="h1"||v==="h2"||v==="h3"?"Heading":v==="p"||v==="span"||v==="div"?E.length>0?T(E,56):"Text":v==="img"?"Image":v==="video"?"Video":v==="audio"?"Audio":v==="svg"?"Shape":S.getAttribute("data-composition-src")?"Composition":v==="section"?"Section":`${v.charAt(0).toUpperCase()}${v.slice(1)}`}function g(S,v,E){let T=typeof E=="number"&&E>0?E:8,L=[];if(document.elementsFromPoint)L=document.elementsFromPoint(S,v);else if(document.elementFromPoint){let X=document.elementFromPoint(S,v);L=X?[X]:[]}if(f(L[0]??null))return[];let G={},z=[];for(let[X,M]of L.entries()){if(!d(M))continue;let V=`${M.tagName}::${M.id||""}::${X}`;if(!G[V]&&(G[V]=!0,z.push(M),z.length>=T))break}return z}function y(S){let v=S.getBoundingClientRect(),E={};for(let L of Array.from(S.attributes))L.name.startsWith("data-")&&(E[L.name]=L.value);return{id:S.id||null,tagName:S.tagName.toLowerCase(),selector:m(S),label:p(S),boundingBox:{x:v.left,y:v.top,width:v.width,height:v.height},textContent:S.textContent?S.textContent.trim().slice(0,200):null,src:S.getAttribute("src")||S.getAttribute("data-composition-src")||null,dataAttributes:E}}function x(S,v,E){return g(S,v,E).map(y)}function w(S){if(!t)return;let E=g(S.clientX,S.clientY,1)[0]??(ke(S.target)?S.target:null);if(!d(E)||n===E)return;n&&n.classList.remove("__hf-pick-highlight"),n=E,E.classList.add("__hf-pick-highlight");let T=y(E);l(T),e.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:T})}function k(S){if(!t)return;S.preventDefault(),S.stopPropagation(),S.stopImmediatePropagation();let v=x(S.clientX,S.clientY,8);v.length!==0&&(l(v[0]??null),e.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:v,selectedIndex:0,point:{x:S.clientX,y:S.clientY}}))}function C(S){S.key==="Escape"&&(O(),e.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function N(){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",w,!0),document.addEventListener("click",k,!0),document.addEventListener("keydown",C,!0),a("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function O(){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",w,!0),document.removeEventListener("click",k,!0),document.removeEventListener("keydown",C,!0),a("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function F(){window.__HF_PICKER_API={enable:N,disable:O,isActive:()=>t,getHovered:()=>i,getSelected:()=>o,getCandidatesAtPoint:(S,v,E)=>Number.isFinite(S)&&Number.isFinite(v)?x(S,v,E):[],pickAtPoint:(S,v,E)=>{if(!Number.isFinite(S)||!Number.isFinite(v))return null;let T=x(S,v,8);if(!T.length)return null;let L=Math.max(0,Math.min(T.length-1,Number(E??0))),G=T[L]??null;return G?(s(G),e.postMessage({source:"hf-preview",type:"element-picked",elementInfo:G}),O(),G):null},pickManyAtPoint:(S,v,E)=>{if(!Number.isFinite(S)||!Number.isFinite(v))return[];let T=x(S,v,8);if(!T.length)return[];let L=[],G=Array.isArray(E)?E:[0];for(let z of G){let X=Math.max(0,Math.min(T.length-1,Math.floor(Number(z)))),M=T[X];if(!M)continue;L.some(te=>te.selector===M.selector&&te.tagName===M.tagName)||L.push(M)}return L.length?(s(L[0]??null),e.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:L}),O(),L):[]}},a("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:N,disablePickMode:O,installPickerApi:F}}var ob=["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 Ga(e){return Number.isFinite(e)&&e>0?e:30}function Ha(e){return Number.isFinite(e)&&e>0?e:0}function Ba(e,t){let n=Ga(t);return Math.floor(Ha(e)*n+1e-9)/n}function er(e,t,n){let r=Number.isInteger(n)?n:1;if(r<=1)return Ba(e,t);let i=Ga(t)*r;return Math.round(Ha(e)*i)/i}function Ua(e,t){let n=Ga(t),r=Ha(e),i=r*n,o=Math.round(i);return Math.abs(i-o)<=.001?o/n:r}function nd(e,t,n=ob){for(let r of n){let i=t.getPropertyValue(r);i&&e.setProperty(r,i)}}function tr(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&&I("runtime.player.nonConformantNum",{prop:t,actual:typeof r}),n)}function je(e,t){let n=e?.[t];if(typeof n=="function"){n.call(e);return}n!==void 0&&I("runtime.player.nonConformantVoid",{method:t,actual:typeof n})}function nr(e,t,n){if(e){for(let r of Object.values(e))if(!(!r||r===t))try{n(r)}catch(i){I("runtime.player.site1",i)}}}function rd(e,t,n,r){let i=er(t,n,r?.subFrameDivisions),o=r?.suppressEvents===!0;return je(e,"pause"),typeof e.totalTime=="function"?e.totalTime(i,o):typeof e.seek=="function"&&e.seek(i,o),i}function ab(e,t,n,r,i){let o=[];nr(e,t,a=>{je(a,"play"),o.push(a)});try{return rd(t,n,r,i)}finally{for(let a of o)try{je(a,"pause")}catch(l){I("runtime.player.site2",l)}}}function sb(e,t){nr(e,t,n=>{je(n,"play")})}function id(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?.()??tr(n,"duration",0))||0);r>0&&Math.max(0,tr(n,"time",0))>=r&&(je(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()),je(n,"play"),nr(e.getTimelineRegistry?.(),n,i=>{typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),je(i,"play")}),e.onDeterministicPlay(),e.setIsPlaying(!0),e.onShowNativeVideos(),e.onStatePost(!0)},pause:()=>{let n=e.getTimeline();if(!n)return;je(n,"pause"),nr(e.getTimelineRegistry?.(),n,i=>{je(i,"pause")});let r=Math.max(0,tr(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=ab(e.getTimelineRegistry?.(),i,o,e.getCanonicalFps());e.onDeterministicSeek(l),r?.keepPlaying&&a?(typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),je(i,"play"),nr(e.getTimelineRegistry?.(),i,s=>{typeof s.timeScale=="function"&&s.timeScale(e.getPlaybackRate()),je(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?(sb(e.getTimelineRegistry?.(),i),rd(i,n,o,r)):er(Math.max(0,Number(n)||0),o,r?.subFrameDivisions);e.onDeterministicSeek(a,r),e.setIsPlaying(!1),e.onSyncMedia(a,!1),e.onRenderFrameSeek(a),e.onStatePost(!0)},getTime:()=>tr(e.getTimeline(),"time",0),getDuration:()=>tr(e.getTimeline(),"duration",0),isPlaying:()=>e.getIsPlaying(),setPlaybackRate:n=>e.setPlaybackRate(n),getPlaybackRate:()=>e.getPlaybackRate()}}function od(){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 lb=new Set(["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"]);function Wa(e){return e.id||e.getAttribute("data-hf-id")||null}function ub(e){return Me(e)}function cb(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 db(e){return he(e)?Number.isFinite(e.duration)?et(e,e.duration):null:rn(e)}function mb(e,t,n,r){let i=ub(e.getAttribute("data-duration"));return i!=null&&i>0?i:cb(e,t)??db(e)??Math.max(0,n-r)}function fb(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 ad(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||lb.has(l.tagName))continue;let s=t.resolveStartForElement(l,0);if(mb(l,n,r,s)<=0)continue;let u={id:Wa(l)??`__clip-${a++}`,element:l,parentId:null,children:[]};i.set(l,u)}return fb(i),{roots:Array.from(i.values()).filter(l=>l.parentId===null)}}var Va="css:root",sd=["backdrop-filter","clip-path","filter","mask","mask-border-source","mask-image","perspective","rotate","scale","transform","translate","-webkit-mask-image"],pb=new Set([...sd,"contain","isolation","mask-border","mix-blend-mode","opacity"]),hb=new Set(["absolute","relative"]),gb=new Set(["flex","inline-flex","grid","inline-grid"]),bb=new Set(["layout","paint","strict","content"]),xb=new Set(["size","inline-size"]);function yb(e){return e.position==="fixed"||e.position==="sticky"}function Sb(e,t){if(t.zIndex==="auto"||t.zIndex==="")return!1;if(hb.has(t.position))return!0;let n=e.parentElement?e.ownerDocument.defaultView?.getComputedStyle(e.parentElement).display:null;return n!=null&&gb.has(n)}function vb(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:sd.some(r=>{let i=e.getPropertyValue(r);return i!==""&&i!=="none"})}function Ab(e){return e.getPropertyValue("contain").split(/\\s+/).some(n=>bb.has(n))?!0:xb.has(e.getPropertyValue("container-type"))}function Eb(e){return e.getPropertyValue("will-change").split(",").map(t=>t.trim()).some(t=>pb.has(t))}function _b(e,t){return yb(t)||Sb(e,t)||vb(t)||Ab(t)?!0:Eb(t)}function wb(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 Ni(e){let t=e.ownerDocument.defaultView;if(!t)return Va;let n=e.parentElement;for(;n&&n!==e.ownerDocument.documentElement;){try{if(_b(n,t.getComputedStyle(n)))return wb(n)}catch{return Va}n=n.parentElement}return Va}function za(e){let t=e.trim().toLowerCase();return!(!t||t==="main"||t.includes("caption")||t.includes("ambient"))}function or(e,t){let n=e.tagName.toLowerCase();if(n==="script"||n==="style"||n==="link"||n==="meta")return!1;let i=n==="video"||n==="audio"?t.resolver.resolveMediaStartForElement(e):t.resolver.resolveStartForElement(e,0),o=t.resolver.resolveDurationForElement(e),a=e.getAttribute("data-composition-id");if(a){let d=t.timelineRegistry[a],f=d&&typeof d.duration=="function"?Number(d.duration()):null;!(e.hasAttribute("data-duration")||e.hasAttribute("data-end")||e.hasAttribute(on)||e.hasAttribute(an))&&(o==null||o<=0)&&f!=null&&Number.isFinite(f)&&f>0&&(o=f)}let l=o!=null&&o>0?i+o:Number.POSITIVE_INFINITY,s=t.exportRenderSeek?Ua(i,t.canonicalFps):i,u=t.exportRenderSeek&&Number.isFinite(l)?Ua(l,t.canonicalFps):l;return ii(t.currentTime,s,u,t.compositionDuration)}function Ut(e){return Me(e)}function qa(e){let t=e.getAttribute("data-duration"),n=e.getAttribute(on),r=sn({start:0,duration:t,authoredDuration:n})?.duration;return r??([t,n].map(Ut).some(o=>o!=null&&o<=0)?0:null)}function ld(e){return sn({start:0,end:e.getAttribute("data-end"),authoredEnd:e.getAttribute(an)})?.end??null}function $a(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 ja(...e){let t=e.filter(n=>Number.isFinite(n??null));return t.length===0?null:Math.max(...t)}function Ka(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 ir(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 ud(e){let t=e.getAttribute("src")??e.getAttribute("data-src");if(t)return ir(t);let n=e.getAttribute("data-composition-src");if(n)return ir(n);let r=e.querySelector("img[src], video[src], audio[src], source[src]");return r?ir(r.getAttribute("src")):null}function Rb(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 Tb(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 kb(e){let t=e.textContent?.replace(/\\s+/g," ").trim();return t?t.length>32?`${t.slice(0,31)}...`:t:null}function rr(e){let t=e.replace(/\\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\\s+/g," ").trim();return t?t.replace(/\\b\\w/g,n=>n.toUpperCase()):e}function Mb(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 rr(i);let o=e.id;if(o)return rr(o);let a=Rb(e);if(a)return rr(a);let l=Tb(ud(e));if(l)return rr(l);let s=kb(e);return s||`${rr(t)} ${n+1}`}function cd(e){let n=window.__timelines??{},r=Ue({timelineRegistry:n,includeAuthoredTimingAttrs:!0}),i=j=>{if(!j)return null;let P=n[j]??null;if(!P||typeof P.duration!="function")return null;try{let U=Number(P.duration());return Number.isFinite(U)&&U>0?U:null}catch{return null}},o=()=>{let j=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(j.length===0)return null;let P=0;for(let U of j){let ee=r.resolveMediaStartForElement(U);if(!Number.isFinite(ee))continue;let pe=Si(U);pe==null||pe<=0||(P=Math.max(P,Math.max(0,ee)+pe))}return P>0?P:null},a=(j,P)=>{let U=[],ee=null,pe=null,ne=null,W=j.parentElement;for(;W;){let K=W.getAttribute("data-composition-id");K&&(U.push(K),!ne&&W!==P&&(ne=K),ee==null&&(ee=r.resolveStartForElement(W,0)),pe==null&&(pe=Ut(W.getAttribute("data-duration"))??i(K)??null)),W=W.parentElement}return{parentCompositionId:ne,compositionAncestors:U.reverse(),inheritedStart:ee,inheritedDuration:pe}},l=document.querySelector("[data-composition-id]"),s=Array.from(document.querySelectorAll("[data-composition-id]")),u=l?.getAttribute("data-composition-id")??null,d=l?r.resolveStartForElement(l,0):0,f=o(),m=f!=null?Math.max(0,f-Math.max(0,d)):null,p=i(u),g=qa(l??document.body),y=ja(...s.filter(j=>j!==l).map(j=>{let P=r.resolveStartForElement(j,0),U=r.resolveDurationForElement(j)??i(j.getAttribute("data-composition-id"))??null;return!Number.isFinite(P)||U==null||U<=0?null:Math.max(0,P)+U})),x=y!=null?Math.max(0,y-Math.max(0,d)):null,w=typeof p=="number"&&Number.isFinite(p)&&p>0?p:null,k=typeof g=="number"&&Number.isFinite(g)&&g>0?g:null,C=typeof m=="number"&&Number.isFinite(m)&&m>0?m:null,N=typeof x=="number"&&Number.isFinite(x)&&x>0?x:null,O=ja(C,N),F=w!=null&&O!=null&&w>O+1,v=k??(F?O:ja(w,C,N))??null,T=(v!=null?d+v:null)??(typeof f=="number"&&Number.isFinite(f)&&f>0?f:null),L=(j,P)=>!Number.isFinite(P)||P<=0?0:T==null||!Number.isFinite(T)?P:!Number.isFinite(j)||j>=T?0:Math.max(0,Math.min(P,T-j)),G=[],z=[],X=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),M=0;for(let[j,P]of X.entries()){if(P===l||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(P.tagName))continue;let U=a(P,l),ee=P.tagName.toLowerCase(),pe=ee==="video"||ee==="audio"?r.resolveMediaStartForElement(P):r.resolveStartForElement(P,U.inheritedStart??0),ne=P.getAttribute("data-composition-id"),W=qa(P);if(W==null&&ne&&ne!==u&&(W=i(ne)),W==null&&he(P)&&Number.isFinite(P.duration)&&(W=et(P,P.duration)),W==null&&(W=rn(P,pe)),W==null){let Oe=U.inheritedDuration;if(Oe!=null&&Oe>0){let lt=(U.inheritedStart??0)+Oe;W=Math.max(0,lt-pe)}}if(W==null||W<=0||(W=L(pe,W),W<=0))continue;let K=pe+W;M=Math.max(M,K);let be=ne&&ne!==u?"composition":ee==="video"?"video":ee==="audio"?"audio":ee==="img"?"image":"element";G.push({id:Wa(P)??ne??null,label:Mb(P,be,G.length),start:pe,duration:W,track:Ka(P,j),zIndex:$a(P),stackingContextId:Ni(P),kind:be,tagName:ee,compositionId:P.getAttribute("data-composition-id"),compositionAncestors:U.compositionAncestors,parentCompositionId:U.parentCompositionId,nodePath:null,compositionSrc:ir(P.getAttribute("data-composition-src")),playbackStart:tt(P),playbackRate:Pe(P),assetUrl:ud(P),timelineRole:P.getAttribute("data-timeline-role"),timelineLabel:P.getAttribute("data-timeline-label"),timelineGroup:P.getAttribute("data-timeline-group"),timelinePriority:Ut(P.getAttribute("data-timeline-priority"))})}let V=new Set(G.map(j=>j.id)),te=l?.getAttribute("data-composition-id")??null,B=te?n[te]??null:null;if(B&&l){let j=B;if(typeof j.getChildren=="function")try{let P=j.getChildren(!0,!0,!1)??[],U=new Map;for(let ne of l.children){let W=ne;if(!W.id)continue;let K=W.tagName.toLowerCase();K==="script"||K==="style"||K==="link"||U.set(W,{id:W.id,start:1/0,end:-1/0})}let ee=ne=>{let W=ne;for(;W;){if(U.has(W))return W;if(W===l)return null;W=W.parentElement}return null};for(let ne of P){if(typeof ne.targets!="function"||typeof ne.startTime!="function"||typeof ne.duration!="function")continue;let W=ne.startTime(),K=ne.parent;for(;K&&K!==B&&typeof K.startTime=="function";)W+=K.startTime(),K=K.parent;let be=W+ne.duration();if(!(!Number.isFinite(W)||!Number.isFinite(be)))for(let Oe of ne.targets()){if(!ke(Oe))continue;let Tn=ee(Oe);if(!Tn)continue;let lt=U.get(Tn);lt&&(lt.start=Math.min(lt.start,W),lt.end=Math.max(lt.end,be))}}let pe=G.length>0?Math.max(...G.map(ne=>ne.track))+1:0;for(let[ne,W]of U){if(W.start===1/0||W.end===-1/0)continue;let K=ne;if(V.has(K.id))continue;let be=Math.max(0,W.end-W.start);if(be<=0)continue;let Oe=L(W.start,be);Oe<=0||(M=Math.max(M,W.start+Oe),G.push({id:K.id,label:K.getAttribute("data-timeline-label")??K.getAttribute("data-label")??K.getAttribute("aria-label")??K.id,start:W.start,duration:Oe,track:Ka(K,pe),zIndex:$a(K),stackingContextId:Ni(K),kind:"element",tagName:K.tagName.toLowerCase(),compositionId:K.getAttribute("data-composition-id"),compositionAncestors:te?[te]:[],parentCompositionId:te,nodePath:null,compositionSrc:null,playbackStart:tt(K),playbackRate:Pe(K),assetUrl:null,timelineRole:K.getAttribute("data-timeline-role"),timelineLabel:K.getAttribute("data-timeline-label"),timelineGroup:K.getAttribute("data-timeline-group"),timelinePriority:Ut(K.getAttribute("data-timeline-priority"))}),V.add(K.id))}}catch(P){I("runtime.timeline.site1",P)}}if(l&&v!=null&&v>0){let j=G.length>0?Math.max(...G.map(P=>P.track))+1:0;for(let P of l.children){let U=P;if(!U.id||V.has(U.id))continue;let ee=U.getAttribute("data-timeline-role");if(ee!=="overlay"&&ee!=="persistent-overlay")continue;let pe=U.tagName.toLowerCase();if(pe==="script"||pe==="style"||pe==="link"||pe==="meta"||window.getComputedStyle(U).display==="none")continue;let W=L(0,v);W<=0||(M=Math.max(M,W),G.push({id:U.id,label:U.getAttribute("data-timeline-label")??U.getAttribute("data-label")??U.getAttribute("aria-label")??U.id,start:0,duration:W,track:Ka(U,j),zIndex:$a(U),stackingContextId:Ni(U),kind:"element",tagName:pe,compositionId:U.getAttribute("data-composition-id"),compositionAncestors:te?[te]:[],parentCompositionId:te,nodePath:null,compositionSrc:null,playbackStart:tt(U),playbackRate:Pe(U),assetUrl:null,timelineRole:ee,timelineLabel:U.getAttribute("data-timeline-label"),timelineGroup:U.getAttribute("data-timeline-group"),timelinePriority:Ut(U.getAttribute("data-timeline-priority"))}),V.add(U.id))}}for(let j of s){if(j===l)continue;let P=j.getAttribute("data-composition-id");if(!P||!za(P))continue;let U=r.resolveStartForElement(j,0),ee=qa(j);if((ee==null||ee<=0)&&ld(j)!=null){let K=ld(j);ee=Math.max(0,K-U)}let pe=i(P),ne=ee&&ee>0?ee:pe;if(ne==null||ne<=0)continue;let W=L(U,ne);W<=0||z.push({id:P,label:j.getAttribute("data-label")??P,start:U,duration:W,thumbnailUrl:ir(j.getAttribute("data-thumbnail-url")),avatarName:null})}let q=Math.max(1,M||1,v??0),$=F&&k==null,J=$?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(q*Math.max(1,e.canonicalFps)));return{...ri(e.canonicalFps),source:"hf-preview",type:"timeline",compositionContractVersion:1,durationSeconds:$?Number.POSITIVE_INFINITY:q,durationInFrames:J,clips:G,scenes:z,compositionWidth:Ut(l?.getAttribute("data-width"))??1920,compositionHeight:Ut(l?.getAttribute("data-height"))??1080}}var dd=e=>e!==null&&Number.isFinite(e)&&e>0;function ar(e){let t=e.clipEndsSeconds.filter(r=>r===null).length;if(dd(e.authoredDurationSeconds))return{seconds:e.authoredDurationSeconds,source:"authored",pendingClips:t};let n=e.clipEndsSeconds.filter(dd);return n.length>0?{seconds:Math.max(...n),source:"derived",pendingClips:t}:{seconds:null,source:"unresolved",pendingClips:t,reason:t>0?"every clip\'s length is still pending":"no authored duration and no clip with a length"}}var Ya="data-composition-id",Fb="data-composition-src",Nb=`[${Ya}]`,Uw=`[${Fb}]`,md="style",fd="script",Lb=\'link[rel="stylesheet"], link[rel="preconnect"]\';function fn(e){return e?Array.from(e):[]}function pd(e){let{contentNode:t,head:n,documentElement:r,hasTemplate:i,compositionId:o}=e,a=fn(t.querySelectorAll(Nb)),l=o?a.find(d=>d.getAttribute(Ya)===o)??null:a[0]??null,s=(l??a[0])?.getAttribute(Ya)?.trim()||"",u=i?null:n??null;return{innerRoot:l,authoredCompositionId:o||s||null,scriptCompositionId:s||o||null,authoredRootId:l?.getAttribute("id")?.trim()||null,styleSources:[...fn(u?.querySelectorAll(md)),...fn(t.querySelectorAll(md))],scriptSources:[...fn(u?.querySelectorAll(fd)),...fn(t.querySelectorAll(fd))],linkSources:fn(n?.querySelectorAll(Lb)),variableDefaultCarriers:[r,l].filter(d=>d!=null)}}var ye=u0(Vm(),1),zm=ye.default,MC=ye.default.stringify,FC=ye.default.fromJSON,NC=ye.default.plugin,LC=ye.default.parse,DC=ye.default.list,IC=ye.default.document,PC=ye.default.comment,OC=ye.default.atRule,GC=ye.default.rule,HC=ye.default.decl,BC=ye.default.root,UC=ye.default.CssSyntaxError,WC=ye.default.Declaration,VC=ye.default.Container,zC=ye.default.Processor,qC=ye.default.Document,$C=ye.default.Comment,jC=ye.default.Warning,KC=ye.default.AtRule,YC=ye.default.Result,XC=ye.default.Input,JC=ye.default.Rule,QC=ye.default.Root,ZC=ye.default.Node;var Ss="data-hf-authored-id",qm="data-hf-inner-root";function vs(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function As(e){return e.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function my(e){return e&&e.replace(/[^a-zA-Z0-9_-]/g,n=>`\\\\${n}`).replace(/^-?\\d/,n=>`\\\\${n}`)}function jm(e){let t=e.trim();return t?Array.from(new Set([t,my(t)])).filter(Boolean):[]}function fy(e){return!!e&&/[\\w-]/.test(e)}function py(e,t,n){let r=jm(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 d=r.find(f=>e.startsWith(f,l+1));if(d){let f=e[l+1+d.length];if(!fy(f)){i+=n,l+=d.length;continue}}}i+=s}return i}function hy(e,t){let n=t?.trim();return n?py(e,n,`[${Ss}="${As(n)}"]`):e}function $m(e){return`${e}:not(:has([${qm}])), ${e} > [${qm}]`}function gy(e,t,n,r,i,o){let a=hy(e,r),l=by(a,t,n),s=l.trim();if(!s||s==="*")return e;if(/^(html|body|:root)$/i.test(s))return o?$m(t):e;let u=new RegExp(`\\\\[\\\\s*data-composition-id\\\\s*[\\\\^\\\\*\\\\$]?=\\\\s*(["\'])${vs(n)}\\\\1\\\\s*\\\\]`,"g");if(u.test(s))return s.replace(u,"").trim()===""?$m(t):l.replace(u,t);let d=l.match(/^\\s*/)?.[0]??"",f=l.match(/\\s*$/)?.[0]??"";if(i){let m=r?`[${Ss}="${As(r)}"]`:null;if(m&&s.startsWith(m)){let p=s.slice(m.length);return`${d}${t}${m}${p}${f}`}}return`${d}${t} ${s}${f}`}function by(e,t,n){let r=vs(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 xy=new Set(["keyframes","-webkit-keyframes","font-face"]);function yy(e){return e?.type==="atrule"}function Sy(e){let t=e.parent;for(;t;){if(yy(t)&&xy.has(t.name.toLowerCase()))return!0;t=t.parent}return!1}function vy(e){let t=e.parent;for(;t;){if(t.type==="rule")return!0;t=t.parent}return!1}function Km(e,t,n,r,i){let o=t.trim();if(!e||!o)return e;let a=n||`[data-composition-id="${As(o)}"]`,l;try{l=zm.parse(e)}catch{return""}return l.walkRules(s=>{Sy(s)||vy(s)||(s.selectors=s.selectors.map(u=>gy(u,a,o,r,i?.compoundAuthoredRoot,i?.scopeRootSelectors)))}),l.toResult({map:!1}).css}function pt(e){return JSON.stringify(e).replace(/</g,"\\\\u003c")}function Ym(e,t,n="[HyperFrames] composition script error:",r,i=t,o){let a=pt(t),l=pt(i),s=pt(n),u=vs(t),d=pt(o?.trim()||null),f=pt(r??null),m=pt(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${u}"|\'${u}\')\\s*\\]`),p=pt(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`),g=pt(jm(o?.trim()||""));return`(function(){\n var __hfCompId = ${a};\n var __hfTimelineCompId = ${l};\n var __hfErrorLabel = ${s};\n var __hfAuthoredRootId = ${d};\n var __hfAuthoredRootAttr = ${pt(Ss)};\n var __hfEscapeAttr = function(value) {\n return (value + "").replace(/\\\\\\\\/g, "\\\\\\\\\\\\\\\\").replace(/"/g, "\\\\\\\\\\\\"");\n };\n var __hfRootSelector = ${f} || (__hfCompId\n ? \'[data-composition-id="\' + __hfEscapeAttr(__hfCompId) + \'"]\'\n : "");\n var __hfRoot = null;\n var __hfRootSelectorPattern = ${m};\n var __hfTimingSelectorPattern = ${p};\n var __hfAuthoredRootIdForms = ${g};\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 __hfQueryAll(target);\n if (!Array.isArray(target)) return target;\n return target.reduce(function(resolved, item) {\n if (typeof item === "string") {\n return resolved.concat(Array.prototype.slice.call(__hfQueryAll(item)));\n }\n resolved.push(item);\n return resolved;\n }, []);\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 Ay=["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 Xm(e){let t=e.getAttribute("id")?.trim();for(let n of Ay)e.removeAttribute(n);t&&(e.removeAttribute("id"),e.setAttribute("data-hf-authored-id",t)),e.setAttribute("data-hf-inner-root","true")}var Ey=8e3,_y=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/,wy=/\\burl\\(\\s*(["\']?)([^)"\']+)\\1\\s*\\)/g,Cy=["src","href"];function Ry(e){return!e||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("//")||e.startsWith("data:")||e.startsWith("#")||e.startsWith("/")}function Zm(e,t){if(!t)return e;let n=e.trim();if(Ry(n)||!n.startsWith("../")&&n!=="..")return e;try{return new URL(n,t).href}catch{return e}}function ef(e,t){return!t||!e?e:e.replace(wy,(n,r,i)=>{let o=Zm(i||"",t);return o===i?n:`url(${r||""}${o}${r||""})`})}function Ty(e,t){for(let n of Array.from(e.querySelectorAll("[src], [href]")))for(let r of Cy){let i=n.getAttribute(r);if(i==null)continue;let o=Zm(i,t);o!==i&&n.setAttribute(r,o)}}function ky(e,t){for(let n of Array.from(e.querySelectorAll("[style]"))){let r=n.getAttribute("style");if(r==null)continue;let i=ef(r,t);i!==r&&n.setAttribute("style",i)}}function My(e,t){for(let n of Array.from(e.querySelectorAll("style"))){let r=n.textContent||"",i=ef(r,t);i!==r&&(n.textContent=i)}}function tf(e,t){if(t){Ty(e,t),ky(e,t),My(e,t);for(let n of Array.from(e.querySelectorAll("template")))tf(n.content,t)}}function Fy(e,t){return`${e}__hf${t}`}var Ny=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"),Ey)});function Es(e){for(;e.firstChild;)e.removeChild(e.firstChild);e.textContent=""}function Jm(e){for(let t of Array.from(e.querySelectorAll("style, script")))t.remove()}function Ly(e){let t=document.importNode(e,!0);Xm(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 Dy(e,t){let n=e.trim();if(!n)return e;try{return _y.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 Qm(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 Yi(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 Iy(e){let t=new Map;for(let n of e){let r=Yi(n).authoredCompositionId||"";r&&t.set(r,(t.get(r)||0)+1)}return t}function nf(e){let t=Yi(e).authoredCompositionId;return t?!!document.querySelector(`template#${CSS.escape(t)}-template`):!1}function Py(e){return!!e.querySelector(\'[data-hf-inner-root="true"]\')}function Oy(e){return e.hasAttribute("data-composition-src")?!0:nf(e)?e.children.length===0||e.hasAttribute("data-hf-original-composition-id")?!0:Py(e):!1}function ws(){return Array.from(document.querySelectorAll("[data-composition-src], [data-composition-id]")).filter(t=>t.hasAttribute("data-composition-src")?!0:nf(t))}function rf(){let e=window.__hfVariablesByComp;if(!e)return;let t=new Set(ws().map(n=>Yi(n).runtimeCompositionId).filter(n=>!!n));for(let n of Object.keys(e))t.has(n)||delete e[n]}function of(e,t=Iy(e)){let n=new Map,r=new Map;for(let i of e){let{authoredCompositionId:o,runtimeCompositionId:a}=Yi(i),l=Oy(i);if(!o){r.set(i,{authoredCompositionId:null,runtimeCompositionId:a});continue}let s=(t.get(o)||0)>1,u=a||o;if(l){let d=s?(n.get(o)||0)+1:0;s&&n.set(o,d),u=s?Fy(o,d):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 _s(e){let t=pd({contentNode:e.sourceNode,head:e.head,hasTemplate:e.hasTemplate,compositionId:e.authoredCompositionId}),n=Ae(t.innerRoot)?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 m of t.linkSources){let p=(m.getAttribute("href")||"").trim();if(!p)continue;let g=e.compositionUrl?new URL(p,e.compositionUrl).href:p;if(e.compositionUrl&&Qm(g,e.compositionUrl)||document.head.querySelector(`link[href="${CSS.escape(g)}"]`))continue;let y=m.cloneNode(!0);hu(y)&&(y.href=g,document.head.appendChild(y),e.injectedLinks.push(y))}(m=>{for(let p of m){let g=p.cloneNode(!0);pu(g)&&(i&&(g.textContent=Km(g.textContent||"",i,s,l,{scopeRootSelectors:!0})),document.head.appendChild(g),e.injectedStyles.push(g))}})(t.styleSources);let d=m=>{let p=m.getAttribute("type")?.trim()??"",g=m.getAttribute("src")?.trim()??"";if(g){let x=Dy(g,e.compositionUrl);return e.compositionUrl&&Qm(x,e.compositionUrl)?null:{kind:"external",src:x,type:p}}let y=m.textContent?.trim()??"";return y?{kind:"inline",content:y,type:p,scopeCompositionId:o}:null},f=t.scriptSources.map(d).filter(m=>m!==null);if(n){let m=n.getAttribute("data-width"),p=n.getAttribute("data-height"),g=e.parseDimensionPx(m),y=e.parseDimensionPx(p);m&&e.host.setAttribute("data-width",m),p&&e.host.setAttribute("data-height",p),g&&Ae(e.host)&&(e.host.style.width=g),y&&Ae(e.host)&&(e.host.style.height=y),n.hasAttribute("data-timeline-locked")&&e.host.setAttribute("data-timeline-locked","");let x=Ly(n);!e.authoredCompositionId&&i&&x.setAttribute("data-composition-id",i),Jm(x),e.host.appendChild(x)}else if(e.hasTemplate){let m=document.importNode(r,!0);Jm(m),e.host.appendChild(m)}else e.host.innerHTML=e.fallbackBodyInnerHtml;a&&Gy(e,r,a);for(let m of f){let p=document.createElement("script");if(m.type&&(p.type=m.type),p.async=!1,m.kind==="external"?p.src=m.src:m.type.toLowerCase()==="module"?p.textContent=m.content:m.scopeCompositionId?p.textContent=Ym(m.content,m.scopeCompositionId,"[HyperFrames] composition script error:",s,a||m.scopeCompositionId,l):p.textContent=`(function(){${m.content}})();`,document.body.appendChild(p),e.injectedScripts.push(p),m.kind==="external"){let g=await Ny(p);g.status!=="load"&&e.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:e.authoredCompositionId,runtimeCompositionId:e.runtimeCompositionId,hostCompositionSrc:e.hostCompositionSrc,resolvedScriptSrc:m.src,loadStatus:g.status,elapsedMs:g.elapsedMs}})}}}async function af(e){let t=ws();if(rf(),t.length===0)return;let n=of(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`);Es(i),await _s({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 sf(e){let t=ws();if(rf(),t.length===0)return;let n=of(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}Es(i);try{let d=l!=null?document.querySelector(`template#${CSS.escape(l)}-template`):null;if(d){await _s({host:i,authoredCompositionId:l,runtimeCompositionId:s,hostCompositionSrc:o,sourceNode:d.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:u,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,injectedLinks:e.injectedLinks,parseDimensionPx:e.parseDimensionPx,onDiagnostic:e.onDiagnostic});return}let f=await fetch(o);if(!f.ok)throw new Error(`HTTP ${f.status}`);let m=await f.text(),g=new DOMParser().parseFromString(m,"text/html");tf(g,u);let y=(l?g.querySelector(`template#${CSS.escape(l)}-template`):null)??g.querySelector("template"),x=y?y.content:g.body;await _s({host:i,authoredCompositionId:l,runtimeCompositionId:s,hostCompositionSrc:o,sourceNode:x,hasTemplate:!!y,fallbackBodyInnerHtml:g.body.innerHTML,compositionUrl:u,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,injectedLinks:e.injectedLinks,parseDimensionPx:e.parseDimensionPx,head:g.head,declaredVariableDefaults:Pn(g.documentElement),variableDeclarer:g.documentElement,onDiagnostic:e.onDiagnostic})}catch(d){e.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:l,runtimeCompositionId:s,hostCompositionSrc:o,errorMessage:d instanceof Error?d.message:"unknown_error"}}),Es(i)}}))}function Gy(e,t,n){let i={...e.declaredVariableDefaults??(ke(t)?Pn(t):{}),...mu(e.host)};zo(e.variableDeclarer??(ke(t)?t:null),i,n),cu(e.host),Object.keys(i).length>0?(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[n]=i,qo(e.host,{...uu(e.host,i,window),...ai()})):window.__hfVariablesByComp&&delete window.__hfVariablesByComp[n]}function Hy(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function By(e){if(!Array.isArray(e))throw new Error("expected a JSON array");if(!e.every(Hy))throw new Error("every array entry must be an object");return e}function Cs(e){let n=e.vars.data?.captionState;return n==="dim"||n==="active"?n:void 0}function Uy(e){return Ae(e)?e.dataset.captionWrapper!=="true"?e:e.querySelector(":scope > span")??null:null}function Wy(){let e=[],t=document.querySelectorAll(".caption-group");for(let n of t)for(let r of n.children){if(!Ae(r))continue;let i=r.dataset.captionWrapper==="true"?r.querySelector(":scope > span"):r.tagName==="SPAN"?r:null;i&&e.push(i)}return e}function Vy(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 Rs(){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===null)return;let n=By(t);if(n.length===0)return;let r=Wy();for(let i of n){let o=null;if(i.wordId&&(o=Uy(document.getElementById(i.wordId))),!o&&i.wordIndex!==void 0&&(o=r[i.wordIndex]??null),!o)continue;let a={},l={};if(i.x!==void 0&&(a.x=i.x),i.y!==void 0&&(a.y=i.y),i.scale!==void 0&&(a.scale=i.scale),i.rotation!==void 0&&(a.rotation=i.rotation),i.opacity!==void 0&&(l.opacity=i.opacity),i.fontSize!==void 0&&(l.fontSize=`${i.fontSize}px`),i.fontWeight!==void 0&&(l.fontWeight=i.fontWeight),i.fontFamily!==void 0&&(l.fontFamily=i.fontFamily),i.activeColor||i.dimColor){let u=e.getTweensOf(o).filter(m=>m.vars.color!==void 0).sort((m,p)=>m.startTime()-p.startTime()),d=u.find(m=>Cs(m)==="dim")??u.find(m=>Cs(m)===void 0),f=d?String(d.vars.color):"";for(let m of u)(Cs(m)??(String(m.vars.color)===f?"dim":"active"))==="dim"?i.dimColor&&(m.vars.color=i.dimColor):i.activeColor&&(m.vars.color=i.activeColor);i.dimColor&&e.set(o,{color:i.dimColor})}if(Object.keys(l).length>0&&e.set(o,l),Object.keys(a).length>0){let s=Vy(o);e.set(s,a)}}}).catch(t=>{let n=t instanceof Error?t.message:String(t);console.error(`[HyperFrames] Invalid caption-overrides.json: ${n}`)})}var ks="data-hf-edit-base-x",Ms="data-hf-edit-base-y",yn="data-hf-edit-original-translate",Xi=e=>{let t=parseFloat(e??"");return Number.isFinite(t)?t:0},zy=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},lf=/^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)px$/,Ts=(e,t)=>lf.test(e)&&lf.test(t)?`${parseFloat(e)+parseFloat(t)}px`:`calc(${e} + ${t})`,qy=(e,t,n)=>{if(!e||e==="none")return`${t} ${n}`;let[r,i,o]=zy(e);if(r===void 0)return`${t} ${n}`;if(i===void 0)return`${Ts(r,t)} ${n}`;let a=o===void 0?"":` ${o}`;return`${Ts(r,t)} ${Ts(i,n)}${a}`},$y=e=>{try{e.ownerDocument.defaultView?.gsap?.getProperty?.(e,"x")}catch{}},jy=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""}},Fs=new WeakMap;function Ky(e,t){let n=Fs.get(e);if(!t?.force&&n!==void 0&&e.style.getPropertyValue("translate")!==n){He("position_edit_fold_skipped",{hfId:e.getAttribute("data-hf-id")});return}let r=Xi(e.getAttribute("data-x"))-Xi(e.getAttribute(ks)),i=Xi(e.getAttribute("data-y"))-Xi(e.getAttribute(Ms));e.hasAttribute(yn)||e.setAttribute(yn,jy(e)),n===void 0&&$y(e);let o=e.getAttribute(yn)??"",a=qy(o,`${r}px`,`${i}px`);e.style.setProperty("translate",a),Fs.set(e,e.style.getPropertyValue("translate"))}function Ji(e,t){let n=e.querySelectorAll(`[${yn}]:not([${ks}]):not([${Ms}])`);for(let o=0;o<n.length;o++){let a=n[o];if(a===void 0||!jo(a))continue;let l=a.getAttribute(yn)??"";l===""?a.style.removeProperty("translate"):a.style.setProperty("translate",l),a.removeAttribute(yn),Fs.delete(a)}let r=e.querySelectorAll(`[${ks}], [${Ms}]`),i=0;for(let o=0;o<r.length;o++){let a=r[o];a===void 0||!jo(a)||(Ky(a,t),i+=1)}return i}var uf="__hfPositionEditsSeekReapplyWrapped",cf=new WeakSet,df=new WeakMap,mf=new WeakMap;function ff(e){let t=e,n=()=>{try{Ji(t.document)}catch{}},r=f=>typeof f=="function"&&(cf.has(f)||!!f[uf]),i=f=>{cf.add(f);try{Object.defineProperty(f,uf,{value:!0})}catch{}},o=f=>{if(typeof f!="function"||r(f))return f;let m=function(...p){let g=f.apply(this,p);return n(),g};return i(m),m},a=(f,m)=>{let p=df.get(f);if(p?.has(m))return!0;let g=Object.getOwnPropertyDescriptor(f,m);if(g?.configurable===!1){let w=f[m];return typeof w=="function"&&(f[m]=o(w),n()),!1}let y=f[m],x=g?.set;return Object.defineProperty(f,m,{configurable:!0,enumerable:g?.enumerable??!0,get:()=>y,set:w=>{y=o(w),x?.call(f,w)}}),y=o(y),p??(p=new Set),p.add(m),df.set(f,p),n(),!0},l=(f,m)=>{let p=mf.get(t),g=Object.getOwnPropertyDescriptor(t,f);if(!p?.has(f)){if(g?.configurable===!1){let w=t[f];return w?a(w,m):!1}let x=t[f];Object.defineProperty(t,f,{configurable:!0,enumerable:g?.enumerable??!0,get:()=>x,set:w=>{x=w,x&&a(x,m)}}),p??(p=new Set),p.add(f),mf.set(t,p)}let y=t[f];return y?a(y,m):!1},s=()=>{let f=l("__hf","seek"),m=l("__player","renderSeek");return f&&m};if(s())return;let u=120,d=t.setInterval(()=>{if(s()){t.clearInterval(d);return}u-=1,u<=0&&t.clearInterval(d)},50)}function Qi(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 Zi(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function Ns(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 pf=new Set(["img","video","audio","source"]);function Yy(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 Xy(e){return e.replace(/[;{}<>\\r\\n]/g,"")}function Jy(e){if(Zi(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 Ls(e,t){let n=e.closest("[data-composition-id]"),r=t.get(n);if(r)return r;let i=Qi(e);return t.set(n,i),i}function Qy(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 Zy(e){return e.querySelector("[data-hf-root]")??e.getElementById("stage")??e.body?.firstElementChild??e.body}function eS(e,t){let n=new Set,r=Zy(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=Ls(i,t);for(let[a,l]of Object.entries(o)){let s=Jy(l);s!==null&&Ae(i)&&i.style.setProperty(`--${a}`,Xy(s))}}}function Ds(e){let t=new Map;eS(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(!pf.has(n.tagName.toLowerCase())){console.warn(`[hyperframes] Ignoring data-var-src on <${n.tagName.toLowerCase()}>: variable-bound src is only allowed on ${Array.from(pf).join("/")}.`);continue}let i=Yy(Ls(n,t)[r]);if(i!==null){if(!Ns(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=Ls(n,t)[r];Zi(i)&&Qy(n,String(i))}}var ht=new Map,tS="data-hf-color-grading-canvas",nS="__hf_color_grading_canvas__";function wf(){if(typeof MutationObserver>"u"||typeof document>"u")return;let e=document.documentElement;if(!e)return;let t=r=>{Ae(r)&&(r.hasAttribute(ki)||r.setAttribute(ki,r.style.opacity))},n=r=>{if(ke(r)){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 rS=16,iS=4,vn={enabled:!1,position:.5,softness:0,lineWidth:2},Is=["#000000","#ffffff"],oS=["#1a1a1a","#f5f5dc"],Mr=3,aS=Mr-1,sS=5,Ps=`${nt}.0`,hf=`${nt-1}.0`,lS=`${Mr}.0`,uS=`${(aS+.5)/Mr}`;function eo(e){let t=e.getAttribute(Qn);return t==null?null:Zc(t,Qi(e))}var cS=["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`),dS=["#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) * ${hf};`," float lower = floor(position);",` float upper = min(lower + 1.0, ${hf});`,` float y = (row + 0.5) / ${lS};`,` vec4 before = texture2D(u_advanced, vec2((lower + 0.5) / ${Ps}, y));`,` vec4 after = texture2D(u_advanced, vec2((upper + 0.5) / ${Ps}, y));`," return mix(before, after, position - lower);","}","vec4 advancedConfig(float index){",` return texture2D(u_advanced, vec2((index + 0.5) / ${Ps}, ${uS}));`,"}","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`),mS=["#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`),fS=["#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`),pS=["#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 qt(e){return fe(e)||Le(e)}function gf(e){let t=window.getComputedStyle(e);return t.display!=="none"&&t.visibility!=="hidden"}function bf(e,t,n){let r=e.createShader(n);return r?(e.shaderSource(r,t),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)?r:(I("runtime.colorGrading.compileShader",e.getShaderInfoLog(r)),e.deleteShader(r),null)):null}function oo(e,t=dS){let n=bf(e,cS,e.VERTEX_SHADER),r=bf(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:(I("runtime.colorGrading.linkProgram",e.getProgramInfoLog(i)),e.deleteProgram(i),null)):null}function to(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 hS(e,t){let n=oo(e,mS);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 gS(e,t){let n=oo(e,fS);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 bS(e,t){let n=oo(e,pS);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 Rr(e,t=e.UNSIGNED_BYTE,n=e.LINEAR){let r=to(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 ro(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 Os(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 xf(e,t,n){t&&e.deleteProgram(t);for(let r of n)r&&e.deleteTexture(r)}function Us(e){let t=e.getContext("webgl",{alpha:!0,premultipliedAlpha:!1});if(!t)return null;let n=oo(t),r=to(t),i=to(t,t.NEAREST),o=to(t,t.NEAREST);if(!n||!r||!i||!o)return xf(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:Os(t,n,Mi),detailUniforms:Os(t,n,Fa),effectUniforms:Os(t,n,Na),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")}}):(xf(t,n,[r,i,o]),null)}function xS(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function yS(e){if(!xS(e))return{...vn};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,vn.position,0,1),softness:t(e.softness,vn.softness,0,.25),lineWidth:t(e.lineWidth,vn.lineWidth,0,12)}}function Cf(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 ao(e){return e instanceof Error?e.message:"LUT failed to load"}function SS(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 Rf(e){let t=e.id||e.currentSrc||e.getAttribute("src")||`${e.tagName}:${Array.prototype.indexOf.call(e.parentNode?.children??[],e)}`;return SS(t)}function Ws(e){let t=Cf(e);if("error"in t)return{state:"error",message:t.error};let n=ht.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=>Mc(o,{maxSize:Ci})),i={state:"pending",promise:r};for(;ht.size>=rS;){let o=ht.keys().next().value;if(!o)break;ht.delete(o)}return ht.set(t.href,i),r.then(o=>{ht.get(t.href)===i&&ht.set(t.href,{state:"ready",lut:o})},o=>{ht.get(t.href)===i&&ht.set(t.href,{state:"error",message:ao(o)})}),i}function yf(e,t,n){if(e.lut?.src===t)return e.lut;let r=Aa(n),{gl:i,program:o}=e;try{return Tf(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=ao(a),e.lutLoadingSrc=null,I("runtime.colorGrading.uploadLut",a),null}}async function vS(e){let t=Ws(e);if(t.state==="ready")return t.lut;if(t.state==="pending")return t.promise;throw new Error(t.message)}function Tf(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 AS(e,t,n){let r=Aa(n),{gl:i,program:o}=e;return Tf(i,o.lutTexture,r),{src:t,size:n.size,domainMin:n.domainMin,domainMax:n.domainMax,textureWidth:r.width,textureHeight:r.height}}function at(e,t){e.deleteTexture(t.texture),e.deleteFramebuffer(t.framebuffer)}function Vs(e){let t=e.effectTargets;t&&(e.gl.deleteProgram(t.blurProgram.program),at(e.gl,t.scratch),at(e.gl,t.blur),t.bloom&&at(e.gl,t.bloom),e.effectTargets=null)}function zs(e){let t=e.kuwaharaTargets;t&&(e.gl.deleteProgram(t.horizontalProgram.program),e.gl.deleteProgram(t.resolveProgram.program),at(e.gl,t.moments),at(e.gl,t.output),e.kuwaharaTargets=null)}function no(e,t=!1){Vs(e),zs(e),ES(e.gl,e.program),t&&e.gl.getExtension("WEBGL_lose_context")?.loseContext()}function ES(e,t){e.deleteTexture(t.texture),e.deleteTexture(t.lutTexture),e.deleteTexture(t.advancedTexture),e.deleteBuffer(t.quad),e.deleteProgram(t.program)}function _S(e){let t=Us(e.canvas);return t?(no(e),e.gl=t.gl,e.program=t.program,e.lut=null,e.lutLoadingSrc=null,e.lutError=null,e.effectError=null,!0):!1}function Bs(e){if(!e.sourceHidden)return;e.element.removeAttribute(Zn);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 wS(e){if(e.effectTargets)return e.effectTargets;let{gl:t}=e,n=hS(t,e.program.quad),r=Rr(t),i=Rr(t);return!n||!r||!i?(n&&t.deleteProgram(n.program),r&&at(t,r),i&&at(t,i),e.effectError="Framebuffer effects unavailable",null):(e.effectError=null,e.effectTargets={blurProgram:n,scratch:r,blur:i,bloom:null},e.effectTargets)}function CS(e,t){return t.bloom||(t.bloom=Rr(e.gl),e.effectError=t.bloom?null:"Framebuffer effects unavailable"),t.bloom}function Sf(e){let t=e.effectTargets;t?.bloom&&(at(e.gl,t.bloom),t.bloom=null)}function RS(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=gS(t,e.program.quad),o=bS(t,e.program.quad),a=Rr(t,n.HALF_FLOAT_OES,t.NEAREST),l=Rr(t);return!i||!o||!a||!l?(TS(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 TS(e,t,n,r,i){t&&e.deleteProgram(t.program),n&&e.deleteProgram(n.program),r&&at(e,r),i&&at(e,i)}function kf(e,t,n,r,i){let o=Math.max(1,Math.ceil(r)),a=Math.max(1,Math.ceil(i));return ro(e,t,o,a),ro(e,n,o,a),{width:o,height:a}}function io(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),Tr(e,t)}function kS(e,t,n,r,i,o,a){let l=kf(e,t.scratch,r,i/2,o/2),s=a/2;io(e,t.blurProgram,n,t.scratch,l,{x:1,y:0},s,!0,.5),io(e,t.blurProgram,t.scratch.texture,r,l,{x:0,y:1},s,!0)}function MS(e,t,n,r,i,o,a){let l=n;for(let s=0;s<Math.max(1,Math.floor(a));s++)io(e,t.blurProgram,l,t.scratch,i,{x:1,y:0},o),io(e,t.blurProgram,t.scratch.texture,r,i,{x:0,y:1},o),l=r.texture}function Tr(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 FS(e,t,n,r,i,o,a,l){ro(e,t.moments,i.width,i.height),ro(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),Tr(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),Tr(e,u)}function NS(e,t,n,r){if(n<=0)return!1;let i=kf(e.gl,t.scratch,t.blur,r.width,r.height);return MS(e.gl,t,e.program.texture,t.blur,i,.75+Math.pow(n,1.35)*32,n>.55?3:2),!0}function LS(e,t,n,r,i,o){if(n<=0)return Sf(e),null;o||Sf(e);let a=o?CS(e,t):t.blur;return a?(kS(e.gl,t,e.program.texture,a,i.width,i.height,r),a.texture):null}function DS(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&&Vs(e),{blurReady:!1,bloomReady:!1,blurTexture:i.texture,bloomTexture:i.texture};let l=wS(e);if(!l)return{blurReady:!1,bloomReady:!1,blurTexture:i.texture,bloomTexture:i.texture};let s=NS(e,l,o,n),u=LS(e,l,a,t.effects.bloomRadius,n,s);return{blurReady:s,bloomReady:u!==null,blurTexture:l.blur.texture,bloomTexture:u??i.texture}}function IS(e,t,n,r,i,o,a){let l=t.effects.kuwahara;if(l<=0&&!o)return e.kuwaharaTargets&&a&&zs(e),{kuwaharaReady:!1,kuwaharaTexture:e.program.texture};let s=RS(e);return!s||l<=0?{kuwaharaReady:!1,kuwaharaTexture:s?.output.texture??e.program.texture}:(FS(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 Mf(e,t,n,r,i={}){let o=i.releaseIdleTargets??!0;e.effectError=null;let a=DS(e,t,n,o),l=IS(e,t,n,r,a.blurReady,i.preserveKuwahara??!1,o);return{...a,...l}}function PS(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=Cf(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=Ws(t);return i.state==="ready"?yf(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||(yf(e,r.href,o),We(e))},o=>{e.destroyed||e.grading.lut?.src.trim()!==t||(e.lut=null,e.lutError=ao(o),e.lutLoadingSrc=null,We(e))})),null)}function wr(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&&qt(n))return n;try{let r=document.querySelector(t);return r&&qt(r)?r:null}catch{return null}}if(e.hfId){let t=document.querySelector(`[data-hf-id="${CSS.escape(e.hfId)}"]`);if(t&&qt(t))return t}if(e.id){let t=document.getElementById(e.id);if(t&&qt(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&&qt(r)?r:null}catch{return null}}function Ff(e){return fe(e)?e.videoWidth>0&&e.videoHeight>0?{width:e.videoWidth,height:e.videoHeight}:null:Le(e)&&e.naturalWidth>0&&e.naturalHeight>0?{width:e.naturalWidth,height:e.naturalHeight}:null}function Nf(e){return fe(e)?e.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&e.videoWidth>0&&e.videoHeight>0:Le(e)?e.complete&&e.naturalWidth>0&&e.naturalHeight>0:!1}function Lf(e){let t=At(e);return t&&Nf(t)?t:null}function vf(e){if(!fe(e))return!1;let t=Lf(e);if(!t)return!1;let n=window.getComputedStyle(t);return n.display!=="none"&&n.visibility!=="hidden"}function OS(e){return Le(e)&&e.classList.contains("__render_frame__")}function GS(e,t){t.parentNode&&t.nextSibling!==e.canvas&&t.parentNode.insertBefore(e.canvas,t.nextSibling)}function Df(e){if(fe(e)){let t=Lf(e);if(t)return t}return Nf(e)?e:null}function Af(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 HS(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=Af(o,"x"),l=Af(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 If(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 m=a==="cover"?Math.max(e/n,t/r):Math.min(e/n,t/r);l=n*m,s=r*m,a==="scale-down"&&l>n&&s>r&&(l=n,s=r)}else a==="none"&&(l=n,s=r);let u=HS(o||"center"),d=(e-l)*u.x/e,f=(t-s)*u.y/t;return{scaleX:l/e,scaleY:s/t,offsetX:d,offsetY:f}}function BS(e,t){window.getComputedStyle(t).position==="static"&&(e.touchedParent||(e.touchedParent=t,e.parentInlinePosition=t.style.position||null),t.style.position="relative")}function Ef(e,t){return Math.max(0,Math.round(e>0?e:t))}function US(e,t){let{element:n,canvas:r}=e,i=n.parentElement;i&&BS(e,i);let o=window.getComputedStyle(t);nd(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=Ef(n.offsetWidth,a.width),s=Ef(n.offsetHeight,a.height);if(l<=0||s<=0)return r.style.display="none",null;let u=Math.max(1,window.devicePixelRatio||1),d=Math.round(l*u),f=Math.round(s*u);return r.width!==d&&(r.width=d),r.height!==f&&(r.height=f),{width:d,height:f}}function Sn(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 $t(e,t,n,r){e.set(r,(t*nt+n)*4)}function Mt(e,t){return Math.min(1,Math.max(1/255,(e*(127/t)+128)/255))}function Gs(e,t,n){return e.length>=3?_a(e,t,n):new Float32Array(nt)}function zt(e,t){return e[t]??0}function WS(e,t,n){let r=cn(t.red),i=cn(t.green),o=cn(t.blue),a=cn(t.master),l=Gs(n.hueVsHue,-180,180),s=Gs(n.hueVsSaturation,-1,1),u=Gs(n.hueVsLuma,-1,1);for(let d=0;d<nt;d+=1)$t(e,0,d,[zt(r,d),zt(i,d),zt(o,d),zt(a,d)]),$t(e,1,d,[Mt(zt(l,d),180),Mt(zt(s,d),1),Mt(zt(u,d),1),1])}function VS(e,t,n){let r=n*sS;$t(e,2,r,[t.key.hue.center/360,t.key.hue.range/180,t.key.hue.softness/180,1]),$t(e,2,r+1,[t.key.saturation.min,t.key.saturation.max,t.key.saturation.softness/.5,0]),$t(e,2,r+2,[t.key.luma.min,t.key.luma.max,t.key.luma.softness/.5,0]),$t(e,2,r+3,[Mt(t.correction.hueShift,180),Mt(t.correction.saturation,1),Mt(t.correction.luma,1),Mt(t.correction.temperature,1)]),$t(e,2,r+4,[Mt(t.correction.tint,1),.5,.5,1])}function zS(e,t,n){let r=new Float32Array(nt*Mr*4);WS(r,e,t);let i=0;for(let o of n)o.enabled&&(VS(r,o,i),i+=1);return r}var _f=new WeakMap;function qS(e,t,n){let r=_f.get(e);if(r?.hueCurves===t&&r.secondaries===n)return r.signature;let i=JSON.stringify([e,t,n]);return _f.set(e,{hueCurves:t,secondaries:n,signature:i}),i}function $S(e,t,n,r){let{curves:i,hueCurves:o}=n,a=qS(i,o,r);if(t.advancedSignature===a)return;let l=Uint8Array.from(zS(i,o,r),Xn);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,nt,Mr,0,e.RGBA,e.UNSIGNED_BYTE,l),t.advancedSignature=a}function Hs(e,t,n){e.uniform3f(t,n.hue/360,n.amount,n.level)}function Pf(e,t,n,r,i,o,a,l,s,u,d,f){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:m,hueCurves:p,secondaries:g}=n,y=Ia(m),x=Pa(p),w=Oa(g)?g.reduce((N,O)=>N+Number(O.enabled),0):0;(y||x||w>0)&&$S(e,t,n,g),Hs(e,t.shadowWheel,n.wheels.shadows),Hs(e,t.midtoneWheel,n.wheels.midtones),Hs(e,t.highlightWheel,n.wheels.highlights),e.uniform1f(t.rgbCurvesEnabled,y?1:0),e.uniform1f(t.hueCurvesEnabled,x?1:0),e.uniform1f(t.secondaryCount,w);for(let[N,O]of t.adjustUniforms)e.uniform1f(O,n.adjust[N]);for(let[N,O]of t.detailUniforms)e.uniform1f(O,n.details[N]);e.uniform1f(t.grainSeed,d),e.uniform1f(t.effectTime,f);for(let[N,O]of t.effectUniforms)e.uniform1f(O,n.effects[N]);let k=n.palette??(n.effects.engraving>0||n.effects.crosshatch>0?oS:Is),C=k[k.length-1]??Is[1];e.uniform1f(t.paletteSize,k.length),Sn(e,t.palette0,k[0]??Is[0]),Sn(e,t.palette1,k[1]??C),Sn(e,t.palette2,k[2]??C),Sn(e,t.palette3,k[3]??C),Sn(e,t.palette4,k[4]??C),Sn(e,t.palette5,k[5]??C),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 jS(e){if(!e.sourceHidden){let t=e.element.getAttribute(ki);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(Zn,"true"),e.element.style.setProperty("opacity","0","important"),e.sourceHidden=!0}function gt(e){let t=Xc.find(n=>n.path===e);if(!t)throw new Error(`Missing color-grading animation property: ${e}`);return t}var Of=gt("intensity"),Gf=gt("lut.intensity"),Hf=gt("adjust.exposure"),Bf=gt("effects.kuwahara"),Uf=[["blur",gt("effects.blur")],["bloom",gt("effects.bloom")],["kuwahara",Bf],["pixelate",gt("effects.pixelate")],["ascii",gt("effects.ascii")],["dither",gt("effects.dither")]],Wf=[Of,Gf,Hf,...Uf.map(([,e])=>e)];function jt(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 Cr(e,t){return t!==null&&(ed(t)||Wf.some(n=>jt(e,n)!==null))}function KS(e,t){let n=null;for(let[r,i]of Uf){let o=jt(e,i);o!==null&&(n??(n={...t.effects}),n[r]=o)}return n}function YS(e){let{element:t,grading:n}=e,r=jt(t,Of),i=jt(t,Gf),o=jt(t,Hf),a=KS(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 Vf(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 zf(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 We(e){if(e.destroyed||e.contextLost)return!1;let t=Df(e.element);if(!t)return e.hasDrawn||(e.canvas.style.display="none"),!1;let n=Ff(t);if(!n)return!1;let r=Ae(t)?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=OS(t);s&&GS(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 d=US(e,r);if(!d)return!1;let f=window.getComputedStyle(r),m=If(d.width,d.height,n.width,n.height,f.objectFit,f.objectPosition),{gl:p,program:g}=e;try{let y=YS(e),x=PS(e);Vf(p,g.texture,t);let w=jt(e.element,Bf)!==null,k=Mf(e,y,d,m,{preserveKuwahara:w});p.bindFramebuffer(p.FRAMEBUFFER,null),p.viewport(0,0,d.width,d.height),p.useProgram(g.program),zf(p,g,k);let C=window.__player?.getTime?.(),N=typeof C=="number"&&Number.isFinite(C)?Math.max(0,C):fe(e.element)?Math.max(0,e.element.currentTime):0,O=e.grainSeed+Math.floor(N*60);return Pf(p,g,y,x,k.blurReady,k.bloomReady,k.kuwaharaReady,e.compare,d,m,O,N),Tr(p,g),jS(e),e.hasDrawn=!0,e.drawError=null,!0}catch(y){return e.drawError=y instanceof Error?y.message:"Shader draw failed",I("runtime.colorGrading.drawEntry",y),!1}}function XS(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 JS(){let e=document.createElement("canvas"),t=Us(e);return t?{canvas:e,...t,lut:null,effectTargets:null,kuwaharaTargets:null,effectError:null}:null}function QS(e,t){let n=t?void 0:window.__player?.getTime?.();return typeof n=="number"&&Number.isFinite(n)?Math.max(0,n):fe(e)?Math.max(0,e.currentTime):0}function ZS(e,t,n,r){let i=Df(t);if(!i)return null;let o=Ff(i);if(!o)return null;let a=XS(t,o,n);e.canvas.width=a.width,e.canvas.height=a.height;let l=Ae(i)?i:t,s=window.getComputedStyle(l),u=If(a.width,a.height,o.width,o.height,s.objectFit,s.objectPosition);return Vf(e.gl,e.program.texture,i),{dimensions:a,uv:u,effectTime:QS(t,r),grainSeed:Rf(t)+(fe(t)?Math.floor(t.currentTime*60):0)}}async function ev(e,t,n,r,i=!1){let o=ZS(e,t,r,i);if(!o)return null;let{dimensions:a,uv:l,grainSeed:s,effectTime:u}=o,d=[];for(let f of n.slice(0,32)){let m=Fi(f.grading);if(!m){d.push({id:f.id,dataUrl:null,error:"Invalid grading"});continue}let p=null;try{m.lut&&(e.lut?.src!==m.lut.src&&(e.lut=AS(e,m.lut.src,await vS(m.lut.src))),p=e.lut),d.push({id:f.id,dataUrl:tv(e,m,p,a,l,s,u)})}catch(g){d.push({id:f.id,dataUrl:null,error:ao(g)})}}return{...a,images:d}}function tv(e,t,n,r,i,o,a){let{canvas:l,gl:s,program:u}=e,d=Mf(e,t,r,i,{releaseIdleTargets:!1});return s.bindFramebuffer(s.FRAMEBUFFER,null),s.viewport(0,0,r.width,r.height),s.useProgram(u.program),zf(s,u,d),n||(e.lut=null),Pf(s,u,t,n,d.blurReady,d.bloomReady,d.kuwaharaReady,vn,r,i,o,a),Tr(s,u),l.toDataURL("image/png")}function ot(e,t,n,r){t.addEventListener(n,r),e.cleanup.push(()=>t.removeEventListener(n,r))}function nv(e){e.animationFrame!==null&&(window.cancelAnimationFrame(e.animationFrame),e.animationFrame=null),e.videoFrameHandle!==null&&fe(e.element)&&(e.element.cancelVideoFrameCallback?.(e.videoFrameHandle),e.videoFrameHandle=null)}function kr(e){if(e.destroyed||!fe(e.element)||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,We(e),!e.destroyed&&!t.paused&&!t.ended&&kr(e)});return}e.animationFrame=window.requestAnimationFrame(()=>{e.animationFrame=null,We(e),!e.destroyed&&!t.paused&&!t.ended&&kr(e)})}function rv(e){let t=()=>{We(e)};if(ot(e,e.element,"load",t),ot(e,e.element,"loadedmetadata",t),ot(e,e.element,"loadeddata",t),ot(e,e.element,"seeked",t),ot(e,e.element,"timeupdate",t),ot(e,window,"resize",t),fe(e.element)&&(ot(e,e.element,"play",()=>kr(e)),ot(e,e.element,"pause",t)),ot(e,e.canvas,"webglcontextlost",n=>{n.preventDefault(),e.contextLost=!0,e.drawError="WebGL context lost",e.canvas.style.display="none",Bs(e)}),ot(e,e.canvas,"webglcontextrestored",()=>{if(e.contextLost=!1,!_S(e)){e.contextLost=!0,e.drawError="WebGL context restore failed",Bs(e);return}e.drawError=null,We(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(),We(e)}))});o.observe(e.element,{attributes:!0,attributeFilter:["style"]}),e.cleanup.push(()=>o.disconnect())}}function iv(e){if(e.destroyed)return null;e.destroyed=!0,nv(e),e.resizeObserver?.disconnect();for(let t of e.cleanup)t();return e.cleanup.length=0,e.canvas.remove(),Vs(e),zs(e),Bs(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 qf(e,t){return e.removeAttribute("style"),t.id?e.id=`${qc}${t.id}`:e.removeAttribute("id"),e.className=nS,e.setAttribute(tS,"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 ov(e){return qf(document.createElement("canvas"),e)}function $f(e){let t=new WeakMap,n=new Set,r=[],i=null,o=null,a=Promise.resolve(),l=!1,s=(S,v,E)=>{let T=t.get(S);if(T)return T.grading=v,T.source=E,We(T),fe(S)&&!S.paused&&kr(T),!0;let L=r.pop();if(L)qf(L.canvas,S);else{let z=ov(S),X=Us(z);if(!X)return z.remove(),!1;L={canvas:z,gl:X.gl,program:X.program,effectTargets:null,kuwaharaTargets:null,effectError:null}}let G={element:S,...L,grading:v,compare:{...vn},lut:null,lutLoadingSrc:null,lutError:null,drawError:null,effectTargets:null,kuwaharaTargets:null,effectError:null,source:E,animationFrame:null,videoFrameHandle:null,resizeObserver:null,cleanup:[],touchedParent:null,parentInlinePosition:null,sourceHidden:!1,sourceInlineOpacity:null,sourceInlineOpacityPriority:"",sourceOpacityForCanvas:window.getComputedStyle(S).opacity||"1",sourceVisibleForCanvas:window.getComputedStyle(S).visibility!=="hidden",hasDrawn:!1,contextLost:!1,grainSeed:Rf(S),destroyed:!1};return t.set(S,G),n.add(S),rv(G),We(G),fe(S)&&!S.paused&&kr(G),!0},u=(S,v)=>{if(l)return!1;let E=wr(S);if(!E)return!1;let T=t.get(E);if(!T){let L=eo(E);if(!Cr(E,L)||!s(E,L,"attribute"))return!1;T=t.get(E)}return T?(T.compare=yS(v),We(T),!0):!1},d=S=>{let v=t.get(S);if(!v)return;let E=iv(v);E&&(v.contextLost||r.length>=iS?no(E,!0):r.push(E)),t.delete(S),n.delete(S)},f=()=>{if(l)return 0;let S=new Set;document.querySelectorAll(`video[${Qn}], img[${Qn}]`).forEach(E=>{if(!qt(E))return;S.add(E);let T=eo(E);Cr(E,T)&&(gf(E)||vf(E))?s(E,T,"attribute"):d(E)});for(let E of n){let T=t.get(E);T&&(!E.isConnected||T.source==="attribute"&&!S.has(E))&&d(E)}return n.size},m=()=>{if(l)return 0;let S=0;for(let v of n){let E=t.get(v);E&&We(E)&&(S+=1)}return S},p=async()=>{let S=new Set;for(let v of n){let E=t.get(v)?.grading.lut;if(!E?.src.trim()||(E.intensity??1)<=0)continue;let T=Ws(E.src);T.state==="pending"&&S.add(T.promise)}return S.size>0&&await Promise.allSettled(S),m(),S.size},g=()=>{if(l)return 0;let S=0;for(let v of n){let E=t.get(v);!E||!Wf.some(L=>jt(v,L)!==null)||fe(v)&&!v.paused&&!v.ended||We(E)&&(S+=1)}return S},y=(S,v)=>{if(l)return!1;let E=wr(S);if(!E)return!1;let T=Fi(v);return Cr(E,T)?s(E,T,"live"):(d(E),!0)},x=(S,v)=>{if(!qt(S))return!1;let E=t.get(S);if(!E){if(!v)return!1;let T=eo(S);return Cr(S,T)&&s(S,T,"attribute")}return E.sourceVisibleForCanvas=v,!v&&E.source==="attribute"&&d(S),!0},w=S=>{let v=wr(S);if(!v)return{state:"missing",message:"Media not found"};let E=t.get(v);if(E)return E.effectError?{state:"unavailable",message:E.effectError}:E.drawError?{state:"unavailable",message:E.drawError}:E.lutError?{state:"unavailable",message:`LUT error: ${E.lutError}`}:E.grading.lut&&E.lutLoadingSrc?{state:"pending",message:"Loading LUT"}:E.canvas.style.display==="none"?{state:"pending",message:"Waiting for media frame"}:{state:"active",message:E.lut?"Shader + LUT active":"Shader active"};let T=eo(v);return Cr(v,T)?!gf(v)&&!vf(v)?{state:"pending",message:"Waiting for visible media"}:{state:"unavailable",message:"WebGL unavailable"}:{state:"inactive",message:"No grading applied"}},k=async(S,v,E)=>{let T=async()=>{if(l||v.length===0)return null;let G=wr(S);return!G||(o??(o=JS()),!o)?null:ev(o,G,v,E?.maxDimension,E?.useMediaTime)},L=a.then(T,T);return a=L.then(()=>{},()=>{}),L},C=S=>{let v=wr(S);if(!fe(v))return null;if(!v.paused)return()=>{};let E=v.currentTime,T=v.loop,L=v.muted;return v.loop=!0,v.muted=!0,(v.ended||Number.isFinite(v.duration)&&E>=v.duration)&&(v.currentTime=0),e?.lease(v),v.play().catch(()=>{}),()=>{e?.release(v),v.pause(),v.loop=T,v.muted=L,v.currentTime=E}},N=()=>{if(!l){l=!0,i?.disconnect(),i=null;for(let S of n)d(S);for(let S of r)no(S,!0);r.length=0,o&&(no(o,!0),o=null)}};document.body&&(i=new MutationObserver(()=>f()),i.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[Qn]}));let O={refresh:f,redraw:m,redrawAnimated:g,waitForActiveLuts:p,setGrading:y,setCompare:u,setSourceVisibility:x,getStatus:w,renderPreviews:k,startPreviewPlayback:C,destroy:N},F=window;return F.__hf=F.__hf||{},F.__hf.colorGrading=O,f(),O}var av=500,sv=33,so=class{constructor(t){le(this,"_baseTime",0);le(this,"_playStartMs",null);le(this,"_rate",1);le(this,"_duration",1/0);le(this,"_nowMs");le(this,"_audioSource",null);le(this,"_lastReadMs",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,rate:l}=this._audioSource;!i.paused&&Number.isFinite(i.currentTime)&&(r=typeof l=="object"?nn(l,i.currentTime-a)+o:(i.currentTime-a)/(i.playbackRate>0?i.playbackRate:1)*this._rate+o)}if(r!==null)return this._lastReadMs=null,Number.isFinite(this._duration)&&r>=this._duration?this._duration:Math.max(0,r)}this._applyStallCorrection();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)}_applyStallCorrection(){if(this._playStartMs===null)return;let t=this._nowMs();if(this._lastReadMs!==null){let n=t-this._lastReadMs;n>av&&(this._playStartMs+=n-sv)}this._lastReadMs=t}play(){return this._playStartMs!==null||Number.isFinite(this._duration)&&this._baseTime>=this._duration?!1:(this._playStartMs=this._nowMs(),this._lastReadMs=null,!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(),this._lastReadMs=null)}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._lastReadMs=null),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._lastReadMs=null),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 lv=100,uv=8,cv=4096,qs=e=>e;function dv(e,t,n){return!(!!e.curve||e.viaX!==void 0&&e.viaY!==void 0)&&t==="linear"&&!n}function mv(e){let t=Math.ceil(e*lv);return Math.min(cv,Math.max(uv,t))}function fv(e,t,n,r,i){let{scheduledAt:o,elapsed:a,rate:l}=r,s=i??qs,u=k=>o+(k-a)/l,d=e.points[t],f=e.points[t+1],m=u(f.t);if(m<=o)return null;let p=Math.max(o,u(d.t)),g=m-p;if(g<=0)return null;if(dv(d,n,i))return{kind:"ramp",time:m,value:s(f.v)};let y=mv(g),x=Qu(e,Math.max(d.t,a),f.t,y,n),w=new Float32Array(y);for(let k=0;k<y;k+=1)w[k]=s(x[k]??0);return{kind:"curve",time:p,duration:g,values:w}}function pv(e,t,n,r){let i=[];for(let a=0;a+1<e.points.length;a+=1){let l=fv(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??qs)(mt(e,n.elapsed,t))}),i}function hv(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 Fr(e){for(let t of e)t.param.cancelScheduledValues(0)}function An(e,t){for(let n of e)typeof n.param.cancelAndHoldAtTime=="function"?n.param.cancelAndHoldAtTime(t):n.param.cancelScheduledValues(t)}function $s(e,t,n,r){if(t.points.length!==0)for(let i of e){if(Fr([i]),Ju(t)){let o=(i.map??qs)(t.points[0].v);i.param.setValueAtTime(o,r.scheduledAt);continue}hv(i.param,pv(t,n,r,i.map))}}function jf(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=$n(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 d=sa(l.target,t);d&&($s(u,l,d.scale,r),a.push(...u))}return a}function Kf(e){return e.lanes.find(t=>t.target===tn)??null}var gv=`\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`,js=new WeakMap;function Ks(e){return Yf.has(e)}var Yf=new WeakSet;function Ys(e){let t=js.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(gv)))}`;await e.audioWorklet.addModule(n),Yf.add(e)})().catch(n=>{throw js.delete(e),n}),js.set(e,t)),t}function bv(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,d=0;for(let m=0;m<i;m++){u+=s*(l()-u);let p=u*Math.pow(1-m/i,2.5);o[m]=p,d+=p*p}let f=Math.sqrt(d);if(f>0)for(let m=0;m<i;m++)o[m]=(o[m]??0)/f;return o}var ce=e=>typeof e=="number"?e:Number(e??0),Xs=e=>e/1e3;function Zf(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 d=u/i;a[u]=t==="sine"?Math.sin(2*Math.PI*d):4*Math.abs((d+.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 ep(e){try{e.stop()}catch{}e.disconnect()}function Js(e,t){return[{param:e},{param:t,map:n=>1-n}]}function tp(e,t,n){e.gain.value=n,t.gain.value=1-n}function Qs(e,t,n){return{input:e,output:e,update:t,automation:n,dispose:()=>e.disconnect()}}var xv=new Set(["peaking","highpass","lowpass"]),Xf=e=>Math.pow(10,e/20),yv=(e,t)=>{let n=e.createGain(),r=i=>{n.gain.value=Xf(ce(i.gain))};return r(t),Qs(n,r,{gain:[{param:n.gain,map:Xf}]})};function Nr(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),Qs(i,o,{frequency:[{param:i.frequency}],...xv.has(e)?{q:[{param:i.Q}]}:{},...t?{gain:[{param:i.gain}]}:{}})}}function Sv(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 Qs(i,()=>{})}}function Lr(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 vv={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))},Av=(e,t)=>{let n=e.createWaveShaper(),r=e.createGain(),i=e.createGain();r.connect(n).connect(i);let o=a=>{let l=vv[String(a.type)]??Math.tanh,s=Math.pow(10,ce(a.threshold)/20),u=8192,d=new Float32Array(u);for(let f=0;f<u;f++){let m=f/(u-1)*2-1;d[f]=l(m/Math.max(1e-6,s))*s}n.curve=d,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()}}},Ev=(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),tp(a,l,ce(u.mix))};return s(t),{input:n,output:r,update:s,automation:{time:[{param:i.delayTime,map:u=>Math.min(5,Xs(u))}],feedback:[{param:o.gain}],mix:Js(a.gain,l.gain)},dispose:()=>[n,r,i,o,a,l].forEach(u=>u.disconnect())}},_v=(e,t,n)=>{let r=e.createGain(),i=e.createGain(),o=e.createDelay(.5),a=Zf(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 d=f=>{o.delayTime.value=ce(f.delay)/1e3,l.gain.value=ce(f.depth)/1e3,a.playbackRate.value=ce(f.speed),tp(s,u,ce(f.mix))};return d(t),{input:r,output:i,update:d,automation:{delay:[{param:o.delayTime,map:Xs}],depth:[{param:l.gain,map:Xs}],speed:[{param:a.playbackRate}],mix:Js(s.gain,u.gain)},dispose:()=>{ep(a),[r,i,o,l,s,u].forEach(f=>f.disconnect())}}},wv=6,Cv=(e,t,n)=>{let r=e.createGain(),i=e.createGain(),o=e.createGain(),a=e.createGain(),l=Zf(e,String(t.type)==="1"?"sine":"triangle",ce(t.speed),n),s=e.createGain(),u=e.createGain(),d=e.createGain(),f=[];r.connect(o);let m=o;for(let g=0;g<wv;g++){let y=e.createBiquadFilter();y.type="allpass",y.Q.value=.7071,s.connect(y.frequency),m.connect(y),m=y,f.push(y)}l.connect(s),m.connect(u).connect(a),o.connect(d).connect(a),a.connect(i);let p=g=>{let y=1e3/Math.max(.1,ce(g.delay));for(let x of f)x.frequency.value=y;s.gain.value=y*ce(g.decay),l.playbackRate.value=ce(g.speed),o.gain.value=ce(g.in_gain),a.gain.value=ce(g.out_gain),u.gain.value=1,d.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:()=>{ep(l),[r,i,o,a,s,u,d,...f].forEach(g=>g.disconnect())}}},Rv=(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 d=`${ce(u.size)}:${ce(u.damping)}`;if(d!==l){let f=bv(e.sampleRate,ce(u.size),ce(u.damping)),m=e.createBuffer(1,f.length,e.sampleRate);m.getChannelData(0).set(f),i.buffer=m,l=d}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())}},Tv={"gain-node":yv,"biquad-peaking":Nr("peaking",!0),"biquad-lowshelf":Nr("lowshelf",!0),"biquad-highshelf":Nr("highshelf",!0),"biquad-highpass":Nr("highpass",!1),"biquad-lowpass":Nr("lowpass",!1),"worklet-compressor":Lr("hf-compressor"),"worklet-limiter":Lr("hf-limiter"),"worklet-gate":Lr("hf-gate"),"worklet-bitcrush":Lr("hf-bitcrush"),"worklet-pitchshift":Lr("hf-pitchshift"),waveshaper:Av,"delay-feedback":Ev,"chorus-lfo":_v,"allpass-phaser":Cv,convolver:Rv};function np(e){return e.nodes.some(t=>Bn(t.type)?.web.startsWith("worklet-")??!1)}function kv(e,t,n,r=0){let i=Bn(t);if(!i)throw new Error(`Unknown effect type: ${t}`);let o=Un(t,n);if((t==="highpass"||t==="lowpass")&&String(o.poles)==="1")return Sv(t)(e,o,r);let a=Tv[i.web];if(!a)throw new Error(`No Web Audio builder for ${i.web}`);return a(e,o,r)}function Jf(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 Qf(e){return Wn(e).map(t=>{let n=Un(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 rp(e,t,n=0){var f;let r=e.createGain(),i=e.createGain(),o=[],a=[],l=Jf(Wn(t)),s=r;for(let m of l){let p=null;if(m.preset){let g=e.createGain(),y=e.createGain(),x=e.createGain(),w=e.createGain();x.gain.value=m.amount,y.gain.value=1-m.amount,s.connect(g),g.connect(y).connect(w),p={entry:g,wet:x,dry:y,join:w},s=g}for(let g of m.nodes){let y=kv(e,g.type,g.params??{},n);s.connect(y.input),s=y.output,o.push({...g.id?{id:g.id}:{},type:g.type,handle:y})}p&&m.preset&&(s.connect(p.wet).connect(p.join),a.push({id:m.preset,...p}),s=p.join)}s.connect(i);let u=Qf(t),d={};for(let m of a)(d[f=m.id]??(d[f]=[])).push(...Js(m.wet.gain,m.dry.gain));return{input:r,output:i,presets:d,nodes:o,update(m){if(Qf(m)!==u)return!1;Wn(m).forEach((g,y)=>{let x=o[y];x&&(x.handle.update(Un(g.type,g.params)),g.id===void 0?delete x.id:x.id=g.id)});let p=0;for(let g of Jf(Wn(m))){if(!g.preset)continue;let y=a[p++];!y||y.id!==g.preset||(y.wet.gain.value=g.amount,y.dry.gain.value=1-g.amount)}return!0},dispose(){for(let{handle:m}of o)m.dispose();for(let{entry:m,wet:p,dry:g,join:y}of a)m.disconnect(),p.disconnect(),g.disconnect(),y.disconnect();r.disconnect(),i.disconnect()}}}var ip={version:1,nodes:[]},op={version:1,lanes:[]};function ap(e,t){let n=(typeof e.getAttribute=="function"?e.getAttribute(dt):null)??"";if(!n)return op;try{return Xu(gi(n),t)}catch{return op}}function En(e){let t=(typeof e.getAttribute=="function"?e.getAttribute(Ht):null)??"";if(!t)return{chain:ip,raw:""};try{return{chain:Gu(t),raw:t}}catch{return{chain:ip,raw:""}}}function sp(e){return ap(e,En(e).chain)}function lo(e,t,n,r,i){let{chain:o}=En(t),a=null,l=[],s=!1,u=0,d=()=>{try{a?(n.disconnect(a.input),a.output.disconnect(r),a.dispose()):n.disconnect(r)}catch{}a=null},f=(C,N)=>{if(C.nodes.length===0){n.connect(r);return}if(np(C)&&!Ks(e)){n.connect(r);let O=++u;Ys(e).then(()=>{s||O!==u||x(En(t).chain)}).catch(()=>{});return}try{let O=rp(e,C,N);n.connect(O.input),O.output.connect(r),a=O}catch{n.connect(r)}},m=(C,N)=>{l=N&&a?jf(ap(t,C),C,a.nodes,N,a.presets):[]},p=i?{...i}:null;f(o,p?.elapsed??0),m(o,p);let g=()=>{if(!p)return null;let C=typeof e.currentTime=="number"?e.currentTime:p.scheduledAt;return{scheduledAt:C,elapsed:p.elapsed+(C-p.scheduledAt)*p.rate,rate:p.rate}},y=C=>{let N=g();N&&(An(l,N.scheduledAt),m(C,N))},x=C=>{let N=g();An(l,N?.scheduledAt??0),d(),f(C,N?.elapsed??0),m(C,N)},w=null,k=t;return typeof MutationObserver<"u"&&typeof k?.nodeType=="number"&&(w=new MutationObserver(()=>{let C=En(t);l.length>0&&Fr(l),!a||!a.update(C.chain)?x(C.chain):y(C.chain)}),w.observe(k,{attributes:!0,attributeFilter:[Ht,dt]})),{reanchor:C=>{if(s)return;let N=g();N&&An(l,N.scheduledAt),p={...C},m(En(t).chain,p)},setRate:C=>{let N=g();s||!N||!Number.isFinite(C)||C<=0||C===N.rate||(p={...N,rate:C},An(l,N.scheduledAt),m(En(t).chain,p))},dispose:()=>{s=!0,w?.disconnect(),l.length>0&&An(l,typeof e.currentTime=="number"?e.currentTime:0),a?.dispose()}}}function lp(e,t){e.getFloatTimeDomainData(t);let n=0;for(let r=0;r<t.length;r++)n=Math.max(n,Math.abs(t[r]??0));return n}function Zs(e,t){let n=e.createGain();n.channelCount=2,n.channelCountMode="explicit";let r=e.createChannelSplitter(2),i=e.createAnalyser(),o=e.createAnalyser();i.fftSize=o.fftSize=2048,t.connect(n),n.connect(r),r.connect(i,0),r.connect(o,1);let a=new Float32Array(new ArrayBuffer(2048*4)),l=new Float32Array(new ArrayBuffer(2048*4));return{read:()=>({l:lp(i,a),r:lp(o,l)}),dispose:()=>{try{t.disconnect(n),n.disconnect(),r.disconnect()}catch{}}}}var up="runtime_web_audio_bypass";function el(e,t){return typeof e.getAttribute=="function"?e.getAttribute(t):null}function Dr(e,t){return el(e,t)!==null}function Mv(e){return Dr(e,"crossorigin")?!0:e.crossOrigin!=null}function Fv(e){return typeof e.baseURI=="string"&&e.baseURI?e.baseURI:typeof document<"u"?document.baseURI:""}function Nv(e){let t=typeof e.currentSrc=="string"?e.currentSrc:"";if(t)return[t];let n=el(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 Lv(e,t){let n;try{n=new URL(e,Fv(t))}catch{return null}return n.protocol!=="http:"&&n.protocol!=="https:"?null:n}function Dv(){return typeof window.origin=="string"?window.origin:window.location.origin}function Iv(e,t){if(typeof window>"u")return null;let n=Lv(e,t);if(!n)return null;let r=Dv(),i=r==="null";return!i&&n.origin===r||Mv(t)?null:i?"opaque_document_origin":"cross_origin_no_cors"}function dp(e){return(typeof e.currentSrc=="string"?e.currentSrc:"")?!0:Dr(e,"src")}function _n(e){for(let t of Nv(e)){let n=Iv(t,e);if(n)return{kind:"decode-only",reason:n,asset:t}}return{kind:"web-audio"}}function Pv(e){let t=[];Dr(e,Ht)&&t.push("fx-chain"),Dr(e,dt)&&t.push("automation"),Dr(e,Ai)&&t.push("audio-group");let n=Number.parseFloat(el(e,"data-volume")??"");return Number.isFinite(n)&&n>1&&t.push("above-unity-gain"),t}function Ov(){return typeof window<"u"&&!!window.__HF_EXPORT_RENDER_SEEK_CONFIG}var cp=new WeakSet,Gv={cross_origin_no_cors:"cross-origin media without a `crossorigin` opt-in is silent through createMediaElementSource (Web Audio spec); using native playback instead",opaque_document_origin:"this document\'s security origin is opaque (a sandbox without `allow-same-origin`), so no media is same-origin with it and createMediaElementSource would be silent (Web Audio spec); using native playback instead"},Hv={cross_origin_no_cors:"proxy or download the asset to a same-origin URL to keep it.",opaque_document_origin:"add `allow-same-origin` to the sandbox, or serve the asset with a `crossorigin` attribute and an `Access-Control-Allow-Origin` of `null` or `*`, to keep it."};function wn(e,t){if(t.kind==="web-audio"||Ov()||cp.has(e))return;let n=Pv(e);cp.add(e);let r={asset:t.asset,reason:t.reason,lostProcessing:n,note:Gv[t.reason]};xe({source:"hf-preview",type:"diagnostic",code:up,details:r});let i=n.length>0?` Native playback cannot reproduce: ${n.join(", ")} \\u2014 ${Hv[t.reason]}`:"";console.info(`[hyperframes] ${up}: "${t.asset}" (${t.reason}): Web Audio capture withheld; the track plays through native HTMLMediaElement output.${i}`)}function tl(e){return!Number.isFinite(e)||e<=0?1:e}function mp(e){return Be(e)}function Bv(e,t){t||e.paused||!ni().__hfDebug||console.debug("[hyperframes] webAudioTransport claimed fallback-playing element:",e.currentSrc||e.getAttribute("src")||"")}function Uv(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 f=n*a,m=u-f;return s&&m<=0?!1:(s?e.start(0,f+r,m):e.start(0,f+r),!0)}let d=-n/o;return s?e.start(i+d,r,u):e.start(i+d,r),!0}function uo(e,t,n){let r=Kf(sp(e));r&&$s([{param:t.gain}],r,hi.scale,n)}function Ir(e){return e.sourceKind==="buffer"}var co=class{constructor(){le(this,"_ctx",null);le(this,"_bufferCache",new Map);le(this,"_failedSrcs",new Set);le(this,"_mediaElementSources",new WeakMap);le(this,"_activeSources",[]);le(this,"_masterGain",null);le(this,"_monitorGain",null);le(this,"_masterVolume",1);le(this,"_masterMuted",!1);le(this,"_groups",new Map);le(this,"_metering",!1);le(this,"_masterTap",null);le(this,"_groupTaps",new Map);le(this,"_rateAnchorCtx",0);le(this,"_rateAnchorComp",0);le(this,"_rate",1);le(this,"_paused",!0);le(this,"_playGeneration",0)}async init(){try{return this._ctx=new AudioContext,this._masterGain=this._ctx.createGain(),this._monitorGain=this._ctx.createGain(),this._masterGain.connect(this._monitorGain),this._monitorGain.connect(this._ctx.destination),this.applyMasterGain(),this._metering&&this.attachMasterTap(),!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 I("webAudioTransport.fetch",new Error(`${i.status} ${n}`)),null;r=await i.arrayBuffer()}catch(i){return I("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),I("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=_n(t);if(o.kind!=="web-audio"){try{n.disconnect()}catch{}return this._mediaElementSources.delete(t),wn(t,o),null}return n}if(!this._ctx)return null;let r=_n(t);if(r.kind!=="web-audio")return wn(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=tl(l),d=this._ctx.createGain();d.gain.value=o;let f=this._ctx.currentTime,m=i-n,p={scheduledAt:f,elapsed:m,rate:u},g=lo(this._ctx,t,s,d,p);d.connect(this.resolveDestination(t,f,i,u)??this._masterGain),uo(t,d,p),this._rate=u,this._rateAnchorCtx=f,this._rateAnchorComp=i;let y={fx:g,el:t,sourceNode:s,sourceKind:"media-element",gainNode:d,compositionStart:n,mediaStart:r,scheduledAt:f,priorMuted:t.muted,priorVolume:t.volume,mediaPlaybackRate:Pe(t),bounded:!1};return t.volume=1,this._activeSources.push(y),this._paused=!1,y}catch(s){return I("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(m){I("webAudioTransport.groupReanchor",m)}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=()=>ma(n,t),s=l(),u=this._ctx.createGain();u.gain.value=s?.hasAttribute("data-hidden")?0:1,u.connect(a);let d=this._ctx.createGain();d.gain.value=mp(da(s)),d.connect(u);let f=lo(this._ctx,s??{getAttribute:()=>null},o,d,r);return s&&uo(s,d,r),this._groups.set(t,{input:o,output:a,isPresent:()=>l()!==null,fader:d,muteGain:u,fx:f,generation:this._playGeneration,reanchor:m=>{Fr([{param:d.gain}]);let p=l();d.gain.value=mp(da(p)),u.gain.value=p?.hasAttribute("data-hidden")?0:1,f?.reanchor(m),p&&uo(p,d,m)},dispose:()=>{try{f?.dispose(),o.disconnect(),d.disconnect(),u.disconnect(),a.disconnect()}catch{}}}),this.attachGroupTap(t,a),o}startMetering(){this._metering=!0,this.attachMasterTap();for(let[t,n]of this._groups)this.attachGroupTap(t,n.output)}stopMetering(){this._metering=!1,this._masterTap?.dispose(),this._masterTap=null;for(let t of this._groupTaps.values())t.dispose();this._groupTaps.clear()}readLevels(){let t={};for(let[n,r]of this._groupTaps)this._groups.get(n)?.isPresent()&&(t[n]=r.read());return{master:this._masterTap?.read()??{l:0,r:0},groups:t}}attachMasterTap(){this._ctx&&this._masterGain&&!this._masterTap&&(this._masterTap=Zs(this._ctx,this._masterGain))}attachGroupTap(t,n){this._metering&&this._ctx&&!this._groupTaps.has(t)&&this._groupTaps.set(t,Zs(this._ctx,n))}setGroupMuted(t,n){let r=this._groups.get(t);if(r)try{r.muteGain.gain.value=n?0:1}catch(i){I("webAudioTransport.setGroupMuted",i)}}resolveDestination(t,n,r,i){if(!this._masterGain)return null;let o=bc(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 d=tl(s),f=Pe(t),m=d*f,p=this._ctx.createBufferSource();p.buffer=n,p.playbackRate.value=m;let g=this._ctx.createGain();g.gain.value=a;let y=o-r,x=this._ctx.currentTime,w={scheduledAt:x,elapsed:y,rate:d},k=lo(this._ctx,t,p,g,w);if(g.connect(this.resolveDestination(t,x,o,d)??this._masterGain),uo(t,g,w),this._rate=d,this._rateAnchorCtx=x,this._rateAnchorComp=o,!Uv(p,{elapsed:y,mediaStart:i,scheduledAt:x,globalRate:d,mediaRate:f,clipDuration:u}))return p.disconnect(),k?.dispose(),g.disconnect(),null;let C=t.muted;t.muted=!0,Bv(t,C);let N={fx:k,el:t,sourceNode:p,sourceKind:"buffer",gainNode:g,compositionStart:r,mediaStart:i,scheduledAt:x,priorMuted:C,priorVolume:t.volume,mediaPlaybackRate:f,bounded:Number.isFinite(u)&&u>0};return this._activeSources.push(N),this._paused=!1,p.addEventListener("ended",()=>this.handleSourceEnded(p,N,t,C)),N}catch(d){return I("webAudioTransport.schedule",d),null}}setRate(t){let n=tl(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{Ir(r)&&(r.sourceNode.playbackRate.value=n*r.mediaPlaybackRate),r.fx?.setRate(n)}catch(i){I("webAudioTransport.setRate",i)}for(let r of this._groups.values())try{r.fx?.setRate(n)}catch(i){I("webAudioTransport.setRate.group",i)}return!0}hasBoundedActiveSources(){return this._activeSources.some(t=>Ir(t)&&t.bounded)}stopAll(){for(let t of this._activeSources){try{Ir(t)&&t.sourceNode.stop(),t.sourceNode.disconnect(),t.fx?.dispose(),t.gainNode.disconnect()}catch{}Ir(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=Be(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){I("webAudioTransport.setElementVolume",o)}}setMuted(t){this._masterMuted=t,this.applyMasterGain()}applyMasterGain(){this._monitorGain&&(this._monitorGain.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&&Ir(n))}routesElement(t){return!this._paused&&this._activeSources.some(n=>n.el===t)}destroy(){this.stopAll(),this.stopMetering();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._monitorGain=null,this._masterVolume=1,this._masterMuted=!1}};var Pr="data-hf-studio-manual-edit-gesture";var fp=`[${Pr}]`;function pp(e,t){let n=e.defaultView?.MutationObserver??globalThis.MutationObserver;if(!n||!e.documentElement)return{isActive:()=>e.querySelector(fp)!=null,observing:!1,disconnect:()=>{}};let r=new Set(e.querySelectorAll(fp)),i=l=>{for(let s of l){let u=s.target;ke(u)&&(u.hasAttribute(Pr)?r.add(u):r.delete(u))}},o=l=>{l.length!==0&&(i(l),t())},a=new n(o);return a.observe(e.documentElement,{subtree:!0,attributes:!0,attributeFilter:[Pr]}),{observing:!0,isActive:()=>{o(a.takeRecords());for(let l of r){if(l.isConnected&&l.hasAttribute(Pr))return!0;r.delete(l)}return!1},disconnect:()=>{a.disconnect(),r.clear()}}}var hp=333.3333333333333;function gp(e){return e.isPlaying&&e.hasCapturedTimeline&&e.currentTimeSeconds<2?!1:e.compositionChanged===!0?!0:Number.isInteger(e.tick)&&e.tick>0&&e.tick%60===0}var Wv=/^\\s*spring\\(\\s*([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+))\\s*\\)\\s*$/;function bp(e){return Math.max(0,Math.min(1,e))}function xp(e){let t=Wv.exec(e);if(!t)return null;let n=Number(t[1]);return Number.isFinite(n)?bp(n):null}function yp(e,t){if(!Number.isFinite(e))return e;if(e<=0)return 0;if(e>=1)return 1;let n=bp(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 Vv=/^\\s*wiggle\\(\\s*(\\d+)\\s*,\\s*(easeOut|easeInOut|anticipate|uniform)\\s*(?:,\\s*([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?)\\s*)?\\)\\s*$/,zv=Math.PI*2;function qv(e){let t=Vv.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 $v(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(zv*t*e)}function Sp(e,t){let n=qv(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=>$v(a,n.wiggles,n.type,n.amplitude);return t?.set(r,o),o}var jv=24,vp=e=>e>=1?1:0,Kv=e=>e,mo=String.raw`([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)`,Yv=new RegExp(String.raw`^\\s*M\\s*0\\s*,\\s*0\\s+C\\s*${mo}\\s*,\\s*${mo}\\s+${mo}\\s*,\\s*${mo}\\s+1\\s*,\\s*1\\s*$`,"i");function Ap(e,t,n){let r=1-e;return 3*r*r*e*t+3*r*e*e*n+e*e*e}function Xv(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<jv;l+=1){let s=(o+a)/2;Ap(s,t,r)<e?o=s:a=s}return Ap((o+a)/2,n,i)}function Jv(e){let t=Yv.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=>Xv(a,n,r,i,o)}function Qv(e,t){if(!e.startsWith("spring("))return null;let n=xp(e);if(n===null)return null;let r=t.get(n);if(r)return r;let i=o=>yp(o,n);return t.set(n,i),i}function Zv(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=Jv(n);return i&&t.set(n,i),i}function Ep(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"?vp:Sp(s,i)??Qv(s,r)??Zv(s,n),a=(s,u,d=[])=>{let f=o(s);return f||(typeof s=="string"&&/^(?:hold|spring|wiggle|custom)(?:\\(|$)/.test(s.trim())&&He("custom_ease_parse_failed",{ease:s}),t.call(u,s,...d)??Kv)};e.parseEase=function(u,...d){return a(u,this,d)};let l=e.registerEase;if(typeof l=="function"){l("hold",vp);let s=u=>{let d=f=>f;d.config=(...f)=>a(`${u}(${f.join(",")})`,e),l(u,d)};s("spring"),s("wiggle"),s("custom")}return e.__hfCustomEaseInstalled=!0,!0}var eA="first-frame",tA=3;function nA(e){let t=e.ownerDocument?.defaultView;return t&&e instanceof t.Element?!0:e instanceof Element}function rA(e){if(!nA(e)||e.tagName!=="AUDIO"&&e.tagName!=="VIDEO")return!1;let t=e.ownerDocument?.defaultView;return t&&e instanceof t.HTMLMediaElement?!0:e instanceof HTMLMediaElement}function iA(e){return e.hasAttribute("data-start")||e.hasAttribute("data-track-index")}function oA(e,t,n){let r=e;for(;r;){if(iA(r)&&!or(r,{currentTime:0,compositionDuration:Number.POSITIVE_INFINITY,canonicalFps:30,exportRenderSeek:!1,timelineRegistry:n,resolver:t}))return!1;r=r.parentElement}return!0}function _p(e,t,n,r){return t==="all"?!0:oA(e,n,r)}function aA(e,{scope:t="all"}={}){let n=e.defaultView,r=Ue({documentRef:e,timelineRegistry:n?.__timelines,includeAuthoredTimingAttrs:!0}),i=Array.from(e.querySelectorAll("video, audio")).filter(rA).filter(l=>_p(l,t,r,n?.__timelines??{})).filter(l=>l.readyState<tA),o=Array.from(e.querySelectorAll("img")).filter(l=>_p(l,t,r,n?.__timelines??{})).filter(l=>!l.complete),a=e.fonts?.status==="loading";return{pendingMedia:i,pendingImages:o,fontsLoading:a}}function sA(e,{pendingMedia:t,pendingImages:n,fontsLoading:r},i){let o=t.map(s=>new Promise(u=>{if(s.error){u();return}let d=()=>{s.removeEventListener("canplay",d),s.removeEventListener("error",d),i.removeEventListener("abort",d),u()};s.addEventListener("canplay",d),s.addEventListener("error",d),i.addEventListener("abort",d,{once:!0})})),a=n.map(s=>s.decode?s.decode().catch(()=>{}):Promise.resolve()),l=r&&e.fonts?e.fonts.ready.then(()=>{}):Promise.resolve();return Promise.all([...o,...a,l]).then(()=>{})}function lA(e,t,{scope:n="all"}={}){let r=aA(e,{scope:n});return r.pendingMedia.length===0&&r.pendingImages.length===0&&!r.fontsLoading?null:sA(e,r,t)}var uA=50;function cA(e,t){let n=e.defaultView;return!n||n.__renderReady||!n.__hf?null:new Promise(r=>{let i,o=()=>{i!==void 0&&clearTimeout(i),t.removeEventListener("abort",o),r()};if(t.aborted){o();return}t.addEventListener("abort",o,{once:!0});let a=()=>{if(n.__renderReady){o();return}i=setTimeout(a,uA)};a()})}var dA=50,mA=2,fA=1500;function nl(e,t){return new Promise(n=>{if(t.aborted){n(-1);return}let r=0,i=()=>{e.cancelAnimationFrame?.(r),n(-1)};t.addEventListener("abort",i,{once:!0}),r=e.requestAnimationFrame(o=>{t.removeEventListener("abort",i),n(o)})})}function pA(e,t){let n=e.defaultView;return n?(async()=>{let r=await nl(n,t);if(t.aborted)return;let i=await nl(n,t),o=0;for(;!t.aborted&&o<mA;){if(i-r>=fA)return;let a=await nl(n,t);if(t.aborted)return;o=a-i<dA?o+1:0,i=a}})():null}var hA=8e3;function gA(e,t,n={}){let r=n.inputs??[(u,d)=>lA(u,d,{scope:n.scope}),cA,pA],i=new AbortController,o=r.map(u=>u(e,i.signal)).filter(u=>u!==null);if(o.length===0){t({timedOut:!1});return}let a=n.timeoutMs??hA,l,s=new Promise(u=>{l=setTimeout(()=>u("timed-out"),a)});Promise.race([Promise.all(o).then(()=>"done"),s]).then(u=>{clearTimeout(l),i.abort(),t({timedOut:u==="timed-out"})})}function wp(e,t,n={}){gA(e,t,{...n,scope:eA})}var ol=new Map,Or=new Map,rl=new Map,il=()=>{},Rp=()=>{},Cp=0;function al(e){return/^[a-z][a-z0-9-]{0,63}$/.test(e)}function Tp(e){let t=(rl.get(e)??0)+1;return rl.set(e,t),t}function kp(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0?e:(Cp-=1,Cp)}function sl(e,t){let n=Or.get(e);if(!n)return;let r=()=>rl.get(e)===t.generation&&Or.get(e)===n;try{Promise.resolve(n(t.payload)).then(()=>{r()&&Rp(e,t.requestId)},i=>{r()&&il(e,t.requestId,i)})}catch(i){r()&&il(e,t.requestId,i)}}function Mp(e){il=e}function Fp(e){Rp=e}function fo(e,t,n){if(!al(e))return;let r={payload:t,requestId:kp(n),generation:Tp(e)};ol.set(e,r),sl(e,r)}function po(e,t){al(e)&&(ol.delete(e),sl(e,{payload:void 0,requestId:kp(t),generation:Tp(e)}))}function Np(e,t){if(!al(e))throw new Error(`Invalid HyperFrames runtime-data channel: ${e}`);Or.set(e,t);let n=ol.get(e);return n&&sl(e,n),()=>{Or.get(e)===t&&Or.delete(e)}}var Lp=!1;function st(e){if(e){if(typeof e.pause!="function"){Lp||(Lp=!0,He("timeline_missing_pause",{}));return}try{e.pause()}catch(t){I("runtime.timeline.pause",t)}}}function yA(){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 SA(e,t){return t!==null&&e.length===t.length&&e.every((n,r)=>n===t[r])}function Dp(e,t,n){let r=null,i=!0;return()=>{let o=e();if(o.length===0)return r=null,i=!0,!0;if(SA(o,r))return i;r=o,i=!1;let a=o.length===1?o[0]:Promise.all(o);return Promise.resolve(a).then(()=>{r===o&&(i=!0,t())},l=>{r===o&&(i=!0,n(l),t())}),i}}function Ip(){let e=od(),t=()=>{};iu(xe),Mp((c,h,b)=>{xe({source:"hf-preview",type:"runtime-data-error",channel:c,requestId:h,message:b instanceof Error?b.message:String(b)})}),Fp((c,h)=>{try{t()}catch(b){xe({source:"hf-preview",type:"runtime-data-error",channel:c,requestId:h,message:b instanceof Error?b.message:String(b)});return}xe({source:"hf-preview",type:"runtime-data-applied",channel:c,requestId:h})}),Ji(document),Ds(document),xc(document);let n=yA();e.canonicalFps=n.fps??e.canonicalFps,nu(e.canonicalFps),window.__HF_EXPORT_RENDER_SEEK_CONFIG&&console.info("[hyperframes] render runtime fps",{canonicalFps:e.canonicalFps,source:n.source,rawFpsSource:n.rawFpsSource,rawFps:n.rawFps,fallbackReason:n.fallbackReason});let r=null,i=null,o=null,a=[],l=new Set,s=null,u=new Set,d=(c,h,b)=>{u.has(c)||(u.add(c),He(h,b))};if(typeof window.__hfRuntimeTeardown=="function")try{window.__hfRuntimeTeardown()}catch(c){I("runtime.init.site1",c)}let f=new so;e.transportClock=f;let m=new co,p=!1;m.init().then(c=>{p=c}),window.__hf=window.__hf||{};let g=c=>c.closest("[data-hidden]")!==null||Ei(c.ownerDocument,c),y=()=>{let c=window.gsap,h=window;if(!(!c?.registerPlugin||h.__hfAutoNoopRegistered))try{c.registerPlugin({name:"_auto",init:()=>!1}),h.__hfAutoNoopRegistered=!0}catch(b){d("auto_marker_install_failed","auto_marker_install_failed",{reason:"threw"}),I("runtime.autoMarker.install",b)}},x=()=>{let c=window.gsap;if(!c){d("custom_ease_missing_gsap","custom_ease_install_failed",{reason:"missing_gsap"});return}try{Ep(c)||d("custom_ease_no_parse_ease","custom_ease_install_failed",{reason:"no_parseEase"})}catch(h){d("custom_ease_install_threw","custom_ease_install_failed",{reason:"threw"}),I("runtime.customEase.install",h)}};y(),x(),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{du(document)}catch(c){I("runtime.init.cssVariables",c)}window.__timelines=window.__timelines||{};let w=()=>{let c=document.querySelector(\'[data-composition-id][data-root="true"]\');if(Ae(c))return c;let h=Array.from(document.querySelectorAll("[data-composition-id]"));return h.find(b=>!b.parentElement?.closest("[data-composition-id]"))??h[0]??null};if(Array.isArray(window.__timelines)){let c=window.__timelines,h=w()?.getAttribute("data-composition-id")??"root",b={};if(c.length===1)b[h]=c[0];else for(let A=0;A<c.length;A++)b[`tl-${A}`]=c[A];window.__timelines=b}let k=w();k&&!k.hasAttribute("data-start")&&k.setAttribute("data-start","0");let C=c=>{a.push(c)},N=(c,h,b)=>{let A=b??`${c}:${JSON.stringify(h)}`;l.has(A)||(l.add(A),xe({source:"hf-preview",type:"diagnostic",code:c,details:h}))},O=c=>{let h={scale:1,focusX:960,focusY:540},b=[],A=[],_={time:c.getTime(),duration:c.getDuration(),isPlaying:c.isPlaying(),renderMode:!1,timelineDirty:!1};return{play:c.play,pause:c.pause,seek:c.seek,getTime:c.getTime,getDuration:c.getDuration,isPlaying:c.isPlaying,getMainTimeline:()=>null,getElementBounds:()=>{},getElementsAtPoint:()=>{},setElementPosition:()=>{},previewElementPosition:()=>{},setElementKeyframes:()=>{},setElementScale:()=>{},setElementFontSize:()=>{},setElementTextContent:()=>{},setElementTextColor:()=>{},setElementTextShadow:()=>{},setElementTextFontWeight:()=>{},setElementTextFontFamily:()=>{},setElementTextOutline:()=>{},setElementTextHighlight:()=>{},setElementVolume:()=>{},setStageZoom:()=>{},getStageZoom:()=>h,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>b,addElement:()=>!1,removeElement:()=>!1,updateElementTiming:()=>!1,setElementTiming:()=>{},updateElementSrc:()=>!1,updateElementLayer:()=>!1,updateElementBasePosition:()=>!1,markTimelineDirty:()=>{},isTimelineDirty:()=>!1,rebuildTimeline:()=>{},ensureTimeline:()=>{},enableRenderMode:()=>{},disableRenderMode:()=>{},renderSeek:c.renderSeek,getElementVisibility:()=>({visible:!1}),getVisibleElements:()=>A,getRenderState:()=>({..._,time:c.getTime(),duration:c.getDuration(),isPlaying:c.isPlaying()})}},F=1/60,S=.75,v=.05,E=100,T=240,L=c=>{if(c instanceof Error)return c.message||String(c);if(typeof c=="string")return c;try{return JSON.stringify(c)}catch{return String(c??"")}},G=c=>{let h=c.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"}},z=c=>{if(c==null||c.trim()==="")return null;let h=Number.parseFloat(c);return!Number.isFinite(h)||h<=0?null:`${h}px`},X=()=>w(),M=()=>{let c=X();if(!c)return;let h=z(c.getAttribute("data-width")),b=z(c.getAttribute("data-height"));h&&(c.style.width=h),b&&(c.style.height=b),h&&c.style.setProperty("--comp-width",h),b&&c.style.setProperty("--comp-height",b),h&&(document.documentElement.style.width=h),b&&(document.documentElement.style.height=b),h&&(document.body.style.width=h),b&&(document.body.style.height=b)},V=()=>{let c=X(),h=Array.from(document.querySelectorAll("[data-composition-id]")).filter(b=>b.hasAttribute("data-duration")||b.hasAttribute("data-end"));for(let b of h){if(c&&b===c)continue;let A=b.getAttribute("data-duration"),_=b.getAttribute("data-end");A!=null&&!b.hasAttribute(on)&&b.setAttribute(on,A),_!=null&&!b.hasAttribute(an)&&b.setAttribute(an,_),b.removeAttribute("data-duration"),b.removeAttribute("data-end")}},te=()=>{let c=X();if(!c)return;c.style.position||(c.style.position="relative"),c.style.overflow="hidden";let h=z(c.getAttribute("data-width")),b=z(c.getAttribute("data-height"));h&&(c.style.width=h),b&&(c.style.height=b);let A=Array.from(c.children);for(let _ of A){let R=_.tagName.toLowerCase();if(R==="script"||R==="style"||R==="link"||R==="meta"||!_.hasAttribute("data-start")||_.hasAttribute("data-hf-autostamped"))continue;let D=(_.style.top==="0px"||_.style.top==="0")&&(_.style.left==="0px"||_.style.left==="0")&&_.style.width==="100%"&&_.style.height==="100%",H=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(_.style.transform);if(D&&H&&!_.hasAttribute("data-width")&&!_.hasAttribute("data-height")){let Q=_.style.top,we=_.style.left,Gt=_.style.width,Fe=_.style.height;_.style.top="",_.style.left="",_.style.width="",_.style.height="";let Qe=window.getComputedStyle(_);Qe.top!=="auto"||Qe.bottom!=="auto"||Qe.left!=="auto"||Qe.right!=="auto"||Qe.width!=="0px"||Qe.height!=="0px"||(_.style.top=Q,_.style.left=we,_.style.width=Gt,_.style.height=Fe)}let Y=window.getComputedStyle(_),re=Y.position;if(re!=="absolute"&&re!=="fixed"&&(_.style.position="absolute"),!!_.style.top||!!_.style.bottom||Y.top!=="auto"||Y.bottom!=="auto"||(_.style.top="0"),!!_.style.left||!!_.style.right||Y.left!=="auto"||Y.right!=="auto"||(_.style.left="0"),R!=="audio"){let Q=z(_.getAttribute("data-width")),we=z(_.getAttribute("data-height")),Gt=Y.width!=="0px"&&Y.width!=="auto",Fe=Y.height!=="0px"&&Y.height!=="auto";Q?!_.style.width&&!Gt&&(_.style.width=Q):!_.style.width&&Y.width==="0px"&&(_.style.width="100%"),we?!_.style.height&&!Fe&&(_.style.height=we):!_.style.height&&Y.height==="0px"&&(_.style.height="100%")}}},B=c=>Ue({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:c}),q=null,$=c=>{let h=q;q=B(!0);try{return c()}finally{q=h}},J=c=>c&&q?q:B(c),j=(c,h=0,b)=>J(b?.includeAuthoredTimingAttrs??!0).resolveStartForElement(c,h),P=(c,h)=>J(h?.includeAuthoredTimingAttrs??!0).resolveDurationForElement(c),U=c=>{let h=c.closest("[data-composition-id]"),b=h?j(h,0):null,A=h?P(h,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:h,inheritedStart:b,inheritedDuration:A}},ee=c=>J(!0).resolveMediaStartForElement(c);window.__hfResolveMediaStartSeconds=ee,a.push(()=>{window.__hfResolveMediaStartSeconds===ee&&delete window.__hfResolveMediaStartSeconds});let pe=!!document.querySelector("[data-composition-src]"),ne=!1;{let c=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let h of c){let b=h.getAttribute("data-composition-id");if(b&&h.children.length===0&&document.querySelector(`template#${CSS.escape(b)}-template`)){ne=!0;break}}}let W=!pe&&!ne,K=c=>{if(!c||typeof c.duration!="function")return null;try{let h=Number(c.duration());return Number.isFinite(h)?Math.max(0,h):null}catch{return null}},be=c=>typeof c=="number"&&Number.isFinite(c)&&c>F,Oe=()=>{let c=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));return c.length===0?null:$(()=>{let h=[];for(let A of c){let _=ee(A);if(!Number.isFinite(_))continue;let R=Si(A);R==null||R<=F||h.push(Math.max(0,_)+R)}let{seconds:b}=ar({authoredDurationSeconds:null,clipEndsSeconds:h});return b!==null&&b>F?b:null})},Tn=()=>{let c=X();if(!c)return null;let h=window.__timelines??{},b=Ue({timelineRegistry:h,includeAuthoredTimingAttrs:!0}),A=Me(c.getAttribute("data-duration")),_=[],R=Array.from(c.querySelectorAll("[data-composition-id][data-start]"));for(let H of R){if(!ke(H)||H.parentElement?.closest("[data-composition-id]")!==c)continue;let re=b.resolveStartForElement(H,0),Se=b.resolveDurationForElement(H);!Number.isFinite(re)||Se==null||Se<=0||_.push(Math.max(0,re)+Se)}let{seconds:D}=ar({authoredDurationSeconds:null,clipEndsSeconds:[A,..._]});return D!==null&&D>F?D:null},lt=c=>c.hasAttribute("data-composition-id")||c.hasAttribute("data-composition-src"),gh=c=>{let h=window;return!!(h.lottie||h.DotLottie||c.querySelector("[data-lottie-src]"))},bl=()=>{let c=X();if(!c)return ar({authoredDurationSeconds:null,clipEndsSeconds:[]});let h=Ue({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:!0}),b=[];for(let _ of Array.from(c.querySelectorAll("[data-start]"))){if(!ke(_))continue;let R=h.resolveStartForElement(_,0);if(!Number.isFinite(R))continue;let D=h.resolveDurationForElement(_);D!=null?b.push(Math.max(0,R)+D):(he(_)||lt(_))&&b.push(null)}gh(c)&&b.push(null);let A=ar({authoredDurationSeconds:null,clipEndsSeconds:b});return A.pendingClips>0?{...A,seconds:null,source:"unresolved",reason:"a clip\'s length is pending"}:A},Ao=null,bh=()=>{if(kn)return bl();let c=Mn();return Ao?.revision!==c&&(Ao={revision:c,result:bl()}),Ao.result},xh=c=>{window.__hf=window.__hf||{},window.__hf.durationSource={source:c.source,seconds:c.seconds,pendingClips:c.pendingClips},c.source==="derived"&&N("composition_duration_derived",{source:c.source,seconds:c.seconds,pendingClips:c.pendingClips},`composition_duration_derived:${c.seconds}`)},yh=()=>{let c=Oe();return typeof c!="number"||!Number.isFinite(c)||c<=F?null:c},Sh=c=>be(c)?Math.max(F,c*S):F,xl=()=>{let c=0;for(let h of e.deterministicAdapters){let b=h.getInferredDurationSeconds;if(typeof b!="function")continue;let A=null;try{A=b()}catch(_){I("runtime.init.adapterDuration",_)}typeof A=="number"&&Number.isFinite(A)&&A>0&&(c=Math.max(c,A))}return c>F?c:null},kn=!1,yl=()=>kn&&window.__HF_EXPORT_RENDER_SEEK_CONFIG!=null,vh=["data-start","data-duration","data-end","data-composition-id","data-composition-src","data-composition-file","data-root","data-hf-authored-duration","data-hf-authored-end","data-hf-auto-start",vi,"data-playback-rate","data-automation","data-playback-start","data-media-start","id","src"],Sl=["loadedmetadata","durationchange","emptied"],Br=null,vl=-1,Al=null,Dt=null,El=0,Kt=()=>{},Yt=()=>{El+=1,Kt()},_l=()=>({media:yh(),authoredComposition:Tn()}),Ah=()=>{let c=window.__timelines??{},h="";for(let b of Object.keys(c)){let A=c[b];A&&(h+=`${b}=${K(A)??"?"};`)}return h},Eh=()=>{if(!(Dt||typeof MutationObserver>"u")){Dt=new MutationObserver(Yt),Dt.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0,attributeFilter:vh});for(let c of Sl)document.addEventListener(c,Yt,!0);a.push(()=>{Dt?.disconnect(),Dt=null,Yt();for(let c of Sl)document.removeEventListener(c,Yt,!0)})}},Mn=()=>{Eh(),Dt&&Dt.takeRecords().length>0&&Yt();let c=Ah();return c!==Al&&(Al=c,Yt()),El},wl=c=>kn?_l():(c??(c=Mn()),Br&&vl===c||(vl=c,Br=_l()),Br),ze=(c,h=0,b)=>{let A=K(c),{media:_,authoredComposition:R}=wl(b),D=xl(),H=Math.max(_??0,R??0,D??0),Y=Number.isFinite(h)&&h>F?h:0,re=0,Se=null;return be(A)?re=Math.max(A,H,Y):be(H)?re=Math.max(H,Y):Y>0?re=Y:(Se=bh(),re=Se.seconds??0),Se?xh(Se):window.__hf?.durationSource&&delete window.__hf.durationSource,re>0?Math.max(0,re):0},Eo=()=>{let c=window.__timelines??{},h=de=>{let se=Object.entries(c).filter(me=>!!me[1]&&typeof me[1].play=="function"&&typeof me[1].pause=="function");if(se.length!==1)return{timeline:null};let ie=se[0];if(!ie)return{timeline:null};let[ve,Ee]=ie;return{timeline:Ee,selectedTimelineIds:[ve],selectedDurationSeconds:K(Ee),diagnostics:{code:"root_timeline_sole_registered_fallback",details:{reason:de,soleTimelineId:ve}}}},b=Ue({timelineRegistry:c,includeAuthoredTimingAttrs:!0}),{media:A,authoredComposition:_}=wl(),R=Math.max(A??0,_??0)||null,D=Sh(R),H=de=>{let se=document.querySelector(`[data-composition-id="${CSS.escape(de)}"]`);return se?b.resolveStartForElement(se,0):0},Y=de=>{let se=window.gsap;if(!se||typeof se.timeline!="function")return null;let ie=se.timeline({paused:!0});for(let ve of de)ie.add(ve.timeline,H(ve.compositionId));return ie},re=(de,se)=>{if(!be(de))return null;let ie=window.gsap;if(!ie||typeof ie.timeline!="function")return null;let ve=ie.timeline({paused:!0});if(se)try{ve.add(se,0)}catch(me){I("runtime.init.site2",me)}let Ee=ve;if(typeof Ee.to=="function")try{Ee.to({},{duration:de})}catch(me){I("runtime.init.site3",me)}return ve},Se=(de,se)=>{if(!de||typeof de.getChildren!="function")return[];try{let ie=de.getChildren(!0,!0,!0);return Array.isArray(ie)?se.filter(ve=>ie.includes(ve.timeline)):[]}catch{return[]}},St=(de,se)=>{let ie=de,ve={addedIds:[],nested:[]};if(typeof ie.getChildren!="function")return ve;try{let Ee=ie.getChildren(!0,!0,!0)??[];if(!Array.isArray(Ee))return ve;let me=[];for(let _e of se)if(!Ee.some(ut=>ut===_e.timeline))try{let ut=H(_e.compositionId);de.add(_e.timeline,ut),me.push(_e.compositionId)}catch(ut){I("runtime.init.site4",ut)}return{addedIds:me,nested:Se(de,se)}}catch{return ve}},ae=X(),Q=ae?.getAttribute("data-composition-id")??null;if(!Q)return h("root_missing_composition_id");let we=c[Q]??null,Fe=(()=>{if(!ae)return[];let de=new Set,se=Array.from(ae.querySelectorAll("[data-composition-id]")),ie=[];for(let ve of se){let Ee=ve.getAttribute("data-composition-id");if(!Ee||Ee===Q||de.has(Ee))continue;de.add(Ee);let me=c[Ee]??null;if(!me||typeof me.play!="function"||typeof me.pause!="function")continue;let _e=K(me);ie.push({compositionId:Ee,timeline:me,durationSeconds:_e??0})}return ie})(),Qe=de=>{for(let se of de){let ie=se.timeline;if(typeof ie.paused=="function")try{ie.paused(!1)}catch(ve){I("runtime.init.site5",ve)}}};if(we){let de=Fe.length>0?St(we,Fe):{addedIds:[],nested:[]},se=de.addedIds;if(Qe(de.nested),(Fe.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+Q+"\'])"))&&(Ur=!0),se.length>0)try{let me=we.time();we.seek(me,!1)}catch{}let ie=K(we);if(!be(ie)&&Fe.length>0){let me=Fe.map(t0=>t0.compositionId),_e=Y(Fe),Jt=K(_e);if(_e&&be(Jt))return Qe(Se(_e,Fe)),{timeline:_e,selectedTimelineIds:me,selectedDurationSeconds:Jt,mediaDurationFloorSeconds:A,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:Q,rootDurationSeconds:ie,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:D,selectedDurationSeconds:Jt,mediaDurationFloorSeconds:A,authoredCompositionDurationFloorSeconds:_,selectedTimelineIds:me,autoNestedChildren:se}}};let ut=re(R??0,we),Ho=K(ut);if(ut&&be(Ho))return{timeline:ut,selectedTimelineIds:[Q],selectedDurationSeconds:Ho,mediaDurationFloorSeconds:A,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Q,rootDurationSeconds:ie,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:A,authoredCompositionDurationFloorSeconds:_,selectedDurationSeconds:Ho,selectedTimelineIds:[Q],autoNestedChildren:se}}}}if(!be(ie)&&Fe.length===0){let me=re(R??0,we),_e=K(me);if(me&&be(_e))return{timeline:me,selectedTimelineIds:[Q],selectedDurationSeconds:_e,mediaDurationFloorSeconds:A,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Q,rootDurationSeconds:ie,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:A,authoredCompositionDurationFloorSeconds:_,selectedDurationSeconds:_e,selectedTimelineIds:[Q]}}}}let ve=Me(ae?.getAttribute("data-duration")),Ee=Math.max(be(ve)?ve:0,_??0);if(Ee>0&&be(Ee)&&be(ie)&&Ee>=ie+.5){let me=we;if(typeof me.to=="function")try{me.to({},{duration:0},Ee)}catch(Jt){I("runtime.init.site6",Jt)}let _e=K(we);if(be(_e))return{timeline:we,selectedTimelineIds:[Q],selectedDurationSeconds:_e,mediaDurationFloorSeconds:A,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:Q,rootDurationSeconds:ie,rootDeclaredDur:ve,authoredCompositionDurationFloorSeconds:_,newDur:_e}}}}return{timeline:we,selectedTimelineIds:[Q],selectedDurationSeconds:ie,mediaDurationFloorSeconds:A,diagnostics:se.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:Q,selectedDurationSeconds:ie,autoNestedChildren:se}}:void 0}}if(Fe.length>0){let de=Fe.map(ve=>ve.compositionId),se=Y(Fe),ie=K(se);if(se)return Qe(Se(se,Fe)),{timeline:se,selectedTimelineIds:de,selectedDurationSeconds:ie,mediaDurationFloorSeconds:A,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:Q,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:D,selectedDurationSeconds:ie,mediaDurationFloorSeconds:A,selectedTimelineIds:de}}}}return h("root_composition_id_unmatched_in_registry")},Ur=!1,_h=c=>{let h=window.gsap,b=c;if(!(!b||typeof b.getChildren!="function"||!h||typeof h.parseEase!="function"))for(let A of b.getChildren(!0,!0,!0)){let _=A,R=_.timeline;if(!R||!("_ease"in R)||typeof R._ease=="function")continue;let D=_.vars?.keyframes,Y=(D&&!Array.isArray(D)?D.ease:void 0)??_.vars?.ease??"none";try{let re=h.parseEase(Y);typeof re=="function"&&(R._ease=re)}catch(re){He("keyframe_ease_repair_failed",{ease:typeof Y=="string"?Y:String(Y)}),I("runtime.keyframeEase.repair",re)}}},Fn=()=>{if(x(),!W)return!1;let c=e.capturedTimeline,h=K(c),b=be(h);if(c&&b&&Ur)return!1;let A=Eo();if(!A.timeline)return!1;if(c&&c===A.timeline)return typeof c.timeScale=="function"&&c.timeScale(e.playbackRate),!1;e.capturedTimeline=A.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate),_h(e.capturedTimeline);let _=ze(e.capturedTimeline,0);if(_<=0&&typeof e.capturedTimeline.progress=="function"&&(e.capturedTimeline.progress(1,!0),e.capturedTimeline.progress(0,!1),st(e.capturedTimeline)),_>0){try{f.setDuration(_)}catch{}if(typeof e.capturedTimeline.totalTime=="function"){typeof e.capturedTimeline.progress=="function"&&e.capturedTimeline.progress(1e-4,!0);let D=Math.max(0,e.currentTime||0);e.capturedTimeline.totalTime(D,!1),st(e.capturedTimeline)}let R=window.__hfStudioManualEditsApply;typeof R=="function"&&R(),Ji(document)}if(A.diagnostics&&xe({source:"hf-preview",type:"diagnostic",code:A.diagnostics.code,details:A.diagnostics.details}),xe({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:A.selectedTimelineIds??[],selectedDurationSeconds:A.selectedDurationSeconds??null,mediaDurationFloorSeconds:A.mediaDurationFloorSeconds??null}}),window.parent!==window){let R=X(),D=_>0?_:0,H=String(D>0?D:1),Y=new Set,re=ae=>ae.tagName.toLowerCase()===ln,Se=new Set(document.querySelectorAll("[data-start]")),St=ae=>{let Q=ae.parentElement;for(;Q&&Q!==R;){if(Se.has(Q))return!0;Q=Q.parentElement}return!1};if(e.capturedTimeline.getChildren)try{for(let ae of e.capturedTimeline.getChildren(!0))if(typeof ae.targets=="function")for(let Q of ae.targets())Ae(Q)&&Q!==R&&(re(Q)||Q.hasAttribute("data-start")||St(Q)||Y.has(Q)||(Y.add(Q),Q.setAttribute("data-start","0"),Q.setAttribute("data-duration",H),Q.setAttribute("data-hf-autostamped","1")))}catch{}if(Ae(R))for(let ae of R.querySelectorAll("[id]"))Ae(ae)&&ae!==R&&(ae.hasAttribute("data-start")||St(ae)||Y.has(ae)||ae.tagName==="SCRIPT"||ae.tagName==="STYLE"||ae.tagName==="LINK"||re(ae)||(Y.add(ae),ae.setAttribute("data-start","0"),ae.setAttribute("data-duration",H),ae.setAttribute("data-hf-autostamped","1")))}for(let R of Nn)Wr.delete(R),Nl(R);return!0},Cl=()=>{if(e.tornDown)return;let c=Eo();if(!c.timeline){e.capturedTimeline=null,Ur=!1,f.setDuration(0),jr(e.currentTime);return}e.capturedTimeline!==c.timeline&&(Ur=!1,Fn()),jr(e.currentTime)};t=()=>{Cl(),xt()},window.__hfForceTimelineRebind=Cl;let wh=()=>{let c=X();if(!Ae(c))return;let h=c.getBoundingClientRect(),b=Number(c.getAttribute("data-width")),A=Number(c.getAttribute("data-height")),_=window.getComputedStyle(c),R=Number.isFinite(b)&&b>0&&Number.isFinite(A)&&A>0,D=h.width<=0||h.height<=0||c.clientWidth<=0||c.clientHeight<=0;!R||!D||N("root_stage_layout_zero",{compositionId:c.getAttribute("data-composition-id")??null,declaredWidth:b,declaredHeight:A,rectWidth:Math.round(h.width),rectHeight:Math.round(h.height),clientWidth:c.clientWidth,clientHeight:c.clientHeight,display:_.display,visibility:_.visibility,overflow:_.overflow},`root-stage-layout-zero:${c.getAttribute("data-composition-id")??"unknown"}`)},Ch=()=>{e.tornDown||(s!=null&&window.cancelAnimationFrame(s),s=window.requestAnimationFrame(()=>{s=null,wh()}))},Rh=()=>{i=c=>{let h=L(c.error??c.message).slice(0,T);if(!h)return;let b=G(h);xe({source:"hf-preview",type:"diagnostic",code:b.code,details:{category:b.category,message:h,filename:c.filename||null,line:Number.isFinite(c.lineno)?c.lineno:null,column:Number.isFinite(c.colno)?c.colno:null}})},o=c=>{let h=L(c.reason).slice(0,T);if(!h)return;let b=G(h);xe({source:"hf-preview",type:"diagnostic",code:`${b.code}_unhandled_rejection`,details:{category:`${b.category}-unhandled-rejection`,message:h}})},window.addEventListener("error",i),window.addEventListener("unhandledrejection",o)},Th=()=>{let c=Array.from(document.querySelectorAll("img, video, audio, source, link[rel=\'stylesheet\']"));for(let b of c){let A=()=>{if(!ke(b))return;let _=b.tagName.toLowerCase(),R=b.getAttribute("src")??b.getAttribute("href")??b.getAttribute("poster")??null,D=_==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";N(D,{tagName:_,assetUrl:R,currentSrc:(Le(b)||he(b))&&b.currentSrc||null,readyState:he(b)?b.readyState:null,networkState:he(b)?b.networkState:null},`${D}:${_}:${R??"unknown"}`)};b.addEventListener("error",A),C(()=>{b.removeEventListener("error",A)})}let h=document.fonts;h&&h.ready.then(()=>{if(e.tornDown)return;let b=Array.from(h).filter(A=>A.status==="error").map(A=>A.family).filter(A=>!!A).slice(0,10);b.length!==0&&N("runtime_font_load_issue",{failedFamilies:b,totalFaces:Array.from(h).length},`runtime-font-load-issue:${b.join("|")}`)}).catch(()=>{})},kh=(c,h)=>{if(!c.timeline)return!1;let b=e.capturedTimeline;if(b&&b===c.timeline)return!1;let A=Math.max(0,e.currentTime||0),_=e.isPlaying;e.capturedTimeline=c.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate);try{st(e.capturedTimeline),typeof e.capturedTimeline.seek=="function"&&e.capturedTimeline.seek(A,!1),_&&typeof e.capturedTimeline.play=="function"&&e.capturedTimeline.play()}catch(R){I("runtime.init.site7",R)}return xe({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:h,previousTime:A,selectedTimelineIds:c.selectedTimelineIds??[],selectedDurationSeconds:c.selectedDurationSeconds??null,mediaDurationFloorSeconds:c.mediaDurationFloorSeconds??null}}),!0},It=null,Rl=!1,Nn=new Set,Wr=new WeakMap,Vr=()=>{e.tornDown||(It!=null&&window.clearTimeout(It),It=window.setTimeout(()=>{if(e.tornDown||(It=null,yl()))return;let c=Eo();if(!c.timeline||!be(c.mediaDurationFloorSeconds??null))return;if(!e.capturedTimeline){Fn()&&(xt(),Ie(!0));return}if(Rl)return;let b=K(e.capturedTimeline),A=c.selectedDurationSeconds??K(c.timeline);be(A)&&(!be(b)||A>=b+v)&&kh(c,"manual")&&(Rl=!0,xe({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:b??null,selectedDurationSeconds:A??null,selectedTimelineIds:c.selectedTimelineIds??[],mediaDurationFloorSeconds:c.mediaDurationFloorSeconds??null}}),xt(),Ie(!0))},E))},Tl=c=>{he(c.currentTarget)&&Cc(c.currentTarget)},kl=c=>{he(c.currentTarget)&&Rc(c.currentTarget)},Ml=c=>{$o(c)&&dp(c)&&wn(c,_n(c))},Fl=c=>{let h=c.currentTarget;he(h)&&Ml(h)},Mh=()=>{for(let c of Nn)c.removeEventListener("loadedmetadata",Vr),c.removeEventListener("durationchange",Vr),c.removeEventListener("loadedmetadata",Tl),c.removeEventListener("loadedmetadata",Fl),c.removeEventListener("error",kl);Nn.clear()},_o=()=>{if(e.tornDown)return;let c=Array.from(document.querySelectorAll("video, audio"));for(let h of c){if(Nn.has(h))continue;Nn.add(h);let b=Number.parseFloat(h.dataset.volume??"");Number.isFinite(b)&&(h.volume=Math.max(0,Math.min(1,b))),h.addEventListener("loadedmetadata",Vr),h.addEventListener("durationchange",Vr),h.addEventListener("loadedmetadata",Fl),Ml(h),h.addEventListener("loadedmetadata",Tl),h.addEventListener("error",kl),wc(h),h.preload!=="auto"&&(h.preload="auto"),h.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&h.load(),Nl(h)}},Nl=c=>{Wr.has(c)||uc(c,e.capturedTimeline,ze(e.capturedTimeline,0),Wr,{allowLiveTimelineSeek:!window.__HF_RENDER_CAPTURE_MODE})},wo=new WeakMap,Fh=c=>{let h=wo.get(c);if(h!==void 0)return h;let b=window.getComputedStyle(c).position,A=b==="static"||b==="relative"||b==="sticky";return wo.set(c,A),A},Co=new WeakMap,Nh=c=>{let h=Co.get(c);if(h!==void 0)return h;let b=c.querySelector("[data-start]")===null;return Co.set(c,b),b},Lh=()=>{wo=new WeakMap,Co=new WeakMap},Ro=new WeakSet,To=new WeakMap,zr=new WeakSet,qr=!1,Ll=c=>c.matches("audio[data-start]")||c.querySelector("audio[data-start]")!==null,Dl=new WeakMap,$r=!0,Dh=()=>{if($r){$r=!1;for(let c of document.querySelectorAll(ln)){let h=c.hasAttribute("data-hidden");Dl.get(c)!==h&&(Dl.set(c,h),c.id&&m.setGroupMuted(c.id,h))}}},Ih=(c,h,b)=>{let A=X(),_=ze(e.capturedTimeline,0,b);for(let R of h){if(!Ae(R))continue;if(R.hasAttribute("data-hidden")){zr.has(R)||(To.set(R,R.style.getPropertyValue("display")),zr.add(R),Ll(R)&&(qr=!0),$r=!0),R.style.display="none",(fe(R)||Le(R))&&r?.setSourceVisibility(R,!1);continue}if(zr.has(R)){let H=To.get(R);H?R.style.display=H:R.style.removeProperty("display"),To.delete(R),zr.delete(R),Ll(R)&&(qr=!0),$r=!0}let D=or(R,{currentTime:c,compositionDuration:_,canonicalFps:e.canonicalFps,exportRenderSeek:!!window.__HF_EXPORT_RENDER_SEEK_CONFIG,timelineRegistry:window.__timelines??{},resolver:J(!0)});if(D){let H=R.parentElement;for(;H&&H!==A;){if(Ae(H)&&H.hasAttribute("data-start")&&!or(H,{currentTime:c,compositionDuration:_,canonicalFps:e.canonicalFps,exportRenderSeek:!!window.__HF_EXPORT_RENDER_SEEK_CONFIG,timelineRegistry:window.__timelines??{},resolver:J(!0)})){D=!1;break}H=H.parentElement}}R.style.visibility=D?"visible":"hidden",(fe(R)||Le(R))&&r?.setSourceVisibility(R,D),D?Ro.has(R)&&(R.style.removeProperty("display"),Ro.delete(R)):Fh(R)&&Nh(R)&&(R.style.display="none",Ro.add(R))}qr&&f.isPlaying()&&(m.stopAll(),Oo()),qr=!1,Dh()},jr=(c,h=Array.from(document.querySelectorAll("[data-start]")),b)=>$(()=>Ih(c,h,b)),Ln=null,Dn=null,Kr=[],Il=c=>c.hasAttribute("data-start")||!!U(c).compositionRoot,ko=c=>Sc({elements:c,shouldIncludeElement:Il,resolveStartSeconds:h=>ee(h),resolveDurationSeconds:h=>{let b=U(h),A=ee(h),_=b.inheritedStart!=null&&b.inheritedDuration!=null&&b.inheritedDuration>0?Math.max(0,b.inheritedStart+b.inheritedDuration-A):null,R=Number.isFinite(h.duration)?et(h,h.duration):null,D=Me(h.dataset.duration),H=D!=null&&D>0?D:null;return yc({isVideo:h.tagName==="VIDEO",sourceDuration:R,hostRemaining:_,explicitDuration:H})}}),Ph=()=>{let c=Mn();if(Ln&&Ln.revision===c)return Ln;let h=ko().mediaClips;return Ln={revision:c,clips:h,byStart:[...h].sort((b,A)=>b.start-A.start),byEnd:[...h].sort((b,A)=>b.end-A.end)},Dn=null,Kr=[],Ln},Pl=(c,h,b,A)=>{let _=0,R=c.length;for(;_<R;){let H=_+R>>1;h(c[H])<b?_=H+1:R=H}let D=[];for(let H=_;H<c.length&&h(c[H])<=A;H+=1)D.push(c[H]);return D},Oh=(c,h)=>{let b=Dn;if(b===null)return c.clips.map(D=>D.el);let A=Math.min(b,h),_=Math.max(b,h),R=new Set;for(let D of Kr)R.add(D.el);for(let D of Pl(c.byStart,H=>H.start,A,_))R.add(D.el);for(let D of Pl(c.byEnd,H=>H.end,A,_))R.add(D.el);return[...R]},Yr=new WeakSet,Ol=c=>{Yr.add(c)},Gl=c=>{Yr.delete(c)};window.__hf.leasePausedMedia=Ol,window.__hf.releasePausedMedia=Gl,window.__hf.audioMeter={start:()=>m.startMetering(),stop:()=>m.stopMetering(),read:()=>m.readLevels()};let Gh=()=>{for(let c of document.querySelectorAll("video, audio"))if(he(c)&&!c.paused&&Il(c)&&!Yr.has(c))return!0;return!1},Hl=()=>Kt();document.addEventListener("play",Hl,!0),a.push(()=>{document.removeEventListener("play",Hl,!0)});let Ge=c=>{let h=!kn,b=$(()=>{if(!h)return ko().mediaClips;let R=Ph();return ko(Oh(R,e.currentTime)).mediaClips});for(let R of b){let D=Wr.get(R.el);D&&(R.volumeKeyframes=D)}let A=e.isPlaying?b:b.filter(R=>!Yr.has(R.el)),_=e.mediaForceSyncNextTick;_&&(e.mediaForceSyncNextTick=!1),e.nativeMediaSyncDisabled||(vc({clips:A,timeSeconds:e.currentTime,playing:e.isPlaying,playbackRate:e.playbackRate,outputMuted:e.mediaOutputMuted,userMuted:e.bridgeMuted,userVolume:e.bridgeVolume,forceSync:_,getCompositionDuration:()=>ze(e.capturedTimeline,0,c),onElementVolume:(R,D,H)=>m.setElementVolume(R,H),isWebAudioOwned:R=>m.ownsElement(R),isWebAudioRouted:R=>m.routesElement(R),onAutoplayBlocked:()=>{e.mediaAutoplayBlockedPosted||(e.mediaAutoplayBlockedPosted=!0,xe({source:"hf-preview",type:"media-autoplay-blocked"}))}}),h?(Dn=e.currentTime,Kr=b.filter(R=>vt(e.currentTime,R.start,R.end))):(Dn=null,Kr=[])),jr(e.currentTime,void 0,c)},Ie=c=>{c&&Kt();let h=Math.max(0,Math.round((e.currentTime||0)*e.canonicalFps)),b=Date.now();(c||h!==e.bridgeLastPostedFrame||e.isPlaying!==e.bridgeLastPostedPlaying||e.bridgeMuted!==e.bridgeLastPostedMuted||b-e.bridgeLastPostedAt>=e.bridgeMaxPostIntervalMs)&&(e.bridgeLastPostedFrame=h,e.bridgeLastPostedPlaying=e.isPlaying,e.bridgeLastPostedMuted=e.bridgeMuted,e.bridgeLastPostedAt=b,xe({source:"hf-preview",type:"state",frame:h,isPlaying:e.isPlaying,muted:e.bridgeMuted,playbackRate:e.playbackRate}))},Mo="",Bl=!1,Ul=!1,Wl=0,Hh=()=>{let c="";for(let h of document.querySelectorAll("[data-start]"))c+=`${h.id}:${h.tagName}|`;return c},xt=()=>{V(),M(),te();let c=X();if(c){let A=z(c.getAttribute("data-width")),_=z(c.getAttribute("data-height")),R=A?parseInt(A,10):0,D=_?parseInt(_,10):0;R>0&&D>0&&xe({source:"hf-preview",type:"stage-size",width:R,height:D})}Fn();let h=cd({canonicalFps:e.canonicalFps});window.__clipManifest=h;let b=Hh();if(Mo!==b&&Lh(),!window.__clipTree||Mo!==b){let A=window;window.__clipTree=ad({startResolver:Ue({timelineRegistry:A.__timelines??{},includeAuthoredTimingAttrs:!0}),timelineRegistry:A.__timelines??{},rootDuration:h.durationInFrames/e.canonicalFps}),Mo=b}xe({...h,assetsReady:Ul}),Bl||(Bl=!0,wp(document,({timedOut:A})=>{e.tornDown||(Ul=!0,xe({source:"hf-preview",type:"assets-ready",timedOut:A}))})),Ch()},Fo=c=>typeof c=="number"&&Number.isFinite(c)&&c>0?c:0,Bh=c=>{let h=Fo(Number(c));if(h<=0)return;let b=X(),A=Fo(Me(b?.getAttribute("data-duration"))),_=Math.max(Wl,Fo(f.getDuration()),A);h<=_||(Wl=h,b?.setAttribute("data-duration",String(h)),f.setDuration(h),xt(),Ie(!0))},qe=(c,h=0)=>{for(let b of e.deterministicAdapters){try{c==="discover"&&b.discover(),c==="pause"&&b.pause(),c==="play"&&b.play&&b.play()}catch(A){I("runtime.init.site8",A)}if(c==="discover")try{b.seek({time:h,suppressEvents:!0})}catch(A){I("runtime.init.site9",A)}}},Pt=()=>{window.__renderReady=!1},Uh=Dp(()=>{let c=[];for(let h of e.deterministicAdapters){let b=h.getReadyPromise;if(typeof b=="function")try{let A=b();A&&c.push(A)}catch(A){I("runtime.init.adapterReady",A)}}return c},()=>Pt(),c=>I("runtime.init.adapterReady",c)),Wh=Dp(()=>{let c=window.__hf?.buildReady;return c?Object.values(c).filter(h=>h!=null&&typeof h.then=="function"):[]},()=>Pt(),c=>I("runtime.init.buildReady",c));if(W)Rs();else{let c={injectedStyles:e.injectedCompStyles,injectedScripts:e.injectedCompScripts,injectedLinks:e.injectedCompLinks,parseDimensionPx:z,onDiagnostic:({code:h,details:b})=>{xe({source:"hf-preview",type:"diagnostic",code:h,details:b})}};sf(c).then(()=>af(c)).finally(()=>{W=!0,_o(),Th(),Rs(),Ds(document),Pt()})}let Xr=td({postMessage:c=>xe(c)});Xr.installPickerApi(),jr(e.currentTime,Array.from(document.querySelectorAll("video[data-start], img[data-start]")));let Je=$f({lease:Ol,release:Gl});r=Je,C(()=>{Je.destroy(),r=null});let No=c=>{let h=Number(c);!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 b=document.querySelectorAll("video, audio");for(let A of b)if(he(A))try{A.playbackRate=e.playbackRate}catch(_){I("runtime.init.site10",_)}},Vl={play:()=>{let c=e.capturedTimeline;if(f.isPlaying())return;let h=ze(c,0);if(h>0)f.setDuration(h),f.reachedEnd()&&(f.seek(0),e.currentTime=0,Ot(0));else{let b=X(),A=Number(b?.getAttribute("data-duration")??0);A>0&&f.setDuration(A)}st(c),f.play()&&(e.isPlaying=!0,e.mediaForceSyncNextTick=!0,Ql(f.now()),p&&!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&Oo(),qe("play"),Ge(),Je.redraw(),Ie(!0))},pause:()=>{if(!f.isPlaying())return;m.stopAll(),f.detachAudioSource(),f.pause(),e.isPlaying=!1,e.currentTime=f.now(),e.mediaForceSyncNextTick=!0,Ql(e.currentTime);let c=e.capturedTimeline;st(c),qe("pause"),Ge(),Je.redraw(),Ie(!0)},seek:(c,h)=>{let b=Ba(Math.max(0,Number(c)||0),e.canonicalFps);m.stopAll(),f.detachAudioSource();let A=f.isPlaying();A&&f.pause(),f.seek(b),e.currentTime=f.now(),e.isPlaying=!1,e.mediaForceSyncNextTick=!0;let _=e.capturedTimeline;if(st(_),Ot(e.currentTime),qe("pause"),h?.keepPlaying&&A){Vl.play();return}Ge(),Je.redraw(),Ie(!0)},renderSeek:(c,h)=>{kn=!0;let b=er(Math.max(0,Number(c)||0),e.canonicalFps,h?.subFrameDivisions);m.stopAll(),f.detachAudioSource(),f.isPlaying()&&f.pause(),f.seek(b),e.currentTime=f.now(),e.isPlaying=!1,e.mediaForceSyncNextTick=!0,Ot(e.currentTime,{activateChildren:!0,suppressEvents:h?.suppressEvents}),qe("pause"),Ge(),Je.redraw(),Ie(!0)},getTime:()=>f.now(),getDuration:()=>{let c=f.getDuration();return Number.isFinite(c)?c:0},isPlaying:()=>f.isPlaying(),setPlaybackRate:c=>{No(c),f.setRate(e.playbackRate),Zl()},getPlaybackRate:()=>e.playbackRate},zl=ze(e.capturedTimeline,0);zl>0&&f.setDuration(zl);let $e=id({getTimeline:()=>e.capturedTimeline,setTimeline:c=>{e.capturedTimeline=c},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>e.isPlaying,setIsPlaying:c=>{e.isPlaying!==c&&(e.mediaForceSyncNextTick=!0),e.isPlaying=c},getPlaybackRate:()=>e.playbackRate,setPlaybackRate:No,getCanonicalFps:()=>e.canonicalFps,onSyncMedia:(c,h)=>{e.currentTime=Math.max(0,Number(c)||0),e.isPlaying!==h&&(e.mediaForceSyncNextTick=!0),e.isPlaying=h,Ge()},onStatePost:Ie,onDeterministicSeek:(c,h)=>{for(let b of e.deterministicAdapters)if(!(b.name==="gsap"&&e.capturedTimeline))try{b.seek({time:Number(c)||0,suppressEvents:h?.suppressEvents})}catch(A){I("runtime.init.site11",A)}},onDeterministicPause:()=>qe("pause"),onDeterministicPlay:()=>qe("play"),onRenderFrameSeek:()=>{Je.redraw()},onShowNativeVideos:()=>{},getSafeDuration:()=>ze(e.capturedTimeline,0),transport:Vl});window.__player=O($e),window.__playerReady=!0,He("composition_loaded",{duration:$e.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),e.deterministicAdapters=[ac(),gu({resolveStartSeconds:c=>j(c,0)}),xu(),Su(),Eu(),_u(),wu(),Cu(),Ru(),Tu(),ku(),bu({getTimeline:()=>e.capturedTimeline})],Nu(),Lu(),window.__hfReseekGpu=c=>{let h=Math.max(0,Number(c)||0);window.__hfThreeTime=h,window.__hfTypegpuTime=h,ui(h)},window.__hfWaitForSeekCompletion=Qo,a.push(()=>{window.__hfWaitForSeekCompletion===Qo&&delete window.__hfWaitForSeekCompletion}),Rh(),_o(),qe("discover");let Vh=()=>{let c=e.capturedTimeline,h=Fn();e.capturedTimeline&&(h||e.capturedTimeline!==c||!$e._timeline)&&($e._timeline=e.capturedTimeline);let b=ze(e.capturedTimeline,0);if(b>0&&f.setDuration(b),qe("discover",e.currentTime),!e.capturedTimeline){let A=window.__timelines??{},_=Object.keys(A).filter(R=>A[R]);if(_.length>0){let D=X()?.getAttribute("data-composition-id")??null;N("root_timeline_unbound_registry_present",{reason:D?"root data-composition-id has no matching key in window.__timelines":"root composition element has no data-composition-id attribute",rootCompositionId:D,registeredTimelineKeys:_},"root_timeline_unbound_registry_present"),console.warn("[hyperframes] Root timeline not bound \\u2014 render will freeze at t=0. "+(D?`Root data-composition-id is "${D}" but window.__timelines has no such key. `:"Root composition element has no data-composition-id. ")+`Registered timeline keys: [${_.join(", ")}]. Register the root timeline under its data-composition-id (window.__timelines["${D??"<root-id>"}"] = tl).`)}}window.__renderReady=!0,xt(),Ie(!0)},Xt=null,zh=()=>{if(Xt)return;let c=()=>{window.removeEventListener("hf-timelines-built",c),Xt=null,Pt()};Xt=c,window.addEventListener("hf-timelines-built",c)};C(()=>{Xt&&(window.removeEventListener("hf-timelines-built",Xt),Xt=null)}),Pt=()=>{if(!W){window.__renderReady=!1;return}if(window.__hfTimelinesBuilding){window.__renderReady=!1,zh();return}if(qe("discover",e.currentTime),!Uh()){window.__renderReady=!1;return}if(!Wh()){window.__renderReady=!1;return}Vh()},Pt(),W&&setTimeout(()=>{Pt()},0);let Jr=0,Qr=!1,Lo=Number.NaN,Do=null,Zr=!1,yt=null,ei=!1,ql="",$l=-1,ti=!1,jl=Number.NEGATIVE_INFINITY,qh=(c,h,b,A)=>{try{let _=A?.suppressEvents===!0;st(c),typeof c.totalTime=="function"?c.totalTime(h,_):c.seek(h,_)}catch(_){I(b,_)}},$h=(c,h)=>{let b=window.__timelines??{},A=X()?.getAttribute("data-composition-id")??null;for(let[_,R]of Object.entries(b)){if(!R||_===A)continue;let D=document.querySelector(`[data-composition-id="${CSS.escape(_)}"]`);if(!D)continue;let H=j(D,0);if(!Number.isFinite(H))continue;let Y=K(R),re=tt(D)+xi(wt(D),Math.max(0,c-H)),Se=Math.max(0,Y!=null&&Y>0?Math.min(Y,re):re);qh(R,Se,"runtime.init.transport.childTimeline",h)}},jh=c=>{let h=window.__timelines??{},b=[];for(let A of Object.values(h))if(!(!A||A===c)){b.push(A);try{A.play()}catch(_){I("runtime.init.activateSiblings",_)}}return b},Kl=c=>typeof c=="object"&&c!==null,In=new WeakMap,Kh=["onStart","onUpdate","onComplete","onReverseComplete","onRepeat"],Yl=(c,h)=>{let b=c[h];if(typeof b!="function")return null;try{let A=Number(b.call(c));return Number.isFinite(A)?A:null}catch(A){return I("runtime.init.gsapCallbackDuration",A),null}},Yh=c=>{let h=In.get(c);if(h!=null)return h;if(!("getChildren"in c)||typeof c.getChildren!="function")return!1;let b;try{b=c.getChildren(!0,!0,!0)}catch(A){return I("runtime.init.gsapCallbackChildren",A),In.set(c,!1),!1}if(!Array.isArray(b))return In.set(c,!1),!1;for(let A of b){if(!Kl(A))continue;let _=A.vars;if(!Kl(_)||!Kh.some(Y=>typeof _[Y]=="function"))continue;let H=Yl(A,"totalDuration")??Yl(A,"duration");if(H!=null&&H<=1e-6)return In.set(c,!0),!0}return In.set(c,!1),!1};function Ot(c,h){let b=e.capturedTimeline,A=b&&h?.activateChildren?jh(b):[];try{Xh(b,c,h)}finally{for(let _ of A)st(_)}}function Xh(c,h,b){let A=b?.suppressEvents===!0;if(c){let _=c,R=h;if(typeof _.totalDuration=="function")try{let D=Number(_.totalDuration());Number.isFinite(D)&&D>0&&h>D&&(R=D)}catch(D){I("runtime.init.transport.clampDuration",D)}try{typeof c.totalTime=="function"?(c.totalTime(R,A),!A&&!Yh(c)&&(c.totalTime(R+.001,!0),c.totalTime(R,!0))):c.seek(R,A)}catch(D){I("runtime.init.transport.seek",D)}}$h(h,b);for(let _ of e.deterministicAdapters)if(!(_.name==="gsap"&&c))try{_.seek({time:h,suppressEvents:A})}catch(R){I("runtime.init.transport.adapter",R)}}let Io=pp(document,()=>{Kt()});a.push(()=>Io.disconnect());let Jh=()=>{try{return Io.isActive()}catch{return!1}},Qh=()=>!f.isPlaying()&&!yl()&&Io.observing&&!Zr&&!ti&&e.currentTime===Lo&&e.capturedTimeline===Do,Xl=()=>`${Mn()}|${xl()??""}`,Jl=()=>{yt=window.setTimeout(Zh,e.bridgeMaxPostIntervalMs)},Zh=()=>{if(yt=null,!e.tornDown&&!(typeof window>"u"||typeof document>"u")){if(Xl()!==ql){Kt();return}Ie(!1),Jl()}},e0=()=>{if(e.transportRafId=null,e.tornDown)return;let c=ei;if(ei=!1,c||!Qh()){e.transportRafId=window.requestAnimationFrame(Po);return}ql=Xl(),Jl()};Kt=()=>{e.tornDown||(ei=!0,!(Qr||e.transportRafId!=null)&&(yt!=null&&(window.clearTimeout(yt),yt=null),ei=!1,e.transportRafId=window.requestAnimationFrame(Po)))};let Po=()=>{if(!(e.tornDown||Qr)){Qr=!0;try{Jr+=1;let c=Mn();c!==$l&&($l=c,ti=!0);let h=Date.now(),b=ti&&!f.isPlaying()&&h-jl>=hp;if(b&&(jl=h),gp({tick:Jr,isPlaying:f.isPlaying(),hasCapturedTimeline:e.capturedTimeline!=null,currentTimeSeconds:f.now(),compositionChanged:b})){let D=e.capturedTimeline;if(Fn()){e.capturedTimeline&&!$e._timeline&&($e._timeline=e.capturedTimeline),e.capturedTimeline&&e.capturedTimeline!==D&&st(e.capturedTimeline);let H=ze(e.capturedTimeline,0,c);H>0&&f.setDuration(H),xt()}}if((b||Jr%20===0)&&(xt(),ti=!1),(b||Jr%30===0)&&_o(),e.capturedTimeline){let D=ze(e.capturedTimeline,0,c);D>0&&(!f.isPlaying()||D>=f.getDuration())&&f.setDuration(D)}if(f.isPlaying()&&!e.mediaOutputMuted)if(!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&m.isActive()&&m.context){let D=m.getTime();D>=0&&f.attachAudioSource({currentTimeSeconds:D})}else{let D=document.querySelectorAll("audio[data-start]"),H=!1;for(let Y of D){if(!he(Y)||!Y.isConnected||g(Y))continue;let re=ee(Y),Se=Me(Y.dataset.duration),St=Se!=null&&Se>0?re+Se:1/0,ae=tt(Y);if(Number.isFinite(re)&&vt(e.currentTime,re,St)){Y.paused?!Y.error&&Y.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(f.attachAudioSource({currentTimeSeconds:e.currentTime}),H=!0):(f.attachAudioSource({el:Y,compositionStart:re,mediaStart:ae,rate:wt(Y)}),H=!0);break}}!H&&f.hasAudioSource()&&f.detachAudioSource()}else f.hasAudioSource()&&f.detachAudioSource();let A=f.now();e.currentTime=A;let _=f.isPlaying();if(!_&&Jh()?Zr=!0:(_||Zr||A!==Lo||e.capturedTimeline!==Do)&&(Ot(A),Lo=A,Do=e.capturedTimeline,_||(Zr=!1)),_&&Je.redrawAnimated(),f.isPlaying()&&f.reachedEnd()){m.stopAll(),f.detachAudioSource(),f.pause(),e.isPlaying=!1;let D=f.getDuration();Number.isFinite(D)&&(f.seek(D),e.currentTime=D,Ot(D)),qe("pause"),Ge(c),Ie(!0);return}f.isPlaying()?Ge(c):Gh()&&(Dn=null,Ge(c)),Ie(!1)}finally{Qr=!1,e0()}}},Ql=c=>{let h=document.querySelectorAll("video, audio");for(let b of h){if(!he(b)||!b.isConnected||!b.hasAttribute("data-start"))continue;let A=ee(b);if(!Number.isFinite(A))continue;let _=Me(b.dataset.duration),R=_!=null&&_>0?A+_:1/0;if(!vt(c,A,R))continue;let D=tt(b),H=c-A+D;if(H>=0)try{b.currentTime=H}catch{}}},Oo=()=>{if(e.nativeMediaSyncDisabled||e.webAudioMediaDisabled)return;let c=m.startGeneration(),h=document.querySelectorAll("audio[data-start]");for(let b of h){if(!he(b)||!b.isConnected||g(b))continue;let A=ee(b);if(!Number.isFinite(A))continue;let _=tt(b),R=Number.parseFloat(b.dataset.volume??""),D=Number.isFinite(R)?R:1,H=Me(b.dataset.duration),Y=H!=null&&H>0?H:Number.POSITIVE_INFINITY,re=b.closest("[data-composition-id]");if(re){let ae=j(re,0),Q=P(re,{includeAuthoredTimingAttrs:!0});Q!=null&&Q>0&&(Y=Math.min(Y,Math.max(0,ae+Q-A)))}let Se=_n(b);if(wn(b,Se),typeof wt(b)!="number")continue;(Se.kind==="web-audio"?m.scheduleMediaElementPlayback(b,A,_,f.now(),D,c,e.playbackRate):Promise.resolve(null)).then(ae=>{if(ae||!f.isPlaying())return;let Q=e.playbackRate*Pe(b),we=b.hasAttribute("data-fx-chain")||b.hasAttribute("data-automation");if(Math.abs(Q-1)>1e-9){Se.kind==="web-audio"&&we&&(b.muted=!0);return}m.decodeAudioElement(b).then(Gt=>{!Gt||!f.isPlaying()||m.schedulePlayback(b,Gt,A,_,f.now(),D,c,e.playbackRate,Y)})})}};function Zl(){m.setRate(e.playbackRate)&&!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&p&&f.isPlaying()&&m.hasBoundedActiveSources()&&(m.stopAll(),Oo())}if(e.capturedTimeline){let c=ze(e.capturedTimeline,0);c>0&&f.setDuration(c),st(e.capturedTimeline)}ff(window),e.transportRafId=window.requestAnimationFrame(Po),xt(),Ie(!0),e.controlBridgeHandler=ru({onPlay:()=>{$e.play(),He("composition_played",{time:$e.getTime()})},onPause:()=>{$e.pause(),He("composition_paused",{time:$e.getTime()})},onStopMedia:()=>{m.stopAll();let c=document.querySelectorAll("video, audio");for(let h of c)he(h)&&!h.paused&&h.pause()},onSeek:(c,h)=>{$e.seek(c),He("composition_seeked",{time:c})},onSetMuted:c=>{e.bridgeMuted=c;let h=c||e.mediaOutputMuted;m.setMuted(h);let b=document.querySelectorAll("video, audio");for(let A of b)he(A)&&(A.muted=h||A.defaultMuted)},onSetVolume:c=>{e.bridgeVolume=c,m.setVolume(c);let h=document.querySelectorAll("video, audio");for(let b of h){if(!he(b))continue;let A=parseFloat(b.dataset.volume??""),_=Number.isFinite(A)?A:1;b.volume=mi(_*c)}},onSetMediaOutputMuted:c=>{e.mediaOutputMuted=c;let h=c||e.bridgeMuted;m.setMuted(h);let b=document.querySelectorAll("video, audio");for(let A of b)he(A)&&(A.muted=h||A.defaultMuted)},onSetNativeMediaSyncDisabled:c=>{e.nativeMediaSyncDisabled!==c&&(e.nativeMediaSyncDisabled=c,e.mediaForceSyncNextTick=!0,c?(m.stopAll(),f.detachAudioSource()):Ge())},onSetWebAudioMediaDisabled:c=>{e.webAudioMediaDisabled!==c&&(e.webAudioMediaDisabled=c,e.mediaForceSyncNextTick=!0,c&&(m.stopAll(),f.detachAudioSource()),Ge())},onSetPlaybackRate:c=>{No(c),e.transportClock&&e.transportClock.setRate(e.playbackRate),Zl()},onSetRootDuration:Bh,onSetColorGrading:(c,h)=>{Je.setGrading(c,h)},onSetColorGradingCompare:(c,h)=>{Je.setCompare(c,h)},onTick:()=>{if(e.tornDown||!f.isPlaying())return;let c=f.now();if(e.currentTime=c,Ot(c),f.reachedEnd()){m.stopAll(),f.detachAudioSource(),f.pause(),e.isPlaying=!1;let h=f.getDuration();Number.isFinite(h)&&(f.seek(h),e.currentTime=h,Ot(h)),qe("pause"),Ge(),Ie(!0)}},onEnablePickMode:()=>Xr.enablePickMode(),onDisablePickMode:()=>Xr.disablePickMode(),onSetRuntimeData:fo,onClearRuntimeData:po,getCanonicalFps:()=>e.canonicalFps});let Go=()=>{if(!e.tornDown){e.tornDown=!0,e.transportRafId!=null&&(window.cancelAnimationFrame(e.transportRafId),e.transportRafId=null),yt!=null&&(window.clearTimeout(yt),yt=null),e.transportClock=null,m.destroy(),It!=null&&(window.clearTimeout(It),It=null),s!=null&&(window.cancelAnimationFrame(s),s=null),Mh(),e.controlBridgeHandler&&(window.removeEventListener("message",e.controlBridgeHandler),e.controlBridgeHandler=null),i&&(window.removeEventListener("error",i),i=null),o&&(window.removeEventListener("unhandledrejection",o),o=null),e.beforeUnloadHandler&&(window.removeEventListener("beforeunload",e.beforeUnloadHandler),e.beforeUnloadHandler=null),Xr.disablePickMode();for(let c of e.deterministicAdapters)if(!(!c||typeof c.revert!="function"))try{c.revert()}catch(h){I("runtime.init.site12",h)}e.deterministicAdapters=[],window.__hf?.buildReady&&(window.__hf.buildReady={});for(let c of a.splice(0))try{c()}catch(h){I("runtime.init.site13",h)}for(let c of e.injectedCompStyles)try{c.remove()}catch(h){I("runtime.init.site14",h)}e.injectedCompStyles=[];for(let c of e.injectedCompLinks)try{c.remove()}catch(h){I("runtime.init.site15",h)}e.injectedCompLinks=[];for(let c of e.injectedCompScripts)try{c.remove()}catch(h){I("runtime.init.site16",h)}e.injectedCompScripts=[],e.capturedTimeline=null,t=()=>{},window.__hfRuntimeTeardown===Go&&(window.__hfRuntimeTeardown=null)}};window.__hfRuntimeTeardown=Go,e.beforeUnloadHandler=Go,window.addEventListener("beforeunload",e.beforeUnloadHandler)}var Pp=["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"],ll=[[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 vA(e){if(e<=255)return Pp[e];let t=0,n=ll.length-1;for(;t<=n;){let r=t+n>>1,i=ll[r];if(e<i[0]){n=r-1;continue}if(e>i[1]){t=r+1;continue}return i[2]}return"L"}function AA(e){let t=e.length;if(t===0)return null;let n=new Array(t),r=!1;for(let u=0;u<t;){let d=e.charCodeAt(u),f=d,m=1;if(d>=55296&&d<=56319&&u+1<t){let g=e.charCodeAt(u+1);g>=56320&&g<=57343&&(f=(d-55296<<10)+(g-56320)+65536,m=2)}let p=vA(f);(p==="R"||p==="AL"||p==="AN")&&(r=!0);for(let g=0;g<m;g++)n[u+g]=p;u+=m}if(!r)return null;let i=0;for(let u=0;u<t;u++){let d=n[u];if(d==="L"){i=0;break}if(d==="R"||d==="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 d=n[u];d==="EN"?n[u]=s==="AL"?"AN":"EN":(d==="R"||d==="L"||d==="AL")&&(s=d)}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 d;for(d=u-1;d>=0&&n[d]==="ET";d--)n[d]="EN";for(d=u+1;d<t&&n[d]==="ET";d++)n[d]="EN"}for(let u=0;u<t;u++){let d=n[u];(d==="WS"||d==="ES"||d==="ET"||d==="CS")&&(n[u]="ON")}s=l;for(let u=0;u<t;u++){let d=n[u];d==="EN"?n[u]=s==="L"?"L":"EN":(d==="R"||d==="L")&&(s=d)}for(let u=0;u<t;u++){if(n[u]!=="ON")continue;let d=u+1;for(;d<t&&n[d]==="ON";)d++;let f=u>0?n[u-1]:l,m=d<t?n[d]:l,p=f!=="L"?"R":"L";if(p===(m!=="L"?"R":"L"))for(let y=u;y<d;y++)n[y]=p;u=d-1}for(let u=0;u<t;u++)n[u]==="ON"&&(n[u]=a);for(let u=0;u<t;u++){let d=n[u];(o[u]&1)===0?d==="R"?o[u]++:(d==="AN"||d==="EN")&&(o[u]+=2):(d==="L"||d==="AN"||d==="EN")&&o[u]++}return o}function Op(e,t){let n=AA(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 EA=/[ \\t\\n\\r\\f]+/g,_A=/[\\t\\n\\r\\f]| {2,}|^ | $/;function wA(e){let t=e??"normal";return t==="pre-wrap"?{mode:t,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:t,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function CA(e){if(!_A.test(e))return e;let t=e.replace(EA," ");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 RA(e){return/[\\r\\f]/.test(e)?e.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):e.replace(/\\r\\n/g,`\n`)}var ul=null,TA;function kA(){return ul===null&&(ul=new Intl.Segmenter(TA,{granularity:"word"})),ul}var MA=/\\p{Script=Arabic}/u,ho=/\\p{M}/u,qp=/\\p{Nd}/u;function Gp(e){return MA.test(e)}function Hp(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 Xe(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(Hp(i))return!0;t++;continue}}if(Hp(n))return!0}}return!1}function FA(e){let t=xo(e);return t!==null&&(bo.has(t)||Ft.has(t))}var NA=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function LA(e){return Xe(e)}function DA(e){let t=xo(e);return t!==null&&NA.has(t)}function go(e){return!FA(e)&&!DA(e)}var bo=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"]),Hr=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),dl=new Set(["\'","\\u2019"]),Ft=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),IA=new Set([":",".","\\u060C","\\u061B"]),PA=new Set(["\\u104F"]),OA=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function GA(e){if(ml(e))return!0;let t=!1;for(let n of e){if(Ft.has(n)){t=!0;continue}if(!(t&&ho.test(n)))return!1}return t}function HA(e){for(let t of e)if(!bo.has(t)&&!Ft.has(t))return!1;return e.length>0}function BA(e){if(ml(e))return!0;for(let t of e)if(!Hr.has(t)&&!dl.has(t)&&!ho.test(t))return!1;return e.length>0}function ml(e){let t=!1;for(let n of e)if(!(n==="\\\\"||ho.test(n))){if(Hr.has(n)||Ft.has(n)||dl.has(n)){t=!0;continue}return!1}return t}function $p(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 xo(e){if(e.length===0)return null;let t=$p(e,e.length);return e.slice(t)}function UA(e){let t=Array.from(e),n=t.length;for(;n>0;){let r=t[n-1];if(ho.test(r)){n--;continue}if(Hr.has(r)||dl.has(r)){n--;continue}break}return n<=0||n===t.length?null:{head:t.slice(0,n).join(""),tail:t.slice(n).join("")}}function WA(e,t,n){return n==="text"&&!t&&e.length===1&&e!=="-"&&e!=="\\u2014"?e:null}function Bp(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 Up(e,t){return e&&t!==null&&IA.has(t)}function VA(e){let t=xo(e);return t!==null&&PA.has(t)}function zA(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 yo(e){let t=e.length;for(;t>0;){let n=$p(e,t),r=e.slice(n,t);if(OA.has(r))return!0;if(!Ft.has(r))return!1;t=n}return!1}function qA(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 $A=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function Ve(e){return e.length===1?e[0]:e.join("")}function jA(e,t){let n=[];for(let r=e.length-1;r>=0;r--)n.push(e[r]);return n.push(t),Ve(n)}function KA(e,t,n,r){if(!$A.test(e))return[{text:e,isWordLike:t,kind:"text",start:n}];let i=[],o=null,a=[],l=n,s=!1,u=0;for(let d of e){let f=qA(d,r),m=f==="text"&&t;if(o!==null&&f===o&&m===s){a.push(d),u+=d.length;continue}o!==null&&i.push({text:Ve(a),isWordLike:s,kind:o,start:l}),o=f,a=[d],l=n+u,s=m,u+=d.length}return o!==null&&i.push({text:Ve(a),isWordLike:s,kind:o,start:l}),i}function cl(e){return e==="space"||e==="preserved-space"||e==="zero-width-break"||e==="hard-break"}var YA=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function XA(e,t){let n=e.texts[t];return n.startsWith("www.")?!0:YA.test(n)&&t+1<e.len&&e.kinds[t+1]==="text"&&e.texts[t+1]==="//"}function JA(e){return e.includes("?")&&(e.includes("://")||e.startsWith("www."))}function QA(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"||!XA(e,a))continue;let l=[t[a]],s=a+1;for(;s<e.len&&!cl(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]=Ve(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 ZA(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]),!JA(a))continue;let l=o+1;if(l>=e.len||cl(e.kinds[l]))continue;let s=[],u=e.starts[l],d=l;for(;d<e.len&&!cl(e.kinds[d]);)s.push(e.texts[d]),d++;s.length>0&&(t.push(Ve(s)),n.push(!0),r.push("text"),i.push(u),o=d-1)}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}var e1=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),Wp=/^[A-Za-z0-9_]+[,:;]*$/,Vp=/[,:;]+$/;function jp(e){for(let t of e)if(qp.test(t))return!0;return!1}function Gr(e){if(e.length===0)return!1;for(let t of e)if(!(qp.test(t)||e1.has(t)))return!1;return!0}function t1(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"&&Gr(a)&&jp(a)){let s=[a],u=o+1;for(;u<e.len&&e.kinds[u]==="text"&&Gr(e.texts[u]);)s.push(e.texts[u]),u++;t.push(Ve(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 n1(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&&Wp.test(a)){let u=[a],d=Vp.test(a),f=o+1;for(;d&&f<e.len&&e.kinds[f]==="text"&&e.isWordLike[f]&&Wp.test(e.texts[f]);){let m=e.texts[f];u.push(m),d=Vp.test(m),f++}t.push(Ve(u)),n.push(!0),r.push("text"),i.push(e.starts[o]),o=f-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 r1(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 d=l[u];if(!s)break;(d.length===0||!jp(d)||!Gr(d))&&(s=!1)}if(s){let u=0;for(let d=0;d<l.length;d++){let f=l[d],m=d<l.length-1?`${f}-`:f;t.push(m),n.push(!0),r.push("text"),i.push(e.starts[o]+u),u+=m.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 i1(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 d=[a[0]],f=u;for(o++;o<e.len&&e.kinds[o]==="glue";)d.push(e.texts[o]),o++;let m=Ve(d);if(o<e.len&&e.kinds[o]==="text")a[0]=m,a.push(e.texts[o]),l=e.isWordLike[o],s="text",u=f,o++;else{t.push(m),n.push(!1),r.push("glue"),i.push(f);continue}}else o++;if(s==="text")for(;o<e.len&&e.kinds[o]==="glue";){let d=[];for(;o<e.len&&e.kinds[o]==="glue";)d.push(e.texts[o]),o++;let f=Ve(d);if(o<e.len&&e.kinds[o]==="text"){a.push(f,e.texts[o]),l=l||e.isWordLike[o],o++;continue}a.push(f)}t.push(Ve(a)),n.push(l),r.push(s),i.push(u)}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function o1(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"||!Xe(t[o])||!Xe(t[o+1]))continue;let a=UA(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 zp(e,t,n){let r=kA(),i=0,o=[],a=[],l=[],s=[],u=[],d=[],f=[],m=[],p=[],g=[],y=[],x=[];for(let F of r.segment(e))for(let S of KA(F.segment,F.isWordLike??!1,F.index,n)){let V=function(){d[M]!==null&&(a[M]=[Bp(o,d,f,M)],d[M]=null),a[M].push(S.text),l[M]=l[M]||S.isWordLike,m[M]=m[M]||T,p[M]=p[M]||L,g[M]=z,y[M]=X,x[M]=Up(p[M],G)},v=S.kind==="text",E=WA(S.text,S.isWordLike,S.kind),T=Xe(S.text),L=Gp(S.text),G=xo(S.text),z=yo(S.text),X=VA(S.text),M=i-1;t.carryCJKAfterClosingQuote&&v&&i>0&&s[M]==="text"&&T&&m[M]&&g[M]||v&&i>0&&s[M]==="text"&&HA(S.text)&&m[M]||v&&i>0&&s[M]==="text"&&y[M]?V():v&&i>0&&s[M]==="text"&&S.isWordLike&&L&&x[M]?(V(),l[M]=!0):E!==null&&i>0&&s[M]==="text"&&d[M]===E?f[M]=(f[M]??1)+1:v&&!S.isWordLike&&i>0&&s[M]==="text"&&(GA(S.text)||S.text==="-"&&l[M])?V():(o[i]=S.text,a[i]=[S.text],l[i]=S.isWordLike,s[i]=S.kind,u[i]=S.start,d[i]=E,f[i]=E===null?0:1,m[i]=T,p[i]=L,g[i]=z,y[i]=X,x[i]=Up(L,G),i++)}for(let F=0;F<i;F++){if(d[F]!==null){o[F]=Bp(o,d,f,F);continue}o[F]=Ve(a[F])}for(let F=1;F<i;F++)s[F]==="text"&&!l[F]&&ml(o[F])&&s[F-1]==="text"&&(o[F-1]+=o[F],l[F-1]=l[F-1]||l[F],o[F]="");let w=Array.from({length:i},()=>null),k=-1;for(let F=i-1;F>=0;F--){let S=o[F];if(S.length!==0){if(s[F]==="text"&&!l[F]&&BA(S)&&k>=0&&s[k]==="text"){let v=w[k]??[];v.push(S),w[k]=v,u[k]=u[F],o[F]="";continue}k=F}}for(let F=0;F<i;F++){let S=w[F];S!=null&&(o[F]=jA(S,o[F]))}let C=0;for(let F=0;F<i;F++){let S=o[F];S.length!==0&&(C!==F&&(o[C]=S,l[C]=l[F],s[C]=s[F],u[C]=u[F]),C++)}o.length=C,l.length=C,s.length=C,u.length=C;let N=i1({len:C,texts:o,isWordLike:l,kinds:s,starts:u}),O=o1(n1(r1(t1(ZA(QA(N))))));for(let F=0;F<O.len-1;F++){let S=zA(O.texts[F]);S!==null&&(O.kinds[F]!=="space"&&O.kinds[F]!=="preserved-space"||O.kinds[F+1]!=="text"||!Gp(O.texts[F+1])||(O.texts[F]=S.space,O.isWordLike[F]=!1,O.kinds[F]=O.kinds[F]==="preserved-space"?"preserved-space":"space",O.texts[F+1]=S.marks+O.texts[F+1],O.starts[F+1]=O.starts[F]+S.space.length))}return O}function a1(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 s1(e){if(e.len<=1)return e;let t=[],n=[],r=[],i=[],o=null,a=!1,l=0,s=!1,u=!1;function d(){o!==null&&(t.push(Ve(o)),n.push(a),r.push("text"),i.push(l),o=null)}for(let f=0;f<e.len;f++){let m=e.texts[f],p=e.kinds[f],g=e.isWordLike[f],y=e.starts[f];if(p==="text"){let x=LA(m),w=go(m);if(o!==null&&s&&u){o.push(m),a=a||g,s=s||x,u=w;continue}d(),o=[m],a=g,l=y,s=x,u=w;continue}d(),t.push(m),n.push(g),r.push(p),i.push(y)}return d(),{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function Kp(e,t,n="normal",r="normal"){let i=wA(n),o=i.mode==="pre-wrap"?RA(e):CA(e);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let a=r==="keep-all"?s1(zp(o,t,i)):zp(o,t,i);return{normalized:o,chunks:a1(a,i),...a}}var Cn=null,Yp=new Map,Rn=null,l1=96,u1=/\\p{Emoji_Presentation}/u,c1=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,fl=null,Xp=new Map;function pl(){if(Cn!==null)return Cn;if(typeof OffscreenCanvas<"u")return Cn=new OffscreenCanvas(1,1).getContext("2d"),Cn;if(typeof document<"u")return Cn=document.createElement("canvas").getContext("2d"),Cn;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function d1(e){let t=Yp.get(e);return t||(t=new Map,Yp.set(e,t)),t}function bt(e,t){let n=t.get(e);return n===void 0&&(n={width:pl().measureText(e).width,containsCJK:Xe(e)},t.set(e,n)),n}function Lt(){if(Rn!==null)return Rn;if(typeof navigator>"u")return Rn={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},Rn;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 Rn={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:r,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},Rn}function m1(e){let t=e.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return t?parseFloat(t[1]):16}function Jp(){return fl===null&&(fl=new Intl.Segmenter(void 0,{granularity:"grapheme"})),fl}function f1(e){return u1.test(e)||e.includes("\\uFE0F")}function Qp(e){return c1.test(e)}function p1(e,t){let n=Xp.get(e);if(n!==void 0)return n;let r=pl();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 Xp.set(e,n),n}function h1(e){let t=0,n=Jp();for(let r of n.segment(e))f1(r.segment)&&t++;return t}function g1(e,t){return t.emojiCount===void 0&&(t.emojiCount=h1(e)),t.emojiCount}function Nt(e,t,n){return n===0?t.width:t.width-g1(e,t)*n}function Zp(e,t,n,r,i){if(t.breakableFitAdvances!==void 0)return t.breakableFitAdvances;let o=Jp(),a=[];for(let d of o.segment(e))a.push(d.segment);if(a.length<=1)return t.breakableFitAdvances=null,t.breakableFitAdvances;if(i==="sum-graphemes"){let d=[];for(let f of a){let m=bt(f,n);d.push(Nt(f,m,r))}return t.breakableFitAdvances=d,t.breakableFitAdvances}if(i==="pair-context"||a.length>l1){let d=[],f=null,m=0;for(let p of a){let g=bt(p,n),y=Nt(p,g,r);if(f===null)d.push(y);else{let x=f+p,w=bt(x,n);d.push(Nt(x,w,r)-m)}f=p,m=y}return t.breakableFitAdvances=d,t.breakableFitAdvances}let l=[],s="",u=0;for(let d of a){s+=d;let f=bt(s,n),m=Nt(s,f,r);l.push(m-u),u=m}return t.breakableFitAdvances=l,t.breakableFitAdvances}function eh(e,t){let n=pl();n.font=e;let r=d1(e),i=m1(e),o=t?p1(e,i):0;return{cache:r,fontSize:i,emojiCorrection:o}}function b1(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 th(e,t){if(t<=0)return 0;let n=e%t;return Math.abs(n)<=1e-6?t:t-n}function nh(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 x1(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 rh(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 ih(e,t){if(t.segmentIndex>=e.widths.length)return-1;let n=x1(e,t.segmentIndex);return n<0?-1:rh(e,n,t)}function y1(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:rh(e,r,n)}function oh(e,t){return e.simpleLineWalkFastPath?ah(e,t):hl(e,t)}function ah(e,t,n){let{widths:r,kinds:i,breakableFitAdvances:o}=e;if(r.length===0)return 0;let l=Lt().lineFitEpsilon,s=t+l,u=0,d=0,f=!1,m=0,p=0,g=0,y=0,x=-1,w=0;function k(){x=-1,w=0}function C(E=g,T=y,L=d){u++,n?.({startSegmentIndex:m,startGraphemeIndex:p,endSegmentIndex:E,endGraphemeIndex:T,width:L}),d=0,f=!1,k()}function N(E,T){f=!0,m=E,p=0,g=E+1,y=0,d=T}function O(E,T,L){f=!0,m=E,p=T,g=E,y=T+1,d=L}function F(E,T){if(!f){N(E,T);return}d+=T,g=E+1,y=0}function S(E,T){let L=o[E];for(let G=T;G<L.length;G++){let z=L[G];f?d+z>s?(C(),O(E,G,z)):(d+=z,g=E,y=G+1):O(E,G,z)}f&&g===E&&y===L.length&&(g=E+1,y=0)}let v=0;for(;v<r.length&&!(!f&&(v=b1(e,v),v>=r.length));){let E=r[v],T=i[v],L=T==="space"||T==="preserved-space"||T==="tab"||T==="zero-width-break"||T==="soft-hyphen";if(!f){E>t&&o[v]!==null?S(v,0):N(v,E),L&&(x=v+1,w=d-E),v++;continue}if(d+E>s){if(L){F(v,E),C(v+1,0,d-E),v++;continue}if(x>=0){if(g>x||g===x&&y>0){C();continue}C(x,0,w);continue}if(E>t&&o[v]!==null){C(),S(v,0),v++;continue}C();continue}F(v,E),L&&(x=v+1,w=d-E),v++}return f&&C(),u}function hl(e,t,n){if(e.simpleLineWalkFastPath)return ah(e,t,n);let{widths:r,lineEndFitAdvances:i,lineEndPaintAdvances:o,kinds:a,breakableFitAdvances:l,discretionaryHyphenWidth:s,tabStopAdvance:u,chunks:d}=e;if(r.length===0||d.length===0)return 0;let f=Lt(),m=f.lineFitEpsilon,p=t+m,g=0,y=0,x=!1,w=0,k=0,C=0,N=0,O=-1,F=0,S=0,v=null;function E(){O=-1,F=0,S=0,v=null}function T(B=C,q=N,$=y){g++,n?.({startSegmentIndex:w,startGraphemeIndex:k,endSegmentIndex:B,endGraphemeIndex:q,width:$}),y=0,x=!1,E()}function L(B,q){x=!0,w=B,k=0,C=B+1,N=0,y=q}function G(B,q,$){x=!0,w=B,k=q,C=B,N=q+1,y=$}function z(B,q){if(!x){L(B,q);return}y+=q,C=B+1,N=0}function X(B,q,$,J){if(!q)return;let j=B==="tab"?0:i[$],P=B==="tab"?J:o[$];O=$+1,F=y-J+j,S=y-J+P,v=B}function M(B,q){let $=l[B];for(let J=q;J<$.length;J++){let j=$[J];x?y+j>p?(T(),G(B,J,j)):(y+=j,C=B,N=J+1):G(B,J,j)}x&&C===B&&N===$.length&&(C=B+1,N=0)}function V(B){if(v!=="soft-hyphen")return!1;let q=l[B];if(q==null)return!1;let{fitCount:$,fittedWidth:J}=nh(q,y,t,m,s);return $===0?!1:(y=J,C=B,N=$,E(),$===q.length?(C=B+1,N=0,!0):(T(B,$,J+s),M(B,$),!0))}function te(B){g++,n?.({startSegmentIndex:B.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:B.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),E()}for(let B=0;B<d.length;B++){let q=d[B];if(q.startSegmentIndex===q.endSegmentIndex){te(q);continue}x=!1,y=0,w=q.startSegmentIndex,k=0,C=q.startSegmentIndex,N=0,E();let $=q.startSegmentIndex;for(;$<q.endSegmentIndex;){let J=a[$],j=J==="space"||J==="preserved-space"||J==="tab"||J==="zero-width-break"||J==="soft-hyphen",P=J==="tab"?th(y,u):r[$];if(J==="soft-hyphen"){x&&(C=$+1,N=0,O=$+1,F=y+s,S=y+s,v=J),$++;continue}if(!x){P>t&&l[$]!==null?M($,0):L($,P),X(J,j,$,P),$++;continue}if(y+P>p){let ee=y+(J==="tab"?0:i[$]),pe=y+(J==="tab"?P:o[$]);if(v==="soft-hyphen"&&f.preferEarlySoftHyphenBreak&&F<=p){T(O,0,S);continue}if(v==="soft-hyphen"&&V($)){$++;continue}if(j&&ee<=p){z($,P),T($+1,0,pe),$++;continue}if(O>=0&&F<=p){if(C>O||C===O&&N>0){T();continue}let ne=O;T(ne,0,S),$=ne;continue}if(P>t&&l[$]!==null){T(),M($,0),$++;continue}T();continue}z($,P),X(J,j,$,P),$++}if(x){let J=O===q.consumedEndSegmentIndex?S:y;T(q.consumedEndSegmentIndex,0,J)}}return g}function sh(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:d,tabStopAdvance:f}=e,m=Lt(),p=m.lineFitEpsilon,g=r+p,y=0,x=!1,w=t.segmentIndex,k=t.graphemeIndex,C=-1,N=0,O=0,F=null;function S(){C=-1,N=0,O=0,F=null}function v(M=w,V=k,te=y){return x?(t.segmentIndex=M,t.graphemeIndex=V,te):null}function E(M,V){x=!0,w=M+1,k=0,y=V}function T(M,V,te){x=!0,w=M,k=V+1,y=te}function L(M,V){if(!x){E(M,V);return}y+=V,w=M+1,k=0}function G(M,V,te,B){if(!V)return;let q=M==="tab"?0:a[te],$=M==="tab"?B:l[te];C=te+1,N=y-B+q,O=y-B+$,F=M}function z(M,V){let te=u[M];for(let B=V;B<te.length;B++){let q=te[B];if(!x)T(M,B,q);else{if(y+q>g)return v();y+=q,w=M,k=B+1}}return x&&w===M&&k===te.length&&(w=M+1,k=0),null}function X(M){if(F!=="soft-hyphen"||C<0)return null;let V=u[M]??null;if(V!==null){let{fitCount:te,fittedWidth:B}=nh(V,y,r,p,d);if(te===V.length)return y=B,w=M+1,k=0,S(),null;if(te>0)return v(M,te,B+d)}return N<=g?v(C,0,O):null}for(let M=t.segmentIndex;M<i.endSegmentIndex;M++){let V=s[M],te=V==="space"||V==="preserved-space"||V==="tab"||V==="zero-width-break"||V==="soft-hyphen",B=M===t.segmentIndex?t.graphemeIndex:0,q=V==="tab"?th(y,f):o[M];if(V==="soft-hyphen"&&B===0){x&&(w=M+1,k=0,C=M+1,N=y+d,O=y+d,F=V);continue}if(!x){if(B>0){let J=z(M,B);if(J!==null)return J}else if(q>r&&u[M]!==null){let J=z(M,0);if(J!==null)return J}else E(M,q);G(V,te,M,q);continue}if(y+q>g){let J=y+(V==="tab"?0:a[M]),j=y+(V==="tab"?q:l[M]);if(F==="soft-hyphen"&&m.preferEarlySoftHyphenBreak&&N<=g)return v(C,0,O);let P=X(M);if(P!==null)return P;if(te&&J<=g)return L(M,q),v(M+1,0,j);if(C>=0&&N<=g)return w>C||w===C&&k>0?v():v(C,0,O);if(q>r&&u[M]!==null){let U=v();if(U!==null)return U;let ee=z(M,0);if(ee!==null)return ee}return v()}L(M,q),G(V,te,M,q)}return C===i.consumedEndSegmentIndex&&k===0?v(i.consumedEndSegmentIndex,0,O):v(i.consumedEndSegmentIndex,0,y)}function S1(e,t,n){let{widths:r,kinds:i,breakableFitAdvances:o}=e,l=Lt().lineFitEpsilon,s=n+l,u=0,d=!1,f=t.segmentIndex,m=t.graphemeIndex,p=-1,g=0;for(let y=t.segmentIndex;y<r.length;y++){let x=r[y],w=i[y],k=w==="space"||w==="preserved-space"||w==="tab"||w==="zero-width-break"||w==="soft-hyphen",C=y===t.segmentIndex?t.graphemeIndex:0,N=o[y];if(!d){if(C>0||x>n&&N!==null){let O=N,F=O[C];d=!0,u=F,f=y,m=C+1;for(let S=C+1;S<O.length;S++){let v=O[S];if(u+v>s)return t.segmentIndex=f,t.graphemeIndex=m,u;u+=v,f=y,m=S+1}f===y&&m===O.length&&(f=y+1,m=0)}else d=!0,u=x,f=y+1,m=0;k&&(p=y+1,g=u-x);continue}if(u+x>s)return k?(t.segmentIndex=y+1,t.graphemeIndex=0,u):p>=0?f>p||f===p&&m>0?(t.segmentIndex=f,t.graphemeIndex=m,u):(t.segmentIndex=p,t.graphemeIndex=0,g):(t.segmentIndex=f,t.graphemeIndex=m,u);u+=x,f=y+1,m=0,k&&(p=y+1,g=u-x)}return d?(t.segmentIndex=f,t.graphemeIndex=m,u):null}function v1(e,t,n){let r=ih(e,t);return r<0?null:e.simpleLineWalkFastPath?S1(e,t,n):sh(e,t,r,n)}function lh(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=ih(e,n);for(;o>=0;){let a=sh(e,n,o,t);if(a===null)return{lineCount:r,maxLineWidth:i};r++,a>i&&(i=a),o=y1(e,o,n)}return{lineCount:r,maxLineWidth:i}}for(;;){let o=v1(e,n,t);if(o===null)return{lineCount:r,maxLineWidth:i};r++,o>i&&(i=o)}}var gl=null;function A1(){return gl===null&&(gl=new Intl.Segmenter(void 0,{granularity:"grapheme"})),gl}function E1(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 _1(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(f,m,p){r=[f],i=m,o=p,a=yo(f),l=Hr.has(f)}function d(f,m){r.push(f),o=o||m;let p=yo(f);f.length===1&&Ft.has(f)?a=a||p:a=p,l=!1}for(let f of A1().segment(e)){let m=f.segment,p=Xe(m);if(r.length===0){u(m,f.index,p);continue}if(l||bo.has(m)||Ft.has(m)||t.carryCJKAfterClosingQuote&&p&&a){d(m,p);continue}if(!o&&!p){d(m,p);continue}s(),u(m,f.index,p)}return s(),n}function w1(e){if(e.length<=1)return e;let t=[],n=[e[0].text],r=e[0].start,i=Xe(e[0].text),o=go(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=Xe(s.text),d=go(s.text);if(i&&o){n.push(s.text),i=i||u,o=d;continue}a(),n=[s.text],r=s.start,i=u,o=d}return a(),t}function C1(e,t,n,r){let i=Lt(),{cache:o,emojiCorrection:a}=eh(t,Qp(e.normalized)),l=Nt("-",bt("-",o),a),u=Nt(" ",bt(" ",o),a)*8;if(e.len===0)return E1(n);let d=[],f=[],m=[],p=[],g=e.chunks.length<=1,y=n?[]:null,x=[],w=n?[]:null,k=Array.from({length:e.len});function C(S,v,E,T,L,G,z){L!=="text"&&L!=="space"&&L!=="zero-width-break"&&(g=!1),d.push(v),f.push(E),m.push(T),p.push(L),y?.push(G),x.push(z),w!==null&&w.push(S)}function N(S,v,E,T,L){let G=bt(S,o),z=Nt(S,G,a),X=v==="space"||v==="preserved-space"||v==="zero-width-break"?0:z,M=v==="space"||v==="zero-width-break"?0:z;if(L&&T&&S.length>1){let V="sum-graphemes";Gr(S)?V="pair-context":i.preferPrefixWidthsForBreakableRuns&&(V="segment-prefixes");let te=Zp(S,G,o,a,V);C(S,z,X,M,v,E,te);return}C(S,z,X,M,v,E,null)}for(let S=0;S<e.len;S++){k[S]=d.length;let v=e.texts[S],E=e.isWordLike[S],T=e.kinds[S],L=e.starts[S];if(T==="soft-hyphen"){C(v,0,l,l,T,L,null);continue}if(T==="hard-break"){C(v,0,0,0,T,L,null);continue}if(T==="tab"){C(v,0,0,0,T,L,null);continue}let G=bt(v,o);if(T==="text"&&G.containsCJK){let z=_1(v,i),X=r==="keep-all"?w1(z):z;for(let M=0;M<X.length;M++){let V=X[M];N(V.text,"text",L+V.start,E,r==="keep-all"||!Xe(V.text))}continue}N(v,T,L,E,!0)}let O=R1(e.chunks,k,d.length),F=y===null?null:Op(e.normalized,y);return w!==null?{widths:d,lineEndFitAdvances:f,lineEndPaintAdvances:m,kinds:p,simpleLineWalkFastPath:g,segLevels:F,breakableFitAdvances:x,discretionaryHyphenWidth:l,tabStopAdvance:u,chunks:O,segments:w}:{widths:d,lineEndFitAdvances:f,lineEndPaintAdvances:m,kinds:p,simpleLineWalkFastPath:g,segLevels:F,breakableFitAdvances:x,discretionaryHyphenWidth:l,tabStopAdvance:u,chunks:O}}function R1(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 uh(e,t,n,r){let i=r?.wordBreak??"normal",o=Kp(e,Lt(),r?.whiteSpace,i);return C1(o,t,n,i)}function So(e,t,n){return uh(e,t,!1,n)}function ch(e,t,n){return uh(e,t,!0,n)}function vo(e,t,n){let r=oh(e,t);return{lineCount:r,height:r*n}}function T1(e){return{width:e.width,start:{segmentIndex:e.startSegmentIndex,graphemeIndex:e.startGraphemeIndex},end:{segmentIndex:e.endSegmentIndex,graphemeIndex:e.endGraphemeIndex}}}function k1(e,t,n){return e.widths.length===0?0:hl(e,t,r=>{n(T1(r))})}function dh(e,t){return lh(e,t)}function mh(e){let t=0;return k1(e,Number.POSITIVE_INFINITY,n=>{n.width>t&&(t=n.width)}),t}var M1={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function fh(e,t){let n={...M1,...t},r=1.2;for(let i=n.baseFontSize;i>=n.minFontSize;i-=n.step){let o=`${n.fontWeight} ${i}px ${n.fontFamily}`,a=So(e,o),{lineCount:l}=vo(a,n.maxWidth,i*r);if(l<=1)return{fontSize:i,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}var ph={prepare:So,layout:vo,prepareWithSegments:ch,measureLineStats:dh,measureNaturalWidth:mh};window.__timelines=window.__timelines||{};wf();window.__hyperframes={fitTextFontSize:fh,getVariables:su,pretext:ph,registerRuntimeDataHandler:Np,setRuntimeData:fo,clearRuntimeData:po};function hh(){let e=window;e.__hyperframeRuntimeBootstrapped||(e.__hyperframeRuntimeBootstrapped=!0,Ip())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",hh,{once:!0}):hh();})();\n';
|
|
60824
|
+
RUNTIME_IIFE = '"use strict";(()=>{var U0=Object.create;var $o=Object.defineProperty;var W0=Object.getOwnPropertyDescriptor;var V0=Object.getOwnPropertyNames;var z0=Object.getPrototypeOf,$0=Object.prototype.hasOwnProperty;var q0=(e,t,n)=>t in e?$o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var oe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var j0=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of V0(t))!$0.call(e,i)&&i!==n&&$o(e,i,{get:()=>t[i],enumerable:!(r=W0(t,i))||r.enumerable});return e};var K0=(e,t,n)=>(n=e!=null?U0(z0(e)):{},j0(t||!e||!e.__esModule?$o(n,"default",{value:e,enumerable:!0}):n,e));var ue=(e,t,n)=>q0(e,typeof t!="symbol"?t+"":t,n);var Nd=oe((vR,rs)=>{var Z=String,Fd=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}};rs.exports=Fd();rs.exports.createColors=Fd});var is=oe(()=>{});var Oi=oe((ER,Id)=>{"use strict";var Ld=Nd(),Dd=is(),dr=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=Ld.isColorSupported);let r=d=>d,i=d=>d,o=d=>d;if(t){let{bold:d,gray:m,red:f}=Ld.createColors(!0);i=p=>d(f(p)),r=p=>m(p),Dd&&(o=p=>Dd(p))}let a=n.split(/\\r?\\n/),u=Math.max(this.line-3,0),s=Math.min(this.line+2,a.length),l=String(s).length;return a.slice(u,s).map((d,m)=>{let f=u+1+m,p=" "+(" "+f).slice(-l)+" | ";if(f===this.line){if(d.length>160){let y=20,x=Math.max(0,this.column-y),w=Math.max(this.column+y,this.endColumn+y),k=d.slice(x,w),C=r(p.replace(/\\d/g," "))+d.slice(0,Math.min(this.column-1,y-1)).replace(/[^\\t]/g," ");return i(">")+r(p)+o(k)+`\n `+C+i("^")}let g=r(p.replace(/\\d/g," "))+d.slice(0,this.column-1).replace(/[^\\t]/g," ");return i(">")+r(p)+o(d)+`\n `+g+i("^")}return" "+r(p)+o(d)}).join(`\n`)}toString(){let t=this.showSourceCode();return t&&(t=`\n\n`+t+`\n`),this.name+": "+this.message+t}};Id.exports=dr;dr.default=dr});var os=oe((_R,Bd)=>{"use strict";var yx=/(<)(\\/?style\\b)/gi,vx=/(<)(!--)/g,Sx=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/;function Ke(e){return typeof e!="string"||!e.includes("<")?e:e.replace(yx,"\\\\3c $2").replace(vx,"\\\\3c $2")}var Pd={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function Ax(e){return e[0].toUpperCase()+e.slice(1)}function Od(e,t){let n="@"+t.name,r=t.params?e.rawValue(t,"params"):"",i=t.raws.afterName;return typeof i>"u"?i=r?" ":"":i===""&&r&&!Sx.test(r[0])&&(i=" "),n+i+r}function Ex(e){if(!e.prop.startsWith("--"))return!1;let t=e.raws.before;return typeof t>"u"||!/\\S$/.test(t)}function Gd(e,t,n){let r=n.nodes,i=r.length-1;for(;i>0&&r[i].type==="comment";)i-=1;let o=e.raw(n,"semicolon"),a=n.type==="document";for(let u=r.length-1;u>=0;u--){let s=r[u],l=i!==u||o;!l&&u<r.length-1&&(s.type==="atrule"&&!s.nodes||s.type==="decl"&&Ex(s))&&(l=!0),t.push({document:a,node:s,semicolon:l})}}function Hd(e,t,n,r){let i=e.raw(n,"between","beforeOpen");e.builder(Ke(r+i)+"{",n,"start");let o=n.nodes&&n.nodes.length,a=()=>{let u=o?e.raw(n,"after"):e.raw(n,"after","emptyBody");u&&e.builder(Ke(u)),e.builder("}",n,"end"),n.type==="rule"&&n.raws.ownSemicolon&&e.builder(Ke(n.raws.ownSemicolon),n,"end")};o?(t.push(a),Gd(e,t,n)):a()}var fr=class e{constructor(t){this.builder=t}atrule(t,n){let r=Od(this,t);if(t.nodes)this.block(t,r);else{let i=(t.raws.between||"")+(n?";":"");this.builder(Ke(r+i),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 u=0;u<o;u++)r+=a}return r}block(t,n){let r=this.raw(t,"between","beforeOpen");this.builder(Ke(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(Ke(i)),this.builder("}",t,"end")}body(t){let n=e.prototype,r=["atrule","block","body","rule","stringify"].every(o=>this[o]===n[o]),i=[];for(Gd(this,i,t);i.length>0;){let o=i.pop();if(typeof o=="function"){o();continue}let a=o.node,u=this.raw(a,"before");u&&this.builder(o.document?u:Ke(u)),r&&a.type==="rule"?Hd(this,i,a,this.rawValue(a,"selector")):r&&a.type==="atrule"&&a.nodes?Hd(this,i,a,Od(this,a)):this.stringify(a,o.semicolon)}}comment(t){let n=this.raw(t,"left","commentLeft"),r=this.raw(t,"right","commentRight");this.builder(Ke("/*"+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(Ke(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 Pd[r];let a=t.root(),u=a.rawCache||(a.rawCache={});if(typeof u[r]<"u")return u[r];if(r==="before"||r==="after")return this.beforeAfter(t,r);{let s="raw"+Ax(r);this[s]?i=this[s](a,t):a.walk(l=>{if(i=l.raws[n],typeof i<"u")return!1})}return typeof i>"u"&&(i=Pd[r]),u[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(t.source&&t.source.input.hasBOM&&this.builder("\\uFEFF",t,"start"),this.body(t),t.raws.after){let n=t.raws.after,r=t.parent&&t.parent.type==="document";this.builder(r?n:Ke(n))}}rule(t){this.block(t,this.rawValue(t,"selector")),t.raws.ownSemicolon&&this.builder(Ke(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)}};Bd.exports=fr;fr.default=fr});var mr=oe((wR,Ud)=>{"use strict";var _x=os();function as(e,t){new _x(t).stringify(e)}Ud.exports=as;as.default=as});var pr=oe((CR,ss)=>{"use strict";ss.exports.isClean=Symbol("isClean");ss.exports.my=Symbol("my")});var br=oe((RR,Wd)=>{"use strict";var wx=Oi(),Cx=os(),Rx=mr(),{isClean:hr,my:Tx}=pr();function kx(e,t){let n=new e.constructor,r=[[e,n,t]];for(;r.length>0;){let[i,o,a]=r.pop();for(let u in i){if(!Object.prototype.hasOwnProperty.call(i,u)||u==="proxyCache")continue;let s=i[u],l=typeof s;if(u==="parent"&&l==="object")a&&(o[u]=a);else if(u==="source")o[u]=s;else if(Array.isArray(s)){let d=[];o[u]=d;for(let m of s){let f=new m.constructor;d.push(f),r.push([m,f,o])}}else{if(l==="object"&&s!==null){let d=new s.constructor;r.push([s,d,void 0]),s=d}o[u]=s}}}return n}function ot(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 gr=class e{get proxyOf(){return this}constructor(t={}){this.raws={},this[hr]=!1,this[Tx]=!0;for(let n of Object.keys(t))if(n!=="__proto__")if(n==="nodes"){this.nodes=[];for(let r of t[n])typeof r.clone=="function"&&r.parent?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=kx(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 wx(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[hr]=!0}markDirty(){if(this[hr]){this[hr]=!1;let t=this;for(;t=t.parent;)t[hr]=!1}}next(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t+1]}positionBy(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:ot(n,this.source.start)};if(t.index)r=this.positionInside(t.index);else if(t.word){let o=n.slice(ot(n,this.source.start),ot(n,this.source.end)).indexOf(t.word);o!==-1&&(r=this.positionInside(o))}return r}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=ot(i,this.source.start),a=o+t;for(let u=o;u<a;u++)i[u]===`\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:ot(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:ot(n,this.source.end)+1}:{column:r.column+1,line:r.line,offset:r.offset+1};if(t.word){let a=n.slice(ot(n,this.source.start),ot(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:ot(n,t.start)}:typeof t.index=="number"&&(r=this.positionInside(t.index)),t.end?i={column:t.end.column,line:t.end.line,offset:ot(n,t.end)}:typeof t.endIndex=="number"?i=this.positionInside(t.endIndex):typeof t.index=="number"&&(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 Cx().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=n==null;n=n||new Map;let i=[],o=[[this,i,0]];for(let u=0;u<o.length;u++){let[s,l,d]=o[u],m={};l[d]=m;for(let f in s){if(!Object.prototype.hasOwnProperty.call(s,f)||f==="parent"||f==="proxyCache")continue;let p=s[f];if(Array.isArray(p)){let g=[];m[f]=g;for(let y=0;y<p.length;y++){let x=p[y];typeof x=="object"&&x.toJSON?x.toJSON===e.prototype.toJSON?o.push([x,g,y]):g[y]=x.toJSON(null,n):g[y]=x}}else if(typeof p=="object"&&p.toJSON)p.toJSON===e.prototype.toJSON?o.push([p,m,f]):m[f]=p.toJSON(null,n);else if(f==="source"){if(p==null)continue;let g=n.get(p.input);g==null&&(g=n.size,n.set(p.input,g)),m[f]={end:p.end,inputId:g,start:p.start}}else m[f]=p}}let a=i[0];return r&&(a.inputs=[...n.keys()].map(u=>u.toJSON())),a}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(t=Rx){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)}};Wd.exports=gr;gr.default=gr});var yr=oe((TR,Vd)=>{"use strict";var Mx=br(),xr=class extends Mx{constructor(t){super(t),this.type="comment"}};Vd.exports=xr;xr.default=xr});var Sr=oe((kR,zd)=>{"use strict";var Fx=br(),vr=class extends Fx{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"}};zd.exports=vr;vr.default=vr});var ht=oe((MR,Qd)=>{"use strict";var qd=yr(),jd=Sr(),$d=br(),{isClean:Kd,my:Xd}=pr(),us,Yd,Jd,ls;function Nx(e){let t=e.slice();for(;t.length>0;){let n=t.pop();if(delete n.source,n.nodes){n.nodes=n.nodes.slice();for(let r of n.nodes)t.push(r)}}return e.slice()}function Lx(e){let t=[e];for(;t.length>0;){let n=t.pop();if(n[Kd]=!1,n.proxyOf.nodes)for(let r of n.proxyOf.nodes)t.push(r)}}var at=class e extends $d{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){let n=[this];for(;n.length>0;){let r=n.pop();if(r!==this&&r.cleanRaws!==e.prototype.cleanRaws){r.cleanRaws(t);continue}if($d.prototype.cleanRaws.call(r,t),r.nodes)for(let i of r.nodes)n.push(i)}}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 u of o)this.proxyOf.nodes.splice(r,0,u);let a;for(let u in this.indexes)a=this.indexes[u],r<=a&&(this.indexes[u]=a+o.length);return this.markDirty(),this}normalize(t,n){if(typeof t=="string")t=Nx(Yd(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 jd(t)]}else if(t.selector||t.selectors)t=[new ls(t)];else if(t.name)t=[new us(t)];else if(t.text)t=[new qd(t)];else throw new Error("Unknown node type in node creation");return t.map(i=>(i[Xd]||e.rebuild(i),i=i.proxyOf,i.parent&&i.parent.removeChild(i),i[Kd]&&Lx(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){if(!this.proxyOf.nodes)return;let n=[{iterator:this.getIterator(),node:this.proxyOf}];for(;n.length>0;){let{iterator:r,node:i}=n[n.length-1],o=i.indexes[r];if(o>=i.proxyOf.nodes.length){delete i.indexes[r],n.pop();let s=n[n.length-1];s&&(s.node.indexes[s.iterator]+=1);continue}let a=i.proxyOf.nodes[o],u;try{u=t(a,o)}catch(s){throw a.addToError(s)}if(u===!1){for(let s of n)delete s.node.indexes[s.iterator];return!1}a.walk&&a.proxyOf.nodes?n.push({iterator:a.getIterator(),node:a}):i.indexes[r]+=1}}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)}))}};at.registerParse=e=>{Yd=e};at.registerRule=e=>{ls=e};at.registerAtRule=e=>{us=e};at.registerRoot=e=>{Jd=e};Qd.exports=at;at.default=at;at.rebuild=e=>{let t=[e];for(;t.length>0;){let n=t.pop();if(n.type==="atrule"?Object.setPrototypeOf(n,us.prototype):n.type==="rule"?Object.setPrototypeOf(n,ls.prototype):n.type==="decl"?Object.setPrototypeOf(n,jd.prototype):n.type==="comment"?Object.setPrototypeOf(n,qd.prototype):n.type==="root"&&Object.setPrototypeOf(n,Jd.prototype),n[Xd]=!0,n.nodes)for(let r of n.nodes)t.push(r)}}});var Hi=oe((FR,ef)=>{"use strict";var Zd=ht(),yn=class extends Zd{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)}};ef.exports=yn;yn.default=yn;Zd.registerAtRule(yn)});var Gi=oe((NR,rf)=>{"use strict";var Dx=ht(),tf,nf,$t=class extends Dx{constructor(t){super({type:"document",...t}),this.nodes||(this.nodes=[])}toResult(t={}){return new tf(new nf,this,t).stringify()}};$t.registerLazyResult=e=>{tf=e};$t.registerProcessor=e=>{nf=e};rf.exports=$t;$t.default=$t});var af=oe((LR,of)=>{var Ix="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",Px=(e,t=21)=>(n=t)=>{let r="",i=n|0;for(;i-- >0;)r+=e[Math.random()*e.length|0];return r},Ox=(e=21)=>{let t="",n=e|0;for(;n-- >0;)t+=Ix[Math.random()*64|0];return t};of.exports={nanoid:Ox,customAlphabet:Px}});var Bi=oe(()=>{});var Ui=oe(()=>{});var cs=oe(()=>{});var sf=oe(()=>{});var ds=oe((WR,df)=>{"use strict";var{existsSync:Hx,readFileSync:Gx,realpathSync:Bx}=sf(),{dirname:Wi,isAbsolute:Ux,join:Wx,relative:Vx,sep:zx}=Bi(),{SourceMapConsumer:uf,SourceMapGenerator:lf}=Ui();function cf(e){try{return Bx(e)}catch{return e}}function $x(e){return Buffer?Buffer.from(e,"base64").toString():window.atob(e)}var Ar=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=Wi(this.mapFile)),i&&(this.text=i)}consumer(){return this.consumerCache||(this.consumerCache=new uf(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 u=t.match(n)||t.match(r);if(u)return $x(t.substr(u[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){if(!/\\.map$/i.test(t)||!n)return;let i=Vx(cf(Wi(n)),cf(t));if(i===".."||i.startsWith(".."+zx)||Ux(i))return}if(this.root=Wi(t),Hx(t))return this.mapFile=t,Gx(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 uf)return lf.fromSourceMap(n).toString();if(n instanceof lf)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=Wx(Wi(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)}};df.exports=Ar;Ar.default=Ar});var Er=oe((VR,gf)=>{"use strict";var{nanoid:qx}=af(),{isAbsolute:ps,resolve:hs}=Bi(),{SourceMapConsumer:jx,SourceMapGenerator:Kx}=Ui(),{fileURLToPath:ff,pathToFileURL:Vi}=cs(),mf=Oi(),Xx=ds(),fs=is(),ms=Symbol("lineToIndexCache"),Yx=!!(jx&&Kx),pf=!!(hs&&ps);function hf(e){if(e[ms])return e[ms];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[ms]=n,n}var vn=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&&(!pf||/^\\w+:\\/\\//.test(n.from)||ps(n.from)?this.file=n.from:this.file=hs(n.from)),pf&&Yx){let r=new Xx(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 "+qx(6)+">"),this.map&&(this.map.file=this.from)}error(t,n,r,i={}){let o,a,u,s,l;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"){u=f.offset;let p=this.fromOffset(u);a=p.line,o=p.col}else a=f.line,o=f.column,u=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 d=this.origin(n,r,a,o);return d?l=new mf(t,d.endLine===void 0?d.line:{column:d.column,line:d.line},d.endLine===void 0?d.column:{column:d.endColumn,line:d.endLine},d.source,d.file,i.plugin):l=new mf(t,a===void 0?n:{column:r,line:n},a===void 0?r:{column:o,line:a},this.css,this.file,i.plugin),l.input={column:r,endColumn:o,endLine:a,endOffset:u,line:n,offset:s,source:this.css},this.file&&(Vi&&(l.input.url=Vi(this.file).toString()),l.input.file=this.file),l}fromLineAndColumn(t,n){return hf(this)[t-1]+n-1}fromOffset(t){let n=hf(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:hs(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-1,line:t});if(!a.source)return!1;let u;if(typeof r=="number"){let m=o.originalPositionFor({column:i-1,line:r});m.source&&(u=m)}let s;ps(a.source)?s=Vi(a.source):s=new URL(a.source,this.map.consumer().sourceRoot||Vi(this.map.mapFile));let l={column:a.column+1,endColumn:u&&u.column+1,endLine:u&&u.line,line:a.line,url:s.toString()};if(s.protocol==="file:")if(ff)l.file=ff(s);else throw new Error("file: protocol is not available in this PostCSS build");let d=o.sourceContentFor(a.source);return d&&(l.source=d),l}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}};gf.exports=vn;vn.default=vn;fs&&fs.registerInput&&fs.registerInput(vn)});var Sn=oe((zR,vf)=>{"use strict";var bf=ht(),xf,yf,Mt=class extends bf{constructor(t){super(t),this.type="root",this.nodes||(this.nodes=[])}normalize(t,n,r){let i=new Set;for(let a of Array.isArray(t)?t:[t])a&&typeof a=="object"&&!a.parent&&a.raws&&typeof a.raws.before<"u"&&i.add(a.raws);let o=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 a of o)i.has(a.raws)||(a.raws.before=n.raws.before)}return o}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 xf(new yf,this,t).stringify()}};Mt.registerLazyResult=e=>{xf=e};Mt.registerProcessor=e=>{yf=e};vf.exports=Mt;Mt.default=Mt;bf.registerRoot(Mt)});var gs=oe(($R,Sf)=>{"use strict";var _r={comma(e){return _r.split(e,[","],!0)},space(e){let t=[" ",`\n`," "];return _r.split(e,t)},split(e,t,n){if(typeof e!="string")return[];let r=[],i="",o=!1,a=0,u=!1,s="",l=!1;for(let m of e)if(l?l=!1:m==="\\\\"?l=!0:u?m===s&&(u=!1):m===\'"\'||m==="\'"?(u=!0,s=m):m==="("?a+=1:m===")"?a>0&&(a-=1):a===0&&t.includes(m)&&(o=!0),o){let f=i.trim();(n||f!=="")&&r.push(f),i="",o=!1}else i+=m;let d=i.trim();return(n||d!=="")&&r.push(d),r}};Sf.exports=_r;_r.default=_r});var zi=oe((qR,Ef)=>{"use strict";var Af=ht(),Jx=gs(),An=class extends Af{get selectors(){return Jx.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=[])}};Ef.exports=An;An.default=An;Af.registerRule(An)});var Cf=oe((jR,wf)=>{"use strict";var Qx=Hi(),Zx=yr(),ey=Sr(),ty=Er(),ny=ds(),ry=Sn(),iy=zi();function _f(e,t){return e.inputs?e.inputs.map(n=>{let r={...n,__proto__:ty.prototype};return r.map&&(r.map={...r.map,__proto__:ny.prototype}),r}):t}function oy(e,t,n){let r={...e};if(delete r.inputs,delete r.nodes,r.source){let{inputId:o,...a}=r.source;r.source=a,o!=null&&(r.source.input=t[o])}let i;if(r.type==="root")i=new ry(r);else if(r.type==="decl")i=new ey(r);else if(r.type==="rule")i=new iy(r);else if(r.type==="comment")i=new Zx(r);else if(r.type==="atrule")i=new Qx(r);else throw new Error("Unknown node type: "+e.type);if(n){i.nodes=n;for(let o of n)o.parent=i}return i}function $i(e,t){if(Array.isArray(e))return e.map(i=>$i(i));let n,r=[{childIndex:0,children:[],inputs:_f(e,t),json:e}];for(;r.length>0;){let i=r[r.length-1],o=i.json.nodes;if(o&&i.childIndex<o.length){let u=o[i.childIndex];i.childIndex+=1,r.push({childIndex:0,children:[],inputs:_f(u,i.inputs),json:u});continue}r.pop();let a=oy(i.json,i.inputs,o?i.children:void 0);r.length>0?r[r.length-1].children.push(a):n=a}return n}wf.exports=$i;$i.default=$i});var xs=oe((KR,Nf)=>{"use strict";var{dirname:qi,relative:Tf,resolve:kf,sep:Mf}=Bi(),{SourceMapConsumer:Ff,SourceMapGenerator:ji}=Ui(),{pathToFileURL:Rf}=cs(),ay=Er(),sy=!!(Ff&&ji),uy=!!(qi&&kf&&Tf&&Mf),bs=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||qi(t.file),i;this.mapOpts.sourcesContent===!1?(i=new Ff(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="/*# sourceMappingURL=",n;for(;(n=this.css.lastIndexOf(t))!==-1;){let r=this.css.indexOf("*/",n+t.length);if(r===-1)break;for(;n>0&&this.css[n-1]===`\n`;)n--;this.css=this.css.slice(0,n)+this.css.slice(r+2)}}}}generate(){if(this.clearAnnotation(),uy&&sy&&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=ji.fromSourceMap(t,{ignoreInvalidMapping:!0})}else this.map=new ji({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 ji({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,(u,s,l)=>{if(this.css+=u,s&&l!=="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=u.match(/\\n/g),a?(t+=a.length,o=u.lastIndexOf(`\n`),n=u.length-o):n+=u.length,s&&l!=="start"){let d=s.parent||{raws:{}};(!(s.type==="decl"||s.type==="atrule"&&!s.nodes)||s!==d.last||d.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?qi(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(r=qi(kf(r,this.mapOpts.annotation)));let i=Tf(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 ay(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(Rf){let r=Rf(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;Mf==="\\\\"&&(t=t.replace(/\\\\/g,"/"));let r=encodeURI(t).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(t,r),r}};Nf.exports=bs});var If=oe((XR,Df)=>{"use strict";var Ki=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,Xi=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,ly=/.[\\r\\n"\'(/\\\\]/,Lf=/[\\da-f]/i;Df.exports=function(t,n={}){let r=t.css.valueOf(),i=n.ignoreErrors,o,a,u,s,l,d,m,f,p,g,y=r.length,x=0,w=[],k=[],C=-1;function N(){return x}function O(E){throw t.error("Unclosed "+E,x)}function F(){return k.length===0&&x>=y}function v(E){if(k.length)return k.pop();if(x>=y)return;let T=E?E.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);d=["space",r.slice(x,s)],x=s-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let L=String.fromCharCode(o);d=[L,L,x];break}case 40:{if(g=w.length?w.pop()[1]:"",p=r.charCodeAt(x+1),g==="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||T){s=x;break}else O("bracket");for(f=s;r.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);d=["brackets",r.slice(x,s+1),x,s],x=s}else x<=C?d=["(","(",x]:(s=r.indexOf(")",x+1),a=r.slice(x,s+1),s===-1||ly.test(a)?(C=s===-1?y:s,d=["(","(",x]):(d=["brackets",a,x,s],x=s));break}case 39:case 34:{l=o===39?"\'":\'"\',s=x;do{if(m=!1,s=r.indexOf(l,s+1),s===-1)if(i||T){s=x+1;break}else O("string");for(f=s;r.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);d=["string",r.slice(x,s+1),x,s],x=s;break}case 64:{Ki.lastIndex=x+1,Ki.test(r),Ki.lastIndex===0?s=r.length-1:s=Ki.lastIndex-2,d=["at-word",r.slice(x,s+1),x,s],x=s;break}case 92:{for(s=x,u=!0;r.charCodeAt(s+1)===92;)s+=1,u=!u;if(o=r.charCodeAt(s+1),u&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(s+=1,Lf.test(r.charAt(s)))){for(;Lf.test(r.charAt(s+1));)s+=1;r.charCodeAt(s+1)===32&&(s+=1)}d=["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||T?s=r.length:O("comment")),d=["comment",r.slice(x,s+1),x,s],x=s):(Xi.lastIndex=x+1,Xi.test(r),Xi.lastIndex===0?s=r.length-1:s=Xi.lastIndex-2,d=["word",r.slice(x,s+1),x,s],w.push(d),x=s);break}}return x++,d}function S(E){k.push(E)}return{back:S,endOfFile:F,nextToken:v,position:N}}});var Gf=oe((YR,Hf)=>{"use strict";var cy=Hi(),dy=yr(),fy=Sr(),my=Sn(),Pf=zi(),py=If(),Of={empty:!0,space:!0};function hy(e){for(let t=e.length-1;t>=0;t--){let n=e[t],r=n[3]||n[2];if(r)return r}}function ys(e,t,n){let r="";for(let i=t;i<n;i++)r+=e[i][1];return r}var vs=class{constructor(t){this.input=t,this.root=new my,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 cy;n.name=t[1].slice(1),n.name===""&&this.unnamedAtrule(n,t),this.init(n,t[2]);let r,i,o,a=!1,u=!1,s=[],l=[];for(;!this.tokenizer.endOfFile();){if(t=this.tokenizer.nextToken(),r=t[0],r==="("||r==="["?l.push(r==="("?")":"]"):r==="{"&&l.length>0?l.push("}"):r===l[l.length-1]&&l.pop(),l.length===0)if(r===";"){n.source.end=this.getPosition(t[2]),n.source.end.offset++,this.semicolon=!0;break}else if(r==="{"){u=!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=""),u&&(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,u]of t.entries()){if(i=u,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 dy;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=py(this.input)}decl(t,n){let r=new fy;this.init(r,t[0][2]);let i=t[t.length-1];i[0]===";"&&(this.semicolon=!0,t.pop()),r.source.end=this.getPosition(i[3]||i[2]||hy(t)),r.source.end.offset++;let o=0;for(;t[o][0]!=="word";)o===t.length-1&&this.unknownWord([t[o]]),o++;r.raws.before+=ys(t,0,o),r.source.start=this.getPosition(t[o][2]);let a=o;for(;o<t.length;){let f=t[o][0];if(f===":"||f==="space"||f==="comment")break;o++}r.prop=ys(t,a,o);let u=o,s;for(;o<t.length&&(s=t[o],o++,s[0]!==":");)s[0]==="word"&&/\\w/.test(s[1])&&this.unknownWord([s]);r.raws.between=ys(t,u,o),(r.prop[0]==="_"||r.prop[0]==="*")&&(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));let l=o;for(;o<t.length;){let f=t[o][0];if(f!=="space"&&f!=="comment")break;o++}let d=t.slice(l,o);t=t.slice(o),this.precheckMissedSemicolon(t);for(let f=t.length-1;f>=0;f--){if(s=t[f],s[1].toLowerCase()==="!important"){r.important=!0;let p=this.stringFrom(t,f);p=this.spacesFromEnd(t)+p,p!==" !important"&&(r.raws.important=p);break}else if(s[1].toLowerCase()==="important"){let p=t.slice(0),g="";for(let y=f;y>0;y--){let x=p[y][0];if(g.trim().startsWith("!")&&x!=="space")break;g=p.pop()[1]+g}g.trim().startsWith("!")&&(r.important=!0,r.raws.important=g,t=p)}if(s[0]!=="space"&&s[0]!=="comment")break}t.some(f=>f[0]!=="space"&&f[0]!=="comment")&&(r.raws.between+=d.map(f=>f[1]).join(""),d=[]),this.raw(r,"value",d.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 Pf;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++)}}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=[],u=t[1].startsWith("--"),s=[],l=t;for(;l;){if(r=l[0],s.push(l),r==="("||r==="[")o||(o=l),a.push(r==="("?")":"]");else if(u&&i&&r==="{")o||(o=l),a.push("}");else if(a.length===0)if(r===";")if(i){this.decl(s,u);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));l=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),a.length>0&&this.unclosedBracket(o),n&&i){if(!u)for(;s.length&&(l=s[s.length-1][0],!(l!=="space"&&l!=="comment"));)this.tokenizer.back(s.pop());this.decl(s,u)}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,u=r.length,s="",l=!0,d,m;for(let f=0;f<u;f+=1)o=r[f],a=o[0],a==="space"&&f===u-1&&!i?l=!1:a==="comment"?(m=r[f-1]?r[f-1][0]:"empty",d=r[f+1]?r[f+1][0]:"empty",!Of[m]&&!Of[d]?s.slice(-1)===","?l=!1:s+=o[1]:l=!1):s+=o[1];if(!l){let f=r.reduce((p,g)=>p+g[1],"");t.raws[n]={raw:f,value:s}}t[n]=s}rule(t){t.pop();let n=new Pf;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})}};Hf.exports=vs});var Ji=oe((JR,Bf)=>{"use strict";var gy=ht(),by=Er(),xy=Gf();function Yi(e,t){let n=new by(e,t),r=new xy(n);try{r.parse()}catch(i){throw i}return r.root}Bf.exports=Yi;Yi.default=Yi;gy.registerParse(Yi)});var Ss=oe((QR,Uf)=>{"use strict";var yy=ht(),{my:vy}=pr(),wr=class{constructor(t,n={}){if(this.type="warning",this.text=t,n.node&&n.node.source){n.node[vy]||yy.rebuild(n.node);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}};Uf.exports=wr;wr.default=wr});var Qi=oe((ZR,Wf)=>{"use strict";var Sy=Ss(),Cr=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 Sy(t,n);return this.messages.push(r),r}warnings(){return this.messages.filter(t=>t.type==="warning")}};Wf.exports=Cr;Cr.default=Cr});var As=oe((eT,zf)=>{"use strict";var Vf={};zf.exports=function(t){Vf[t]||(Vf[t]=!0,typeof console<"u"&&console.warn&&console.warn(t))}});var ws=oe((nT,Kf)=>{"use strict";var Ay=ht(),Ey=Gi(),_y=xs(),wy=Ji(),$f=Qi(),Cy=Sn(),Ry=mr(),{isClean:Xe,my:Ty}=pr(),tT=As(),ky={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},My={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},Fy={Once:!0,postcssPlugin:!0,prepare:!0},En=0;function Rr(e){return typeof e=="object"&&typeof e.then=="function"}function Es(e){let t=!1,n=ky[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 qf(e){let t;return e.type==="document"?t=["Document",En,"DocumentExit"]:e.type==="root"?t=["Root",En,"RootExit"]:t=Es(e),{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function jf(e){let t=[e];for(;t.length>0;){let n=t.pop();if(n[Xe]=!1,n.nodes)for(let r of n.nodes)t.push(r)}return e}var _s={},Ft=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=jf(n);else if(n instanceof e||n instanceof $f)i=jf(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=wy;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[Ty]&&Ay.rebuild(i)}this.result=new $f(t,i,r),this.helpers={..._s,postcss:_s,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(!My[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!Fy[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(Rr(r))try{await r}catch(i){throw this.handleError(i)}}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[Xe];){t[Xe]=!0;let n=[qf(t)];for(;n.length>0;){let r=this.visitTick(n);if(Rr(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 Rr(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=Ry;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,u=>{a+=u}),this.result.css=a,this.result}let o=new _y(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(Rr(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[Xe];)t[Xe]=!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(Rr(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,u]=i[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===i.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=a;try{return u(r.toProxy(),this.helpers)}catch(s){throw this.handleError(s,r)}}if(n.iterator!==0){let a=n.iterator;n.descending&&(n.descending=!1,r.indexes[a]+=1);let u;for(;u=r.nodes[r.indexes[a]];){if(!u[Xe]){u[Xe]=!0,n.descending=!0,t.push(qf(u));return}r.indexes[a]+=1}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[Xe]=!0,n.iterator=r.getIterator());return}else if(this.listeners[a]){n.visitors=this.listeners[a];return}}t.pop()}walkSync(t){t[Xe]=!0;let n=[{eventIndex:0,events:Es(t),iterator:0,node:t}];for(;n.length>0;){let r=n[n.length-1],i=r.node;if(r.iterator!==0){let o=r.iterator;r.descending&&(r.descending=!1,i.indexes[o]+=1);let a,u=!1;for(;a=i.nodes[i.indexes[o]];){if(!a[Xe]){a[Xe]=!0,r.descending=!0,n.push({eventIndex:0,events:Es(a),iterator:0,node:a}),u=!0;break}i.indexes[o]+=1}if(u)continue;r.iterator=0,delete i.indexes[o]}if(r.eventIndex<r.events.length){let o=r.events[r.eventIndex];if(r.eventIndex+=1,o===En)i.nodes&&i.nodes.length&&(r.iterator=i.getIterator());else{let a=this.listeners[o];a&&this.visitSync(a,i.toProxy())&&n.pop()}continue}n.pop()}}warnings(){return this.sync().warnings()}};Ft.registerPostcss=e=>{_s=e};Kf.exports=Ft;Ft.default=Ft;Cy.registerLazyResult(Ft);Ey.registerLazyResult(Ft)});var Yf=oe((iT,Xf)=>{"use strict";var Ny=xs(),Ly=Ji(),Dy=Qi(),Iy=mr(),rT=As(),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=Ly;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=Iy;this.result=new Dy(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 Ny(i,void 0,this._opts,n);if(a.isMap()){let[u,s]=a.generate();u&&(this.result.css=u),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[]}};Xf.exports=Tr;Tr.default=Tr});var Qf=oe((oT,Jf)=>{"use strict";var Py=Gi(),Oy=ws(),Hy=Yf(),Gy=Sn(),qt=class{constructor(t=[]){this.version="8.5.28",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 Hy(this,t,n):new Oy(this,t,n)}use(t){return this.plugins=this.plugins.concat(this.normalize([t])),this}};Jf.exports=qt;qt.default=qt;Gy.registerProcessor(qt);Py.registerProcessor(qt)});var am=oe((aT,om)=>{"use strict";var Zf=Hi(),em=yr(),By=ht(),Uy=Oi(),tm=Sr(),nm=Gi(),Wy=Cf(),Vy=Er(),zy=ws(),$y=gs(),qy=br(),jy=Ji(),Cs=Qf(),Ky=Qi(),rm=Sn(),im=zi(),Xy=mr(),Yy=Ss();function le(...e){return e.length===1&&Array.isArray(e[0])&&(e=e[0]),new Cs(e)}le.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("zh")&&console.warn(t+`: \\u91CC\\u9762 postcss.plugin \\u88AB\\u5F03\\u7528. \\u8FC1\\u79FB\\u6307\\u5357:\nhttps://www.w3ctech.com/topic/2226`));let u=n(...a);return u.postcssPlugin=t,u.postcssVersion=new Cs().version,u}let o;return Object.defineProperty(i,"postcss",{get(){return o||(o=i()),o}}),i.process=function(a,u,s){return le([i(s)]).process(a,u)},i};le.stringify=Xy;le.parse=jy;le.fromJSON=Wy;le.list=$y;le.comment=e=>new em(e);le.atRule=e=>new Zf(e);le.decl=e=>new tm(e);le.rule=e=>new im(e);le.root=e=>new rm(e);le.document=e=>new nm(e);le.CssSyntaxError=Uy;le.Declaration=tm;le.Container=By;le.Processor=Cs;le.Document=nm;le.Comment=em;le.Warning=Yy;le.AtRule=Zf;le.Result=Ky;le.Input=Vy;le.Rule=im;le.Root=rm;le.Node=qy;zy.registerPostcss(le);om.exports=le;le.default=le});function ai(){return globalThis}function I(e,t){if(typeof window>"u")return;let n=ai(),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 X0=["seconds-time","rational-fps","seek-keep-playing","composition-manifest-v1","runtime-data"];function Y0(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 J0(e){let t=Number.isFinite(e)&&e>0?e:30,n=Number.isInteger(t)?1:1e6,r=Math.round(t*n),i=Y0(r,n);return{numerator:r/i,denominator:n/i}}function qo(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 si(e){return{protocolVersion:1,capabilities:X0,fps:J0(e)}}function Q0(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function hl(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=qo(n.fps);return r===null||!Q0(n.capabilities)?{status:"unsupported",code:"invalid_protocol_metadata",receivedVersion:n.protocolVersion}:{status:"supported",fps:r,metadata:n}}var gl=30;function bl(e){gl=Number.isFinite(e)&&e>0?e:30}function ye(e){try{window.parent.postMessage({...e,...si(gl)},"*")}catch(t){I("bridge.postMessage",t)}}var Z0=new Map(Object.entries({play:(e,t)=>t.onPlay(),pause:(e,t)=>t.onPause(),"stop-media":(e,t)=>t.onStopMedia(),seek:(e,t)=>t.onSeek(eg(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=>ng(e),"set-runtime-data":(e,t)=>{typeof e.channel=="string"&&t.onSetRuntimeData?.(e.channel,e.payload,e.requestId)},"clear-runtime-data":(e,t)=>{typeof e.channel=="string"&&t.onClearRuntimeData?.(e.channel,e.requestId)}}));function eg(e,t){let n=Number(e.timeSeconds);if(Number.isFinite(n))return Math.max(0,n);let i=qo(e.fps)??t.getCanonicalFps();return Math.max(0,Number(e.frame??0))/i}function tg(e){let t=hl(e);return t.status!=="unsupported"?!1:(ye({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 ng(e){let t=e.selectors,n=e.duration||800;t&&rg(t,n)}function xl(e){let t=n=>{if(n.source!==window.parent&&n.source!==window)return;let r=n.data;if(!r||r.source!=="hf-parent"||r.type!=="control"||tg(r))return;let i=r.action;if(typeof i!="string")return;let o=Z0.get(i);o&&o(r,e)};return window.addEventListener("message",t),ye({source:"hf-preview",type:"ready"}),t}function rg(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){I("bridge.flashElements.querySelector",r)}}var Et=(e,t,n)=>e>=t&&e<n;var ui=(e,t,n,r)=>Et(e,t,n)||e>=t&&r>0&&n>=r-1e-6;var jo=null;function yl(e){jo=e}function Ge(e,t){if(jo)try{jo({source:"hf-preview",type:"analytics",event:e,properties:t??{}})}catch(n){I("runtime.analytics.site1",n)}}function ig(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 nn(e){return`--${ig(e)}`}function vl(e){let t=new Map;for(let n of e){let r=nn(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 Al(){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,Un(i));let n=ci(),r={...t,...n};for(let i of e)Xo(i,r);return r}var Sl=new Set;function El(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 og(e,t){return t?.trim()||e.getAttribute("data-composition-id")?.trim()||e.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")?.trim()||"composition"}function ag(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 sg(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=ag(e);return r.length===0||r.some(i=>String(i)===String(n))?null:{id:e.id,value:n,allowed:r}}function Xo(e,t,n){if(!e)return;let r=El(e);if(r.length===0)return;let i=og(e,n);for(let o of r){let a=sg(o,t);if(!a)continue;let u=`${i}|${a.id}|${String(a.value)}`;if(Sl.has(u))continue;Sl.add(u);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 Un(e){let t={};for(let n of El(e))typeof n.id!="string"||!("default"in n)||(t[n.id]=n.default);return t}var Ko="data-hf-css-vars";function li(e){return"style"in e&&typeof e.style?.setProperty=="function"}function Yo(e,t){if(!li(e))return;let n=[];for(let[r,i]of Object.entries(t))if(typeof i=="string"&&i!==""||typeof i=="number"){let o=nn(r);e.style.setProperty(o,String(i)),n.push(o)}n.length>0&&e.setAttribute(Ko,n.join(" "))}function _l(e,t,n){let r={};for(let[i,o]of Object.entries(t)){let a=nn(i);((li(e)?e.style.getPropertyValue(a):"")||(n?n.getComputedStyle(e).getPropertyValue(a):"")).trim()===""&&(r[i]=o)}return r}function wl(e){if(!li(e))return;let t=e.getAttribute(Ko);if(t){for(let n of t.split(" "))n.startsWith("--")&&e.style.removeProperty(n);e.removeAttribute(Ko)}}function Cl(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=ci(),r=[];for(let i of t)r.push(...ug(i,n,e.defaultView));for(let i of vl(r))console.warn(`composition variables ${i.join(", ")} collapse to the same CSS property ${nn(i[0]??"")} \\u2014 rename one to avoid cross-talk`)}function ug(e,t,n){if(!li(e))return[];let r=Un(e),i={};for(let[o,a]of Object.entries(r)){if(o in t)continue;let u=nn(o);(e.style.getPropertyValue(u)||(n?n.getComputedStyle(e).getPropertyValue(u):"")).trim()===""&&(i[o]=a)}for(let[o,a]of Object.entries(t))o in r&&(i[o]=a);return Yo(e,i),Object.keys(r)}function Rl(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 ci(){if(typeof window>"u")return{};let e=window.__hfVariables;return!e||typeof e!="object"||Array.isArray(e)?{}:e}var Tl="http://www.w3.org/1999/xhtml";function ke(e){return e!=null&&e.nodeType===1}function he(e){return ke(e)&&e.namespaceURI===Tl}function rn(e,t){return he(e)&&e.localName===t}function me(e){return rn(e,"video")}function Jo(e){return rn(e,"audio")}function ge(e){return me(e)||Jo(e)}function Le(e){return rn(e,"img")}function Qo(e){return rn(e,"canvas")}function kl(e){return rn(e,"style")}function Ml(e){return rn(e,"link")}function Zo(e){return ke(e)&&(e.namespaceURI===Tl||e.namespaceURI==="http://www.w3.org/2000/svg")}function Fl(e){let t=[],n=l=>{if(typeof l.getAnimations!="function")return[];try{return l.getAnimations()}catch{return[]}},r=l=>e?.resolveStartSeconds?e.resolveStartSeconds(l):Number.parseFloat(l.getAttribute("data-start")??"0")||0,i=(l,d)=>{let m=null;try{m=l.effect?.getComputedTiming?.()??null}catch(p){I("runtime.adapters.css.site5",p)}if(!m)return{};let f=Number(m.endTime);return Number.isFinite(f)?{endSeconds:d+f/1e3}:{unbounded:!0}},o=(l,d)=>{for(let m of l){try{m.currentTime=d}catch(f){I("runtime.adapters.css.site1",f)}try{m.pause()}catch(f){I("runtime.adapters.css.site2",f)}}},a=l=>{for(let d of l)try{d.play()}catch(m){I("runtime.adapters.css.site3",m)}},u=l=>{for(let d of l)try{d.pause()}catch(m){I("runtime.adapters.css.site4",m)}},s=l=>{l.baseDelay?l.el.style.animationDelay=l.baseDelay:l.el.style.removeProperty("animation-delay"),l.basePlayState?l.el.style.animationPlayState=l.basePlayState:l.el.style.removeProperty("animation-play-state")};return{name:"css",discover:()=>{t=[];let l=document.querySelectorAll("*");for(let d of l){if(!he(d))continue;let m=window.getComputedStyle(d);!m.animationName||m.animationName==="none"||t.push({el:d,baseDelay:d.style.animationDelay||"",basePlayState:d.style.animationPlayState||"",animations:n(d)})}},getInferredDurationSeconds:()=>{let l=0;for(let d of t){if(!d.el.isConnected)continue;let m=r(d.el);for(let f of n(d.el)){let p=i(f,m);p.endSeconds!=null&&(l=Math.max(l,p.endSeconds))}}return l>0?l:null},seek:l=>{let d=Number(l.time)||0;for(let m of t){if(!m.el.isConnected)continue;let f=r(m.el),p=Math.max(0,d-f)*1e3,g=m.animations;if(g.length>0){o(g,p);continue}m.el.style.animationPlayState="paused",m.el.style.animationDelay=`-${(p/1e3).toFixed(3)}s`}},pause:()=>{for(let l of t){if(!l.el.isConnected)continue;let d=l.animations;d.length>0&&u(d),s(l)}},play:()=>{for(let l of t)l.el.isConnected&&(s(l),a(l.animations))},revert:()=>{t=[]}}}function Nl(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 Ll(){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){I("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){I("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){I("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){I("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function Pl(){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){I("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{let i=r.loop===!0;if(ea(r)){let o=t*r.frameRate;r.totalFrames>0&&i?r.goToAndStop(Dl(o,r.totalFrames),!0):r.totalFrames>0&&o>=r.totalFrames?r.goToAndStop(r.totalFrames-1,!0):r.goToAndStop(t*1e3,!1)}else if(ta(r)){if(typeof r.setCurrentRawFrameValue=="function"){let o=r.totalFrames??0,a=r.frameRate??30,u=i&&o>0?Dl(t*a,o):t*a;o>0&&r.setCurrentRawFrameValue(Math.min(u,o-1))}else if(typeof r.seek=="function"){let o=r.duration??0;if(Number.isFinite(o)&&o>0){let a=Math.min(100,(i?t%o:t)/o*100);r.seek(a)}}}}catch(i){I("runtime.adapters.lottie.site2",i)}},pause:()=>{let e=window.__hfLottie;if(!(!e||e.length===0))for(let t of e)try{(ea(t)||ta(t))&&t.pause()}catch(n){I("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=lg(r)}catch(o){I("runtime.adapters.lottie.site4",o)}i!=null&&(n=!0,t=Math.max(t,i))}return n?t:null}}}function Dl(e,t){let n=e%t;return t-n<1e-6?0:n}function Il(e,t){return!Number.isFinite(e)||!e||e<=0||!Number.isFinite(t)||!t||t<=0?null:e/t}function lg(e){return ea(e)?Il(e.totalFrames,e.frameRate):ta(e)?Number.isFinite(e.duration)&&(e.duration??0)>0?e.duration??null:Il(e.totalFrames,e.frameRate):null}function ea(e){return typeof e=="object"&&e!==null&&typeof e.goToAndStop=="function"}function ta(e){return typeof e=="object"&&e!==null&&typeof e.pause=="function"&&("totalFrames"in e||"duration"in e)}var na=-1,di=new Set,on,ra=0;function Ol(e){let t=[],n=!0,r={time:e,waitUntil:i=>{if(!n)throw new Error("hf-seek waitUntil() must be called synchronously from the event listener");t.push(i)}};try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:r}))}catch(i){I("runtime.adapters.seek-dispatch.site1",i)}finally{n=!1}t.length!==0&&ia(Promise.all(t))}function ia(e){let t=e.then(()=>({status:"fulfilled"})).catch(n=>({status:"rejected",reason:n}));di.add(t),t.then(n=>{di.delete(t)&&n.status==="rejected"&&on===void 0&&(on={reason:n.reason})})}function fi(e){e!==na&&(na=e,Ol(e))}function mi(e){na=e,Ol(e)}function Hl(){return ra>0}async function oa(){ra+=1;let e=on;try{for(await Promise.resolve();di.size>0;){let r=(await Promise.all([...di])).find(i=>i.status==="rejected");e===void 0&&r?.status==="rejected"&&(e={reason:r.reason})}let t=on;if(e===void 0&&(e=t),on===t&&(on=void 0),e)throw e.reason}finally{ra-=1}}function Gl(){let e=null,t=0,n=null,r=null,i=null,o=null,a=()=>{if(typeof window>"u")return null;let d=window.THREE?.DefaultLoadingManager;return!d||typeof d!="object"||typeof d.itemsLoaded!="number"||typeof d.itemsTotal!="number"?null:d},u=l=>{o||l.itemsTotal<=l.itemsLoaded||(o=new Promise(d=>{l.onLoad=function(){try{i?.call(this)}finally{o=null,l.onLoad=i??null,d()}}}))},s=l=>{n!==l&&(n=l,r=l.onStart??null,i=l.onLoad??null,l.onStart=function(d,m,f){try{r?.call(this,d,m,f)}finally{u(l)}})};return{name:"three",discover:()=>{let l=a();l&&(s(l),u(l))},seek:l=>{e=Math.max(0,Number(l.time)||0),t=e,window.__hfThreeTime=e,fi(e)},pause:()=>{e==null&&(e=Math.max(0,t))},play:()=>{e=null},revert:()=>{e=null,t=0},getReadyPromise:()=>{let l=a();return!l||l.itemsTotal<=l.itemsLoaded?null:(o||u(l),o)}}}function tt(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 Bl(){return tt({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 Ul(){return tt({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 Wl(){return tt({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 Vl(){return tt({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 zl(){return tt({name:"d3",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfD3;return Array.isArray(e)?e:[]},waitFor:e=>e.end()})}var cg=250;function $l(){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&&(Hl()||(window.__hfTypegpuTime=e,mi(e)))},cg))};return{name:"typegpu",discover:()=>{},seek:o=>{e=Math.max(0,Number(o.time)||0),t=e,window.__hfTypegpuTime=e,fi(e)},pause:()=>{e==null&&(e=Math.max(0,t)),i()},play:()=>{r(),e=null},revert:()=>{r(),e=null,t=0}}}var Wn="data-hf-render-id",ql="data-hf-group-render-id";function dg(e){return e.getAttribute(Wn)||e.id||null}var fg="__render_frame_",mg="__";function pg(e){return`${fg}${e}${mg}`}function hg(e){let t=dg(e);return t?pg(t):null}function _t(e){let t=hg(e);if(!t)return null;let n=document.getElementById(t);return Le(n)?n:null}function jl(e){let t=e.nextElementSibling;if(Le(t)&&t.classList.contains("__render_frame__")&&t.complete&&t.naturalWidth>0)return t;let n=_t(e);return n&&n.complete&&n.naturalWidth>0?n:null}function Kl(){let e=globalThis.GPUQueue;if(!e?.prototype?.copyExternalImageToTexture)return;let t=e.prototype.copyExternalImageToTexture;e.prototype.copyExternalImageToTexture=function(n,r,i){if(me(n?.source)){let o=jl(n.source);if(o)return t.call(this,{...n,source:o},r,i)}return t.call(this,n,r,i)}}function Xl(){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(...u){let s=u.length-1,l=u[s];if(me(l)){let d=jl(l);d&&(u[s]=d)}return o.apply(this,u)};a.__hfVideoPatched=!0,r[i]=a}}}var Wt="data-fx-chain",tw=Wt.slice(5),Yl=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}),aa=(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}),pi=(e=-40,t=40,n=0)=>({kind:"number",key:"gain",label:"Gain",unit:"dB",min:e,max:t,step:.1,default:n,automatable:!0}),Jl={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."},Zl=[{id:"gain",label:"Gain",group:"dynamics",description:"Raise or lower the whole signal. Automate it to duck under something else.",params:[pi(-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),pi(-40,40,0),aa(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),pi(-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),pi(-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),aa(.707),Jl],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),aa(.707),Jl],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"}],sa=new Map(Zl.map(e=>[e.id,e]));function zn(e){return sa.get(e)}var nw=Zl.map(e=>e.id);function $n(e,t){let n=sa.get(e);if(!n)return{};let r={};for(let i of n.params){let o=t?.[i.key];if(i.kind==="enum"){let u=i.options.some(s=>s.value===o);r[i.key]=u?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 wt=class extends Error{constructor(t){super(t),this.name="AudioFxChainError"}};function ec(e){let t;try{t=JSON.parse(e)}catch(i){throw new wt(`Chain file is not valid JSON: ${i.message}`)}if(typeof t!="object"||t===null)throw new wt("Chain file must be a JSON object.");let n=t;if(n.version!==Yl)throw new wt(`Unsupported chain version: ${String(n.version)}`);if(!Array.isArray(n.nodes))throw new wt("Chain file is missing a `nodes` array.");let r=n.nodes.map(gg);return{version:Yl,nodes:r}}function qn(e){return e.nodes.filter(t=>t.enabled!==!1)}function gg(e,t){if(typeof e!="object"||e===null)throw new wt(`Node ${t} is not an object.`);let n=e;if(typeof n.type!="string"||!sa.has(n.type))throw new wt(`Node ${t} has unknown effect type: ${String(n.type)}`);return xg({type:n.type,id:hi(n.id),fromCarve:Ql(n.fromCarve),fromPreset:hi(n.fromPreset),label:hi(n.label),fromEq:hi(n.fromEq),fromLeveller:Ql(n.fromLeveller),presetAmount:bg(n.presetAmount),enabled:n.enabled!==!1,params:$n(n.type,n.params??void 0)})}function hi(e){return typeof e=="string"&&e?e:void 0}function Ql(e){return e===!0?!0:void 0}function bg(e){if(!(typeof e!="number"||!Number.isFinite(e)))return Math.min(1,Math.max(0,e))}function xg(e){for(let t of Object.keys(e))e[t]===void 0&&delete e[t];return e}function yg(e){return 10**(e/20)}var ua=yg(12);function Be(e){return Number.isFinite(e)?Math.max(0,Math.min(ua,e)):1}function gi(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):1}function tc(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,gi(o))}});try{return t()}finally{delete e.volume,i.call(e,gi(o))}}var an=Object.freeze({start:"data-start",duration:"data-duration",trackIndex:"data-track-index",derivedEnd:"data-end",legacyTrack:"data-layer"}),ow=Object.freeze([an.start,an.duration,an.trackIndex]),aw=Object.freeze([an.derivedEnd]),sw=Object.freeze([an.derivedEnd,an.legacyTrack]);function Ct(e){if(e==null||e.trim()==="")return null;let t=Number(e);return Number.isFinite(t)?t:null}var rc=/^[A-Za-z0-9_.:-]+$/;function ic(e,t){let n=e.charCodeAt(t);return n>=48&&n<=57}function nc(e,t){let n=t;for(;n>=0&&ic(e,n);)n--;return n}function vg(e,t){let n=t;for(;n>=0&&(e[n]??"").trim()==="";)n--;return n}function Sg(e){let t=e.length-1;if(!ic(e,t))return null;let n=nc(e,t);return e[n]==="."&&(n=nc(e,n-1)),n+1}function Ag(e){let t=Sg(e);if(t==null)return null;let n=vg(e,t-1),r=e[n];if(r!=="+"&&r!=="-")return null;let i=e.slice(0,n).trim();if(!rc.test(i))return null;let o=Number(e.slice(t));return Number.isFinite(o)?{refId:i,operator:r,magnitude:o}:null}function la(e){let t=(e??"").trim();if(!t)return null;let n=Ct(t);if(n!=null)return{kind:"absolute",value:n};if(rc.test(t))return{kind:"reference",refId:t,offset:0};let r=Ag(t);return r?{kind:"reference",refId:r.refId,offset:r.operator==="-"?-r.magnitude:r.magnitude}:null}var oc=e=>{let t=Ct(e);return t!==null&&t>=0?t:null};function ac(e){return oc(e("data-playback-start"))??oc(e("data-media-start"))??0}var jn=.1,Kn=10;function ca(e){return Number.isFinite(e)&&e>0?Math.max(jn,Math.min(Kn,e)):1}function sc(e,t=1){let n=Number.parseFloat(e("data-playback-rate")??"");return ca(Number.isFinite(n)&&n>0?n:t)}function da(e){let t=Ct(e("data-duration"));return t!==null&&t>0?t:null}function uc(e,t){let n=da(e);if(n!==null)return n;let r=Ct(e("data-end"));return r!==null?r-t:null}var Eg=3;function fa(e,t,n){return Number.isFinite(e)?Math.max(0,e-t)/ca(n):null}function ma(e){let{tag:t,authoredDurationSeconds:n,sourceDurationSeconds:r,mediaStartSeconds:i,playbackRate:o}=e;if(n!==null&&n>0)return{seconds:n,source:"authored"};if(t==="img")return{seconds:Eg,source:"default"};if(r===null)return{seconds:null,source:"pending",reason:"source duration not yet probed"};let a=fa(r,i,o);return a===null?{seconds:null,source:"pending",reason:"source reported a non-finite duration"}:{seconds:a,source:"media"}}var mt="data-automation",bw=mt.slice(5),bi=1,_g=512,ft=class extends Error{constructor(t){super(t),this.name="AudioAutomationError"}},sn="volume",xi="rate";function Yn(e){if(e===sn)return{kind:"volume"};if(e===xi)return{kind:"rate"};let t=e.split(".");if(t.length===3&&t[0]==="fx"&&t[1]===wg){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 wg="preset";var Cg={min:0,max:1,step:.01,unit:"",label:"Amount",scale:"linear",default:1},yi={min:0,max:ua,step:.01,unit:"",label:"Volume",scale:"linear",default:1},lc={min:jn,max:Kn,step:.05,unit:"x",label:"Speed",scale:"log",default:1};function pa(e,t){let n=Yn(e);if(!n)return null;if(n.kind==="volume")return yi;if(n.kind==="rate")return lc;if(n.kind==="preset")return t?.nodes.some(u=>u.fromPreset===n.presetId)?{...Cg,label:`${n.presetId} \\xB7 Amount`}:null;let r=t?.nodes.find(a=>a.id===n.nodeId);if(!r)return null;let i=zn(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 Xn(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 Rg(e){let t=Xn(e);return t===null||t===0?0:Math.min(1,Math.max(-1,t))}function cc(e,t){let n=Xn(e),r=Xn(t);if(n===null||r===null)return null;let i=u=>Math.min(.999,Math.max(.001,u)),o=i(n),a=i(r);return Math.abs(o-a)<1e-6?null:{x:o,y:a}}function Tg(e){let t=Rg(e?.curve),n=cc(e?.viaX,e?.viaY);return{...t?{curve:t}:{},...n?{viaX:n.x,viaY:n.y}:{}}}function kg(e,t){let n=Xn(e?.t),r=Xn(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,...Tg(e)}}function dc(e,t){let n=e.map(i=>kg(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,_g)}function Mg(e){let t=[];for(let n of e.lanes){if(!Yn(n.target))continue;let r=n.target===sn?yi:n.target===xi?lc:null,i=dc(n.points??[],r);i.length>0&&t.push({target:n.target,points:i})}return{version:bi,lanes:t}}function fc(e,t){let n=[];for(let r of e.lanes){let i=pa(r.target,t);if(!i)continue;let o=dc(r.points,i);o.length>0&&n.push({target:r.target,points:o})}return{version:bi,lanes:n}}function vi(e){let t;try{t=JSON.parse(e)}catch(i){throw new ft(`Automation is not valid JSON: ${i.message}`)}if(typeof t!="object"||t===null)throw new ft("Automation must be a JSON object.");let n=t;if(n.version!==bi)throw new ft(`Unsupported automation version: ${String(n.version)}`);if(!Array.isArray(n.lanes))throw new ft("Automation is missing a `lanes` array.");let r=n.lanes.map((i,o)=>{if(typeof i!="object"||i===null)throw new ft(`Lane ${o} is not an object.`);let a=i;if(typeof a.target!="string"||!Yn(a.target))throw new ft(`Lane ${o} has an unreadable target: ${String(a.target)}`);if(!Array.isArray(a.points))throw new ft(`Lane ${o} is missing a \\`points\\` array.`);return{target:a.target,points:a.points}});return Mg({version:bi,lanes:r})}function Fg(e,t){return t?Math.pow(e,Math.pow(2,2*t)):e}function Ng(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,u=r>0?r/(i-t):r<0?-r/(t-(1-i)):0,s=Math.min(o,Math.max(1,a,u));return{cx:e+n/s,cy:t+r/s,w:s}}function Lg(e,t,n){let{cx:r,cy:i,w:o}=Ng(t,n),a=2-2*o,u=e*a-1+2*o*r,s=-e*a-2*o*r,l=Dg(u,s,e),d=1-l,m=d*d+2*o*l*d+l*l;return m>0?(2*o*i*l*d+l*l)/m:e}function Dg(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=u=>u>=-1e-9&&u<=1+1e-9;return a(i)?Math.min(1,Math.max(0,i)):a(o)?Math.min(1,Math.max(0,o)):n}function Ig(e,t){let n=cc(t.viaX,t.viaY);return n?Lg(Math.min(1,Math.max(0,e)),n.x,n.y):Fg(e,t.curve)}function Pg(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 pt(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,u=r.length-1;for(;u-a>1;){let m=a+u>>1;r[m].t<=t?a=m:u=m}let s=r[a],l=r[u],d=l.t-s.t;return d<=0?l.v:Pg(s.v,l.v,Ig((t-s.t)/d,s),n)}function mc(e){return e.points.length<=1||e.points.every(t=>t.v===e.points[0].v)}function pc(e,t,n,r,i="linear"){let o=Math.max(2,Math.floor(r)),a=new Float32Array(o),u=n-t;for(let s=0;s<o;s+=1)a[s]=pt(e,t+u*s/(o-1),i);return a}var Si=new Map,Og=64;function ha(e,t=sn){let n=`${t}\\0${e}`,r=Si.get(n);if(r!==void 0)return r;let i=null;try{i=vi(e).lanes.find(o=>o.target===t)??null}catch{i=null}return Si.size>Og&&Si.clear(),Si.set(n,i),i}function hc(e,t){let n=(typeof e.getAttribute=="function"?e.getAttribute(mt):null)??"";if(!n)return null;let r=ha(n);return!r||r.points.length===0?null:pt(r,t)}var gc=48,bc=new WeakMap;function Hg(e){let t=e.points,n=t[0].v,r=t[t.length-1].v,i=[0],o=[0],a=s=>{let l=i[i.length-1];if(s<=l)return;let d=pt(e,l,"log");i.push(s),o.push(o[o.length-1]+(d+pt(e,s,"log"))/2*(s-l))},u=Math.max(0,t[0].t);a(u);for(let s=1;s<t.length;s+=1){let l=t[s-1].t,d=t[s].t;if(!(d<=0))for(let m=1;m<=gc;m+=1)a(Math.max(l,0)+(d-l)*m/gc)}return{ts:Float64Array.from(i),ss:Float64Array.from(o),firstRate:n,lastRate:r}}function xc(e){let t=bc.get(e);return t||(t=Hg(e),bc.set(e,t)),t}function ga(e){return typeof e!="number"&&e.points.length>0}function yc(e,t){return typeof e=="number"?e:ga(e)?pt(e,t,"log"):1}function vc(e,t,n){let r=0,i=e.length-1;for(;i-r>1;){let o=r+i>>1;e[o]<=n?r=o:i=o}return t[r]+(t[i]-t[r])*(n-e[r])/(e[i]-e[r])}function Ai(e,t){if(typeof e=="number")return t*e;if(!ga(e))return t;let{ts:n,ss:r,firstRate:i,lastRate:o}=xc(e),a=n.length-1;return t<=0?t*i:t>=n[a]?r[a]+(t-n[a])*o:vc(n,r,t)}function un(e,t){if(typeof e=="number")return t/e;if(!ga(e))return t;let{ts:n,ss:r,firstRate:i,lastRate:o}=xc(e),a=n.length-1;return t<=0?t/i:t>=r[a]?n[a]+(t-r[a])/o:vc(r,n,t)}function Gg(e){return e?ha(e,xi):null}function Sc(e,t){return Gg(e)??t}function Ac(){let e=!1,t=0,n=!1,r,i,o,a=new Set,u=new WeakMap,s=()=>{if(!document.getAnimations)return[];try{return document.getAnimations()}catch{return[]}},l=x=>{let w=Number(x.currentTime);return Number.isFinite(w)&&w>0?w:0},d=(x,w)=>w<=0?x:x>=w?Math.max(0,x-w):x,m=(x,w)=>{let k=u.get(x);if(k)return k;let C={compositionTimeMs:w,animationTimeMs:e?d(l(x),w):l(x)};return u.set(x,C),C},f=(x,w)=>{if(!a.has(x)){a.add(x);let k=()=>{a.delete(x)};try{x.addEventListener("finish",k,{once:!0}),x.addEventListener("cancel",k,{once:!0})}catch(C){I("runtime.adapters.waapi.site4",C)}}m(x,w)},p=(x,w)=>{for(let k of x)f(k,w)},g=()=>{if(n||typeof Element>"u")return;let x=Element.prototype;if(typeof x.animate!="function"||x.__hfOriginalAnimate)return;let w=x.animate;try{Object.defineProperty(x,"__hfOriginalAnimate",{value:w,configurable:!0});let k=function(...C){let N=w.apply(this,C);return f(N,t),N};x.animate=k,r=x,i=w,o=k,n=!0}catch{}},y=x=>{let w=null;try{w=x.effect?.getComputedTiming?.()??null}catch(N){I("runtime.adapters.waapi.site4",N)}if(!w)return{};let k=Number(w.endTime);return Number.isFinite(k)?{endSeconds:(u.get(x)?.compositionTimeMs??0)/1e3+k/1e3}:{unbounded:!0}};return{name:"waapi",discover:()=>{e=!0,g(),p(s(),t)},seek:x=>{let w=Math.max(0,(Number(x.time)||0)*1e3);t=w,(!e||a.size>0)&&p(s(),e?w:0);for(let k of a){let C=e?m(k,w):m(k,0),N=C.animationTimeMs+Math.max(0,w-C.compositionTimeMs);try{k.currentTime=N}catch(O){I("runtime.adapters.waapi.site1",O)}try{k.pause()}catch(O){I("runtime.adapters.waapi.site2",O)}}},pause:()=>{e||p(s(),t);for(let x of a)try{x.pause()}catch(w){I("runtime.adapters.waapi.site3",w)}},revert:()=>{if(a.clear(),u=new WeakMap,e=!1,t=0,r&&i&&o&&r.animate===o)try{r.animate=i,r.__hfOriginalAnimate===i&&delete r.__hfOriginalAnimate}catch(x){I("runtime.adapters.waapi.site5",x)}r=void 0,i=void 0,o=void 0,n=!1},getInferredDurationSeconds:()=>{let x=0;for(let w of s()){let k=y(w);k.endSeconds!=null&&(x=Math.max(x,k.endSeconds))}return x>0?x:null}}}function Me(e){return Ct(e)}function Pe(e){return sc(t=>e.getAttribute(t),ge(e)?e.defaultPlaybackRate:1)}function Rt(e){return Sc(e.getAttribute("data-automation"),Pe(e))}function Ei(e){return ac(t=>e.getAttribute(t))}function nt(e,t){return Bg(t,Ei(e),Rt(e))}function _i(e){let t=ma({tag:"video",authoredDurationSeconds:da(n=>e.getAttribute(n)),sourceDurationSeconds:Number.isFinite(e.duration)?e.duration:null,mediaStartSeconds:Ei(e),playbackRate:Pe(e)});return t.source==="media"?nt(e,e.duration):t.seconds}function ln(e,t=0){return!Le(e)||!e.hasAttribute("data-start")&&!e.hasAttribute("data-track-index")?null:ma({tag:"img",authoredDurationSeconds:uc(n=>e.getAttribute(n),t),sourceDurationSeconds:null,mediaStartSeconds:0,playbackRate:1}).seconds}function Bg(e,t,n){return typeof n=="number"?fa(e,t,n):Number.isFinite(e)?un(n,Math.max(0,e-t)):null}var cn="data-hf-authored-duration",dn="data-hf-authored-end";function Jn(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 fn(e){let t=Jn(e.start);if(t==null)return null;let n=Math.max(0,t),r=Jn(e.duration),i=Jn(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=Jn(e.end),u=Jn(e.authoredEnd),s=a!=null&&a>n?a:u!=null&&u>n?u:null;return{start:n,duration:s==null?null:s-n,end:s}}var wi="data-hf-media-start-basis";function Ug(e){return e?.trim().toLowerCase()==="global"?"global":"local"}function Wg(e){return Ug(e.basis)==="global"?e.authoredStart:e.hostStart+e.authoredStart}function Ec(e){return e.hasAutoStart||e.authoredStart==null||e.hostStart<=0?e.ordinaryStart():Wg({authoredStart:e.authoredStart,hostStart:e.hostStart,basis:e.basis})}function Ue(e){let t=e.timelineRegistry??{},n=e.includeAuthoredTimingAttrs??!1,r=e.documentRef??document,i=new WeakMap,o=new WeakMap,a=new Set,u=f=>{let p=r.getElementById(f);return p||(r.querySelector(`[data-composition-id="${CSS.escape(f)}"]`)??null)},s=f=>{let p=o.get(f);if(p!==void 0)return p;let g=null,y=fn({start:0,duration:f.getAttribute("data-duration"),authoredDuration:n?f.getAttribute("data-hf-authored-duration"):null});if(y?.duration!=null&&y.duration>0&&(g=y.duration),g==null||g<=0){let x=d(f,0),w=fn({start:x,end:f.getAttribute("data-end"),authoredEnd:n?f.getAttribute("data-hf-authored-end"):null});w?.duration!=null&&w.duration>0&&(g=w.duration)}if((g==null||g<=0)&&ge(f)&&(g=nt(f,f.duration)),(g==null||g<=0)&&(g=ln(f)),g==null||g<=0){let x=f.getAttribute("data-composition-id");if(x){let w=t[x]??null;if(w&&typeof w.duration=="function")try{let k=Number(w.duration());Number.isFinite(k)&&k>0&&(g=k)}catch(k){I("runtime.startResolver.site1",k)}}}return g!=null&&Number.isFinite(g)&&g>0?(o.set(f,g),g):(o.set(f,null),null)},l=(f,p)=>{if(f.hasAttribute("data-composition-id")){let y=f.parentElement?.closest("[data-composition-id]");return y?d(y,p):0}let g=f.closest("[data-composition-id]");return g?d(g,p):0},d=(f,p)=>{let g=i.get(f);if(g!==void 0)return g??p;if(a.has(f))return p;a.add(f);try{let y=la(f.getAttribute("data-start"));if(!y){if(f.hasAttribute("data-composition-id")){let N=f.parentElement;if(N&&(N.hasAttribute("data-composition-src")||N.hasAttribute("data-composition-id")||N.hasAttribute("data-composition-file"))){let O=d(N,p);return i.set(f,O),O}}return i.set(f,p),p}if(y.kind==="absolute"){let N=Math.max(0,y.value),O=Math.max(0,l(f,p)+N);return i.set(f,O),O}let x=u(y.refId);if(!x)return i.set(f,p),p;let w=d(x,0),k=s(x);if(k==null||k<=0){let N=Math.max(0,w+y.offset);return i.set(f,N),N}let C=Math.max(0,w+k+y.offset);return i.set(f,C),C}finally{a.delete(f)}};return{resolveStartForElement:(f,p=0)=>d(f,Math.max(0,p)),resolveDurationForElement:f=>s(f),resolveMediaStartForElement:f=>{let p=f.closest("[data-composition-id]"),g=p?d(p,0):0;return Ec({authoredStart:Me(f.getAttribute("data-start")),hostStart:g,hasAutoStart:f.hasAttribute("data-hf-auto-start"),basis:f.getAttribute(wi),ordinaryStart:()=>d(f,g)})}}}function Vg(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:Be(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:Be(n)}),i}function _c(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 zg(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 $g(e){let t=Number.parseFloat(e??"");return Number.isFinite(t)?t:void 0}function qg(e,t){let n=Ue({timelineRegistry:window.__timelines,includeAuthoredTimingAttrs:!0}).resolveMediaStartForElement(e),r=Me(e.dataset.end)??void 0,i=Me(e.dataset.duration)??void 0,o=t;i!==void 0&&i>0?o=n+i:r!==void 0&&r>n&&(o=r);let a=$g(e.dataset.volume)??1;return{start:n,end:o,staticVolume:Be(a)}}function jg(e,t,n,r,{start:i,end:o,staticVolume:a}){let u=1/Math.min(60,Math.max(1,r)),s=Math.max(0,i),l=Math.min(n,o),d=tc(e,()=>{e.volume=a;let f=[],p;for(let g=s;g<=l+1e-6;g=Math.min(l,g+u)){t(g);let y=Number(e.volume);if(Number.isFinite(y)){let x={time:Number(g.toFixed(6)),volume:Number(Be(y).toFixed(6))};zg(f,p,x,g===l),p=x}if(g===l)break}return f});return d.some(f=>Math.abs(f.volume-a)>1e-4)?d:null}function wc(e,t,n,r,i={}){if(i.allowLiveTimelineSeek===!1||!t||!ge(e)||n<=0)return;let o=l=>{try{typeof t.totalTime=="function"?t.totalTime(l,!0):typeof t.seek=="function"&&t.seek(l,!0)}catch{}},a=typeof t.totalTime=="function"?Number(t.totalTime()):typeof t.seek=="function"?Number(t.seek()):0,u=qg(e,n),s=jg(e,o,n,60,u);if(Number.isFinite(a)&&o(a),s){let l=Vg(s,u.start,u.staticVolume);l.length>0&&r.set(e,l)}}var Tc="data-fade-in",kc="data-fade-out",Kw=Tc.slice(5),Xw=kc.slice(5),Mc=Object.freeze({fadeIn:0,fadeOut:0});function ba(e){return Number.isFinite(e)&&e>0?e:0}function Cc(e){return e==null||e===""?0:ba(Number.parseFloat(e))}function Fc(e){return{fadeIn:Cc(e.getAttribute(Tc)),fadeOut:Cc(e.getAttribute(kc))}}function Kg(e,t){let n=ba(e.fadeIn),r=ba(e.fadeOut);if(!Number.isFinite(t)||t<=0)return{fadeIn:n,fadeOut:r};let i=n+r;if(i<=t)return{fadeIn:n,fadeOut:r};let o=t/i;return{fadeIn:n*o,fadeOut:r*o}}function Nc(e,t,n){if(!Number.isFinite(e))return 1;let{fadeIn:r,fadeOut:i}=Kg(n,t),o=1;return r>0&&(o*=Rc(e/r)),i>0&&Number.isFinite(t)&&(o*=Rc((t-e)/i)),o}function Rc(e){return!Number.isFinite(e)||e<0?0:e>1?1:e}var mn="hf-audio-group",Ci="data-audio-group";function xa(e){let t=e?.getAttribute("data-volume"),n=t?parseFloat(t):1;return Number.isFinite(n)?n:1}function ya(e,t){let n=Array.from(e?.querySelectorAll?.(`${mn}[${Wn}]`)??[]).find(i=>i.getAttribute(Wn)===t);if(n)return n;let r=e?.getElementById(t)??null;return r&&r.tagName?.toLowerCase()===mn?r:null}function Ri(e,t){let n=t?.getAttribute?.(ql)??t?.getAttribute?.(Ci);return n?ya(e,n)?.hasAttribute("data-hidden")??!1:!1}function Lc(e){return typeof e.tagName!="string"||e.tagName.toLowerCase()!=="audio"||typeof e.getAttribute!="function"?null:e.getAttribute(Ci)||null}function Dc(e){let t="__hf-audio-group-inert";if(!e?.head||e.getElementById(t))return;let n=e.createElement("style");n.id=t,n.textContent=`${mn}{display:none!important}`,e.head.appendChild(n)}function rt(e){return Ei(e)}function Ic(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 Pc(e){let t=e?.elements??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 u=e?.resolveStartSeconds?e.resolveStartSeconds(a):Number.parseFloat(a.dataset.start??"0");if(!Number.isFinite(u))continue;let s=rt(a),l=Pe(a),d=Rt(a),m=a.loop,f=Number.isFinite(a.duration)&&a.duration>0?a.duration:null,p=e?.resolveDurationSeconds?.(a)??Number.parseFloat(a.dataset.duration??"");(!Number.isFinite(p)||p<0)&&f!=null&&(p=Math.max(0,un(d,f-s)));let g=Number.isFinite(p)&&p>=0,y=g?u+p:Number.POSITIVE_INFINITY,x=Number.parseFloat(a.dataset.volume??""),w={el:a,start:u,mediaStart:s,duration:g?p:Number.POSITIVE_INFINITY,end:y,volume:Number.isFinite(x)?x:null,playbackRate:l,rate:d,loop:m,sourceDuration:f,fades:Fc(a)};r.push(w),a.tagName==="VIDEO"&&i.push(w),Number.isFinite(y)&&(o=Math.max(o,y))}return{timedMediaEls:n,mediaClips:r,videoClips:i,maxMediaEnd:o}}var Sa=new WeakMap,Ti=new WeakMap,Qn=new WeakMap,Aa=new WeakSet,pn=new WeakSet;function Xg(e){if(pn.has(e))return;pn.add(e);let t=()=>pn.delete(e);e.addEventListener("playing",t,{once:!0}),e.addEventListener("pause",t,{once:!0}),e.addEventListener("error",t,{once:!0})}var Yg=3;function Jg(e){return e.error!=null||e.networkState===Yg}var Ea=new WeakMap;function va(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):1}function _a(e){Sa.delete(e),Ti.delete(e),Qn.delete(e),Aa.delete(e),Ea.delete(e)}function Oc(e){let t=!!(e.outputMuted||e.userMuted);for(let n of e.clips){let{el:r}=n;if(!r.isConnected)continue;let i=n.rate??n.playbackRate,o=r.tagName==="VIDEO"&&!n.loop,a=Et(e.timeSeconds,n.start,n.end),u=o&&!a&&e.timeSeconds>=n.end&&ui(e.timeSeconds,n.start,n.end,e.getCompositionDuration()),s=Ai(i,Math.min(e.timeSeconds,n.end)-n.start)+n.mediaStart,l=u||o&&n.sourceDuration!=null&&s>=n.sourceDuration&&a;l&&n.sourceDuration!=null&&(s=Math.min(s,n.sourceDuration));let d=Ti.get(r),m=r.tagName==="AUDIO"&&(d===void 0||s<d-.04),f=!n.loop&&n.sourceDuration!=null&&s>=n.mediaStart&&s<n.sourceDuration&&(o||m);if((a||u)&&s>=0&&(!r.ended||n.loop||l||f)){if(Ti.set(r,s),n.loop&&n.sourceDuration!=null&&n.sourceDuration>0){let P=n.sourceDuration-n.mediaStart;P>0&&s>=n.sourceDuration&&(s=n.mediaStart+(s-n.mediaStart)%P)}let y=va(e.userVolume??1),x=Be(n.volume??1),w=Ea.get(r),k=va(r.volume),C,N=hc(r,e.timeSeconds-n.start);if(N!==null)C=Be(N);else if(n.volumeKeyframes&&n.volumeKeyframes.length>0){let P=e.timeSeconds-n.start;C=Be(_c(n.volumeKeyframes,P))}else e.isWebAudioRouted?.(r)?C=x:w===void 0?C=x>1?x:k:Math.abs(k-w)>1e-4?C=k:C=x;let O=n.fades??Mc;(O.fadeIn>0||O.fadeOut>0)&&(C*=Nc(e.timeSeconds-n.start,n.duration,O));let v=r.closest("[data-hidden]")!==null||Ri(r.ownerDocument,r)?0:va(C*y);r.volume=v,Ea.set(r,v),e.onElementVolume?.(r,v,C),(t||e.isWebAudioOwned?.(r))&&(r.muted=!0),r.preload!=="auto"&&(r.preload="auto");try{r.playbackRate=yc(i,e.timeSeconds-n.start)*e.playbackRate}catch(P){I("runtime.media.site1",P)}let S=.04,E=2,T=r.currentTime||0,L=Math.abs(T-s),H=s-T,z=Sa.get(r);Sa.set(r,H);let Y=z===void 0,M=!Y&&Math.abs(H-z)>.5,V=L>3,te=r.tagName==="AUDIO"&&Y&&T-s>S,B=l&&L>.001||r.ended&&f&&L>.001||te||L>.5&&(Y||M||V),$=r.tagName==="VIDEO"&&!r.paused,q=z!==void 0&&Math.abs(H-z)<.004,J=!1;if(!$&&!B&&!Y&&q&&L>S){let P=(Qn.get(r)??0)+1;Qn.set(r,P),P>=E&&(J=!0,Qn.set(r,0))}else L<=S&&Qn.set(r,0);let j=!$&&e.forceSync&&L>.02;if(B||J||j){if(!(r.tagName==="VIDEO"&&!!_t(r))){try{r.currentTime=s}catch(U){I("runtime.media.site2",U)}if(Math.abs(r.currentTime-s)>.5&&!Aa.has(r)){Aa.add(r),r.load();try{r.currentTime=s}catch(U){I("runtime.media.site3",U)}}}pn.delete(r)}l?r.paused||r.pause():e.playing&&r.paused&&!pn.has(r)&&!Jg(r)?(Xg(r),r.play().catch(P=>{pn.delete(r),(P&&typeof P=="object"&&"name"in P?String(P.name??""):"")==="NotAllowedError"&&e.onAutoplayBlocked?.()})):!e.playing&&!r.paused&&r.pause();continue}let g=Et(e.timeSeconds,n.start,n.end);_a(r),g&&Ti.set(r,s),r.paused||r.pause()}}var Qg="hf-proxy",Hc="runtime_media_proxy_fallback",Gc="runtime_media_proxy_unavailable",Zn=new WeakSet,Bc=new WeakSet;function ki(e){return e.currentSrc||e.src}function wa(e){return window.__HF_EXPORT_RENDER_SEEK_CONFIG?!0:me(e)&&!!_t(e)}function Ca(e){let t=ki(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 Zg(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 eb(e,t){let n=e.normalize("NFC").toLowerCase(),r=-1,i=null,o=!1;for(let[a,u]of Object.entries(t)){let s=a.normalize("NFC").toLowerCase();n.endsWith(s)&&(s.length>r?(r=s.length,i=u,o=!1):s.length===r&&(o=!0))}return o?null:i}function Ra(e,t){return t[e]??Zg(e,t)??eb(e,t)}function tb(e,t){let n=new URL(e,document.baseURI);return n.searchParams.set(Qg,t?t.hasAlpha?"vp8":"h264":"auto"),n.href}var nb={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 Vt(e,t,n){if(Bc.has(e))return;Bc.add(e);let r=nb[t];ye({source:"hf-preview",type:"diagnostic",code:Gc,details:{asset:n,codecName:null,reason:t,note:r}}),console.info(`[hyperframes] ${Gc}: "${n}" (${t}): ${r}`)}function Ta(e,t=null,n="reactive"){if(Zn.has(e))return;let r=ki(e),i;try{i=tb(r,t)}catch(u){I("runtime.mediaProxy.swap",u),Vt(e,"invalid_source_url",r);return}Zn.add(e),_a(e),e.src=i,e.load();let o=t?.codecName??null;ye({source:"hf-preview",type:"diagnostic",code:Hc,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] ${Hc}: "${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 Uc(e){if(wa(e)||!me(e)||Zn.has(e))return;let t=window.__HF_MEDIA_CODEC_MAP__;if(!t)return;let n=Ca(e);if(n===null)return;let r=Ra(n,t);if(!r||!r.browserHostile)return;let i=r.representativeMime?e.canPlayType(r.representativeMime):"";i==="probably"||i==="maybe"||Ta(e,r,"proactive")}function Wc(e){if(wa(e)||!me(e)||e.videoWidth!==0)return;let t=ki(e);if(Zn.has(e)){Vt(e,"proxy_playback_failed",t);return}let n=window.__HF_MEDIA_CODEC_MAP__;if(!n)return;let r=Ca(e);if(r===null){Vt(e,"cross_origin",t);return}let i=Ra(r,n);if(i&&!i.browserHostile){Vt(e,"browser_safe_codec",t);return}Ta(e,i,"reactive")}function Vc(e){if(wa(e)||!me(e))return;let t=ki(e);if(Zn.has(e)){Vt(e,"proxy_playback_failed",t);return}let n=window.__HF_MEDIA_CODEC_MAP__;if(!n)return;let r=Ca(e);if(r===null){Vt(e,"cross_origin",t);return}let i=Ra(r,n);if(i&&!i.browserHostile){Vt(e,"browser_safe_codec",t);return}Ta(e,i,"tertiary")}var Ce=class extends Error{constructor(n,r=null){super(r==null?n:`${n} at line ${r}`);ue(this,"lineNumber");this.name="CubeLutParseError",this.lineNumber=r}},rb=[0,0,0],ib=[1,1,1],Mi=64;function ob(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 Tt(e,t){let n=Number(e);if(!Number.isFinite(n))throw new Ce(`Invalid number "${e}"`,t);return n}function zc(e,t,n){if(e.length!==3)throw new Ce(`${t} expects three numbers`,n);return[Tt(e[0],n),Tt(e[1],n),Tt(e[2],n)]}function $c(e,t,n){if(!e)throw new Ce(`${t} expects a size`,n);let r=Number(e);if(!Number.isInteger(r)||r<2)throw new Ce(`${t} must be an integer greater than 1`,n);return r}function ab(e,t){if(t[0]<=e[0]||t[1]<=e[1]||t[2]<=e[2])throw new Ce("DOMAIN_MAX values must be greater than DOMAIN_MIN values")}function sb(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 ub(e){return/^[+-]?(?:\\d|\\.\\d)/.test(e)}function qc(e,t={}){let n=t.maxSize??Mi,r=null,i=rb,o=ib,a=null,u=null,s=[],l=e.replace(/^\\uFEFF/,"").split(/\\r?\\n/);for(let m=0;m<l.length;m++){let f=m+1,p=ob(l[m]??"").trim();if(!p)continue;let g=p.split(/\\s+/),y=(g[0]??"").toUpperCase(),x=g.slice(1);if(y==="TITLE"){r=sb(p);continue}if(y==="DOMAIN_MIN"){i=zc(x,y,f);continue}if(y==="DOMAIN_MAX"){o=zc(x,y,f);continue}if(y==="LUT_3D_INPUT_RANGE"){if(x.length!==2)throw new Ce(`${y} expects two numbers`,f);let w=Tt(x[0],f),k=Tt(x[1],f);if(k<=w)throw new Ce("LUT_3D_INPUT_RANGE max must exceed min",f);i=[w,w,w],o=[k,k,k];continue}if(y==="LUT_1D_SIZE"){a=$c(x[0],y,f);continue}if(y==="LUT_3D_SIZE"){if(u=$c(x[0],y,f),u>n)throw new Ce(`LUT_3D_SIZE ${u} exceeds max ${n}`,f);continue}if(!ub(y)){if(y.startsWith("LUT_"))throw new Ce(`Unsupported cube keyword ${y}`,f);continue}if(!u)throw a?new Ce("1D cube LUTs are not supported yet",f):new Ce("LUT data appears before LUT_3D_SIZE",f);if(g.length!==3)throw new Ce("LUT data rows must contain three numbers",f);s.push(Tt(g[0],f),Tt(g[1],f),Tt(g[2],f))}if(a&&u)throw new Ce("Mixed 1D and 3D cube LUTs are not supported yet");if(!u)throw a?new Ce("1D cube LUTs are not supported yet"):new Ce("Missing LUT_3D_SIZE");ab(i,o);let d=u*u*u;if(s.length!==d*3)throw new Ce(`Expected ${d} LUT rows for size ${u}, found ${s.length/3}`);return{title:r,size:u,domainMin:i,domainMax:o,data:new Float32Array(s)}}function lb(e){return Number.isFinite(e)?Math.min(1,Math.max(0,e)):0}function er(e){return Math.round(lb(e)*255)}function ka(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 u=0;u<t;u++){let s=((o*t+a)*t+u)*3,l=(a*n+o*t+u)*4;i[l]=er(e.data[s]??0),i[l+1]=er(e.data[s+1]??0),i[l+2]=er(e.data[s+2]??0),i[l+3]=255}return{width:n,height:r,data:i}}var jc="rec709";var be={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 Kc=["exposure","contrast","highlights","shadows","whites","blacks","temperature","tint","vibrance","saturation"],Xc=["shadows","midtones","highlights"],Yc=["master","red","green","blue"],Jc=["hueVsHue","hueVsSaturation","hueVsLuma"];var Qc=["vignette","vignetteMidpoint","vignetteRoundness","vignetteFeather","grain","grainSize","grainRoughness"],Zc=["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 SC=be.unit,AC=be.signedUnit,EC=be.effects;var it=1024,tr=16;function ed(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 Re(e,t){let n=e[t];if(n===void 0)throw new RangeError("Color curve points must be contiguous");return n}function cb(e){let t=[],n=[],r=Re(e,0);for(let a of e.slice(1)){let u=a[0]-r[0];t.push(u),n.push((a[1]-r[1])/u),r=a}let i=Re(n,0);if(e.length===2)return[i,i];let o=new Array(e.length);o[0]=ed(Re(t,0),Re(t,1),i,Re(n,1)),o[o.length-1]=ed(Re(t,t.length-1),Re(t,t.length-2),Re(n,n.length-1),Re(n,n.length-2));for(let a=1;a<e.length-1;a+=1){let u=Re(n,a-1),s=Re(n,a);if(u===0||s===0||Math.sign(u)!==Math.sign(s)){o[a]=0;continue}let l=Re(t,a-1),d=Re(t,a),m=2*d+l,f=d+2*l;o[a]=(m+f)/(m/u+f/s)}return o}function td(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 db(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 fb(e,t,n,r,i){let o=n[0]-t[0],a=Math.min(1,Math.max(0,(e-t[0])/o)),u=a*a,s=u*a;return(2*s-3*u+1)*t[1]+(s-2*u+a)*o*r+(-2*s+3*u)*n[1]+(s-u)*o*i}function nd(e,t,n,r,i){db(e,r,i);let o=cb(e),a=new Float32Array(t),u=0;for(let s=0;s<t;s+=1){let l=n(s);for(;u<e.length-2&&l>Re(e,u+1)[0];)u+=1;let d=Re(e,u),m=Re(e,u+1),f=fb(l,d,m,Re(o,u),Re(o,u+1));a[s]=Math.min(i,Math.max(r,f))}return a}function hn(e,t=it){if(td(e,t),e.length>tr)throw new RangeError(`A color curve supports at most ${tr} 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 nd(e,t,n=>n/(t-1),0,1)}function Fa(e,t,n,r=it){if(e.length<3)throw new RangeError("A hue curve requires at least three points");if(e.length>tr)throw new RangeError(`A hue curve supports at most ${tr} points`);let i=[...e].sort((s,l)=>s[0]-l[0]);for(let s=0;s<i.length;s+=1){let l=i[s];if(!l||l[0]<0||l[0]>=360)throw new RangeError("Hue curve inputs must be from 0 up to 360 degrees");if(s>0&&l[0]===i[s-1]?.[0])throw new RangeError("Hue curve inputs must be unique")}let o=i.slice(-2).map(([s,l])=>[s-360,l]),a=i.slice(0,2).map(([s,l])=>[s+360,l]),u=[...o,...i,...a];return td(u,r),nd(u,r,s=>s/r*360,t,n)}var nr="data-color-grading",rr="data-hf-color-grading-source-hidden",Li="data-hf-authored-opacity",sd="__hf_color_grading_",pb=jc,Da={exposure:0,contrast:0,highlights:0,shadows:0,whites:0,blacks:0,temperature:0,tint:0,vibrance:0,saturation:0},Ia={vignette:0,vignetteMidpoint:.5,vignetteRoundness:0,vignetteFeather:.65,grain:0,grainSize:.25,grainRoughness:.5},Pa={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 Di=Kc,ud=Xc,ld=Yc,cd=Jc,Ha=Qc,Ga=Zc,rd={exposure:.03,contrast:-.12,highlights:-.1,shadows:.16,whites:-.04,blacks:.08,temperature:.13,vibrance:-.08,saturation:-.08},id={vignette:.18};function Te(e,t,n={},r={},i={},o=1){return{id:e,label:t,intensity:o,adjust:{...Da,...n},details:{...Ia,...r},effects:{...Pa,...i}}}var Ba=[Te("neutral","Neutral"),Te("warm-daylight","Warm Daylight",{exposure:.06,contrast:.07,highlights:-.06,shadows:.08,temperature:.18,saturation:.08}),Te("clean-studio","Clean Studio",{contrast:.08,highlights:-.08,shadows:.06,temperature:-.08,tint:.03,saturation:.04}),Te("skin-soft","Skin Soft",{exposure:.04,contrast:-.03,highlights:-.12,shadows:.12,temperature:.08,tint:.02,saturation:.04}),Te("food-pop","Food Pop",{exposure:.06,contrast:.1,shadows:.06,temperature:.14,vibrance:.1,saturation:.18}),Te("night-lift","Night Lift",{exposure:.08,contrast:.08,highlights:-.18,shadows:.2,blacks:-.08,saturation:.04},{vignette:.12}),Te("muted-editorial","Muted Editorial",{exposure:-.02,contrast:.08,highlights:-.08,shadows:.06,blacks:-.05,temperature:-.03,saturation:-.12},{vignette:.1}),Te("vintage-wash","Vintage Wash",rd,id),Te("mono-clean","Mono Clean",{contrast:.12,highlights:-.04,shadows:.04,blacks:-.08,saturation:-1}),Te("mono-fade","Mono Fade",{contrast:-.04,highlights:-.06,shadows:.1,blacks:.12,saturation:-1},{vignette:.08}),Te("soft-boost","Soft Boost",{exposure:.06,contrast:-.04,highlights:-.14,shadows:.16,vibrance:.08,saturation:.1}),Te("bright-pop","Bright Pop",{exposure:.12,contrast:.12,whites:.08,blacks:-.04,vibrance:.08,saturation:.14}),Te("deep-contrast","Deep Contrast",{exposure:-.03,contrast:.2,highlights:-.08,shadows:-.08,blacks:-.12,saturation:.06}),Te("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),Te("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}),Te("home-movie-8mm","8mm Home Movie",rd,{...id,vignette:.28,vignetteMidpoint:.54,vignetteFeather:.72,grain:.34,grainSize:.18,grainRoughness:.72},{filmArtifacts:.62},.72),Te("editorial-halftone","Editorial Halftone",{contrast:.04,saturation:.04},{},{halftone:.94,halftoneSize:.36}),Te("two-ink-print","Two-Ink Print",{contrast:.08,highlights:-.06,shadows:.04},{},{twoInkPrint:1,twoInkPrintSize:.42})],hb=new Map(Ba.map(e=>[e.id,e])),gb=/^\\$(?:\\{([A-Za-z0-9_.:-]+)\\}|([A-Za-z0-9_.:-]+))$/,bb={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}},gn={hue:0,amount:0,level:0},od={amount:be.unit,level:be.signedUnit},kt=[[0,0],[1,1]],bn=[],xb={hueVsHue:be.secondaryHueShift,hueVsSaturation:be.signedUnit,hueVsLuma:be.signedUnit},Na={center:0,range:180,softness:0},La={min:0,max:1,softness:.05},yb={vignette:be.unit,vignetteMidpoint:be.unit,vignetteRoundness:be.signedUnit,vignetteFeather:be.unit,grain:be.unit,grainSize:be.unit,grainRoughness:be.unit},Oa=be.unit,vb=be.effects,dd=["blur","pixelate","chromaBleed","tapeDamage","filmArtifacts","halftone","twoInkPrint","ascii","dither","bloom","monoScreen","scanlines","chromaticAberration","crtCurvature","digitalGlitch","engraving","crosshatch","kuwahara"];var Sb=Ba.filter(e=>dd.some(t=>e.effects[t]>1e-4)),FC=Ba.filter(e=>!Sb.includes(e)),NC={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}},fd=[{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 Ab=/^#[0-9a-f]{6}$/i;function Eb(e){return!Array.isArray(e)||e.length<2||e.length>6||!e.every(t=>typeof t=="string"&&Ab.test(t))?null:e.map(t=>t.toLowerCase())}function Ne(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ni(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,e)):0}function md(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Math.min(1,Math.max(0,n)):t}function De(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Ni(n,t.min,t.max):0}function Ua(e,t=0){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?(n%360+360)%360:t}function _b(e){let t=Ne(e)?e:{};return ud.reduce((n,r)=>{let i=Ne(t[r])?t[r]:{};return n[r]={hue:Ua(i.hue,gn.hue),amount:De(i.amount??gn.amount,od.amount),level:De(i.level??gn.level,od.level)},n},{shadows:{...gn},midtones:{...gn},highlights:{...gn}})}function wb(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)?[Ni(t,0,1),Ni(n,0,1)]:null}function pd(e){return e.some((t,n)=>n>0&&t[0]===e[n-1]?.[0])}function Cb(e){(e[0]?.[0]??0)>0&&e.unshift([0,0]),(e.at(-1)?.[0]??1)<1&&e.push([1,1])}function Rb(e){if(!Array.isArray(e)||e.length<2)return kt;let t=[];for(let n of e){let r=wb(n);if(!r)return kt;t.push(r)}return t.sort((n,r)=>n[0]-r[0]),pd(t)||(Cb(t),t.length>16)?kt:t}function Tb(e){let t=Ne(e)?e:{};return ld.reduce((n,r)=>(n[r]=Rb(t[r]),n),{master:kt,red:kt,green:kt,blue:kt})}function kb(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)?[Ua(n),Ni(r,t.min,t.max)]:null}function Mb(e,t){if(!Array.isArray(e)||e.length<3||e.length>16)return bn;let n=[];for(let r of e){let i=kb(r,t);if(!i)return bn;n.push(i)}return n.sort((r,i)=>r[0]-i[0]),pd(n)?bn:n}function Fb(e){let t=Ne(e)?e:{};return cd.reduce((n,r)=>(n[r]=Mb(t[r],xb[r]),n),{hueVsHue:bn,hueVsSaturation:bn,hueVsLuma:bn})}function ad(e){let t=Ne(e)?e:{},n=De(t.min??La.min,Oa),r=De(t.max??La.max,Oa);return{min:Math.min(n,r),max:Math.max(n,r),softness:De(t.softness??La.softness,be.secondarySoftRangeSoftness)}}function Nb(e){let t=Ne(e)?e:{},n=De(t.range??Na.range,be.secondaryHueRange);return{center:Ua(t.center,Na.center),range:n,softness:De(t.softness??Na.softness,{min:be.secondaryHueSoftness.min,max:be.secondaryHueCombinedMax-n})}}function Lb(e){return{hueShift:De(e.hueShift??0,be.secondaryHueShift),saturation:De(e.saturation??0,be.signedUnit),luma:De(e.luma??0,be.signedUnit),temperature:De(e.temperature??0,be.signedUnit),tint:De(e.tint??0,be.signedUnit)}}function Db(e){return!Ne(e)||!Ne(e.key)||!Ne(e.correction)?null:{enabled:e.enabled!==!1,key:{hue:Nb(e.key.hue),saturation:ad(e.key.saturation),luma:ad(e.key.luma)},correction:Lb(e.correction)}}function Ib(e){if(!Array.isArray(e))return[];let t=[];for(let n of e.slice(0,4)){let r=Db(n);r&&t.push(r)}return t}function Pb(e){if(e==null)return null;let t=String(e).trim();return t||null}function Ob(e){if(e==null)return null;if(typeof e=="string"){let n=e.trim();return n?{src:n,intensity:1}:null}if(!Ne(e))return null;let t=e.src;return typeof t!="string"||t.trim()===""?null:{src:t.trim(),intensity:md(e.intensity,1)}}function Hb(e){if(typeof e=="string"){let t=e.trim();if(!t)return null;if(t.startsWith("{"))try{let n=JSON.parse(t);return Ne(n)?n:null}catch{return null}return{preset:t}}return Ne(e)?e:null}function Gb(e,t){let n=e.trim().match(gb);if(!n)return e;let r=n[1]??n[2]??"";return r&&Object.hasOwn(t,r)?t[r]:e}function Fi(e,t){if(typeof e=="string"){let r=Gb(e,t);if(r!==e)return r;let i=e.trim();if(!i.startsWith("{"))return e;try{return Fi(JSON.parse(i),t)}catch{return e}}if(Array.isArray(e))return e.map(r=>Fi(r,t));if(!Ne(e))return e;let n={};for(let[r,i]of Object.entries(e))n[r]=Fi(i,t);return n}function Bb(e){return e?hb.get(e)??null:null}function Ii(e){let t=Hb(e);if(!t||t.enabled===!1)return null;let n=Pb(t.preset),r=Bb(n),i=r?.adjust??Da,o=r?.details??Ia,a=r?.effects??Pa,u=Ne(t.adjust)?t.adjust:{},s=Ne(t.details)?t.details:{},l=Ne(t.effects)?t.effects:{},d=Di.reduce((p,g)=>(p[g]=De(u[g]??i[g],bb[g]),p),{...Da}),m=Ha.reduce((p,g)=>(p[g]=De(s[g]??o[g],yb[g]),p),{...Ia}),f=Ga.reduce((p,g)=>(p[g]=De(l[g]??a[g],vb[g]??Oa),p),{...Pa});return{enabled:!0,preset:n,intensity:md(t.intensity,r?.intensity??1),adjust:d,wheels:_b(t.wheels),curves:Tb(t.curves),hueCurves:Fb(t.hueCurves),secondaries:Ib(t.secondaries),details:m,effects:f,palette:Eb(t.palette),lut:Ob(t.lut),colorSpace:typeof t.colorSpace=="string"&&t.colorSpace.trim()?t.colorSpace.trim():pb}}function hd(e,t){return Ii(Fi(e,t))}function Ub(e){return ud.some(t=>Math.abs(e[t].amount)>1e-4||Math.abs(e[t].level)>1e-4)}function Wa(e){return ld.some(t=>e[t].some(([n,r])=>Math.abs(n-r)>1e-4))}function Va(e){return cd.some(t=>e[t].some(([,n])=>Math.abs(n)>1e-4))}function za(e){return e.some(t=>t.enabled&&Object.values(t.correction).some(n=>Math.abs(n)>1e-4))}function gd(e){return e?.enabled?Math.abs(e.details.vignette)>1e-4||Math.abs(e.details.grain)>1e-4||dd.some(n=>Math.abs(e.effects[n])>1e-4)?!0:e.intensity===0?!1:e.lut&&e.lut.intensity!==0?!0:Di.some(n=>Math.abs(e.adjust[n])>1e-4)||(e.wheels?Ub(e.wheels):!1)||(e.curves?Wa(e.curves):!1)||(e.hueCurves?Va(e.hueCurves):!1)||(e.secondaries?za(e.secondaries):!1):!1}var Wb=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),Vb=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(",");function bd(e){let t=!1,n=null,r=null,i=null,o=null;function a(v,S){try{window.dispatchEvent(new CustomEvent(v,{detail:S}))}catch(E){I("runtime.picker.site1",E)}}function u(v){i=v,a("hyperframe:picker:hovered",{elementInfo:i,isPickMode:t,timestamp:Date.now()})}function s(v){o=v,a("hyperframe:picker:selected",{elementInfo:o,isPickMode:t,timestamp:Date.now()})}function l(v){let S=v.ownerDocument.defaultView;if(!S)return!1;let E=v;for(;E&&E!==document.body&&E!==document.documentElement;){let T=S.getComputedStyle(E);if(T.display==="none"||T.visibility==="hidden"||T.pointerEvents==="none")return!0;let L=Number.parseFloat(T.opacity);if(Number.isFinite(L)&&L<=.01&&!E.hasAttribute(rr))return!0;E=E.parentElement}return!1}function d(v){if(!v||v===document.body||v===document.documentElement)return!1;let S=v.tagName.toLowerCase();return!(S==="script"||S==="style"||S==="link"||S==="meta"||v.classList.contains("__hf-pick-highlight")||v.closest(Wb)||l(v))}function m(v){return!!v?.closest(Vb)}function f(v){let S=v;if(S.id)return`#${CSS.escape(S.id)}`;let E=v.getAttribute("data-composition-id");if(E)return`[data-composition-id="${CSS.escape(E)}"]`;let T=v.getAttribute("data-composition-src");if(T)return`[data-composition-src="${CSS.escape(T)}"]`;let L=v.getAttribute("data-track-index");if(L)return`[data-track-index="${CSS.escape(L)}"]`;let H=v.tagName.toLowerCase(),z=v.parentElement;if(!z)return H;let Y=z.querySelectorAll(`:scope > ${H}`);if(Y.length===1)return H;for(let M=0;M<Y.length;M+=1)if(Y[M]===v)return`${H}:nth-of-type(${M+1})`;return H}function p(v){let S=v.tagName.toLowerCase(),E=(v.textContent??"").trim().replace(/\\s+/g," "),T=(L,H)=>L.length>H?`${L.slice(0,H-1)}\\u2026`:L;return S==="h1"||S==="h2"||S==="h3"?"Heading":S==="p"||S==="span"||S==="div"?E.length>0?T(E,56):"Text":S==="img"?"Image":S==="video"?"Video":S==="audio"?"Audio":S==="svg"?"Shape":v.getAttribute("data-composition-src")?"Composition":S==="section"?"Section":`${S.charAt(0).toUpperCase()}${S.slice(1)}`}function g(v,S,E){let T=typeof E=="number"&&E>0?E:8,L=[];if(document.elementsFromPoint)L=document.elementsFromPoint(v,S);else if(document.elementFromPoint){let Y=document.elementFromPoint(v,S);L=Y?[Y]:[]}if(m(L[0]??null))return[];let H={},z=[];for(let[Y,M]of L.entries()){if(!d(M))continue;let V=`${M.tagName}::${M.id||""}::${Y}`;if(!H[V]&&(H[V]=!0,z.push(M),z.length>=T))break}return z}function y(v){let S=v.getBoundingClientRect(),E={};for(let L of Array.from(v.attributes))L.name.startsWith("data-")&&(E[L.name]=L.value);return{id:v.id||null,tagName:v.tagName.toLowerCase(),selector:f(v),label:p(v),boundingBox:{x:S.left,y:S.top,width:S.width,height:S.height},textContent:v.textContent?v.textContent.trim().slice(0,200):null,src:v.getAttribute("src")||v.getAttribute("data-composition-src")||null,dataAttributes:E}}function x(v,S,E){return g(v,S,E).map(y)}function w(v){if(!t)return;let E=g(v.clientX,v.clientY,1)[0]??(ke(v.target)?v.target:null);if(!d(E)||n===E)return;n&&n.classList.remove("__hf-pick-highlight"),n=E,E.classList.add("__hf-pick-highlight");let T=y(E);u(T),e.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:T})}function k(v){if(!t)return;v.preventDefault(),v.stopPropagation(),v.stopImmediatePropagation();let S=x(v.clientX,v.clientY,8);S.length!==0&&(u(S[0]??null),e.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:S,selectedIndex:0,point:{x:v.clientX,y:v.clientY}}))}function C(v){v.key==="Escape"&&(O(),e.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function N(){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",w,!0),document.addEventListener("click",k,!0),document.addEventListener("keydown",C,!0),a("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function O(){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",w,!0),document.removeEventListener("click",k,!0),document.removeEventListener("keydown",C,!0),a("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function F(){window.__HF_PICKER_API={enable:N,disable:O,isActive:()=>t,getHovered:()=>i,getSelected:()=>o,getCandidatesAtPoint:(v,S,E)=>Number.isFinite(v)&&Number.isFinite(S)?x(v,S,E):[],pickAtPoint:(v,S,E)=>{if(!Number.isFinite(v)||!Number.isFinite(S))return null;let T=x(v,S,8);if(!T.length)return null;let L=Math.max(0,Math.min(T.length-1,Number(E??0))),H=T[L]??null;return H?(s(H),e.postMessage({source:"hf-preview",type:"element-picked",elementInfo:H}),O(),H):null},pickManyAtPoint:(v,S,E)=>{if(!Number.isFinite(v)||!Number.isFinite(S))return[];let T=x(v,S,8);if(!T.length)return[];let L=[],H=Array.isArray(E)?E:[0];for(let z of H){let Y=Math.max(0,Math.min(T.length-1,Math.floor(Number(z)))),M=T[Y];if(!M)continue;L.some(te=>te.selector===M.selector&&te.tagName===M.tagName)||L.push(M)}return L.length?(s(L[0]??null),e.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:L}),O(),L):[]}},a("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:N,disablePickMode:O,installPickerApi:F}}var zb=["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 $a(e){return Number.isFinite(e)&&e>0?e:30}function qa(e){return Number.isFinite(e)&&e>0?e:0}function ja(e,t){let n=$a(t);return Math.floor(qa(e)*n+1e-9)/n}function ir(e,t,n){let r=Number.isInteger(n)?n:1;if(r<=1)return ja(e,t);let i=$a(t)*r;return Math.round(qa(e)*i)/i}function Ka(e,t){let n=$a(t),r=qa(e),i=r*n,o=Math.round(i);return Math.abs(i-o)<=.001?o/n:r}function xd(e,t,n=zb){for(let r of n){let i=t.getPropertyValue(r);i&&e.setProperty(r,i)}}function or(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&&I("runtime.player.nonConformantNum",{prop:t,actual:typeof r}),n)}function je(e,t){let n=e?.[t];if(typeof n=="function"){n.call(e);return}n!==void 0&&I("runtime.player.nonConformantVoid",{method:t,actual:typeof n})}function ar(e,t,n){if(e){for(let r of Object.values(e))if(!(!r||r===t))try{n(r)}catch(i){I("runtime.player.site1",i)}}}function yd(e,t,n,r){let i=ir(t,n,r?.subFrameDivisions),o=r?.suppressEvents===!0;return je(e,"pause"),typeof e.totalTime=="function"?e.totalTime(i,o):typeof e.seek=="function"&&e.seek(i,o),i}function $b(e,t,n,r,i){let o=[];ar(e,t,a=>{je(a,"play"),o.push(a)});try{return yd(t,n,r,i)}finally{for(let a of o)try{je(a,"pause")}catch(u){I("runtime.player.site2",u)}}}function qb(e,t){ar(e,t,n=>{je(n,"play")})}function vd(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?.()??or(n,"duration",0))||0);r>0&&Math.max(0,or(n,"time",0))>=r&&(je(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()),je(n,"play"),ar(e.getTimelineRegistry?.(),n,i=>{typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),je(i,"play")}),e.onDeterministicPlay(),e.setIsPlaying(!0),e.onShowNativeVideos(),e.onStatePost(!0)},pause:()=>{let n=e.getTimeline();if(!n)return;je(n,"pause"),ar(e.getTimelineRegistry?.(),n,i=>{je(i,"pause")});let r=Math.max(0,or(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(),u=$b(e.getTimelineRegistry?.(),i,o,e.getCanonicalFps());e.onDeterministicSeek(u),r?.keepPlaying&&a?(typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),je(i,"play"),ar(e.getTimelineRegistry?.(),i,s=>{typeof s.timeScale=="function"&&s.timeScale(e.getPlaybackRate()),je(s,"play")}),e.onDeterministicPlay(),e.onShowNativeVideos(),e.onSyncMedia(u,!0)):(e.setIsPlaying(!1),e.onSyncMedia(u,!1)),e.onRenderFrameSeek(u),e.onStatePost(!0)},renderSeek:(n,r)=>{let i=e.getTimeline(),o=e.getCanonicalFps(),a=i?(qb(e.getTimelineRegistry?.(),i),yd(i,n,o,r)):ir(Math.max(0,Number(n)||0),o,r?.subFrameDivisions);e.onDeterministicSeek(a,r),e.setIsPlaying(!1),e.onSyncMedia(a,!1),e.onRenderFrameSeek(a),e.onStatePost(!0)},getTime:()=>or(e.getTimeline(),"time",0),getDuration:()=>or(e.getTimeline(),"duration",0),isPlaying:()=>e.getIsPlaying(),setPlaybackRate:n=>e.setPlaybackRate(n),getPlaybackRate:()=>e.getPlaybackRate()}}function Sd(){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 jb=new Set(["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"]);function Xa(e){return e.id||e.getAttribute("data-hf-id")||null}function Kb(e){return Me(e)}function Xb(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 Yb(e){return ge(e)?Number.isFinite(e.duration)?nt(e,e.duration):null:ln(e)}function Jb(e,t,n,r){let i=Kb(e.getAttribute("data-duration"));return i!=null&&i>0?i:Xb(e,t)??Yb(e)??Math.max(0,n-r)}function Qb(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 Ad(e){let{startResolver:t,timelineRegistry:n,rootDuration:r}=e,i=new Map,o=document.querySelector("[data-composition-id]"),a=0;for(let u of document.querySelectorAll("[data-start]")){if(u===o||jb.has(u.tagName))continue;let s=t.resolveStartForElement(u,0);if(Jb(u,n,r,s)<=0)continue;let l={id:Xa(u)??`__clip-${a++}`,element:u,parentId:null,children:[]};i.set(u,l)}return Qb(i),{roots:Array.from(i.values()).filter(u=>u.parentId===null)}}var Ya="css:root",Ed=["backdrop-filter","clip-path","filter","mask","mask-border-source","mask-image","perspective","rotate","scale","transform","translate","-webkit-mask-image"],Zb=new Set([...Ed,"contain","isolation","mask-border","mix-blend-mode","opacity"]),ex=new Set(["absolute","relative"]),tx=new Set(["flex","inline-flex","grid","inline-grid"]),nx=new Set(["layout","paint","strict","content"]),rx=new Set(["size","inline-size"]);function ix(e){return e.position==="fixed"||e.position==="sticky"}function ox(e,t){if(t.zIndex==="auto"||t.zIndex==="")return!1;if(ex.has(t.position))return!0;let n=e.parentElement?e.ownerDocument.defaultView?.getComputedStyle(e.parentElement).display:null;return n!=null&&tx.has(n)}function ax(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:Ed.some(r=>{let i=e.getPropertyValue(r);return i!==""&&i!=="none"})}function sx(e){return e.getPropertyValue("contain").split(/\\s+/).some(n=>nx.has(n))?!0:rx.has(e.getPropertyValue("container-type"))}function ux(e){return e.getPropertyValue("will-change").split(",").map(t=>t.trim()).some(t=>Zb.has(t))}function lx(e,t){return ix(t)||ox(e,t)||ax(t)||sx(t)?!0:ux(t)}function cx(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 Pi(e){let t=e.ownerDocument.defaultView;if(!t)return Ya;let n=e.parentElement;for(;n&&n!==e.ownerDocument.documentElement;){try{if(lx(n,t.getComputedStyle(n)))return cx(n)}catch{return Ya}n=n.parentElement}return Ya}function Ja(e){let t=e.trim().toLowerCase();return!(!t||t==="main"||t.includes("caption")||t.includes("ambient"))}function lr(e,t){let n=e.tagName.toLowerCase();if(n==="script"||n==="style"||n==="link"||n==="meta")return!1;let i=n==="video"||n==="audio"?t.resolver.resolveMediaStartForElement(e):t.resolver.resolveStartForElement(e,0),o=t.resolver.resolveDurationForElement(e),a=e.getAttribute("data-composition-id");if(a){let d=t.timelineRegistry[a],m=d&&typeof d.duration=="function"?Number(d.duration()):null;!(e.hasAttribute("data-duration")||e.hasAttribute("data-end")||e.hasAttribute(cn)||e.hasAttribute(dn))&&(o==null||o<=0)&&m!=null&&Number.isFinite(m)&&m>0&&(o=m)}let u=o!=null&&o>0?i+o:Number.POSITIVE_INFINITY,s=t.exportRenderSeek?Ka(i,t.canonicalFps):i,l=t.exportRenderSeek&&Number.isFinite(u)?Ka(u,t.canonicalFps):u;return ui(t.currentTime,s,l,t.compositionDuration)}function zt(e){return Me(e)}function Qa(e){let t=e.getAttribute("data-duration"),n=e.getAttribute(cn),r=fn({start:0,duration:t,authoredDuration:n})?.duration;return r??([t,n].map(zt).some(o=>o!=null&&o<=0)?0:null)}function _d(e){return fn({start:0,end:e.getAttribute("data-end"),authoredEnd:e.getAttribute(dn)})?.end??null}function Za(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 es(...e){let t=e.filter(n=>Number.isFinite(n??null));return t.length===0?null:Math.max(...t)}function ts(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 ur(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 wd(e){let t=e.getAttribute("src")??e.getAttribute("data-src");if(t)return ur(t);let n=e.getAttribute("data-composition-src");if(n)return ur(n);let r=e.querySelector("img[src], video[src], audio[src], source[src]");return r?ur(r.getAttribute("src")):null}function fx(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 mx(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 px(e){let t=e.textContent?.replace(/\\s+/g," ").trim();return t?t.length>32?`${t.slice(0,31)}...`:t:null}function sr(e){let t=e.replace(/\\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\\s+/g," ").trim();return t?t.replace(/\\b\\w/g,n=>n.toUpperCase()):e}function hx(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 sr(i);let o=e.id;if(o)return sr(o);let a=fx(e);if(a)return sr(a);let u=mx(wd(e));if(u)return sr(u);let s=px(e);return s||`${sr(t)} ${n+1}`}function Cd(e){let n=window.__timelines??{},r=Ue({timelineRegistry:n,includeAuthoredTimingAttrs:!0}),i=j=>{if(!j)return null;let P=n[j]??null;if(!P||typeof P.duration!="function")return null;try{let U=Number(P.duration());return Number.isFinite(U)&&U>0?U:null}catch{return null}},o=()=>{let j=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(j.length===0)return null;let P=0;for(let U of j){let ee=r.resolveMediaStartForElement(U);if(!Number.isFinite(ee))continue;let pe=_i(U);pe==null||pe<=0||(P=Math.max(P,Math.max(0,ee)+pe))}return P>0?P:null},a=(j,P)=>{let U=[],ee=null,pe=null,ne=null,W=j.parentElement;for(;W;){let K=W.getAttribute("data-composition-id");K&&(U.push(K),!ne&&W!==P&&(ne=K),ee==null&&(ee=r.resolveStartForElement(W,0)),pe==null&&(pe=zt(W.getAttribute("data-duration"))??i(K)??null)),W=W.parentElement}return{parentCompositionId:ne,compositionAncestors:U.reverse(),inheritedStart:ee,inheritedDuration:pe}},u=document.querySelector("[data-composition-id]"),s=Array.from(document.querySelectorAll("[data-composition-id]")),l=u?.getAttribute("data-composition-id")??null,d=u?r.resolveStartForElement(u,0):0,m=o(),f=m!=null?Math.max(0,m-Math.max(0,d)):null,p=i(l),g=Qa(u??document.body),y=es(...s.filter(j=>j!==u).map(j=>{let P=r.resolveStartForElement(j,0),U=r.resolveDurationForElement(j)??i(j.getAttribute("data-composition-id"))??null;return!Number.isFinite(P)||U==null||U<=0?null:Math.max(0,P)+U})),x=y!=null?Math.max(0,y-Math.max(0,d)):null,w=typeof p=="number"&&Number.isFinite(p)&&p>0?p:null,k=typeof g=="number"&&Number.isFinite(g)&&g>0?g:null,C=typeof f=="number"&&Number.isFinite(f)&&f>0?f:null,N=typeof x=="number"&&Number.isFinite(x)&&x>0?x:null,O=es(C,N),F=w!=null&&O!=null&&w>O+1,S=k??(F?O:es(w,C,N))??null,T=(S!=null?d+S:null)??(typeof m=="number"&&Number.isFinite(m)&&m>0?m:null),L=(j,P)=>!Number.isFinite(P)||P<=0?0:T==null||!Number.isFinite(T)?P:!Number.isFinite(j)||j>=T?0:Math.max(0,Math.min(P,T-j)),H=[],z=[],Y=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),M=0;for(let[j,P]of Y.entries()){if(P===u||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(P.tagName))continue;let U=a(P,u),ee=P.tagName.toLowerCase(),pe=ee==="video"||ee==="audio"?r.resolveMediaStartForElement(P):r.resolveStartForElement(P,U.inheritedStart??0),ne=P.getAttribute("data-composition-id"),W=Qa(P);if(W==null&&ne&&ne!==l&&(W=i(ne)),W==null&&ge(P)&&Number.isFinite(P.duration)&&(W=nt(P,P.duration)),W==null&&(W=ln(P,pe)),W==null){let Oe=U.inheritedDuration;if(Oe!=null&&Oe>0){let ct=(U.inheritedStart??0)+Oe;W=Math.max(0,ct-pe)}}if(W==null||W<=0||(W=L(pe,W),W<=0))continue;let K=pe+W;M=Math.max(M,K);let xe=ne&&ne!==l?"composition":ee==="video"?"video":ee==="audio"?"audio":ee==="img"?"image":"element";H.push({id:Xa(P)??ne??null,label:hx(P,xe,H.length),start:pe,duration:W,track:ts(P,j),zIndex:Za(P),stackingContextId:Pi(P),kind:xe,tagName:ee,compositionId:P.getAttribute("data-composition-id"),compositionAncestors:U.compositionAncestors,parentCompositionId:U.parentCompositionId,nodePath:null,compositionSrc:ur(P.getAttribute("data-composition-src")),playbackStart:rt(P),playbackRate:Pe(P),assetUrl:wd(P),timelineRole:P.getAttribute("data-timeline-role"),timelineLabel:P.getAttribute("data-timeline-label"),timelineGroup:P.getAttribute("data-timeline-group"),timelinePriority:zt(P.getAttribute("data-timeline-priority"))})}let V=new Set(H.map(j=>j.id)),te=u?.getAttribute("data-composition-id")??null,B=te?n[te]??null:null;if(B&&u){let j=B;if(typeof j.getChildren=="function")try{let P=j.getChildren(!0,!0,!1)??[],U=new Map;for(let ne of u.children){let W=ne;if(!W.id)continue;let K=W.tagName.toLowerCase();K==="script"||K==="style"||K==="link"||U.set(W,{id:W.id,start:1/0,end:-1/0})}let ee=ne=>{let W=ne;for(;W;){if(U.has(W))return W;if(W===u)return null;W=W.parentElement}return null};for(let ne of P){if(typeof ne.targets!="function"||typeof ne.startTime!="function"||typeof ne.duration!="function")continue;let W=ne.startTime(),K=ne.parent;for(;K&&K!==B&&typeof K.startTime=="function";)W+=K.startTime(),K=K.parent;let xe=W+ne.duration();if(!(!Number.isFinite(W)||!Number.isFinite(xe)))for(let Oe of ne.targets()){if(!ke(Oe))continue;let Ln=ee(Oe);if(!Ln)continue;let ct=U.get(Ln);ct&&(ct.start=Math.min(ct.start,W),ct.end=Math.max(ct.end,xe))}}let pe=H.length>0?Math.max(...H.map(ne=>ne.track))+1:0;for(let[ne,W]of U){if(W.start===1/0||W.end===-1/0)continue;let K=ne;if(V.has(K.id))continue;let xe=Math.max(0,W.end-W.start);if(xe<=0)continue;let Oe=L(W.start,xe);Oe<=0||(M=Math.max(M,W.start+Oe),H.push({id:K.id,label:K.getAttribute("data-timeline-label")??K.getAttribute("data-label")??K.getAttribute("aria-label")??K.id,start:W.start,duration:Oe,track:ts(K,pe),zIndex:Za(K),stackingContextId:Pi(K),kind:"element",tagName:K.tagName.toLowerCase(),compositionId:K.getAttribute("data-composition-id"),compositionAncestors:te?[te]:[],parentCompositionId:te,nodePath:null,compositionSrc:null,playbackStart:rt(K),playbackRate:Pe(K),assetUrl:null,timelineRole:K.getAttribute("data-timeline-role"),timelineLabel:K.getAttribute("data-timeline-label"),timelineGroup:K.getAttribute("data-timeline-group"),timelinePriority:zt(K.getAttribute("data-timeline-priority"))}),V.add(K.id))}}catch(P){I("runtime.timeline.site1",P)}}if(u&&S!=null&&S>0){let j=H.length>0?Math.max(...H.map(P=>P.track))+1:0;for(let P of u.children){let U=P;if(!U.id||V.has(U.id))continue;let ee=U.getAttribute("data-timeline-role");if(ee!=="overlay"&&ee!=="persistent-overlay")continue;let pe=U.tagName.toLowerCase();if(pe==="script"||pe==="style"||pe==="link"||pe==="meta"||window.getComputedStyle(U).display==="none")continue;let W=L(0,S);W<=0||(M=Math.max(M,W),H.push({id:U.id,label:U.getAttribute("data-timeline-label")??U.getAttribute("data-label")??U.getAttribute("aria-label")??U.id,start:0,duration:W,track:ts(U,j),zIndex:Za(U),stackingContextId:Pi(U),kind:"element",tagName:pe,compositionId:U.getAttribute("data-composition-id"),compositionAncestors:te?[te]:[],parentCompositionId:te,nodePath:null,compositionSrc:null,playbackStart:rt(U),playbackRate:Pe(U),assetUrl:null,timelineRole:ee,timelineLabel:U.getAttribute("data-timeline-label"),timelineGroup:U.getAttribute("data-timeline-group"),timelinePriority:zt(U.getAttribute("data-timeline-priority"))}),V.add(U.id))}}for(let j of s){if(j===u)continue;let P=j.getAttribute("data-composition-id");if(!P||!Ja(P))continue;let U=r.resolveStartForElement(j,0),ee=Qa(j);if((ee==null||ee<=0)&&_d(j)!=null){let K=_d(j);ee=Math.max(0,K-U)}let pe=i(P),ne=ee&&ee>0?ee:pe;if(ne==null||ne<=0)continue;let W=L(U,ne);W<=0||z.push({id:P,label:j.getAttribute("data-label")??P,start:U,duration:W,thumbnailUrl:ur(j.getAttribute("data-thumbnail-url")),avatarName:null})}let $=Math.max(1,M||1,S??0),q=F&&k==null,J=q?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil($*Math.max(1,e.canonicalFps)));return{...si(e.canonicalFps),source:"hf-preview",type:"timeline",compositionContractVersion:1,durationSeconds:q?Number.POSITIVE_INFINITY:$,durationInFrames:J,clips:H,scenes:z,compositionWidth:zt(u?.getAttribute("data-width"))??1920,compositionHeight:zt(u?.getAttribute("data-height"))??1080}}var Rd=e=>e!==null&&Number.isFinite(e)&&e>0;function cr(e){let t=e.clipEndsSeconds.filter(r=>r===null).length;if(Rd(e.authoredDurationSeconds))return{seconds:e.authoredDurationSeconds,source:"authored",pendingClips:t};let n=e.clipEndsSeconds.filter(Rd);return n.length>0?{seconds:Math.max(...n),source:"derived",pendingClips:t}:{seconds:null,source:"unresolved",pendingClips:t,reason:t>0?"every clip\'s length is still pending":"no authored duration and no clip with a length"}}var ns="data-composition-id",gx="data-composition-src",bx=`[${ns}]`,xR=`[${gx}]`,Td="style",kd="script",xx=\'link[rel="stylesheet"], link[rel="preconnect"]\';function xn(e){return e?Array.from(e):[]}function Md(e){let{contentNode:t,head:n,documentElement:r,hasTemplate:i,compositionId:o}=e,a=xn(t.querySelectorAll(bx)),u=o?a.find(d=>d.getAttribute(ns)===o)??null:a[0]??null,s=(u??a[0])?.getAttribute(ns)?.trim()||"",l=i?null:n??null;return{innerRoot:u,authoredCompositionId:o||s||null,scriptCompositionId:s||o||null,authoredRootId:u?.getAttribute("id")?.trim()||null,styleSources:[...xn(l?.querySelectorAll(Td)),...xn(t.querySelectorAll(Td))],scriptSources:[...xn(l?.querySelectorAll(kd)),...xn(t.querySelectorAll(kd))],linkSources:xn(n?.querySelectorAll(xx)),variableDefaultCarriers:[r,u].filter(d=>d!=null)}}var ve=K0(am(),1),sm=ve.default,sT=ve.default.stringify,uT=ve.default.fromJSON,lT=ve.default.plugin,cT=ve.default.parse,dT=ve.default.list,fT=ve.default.document,mT=ve.default.comment,pT=ve.default.atRule,hT=ve.default.rule,gT=ve.default.decl,bT=ve.default.root,xT=ve.default.CssSyntaxError,yT=ve.default.Declaration,vT=ve.default.Container,ST=ve.default.Processor,AT=ve.default.Document,ET=ve.default.Comment,_T=ve.default.Warning,wT=ve.default.AtRule,CT=ve.default.Result,RT=ve.default.Input,TT=ve.default.Rule,kT=ve.default.Root,MT=ve.default.Node;var Rs="data-hf-authored-id",um="data-hf-inner-root";function Ts(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function ks(e){return e.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function Jy(e){return e&&e.replace(/[^a-zA-Z0-9_-]/g,n=>`\\\\${n}`).replace(/^-?\\d/,n=>`\\\\${n}`)}function cm(e){let t=e.trim();return t?Array.from(new Set([t,Jy(t)])).filter(Boolean):[]}function Qy(e){return!!e&&/[\\w-]/.test(e)}function Zy(e,t,n){let r=cm(t).sort((u,s)=>s.length-u.length);if(r.length===0)return e;let i="",o=0,a=null;for(let u=0;u<e.length;u+=1){let s=e[u],l=u>0?e[u-1]:"";if(a){i+=s,s===a&&l!=="\\\\"&&(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 d=r.find(m=>e.startsWith(m,u+1));if(d){let m=e[u+1+d.length];if(!Qy(m)){i+=n,u+=d.length;continue}}}i+=s}return i}function ev(e,t){let n=t?.trim();return n?Zy(e,n,`[${Rs}="${ks(n)}"]`):e}function lm(e){return`${e}:not(:has([${um}])), ${e} > [${um}]`}function tv(e,t,n,r,i,o){let a=ev(e,r),u=nv(a,t,n),s=u.trim();if(!s||s==="*")return e;if(/^(html|body|:root)$/i.test(s))return o?lm(t):e;let l=new RegExp(`\\\\[\\\\s*data-composition-id\\\\s*[\\\\^\\\\*\\\\$]?=\\\\s*(["\'])${Ts(n)}\\\\1\\\\s*\\\\]`,"g");if(l.test(s))return s.replace(l,"").trim()===""?lm(t):u.replace(l,t);let d=u.match(/^\\s*/)?.[0]??"",m=u.match(/\\s*$/)?.[0]??"";if(i){let f=r?`[${Rs}="${ks(r)}"]`:null;if(f&&s.startsWith(f)){let p=s.slice(f.length);return`${d}${t}${f}${p}${m}`}}return`${d}${t} ${s}${m}`}function nv(e,t,n){let r=Ts(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 rv=new Set(["keyframes","-webkit-keyframes","font-face"]);function iv(e){return e?.type==="atrule"}function ov(e){let t=e.parent;for(;t;){if(iv(t)&&rv.has(t.name.toLowerCase()))return!0;t=t.parent}return!1}function av(e){let t=e.parent;for(;t;){if(t.type==="rule")return!0;t=t.parent}return!1}function dm(e,t,n,r,i){let o=t.trim();if(!e||!o)return e;let a=n||`[data-composition-id="${ks(o)}"]`,u;try{u=sm.parse(e)}catch{return""}return u.walkRules(s=>{ov(s)||av(s)||(s.selectors=s.selectors.map(l=>tv(l,a,o,r,i?.compoundAuthoredRoot,i?.scopeRootSelectors)))}),u.toResult({map:!1}).css}function gt(e){return JSON.stringify(e).replace(/</g,"\\\\u003c")}function fm(e,t,n="[HyperFrames] composition script error:",r,i=t,o){let a=gt(t),u=gt(i),s=gt(n),l=Ts(t),d=gt(o?.trim()||null),m=gt(r??null),f=gt(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${l}"|\'${l}\')\\s*\\]`),p=gt(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`),g=gt(cm(o?.trim()||""));return`(function(){\n var __hfCompId = ${a};\n var __hfTimelineCompId = ${u};\n var __hfErrorLabel = ${s};\n var __hfAuthoredRootId = ${d};\n var __hfAuthoredRootAttr = ${gt(Rs)};\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 = ${g};\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 __hfQueryAll(target);\n if (!Array.isArray(target)) return target;\n return target.reduce(function(resolved, item) {\n if (typeof item === "string") {\n return resolved.concat(Array.prototype.slice.call(__hfQueryAll(item)));\n }\n resolved.push(item);\n return resolved;\n }, []);\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 sv=["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 mm(e){let t=e.getAttribute("id")?.trim();for(let n of sv)e.removeAttribute(n);t&&(e.removeAttribute("id"),e.setAttribute("data-hf-authored-id",t)),e.setAttribute("data-hf-inner-root","true")}var uv=8e3,lv=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/,cv=/\\burl\\(\\s*(["\']?)([^)"\']+)\\1\\s*\\)/g,dv=["src","href"];function fv(e){return!e||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("//")||e.startsWith("data:")||e.startsWith("#")||e.startsWith("/")}function gm(e,t){if(!t)return e;let n=e.trim();if(fv(n)||!n.startsWith("../")&&n!=="..")return e;try{return new URL(n,t).href}catch{return e}}function bm(e,t){return!t||!e?e:e.replace(cv,(n,r,i)=>{let o=gm(i||"",t);return o===i?n:`url(${r||""}${o}${r||""})`})}function mv(e,t){for(let n of Array.from(e.querySelectorAll("[src], [href]")))for(let r of dv){let i=n.getAttribute(r);if(i==null)continue;let o=gm(i,t);o!==i&&n.setAttribute(r,o)}}function pv(e,t){for(let n of Array.from(e.querySelectorAll("[style]"))){let r=n.getAttribute("style");if(r==null)continue;let i=bm(r,t);i!==r&&n.setAttribute("style",i)}}function hv(e,t){for(let n of Array.from(e.querySelectorAll("style"))){let r=n.textContent||"",i=bm(r,t);i!==r&&(n.textContent=i)}}function xm(e,t){if(t){mv(e,t),pv(e,t),hv(e,t);for(let n of Array.from(e.querySelectorAll("template")))xm(n.content,t)}}function gv(e,t){return`${e}__hf${t}`}var bv=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"),uv)});function Ms(e){for(;e.firstChild;)e.removeChild(e.firstChild);e.textContent=""}function pm(e){for(let t of Array.from(e.querySelectorAll("style, script")))t.remove()}function xv(e){let t=document.importNode(e,!0);mm(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 yv(e,t){let n=e.trim();if(!n)return e;try{return lv.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 hm(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 Zi(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 vv(e){let t=new Map;for(let n of e){let r=Zi(n).authoredCompositionId||"";r&&t.set(r,(t.get(r)||0)+1)}return t}function ym(e){let t=Zi(e).authoredCompositionId;return t?!!document.querySelector(`template#${CSS.escape(t)}-template`):!1}function Sv(e){return!!e.querySelector(\'[data-hf-inner-root="true"]\')}function Av(e){return e.hasAttribute("data-composition-src")?!0:ym(e)?e.children.length===0||e.hasAttribute("data-hf-original-composition-id")?!0:Sv(e):!1}function Ns(){return Array.from(document.querySelectorAll("[data-composition-src], [data-composition-id]")).filter(t=>t.hasAttribute("data-composition-src")?!0:ym(t))}function vm(){let e=window.__hfVariablesByComp;if(!e)return;let t=new Set(Ns().map(n=>Zi(n).runtimeCompositionId).filter(n=>!!n));for(let n of Object.keys(e))t.has(n)||delete e[n]}function Sm(e,t=vv(e)){let n=new Map,r=new Map;for(let i of e){let{authoredCompositionId:o,runtimeCompositionId:a}=Zi(i),u=Av(i);if(!o){r.set(i,{authoredCompositionId:null,runtimeCompositionId:a});continue}let s=(t.get(o)||0)>1,l=a||o;if(u){let d=s?(n.get(o)||0)+1:0;s&&n.set(o,d),l=s?gv(o,d):o,s?i.setAttribute("data-hf-original-composition-id",o):i.removeAttribute("data-hf-original-composition-id"),i.setAttribute("data-composition-id",l),a&&a!==l&&window.__hfVariablesByComp&&delete window.__hfVariablesByComp[a]}r.set(i,{authoredCompositionId:o,runtimeCompositionId:l})}return r}async function Fs(e){let t=Md({contentNode:e.sourceNode,head:e.head,hasTemplate:e.hasTemplate,compositionId:e.authoredCompositionId}),n=he(t.innerRoot)?t.innerRoot:null,r=n??e.sourceNode,i=t.authoredCompositionId,o=t.scriptCompositionId,a=e.runtimeCompositionId||null,u=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 g=e.compositionUrl?new URL(p,e.compositionUrl).href:p;if(e.compositionUrl&&hm(g,e.compositionUrl)||document.head.querySelector(`link[href="${CSS.escape(g)}"]`))continue;let y=f.cloneNode(!0);Ml(y)&&(y.href=g,document.head.appendChild(y),e.injectedLinks.push(y))}(f=>{for(let p of f){let g=p.cloneNode(!0);kl(g)&&(i&&(g.textContent=dm(g.textContent||"",i,s,u,{scopeRootSelectors:!0})),document.head.appendChild(g),e.injectedStyles.push(g))}})(t.styleSources);let d=f=>{let p=f.getAttribute("type")?.trim()??"",g=f.getAttribute("src")?.trim()??"";if(g){let x=yv(g,e.compositionUrl);return e.compositionUrl&&hm(x,e.compositionUrl)?null:{kind:"external",src:x,type:p}}let y=f.textContent?.trim()??"";return y?{kind:"inline",content:y,type:p,scopeCompositionId:o}:null},m=t.scriptSources.map(d).filter(f=>f!==null);if(n){let f=n.getAttribute("data-width"),p=n.getAttribute("data-height"),g=e.parseDimensionPx(f),y=e.parseDimensionPx(p);f&&e.host.setAttribute("data-width",f),p&&e.host.setAttribute("data-height",p),g&&he(e.host)&&(e.host.style.width=g),y&&he(e.host)&&(e.host.style.height=y),n.hasAttribute("data-timeline-locked")&&e.host.setAttribute("data-timeline-locked","");let x=xv(n);!e.authoredCompositionId&&i&&x.setAttribute("data-composition-id",i),pm(x),e.host.appendChild(x)}else if(e.hasTemplate){let f=document.importNode(r,!0);pm(f),e.host.appendChild(f)}else e.host.innerHTML=e.fallbackBodyInnerHtml;a&&Ev(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=fm(f.content,f.scopeCompositionId,"[HyperFrames] composition script error:",s,a||f.scopeCompositionId,u):p.textContent=`(function(){${f.content}})();`,document.body.appendChild(p),e.injectedScripts.push(p),f.kind==="external"){let g=await bv(p);g.status!=="load"&&e.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:e.authoredCompositionId,runtimeCompositionId:e.runtimeCompositionId,hostCompositionSrc:e.hostCompositionSrc,resolvedScriptSrc:f.src,loadStatus:g.status,elapsedMs:g.elapsedMs}})}}}async function Am(e){let t=Ns();if(vm(),t.length===0)return;let n=Sm(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 u=document.querySelector(`template#${CSS.escape(a)}-template`);Ms(i),await Fs({host:i,authoredCompositionId:a,runtimeCompositionId:o?.runtimeCompositionId||a,hostCompositionSrc:`template#${a}-template`,sourceNode:u.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,injectedLinks:e.injectedLinks,parseDimensionPx:e.parseDimensionPx,onDiagnostic:e.onDiagnostic})}}async function Em(e){let t=Ns();if(vm(),t.length===0)return;let n=Sm(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),u=a?.authoredCompositionId||null,s=a?.runtimeCompositionId||u||null,l=null;try{l=new URL(o,document.baseURI)}catch{l=null}Ms(i);try{let d=u!=null?document.querySelector(`template#${CSS.escape(u)}-template`):null;if(d){await Fs({host:i,authoredCompositionId:u,runtimeCompositionId:s,hostCompositionSrc:o,sourceNode:d.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:l,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(),g=new DOMParser().parseFromString(f,"text/html");xm(g,l);let y=(u?g.querySelector(`template#${CSS.escape(u)}-template`):null)??g.querySelector("template"),x=y?y.content:g.body;await Fs({host:i,authoredCompositionId:u,runtimeCompositionId:s,hostCompositionSrc:o,sourceNode:x,hasTemplate:!!y,fallbackBodyInnerHtml:g.body.innerHTML,compositionUrl:l,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,injectedLinks:e.injectedLinks,parseDimensionPx:e.parseDimensionPx,head:g.head,declaredVariableDefaults:Un(g.documentElement),variableDeclarer:g.documentElement,onDiagnostic:e.onDiagnostic})}catch(d){e.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:u,runtimeCompositionId:s,hostCompositionSrc:o,errorMessage:d instanceof Error?d.message:"unknown_error"}}),Ms(i)}}))}function Ev(e,t,n){let i={...e.declaredVariableDefaults??(ke(t)?Un(t):{}),...Rl(e.host)};Xo(e.variableDeclarer??(ke(t)?t:null),i,n),wl(e.host),Object.keys(i).length>0?(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[n]=i,Yo(e.host,{..._l(e.host,i,window),...ci()})):window.__hfVariablesByComp&&delete window.__hfVariablesByComp[n]}function _v(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function wv(e){if(!Array.isArray(e))throw new Error("expected a JSON array");if(!e.every(_v))throw new Error("every array entry must be an object");return e}function Ls(e){let n=e.vars.data?.captionState;return n==="dim"||n==="active"?n:void 0}function Cv(e){return he(e)?e.dataset.captionWrapper!=="true"?e:e.querySelector(":scope > span")??null:null}function Rv(){let e=[],t=document.querySelectorAll(".caption-group");for(let n of t)for(let r of n.children){if(!he(r))continue;let i=r.dataset.captionWrapper==="true"?r.querySelector(":scope > span"):r.tagName==="SPAN"?r:null;i&&e.push(i)}return e}function Tv(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 Ds(){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===null)return;let n=wv(t);if(n.length===0)return;let r=Rv();for(let i of n){let o=null;if(i.wordId&&(o=Cv(document.getElementById(i.wordId))),!o&&i.wordIndex!==void 0&&(o=r[i.wordIndex]??null),!o)continue;let a={},u={};if(i.x!==void 0&&(a.x=i.x),i.y!==void 0&&(a.y=i.y),i.scale!==void 0&&(a.scale=i.scale),i.rotation!==void 0&&(a.rotation=i.rotation),i.opacity!==void 0&&(u.opacity=i.opacity),i.fontSize!==void 0&&(u.fontSize=`${i.fontSize}px`),i.fontWeight!==void 0&&(u.fontWeight=i.fontWeight),i.fontFamily!==void 0&&(u.fontFamily=i.fontFamily),i.activeColor||i.dimColor){let l=e.getTweensOf(o).filter(f=>f.vars.color!==void 0).sort((f,p)=>f.startTime()-p.startTime()),d=l.find(f=>Ls(f)==="dim")??l.find(f=>Ls(f)===void 0),m=d?String(d.vars.color):"";for(let f of l)(Ls(f)??(String(f.vars.color)===m?"dim":"active"))==="dim"?i.dimColor&&(f.vars.color=i.dimColor):i.activeColor&&(f.vars.color=i.activeColor);i.dimColor&&e.set(o,{color:i.dimColor})}if(Object.keys(u).length>0&&e.set(o,u),Object.keys(a).length>0){let s=Tv(o);e.set(s,a)}}}).catch(t=>{let n=t instanceof Error?t.message:String(t);console.error(`[HyperFrames] Invalid caption-overrides.json: ${n}`)})}var Ps="data-hf-edit-base-x",Os="data-hf-edit-base-y",_n="data-hf-edit-original-translate",eo=e=>{let t=parseFloat(e??"");return Number.isFinite(t)?t:0},kv=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},_m=/^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)px$/,Is=(e,t)=>_m.test(e)&&_m.test(t)?`${parseFloat(e)+parseFloat(t)}px`:`calc(${e} + ${t})`,Mv=(e,t,n)=>{if(!e||e==="none")return`${t} ${n}`;let[r,i,o]=kv(e);if(r===void 0)return`${t} ${n}`;if(i===void 0)return`${Is(r,t)} ${n}`;let a=o===void 0?"":` ${o}`;return`${Is(r,t)} ${Is(i,n)}${a}`},Fv=e=>{try{e.ownerDocument.defaultView?.gsap?.getProperty?.(e,"x")}catch{}},Nv=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""}},Hs=new WeakMap;function Lv(e,t){let n=Hs.get(e);if(!t?.force&&n!==void 0&&e.style.getPropertyValue("translate")!==n){Ge("position_edit_fold_skipped",{hfId:e.getAttribute("data-hf-id")});return}let r=eo(e.getAttribute("data-x"))-eo(e.getAttribute(Ps)),i=eo(e.getAttribute("data-y"))-eo(e.getAttribute(Os));e.hasAttribute(_n)||e.setAttribute(_n,Nv(e)),n===void 0&&Fv(e);let o=e.getAttribute(_n)??"",a=Mv(o,`${r}px`,`${i}px`);e.style.setProperty("translate",a),Hs.set(e,e.style.getPropertyValue("translate"))}function to(e,t){let n=e.querySelectorAll(`[${_n}]:not([${Ps}]):not([${Os}])`);for(let o=0;o<n.length;o++){let a=n[o];if(a===void 0||!Zo(a))continue;let u=a.getAttribute(_n)??"";u===""?a.style.removeProperty("translate"):a.style.setProperty("translate",u),a.removeAttribute(_n),Hs.delete(a)}let r=e.querySelectorAll(`[${Ps}], [${Os}]`),i=0;for(let o=0;o<r.length;o++){let a=r[o];a===void 0||!Zo(a)||(Lv(a,t),i+=1)}return i}var wm="__hfPositionEditsSeekReapplyWrapped",Cm=new WeakSet,Rm=new WeakMap,Tm=new WeakMap;function km(e){let t=e,n=()=>{try{to(t.document)}catch{}},r=m=>typeof m=="function"&&(Cm.has(m)||!!m[wm]),i=m=>{Cm.add(m);try{Object.defineProperty(m,wm,{value:!0})}catch{}},o=m=>{if(typeof m!="function"||r(m))return m;let f=function(...p){let g=m.apply(this,p);return n(),g};return i(f),f},a=(m,f)=>{let p=Rm.get(m);if(p?.has(f))return!0;let g=Object.getOwnPropertyDescriptor(m,f);if(g?.configurable===!1){let w=m[f];return typeof w=="function"&&(m[f]=o(w),n()),!1}let y=m[f],x=g?.set;return Object.defineProperty(m,f,{configurable:!0,enumerable:g?.enumerable??!0,get:()=>y,set:w=>{y=o(w),x?.call(m,w)}}),y=o(y),p??(p=new Set),p.add(f),Rm.set(m,p),n(),!0},u=(m,f)=>{let p=Tm.get(t),g=Object.getOwnPropertyDescriptor(t,m);if(!p?.has(m)){if(g?.configurable===!1){let w=t[m];return w?a(w,f):!1}let x=t[m];Object.defineProperty(t,m,{configurable:!0,enumerable:g?.enumerable??!0,get:()=>x,set:w=>{x=w,x&&a(x,f)}}),p??(p=new Set),p.add(m),Tm.set(t,p)}let y=t[m];return y?a(y,f):!1},s=()=>{let m=u("__hf","seek"),f=u("__player","renderSeek");return m&&f};if(s())return;let l=120,d=t.setInterval(()=>{if(s()){t.clearInterval(d);return}l-=1,l<=0&&t.clearInterval(d)},50)}function no(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 ro(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function Gs(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 Mm=new Set(["img","video","audio","source"]);function Dv(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 Iv(e){return e.replace(/[;{}<>\\r\\n]/g,"")}function Pv(e){if(ro(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 Bs(e,t){let n=e.closest("[data-composition-id]"),r=t.get(n);if(r)return r;let i=no(e);return t.set(n,i),i}function Ov(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 Hv(e){return e.querySelector("[data-hf-root]")??e.getElementById("stage")??e.body?.firstElementChild??e.body}function Gv(e,t){let n=new Set,r=Hv(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=Bs(i,t);for(let[a,u]of Object.entries(o)){let s=Pv(u);s!==null&&he(i)&&i.style.setProperty(`--${a}`,Iv(s))}}}function Us(e){let t=new Map;Gv(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(!Mm.has(n.tagName.toLowerCase())){console.warn(`[hyperframes] Ignoring data-var-src on <${n.tagName.toLowerCase()}>: variable-bound src is only allowed on ${Array.from(Mm).join("/")}.`);continue}let i=Dv(Bs(n,t)[r]);if(i!==null){if(!Gs(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=Bs(n,t)[r];ro(i)&&Ov(n,String(i))}}var bt=new Map,Bv="data-hf-color-grading-canvas",Uv="__hf_color_grading_canvas__";function Um(){if(typeof MutationObserver>"u"||typeof document>"u")return;let e=document.documentElement;if(!e)return;let t=r=>{he(r)&&(r.hasAttribute(Li)||r.setAttribute(Li,r.style.opacity))},n=r=>{if(ke(r)){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 Wv=16,Vv=4,Cn={enabled:!1,position:.5,softness:0,lineWidth:2},Ws=["#000000","#ffffff"],zv=["#1a1a1a","#f5f5dc"],Dr=3,$v=Dr-1,qv=5,Vs=`${it}.0`,Fm=`${it-1}.0`,jv=`${Dr}.0`,Kv=`${($v+.5)/Dr}`;function io(e){let t=e.getAttribute(nr);return t==null?null:hd(t,no(e))}var Xv=["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`),Yv=["#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) * ${Fm};`," float lower = floor(position);",` float upper = min(lower + 1.0, ${Fm});`,` float y = (row + 0.5) / ${jv};`,` vec4 before = texture2D(u_advanced, vec2((lower + 0.5) / ${Vs}, y));`,` vec4 after = texture2D(u_advanced, vec2((upper + 0.5) / ${Vs}, y));`," return mix(before, after, position - lower);","}","vec4 advancedConfig(float index){",` return texture2D(u_advanced, vec2((index + 0.5) / ${Vs}, ${Kv}));`,"}","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`),Jv=["#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`),Qv=["#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`),Zv=["#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 Kt(e){return me(e)||Le(e)}function Nm(e){let t=window.getComputedStyle(e);return t.display!=="none"&&t.visibility!=="hidden"}function Lm(e,t,n){let r=e.createShader(n);return r?(e.shaderSource(r,t),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)?r:(I("runtime.colorGrading.compileShader",e.getShaderInfoLog(r)),e.deleteShader(r),null)):null}function lo(e,t=Yv){let n=Lm(e,Xv,e.VERTEX_SHADER),r=Lm(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:(I("runtime.colorGrading.linkProgram",e.getProgramInfoLog(i)),e.deleteProgram(i),null)):null}function oo(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 eS(e,t){let n=lo(e,Jv);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 tS(e,t){let n=lo(e,Qv);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 nS(e,t){let n=lo(e,Zv);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 Fr(e,t=e.UNSIGNED_BYTE,n=e.LINEAR){let r=oo(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 so(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 zs(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 Dm(e,t,n){t&&e.deleteProgram(t);for(let r of n)r&&e.deleteTexture(r)}function Ks(e){let t=e.getContext("webgl",{alpha:!0,premultipliedAlpha:!1});if(!t)return null;let n=lo(t),r=oo(t),i=oo(t,t.NEAREST),o=oo(t,t.NEAREST);if(!n||!r||!i||!o)return Dm(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:zs(t,n,Di),detailUniforms:zs(t,n,Ha),effectUniforms:zs(t,n,Ga),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")}}):(Dm(t,n,[r,i,o]),null)}function rS(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function iS(e){if(!rS(e))return{...Cn};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,Cn.position,0,1),softness:t(e.softness,Cn.softness,0,.25),lineWidth:t(e.lineWidth,Cn.lineWidth,0,12)}}function Wm(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 co(e){return e instanceof Error?e.message:"LUT failed to load"}function oS(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 Vm(e){let t=e.id||e.currentSrc||e.getAttribute("src")||`${e.tagName}:${Array.prototype.indexOf.call(e.parentNode?.children??[],e)}`;return oS(t)}function Xs(e){let t=Wm(e);if("error"in t)return{state:"error",message:t.error};let n=bt.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=>qc(o,{maxSize:Mi})),i={state:"pending",promise:r};for(;bt.size>=Wv;){let o=bt.keys().next().value;if(!o)break;bt.delete(o)}return bt.set(t.href,i),r.then(o=>{bt.get(t.href)===i&&bt.set(t.href,{state:"ready",lut:o})},o=>{bt.get(t.href)===i&&bt.set(t.href,{state:"error",message:co(o)})}),i}function Im(e,t,n){if(e.lut?.src===t)return e.lut;let r=ka(n),{gl:i,program:o}=e;try{return zm(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=co(a),e.lutLoadingSrc=null,I("runtime.colorGrading.uploadLut",a),null}}async function aS(e){let t=Xs(e);if(t.state==="ready")return t.lut;if(t.state==="pending")return t.promise;throw new Error(t.message)}function zm(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 sS(e,t,n){let r=ka(n),{gl:i,program:o}=e;return zm(i,o.lutTexture,r),{src:t,size:n.size,domainMin:n.domainMin,domainMax:n.domainMax,textureWidth:r.width,textureHeight:r.height}}function ut(e,t){e.deleteTexture(t.texture),e.deleteFramebuffer(t.framebuffer)}function Ys(e){let t=e.effectTargets;t&&(e.gl.deleteProgram(t.blurProgram.program),ut(e.gl,t.scratch),ut(e.gl,t.blur),t.bloom&&ut(e.gl,t.bloom),e.effectTargets=null)}function Js(e){let t=e.kuwaharaTargets;t&&(e.gl.deleteProgram(t.horizontalProgram.program),e.gl.deleteProgram(t.resolveProgram.program),ut(e.gl,t.moments),ut(e.gl,t.output),e.kuwaharaTargets=null)}function ao(e,t=!1){Ys(e),Js(e),uS(e.gl,e.program),t&&e.gl.getExtension("WEBGL_lose_context")?.loseContext()}function uS(e,t){e.deleteTexture(t.texture),e.deleteTexture(t.lutTexture),e.deleteTexture(t.advancedTexture),e.deleteBuffer(t.quad),e.deleteProgram(t.program)}function lS(e){let t=Ks(e.canvas);return t?(ao(e),e.gl=t.gl,e.program=t.program,e.lut=null,e.lutLoadingSrc=null,e.lutError=null,e.effectError=null,!0):!1}function js(e){if(!e.sourceHidden)return;e.element.removeAttribute(rr);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 cS(e){if(e.effectTargets)return e.effectTargets;let{gl:t}=e,n=eS(t,e.program.quad),r=Fr(t),i=Fr(t);return!n||!r||!i?(n&&t.deleteProgram(n.program),r&&ut(t,r),i&&ut(t,i),e.effectError="Framebuffer effects unavailable",null):(e.effectError=null,e.effectTargets={blurProgram:n,scratch:r,blur:i,bloom:null},e.effectTargets)}function dS(e,t){return t.bloom||(t.bloom=Fr(e.gl),e.effectError=t.bloom?null:"Framebuffer effects unavailable"),t.bloom}function Pm(e){let t=e.effectTargets;t?.bloom&&(ut(e.gl,t.bloom),t.bloom=null)}function fS(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=tS(t,e.program.quad),o=nS(t,e.program.quad),a=Fr(t,n.HALF_FLOAT_OES,t.NEAREST),u=Fr(t);return!i||!o||!a||!u?(mS(t,i,o,a,u),e.effectError="Kuwahara framebuffer effects unavailable",null):(e.kuwaharaTargets={horizontalProgram:i,resolveProgram:o,moments:a,output:u},e.kuwaharaTargets)}function mS(e,t,n,r,i){t&&e.deleteProgram(t.program),n&&e.deleteProgram(n.program),r&&ut(e,r),i&&ut(e,i)}function $m(e,t,n,r,i){let o=Math.max(1,Math.ceil(r)),a=Math.max(1,Math.ceil(i));return so(e,t,o,a),so(e,n,o,a),{width:o,height:a}}function uo(e,t,n,r,i,o,a,u=!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,u?1:0),e.uniform1f(t.threshold,s),Nr(e,t)}function pS(e,t,n,r,i,o,a){let u=$m(e,t.scratch,r,i/2,o/2),s=a/2;uo(e,t.blurProgram,n,t.scratch,u,{x:1,y:0},s,!0,.5),uo(e,t.blurProgram,t.scratch.texture,r,u,{x:0,y:1},s,!0)}function hS(e,t,n,r,i,o,a){let u=n;for(let s=0;s<Math.max(1,Math.floor(a));s++)uo(e,t.blurProgram,u,t.scratch,i,{x:1,y:0},o),uo(e,t.blurProgram,t.scratch.texture,r,i,{x:0,y:1},o),u=r.texture}function Nr(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 gS(e,t,n,r,i,o,a,u){so(e,t.moments,i.width,i.height),so(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,u.blur),e.uniform1f(s.radius,u.kuwaharaRadius),Nr(e,s);let l=t.resolveProgram;e.bindFramebuffer(e.FRAMEBUFFER,t.output.framebuffer),e.useProgram(l.program),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,t.moments.texture),e.uniform1i(l.moments,0),e.uniform2f(l.texel,1/i.width,1/i.height),e.uniform1f(l.radius,u.kuwaharaRadius),e.uniform1f(l.sharpness,u.kuwaharaSharpness),e.uniform1f(l.saturation,u.kuwaharaSaturation),Nr(e,l)}function bS(e,t,n,r){if(n<=0)return!1;let i=$m(e.gl,t.scratch,t.blur,r.width,r.height);return hS(e.gl,t,e.program.texture,t.blur,i,.75+Math.pow(n,1.35)*32,n>.55?3:2),!0}function xS(e,t,n,r,i,o){if(n<=0)return Pm(e),null;o||Pm(e);let a=o?dS(e,t):t.blur;return a?(pS(e.gl,t,e.program.texture,a,i.width,i.height,r),a.texture):null}function yS(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&&Ys(e),{blurReady:!1,bloomReady:!1,blurTexture:i.texture,bloomTexture:i.texture};let u=cS(e);if(!u)return{blurReady:!1,bloomReady:!1,blurTexture:i.texture,bloomTexture:i.texture};let s=bS(e,u,o,n),l=xS(e,u,a,t.effects.bloomRadius,n,s);return{blurReady:s,bloomReady:l!==null,blurTexture:u.blur.texture,bloomTexture:l??i.texture}}function vS(e,t,n,r,i,o,a){let u=t.effects.kuwahara;if(u<=0&&!o)return e.kuwaharaTargets&&a&&Js(e),{kuwaharaReady:!1,kuwaharaTexture:e.program.texture};let s=fS(e);return!s||u<=0?{kuwaharaReady:!1,kuwaharaTexture:s?.output.texture??e.program.texture}:(gS(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 qm(e,t,n,r,i={}){let o=i.releaseIdleTargets??!0;e.effectError=null;let a=yS(e,t,n,o),u=vS(e,t,n,r,a.blurReady,i.preserveKuwahara??!1,o);return{...a,...u}}function SS(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=Wm(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=Xs(t);return i.state==="ready"?Im(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||(Im(e,r.href,o),We(e))},o=>{e.destroyed||e.grading.lut?.src.trim()!==t||(e.lut=null,e.lutError=co(o),e.lutLoadingSrc=null,We(e))})),null)}function kr(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&&Kt(n))return n;try{let r=document.querySelector(t);return r&&Kt(r)?r:null}catch{return null}}if(e.hfId){let t=document.querySelector(`[data-hf-id="${CSS.escape(e.hfId)}"]`);if(t&&Kt(t))return t}if(e.id){let t=document.getElementById(e.id);if(t&&Kt(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&&Kt(r)?r:null}catch{return null}}function jm(e){return me(e)?e.videoWidth>0&&e.videoHeight>0?{width:e.videoWidth,height:e.videoHeight}:null:Le(e)&&e.naturalWidth>0&&e.naturalHeight>0?{width:e.naturalWidth,height:e.naturalHeight}:null}function Km(e){return me(e)?e.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&e.videoWidth>0&&e.videoHeight>0:Le(e)?e.complete&&e.naturalWidth>0&&e.naturalHeight>0:!1}function Xm(e){let t=_t(e);return t&&Km(t)?t:null}function Om(e){if(!me(e))return!1;let t=Xm(e);if(!t)return!1;let n=window.getComputedStyle(t);return n.display!=="none"&&n.visibility!=="hidden"}function AS(e){return Le(e)&&e.classList.contains("__render_frame__")}function ES(e,t){t.parentNode&&t.nextSibling!==e.canvas&&t.parentNode.insertBefore(e.canvas,t.nextSibling)}function Ym(e){if(me(e)){let t=Xm(e);if(t)return t}return Km(e)?e:null}function Hm(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 _S(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=Hm(o,"x"),u=Hm(o,"y");if(a!==null&&(o==="left"||o==="right"||o.endsWith("%")&&i===0)){n=a;continue}if(u!==null&&(o==="top"||o==="bottom"||o.endsWith("%")&&i>0)){r=u;continue}}return{x:n,y:r}}function Jm(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",u=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);u=n*f,s=r*f,a==="scale-down"&&u>n&&s>r&&(u=n,s=r)}else a==="none"&&(u=n,s=r);let l=_S(o||"center"),d=(e-u)*l.x/e,m=(t-s)*l.y/t;return{scaleX:u/e,scaleY:s/t,offsetX:d,offsetY:m}}function wS(e,t){window.getComputedStyle(t).position==="static"&&(e.touchedParent||(e.touchedParent=t,e.parentInlinePosition=t.style.position||null),t.style.position="relative")}function Gm(e,t){return Math.max(0,Math.round(e>0?e:t))}function CS(e,t){let{element:n,canvas:r}=e,i=n.parentElement;i&&wS(e,i);let o=window.getComputedStyle(t);xd(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(),u=Gm(n.offsetWidth,a.width),s=Gm(n.offsetHeight,a.height);if(u<=0||s<=0)return r.style.display="none",null;let l=Math.max(1,window.devicePixelRatio||1),d=Math.round(u*l),m=Math.round(s*l);return r.width!==d&&(r.width=d),r.height!==m&&(r.height=m),{width:d,height:m}}function wn(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 Xt(e,t,n,r){e.set(r,(t*it+n)*4)}function Nt(e,t){return Math.min(1,Math.max(1/255,(e*(127/t)+128)/255))}function $s(e,t,n){return e.length>=3?Fa(e,t,n):new Float32Array(it)}function jt(e,t){return e[t]??0}function RS(e,t,n){let r=hn(t.red),i=hn(t.green),o=hn(t.blue),a=hn(t.master),u=$s(n.hueVsHue,-180,180),s=$s(n.hueVsSaturation,-1,1),l=$s(n.hueVsLuma,-1,1);for(let d=0;d<it;d+=1)Xt(e,0,d,[jt(r,d),jt(i,d),jt(o,d),jt(a,d)]),Xt(e,1,d,[Nt(jt(u,d),180),Nt(jt(s,d),1),Nt(jt(l,d),1),1])}function TS(e,t,n){let r=n*qv;Xt(e,2,r,[t.key.hue.center/360,t.key.hue.range/180,t.key.hue.softness/180,1]),Xt(e,2,r+1,[t.key.saturation.min,t.key.saturation.max,t.key.saturation.softness/.5,0]),Xt(e,2,r+2,[t.key.luma.min,t.key.luma.max,t.key.luma.softness/.5,0]),Xt(e,2,r+3,[Nt(t.correction.hueShift,180),Nt(t.correction.saturation,1),Nt(t.correction.luma,1),Nt(t.correction.temperature,1)]),Xt(e,2,r+4,[Nt(t.correction.tint,1),.5,.5,1])}function kS(e,t,n){let r=new Float32Array(it*Dr*4);RS(r,e,t);let i=0;for(let o of n)o.enabled&&(TS(r,o,i),i+=1);return r}var Bm=new WeakMap;function MS(e,t,n){let r=Bm.get(e);if(r?.hueCurves===t&&r.secondaries===n)return r.signature;let i=JSON.stringify([e,t,n]);return Bm.set(e,{hueCurves:t,secondaries:n,signature:i}),i}function FS(e,t,n,r){let{curves:i,hueCurves:o}=n,a=MS(i,o,r);if(t.advancedSignature===a)return;let u=Uint8Array.from(kS(i,o,r),er);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,it,Dr,0,e.RGBA,e.UNSIGNED_BYTE,u),t.advancedSignature=a}function qs(e,t,n){e.uniform3f(t,n.hue/360,n.amount,n.level)}function Qm(e,t,n,r,i,o,a,u,s,l,d,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,l.scaleX,l.scaleY),e.uniform2f(t.uvOffset,l.offsetX,l.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:g}=n,y=Wa(f),x=Va(p),w=za(g)?g.reduce((N,O)=>N+Number(O.enabled),0):0;(y||x||w>0)&&FS(e,t,n,g),qs(e,t.shadowWheel,n.wheels.shadows),qs(e,t.midtoneWheel,n.wheels.midtones),qs(e,t.highlightWheel,n.wheels.highlights),e.uniform1f(t.rgbCurvesEnabled,y?1:0),e.uniform1f(t.hueCurvesEnabled,x?1:0),e.uniform1f(t.secondaryCount,w);for(let[N,O]of t.adjustUniforms)e.uniform1f(O,n.adjust[N]);for(let[N,O]of t.detailUniforms)e.uniform1f(O,n.details[N]);e.uniform1f(t.grainSeed,d),e.uniform1f(t.effectTime,m);for(let[N,O]of t.effectUniforms)e.uniform1f(O,n.effects[N]);let k=n.palette??(n.effects.engraving>0||n.effects.crosshatch>0?zv:Ws),C=k[k.length-1]??Ws[1];e.uniform1f(t.paletteSize,k.length),wn(e,t.palette0,k[0]??Ws[0]),wn(e,t.palette1,k[1]??C),wn(e,t.palette2,k[2]??C),wn(e,t.palette3,k[3]??C),wn(e,t.palette4,k[4]??C),wn(e,t.palette5,k[5]??C),e.uniform1f(t.intensity,n.intensity),e.uniform1f(t.compareEnabled,u.enabled?1:0),e.uniform1f(t.comparePosition,u.position),e.uniform1f(t.compareSoftness,u.softness),e.uniform1f(t.compareLineWidth,u.lineWidth)}function NS(e){if(!e.sourceHidden){let t=e.element.getAttribute(Li);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(rr,"true"),e.element.style.setProperty("opacity","0","important"),e.sourceHidden=!0}function xt(e){let t=fd.find(n=>n.path===e);if(!t)throw new Error(`Missing color-grading animation property: ${e}`);return t}var Zm=xt("intensity"),ep=xt("lut.intensity"),tp=xt("adjust.exposure"),np=xt("effects.kuwahara"),rp=[["blur",xt("effects.blur")],["bloom",xt("effects.bloom")],["kuwahara",np],["pixelate",xt("effects.pixelate")],["ascii",xt("effects.ascii")],["dither",xt("effects.dither")]],ip=[Zm,ep,tp,...rp.map(([,e])=>e)];function Yt(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 Mr(e,t){return t!==null&&(gd(t)||ip.some(n=>Yt(e,n)!==null))}function LS(e,t){let n=null;for(let[r,i]of rp){let o=Yt(e,i);o!==null&&(n??(n={...t.effects}),n[r]=o)}return n}function DS(e){let{element:t,grading:n}=e,r=Yt(t,Zm),i=Yt(t,ep),o=Yt(t,tp),a=LS(t,n);if(![r,i,o].some(l=>l!==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 op(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 ap(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 We(e){if(e.destroyed||e.contextLost)return!1;let t=Ym(e.element);if(!t)return e.hasDrawn||(e.canvas.style.display="none"),!1;let n=jm(t);if(!n)return!1;let r=he(t)?t:e.element,i=e.element.style.getPropertyValue("opacity"),o=e.element.style.getPropertyPriority("opacity"),a=e.sourceHidden&&i==="0"&&o==="important",u=e.element.style.getPropertyValue("visibility"),s=AS(t);s&&ES(e,t),a&&!s&&(e.sourceInlineOpacity!==null?e.element.style.setProperty("opacity",e.sourceInlineOpacity,e.sourceInlineOpacityPriority||""):e.element.style.removeProperty("opacity"));let l=window.getComputedStyle(s?t:e.element);e.sourceOpacityForCanvas=l.opacity||"1",a&&!s&&e.element.style.setProperty("opacity","0","important"),e.sourceVisibleForCanvas=(s||u!=="hidden")&&l.visibility!=="hidden";let d=CS(e,r);if(!d)return!1;let m=window.getComputedStyle(r),f=Jm(d.width,d.height,n.width,n.height,m.objectFit,m.objectPosition),{gl:p,program:g}=e;try{let y=DS(e),x=SS(e);op(p,g.texture,t);let w=Yt(e.element,np)!==null,k=qm(e,y,d,f,{preserveKuwahara:w});p.bindFramebuffer(p.FRAMEBUFFER,null),p.viewport(0,0,d.width,d.height),p.useProgram(g.program),ap(p,g,k);let C=window.__player?.getTime?.(),N=typeof C=="number"&&Number.isFinite(C)?Math.max(0,C):me(e.element)?Math.max(0,e.element.currentTime):0,O=e.grainSeed+Math.floor(N*60);return Qm(p,g,y,x,k.blurReady,k.bloomReady,k.kuwaharaReady,e.compare,d,f,O,N),Nr(p,g),NS(e),e.hasDrawn=!0,e.drawError=null,!0}catch(y){return e.drawError=y instanceof Error?y.message:"Shader draw failed",I("runtime.colorGrading.drawEntry",y),!1}}function IS(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))),u=i>0&&o>0?i/o:t.width/t.height;return u>=1?{width:a,height:Math.max(1,Math.round(a/u))}:{width:Math.max(1,Math.round(a*u)),height:a}}function PS(){let e=document.createElement("canvas"),t=Ks(e);return t?{canvas:e,...t,lut:null,effectTargets:null,kuwaharaTargets:null,effectError:null}:null}function OS(e,t){let n=t?void 0:window.__player?.getTime?.();return typeof n=="number"&&Number.isFinite(n)?Math.max(0,n):me(e)?Math.max(0,e.currentTime):0}function HS(e,t,n,r){let i=Ym(t);if(!i)return null;let o=jm(i);if(!o)return null;let a=IS(t,o,n);e.canvas.width=a.width,e.canvas.height=a.height;let u=he(i)?i:t,s=window.getComputedStyle(u),l=Jm(a.width,a.height,o.width,o.height,s.objectFit,s.objectPosition);return op(e.gl,e.program.texture,i),{dimensions:a,uv:l,effectTime:OS(t,r),grainSeed:Vm(t)+(me(t)?Math.floor(t.currentTime*60):0)}}async function GS(e,t,n,r,i=!1){let o=HS(e,t,r,i);if(!o)return null;let{dimensions:a,uv:u,grainSeed:s,effectTime:l}=o,d=[];for(let m of n.slice(0,32)){let f=Ii(m.grading);if(!f){d.push({id:m.id,dataUrl:null,error:"Invalid grading"});continue}let p=null;try{f.lut&&(e.lut?.src!==f.lut.src&&(e.lut=sS(e,f.lut.src,await aS(f.lut.src))),p=e.lut),d.push({id:m.id,dataUrl:BS(e,f,p,a,u,s,l)})}catch(g){d.push({id:m.id,dataUrl:null,error:co(g)})}}return{...a,images:d}}function BS(e,t,n,r,i,o,a){let{canvas:u,gl:s,program:l}=e,d=qm(e,t,r,i,{releaseIdleTargets:!1});return s.bindFramebuffer(s.FRAMEBUFFER,null),s.viewport(0,0,r.width,r.height),s.useProgram(l.program),ap(s,l,d),n||(e.lut=null),Qm(s,l,t,n,d.blurReady,d.bloomReady,d.kuwaharaReady,Cn,r,i,o,a),Nr(s,l),u.toDataURL("image/png")}function st(e,t,n,r){t.addEventListener(n,r),e.cleanup.push(()=>t.removeEventListener(n,r))}function US(e){e.animationFrame!==null&&(window.cancelAnimationFrame(e.animationFrame),e.animationFrame=null),e.videoFrameHandle!==null&&me(e.element)&&(e.element.cancelVideoFrameCallback?.(e.videoFrameHandle),e.videoFrameHandle=null)}function Lr(e){if(e.destroyed||!me(e.element)||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,We(e),!e.destroyed&&!t.paused&&!t.ended&&Lr(e)});return}e.animationFrame=window.requestAnimationFrame(()=>{e.animationFrame=null,We(e),!e.destroyed&&!t.paused&&!t.ended&&Lr(e)})}function WS(e){let t=()=>{We(e)};if(st(e,e.element,"load",t),st(e,e.element,"loadedmetadata",t),st(e,e.element,"loadeddata",t),st(e,e.element,"seeked",t),st(e,e.element,"timeupdate",t),st(e,window,"resize",t),me(e.element)&&(st(e,e.element,"play",()=>Lr(e)),st(e,e.element,"pause",t)),st(e,e.canvas,"webglcontextlost",n=>{n.preventDefault(),e.contextLost=!0,e.drawError="WebGL context lost",e.canvas.style.display="none",js(e)}),st(e,e.canvas,"webglcontextrestored",()=>{if(e.contextLost=!1,!lS(e)){e.contextLost=!0,e.drawError="WebGL context restore failed",js(e);return}e.drawError=null,We(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(),We(e)}))});o.observe(e.element,{attributes:!0,attributeFilter:["style"]}),e.cleanup.push(()=>o.disconnect())}}function VS(e){if(e.destroyed)return null;e.destroyed=!0,US(e),e.resizeObserver?.disconnect();for(let t of e.cleanup)t();return e.cleanup.length=0,e.canvas.remove(),Ys(e),Js(e),js(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 sp(e,t){return e.removeAttribute("style"),t.id?e.id=`${sd}${t.id}`:e.removeAttribute("id"),e.className=Uv,e.setAttribute(Bv,"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 zS(e){return sp(document.createElement("canvas"),e)}function up(e){let t=new WeakMap,n=new Set,r=[],i=null,o=null,a=Promise.resolve(),u=!1,s=(v,S,E)=>{let T=t.get(v);if(T)return T.grading=S,T.source=E,We(T),me(v)&&!v.paused&&Lr(T),!0;let L=r.pop();if(L)sp(L.canvas,v);else{let z=zS(v),Y=Ks(z);if(!Y)return z.remove(),!1;L={canvas:z,gl:Y.gl,program:Y.program,effectTargets:null,kuwaharaTargets:null,effectError:null}}let H={element:v,...L,grading:S,compare:{...Cn},lut:null,lutLoadingSrc:null,lutError:null,drawError:null,effectTargets:null,kuwaharaTargets:null,effectError:null,source:E,animationFrame:null,videoFrameHandle:null,resizeObserver:null,cleanup:[],touchedParent:null,parentInlinePosition:null,sourceHidden:!1,sourceInlineOpacity:null,sourceInlineOpacityPriority:"",sourceOpacityForCanvas:window.getComputedStyle(v).opacity||"1",sourceVisibleForCanvas:window.getComputedStyle(v).visibility!=="hidden",hasDrawn:!1,contextLost:!1,grainSeed:Vm(v),destroyed:!1};return t.set(v,H),n.add(v),WS(H),We(H),me(v)&&!v.paused&&Lr(H),!0},l=(v,S)=>{if(u)return!1;let E=kr(v);if(!E)return!1;let T=t.get(E);if(!T){let L=io(E);if(!Mr(E,L)||!s(E,L,"attribute"))return!1;T=t.get(E)}return T?(T.compare=iS(S),We(T),!0):!1},d=v=>{let S=t.get(v);if(!S)return;let E=VS(S);E&&(S.contextLost||r.length>=Vv?ao(E,!0):r.push(E)),t.delete(v),n.delete(v)},m=()=>{if(u)return 0;let v=new Set;document.querySelectorAll(`video[${nr}], img[${nr}]`).forEach(E=>{if(!Kt(E))return;v.add(E);let T=io(E);Mr(E,T)&&(Nm(E)||Om(E))?s(E,T,"attribute"):d(E)});for(let E of n){let T=t.get(E);T&&(!E.isConnected||T.source==="attribute"&&!v.has(E))&&d(E)}return n.size},f=()=>{if(u)return 0;let v=0;for(let S of n){let E=t.get(S);E&&We(E)&&(v+=1)}return v},p=async()=>{let v=new Set;for(let S of n){let E=t.get(S)?.grading.lut;if(!E?.src.trim()||(E.intensity??1)<=0)continue;let T=Xs(E.src);T.state==="pending"&&v.add(T.promise)}return v.size>0&&await Promise.allSettled(v),f(),v.size},g=()=>{if(u)return 0;let v=0;for(let S of n){let E=t.get(S);!E||!ip.some(L=>Yt(S,L)!==null)||me(S)&&!S.paused&&!S.ended||We(E)&&(v+=1)}return v},y=(v,S)=>{if(u)return!1;let E=kr(v);if(!E)return!1;let T=Ii(S);return Mr(E,T)?s(E,T,"live"):(d(E),!0)},x=(v,S)=>{if(!Kt(v))return!1;let E=t.get(v);if(!E){if(!S)return!1;let T=io(v);return Mr(v,T)&&s(v,T,"attribute")}return E.sourceVisibleForCanvas=S,!S&&E.source==="attribute"&&d(v),!0},w=v=>{let S=kr(v);if(!S)return{state:"missing",message:"Media not found"};let E=t.get(S);if(E)return E.effectError?{state:"unavailable",message:E.effectError}:E.drawError?{state:"unavailable",message:E.drawError}:E.lutError?{state:"unavailable",message:`LUT error: ${E.lutError}`}:E.grading.lut&&E.lutLoadingSrc?{state:"pending",message:"Loading LUT"}:E.canvas.style.display==="none"?{state:"pending",message:"Waiting for media frame"}:{state:"active",message:E.lut?"Shader + LUT active":"Shader active"};let T=io(S);return Mr(S,T)?!Nm(S)&&!Om(S)?{state:"pending",message:"Waiting for visible media"}:{state:"unavailable",message:"WebGL unavailable"}:{state:"inactive",message:"No grading applied"}},k=async(v,S,E)=>{let T=async()=>{if(u||S.length===0)return null;let H=kr(v);return!H||(o??(o=PS()),!o)?null:GS(o,H,S,E?.maxDimension,E?.useMediaTime)},L=a.then(T,T);return a=L.then(()=>{},()=>{}),L},C=v=>{let S=kr(v);if(!me(S))return null;if(!S.paused)return()=>{};let E=S.currentTime,T=S.loop,L=S.muted;return S.loop=!0,S.muted=!0,(S.ended||Number.isFinite(S.duration)&&E>=S.duration)&&(S.currentTime=0),e?.lease(S),S.play().catch(()=>{}),()=>{e?.release(S),S.pause(),S.loop=T,S.muted=L,S.currentTime=E}},N=()=>{if(!u){u=!0,i?.disconnect(),i=null;for(let v of n)d(v);for(let v of r)ao(v,!0);r.length=0,o&&(ao(o,!0),o=null)}};document.body&&(i=new MutationObserver(()=>m()),i.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[nr]}));let O={refresh:m,redraw:f,redrawAnimated:g,waitForActiveLuts:p,setGrading:y,setCompare:l,setSourceVisibility:x,getStatus:w,renderPreviews:k,startPreviewPlayback:C,destroy:N},F=window;return F.__hf=F.__hf||{},F.__hf.colorGrading=O,m(),O}var $S={mulX:374761393,mulY:668265263,mulMix:1274126177,offset:2654435769,shift1:13,shift2:16,divisor:4294967296},{mulX:qS,mulY:jS,mulMix:lp,offset:KS,shift1:XS,shift2:YS,divisor:JS}=$S,QS=20,cp=`#version 300 es\nprecision highp float;\nprecision highp int;\n\nin vec2 v_uv;\nout vec4 fragColor;\n\nuniform vec2 u_size;\nuniform float u_t;\nuniform float u_fps;\nuniform float u_fractalType;\nuniform float u_noiseType;\nuniform float u_invert;\nuniform float u_contrast;\nuniform float u_brightness;\nuniform float u_scale;\nuniform float u_complexity;\nuniform float u_subInfluence;\nuniform float u_subScaling;\nuniform float u_evolution;\nuniform float u_randomSeed;\nuniform float u_opacity;\n\nfloat hfHashUnit(int ix, int iy, int seed) {\n uint h = ((uint(ix) * ${qS}u) ^ (uint(iy) * ${jS}u) ^ (uint(seed) * ${lp}u)) + ${KS}u;\n h = h ^ (h >> ${XS}u);\n h = h * ${lp}u;\n h = h ^ (h >> ${YS}u);\n return float(h) / ${JS}.0;\n}\n\nfloat hfFade(float f, float noiseType) {\n if (noiseType < 1.5) return 0.0;\n if (noiseType < 2.5) return f;\n if (noiseType < 3.5) return f * f * (3.0 - 2.0 * f);\n return f * f * f * (f * (f * 6.0 - 15.0) + 10.0);\n}\n\nfloat hfValueNoise(vec2 p, int seed) {\n vec2 cell = floor(p);\n vec2 f = p - cell;\n int ix = int(cell.x);\n int iy = int(cell.y);\n float sx = hfFade(f.x, u_noiseType);\n float sy = hfFade(f.y, u_noiseType);\n float bottom = mix(hfHashUnit(ix, iy, seed), hfHashUnit(ix + 1, iy, seed), sx);\n float top = mix(hfHashUnit(ix, iy + 1, seed), hfHashUnit(ix + 1, iy + 1, seed), sx);\n return mix(bottom, top, sy);\n}\n\nfloat hfFbm(vec2 p) {\n float lacunarity = 100.0 / max(u_subScaling, 1.0);\n float gain = u_subInfluence / 100.0;\n int seed = int(u_randomSeed);\n float amp = 1.0;\n float freq = 1.0;\n float sum = 0.0;\n float norm = 0.0;\n for (int i = 0; i < ${QS}; i++) {\n if (float(i) >= u_complexity) break;\n sum += amp * hfValueNoise(p * freq, seed + i);\n norm += amp;\n amp *= gain;\n freq *= lacunarity;\n }\n return norm > 0.0 ? sum / norm : 0.0;\n}\n\nvoid main() {\n vec2 px = v_uv * u_size;\n vec2 p = px / max(u_scale, 1.0) + vec2(u_evolution, u_evolution * 0.5);\n float v = hfFbm(p);\n v = (v - 0.5) * (u_contrast / 100.0) + 0.5 + u_brightness / 100.0;\n if (u_invert > 0.5) v = 1.0 - v;\n v = clamp(v, 0.0, 1.0);\n float a = clamp(u_opacity / 100.0, 0.0, 1.0);\n fragColor = vec4(v * a, v * a, v * a, a);\n}\n`;var ZS={lumaR:.299,lumaG:.587,lumaB:.114},{lumaR:e1,lumaG:t1,lumaB:n1}=ZS,dp=`#version 300 es\nprecision highp float;\n\nin vec2 v_uv;\nout vec4 fragColor;\n\nuniform vec2 u_size;\nuniform float u_t;\nuniform float u_fps;\nuniform sampler2D u_src;\nuniform float u_useH;\nuniform float u_maxH;\nuniform float u_useV;\nuniform float u_maxV;\nuniform float u_behavior;\nuniform float u_edge;\nuniform float u_expand;\n\nvec4 hfSampleSrc(vec2 uv) {\n if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) return vec4(0.0);\n return texture(u_src, uv);\n}\n\n// The selector\'s value, in [0, 1]. Half and Off both land on 0.5, which is the\n// "no displacement" midpoint the caller subtracts.\nfloat hfMapChannel(vec4 premultiplied, float selector) {\n vec3 rgb = premultiplied.a > 0.0 ? premultiplied.rgb / premultiplied.a : vec3(0.0);\n if (selector < 1.5) return rgb.r;\n if (selector < 2.5) return rgb.g;\n if (selector < 3.5) return rgb.b;\n if (selector < 4.5) return premultiplied.a;\n if (selector < 8.5) return dot(rgb, vec3(${e1}, ${t1}, ${n1}));\n if (selector < 9.5) return 1.0;\n return 0.5;\n}\n\nvoid main() {\n vec4 mapTexel = texture(u_src, v_uv);\n float h = hfMapChannel(mapTexel, u_useH);\n float v = hfMapChannel(mapTexel, u_useV);\n vec2 d = vec2((h - 0.5) * 2.0 * u_maxH, (v - 0.5) * 2.0 * u_maxV);\n fragColor = hfSampleSrc(v_uv + d / u_size);\n}\n`;var r1={tau:6.283185307179586,degreesPerTurn:360},{tau:i1,degreesPerTurn:o1}=r1,fp=`#version 300 es\nprecision highp float;\n\nin vec2 v_uv;\nout vec4 fragColor;\n\nuniform vec2 u_size;\nuniform float u_t;\nuniform float u_fps;\nuniform sampler2D u_src;\nuniform float u_waveType;\nuniform float u_height;\nuniform float u_width;\nuniform float u_direction;\nuniform float u_speed;\nuniform float u_pinning;\nuniform float u_phase;\n\n// Outside the layer\'s own box there is nothing to warp in from, so the wave\n// carries transparency rather than a smeared edge pixel.\nvec4 hfSampleSrc(vec2 uv) {\n if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) return vec4(0.0);\n return texture(u_src, uv);\n}\n\nvoid main() {\n vec2 px = v_uv * u_size;\n float dir = radians(u_direction);\n vec2 travel = vec2(sin(dir), -cos(dir));\n vec2 swing = vec2(-travel.y, travel.x);\n float proj = (px.x + 1.0) * travel.x + px.y * travel.y;\n float turns = proj / max(u_width, 1.0) + u_phase / ${o1}.0 + u_speed * u_t;\n float disp = u_height * sin(${i1} * turns);\n fragColor = hfSampleSrc((px + swing * disp) / u_size);\n}\n`;var Qs="data-vfx-chain",mp=1,pp=[{value:1,label:"Red"},{value:2,label:"Green"},{value:3,label:"Blue"},{value:4,label:"Alpha"},{value:5,label:"Luminance"},{value:6,label:"Hue"},{value:7,label:"Lightness"},{value:8,label:"Saturation"},{value:9,label:"Full"},{value:10,label:"Half"},{value:11,label:"Off"}],a1=[{id:"fractal-noise",label:"Fractal Noise",ae:"ADBE Fractal Noise",capture:"none",frag:cp,params:[{kind:"enum",key:"fractalType",label:"Fractal Type",options:[{value:1,label:"Basic"}],default:1,hint:"Only Basic is implemented in v1."},{kind:"enum",key:"noiseType",label:"Noise Type",options:[{value:1,label:"Block"},{value:2,label:"Linear"},{value:3,label:"Soft Linear"},{value:4,label:"Spline"}],default:3},{kind:"bool",key:"invert",label:"Invert",default:!1},{kind:"number",key:"contrast",label:"Contrast",unit:"%",min:0,max:1e3,step:1,default:100},{kind:"number",key:"brightness",label:"Brightness",unit:"",min:-1e3,max:1e3,step:1,default:0},{kind:"number",key:"scale",label:"Scale",unit:"%",min:6,max:1e4,step:1,default:100},{kind:"number",key:"complexity",label:"Complexity",unit:"",min:1,max:20,step:1,default:6},{kind:"number",key:"subInfluence",label:"Sub Influence",unit:"%",min:0,max:100,step:1,default:70},{kind:"number",key:"subScaling",label:"Sub Scaling",unit:"%",min:0,max:100,step:1,default:56},{kind:"number",key:"evolution",label:"Evolution",unit:"revolutions",min:-1e4,max:1e4,step:.01,default:0,animatable:!0},{kind:"number",key:"randomSeed",label:"Random Seed",unit:"",min:0,max:99999,step:1,default:0},{kind:"number",key:"opacity",label:"Opacity",unit:"%",min:0,max:100,step:1,default:100,animatable:!0}]},{id:"wave-warp",label:"Wave Warp",ae:"ADBE Wave Warp",capture:"self",frag:fp,params:[{kind:"enum",key:"waveType",label:"Wave Type",options:[{value:1,label:"Sine"}],default:1,hint:"Only Sine is implemented in v1; the exporter marks the others cosmetic."},{kind:"number",key:"height",label:"Wave Height",unit:"px",min:-1e3,max:1e3,step:1,default:10,animatable:!0},{kind:"number",key:"width",label:"Wave Width",unit:"px",min:1,max:1e4,step:1,default:40,animatable:!0},{kind:"number",key:"direction",label:"Direction",unit:"deg",min:-360,max:360,step:1,default:90},{kind:"number",key:"speed",label:"Wave Speed",unit:"waves/s",min:-100,max:100,step:.1,default:1},{kind:"enum",key:"pinning",label:"Pinning",options:[{value:1,label:"None"}],default:1,hint:"Only None is implemented in v1; the exporter marks the others cosmetic."},{kind:"number",key:"phase",label:"Phase",unit:"deg",min:-360,max:360,step:1,default:0,animatable:!0}]},{id:"displacement-map",label:"Displacement Map",ae:"ADBE Displacement Map",capture:"self",frag:dp,params:[{kind:"enum",key:"useH",label:"Use For Horizontal Displacement",options:pp,default:1,hint:"Hue, Lightness and Saturation are read as Luminance in v1."},{kind:"number",key:"maxH",label:"Max Horizontal Displacement",unit:"px",min:-32e3,max:32e3,step:1,default:5,animatable:!0},{kind:"enum",key:"useV",label:"Use For Vertical Displacement",options:pp,default:2,hint:"Hue, Lightness and Saturation are read as Luminance in v1."},{kind:"number",key:"maxV",label:"Max Vertical Displacement",unit:"px",min:-32e3,max:32e3,step:1,default:5,animatable:!0},{kind:"enum",key:"behavior",label:"Displacement Map Behavior",options:[{value:1,label:"Center Map"}],default:1,hint:"Only Center Map is implemented in v1."},{kind:"enum",key:"edge",label:"Edge Behavior",options:[{value:0,label:"Off"}],default:0,hint:"Only Off (transparent outside the layer) is implemented in v1."},{kind:"bool",key:"expand",label:"Expand Output",default:!0}]}],fo=new Map(a1.map(e=>[e.id,e]));function bp(e){return fo.get(e)}function xp(e,t){let n=fo.get(e);if(!n)return{};let r={};for(let i of n.params){let o=t?.[i.key];r[i.key]=i.kind==="enum"?s1(i,o):i.kind==="bool"?u1(i,o):i.kind==="ref"?l1(o):c1(i,o)}return r}function yp(e){let t=typeof e=="number"?e:typeof e=="string"&&e.trim()!==""?Number(e):Number.NaN;return Number.isFinite(t)?t:void 0}function s1(e,t){let n=yp(t);return n!==void 0&&e.options.some(r=>r.value===n)?n:e.default}function u1(e,t){return typeof t=="boolean"?t:e.default}function l1(e){return typeof e=="string"?e:""}function c1(e,t){let n=yp(t);return n!==void 0?Math.min(e.max,Math.max(e.min,n)):e.default}var Ye=class extends Error{constructor(t){super(t),this.name="VfxChainError"}};function Zs(e){return e.nodes.filter(t=>t.enabled!==!1)}var hp={none:0,self:1,backdrop:2};function vp(e){let t="none";for(let n of Zs(e)){let r=fo.get(n.type);r&&hp[r.capture]>hp[t]&&(t=r.capture)}return t}function Sp(e){let t;try{t=JSON.parse(e)}catch(i){throw new Ye(`Chain file is not valid JSON: ${i.message}`)}if(typeof t!="object"||t===null)throw new Ye("Chain file must be a JSON object.");let n=t;if(n.version!==mp)throw new Ye(`Unsupported chain version: ${String(n.version)}`);if(!Array.isArray(n.nodes))throw new Ye("Chain file is missing a `nodes` array.");let r=n.nodes.map(m1);return{version:mp,nodes:r}}function gp(e){return typeof e=="object"&&e!==null}function d1(e,t){if(typeof e.type!="string"||!fo.has(e.type))throw new Ye(`Node ${t} has unknown effect type: ${String(e.type)}`);return e.type}function f1(e,t){if(typeof e.id!="string"||e.id==="")throw new Ye(`Node ${t} is missing an id.`);return e.id}function m1(e,t){if(!gp(e))throw new Ye(`Node ${t} is not an object.`);let n=e,r=d1(n,t),i=f1(n,t),o=gp(n.params)?n.params:{};return p1({type:r,id:i,enabled:n.enabled===!1?!1:void 0,params:o})}function p1(e){for(let t of Object.keys(e))e[t]===void 0&&delete e[t];return e}var h1="[HyperFrames] composition script error:",g1={preserveDrawingBuffer:!0,antialias:!1,premultipliedAlpha:!0,alpha:!0},b1=`#version 300 es\nout vec2 v_uv;\nvoid main() {\n vec2 p = vec2(float((gl_VertexID << 1) & 2), float(gl_VertexID & 2));\n v_uv = p;\n gl_Position = vec4(p * 2.0 - 1.0, 0.0, 1.0);\n}\n`,Lt=[],wp=30,Cp=0,nu=0,Rp=-1,eu=null,tu=null;function Je(e){console.error(h1,`vfx: ${e}`)}function Ap(e,t,n){let r=e.createShader(t);return r?(e.shaderSource(r,n),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)?r:(Je(`shader failed to compile: ${e.getShaderInfoLog(r)??"(no log)"}`),e.deleteShader(r),null)):null}function x1(e,t){let n=Ap(e,e.VERTEX_SHADER,b1),r=n?Ap(e,e.FRAGMENT_SHADER,t):null;if(!n||!r)return 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:(Je(`program failed to link: ${e.getProgramInfoLog(i)??"(no log)"}`),e.deleteProgram(i),null)):null}var Ep="position:absolute;inset:0;width:100%;height:100%;pointer-events:none;";function y1(e){let t=e.querySelector("canvas.hf-vfx-out");if(Qo(t))return t.style.cssText=Ep+t.style.cssText,t;let n=document.createElement("canvas");return n.className="hf-vfx-out",n.style.cssText=Ep,e.appendChild(n),n}function v1(e,t,n){let r={};for(let i of n.params)i.kind!=="ref"&&(r[i.key]=e.getUniformLocation(t,`u_${i.key}`));return{size:e.getUniformLocation(t,"u_size"),t:e.getUniformLocation(t,"u_t"),fps:e.getUniformLocation(t,"u_fps"),src:e.getUniformLocation(t,"u_src"),params:r}}function S1(e,t){let n=[];for(let r of Zs(t)){let i=bp(r.type);if(!i)return Je(`node "${r.id}" has unknown effect type "${r.type}"`),null;let o=x1(e,i.frag);if(!o)return Je(`node "${r.id}" (${i.id}) has no usable program`),null;n.push({node:r,def:i,program:o,params:xp(i.id,r.params),locations:v1(e,o,i)})}return n}function A1(e){let t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),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),t}function E1(e,t){let n=e.querySelector("canvas.hf-vfx-src"),r=n?.querySelector(".hf-vfx-in");if(!Qo(n)||!he(r)){Je(`${Jt(e)}: a capturing chain needs <canvas layoutsubtree class="hf-vfx-src"><div class="hf-vfx-in">\\u2026</div></canvas> in source.`);return}let i=n.getContext("2d");if(!i||typeof i.drawElementImage!="function"){Je(`${Jt(e)}: drawElementImage is unavailable, so the layer cannot be captured. In Studio, enable chrome://flags/#canvas-draw-element.`);return}return{canvas:n,inner:r,ctx:i,texture:A1(t)}}function _1(e){e.out.addEventListener("webglcontextlost",t=>{t.preventDefault(),!(!Lt.includes(e)||e.contextLost)&&(e.contextLost=!0,Je(`${Jt(e.host)}: WebGL context lost.`))})}function w1(e){let t;try{t=Sp(e.getAttribute(Qs)??"")}catch(s){let l=s instanceof Ye?s.message:String(s);return Je(`${Jt(e)}: ${l}`),null}let n=y1(e),r=n.getContext("webgl2",g1);if(!r)return Je(`${Jt(e)}: WebGL2 is unavailable, so the chain cannot paint.`),n.remove(),null;let i=S1(r,t);if(!i)return n.remove(),null;let o=vp(t),a=o==="none"?void 0:E1(e,r);if(o!=="none"&&!a)return n.remove(),null;let u={host:e,chain:t,capture:o,out:n,gl:r,passes:i,src:a,contextLost:!1};return _1(u),u}function Tp(e){let t=getComputedStyle(e);return t.display!=="none"&&t.visibility!=="hidden"}function Jt(e){return e.id?`#${e.id}`:`<${e.tagName.toLowerCase()}>`}function C1(){for(let e of Lt){let{gl:t}=e;for(let n of e.passes)t.deleteProgram(n.program);if(e.src&&t.deleteTexture(e.src.texture),!!e.ping){for(let n of e.ping.textures)t.deleteTexture(n);for(let n of e.ping.framebuffers)t.deleteFramebuffer(n)}}}function ru(e,t){C1(),Lt=[],wp=Number.isFinite(t)&&t>0?t:30;let n=e.querySelectorAll(`[${Qs}]`);for(let r of n){if(!he(r))continue;let i=w1(r);i&&Lt.push(i)}return Lt}function kp(e){let t=typeof window>"u"?1:window.devicePixelRatio||1,n=Math.round(e.offsetWidth*t),r=Math.round(e.offsetHeight*t);return n>0&&r>0?{width:n,height:r}:null}function _p(e,t,n){let r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,t,n,0,e.RGBA,e.UNSIGNED_BYTE,null),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),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);let i=e.createFramebuffer();return e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0),[r,i]}function R1(e,t,n){let r=e.ping;if(r&&r.width===t&&r.height===n)return r;let{gl:i}=e;if(r){for(let s of r.textures)i.deleteTexture(s);for(let s of r.framebuffers)i.deleteFramebuffer(s)}let o=_p(i,t,n),a=_p(i,t,n),u={textures:[o[0],a[0]],framebuffers:[o[1],a[1]],width:t,height:n};return e.ping=u,u}function T1(e,t,n){if(e.kind==="ref")return null;if(e.kind==="number"&&e.animatable){let i=n.getPropertyValue(`--vfx-${t.node.id}-${e.key}`).trim(),o=i===""?Number.NaN:Number.parseFloat(i);if(Number.isFinite(o))return Math.min(e.max,Math.max(e.min,o))}let r=t.params[e.key];return typeof r=="boolean"?r?1:0:typeof r=="number"?r:0}function k1(e,t,n,r,i,o){let{gl:a}=e,{locations:u}=t;a.uniform2f(u.size,i,o),a.uniform1f(u.t,r),a.uniform1f(u.fps,wp);for(let s of t.def.params){let l=T1(s,t,n);l!==null&&a.uniform1f(u.params[s.key]??null,l)}}function M1(e,t,n,r){let{gl:i}=e;i.bindFramebuffer(i.FRAMEBUFFER,t===n||!r?null:r.framebuffers[t%2]??null);let o=t===0?e.src?.texture??null:r&&r.textures[(t-1)%2];o&&(i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,o),i.uniform1i(e.passes[t].locations.src,0))}function iu(e,t){let n=kp(e.host);if(!n)return;let{gl:r,out:i,passes:o}=e;i.width!==n.width&&(i.width=n.width),i.height!==n.height&&(i.height=n.height);let a=o.length>1?R1(e,n.width,n.height):null,u=getComputedStyle(e.host),s=o.length-1;for(let l=0;l<=s;l++){let d=o[l];r.useProgram(d.program),M1(e,l,s,a),r.viewport(0,0,n.width,n.height),k1(e,d,u,t,n.width,n.height),r.drawArrays(r.TRIANGLES,0,3)}}function F1(e,t){e.bindTexture(e.TEXTURE_2D,t.texture),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,1),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.canvas),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,0),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,0)}function Mp(e,t=!1){let n=e.src,r=kp(e.host);if(!n||!r)return!1;n.canvas.width!==r.width&&(n.canvas.width=r.width),n.canvas.height!==r.height&&(n.canvas.height=r.height),n.ctx.clearRect(0,0,r.width,r.height);try{n.ctx.drawElementImage(n.inner,0,0,r.width,r.height)}catch(i){return t||Je(`${Jt(e.host)}: drawElementImage failed: ${i.message} In Studio, enable chrome://flags/#canvas-draw-element.`),!1}return F1(e.gl,n),n.ctx.clearRect(0,0,r.width,r.height),!0}function N1(){let e=!1;for(let t of Lt)t.contextLost||!t.src||!Tp(t.host)||Mp(t)&&(iu(t,Cp),e=!0);return Rp=nu,window.__hf_page_composite_pending=!1,e}function L1(){let e=window,t=e.__hf_page_composite_resolve;t!==eu&&(tu=typeof t=="function"?t:null,eu=()=>{let n=tu?tu():!1;return N1()||n},e.__hf_page_composite_resolve=eu),e.__hf_page_composite_pending=!0}var Fp=2e3;function D1(e){return new Promise(t=>{let n=!1,r=a=>{n||(n=!0,clearTimeout(o),e.removeEventListener("paint",i),t(a))},i=()=>r("painted"),o=setTimeout(()=>r("timeout"),Fp);e.addEventListener("paint",i,{once:!0});try{e.requestPaint?.()}catch{}if(typeof requestAnimationFrame!="function"){r("painted");return}requestAnimationFrame(()=>requestAnimationFrame(()=>r("painted")))})}async function I1(e,t,n,r){if(await D1(e.src.canvas)==="timeout"){Je(`${Jt(e.host)}: no paint arrived within ${Fp}ms, so this frame\'s capture was skipped (a BeginFrame-controlled compositor without a tick for this frame is a known cause).`);return}n!==nu||Rp===n||!Lt.includes(e)||e.contextLost||Mp(e,r)&&iu(e,t)}async function P1(e,t,n,r){await Promise.all(e.map(i=>I1(i,t,n,r)))}function ou(e,t){Cp=e;let n=++nu,r=[];for(let i of Lt)i.contextLost||Tp(i.host)&&(i.src?r.push(i):iu(i,e));r.length!==0&&(t?.engineMode&&L1(),ia(P1(r,e,n,t?.engineMode===!0)))}var O1=500,H1=33,mo=class{constructor(t){ue(this,"_baseTime",0);ue(this,"_playStartMs",null);ue(this,"_rate",1);ue(this,"_duration",1/0);ue(this,"_nowMs");ue(this,"_audioSource",null);ue(this,"_lastReadMs",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,rate:u}=this._audioSource;!i.paused&&Number.isFinite(i.currentTime)&&(r=typeof u=="object"?un(u,i.currentTime-a)+o:(i.currentTime-a)/(i.playbackRate>0?i.playbackRate:1)*this._rate+o)}if(r!==null)return this._lastReadMs=null,Number.isFinite(this._duration)&&r>=this._duration?this._duration:Math.max(0,r)}this._applyStallCorrection();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)}_applyStallCorrection(){if(this._playStartMs===null)return;let t=this._nowMs();if(this._lastReadMs!==null){let n=t-this._lastReadMs;n>O1&&(this._playStartMs+=n-H1)}this._lastReadMs=t}play(){return this._playStartMs!==null||Number.isFinite(this._duration)&&this._baseTime>=this._duration?!1:(this._playStartMs=this._nowMs(),this._lastReadMs=null,!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(),this._lastReadMs=null)}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._lastReadMs=null),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._lastReadMs=null),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 G1=100,B1=8,U1=4096,au=e=>e;function W1(e,t,n){return!(!!e.curve||e.viaX!==void 0&&e.viaY!==void 0)&&t==="linear"&&!n}function V1(e){let t=Math.ceil(e*G1);return Math.min(U1,Math.max(B1,t))}function z1(e,t,n,r,i){let{scheduledAt:o,elapsed:a,rate:u}=r,s=i??au,l=k=>o+(k-a)/u,d=e.points[t],m=e.points[t+1],f=l(m.t);if(f<=o)return null;let p=Math.max(o,l(d.t)),g=f-p;if(g<=0)return null;if(W1(d,n,i))return{kind:"ramp",time:f,value:s(m.v)};let y=V1(g),x=pc(e,Math.max(d.t,a),m.t,y,n),w=new Float32Array(y);for(let k=0;k<y;k+=1)w[k]=s(x[k]??0);return{kind:"curve",time:p,duration:g,values:w}}function $1(e,t,n,r){let i=[];for(let a=0;a+1<e.points.length;a+=1){let u=z1(e,a,t,n,r);u&&i.push(u)}let o=i[0];return o?.kind==="curve"&&o.time<=n.scheduledAt||i.unshift({kind:"set",time:n.scheduledAt,value:(r??au)(pt(e,n.elapsed,t))}),i}function q1(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 Ir(e){for(let t of e)t.param.cancelScheduledValues(0)}function Rn(e,t){for(let n of e)typeof n.param.cancelAndHoldAtTime=="function"?n.param.cancelAndHoldAtTime(t):n.param.cancelScheduledValues(t)}function su(e,t,n,r){if(t.points.length!==0)for(let i of e){if(Ir([i]),mc(t)){let o=(i.map??au)(t.points[0].v);i.param.setValueAtTime(o,r.scheduledAt);continue}q1(i.param,$1(t,n,r,i.map))}}function Np(e,t,n,r,i){let o=new Map(n.filter(u=>u.id).map(u=>[u.id,u.handle])),a=[];for(let u of e.lanes){let s=Yn(u.target);if(!s)continue;let l=s.kind==="preset"?i?.[s.presetId]:s.kind==="fx"?o.get(s.nodeId)?.automation?.[s.param]:void 0;if(!l||l.length===0)continue;let d=pa(u.target,t);d&&(su(l,u,d.scale,r),a.push(...l))}return a}function Lp(e){return e.lanes.find(t=>t.target===sn)??null}var j1=`\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`,uu=new WeakMap;function lu(e){return Dp.has(e)}var Dp=new WeakSet;function cu(e){let t=uu.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(j1)))}`;await e.audioWorklet.addModule(n),Dp.add(e)})().catch(n=>{throw uu.delete(e),n}),uu.set(e,t)),t}function K1(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,u=()=>(a=a*1664525+1013904223>>>0,a/4294967295*2-1),s=Math.max(.001,1-Math.max(0,Math.min(1,n))),l=0,d=0;for(let f=0;f<i;f++){l+=s*(u()-l);let p=l*Math.pow(1-f/i,2.5);o[f]=p,d+=p*p}let m=Math.sqrt(d);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),du=e=>e/1e3;function Hp(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 l=0;l<i;l++){let d=l/i;a[l]=t==="sine"?Math.sin(2*Math.PI*d):4*Math.abs((d+.75)%1-.5)-1}let u=e.createBufferSource();u.buffer=o,u.loop=!0,u.playbackRate.value=n;let s=(r*n%1+1)%1*(i/e.sampleRate);return u.start(typeof e.currentTime=="number"?e.currentTime:0,s),u}function Gp(e){try{e.stop()}catch{}e.disconnect()}function fu(e,t){return[{param:e},{param:t,map:n=>1-n}]}function Bp(e,t,n){e.gain.value=n,t.gain.value=1-n}function mu(e,t,n){return{input:e,output:e,update:t,automation:n,dispose:()=>e.disconnect()}}var X1=new Set(["peaking","highpass","lowpass"]),Ip=e=>Math.pow(10,e/20),Y1=(e,t)=>{let n=e.createGain(),r=i=>{n.gain.value=Ip(ce(i.gain))};return r(t),mu(n,r,{gain:[{param:n.gain,map:Ip}]})};function Pr(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),mu(i,o,{frequency:[{param:i.frequency}],...X1.has(e)?{q:[{param:i.Q}]}:{},...t?{gain:[{param:i.gain}]}:{}})}}function J1(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 mu(i,()=>{})}}function Or(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 Q1={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))},Z1=(e,t)=>{let n=e.createWaveShaper(),r=e.createGain(),i=e.createGain();r.connect(n).connect(i);let o=a=>{let u=Q1[String(a.type)]??Math.tanh,s=Math.pow(10,ce(a.threshold)/20),l=8192,d=new Float32Array(l);for(let m=0;m<l;m++){let f=m/(l-1)*2-1;d[m]=u(f/Math.max(1e-6,s))*s}n.curve=d,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()}}},eA=(e,t)=>{let n=e.createGain(),r=e.createGain(),i=e.createDelay(5),o=e.createGain(),a=e.createGain(),u=e.createGain();n.connect(i),i.connect(o),o.connect(i),i.connect(a).connect(r),n.connect(u).connect(r);let s=l=>{i.delayTime.value=Math.min(5,ce(l.time)/1e3),o.gain.value=ce(l.feedback),Bp(a,u,ce(l.mix))};return s(t),{input:n,output:r,update:s,automation:{time:[{param:i.delayTime,map:l=>Math.min(5,du(l))}],feedback:[{param:o.gain}],mix:fu(a.gain,u.gain)},dispose:()=>[n,r,i,o,a,u].forEach(l=>l.disconnect())}},tA=(e,t,n)=>{let r=e.createGain(),i=e.createGain(),o=e.createDelay(.5),a=Hp(e,"sine",ce(t.speed),n),u=e.createGain(),s=e.createGain(),l=e.createGain();a.connect(u).connect(o.delayTime),r.connect(o).connect(s).connect(i),r.connect(l).connect(i);let d=m=>{o.delayTime.value=ce(m.delay)/1e3,u.gain.value=ce(m.depth)/1e3,a.playbackRate.value=ce(m.speed),Bp(s,l,ce(m.mix))};return d(t),{input:r,output:i,update:d,automation:{delay:[{param:o.delayTime,map:du}],depth:[{param:u.gain,map:du}],speed:[{param:a.playbackRate}],mix:fu(s.gain,l.gain)},dispose:()=>{Gp(a),[r,i,o,u,s,l].forEach(m=>m.disconnect())}}},nA=6,rA=(e,t,n)=>{let r=e.createGain(),i=e.createGain(),o=e.createGain(),a=e.createGain(),u=Hp(e,String(t.type)==="1"?"sine":"triangle",ce(t.speed),n),s=e.createGain(),l=e.createGain(),d=e.createGain(),m=[];r.connect(o);let f=o;for(let g=0;g<nA;g++){let y=e.createBiquadFilter();y.type="allpass",y.Q.value=.7071,s.connect(y.frequency),f.connect(y),f=y,m.push(y)}u.connect(s),f.connect(l).connect(a),o.connect(d).connect(a),a.connect(i);let p=g=>{let y=1e3/Math.max(.1,ce(g.delay));for(let x of m)x.frequency.value=y;s.gain.value=y*ce(g.decay),u.playbackRate.value=ce(g.speed),o.gain.value=ce(g.in_gain),a.gain.value=ce(g.out_gain),l.gain.value=1,d.gain.value=1};return p(t),{input:r,output:i,update:p,automation:{speed:[{param:u.playbackRate}],in_gain:[{param:o.gain}],out_gain:[{param:a.gain}]},dispose:()=>{Gp(u),[r,i,o,a,s,l,d,...m].forEach(g=>g.disconnect())}}},iA=(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 u="",s=l=>{let d=`${ce(l.size)}:${ce(l.damping)}`;if(d!==u){let m=K1(e.sampleRate,ce(l.size),ce(l.damping)),f=e.createBuffer(1,m.length,e.sampleRate);f.getChannelData(0).set(m),i.buffer=f,u=d}o.gain.value=ce(l.wet),a.gain.value=ce(l.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(l=>l.disconnect())}},oA={"gain-node":Y1,"biquad-peaking":Pr("peaking",!0),"biquad-lowshelf":Pr("lowshelf",!0),"biquad-highshelf":Pr("highshelf",!0),"biquad-highpass":Pr("highpass",!1),"biquad-lowpass":Pr("lowpass",!1),"worklet-compressor":Or("hf-compressor"),"worklet-limiter":Or("hf-limiter"),"worklet-gate":Or("hf-gate"),"worklet-bitcrush":Or("hf-bitcrush"),"worklet-pitchshift":Or("hf-pitchshift"),waveshaper:Z1,"delay-feedback":eA,"chorus-lfo":tA,"allpass-phaser":rA,convolver:iA};function Up(e){return e.nodes.some(t=>zn(t.type)?.web.startsWith("worklet-")??!1)}function aA(e,t,n,r=0){let i=zn(t);if(!i)throw new Error(`Unknown effect type: ${t}`);let o=$n(t,n);if((t==="highpass"||t==="lowpass")&&String(o.poles)==="1")return J1(t)(e,o,r);let a=oA[i.web];if(!a)throw new Error(`No Web Audio builder for ${i.web}`);return a(e,o,r)}function Pp(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 Op(e){return qn(e).map(t=>{let n=$n(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 Wp(e,t,n=0){var m;let r=e.createGain(),i=e.createGain(),o=[],a=[],u=Pp(qn(t)),s=r;for(let f of u){let p=null;if(f.preset){let g=e.createGain(),y=e.createGain(),x=e.createGain(),w=e.createGain();x.gain.value=f.amount,y.gain.value=1-f.amount,s.connect(g),g.connect(y).connect(w),p={entry:g,wet:x,dry:y,join:w},s=g}for(let g of f.nodes){let y=aA(e,g.type,g.params??{},n);s.connect(y.input),s=y.output,o.push({...g.id?{id:g.id}:{},type:g.type,handle:y})}p&&f.preset&&(s.connect(p.wet).connect(p.join),a.push({id:f.preset,...p}),s=p.join)}s.connect(i);let l=Op(t),d={};for(let f of a)(d[m=f.id]??(d[m]=[])).push(...fu(f.wet.gain,f.dry.gain));return{input:r,output:i,presets:d,nodes:o,update(f){if(Op(f)!==l)return!1;qn(f).forEach((g,y)=>{let x=o[y];x&&(x.handle.update($n(g.type,g.params)),g.id===void 0?delete x.id:x.id=g.id)});let p=0;for(let g of Pp(qn(f))){if(!g.preset)continue;let y=a[p++];!y||y.id!==g.preset||(y.wet.gain.value=g.amount,y.dry.gain.value=1-g.amount)}return!0},dispose(){for(let{handle:f}of o)f.dispose();for(let{entry:f,wet:p,dry:g,join:y}of a)f.disconnect(),p.disconnect(),g.disconnect(),y.disconnect();r.disconnect(),i.disconnect()}}}var Vp={version:1,nodes:[]},zp={version:1,lanes:[]};function $p(e,t){let n=(typeof e.getAttribute=="function"?e.getAttribute(mt):null)??"";if(!n)return zp;try{return fc(vi(n),t)}catch{return zp}}function Tn(e){let t=(typeof e.getAttribute=="function"?e.getAttribute(Wt):null)??"";if(!t)return{chain:Vp,raw:""};try{return{chain:ec(t),raw:t}}catch{return{chain:Vp,raw:""}}}function qp(e){return $p(e,Tn(e).chain)}function po(e,t,n,r,i){let{chain:o}=Tn(t),a=null,u=[],s=!1,l=0,d=()=>{try{a?(n.disconnect(a.input),a.output.disconnect(r),a.dispose()):n.disconnect(r)}catch{}a=null},m=(C,N)=>{if(C.nodes.length===0){n.connect(r);return}if(Up(C)&&!lu(e)){n.connect(r);let O=++l;cu(e).then(()=>{s||O!==l||x(Tn(t).chain)}).catch(()=>{});return}try{let O=Wp(e,C,N);n.connect(O.input),O.output.connect(r),a=O}catch{n.connect(r)}},f=(C,N)=>{u=N&&a?Np($p(t,C),C,a.nodes,N,a.presets):[]},p=i?{...i}:null;m(o,p?.elapsed??0),f(o,p);let g=()=>{if(!p)return null;let C=typeof e.currentTime=="number"?e.currentTime:p.scheduledAt;return{scheduledAt:C,elapsed:p.elapsed+(C-p.scheduledAt)*p.rate,rate:p.rate}},y=C=>{let N=g();N&&(Rn(u,N.scheduledAt),f(C,N))},x=C=>{let N=g();Rn(u,N?.scheduledAt??0),d(),m(C,N?.elapsed??0),f(C,N)},w=null,k=t;return typeof MutationObserver<"u"&&typeof k?.nodeType=="number"&&(w=new MutationObserver(()=>{let C=Tn(t);u.length>0&&Ir(u),!a||!a.update(C.chain)?x(C.chain):y(C.chain)}),w.observe(k,{attributes:!0,attributeFilter:[Wt,mt]})),{reanchor:C=>{if(s)return;let N=g();N&&Rn(u,N.scheduledAt),p={...C},f(Tn(t).chain,p)},setRate:C=>{let N=g();s||!N||!Number.isFinite(C)||C<=0||C===N.rate||(p={...N,rate:C},Rn(u,N.scheduledAt),f(Tn(t).chain,p))},dispose:()=>{s=!0,w?.disconnect(),u.length>0&&Rn(u,typeof e.currentTime=="number"?e.currentTime:0),a?.dispose()}}}function jp(e,t){e.getFloatTimeDomainData(t);let n=0;for(let r=0;r<t.length;r++)n=Math.max(n,Math.abs(t[r]??0));return n}function pu(e,t){let n=e.createGain();n.channelCount=2,n.channelCountMode="explicit";let r=e.createChannelSplitter(2),i=e.createAnalyser(),o=e.createAnalyser();i.fftSize=o.fftSize=2048,t.connect(n),n.connect(r),r.connect(i,0),r.connect(o,1);let a=new Float32Array(new ArrayBuffer(2048*4)),u=new Float32Array(new ArrayBuffer(2048*4));return{read:()=>({l:jp(i,a),r:jp(o,u)}),dispose:()=>{try{t.disconnect(n),n.disconnect(),r.disconnect()}catch{}}}}var Kp="runtime_web_audio_bypass";function hu(e,t){return typeof e.getAttribute=="function"?e.getAttribute(t):null}function Hr(e,t){return hu(e,t)!==null}function sA(e){return Hr(e,"crossorigin")?!0:e.crossOrigin!=null}function uA(e){return typeof e.baseURI=="string"&&e.baseURI?e.baseURI:typeof document<"u"?document.baseURI:""}function lA(e){let t=typeof e.currentSrc=="string"?e.currentSrc:"";if(t)return[t];let n=hu(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 cA(e,t){let n;try{n=new URL(e,uA(t))}catch{return null}return n.protocol!=="http:"&&n.protocol!=="https:"?null:n}function dA(){return typeof window.origin=="string"?window.origin:window.location.origin}function fA(e,t){if(typeof window>"u")return null;let n=cA(e,t);if(!n)return null;let r=dA(),i=r==="null";return!i&&n.origin===r||sA(t)?null:i?"opaque_document_origin":"cross_origin_no_cors"}function Yp(e){return(typeof e.currentSrc=="string"?e.currentSrc:"")?!0:Hr(e,"src")}function kn(e){for(let t of lA(e)){let n=fA(t,e);if(n)return{kind:"decode-only",reason:n,asset:t}}return{kind:"web-audio"}}function mA(e){let t=[];Hr(e,Wt)&&t.push("fx-chain"),Hr(e,mt)&&t.push("automation"),Hr(e,Ci)&&t.push("audio-group");let n=Number.parseFloat(hu(e,"data-volume")??"");return Number.isFinite(n)&&n>1&&t.push("above-unity-gain"),t}function pA(){return typeof window<"u"&&!!window.__HF_EXPORT_RENDER_SEEK_CONFIG}var Xp=new WeakSet,hA={cross_origin_no_cors:"cross-origin media without a `crossorigin` opt-in is silent through createMediaElementSource (Web Audio spec); using native playback instead",opaque_document_origin:"this document\'s security origin is opaque (a sandbox without `allow-same-origin`), so no media is same-origin with it and createMediaElementSource would be silent (Web Audio spec); using native playback instead"},gA={cross_origin_no_cors:"proxy or download the asset to a same-origin URL to keep it.",opaque_document_origin:"add `allow-same-origin` to the sandbox, or serve the asset with a `crossorigin` attribute and an `Access-Control-Allow-Origin` of `null` or `*`, to keep it."};function Mn(e,t){if(t.kind==="web-audio"||pA()||Xp.has(e))return;let n=mA(e);Xp.add(e);let r={asset:t.asset,reason:t.reason,lostProcessing:n,note:hA[t.reason]};ye({source:"hf-preview",type:"diagnostic",code:Kp,details:r});let i=n.length>0?` Native playback cannot reproduce: ${n.join(", ")} \\u2014 ${gA[t.reason]}`:"";console.info(`[hyperframes] ${Kp}: "${t.asset}" (${t.reason}): Web Audio capture withheld; the track plays through native HTMLMediaElement output.${i}`)}function gu(e){return!Number.isFinite(e)||e<=0?1:e}function Jp(e){return Be(e)}function bA(e,t){t||e.paused||!ai().__hfDebug||console.debug("[hyperframes] webAudioTransport claimed fallback-playing element:",e.currentSrc||e.getAttribute("src")||"")}function xA(e,t){let{elapsed:n,mediaStart:r,scheduledAt:i,globalRate:o,mediaRate:a,clipDuration:u}=t,s=Number.isFinite(u)&&u>0,l=u*a;if(n>=0){let m=n*a,f=l-m;return s&&f<=0?!1:(s?e.start(0,m+r,f):e.start(0,m+r),!0)}let d=-n/o;return s?e.start(i+d,r,l):e.start(i+d,r),!0}function ho(e,t,n){let r=Lp(qp(e));r&&su([{param:t.gain}],r,yi.scale,n)}function Gr(e){return e.sourceKind==="buffer"}var go=class{constructor(){ue(this,"_ctx",null);ue(this,"_bufferCache",new Map);ue(this,"_failedSrcs",new Set);ue(this,"_mediaElementSources",new WeakMap);ue(this,"_activeSources",[]);ue(this,"_masterGain",null);ue(this,"_monitorGain",null);ue(this,"_masterVolume",1);ue(this,"_masterMuted",!1);ue(this,"_groups",new Map);ue(this,"_metering",!1);ue(this,"_masterTap",null);ue(this,"_groupTaps",new Map);ue(this,"_rateAnchorCtx",0);ue(this,"_rateAnchorComp",0);ue(this,"_rate",1);ue(this,"_paused",!0);ue(this,"_playGeneration",0)}async init(){try{return this._ctx=new AudioContext,this._masterGain=this._ctx.createGain(),this._monitorGain=this._ctx.createGain(),this._masterGain.connect(this._monitorGain),this._monitorGain.connect(this._ctx.destination),this.applyMasterGain(),this._metering&&this.attachMasterTap(),!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 I("webAudioTransport.fetch",new Error(`${i.status} ${n}`)),null;r=await i.arrayBuffer()}catch(i){return I("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),I("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=kn(t);if(o.kind!=="web-audio"){try{n.disconnect()}catch{}return this._mediaElementSources.delete(t),Mn(t,o),null}return n}if(!this._ctx)return null;let r=kn(t);if(r.kind!=="web-audio")return Mn(t,r),null;let i=this._ctx.createMediaElementSource(t);return this._mediaElementSources.set(t,i),i}async scheduleMediaElementPlayback(t,n,r,i,o,a,u=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 l=gu(u),d=this._ctx.createGain();d.gain.value=o;let m=this._ctx.currentTime,f=i-n,p={scheduledAt:m,elapsed:f,rate:l},g=po(this._ctx,t,s,d,p);d.connect(this.resolveDestination(t,m,i,l)??this._masterGain),ho(t,d,p),this._rate=l,this._rateAnchorCtx=m,this._rateAnchorComp=i;let y={fx:g,el:t,sourceNode:s,sourceKind:"media-element",gainNode:d,compositionStart:n,mediaStart:r,scheduledAt:m,priorMuted:t.muted,priorVolume:t.volume,mediaPlaybackRate:Pe(t),bounded:!1};return t.volume=1,this._activeSources.push(y),this._paused=!1,y}catch(s){return I("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){I("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 u=()=>ya(n,t),s=u(),l=this._ctx.createGain();l.gain.value=s?.hasAttribute("data-hidden")?0:1,l.connect(a);let d=this._ctx.createGain();d.gain.value=Jp(xa(s)),d.connect(l);let m=po(this._ctx,s??{getAttribute:()=>null},o,d,r);return s&&ho(s,d,r),this._groups.set(t,{input:o,output:a,isPresent:()=>u()!==null,fader:d,muteGain:l,fx:m,generation:this._playGeneration,reanchor:f=>{Ir([{param:d.gain}]);let p=u();d.gain.value=Jp(xa(p)),l.gain.value=p?.hasAttribute("data-hidden")?0:1,m?.reanchor(f),p&&ho(p,d,f)},dispose:()=>{try{m?.dispose(),o.disconnect(),d.disconnect(),l.disconnect(),a.disconnect()}catch{}}}),this.attachGroupTap(t,a),o}startMetering(){this._metering=!0,this.attachMasterTap();for(let[t,n]of this._groups)this.attachGroupTap(t,n.output)}stopMetering(){this._metering=!1,this._masterTap?.dispose(),this._masterTap=null;for(let t of this._groupTaps.values())t.dispose();this._groupTaps.clear()}readLevels(){let t={};for(let[n,r]of this._groupTaps)this._groups.get(n)?.isPresent()&&(t[n]=r.read());return{master:this._masterTap?.read()??{l:0,r:0},groups:t}}attachMasterTap(){this._ctx&&this._masterGain&&!this._masterTap&&(this._masterTap=pu(this._ctx,this._masterGain))}attachGroupTap(t,n){this._metering&&this._ctx&&!this._groupTaps.has(t)&&this._groupTaps.set(t,pu(this._ctx,n))}setGroupMuted(t,n){let r=this._groups.get(t);if(r)try{r.muteGain.gain.value=n?0:1}catch(i){I("webAudioTransport.setGroupMuted",i)}}resolveDestination(t,n,r,i){if(!this._masterGain)return null;let o=Lc(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,u,s=1,l=Number.POSITIVE_INFINITY){if(!this._ctx||!this._masterGain||u!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),u!==this._playGeneration)return null;let d=gu(s),m=Pe(t),f=d*m,p=this._ctx.createBufferSource();p.buffer=n,p.playbackRate.value=f;let g=this._ctx.createGain();g.gain.value=a;let y=o-r,x=this._ctx.currentTime,w={scheduledAt:x,elapsed:y,rate:d},k=po(this._ctx,t,p,g,w);if(g.connect(this.resolveDestination(t,x,o,d)??this._masterGain),ho(t,g,w),this._rate=d,this._rateAnchorCtx=x,this._rateAnchorComp=o,!xA(p,{elapsed:y,mediaStart:i,scheduledAt:x,globalRate:d,mediaRate:m,clipDuration:l}))return p.disconnect(),k?.dispose(),g.disconnect(),null;let C=t.muted;t.muted=!0,bA(t,C);let N={fx:k,el:t,sourceNode:p,sourceKind:"buffer",gainNode:g,compositionStart:r,mediaStart:i,scheduledAt:x,priorMuted:C,priorVolume:t.volume,mediaPlaybackRate:m,bounded:Number.isFinite(l)&&l>0};return this._activeSources.push(N),this._paused=!1,p.addEventListener("ended",()=>this.handleSourceEnded(p,N,t,C)),N}catch(d){return I("webAudioTransport.schedule",d),null}}setRate(t){let n=gu(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{Gr(r)&&(r.sourceNode.playbackRate.value=n*r.mediaPlaybackRate),r.fx?.setRate(n)}catch(i){I("webAudioTransport.setRate",i)}for(let r of this._groups.values())try{r.fx?.setRate(n)}catch(i){I("webAudioTransport.setRate.group",i)}return!0}hasBoundedActiveSources(){return this._activeSources.some(t=>Gr(t)&&t.bounded)}stopAll(){for(let t of this._activeSources){try{Gr(t)&&t.sourceNode.stop(),t.sourceNode.disconnect(),t.fx?.dispose(),t.gainNode.disconnect()}catch{}Gr(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=Be(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){I("webAudioTransport.setElementVolume",o)}}setMuted(t){this._masterMuted=t,this.applyMasterGain()}applyMasterGain(){this._monitorGain&&(this._monitorGain.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&&Gr(n))}routesElement(t){return!this._paused&&this._activeSources.some(n=>n.el===t)}destroy(){this.stopAll(),this.stopMetering();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._monitorGain=null,this._masterVolume=1,this._masterMuted=!1}};var Br="data-hf-studio-manual-edit-gesture";var Qp=`[${Br}]`;function Zp(e,t){let n=e.defaultView?.MutationObserver??globalThis.MutationObserver;if(!n||!e.documentElement)return{isActive:()=>e.querySelector(Qp)!=null,observing:!1,disconnect:()=>{}};let r=new Set(e.querySelectorAll(Qp)),i=u=>{for(let s of u){let l=s.target;ke(l)&&(l.hasAttribute(Br)?r.add(l):r.delete(l))}},o=u=>{u.length!==0&&(i(u),t())},a=new n(o);return a.observe(e.documentElement,{subtree:!0,attributes:!0,attributeFilter:[Br]}),{observing:!0,isActive:()=>{o(a.takeRecords());for(let u of r){if(u.isConnected&&u.hasAttribute(Br))return!0;r.delete(u)}return!1},disconnect:()=>{a.disconnect(),r.clear()}}}var eh=333.3333333333333;function th(e){return e.isPlaying&&e.hasCapturedTimeline&&e.currentTimeSeconds<2?!1:e.compositionChanged===!0?!0:Number.isInteger(e.tick)&&e.tick>0&&e.tick%60===0}var yA=/^\\s*spring\\(\\s*([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+))\\s*\\)\\s*$/;function nh(e){return Math.max(0,Math.min(1,e))}function rh(e){let t=yA.exec(e);if(!t)return null;let n=Number(t[1]);return Number.isFinite(n)?nh(n):null}function ih(e,t){if(!Number.isFinite(e))return e;if(e<=0)return 0;if(e>=1)return 1;let n=nh(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 vA=/^\\s*wiggle\\(\\s*(\\d+)\\s*,\\s*(easeOut|easeInOut|anticipate|uniform)\\s*(?:,\\s*([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?)\\s*)?\\)\\s*$/,SA=Math.PI*2;function AA(e){let t=vA.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 EA(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(SA*t*e)}function oh(e,t){let n=AA(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=>EA(a,n.wiggles,n.type,n.amplitude);return t?.set(r,o),o}var _A=24,ah=e=>e>=1?1:0,wA=e=>e,bo=String.raw`([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)`,CA=new RegExp(String.raw`^\\s*M\\s*0\\s*,\\s*0\\s+C\\s*${bo}\\s*,\\s*${bo}\\s+${bo}\\s*,\\s*${bo}\\s+1\\s*,\\s*1\\s*$`,"i");function sh(e,t,n){let r=1-e;return 3*r*r*e*t+3*r*e*e*n+e*e*e}function RA(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 u=0;u<_A;u+=1){let s=(o+a)/2;sh(s,t,r)<e?o=s:a=s}return sh((o+a)/2,n,i)}function TA(e){let t=CA.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=>RA(a,n,r,i,o)}function kA(e,t){if(!e.startsWith("spring("))return null;let n=rh(e);if(n===null)return null;let r=t.get(n);if(r)return r;let i=o=>ih(o,n);return t.set(n,i),i}function MA(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=TA(n);return i&&t.set(n,i),i}function uh(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"?ah:oh(s,i)??kA(s,r)??MA(s,n),a=(s,l,d=[])=>{let m=o(s);return m||(typeof s=="string"&&/^(?:hold|spring|wiggle|custom)(?:\\(|$)/.test(s.trim())&&Ge("custom_ease_parse_failed",{ease:s}),t.call(l,s,...d)??wA)};e.parseEase=function(l,...d){return a(l,this,d)};let u=e.registerEase;if(typeof u=="function"){u("hold",ah);let s=l=>{let d=m=>m;d.config=(...m)=>a(`${l}(${m.join(",")})`,e),u(l,d)};s("spring"),s("wiggle"),s("custom")}return e.__hfCustomEaseInstalled=!0,!0}var FA="first-frame",NA=3;function LA(e){let t=e.ownerDocument?.defaultView;return t&&e instanceof t.Element?!0:e instanceof Element}function DA(e){if(!LA(e)||e.tagName!=="AUDIO"&&e.tagName!=="VIDEO")return!1;let t=e.ownerDocument?.defaultView;return t&&e instanceof t.HTMLMediaElement?!0:e instanceof HTMLMediaElement}function IA(e){return e.hasAttribute("data-start")||e.hasAttribute("data-track-index")}function PA(e,t,n){let r=e;for(;r;){if(IA(r)&&!lr(r,{currentTime:0,compositionDuration:Number.POSITIVE_INFINITY,canonicalFps:30,exportRenderSeek:!1,timelineRegistry:n,resolver:t}))return!1;r=r.parentElement}return!0}function lh(e,t,n,r){return t==="all"?!0:PA(e,n,r)}function OA(e,{scope:t="all"}={}){let n=e.defaultView,r=Ue({documentRef:e,timelineRegistry:n?.__timelines,includeAuthoredTimingAttrs:!0}),i=Array.from(e.querySelectorAll("video, audio")).filter(DA).filter(u=>lh(u,t,r,n?.__timelines??{})).filter(u=>u.readyState<NA),o=Array.from(e.querySelectorAll("img")).filter(u=>lh(u,t,r,n?.__timelines??{})).filter(u=>!u.complete),a=e.fonts?.status==="loading";return{pendingMedia:i,pendingImages:o,fontsLoading:a}}function HA(e,{pendingMedia:t,pendingImages:n,fontsLoading:r},i){let o=t.map(s=>new Promise(l=>{if(s.error){l();return}let d=()=>{s.removeEventListener("canplay",d),s.removeEventListener("error",d),i.removeEventListener("abort",d),l()};s.addEventListener("canplay",d),s.addEventListener("error",d),i.addEventListener("abort",d,{once:!0})})),a=n.map(s=>s.decode?s.decode().catch(()=>{}):Promise.resolve()),u=r&&e.fonts?e.fonts.ready.then(()=>{}):Promise.resolve();return Promise.all([...o,...a,u]).then(()=>{})}function GA(e,t,{scope:n="all"}={}){let r=OA(e,{scope:n});return r.pendingMedia.length===0&&r.pendingImages.length===0&&!r.fontsLoading?null:HA(e,r,t)}var BA=50;function UA(e,t){let n=e.defaultView;return!n||n.__renderReady||!n.__hf?null:new Promise(r=>{let i,o=()=>{i!==void 0&&clearTimeout(i),t.removeEventListener("abort",o),r()};if(t.aborted){o();return}t.addEventListener("abort",o,{once:!0});let a=()=>{if(n.__renderReady){o();return}i=setTimeout(a,BA)};a()})}var WA=50,VA=2,zA=1500;function bu(e,t){return new Promise(n=>{if(t.aborted){n(-1);return}let r=0,i=()=>{e.cancelAnimationFrame?.(r),n(-1)};t.addEventListener("abort",i,{once:!0}),r=e.requestAnimationFrame(o=>{t.removeEventListener("abort",i),n(o)})})}function $A(e,t){let n=e.defaultView;return n?(async()=>{let r=await bu(n,t);if(t.aborted)return;let i=await bu(n,t),o=0;for(;!t.aborted&&o<VA;){if(i-r>=zA)return;let a=await bu(n,t);if(t.aborted)return;o=a-i<WA?o+1:0,i=a}})():null}var qA=8e3;function jA(e,t,n={}){let r=n.inputs??[(l,d)=>GA(l,d,{scope:n.scope}),UA,$A],i=new AbortController,o=r.map(l=>l(e,i.signal)).filter(l=>l!==null);if(o.length===0){t({timedOut:!1});return}let a=n.timeoutMs??qA,u,s=new Promise(l=>{u=setTimeout(()=>l("timed-out"),a)});Promise.race([Promise.all(o).then(()=>"done"),s]).then(l=>{clearTimeout(u),i.abort(),t({timedOut:l==="timed-out"})})}function ch(e,t,n={}){jA(e,t,{...n,scope:FA})}var vu=new Map,Ur=new Map,xu=new Map,yu=()=>{},fh=()=>{},dh=0;function Su(e){return/^[a-z][a-z0-9-]{0,63}$/.test(e)}function mh(e){let t=(xu.get(e)??0)+1;return xu.set(e,t),t}function ph(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0?e:(dh-=1,dh)}function Au(e,t){let n=Ur.get(e);if(!n)return;let r=()=>xu.get(e)===t.generation&&Ur.get(e)===n;try{Promise.resolve(n(t.payload)).then(()=>{r()&&fh(e,t.requestId)},i=>{r()&&yu(e,t.requestId,i)})}catch(i){r()&&yu(e,t.requestId,i)}}function hh(e){yu=e}function gh(e){fh=e}function xo(e,t,n){if(!Su(e))return;let r={payload:t,requestId:ph(n),generation:mh(e)};vu.set(e,r),Au(e,r)}function yo(e,t){Su(e)&&(vu.delete(e),Au(e,{payload:void 0,requestId:ph(t),generation:mh(e)}))}function bh(e,t){if(!Su(e))throw new Error(`Invalid HyperFrames runtime-data channel: ${e}`);Ur.set(e,t);let n=vu.get(e);return n&&Au(e,n),()=>{Ur.get(e)===t&&Ur.delete(e)}}var xh=!1;function lt(e){if(e){if(typeof e.pause!="function"){xh||(xh=!0,Ge("timeline_missing_pause",{}));return}try{e.pause()}catch(t){I("runtime.timeline.pause",t)}}}function YA(){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 JA(e,t){return t!==null&&e.length===t.length&&e.every((n,r)=>n===t[r])}function yh(e,t,n){let r=null,i=!0;return()=>{let o=e();if(o.length===0)return r=null,i=!0,!0;if(JA(o,r))return i;r=o,i=!1;let a=o.length===1?o[0]:Promise.all(o);return Promise.resolve(a).then(()=>{r===o&&(i=!0,t())},u=>{r===o&&(i=!0,n(u),t())}),i}}function vh(){let e=Sd(),t=()=>{};yl(ye),hh((c,h,b)=>{ye({source:"hf-preview",type:"runtime-data-error",channel:c,requestId:h,message:b instanceof Error?b.message:String(b)})}),gh((c,h)=>{try{t()}catch(b){ye({source:"hf-preview",type:"runtime-data-error",channel:c,requestId:h,message:b instanceof Error?b.message:String(b)});return}ye({source:"hf-preview",type:"runtime-data-applied",channel:c,requestId:h})}),to(document),Us(document),Dc(document);let n=YA();e.canonicalFps=n.fps??e.canonicalFps,bl(e.canonicalFps),window.__HF_EXPORT_RENDER_SEEK_CONFIG&&console.info("[hyperframes] render runtime fps",{canonicalFps:e.canonicalFps,source:n.source,rawFpsSource:n.rawFpsSource,rawFps:n.rawFps,fallbackReason:n.fallbackReason});let r=null,i=null,o=null,a=[],u=new Set,s=null,l=new Set,d=(c,h,b)=>{l.has(c)||(l.add(c),Ge(h,b))};if(typeof window.__hfRuntimeTeardown=="function")try{window.__hfRuntimeTeardown()}catch(c){I("runtime.init.site1",c)}let m=new mo;e.transportClock=m;let f=new go,p=!1;f.init().then(c=>{p=c}),window.__hf=window.__hf||{};let g=c=>c.closest("[data-hidden]")!==null||Ri(c.ownerDocument,c),y=()=>{let c=window.gsap,h=window;if(!(!c?.registerPlugin||h.__hfAutoNoopRegistered))try{c.registerPlugin({name:"_auto",init:()=>!1}),h.__hfAutoNoopRegistered=!0}catch(b){d("auto_marker_install_failed","auto_marker_install_failed",{reason:"threw"}),I("runtime.autoMarker.install",b)}},x=()=>{let c=window.gsap;if(!c){d("custom_ease_missing_gsap","custom_ease_install_failed",{reason:"missing_gsap"});return}try{uh(c)||d("custom_ease_no_parse_ease","custom_ease_install_failed",{reason:"no_parseEase"})}catch(h){d("custom_ease_install_threw","custom_ease_install_failed",{reason:"threw"}),I("runtime.customEase.install",h)}};y(),x(),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{Cl(document)}catch(c){I("runtime.init.cssVariables",c)}window.__timelines=window.__timelines||{};let w=()=>{let c=document.querySelector(\'[data-composition-id][data-root="true"]\');if(he(c))return c;let h=Array.from(document.querySelectorAll("[data-composition-id]"));return h.find(b=>!b.parentElement?.closest("[data-composition-id]"))??h[0]??null};if(Array.isArray(window.__timelines)){let c=window.__timelines,h=w()?.getAttribute("data-composition-id")??"root",b={};if(c.length===1)b[h]=c[0];else for(let A=0;A<c.length;A++)b[`tl-${A}`]=c[A];window.__timelines=b}let k=w();k&&!k.hasAttribute("data-start")&&k.setAttribute("data-start","0");let C=c=>{a.push(c)},N=(c,h,b)=>{let A=b??`${c}:${JSON.stringify(h)}`;u.has(A)||(u.add(A),ye({source:"hf-preview",type:"diagnostic",code:c,details:h}))},O=c=>{let h={scale:1,focusX:960,focusY:540},b=[],A=[],_={time:c.getTime(),duration:c.getDuration(),isPlaying:c.isPlaying(),renderMode:!1,timelineDirty:!1};return{play:c.play,pause:c.pause,seek:c.seek,getTime:c.getTime,getDuration:c.getDuration,isPlaying:c.isPlaying,getMainTimeline:()=>null,getElementBounds:()=>{},getElementsAtPoint:()=>{},setElementPosition:()=>{},previewElementPosition:()=>{},setElementKeyframes:()=>{},setElementScale:()=>{},setElementFontSize:()=>{},setElementTextContent:()=>{},setElementTextColor:()=>{},setElementTextShadow:()=>{},setElementTextFontWeight:()=>{},setElementTextFontFamily:()=>{},setElementTextOutline:()=>{},setElementTextHighlight:()=>{},setElementVolume:()=>{},setStageZoom:()=>{},getStageZoom:()=>h,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>b,addElement:()=>!1,removeElement:()=>!1,updateElementTiming:()=>!1,setElementTiming:()=>{},updateElementSrc:()=>!1,updateElementLayer:()=>!1,updateElementBasePosition:()=>!1,markTimelineDirty:()=>{},isTimelineDirty:()=>!1,rebuildTimeline:()=>{},ensureTimeline:()=>{},enableRenderMode:()=>{},disableRenderMode:()=>{},renderSeek:c.renderSeek,getElementVisibility:()=>({visible:!1}),getVisibleElements:()=>A,getRenderState:()=>({..._,time:c.getTime(),duration:c.getDuration(),isPlaying:c.isPlaying()})}},F=1/60,v=.75,S=.05,E=100,T=240,L=c=>{if(c instanceof Error)return c.message||String(c);if(typeof c=="string")return c;try{return JSON.stringify(c)}catch{return String(c??"")}},H=c=>{let h=c.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"}},z=c=>{if(c==null||c.trim()==="")return null;let h=Number.parseFloat(c);return!Number.isFinite(h)||h<=0?null:`${h}px`},Y=()=>w(),M=()=>{let c=Y();if(!c)return;let h=z(c.getAttribute("data-width")),b=z(c.getAttribute("data-height"));h&&(c.style.width=h),b&&(c.style.height=b),h&&c.style.setProperty("--comp-width",h),b&&c.style.setProperty("--comp-height",b),h&&(document.documentElement.style.width=h),b&&(document.documentElement.style.height=b),h&&(document.body.style.width=h),b&&(document.body.style.height=b)},V=()=>{let c=Y(),h=Array.from(document.querySelectorAll("[data-composition-id]")).filter(b=>b.hasAttribute("data-duration")||b.hasAttribute("data-end"));for(let b of h){if(c&&b===c)continue;let A=b.getAttribute("data-duration"),_=b.getAttribute("data-end");A!=null&&!b.hasAttribute(cn)&&b.setAttribute(cn,A),_!=null&&!b.hasAttribute(dn)&&b.setAttribute(dn,_),b.removeAttribute("data-duration"),b.removeAttribute("data-end")}},te=()=>{let c=Y();if(!c)return;c.style.position||(c.style.position="relative"),c.style.overflow="hidden";let h=z(c.getAttribute("data-width")),b=z(c.getAttribute("data-height"));h&&(c.style.width=h),b&&(c.style.height=b);let A=Array.from(c.children);for(let _ of A){let R=_.tagName.toLowerCase();if(R==="script"||R==="style"||R==="link"||R==="meta"||!_.hasAttribute("data-start")||_.hasAttribute("data-hf-autostamped"))continue;let D=(_.style.top==="0px"||_.style.top==="0")&&(_.style.left==="0px"||_.style.left==="0")&&_.style.width==="100%"&&_.style.height==="100%",G=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(_.style.transform);if(D&&G&&!_.hasAttribute("data-width")&&!_.hasAttribute("data-height")){let Q=_.style.top,we=_.style.left,Ut=_.style.width,Fe=_.style.height;_.style.top="",_.style.left="",_.style.width="",_.style.height="";let et=window.getComputedStyle(_);et.top!=="auto"||et.bottom!=="auto"||et.left!=="auto"||et.right!=="auto"||et.width!=="0px"||et.height!=="0px"||(_.style.top=Q,_.style.left=we,_.style.width=Ut,_.style.height=Fe)}let X=window.getComputedStyle(_),re=X.position;if(re!=="absolute"&&re!=="fixed"&&(_.style.position="absolute"),!!_.style.top||!!_.style.bottom||X.top!=="auto"||X.bottom!=="auto"||(_.style.top="0"),!!_.style.left||!!_.style.right||X.left!=="auto"||X.right!=="auto"||(_.style.left="0"),R!=="audio"){let Q=z(_.getAttribute("data-width")),we=z(_.getAttribute("data-height")),Ut=X.width!=="0px"&&X.width!=="auto",Fe=X.height!=="0px"&&X.height!=="auto";Q?!_.style.width&&!Ut&&(_.style.width=Q):!_.style.width&&X.width==="0px"&&(_.style.width="100%"),we?!_.style.height&&!Fe&&(_.style.height=we):!_.style.height&&X.height==="0px"&&(_.style.height="100%")}}},B=c=>Ue({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:c}),$=null,q=c=>{let h=$;$=B(!0);try{return c()}finally{$=h}},J=c=>c&&$?$:B(c),j=(c,h=0,b)=>J(b?.includeAuthoredTimingAttrs??!0).resolveStartForElement(c,h),P=(c,h)=>J(h?.includeAuthoredTimingAttrs??!0).resolveDurationForElement(c),U=c=>{let h=c.closest("[data-composition-id]"),b=h?j(h,0):null,A=h?P(h,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:h,inheritedStart:b,inheritedDuration:A}},ee=c=>J(!0).resolveMediaStartForElement(c);window.__hfResolveMediaStartSeconds=ee,a.push(()=>{window.__hfResolveMediaStartSeconds===ee&&delete window.__hfResolveMediaStartSeconds});let pe=!!document.querySelector("[data-composition-src]"),ne=!1;{let c=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let h of c){let b=h.getAttribute("data-composition-id");if(b&&h.children.length===0&&document.querySelector(`template#${CSS.escape(b)}-template`)){ne=!0;break}}}let W=!pe&&!ne,K=c=>{if(!c||typeof c.duration!="function")return null;try{let h=Number(c.duration());return Number.isFinite(h)?Math.max(0,h):null}catch{return null}},xe=c=>typeof c=="number"&&Number.isFinite(c)&&c>F,Oe=()=>{let c=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));return c.length===0?null:q(()=>{let h=[];for(let A of c){let _=ee(A);if(!Number.isFinite(_))continue;let R=_i(A);R==null||R<=F||h.push(Math.max(0,_)+R)}let{seconds:b}=cr({authoredDurationSeconds:null,clipEndsSeconds:h});return b!==null&&b>F?b:null})},Ln=()=>{let c=Y();if(!c)return null;let h=window.__timelines??{},b=Ue({timelineRegistry:h,includeAuthoredTimingAttrs:!0}),A=Me(c.getAttribute("data-duration")),_=[],R=Array.from(c.querySelectorAll("[data-composition-id][data-start]"));for(let G of R){if(!ke(G)||G.parentElement?.closest("[data-composition-id]")!==c)continue;let re=b.resolveStartForElement(G,0),Se=b.resolveDurationForElement(G);!Number.isFinite(re)||Se==null||Se<=0||_.push(Math.max(0,re)+Se)}let{seconds:D}=cr({authoredDurationSeconds:null,clipEndsSeconds:[A,..._]});return D!==null&&D>F?D:null},ct=c=>c.hasAttribute("data-composition-id")||c.hasAttribute("data-composition-src"),t0=c=>{let h=window;return!!(h.lottie||h.DotLottie||c.querySelector("[data-lottie-src]"))},Nu=()=>{let c=Y();if(!c)return cr({authoredDurationSeconds:null,clipEndsSeconds:[]});let h=Ue({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:!0}),b=[];for(let _ of Array.from(c.querySelectorAll("[data-start]"))){if(!ke(_))continue;let R=h.resolveStartForElement(_,0);if(!Number.isFinite(R))continue;let D=h.resolveDurationForElement(_);D!=null?b.push(Math.max(0,R)+D):(ge(_)||ct(_))&&b.push(null)}t0(c)&&b.push(null);let A=cr({authoredDurationSeconds:null,clipEndsSeconds:b});return A.pendingClips>0?{...A,seconds:null,source:"unresolved",reason:"a clip\'s length is pending"}:A},Ro=null,n0=()=>{if(Dn)return Nu();let c=In();return Ro?.revision!==c&&(Ro={revision:c,result:Nu()}),Ro.result},r0=c=>{window.__hf=window.__hf||{},window.__hf.durationSource={source:c.source,seconds:c.seconds,pendingClips:c.pendingClips},c.source==="derived"&&N("composition_duration_derived",{source:c.source,seconds:c.seconds,pendingClips:c.pendingClips},`composition_duration_derived:${c.seconds}`)},i0=()=>{let c=Oe();return typeof c!="number"||!Number.isFinite(c)||c<=F?null:c},o0=c=>xe(c)?Math.max(F,c*v):F,Lu=()=>{let c=0;for(let h of e.deterministicAdapters){let b=h.getInferredDurationSeconds;if(typeof b!="function")continue;let A=null;try{A=b()}catch(_){I("runtime.init.adapterDuration",_)}typeof A=="number"&&Number.isFinite(A)&&A>0&&(c=Math.max(c,A))}return c>F?c:null},Dn=!1,Du=()=>Dn&&window.__HF_EXPORT_RENDER_SEEK_CONFIG!=null,a0=["data-start","data-duration","data-end","data-composition-id","data-composition-src","data-composition-file","data-root","data-hf-authored-duration","data-hf-authored-end","data-hf-auto-start",wi,"data-playback-rate","data-automation","data-playback-start","data-media-start","id","src"],Iu=["loadedmetadata","durationchange","emptied"],zr=null,Pu=-1,Ou=null,Ot=null,Hu=0,Qt=()=>{},Zt=()=>{Hu+=1,Qt()},Gu=()=>({media:i0(),authoredComposition:Ln()}),s0=()=>{let c=window.__timelines??{},h="";for(let b of Object.keys(c)){let A=c[b];A&&(h+=`${b}=${K(A)??"?"};`)}return h},u0=()=>{if(!(Ot||typeof MutationObserver>"u")){Ot=new MutationObserver(Zt),Ot.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0,attributeFilter:a0});for(let c of Iu)document.addEventListener(c,Zt,!0);a.push(()=>{Ot?.disconnect(),Ot=null,Zt();for(let c of Iu)document.removeEventListener(c,Zt,!0)})}},In=()=>{u0(),Ot&&Ot.takeRecords().length>0&&Zt();let c=s0();return c!==Ou&&(Ou=c,Zt()),Hu},Bu=c=>Dn?Gu():(c??(c=In()),zr&&Pu===c||(Pu=c,zr=Gu()),zr),ze=(c,h=0,b)=>{let A=K(c),{media:_,authoredComposition:R}=Bu(b),D=Lu(),G=Math.max(_??0,R??0,D??0),X=Number.isFinite(h)&&h>F?h:0,re=0,Se=null;return xe(A)?re=Math.max(A,G,X):xe(G)?re=Math.max(G,X):X>0?re=X:(Se=n0(),re=Se.seconds??0),Se?r0(Se):window.__hf?.durationSource&&delete window.__hf.durationSource,re>0?Math.max(0,re):0},To=()=>{let c=window.__timelines??{},h=de=>{let se=Object.entries(c).filter(fe=>!!fe[1]&&typeof fe[1].play=="function"&&typeof fe[1].pause=="function");if(se.length!==1)return{timeline:null};let ie=se[0];if(!ie)return{timeline:null};let[Ae,Ee]=ie;return{timeline:Ee,selectedTimelineIds:[Ae],selectedDurationSeconds:K(Ee),diagnostics:{code:"root_timeline_sole_registered_fallback",details:{reason:de,soleTimelineId:Ae}}}},b=Ue({timelineRegistry:c,includeAuthoredTimingAttrs:!0}),{media:A,authoredComposition:_}=Bu(),R=Math.max(A??0,_??0)||null,D=o0(R),G=de=>{let se=document.querySelector(`[data-composition-id="${CSS.escape(de)}"]`);return se?b.resolveStartForElement(se,0):0},X=de=>{let se=window.gsap;if(!se||typeof se.timeline!="function")return null;let ie=se.timeline({paused:!0});for(let Ae of de)ie.add(Ae.timeline,G(Ae.compositionId));return ie},re=(de,se)=>{if(!xe(de))return null;let ie=window.gsap;if(!ie||typeof ie.timeline!="function")return null;let Ae=ie.timeline({paused:!0});if(se)try{Ae.add(se,0)}catch(fe){I("runtime.init.site2",fe)}let Ee=Ae;if(typeof Ee.to=="function")try{Ee.to({},{duration:de})}catch(fe){I("runtime.init.site3",fe)}return Ae},Se=(de,se)=>{if(!de||typeof de.getChildren!="function")return[];try{let ie=de.getChildren(!0,!0,!0);return Array.isArray(ie)?se.filter(Ae=>ie.includes(Ae.timeline)):[]}catch{return[]}},At=(de,se)=>{let ie=de,Ae={addedIds:[],nested:[]};if(typeof ie.getChildren!="function")return Ae;try{let Ee=ie.getChildren(!0,!0,!0)??[];if(!Array.isArray(Ee))return Ae;let fe=[];for(let _e of se)if(!Ee.some(dt=>dt===_e.timeline))try{let dt=G(_e.compositionId);de.add(_e.timeline,dt),fe.push(_e.compositionId)}catch(dt){I("runtime.init.site4",dt)}return{addedIds:fe,nested:Se(de,se)}}catch{return Ae}},ae=Y(),Q=ae?.getAttribute("data-composition-id")??null;if(!Q)return h("root_missing_composition_id");let we=c[Q]??null,Fe=(()=>{if(!ae)return[];let de=new Set,se=Array.from(ae.querySelectorAll("[data-composition-id]")),ie=[];for(let Ae of se){let Ee=Ae.getAttribute("data-composition-id");if(!Ee||Ee===Q||de.has(Ee))continue;de.add(Ee);let fe=c[Ee]??null;if(!fe||typeof fe.play!="function"||typeof fe.pause!="function")continue;let _e=K(fe);ie.push({compositionId:Ee,timeline:fe,durationSeconds:_e??0})}return ie})(),et=de=>{for(let se of de){let ie=se.timeline;if(typeof ie.paused=="function")try{ie.paused(!1)}catch(Ae){I("runtime.init.site5",Ae)}}};if(we){let de=Fe.length>0?At(we,Fe):{addedIds:[],nested:[]},se=de.addedIds;if(et(de.nested),(Fe.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+Q+"\'])"))&&($r=!0),se.length>0)try{let fe=we.time();we.seek(fe,!1)}catch{}let ie=K(we);if(!xe(ie)&&Fe.length>0){let fe=Fe.map(B0=>B0.compositionId),_e=X(Fe),tn=K(_e);if(_e&&xe(tn))return et(Se(_e,Fe)),{timeline:_e,selectedTimelineIds:fe,selectedDurationSeconds:tn,mediaDurationFloorSeconds:A,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:Q,rootDurationSeconds:ie,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:D,selectedDurationSeconds:tn,mediaDurationFloorSeconds:A,authoredCompositionDurationFloorSeconds:_,selectedTimelineIds:fe,autoNestedChildren:se}}};let dt=re(R??0,we),zo=K(dt);if(dt&&xe(zo))return{timeline:dt,selectedTimelineIds:[Q],selectedDurationSeconds:zo,mediaDurationFloorSeconds:A,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Q,rootDurationSeconds:ie,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:A,authoredCompositionDurationFloorSeconds:_,selectedDurationSeconds:zo,selectedTimelineIds:[Q],autoNestedChildren:se}}}}if(!xe(ie)&&Fe.length===0){let fe=re(R??0,we),_e=K(fe);if(fe&&xe(_e))return{timeline:fe,selectedTimelineIds:[Q],selectedDurationSeconds:_e,mediaDurationFloorSeconds:A,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Q,rootDurationSeconds:ie,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:A,authoredCompositionDurationFloorSeconds:_,selectedDurationSeconds:_e,selectedTimelineIds:[Q]}}}}let Ae=Me(ae?.getAttribute("data-duration")),Ee=Math.max(xe(Ae)?Ae:0,_??0);if(Ee>0&&xe(Ee)&&xe(ie)&&Ee>=ie+.5){let fe=we;if(typeof fe.to=="function")try{fe.to({},{duration:0},Ee)}catch(tn){I("runtime.init.site6",tn)}let _e=K(we);if(xe(_e))return{timeline:we,selectedTimelineIds:[Q],selectedDurationSeconds:_e,mediaDurationFloorSeconds:A,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:Q,rootDurationSeconds:ie,rootDeclaredDur:Ae,authoredCompositionDurationFloorSeconds:_,newDur:_e}}}}return{timeline:we,selectedTimelineIds:[Q],selectedDurationSeconds:ie,mediaDurationFloorSeconds:A,diagnostics:se.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:Q,selectedDurationSeconds:ie,autoNestedChildren:se}}:void 0}}if(Fe.length>0){let de=Fe.map(Ae=>Ae.compositionId),se=X(Fe),ie=K(se);if(se)return et(Se(se,Fe)),{timeline:se,selectedTimelineIds:de,selectedDurationSeconds:ie,mediaDurationFloorSeconds:A,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:Q,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:D,selectedDurationSeconds:ie,mediaDurationFloorSeconds:A,selectedTimelineIds:de}}}}return h("root_composition_id_unmatched_in_registry")},$r=!1,l0=c=>{let h=window.gsap,b=c;if(!(!b||typeof b.getChildren!="function"||!h||typeof h.parseEase!="function"))for(let A of b.getChildren(!0,!0,!0)){let _=A,R=_.timeline;if(!R||!("_ease"in R)||typeof R._ease=="function")continue;let D=_.vars?.keyframes,X=(D&&!Array.isArray(D)?D.ease:void 0)??_.vars?.ease??"none";try{let re=h.parseEase(X);typeof re=="function"&&(R._ease=re)}catch(re){Ge("keyframe_ease_repair_failed",{ease:typeof X=="string"?X:String(X)}),I("runtime.keyframeEase.repair",re)}}},Pn=()=>{if(x(),!W)return!1;let c=e.capturedTimeline,h=K(c),b=xe(h);if(c&&b&&$r)return!1;let A=To();if(!A.timeline)return!1;if(c&&c===A.timeline)return typeof c.timeScale=="function"&&c.timeScale(e.playbackRate),!1;e.capturedTimeline=A.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate),l0(e.capturedTimeline);let _=ze(e.capturedTimeline,0);if(_<=0&&typeof e.capturedTimeline.progress=="function"&&(e.capturedTimeline.progress(1,!0),e.capturedTimeline.progress(0,!1),lt(e.capturedTimeline)),_>0){try{m.setDuration(_)}catch{}if(typeof e.capturedTimeline.totalTime=="function"){typeof e.capturedTimeline.progress=="function"&&e.capturedTimeline.progress(1e-4,!0);let D=Math.max(0,e.currentTime||0);e.capturedTimeline.totalTime(D,!1),lt(e.capturedTimeline)}let R=window.__hfStudioManualEditsApply;typeof R=="function"&&R(),to(document)}if(A.diagnostics&&ye({source:"hf-preview",type:"diagnostic",code:A.diagnostics.code,details:A.diagnostics.details}),ye({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:A.selectedTimelineIds??[],selectedDurationSeconds:A.selectedDurationSeconds??null,mediaDurationFloorSeconds:A.mediaDurationFloorSeconds??null}}),window.parent!==window){let R=Y(),D=_>0?_:0,G=String(D>0?D:1),X=new Set,re=ae=>ae.tagName.toLowerCase()===mn,Se=new Set(document.querySelectorAll("[data-start]")),At=ae=>{let Q=ae.parentElement;for(;Q&&Q!==R;){if(Se.has(Q))return!0;Q=Q.parentElement}return!1};if(e.capturedTimeline.getChildren)try{for(let ae of e.capturedTimeline.getChildren(!0))if(typeof ae.targets=="function")for(let Q of ae.targets())he(Q)&&Q!==R&&(re(Q)||Q.hasAttribute("data-start")||At(Q)||X.has(Q)||(X.add(Q),Q.setAttribute("data-start","0"),Q.setAttribute("data-duration",G),Q.setAttribute("data-hf-autostamped","1")))}catch{}if(he(R))for(let ae of R.querySelectorAll("[id]"))he(ae)&&ae!==R&&(ae.hasAttribute("data-start")||At(ae)||X.has(ae)||ae.tagName==="SCRIPT"||ae.tagName==="STYLE"||ae.tagName==="LINK"||re(ae)||(X.add(ae),ae.setAttribute("data-start","0"),ae.setAttribute("data-duration",G),ae.setAttribute("data-hf-autostamped","1")))}for(let R of On)qr.delete(R),ju(R);return!0},Uu=()=>{if(e.tornDown)return;let c=To();if(!c.timeline){e.capturedTimeline=null,$r=!1,m.setDuration(0),Jr(e.currentTime);return}e.capturedTimeline!==c.timeline&&($r=!1,Pn()),Jr(e.currentTime)};t=()=>{Uu(),vt()},window.__hfForceTimelineRebind=Uu;let c0=()=>{let c=Y();if(!he(c))return;let h=c.getBoundingClientRect(),b=Number(c.getAttribute("data-width")),A=Number(c.getAttribute("data-height")),_=window.getComputedStyle(c),R=Number.isFinite(b)&&b>0&&Number.isFinite(A)&&A>0,D=h.width<=0||h.height<=0||c.clientWidth<=0||c.clientHeight<=0;!R||!D||N("root_stage_layout_zero",{compositionId:c.getAttribute("data-composition-id")??null,declaredWidth:b,declaredHeight:A,rectWidth:Math.round(h.width),rectHeight:Math.round(h.height),clientWidth:c.clientWidth,clientHeight:c.clientHeight,display:_.display,visibility:_.visibility,overflow:_.overflow},`root-stage-layout-zero:${c.getAttribute("data-composition-id")??"unknown"}`)},d0=()=>{e.tornDown||(s!=null&&window.cancelAnimationFrame(s),s=window.requestAnimationFrame(()=>{s=null,c0()}))},f0=()=>{i=c=>{let h=L(c.error??c.message).slice(0,T);if(!h)return;let b=H(h);ye({source:"hf-preview",type:"diagnostic",code:b.code,details:{category:b.category,message:h,filename:c.filename||null,line:Number.isFinite(c.lineno)?c.lineno:null,column:Number.isFinite(c.colno)?c.colno:null}})},o=c=>{let h=L(c.reason).slice(0,T);if(!h)return;let b=H(h);ye({source:"hf-preview",type:"diagnostic",code:`${b.code}_unhandled_rejection`,details:{category:`${b.category}-unhandled-rejection`,message:h}})},window.addEventListener("error",i),window.addEventListener("unhandledrejection",o)},m0=()=>{let c=Array.from(document.querySelectorAll("img, video, audio, source, link[rel=\'stylesheet\']"));for(let b of c){let A=()=>{if(!ke(b))return;let _=b.tagName.toLowerCase(),R=b.getAttribute("src")??b.getAttribute("href")??b.getAttribute("poster")??null,D=_==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";N(D,{tagName:_,assetUrl:R,currentSrc:(Le(b)||ge(b))&&b.currentSrc||null,readyState:ge(b)?b.readyState:null,networkState:ge(b)?b.networkState:null},`${D}:${_}:${R??"unknown"}`)};b.addEventListener("error",A),C(()=>{b.removeEventListener("error",A)})}let h=document.fonts;h&&h.ready.then(()=>{if(e.tornDown)return;let b=Array.from(h).filter(A=>A.status==="error").map(A=>A.family).filter(A=>!!A).slice(0,10);b.length!==0&&N("runtime_font_load_issue",{failedFamilies:b,totalFaces:Array.from(h).length},`runtime-font-load-issue:${b.join("|")}`)}).catch(()=>{})},p0=(c,h)=>{if(!c.timeline)return!1;let b=e.capturedTimeline;if(b&&b===c.timeline)return!1;let A=Math.max(0,e.currentTime||0),_=e.isPlaying;e.capturedTimeline=c.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate);try{lt(e.capturedTimeline),typeof e.capturedTimeline.seek=="function"&&e.capturedTimeline.seek(A,!1),_&&typeof e.capturedTimeline.play=="function"&&e.capturedTimeline.play()}catch(R){I("runtime.init.site7",R)}return ye({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:h,previousTime:A,selectedTimelineIds:c.selectedTimelineIds??[],selectedDurationSeconds:c.selectedDurationSeconds??null,mediaDurationFloorSeconds:c.mediaDurationFloorSeconds??null}}),!0},Ht=null,Wu=!1,On=new Set,qr=new WeakMap,jr=()=>{e.tornDown||(Ht!=null&&window.clearTimeout(Ht),Ht=window.setTimeout(()=>{if(e.tornDown||(Ht=null,Du()))return;let c=To();if(!c.timeline||!xe(c.mediaDurationFloorSeconds??null))return;if(!e.capturedTimeline){Pn()&&(vt(),Ie(!0));return}if(Wu)return;let b=K(e.capturedTimeline),A=c.selectedDurationSeconds??K(c.timeline);xe(A)&&(!xe(b)||A>=b+S)&&p0(c,"manual")&&(Wu=!0,ye({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:b??null,selectedDurationSeconds:A??null,selectedTimelineIds:c.selectedTimelineIds??[],mediaDurationFloorSeconds:c.mediaDurationFloorSeconds??null}}),vt(),Ie(!0))},E))},Vu=c=>{ge(c.currentTarget)&&Wc(c.currentTarget)},zu=c=>{ge(c.currentTarget)&&Vc(c.currentTarget)},$u=c=>{Jo(c)&&Yp(c)&&Mn(c,kn(c))},qu=c=>{let h=c.currentTarget;ge(h)&&$u(h)},h0=()=>{for(let c of On)c.removeEventListener("loadedmetadata",jr),c.removeEventListener("durationchange",jr),c.removeEventListener("loadedmetadata",Vu),c.removeEventListener("loadedmetadata",qu),c.removeEventListener("error",zu);On.clear()},ko=()=>{if(e.tornDown)return;let c=Array.from(document.querySelectorAll("video, audio"));for(let h of c){if(On.has(h))continue;On.add(h);let b=Number.parseFloat(h.dataset.volume??"");Number.isFinite(b)&&(h.volume=Math.max(0,Math.min(1,b))),h.addEventListener("loadedmetadata",jr),h.addEventListener("durationchange",jr),h.addEventListener("loadedmetadata",qu),$u(h),h.addEventListener("loadedmetadata",Vu),h.addEventListener("error",zu),Uc(h),h.preload!=="auto"&&(h.preload="auto"),h.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&h.load(),ju(h)}},ju=c=>{qr.has(c)||wc(c,e.capturedTimeline,ze(e.capturedTimeline,0),qr,{allowLiveTimelineSeek:!window.__HF_RENDER_CAPTURE_MODE})},Mo=new WeakMap,g0=c=>{let h=Mo.get(c);if(h!==void 0)return h;let b=window.getComputedStyle(c).position,A=b==="static"||b==="relative"||b==="sticky";return Mo.set(c,A),A},Fo=new WeakMap,b0=c=>{let h=Fo.get(c);if(h!==void 0)return h;let b=c.querySelector("[data-start]")===null;return Fo.set(c,b),b},x0=()=>{Mo=new WeakMap,Fo=new WeakMap},No=new WeakSet,Lo=new WeakMap,Kr=new WeakSet,Xr=!1,Ku=c=>c.matches("audio[data-start]")||c.querySelector("audio[data-start]")!==null,Xu=new WeakMap,Yr=!0,y0=()=>{if(Yr){Yr=!1;for(let c of document.querySelectorAll(mn)){let h=c.hasAttribute("data-hidden");Xu.get(c)!==h&&(Xu.set(c,h),c.id&&f.setGroupMuted(c.id,h))}}},v0=(c,h,b)=>{let A=Y(),_=ze(e.capturedTimeline,0,b);for(let R of h){if(!he(R))continue;if(R.hasAttribute("data-hidden")){Kr.has(R)||(Lo.set(R,R.style.getPropertyValue("display")),Kr.add(R),Ku(R)&&(Xr=!0),Yr=!0),R.style.display="none",(me(R)||Le(R))&&r?.setSourceVisibility(R,!1);continue}if(Kr.has(R)){let G=Lo.get(R);G?R.style.display=G:R.style.removeProperty("display"),Lo.delete(R),Kr.delete(R),Ku(R)&&(Xr=!0),Yr=!0}let D=lr(R,{currentTime:c,compositionDuration:_,canonicalFps:e.canonicalFps,exportRenderSeek:!!window.__HF_EXPORT_RENDER_SEEK_CONFIG,timelineRegistry:window.__timelines??{},resolver:J(!0)});if(D){let G=R.parentElement;for(;G&&G!==A;){if(he(G)&&G.hasAttribute("data-start")&&!lr(G,{currentTime:c,compositionDuration:_,canonicalFps:e.canonicalFps,exportRenderSeek:!!window.__HF_EXPORT_RENDER_SEEK_CONFIG,timelineRegistry:window.__timelines??{},resolver:J(!0)})){D=!1;break}G=G.parentElement}}R.style.visibility=D?"visible":"hidden",(me(R)||Le(R))&&r?.setSourceVisibility(R,D),D?No.has(R)&&(R.style.removeProperty("display"),No.delete(R)):g0(R)&&b0(R)&&(R.style.display="none",No.add(R))}Xr&&m.isPlaying()&&(f.stopAll(),Wo()),Xr=!1,y0()},Jr=(c,h=Array.from(document.querySelectorAll("[data-start]")),b)=>q(()=>v0(c,h,b)),Hn=null,Gn=null,Qr=[],Yu=c=>c.hasAttribute("data-start")||!!U(c).compositionRoot,Do=c=>Pc({elements:c,shouldIncludeElement:Yu,resolveStartSeconds:h=>ee(h),resolveDurationSeconds:h=>{let b=U(h),A=ee(h),_=b.inheritedStart!=null&&b.inheritedDuration!=null&&b.inheritedDuration>0?Math.max(0,b.inheritedStart+b.inheritedDuration-A):null,R=Number.isFinite(h.duration)?nt(h,h.duration):null,D=Me(h.dataset.duration),G=D!=null&&D>0?D:null;return Ic({isVideo:h.tagName==="VIDEO",sourceDuration:R,hostRemaining:_,explicitDuration:G})}}),S0=()=>{let c=In();if(Hn&&Hn.revision===c)return Hn;let h=Do().mediaClips;return Hn={revision:c,clips:h,byStart:[...h].sort((b,A)=>b.start-A.start),byEnd:[...h].sort((b,A)=>b.end-A.end)},Gn=null,Qr=[],Hn},Ju=(c,h,b,A)=>{let _=0,R=c.length;for(;_<R;){let G=_+R>>1;h(c[G])<b?_=G+1:R=G}let D=[];for(let G=_;G<c.length&&h(c[G])<=A;G+=1)D.push(c[G]);return D},A0=(c,h)=>{let b=Gn;if(b===null)return c.clips.map(D=>D.el);let A=Math.min(b,h),_=Math.max(b,h),R=new Set;for(let D of Qr)R.add(D.el);for(let D of Ju(c.byStart,G=>G.start,A,_))R.add(D.el);for(let D of Ju(c.byEnd,G=>G.end,A,_))R.add(D.el);return[...R]},Zr=new WeakSet,Qu=c=>{Zr.add(c)},Zu=c=>{Zr.delete(c)};window.__hf.leasePausedMedia=Qu,window.__hf.releasePausedMedia=Zu,window.__hf.audioMeter={start:()=>f.startMetering(),stop:()=>f.stopMetering(),read:()=>f.readLevels()};let E0=()=>{for(let c of document.querySelectorAll("video, audio"))if(ge(c)&&!c.paused&&Yu(c)&&!Zr.has(c))return!0;return!1},el=()=>Qt();document.addEventListener("play",el,!0),a.push(()=>{document.removeEventListener("play",el,!0)});let He=c=>{let h=!Dn,b=q(()=>{if(!h)return Do().mediaClips;let R=S0();return Do(A0(R,e.currentTime)).mediaClips});for(let R of b){let D=qr.get(R.el);D&&(R.volumeKeyframes=D)}let A=e.isPlaying?b:b.filter(R=>!Zr.has(R.el)),_=e.mediaForceSyncNextTick;_&&(e.mediaForceSyncNextTick=!1),e.nativeMediaSyncDisabled||(Oc({clips:A,timeSeconds:e.currentTime,playing:e.isPlaying,playbackRate:e.playbackRate,outputMuted:e.mediaOutputMuted,userMuted:e.bridgeMuted,userVolume:e.bridgeVolume,forceSync:_,getCompositionDuration:()=>ze(e.capturedTimeline,0,c),onElementVolume:(R,D,G)=>f.setElementVolume(R,G),isWebAudioOwned:R=>f.ownsElement(R),isWebAudioRouted:R=>f.routesElement(R),onAutoplayBlocked:()=>{e.mediaAutoplayBlockedPosted||(e.mediaAutoplayBlockedPosted=!0,ye({source:"hf-preview",type:"media-autoplay-blocked"}))}}),h?(Gn=e.currentTime,Qr=b.filter(R=>Et(e.currentTime,R.start,R.end))):(Gn=null,Qr=[])),Jr(e.currentTime,void 0,c)},Ie=c=>{c&&Qt();let h=Math.max(0,Math.round((e.currentTime||0)*e.canonicalFps)),b=Date.now();(c||h!==e.bridgeLastPostedFrame||e.isPlaying!==e.bridgeLastPostedPlaying||e.bridgeMuted!==e.bridgeLastPostedMuted||b-e.bridgeLastPostedAt>=e.bridgeMaxPostIntervalMs)&&(e.bridgeLastPostedFrame=h,e.bridgeLastPostedPlaying=e.isPlaying,e.bridgeLastPostedMuted=e.bridgeMuted,e.bridgeLastPostedAt=b,ye({source:"hf-preview",type:"state",frame:h,isPlaying:e.isPlaying,muted:e.bridgeMuted,playbackRate:e.playbackRate}))},Io="",tl=!1,nl=!1,rl=0,_0=()=>{let c="";for(let h of document.querySelectorAll("[data-start]"))c+=`${h.id}:${h.tagName}|`;return c},vt=()=>{V(),M(),te();let c=Y();if(c){let A=z(c.getAttribute("data-width")),_=z(c.getAttribute("data-height")),R=A?parseInt(A,10):0,D=_?parseInt(_,10):0;R>0&&D>0&&ye({source:"hf-preview",type:"stage-size",width:R,height:D})}Pn();let h=Cd({canonicalFps:e.canonicalFps});window.__clipManifest=h;let b=_0();if(Io!==b&&x0(),!window.__clipTree||Io!==b){let A=window;window.__clipTree=Ad({startResolver:Ue({timelineRegistry:A.__timelines??{},includeAuthoredTimingAttrs:!0}),timelineRegistry:A.__timelines??{},rootDuration:h.durationInFrames/e.canonicalFps}),Io=b}ye({...h,assetsReady:nl}),tl||(tl=!0,ch(document,({timedOut:A})=>{e.tornDown||(nl=!0,ye({source:"hf-preview",type:"assets-ready",timedOut:A}))})),d0()},Po=c=>typeof c=="number"&&Number.isFinite(c)&&c>0?c:0,w0=c=>{let h=Po(Number(c));if(h<=0)return;let b=Y(),A=Po(Me(b?.getAttribute("data-duration"))),_=Math.max(rl,Po(m.getDuration()),A);h<=_||(rl=h,b?.setAttribute("data-duration",String(h)),m.setDuration(h),vt(),Ie(!0))},$e=(c,h=0)=>{for(let b of e.deterministicAdapters){try{c==="discover"&&b.discover(),c==="pause"&&b.pause(),c==="play"&&b.play&&b.play()}catch(A){I("runtime.init.site8",A)}if(c==="discover")try{b.seek({time:h,suppressEvents:!0})}catch(A){I("runtime.init.site9",A)}}},Gt=()=>{window.__renderReady=!1},C0=yh(()=>{let c=[];for(let h of e.deterministicAdapters){let b=h.getReadyPromise;if(typeof b=="function")try{let A=b();A&&c.push(A)}catch(A){I("runtime.init.adapterReady",A)}}return c},()=>Gt(),c=>I("runtime.init.adapterReady",c)),R0=yh(()=>{let c=window.__hf?.buildReady;return c?Object.values(c).filter(h=>h!=null&&typeof h.then=="function"):[]},()=>Gt(),c=>I("runtime.init.buildReady",c));if(W)Ds();else{let c={injectedStyles:e.injectedCompStyles,injectedScripts:e.injectedCompScripts,injectedLinks:e.injectedCompLinks,parseDimensionPx:z,onDiagnostic:({code:h,details:b})=>{ye({source:"hf-preview",type:"diagnostic",code:h,details:b})}};Em(c).then(()=>Am(c)).finally(()=>{W=!0,ko(),m0(),Ds(),Us(document),ru(document.body,e.canonicalFps),Gt()})}let ei=bd({postMessage:c=>ye(c)});ei.installPickerApi(),Jr(e.currentTime,Array.from(document.querySelectorAll("video[data-start], img[data-start]")));let Ze=up({lease:Qu,release:Zu});r=Ze,C(()=>{Ze.destroy(),r=null}),ru(document.body,e.canonicalFps);let Oo=c=>{let h=Number(c);!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 b=document.querySelectorAll("video, audio");for(let A of b)if(ge(A))try{A.playbackRate=e.playbackRate}catch(_){I("runtime.init.site10",_)}},il={play:()=>{let c=e.capturedTimeline;if(m.isPlaying())return;let h=ze(c,0);if(h>0)m.setDuration(h),m.reachedEnd()&&(m.seek(0),e.currentTime=0,Bt(0));else{let b=Y(),A=Number(b?.getAttribute("data-duration")??0);A>0&&m.setDuration(A)}lt(c),m.play()&&(e.isPlaying=!0,e.mediaForceSyncNextTick=!0,ml(m.now()),p&&!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&Wo(),$e("play"),He(),Ze.redraw(),Ie(!0))},pause:()=>{if(!m.isPlaying())return;f.stopAll(),m.detachAudioSource(),m.pause(),e.isPlaying=!1,e.currentTime=m.now(),e.mediaForceSyncNextTick=!0,ml(e.currentTime);let c=e.capturedTimeline;lt(c),$e("pause"),He(),Ze.redraw(),Ie(!0)},seek:(c,h)=>{let b=ja(Math.max(0,Number(c)||0),e.canonicalFps);f.stopAll(),m.detachAudioSource();let A=m.isPlaying();A&&m.pause(),m.seek(b),e.currentTime=m.now(),e.isPlaying=!1,e.mediaForceSyncNextTick=!0;let _=e.capturedTimeline;if(lt(_),Bt(e.currentTime),$e("pause"),h?.keepPlaying&&A){il.play();return}He(),Ze.redraw(),ou(e.currentTime),Ie(!0)},renderSeek:(c,h)=>{Dn=!0;let b=ir(Math.max(0,Number(c)||0),e.canonicalFps,h?.subFrameDivisions);f.stopAll(),m.detachAudioSource(),m.isPlaying()&&m.pause(),m.seek(b),e.currentTime=m.now(),e.isPlaying=!1,e.mediaForceSyncNextTick=!0,Bt(e.currentTime,{activateChildren:!0,suppressEvents:h?.suppressEvents}),$e("pause"),He(),Ze.redraw(),ou(e.currentTime,{engineMode:!0}),Ie(!0)},getTime:()=>m.now(),getDuration:()=>{let c=m.getDuration();return Number.isFinite(c)?c:0},isPlaying:()=>m.isPlaying(),setPlaybackRate:c=>{Oo(c),m.setRate(e.playbackRate),pl()},getPlaybackRate:()=>e.playbackRate},ol=ze(e.capturedTimeline,0);ol>0&&m.setDuration(ol);let qe=vd({getTimeline:()=>e.capturedTimeline,setTimeline:c=>{e.capturedTimeline=c},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>e.isPlaying,setIsPlaying:c=>{e.isPlaying!==c&&(e.mediaForceSyncNextTick=!0),e.isPlaying=c},getPlaybackRate:()=>e.playbackRate,setPlaybackRate:Oo,getCanonicalFps:()=>e.canonicalFps,onSyncMedia:(c,h)=>{e.currentTime=Math.max(0,Number(c)||0),e.isPlaying!==h&&(e.mediaForceSyncNextTick=!0),e.isPlaying=h,He()},onStatePost:Ie,onDeterministicSeek:(c,h)=>{for(let b of e.deterministicAdapters)if(!(b.name==="gsap"&&e.capturedTimeline))try{b.seek({time:Number(c)||0,suppressEvents:h?.suppressEvents})}catch(A){I("runtime.init.site11",A)}},onDeterministicPause:()=>$e("pause"),onDeterministicPlay:()=>$e("play"),onRenderFrameSeek:()=>{Ze.redraw()},onShowNativeVideos:()=>{},getSafeDuration:()=>ze(e.capturedTimeline,0),transport:il});window.__player=O(qe),window.__playerReady=!0,Ge("composition_loaded",{duration:qe.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),e.deterministicAdapters=[Ac(),Fl({resolveStartSeconds:c=>j(c,0)}),Ll(),Pl(),Gl(),Bl(),Ul(),Wl(),Vl(),zl(),$l(),Nl({getTimeline:()=>e.capturedTimeline})],Kl(),Xl(),window.__hfReseekGpu=c=>{let h=Math.max(0,Number(c)||0);window.__hfThreeTime=h,window.__hfTypegpuTime=h,mi(h)},window.__hfWaitForSeekCompletion=oa,a.push(()=>{window.__hfWaitForSeekCompletion===oa&&delete window.__hfWaitForSeekCompletion}),f0(),ko(),$e("discover");let T0=()=>{let c=e.capturedTimeline,h=Pn();e.capturedTimeline&&(h||e.capturedTimeline!==c||!qe._timeline)&&(qe._timeline=e.capturedTimeline);let b=ze(e.capturedTimeline,0);if(b>0&&m.setDuration(b),$e("discover",e.currentTime),!e.capturedTimeline){let A=window.__timelines??{},_=Object.keys(A).filter(R=>A[R]);if(_.length>0){let D=Y()?.getAttribute("data-composition-id")??null;N("root_timeline_unbound_registry_present",{reason:D?"root data-composition-id has no matching key in window.__timelines":"root composition element has no data-composition-id attribute",rootCompositionId:D,registeredTimelineKeys:_},"root_timeline_unbound_registry_present"),console.warn("[hyperframes] Root timeline not bound \\u2014 render will freeze at t=0. "+(D?`Root data-composition-id is "${D}" but window.__timelines has no such key. `:"Root composition element has no data-composition-id. ")+`Registered timeline keys: [${_.join(", ")}]. Register the root timeline under its data-composition-id (window.__timelines["${D??"<root-id>"}"] = tl).`)}}window.__renderReady=!0,vt(),Ie(!0)},en=null,k0=()=>{if(en)return;let c=()=>{window.removeEventListener("hf-timelines-built",c),en=null,Gt()};en=c,window.addEventListener("hf-timelines-built",c)};C(()=>{en&&(window.removeEventListener("hf-timelines-built",en),en=null)}),Gt=()=>{if(!W){window.__renderReady=!1;return}if(window.__hfTimelinesBuilding){window.__renderReady=!1,k0();return}if($e("discover",e.currentTime),!C0()){window.__renderReady=!1;return}if(!R0()){window.__renderReady=!1;return}T0()},Gt(),W&&setTimeout(()=>{Gt()},0);let ti=0,ni=!1,Ho=Number.NaN,Go=null,ri=!1,St=null,ii=!1,al="",sl=-1,oi=!1,ul=Number.NEGATIVE_INFINITY,M0=(c,h,b,A)=>{try{let _=A?.suppressEvents===!0;lt(c),typeof c.totalTime=="function"?c.totalTime(h,_):c.seek(h,_)}catch(_){I(b,_)}},F0=(c,h)=>{let b=window.__timelines??{},A=Y()?.getAttribute("data-composition-id")??null;for(let[_,R]of Object.entries(b)){if(!R||_===A)continue;let D=document.querySelector(`[data-composition-id="${CSS.escape(_)}"]`);if(!D)continue;let G=j(D,0);if(!Number.isFinite(G))continue;let X=K(R),re=rt(D)+Ai(Rt(D),Math.max(0,c-G)),Se=Math.max(0,X!=null&&X>0?Math.min(X,re):re);M0(R,Se,"runtime.init.transport.childTimeline",h)}},N0=c=>{let h=window.__timelines??{},b=[];for(let A of Object.values(h))if(!(!A||A===c)){b.push(A);try{A.play()}catch(_){I("runtime.init.activateSiblings",_)}}return b},ll=c=>typeof c=="object"&&c!==null,Bn=new WeakMap,L0=["onStart","onUpdate","onComplete","onReverseComplete","onRepeat"],cl=(c,h)=>{let b=c[h];if(typeof b!="function")return null;try{let A=Number(b.call(c));return Number.isFinite(A)?A:null}catch(A){return I("runtime.init.gsapCallbackDuration",A),null}},D0=c=>{let h=Bn.get(c);if(h!=null)return h;if(!("getChildren"in c)||typeof c.getChildren!="function")return!1;let b;try{b=c.getChildren(!0,!0,!0)}catch(A){return I("runtime.init.gsapCallbackChildren",A),Bn.set(c,!1),!1}if(!Array.isArray(b))return Bn.set(c,!1),!1;for(let A of b){if(!ll(A))continue;let _=A.vars;if(!ll(_)||!L0.some(X=>typeof _[X]=="function"))continue;let G=cl(A,"totalDuration")??cl(A,"duration");if(G!=null&&G<=1e-6)return Bn.set(c,!0),!0}return Bn.set(c,!1),!1};function Bt(c,h){let b=e.capturedTimeline,A=b&&h?.activateChildren?N0(b):[];try{I0(b,c,h)}finally{for(let _ of A)lt(_)}}function I0(c,h,b){let A=b?.suppressEvents===!0;if(c){let _=c,R=h;if(typeof _.totalDuration=="function")try{let D=Number(_.totalDuration());Number.isFinite(D)&&D>0&&h>D&&(R=D)}catch(D){I("runtime.init.transport.clampDuration",D)}try{typeof c.totalTime=="function"?(c.totalTime(R,A),!A&&!D0(c)&&(c.totalTime(R+.001,!0),c.totalTime(R,!0))):c.seek(R,A)}catch(D){I("runtime.init.transport.seek",D)}}F0(h,b);for(let _ of e.deterministicAdapters)if(!(_.name==="gsap"&&c))try{_.seek({time:h,suppressEvents:A})}catch(R){I("runtime.init.transport.adapter",R)}}let Bo=Zp(document,()=>{Qt()});a.push(()=>Bo.disconnect());let P0=()=>{try{return Bo.isActive()}catch{return!1}},O0=()=>!m.isPlaying()&&!Du()&&Bo.observing&&!ri&&!oi&&e.currentTime===Ho&&e.capturedTimeline===Go,dl=()=>`${In()}|${Lu()??""}`,fl=()=>{St=window.setTimeout(H0,e.bridgeMaxPostIntervalMs)},H0=()=>{if(St=null,!e.tornDown&&!(typeof window>"u"||typeof document>"u")){if(dl()!==al){Qt();return}Ie(!1),fl()}},G0=()=>{if(e.transportRafId=null,e.tornDown)return;let c=ii;if(ii=!1,c||!O0()){e.transportRafId=window.requestAnimationFrame(Uo);return}al=dl(),fl()};Qt=()=>{e.tornDown||(ii=!0,!(ni||e.transportRafId!=null)&&(St!=null&&(window.clearTimeout(St),St=null),ii=!1,e.transportRafId=window.requestAnimationFrame(Uo)))};let Uo=()=>{if(!(e.tornDown||ni)){ni=!0;try{ti+=1;let c=In();c!==sl&&(sl=c,oi=!0);let h=Date.now(),b=oi&&!m.isPlaying()&&h-ul>=eh;if(b&&(ul=h),th({tick:ti,isPlaying:m.isPlaying(),hasCapturedTimeline:e.capturedTimeline!=null,currentTimeSeconds:m.now(),compositionChanged:b})){let D=e.capturedTimeline;if(Pn()){e.capturedTimeline&&!qe._timeline&&(qe._timeline=e.capturedTimeline),e.capturedTimeline&&e.capturedTimeline!==D&<(e.capturedTimeline);let G=ze(e.capturedTimeline,0,c);G>0&&m.setDuration(G),vt()}}if((b||ti%20===0)&&(vt(),oi=!1),(b||ti%30===0)&&ko(),e.capturedTimeline){let D=ze(e.capturedTimeline,0,c);D>0&&(!m.isPlaying()||D>=m.getDuration())&&m.setDuration(D)}if(m.isPlaying()&&!e.mediaOutputMuted)if(!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&f.isActive()&&f.context){let D=f.getTime();D>=0&&m.attachAudioSource({currentTimeSeconds:D})}else{let D=document.querySelectorAll("audio[data-start]"),G=!1;for(let X of D){if(!ge(X)||!X.isConnected||g(X))continue;let re=ee(X),Se=Me(X.dataset.duration),At=Se!=null&&Se>0?re+Se:1/0,ae=rt(X);if(Number.isFinite(re)&&Et(e.currentTime,re,At)){X.paused?!X.error&&X.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(m.attachAudioSource({currentTimeSeconds:e.currentTime}),G=!0):(m.attachAudioSource({el:X,compositionStart:re,mediaStart:ae,rate:Rt(X)}),G=!0);break}}!G&&m.hasAudioSource()&&m.detachAudioSource()}else m.hasAudioSource()&&m.detachAudioSource();let A=m.now();e.currentTime=A;let _=m.isPlaying();if(!_&&P0()?ri=!0:(_||ri||A!==Ho||e.capturedTimeline!==Go)&&(Bt(A),Ho=A,Go=e.capturedTimeline,_||(ri=!1)),_&&Ze.redrawAnimated(),m.isPlaying()&&m.reachedEnd()){f.stopAll(),m.detachAudioSource(),m.pause(),e.isPlaying=!1;let D=m.getDuration();Number.isFinite(D)&&(m.seek(D),e.currentTime=D,Bt(D)),$e("pause"),He(c),Ie(!0);return}m.isPlaying()?He(c):E0()&&(Gn=null,He(c)),Ie(!1)}finally{ni=!1,G0()}}},ml=c=>{let h=document.querySelectorAll("video, audio");for(let b of h){if(!ge(b)||!b.isConnected||!b.hasAttribute("data-start"))continue;let A=ee(b);if(!Number.isFinite(A))continue;let _=Me(b.dataset.duration),R=_!=null&&_>0?A+_:1/0;if(!Et(c,A,R))continue;let D=rt(b),G=c-A+D;if(G>=0)try{b.currentTime=G}catch{}}},Wo=()=>{if(e.nativeMediaSyncDisabled||e.webAudioMediaDisabled)return;let c=f.startGeneration(),h=document.querySelectorAll("audio[data-start]");for(let b of h){if(!ge(b)||!b.isConnected||g(b))continue;let A=ee(b);if(!Number.isFinite(A))continue;let _=rt(b),R=Number.parseFloat(b.dataset.volume??""),D=Number.isFinite(R)?R:1,G=Me(b.dataset.duration),X=G!=null&&G>0?G:Number.POSITIVE_INFINITY,re=b.closest("[data-composition-id]");if(re){let ae=j(re,0),Q=P(re,{includeAuthoredTimingAttrs:!0});Q!=null&&Q>0&&(X=Math.min(X,Math.max(0,ae+Q-A)))}let Se=kn(b);if(Mn(b,Se),typeof Rt(b)!="number")continue;(Se.kind==="web-audio"?f.scheduleMediaElementPlayback(b,A,_,m.now(),D,c,e.playbackRate):Promise.resolve(null)).then(ae=>{if(ae||!m.isPlaying())return;let Q=e.playbackRate*Pe(b),we=b.hasAttribute("data-fx-chain")||b.hasAttribute("data-automation");if(Math.abs(Q-1)>1e-9){Se.kind==="web-audio"&&we&&(b.muted=!0);return}f.decodeAudioElement(b).then(Ut=>{!Ut||!m.isPlaying()||f.schedulePlayback(b,Ut,A,_,m.now(),D,c,e.playbackRate,X)})})}};function pl(){f.setRate(e.playbackRate)&&!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&p&&m.isPlaying()&&f.hasBoundedActiveSources()&&(f.stopAll(),Wo())}if(e.capturedTimeline){let c=ze(e.capturedTimeline,0);c>0&&m.setDuration(c),lt(e.capturedTimeline)}km(window),e.transportRafId=window.requestAnimationFrame(Uo),vt(),Ie(!0),e.controlBridgeHandler=xl({onPlay:()=>{qe.play(),Ge("composition_played",{time:qe.getTime()})},onPause:()=>{qe.pause(),Ge("composition_paused",{time:qe.getTime()})},onStopMedia:()=>{f.stopAll();let c=document.querySelectorAll("video, audio");for(let h of c)ge(h)&&!h.paused&&h.pause()},onSeek:(c,h)=>{qe.seek(c),Ge("composition_seeked",{time:c})},onSetMuted:c=>{e.bridgeMuted=c;let h=c||e.mediaOutputMuted;f.setMuted(h);let b=document.querySelectorAll("video, audio");for(let A of b)ge(A)&&(A.muted=h||A.defaultMuted)},onSetVolume:c=>{e.bridgeVolume=c,f.setVolume(c);let h=document.querySelectorAll("video, audio");for(let b of h){if(!ge(b))continue;let A=parseFloat(b.dataset.volume??""),_=Number.isFinite(A)?A:1;b.volume=gi(_*c)}},onSetMediaOutputMuted:c=>{e.mediaOutputMuted=c;let h=c||e.bridgeMuted;f.setMuted(h);let b=document.querySelectorAll("video, audio");for(let A of b)ge(A)&&(A.muted=h||A.defaultMuted)},onSetNativeMediaSyncDisabled:c=>{e.nativeMediaSyncDisabled!==c&&(e.nativeMediaSyncDisabled=c,e.mediaForceSyncNextTick=!0,c?(f.stopAll(),m.detachAudioSource()):He())},onSetWebAudioMediaDisabled:c=>{e.webAudioMediaDisabled!==c&&(e.webAudioMediaDisabled=c,e.mediaForceSyncNextTick=!0,c&&(f.stopAll(),m.detachAudioSource()),He())},onSetPlaybackRate:c=>{Oo(c),e.transportClock&&e.transportClock.setRate(e.playbackRate),pl()},onSetRootDuration:w0,onSetColorGrading:(c,h)=>{Ze.setGrading(c,h)},onSetColorGradingCompare:(c,h)=>{Ze.setCompare(c,h)},onTick:()=>{if(e.tornDown||!m.isPlaying())return;let c=m.now();if(e.currentTime=c,Bt(c),m.reachedEnd()){f.stopAll(),m.detachAudioSource(),m.pause(),e.isPlaying=!1;let h=m.getDuration();Number.isFinite(h)&&(m.seek(h),e.currentTime=h,Bt(h)),$e("pause"),He(),Ie(!0)}},onEnablePickMode:()=>ei.enablePickMode(),onDisablePickMode:()=>ei.disablePickMode(),onSetRuntimeData:xo,onClearRuntimeData:yo,getCanonicalFps:()=>e.canonicalFps});let Vo=()=>{if(!e.tornDown){e.tornDown=!0,e.transportRafId!=null&&(window.cancelAnimationFrame(e.transportRafId),e.transportRafId=null),St!=null&&(window.clearTimeout(St),St=null),e.transportClock=null,f.destroy(),Ht!=null&&(window.clearTimeout(Ht),Ht=null),s!=null&&(window.cancelAnimationFrame(s),s=null),h0(),e.controlBridgeHandler&&(window.removeEventListener("message",e.controlBridgeHandler),e.controlBridgeHandler=null),i&&(window.removeEventListener("error",i),i=null),o&&(window.removeEventListener("unhandledrejection",o),o=null),e.beforeUnloadHandler&&(window.removeEventListener("beforeunload",e.beforeUnloadHandler),e.beforeUnloadHandler=null),ei.disablePickMode();for(let c of e.deterministicAdapters)if(!(!c||typeof c.revert!="function"))try{c.revert()}catch(h){I("runtime.init.site12",h)}e.deterministicAdapters=[],window.__hf?.buildReady&&(window.__hf.buildReady={});for(let c of a.splice(0))try{c()}catch(h){I("runtime.init.site13",h)}for(let c of e.injectedCompStyles)try{c.remove()}catch(h){I("runtime.init.site14",h)}e.injectedCompStyles=[];for(let c of e.injectedCompLinks)try{c.remove()}catch(h){I("runtime.init.site15",h)}e.injectedCompLinks=[];for(let c of e.injectedCompScripts)try{c.remove()}catch(h){I("runtime.init.site16",h)}e.injectedCompScripts=[],e.capturedTimeline=null,t=()=>{},window.__hfRuntimeTeardown===Vo&&(window.__hfRuntimeTeardown=null)}};window.__hfRuntimeTeardown=Vo,e.beforeUnloadHandler=Vo,window.addEventListener("beforeunload",e.beforeUnloadHandler)}var Sh=["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"],Eu=[[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 QA(e){if(e<=255)return Sh[e];let t=0,n=Eu.length-1;for(;t<=n;){let r=t+n>>1,i=Eu[r];if(e<i[0]){n=r-1;continue}if(e>i[1]){t=r+1;continue}return i[2]}return"L"}function ZA(e){let t=e.length;if(t===0)return null;let n=new Array(t),r=!1;for(let l=0;l<t;){let d=e.charCodeAt(l),m=d,f=1;if(d>=55296&&d<=56319&&l+1<t){let g=e.charCodeAt(l+1);g>=56320&&g<=57343&&(m=(d-55296<<10)+(g-56320)+65536,f=2)}let p=QA(m);(p==="R"||p==="AL"||p==="AN")&&(r=!0);for(let g=0;g<f;g++)n[l+g]=p;l+=f}if(!r)return null;let i=0;for(let l=0;l<t;l++){let d=n[l];if(d==="L"){i=0;break}if(d==="R"||d==="AL"){i=1;break}}let o=new Int8Array(t);for(let l=0;l<t;l++)o[l]=i;let a=i&1?"R":"L",u=a,s=u;for(let l=0;l<t;l++)n[l]==="NSM"?n[l]=s:s=n[l];s=u;for(let l=0;l<t;l++){let d=n[l];d==="EN"?n[l]=s==="AL"?"AN":"EN":(d==="R"||d==="L"||d==="AL")&&(s=d)}for(let l=0;l<t;l++)n[l]==="AL"&&(n[l]="R");for(let l=1;l<t-1;l++)n[l]==="ES"&&n[l-1]==="EN"&&n[l+1]==="EN"&&(n[l]="EN"),n[l]==="CS"&&(n[l-1]==="EN"||n[l-1]==="AN")&&n[l+1]===n[l-1]&&(n[l]=n[l-1]);for(let l=0;l<t;l++){if(n[l]!=="EN")continue;let d;for(d=l-1;d>=0&&n[d]==="ET";d--)n[d]="EN";for(d=l+1;d<t&&n[d]==="ET";d++)n[d]="EN"}for(let l=0;l<t;l++){let d=n[l];(d==="WS"||d==="ES"||d==="ET"||d==="CS")&&(n[l]="ON")}s=u;for(let l=0;l<t;l++){let d=n[l];d==="EN"?n[l]=s==="L"?"L":"EN":(d==="R"||d==="L")&&(s=d)}for(let l=0;l<t;l++){if(n[l]!=="ON")continue;let d=l+1;for(;d<t&&n[d]==="ON";)d++;let m=l>0?n[l-1]:u,f=d<t?n[d]:u,p=m!=="L"?"R":"L";if(p===(f!=="L"?"R":"L"))for(let y=l;y<d;y++)n[y]=p;l=d-1}for(let l=0;l<t;l++)n[l]==="ON"&&(n[l]=a);for(let l=0;l<t;l++){let d=n[l];(o[l]&1)===0?d==="R"?o[l]++:(d==="AN"||d==="EN")&&(o[l]+=2):(d==="L"||d==="AN"||d==="EN")&&o[l]++}return o}function Ah(e,t){let n=ZA(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 eE=/[ \\t\\n\\r\\f]+/g,tE=/[\\t\\n\\r\\f]| {2,}|^ | $/;function nE(e){let t=e??"normal";return t==="pre-wrap"?{mode:t,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:t,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function rE(e){if(!tE.test(e))return e;let t=e.replace(eE," ");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 iE(e){return/[\\r\\f]/.test(e)?e.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):e.replace(/\\r\\n/g,`\n`)}var _u=null,oE;function aE(){return _u===null&&(_u=new Intl.Segmenter(oE,{granularity:"word"})),_u}var sE=/\\p{Script=Arabic}/u,vo=/\\p{M}/u,Mh=/\\p{Nd}/u;function Eh(e){return sE.test(e)}function _h(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 Qe(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(_h(i))return!0;t++;continue}}if(_h(n))return!0}}return!1}function uE(e){let t=Eo(e);return t!==null&&(Ao.has(t)||Dt.has(t))}var lE=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function cE(e){return Qe(e)}function dE(e){let t=Eo(e);return t!==null&&lE.has(t)}function So(e){return!uE(e)&&!dE(e)}var Ao=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"]),Vr=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),Cu=new Set(["\'","\\u2019"]),Dt=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),fE=new Set([":",".","\\u060C","\\u061B"]),mE=new Set(["\\u104F"]),pE=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function hE(e){if(Ru(e))return!0;let t=!1;for(let n of e){if(Dt.has(n)){t=!0;continue}if(!(t&&vo.test(n)))return!1}return t}function gE(e){for(let t of e)if(!Ao.has(t)&&!Dt.has(t))return!1;return e.length>0}function bE(e){if(Ru(e))return!0;for(let t of e)if(!Vr.has(t)&&!Cu.has(t)&&!vo.test(t))return!1;return e.length>0}function Ru(e){let t=!1;for(let n of e)if(!(n==="\\\\"||vo.test(n))){if(Vr.has(n)||Dt.has(n)||Cu.has(n)){t=!0;continue}return!1}return t}function Fh(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 Eo(e){if(e.length===0)return null;let t=Fh(e,e.length);return e.slice(t)}function xE(e){let t=Array.from(e),n=t.length;for(;n>0;){let r=t[n-1];if(vo.test(r)){n--;continue}if(Vr.has(r)||Cu.has(r)){n--;continue}break}return n<=0||n===t.length?null:{head:t.slice(0,n).join(""),tail:t.slice(n).join("")}}function yE(e,t,n){return n==="text"&&!t&&e.length===1&&e!=="-"&&e!=="\\u2014"?e:null}function wh(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 u=i.repeat(a);return e[r]=u,u}function Ch(e,t){return e&&t!==null&&fE.has(t)}function vE(e){let t=Eo(e);return t!==null&&mE.has(t)}function SE(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 _o(e){let t=e.length;for(;t>0;){let n=Fh(e,t),r=e.slice(n,t);if(pE.has(r))return!0;if(!Dt.has(r))return!1;t=n}return!1}function AE(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 EE=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function Ve(e){return e.length===1?e[0]:e.join("")}function _E(e,t){let n=[];for(let r=e.length-1;r>=0;r--)n.push(e[r]);return n.push(t),Ve(n)}function wE(e,t,n,r){if(!EE.test(e))return[{text:e,isWordLike:t,kind:"text",start:n}];let i=[],o=null,a=[],u=n,s=!1,l=0;for(let d of e){let m=AE(d,r),f=m==="text"&&t;if(o!==null&&m===o&&f===s){a.push(d),l+=d.length;continue}o!==null&&i.push({text:Ve(a),isWordLike:s,kind:o,start:u}),o=m,a=[d],u=n+l,s=f,l+=d.length}return o!==null&&i.push({text:Ve(a),isWordLike:s,kind:o,start:u}),i}function wu(e){return e==="space"||e==="preserved-space"||e==="zero-width-break"||e==="hard-break"}var CE=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function RE(e,t){let n=e.texts[t];return n.startsWith("www.")?!0:CE.test(n)&&t+1<e.len&&e.kinds[t+1]==="text"&&e.texts[t+1]==="//"}function TE(e){return e.includes("?")&&(e.includes("://")||e.startsWith("www."))}function kE(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"||!RE(e,a))continue;let u=[t[a]],s=a+1;for(;s<e.len&&!wu(r[s]);){u.push(t[s]),n[a]=!0;let l=t[s].includes("?");if(r[s]="text",t[s]="",s++,l)break}t[a]=Ve(u)}let o=0;for(let a=0;a<t.length;a++){let u=t[a];u.length!==0&&(o!==a&&(t[o]=u,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 ME(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]),!TE(a))continue;let u=o+1;if(u>=e.len||wu(e.kinds[u]))continue;let s=[],l=e.starts[u],d=u;for(;d<e.len&&!wu(e.kinds[d]);)s.push(e.texts[d]),d++;s.length>0&&(t.push(Ve(s)),n.push(!0),r.push("text"),i.push(l),o=d-1)}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}var FE=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),Rh=/^[A-Za-z0-9_]+[,:;]*$/,Th=/[,:;]+$/;function Nh(e){for(let t of e)if(Mh.test(t))return!0;return!1}function Wr(e){if(e.length===0)return!1;for(let t of e)if(!(Mh.test(t)||FE.has(t)))return!1;return!0}function NE(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o],u=e.kinds[o];if(u==="text"&&Wr(a)&&Nh(a)){let s=[a],l=o+1;for(;l<e.len&&e.kinds[l]==="text"&&Wr(e.texts[l]);)s.push(e.texts[l]),l++;t.push(Ve(s)),n.push(!0),r.push("text"),i.push(e.starts[o]),o=l-1;continue}t.push(a),n.push(e.isWordLike[o]),r.push(u),i.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function LE(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o],u=e.kinds[o],s=e.isWordLike[o];if(u==="text"&&s&&Rh.test(a)){let l=[a],d=Th.test(a),m=o+1;for(;d&&m<e.len&&e.kinds[m]==="text"&&e.isWordLike[m]&&Rh.test(e.texts[m]);){let f=e.texts[m];l.push(f),d=Th.test(f),m++}t.push(Ve(l)),n.push(!0),r.push("text"),i.push(e.starts[o]),o=m-1;continue}t.push(a),n.push(s),r.push(u),i.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function DE(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 u=a.split("-"),s=u.length>1;for(let l=0;l<u.length;l++){let d=u[l];if(!s)break;(d.length===0||!Nh(d)||!Wr(d))&&(s=!1)}if(s){let l=0;for(let d=0;d<u.length;d++){let m=u[d],f=d<u.length-1?`${m}-`:m;t.push(f),n.push(!0),r.push("text"),i.push(e.starts[o]+l),l+=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 IE(e){let t=[],n=[],r=[],i=[],o=0;for(;o<e.len;){let a=[e.texts[o]],u=e.isWordLike[o],s=e.kinds[o],l=e.starts[o];if(s==="glue"){let d=[a[0]],m=l;for(o++;o<e.len&&e.kinds[o]==="glue";)d.push(e.texts[o]),o++;let f=Ve(d);if(o<e.len&&e.kinds[o]==="text")a[0]=f,a.push(e.texts[o]),u=e.isWordLike[o],s="text",l=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 d=[];for(;o<e.len&&e.kinds[o]==="glue";)d.push(e.texts[o]),o++;let m=Ve(d);if(o<e.len&&e.kinds[o]==="text"){a.push(m,e.texts[o]),u=u||e.isWordLike[o],o++;continue}a.push(m)}t.push(Ve(a)),n.push(u),r.push(s),i.push(l)}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function PE(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"||!Qe(t[o])||!Qe(t[o+1]))continue;let a=xE(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 kh(e,t,n){let r=aE(),i=0,o=[],a=[],u=[],s=[],l=[],d=[],m=[],f=[],p=[],g=[],y=[],x=[];for(let F of r.segment(e))for(let v of wE(F.segment,F.isWordLike??!1,F.index,n)){let V=function(){d[M]!==null&&(a[M]=[wh(o,d,m,M)],d[M]=null),a[M].push(v.text),u[M]=u[M]||v.isWordLike,f[M]=f[M]||T,p[M]=p[M]||L,g[M]=z,y[M]=Y,x[M]=Ch(p[M],H)},S=v.kind==="text",E=yE(v.text,v.isWordLike,v.kind),T=Qe(v.text),L=Eh(v.text),H=Eo(v.text),z=_o(v.text),Y=vE(v.text),M=i-1;t.carryCJKAfterClosingQuote&&S&&i>0&&s[M]==="text"&&T&&f[M]&&g[M]||S&&i>0&&s[M]==="text"&&gE(v.text)&&f[M]||S&&i>0&&s[M]==="text"&&y[M]?V():S&&i>0&&s[M]==="text"&&v.isWordLike&&L&&x[M]?(V(),u[M]=!0):E!==null&&i>0&&s[M]==="text"&&d[M]===E?m[M]=(m[M]??1)+1:S&&!v.isWordLike&&i>0&&s[M]==="text"&&(hE(v.text)||v.text==="-"&&u[M])?V():(o[i]=v.text,a[i]=[v.text],u[i]=v.isWordLike,s[i]=v.kind,l[i]=v.start,d[i]=E,m[i]=E===null?0:1,f[i]=T,p[i]=L,g[i]=z,y[i]=Y,x[i]=Ch(L,H),i++)}for(let F=0;F<i;F++){if(d[F]!==null){o[F]=wh(o,d,m,F);continue}o[F]=Ve(a[F])}for(let F=1;F<i;F++)s[F]==="text"&&!u[F]&&Ru(o[F])&&s[F-1]==="text"&&(o[F-1]+=o[F],u[F-1]=u[F-1]||u[F],o[F]="");let w=Array.from({length:i},()=>null),k=-1;for(let F=i-1;F>=0;F--){let v=o[F];if(v.length!==0){if(s[F]==="text"&&!u[F]&&bE(v)&&k>=0&&s[k]==="text"){let S=w[k]??[];S.push(v),w[k]=S,l[k]=l[F],o[F]="";continue}k=F}}for(let F=0;F<i;F++){let v=w[F];v!=null&&(o[F]=_E(v,o[F]))}let C=0;for(let F=0;F<i;F++){let v=o[F];v.length!==0&&(C!==F&&(o[C]=v,u[C]=u[F],s[C]=s[F],l[C]=l[F]),C++)}o.length=C,u.length=C,s.length=C,l.length=C;let N=IE({len:C,texts:o,isWordLike:u,kinds:s,starts:l}),O=PE(LE(DE(NE(ME(kE(N))))));for(let F=0;F<O.len-1;F++){let v=SE(O.texts[F]);v!==null&&(O.kinds[F]!=="space"&&O.kinds[F]!=="preserved-space"||O.kinds[F+1]!=="text"||!Eh(O.texts[F+1])||(O.texts[F]=v.space,O.isWordLike[F]=!1,O.kinds[F]=O.kinds[F]==="preserved-space"?"preserved-space":"space",O.texts[F+1]=v.marks+O.texts[F+1],O.starts[F+1]=O.starts[F]+v.space.length))}return O}function OE(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 HE(e){if(e.len<=1)return e;let t=[],n=[],r=[],i=[],o=null,a=!1,u=0,s=!1,l=!1;function d(){o!==null&&(t.push(Ve(o)),n.push(a),r.push("text"),i.push(u),o=null)}for(let m=0;m<e.len;m++){let f=e.texts[m],p=e.kinds[m],g=e.isWordLike[m],y=e.starts[m];if(p==="text"){let x=cE(f),w=So(f);if(o!==null&&s&&l){o.push(f),a=a||g,s=s||x,l=w;continue}d(),o=[f],a=g,u=y,s=x,l=w;continue}d(),t.push(f),n.push(g),r.push(p),i.push(y)}return d(),{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function Lh(e,t,n="normal",r="normal"){let i=nE(n),o=i.mode==="pre-wrap"?iE(e):rE(e);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let a=r==="keep-all"?HE(kh(o,t,i)):kh(o,t,i);return{normalized:o,chunks:OE(a,i),...a}}var Fn=null,Dh=new Map,Nn=null,GE=96,BE=/\\p{Emoji_Presentation}/u,UE=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,Tu=null,Ih=new Map;function ku(){if(Fn!==null)return Fn;if(typeof OffscreenCanvas<"u")return Fn=new OffscreenCanvas(1,1).getContext("2d"),Fn;if(typeof document<"u")return Fn=document.createElement("canvas").getContext("2d"),Fn;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function WE(e){let t=Dh.get(e);return t||(t=new Map,Dh.set(e,t)),t}function yt(e,t){let n=t.get(e);return n===void 0&&(n={width:ku().measureText(e).width,containsCJK:Qe(e)},t.set(e,n)),n}function Pt(){if(Nn!==null)return Nn;if(typeof navigator>"u")return Nn={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},Nn;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 Nn={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:r,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},Nn}function VE(e){let t=e.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return t?parseFloat(t[1]):16}function Ph(){return Tu===null&&(Tu=new Intl.Segmenter(void 0,{granularity:"grapheme"})),Tu}function zE(e){return BE.test(e)||e.includes("\\uFE0F")}function Oh(e){return UE.test(e)}function $E(e,t){let n=Ih.get(e);if(n!==void 0)return n;let r=ku();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 Ih.set(e,n),n}function qE(e){let t=0,n=Ph();for(let r of n.segment(e))zE(r.segment)&&t++;return t}function jE(e,t){return t.emojiCount===void 0&&(t.emojiCount=qE(e)),t.emojiCount}function It(e,t,n){return n===0?t.width:t.width-jE(e,t)*n}function Hh(e,t,n,r,i){if(t.breakableFitAdvances!==void 0)return t.breakableFitAdvances;let o=Ph(),a=[];for(let d of o.segment(e))a.push(d.segment);if(a.length<=1)return t.breakableFitAdvances=null,t.breakableFitAdvances;if(i==="sum-graphemes"){let d=[];for(let m of a){let f=yt(m,n);d.push(It(m,f,r))}return t.breakableFitAdvances=d,t.breakableFitAdvances}if(i==="pair-context"||a.length>GE){let d=[],m=null,f=0;for(let p of a){let g=yt(p,n),y=It(p,g,r);if(m===null)d.push(y);else{let x=m+p,w=yt(x,n);d.push(It(x,w,r)-f)}m=p,f=y}return t.breakableFitAdvances=d,t.breakableFitAdvances}let u=[],s="",l=0;for(let d of a){s+=d;let m=yt(s,n),f=It(s,m,r);u.push(f-l),l=f}return t.breakableFitAdvances=u,t.breakableFitAdvances}function Gh(e,t){let n=ku();n.font=e;let r=WE(e),i=VE(e),o=t?$E(e,i):0;return{cache:r,fontSize:i,emojiCorrection:o}}function KE(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 Bh(e,t){if(t<=0)return 0;let n=e%t;return Math.abs(n)<=1e-6?t:t-n}function Uh(e,t,n,r,i){let o=0,a=t;for(;o<e.length;){let u=a+e[o];if((o+1<e.length?u+i:u)>n+r)break;a=u,o++}return{fitCount:o,fittedWidth:a}}function XE(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 Wh(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 Vh(e,t){if(t.segmentIndex>=e.widths.length)return-1;let n=XE(e,t.segmentIndex);return n<0?-1:Wh(e,n,t)}function YE(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:Wh(e,r,n)}function zh(e,t){return e.simpleLineWalkFastPath?$h(e,t):Mu(e,t)}function $h(e,t,n){let{widths:r,kinds:i,breakableFitAdvances:o}=e;if(r.length===0)return 0;let u=Pt().lineFitEpsilon,s=t+u,l=0,d=0,m=!1,f=0,p=0,g=0,y=0,x=-1,w=0;function k(){x=-1,w=0}function C(E=g,T=y,L=d){l++,n?.({startSegmentIndex:f,startGraphemeIndex:p,endSegmentIndex:E,endGraphemeIndex:T,width:L}),d=0,m=!1,k()}function N(E,T){m=!0,f=E,p=0,g=E+1,y=0,d=T}function O(E,T,L){m=!0,f=E,p=T,g=E,y=T+1,d=L}function F(E,T){if(!m){N(E,T);return}d+=T,g=E+1,y=0}function v(E,T){let L=o[E];for(let H=T;H<L.length;H++){let z=L[H];m?d+z>s?(C(),O(E,H,z)):(d+=z,g=E,y=H+1):O(E,H,z)}m&&g===E&&y===L.length&&(g=E+1,y=0)}let S=0;for(;S<r.length&&!(!m&&(S=KE(e,S),S>=r.length));){let E=r[S],T=i[S],L=T==="space"||T==="preserved-space"||T==="tab"||T==="zero-width-break"||T==="soft-hyphen";if(!m){E>t&&o[S]!==null?v(S,0):N(S,E),L&&(x=S+1,w=d-E),S++;continue}if(d+E>s){if(L){F(S,E),C(S+1,0,d-E),S++;continue}if(x>=0){if(g>x||g===x&&y>0){C();continue}C(x,0,w);continue}if(E>t&&o[S]!==null){C(),v(S,0),S++;continue}C();continue}F(S,E),L&&(x=S+1,w=d-E),S++}return m&&C(),l}function Mu(e,t,n){if(e.simpleLineWalkFastPath)return $h(e,t,n);let{widths:r,lineEndFitAdvances:i,lineEndPaintAdvances:o,kinds:a,breakableFitAdvances:u,discretionaryHyphenWidth:s,tabStopAdvance:l,chunks:d}=e;if(r.length===0||d.length===0)return 0;let m=Pt(),f=m.lineFitEpsilon,p=t+f,g=0,y=0,x=!1,w=0,k=0,C=0,N=0,O=-1,F=0,v=0,S=null;function E(){O=-1,F=0,v=0,S=null}function T(B=C,$=N,q=y){g++,n?.({startSegmentIndex:w,startGraphemeIndex:k,endSegmentIndex:B,endGraphemeIndex:$,width:q}),y=0,x=!1,E()}function L(B,$){x=!0,w=B,k=0,C=B+1,N=0,y=$}function H(B,$,q){x=!0,w=B,k=$,C=B,N=$+1,y=q}function z(B,$){if(!x){L(B,$);return}y+=$,C=B+1,N=0}function Y(B,$,q,J){if(!$)return;let j=B==="tab"?0:i[q],P=B==="tab"?J:o[q];O=q+1,F=y-J+j,v=y-J+P,S=B}function M(B,$){let q=u[B];for(let J=$;J<q.length;J++){let j=q[J];x?y+j>p?(T(),H(B,J,j)):(y+=j,C=B,N=J+1):H(B,J,j)}x&&C===B&&N===q.length&&(C=B+1,N=0)}function V(B){if(S!=="soft-hyphen")return!1;let $=u[B];if($==null)return!1;let{fitCount:q,fittedWidth:J}=Uh($,y,t,f,s);return q===0?!1:(y=J,C=B,N=q,E(),q===$.length?(C=B+1,N=0,!0):(T(B,q,J+s),M(B,q),!0))}function te(B){g++,n?.({startSegmentIndex:B.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:B.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),E()}for(let B=0;B<d.length;B++){let $=d[B];if($.startSegmentIndex===$.endSegmentIndex){te($);continue}x=!1,y=0,w=$.startSegmentIndex,k=0,C=$.startSegmentIndex,N=0,E();let q=$.startSegmentIndex;for(;q<$.endSegmentIndex;){let J=a[q],j=J==="space"||J==="preserved-space"||J==="tab"||J==="zero-width-break"||J==="soft-hyphen",P=J==="tab"?Bh(y,l):r[q];if(J==="soft-hyphen"){x&&(C=q+1,N=0,O=q+1,F=y+s,v=y+s,S=J),q++;continue}if(!x){P>t&&u[q]!==null?M(q,0):L(q,P),Y(J,j,q,P),q++;continue}if(y+P>p){let ee=y+(J==="tab"?0:i[q]),pe=y+(J==="tab"?P:o[q]);if(S==="soft-hyphen"&&m.preferEarlySoftHyphenBreak&&F<=p){T(O,0,v);continue}if(S==="soft-hyphen"&&V(q)){q++;continue}if(j&&ee<=p){z(q,P),T(q+1,0,pe),q++;continue}if(O>=0&&F<=p){if(C>O||C===O&&N>0){T();continue}let ne=O;T(ne,0,v),q=ne;continue}if(P>t&&u[q]!==null){T(),M(q,0),q++;continue}T();continue}z(q,P),Y(J,j,q,P),q++}if(x){let J=O===$.consumedEndSegmentIndex?v:y;T($.consumedEndSegmentIndex,0,J)}}return g}function qh(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:u,kinds:s,breakableFitAdvances:l,discretionaryHyphenWidth:d,tabStopAdvance:m}=e,f=Pt(),p=f.lineFitEpsilon,g=r+p,y=0,x=!1,w=t.segmentIndex,k=t.graphemeIndex,C=-1,N=0,O=0,F=null;function v(){C=-1,N=0,O=0,F=null}function S(M=w,V=k,te=y){return x?(t.segmentIndex=M,t.graphemeIndex=V,te):null}function E(M,V){x=!0,w=M+1,k=0,y=V}function T(M,V,te){x=!0,w=M,k=V+1,y=te}function L(M,V){if(!x){E(M,V);return}y+=V,w=M+1,k=0}function H(M,V,te,B){if(!V)return;let $=M==="tab"?0:a[te],q=M==="tab"?B:u[te];C=te+1,N=y-B+$,O=y-B+q,F=M}function z(M,V){let te=l[M];for(let B=V;B<te.length;B++){let $=te[B];if(!x)T(M,B,$);else{if(y+$>g)return S();y+=$,w=M,k=B+1}}return x&&w===M&&k===te.length&&(w=M+1,k=0),null}function Y(M){if(F!=="soft-hyphen"||C<0)return null;let V=l[M]??null;if(V!==null){let{fitCount:te,fittedWidth:B}=Uh(V,y,r,p,d);if(te===V.length)return y=B,w=M+1,k=0,v(),null;if(te>0)return S(M,te,B+d)}return N<=g?S(C,0,O):null}for(let M=t.segmentIndex;M<i.endSegmentIndex;M++){let V=s[M],te=V==="space"||V==="preserved-space"||V==="tab"||V==="zero-width-break"||V==="soft-hyphen",B=M===t.segmentIndex?t.graphemeIndex:0,$=V==="tab"?Bh(y,m):o[M];if(V==="soft-hyphen"&&B===0){x&&(w=M+1,k=0,C=M+1,N=y+d,O=y+d,F=V);continue}if(!x){if(B>0){let J=z(M,B);if(J!==null)return J}else if($>r&&l[M]!==null){let J=z(M,0);if(J!==null)return J}else E(M,$);H(V,te,M,$);continue}if(y+$>g){let J=y+(V==="tab"?0:a[M]),j=y+(V==="tab"?$:u[M]);if(F==="soft-hyphen"&&f.preferEarlySoftHyphenBreak&&N<=g)return S(C,0,O);let P=Y(M);if(P!==null)return P;if(te&&J<=g)return L(M,$),S(M+1,0,j);if(C>=0&&N<=g)return w>C||w===C&&k>0?S():S(C,0,O);if($>r&&l[M]!==null){let U=S();if(U!==null)return U;let ee=z(M,0);if(ee!==null)return ee}return S()}L(M,$),H(V,te,M,$)}return C===i.consumedEndSegmentIndex&&k===0?S(i.consumedEndSegmentIndex,0,O):S(i.consumedEndSegmentIndex,0,y)}function JE(e,t,n){let{widths:r,kinds:i,breakableFitAdvances:o}=e,u=Pt().lineFitEpsilon,s=n+u,l=0,d=!1,m=t.segmentIndex,f=t.graphemeIndex,p=-1,g=0;for(let y=t.segmentIndex;y<r.length;y++){let x=r[y],w=i[y],k=w==="space"||w==="preserved-space"||w==="tab"||w==="zero-width-break"||w==="soft-hyphen",C=y===t.segmentIndex?t.graphemeIndex:0,N=o[y];if(!d){if(C>0||x>n&&N!==null){let O=N,F=O[C];d=!0,l=F,m=y,f=C+1;for(let v=C+1;v<O.length;v++){let S=O[v];if(l+S>s)return t.segmentIndex=m,t.graphemeIndex=f,l;l+=S,m=y,f=v+1}m===y&&f===O.length&&(m=y+1,f=0)}else d=!0,l=x,m=y+1,f=0;k&&(p=y+1,g=l-x);continue}if(l+x>s)return k?(t.segmentIndex=y+1,t.graphemeIndex=0,l):p>=0?m>p||m===p&&f>0?(t.segmentIndex=m,t.graphemeIndex=f,l):(t.segmentIndex=p,t.graphemeIndex=0,g):(t.segmentIndex=m,t.graphemeIndex=f,l);l+=x,m=y+1,f=0,k&&(p=y+1,g=l-x)}return d?(t.segmentIndex=m,t.graphemeIndex=f,l):null}function QE(e,t,n){let r=Vh(e,t);return r<0?null:e.simpleLineWalkFastPath?JE(e,t,n):qh(e,t,r,n)}function jh(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=Vh(e,n);for(;o>=0;){let a=qh(e,n,o,t);if(a===null)return{lineCount:r,maxLineWidth:i};r++,a>i&&(i=a),o=YE(e,o,n)}return{lineCount:r,maxLineWidth:i}}for(;;){let o=QE(e,n,t);if(o===null)return{lineCount:r,maxLineWidth:i};r++,o>i&&(i=o)}}var Fu=null;function ZE(){return Fu===null&&(Fu=new Intl.Segmenter(void 0,{granularity:"grapheme"})),Fu}function e_(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 t_(e,t){let n=[],r=[],i=0,o=!1,a=!1,u=!1;function s(){r.length!==0&&(n.push({text:r.length===1?r[0]:r.join(""),start:i}),r=[],o=!1,a=!1,u=!1)}function l(m,f,p){r=[m],i=f,o=p,a=_o(m),u=Vr.has(m)}function d(m,f){r.push(m),o=o||f;let p=_o(m);m.length===1&&Dt.has(m)?a=a||p:a=p,u=!1}for(let m of ZE().segment(e)){let f=m.segment,p=Qe(f);if(r.length===0){l(f,m.index,p);continue}if(u||Ao.has(f)||Dt.has(f)||t.carryCJKAfterClosingQuote&&p&&a){d(f,p);continue}if(!o&&!p){d(f,p);continue}s(),l(f,m.index,p)}return s(),n}function n_(e){if(e.length<=1)return e;let t=[],n=[e[0].text],r=e[0].start,i=Qe(e[0].text),o=So(e[0].text);function a(){t.push({text:n.length===1?n[0]:n.join(""),start:r})}for(let u=1;u<e.length;u++){let s=e[u],l=Qe(s.text),d=So(s.text);if(i&&o){n.push(s.text),i=i||l,o=d;continue}a(),n=[s.text],r=s.start,i=l,o=d}return a(),t}function r_(e,t,n,r){let i=Pt(),{cache:o,emojiCorrection:a}=Gh(t,Oh(e.normalized)),u=It("-",yt("-",o),a),l=It(" ",yt(" ",o),a)*8;if(e.len===0)return e_(n);let d=[],m=[],f=[],p=[],g=e.chunks.length<=1,y=n?[]:null,x=[],w=n?[]:null,k=Array.from({length:e.len});function C(v,S,E,T,L,H,z){L!=="text"&&L!=="space"&&L!=="zero-width-break"&&(g=!1),d.push(S),m.push(E),f.push(T),p.push(L),y?.push(H),x.push(z),w!==null&&w.push(v)}function N(v,S,E,T,L){let H=yt(v,o),z=It(v,H,a),Y=S==="space"||S==="preserved-space"||S==="zero-width-break"?0:z,M=S==="space"||S==="zero-width-break"?0:z;if(L&&T&&v.length>1){let V="sum-graphemes";Wr(v)?V="pair-context":i.preferPrefixWidthsForBreakableRuns&&(V="segment-prefixes");let te=Hh(v,H,o,a,V);C(v,z,Y,M,S,E,te);return}C(v,z,Y,M,S,E,null)}for(let v=0;v<e.len;v++){k[v]=d.length;let S=e.texts[v],E=e.isWordLike[v],T=e.kinds[v],L=e.starts[v];if(T==="soft-hyphen"){C(S,0,u,u,T,L,null);continue}if(T==="hard-break"){C(S,0,0,0,T,L,null);continue}if(T==="tab"){C(S,0,0,0,T,L,null);continue}let H=yt(S,o);if(T==="text"&&H.containsCJK){let z=t_(S,i),Y=r==="keep-all"?n_(z):z;for(let M=0;M<Y.length;M++){let V=Y[M];N(V.text,"text",L+V.start,E,r==="keep-all"||!Qe(V.text))}continue}N(S,T,L,E,!0)}let O=i_(e.chunks,k,d.length),F=y===null?null:Ah(e.normalized,y);return w!==null?{widths:d,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:p,simpleLineWalkFastPath:g,segLevels:F,breakableFitAdvances:x,discretionaryHyphenWidth:u,tabStopAdvance:l,chunks:O,segments:w}:{widths:d,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:p,simpleLineWalkFastPath:g,segLevels:F,breakableFitAdvances:x,discretionaryHyphenWidth:u,tabStopAdvance:l,chunks:O}}function i_(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,u=o.endSegmentIndex<t.length?t[o.endSegmentIndex]:n,s=o.consumedEndSegmentIndex<t.length?t[o.consumedEndSegmentIndex]:n;r.push({startSegmentIndex:a,endSegmentIndex:u,consumedEndSegmentIndex:s})}return r}function Kh(e,t,n,r){let i=r?.wordBreak??"normal",o=Lh(e,Pt(),r?.whiteSpace,i);return r_(o,t,n,i)}function wo(e,t,n){return Kh(e,t,!1,n)}function Xh(e,t,n){return Kh(e,t,!0,n)}function Co(e,t,n){let r=zh(e,t);return{lineCount:r,height:r*n}}function o_(e){return{width:e.width,start:{segmentIndex:e.startSegmentIndex,graphemeIndex:e.startGraphemeIndex},end:{segmentIndex:e.endSegmentIndex,graphemeIndex:e.endGraphemeIndex}}}function a_(e,t,n){return e.widths.length===0?0:Mu(e,t,r=>{n(o_(r))})}function Yh(e,t){return jh(e,t)}function Jh(e){let t=0;return a_(e,Number.POSITIVE_INFINITY,n=>{n.width>t&&(t=n.width)}),t}var s_={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function Qh(e,t){let n={...s_,...t},r=1.2;for(let i=n.baseFontSize;i>=n.minFontSize;i-=n.step){let o=`${n.fontWeight} ${i}px ${n.fontFamily}`,a=wo(e,o),{lineCount:u}=Co(a,n.maxWidth,i*r);if(u<=1)return{fontSize:i,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}var Zh={prepare:wo,layout:Co,prepareWithSegments:Xh,measureLineStats:Yh,measureNaturalWidth:Jh};window.__timelines=window.__timelines||{};Um();window.__hyperframes={fitTextFontSize:Qh,getVariables:Al,pretext:Zh,registerRuntimeDataHandler:bh,setRuntimeData:xo,clearRuntimeData:yo};function e0(){let e=window;e.__hyperframeRuntimeBootstrapped||(e.__hyperframeRuntimeBootstrapped=!0,vh())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e0,{once:!0}):e0();})();\n';
|
|
60825
60825
|
}
|
|
60826
60826
|
});
|
|
60827
60827
|
|
|
@@ -62405,13 +62405,13 @@ function splitSegmentByBreakKind(segment, isWordLike, start, whiteSpaceProfile)
|
|
|
62405
62405
|
let currentTextParts = [];
|
|
62406
62406
|
let currentStart = start;
|
|
62407
62407
|
let currentWordLike = false;
|
|
62408
|
-
let
|
|
62408
|
+
let offset3 = 0;
|
|
62409
62409
|
for (const ch of segment) {
|
|
62410
62410
|
const kind = classifySegmentBreakChar(ch, whiteSpaceProfile);
|
|
62411
62411
|
const wordLike = kind === "text" && isWordLike;
|
|
62412
62412
|
if (currentKind !== null && kind === currentKind && wordLike === currentWordLike) {
|
|
62413
62413
|
currentTextParts.push(ch);
|
|
62414
|
-
|
|
62414
|
+
offset3 += ch.length;
|
|
62415
62415
|
continue;
|
|
62416
62416
|
}
|
|
62417
62417
|
if (currentKind !== null) {
|
|
@@ -62424,9 +62424,9 @@ function splitSegmentByBreakKind(segment, isWordLike, start, whiteSpaceProfile)
|
|
|
62424
62424
|
}
|
|
62425
62425
|
currentKind = kind;
|
|
62426
62426
|
currentTextParts = [ch];
|
|
62427
|
-
currentStart = start +
|
|
62427
|
+
currentStart = start + offset3;
|
|
62428
62428
|
currentWordLike = wordLike;
|
|
62429
|
-
|
|
62429
|
+
offset3 += ch.length;
|
|
62430
62430
|
}
|
|
62431
62431
|
if (currentKind !== null) {
|
|
62432
62432
|
pieces.push({
|
|
@@ -62647,15 +62647,15 @@ function splitHyphenatedNumericRuns(segmentation) {
|
|
|
62647
62647
|
}
|
|
62648
62648
|
}
|
|
62649
62649
|
if (shouldSplit) {
|
|
62650
|
-
let
|
|
62650
|
+
let offset3 = 0;
|
|
62651
62651
|
for (let j3 = 0; j3 < parts.length; j3++) {
|
|
62652
62652
|
const part = parts[j3];
|
|
62653
62653
|
const splitText = j3 < parts.length - 1 ? `${part}-` : part;
|
|
62654
62654
|
texts.push(splitText);
|
|
62655
62655
|
isWordLike.push(true);
|
|
62656
62656
|
kinds.push("text");
|
|
62657
|
-
starts.push(segmentation.starts[i] +
|
|
62658
|
-
|
|
62657
|
+
starts.push(segmentation.starts[i] + offset3);
|
|
62658
|
+
offset3 += splitText.length;
|
|
62659
62659
|
}
|
|
62660
62660
|
continue;
|
|
62661
62661
|
}
|
|
@@ -64747,6 +64747,634 @@ var init_canaryRegistry = __esm({
|
|
|
64747
64747
|
}
|
|
64748
64748
|
});
|
|
64749
64749
|
|
|
64750
|
+
// ../core/dist/vfx/fractalNoise.frag.js
|
|
64751
|
+
var HASH_CONSTANTS, mulX, mulY, mulMix, offset2, shift1, shift2, divisor, MAX_OCTAVES, FRACTAL_NOISE_FRAG;
|
|
64752
|
+
var init_fractalNoise_frag = __esm({
|
|
64753
|
+
"../core/dist/vfx/fractalNoise.frag.js"() {
|
|
64754
|
+
"use strict";
|
|
64755
|
+
HASH_CONSTANTS = {
|
|
64756
|
+
/** Odd 32-bit multipliers, one per lattice axis plus one for the seed. */
|
|
64757
|
+
mulX: 374761393,
|
|
64758
|
+
mulY: 668265263,
|
|
64759
|
+
mulMix: 1274126177,
|
|
64760
|
+
/** 2^32/φ — breaks the all-zero fixed point at lattice corner (0, 0). */
|
|
64761
|
+
offset: 2654435769,
|
|
64762
|
+
shift1: 13,
|
|
64763
|
+
shift2: 16,
|
|
64764
|
+
/** 2^32: maps the mixed 32-bit word into [0, 1). */
|
|
64765
|
+
divisor: 4294967296
|
|
64766
|
+
};
|
|
64767
|
+
({ mulX, mulY, mulMix, offset: offset2, shift1, shift2, divisor } = HASH_CONSTANTS);
|
|
64768
|
+
MAX_OCTAVES = 20;
|
|
64769
|
+
FRACTAL_NOISE_FRAG = `#version 300 es
|
|
64770
|
+
precision highp float;
|
|
64771
|
+
precision highp int;
|
|
64772
|
+
|
|
64773
|
+
in vec2 v_uv;
|
|
64774
|
+
out vec4 fragColor;
|
|
64775
|
+
|
|
64776
|
+
uniform vec2 u_size;
|
|
64777
|
+
uniform float u_t;
|
|
64778
|
+
uniform float u_fps;
|
|
64779
|
+
uniform float u_fractalType;
|
|
64780
|
+
uniform float u_noiseType;
|
|
64781
|
+
uniform float u_invert;
|
|
64782
|
+
uniform float u_contrast;
|
|
64783
|
+
uniform float u_brightness;
|
|
64784
|
+
uniform float u_scale;
|
|
64785
|
+
uniform float u_complexity;
|
|
64786
|
+
uniform float u_subInfluence;
|
|
64787
|
+
uniform float u_subScaling;
|
|
64788
|
+
uniform float u_evolution;
|
|
64789
|
+
uniform float u_randomSeed;
|
|
64790
|
+
uniform float u_opacity;
|
|
64791
|
+
|
|
64792
|
+
float hfHashUnit(int ix, int iy, int seed) {
|
|
64793
|
+
uint h = ((uint(ix) * ${mulX}u) ^ (uint(iy) * ${mulY}u) ^ (uint(seed) * ${mulMix}u)) + ${offset2}u;
|
|
64794
|
+
h = h ^ (h >> ${shift1}u);
|
|
64795
|
+
h = h * ${mulMix}u;
|
|
64796
|
+
h = h ^ (h >> ${shift2}u);
|
|
64797
|
+
return float(h) / ${divisor}.0;
|
|
64798
|
+
}
|
|
64799
|
+
|
|
64800
|
+
float hfFade(float f, float noiseType) {
|
|
64801
|
+
if (noiseType < 1.5) return 0.0;
|
|
64802
|
+
if (noiseType < 2.5) return f;
|
|
64803
|
+
if (noiseType < 3.5) return f * f * (3.0 - 2.0 * f);
|
|
64804
|
+
return f * f * f * (f * (f * 6.0 - 15.0) + 10.0);
|
|
64805
|
+
}
|
|
64806
|
+
|
|
64807
|
+
float hfValueNoise(vec2 p, int seed) {
|
|
64808
|
+
vec2 cell = floor(p);
|
|
64809
|
+
vec2 f = p - cell;
|
|
64810
|
+
int ix = int(cell.x);
|
|
64811
|
+
int iy = int(cell.y);
|
|
64812
|
+
float sx = hfFade(f.x, u_noiseType);
|
|
64813
|
+
float sy = hfFade(f.y, u_noiseType);
|
|
64814
|
+
float bottom = mix(hfHashUnit(ix, iy, seed), hfHashUnit(ix + 1, iy, seed), sx);
|
|
64815
|
+
float top = mix(hfHashUnit(ix, iy + 1, seed), hfHashUnit(ix + 1, iy + 1, seed), sx);
|
|
64816
|
+
return mix(bottom, top, sy);
|
|
64817
|
+
}
|
|
64818
|
+
|
|
64819
|
+
float hfFbm(vec2 p) {
|
|
64820
|
+
float lacunarity = 100.0 / max(u_subScaling, 1.0);
|
|
64821
|
+
float gain = u_subInfluence / 100.0;
|
|
64822
|
+
int seed = int(u_randomSeed);
|
|
64823
|
+
float amp = 1.0;
|
|
64824
|
+
float freq = 1.0;
|
|
64825
|
+
float sum = 0.0;
|
|
64826
|
+
float norm = 0.0;
|
|
64827
|
+
for (int i = 0; i < ${MAX_OCTAVES}; i++) {
|
|
64828
|
+
if (float(i) >= u_complexity) break;
|
|
64829
|
+
sum += amp * hfValueNoise(p * freq, seed + i);
|
|
64830
|
+
norm += amp;
|
|
64831
|
+
amp *= gain;
|
|
64832
|
+
freq *= lacunarity;
|
|
64833
|
+
}
|
|
64834
|
+
return norm > 0.0 ? sum / norm : 0.0;
|
|
64835
|
+
}
|
|
64836
|
+
|
|
64837
|
+
void main() {
|
|
64838
|
+
vec2 px = v_uv * u_size;
|
|
64839
|
+
vec2 p = px / max(u_scale, 1.0) + vec2(u_evolution, u_evolution * 0.5);
|
|
64840
|
+
float v = hfFbm(p);
|
|
64841
|
+
v = (v - 0.5) * (u_contrast / 100.0) + 0.5 + u_brightness / 100.0;
|
|
64842
|
+
if (u_invert > 0.5) v = 1.0 - v;
|
|
64843
|
+
v = clamp(v, 0.0, 1.0);
|
|
64844
|
+
float a = clamp(u_opacity / 100.0, 0.0, 1.0);
|
|
64845
|
+
fragColor = vec4(v * a, v * a, v * a, a);
|
|
64846
|
+
}
|
|
64847
|
+
`;
|
|
64848
|
+
}
|
|
64849
|
+
});
|
|
64850
|
+
|
|
64851
|
+
// ../core/dist/vfx/displacementMap.frag.js
|
|
64852
|
+
var DISPLACEMENT_MAP_CONSTANTS, lumaR, lumaG, lumaB, DISPLACEMENT_MAP_FRAG;
|
|
64853
|
+
var init_displacementMap_frag = __esm({
|
|
64854
|
+
"../core/dist/vfx/displacementMap.frag.js"() {
|
|
64855
|
+
"use strict";
|
|
64856
|
+
DISPLACEMENT_MAP_CONSTANTS = {
|
|
64857
|
+
lumaR: 0.299,
|
|
64858
|
+
lumaG: 0.587,
|
|
64859
|
+
lumaB: 0.114
|
|
64860
|
+
};
|
|
64861
|
+
({ lumaR, lumaG, lumaB } = DISPLACEMENT_MAP_CONSTANTS);
|
|
64862
|
+
DISPLACEMENT_MAP_FRAG = `#version 300 es
|
|
64863
|
+
precision highp float;
|
|
64864
|
+
|
|
64865
|
+
in vec2 v_uv;
|
|
64866
|
+
out vec4 fragColor;
|
|
64867
|
+
|
|
64868
|
+
uniform vec2 u_size;
|
|
64869
|
+
uniform float u_t;
|
|
64870
|
+
uniform float u_fps;
|
|
64871
|
+
uniform sampler2D u_src;
|
|
64872
|
+
uniform float u_useH;
|
|
64873
|
+
uniform float u_maxH;
|
|
64874
|
+
uniform float u_useV;
|
|
64875
|
+
uniform float u_maxV;
|
|
64876
|
+
uniform float u_behavior;
|
|
64877
|
+
uniform float u_edge;
|
|
64878
|
+
uniform float u_expand;
|
|
64879
|
+
|
|
64880
|
+
vec4 hfSampleSrc(vec2 uv) {
|
|
64881
|
+
if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) return vec4(0.0);
|
|
64882
|
+
return texture(u_src, uv);
|
|
64883
|
+
}
|
|
64884
|
+
|
|
64885
|
+
// The selector's value, in [0, 1]. Half and Off both land on 0.5, which is the
|
|
64886
|
+
// "no displacement" midpoint the caller subtracts.
|
|
64887
|
+
float hfMapChannel(vec4 premultiplied, float selector) {
|
|
64888
|
+
vec3 rgb = premultiplied.a > 0.0 ? premultiplied.rgb / premultiplied.a : vec3(0.0);
|
|
64889
|
+
if (selector < 1.5) return rgb.r;
|
|
64890
|
+
if (selector < 2.5) return rgb.g;
|
|
64891
|
+
if (selector < 3.5) return rgb.b;
|
|
64892
|
+
if (selector < 4.5) return premultiplied.a;
|
|
64893
|
+
if (selector < 8.5) return dot(rgb, vec3(${lumaR}, ${lumaG}, ${lumaB}));
|
|
64894
|
+
if (selector < 9.5) return 1.0;
|
|
64895
|
+
return 0.5;
|
|
64896
|
+
}
|
|
64897
|
+
|
|
64898
|
+
void main() {
|
|
64899
|
+
vec4 mapTexel = texture(u_src, v_uv);
|
|
64900
|
+
float h = hfMapChannel(mapTexel, u_useH);
|
|
64901
|
+
float v = hfMapChannel(mapTexel, u_useV);
|
|
64902
|
+
vec2 d = vec2((h - 0.5) * 2.0 * u_maxH, (v - 0.5) * 2.0 * u_maxV);
|
|
64903
|
+
fragColor = hfSampleSrc(v_uv + d / u_size);
|
|
64904
|
+
}
|
|
64905
|
+
`;
|
|
64906
|
+
}
|
|
64907
|
+
});
|
|
64908
|
+
|
|
64909
|
+
// ../core/dist/vfx/waveWarp.frag.js
|
|
64910
|
+
var WAVE_WARP_CONSTANTS, tau, degreesPerTurn, WAVE_WARP_FRAG;
|
|
64911
|
+
var init_waveWarp_frag = __esm({
|
|
64912
|
+
"../core/dist/vfx/waveWarp.frag.js"() {
|
|
64913
|
+
"use strict";
|
|
64914
|
+
WAVE_WARP_CONSTANTS = {
|
|
64915
|
+
tau: 6.283185307179586,
|
|
64916
|
+
degreesPerTurn: 360
|
|
64917
|
+
};
|
|
64918
|
+
({ tau, degreesPerTurn } = WAVE_WARP_CONSTANTS);
|
|
64919
|
+
WAVE_WARP_FRAG = `#version 300 es
|
|
64920
|
+
precision highp float;
|
|
64921
|
+
|
|
64922
|
+
in vec2 v_uv;
|
|
64923
|
+
out vec4 fragColor;
|
|
64924
|
+
|
|
64925
|
+
uniform vec2 u_size;
|
|
64926
|
+
uniform float u_t;
|
|
64927
|
+
uniform float u_fps;
|
|
64928
|
+
uniform sampler2D u_src;
|
|
64929
|
+
uniform float u_waveType;
|
|
64930
|
+
uniform float u_height;
|
|
64931
|
+
uniform float u_width;
|
|
64932
|
+
uniform float u_direction;
|
|
64933
|
+
uniform float u_speed;
|
|
64934
|
+
uniform float u_pinning;
|
|
64935
|
+
uniform float u_phase;
|
|
64936
|
+
|
|
64937
|
+
// Outside the layer's own box there is nothing to warp in from, so the wave
|
|
64938
|
+
// carries transparency rather than a smeared edge pixel.
|
|
64939
|
+
vec4 hfSampleSrc(vec2 uv) {
|
|
64940
|
+
if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) return vec4(0.0);
|
|
64941
|
+
return texture(u_src, uv);
|
|
64942
|
+
}
|
|
64943
|
+
|
|
64944
|
+
void main() {
|
|
64945
|
+
vec2 px = v_uv * u_size;
|
|
64946
|
+
float dir = radians(u_direction);
|
|
64947
|
+
vec2 travel = vec2(sin(dir), -cos(dir));
|
|
64948
|
+
vec2 swing = vec2(-travel.y, travel.x);
|
|
64949
|
+
float proj = (px.x + 1.0) * travel.x + px.y * travel.y;
|
|
64950
|
+
float turns = proj / max(u_width, 1.0) + u_phase / ${degreesPerTurn}.0 + u_speed * u_t;
|
|
64951
|
+
float disp = u_height * sin(${tau} * turns);
|
|
64952
|
+
fragColor = hfSampleSrc((px + swing * disp) / u_size);
|
|
64953
|
+
}
|
|
64954
|
+
`;
|
|
64955
|
+
}
|
|
64956
|
+
});
|
|
64957
|
+
|
|
64958
|
+
// ../core/dist/vfx.js
|
|
64959
|
+
function getVfxDef(id) {
|
|
64960
|
+
return BY_ID2.get(id);
|
|
64961
|
+
}
|
|
64962
|
+
function normalizeVfxParams(id, values) {
|
|
64963
|
+
const def = BY_ID2.get(id);
|
|
64964
|
+
if (!def)
|
|
64965
|
+
return {};
|
|
64966
|
+
const out = {};
|
|
64967
|
+
for (const p2 of def.params) {
|
|
64968
|
+
const raw = values?.[p2.key];
|
|
64969
|
+
out[p2.key] = p2.kind === "enum" ? normalizeEnumParam(p2, raw) : p2.kind === "bool" ? normalizeBoolParam(p2, raw) : p2.kind === "ref" ? normalizeRefParam(raw) : normalizeNumberParam(p2, raw);
|
|
64970
|
+
}
|
|
64971
|
+
return out;
|
|
64972
|
+
}
|
|
64973
|
+
function coerceFiniteNumber(raw) {
|
|
64974
|
+
const n3 = typeof raw === "number" ? raw : typeof raw === "string" && raw.trim() !== "" ? Number(raw) : Number.NaN;
|
|
64975
|
+
return Number.isFinite(n3) ? n3 : void 0;
|
|
64976
|
+
}
|
|
64977
|
+
function normalizeEnumParam(p2, raw) {
|
|
64978
|
+
const n3 = coerceFiniteNumber(raw);
|
|
64979
|
+
return n3 !== void 0 && p2.options.some((o) => o.value === n3) ? n3 : p2.default;
|
|
64980
|
+
}
|
|
64981
|
+
function normalizeBoolParam(p2, raw) {
|
|
64982
|
+
return typeof raw === "boolean" ? raw : p2.default;
|
|
64983
|
+
}
|
|
64984
|
+
function normalizeRefParam(raw) {
|
|
64985
|
+
return typeof raw === "string" ? raw : "";
|
|
64986
|
+
}
|
|
64987
|
+
function normalizeNumberParam(p2, raw) {
|
|
64988
|
+
const n3 = coerceFiniteNumber(raw);
|
|
64989
|
+
return n3 !== void 0 ? Math.min(p2.max, Math.max(p2.min, n3)) : p2.default;
|
|
64990
|
+
}
|
|
64991
|
+
function enabledVfxNodes(chain) {
|
|
64992
|
+
return chain.nodes.filter((n3) => n3.enabled !== false);
|
|
64993
|
+
}
|
|
64994
|
+
function chainCapture(chain) {
|
|
64995
|
+
let best = "none";
|
|
64996
|
+
for (const node of enabledVfxNodes(chain)) {
|
|
64997
|
+
const def = BY_ID2.get(node.type);
|
|
64998
|
+
if (def && CAPTURE_RANK[def.capture] > CAPTURE_RANK[best])
|
|
64999
|
+
best = def.capture;
|
|
65000
|
+
}
|
|
65001
|
+
return best;
|
|
65002
|
+
}
|
|
65003
|
+
function parseVfxChain(json) {
|
|
65004
|
+
let raw;
|
|
65005
|
+
try {
|
|
65006
|
+
raw = JSON.parse(json);
|
|
65007
|
+
} catch (err) {
|
|
65008
|
+
throw new VfxChainError(`Chain file is not valid JSON: ${err.message}`);
|
|
65009
|
+
}
|
|
65010
|
+
if (typeof raw !== "object" || raw === null) {
|
|
65011
|
+
throw new VfxChainError("Chain file must be a JSON object.");
|
|
65012
|
+
}
|
|
65013
|
+
const obj = raw;
|
|
65014
|
+
if (obj.version !== HF_VFX_CHAIN_VERSION) {
|
|
65015
|
+
throw new VfxChainError(`Unsupported chain version: ${String(obj.version)}`);
|
|
65016
|
+
}
|
|
65017
|
+
if (!Array.isArray(obj.nodes)) {
|
|
65018
|
+
throw new VfxChainError("Chain file is missing a `nodes` array.");
|
|
65019
|
+
}
|
|
65020
|
+
const nodes = obj.nodes.map(parseVfxNode);
|
|
65021
|
+
return { version: HF_VFX_CHAIN_VERSION, nodes };
|
|
65022
|
+
}
|
|
65023
|
+
function serializeVfxChain(chain) {
|
|
65024
|
+
return JSON.stringify({
|
|
65025
|
+
version: HF_VFX_CHAIN_VERSION,
|
|
65026
|
+
nodes: chain.nodes.map(serializeVfxNode)
|
|
65027
|
+
});
|
|
65028
|
+
}
|
|
65029
|
+
function isPlainObject2(v2) {
|
|
65030
|
+
return typeof v2 === "object" && v2 !== null;
|
|
65031
|
+
}
|
|
65032
|
+
function requireVfxNodeType(node, i) {
|
|
65033
|
+
if (typeof node.type !== "string" || !BY_ID2.has(node.type)) {
|
|
65034
|
+
throw new VfxChainError(`Node ${i} has unknown effect type: ${String(node.type)}`);
|
|
65035
|
+
}
|
|
65036
|
+
return node.type;
|
|
65037
|
+
}
|
|
65038
|
+
function requireVfxNodeId(node, i) {
|
|
65039
|
+
if (typeof node.id !== "string" || node.id === "") {
|
|
65040
|
+
throw new VfxChainError(`Node ${i} is missing an id.`);
|
|
65041
|
+
}
|
|
65042
|
+
return node.id;
|
|
65043
|
+
}
|
|
65044
|
+
function parseVfxNode(n3, i) {
|
|
65045
|
+
if (!isPlainObject2(n3)) {
|
|
65046
|
+
throw new VfxChainError(`Node ${i} is not an object.`);
|
|
65047
|
+
}
|
|
65048
|
+
const node = n3;
|
|
65049
|
+
const type = requireVfxNodeType(node, i);
|
|
65050
|
+
const id = requireVfxNodeId(node, i);
|
|
65051
|
+
const params = isPlainObject2(node.params) ? node.params : {};
|
|
65052
|
+
return withoutUndefined2({
|
|
65053
|
+
type,
|
|
65054
|
+
id,
|
|
65055
|
+
enabled: node.enabled === false ? false : void 0,
|
|
65056
|
+
params
|
|
65057
|
+
});
|
|
65058
|
+
}
|
|
65059
|
+
function serializeVfxNode(node) {
|
|
65060
|
+
return withoutUndefined2({
|
|
65061
|
+
type: node.type,
|
|
65062
|
+
id: node.id,
|
|
65063
|
+
enabled: node.enabled === false ? false : void 0,
|
|
65064
|
+
params: node.params
|
|
65065
|
+
});
|
|
65066
|
+
}
|
|
65067
|
+
function withoutUndefined2(obj) {
|
|
65068
|
+
for (const key2 of Object.keys(obj)) {
|
|
65069
|
+
if (obj[key2] === void 0)
|
|
65070
|
+
delete obj[key2];
|
|
65071
|
+
}
|
|
65072
|
+
return obj;
|
|
65073
|
+
}
|
|
65074
|
+
var HF_VFX_ATTR, HF_VFX_CHAIN_VERSION, DISPLACEMENT_CHANNELS, HF_VFX, BY_ID2, VfxChainError, CAPTURE_RANK;
|
|
65075
|
+
var init_vfx = __esm({
|
|
65076
|
+
"../core/dist/vfx.js"() {
|
|
65077
|
+
"use strict";
|
|
65078
|
+
init_fractalNoise_frag();
|
|
65079
|
+
init_displacementMap_frag();
|
|
65080
|
+
init_waveWarp_frag();
|
|
65081
|
+
HF_VFX_ATTR = "data-vfx-chain";
|
|
65082
|
+
HF_VFX_CHAIN_VERSION = 1;
|
|
65083
|
+
DISPLACEMENT_CHANNELS = [
|
|
65084
|
+
{ value: 1, label: "Red" },
|
|
65085
|
+
{ value: 2, label: "Green" },
|
|
65086
|
+
{ value: 3, label: "Blue" },
|
|
65087
|
+
{ value: 4, label: "Alpha" },
|
|
65088
|
+
{ value: 5, label: "Luminance" },
|
|
65089
|
+
{ value: 6, label: "Hue" },
|
|
65090
|
+
{ value: 7, label: "Lightness" },
|
|
65091
|
+
{ value: 8, label: "Saturation" },
|
|
65092
|
+
{ value: 9, label: "Full" },
|
|
65093
|
+
{ value: 10, label: "Half" },
|
|
65094
|
+
{ value: 11, label: "Off" }
|
|
65095
|
+
];
|
|
65096
|
+
HF_VFX = [
|
|
65097
|
+
{
|
|
65098
|
+
id: "fractal-noise",
|
|
65099
|
+
label: "Fractal Noise",
|
|
65100
|
+
ae: "ADBE Fractal Noise",
|
|
65101
|
+
capture: "none",
|
|
65102
|
+
frag: FRACTAL_NOISE_FRAG,
|
|
65103
|
+
params: [
|
|
65104
|
+
{
|
|
65105
|
+
kind: "enum",
|
|
65106
|
+
key: "fractalType",
|
|
65107
|
+
label: "Fractal Type",
|
|
65108
|
+
options: [{ value: 1, label: "Basic" }],
|
|
65109
|
+
default: 1,
|
|
65110
|
+
hint: "Only Basic is implemented in v1."
|
|
65111
|
+
},
|
|
65112
|
+
{
|
|
65113
|
+
kind: "enum",
|
|
65114
|
+
key: "noiseType",
|
|
65115
|
+
label: "Noise Type",
|
|
65116
|
+
options: [
|
|
65117
|
+
{ value: 1, label: "Block" },
|
|
65118
|
+
{ value: 2, label: "Linear" },
|
|
65119
|
+
{ value: 3, label: "Soft Linear" },
|
|
65120
|
+
{ value: 4, label: "Spline" }
|
|
65121
|
+
],
|
|
65122
|
+
default: 3
|
|
65123
|
+
},
|
|
65124
|
+
{ kind: "bool", key: "invert", label: "Invert", default: false },
|
|
65125
|
+
{
|
|
65126
|
+
kind: "number",
|
|
65127
|
+
key: "contrast",
|
|
65128
|
+
label: "Contrast",
|
|
65129
|
+
unit: "%",
|
|
65130
|
+
min: 0,
|
|
65131
|
+
max: 1e3,
|
|
65132
|
+
step: 1,
|
|
65133
|
+
default: 100
|
|
65134
|
+
},
|
|
65135
|
+
{
|
|
65136
|
+
kind: "number",
|
|
65137
|
+
key: "brightness",
|
|
65138
|
+
label: "Brightness",
|
|
65139
|
+
unit: "",
|
|
65140
|
+
min: -1e3,
|
|
65141
|
+
max: 1e3,
|
|
65142
|
+
step: 1,
|
|
65143
|
+
default: 0
|
|
65144
|
+
},
|
|
65145
|
+
{
|
|
65146
|
+
kind: "number",
|
|
65147
|
+
key: "scale",
|
|
65148
|
+
label: "Scale",
|
|
65149
|
+
unit: "%",
|
|
65150
|
+
min: 6,
|
|
65151
|
+
max: 1e4,
|
|
65152
|
+
step: 1,
|
|
65153
|
+
default: 100
|
|
65154
|
+
},
|
|
65155
|
+
{
|
|
65156
|
+
kind: "number",
|
|
65157
|
+
key: "complexity",
|
|
65158
|
+
label: "Complexity",
|
|
65159
|
+
unit: "",
|
|
65160
|
+
min: 1,
|
|
65161
|
+
max: 20,
|
|
65162
|
+
step: 1,
|
|
65163
|
+
default: 6
|
|
65164
|
+
},
|
|
65165
|
+
{
|
|
65166
|
+
kind: "number",
|
|
65167
|
+
key: "subInfluence",
|
|
65168
|
+
label: "Sub Influence",
|
|
65169
|
+
unit: "%",
|
|
65170
|
+
min: 0,
|
|
65171
|
+
max: 100,
|
|
65172
|
+
step: 1,
|
|
65173
|
+
default: 70
|
|
65174
|
+
},
|
|
65175
|
+
{
|
|
65176
|
+
kind: "number",
|
|
65177
|
+
key: "subScaling",
|
|
65178
|
+
label: "Sub Scaling",
|
|
65179
|
+
unit: "%",
|
|
65180
|
+
min: 0,
|
|
65181
|
+
max: 100,
|
|
65182
|
+
step: 1,
|
|
65183
|
+
default: 56
|
|
65184
|
+
},
|
|
65185
|
+
{
|
|
65186
|
+
kind: "number",
|
|
65187
|
+
key: "evolution",
|
|
65188
|
+
label: "Evolution",
|
|
65189
|
+
unit: "revolutions",
|
|
65190
|
+
min: -1e4,
|
|
65191
|
+
max: 1e4,
|
|
65192
|
+
step: 0.01,
|
|
65193
|
+
default: 0,
|
|
65194
|
+
animatable: true
|
|
65195
|
+
},
|
|
65196
|
+
{
|
|
65197
|
+
kind: "number",
|
|
65198
|
+
key: "randomSeed",
|
|
65199
|
+
label: "Random Seed",
|
|
65200
|
+
unit: "",
|
|
65201
|
+
min: 0,
|
|
65202
|
+
max: 99999,
|
|
65203
|
+
step: 1,
|
|
65204
|
+
default: 0
|
|
65205
|
+
},
|
|
65206
|
+
{
|
|
65207
|
+
kind: "number",
|
|
65208
|
+
key: "opacity",
|
|
65209
|
+
label: "Opacity",
|
|
65210
|
+
unit: "%",
|
|
65211
|
+
min: 0,
|
|
65212
|
+
max: 100,
|
|
65213
|
+
step: 1,
|
|
65214
|
+
default: 100,
|
|
65215
|
+
animatable: true
|
|
65216
|
+
}
|
|
65217
|
+
]
|
|
65218
|
+
},
|
|
65219
|
+
{
|
|
65220
|
+
id: "wave-warp",
|
|
65221
|
+
label: "Wave Warp",
|
|
65222
|
+
ae: "ADBE Wave Warp",
|
|
65223
|
+
capture: "self",
|
|
65224
|
+
frag: WAVE_WARP_FRAG,
|
|
65225
|
+
params: [
|
|
65226
|
+
{
|
|
65227
|
+
kind: "enum",
|
|
65228
|
+
key: "waveType",
|
|
65229
|
+
label: "Wave Type",
|
|
65230
|
+
options: [{ value: 1, label: "Sine" }],
|
|
65231
|
+
default: 1,
|
|
65232
|
+
hint: "Only Sine is implemented in v1; the exporter marks the others cosmetic."
|
|
65233
|
+
},
|
|
65234
|
+
{
|
|
65235
|
+
kind: "number",
|
|
65236
|
+
key: "height",
|
|
65237
|
+
label: "Wave Height",
|
|
65238
|
+
unit: "px",
|
|
65239
|
+
min: -1e3,
|
|
65240
|
+
max: 1e3,
|
|
65241
|
+
step: 1,
|
|
65242
|
+
default: 10,
|
|
65243
|
+
animatable: true
|
|
65244
|
+
},
|
|
65245
|
+
{
|
|
65246
|
+
kind: "number",
|
|
65247
|
+
key: "width",
|
|
65248
|
+
label: "Wave Width",
|
|
65249
|
+
unit: "px",
|
|
65250
|
+
min: 1,
|
|
65251
|
+
max: 1e4,
|
|
65252
|
+
step: 1,
|
|
65253
|
+
default: 40,
|
|
65254
|
+
animatable: true
|
|
65255
|
+
},
|
|
65256
|
+
{
|
|
65257
|
+
kind: "number",
|
|
65258
|
+
key: "direction",
|
|
65259
|
+
label: "Direction",
|
|
65260
|
+
unit: "deg",
|
|
65261
|
+
min: -360,
|
|
65262
|
+
max: 360,
|
|
65263
|
+
step: 1,
|
|
65264
|
+
default: 90
|
|
65265
|
+
},
|
|
65266
|
+
{
|
|
65267
|
+
kind: "number",
|
|
65268
|
+
key: "speed",
|
|
65269
|
+
label: "Wave Speed",
|
|
65270
|
+
unit: "waves/s",
|
|
65271
|
+
min: -100,
|
|
65272
|
+
max: 100,
|
|
65273
|
+
step: 0.1,
|
|
65274
|
+
default: 1
|
|
65275
|
+
},
|
|
65276
|
+
{
|
|
65277
|
+
kind: "enum",
|
|
65278
|
+
key: "pinning",
|
|
65279
|
+
label: "Pinning",
|
|
65280
|
+
options: [{ value: 1, label: "None" }],
|
|
65281
|
+
default: 1,
|
|
65282
|
+
hint: "Only None is implemented in v1; the exporter marks the others cosmetic."
|
|
65283
|
+
},
|
|
65284
|
+
{
|
|
65285
|
+
kind: "number",
|
|
65286
|
+
key: "phase",
|
|
65287
|
+
label: "Phase",
|
|
65288
|
+
unit: "deg",
|
|
65289
|
+
min: -360,
|
|
65290
|
+
max: 360,
|
|
65291
|
+
step: 1,
|
|
65292
|
+
default: 0,
|
|
65293
|
+
animatable: true
|
|
65294
|
+
}
|
|
65295
|
+
]
|
|
65296
|
+
},
|
|
65297
|
+
{
|
|
65298
|
+
id: "displacement-map",
|
|
65299
|
+
label: "Displacement Map",
|
|
65300
|
+
ae: "ADBE Displacement Map",
|
|
65301
|
+
capture: "self",
|
|
65302
|
+
frag: DISPLACEMENT_MAP_FRAG,
|
|
65303
|
+
params: [
|
|
65304
|
+
{
|
|
65305
|
+
kind: "enum",
|
|
65306
|
+
key: "useH",
|
|
65307
|
+
label: "Use For Horizontal Displacement",
|
|
65308
|
+
options: DISPLACEMENT_CHANNELS,
|
|
65309
|
+
default: 1,
|
|
65310
|
+
hint: "Hue, Lightness and Saturation are read as Luminance in v1."
|
|
65311
|
+
},
|
|
65312
|
+
{
|
|
65313
|
+
kind: "number",
|
|
65314
|
+
key: "maxH",
|
|
65315
|
+
label: "Max Horizontal Displacement",
|
|
65316
|
+
unit: "px",
|
|
65317
|
+
min: -32e3,
|
|
65318
|
+
max: 32e3,
|
|
65319
|
+
step: 1,
|
|
65320
|
+
default: 5,
|
|
65321
|
+
animatable: true
|
|
65322
|
+
},
|
|
65323
|
+
{
|
|
65324
|
+
kind: "enum",
|
|
65325
|
+
key: "useV",
|
|
65326
|
+
label: "Use For Vertical Displacement",
|
|
65327
|
+
options: DISPLACEMENT_CHANNELS,
|
|
65328
|
+
default: 2,
|
|
65329
|
+
hint: "Hue, Lightness and Saturation are read as Luminance in v1."
|
|
65330
|
+
},
|
|
65331
|
+
{
|
|
65332
|
+
kind: "number",
|
|
65333
|
+
key: "maxV",
|
|
65334
|
+
label: "Max Vertical Displacement",
|
|
65335
|
+
unit: "px",
|
|
65336
|
+
min: -32e3,
|
|
65337
|
+
max: 32e3,
|
|
65338
|
+
step: 1,
|
|
65339
|
+
default: 5,
|
|
65340
|
+
animatable: true
|
|
65341
|
+
},
|
|
65342
|
+
{
|
|
65343
|
+
kind: "enum",
|
|
65344
|
+
key: "behavior",
|
|
65345
|
+
label: "Displacement Map Behavior",
|
|
65346
|
+
options: [{ value: 1, label: "Center Map" }],
|
|
65347
|
+
default: 1,
|
|
65348
|
+
hint: "Only Center Map is implemented in v1."
|
|
65349
|
+
},
|
|
65350
|
+
{
|
|
65351
|
+
kind: "enum",
|
|
65352
|
+
key: "edge",
|
|
65353
|
+
label: "Edge Behavior",
|
|
65354
|
+
options: [{ value: 0, label: "Off" }],
|
|
65355
|
+
default: 0,
|
|
65356
|
+
hint: "Only Off (transparent outside the layer) is implemented in v1."
|
|
65357
|
+
},
|
|
65358
|
+
{
|
|
65359
|
+
kind: "bool",
|
|
65360
|
+
key: "expand",
|
|
65361
|
+
label: "Expand Output",
|
|
65362
|
+
default: true
|
|
65363
|
+
}
|
|
65364
|
+
]
|
|
65365
|
+
}
|
|
65366
|
+
];
|
|
65367
|
+
BY_ID2 = new Map(HF_VFX.map((d2) => [d2.id, d2]));
|
|
65368
|
+
VfxChainError = class extends Error {
|
|
65369
|
+
constructor(message) {
|
|
65370
|
+
super(message);
|
|
65371
|
+
this.name = "VfxChainError";
|
|
65372
|
+
}
|
|
65373
|
+
};
|
|
65374
|
+
CAPTURE_RANK = { none: 0, self: 1, backdrop: 2 };
|
|
65375
|
+
}
|
|
65376
|
+
});
|
|
65377
|
+
|
|
64750
65378
|
// ../core/dist/index.js
|
|
64751
65379
|
var dist_exports = {};
|
|
64752
65380
|
__export(dist_exports, {
|
|
@@ -64784,6 +65412,9 @@ __export(dist_exports, {
|
|
|
64784
65412
|
HF_COLOR_GRADING_PRESETS: () => HF_COLOR_GRADING_PRESETS,
|
|
64785
65413
|
HF_COLOR_GRADING_TOP_LEVEL_KEYS: () => HF_COLOR_GRADING_TOP_LEVEL_KEYS,
|
|
64786
65414
|
HF_COLOR_GRADING_WHEEL_KEYS: () => HF_COLOR_GRADING_WHEEL_KEYS,
|
|
65415
|
+
HF_VFX: () => HF_VFX,
|
|
65416
|
+
HF_VFX_ATTR: () => HF_VFX_ATTR,
|
|
65417
|
+
HF_VFX_CHAIN_VERSION: () => HF_VFX_CHAIN_VERSION,
|
|
64787
65418
|
HYPERFRAME_BRIDGE_SOURCES: () => HYPERFRAME_BRIDGE_SOURCES,
|
|
64788
65419
|
HYPERFRAME_CONTROL_ACTIONS: () => HYPERFRAME_CONTROL_ACTIONS,
|
|
64789
65420
|
HYPERFRAME_RUNTIME_ARTIFACTS: () => HYPERFRAME_RUNTIME_ARTIFACTS,
|
|
@@ -64808,6 +65439,7 @@ __export(dist_exports, {
|
|
|
64808
65439
|
buildHyperframesRuntimeScript: () => buildHyperframesRuntimeScript,
|
|
64809
65440
|
canaryBucket: () => canaryBucket,
|
|
64810
65441
|
canaryEnvVar: () => canaryEnvVar,
|
|
65442
|
+
chainCapture: () => chainCapture,
|
|
64811
65443
|
checkOutputResolutionCompatibility: () => checkOutputResolutionCompatibility,
|
|
64812
65444
|
checkSubCompositionUsability: () => checkSubCompositionUsability,
|
|
64813
65445
|
clampDurations: () => clampDurations,
|
|
@@ -64835,6 +65467,7 @@ __export(dist_exports, {
|
|
|
64835
65467
|
getHyperframeRuntimeScript: () => getHyperframeRuntimeScript,
|
|
64836
65468
|
getStageStyles: () => getStageStyles,
|
|
64837
65469
|
getVariables: () => getVariables,
|
|
65470
|
+
getVfxDef: () => getVfxDef,
|
|
64838
65471
|
gsapAnimationsToKeyframes: () => gsapAnimationsToKeyframes,
|
|
64839
65472
|
hasHfColorGradingAuthoredValues: () => hasHfColorGradingAuthoredValues,
|
|
64840
65473
|
injectDurations: () => injectDurations,
|
|
@@ -64858,6 +65491,7 @@ __export(dist_exports, {
|
|
|
64858
65491
|
normalizePlaybackRate: () => normalizePlaybackRate,
|
|
64859
65492
|
normalizeRateSpec: () => normalizeRateSpec,
|
|
64860
65493
|
normalizeResolutionFlag: () => normalizeResolutionFlag,
|
|
65494
|
+
normalizeVfxParams: () => normalizeVfxParams,
|
|
64861
65495
|
overdueCanaries: () => overdueCanaries,
|
|
64862
65496
|
parseAnimatedGifMetadata: () => parseAnimatedGifMetadata,
|
|
64863
65497
|
parseCanaryOverride: () => parseCanaryOverride,
|
|
@@ -64869,6 +65503,7 @@ __export(dist_exports, {
|
|
|
64869
65503
|
parseSlideshowManifest: () => parseSlideshowManifest,
|
|
64870
65504
|
parseStartExpression: () => parseStartExpression2,
|
|
64871
65505
|
parseStrictFiniteTimingNumber: () => parseStrictFiniteTimingNumber,
|
|
65506
|
+
parseVfxChain: () => parseVfxChain,
|
|
64872
65507
|
quantizeSeekTime: () => quantizeSeekTime,
|
|
64873
65508
|
quantizeTimeToFrame: () => quantizeTimeToFrame,
|
|
64874
65509
|
queryByAttr: () => queryByAttr2,
|
|
@@ -64894,6 +65529,7 @@ __export(dist_exports, {
|
|
|
64894
65529
|
rewriteInlineStyleAssetUrls: () => rewriteInlineStyleAssetUrls,
|
|
64895
65530
|
serializeGsapAnimations: () => serializeGsapAnimations,
|
|
64896
65531
|
serializeHfColorGrading: () => serializeHfColorGrading,
|
|
65532
|
+
serializeVfxChain: () => serializeVfxChain,
|
|
64897
65533
|
shiftRateLane: () => shiftRateLane,
|
|
64898
65534
|
shouldClampMediaDuration: () => shouldClampMediaDuration,
|
|
64899
65535
|
shouldClampResolvedMediaDuration: () => shouldClampResolvedMediaDuration,
|
|
@@ -64953,6 +65589,7 @@ var init_dist3 = __esm({
|
|
|
64953
65589
|
init_registry();
|
|
64954
65590
|
init_canary();
|
|
64955
65591
|
init_canaryRegistry();
|
|
65592
|
+
init_vfx();
|
|
64956
65593
|
}
|
|
64957
65594
|
});
|
|
64958
65595
|
|
|
@@ -65643,7 +66280,7 @@ var init_vp9Options = __esm({
|
|
|
65643
66280
|
// ../engine/src/config.ts
|
|
65644
66281
|
import { tmpdir } from "os";
|
|
65645
66282
|
import { join as join4 } from "path";
|
|
65646
|
-
function
|
|
66283
|
+
function isPlainObject3(value) {
|
|
65647
66284
|
return typeof value === "object" && value !== null && !Array.isArray(value) && [Object.prototype, null].includes(Object.getPrototypeOf(value));
|
|
65648
66285
|
}
|
|
65649
66286
|
function assertEngineConfigNumber(config, field, min, integer = false) {
|
|
@@ -65712,7 +66349,7 @@ function validateEngineConfigRuntime(config) {
|
|
|
65712
66349
|
}
|
|
65713
66350
|
function validateEngineConfigHdr(config) {
|
|
65714
66351
|
const { hdr } = config;
|
|
65715
|
-
if (hdr !== false && (!
|
|
66352
|
+
if (hdr !== false && (!isPlainObject3(hdr) || Object.keys(hdr).length !== 1 || hdr.transfer !== "hlg" && hdr.transfer !== "pq")) {
|
|
65716
66353
|
throw new Error("Engine config hdr must be false or an hlg/pq transfer object");
|
|
65717
66354
|
}
|
|
65718
66355
|
}
|
|
@@ -65736,7 +66373,7 @@ function validateOptionalEngineConfigFields(config) {
|
|
|
65736
66373
|
}
|
|
65737
66374
|
}
|
|
65738
66375
|
function validateEngineConfigSnapshot(value) {
|
|
65739
|
-
if (!
|
|
66376
|
+
if (!isPlainObject3(value)) throw new Error("Engine config snapshot must be a plain object");
|
|
65740
66377
|
validateRequiredEngineConfigFields(value);
|
|
65741
66378
|
validateEngineConfigScalars(value);
|
|
65742
66379
|
validateEngineConfigParallelism(value);
|
|
@@ -67714,7 +68351,7 @@ function motionBlurSampleTimes(plan2, frameIndex, fps, samplesPerFrame) {
|
|
|
67714
68351
|
const grid = fps * plan2.subFrameDivisions;
|
|
67715
68352
|
const frameTicks = frameIndex * plan2.subFrameDivisions;
|
|
67716
68353
|
return sampleTickOffsets(plan2, samplesPerFrame).map(
|
|
67717
|
-
(
|
|
68354
|
+
(offset3) => Math.max(0, frameTicks + offset3) / grid
|
|
67718
68355
|
);
|
|
67719
68356
|
}
|
|
67720
68357
|
function motionBlurProbeTimes(plan2, frameIndex, fps) {
|
|
@@ -71617,14 +72254,14 @@ async function computeStaticFrameSet(page, fps) {
|
|
|
71617
72254
|
const intervals2 = [];
|
|
71618
72255
|
let tweenCount2 = 0;
|
|
71619
72256
|
let hasTimelineCall2 = false;
|
|
71620
|
-
function walk2(tl,
|
|
72257
|
+
function walk2(tl, offset3) {
|
|
71621
72258
|
if (typeof tl.getChildren !== "function") return;
|
|
71622
72259
|
if (typeof tl.vars?.onUpdate === "function") {
|
|
71623
72260
|
const total = typeof tl.totalDuration === "function" ? tl.totalDuration() : 0;
|
|
71624
|
-
if (total > 0) intervals2.push({ start:
|
|
72261
|
+
if (total > 0) intervals2.push({ start: offset3, end: offset3 + total, spatial: true });
|
|
71625
72262
|
}
|
|
71626
72263
|
for (const child of tl.getChildren(false, true, true)) {
|
|
71627
|
-
const start =
|
|
72264
|
+
const start = offset3 + (typeof child.startTime === "function" ? child.startTime() : 0);
|
|
71628
72265
|
const single = typeof child.duration === "function" ? child.duration() : 0;
|
|
71629
72266
|
const total = typeof child.totalDuration === "function" ? child.totalDuration() : single;
|
|
71630
72267
|
if (typeof child.getChildren === "function") {
|
|
@@ -72052,10 +72689,10 @@ async function computeTimelineAtRiskFrames(page, fps) {
|
|
|
72052
72689
|
"maskImage",
|
|
72053
72690
|
"mask"
|
|
72054
72691
|
]);
|
|
72055
|
-
function walkTimeline(tl,
|
|
72692
|
+
function walkTimeline(tl, offset3, out) {
|
|
72056
72693
|
if (typeof tl.getChildren !== "function") return;
|
|
72057
72694
|
for (const child of tl.getChildren(false, true, true)) {
|
|
72058
|
-
const childStart =
|
|
72695
|
+
const childStart = offset3 + (typeof child.startTime === "function" ? child.startTime() : 0);
|
|
72059
72696
|
const childDur = typeof child.duration === "function" ? child.duration() : 0;
|
|
72060
72697
|
if (typeof child.getChildren === "function") {
|
|
72061
72698
|
walkTimeline(child, childStart, out);
|
|
@@ -73391,8 +74028,8 @@ function redactFfprobeInput(stderr, filePath) {
|
|
|
73391
74028
|
const inputBasename = basename2(filePath);
|
|
73392
74029
|
if (inputBasename) redacted = redacted.split(inputBasename).join("[input]");
|
|
73393
74030
|
if (!redacted.startsWith("[input]")) {
|
|
73394
|
-
for (let
|
|
73395
|
-
const suffix = filePath.slice(
|
|
74031
|
+
for (let offset3 = 1; offset3 < filePath.length; offset3 += 1) {
|
|
74032
|
+
const suffix = filePath.slice(offset3);
|
|
73396
74033
|
if (suffix.length < 4 || !redacted.startsWith(suffix)) continue;
|
|
73397
74034
|
const boundary = redacted[suffix.length];
|
|
73398
74035
|
if (boundary !== void 0 && !/[\s:'")\]}]/.test(boundary)) continue;
|
|
@@ -73487,8 +74124,8 @@ async function hasAvifFileBrand(filePath) {
|
|
|
73487
74124
|
if (boxSize < 16 || boxSize > bytes.length) return false;
|
|
73488
74125
|
const avifBrands = /* @__PURE__ */ new Set(["avif", "avis"]);
|
|
73489
74126
|
if (avifBrands.has(bytes.toString("ascii", 8, 12))) return true;
|
|
73490
|
-
for (let
|
|
73491
|
-
if (avifBrands.has(bytes.toString("ascii",
|
|
74127
|
+
for (let offset3 = 16; offset3 + 4 <= boxSize; offset3 += 4) {
|
|
74128
|
+
if (avifBrands.has(bytes.toString("ascii", offset3, offset3 + 4))) return true;
|
|
73492
74129
|
}
|
|
73493
74130
|
return false;
|
|
73494
74131
|
} catch {
|
|
@@ -73570,20 +74207,20 @@ async function hasCompletePngStructure(filePath, signal) {
|
|
|
73570
74207
|
}
|
|
73571
74208
|
let seenHeader = false;
|
|
73572
74209
|
let seenImageData = false;
|
|
73573
|
-
let
|
|
73574
|
-
while (
|
|
74210
|
+
let offset3 = 8;
|
|
74211
|
+
while (offset3 + 12 <= fileSize) {
|
|
73575
74212
|
signal?.throwIfAborted();
|
|
73576
|
-
const chunkHeader = await readFileRange(filePath,
|
|
74213
|
+
const chunkHeader = await readFileRange(filePath, offset3, 8, signal);
|
|
73577
74214
|
signal?.throwIfAborted();
|
|
73578
74215
|
if (chunkHeader.length !== 8) return false;
|
|
73579
74216
|
const chunkLength = chunkHeader.readUInt32BE(0);
|
|
73580
|
-
const chunkEnd =
|
|
74217
|
+
const chunkEnd = offset3 + 12 + chunkLength;
|
|
73581
74218
|
if (chunkEnd > fileSize) return false;
|
|
73582
74219
|
const chunkType = chunkHeader.toString("ascii", 4, 8);
|
|
73583
|
-
if (chunkType === "IHDR") seenHeader = chunkLength === 13 &&
|
|
74220
|
+
if (chunkType === "IHDR") seenHeader = chunkLength === 13 && offset3 === 8;
|
|
73584
74221
|
if (chunkType === "IDAT") seenImageData = true;
|
|
73585
74222
|
if (chunkType === "IEND") return seenHeader && seenImageData && chunkLength === 0;
|
|
73586
|
-
|
|
74223
|
+
offset3 = chunkEnd;
|
|
73587
74224
|
}
|
|
73588
74225
|
return false;
|
|
73589
74226
|
} catch (error) {
|
|
@@ -74692,9 +75329,9 @@ var init_chunkEncoder = __esm({
|
|
|
74692
75329
|
function jpegInputError(buffer) {
|
|
74693
75330
|
if (buffer.length === 0) return "empty frame";
|
|
74694
75331
|
if (buffer[0] !== 255 || buffer[1] !== 216) return "missing JPEG SOI marker";
|
|
74695
|
-
let
|
|
74696
|
-
while (
|
|
74697
|
-
const segment = readSegment(buffer,
|
|
75332
|
+
let offset3 = 2;
|
|
75333
|
+
while (offset3 < buffer.length) {
|
|
75334
|
+
const segment = readSegment(buffer, offset3);
|
|
74698
75335
|
if (typeof segment === "string") return segment;
|
|
74699
75336
|
const { marker, start, end } = segment;
|
|
74700
75337
|
if (marker === 219) {
|
|
@@ -74702,33 +75339,33 @@ function jpegInputError(buffer) {
|
|
|
74702
75339
|
if (error) return error;
|
|
74703
75340
|
}
|
|
74704
75341
|
if (marker === 218) return void 0;
|
|
74705
|
-
|
|
75342
|
+
offset3 = end;
|
|
74706
75343
|
}
|
|
74707
75344
|
return "missing JPEG scan";
|
|
74708
75345
|
}
|
|
74709
|
-
function readSegment(buffer,
|
|
74710
|
-
if (buffer[
|
|
74711
|
-
while (buffer[
|
|
74712
|
-
const marker = buffer[
|
|
75346
|
+
function readSegment(buffer, offset3) {
|
|
75347
|
+
if (buffer[offset3++] !== 255) return "invalid JPEG marker";
|
|
75348
|
+
while (buffer[offset3] === 255) offset3++;
|
|
75349
|
+
const marker = buffer[offset3++];
|
|
74713
75350
|
if (marker === void 0) return "truncated JPEG marker";
|
|
74714
|
-
if (marker === 1) return { marker, start:
|
|
74715
|
-
if (
|
|
74716
|
-
const length = buffer.readUInt16BE(
|
|
74717
|
-
const end =
|
|
75351
|
+
if (marker === 1) return { marker, start: offset3, end: offset3 };
|
|
75352
|
+
if (offset3 + 2 > buffer.length) return "truncated JPEG segment length";
|
|
75353
|
+
const length = buffer.readUInt16BE(offset3);
|
|
75354
|
+
const end = offset3 + length;
|
|
74718
75355
|
if (length < 2 || end > buffer.length) return "invalid JPEG segment length";
|
|
74719
|
-
return { marker, start:
|
|
75356
|
+
return { marker, start: offset3 + 2, end };
|
|
74720
75357
|
}
|
|
74721
75358
|
function quantizationTableError(buffer, start, end) {
|
|
74722
75359
|
if (start === end) return "empty JPEG DQT segment";
|
|
74723
|
-
let
|
|
74724
|
-
while (
|
|
74725
|
-
const descriptor = buffer[
|
|
75360
|
+
let offset3 = start;
|
|
75361
|
+
while (offset3 < end) {
|
|
75362
|
+
const descriptor = buffer[offset3++];
|
|
74726
75363
|
if (descriptor === void 0) return "truncated JPEG DQT descriptor";
|
|
74727
75364
|
const precision = descriptor >> 4;
|
|
74728
75365
|
if (precision > 1) return `invalid JPEG DQT precision ${precision}`;
|
|
74729
75366
|
if ((descriptor & 15) > 3) return "invalid JPEG DQT table id";
|
|
74730
|
-
|
|
74731
|
-
if (
|
|
75367
|
+
offset3 += precision === 0 ? 64 : 128;
|
|
75368
|
+
if (offset3 > end) return "truncated JPEG DQT table";
|
|
74732
75369
|
}
|
|
74733
75370
|
return void 0;
|
|
74734
75371
|
}
|
|
@@ -79336,7 +79973,7 @@ var require_tokenize = __commonJS({
|
|
|
79336
79973
|
var tokens = [];
|
|
79337
79974
|
var css = input2.css.valueOf();
|
|
79338
79975
|
var length = css.length;
|
|
79339
|
-
var
|
|
79976
|
+
var offset3 = -1;
|
|
79340
79977
|
var line3 = 1;
|
|
79341
79978
|
var start = 0;
|
|
79342
79979
|
var end = 0;
|
|
@@ -79346,13 +79983,13 @@ var require_tokenize = __commonJS({
|
|
|
79346
79983
|
css += fix;
|
|
79347
79984
|
next = css.length - 1;
|
|
79348
79985
|
} else {
|
|
79349
|
-
throw input2.error("Unclosed " + what, line3, start -
|
|
79986
|
+
throw input2.error("Unclosed " + what, line3, start - offset3, start);
|
|
79350
79987
|
}
|
|
79351
79988
|
}
|
|
79352
79989
|
while (start < length) {
|
|
79353
79990
|
code = css.charCodeAt(start);
|
|
79354
79991
|
if (code === t.newline) {
|
|
79355
|
-
|
|
79992
|
+
offset3 = start;
|
|
79356
79993
|
line3 += 1;
|
|
79357
79994
|
}
|
|
79358
79995
|
switch (code) {
|
|
@@ -79366,13 +80003,13 @@ var require_tokenize = __commonJS({
|
|
|
79366
80003
|
next += 1;
|
|
79367
80004
|
code = css.charCodeAt(next);
|
|
79368
80005
|
if (code === t.newline) {
|
|
79369
|
-
|
|
80006
|
+
offset3 = next;
|
|
79370
80007
|
line3 += 1;
|
|
79371
80008
|
}
|
|
79372
80009
|
} while (code === t.space || code === t.newline || code === t.tab || code === t.cr || code === t.feed);
|
|
79373
80010
|
tokenType = t.space;
|
|
79374
80011
|
endLine = line3;
|
|
79375
|
-
endColumn = next -
|
|
80012
|
+
endColumn = next - offset3 - 1;
|
|
79376
80013
|
end = next;
|
|
79377
80014
|
break;
|
|
79378
80015
|
case t.plus:
|
|
@@ -79386,7 +80023,7 @@ var require_tokenize = __commonJS({
|
|
|
79386
80023
|
} while (code === t.plus || code === t.greaterThan || code === t.tilde || code === t.pipe);
|
|
79387
80024
|
tokenType = t.combinator;
|
|
79388
80025
|
endLine = line3;
|
|
79389
|
-
endColumn = start -
|
|
80026
|
+
endColumn = start - offset3;
|
|
79390
80027
|
end = next;
|
|
79391
80028
|
break;
|
|
79392
80029
|
// Consume these characters as single tokens.
|
|
@@ -79406,7 +80043,7 @@ var require_tokenize = __commonJS({
|
|
|
79406
80043
|
next = start;
|
|
79407
80044
|
tokenType = code;
|
|
79408
80045
|
endLine = line3;
|
|
79409
|
-
endColumn = start -
|
|
80046
|
+
endColumn = start - offset3;
|
|
79410
80047
|
end = next + 1;
|
|
79411
80048
|
break;
|
|
79412
80049
|
case t.singleQuote:
|
|
@@ -79427,7 +80064,7 @@ var require_tokenize = __commonJS({
|
|
|
79427
80064
|
} while (escaped);
|
|
79428
80065
|
tokenType = t.str;
|
|
79429
80066
|
endLine = line3;
|
|
79430
|
-
endColumn = start -
|
|
80067
|
+
endColumn = start - offset3;
|
|
79431
80068
|
end = next + 1;
|
|
79432
80069
|
break;
|
|
79433
80070
|
default:
|
|
@@ -79444,7 +80081,7 @@ var require_tokenize = __commonJS({
|
|
|
79444
80081
|
nextOffset = next - lines[last].length;
|
|
79445
80082
|
} else {
|
|
79446
80083
|
nextLine = line3;
|
|
79447
|
-
nextOffset =
|
|
80084
|
+
nextOffset = offset3;
|
|
79448
80085
|
}
|
|
79449
80086
|
tokenType = t.comment;
|
|
79450
80087
|
line3 = nextLine;
|
|
@@ -79454,13 +80091,13 @@ var require_tokenize = __commonJS({
|
|
|
79454
80091
|
next = start;
|
|
79455
80092
|
tokenType = code;
|
|
79456
80093
|
endLine = line3;
|
|
79457
|
-
endColumn = start -
|
|
80094
|
+
endColumn = start - offset3;
|
|
79458
80095
|
end = next + 1;
|
|
79459
80096
|
} else {
|
|
79460
80097
|
next = consumeWord(css, start);
|
|
79461
80098
|
tokenType = t.word;
|
|
79462
80099
|
endLine = line3;
|
|
79463
|
-
endColumn = next -
|
|
80100
|
+
endColumn = next - offset3;
|
|
79464
80101
|
}
|
|
79465
80102
|
end = next + 1;
|
|
79466
80103
|
break;
|
|
@@ -79470,7 +80107,7 @@ var require_tokenize = __commonJS({
|
|
|
79470
80107
|
// [0] Token type
|
|
79471
80108
|
line3,
|
|
79472
80109
|
// [1] Starting line
|
|
79473
|
-
start -
|
|
80110
|
+
start - offset3,
|
|
79474
80111
|
// [2] Starting column
|
|
79475
80112
|
endLine,
|
|
79476
80113
|
// [3] Ending line
|
|
@@ -79482,7 +80119,7 @@ var require_tokenize = __commonJS({
|
|
|
79482
80119
|
// [6] End position
|
|
79483
80120
|
]);
|
|
79484
80121
|
if (nextOffset) {
|
|
79485
|
-
|
|
80122
|
+
offset3 = nextOffset;
|
|
79486
80123
|
nextOffset = null;
|
|
79487
80124
|
}
|
|
79488
80125
|
start = end;
|
|
@@ -88633,8 +89270,8 @@ ${other.raw}`)
|
|
|
88633
89270
|
(tag) => tagSimpleSelectors(tag).some((token) => alreadyHidden.has(token))
|
|
88634
89271
|
);
|
|
88635
89272
|
if (hiddenByToken || hiddenByElement) continue;
|
|
88636
|
-
const
|
|
88637
|
-
const hidesByOffset = numberValue(
|
|
89273
|
+
const offset3 = win.propertyValues["strokeDashoffset"];
|
|
89274
|
+
const hidesByOffset = numberValue(offset3) !== null && !zeroValue(offset3);
|
|
88638
89275
|
const hides = isHiddenGsapState(win.propertyValues) || zeroValue(win.propertyValues["scale"]) || hidesByOffset;
|
|
88639
89276
|
if (!hides) continue;
|
|
88640
89277
|
findings.push({
|
|
@@ -93142,12 +93779,12 @@ var init_mediaVolumeEnvelope = __esm({
|
|
|
93142
93779
|
|
|
93143
93780
|
// ../engine/src/services/wavChunks.ts
|
|
93144
93781
|
function* riffChunks(buffer) {
|
|
93145
|
-
let
|
|
93146
|
-
while (
|
|
93147
|
-
const id = buffer.toString("ascii",
|
|
93148
|
-
const size = buffer.readUInt32LE(
|
|
93149
|
-
yield { id, body:
|
|
93150
|
-
|
|
93782
|
+
let offset3 = 12;
|
|
93783
|
+
while (offset3 + 8 <= buffer.length) {
|
|
93784
|
+
const id = buffer.toString("ascii", offset3, offset3 + 4);
|
|
93785
|
+
const size = buffer.readUInt32LE(offset3 + 4);
|
|
93786
|
+
yield { id, body: offset3 + 8, size };
|
|
93787
|
+
offset3 += 8 + size + size % 2;
|
|
93151
93788
|
}
|
|
93152
93789
|
}
|
|
93153
93790
|
function extensibleFormatTag(fmt) {
|
|
@@ -93612,13 +94249,13 @@ async function readPlaneFromPage(page, index, byteLength) {
|
|
|
93612
94249
|
const parts = [];
|
|
93613
94250
|
for (let at4 = 0; at4 < byteLength; at4 += TRANSFER_BYTES) {
|
|
93614
94251
|
const b64 = await page.evaluate(
|
|
93615
|
-
([plane_index,
|
|
94252
|
+
([plane_index, offset3, limit]) => {
|
|
93616
94253
|
const plane = window.__HF_FX_IO?.out[plane_index];
|
|
93617
94254
|
if (!plane) return "";
|
|
93618
94255
|
const u8 = new Uint8Array(
|
|
93619
94256
|
plane.buffer,
|
|
93620
|
-
plane.byteOffset +
|
|
93621
|
-
Math.min(limit, plane.length * 4 -
|
|
94257
|
+
plane.byteOffset + offset3,
|
|
94258
|
+
Math.min(limit, plane.length * 4 - offset3)
|
|
93622
94259
|
);
|
|
93623
94260
|
let s = "";
|
|
93624
94261
|
const CHUNK = 32768;
|
|
@@ -95204,11 +95841,11 @@ async function verifyDiskDrawElementSamples(session, task, streaming) {
|
|
|
95204
95841
|
if (!truths || truths.size === 0) return;
|
|
95205
95842
|
const verifyMinDb = resolveDeVerifyMinDb();
|
|
95206
95843
|
const ext = session.options.format === "png" ? "png" : "jpg";
|
|
95207
|
-
const
|
|
95844
|
+
const offset3 = task.outputFrameOffset ?? 0;
|
|
95208
95845
|
for (const idx of selectVerifySampleIndicesForTask(truths.keys(), task)) {
|
|
95209
95846
|
const truth = truths.get(idx);
|
|
95210
95847
|
if (!truth) continue;
|
|
95211
|
-
const framePath = join19(task.outputDir, `frame_${String(idx -
|
|
95848
|
+
const framePath = join19(task.outputDir, `frame_${String(idx - offset3).padStart(6, "0")}.${ext}`);
|
|
95212
95849
|
const db = await psnrForDiskSample(framePath, truth, task.workerId, idx);
|
|
95213
95850
|
if (db === null) continue;
|
|
95214
95851
|
assertDiskSampleAboveFloor(db, verifyMinDb, idx, task.workerId);
|
|
@@ -97838,6 +98475,9 @@ function trackRenderComplete(props) {
|
|
|
97838
98475
|
begin_frame_no_damage_frames: props.beginFrameNoDamageFrames,
|
|
97839
98476
|
begin_frame_has_damage_frames: props.beginFrameHasDamageFrames,
|
|
97840
98477
|
de_capture_mode: props.deCaptureMode,
|
|
98478
|
+
vfx_host_count: props.vfxHostCount,
|
|
98479
|
+
vfx_capture: props.vfxCapture,
|
|
98480
|
+
vfx_types: props.vfxTypes,
|
|
97841
98481
|
de_compile_gate: props.deCompileGate,
|
|
97842
98482
|
de_clamp_reason: props.deClampReason,
|
|
97843
98483
|
de_worker_inversion: directOrCapture(props.deWorkerInversion, props.captureDeWorkerInversion),
|
|
@@ -121681,7 +122321,7 @@ import { join as join102 } from "path";
|
|
|
121681
122321
|
import {
|
|
121682
122322
|
existsSync as existsSync72,
|
|
121683
122323
|
mkdirSync as mkdirSync52,
|
|
121684
|
-
readFileSync as
|
|
122324
|
+
readFileSync as readFileSync122,
|
|
121685
122325
|
readdirSync as readdirSync62,
|
|
121686
122326
|
renameSync as renameSync32,
|
|
121687
122327
|
rmSync as rmSync42,
|
|
@@ -121691,13 +122331,14 @@ import {
|
|
|
121691
122331
|
} from "fs";
|
|
121692
122332
|
import { join as join112 } from "path";
|
|
121693
122333
|
import { createHash as createHash42, randomUUID as randomUUID42 } from "crypto";
|
|
121694
|
-
import {
|
|
122334
|
+
import { readFileSync as readFileSync112 } from "fs";
|
|
122335
|
+
import { existsSync as existsSync82, readFileSync as readFileSync132, statSync as statSync82 } from "fs";
|
|
121695
122336
|
import { join as join122 } from "path";
|
|
121696
122337
|
import { closeSync as closeSync32, constants as constants22, fstatSync as fstatSync32, openSync as openSync32, readSync as readSync2 } from "fs";
|
|
121697
122338
|
import { streamSSE as streamSSE2 } from "hono/streaming";
|
|
121698
122339
|
import { existsSync as existsSync92, mkdirSync as mkdirSync62 } from "fs";
|
|
121699
122340
|
import { basename as basename22, dirname as dirname42, extname as extname22, join as join132 } from "path";
|
|
121700
|
-
import { existsSync as existsSync102, readFileSync as
|
|
122341
|
+
import { existsSync as existsSync102, readFileSync as readFileSync142 } from "fs";
|
|
121701
122342
|
import { homedir as homedir10 } from "os";
|
|
121702
122343
|
import { join as join142 } from "path";
|
|
121703
122344
|
function shouldIgnoreDir(rel) {
|
|
@@ -121813,14 +122454,18 @@ async function resolveProjectAndSignature(adapter2, projectId) {
|
|
|
121813
122454
|
if (!project) return null;
|
|
121814
122455
|
return { project, signature: resolveProjectSignature(adapter2, project.dir) };
|
|
121815
122456
|
}
|
|
121816
|
-
function createProjectSignature(projectDir) {
|
|
122457
|
+
function createProjectSignature(projectDir, excluding = /* @__PURE__ */ new Set()) {
|
|
121817
122458
|
const normalizedProjectDir = resolve23(projectDir);
|
|
121818
|
-
const
|
|
121819
|
-
collectProjectSignatureFiles(normalizedProjectDir, normalizedProjectDir,
|
|
121820
|
-
collectProjectSignatureManifestFiles(normalizedProjectDir,
|
|
122459
|
+
const collected = [];
|
|
122460
|
+
collectProjectSignatureFiles(normalizedProjectDir, normalizedProjectDir, collected);
|
|
122461
|
+
collectProjectSignatureManifestFiles(normalizedProjectDir, collected);
|
|
122462
|
+
const files = collected.filter(
|
|
122463
|
+
(entry) => !excluding.has(relative12(normalizedProjectDir, entry.file).split(sep9).join("/"))
|
|
122464
|
+
);
|
|
121821
122465
|
files.sort((a, b2) => a.file.localeCompare(b2.file));
|
|
121822
122466
|
const fingerprint = createProjectFingerprint(normalizedProjectDir, files);
|
|
121823
|
-
const
|
|
122467
|
+
const cacheKey = excluding.size ? `${normalizedProjectDir}\0${createHash9("sha256").update([...excluding].sort().join("\0")).digest("hex")}` : normalizedProjectDir;
|
|
122468
|
+
const cached3 = projectSignatureCache.get(cacheKey);
|
|
121824
122469
|
if (cached3?.fingerprint === fingerprint) return cached3.signature;
|
|
121825
122470
|
const hash2 = createHash9("sha256");
|
|
121826
122471
|
for (const entry of files) {
|
|
@@ -121841,7 +122486,7 @@ function createProjectSignature(projectDir) {
|
|
|
121841
122486
|
hash2.update("\0");
|
|
121842
122487
|
}
|
|
121843
122488
|
const signature = hash2.digest("hex").slice(0, 24);
|
|
121844
|
-
projectSignatureCache.set(
|
|
122489
|
+
projectSignatureCache.set(cacheKey, { fingerprint, signature });
|
|
121845
122490
|
return signature;
|
|
121846
122491
|
}
|
|
121847
122492
|
async function filterCompositionFiles(projectDir, files) {
|
|
@@ -123756,14 +124401,19 @@ function registerFileRoutes(api, adapter2) {
|
|
|
123756
124401
|
if ("error" in res) return res.error;
|
|
123757
124402
|
if (!existsSync37(res.absPath)) {
|
|
123758
124403
|
if (c3.req.query("optional") === "1") {
|
|
123759
|
-
return c3.json({ filename: res.filePath, content: "" });
|
|
124404
|
+
return c3.json({ filename: res.filePath, content: "", missing: true });
|
|
123760
124405
|
}
|
|
123761
124406
|
return c3.json({ error: "not found" }, 404);
|
|
123762
124407
|
}
|
|
123763
124408
|
const content = readFileSync52(res.absPath);
|
|
123764
124409
|
const version2 = fileContentVersion(content);
|
|
123765
124410
|
c3.header("ETag", version2);
|
|
123766
|
-
return c3.json({
|
|
124411
|
+
return c3.json({
|
|
124412
|
+
filename: res.filePath,
|
|
124413
|
+
content: content.toString("utf-8"),
|
|
124414
|
+
version: version2,
|
|
124415
|
+
missing: false
|
|
124416
|
+
});
|
|
123767
124417
|
});
|
|
123768
124418
|
api.put("/projects/:id/files/*", async (c3) => {
|
|
123769
124419
|
const res = await resolveProjectFile(c3, adapter2);
|
|
@@ -125424,6 +126074,57 @@ function registerRenderRoutes(api, adapter2) {
|
|
|
125424
126074
|
return c3.json({ renders: files });
|
|
125425
126075
|
});
|
|
125426
126076
|
}
|
|
126077
|
+
function projectReader(projectDir) {
|
|
126078
|
+
const sources = /* @__PURE__ */ new Map();
|
|
126079
|
+
return (compPath) => {
|
|
126080
|
+
if (!sources.has(compPath)) {
|
|
126081
|
+
const file = resolveWithinProject(projectDir, compPath);
|
|
126082
|
+
let source = null;
|
|
126083
|
+
try {
|
|
126084
|
+
source = file ? readFileSync112(file, "utf-8") : null;
|
|
126085
|
+
} catch {
|
|
126086
|
+
}
|
|
126087
|
+
sources.set(compPath, source);
|
|
126088
|
+
}
|
|
126089
|
+
return sources.get(compPath) ?? null;
|
|
126090
|
+
};
|
|
126091
|
+
}
|
|
126092
|
+
function normalizeSource(src) {
|
|
126093
|
+
if (/^[a-z][a-z0-9+.-]*:/i.test(src) || src.startsWith("//")) return null;
|
|
126094
|
+
const path = src.split(/[?#]/)[0]?.replace(/^\.?\//, "") ?? "";
|
|
126095
|
+
return path || null;
|
|
126096
|
+
}
|
|
126097
|
+
function closureOf(read, compPath) {
|
|
126098
|
+
const closure = /* @__PURE__ */ new Set();
|
|
126099
|
+
const visit = (path) => {
|
|
126100
|
+
if (closure.has(path)) return;
|
|
126101
|
+
closure.add(path);
|
|
126102
|
+
for (const match of (read(path) ?? "").matchAll(COMPOSITION_SRC)) {
|
|
126103
|
+
const mounted = normalizeSource(match[2] ?? "");
|
|
126104
|
+
if (mounted) visit(mounted);
|
|
126105
|
+
}
|
|
126106
|
+
};
|
|
126107
|
+
visit(compPath);
|
|
126108
|
+
return closure;
|
|
126109
|
+
}
|
|
126110
|
+
function compositionInputSignature(projectDir, compPath, projectSignature) {
|
|
126111
|
+
const key2 = `${projectDir}\0${compPath}`;
|
|
126112
|
+
const known = inputSignatures.get(key2);
|
|
126113
|
+
if (known?.projectSignature === projectSignature) return known.inputSignature;
|
|
126114
|
+
const read = projectReader(projectDir);
|
|
126115
|
+
const inputs = closureOf(read, normalizeSource(compPath) ?? compPath).add(ROOT_COMPOSITION);
|
|
126116
|
+
const siblings = [...closureOf(read, ROOT_COMPOSITION)].filter((path) => !inputs.has(path));
|
|
126117
|
+
const inputSignature = createProjectSignature(projectDir, new Set(siblings));
|
|
126118
|
+
inputSignatures.set(key2, { projectSignature, inputSignature });
|
|
126119
|
+
return inputSignature;
|
|
126120
|
+
}
|
|
126121
|
+
function compositionsAffectedBy(projectDir, changedPath) {
|
|
126122
|
+
const changed = changedPath.replace(/\\/g, "/");
|
|
126123
|
+
const read = projectReader(projectDir);
|
|
126124
|
+
const mounted = closureOf(read, ROOT_COMPOSITION);
|
|
126125
|
+
if (changed === ROOT_COMPOSITION || !mounted.has(changed)) return null;
|
|
126126
|
+
return [...mounted].filter((path) => closureOf(read, path).has(changed));
|
|
126127
|
+
}
|
|
125427
126128
|
function pruneThumbnailCache(cacheDir, protectedPaths, now = Date.now()) {
|
|
125428
126129
|
if (!existsSync72(cacheDir)) return;
|
|
125429
126130
|
const files = readdirSync62(cacheDir, { withFileTypes: true }).flatMap((entry) => {
|
|
@@ -125476,6 +126177,7 @@ function registerThumbnailRoutes(api, adapter2) {
|
|
|
125476
126177
|
c3.req.path.replace(`/projects/${project.id}/thumbnail/`, "").split("?")[0] ?? ""
|
|
125477
126178
|
);
|
|
125478
126179
|
if (compPath && !compPath.includes(".")) compPath += ".html";
|
|
126180
|
+
const inputSignature = compositionInputSignature(project.dir, compPath, projectSignature);
|
|
125479
126181
|
const url = new URL(c3.req.url, `http://${c3.req.header("host") || "localhost"}`);
|
|
125480
126182
|
const rawSeekTime = url.searchParams.get("t");
|
|
125481
126183
|
const parsedSeekTime = rawSeekTime == null ? Number.NaN : parseFloat(rawSeekTime);
|
|
@@ -125496,7 +126198,7 @@ function registerThumbnailRoutes(api, adapter2) {
|
|
|
125496
126198
|
let sourceKey = "";
|
|
125497
126199
|
const htmlFile = join112(project.dir, compPath);
|
|
125498
126200
|
if (existsSync72(htmlFile)) {
|
|
125499
|
-
const html =
|
|
126201
|
+
const html = readFileSync122(htmlFile, "utf-8");
|
|
125500
126202
|
sourceKey = `_${createHash42("sha1").update(html).digest("hex").slice(0, 16)}`;
|
|
125501
126203
|
sourceMtime = Math.round(statSync72(htmlFile).mtimeMs);
|
|
125502
126204
|
if (!vpWidth) {
|
|
@@ -125509,14 +126211,14 @@ function registerThumbnailRoutes(api, adapter2) {
|
|
|
125509
126211
|
const manualEditsFile = join112(project.dir, STUDIO_MANUAL_EDITS_PATH);
|
|
125510
126212
|
let manualEditsKey = "";
|
|
125511
126213
|
if (existsSync72(manualEditsFile)) {
|
|
125512
|
-
const manualEditsContent =
|
|
126214
|
+
const manualEditsContent = readFileSync122(manualEditsFile, "utf-8");
|
|
125513
126215
|
manualEditsKey = `_${createHash42("sha1").update(manualEditsContent).digest("hex").slice(0, 16)}`;
|
|
125514
126216
|
sourceMtime = Math.max(sourceMtime, Math.round(statSync72(manualEditsFile).mtimeMs));
|
|
125515
126217
|
}
|
|
125516
126218
|
const motionFile = join112(project.dir, STUDIO_MOTION_PATH);
|
|
125517
126219
|
let motionKey = "";
|
|
125518
126220
|
if (existsSync72(motionFile)) {
|
|
125519
|
-
const motionContent =
|
|
126221
|
+
const motionContent = readFileSync122(motionFile, "utf-8");
|
|
125520
126222
|
motionKey = `_${createHash42("sha1").update(motionContent).digest("hex").slice(0, 16)}`;
|
|
125521
126223
|
sourceMtime = Math.max(sourceMtime, Math.round(statSync72(motionFile).mtimeMs));
|
|
125522
126224
|
}
|
|
@@ -125524,11 +126226,11 @@ function registerThumbnailRoutes(api, adapter2) {
|
|
|
125524
126226
|
const cacheDir = join112(project.dir, ".thumbnails");
|
|
125525
126227
|
const selectorKey = selector ? `_${selector.replace(/[^a-zA-Z0-9_-]+/g, "_").slice(0, 80)}_${selectorIndex ?? 0}` : "";
|
|
125526
126228
|
const urlVersionKey = urlVersion ? `_${urlVersion.replace(/[^a-zA-Z0-9_-]+/g, "_").slice(0, 32)}` : "";
|
|
125527
|
-
const
|
|
126229
|
+
const inputSignatureKey = `_${createHash42("sha1").update(inputSignature).digest("hex").slice(0, 16)}`;
|
|
125528
126230
|
const outputScale = outputMode === "source" ? 1 : Math.min(1, THUMBNAIL_MAX_OUTPUT_WIDTH / compW, THUMBNAIL_MAX_OUTPUT_HEIGHT / compH);
|
|
125529
126231
|
const outputWidth = Math.max(1, Math.round(compW * outputScale));
|
|
125530
126232
|
const outputHeight = Math.max(1, Math.round(compH * outputScale));
|
|
125531
|
-
const cacheKey = `${THUMBNAIL_CACHE_VERSION}${urlVersionKey}${
|
|
126233
|
+
const cacheKey = `${THUMBNAIL_CACHE_VERSION}${urlVersionKey}${inputSignatureKey}${manualEditsKey}${motionKey}${sourceKey}_${format}_${outputMode}_${compPath.replace(/\//g, "_")}_${compW}x${compH}_${outputWidth}x${outputHeight}_${sourceMtime}_${seekTime.toFixed(2)}${selectorKey}.${format === "png" ? "png" : "jpg"}`;
|
|
125532
126234
|
const cachePath2 = join112(cacheDir, cacheKey);
|
|
125533
126235
|
if (!prunedCacheDirs.has(cacheDir)) {
|
|
125534
126236
|
prunedCacheDirs.add(cacheDir);
|
|
@@ -125538,7 +126240,7 @@ function registerThumbnailRoutes(api, adapter2) {
|
|
|
125538
126240
|
);
|
|
125539
126241
|
}
|
|
125540
126242
|
if (existsSync72(cachePath2)) {
|
|
125541
|
-
return new Response(new Uint8Array(
|
|
126243
|
+
return new Response(new Uint8Array(readFileSync122(cachePath2)), {
|
|
125542
126244
|
headers: { "Content-Type": contentType, "Cache-Control": "no-cache" }
|
|
125543
126245
|
});
|
|
125544
126246
|
}
|
|
@@ -125563,8 +126265,8 @@ function registerThumbnailRoutes(api, adapter2) {
|
|
|
125563
126265
|
});
|
|
125564
126266
|
if (!generated) return null;
|
|
125565
126267
|
const afterGeneration = await resolveProjectAndSignature(adapter2, project.id);
|
|
125566
|
-
const
|
|
125567
|
-
if (
|
|
126268
|
+
const inputsUnchanged = (signature) => compositionInputSignature(project.dir, compPath, signature) === inputSignature;
|
|
126269
|
+
if (afterGeneration?.project.dir !== project.dir || !inputsUnchanged(afterGeneration.signature) || !inputsUnchanged(createProjectSignature(project.dir))) {
|
|
125568
126270
|
return generated;
|
|
125569
126271
|
}
|
|
125570
126272
|
if (!existsSync72(cacheDir)) mkdirSync52(cacheDir, { recursive: true });
|
|
@@ -125605,7 +126307,7 @@ function registerWaveformRoutes(api, adapter2) {
|
|
|
125605
126307
|
const cachePath2 = join122(cacheDir, buildWaveformCacheKey(assetPath, stats));
|
|
125606
126308
|
try {
|
|
125607
126309
|
if (isWaveformCacheDirectory(cacheDir) && existsSync82(cachePath2)) {
|
|
125608
|
-
const peaks2 = JSON.parse(
|
|
126310
|
+
const peaks2 = JSON.parse(readFileSync132(cachePath2, "utf-8"));
|
|
125609
126311
|
return c3.json({ peaks: peaks2 });
|
|
125610
126312
|
}
|
|
125611
126313
|
} catch {
|
|
@@ -126031,7 +126733,7 @@ function readGlobalAssets(home = homedir10()) {
|
|
|
126031
126733
|
const manifestPath3 = join142(home, ".media", "manifest.jsonl");
|
|
126032
126734
|
if (!existsSync102(manifestPath3)) return [];
|
|
126033
126735
|
const out = [];
|
|
126034
|
-
for (const line3 of
|
|
126736
|
+
for (const line3 of readFileSync142(manifestPath3, "utf8").split("\n")) {
|
|
126035
126737
|
if (!line3.trim()) continue;
|
|
126036
126738
|
try {
|
|
126037
126739
|
const rec = JSON.parse(line3);
|
|
@@ -126175,7 +126877,7 @@ function updateBackgroundRemovalProgress(state, event) {
|
|
|
126175
126877
|
state.framesProcessed = event.index;
|
|
126176
126878
|
state.avgMsPerFrame = event.avgMsPerFrame;
|
|
126177
126879
|
}
|
|
126178
|
-
var IGNORE_DIRS, SIGNATURE_TEXT_EXTENSIONS, SIGNATURE_EXCLUDED_DIRS, MAX_SIGNATURE_TEXT_BYTES, STUDIO_SIGNATURE_MANIFEST_PATHS, projectSignatureCache, COMPOSITION_ID_RE, MIME_TYPES2, SAMPLE_RATE, PEAK_COUNT, WAVEFORM_CACHE_VERSION, VIDEO_EXT2, AUDIO_EXT2, DEFAULT_KEEP_PER_FILE, RECEIPT_TTL_MS, receipts, consumeFileWriteReceipt, CompositionInsertionError, differential, behavioral, GSAP_MUTATION_CAPABILITIES, GSAP_WRITER_MIGRATION, atomicCutTail, HOLD_SYNC_MUTATION_TYPES, REGEXP_SPECIALS, NON_RENDERED_TAGS3, VARIABLES_PAYLOAD_ERROR, PROJECT_SIGNATURE_META, GSAP_CDN_VERSION, GSAP_CDN_SCRIPT, GSAP_CUSTOM_EASE_CDN_SCRIPT, GSAP_MOTION_PATH_CDN_SCRIPT, GSAP_CDN_FALLBACK_SCRIPT, VALID_RESOLUTIONS, ThumbnailGenerationCoordinator, thumbnailGenerationCoordinator, THUMBNAIL_CACHE_VERSION, THUMBNAIL_MAX_OUTPUT_WIDTH, THUMBNAIL_MAX_OUTPUT_HEIGHT, THUMBNAIL_CACHE_MAX_BYTES, THUMBNAIL_CACHE_MAX_AGE_MS, prunedCacheDirs, MAX_FONT_RESULTS, GOOGLE_FONTS_METADATA_URL, GOOGLE_FONTS_FETCH_TIMEOUT_MS, cachedFonts, cachedGoogleFonts, GOOGLE_FONT_FALLBACKS, VIDEO_EXTENSIONS2, IMAGE_EXTENSIONS, VIDEO_OUTPUT_EXTENSIONS, QUALITIES, DEVICES;
|
|
126880
|
+
var IGNORE_DIRS, SIGNATURE_TEXT_EXTENSIONS, SIGNATURE_EXCLUDED_DIRS, MAX_SIGNATURE_TEXT_BYTES, STUDIO_SIGNATURE_MANIFEST_PATHS, projectSignatureCache, COMPOSITION_ID_RE, MIME_TYPES2, SAMPLE_RATE, PEAK_COUNT, WAVEFORM_CACHE_VERSION, VIDEO_EXT2, AUDIO_EXT2, DEFAULT_KEEP_PER_FILE, RECEIPT_TTL_MS, receipts, consumeFileWriteReceipt, CompositionInsertionError, differential, behavioral, GSAP_MUTATION_CAPABILITIES, GSAP_WRITER_MIGRATION, atomicCutTail, HOLD_SYNC_MUTATION_TYPES, REGEXP_SPECIALS, NON_RENDERED_TAGS3, VARIABLES_PAYLOAD_ERROR, PROJECT_SIGNATURE_META, GSAP_CDN_VERSION, GSAP_CDN_SCRIPT, GSAP_CUSTOM_EASE_CDN_SCRIPT, GSAP_MOTION_PATH_CDN_SCRIPT, GSAP_CDN_FALLBACK_SCRIPT, VALID_RESOLUTIONS, ROOT_COMPOSITION, COMPOSITION_SRC, inputSignatures, ThumbnailGenerationCoordinator, thumbnailGenerationCoordinator, THUMBNAIL_CACHE_VERSION, THUMBNAIL_MAX_OUTPUT_WIDTH, THUMBNAIL_MAX_OUTPUT_HEIGHT, THUMBNAIL_CACHE_MAX_BYTES, THUMBNAIL_CACHE_MAX_AGE_MS, prunedCacheDirs, MAX_FONT_RESULTS, GOOGLE_FONTS_METADATA_URL, GOOGLE_FONTS_FETCH_TIMEOUT_MS, cachedFonts, cachedGoogleFonts, GOOGLE_FONT_FALLBACKS, VIDEO_EXTENSIONS2, IMAGE_EXTENSIONS, VIDEO_OUTPUT_EXTENSIONS, QUALITIES, DEVICES;
|
|
126179
126881
|
var init_dist9 = __esm({
|
|
126180
126882
|
"../studio-server/dist/index.js"() {
|
|
126181
126883
|
"use strict";
|
|
@@ -126417,6 +127119,9 @@ var init_dist9 = __esm({
|
|
|
126417
127119
|
})();
|
|
126418
127120
|
</script>`;
|
|
126419
127121
|
VALID_RESOLUTIONS = new Set(VALID_CANVAS_RESOLUTIONS);
|
|
127122
|
+
ROOT_COMPOSITION = "index.html";
|
|
127123
|
+
COMPOSITION_SRC = /\bdata-composition-src\s*=\s*(["'])(.*?)\1/g;
|
|
127124
|
+
inputSignatures = /* @__PURE__ */ new Map();
|
|
126420
127125
|
ThumbnailGenerationCoordinator = class {
|
|
126421
127126
|
constructor(concurrency = 1) {
|
|
126422
127127
|
this.concurrency = concurrency;
|
|
@@ -131612,6 +132317,9 @@ function aggregateDrawElement(perfs, de2) {
|
|
|
131612
132317
|
hasLut: de2.hasLut,
|
|
131613
132318
|
rootBodyMismatch: de2.rootBodyMismatch,
|
|
131614
132319
|
rootBodyDeltaPxBucket: de2.rootBodyDeltaPxBucket,
|
|
132320
|
+
vfxHostCount: de2.vfxHostCount,
|
|
132321
|
+
vfxCapture: de2.vfxCapture,
|
|
132322
|
+
vfxTypes: de2.vfxTypes,
|
|
131615
132323
|
shortBand: de2.shortBand,
|
|
131616
132324
|
parallelRouter: de2.parallelRouter ?? "none",
|
|
131617
132325
|
preRouterWorkers: de2.preRouterWorkers,
|
|
@@ -133620,18 +134328,18 @@ function resolveHostWindow(element, document2, startCache, visiting) {
|
|
|
133620
134328
|
if (ancestor2.hasAttribute(COMPOSITION_HOST_ATTR)) hosts.push(ancestor2);
|
|
133621
134329
|
}
|
|
133622
134330
|
if (hosts.length === 0) return ROOT_WINDOW;
|
|
133623
|
-
let
|
|
134331
|
+
let offset3 = 0;
|
|
133624
134332
|
let limit = Infinity;
|
|
133625
134333
|
for (const host of hosts.reverse()) {
|
|
133626
134334
|
const hostStart = resolveReferencedStart(document2, host, startCache, visiting);
|
|
133627
134335
|
const hostEnd = resolveHostEnd(host, hostStart);
|
|
133628
|
-
if (hostEnd != null) limit = Math.min(limit,
|
|
133629
|
-
|
|
134336
|
+
if (hostEnd != null) limit = Math.min(limit, offset3 + hostEnd);
|
|
134337
|
+
offset3 += hostStart;
|
|
133630
134338
|
}
|
|
133631
134339
|
const tag = element.tagName.toLowerCase();
|
|
133632
134340
|
const basis = tag === "video" || tag === "audio" ? readMediaStartBasis(element.getAttribute(MEDIA_START_BASIS_ATTR)) : "local";
|
|
133633
134341
|
return {
|
|
133634
|
-
offset:
|
|
134342
|
+
offset: offset3,
|
|
133635
134343
|
limit,
|
|
133636
134344
|
basis
|
|
133637
134345
|
};
|
|
@@ -138343,7 +139051,7 @@ var POSITION_EDITS_RENDER_IIFE;
|
|
|
138343
139051
|
var init_position_edits_render_inline = __esm({
|
|
138344
139052
|
"../core/dist/generated/position-edits-render-inline.js"() {
|
|
138345
139053
|
"use strict";
|
|
138346
|
-
POSITION_EDITS_RENDER_IIFE = '"use strict";(()=>{function T(){return globalThis}function P(e,t){if(typeof window>"u")return;let o=T(),r=o.__hf?.onSwallowed;if(r)try{r({label:e,error:t})}catch(s){}(o.__hfDebug||o.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${e} swallowed:`,t)}var x=null;function R(e,t){if(x)try{x({source:"hf-preview",type:"analytics",event:e,properties:t??{}})}catch(o){P("runtime.analytics.site1",o)}}var W="http://www.w3.org/1999/xhtml";function N(e){return e!=null&&e.nodeType===1}function _(e){return N(e)&&(e.namespaceURI===W||e.namespaceURI==="http://www.w3.org/2000/svg")}var w="data-hf-edit-base-x",y="data-hf-edit-base-y",m="data-hf-edit-original-translate",k=e=>{let t=parseFloat(e??"");return Number.isFinite(t)?t:0},O=e=>{let t=[],o=0,r="";for(let s of e.trim())s==="("&&(o+=1),s===")"&&(o=Math.max(0,o-1)),/\\s/.test(s)&&o===0?(r&&t.push(r),r=""):r+=s;return r&&t.push(r),t},L=/^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)px$/,b=(e,t)=>L.test(e)&&L.test(t)?`${parseFloat(e)+parseFloat(t)}px`:`calc(${e} + ${t})`,V=(e,t,o)=>{if(!e||e==="none")return`${t} ${o}`;let[r,s,a]=O(e);if(r===void 0)return`${t} ${o}`;if(s===void 0)return`${b(r,t)} ${o}`;let i=a===void 0?"":` ${a}`;return`${b(r,t)} ${b(s,o)}${i}`},j=e=>{try{e.ownerDocument.defaultView?.gsap?.getProperty?.(e,"x")}catch{}},G=e=>{let t=e.style.getPropertyValue("translate").trim();if(t)return t==="none"?"":t;try{let o=e.ownerDocument.defaultView,r=o?o.getComputedStyle(e).getPropertyValue("translate").trim():"";return r==="none"?"":r}catch{return""}},E=new WeakMap;function B(e,t){let o=E.get(e);if(!t?.force&&o!==void 0&&e.style.getPropertyValue("translate")!==o){R("position_edit_fold_skipped",{hfId:e.getAttribute("data-hf-id")});return}let r=k(e.getAttribute("data-x"))-k(e.getAttribute(w)),s=k(e.getAttribute("data-y"))-k(e.getAttribute(y));e.hasAttribute(m)||e.setAttribute(m,G(e)),o===void 0&&j(e);let a=e.getAttribute(m)??"",i=V(a,`${r}px`,`${s}px`);e.style.setProperty("translate",i),E.set(e,e.style.getPropertyValue("translate"))}function S(e,t){let o=e.querySelectorAll(`[${m}]:not([${w}]):not([${y}])`);for(let a=0;a<o.length;a++){let i=o[a];if(i===void 0||!_(i))continue;let g=i.getAttribute(m)??"";g===""?i.style.removeProperty("translate"):i.style.setProperty("translate",g),i.removeAttribute(m),E.delete(i)}let r=e.querySelectorAll(`[${w}], [${y}]`),s=0;for(let a=0;a<r.length;a++){let i=r[a];i===void 0||!_(i)||(B(i,t),s+=1)}return s}var $="__hfPositionEditsSeekReapplyWrapped",D=new WeakSet,M=new WeakMap,
|
|
139054
|
+
POSITION_EDITS_RENDER_IIFE = '"use strict";(()=>{function T(){return globalThis}function P(e,t){if(typeof window>"u")return;let o=T(),r=o.__hf?.onSwallowed;if(r)try{r({label:e,error:t})}catch(s){}(o.__hfDebug||o.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${e} swallowed:`,t)}var x=null;function R(e,t){if(x)try{x({source:"hf-preview",type:"analytics",event:e,properties:t??{}})}catch(o){P("runtime.analytics.site1",o)}}var W="http://www.w3.org/1999/xhtml";function N(e){return e!=null&&e.nodeType===1}function _(e){return N(e)&&(e.namespaceURI===W||e.namespaceURI==="http://www.w3.org/2000/svg")}var w="data-hf-edit-base-x",y="data-hf-edit-base-y",m="data-hf-edit-original-translate",k=e=>{let t=parseFloat(e??"");return Number.isFinite(t)?t:0},O=e=>{let t=[],o=0,r="";for(let s of e.trim())s==="("&&(o+=1),s===")"&&(o=Math.max(0,o-1)),/\\s/.test(s)&&o===0?(r&&t.push(r),r=""):r+=s;return r&&t.push(r),t},L=/^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)px$/,b=(e,t)=>L.test(e)&&L.test(t)?`${parseFloat(e)+parseFloat(t)}px`:`calc(${e} + ${t})`,V=(e,t,o)=>{if(!e||e==="none")return`${t} ${o}`;let[r,s,a]=O(e);if(r===void 0)return`${t} ${o}`;if(s===void 0)return`${b(r,t)} ${o}`;let i=a===void 0?"":` ${a}`;return`${b(r,t)} ${b(s,o)}${i}`},j=e=>{try{e.ownerDocument.defaultView?.gsap?.getProperty?.(e,"x")}catch{}},G=e=>{let t=e.style.getPropertyValue("translate").trim();if(t)return t==="none"?"":t;try{let o=e.ownerDocument.defaultView,r=o?o.getComputedStyle(e).getPropertyValue("translate").trim():"";return r==="none"?"":r}catch{return""}},E=new WeakMap;function B(e,t){let o=E.get(e);if(!t?.force&&o!==void 0&&e.style.getPropertyValue("translate")!==o){R("position_edit_fold_skipped",{hfId:e.getAttribute("data-hf-id")});return}let r=k(e.getAttribute("data-x"))-k(e.getAttribute(w)),s=k(e.getAttribute("data-y"))-k(e.getAttribute(y));e.hasAttribute(m)||e.setAttribute(m,G(e)),o===void 0&&j(e);let a=e.getAttribute(m)??"",i=V(a,`${r}px`,`${s}px`);e.style.setProperty("translate",i),E.set(e,e.style.getPropertyValue("translate"))}function S(e,t){let o=e.querySelectorAll(`[${m}]:not([${w}]):not([${y}])`);for(let a=0;a<o.length;a++){let i=o[a];if(i===void 0||!_(i))continue;let g=i.getAttribute(m)??"";g===""?i.style.removeProperty("translate"):i.style.setProperty("translate",g),i.removeAttribute(m),E.delete(i)}let r=e.querySelectorAll(`[${w}], [${y}]`),s=0;for(let a=0;a<r.length;a++){let i=r[a];i===void 0||!_(i)||(B(i,t),s+=1)}return s}var $="__hfPositionEditsSeekReapplyWrapped",D=new WeakSet,M=new WeakMap,H=new WeakMap;function F(e){let t=e,o=()=>{try{S(t.document)}catch{}},r=n=>typeof n=="function"&&(D.has(n)||!!n[$]),s=n=>{D.add(n);try{Object.defineProperty(n,$,{value:!0})}catch{}},a=n=>{if(typeof n!="function"||r(n))return n;let l=function(...u){let d=n.apply(this,u);return o(),d};return s(l),l},i=(n,l)=>{let u=M.get(n);if(u?.has(l))return!0;let d=Object.getOwnPropertyDescriptor(n,l);if(d?.configurable===!1){let c=n[l];return typeof c=="function"&&(n[l]=a(c),o()),!1}let p=n[l],f=d?.set;return Object.defineProperty(n,l,{configurable:!0,enumerable:d?.enumerable??!0,get:()=>p,set:c=>{p=a(c),f?.call(n,c)}}),p=a(p),u??(u=new Set),u.add(l),M.set(n,u),o(),!0},g=(n,l)=>{let u=H.get(t),d=Object.getOwnPropertyDescriptor(t,n);if(!u?.has(n)){if(d?.configurable===!1){let c=t[n];return c?i(c,l):!1}let f=t[n];Object.defineProperty(t,n,{configurable:!0,enumerable:d?.enumerable??!0,get:()=>f,set:c=>{f=c,f&&i(f,l)}}),u??(u=new Set),u.add(n),H.set(t,u)}let p=t[n];return p?i(p,l):!1},v=()=>{let n=g("__hf","seek"),l=g("__player","renderSeek");return n&&l};if(v())return;let h=120,A=t.setInterval(()=>{if(v()){t.clearInterval(A);return}h-=1,h<=0&&t.clearInterval(A)},50)}function I(){document.querySelector(`[${w}], [${y}]`)&&(S(document),F(window))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",I,{once:!0}):I();})();\n';
|
|
138347
139055
|
}
|
|
138348
139056
|
});
|
|
138349
139057
|
|
|
@@ -144012,6 +144720,25 @@ function scanElementTags(html) {
|
|
|
144012
144720
|
colorGradingCount++;
|
|
144013
144721
|
if (!hasLut) hasLut = colorGradingValueHasLut(m[1] ?? m[2] ?? "");
|
|
144014
144722
|
}
|
|
144723
|
+
let vfxHostCount = 0;
|
|
144724
|
+
let vfxCapture;
|
|
144725
|
+
const vfxTypeSet = /* @__PURE__ */ new Set();
|
|
144726
|
+
for (const m of markup.matchAll(new RegExp(`\\b${HF_VFX_ATTR}=(?:"([^"]*)"|'([^']*)')`, "gi"))) {
|
|
144727
|
+
vfxHostCount++;
|
|
144728
|
+
try {
|
|
144729
|
+
const chain = parseVfxChain(decodeHtmlAttrJson(m[1] ?? m[2] ?? ""));
|
|
144730
|
+
for (const node of chain.nodes) {
|
|
144731
|
+
if (node.enabled === false) continue;
|
|
144732
|
+
vfxTypeSet.add(node.type);
|
|
144733
|
+
}
|
|
144734
|
+
const capture2 = chainCapture(chain);
|
|
144735
|
+
if (vfxCapture === void 0 || VFX_CAPTURE_RANK[capture2] > VFX_CAPTURE_RANK[vfxCapture]) {
|
|
144736
|
+
vfxCapture = capture2;
|
|
144737
|
+
}
|
|
144738
|
+
} catch {
|
|
144739
|
+
}
|
|
144740
|
+
}
|
|
144741
|
+
const vfxTypes = [...vfxTypeSet].sort().join(",");
|
|
144015
144742
|
return {
|
|
144016
144743
|
total,
|
|
144017
144744
|
byTag,
|
|
@@ -144023,11 +144750,17 @@ function scanElementTags(html) {
|
|
|
144023
144750
|
audioGroupCount,
|
|
144024
144751
|
colorGradingCount,
|
|
144025
144752
|
hasLut,
|
|
144753
|
+
vfxHostCount,
|
|
144754
|
+
vfxCapture,
|
|
144755
|
+
vfxTypes,
|
|
144026
144756
|
...detectRootBodySizeMismatch(html)
|
|
144027
144757
|
};
|
|
144028
144758
|
}
|
|
144759
|
+
function decodeHtmlAttrJson(rawAttributeValue) {
|
|
144760
|
+
return rawAttributeValue.replace(/"/g, '"').replace(/'/g, "'").replace(/&/g, "&");
|
|
144761
|
+
}
|
|
144029
144762
|
function colorGradingValueHasLut(rawAttributeValue) {
|
|
144030
|
-
const decoded = rawAttributeValue
|
|
144763
|
+
const decoded = decodeHtmlAttrJson(rawAttributeValue);
|
|
144031
144764
|
try {
|
|
144032
144765
|
const parsed = JSON.parse(decoded);
|
|
144033
144766
|
if (typeof parsed !== "object" || parsed === null || !("lut" in parsed)) return false;
|
|
@@ -144068,7 +144801,10 @@ async function resolveCompositionElementCount(probeSession, html) {
|
|
|
144068
144801
|
colorGradingCount: scan.colorGradingCount,
|
|
144069
144802
|
hasLut: scan.hasLut,
|
|
144070
144803
|
rootBodyMismatch: scan.rootBodyMismatch,
|
|
144071
|
-
rootBodyDeltaPxBucket: scan.rootBodyDeltaPxBucket
|
|
144804
|
+
rootBodyDeltaPxBucket: scan.rootBodyDeltaPxBucket,
|
|
144805
|
+
vfxHostCount: scan.vfxHostCount,
|
|
144806
|
+
vfxCapture: scan.vfxCapture,
|
|
144807
|
+
vfxTypes: scan.vfxTypes
|
|
144072
144808
|
};
|
|
144073
144809
|
}
|
|
144074
144810
|
function detectAdaptersStatic(html) {
|
|
@@ -144850,7 +145586,10 @@ async function executeRenderPipeline(input2) {
|
|
|
144850
145586
|
colorGradingCount,
|
|
144851
145587
|
hasLut,
|
|
144852
145588
|
rootBodyMismatch,
|
|
144853
|
-
rootBodyDeltaPxBucket
|
|
145589
|
+
rootBodyDeltaPxBucket,
|
|
145590
|
+
vfxHostCount,
|
|
145591
|
+
vfxCapture,
|
|
145592
|
+
vfxTypes
|
|
144854
145593
|
} = await resolveCompositionElementCount(probeSession, compiled.html);
|
|
144855
145594
|
const adaptersUsed = await resolveAdaptersUsed(probeSession, compiled.html);
|
|
144856
145595
|
const deShortBandEnabled = deShortBandMaxElements > 0;
|
|
@@ -145926,6 +146665,9 @@ async function executeRenderPipeline(input2) {
|
|
|
145926
146665
|
hasLut,
|
|
145927
146666
|
rootBodyMismatch,
|
|
145928
146667
|
rootBodyDeltaPxBucket,
|
|
146668
|
+
vfxHostCount,
|
|
146669
|
+
vfxCapture,
|
|
146670
|
+
vfxTypes,
|
|
145929
146671
|
shortBand: deShortBand,
|
|
145930
146672
|
parallelRouter: deParallelRouter,
|
|
145931
146673
|
preRouterWorkers: deParallelRouter ? preRoutingWorkerCount : void 0,
|
|
@@ -146057,7 +146799,7 @@ async function executeRenderPipeline(input2) {
|
|
|
146057
146799
|
throw error;
|
|
146058
146800
|
}
|
|
146059
146801
|
}
|
|
146060
|
-
var RenderQualityError, RenderCancelledError, MAX_TRANSIENT_CAPTURE_RETRIES, MAX_REPORTED_ELEMENT_TAGS, ROOT_COMPOSITION_TAG_RE, KNOWN_RUNTIME_ADAPTERS, ADAPTER_STATIC_SIGNATURES, ENCODER_DEATH_FRAME_RE, DEFAULT_SEGMENTED_MIN_SECONDS;
|
|
146802
|
+
var RenderQualityError, RenderCancelledError, MAX_TRANSIENT_CAPTURE_RETRIES, MAX_REPORTED_ELEMENT_TAGS, VFX_CAPTURE_RANK, ROOT_COMPOSITION_TAG_RE, KNOWN_RUNTIME_ADAPTERS, ADAPTER_STATIC_SIGNATURES, ENCODER_DEATH_FRAME_RE, DEFAULT_SEGMENTED_MIN_SECONDS;
|
|
146061
146803
|
var init_renderOrchestrator = __esm({
|
|
146062
146804
|
"../producer/src/services/renderOrchestrator.ts"() {
|
|
146063
146805
|
"use strict";
|
|
@@ -146125,6 +146867,7 @@ var init_renderOrchestrator = __esm({
|
|
|
146125
146867
|
};
|
|
146126
146868
|
MAX_TRANSIENT_CAPTURE_RETRIES = 1;
|
|
146127
146869
|
MAX_REPORTED_ELEMENT_TAGS = 50;
|
|
146870
|
+
VFX_CAPTURE_RANK = { none: 0, self: 1, backdrop: 2 };
|
|
146128
146871
|
ROOT_COMPOSITION_TAG_RE = /<[a-zA-Z][-a-zA-Z0-9]*\b[^>]*\bdata-composition-id=["'][^"']*["'][^>]*>/i;
|
|
146129
146872
|
KNOWN_RUNTIME_ADAPTERS = [
|
|
146130
146873
|
"animejs",
|
|
@@ -146399,14 +147142,14 @@ var init_renderConfigValidation = __esm({
|
|
|
146399
147142
|
});
|
|
146400
147143
|
|
|
146401
147144
|
// ../producer/src/renderRequest.ts
|
|
146402
|
-
function
|
|
147145
|
+
function isPlainObject4(value) {
|
|
146403
147146
|
if (typeof value !== "object" || value === null || Array.isArray(value)) return false;
|
|
146404
147147
|
const proto = Object.getPrototypeOf(value);
|
|
146405
147148
|
return proto === Object.prototype || proto === null;
|
|
146406
147149
|
}
|
|
146407
147150
|
function assertPositiveFps(options) {
|
|
146408
147151
|
const fps = options.fps;
|
|
146409
|
-
if (!
|
|
147152
|
+
if (!isPlainObject4(fps) || typeof fps.num !== "number" || typeof fps.den !== "number" || !Number.isInteger(fps.num) || !Number.isInteger(fps.den) || fps.num <= 0 || fps.den <= 0) {
|
|
146410
147153
|
throw new Error("Render request fps must be a positive rational");
|
|
146411
147154
|
}
|
|
146412
147155
|
}
|
|
@@ -146436,7 +147179,7 @@ function isCanvasResolution(value) {
|
|
|
146436
147179
|
return typeof value === "string" && VALID_CANVAS_RESOLUTIONS.some((resolution) => resolution === value);
|
|
146437
147180
|
}
|
|
146438
147181
|
function assertDistributedOptions(value) {
|
|
146439
|
-
if (!
|
|
147182
|
+
if (!isPlainObject4(value)) throw new Error("Render request distributed must be an object");
|
|
146440
147183
|
for (const field of ["width", "height"]) {
|
|
146441
147184
|
if (typeof value[field] !== "number" || !Number.isInteger(value[field]) || value[field] <= 0) {
|
|
146442
147185
|
throw new Error(`Render request distributed.${field} must be a positive integer`);
|
|
@@ -146484,13 +147227,13 @@ function assertRequestOptionScalars(options) {
|
|
|
146484
147227
|
}
|
|
146485
147228
|
function assertRequestOptionObjects(options) {
|
|
146486
147229
|
validateEngineConfigSnapshot(options.engineConfig);
|
|
146487
|
-
if (options.variables !== void 0 && !
|
|
147230
|
+
if (options.variables !== void 0 && !isPlainObject4(options.variables)) {
|
|
146488
147231
|
throw new Error("Render request variables must be a JSON object");
|
|
146489
147232
|
}
|
|
146490
147233
|
if (options.distributed !== void 0) assertDistributedOptions(options.distributed);
|
|
146491
147234
|
}
|
|
146492
147235
|
function assertRequestOptions(options) {
|
|
146493
|
-
if (!
|
|
147236
|
+
if (!isPlainObject4(options)) throw new Error("Render request options must be an object");
|
|
146494
147237
|
assertPositiveFps(options);
|
|
146495
147238
|
if (!["draft", "standard", "high"].includes(String(options.quality))) {
|
|
146496
147239
|
throw new Error("Render request quality is invalid");
|
|
@@ -146510,8 +147253,8 @@ function omitUndefinedProperties(value) {
|
|
|
146510
147253
|
return Object.fromEntries(Object.entries(value).filter(([, item]) => item !== void 0));
|
|
146511
147254
|
}
|
|
146512
147255
|
function assertRenderRequest(value) {
|
|
146513
|
-
if (!
|
|
146514
|
-
const version2 =
|
|
147256
|
+
if (!isPlainObject4(value) || value.version !== RENDER_REQUEST_VERSION) {
|
|
147257
|
+
const version2 = isPlainObject4(value) ? value.version : void 0;
|
|
146515
147258
|
throw new Error(`Unsupported render request version: ${String(version2)}`);
|
|
146516
147259
|
}
|
|
146517
147260
|
assertNonEmptyPath(value.projectDir, "projectDir");
|
|
@@ -146906,7 +147649,7 @@ function extractSafeRenderErrorMetadata(error) {
|
|
|
146906
147649
|
errorCode,
|
|
146907
147650
|
errorOwner: owner === "user" || owner === "system" ? owner : void 0,
|
|
146908
147651
|
retryable: typeof retryable === "boolean" ? retryable : void 0,
|
|
146909
|
-
...
|
|
147652
|
+
...isPlainObject5(publicMetadata) ? { errorMetadata: publicMetadata } : {}
|
|
146910
147653
|
};
|
|
146911
147654
|
}
|
|
146912
147655
|
function parseServerFps(value) {
|
|
@@ -146974,11 +147717,11 @@ function parseRenderOptions(body) {
|
|
|
146974
147717
|
videoFrameFormat
|
|
146975
147718
|
};
|
|
146976
147719
|
}
|
|
146977
|
-
function
|
|
147720
|
+
function isPlainObject5(value) {
|
|
146978
147721
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
146979
147722
|
}
|
|
146980
147723
|
function parseRenderOverrides(body) {
|
|
146981
|
-
const variables =
|
|
147724
|
+
const variables = isPlainObject5(body.variables) ? body.variables : void 0;
|
|
146982
147725
|
const rawOutputResolution = typeof body.outputResolution === "string" ? body.outputResolution : void 0;
|
|
146983
147726
|
const outputResolution = rawOutputResolution ? normalizeResolutionFlag(rawOutputResolution) : void 0;
|
|
146984
147727
|
const outputResolutionAspectAgnostic = outputResolution ? isAspectAgnosticResolutionAlias(rawOutputResolution) : void 0;
|
|
@@ -147014,7 +147757,7 @@ function resolvePreparedRenderOutput(prepared, rendersDir, log2) {
|
|
|
147014
147757
|
return { input: input2, cleanupProjectDir, absoluteOutputPath };
|
|
147015
147758
|
}
|
|
147016
147759
|
function validateRenderOverrides(body) {
|
|
147017
|
-
if (body.variables !== void 0 && !
|
|
147760
|
+
if (body.variables !== void 0 && !isPlainObject5(body.variables)) {
|
|
147018
147761
|
return 'variables must be a JSON object keyed by variable id (e.g. {"title":"Hello"})';
|
|
147019
147762
|
}
|
|
147020
147763
|
if (body.outputDynamicRange !== void 0 && parseServerOutputDynamicRange(body.outputDynamicRange) === void 0) {
|
|
@@ -149363,8 +150106,8 @@ async function publishPlanV2FromExecutionPlan(executionPlanDir, publisher) {
|
|
|
149363
150106
|
try {
|
|
149364
150107
|
const publication = buildPlanV2Publication(executionPlanDir);
|
|
149365
150108
|
const concurrency = 16;
|
|
149366
|
-
for (let
|
|
149367
|
-
const batch = publication.blobs.slice(
|
|
150109
|
+
for (let offset3 = 0; offset3 < publication.blobs.length; offset3 += concurrency) {
|
|
150110
|
+
const batch = publication.blobs.slice(offset3, offset3 + concurrency);
|
|
149368
150111
|
const results = await Promise.allSettled(batch.map((blob) => publisher.putBlob(blob)));
|
|
149369
150112
|
for (const result of results) {
|
|
149370
150113
|
if (result.status === "rejected") throw result.reason;
|
|
@@ -151973,7 +152716,14 @@ function createStudioServer(options) {
|
|
|
151973
152716
|
const receipt = version2 ? identifyFileWrite(absPath, version2) : null;
|
|
151974
152717
|
stream.writeSSE({
|
|
151975
152718
|
event: "file-change",
|
|
151976
|
-
data: JSON.stringify({
|
|
152719
|
+
data: JSON.stringify({
|
|
152720
|
+
path,
|
|
152721
|
+
version: version2,
|
|
152722
|
+
projectId: project.id,
|
|
152723
|
+
// Which thumbnails this write can change; null means all of them.
|
|
152724
|
+
affectedCompositions: compositionsAffectedBy(projectDir, path),
|
|
152725
|
+
...receipt
|
|
152726
|
+
})
|
|
151977
152727
|
}).catch(() => {
|
|
151978
152728
|
});
|
|
151979
152729
|
};
|
|
@@ -155975,6 +156725,7 @@ __export(studio_api_exports, {
|
|
|
155975
156725
|
affectsProjectSignature: () => affectsProjectSignature,
|
|
155976
156726
|
applyFileMutations: () => applyFileMutations,
|
|
155977
156727
|
buildSubCompositionHtml: () => buildSubCompositionHtml,
|
|
156728
|
+
compositionsAffectedBy: () => compositionsAffectedBy,
|
|
155978
156729
|
consumeFileWriteReceipt: () => consumeFileWriteReceipt,
|
|
155979
156730
|
createBackgroundRemovalJob: () => createBackgroundRemovalJob,
|
|
155980
156731
|
createProjectSignature: () => createProjectSignature,
|
|
@@ -157757,10 +158508,10 @@ async function readBoundedDeviceJson(res) {
|
|
|
157757
158508
|
chunks.push(value);
|
|
157758
158509
|
}
|
|
157759
158510
|
const body = new Uint8Array(total);
|
|
157760
|
-
let
|
|
158511
|
+
let offset3 = 0;
|
|
157761
158512
|
for (const chunk of chunks) {
|
|
157762
|
-
body.set(chunk,
|
|
157763
|
-
|
|
158513
|
+
body.set(chunk, offset3);
|
|
158514
|
+
offset3 += chunk.byteLength;
|
|
157764
158515
|
}
|
|
157765
158516
|
return JSON.parse(new TextDecoder().decode(body));
|
|
157766
158517
|
} catch (err) {
|
|
@@ -161284,6 +162035,9 @@ function trackRenderMetrics(job, elapsedMs, options, docker) {
|
|
|
161284
162035
|
beginFrameNoDamageFrames: perf?.beginFrameReuse?.noDamageFrames,
|
|
161285
162036
|
beginFrameHasDamageFrames: perf?.beginFrameReuse?.hasDamageFrames,
|
|
161286
162037
|
deCaptureMode: perf?.drawElement?.mode,
|
|
162038
|
+
vfxHostCount: perf?.drawElement?.vfxHostCount,
|
|
162039
|
+
vfxCapture: perf?.drawElement?.vfxCapture,
|
|
162040
|
+
vfxTypes: perf?.drawElement?.vfxTypes,
|
|
161287
162041
|
deCompileGate: perf?.drawElement?.compileGate,
|
|
161288
162042
|
deClampReason: perf?.drawElement?.clampReason,
|
|
161289
162043
|
deWorkerInversion: perf?.drawElement?.workerInversion,
|
|
@@ -177884,14 +178638,14 @@ async function validIco(bytes) {
|
|
|
177884
178638
|
if (count === 0 || count > 256 || 6 + count * 16 > bytes.length) return false;
|
|
177885
178639
|
for (let i = 0; i < count; i++) {
|
|
177886
178640
|
const size = bytes.readUInt32LE(6 + i * 16 + 8);
|
|
177887
|
-
const
|
|
177888
|
-
if (!validIconEntry(size,
|
|
177889
|
-
if (!await validIconImage(bytes.subarray(
|
|
178641
|
+
const offset3 = bytes.readUInt32LE(6 + i * 16 + 12);
|
|
178642
|
+
if (!validIconEntry(size, offset3, 6 + count * 16, bytes.length)) return false;
|
|
178643
|
+
if (!await validIconImage(bytes.subarray(offset3, offset3 + size))) return false;
|
|
177890
178644
|
}
|
|
177891
178645
|
return true;
|
|
177892
178646
|
}
|
|
177893
|
-
function validIconEntry(size,
|
|
177894
|
-
return size >= 40 &&
|
|
178647
|
+
function validIconEntry(size, offset3, directoryEnd, length) {
|
|
178648
|
+
return size >= 40 && offset3 >= directoryEnd && size <= length - offset3;
|
|
177895
178649
|
}
|
|
177896
178650
|
async function validIconImage(bytes) {
|
|
177897
178651
|
const png = bytes.subarray(0, 8).equals(Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]));
|
|
@@ -178793,15 +179547,15 @@ function preflightLottieArchive(bytes) {
|
|
|
178793
179547
|
const count = bytes.readUInt16LE(end + 10);
|
|
178794
179548
|
if (count > 256 || bytes.readUInt16LE(end + 8) !== count) return false;
|
|
178795
179549
|
if (bytes.readUInt32LE(end + 4) !== 0) return false;
|
|
178796
|
-
let
|
|
178797
|
-
const directoryEnd =
|
|
179550
|
+
let offset3 = bytes.readUInt32LE(end + 16);
|
|
179551
|
+
const directoryEnd = offset3 + bytes.readUInt32LE(end + 12);
|
|
178798
179552
|
if (directoryEnd > end) return false;
|
|
178799
179553
|
for (let i = 0; i < count; i++) {
|
|
178800
|
-
const next = nextBoundedEntry(bytes,
|
|
179554
|
+
const next = nextBoundedEntry(bytes, offset3, directoryEnd);
|
|
178801
179555
|
if (next === null) return false;
|
|
178802
|
-
|
|
179556
|
+
offset3 = next;
|
|
178803
179557
|
}
|
|
178804
|
-
return
|
|
179558
|
+
return offset3 === directoryEnd;
|
|
178805
179559
|
}
|
|
178806
179560
|
function unambiguousFooter(bytes, end) {
|
|
178807
179561
|
const signature = Buffer.from([80, 75, 5, 6]);
|
|
@@ -178820,12 +179574,12 @@ function findDirectoryEnd(bytes) {
|
|
|
178820
179574
|
}
|
|
178821
179575
|
return -1;
|
|
178822
179576
|
}
|
|
178823
|
-
function nextBoundedEntry(bytes,
|
|
178824
|
-
if (
|
|
178825
|
-
const length = bytes.readUInt16LE(
|
|
178826
|
-
const next =
|
|
179577
|
+
function nextBoundedEntry(bytes, offset3, end) {
|
|
179578
|
+
if (offset3 + 46 > end || bytes.readUInt32LE(offset3) !== 33639248) return null;
|
|
179579
|
+
const length = bytes.readUInt16LE(offset3 + 28);
|
|
179580
|
+
const next = offset3 + 46 + length + bytes.readUInt16LE(offset3 + 30) + bytes.readUInt16LE(offset3 + 32);
|
|
178827
179581
|
if (length > 512 || next > end) return null;
|
|
178828
|
-
const name = bytes.toString("utf8",
|
|
179582
|
+
const name = bytes.toString("utf8", offset3 + 46, offset3 + 46 + length);
|
|
178829
179583
|
return safeLottieArchivePath(name) ? next : null;
|
|
178830
179584
|
}
|
|
178831
179585
|
function safeLottieArchivePath(path) {
|