@zzzen/pyright-internal 1.2.0-dev.20261011 → 1.2.0-dev.20261101
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/analyzer/binder.js +28 -9
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.js +8 -3
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +76 -30
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/dataClasses.js +14 -5
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/decorators.d.ts +1 -1
- package/dist/analyzer/decorators.js +22 -2
- package/dist/analyzer/decorators.js.map +1 -1
- package/dist/analyzer/namedTuples.d.ts +2 -1
- package/dist/analyzer/namedTuples.js +63 -35
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/operations.js +45 -1
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/overloadResultAdmission.js +115 -3
- package/dist/analyzer/overloadResultAdmission.js.map +1 -1
- package/dist/analyzer/overloadResultController.js +36 -10
- package/dist/analyzer/overloadResultController.js.map +1 -1
- package/dist/analyzer/overloadResultSelector.js +32 -12
- package/dist/analyzer/overloadResultSelector.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +3 -0
- package/dist/analyzer/parseTreeUtils.js +56 -0
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +67 -27
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +3 -0
- package/dist/analyzer/program.js +34 -9
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/sentinel.js +7 -1
- package/dist/analyzer/sentinel.js.map +1 -1
- package/dist/analyzer/service.js +6 -2
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceEnumerator.d.ts +3 -1
- package/dist/analyzer/sourceEnumerator.js +30 -11
- package/dist/analyzer/sourceEnumerator.js.map +1 -1
- package/dist/analyzer/sourceFile.js +13 -6
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceMapper.d.ts +1 -0
- package/dist/analyzer/sourceMapper.js +10 -4
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/tupleComparison.d.ts +6 -0
- package/dist/analyzer/tupleComparison.js +731 -0
- package/dist/analyzer/tupleComparison.js.map +1 -0
- package/dist/analyzer/tuples.js +52 -10
- package/dist/analyzer/tuples.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +508 -63
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +1 -1
- package/dist/analyzer/typeEvaluatorTypes.js +2 -3
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.d.ts +6 -1
- package/dist/analyzer/typeGuards.js +373 -72
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeStubRenderer.d.ts +6 -1
- package/dist/analyzer/typeStubRenderer.js +19 -12
- package/dist/analyzer/typeStubRenderer.js.map +1 -1
- package/dist/analyzer/typeUtils.js +3 -0
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typedDicts.d.ts +2 -1
- package/dist/analyzer/typedDicts.js +49 -10
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +14 -0
- package/dist/analyzer/types.js +215 -10
- package/dist/analyzer/types.js.map +1 -1
- package/dist/common/configOptions.d.ts +1 -0
- package/dist/common/configOptions.js +9 -0
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/processUtils.d.ts +6 -0
- package/dist/common/processUtils.js +56 -1
- package/dist/common/processUtils.js.map +1 -1
- package/dist/common/textEditTracker.js +1 -1
- package/dist/common/textEditTracker.js.map +1 -1
- package/dist/common/windowsProcessTree.d.ts +2 -0
- package/dist/common/windowsProcessTree.js +23 -0
- package/dist/common/windowsProcessTree.js.map +1 -1
- package/dist/common/windowsProcessTree.json +273 -34
- package/dist/languageServerBase.d.ts +3 -0
- package/dist/languageServerBase.js +44 -12
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +6 -6
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/referencesProvider.js +3 -3
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/renameProvider.js +1 -1
- package/dist/languageService/renameProvider.js.map +1 -1
- package/dist/languageService/symbolIndexer.js +2 -2
- package/dist/languageService/symbolIndexer.js.map +1 -1
- package/dist/localization/localize.d.ts +2 -0
- package/dist/localization/localize.js +2 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +8 -0
- package/dist/parser/parseTreeTokenReuse.d.ts +34 -0
- package/dist/parser/parseTreeTokenReuse.js +897 -0
- package/dist/parser/parseTreeTokenReuse.js.map +1 -0
- package/dist/parser/tokenizer.d.ts +10 -1
- package/dist/parser/tokenizer.js +184 -130
- package/dist/parser/tokenizer.js.map +1 -1
- package/dist/tests/checker.test.js +58 -0
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/config.test.js +126 -0
- package/dist/tests/config.test.js.map +1 -1
- package/dist/tests/fourSlashParser.test.js +35 -0
- package/dist/tests/fourSlashParser.test.js.map +1 -1
- package/dist/tests/fourslash/hover.typedDict.get.fourslash.js +11 -0
- package/dist/tests/fourslash/hover.typedDict.get.fourslash.js.map +1 -1
- package/dist/tests/harness/fourslash/fourSlashParser.js +14 -4
- package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
- package/dist/tests/languageServer.test.js +15 -0
- package/dist/tests/languageServer.test.js.map +1 -1
- package/dist/tests/lsp/languageServer.js +6 -6
- package/dist/tests/lsp/languageServer.js.map +1 -1
- package/dist/tests/mypyPrimerAnalysis.test.js +133 -0
- package/dist/tests/mypyPrimerAnalysis.test.js.map +1 -1
- package/dist/tests/overloadResultController.test.js +379 -1
- package/dist/tests/overloadResultController.test.js.map +1 -1
- package/dist/tests/signatureHelp.test.js +34 -0
- package/dist/tests/signatureHelp.test.js.map +1 -1
- package/dist/tests/sourceEnumeratorSymlink.test.js +98 -13
- package/dist/tests/sourceEnumeratorSymlink.test.js.map +1 -1
- package/dist/tests/sourceMapperUtils.test.js +143 -0
- package/dist/tests/sourceMapperUtils.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +22 -3
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +54 -1
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +10 -3
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +1 -1
- package/dist/tests/typeEvaluator6.test.js +55 -0
- package/dist/tests/typeEvaluator6.test.js.map +1 -1
- package/dist/tests/typeEvaluator7.test.js +30 -0
- package/dist/tests/typeEvaluator7.test.js.map +1 -1
- package/dist/tests/typeEvaluator8.test.js +1293 -2
- package/dist/tests/typeEvaluator8.test.js.map +1 -1
- package/dist/tests/types.test.js +55 -0
- package/dist/tests/types.test.js.map +1 -1
- package/dist/typeServer/programWrapper.js +8 -2
- package/dist/typeServer/programWrapper.js.map +1 -1
- package/dist/typeServer/server.d.ts +12 -2
- package/dist/typeServer/server.js +97 -0
- package/dist/typeServer/server.js.map +1 -1
- package/package.json +3 -3
|
@@ -53,6 +53,7 @@ exports.assignTypedDictToTypedDict = assignTypedDictToTypedDict;
|
|
|
53
53
|
exports.assignToTypedDict = assignToTypedDict;
|
|
54
54
|
exports.getTypeOfIndexedTypedDict = getTypeOfIndexedTypedDict;
|
|
55
55
|
exports.narrowForKeyAssignment = narrowForKeyAssignment;
|
|
56
|
+
exports.narrowForKeyDeletion = narrowForKeyDeletion;
|
|
56
57
|
const collectionUtils_1 = require("../common/collectionUtils");
|
|
57
58
|
const debug_1 = require("../common/debug");
|
|
58
59
|
const diagnostic_1 = require("../common/diagnostic");
|
|
@@ -491,7 +492,7 @@ function synthesizeTypedDictClassMethods(evaluator, node, classType, nodeInfo) {
|
|
|
491
492
|
}
|
|
492
493
|
}
|
|
493
494
|
}
|
|
494
|
-
function getTypedDictMembersForClass(evaluator, classType, allowNarrowed = false) {
|
|
495
|
+
function getTypedDictMembersForClass(evaluator, classType, allowNarrowed = false, keyNames) {
|
|
495
496
|
// Were the entries already calculated and cached?
|
|
496
497
|
if (!classType.shared.typedDictEntries) {
|
|
497
498
|
const entries = {
|
|
@@ -513,12 +514,12 @@ function getTypedDictMembersForClass(evaluator, classType, allowNarrowed = false
|
|
|
513
514
|
const solution = (0, typeUtils_1.buildSolutionFromSpecializedClass)(classType);
|
|
514
515
|
// Create a specialized copy of the entries so the caller can mutate them.
|
|
515
516
|
const entries = new Map();
|
|
516
|
-
|
|
517
|
+
const addEntry = (value, key, isNarrowed) => {
|
|
517
518
|
const tdEntry = { ...value };
|
|
518
519
|
tdEntry.valueType = (0, typeUtils_1.applySolvedTypeVars)(tdEntry.valueType, solution);
|
|
519
520
|
// If the class is "Partial", make all entries optional and convert all
|
|
520
521
|
// read-only entries to Never.
|
|
521
|
-
if (classType.priv.isTypedDictPartial) {
|
|
522
|
+
if (classType.priv.isTypedDictPartial && !isNarrowed) {
|
|
522
523
|
tdEntry.isRequired = false;
|
|
523
524
|
if (tdEntry.isReadOnly) {
|
|
524
525
|
tdEntry.valueType = types_1.NeverType.createNever();
|
|
@@ -528,15 +529,24 @@ function getTypedDictMembersForClass(evaluator, classType, allowNarrowed = false
|
|
|
528
529
|
}
|
|
529
530
|
}
|
|
530
531
|
entries.set(key, tdEntry);
|
|
531
|
-
}
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
const
|
|
536
|
-
|
|
537
|
-
|
|
532
|
+
};
|
|
533
|
+
if (keyNames) {
|
|
534
|
+
// Avoid specializing unrelated fields when the caller needs only a few keys.
|
|
535
|
+
keyNames.forEach((key) => {
|
|
536
|
+
const narrowedEntry = allowNarrowed ? classType.priv.typedDictNarrowedEntries?.get(key) : undefined;
|
|
537
|
+
const entry = narrowedEntry ?? classType.shared.typedDictEntries.knownItems.get(key);
|
|
538
|
+
if (entry) {
|
|
539
|
+
addEntry(entry, key, narrowedEntry !== undefined);
|
|
540
|
+
}
|
|
538
541
|
});
|
|
539
542
|
}
|
|
543
|
+
else {
|
|
544
|
+
classType.shared.typedDictEntries.knownItems.forEach((value, key) => addEntry(value, key, false));
|
|
545
|
+
// Apply narrowed types on top of existing entries if present.
|
|
546
|
+
if (allowNarrowed && classType.priv.typedDictNarrowedEntries) {
|
|
547
|
+
classType.priv.typedDictNarrowedEntries.forEach((value, key) => addEntry(value, key, true));
|
|
548
|
+
}
|
|
549
|
+
}
|
|
540
550
|
let extraItems = classType.shared.typedDictEntries?.extraItems;
|
|
541
551
|
if (extraItems) {
|
|
542
552
|
extraItems = {
|
|
@@ -1073,6 +1083,35 @@ function narrowForKeyAssignment(classType, key) {
|
|
|
1073
1083
|
});
|
|
1074
1084
|
return types_1.ClassType.cloneForNarrowedTypedDictEntries(classType, narrowedEntries);
|
|
1075
1085
|
}
|
|
1086
|
+
// Forget optional-key narrowing for every key that the deletion could remove.
|
|
1087
|
+
function narrowForKeyDeletion(classType, keyType) {
|
|
1088
|
+
if (!classType.shared.typedDictEntries || !classType.priv.typedDictNarrowedEntries) {
|
|
1089
|
+
return classType;
|
|
1090
|
+
}
|
|
1091
|
+
const deletedKeys = new Set();
|
|
1092
|
+
let mayDeleteAnyKey = false;
|
|
1093
|
+
(0, typeUtils_1.doForEachSubtype)(keyType, (subtype) => {
|
|
1094
|
+
if ((0, types_1.isClassInstance)(subtype) &&
|
|
1095
|
+
types_1.ClassType.isBuiltIn(subtype, 'str') &&
|
|
1096
|
+
typeof subtype.priv.literalValue === 'string') {
|
|
1097
|
+
deletedKeys.add(subtype.priv.literalValue);
|
|
1098
|
+
}
|
|
1099
|
+
else {
|
|
1100
|
+
mayDeleteAnyKey = true;
|
|
1101
|
+
}
|
|
1102
|
+
});
|
|
1103
|
+
const narrowedEntries = new Map(classType.priv.typedDictNarrowedEntries);
|
|
1104
|
+
narrowedEntries.forEach((_, key) => {
|
|
1105
|
+
if ((mayDeleteAnyKey || deletedKeys.has(key)) &&
|
|
1106
|
+
!classType.shared.typedDictEntries.knownItems.get(key)?.isRequired) {
|
|
1107
|
+
narrowedEntries.delete(key);
|
|
1108
|
+
}
|
|
1109
|
+
});
|
|
1110
|
+
if (narrowedEntries.size === classType.priv.typedDictNarrowedEntries.size) {
|
|
1111
|
+
return classType;
|
|
1112
|
+
}
|
|
1113
|
+
return types_1.ClassType.cloneForNarrowedTypedDictEntries(classType, narrowedEntries);
|
|
1114
|
+
}
|
|
1076
1115
|
function isRequiredTypedDictVariable(evaluator, symbol) {
|
|
1077
1116
|
return symbol.getDeclarations().some((decl) => {
|
|
1078
1117
|
if (decl.type !== 1 /* DeclarationType.Variable */ || !decl.typeAnnotationNode) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typedDicts.js","sourceRoot":"","sources":["../../../../../src/analyzer/typedDicts.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEH,kDAqMC;AAGD,gEAgCC;AAED,0EAogBC;AAED,kEAmEC;AAID,sEA2BC;AAID,gEA6CC;AAiKD,0EAwBC;AAED,gEA6LC;AAQD,8CAgJC;AAED,8DAwHC;AAID,wDA6BC;AAlnDD,+DAAwD;AACxD,2CAAyC;AACzC,qDAA0D;AAC1D,+DAA2D;AAC3D,2DAAgE;AAChE,mDAAgD;AAChD,uDAAmE;AAYnE,2DAAwD;AAExD,iEAAmD;AACnD,qCAA4D;AAC5D,+CAAiE;AASjE,mCAuBiB;AACjB,2CAUqB;AAErB,mEAAmE;AACnE,SAAgB,mBAAmB,CAC/B,SAAwB,EACxB,SAAyB,EACzB,cAAyB,EACzB,OAAc,EACd,QAAkC;IAElC,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAEjD,6CAA6C;IAC7C,qEAAqE;IACrE,0DAA0D;IAC1D,IAAI,SAA6B,CAAC;IAClC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,SAAS,CAAC,aAAa,CAAC,gCAAc,CAAC,eAAe,EAAE,qBAAU,CAAC,iBAAiB,EAAE,EAAE,SAAS,CAAC,CAAC;IACvG,CAAC;SAAM,CAAC;QACJ,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3B,IACI,OAAO,CAAC,WAAW,+BAAuB;YAC1C,CAAC,OAAO,CAAC,eAAe;YACxB,OAAO,CAAC,eAAe,CAAC,QAAQ,sCAA6B,EAC/D,CAAC;YACC,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,kBAAkB,EACjC,qBAAU,CAAC,iBAAiB,EAAE,EAC9B,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,SAAS,CAC1C,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;IACL,CAAC;IAED,MAAM,kBAAkB,GAAG,SAAS,IAAI,WAAW,CAAC;IACpD,MAAM,SAAS,GAAG,iBAAS,CAAC,kBAAkB,CAC1C,kBAAkB,EAClB,cAAc,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC,EACnF,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,OAAO,EAChB,wFAAkE,EAClE,cAAc,CAAC,eAAe,CAAC,SAAS,CAAC;IACzC,uBAAuB,CAAC,SAAS,EACjC,cAAc,CAAC,MAAM,CAAC,kBAAkB,CAC3C,CAAC;IACF,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClD,IAAA,mCAAuB,EAAC,SAAS,CAAC,CAAC;IAEnC,MAAM,WAAW,GAAG,iBAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACxD,WAAW,CAAC,GAAG,CACX,WAAW,EACX,eAAM,CAAC,cAAc,CAAC,8EAA6D,EAAE,SAAS,CAAC,CAClG,CAAC;IAEF,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,SAAS,CAAC,aAAa,CAAC,gCAAc,CAAC,eAAe,EAAE,qBAAU,CAAC,sBAAsB,EAAE,EAAE,SAAS,CAAC,CAAC;IAC5G,CAAC;SAAM,CAAC;QACJ,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAE9B,IACI,UAAU,CAAC,WAAW,+BAAuB;YAC7C,UAAU,CAAC,eAAe;YAC1B,UAAU,CAAC,eAAe,CAAC,QAAQ,sCAA6B,EAClE,CAAC;YACC,eAAe,GAAG,IAAI,CAAC;YAEvB,gCAAgC,CAC5B,SAAS,EACT,UAAU,CAAC,eAAe,EAC1B,WAAW;YACX,cAAc,CAAC,KAAK,EACpB,QAAQ,CACX,CAAC;QACN,CAAC;aAAM,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;YACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;oBACxC,SAAS;gBACb,CAAC;gBAED,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnC,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,oBAAoB,EAAE,EACjC,KAAK,CAAC,eAAe,CACxB,CAAC;oBACF,SAAS;gBACb,CAAC;gBAED,8CAA8C;gBAC9C,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAEjC,MAAM,SAAS,GAAG,IAAI,eAAM,oCAA4B,CAAC;gBACzD,MAAM,WAAW,GAAwB;oBACrC,IAAI,kCAA0B;oBAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,GAAG,EAAE,QAAQ,CAAC,OAAO;oBACrB,kBAAkB,EAAE,KAAK,CAAC,eAAe;oBACzC,uBAAuB,EAAE,IAAI;oBAC7B,KAAK,EAAE,IAAA,qCAAqB,EACxB,KAAK,CAAC,IAAI,CAAC,KAAK,EAChB,qBAAS,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EACvC,QAAQ,CAAC,KAAK,CACjB;oBACD,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,eAAe,EAAE,KAAK;iBACzB,CAAC;gBACF,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBAEtC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACnD,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,SAAS,CAAC,aAAa,CAAC,gCAAc,CAAC,kBAAkB,EAAE,qBAAU,CAAC,sBAAsB,EAAE,EAAE,SAAS,CAAC,CAAC;QAC/G,CAAC;IACL,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QAClB,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,qBAAqB,GAAG,KAAK,CAAC;QAElC,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YAC/B,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAClE,IACI,CAAC,GAAG,CAAC,eAAe;oBACpB,GAAG,CAAC,eAAe,CAAC,QAAQ,oCAA2B;oBACvD,CAAC,CACG,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,+BAAsB;wBACrD,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,8BAAqB,CACvD,EACH,CAAC;oBACC,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAClE,GAAG,CAAC,eAAe,IAAI,SAAS,CACnC,CAAC;gBACN,CAAC;qBAAM,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,+BAAsB,EAAE,CAAC;oBAC/F,SAAS,CAAC,MAAM,CAAC,KAAK,6CAAoC,CAAC;gBAC/D,CAAC;qBAAM,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACvC,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,8BAAqB,EAAE,CAAC;wBACvD,SAAS,CAAC,MAAM,CAAC,KAAK;4BAClB,iGAAgF,CAAC;oBACzF,CAAC;oBAED,IAAI,qBAAqB,EAAE,CAAC;wBACxB,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,yBAAyB,EAAE,EACtC,GAAG,CAAC,eAAe,IAAI,SAAS,CACnC,CAAC;oBACN,CAAC;oBAED,qBAAqB,GAAG,IAAI,CAAC;gBACjC,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;gBAC7C,SAAS,CAAC,MAAM,CAAC,uBAAuB,GAAG,GAAG,CAAC,eAAe,CAAC;gBAC/D,SAAS,CAAC,MAAM,CAAC,KAAK,sDAA6C,CAAC;gBAEpE,IAAI,qBAAqB,EAAE,CAAC;oBACxB,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,yBAAyB,EAAE,EACtC,GAAG,CAAC,eAAe,IAAI,SAAS,CACnC,CAAC;gBACN,CAAC;gBAED,qBAAqB,GAAG,IAAI,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACJ,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,eAAe,EAC9B,qBAAU,CAAC,kBAAkB,EAAE,EAC/B,GAAG,CAAC,eAAe,IAAI,SAAS,CACnC,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;IAED,+BAA+B,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE3E,iFAAiF;IACjF,IAAI,SAAS,CAAC,MAAM,EAAE,QAAQ,qCAA6B,IAAI,SAAS,EAAE,CAAC;QACvE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC3C,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,0CAAiC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QAEvG,IAAI,eAAe,CAAC,QAAQ,gCAAuB,EAAE,CAAC;YAClD,IAAI,eAAe,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxC,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;oBACtC,IAAI,EAAE,SAAS;iBAClB,CAAC,EACF,eAAe,CAClB,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,oFAAoF;AACpF,SAAgB,0BAA0B,CACtC,SAAwB,EACxB,QAAwB,EACxB,cAAyB,EACzB,QAAkC;IAElC,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,aAAa,CAAC;IAEhC,MAAM,SAAS,GAAG,iBAAS,CAAC,kBAAkB,CAC1C,SAAS,EACT,cAAc,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,EACzE,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,OAAO,yCAEhB,cAAc,CAAC,eAAe,CAAC,QAAQ,CAAC;IACxC,uBAAuB,CAAC,SAAS,EACjC,cAAc,CAAC,MAAM,CAAC,kBAAkB,CAC3C,CAAC;IACF,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClD,IAAA,mCAAuB,EAAC,SAAS,CAAC,CAAC;IAEnC,gCAAgC,CAC5B,SAAS,EACT,QAAQ,EACR,iBAAS,CAAC,cAAc,CAAC,SAAS,CAAC;IACnC,cAAc,CAAC,IAAI,EACnB,QAAQ,CACX,CAAC;IACF,+BAA+B,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE1E,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAgB,+BAA+B,CAC3C,SAAwB,EACxB,IAAgC,EAChC,SAAoB,EACpB,QAAkC;IAElC,IAAA,cAAM,EAAC,iBAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IAE9C,+BAA+B;IAC/B,MAAM,OAAO,GAAG,oBAAY,CAAC,yBAAyB,CAAC,SAAS,8CAAsC,CAAC;IACvG,oBAAY,CAAC,QAAQ,CACjB,OAAO,EACP,qBAAa,CAAC,MAAM,+BAAuB,SAAS,EAAE,0BAAkB,CAAC,YAAY,EAAE,KAAK,CAAC,CAChG,CAAC;IACF,oBAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,CAAC,MAAM,CAAC,kBAAkB,GAAG,iBAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACzE,OAAO,CAAC,IAAI,CAAC,yBAAyB,GAAG,IAAA,6BAAiB,EAAC,SAAS,CAAC,CAAC;IAEtE,oDAAoD;IACpD,MAAM,aAAa,GAAG,oBAAY,CAAC,yBAAyB,CAAC,UAAU,yCAA+B,CAAC;IACvG,oBAAY,CAAC,QAAQ,CACjB,aAAa,EACb,qBAAa,CAAC,MAAM,+BAEhB,iBAAS,CAAC,eAAe,CAAC,SAAS,CAAC,EACpC,0BAAkB,CAAC,YAAY,EAC/B,MAAM,CACT,CACJ,CAAC;IACF,aAAa,CAAC,MAAM,CAAC,kBAAkB,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IAClE,aAAa,CAAC,IAAI,CAAC,yBAAyB,GAAG,IAAA,6BAAiB,EAAC,SAAS,CAAC,CAAC;IAE5E,+CAA+C;IAC/C,oBAAY,CAAC,QAAQ,CACjB,aAAa,EACb,qBAAa,CAAC,MAAM,+BAEhB,iBAAS,CAAC,eAAe,CAAC,SAAS,CAAC,EACpC,0BAAkB,CAAC,YAAY,EAC/B,OAAO,CACV,CACJ,CAAC;IAEF,MAAM,OAAO,GAAG,2BAA2B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClE,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,IAAI,+BAA+B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACrG,IAAI,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;IAExD,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC9B,oBAAY,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAC;QAE1D,mEAAmE;QACnE,oBAAY,CAAC,4BAA4B,CAAC,aAAa,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,aAAa,GAAG,oBAAY,CAAC,yBAAyB,CAAC,UAAU,yCAA+B,CAAC;IACvG,oBAAY,CAAC,QAAQ,CACjB,aAAa,EACb,qBAAa,CAAC,MAAM,+BAEhB,iBAAS,CAAC,eAAe,CAAC,SAAS,CAAC,EACpC,0BAAkB,CAAC,YAAY,EAC/B,MAAM,CACT,CACJ,CAAC;IACF,aAAa,CAAC,MAAM,CAAC,kBAAkB,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IAClE,aAAa,CAAC,IAAI,CAAC,yBAAyB,GAAG,IAAA,6BAAiB,EAAC,SAAS,CAAC,CAAC;IAE5E,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC9B,wDAAwD;QACxD,oBAAY,CAAC,4BAA4B,CAAC,aAAa,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACvC,oBAAY,CAAC,QAAQ,CACjB,aAAa,EACb,qBAAa,CAAC,MAAM,+BAEhB,KAAK,CAAC,SAAS,EACf,0BAAkB,CAAC,YAAY,EAC/B,IAAI,EACJ,KAAK,CAAC,SAAS,CAClB,CACJ,CAAC;QAEF,oBAAY,CAAC,QAAQ,CACjB,aAAa,EACb,qBAAa,CAAC,MAAM,+BAEhB,KAAK,CAAC,SAAS,EACf,0BAAkB,CAAC,YAAY,EAC/B,IAAI,EACJ,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CACjD,CACJ,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACpB,qBAAqB,GAAG,KAAK,CAAC;QAClC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,UAAU,IAAI,CAAC,IAAA,eAAO,EAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/D,oBAAY,CAAC,QAAQ,CACjB,aAAa,EACb,qBAAa,CAAC,MAAM,mCAEhB,OAAO,CAAC,UAAU,CAAC,SAAS,EAC5B,0BAAkB,CAAC,YAAY,EAC/B,QAAQ,CACX,CACJ,CAAC;QAEF,oBAAY,CAAC,QAAQ,CACjB,aAAa,EACb,qBAAa,CAAC,MAAM,mCAEhB,OAAO,CAAC,UAAU,CAAC,SAAS,EAC5B,0BAAkB,CAAC,YAAY,EAC/B,QAAQ,CACX,CACJ,CAAC;IACN,CAAC;IAED,MAAM,WAAW,GAAG,iBAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,sBAAc,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;IACvE,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,eAAM,CAAC,cAAc,kCAA0B,QAAQ,CAAC,CAAC,CAAC;IACtF,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,eAAM,CAAC,cAAc,kCAA0B,OAAO,CAAC,CAAC,CAAC;IAEpF,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAEvD,uEAAuE;IACvE,IAAI,IAAA,2BAAmB,EAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,qBAAa,CAAC,MAAM,+BAElC,iBAAS,CAAC,eAAe,CAAC,SAAS,CAAC,EACpC,0BAAkB,CAAC,YAAY,EAC/B,MAAM,CACT,CAAC;QAEF,SAAS,oBAAoB,CAAC,IAAkB;YAC5C,IAAI,cAAc,GAAG,mBAAW,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YAC9D,cAAc,GAAG,mBAAW,CAAC,eAAe,CACxC,cAAc,EACd,IAAI,CAAC,MAAM,CAAC,cAAe,EAC3B,SAAS,CAAC,MAAM,CAAC,IAAI,oCAExB,CAAC;YACF,OAAO,cAAc,CAAC;QAC1B,CAAC;QAED,SAAS,eAAe,CACpB,OAAa,EACb,SAAe,EACf,cAAuB,EACvB,eAAe,GAAG,KAAK,EACvB,uBAAuB,GAAG,KAAK;YAE/B,MAAM,WAAW,GAAG,oBAAY,CAAC,yBAAyB,CAAC,KAAK,yCAA+B,CAAC;YAChG,oBAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAC9C,WAAW,CAAC,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACrF,oBAAY,CAAC,QAAQ,CACjB,WAAW,EACX,qBAAa,CAAC,MAAM,+BAAuB,OAAO,EAAE,0BAAkB,CAAC,YAAY,EAAE,GAAG,CAAC,CAC5F,CAAC;YAEF,IAAI,cAAc,EAAE,CAAC;gBACjB,MAAM,cAAc,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;gBACzD,IAAI,gBAAsB,CAAC;gBAC3B,IAAI,UAAgB,CAAC;gBAErB,IAAI,eAAe,EAAE,CAAC;oBAClB,yEAAyE;oBACzE,oDAAoD;oBACpD,gBAAgB,GAAG,eAAO,CAAC,MAAM,EAAE,CAAC;oBACpC,UAAU,GAAG,SAAS,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACJ,IAAI,uBAAuB,EAAE,CAAC;wBAC1B,gBAAgB,GAAG,SAAS,CAAC;oBACjC,CAAC;yBAAM,CAAC;wBACJ,gBAAgB,GAAG,IAAA,oBAAY,EAAC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;oBACjE,CAAC;oBAED,UAAU,GAAG,gBAAgB,CAAC;gBAClC,CAAC;gBAED,oBAAY,CAAC,QAAQ,CACjB,WAAW,EACX,qBAAa,CAAC,MAAM,+BAEhB,gBAAgB,EAChB,0BAAkB,CAAC,YAAY,EAC/B,SAAS,CACZ,CACJ,CAAC;gBACF,WAAW,CAAC,MAAM,CAAC,kBAAkB,GAAG,UAAU,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACJ,WAAW,CAAC,MAAM,CAAC,kBAAkB,GAAG,eAAe;oBACnD,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,IAAA,oBAAY,EAAC,CAAC,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC7D,CAAC;YACD,OAAO,WAAW,CAAC;QACvB,CAAC;QAED,SAAS,gBAAgB,CAAC,OAAa,EAAE,SAAe,EAAE,eAAwB;YAC9E,MAAM,QAAQ,GAAG,qBAAa,CAAC,MAAM,+BAAuB,OAAO,EAAE,0BAAkB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;YAE3G,MAAM,YAAY,GAAG,oBAAY,CAAC,yBAAyB,CAAC,KAAK,yCAA+B,CAAC;YACjG,oBAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAC/C,oBAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YAC9C,YAAY,CAAC,MAAM,CAAC,kBAAkB,GAAG,SAAS,CAAC;YAEnD,MAAM,YAAY,GAAG,oBAAY,CAAC,yBAAyB,CAAC,KAAK,yCAA+B,CAAC;YACjG,oBAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAC/C,oBAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YAC9C,YAAY,CAAC,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACtF,MAAM,cAAc,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;YAE1D,IAAI,gBAAsB,CAAC;YAC3B,IAAI,UAAgB,CAAC;YAErB,IAAI,eAAe,EAAE,CAAC;gBAClB,yEAAyE;gBACzE,oDAAoD;gBACpD,gBAAgB,GAAG,eAAO,CAAC,MAAM,EAAE,CAAC;gBACpC,UAAU,GAAG,SAAS,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACJ,gBAAgB,GAAG,IAAA,oBAAY,EAAC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;gBAC7D,UAAU,GAAG,gBAAgB,CAAC;YAClC,CAAC;YAED,oBAAY,CAAC,QAAQ,CACjB,YAAY,EACZ,qBAAa,CAAC,MAAM,+BAEhB,gBAAgB,EAChB,0BAAkB,CAAC,YAAY,EAC/B,SAAS,EACT,gBAAgB,CACnB,CACJ,CAAC;YACF,YAAY,CAAC,MAAM,CAAC,kBAAkB,GAAG,UAAU,CAAC;YACpD,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACxC,CAAC;QAED,SAAS,sBAAsB,CAAC,OAAa,EAAE,SAAe;YAC1D,MAAM,kBAAkB,GAAG,oBAAY,CAAC,yBAAyB,CAC7D,YAAY,yCAEf,CAAC;YACF,oBAAY,CAAC,QAAQ,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;YACrD,oBAAY,CAAC,QAAQ,CACjB,kBAAkB,EAClB,qBAAa,CAAC,MAAM,+BAAuB,OAAO,EAAE,0BAAkB,CAAC,YAAY,EAAE,GAAG,CAAC,CAC5F,CAAC;YACF,oBAAY,CAAC,QAAQ,CACjB,kBAAkB,EAClB,qBAAa,CAAC,MAAM,+BAAuB,SAAS,EAAE,0BAAkB,CAAC,YAAY,EAAE,SAAS,CAAC,CACpG,CAAC;YACF,kBAAkB,CAAC,MAAM,CAAC,kBAAkB,GAAG,SAAS,CAAC;YACzD,OAAO,kBAAkB,CAAC;QAC9B,CAAC;QAED,SAAS,mBAAmB,CAAC,OAAa;YACtC,MAAM,eAAe,GAAG,oBAAY,CAAC,yBAAyB,CAAC,SAAS,yCAA+B,CAAC;YACxG,oBAAY,CAAC,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;YAClD,oBAAY,CAAC,QAAQ,CACjB,eAAe,EACf,qBAAa,CAAC,MAAM,+BAAuB,OAAO,EAAE,0BAAkB,CAAC,YAAY,EAAE,GAAG,CAAC,CAC5F,CAAC;YACF,eAAe,CAAC,MAAM,CAAC,kBAAkB,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YACpE,OAAO,eAAe,CAAC;QAC3B,CAAC;QAED,SAAS,kBAAkB;YACvB,yDAAyD;YACzD,MAAM,aAAa,GAAG,oBAAY,CAAC,yBAAyB,CAAC,QAAQ,yCAA+B,CAAC;YACrG,oBAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YAEhD,8DAA8D;YAC9D,MAAM,aAAa,GAAG,oBAAY,CAAC,yBAAyB,CAAC,QAAQ,yCAA+B,CAAC;YACrG,oBAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YAEhD,6CAA6C;YAC7C,MAAM,aAAa,GAAG,oBAAY,CAAC,yBAAyB,CAAC,QAAQ,yCAA+B,CAAC;YACrG,oBAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YAEhD,qDAAqD;YACrD,oBAAY,CAAC,QAAQ,CACjB,aAAa,EACb,qBAAa,CAAC,MAAM,+BAEhB,qBAAqB;gBACjB,CAAC,CAAC,iBAAS,CAAC,WAAW,EAAE;gBACzB,CAAC,CAAC,iBAAS,CAAC,eAAe,CAAC,iBAAS,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,EAC9E,0BAAkB,CAAC,YAAY,EAC/B,KAAK,CACR,CACJ,CAAC;YAEF,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC9B,oBAAY,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAC;gBAC1D,oBAAY,CAAC,4BAA4B,CAAC,aAAa,CAAC,CAAC;YAC7D,CAAC;YAED,aAAa,CAAC,MAAM,CAAC,kBAAkB,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YAClE,aAAa,CAAC,MAAM,CAAC,kBAAkB,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YAClE,aAAa,CAAC,MAAM,CAAC,kBAAkB,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YAElE,MAAM,eAAe,GAAW,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAE3D,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACvC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;oBACpB,2CAA2C;oBAC3C,IAAI,UAAU,IAAI,IAAA,2BAAmB,EAAC,UAAU,CAAC,IAAI,QAAQ,IAAI,IAAA,2BAAmB,EAAC,QAAQ,CAAC,EAAE,CAAC;wBAC7F,MAAM,SAAS,GAAG,IAAA,gCAAoB,EAAC,iBAAS,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE;4BAC1E;gCACI,IAAI,EAAE,iBAAS,CAAC,gBAAgB,CAAC,iBAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;gCAC3E,WAAW,EAAE,KAAK;6BACrB;4BACD,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE;yBAChD,CAAC,CAAC;wBAEH,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACpC,CAAC;oBAED,gDAAgD;oBAChD,oBAAY,CAAC,QAAQ,CACjB,aAAa,EACb,qBAAa,CAAC,MAAM,+BAEhB,KAAK,CAAC,SAAS,EACf,0BAAkB,CAAC,YAAY,EAC/B,IAAI,EACJ,eAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CACxC,CACJ,CAAC;gBACN,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAChE,IAAI,aAAa,IAAI,IAAA,2BAAmB,EAAC,aAAa,CAAC,EAAE,CAAC;gBACtD,MAAM,YAAY,GAAG,iBAAS,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;gBAE9D,oBAAY,CAAC,QAAQ,CACjB,aAAa,EACb,qBAAa,CAAC,MAAM,+BAEhB,iBAAS,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,IAAA,oBAAY,EAAC,eAAe,CAAC,CAAC,CAAC,EACnE,0BAAkB,CAAC,YAAY,EAC/B,KAAK,CACR,CACJ,CAAC;YACN,CAAC;YAED,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC9B,oBAAY,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAC;YAC9D,CAAC;YAED,yEAAyE;YACzE,0EAA0E;YAC1E,oBAAoB;YACpB,OAAO,sBAAc,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,YAAY,GAAmB,EAAE,CAAC;QACxC,MAAM,YAAY,GAAmB,EAAE,CAAC;QACxC,MAAM,mBAAmB,GAAmB,EAAE,CAAC;QAE/C,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACvC,MAAM,eAAe,GAAG,iBAAS,CAAC,eAAe,CAAC,iBAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;YAE9F,YAAY,CAAC,IAAI,CACb,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAClG,CAAC;YAEF,YAAY,CAAC,IAAI,CACb,eAAe,CACX,eAAe,EACf,KAAK,CAAC,SAAS;YACf,oBAAoB,CAAC,IAAI;YACzB,qBAAqB,CAAC,KAAK,CAAC,UAAU;YACtC,6BAA6B,CAAC,KAAK,CAAC,UAAU,CACjD,CACJ,CAAC;YAEF,iDAAiD;YACjD,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;gBACzC,IAAA,6BAAW,EAAC,YAAY,EAAE,gBAAgB,CAAC,eAAe,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YACpG,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;gBACpB,mBAAmB,CAAC,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YACvF,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,iBAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAEpD,iEAAiE;QACjE,mEAAmE;QACnE,sBAAsB;QACtB,IAAI,iBAAS,CAAC,4BAA4B,CAAC,SAAS,CAAC,EAAE,CAAC;YACpD,YAAY,CAAC,IAAI,CACb,eAAe,CACX,OAAO,EACP,IAAA,oBAAY,EAAC,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;YACnE,oBAAoB,CAAC,KAAK;YAC1B,qBAAqB,CAAC,IAAI,CAC7B,CACJ,CAAC;YACF,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,gBAAgB,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;QACvG,CAAC;aAAM,CAAC;YACJ,qEAAqE;YACrE,sDAAsD;YACtD,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,eAAO,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1F,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,eAAO,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7F,CAAC;QAED,8BAA8B;QAC9B,IAAI,iBAAS,CAAC,4BAA4B,CAAC,SAAS,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,IAAA,eAAO,EAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvC,YAAY,CAAC,IAAI,CACb,GAAG,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,CAAC,SAAS,EAAE,qBAAqB,CAAC,KAAK,CAAC,CACxF,CAAC;YACN,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,YAAY,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,aAAa,EAAE,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5G,CAAC;QAED,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,eAAM,CAAC,cAAc,kCAA0B,sBAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAE5G,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,eAAM,CAAC,cAAc,kCAA0B,sBAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAChH,CAAC;QAED,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,WAAW,CAAC,GAAG,CACX,YAAY,EACZ,eAAM,CAAC,cAAc,kCAA0B,sBAAc,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAC7F,CAAC;QACN,CAAC;QAED,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACzB,WAAW,CAAC,GAAG,CACX,aAAa,EACb,eAAM,CAAC,cAAc,kCAA0B,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAC/E,CAAC;QACN,CAAC;QAED,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAM,CAAC,cAAc,kCAA0B,kBAAkB,EAAE,CAAC,CAAC,CAAC;QAEhG,wEAAwE;QACxE,oDAAoD;QACpD,MAAM,aAAa,GAAG,0BAA0B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAEvE,IAAI,aAAa,EAAE,CAAC;YAChB,MAAM,WAAW,GAAG,oBAAY,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;YACpE,oBAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAC9C,WAAW,CAAC,MAAM,CAAC,kBAAkB,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YAChE,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,eAAM,CAAC,cAAc,kCAA0B,WAAW,CAAC,CAAC,CAAC;YAEtF,MAAM,aAAa,GAAG,oBAAY,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;YACxE,oBAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YAChD,IAAI,SAAS,GAAqB,SAAS,CAAC,iBAAiB,EAAE,CAAC;YAEhE,IAAI,SAAS,IAAI,IAAA,2BAAmB,EAAC,SAAS,CAAC,EAAE,CAAC;gBAC9C,SAAS,GAAG,IAAA,gCAAoB,EAC5B,iBAAS,CAAC,eAAe,CAAC,SAAS,CAAC,EACpC;oBACI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE;oBACrC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE;iBAC9C;gBACD,uBAAuB,CAAC,IAAI,CAC/B,CAAC;YACN,CAAC;iBAAM,CAAC;gBACJ,SAAS,GAAG,mBAAW,CAAC,MAAM,EAAE,CAAC;YACrC,CAAC;YAED,aAAa,CAAC,MAAM,CAAC,kBAAkB,GAAG,SAAS,CAAC;YACpD,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,eAAM,CAAC,cAAc,kCAA0B,aAAa,CAAC,CAAC,CAAC;QAC9F,CAAC;QAED,wEAAwE;QACxE,gDAAgD;QAChD,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAE7E,IAAI,gBAAgB,EAAE,CAAC;YACnB,IAAI,YAAY,GAAS,OAAO,CAAC;YAEjC,6DAA6D;YAC7D,yDAAyD;YACzD,IAAI,OAAO,CAAC,UAAU,IAAI,IAAA,eAAO,EAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9D,YAAY,GAAG,IAAA,oBAAY,EACvB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAC/F,CAAC;YACN,CAAC;YAED,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBAC/C,MAAM,MAAM,GAAG,oBAAY,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;gBAClE,oBAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAEzC,MAAM,eAAe,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,UAAU,EAAE,CAAC,CAAC;gBAC5E,IACI,eAAe;oBACf,IAAA,2BAAmB,EAAC,eAAe,CAAC;oBACpC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAChD,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,kBAAkB,GAAG,iBAAS,CAAC,UAAU,CACnD,iBAAS,CAAC,eAAe,CAAC,eAAe,CAAC,EAC1C,CAAC,YAAY,EAAE,gBAAgB,CAAC,CACnC,CAAC;oBAEF,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,eAAM,CAAC,cAAc,kCAA0B,MAAM,CAAC,CAAC,CAAC;gBACxF,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;AACL,CAAC;AAED,SAAgB,2BAA2B,CACvC,SAAwB,EACxB,SAAoB,EACpB,aAAa,GAAG,KAAK;IAErB,kDAAkD;IAClD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACrC,MAAM,OAAO,GAAqB;YAC9B,UAAU,EAAE,IAAI,GAAG,EAA0B;YAC7C,UAAU,EAAE,SAAS;SACxB,CAAC;QACF,oCAAoC,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAEpE,IAAI,iBAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACtE,OAAO,CAAC,UAAU,GAAG;gBACjB,SAAS,EAAE,iBAAS,CAAC,WAAW,EAAE;gBAClC,UAAU,EAAE,KAAK;gBACjB,UAAU,EAAE,KAAK;gBACjB,UAAU,EAAE,KAAK;aACpB,CAAC;QACN,CAAC;QAED,mCAAmC;QACnC,SAAS,CAAC,MAAM,CAAC,gBAAgB,GAAG,OAAO,CAAC;IAChD,CAAC;IAED,MAAM,QAAQ,GAAG,IAAA,6CAAiC,EAAC,SAAS,CAAC,CAAC;IAE9D,0EAA0E;IAC1E,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAClD,SAAS,CAAC,MAAM,CAAC,gBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACjE,MAAM,OAAO,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;QAC7B,OAAO,CAAC,SAAS,GAAG,IAAA,+BAAmB,EAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAErE,uEAAuE;QACvE,8BAA8B;QAC9B,IAAI,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACpC,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;YAE3B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACrB,OAAO,CAAC,SAAS,GAAG,iBAAS,CAAC,WAAW,EAAE,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,CAAC;QACL,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,8DAA8D;IAC9D,IAAI,aAAa,IAAI,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAC3D,SAAS,CAAC,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC3D,MAAM,OAAO,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;YAC7B,OAAO,CAAC,SAAS,GAAG,IAAA,+BAAmB,EAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,UAAU,CAAC;IAC/D,IAAI,UAAU,EAAE,CAAC;QACb,UAAU,GAAG;YACT,GAAG,UAAU;YACb,SAAS,EAAE,IAAA,+BAAmB,EAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC;SACjE,CAAC;IACN,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC/C,CAAC;AAED,oEAAoE;AACpE,gFAAgF;AAChF,SAAgB,6BAA6B,CAAC,SAAwB,EAAE,SAAoB;IACxF,IAAA,cAAM,EAAC,IAAA,2BAAmB,EAAC,SAAS,CAAC,CAAC,CAAC;IACvC,IAAA,cAAM,EAAC,iBAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IAE9C,gFAAgF;IAChF,IAAI,CAAC,iBAAS,CAAC,4BAA4B,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,OAAO,GAAG,2BAA2B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClE,MAAM,cAAc,GAAW,EAAE,CAAC;IAElC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACjC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACrB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;IAED,oCAAoC;IACpC,MAAM,SAAS,GAAG,IAAA,oBAAY,EAAC,cAAc,CAAC,CAAC;IAC/C,IAAI,IAAA,uBAAe,EAAC,SAAS,CAAC,IAAI,iBAAS,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;QACzE,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,wEAAwE;AACxE,kCAAkC;AAClC,SAAgB,0BAA0B,CACtC,SAAwB,EACxB,SAAoB,EACpB,cAAc,GAAG,CAAC;IAElB,IAAA,cAAM,EAAC,IAAA,2BAAmB,EAAC,SAAS,CAAC,CAAC,CAAC;IACvC,IAAA,cAAM,EAAC,iBAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IAE9C,sEAAsE;IACtE,IAAI,CAAC,iBAAS,CAAC,4BAA4B,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,OAAO,GAAG,2BAA2B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAElE,mEAAmE;IACnE,wBAAwB;IACxB,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QACvD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;IAEjD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;QAC9C,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACvC,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,aAAa,GAAG,IAAA,oBAAY,EAAC,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAE/D,IACI,CAAC,SAAS,CAAC,UAAU,CACjB,aAAa,EACb,KAAK,CAAC,SAAS;QACf,UAAU,CAAC,SAAS;QACpB,iBAAiB,CAAC,SAAS,qCAE3B,cAAc,GAAG,CAAC,CACrB,EACH,CAAC;YACC,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IAED,OAAO,aAAa,CAAC;AACzB,CAAC;AAED,SAAS,gCAAgC,CACrC,SAAwB,EACxB,SAAyB,EACzB,WAAwB,EACxB,QAAiB,EACjB,QAAkC;IAElC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAEjD,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAChC,IAAI,KAAK,CAAC,QAAQ,8CAAqC,EAAE,CAAC;YACtD,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,2BAA2B,EAAE,EACxC,KAAK,CACR,CAAC;YACF,OAAO;QACX,CAAC;QAED,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,sCAA6B,EAAE,CAAC;YACxD,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,kBAAkB,EAAE,EAC/B,KAAK,CAAC,CAAC,CAAC,OAAO,CAClB,CAAC;YACF,OAAO;QACX,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,kBAAkB,EAAE,EAC/B,KAAK,CAAC,CAAC,CAAC,OAAO,CAClB,CAAC;YACF,OAAO;QACX,CAAC;QAED,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,oBAAoB,EAAE,EACjC,KAAK,CAAC,CAAC,CAAC,OAAO,CAClB,CAAC;YACF,OAAO;QACX,CAAC;QAED,8CAA8C;QAC9C,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAExB,MAAM,SAAS,GAAG,IAAI,eAAM,oCAA4B,CAAC;QACzD,MAAM,WAAW,GAAwB;YACrC,IAAI,kCAA0B;YAC9B,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO;YACrB,GAAG,EAAE,QAAQ,CAAC,OAAO;YACrB,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS;YACrC,uBAAuB,EAAE,CAAC,QAAQ;YAClC,KAAK,EAAE,IAAA,qCAAqB,EAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,qBAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;YACtG,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,eAAe,EAAE,KAAK;YACtB,oBAAoB,EAAE,IAAI;SAC7B,CAAC;QACF,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAEtC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,iEAAiE;IACjE,uBAAuB;IACvB,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,oCAAoC,CACzC,SAAwB,EACxB,SAAoB,EACpB,OAAyB,EACzB,cAAc,GAAG,CAAC;IAElB,IAAA,cAAM,EAAC,iBAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,IAAI,cAAc,GAAG,6BAAqB,EAAE,CAAC;QACzC,OAAO;IACX,CAAC;IACD,cAAc,EAAE,CAAC;IAEjB,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;QACnD,IAAI,IAAA,2BAAmB,EAAC,aAAa,CAAC,IAAI,iBAAS,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC;YAClF,MAAM,wBAAwB,GAAG,IAAA,mCAAuB,EACpD,aAAa,EACb,SAAS,EACT,SAAS,CAAC,gBAAgB,EAAE,CAC/B,CAAC;YACF,IAAA,cAAM,EAAC,IAAA,eAAO,EAAC,wBAAwB,CAAC,CAAC,CAAC;YAE1C,uEAAuE;YACvE,kEAAkE;YAClE,oCAAoC,CAAC,SAAS,EAAE,wBAAwB,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QACvG,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAA,6CAAiC,EAAC,SAAS,CAAC,CAAC;IAE9D,IAAI,iBAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,OAAO,CAAC,UAAU,GAAG;YACjB,SAAS,EAAE,iBAAS,CAAC,WAAW,EAAE;YAClC,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,KAAK;SACpB,CAAC;IACN,CAAC;SAAM,IAAI,SAAS,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC;QAClD,MAAM,oBAAoB,GAAG,SAAS,CAAC,gCAAgC,CACnE,SAAS,CAAC,MAAM,CAAC,uBAAuB,EACxC,EAAE,aAAa,EAAE,IAAI,EAAE,CAC1B,CAAC;QAEF,OAAO,CAAC,UAAU,GAAG;YACjB,SAAS,EAAE,IAAA,6BAAiB,EAAC,oBAAoB,CAAC,IAAI,CAAC;YACvD,UAAU,EAAE,CAAC,CAAC,oBAAoB,CAAC,UAAU;YAC7C,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,IAAI;SACnB,CAAC;IACN,CAAC;IAED,kDAAkD;IAClD,iBAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACzD,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,EAAE,CAAC;YACtC,gEAAgE;YAChE,MAAM,QAAQ,GAAG,IAAA,8CAAgC,EAAC,MAAM,CAAC,CAAC;YAE1D,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,qCAA6B,EAAE,CAAC;gBACzD,IAAI,SAAS,GAAG,SAAS,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;gBAC3D,SAAS,GAAG,IAAA,+BAAmB,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAErD,IAAI,UAAU,GAAG,CAAC,iBAAS,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;gBAC3D,IAAI,UAAU,GAAG,KAAK,CAAC;gBAEvB,IAAI,2BAA2B,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;oBACjD,UAAU,GAAG,IAAI,CAAC;gBACtB,CAAC;qBAAM,IAAI,8BAA8B,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;oBAC3D,UAAU,GAAG,KAAK,CAAC;gBACvB,CAAC;gBAED,IAAI,2BAA2B,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;oBACjD,UAAU,GAAG,IAAI,CAAC;gBACtB,CAAC;gBAED,MAAM,OAAO,GAAmB;oBAC5B,SAAS;oBACT,UAAU;oBACV,UAAU;oBACV,UAAU,EAAE,KAAK;iBACpB,CAAC;gBAEF,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,+BAA+B,CAAC,SAAwB,EAAE,SAAoB;IAC1F,IAAA,cAAM,EAAC,iBAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IAE9C,0EAA0E;IAC1E,iCAAiC;IACjC,IAAI,CAAC,iBAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC,EAAE,CAAC;QAChD,OAAO;YACH,SAAS,EAAE,SAAS,CAAC,aAAa,EAAE;YACpC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,KAAK;SACpB,CAAC;IACN,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,UAAU,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC;IACxD,CAAC;IAED,OAAO;QACH,SAAS,EAAE,iBAAS,CAAC,WAAW,EAAE;QAClC,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,KAAK;KACpB,CAAC;AACN,CAAC;AAED,SAAgB,0BAA0B,CACtC,SAAwB,EACxB,QAAmB,EACnB,OAAkB,EAClB,IAAoC,EACpC,WAA0C,EAC1C,KAAsB,EACtB,cAAc,GAAG,CAAC;IAElB,IAAI,kBAAkB,GAAG,IAAI,CAAC;IAC9B,MAAM,WAAW,GAAG,2BAA2B,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,2BAA2B,CAAC,SAAS,EAAE,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC7F,MAAM,eAAe,GAAG,UAAU,CAAC,UAAU,IAAI,+BAA+B,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAErG,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE;QAC/C,kEAAkE;QAClE,2EAA2E;QAC3E,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/B,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,IAAI,SAAS,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;gBAChD,IAAI,EAAE,cAAc,EAAE,CAAC,UAAU,CAC7B,sBAAW,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;oBACvC,IAAI;oBACJ,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,iBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;iBAChE,CAAC,CACL,CAAC;gBACF,kBAAkB,GAAG,KAAK,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACJ,IAAI,IAAA,uBAAe,EAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC7C,MAAM,OAAO,GAAG,IAAI,EAAE,cAAc,EAAE,CAAC;oBACvC,IACI,CAAC,SAAS,CAAC,UAAU,CACjB,SAAS,CAAC,SAAS,EACnB,eAAe,CAAC,SAAS,EACzB,OAAO,EAAE,cAAc,EAAE,EACzB,WAAW,EACX,KAAK,EACL,cAAc,CACjB,EACH,CAAC;wBACC,OAAO,EAAE,UAAU,CAAC,sBAAW,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;wBACvE,kBAAkB,GAAG,KAAK,CAAC;oBAC/B,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,SAAS,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;gBACxE,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU;oBAChC,CAAC,CAAC,sBAAW,CAAC,sBAAsB,EAAE;oBACtC,CAAC,CAAC,sBAAW,CAAC,yBAAyB,EAAE,CAAC;gBAC9C,IAAI,EAAE,cAAc,EAAE,CAAC,UAAU,CAC7B,OAAO,CAAC,MAAM,CAAC;oBACX,IAAI;oBACJ,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,iBAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;iBACjE,CAAC,CACL,CAAC;gBACF,kBAAkB,GAAG,KAAK,CAAC;YAC/B,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAC/C,IAAI,EAAE,cAAc,EAAE,CAAC,UAAU,CAC7B,sBAAW,CAAC,yBAAyB,EAAE,CAAC,MAAM,CAAC;oBAC3C,IAAI;oBACJ,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,iBAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;iBACjE,CAAC,CACL,CAAC;gBACF,kBAAkB,GAAG,KAAK,CAAC;YAC/B,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,EAAE,cAAc,EAAE,CAAC;YAEvC,IACI,CAAC,SAAS,CAAC,UAAU,CACjB,SAAS,CAAC,SAAS,EACnB,QAAQ,CAAC,SAAS,EAClB,OAAO,EAAE,cAAc,EAAE,EACzB,WAAW,EACX,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,oCAA4B,EAChE,cAAc,CACjB,EACH,CAAC;gBACC,OAAO,EAAE,UAAU,CAAC,sBAAW,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACvE,kBAAkB,GAAG,KAAK,CAAC;YAC/B,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,kEAAkE;IAClE,qDAAqD;IACrD,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,gFAAgF;IAChF,sEAAsE;IACtE,IAAI,iBAAS,CAAC,4BAA4B,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,MAAM,gBAAgB,GAAG,WAAW,CAAC,UAAU,IAAI,+BAA+B,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAExG,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE;YAC7C,uDAAuD;YACvD,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,OAAO;YACX,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,IAAI,EAAE,cAAc,EAAE,CAAC;gBACvC,OAAO,EAAE,UAAU,CACf,sBAAW,CAAC,6BAA6B,EAAE,CAAC,MAAM,CAAC;oBAC/C,IAAI;oBACJ,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,iBAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;iBACjE,CAAC,CACL,CAAC;gBACF,kBAAkB,GAAG,KAAK,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACJ,IAAI,QAAQ,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;oBAC5D,IAAI,EAAE,cAAc,EAAE,CAAC,UAAU,CAC7B,sBAAW,CAAC,yBAAyB,EAAE,CAAC,MAAM,CAAC;wBAC3C,IAAI;wBACJ,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,iBAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;qBACjE,CAAC,CACL,CAAC;oBACF,kBAAkB,GAAG,KAAK,CAAC;gBAC/B,CAAC;gBAED,MAAM,OAAO,GAAG,IAAI,EAAE,cAAc,EAAE,CAAC;gBAEvC,IACI,CAAC,SAAS,CAAC,UAAU,CACjB,WAAW,CAAC,UAAU,CAAC,SAAS,EAChC,QAAQ,CAAC,SAAS,EAClB,OAAO,EAAE,cAAc,EAAE,EACzB,WAAW,EACX,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,oCAA4B,EAC7E,cAAc,CACjB,EACH,CAAC;oBACC,OAAO,EAAE,UAAU,CACf,sBAAW,CAAC,+BAA+B,EAAE,CAAC,MAAM,CAAC;wBACjD,IAAI;wBACJ,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,iBAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;qBACjE,CAAC,CACL,CAAC;oBACF,kBAAkB,GAAG,KAAK,CAAC;gBAC/B,CAAC;qBAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;oBACnE,IAAI,EAAE,cAAc,EAAE,CAAC,UAAU,CAC7B,sBAAW,CAAC,yBAAyB,EAAE,CAAC,MAAM,CAAC;wBAC3C,IAAI;wBACJ,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,iBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;qBAChE,CAAC,CACL,CAAC;oBACF,kBAAkB,GAAG,KAAK,CAAC;gBAC/B,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,EAAE,cAAc,EAAE,CAAC;QACvC,IACI,CAAC,SAAS,CAAC,UAAU,CACjB,gBAAgB,CAAC,SAAS,EAC1B,eAAe,CAAC,SAAS,EACzB,OAAO,EAAE,cAAc,EAAE,EACzB,WAAW,EACX,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,oCAA4B,EACvE,cAAc,CACjB,EACH,CAAC;YACC,OAAO,EAAE,UAAU,CACf,sBAAW,CAAC,+BAA+B,EAAE,CAAC,MAAM,CAAC;gBACjD,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,iBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;aAChE,CAAC,CACL,CAAC;YACF,kBAAkB,GAAG,KAAK,CAAC;QAC/B,CAAC;aAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,IAAI,eAAe,CAAC,UAAU,EAAE,CAAC;YACpE,IAAI,EAAE,cAAc,EAAE,CAAC,UAAU,CAC7B,sBAAW,CAAC,yBAAyB,EAAE,CAAC,MAAM,CAAC;gBAC3C,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,iBAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;aACjE,CAAC,CACL,CAAC;YACF,kBAAkB,GAAG,KAAK,CAAC;QAC/B,CAAC;IACL,CAAC;IAED,OAAO,kBAAkB,CAAC;AAC9B,CAAC;AAED,sEAAsE;AACtE,qEAAqE;AACrE,sEAAsE;AACtE,oEAAoE;AACpE,oEAAoE;AACpE,4DAA4D;AAC5D,SAAgB,iBAAiB,CAC7B,SAAwB,EACxB,SAAoB,EACpB,QAA8B,EAC9B,UAAgC,EAChC,YAAiC;IAEjC,IAAA,cAAM,EAAC,IAAA,uBAAe,EAAC,SAAS,CAAC,CAAC,CAAC;IACnC,IAAA,cAAM,EAAC,iBAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,IAAA,cAAM,EAAC,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC;IAE9C,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,MAAM,eAAe,GAAG,IAAI,GAAG,EAA0B,CAAC;IAE1D,IAAI,WAA0C,CAAC;IAC/C,IAAI,gBAAgB,GAAG,SAAS,CAAC;IAEjC,IAAI,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,WAAW,GAAG,IAAI,qCAAiB,EAAE,CAAC;QAEtC,0DAA0D;QAC1D,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,gBAAgB,GAAG,iBAAS,CAAC,UAAU,CAAC,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACjF,CAAC;IACL,CAAC;IAED,MAAM,SAAS,GAAG,2BAA2B,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAE3E,QAAQ,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,IAAA,uBAAe,EAAC,OAAO,CAAC,IAAI,CAAC,iBAAS,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAA,yBAAa,EAAC,OAAO,CAAC,EAAE,CAAC;YAC/F,OAAO,GAAG,KAAK,CAAC;QACpB,CAAC;aAAM,CAAC;YACJ,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,YAAsB,CAAC;YACrD,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEvD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;oBACvB,MAAM,OAAO,GAAG,YAAY,EAAE,cAAc,EAAE,CAAC;oBAC/C,IACI,CAAC,SAAS,CAAC,UAAU,CACjB,SAAS,CAAC,UAAU,CAAC,SAAS,EAC9B,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,EACtB,OAAO,EAAE,cAAc,EAAE,EACzB,WAAW,qDAEd,EACH,CAAC;wBACC,IAAI,OAAO,EAAE,CAAC;4BACV,OAAO,CAAC,UAAU,CACd,sBAAW,CAAC,0BAA0B,EAAE,CAAC,MAAM,CAAC;gCAC5C,IAAI,EAAE,aAAa;gCACnB,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;6BACpD,CAAC,CACL,CAAC;4BAEF,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;wBAC7C,CAAC;wBACD,OAAO,GAAG,KAAK,CAAC;oBACpB,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,uCAAuC;oBACvC,OAAO,GAAG,KAAK,CAAC;oBAChB,IAAI,YAAY,EAAE,CAAC;wBACf,MAAM,OAAO,GAAG,YAAY,EAAE,cAAc,EAAE,CAAC;wBAC/C,OAAO,CAAC,UAAU,CACd,sBAAW,CAAC,uBAAuB,EAAE,CAAC,MAAM,CAAC;4BACzC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,YAAsB;4BACzC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,iBAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;yBAClE,CAAC,CACL,CAAC;wBAEF,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC7C,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,gDAAgD;gBAChD,MAAM,OAAO,GAAG,YAAY,EAAE,cAAc,EAAE,CAAC;gBAC/C,IACI,CAAC,SAAS,CAAC,UAAU,CACjB,WAAW,CAAC,SAAS,EACrB,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,EACtB,OAAO,EAAE,cAAc,EAAE,EACzB,WAAW,qDAEd,EACH,CAAC;oBACC,IAAI,OAAO,EAAE,CAAC;wBACV,OAAO,CAAC,UAAU,CACd,sBAAW,CAAC,0BAA0B,EAAE,CAAC,MAAM,CAAC;4BAC5C,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,YAAsB;4BACzC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;yBACpD,CAAC,CACL,CAAC;wBAEF,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC7C,CAAC;oBACD,OAAO,GAAG,KAAK,CAAC;gBACpB,CAAC;gBAED,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;oBAC1B,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE;wBAC1B,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI;wBACjC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU;wBAC1C,UAAU,EAAE,KAAK;wBACjB,UAAU,EAAE,IAAI;qBACnB,CAAC,CAAC;gBACP,CAAC;gBAED,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;YAClC,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,wCAAwC;IACxC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACzC,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,YAAY,EAAE,CAAC;gBACf,YAAY,CAAC,UAAU,CACnB,sBAAW,CAAC,sBAAsB,EAAE,CAAC,MAAM,CAAC;oBACxC,IAAI;oBACJ,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC;iBACvC,CAAC,CACL,CAAC;YACN,CAAC;YACD,OAAO,GAAG,KAAK,CAAC;QACpB,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,oBAAoB,GAAG,WAAW;QACpC,CAAC,CAAE,SAAS,CAAC,wBAAwB,CAAC,gBAAgB,EAAE,WAAW,CAAe;QAClF,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,eAAe,CAAC,IAAI,KAAK,CAAC;QAC7B,CAAC,CAAC,oBAAoB;QACtB,CAAC,CAAC,iBAAS,CAAC,gCAAgC,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;AAC5F,CAAC;AAED,SAAgB,yBAAyB,CACrC,SAAwB,EACxB,IAAe,EACf,QAAmB,EACnB,KAAqB;IAErB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAC1E,IAAI,CACP,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED,gEAAgE;IAChE,IAAI,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,+BAAuB,EAAE,CAAC;QACzG,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,OAAO,GAAG,2BAA2B,CAAC,SAAS,EAAE,QAAQ,EAAE,mBAAmB,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;IAE7G,MAAM,eAAe,GAAG,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnF,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC;IACvC,IAAI,IAAI,GAAG,IAAI,+BAAkB,EAAE,CAAC;IACpC,IAAI,8BAA8B,GAAG,IAAI,CAAC;IAE1C,IAAI,YAAiC,CAAC;IACtC,MAAM,aAAa,GAAG,IAAA,uBAAW,EAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;QACrD,IAAI,IAAA,sBAAc,EAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,IAAI,IAAA,uBAAe,EAAC,OAAO,CAAC,IAAI,iBAAS,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;YAClE,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC1C,sDAAsD;gBACtD,mDAAmD;gBACnD,OAAO,mBAAW,CAAC,MAAM,EAAE,CAAC;YAChC,CAAC;YAED,uDAAuD;YACvD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,YAAsB,CAAC;YACtD,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC;YACtE,IAAI,CAAC,KAAK,IAAI,IAAA,eAAO,EAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,UAAU,CACX,sBAAW,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC;oBAC9B,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;iBACtC,CAAC,CACL,CAAC;gBACF,8BAA8B,GAAG,KAAK,CAAC;gBACvC,OAAO,mBAAW,CAAC,MAAM,EAAE,CAAC;YAChC,CAAC;iBAAM,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC3E,YAAY,KAAZ,YAAY,GAAK,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAC;gBACzD,IAAI,CAAC,YAAY,EAAE,CAAC;oBAChB,IAAI,CAAC,UAAU,CACX,sBAAW,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC;wBAChC,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;qBACtC,CAAC,CACL,CAAC;gBACN,CAAC;YACL,CAAC;iBAAM,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBACpD,IAAI,CAAC,UAAU,CACX,sBAAW,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;oBAC7B,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;iBACtC,CAAC,CACL,CAAC;gBACF,8BAA8B,GAAG,KAAK,CAAC;YAC3C,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,eAAO,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;oBACxF,8BAA8B,GAAG,KAAK,CAAC;gBAC3C,CAAC;YACL,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACpD,IAAI,CAAC,UAAU,CACX,sBAAW,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC;oBACpC,IAAI,EAAE,SAAS;iBAClB,CAAC,CACL,CAAC;gBACF,8BAA8B,GAAG,KAAK,CAAC;YAC3C,CAAC;YAED,OAAO,KAAK,CAAC,SAAS,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,sBAAW,CAAC,oBAAoB,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACnG,8BAA8B,GAAG,KAAK,CAAC;QACvC,OAAO,mBAAW,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,wEAAwE;IACxE,uBAAuB;IACvB,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC;QACvF,IAAI,GAAG,KAAK,CAAC,mBAAmB,CAAC;IACrC,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAClB,IAAI,aAAqB,CAAC;QAC1B,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACzB,aAAa,GAAG,qBAAU,CAAC,YAAY,EAAE,CAAC;QAC9C,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAChC,aAAa,GAAG,qBAAU,CAAC,eAAe,EAAE,CAAC;QACjD,CAAC;aAAM,CAAC;YACJ,aAAa,GAAG,qBAAU,CAAC,eAAe,EAAE,CAAC;QACjD,CAAC;QAED,SAAS,CAAC,aAAa,CACnB,8BAA8B;YAC1B,CAAC,CAAC,gCAAc,CAAC,gCAAgC;YACjD,CAAC,CAAC,gCAAc,CAAC,uBAAuB,EAC5C,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,EAChC,IAAI,CACP,CAAC;IACN,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;AACjF,CAAC;AAED,sEAAsE;AACtE,kBAAkB;AAClB,SAAgB,sBAAsB,CAAC,SAAoB,EAAE,GAAW;IACpE,uFAAuF;IACvF,kFAAkF;IAClF,gBAAgB;IAChB,IAAI,CAAC,iBAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC/E,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1E,IAAI,eAAe,EAAE,UAAU,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,wBAAwB;QAC3D,CAAC,CAAC,IAAI,GAAG,CAAyB,SAAS,CAAC,IAAI,CAAC,wBAAwB,CAAC;QAC1E,CAAC,CAAC,IAAI,GAAG,EAA0B,CAAC;IACxC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE;QACrB,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;KAC/B,CAAC,CAAC;IAEH,OAAO,iBAAS,CAAC,gCAAgC,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,2BAA2B,CAAC,SAAwB,EAAE,MAAc;IACzE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1C,IAAI,IAAI,CAAC,IAAI,qCAA6B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACrE,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,aAAa,GAAG,SAAS,CAAC,gCAAgC,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACtF,UAAU,EAAE,IAAI;YAChB,aAAa,EAAE,IAAI;YACnB,aAAa,EAAE,IAAI;SACtB,CAAC,CAAC;QAEH,OAAO,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC;IACtC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,8BAA8B,CAAC,SAAwB,EAAE,MAAc;IAC5E,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1C,IAAI,IAAI,CAAC,IAAI,qCAA6B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACrE,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,aAAa,GAAG,SAAS,CAAC,gCAAgC,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACtF,UAAU,EAAE,IAAI;YAChB,aAAa,EAAE,IAAI;YACnB,aAAa,EAAE,IAAI;SACtB,CAAC,CAAC;QAEH,OAAO,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,2BAA2B,CAAC,SAAwB,EAAE,MAAc;IACzE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1C,IAAI,IAAI,CAAC,IAAI,qCAA6B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACrE,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,aAAa,GAAG,SAAS,CAAC,gCAAgC,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACtF,UAAU,EAAE,IAAI;YAChB,aAAa,EAAE,IAAI;YACnB,aAAa,EAAE,IAAI;SACtB,CAAC,CAAC;QAEH,OAAO,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC;IACtC,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"typedDicts.js","sourceRoot":"","sources":["../../../../../src/analyzer/typedDicts.ts"],"names":[],"mappings":"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"}
|
package/dist/analyzer/types.d.ts
CHANGED
|
@@ -83,6 +83,11 @@ export interface TypeBaseProps {
|
|
|
83
83
|
typeForm: Type | undefined;
|
|
84
84
|
typeAliasInfo: TypeAliasInfo | undefined;
|
|
85
85
|
condition: TypeCondition[] | undefined;
|
|
86
|
+
inferredTupleLiteral?: {
|
|
87
|
+
baseType: Type;
|
|
88
|
+
size: number;
|
|
89
|
+
alternatives: number;
|
|
90
|
+
};
|
|
86
91
|
}
|
|
87
92
|
export interface TypeBase<T extends TypeCategory> {
|
|
88
93
|
category: T;
|
|
@@ -700,6 +705,15 @@ export declare function removeUnknownFromUnion(type: Type): Type;
|
|
|
700
705
|
export declare function removeUnbound(type: Type): Type;
|
|
701
706
|
export declare function removeFromUnion(type: Type, removeFilter: (type: Type) => boolean): Type;
|
|
702
707
|
export declare function findSubtype(type: Type, filter: (type: UnionableType | NeverType) => boolean): UnionableType | NeverType | undefined;
|
|
708
|
+
export declare const maxSubtypesForInferredType = 64;
|
|
709
|
+
export declare function getInferredTupleLiteralBase(type: Type): Type;
|
|
710
|
+
export declare function getTupleLiteralTypeComplexity(types: readonly Type[], isUnionCombination?: boolean): {
|
|
711
|
+
size: number;
|
|
712
|
+
alternatives: number;
|
|
713
|
+
} | undefined;
|
|
714
|
+
export declare function retainInferredTupleLiterals(type: Type, baseType: Type): Type;
|
|
715
|
+
export declare function preserveInferredTupleLiterals(type: Type): Type;
|
|
716
|
+
export declare function exceedsInferredTupleLiteralProduct(left: Type, right: Type): boolean;
|
|
703
717
|
export interface CombineTypesOptions {
|
|
704
718
|
skipElideRedundantLiterals?: boolean;
|
|
705
719
|
maxSubtypeCount?: number;
|
package/dist/analyzer/types.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* Representation of types used during type analysis within Python.
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.TypeVarType = exports.ParamSpecType = exports.TypeVarScopeType = exports.TypeVarKind = exports.Variance = exports.UnionType = exports.TypeCondition = exports.AnyType = exports.NeverType = exports.OverloadedType = exports.FunctionType = exports.FunctionTypeFlags = exports.FunctionParam = exports.FunctionParamFlags = exports.ClassType = exports.ClassTypeFlags = exports.ModuleType = exports.OverloadResultType = exports.UnknownType = exports.UnboundType = exports.TypeBase = exports.maxTypeRecursionCount = exports.SentinelLiteral = exports.EnumLiteral = exports.UnificationScopeId = exports.TypeFlags = exports.TypeCategory = void 0;
|
|
11
|
+
exports.maxSubtypesForInferredType = exports.TypeVarType = exports.ParamSpecType = exports.TypeVarScopeType = exports.TypeVarKind = exports.Variance = exports.UnionType = exports.TypeCondition = exports.AnyType = exports.NeverType = exports.OverloadedType = exports.FunctionType = exports.FunctionTypeFlags = exports.FunctionParam = exports.FunctionParamFlags = exports.ClassType = exports.ClassTypeFlags = exports.ModuleType = exports.OverloadResultType = exports.UnknownType = exports.UnboundType = exports.TypeBase = exports.maxTypeRecursionCount = exports.SentinelLiteral = exports.EnumLiteral = exports.UnificationScopeId = exports.TypeFlags = exports.TypeCategory = void 0;
|
|
12
12
|
exports.isPositionOnlySeparator = isPositionOnlySeparator;
|
|
13
13
|
exports.isKeywordOnlySeparator = isKeywordOnlySeparator;
|
|
14
14
|
exports.isNever = isNever;
|
|
@@ -40,6 +40,11 @@ exports.removeUnknownFromUnion = removeUnknownFromUnion;
|
|
|
40
40
|
exports.removeUnbound = removeUnbound;
|
|
41
41
|
exports.removeFromUnion = removeFromUnion;
|
|
42
42
|
exports.findSubtype = findSubtype;
|
|
43
|
+
exports.getInferredTupleLiteralBase = getInferredTupleLiteralBase;
|
|
44
|
+
exports.getTupleLiteralTypeComplexity = getTupleLiteralTypeComplexity;
|
|
45
|
+
exports.retainInferredTupleLiterals = retainInferredTupleLiterals;
|
|
46
|
+
exports.preserveInferredTupleLiterals = preserveInferredTupleLiterals;
|
|
47
|
+
exports.exceedsInferredTupleLiteralProduct = exceedsInferredTupleLiteralProduct;
|
|
43
48
|
exports.combineTypes = combineTypes;
|
|
44
49
|
exports.isSameWithoutLiteralValue = isSameWithoutLiteralValue;
|
|
45
50
|
const collectionUtils_1 = require("../common/collectionUtils");
|
|
@@ -539,6 +544,16 @@ var ClassType;
|
|
|
539
544
|
if (includeSubclasses) {
|
|
540
545
|
newInstance.priv.includeSubclasses = true;
|
|
541
546
|
}
|
|
547
|
+
const inferred = newInstance.props?.inferredTupleLiteral;
|
|
548
|
+
if (inferred) {
|
|
549
|
+
const convert = (base) => isInstantiableClass(base) ? cloneAsInstance(base, includeSubclasses) : base;
|
|
550
|
+
TypeBase.addProps(newInstance).inferredTupleLiteral = {
|
|
551
|
+
...inferred,
|
|
552
|
+
baseType: isUnion(inferred.baseType)
|
|
553
|
+
? combineTypes(inferred.baseType.priv.subtypes.map(convert))
|
|
554
|
+
: convert(inferred.baseType),
|
|
555
|
+
};
|
|
556
|
+
}
|
|
542
557
|
return newInstance;
|
|
543
558
|
}
|
|
544
559
|
ClassType.cloneAsInstance = cloneAsInstance;
|
|
@@ -550,6 +565,16 @@ var ClassType;
|
|
|
550
565
|
if (includeSubclasses) {
|
|
551
566
|
newInstance.priv.includeSubclasses = true;
|
|
552
567
|
}
|
|
568
|
+
const inferred = newInstance.props?.inferredTupleLiteral;
|
|
569
|
+
if (inferred) {
|
|
570
|
+
const convert = (base) => isClassInstance(base) ? cloneAsInstantiable(base, includeSubclasses) : base;
|
|
571
|
+
TypeBase.addProps(newInstance).inferredTupleLiteral = {
|
|
572
|
+
...inferred,
|
|
573
|
+
baseType: isUnion(inferred.baseType)
|
|
574
|
+
? combineTypes(inferred.baseType.priv.subtypes.map(convert))
|
|
575
|
+
: convert(inferred.baseType),
|
|
576
|
+
};
|
|
577
|
+
}
|
|
553
578
|
return newInstance;
|
|
554
579
|
}
|
|
555
580
|
ClassType.cloneAsInstantiable = cloneAsInstantiable;
|
|
@@ -569,6 +594,35 @@ var ClassType;
|
|
|
569
594
|
if (isEmptyContainer !== undefined) {
|
|
570
595
|
newClassType.priv.isEmptyContainer = isEmptyContainer;
|
|
571
596
|
}
|
|
597
|
+
const inferredTupleLiteral = classType.props?.inferredTupleLiteral;
|
|
598
|
+
const hasInferredEntries = tupleTypeArgs
|
|
599
|
+
? tupleTypeArgs.some((arg) => arg.type.props?.inferredTupleLiteral)
|
|
600
|
+
: typeArgs?.some((type) => type.props?.inferredTupleLiteral);
|
|
601
|
+
const unchangedTupleArgs = (inferredTupleLiteral || hasInferredEntries) &&
|
|
602
|
+
tupleTypeArgs &&
|
|
603
|
+
tupleTypeArgs.length === classType.priv.tupleTypeArgs?.length &&
|
|
604
|
+
tupleTypeArgs.every((arg, index) => arg.type === classType.priv.tupleTypeArgs[index].type &&
|
|
605
|
+
arg.isUnbounded === classType.priv.tupleTypeArgs[index].isUnbounded &&
|
|
606
|
+
arg.isOptional === classType.priv.tupleTypeArgs[index].isOptional);
|
|
607
|
+
if (inferredTupleLiteral && !unchangedTupleArgs) {
|
|
608
|
+
TypeBase.addProps(newClassType).inferredTupleLiteral = undefined;
|
|
609
|
+
}
|
|
610
|
+
if (hasInferredEntries && !unchangedTupleArgs) {
|
|
611
|
+
const baseType = TypeBase.cloneType(newClassType);
|
|
612
|
+
TypeBase.addProps(baseType).inferredTupleLiteral = undefined;
|
|
613
|
+
baseType.priv.typeArgs = typeArgs?.map(getInferredTupleLiteralBase);
|
|
614
|
+
baseType.priv.tupleTypeArgs = tupleTypeArgs?.map((arg) => ({
|
|
615
|
+
...arg,
|
|
616
|
+
type: getInferredTupleLiteralBase(arg.type),
|
|
617
|
+
}));
|
|
618
|
+
const complexity = ClassType.isBuiltIn(newClassType, 'tuple')
|
|
619
|
+
? getTupleLiteralTypeComplexity([newClassType])
|
|
620
|
+
: undefined;
|
|
621
|
+
if (!complexity) {
|
|
622
|
+
return baseType;
|
|
623
|
+
}
|
|
624
|
+
TypeBase.addProps(newClassType).inferredTupleLiteral = { baseType, ...complexity };
|
|
625
|
+
}
|
|
572
626
|
return newClassType;
|
|
573
627
|
}
|
|
574
628
|
ClassType.specialize = specialize;
|
|
@@ -584,6 +638,9 @@ var ClassType;
|
|
|
584
638
|
function cloneWithLiteral(classType, value) {
|
|
585
639
|
const newClassType = TypeBase.cloneType(classType);
|
|
586
640
|
newClassType.priv.literalValue = value;
|
|
641
|
+
if (value === undefined && newClassType.props?.inferredTupleLiteral) {
|
|
642
|
+
TypeBase.addProps(newClassType).inferredTupleLiteral = undefined;
|
|
643
|
+
}
|
|
587
644
|
// Remove type alias information because the type will no longer match
|
|
588
645
|
// that of the type alias definition if we change the literal type.
|
|
589
646
|
if (newClassType.props?.typeAliasInfo) {
|
|
@@ -2765,11 +2822,132 @@ function findSubtype(type, filter) {
|
|
|
2765
2822
|
}
|
|
2766
2823
|
return filter(type) ? type : undefined;
|
|
2767
2824
|
}
|
|
2825
|
+
exports.maxSubtypesForInferredType = 64;
|
|
2826
|
+
function getInferredTupleLiteralBase(type) {
|
|
2827
|
+
return type.props?.inferredTupleLiteral?.baseType ?? type;
|
|
2828
|
+
}
|
|
2829
|
+
// Bound both the representation and its possible combinations before building unions.
|
|
2830
|
+
function getTupleLiteralTypeComplexity(types, isUnionCombination = false) {
|
|
2831
|
+
let size = 0;
|
|
2832
|
+
const visit = (type, depth) => {
|
|
2833
|
+
if (++size > exports.maxSubtypesForInferredType || depth > exports.maxTypeRecursionCount) {
|
|
2834
|
+
return undefined;
|
|
2835
|
+
}
|
|
2836
|
+
if (isUnion(type)) {
|
|
2837
|
+
let alternatives = 0;
|
|
2838
|
+
for (const subtype of type.priv.subtypes) {
|
|
2839
|
+
const count = visit(subtype, depth + 1);
|
|
2840
|
+
if (count === undefined || (alternatives += count) > exports.maxSubtypesForInferredType) {
|
|
2841
|
+
return undefined;
|
|
2842
|
+
}
|
|
2843
|
+
}
|
|
2844
|
+
return alternatives;
|
|
2845
|
+
}
|
|
2846
|
+
if (!isClass(type)) {
|
|
2847
|
+
return undefined;
|
|
2848
|
+
}
|
|
2849
|
+
if (ClassType.isBuiltIn(type, 'tuple') && type.priv.tupleTypeArgs) {
|
|
2850
|
+
let alternatives = 1;
|
|
2851
|
+
for (const arg of type.priv.tupleTypeArgs) {
|
|
2852
|
+
if (arg.isUnbounded || arg.isOptional) {
|
|
2853
|
+
return undefined;
|
|
2854
|
+
}
|
|
2855
|
+
const count = visit(arg.type, depth + 1);
|
|
2856
|
+
if (count === undefined || (alternatives *= count) > exports.maxSubtypesForInferredType) {
|
|
2857
|
+
return undefined;
|
|
2858
|
+
}
|
|
2859
|
+
}
|
|
2860
|
+
return alternatives;
|
|
2861
|
+
}
|
|
2862
|
+
return type.priv.typeArgs?.length ? undefined : 1;
|
|
2863
|
+
};
|
|
2864
|
+
let alternatives = isUnionCombination ? 0 : 1;
|
|
2865
|
+
for (const type of types) {
|
|
2866
|
+
const count = visit(type, 0);
|
|
2867
|
+
if (count === undefined) {
|
|
2868
|
+
return undefined;
|
|
2869
|
+
}
|
|
2870
|
+
alternatives = isUnionCombination ? alternatives + count : alternatives * count;
|
|
2871
|
+
if (alternatives > exports.maxSubtypesForInferredType) {
|
|
2872
|
+
return undefined;
|
|
2873
|
+
}
|
|
2874
|
+
}
|
|
2875
|
+
return { size, alternatives };
|
|
2876
|
+
}
|
|
2877
|
+
function retainInferredTupleLiterals(type, baseType) {
|
|
2878
|
+
if (type === baseType) {
|
|
2879
|
+
return baseType;
|
|
2880
|
+
}
|
|
2881
|
+
const complexity = getTupleLiteralTypeComplexity([type]);
|
|
2882
|
+
if (!complexity || isTypeSame(type, baseType)) {
|
|
2883
|
+
return baseType;
|
|
2884
|
+
}
|
|
2885
|
+
if (isUnion(type) &&
|
|
2886
|
+
type.priv.subtypes.some((subtype) => isClass(subtype) && subtype.priv.literalValue !== undefined)) {
|
|
2887
|
+
type = _combineTypes(type.priv.subtypes.map((subtype) => isClass(subtype) && subtype.priv.literalValue !== undefined
|
|
2888
|
+
? retainInferredTupleLiterals(subtype, ClassType.cloneWithLiteral(subtype, /* value */ undefined))
|
|
2889
|
+
: subtype));
|
|
2890
|
+
}
|
|
2891
|
+
const retainedType = TypeBase.cloneType(type);
|
|
2892
|
+
TypeBase.addProps(retainedType).inferredTupleLiteral = { baseType, ...complexity };
|
|
2893
|
+
return retainedType;
|
|
2894
|
+
}
|
|
2895
|
+
// A validated annotation opts into its literal precision, independently of inference.
|
|
2896
|
+
function preserveInferredTupleLiterals(type) {
|
|
2897
|
+
if (!type.props?.inferredTupleLiteral) {
|
|
2898
|
+
return type;
|
|
2899
|
+
}
|
|
2900
|
+
if (isUnion(type)) {
|
|
2901
|
+
return combineTypes(type.priv.subtypes.map(preserveInferredTupleLiterals));
|
|
2902
|
+
}
|
|
2903
|
+
const result = TypeBase.cloneType(type);
|
|
2904
|
+
TypeBase.addProps(result).inferredTupleLiteral = undefined;
|
|
2905
|
+
if (isClass(result)) {
|
|
2906
|
+
result.priv.typeArgs = result.priv.typeArgs?.map(preserveInferredTupleLiterals);
|
|
2907
|
+
result.priv.tupleTypeArgs = result.priv.tupleTypeArgs?.map((arg) => ({
|
|
2908
|
+
...arg,
|
|
2909
|
+
type: preserveInferredTupleLiterals(arg.type),
|
|
2910
|
+
}));
|
|
2911
|
+
}
|
|
2912
|
+
return result;
|
|
2913
|
+
}
|
|
2914
|
+
function exceedsInferredTupleLiteralProduct(left, right) {
|
|
2915
|
+
const leftInfo = left.props?.inferredTupleLiteral;
|
|
2916
|
+
const rightInfo = right.props?.inferredTupleLiteral;
|
|
2917
|
+
if (!leftInfo && !rightInfo) {
|
|
2918
|
+
return false;
|
|
2919
|
+
}
|
|
2920
|
+
const leftCount = leftInfo?.alternatives ?? getTupleLiteralTypeComplexity([left])?.alternatives;
|
|
2921
|
+
const rightCount = rightInfo?.alternatives ?? getTupleLiteralTypeComplexity([right])?.alternatives;
|
|
2922
|
+
return leftCount === undefined || rightCount === undefined || leftCount * rightCount > exports.maxSubtypesForInferredType;
|
|
2923
|
+
}
|
|
2768
2924
|
// Combines multiple types into a single type. If the types are
|
|
2769
2925
|
// the same, only one is returned. If they differ, they
|
|
2770
2926
|
// are combined into a UnionType. NeverTypes are filtered out.
|
|
2771
2927
|
// If no types remain in the end, a NeverType is returned.
|
|
2772
2928
|
function combineTypes(subtypes, options) {
|
|
2929
|
+
if (subtypes.length === 1) {
|
|
2930
|
+
return subtypes[0];
|
|
2931
|
+
}
|
|
2932
|
+
if (!subtypes.some((type) => type.props?.inferredTupleLiteral)) {
|
|
2933
|
+
return _combineTypes(subtypes, options);
|
|
2934
|
+
}
|
|
2935
|
+
if (subtypes.every((type) => type === subtypes[0])) {
|
|
2936
|
+
return subtypes[0];
|
|
2937
|
+
}
|
|
2938
|
+
const baseType = _combineTypes(subtypes.map(getInferredTupleLiteralBase), options);
|
|
2939
|
+
const complexity = getTupleLiteralTypeComplexity(subtypes, /* isUnion */ true);
|
|
2940
|
+
if (!complexity) {
|
|
2941
|
+
return baseType;
|
|
2942
|
+
}
|
|
2943
|
+
const structuralCount = subtypes.reduce((count, type) => count +
|
|
2944
|
+
(isUnion(type) ? type.priv.subtypes : [type]).filter((subtype) => isClass(subtype) && !!subtype.priv.tupleTypeArgs).length, 0);
|
|
2945
|
+
if ((structuralCount * (structuralCount - 1)) / 2 > exports.maxSubtypesForInferredType) {
|
|
2946
|
+
return baseType;
|
|
2947
|
+
}
|
|
2948
|
+
return retainInferredTupleLiterals(_combineTypes(subtypes, options), baseType);
|
|
2949
|
+
}
|
|
2950
|
+
function _combineTypes(subtypes, options) {
|
|
2773
2951
|
let neverTypes;
|
|
2774
2952
|
// Filter out any Never or NoReturn types.
|
|
2775
2953
|
[neverTypes, subtypes] = (0, collectionUtils_1.partition)(subtypes, isNever);
|
|
@@ -2898,26 +3076,20 @@ function _addTypeIfUnique(unionType, typeToAdd, elideRedundantLiterals) {
|
|
|
2898
3076
|
if (ClassType.isBuiltIn(typeToAdd, 'str') &&
|
|
2899
3077
|
typeToAdd.priv.literalValue !== undefined &&
|
|
2900
3078
|
literalMaps.literalStrMap !== undefined) {
|
|
2901
|
-
|
|
2902
|
-
UnionType.addType(unionType, typeToAdd);
|
|
2903
|
-
}
|
|
3079
|
+
_addLiteralTypeIfUnique(unionType, literalMaps.literalStrMap, typeToAdd.priv.literalValue, typeToAdd);
|
|
2904
3080
|
return;
|
|
2905
3081
|
}
|
|
2906
3082
|
else if (ClassType.isBuiltIn(typeToAdd, 'int') &&
|
|
2907
3083
|
typeToAdd.priv.literalValue !== undefined &&
|
|
2908
3084
|
literalMaps.literalIntMap !== undefined) {
|
|
2909
|
-
|
|
2910
|
-
UnionType.addType(unionType, typeToAdd);
|
|
2911
|
-
}
|
|
3085
|
+
_addLiteralTypeIfUnique(unionType, literalMaps.literalIntMap, typeToAdd.priv.literalValue, typeToAdd);
|
|
2912
3086
|
return;
|
|
2913
3087
|
}
|
|
2914
3088
|
else if (ClassType.isEnumClass(typeToAdd) &&
|
|
2915
3089
|
typeToAdd.priv.literalValue !== undefined &&
|
|
2916
3090
|
literalMaps.literalEnumMap !== undefined) {
|
|
2917
3091
|
const enumLiteral = typeToAdd.priv.literalValue;
|
|
2918
|
-
|
|
2919
|
-
UnionType.addType(unionType, typeToAdd);
|
|
2920
|
-
}
|
|
3092
|
+
_addLiteralTypeIfUnique(unionType, literalMaps.literalEnumMap, enumLiteral.getName(), typeToAdd);
|
|
2921
3093
|
return;
|
|
2922
3094
|
}
|
|
2923
3095
|
}
|
|
@@ -2933,6 +3105,7 @@ function _addTypeIfUnique(unionType, typeToAdd, elideRedundantLiterals) {
|
|
|
2933
3105
|
}
|
|
2934
3106
|
// Does this type already exist in the types array?
|
|
2935
3107
|
if (isTypeSame(type, typeToAdd, { honorTypeForm: true })) {
|
|
3108
|
+
unionType.priv.subtypes[i] = _mergeInferredTupleLiterals(type, typeToAdd);
|
|
2936
3109
|
return;
|
|
2937
3110
|
}
|
|
2938
3111
|
// Handle the case where pseudo-generic classes with different
|
|
@@ -2999,4 +3172,36 @@ function _addTypeIfUnique(unionType, typeToAdd, elideRedundantLiterals) {
|
|
|
2999
3172
|
}
|
|
3000
3173
|
UnionType.addType(unionType, typeToAdd);
|
|
3001
3174
|
}
|
|
3175
|
+
function _addLiteralTypeIfUnique(unionType, literalMap, key, typeToAdd) {
|
|
3176
|
+
const previous = literalMap.get(key);
|
|
3177
|
+
if (!previous) {
|
|
3178
|
+
UnionType.addType(unionType, typeToAdd);
|
|
3179
|
+
}
|
|
3180
|
+
else if (previous.props?.inferredTupleLiteral || typeToAdd.props?.inferredTupleLiteral) {
|
|
3181
|
+
const merged = _mergeInferredTupleLiterals(previous, typeToAdd);
|
|
3182
|
+
unionType.priv.subtypes[unionType.priv.subtypes.indexOf(previous)] = merged;
|
|
3183
|
+
literalMap.set(key, merged);
|
|
3184
|
+
}
|
|
3185
|
+
}
|
|
3186
|
+
function _mergeInferredTupleLiterals(type, other) {
|
|
3187
|
+
if (type === other ||
|
|
3188
|
+
(!type.props?.inferredTupleLiteral && !other.props?.inferredTupleLiteral) ||
|
|
3189
|
+
!isClass(type) ||
|
|
3190
|
+
!isClass(other)) {
|
|
3191
|
+
return type;
|
|
3192
|
+
}
|
|
3193
|
+
const result = TypeBase.cloneType(type);
|
|
3194
|
+
result.priv.typeArgs = type.priv.typeArgs?.map((arg, index) => combineTypes([arg, other.priv.typeArgs?.[index] ?? arg]));
|
|
3195
|
+
result.priv.tupleTypeArgs = type.priv.tupleTypeArgs?.map((arg, index) => ({
|
|
3196
|
+
...arg,
|
|
3197
|
+
type: combineTypes([arg.type, other.priv.tupleTypeArgs?.[index].type ?? arg.type]),
|
|
3198
|
+
}));
|
|
3199
|
+
const complexity = getTupleLiteralTypeComplexity([result]);
|
|
3200
|
+
(0, debug_1.assert)(complexity !== undefined);
|
|
3201
|
+
TypeBase.addProps(result).inferredTupleLiteral = {
|
|
3202
|
+
baseType: combineTypes([getInferredTupleLiteralBase(type), getInferredTupleLiteralBase(other)]),
|
|
3203
|
+
...complexity,
|
|
3204
|
+
};
|
|
3205
|
+
return result;
|
|
3206
|
+
}
|
|
3002
3207
|
//# sourceMappingURL=types.js.map
|