n8n-workflow 2.3.2 → 2.3.3
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/cjs/expression-evaluator-proxy.d.ts.map +1 -1
- package/dist/cjs/expression-evaluator-proxy.js +1 -1
- package/dist/cjs/expression-evaluator-proxy.js.map +1 -1
- package/dist/cjs/expression-sandboxing.d.ts +1 -1
- package/dist/cjs/expression-sandboxing.d.ts.map +1 -1
- package/dist/cjs/expression-sandboxing.js +39 -3
- package/dist/cjs/expression-sandboxing.js.map +1 -1
- package/dist/cjs/typecheck.tsbuildinfo +1 -1
- package/dist/esm/expression-evaluator-proxy.d.ts.map +1 -1
- package/dist/esm/expression-evaluator-proxy.js +2 -2
- package/dist/esm/expression-evaluator-proxy.js.map +1 -1
- package/dist/esm/expression-sandboxing.d.ts +1 -1
- package/dist/esm/expression-sandboxing.d.ts.map +1 -1
- package/dist/esm/expression-sandboxing.js +37 -1
- package/dist/esm/expression-sandboxing.js.map +1 -1
- package/dist/esm/typecheck.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression-evaluator-proxy.d.ts","sourceRoot":"","sources":["../../src/expression-evaluator-proxy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"expression-evaluator-proxy.d.ts","sourceRoot":"","sources":["../../src/expression-evaluator-proxy.ts"],"names":[],"mappings":"AAIA,KAAK,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC;AAClF,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAS3C,eAAO,MAAM,eAAe,GAAI,SAAS,YAAY,SAEpD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,SAEhC,CAAC"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
const expression_sandboxing_1 = require("./expression-sandboxing");
|
|
15
15
|
const errorHandler = () => { };
|
|
16
16
|
const tournamentEvaluator = new tournament_1.Tournament(errorHandler, undefined, undefined, {
|
|
17
|
-
before: [expression_sandboxing_1.
|
|
17
|
+
before: [expression_sandboxing_1.ThisSanitizer],
|
|
18
18
|
after: [expression_sandboxing_1.PrototypeSanitizer, expression_sandboxing_1.DollarSignValidator],
|
|
19
19
|
});
|
|
20
20
|
const evaluator = tournamentEvaluator.execute.bind(tournamentEvaluator);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression-evaluator-proxy.js","sourceRoot":"","sources":["../../src/expression-evaluator-proxy.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,gDAA6C;IAE7C,
|
|
1
|
+
{"version":3,"file":"expression-evaluator-proxy.js","sourceRoot":"","sources":["../../src/expression-evaluator-proxy.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,gDAA6C;IAE7C,mEAAiG;IAKjG,MAAM,YAAY,GAAiB,GAAG,EAAE,GAAE,CAAC,CAAC;IAC5C,MAAM,mBAAmB,GAAG,IAAI,uBAAU,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE;QAC9E,MAAM,EAAE,CAAC,qCAAa,CAAC;QACvB,KAAK,EAAE,CAAC,0CAAkB,EAAE,2CAAmB,CAAC;KAChD,CAAC,CAAC;IACH,MAAM,SAAS,GAAc,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAE5E,MAAM,eAAe,GAAG,CAAC,OAAqB,EAAE,EAAE;QACxD,mBAAmB,CAAC,YAAY,GAAG,OAAO,CAAC;IAC5C,CAAC,CAAC;IAFW,QAAA,eAAe,mBAE1B;IAEK,MAAM,kBAAkB,GAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QAC3D,OAAO,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IAFW,QAAA,kBAAkB,sBAE7B"}
|
|
@@ -4,7 +4,7 @@ export declare const DOLLAR_SIGN_ERROR = "Cannot access \"$\" without calling it
|
|
|
4
4
|
/**
|
|
5
5
|
* Prevents regular functions from binding their `this` to the Node.js global.
|
|
6
6
|
*/
|
|
7
|
-
export declare const
|
|
7
|
+
export declare const ThisSanitizer: ASTBeforeHook;
|
|
8
8
|
/**
|
|
9
9
|
* Validates that the $ identifier is only used in allowed contexts.
|
|
10
10
|
* This prevents user errors like `{{ $ }}` which would return the function object itself.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression-sandboxing.d.ts","sourceRoot":"","sources":["../../src/expression-sandboxing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAA8B,MAAM,iBAAiB,CAAC;AAKpG,eAAO,MAAM,aAAa,eAAe,CAAC;AAG1C,eAAO,MAAM,iBAAiB,yDAAuD,CAAC;
|
|
1
|
+
{"version":3,"file":"expression-sandboxing.d.ts","sourceRoot":"","sources":["../../src/expression-sandboxing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAA8B,MAAM,iBAAiB,CAAC;AAKpG,eAAO,MAAM,aAAa,eAAe,CAAC;AAG1C,eAAO,MAAM,iBAAiB,yDAAuD,CAAC;AAqDtF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,aAgG3B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAsDjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,YA8DhC,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,KAAG,OAM1C,CAAC"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.sanitizer = exports.PrototypeSanitizer = exports.DollarSignValidator = exports.
|
|
12
|
+
exports.sanitizer = exports.PrototypeSanitizer = exports.DollarSignValidator = exports.ThisSanitizer = exports.DOLLAR_SIGN_ERROR = exports.sanitizerName = void 0;
|
|
13
13
|
const tournament_1 = require("@n8n/tournament");
|
|
14
14
|
const errors_1 = require("./errors");
|
|
15
15
|
const utils_1 = require("./utils");
|
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
const EMPTY_CONTEXT = tournament_1.astBuilders.objectExpression([
|
|
20
20
|
tournament_1.astBuilders.property('init', tournament_1.astBuilders.identifier('process'), tournament_1.astBuilders.objectExpression([])),
|
|
21
21
|
]);
|
|
22
|
+
const SAFE_GLOBAL = tournament_1.astBuilders.objectExpression([]);
|
|
23
|
+
const SAFE_THIS = tournament_1.astBuilders.sequenceExpression([tournament_1.astBuilders.literal(0), EMPTY_CONTEXT]);
|
|
22
24
|
/**
|
|
23
25
|
* Helper to check if an expression is a valid property access with $ as the property.
|
|
24
26
|
* Returns true for obj.$ or obj.nested.$ but false for bare $ or other expression contexts.
|
|
@@ -49,10 +51,11 @@
|
|
|
49
51
|
(object.type === 'Identifier' || object.type === 'MemberExpression');
|
|
50
52
|
return isPropertyDollar && !isObjectDollar && isObjectValid;
|
|
51
53
|
};
|
|
54
|
+
const GLOBAL_IDENTIFIERS = new Set(['globalThis']);
|
|
52
55
|
/**
|
|
53
56
|
* Prevents regular functions from binding their `this` to the Node.js global.
|
|
54
57
|
*/
|
|
55
|
-
const
|
|
58
|
+
const ThisSanitizer = (ast, dataNode) => {
|
|
56
59
|
(0, tournament_1.astVisit)(ast, {
|
|
57
60
|
visitCallExpression(path) {
|
|
58
61
|
const { node } = path;
|
|
@@ -101,9 +104,42 @@
|
|
|
101
104
|
path.replace(boundFunction);
|
|
102
105
|
return false;
|
|
103
106
|
},
|
|
107
|
+
visitIdentifier(path) {
|
|
108
|
+
this.traverse(path);
|
|
109
|
+
const { node } = path;
|
|
110
|
+
if (GLOBAL_IDENTIFIERS.has(node.name)) {
|
|
111
|
+
const parent = path.parent;
|
|
112
|
+
const isPropertyName = typeof parent === 'object' &&
|
|
113
|
+
parent !== null &&
|
|
114
|
+
'name' in parent &&
|
|
115
|
+
parent.name === 'property';
|
|
116
|
+
if (!isPropertyName)
|
|
117
|
+
path.replace(SAFE_GLOBAL);
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
visitThisExpression(path) {
|
|
121
|
+
this.traverse(path);
|
|
122
|
+
/**
|
|
123
|
+
* Replace `this` with a safe context object.
|
|
124
|
+
* This prevents arrow functions from accessing the real global context:
|
|
125
|
+
*
|
|
126
|
+
* ```js
|
|
127
|
+
* (() => this?.process)() // becomes (() => (0, { process: {} })?.process)()
|
|
128
|
+
* ```
|
|
129
|
+
*
|
|
130
|
+
* Arrow functions don't have their own `this` binding - they inherit from
|
|
131
|
+
* the outer lexical scope. Without this fix, `this` inside an arrow function
|
|
132
|
+
* would resolve to the Node.js global object, exposing process.env and other
|
|
133
|
+
* sensitive data.
|
|
134
|
+
*
|
|
135
|
+
* We use SAFE_THIS (a sequence expression) instead of EMPTY_CONTEXT directly
|
|
136
|
+
* to ensure the object literal is unambiguously parsed as an expression.
|
|
137
|
+
*/
|
|
138
|
+
path.replace(SAFE_THIS);
|
|
139
|
+
},
|
|
104
140
|
});
|
|
105
141
|
};
|
|
106
|
-
exports.
|
|
142
|
+
exports.ThisSanitizer = ThisSanitizer;
|
|
107
143
|
/**
|
|
108
144
|
* Validates that the $ identifier is only used in allowed contexts.
|
|
109
145
|
* This prevents user errors like `{{ $ }}` which would return the function object itself.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression-sandboxing.js","sourceRoot":"","sources":["../../src/expression-sandboxing.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,gDAAoG;IAEpG,qCAAyE;IACzE,mCAA+C;IAElC,QAAA,aAAa,GAAG,YAAY,CAAC;IAC1C,MAAM,mBAAmB,GAAG,wBAAC,CAAC,UAAU,CAAC,qBAAa,CAAC,CAAC;IAE3C,QAAA,iBAAiB,GAAG,oDAAoD,CAAC;IAEtF,MAAM,aAAa,GAAG,wBAAC,CAAC,gBAAgB,CAAC;QACxC,wBAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,wBAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,wBAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;KACnE,CAAC,CAAC;IAEH;;;OAGG;IACH,MAAM,2BAA2B,GAAG,CAAC,IAAa,EAAW,EAAE;QAC9D,IACC,OAAO,IAAI,KAAK,QAAQ;YACxB,IAAI,KAAK,IAAI;YACb,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,KAAK,kBAAkB;YAChC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;YACrB,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,EAClB,CAAC;YACF,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,yBAAyB;QACzB,MAAM,gBAAgB,GACrB,OAAO,QAAQ,KAAK,QAAQ;YAC5B,QAAQ,KAAK,IAAI;YACjB,MAAM,IAAI,QAAQ;YAClB,QAAQ,CAAC,IAAI,KAAK,GAAG,CAAC;QAEvB,kDAAkD;QAClD,MAAM,cAAc,GACnB,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC;QAE1F,sEAAsE;QACtE,yDAAyD;QACzD,MAAM,aAAa,GAClB,OAAO,MAAM,KAAK,QAAQ;YAC1B,MAAM,KAAK,IAAI;YACf,MAAM,IAAI,MAAM;YAChB,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC;QAEtE,OAAO,gBAAgB,IAAI,CAAC,cAAc,IAAI,aAAa,CAAC;IAC7D,CAAC,CAAC;IAEF;;OAEG;IACI,MAAM,
|
|
1
|
+
{"version":3,"file":"expression-sandboxing.js","sourceRoot":"","sources":["../../src/expression-sandboxing.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,gDAAoG;IAEpG,qCAAyE;IACzE,mCAA+C;IAElC,QAAA,aAAa,GAAG,YAAY,CAAC;IAC1C,MAAM,mBAAmB,GAAG,wBAAC,CAAC,UAAU,CAAC,qBAAa,CAAC,CAAC;IAE3C,QAAA,iBAAiB,GAAG,oDAAoD,CAAC;IAEtF,MAAM,aAAa,GAAG,wBAAC,CAAC,gBAAgB,CAAC;QACxC,wBAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,wBAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,wBAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;KACnE,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,wBAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAE3C,MAAM,SAAS,GAAG,wBAAC,CAAC,kBAAkB,CAAC,CAAC,wBAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;IAEtE;;;OAGG;IACH,MAAM,2BAA2B,GAAG,CAAC,IAAa,EAAW,EAAE;QAC9D,IACC,OAAO,IAAI,KAAK,QAAQ;YACxB,IAAI,KAAK,IAAI;YACb,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,KAAK,kBAAkB;YAChC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;YACrB,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,EAClB,CAAC;YACF,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,yBAAyB;QACzB,MAAM,gBAAgB,GACrB,OAAO,QAAQ,KAAK,QAAQ;YAC5B,QAAQ,KAAK,IAAI;YACjB,MAAM,IAAI,QAAQ;YAClB,QAAQ,CAAC,IAAI,KAAK,GAAG,CAAC;QAEvB,kDAAkD;QAClD,MAAM,cAAc,GACnB,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC;QAE1F,sEAAsE;QACtE,yDAAyD;QACzD,MAAM,aAAa,GAClB,OAAO,MAAM,KAAK,QAAQ;YAC1B,MAAM,KAAK,IAAI;YACf,MAAM,IAAI,MAAM;YAChB,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC;QAEtE,OAAO,gBAAgB,IAAI,CAAC,cAAc,IAAI,aAAa,CAAC;IAC7D,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnD;;OAEG;IACI,MAAM,aAAa,GAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;QAC7D,IAAA,qBAAQ,EAAC,GAAG,EAAE;YACb,mBAAmB,CAAC,IAAI;gBACvB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;gBAEtB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;oBAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACpB,OAAO;gBACR,CAAC;gBAED,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;gBAEjC;;;;;;;;;;;;mBAYG;gBACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAsC;gBAC3D,MAAM,cAAc,GAAG,wBAAC,CAAC,cAAc,CACtC,wBAAC,CAAC,gBAAgB,CAAC,YAAY,EAAE,wBAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EACtD,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAClC,CAAC;gBACF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAC7B,OAAO,KAAK,CAAC;YACd,CAAC;YAED,uBAAuB,CAAC,IAAI;gBAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;gBAEtB;;;;;;;;;;;;mBAYG;gBACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACpB,MAAM,aAAa,GAAG,wBAAC,CAAC,cAAc,CAAC,wBAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,wBAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE;oBACtF,aAAa;iBACb,CAAC,CAAC;gBACH,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAC5B,OAAO,KAAK,CAAC;YACd,CAAC;YAED,eAAe,CAAC,IAAI;gBACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACpB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;gBAEtB,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvC,MAAM,MAAM,GAAY,IAAI,CAAC,MAAM,CAAC;oBACpC,MAAM,cAAc,GACnB,OAAO,MAAM,KAAK,QAAQ;wBAC1B,MAAM,KAAK,IAAI;wBACf,MAAM,IAAI,MAAM;wBAChB,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC;oBAE5B,IAAI,CAAC,cAAc;wBAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAChD,CAAC;YACF,CAAC;YAED,mBAAmB,CAAC,IAAI;gBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAEpB;;;;;;;;;;;;;;;mBAeG;gBACH,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC;SACD,CAAC,CAAC;IACJ,CAAC,CAAC;IAhGW,QAAA,aAAa,iBAgGxB;IAEF;;;;;;;;;;;;OAYG;IACI,MAAM,mBAAmB,GAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;QACnE,IAAA,qBAAQ,EAAC,GAAG,EAAE;YACb,eAAe,CAAC,IAAI;gBACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACpB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBAEvB,0CAA0C;gBAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG;oBAAE,OAAO;gBAE9B,iEAAiE;gBACjE,MAAM,MAAM,GAAY,IAAI,CAAC,MAAM,CAAC;gBAEpC,0DAA0D;gBAC1D,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC;oBAC1E,MAAM,IAAI,wBAAe,CAAC,yBAAiB,CAAC,CAAC;gBAC9C,CAAC;gBAED,oCAAoC;gBACpC,6EAA6E;gBAC7E,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC9B,OAAO;gBACR,CAAC;gBAED,gEAAgE;gBAChE,6EAA6E;gBAC7E,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC9B,MAAM,IAAI,wBAAe,CAAC,yBAAiB,CAAC,CAAC;gBAC9C,CAAC;gBAED,0DAA0D;gBAC1D,iFAAiF;gBACjF,+EAA+E;gBAC/E,IAAI,QAAQ,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;oBACvF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;oBAClC,IACC,OAAO,IAAI,WAAW;wBACtB,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ;wBACrC,WAAW,CAAC,KAAK,KAAK,IAAI,EACzB,CAAC;wBACF,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC;wBACjC,iFAAiF;wBACjF,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAqB,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;4BACzF,sDAAsD;4BACtD,IAAI,2BAA2B,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gCACpD,OAAO;4BACR,CAAC;wBACF,CAAC;oBACF,CAAC;gBACF,CAAC;gBAED,4DAA4D;gBAC5D,MAAM,IAAI,wBAAe,CAAC,yBAAiB,CAAC,CAAC;YAC9C,CAAC;SACD,CAAC,CAAC;IACJ,CAAC,CAAC;IAtDW,QAAA,mBAAmB,uBAsD9B;IAEK,MAAM,kBAAkB,GAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;QACjE,IAAA,qBAAQ,EAAC,GAAG,EAAE;YACb,qBAAqB,CAAC,IAAI;gBACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACpB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACpB,8CAA8C;oBAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;wBACzC,MAAM,IAAI,wBAAe,CACxB,yBAAyB,IAAI,CAAC,QAAQ,CAAC,IAAI,8BAA8B,CACzE,CAAC;oBACH,CAAC;oBAED,IAAI,CAAC,IAAA,4BAAoB,EAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC/C,MAAM,IAAI,wBAAe,CACxB,kBAAkB,IAAI,CAAC,QAAQ,CAAC,IAAI,4BAA4B,CAChE,CAAC;oBACH,CAAC;gBACF,CAAC;qBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvF,sDAAsD;oBACtD,IAAI,CAAC,IAAA,4BAAoB,EAAC,IAAI,CAAC,QAAQ,CAAC,KAAe,CAAC,EAAE,CAAC;wBAC1D,MAAM,IAAI,wBAAe,CACxB,kBAAkB,IAAI,CAAC,QAAQ,CAAC,KAAe,4BAA4B,CAC3E,CAAC;oBACH,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,OAAO,CACX,wBAAC,CAAC,gBAAgB;oBACjB,qGAAqG;oBACrG,IAAI,CAAC,MAAa;oBAClB,iEAAiE;oBACjE,wBAAC,CAAC,cAAc,CAAC,wBAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,EAAE;wBACnE,8DAA8D;wBAC9D,IAAI,CAAC,QAAe;qBACpB,CAAC,EACF,IAAI,CACJ,CACD,CAAC;gBACH,CAAC;YACF,CAAC;YAED,kBAAkB,CAAC,IAAI;gBACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACpB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBAEvB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBAC9B,IAAI,OAA2B,CAAC;wBAEhC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;4BACpC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;wBACzB,CAAC;6BAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;4BAC7E,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAClC,CAAC;wBAED,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,IAAA,4BAAoB,EAAC,OAAO,CAAC,EAAE,CAAC;4BAC7D,MAAM,IAAI,qCAA4B,CAAC,OAAO,CAAC,CAAC;wBACjD,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;SACD,CAAC,CAAC;IACJ,CAAC,CAAC;IA9DW,QAAA,kBAAkB,sBA8D7B;IAEK,MAAM,SAAS,GAAG,CAAC,KAAc,EAAW,EAAE;QACpD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,IAAA,4BAAoB,EAAC,WAAW,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,wBAAe,CAAC,kBAAkB,WAAW,4BAA4B,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC,CAAC;IANW,QAAA,SAAS,aAMpB"}
|