@lwc/template-compiler 2.45.2 → 2.45.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/README.md +2 -2
- package/dist/index.cjs.js +5313 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/{types/index.d.ts → index.d.ts} +1 -0
- package/dist/index.js +5286 -0
- package/dist/index.js.map +1 -0
- package/package.json +33 -30
- package/dist/commonjs/codegen/codegen.js +0 -330
- package/dist/commonjs/codegen/codegen.js.map +0 -1
- package/dist/commonjs/codegen/expression.js +0 -176
- package/dist/commonjs/codegen/expression.js.map +0 -1
- package/dist/commonjs/codegen/formatters/module.js +0 -91
- package/dist/commonjs/codegen/formatters/module.js.map +0 -1
- package/dist/commonjs/codegen/helpers.js +0 -233
- package/dist/commonjs/codegen/helpers.js.map +0 -1
- package/dist/commonjs/codegen/index.js +0 -549
- package/dist/commonjs/codegen/index.js.map +0 -1
- package/dist/commonjs/codegen/optimize.js +0 -119
- package/dist/commonjs/codegen/optimize.js.map +0 -1
- package/dist/commonjs/codegen/static-element-serializer.js +0 -122
- package/dist/commonjs/codegen/static-element-serializer.js.map +0 -1
- package/dist/commonjs/config.js +0 -78
- package/dist/commonjs/config.js.map +0 -1
- package/dist/commonjs/index.js +0 -66
- package/dist/commonjs/index.js.map +0 -1
- package/dist/commonjs/parser/attribute.js +0 -237
- package/dist/commonjs/parser/attribute.js.map +0 -1
- package/dist/commonjs/parser/constants.js +0 -155
- package/dist/commonjs/parser/constants.js.map +0 -1
- package/dist/commonjs/parser/expression-complex/html.js +0 -222
- package/dist/commonjs/parser/expression-complex/html.js.map +0 -1
- package/dist/commonjs/parser/expression-complex/index.js +0 -26
- package/dist/commonjs/parser/expression-complex/index.js.map +0 -1
- package/dist/commonjs/parser/expression-complex/types.js +0 -9
- package/dist/commonjs/parser/expression-complex/types.js.map +0 -1
- package/dist/commonjs/parser/expression-complex/validate.js +0 -141
- package/dist/commonjs/parser/expression-complex/validate.js.map +0 -1
- package/dist/commonjs/parser/expression.js +0 -130
- package/dist/commonjs/parser/expression.js.map +0 -1
- package/dist/commonjs/parser/html.js +0 -112
- package/dist/commonjs/parser/html.js.map +0 -1
- package/dist/commonjs/parser/index.js +0 -1181
- package/dist/commonjs/parser/index.js.map +0 -1
- package/dist/commonjs/parser/parse5Errors.js +0 -77
- package/dist/commonjs/parser/parse5Errors.js.map +0 -1
- package/dist/commonjs/parser/parser.js +0 -309
- package/dist/commonjs/parser/parser.js.map +0 -1
- package/dist/commonjs/parser/utils/html-element-attributes.js +0 -411
- package/dist/commonjs/parser/utils/html-element-attributes.js.map +0 -1
- package/dist/commonjs/parser/utils/html-elements.js +0 -141
- package/dist/commonjs/parser/utils/html-elements.js.map +0 -1
- package/dist/commonjs/parser/utils/javascript.js +0 -25
- package/dist/commonjs/parser/utils/javascript.js.map +0 -1
- package/dist/commonjs/parser/utils/svg-elements.js +0 -42
- package/dist/commonjs/parser/utils/svg-elements.js.map +0 -1
- package/dist/commonjs/shared/ast.js +0 -496
- package/dist/commonjs/shared/ast.js.map +0 -1
- package/dist/commonjs/shared/constants.js +0 -33
- package/dist/commonjs/shared/constants.js.map +0 -1
- package/dist/commonjs/shared/estree.js +0 -325
- package/dist/commonjs/shared/estree.js.map +0 -1
- package/dist/commonjs/shared/naming.js +0 -32
- package/dist/commonjs/shared/naming.js.map +0 -1
- package/dist/commonjs/shared/parse5.js +0 -20
- package/dist/commonjs/shared/parse5.js.map +0 -1
- package/dist/commonjs/shared/renderer-hooks.js +0 -55
- package/dist/commonjs/shared/renderer-hooks.js.map +0 -1
- package/dist/commonjs/shared/types.js +0 -49
- package/dist/commonjs/shared/types.js.map +0 -1
- package/dist/commonjs/shared/utils.js +0 -45
- package/dist/commonjs/shared/utils.js.map +0 -1
- package/dist/commonjs/state.js +0 -24
- package/dist/commonjs/state.js.map +0 -1
- /package/dist/{types/codegen → codegen}/codegen.d.ts +0 -0
- /package/dist/{types/codegen → codegen}/expression.d.ts +0 -0
- /package/dist/{types/codegen → codegen}/formatters/module.d.ts +0 -0
- /package/dist/{types/codegen → codegen}/helpers.d.ts +0 -0
- /package/dist/{types/codegen → codegen}/index.d.ts +0 -0
- /package/dist/{types/codegen → codegen}/optimize.d.ts +0 -0
- /package/dist/{types/codegen → codegen}/static-element-serializer.d.ts +0 -0
- /package/dist/{types/config.d.ts → config.d.ts} +0 -0
- /package/dist/{types/parser → parser}/attribute.d.ts +0 -0
- /package/dist/{types/parser → parser}/constants.d.ts +0 -0
- /package/dist/{types/parser → parser}/expression-complex/html.d.ts +0 -0
- /package/dist/{types/parser → parser}/expression-complex/index.d.ts +0 -0
- /package/dist/{types/parser → parser}/expression-complex/types.d.ts +0 -0
- /package/dist/{types/parser → parser}/expression-complex/validate.d.ts +0 -0
- /package/dist/{types/parser → parser}/expression.d.ts +0 -0
- /package/dist/{types/parser → parser}/html.d.ts +0 -0
- /package/dist/{types/parser → parser}/index.d.ts +0 -0
- /package/dist/{types/parser → parser}/parse5Errors.d.ts +0 -0
- /package/dist/{types/parser → parser}/parser.d.ts +0 -0
- /package/dist/{types/parser → parser}/utils/html-element-attributes.d.ts +0 -0
- /package/dist/{types/parser → parser}/utils/html-elements.d.ts +0 -0
- /package/dist/{types/parser → parser}/utils/javascript.d.ts +0 -0
- /package/dist/{types/parser → parser}/utils/svg-elements.d.ts +0 -0
- /package/dist/{types/shared → shared}/ast.d.ts +0 -0
- /package/dist/{types/shared → shared}/constants.d.ts +0 -0
- /package/dist/{types/shared → shared}/estree.d.ts +0 -0
- /package/dist/{types/shared → shared}/naming.d.ts +0 -0
- /package/dist/{types/shared → shared}/parse5.d.ts +0 -0
- /package/dist/{types/shared → shared}/renderer-hooks.d.ts +0 -0
- /package/dist/{types/shared → shared}/types.d.ts +0 -0
- /package/dist/{types/shared → shared}/utils.d.ts +0 -0
- /package/dist/{types/state.d.ts → state.d.ts} +0 -0
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.parseIdentifier = exports.parseExpression = exports.isPotentialExpression = exports.isExpression = exports.EXPRESSION_SYMBOL_END = exports.EXPRESSION_SYMBOL_START = void 0;
|
|
27
|
-
/*
|
|
28
|
-
* Copyright (c) 2018, salesforce.com, inc.
|
|
29
|
-
* All rights reserved.
|
|
30
|
-
* SPDX-License-Identifier: MIT
|
|
31
|
-
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
32
|
-
*/
|
|
33
|
-
const acorn_1 = require("acorn");
|
|
34
|
-
const errors_1 = require("@lwc/errors");
|
|
35
|
-
const t = __importStar(require("../shared/estree"));
|
|
36
|
-
const expression_complex_1 = require("./expression-complex");
|
|
37
|
-
const javascript_1 = require("./utils/javascript");
|
|
38
|
-
exports.EXPRESSION_SYMBOL_START = '{';
|
|
39
|
-
exports.EXPRESSION_SYMBOL_END = '}';
|
|
40
|
-
const POTENTIAL_EXPRESSION_RE = /^.?{.+}.*$/;
|
|
41
|
-
const WHITESPACES_RE = /\s/;
|
|
42
|
-
function isExpression(source) {
|
|
43
|
-
// Issue #3418: Legacy behavior, previous regex treated "{}" attribute value as non expression
|
|
44
|
-
return source[0] === '{' && source.slice(-1) === '}' && source.length > 2;
|
|
45
|
-
}
|
|
46
|
-
exports.isExpression = isExpression;
|
|
47
|
-
function isPotentialExpression(source) {
|
|
48
|
-
return !!source.match(POTENTIAL_EXPRESSION_RE);
|
|
49
|
-
}
|
|
50
|
-
exports.isPotentialExpression = isPotentialExpression;
|
|
51
|
-
function validateExpression(node, config) {
|
|
52
|
-
// TODO [#3370]: remove experimental template expression flag
|
|
53
|
-
if (config.experimentalComplexExpressions) {
|
|
54
|
-
return (0, expression_complex_1.validateExpressionAst)(node);
|
|
55
|
-
}
|
|
56
|
-
const isValidNode = t.isIdentifier(node) || t.isMemberExpression(node);
|
|
57
|
-
(0, errors_1.invariant)(isValidNode, errors_1.ParserDiagnostics.INVALID_NODE, [node.type]);
|
|
58
|
-
if (t.isMemberExpression(node)) {
|
|
59
|
-
(0, errors_1.invariant)(config.experimentalComputedMemberExpression || !node.computed, errors_1.ParserDiagnostics.COMPUTED_PROPERTY_ACCESS_NOT_ALLOWED);
|
|
60
|
-
const { object, property } = node;
|
|
61
|
-
if (!t.isIdentifier(object)) {
|
|
62
|
-
validateExpression(object, config);
|
|
63
|
-
}
|
|
64
|
-
if (!t.isIdentifier(property)) {
|
|
65
|
-
validateExpression(property, config);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
function validateSourceIsParsedExpression(source, parsedExpression) {
|
|
70
|
-
if (parsedExpression.end === source.length - 1) {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
let unclosedParenthesisCount = 0;
|
|
74
|
-
for (let i = 0, n = parsedExpression.start; i < n; i++) {
|
|
75
|
-
if (source[i] === '(') {
|
|
76
|
-
unclosedParenthesisCount++;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
// source[source.length - 1] === '}', n = source.length - 1 is to avoid processing '}'.
|
|
80
|
-
for (let i = parsedExpression.end, n = source.length - 1; i < n; i++) {
|
|
81
|
-
const character = source[i];
|
|
82
|
-
if (character === ')') {
|
|
83
|
-
unclosedParenthesisCount--;
|
|
84
|
-
}
|
|
85
|
-
else if (character === ';') {
|
|
86
|
-
// acorn parseExpressionAt will stop at the first ";", it may be that the expression is not
|
|
87
|
-
// a multiple expression ({foo;}), but this is a case that we explicitly do not want to support.
|
|
88
|
-
// in such case, let's fail with the same error as if it were a multiple expression.
|
|
89
|
-
(0, errors_1.invariant)(false, errors_1.ParserDiagnostics.MULTIPLE_EXPRESSIONS);
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
(0, errors_1.invariant)(WHITESPACES_RE.test(character), errors_1.ParserDiagnostics.TEMPLATE_EXPRESSION_PARSING_ERROR, ['Unexpected end of expression']);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
(0, errors_1.invariant)(unclosedParenthesisCount === 0, errors_1.ParserDiagnostics.TEMPLATE_EXPRESSION_PARSING_ERROR, [
|
|
96
|
-
'Unexpected end of expression',
|
|
97
|
-
]);
|
|
98
|
-
}
|
|
99
|
-
function parseExpression(ctx, source, location) {
|
|
100
|
-
const { ecmaVersion } = ctx;
|
|
101
|
-
return ctx.withErrorWrapping(() => {
|
|
102
|
-
const parsed = (0, acorn_1.parseExpressionAt)(source, 1, {
|
|
103
|
-
ecmaVersion,
|
|
104
|
-
// TODO [#3370]: remove experimental template expression flag
|
|
105
|
-
allowAwaitOutsideFunction: ctx.config.experimentalComplexExpressions,
|
|
106
|
-
});
|
|
107
|
-
validateSourceIsParsedExpression(source, parsed);
|
|
108
|
-
validateExpression(parsed, ctx.config);
|
|
109
|
-
return { ...parsed, location };
|
|
110
|
-
}, errors_1.ParserDiagnostics.TEMPLATE_EXPRESSION_PARSING_ERROR, location, (err) => `Invalid expression ${source} - ${err.message}`);
|
|
111
|
-
}
|
|
112
|
-
exports.parseExpression = parseExpression;
|
|
113
|
-
function parseIdentifier(ctx, source, location) {
|
|
114
|
-
let isValid = true;
|
|
115
|
-
isValid = (0, acorn_1.isIdentifierStart)(source.charCodeAt(0));
|
|
116
|
-
for (let i = 1; i < source.length && isValid; i++) {
|
|
117
|
-
isValid = (0, acorn_1.isIdentifierChar)(source.charCodeAt(i));
|
|
118
|
-
}
|
|
119
|
-
if (isValid && !(0, javascript_1.isReservedES6Keyword)(source)) {
|
|
120
|
-
return {
|
|
121
|
-
...t.identifier(source),
|
|
122
|
-
location,
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
ctx.throwAtLocation(errors_1.ParserDiagnostics.INVALID_IDENTIFIER, location, [source]);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
exports.parseIdentifier = parseIdentifier;
|
|
130
|
-
//# sourceMappingURL=expression.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"expression.js","sourceRoot":"","sources":["../../../src/parser/expression.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.decodeTextContent = exports.cleanTextNode = exports.parseHTML = void 0;
|
|
27
|
-
/*
|
|
28
|
-
* Copyright (c) 2018, salesforce.com, inc.
|
|
29
|
-
* All rights reserved.
|
|
30
|
-
* SPDX-License-Identifier: MIT
|
|
31
|
-
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
32
|
-
*/
|
|
33
|
-
const parse5 = __importStar(require("parse5"));
|
|
34
|
-
const he = __importStar(require("he"));
|
|
35
|
-
const errors_1 = require("@lwc/errors");
|
|
36
|
-
const ast_1 = require("../shared/ast");
|
|
37
|
-
const parse5Errors_1 = require("./parse5Errors");
|
|
38
|
-
const expression_complex_1 = require("./expression-complex");
|
|
39
|
-
function getLwcErrorFromParse5Error(code) {
|
|
40
|
-
/* istanbul ignore else */
|
|
41
|
-
if (parse5Errors_1.errorCodesToErrorOn.has(code)) {
|
|
42
|
-
return errors_1.ParserDiagnostics.INVALID_HTML_SYNTAX;
|
|
43
|
-
}
|
|
44
|
-
else if (parse5Errors_1.errorCodesToWarnOn.has(code)) {
|
|
45
|
-
return errors_1.ParserDiagnostics.INVALID_HTML_SYNTAX_WARNING;
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
// It should be impossible to reach here; we have a test in parser.spec.ts to ensure
|
|
49
|
-
// all error codes are accounted for. But just to be safe, make it a warning.
|
|
50
|
-
// TODO [#2650]: better system for handling unexpected parse5 errors
|
|
51
|
-
// eslint-disable-next-line no-console
|
|
52
|
-
console.warn('Found a Parse5 error that we do not know how to handle:', code);
|
|
53
|
-
return errors_1.ParserDiagnostics.INVALID_HTML_SYNTAX_WARNING;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
function parseHTML(ctx, source) {
|
|
57
|
-
const onParseError = (err) => {
|
|
58
|
-
const { code, ...location } = err;
|
|
59
|
-
const lwcError = getLwcErrorFromParse5Error(code);
|
|
60
|
-
ctx.warnAtLocation(lwcError, (0, ast_1.sourceLocation)(location), [code]);
|
|
61
|
-
};
|
|
62
|
-
// TODO [#3370]: remove experimental template expression flag
|
|
63
|
-
if (ctx.config.experimentalComplexExpressions) {
|
|
64
|
-
return (0, expression_complex_1.parseFragment)(source, {
|
|
65
|
-
ctx,
|
|
66
|
-
sourceCodeLocationInfo: true,
|
|
67
|
-
onParseError,
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
return parse5.parseFragment(source, {
|
|
71
|
-
sourceCodeLocationInfo: true,
|
|
72
|
-
onParseError,
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
exports.parseHTML = parseHTML;
|
|
76
|
-
// https://github.com/babel/babel/blob/d33d02359474296402b1577ef53f20d94e9085c4/packages/babel-types/src/react.js#L9-L55
|
|
77
|
-
function cleanTextNode(value) {
|
|
78
|
-
const lines = value.split(/\r\n|\n|\r/);
|
|
79
|
-
let lastNonEmptyLine = 0;
|
|
80
|
-
for (let i = 0; i < lines.length; i++) {
|
|
81
|
-
if (lines[i].match(/[^ \t]/)) {
|
|
82
|
-
lastNonEmptyLine = i;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
let str = '';
|
|
86
|
-
for (let i = 0; i < lines.length; i++) {
|
|
87
|
-
const line = lines[i];
|
|
88
|
-
const isFirstLine = i === 0;
|
|
89
|
-
const isLastLine = i === lines.length - 1;
|
|
90
|
-
const isLastNonEmptyLine = i === lastNonEmptyLine;
|
|
91
|
-
let trimmedLine = line.replace(/\t/g, ' ');
|
|
92
|
-
if (!isFirstLine) {
|
|
93
|
-
trimmedLine = trimmedLine.replace(/^[ ]+/, '');
|
|
94
|
-
}
|
|
95
|
-
if (!isLastLine) {
|
|
96
|
-
trimmedLine = trimmedLine.replace(/[ ]+$/, '');
|
|
97
|
-
}
|
|
98
|
-
if (trimmedLine) {
|
|
99
|
-
if (!isLastNonEmptyLine) {
|
|
100
|
-
trimmedLine += ' ';
|
|
101
|
-
}
|
|
102
|
-
str += trimmedLine;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
return str;
|
|
106
|
-
}
|
|
107
|
-
exports.cleanTextNode = cleanTextNode;
|
|
108
|
-
function decodeTextContent(source) {
|
|
109
|
-
return he.decode(source);
|
|
110
|
-
}
|
|
111
|
-
exports.decodeTextContent = decodeTextContent;
|
|
112
|
-
//# sourceMappingURL=html.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../../src/parser/html.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,+CAAiC;AACjC,uCAAyB;AAEzB,wCAAgD;AAEhD,uCAA+C;AAG/C,iDAAyE;AACzE,6DAAqD;AAErD,SAAS,0BAA0B,CAAC,IAAY;IAC5C,0BAA0B;IAC1B,IAAI,kCAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QAC/B,OAAO,0BAAiB,CAAC,mBAAmB,CAAC;KAChD;SAAM,IAAI,iCAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACrC,OAAO,0BAAiB,CAAC,2BAA2B,CAAC;KACxD;SAAM;QACH,oFAAoF;QACpF,6EAA6E;QAC7E,oEAAoE;QACpE,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,yDAAyD,EAAE,IAAI,CAAC,CAAC;QAC9E,OAAO,0BAAiB,CAAC,2BAA2B,CAAC;KACxD;AACL,CAAC;AAED,SAAgB,SAAS,CAAC,GAAc,EAAE,MAAc;IACpD,MAAM,YAAY,GAAG,CAAC,GAAwB,EAAE,EAAE;QAC9C,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,GAAG,GAAG,CAAC;QAElC,MAAM,QAAQ,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;QAClD,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAA,oBAAc,EAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC;IAEF,6DAA6D;IAC7D,IAAI,GAAG,CAAC,MAAM,CAAC,8BAA8B,EAAE;QAC3C,OAAO,IAAA,kCAAa,EAAC,MAAM,EAAE;YACzB,GAAG;YACH,sBAAsB,EAAE,IAAI;YAC5B,YAAY;SACf,CAAC,CAAC;KACN;IAED,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE;QAChC,sBAAsB,EAAE,IAAI;QAC5B,YAAY;KACf,CAAC,CAAC;AACP,CAAC;AArBD,8BAqBC;AAED,wHAAwH;AACxH,SAAgB,aAAa,CAAC,KAAa;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACxC,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YAC1B,gBAAgB,GAAG,CAAC,CAAC;SACxB;KACJ;IAED,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1C,MAAM,kBAAkB,GAAG,CAAC,KAAK,gBAAgB,CAAC;QAElD,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE3C,IAAI,CAAC,WAAW,EAAE;YACd,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;SAClD;QAED,IAAI,CAAC,UAAU,EAAE;YACb,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;SAClD;QAED,IAAI,WAAW,EAAE;YACb,IAAI,CAAC,kBAAkB,EAAE;gBACrB,WAAW,IAAI,GAAG,CAAC;aACtB;YAED,GAAG,IAAI,WAAW,CAAC;SACtB;KACJ;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AApCD,sCAoCC;AAED,SAAgB,iBAAiB,CAAC,MAAc;IAC5C,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAFD,8CAEC"}
|