arkanalyzer 1.0.90 → 1.0.92
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/config/arkanalyzer.json +0 -1
- package/lib/Config.d.ts +3 -0
- package/lib/Config.d.ts.map +1 -1
- package/lib/Scene.d.ts +114 -0
- package/lib/Scene.d.ts.map +1 -1
- package/lib/Scene.js +268 -13
- package/lib/callgraph/common/Statistics.js +2 -2
- package/lib/callgraph/model/CallGraph.d.ts +2 -2
- package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
- package/lib/callgraph/model/CallGraph.js +6 -6
- package/lib/callgraph/model/CallSite.d.ts +1 -1
- package/lib/callgraph/model/CallSite.d.ts.map +1 -1
- package/lib/callgraph/model/CallSite.js +2 -2
- package/lib/core/base/Ref.d.ts.map +1 -1
- package/lib/core/base/Ref.js +6 -1
- package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkIRTransformer.js +5 -0
- package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkValueTransformer.js +2 -1
- package/lib/core/common/Const.d.ts +3 -0
- package/lib/core/common/Const.d.ts.map +1 -1
- package/lib/core/common/Const.js +5 -1
- package/lib/core/common/DummyMainCreater.d.ts +25 -12
- package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
- package/lib/core/common/DummyMainCreater.js +90 -76
- package/lib/core/common/EtsConst.d.ts +2 -0
- package/lib/core/common/EtsConst.d.ts.map +1 -1
- package/lib/core/common/EtsConst.js +133 -125
- package/lib/core/common/SdkUtils.d.ts +1 -0
- package/lib/core/common/SdkUtils.d.ts.map +1 -1
- package/lib/core/common/SdkUtils.js +29 -0
- package/lib/core/graph/BaseExplicitGraph.d.ts +2 -0
- package/lib/core/graph/BaseExplicitGraph.d.ts.map +1 -1
- package/lib/core/graph/BaseExplicitGraph.js +12 -1
- package/lib/core/graph/BaseImplicitGraph.d.ts +16 -0
- package/lib/core/graph/BaseImplicitGraph.d.ts.map +1 -1
- package/lib/core/graph/BaseImplicitGraph.js +21 -0
- package/lib/core/graph/FileDepGraph.d.ts +75 -0
- package/lib/core/graph/FileDepGraph.d.ts.map +1 -0
- package/lib/core/graph/FileDepGraph.js +170 -0
- package/lib/core/graph/GraphTraits.d.ts +2 -0
- package/lib/core/graph/GraphTraits.d.ts.map +1 -1
- package/lib/core/graph/GraphTraits.js +1 -1
- package/lib/core/graph/ModuleDepGraph.d.ts +175 -0
- package/lib/core/graph/ModuleDepGraph.d.ts.map +1 -0
- package/lib/core/graph/ModuleDepGraph.js +421 -0
- package/lib/core/graph/Scc.d.ts +1 -3
- package/lib/core/graph/Scc.d.ts.map +1 -1
- package/lib/core/graph/Scc.js +6 -19
- package/lib/core/graph/builder/CfgBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/CfgBuilder.js +7 -1
- package/lib/core/graph/builder/TrapBuilder.d.ts +1 -0
- package/lib/core/graph/builder/TrapBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/TrapBuilder.js +27 -7
- package/lib/core/graph/builder/ViewTreeBuilder.d.ts +13 -3
- package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/ViewTreeBuilder.js +271 -86
- package/lib/core/model/ArkBody.d.ts +1 -0
- package/lib/core/model/ArkBody.d.ts.map +1 -1
- package/lib/core/model/ArkBody.js +7 -0
- package/lib/core/model/ArkClass.d.ts +1 -0
- package/lib/core/model/ArkClass.d.ts.map +1 -1
- package/lib/core/model/ArkClass.js +37 -0
- package/lib/core/model/ArkExport.d.ts +1 -0
- package/lib/core/model/ArkExport.d.ts.map +1 -1
- package/lib/core/model/ArkExport.js +6 -0
- package/lib/core/model/ArkField.d.ts +1 -0
- package/lib/core/model/ArkField.d.ts.map +1 -1
- package/lib/core/model/ArkField.js +5 -0
- package/lib/core/model/ArkFile.d.ts +5 -0
- package/lib/core/model/ArkFile.d.ts.map +1 -1
- package/lib/core/model/ArkFile.js +30 -0
- package/lib/core/model/ArkImport.d.ts +1 -0
- package/lib/core/model/ArkImport.d.ts.map +1 -1
- package/lib/core/model/ArkImport.js +5 -0
- package/lib/core/model/ArkMethod.d.ts +8 -0
- package/lib/core/model/ArkMethod.d.ts.map +1 -1
- package/lib/core/model/ArkMethod.js +22 -0
- package/lib/core/model/ArkModule.d.ts +133 -0
- package/lib/core/model/ArkModule.d.ts.map +1 -0
- package/lib/core/model/ArkModule.js +247 -0
- package/lib/core/model/ArkNamespace.d.ts +1 -0
- package/lib/core/model/ArkNamespace.d.ts.map +1 -1
- package/lib/core/model/ArkNamespace.js +18 -0
- package/lib/core/model/builder/ArkClassBuilder.js +6 -0
- package/lib/core/model/builder/ArkFileBuilder.d.ts +19 -0
- package/lib/core/model/builder/ArkFileBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkFileBuilder.js +155 -51
- package/lib/frontend/FrontendBuilder.d.ts +114 -0
- package/lib/frontend/FrontendBuilder.d.ts.map +1 -1
- package/lib/frontend/FrontendBuilder.js +248 -0
- package/lib/frontend/arktsFrontend/ArktsFrontend.d.ts +11 -0
- package/lib/frontend/arktsFrontend/ArktsFrontend.d.ts.map +1 -1
- package/lib/frontend/arktsFrontend/ArktsFrontend.js +15 -0
- package/lib/frontend/common/MemoryMonitor.d.ts +62 -0
- package/lib/frontend/common/MemoryMonitor.d.ts.map +1 -0
- package/lib/frontend/common/MemoryMonitor.js +108 -0
- package/lib/frontend/common/ModuleAnalysisConfig.d.ts +99 -0
- package/lib/frontend/common/ModuleAnalysisConfig.d.ts.map +1 -0
- package/lib/frontend/common/ModuleAnalysisConfig.js +153 -0
- package/lib/frontend/common/ModuleBuilder.d.ts +508 -0
- package/lib/frontend/common/ModuleBuilder.d.ts.map +1 -0
- package/lib/frontend/common/ModuleBuilder.js +1587 -0
- package/lib/frontend/common/ModuleCache.d.ts +120 -0
- package/lib/frontend/common/ModuleCache.d.ts.map +1 -0
- package/lib/frontend/common/ModuleCache.js +198 -0
- package/lib/frontend/common/ModuleDepth.d.ts +33 -0
- package/lib/frontend/common/ModuleDepth.d.ts.map +1 -0
- package/lib/frontend/common/ModuleDepth.js +55 -0
- package/lib/frontend/cppFrontend/CppFrontend.d.ts +5 -0
- package/lib/frontend/cppFrontend/CppFrontend.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/CppFrontend.js +11 -1
- package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts +8 -0
- package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.js +105 -2
- package/lib/index.d.ts +9 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +22 -3
- package/lib/utils/Canonicalizer.d.ts +105 -0
- package/lib/utils/Canonicalizer.d.ts.map +1 -0
- package/lib/utils/Canonicalizer.js +520 -0
- package/lib/utils/ModuleUtils.js +4 -2
- package/lib/utils/entryMethodUtils.d.ts +23 -0
- package/lib/utils/entryMethodUtils.d.ts.map +1 -1
- package/lib/utils/entryMethodUtils.js +53 -1
- package/package.json +1 -1
|
@@ -679,7 +679,8 @@ class ArkValueTransformer {
|
|
|
679
679
|
argumentStmts.forEach(stmt => stmts.push(stmt));
|
|
680
680
|
}
|
|
681
681
|
let elementAccessExpr;
|
|
682
|
-
|
|
682
|
+
const baseType = baseValue.getType();
|
|
683
|
+
if (baseType instanceof Type_1.ArrayType || baseType instanceof Type_1.StringType) {
|
|
683
684
|
elementAccessExpr = new Ref_1.ArkArrayRef(baseValue, argumentValue);
|
|
684
685
|
}
|
|
685
686
|
else {
|
|
@@ -44,4 +44,7 @@ export declare const COMPONENT_DISAPPEAR_METHOD = "aboutToDisappear";
|
|
|
44
44
|
export declare const COMPONENT_DETACHED_METHOD = "onDetached";
|
|
45
45
|
export declare const COMPONENT_RECYCLE_METHOD = "aboutToRecycle";
|
|
46
46
|
export declare const COMPONENT_REUSE_METHOD = "aboutToReuse";
|
|
47
|
+
export declare const OH_PKG_DEPENDENCIES = "dependencies";
|
|
48
|
+
export declare const OH_PKG_DEV_DEPENDENCIES = "devDependencies";
|
|
49
|
+
export declare const OH_PKG_DYNAMIC_DEPENDENCIES = "dynamicDependencies";
|
|
47
50
|
//# sourceMappingURL=Const.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Const.d.ts","sourceRoot":"","sources":["../../../src/core/common/Const.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,WAAW,MAAM,CAAC;AAC/B,eAAO,MAAM,YAAY,QAAQ,CAAC;AAClC,eAAO,MAAM,YAAY,SAAS,CAAC;AAGnC,eAAO,MAAM,sBAAsB,QAA6B,CAAC;AACjE,eAAO,MAAM,sBAAsB,QAAqB,CAAC;AACzD,yEAAyE;AACzE,eAAO,MAAM,0BAA0B,QAAqB,CAAC;AAC7D,eAAO,MAAM,yBAAyB,MAAiB,CAAC;AACxD,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAGjD,eAAO,MAAM,uBAAuB,QAA6B,CAAC;AAClE,eAAO,MAAM,yBAAyB,QAA2B,CAAC;AAClE,eAAO,MAAM,uBAAuB,QAA2B,CAAC;AAChE,eAAO,MAAM,+BAA+B,QAA4B,CAAC;AACzE,eAAO,MAAM,uBAAuB,QAAqB,CAAC;AAC1D,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,aAAa,SAAS,CAAC;AACpC,eAAO,MAAM,aAAa,SAAS,CAAC;AACpC,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAG9D,eAAO,MAAM,oBAAoB,QAA6B,CAAC;AAC/D,eAAO,MAAM,iBAAiB,QAA6B,CAAC;AAC5D,eAAO,MAAM,sBAAsB,QAA6B,CAAC;AACjE,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAGtC,eAAO,MAAM,iBAAiB,MAAc,CAAC;AAC7C,eAAO,MAAM,uBAAuB,QAAiC,CAAC;AAGtE,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAG9C,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AACjD,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AACjD,eAAO,MAAM,qCAAqC,kCAAkC,CAAC;AACrF,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAG7C,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,YAAY,eAAe,CAAC;AACzC,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAChD,eAAO,MAAM,2BAA2B,wBAAwB,CAAC;AACjE,eAAO,MAAM,iCAAiC,6BAA6B,CAAC;AAC5E,eAAO,MAAM,4BAA4B,yBAAyB,CAAC;AACnE,eAAO,MAAM,sBAAsB,cAAc,CAAC;AAClD,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AACtD,eAAO,MAAM,0BAA0B,qBAAqB,CAAC;AAC7D,eAAO,MAAM,yBAAyB,eAAe,CAAC;AACtD,eAAO,MAAM,wBAAwB,mBAAmB,CAAC;AACzD,eAAO,MAAM,sBAAsB,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"Const.d.ts","sourceRoot":"","sources":["../../../src/core/common/Const.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,WAAW,MAAM,CAAC;AAC/B,eAAO,MAAM,YAAY,QAAQ,CAAC;AAClC,eAAO,MAAM,YAAY,SAAS,CAAC;AAGnC,eAAO,MAAM,sBAAsB,QAA6B,CAAC;AACjE,eAAO,MAAM,sBAAsB,QAAqB,CAAC;AACzD,yEAAyE;AACzE,eAAO,MAAM,0BAA0B,QAAqB,CAAC;AAC7D,eAAO,MAAM,yBAAyB,MAAiB,CAAC;AACxD,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAGjD,eAAO,MAAM,uBAAuB,QAA6B,CAAC;AAClE,eAAO,MAAM,yBAAyB,QAA2B,CAAC;AAClE,eAAO,MAAM,uBAAuB,QAA2B,CAAC;AAChE,eAAO,MAAM,+BAA+B,QAA4B,CAAC;AACzE,eAAO,MAAM,uBAAuB,QAAqB,CAAC;AAC1D,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,aAAa,SAAS,CAAC;AACpC,eAAO,MAAM,aAAa,SAAS,CAAC;AACpC,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAG9D,eAAO,MAAM,oBAAoB,QAA6B,CAAC;AAC/D,eAAO,MAAM,iBAAiB,QAA6B,CAAC;AAC5D,eAAO,MAAM,sBAAsB,QAA6B,CAAC;AACjE,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAGtC,eAAO,MAAM,iBAAiB,MAAc,CAAC;AAC7C,eAAO,MAAM,uBAAuB,QAAiC,CAAC;AAGtE,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAG9C,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AACjD,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AACjD,eAAO,MAAM,qCAAqC,kCAAkC,CAAC;AACrF,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAG7C,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,YAAY,eAAe,CAAC;AACzC,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAChD,eAAO,MAAM,2BAA2B,wBAAwB,CAAC;AACjE,eAAO,MAAM,iCAAiC,6BAA6B,CAAC;AAC5E,eAAO,MAAM,4BAA4B,yBAAyB,CAAC;AACnE,eAAO,MAAM,sBAAsB,cAAc,CAAC;AAClD,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AACtD,eAAO,MAAM,0BAA0B,qBAAqB,CAAC;AAC7D,eAAO,MAAM,yBAAyB,eAAe,CAAC;AACtD,eAAO,MAAM,wBAAwB,mBAAmB,CAAC;AACzD,eAAO,MAAM,sBAAsB,iBAAiB,CAAC;AAGrD,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAClD,eAAO,MAAM,uBAAuB,oBAAoB,CAAC;AACzD,eAAO,MAAM,2BAA2B,wBAAwB,CAAC"}
|
package/lib/core/common/Const.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.COMPONENT_REUSE_METHOD = exports.COMPONENT_RECYCLE_METHOD = exports.COMPONENT_DETACHED_METHOD = exports.COMPONENT_DISAPPEAR_METHOD = exports.COMPONENT_START_METHOD = exports.ABILITY_DESTROY_METHOD = exports.ABILITY_STAGE_DESTROY_METHOD = exports.ABILITY_STAGE_WILL_DESTROY_METHOD = exports.ABILITY_STAGE_CREATE_METHOD = exports.ABILITY_CREATE_METHOD = exports.DUMMY_METHOD = exports.DUMMY_CLASS = exports.DUMMY_FILE = exports.ONMESSAGEFUNCNAME = exports.POSTMESSAGEWITHSHAREDSENDABLEFUNCNAME = exports.POSTMESSAGEFUNCNAME = exports.CONSTRUCTORFUCNNAME = exports.MAKEOBSERVED = exports.ARKTS_STATIC_MARK = exports.LEXICAL_ENV_NAME_PREFIX = exports.TEMP_LOCAL_PREFIX = exports.UNKNOWN_METHOD_NAME = exports.UNKNOWN_FIELD_NAME = exports.UNKNOWN_CLASS_NAME = exports.UNKNOWN_NAMESPACE_NAME = exports.UNKNOWN_FILE_NAME = exports.UNKNOWN_PROJECT_NAME = exports.CONSTRUCT_SIGNATURE_NAME = exports.SETTER_PREFIX = exports.GETTER_PREFIX = exports.CALL_SIGNATURE_NAME = exports.ANONYMOUS_METHOD_PREFIX = exports.STATIC_BLOCK_METHOD_NAME_PREFIX = exports.STATIC_INIT_METHOD_NAME = exports.INSTANCE_INIT_METHOD_NAME = exports.DEFAULT_ARK_METHOD_NAME = exports.NESTED_CLASS_METHOD_DELIMITER = exports.ANONYMOUS_CLASS_DELIMITER = exports.ANONYMOUS_NAMESPACE_PREFIX = exports.ANONYMOUS_CLASS_PREFIX = exports.DEFAULT_ARK_CLASS_NAME = exports.DEFAULT_NAME = exports.UNKNOWN_NAME = exports.NAME_PREFIX = exports.NAME_DELIMITER = void 0;
|
|
17
|
+
exports.OH_PKG_DYNAMIC_DEPENDENCIES = exports.OH_PKG_DEV_DEPENDENCIES = exports.OH_PKG_DEPENDENCIES = exports.COMPONENT_REUSE_METHOD = exports.COMPONENT_RECYCLE_METHOD = exports.COMPONENT_DETACHED_METHOD = exports.COMPONENT_DISAPPEAR_METHOD = exports.COMPONENT_START_METHOD = exports.ABILITY_DESTROY_METHOD = exports.ABILITY_STAGE_DESTROY_METHOD = exports.ABILITY_STAGE_WILL_DESTROY_METHOD = exports.ABILITY_STAGE_CREATE_METHOD = exports.ABILITY_CREATE_METHOD = exports.DUMMY_METHOD = exports.DUMMY_CLASS = exports.DUMMY_FILE = exports.ONMESSAGEFUNCNAME = exports.POSTMESSAGEWITHSHAREDSENDABLEFUNCNAME = exports.POSTMESSAGEFUNCNAME = exports.CONSTRUCTORFUCNNAME = exports.MAKEOBSERVED = exports.ARKTS_STATIC_MARK = exports.LEXICAL_ENV_NAME_PREFIX = exports.TEMP_LOCAL_PREFIX = exports.UNKNOWN_METHOD_NAME = exports.UNKNOWN_FIELD_NAME = exports.UNKNOWN_CLASS_NAME = exports.UNKNOWN_NAMESPACE_NAME = exports.UNKNOWN_FILE_NAME = exports.UNKNOWN_PROJECT_NAME = exports.CONSTRUCT_SIGNATURE_NAME = exports.SETTER_PREFIX = exports.GETTER_PREFIX = exports.CALL_SIGNATURE_NAME = exports.ANONYMOUS_METHOD_PREFIX = exports.STATIC_BLOCK_METHOD_NAME_PREFIX = exports.STATIC_INIT_METHOD_NAME = exports.INSTANCE_INIT_METHOD_NAME = exports.DEFAULT_ARK_METHOD_NAME = exports.NESTED_CLASS_METHOD_DELIMITER = exports.ANONYMOUS_CLASS_DELIMITER = exports.ANONYMOUS_NAMESPACE_PREFIX = exports.ANONYMOUS_CLASS_PREFIX = exports.DEFAULT_ARK_CLASS_NAME = exports.DEFAULT_NAME = exports.UNKNOWN_NAME = exports.NAME_PREFIX = exports.NAME_DELIMITER = void 0;
|
|
18
18
|
// names
|
|
19
19
|
exports.NAME_DELIMITER = '$';
|
|
20
20
|
exports.NAME_PREFIX = '%';
|
|
@@ -69,3 +69,7 @@ exports.COMPONENT_DISAPPEAR_METHOD = 'aboutToDisappear';
|
|
|
69
69
|
exports.COMPONENT_DETACHED_METHOD = 'onDetached';
|
|
70
70
|
exports.COMPONENT_RECYCLE_METHOD = 'aboutToRecycle';
|
|
71
71
|
exports.COMPONENT_REUSE_METHOD = 'aboutToReuse';
|
|
72
|
+
// oh-package.json5 dependency keys
|
|
73
|
+
exports.OH_PKG_DEPENDENCIES = 'dependencies';
|
|
74
|
+
exports.OH_PKG_DEV_DEPENDENCIES = 'devDependencies';
|
|
75
|
+
exports.OH_PKG_DYNAMIC_DEPENDENCIES = 'dynamicDependencies';
|
|
@@ -7,38 +7,48 @@ import { CallGraph } from '../../callgraph/model/CallGraph';
|
|
|
7
7
|
classA.%statInit()
|
|
8
8
|
const %1 = new classA()
|
|
9
9
|
%1.%instInit()
|
|
10
|
+
%1.onCreate()
|
|
11
|
+
%1.onWindowStageCreate()
|
|
10
12
|
%1.aboutToAppear()
|
|
11
|
-
const %2 = new abilityA()
|
|
12
13
|
...
|
|
13
14
|
count = 0
|
|
14
15
|
while (true) {
|
|
16
|
+
if (count === 0) {
|
|
17
|
+
%1.aboutToRecycle()
|
|
18
|
+
%1.aboutToReuse()
|
|
19
|
+
}
|
|
15
20
|
if (count === 1) {
|
|
16
21
|
%1.onPageShow()
|
|
22
|
+
%1.onPageHide()
|
|
17
23
|
}
|
|
18
24
|
if (count === 2) {
|
|
25
|
+
%2.onWillForeground()
|
|
26
|
+
%2.onForeground()
|
|
27
|
+
%2.onDidForeground()
|
|
28
|
+
%2.onWillBackground()
|
|
19
29
|
%2.onBackground()
|
|
30
|
+
%2.onDidBackground()
|
|
31
|
+
}
|
|
32
|
+
...
|
|
33
|
+
if (count === N) {
|
|
34
|
+
%1.build()
|
|
20
35
|
}
|
|
21
36
|
...
|
|
22
37
|
}
|
|
38
|
+
%1.onWindowStageWillDestroy()
|
|
23
39
|
%1.aboutToDisappear()
|
|
24
40
|
%1.onDetached()
|
|
25
|
-
%
|
|
41
|
+
%1.onWindowStageDestroy()
|
|
42
|
+
%2.onDestroy()
|
|
26
43
|
...
|
|
27
44
|
return
|
|
28
45
|
*/
|
|
29
46
|
export declare class DummyMainCreater {
|
|
30
47
|
private entryMethods;
|
|
31
48
|
private entryClasses;
|
|
32
|
-
private
|
|
33
|
-
private
|
|
34
|
-
private
|
|
35
|
-
private abilityStageDestroyMethods;
|
|
36
|
-
private abilityDestroyMethods;
|
|
37
|
-
private componentAppearMethods;
|
|
38
|
-
private componentDisappearMethods;
|
|
39
|
-
private componentDetachedMethods;
|
|
40
|
-
private componentRecycleMethods;
|
|
41
|
-
private componentReuseMethods;
|
|
49
|
+
private startMethods;
|
|
50
|
+
private endMethods;
|
|
51
|
+
private pairedMethodGroups;
|
|
42
52
|
private classLocalMap;
|
|
43
53
|
private dummyMain;
|
|
44
54
|
private scene;
|
|
@@ -60,6 +70,9 @@ export declare class DummyMainCreater {
|
|
|
60
70
|
private addStaticInit;
|
|
61
71
|
private addClassInit;
|
|
62
72
|
private addParamInit;
|
|
73
|
+
private addStartMethods;
|
|
74
|
+
private addEndMethods;
|
|
75
|
+
private classifyMethod;
|
|
63
76
|
private addBranches;
|
|
64
77
|
private createConditionAndInvokeBlockPair;
|
|
65
78
|
private createDummyMainCfg;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DummyMainCreater.d.ts","sourceRoot":"","sources":["../../../src/core/common/DummyMainCreater.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"DummyMainCreater.d.ts","sourceRoot":"","sources":["../../../src/core/common/DummyMainCreater.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAiBpC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAU/C,OAAO,EAAE,SAAS,EAAiB,MAAM,iCAAiC,CAAC;AAK3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,YAAY,CAAkB;IAEtC,OAAO,CAAC,YAAY,CAAuC;IAE3D,OAAO,CAAC,UAAU,CAAuC;IAEzD,OAAO,CAAC,kBAAkB,CAAuC;IAEjE,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,eAAe,CAAC,CAAS;IAEjC;;;;;;OAMG;gBACS,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,mBAAmB,GAAE,OAAe;IAW1G,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI;IAI3C,eAAe,IAAI,IAAI;IAwD9B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,cAAc;IAmCtB,OAAO,CAAC,WAAW;IAsBnB,OAAO,CAAC,iCAAiC;IAkBzC,OAAO,CAAC,kBAAkB;IAuD1B,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,WAAW;IAYZ,YAAY,IAAI,SAAS;IAIhC,OAAO,CAAC,6BAA6B;IAoBrC,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,0BAA0B;IAiBlC;;;;OAIG;IACI,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,GAAE,OAAc,GAAG,QAAQ;CAIrF;AAED,UAAU,QAAQ;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -43,22 +43,39 @@ const ABILITY_BASE_CLASSES = ['UIExtensionAbility', 'Ability', 'FormExtensionAbi
|
|
|
43
43
|
classA.%statInit()
|
|
44
44
|
const %1 = new classA()
|
|
45
45
|
%1.%instInit()
|
|
46
|
+
%1.onCreate()
|
|
47
|
+
%1.onWindowStageCreate()
|
|
46
48
|
%1.aboutToAppear()
|
|
47
|
-
const %2 = new abilityA()
|
|
48
49
|
...
|
|
49
50
|
count = 0
|
|
50
51
|
while (true) {
|
|
52
|
+
if (count === 0) {
|
|
53
|
+
%1.aboutToRecycle()
|
|
54
|
+
%1.aboutToReuse()
|
|
55
|
+
}
|
|
51
56
|
if (count === 1) {
|
|
52
57
|
%1.onPageShow()
|
|
58
|
+
%1.onPageHide()
|
|
53
59
|
}
|
|
54
60
|
if (count === 2) {
|
|
61
|
+
%2.onWillForeground()
|
|
62
|
+
%2.onForeground()
|
|
63
|
+
%2.onDidForeground()
|
|
64
|
+
%2.onWillBackground()
|
|
55
65
|
%2.onBackground()
|
|
66
|
+
%2.onDidBackground()
|
|
67
|
+
}
|
|
68
|
+
...
|
|
69
|
+
if (count === N) {
|
|
70
|
+
%1.build()
|
|
56
71
|
}
|
|
57
72
|
...
|
|
58
73
|
}
|
|
74
|
+
%1.onWindowStageWillDestroy()
|
|
59
75
|
%1.aboutToDisappear()
|
|
60
76
|
%1.onDetached()
|
|
61
|
-
%
|
|
77
|
+
%1.onWindowStageDestroy()
|
|
78
|
+
%2.onDestroy()
|
|
62
79
|
...
|
|
63
80
|
return
|
|
64
81
|
*/
|
|
@@ -71,20 +88,15 @@ class DummyMainCreater {
|
|
|
71
88
|
* @param classScope if not provided, collect all Ability class and Component struct.
|
|
72
89
|
*/
|
|
73
90
|
constructor(scene, dummyMethodName, classScope, extraInstanceAssign = false) {
|
|
74
|
-
// entryMethods includes all UIAbility and Component lifecycle methods as well as all callback methods, but exclude the start and
|
|
91
|
+
// entryMethods includes all UIAbility and Component lifecycle methods as well as all callback methods, but exclude the start, end and paired methods
|
|
75
92
|
this.entryMethods = [];
|
|
76
93
|
this.entryClasses = [];
|
|
77
|
-
|
|
78
|
-
this.
|
|
79
|
-
|
|
80
|
-
this.
|
|
81
|
-
|
|
82
|
-
this.
|
|
83
|
-
this.componentDisappearMethods = [];
|
|
84
|
-
this.componentDetachedMethods = [];
|
|
85
|
-
// aboutToRecycle and aboutToReuse methods should be put into the same block because they are used paired
|
|
86
|
-
this.componentRecycleMethods = [];
|
|
87
|
-
this.componentReuseMethods = [];
|
|
94
|
+
// start methods grouped by method name, ordered by LIFECYCLE_START_METHODS
|
|
95
|
+
this.startMethods = new Map();
|
|
96
|
+
// end methods grouped by method name, ordered by LIFECYCLE_END_METHODS
|
|
97
|
+
this.endMethods = new Map();
|
|
98
|
+
// paired methods grouped by their pair group index (defined in entryMethodUtils)
|
|
99
|
+
this.pairedMethodGroups = new Map();
|
|
88
100
|
// every declaring class of method in entryMethods have its instance local which is used to be the base of instance invoke expr
|
|
89
101
|
this.classLocalMap = new Map();
|
|
90
102
|
this.dummyMain = new ArkMethod_1.ArkMethod();
|
|
@@ -206,14 +218,67 @@ class DummyMainCreater {
|
|
|
206
218
|
paramIdx++;
|
|
207
219
|
}
|
|
208
220
|
}
|
|
221
|
+
addStartMethods(block) {
|
|
222
|
+
for (const methodName of entryMethodUtils_1.LIFECYCLE_START_METHODS) {
|
|
223
|
+
const methods = this.startMethods.get(methodName);
|
|
224
|
+
if (methods) {
|
|
225
|
+
this.addMethodsInvokeStmt(block, methods);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
addEndMethods(block) {
|
|
230
|
+
for (const methodName of entryMethodUtils_1.LIFECYCLE_END_METHODS) {
|
|
231
|
+
const methods = this.endMethods.get(methodName);
|
|
232
|
+
if (methods) {
|
|
233
|
+
this.addMethodsInvokeStmt(block, methods);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
classifyMethod(mtd) {
|
|
238
|
+
const name = mtd.getName();
|
|
239
|
+
if (entryMethodUtils_1.LIFECYCLE_START_METHODS.includes(name)) {
|
|
240
|
+
let group = this.startMethods.get(name);
|
|
241
|
+
if (!group) {
|
|
242
|
+
group = [];
|
|
243
|
+
this.startMethods.set(name, group);
|
|
244
|
+
}
|
|
245
|
+
group.push(mtd);
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
if (entryMethodUtils_1.LIFECYCLE_END_METHODS.includes(name)) {
|
|
249
|
+
let group = this.endMethods.get(name);
|
|
250
|
+
if (!group) {
|
|
251
|
+
group = [];
|
|
252
|
+
this.endMethods.set(name, group);
|
|
253
|
+
}
|
|
254
|
+
group.push(mtd);
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
const groupIndex = (0, entryMethodUtils_1.getPairedMethodGroupIndex)(name);
|
|
258
|
+
if (groupIndex >= 0) {
|
|
259
|
+
let group = this.pairedMethodGroups.get(groupIndex);
|
|
260
|
+
if (!group) {
|
|
261
|
+
group = [];
|
|
262
|
+
this.pairedMethodGroups.set(groupIndex, group);
|
|
263
|
+
}
|
|
264
|
+
group.push(mtd);
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
if (entryMethodUtils_1.LIFECYCLE_METHOD_NAME.includes(name) || entryMethodUtils_1.COMPONENT_LIFECYCLE_METHOD_NAME.includes(name)) {
|
|
268
|
+
this.entryMethods.push(mtd);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
209
271
|
addBranches(whileBlock, countLocal, dummyCfg) {
|
|
210
272
|
let lastBlocks = [whileBlock];
|
|
211
273
|
let count = 0;
|
|
212
|
-
// step1: create the
|
|
213
|
-
|
|
214
|
-
|
|
274
|
+
// step1: create the blocks for paired lifecycle method groups
|
|
275
|
+
for (let i = 0; i < entryMethodUtils_1.LIFECYCLE_PAIRED_METHOD_GROUPS.length; i++) {
|
|
276
|
+
const group = this.pairedMethodGroups.get(i);
|
|
277
|
+
if (group && group.length > 0) {
|
|
278
|
+
lastBlocks = this.createConditionAndInvokeBlockPair(count++, countLocal, dummyCfg, lastBlocks, group);
|
|
279
|
+
}
|
|
215
280
|
}
|
|
216
|
-
// step2: create the blocks for other lifecycle methods
|
|
281
|
+
// step2: create the blocks for other (unpaired) lifecycle methods
|
|
217
282
|
for (let method of this.entryMethods) {
|
|
218
283
|
lastBlocks = this.createConditionAndInvokeBlockPair(count++, countLocal, dummyCfg, lastBlocks, [method]);
|
|
219
284
|
}
|
|
@@ -254,9 +319,7 @@ class DummyMainCreater {
|
|
|
254
319
|
dummyCfg.setStartingStmt(startingStmt);
|
|
255
320
|
this.addStaticInit(firstBlock);
|
|
256
321
|
this.addClassInit(firstBlock);
|
|
257
|
-
this.
|
|
258
|
-
this.addMethodsInvokeStmt(firstBlock, this.abilityStageCreateMethods);
|
|
259
|
-
this.addMethodsInvokeStmt(firstBlock, this.componentAppearMethods);
|
|
322
|
+
this.addStartMethods(firstBlock);
|
|
260
323
|
const countLocal = new Local_1.Local('count', Type_1.NumberType.getInstance());
|
|
261
324
|
this.dummyMain.getBody().addLocal(countLocal.getName(), countLocal);
|
|
262
325
|
const zero = ValueUtil_1.ValueUtil.getOrCreateNumberConst(0);
|
|
@@ -274,11 +337,7 @@ class DummyMainCreater {
|
|
|
274
337
|
this.addBranches(whileBlock, countLocal, dummyCfg);
|
|
275
338
|
// step4: create the last return block
|
|
276
339
|
const returnBlock = new BasicBlock_1.BasicBlock(this.tempBlockIndex++);
|
|
277
|
-
this.
|
|
278
|
-
this.addMethodsInvokeStmt(returnBlock, this.abilityStageWillDestroyMethods);
|
|
279
|
-
this.addMethodsInvokeStmt(returnBlock, this.abilityStageDestroyMethods);
|
|
280
|
-
this.addMethodsInvokeStmt(returnBlock, this.componentDetachedMethods);
|
|
281
|
-
this.addMethodsInvokeStmt(returnBlock, this.abilityDestroyMethods);
|
|
340
|
+
this.addEndMethods(returnBlock);
|
|
282
341
|
const returnStmt = new Stmt_1.ArkReturnVoidStmt();
|
|
283
342
|
returnBlock.addStmt(returnStmt);
|
|
284
343
|
dummyCfg.addBlock(returnBlock);
|
|
@@ -294,7 +353,7 @@ class DummyMainCreater {
|
|
|
294
353
|
const invokeStmt = new Stmt_1.ArkInvokeStmt(invokeExpr);
|
|
295
354
|
block.addStmt(invokeStmt);
|
|
296
355
|
local.addUsedStmt(invokeStmt);
|
|
297
|
-
if (this.extraInstanceAssign) {
|
|
356
|
+
if (this.extraInstanceAssign && local) {
|
|
298
357
|
const assignStmt = new Stmt_1.ArkAssignStmt(local, local);
|
|
299
358
|
block.addStmt(assignStmt);
|
|
300
359
|
local.addUsedStmt(assignStmt);
|
|
@@ -340,30 +399,7 @@ class DummyMainCreater {
|
|
|
340
399
|
.forEach(cls => {
|
|
341
400
|
this.entryClasses.push(cls);
|
|
342
401
|
for (const mtd of cls.getMethods()) {
|
|
343
|
-
|
|
344
|
-
if (name === Const_1.COMPONENT_START_METHOD) {
|
|
345
|
-
this.componentAppearMethods.push(mtd);
|
|
346
|
-
continue;
|
|
347
|
-
}
|
|
348
|
-
if (name === Const_1.COMPONENT_DISAPPEAR_METHOD) {
|
|
349
|
-
this.componentDisappearMethods.push(mtd);
|
|
350
|
-
continue;
|
|
351
|
-
}
|
|
352
|
-
if (name === Const_1.COMPONENT_DETACHED_METHOD) {
|
|
353
|
-
this.componentDetachedMethods.push(mtd);
|
|
354
|
-
continue;
|
|
355
|
-
}
|
|
356
|
-
if (name === Const_1.COMPONENT_RECYCLE_METHOD) {
|
|
357
|
-
this.componentRecycleMethods.push(mtd);
|
|
358
|
-
continue;
|
|
359
|
-
}
|
|
360
|
-
if (name === Const_1.COMPONENT_REUSE_METHOD) {
|
|
361
|
-
this.componentReuseMethods.push(mtd);
|
|
362
|
-
continue;
|
|
363
|
-
}
|
|
364
|
-
if (entryMethodUtils_1.COMPONENT_LIFECYCLE_METHOD_NAME.includes(name)) {
|
|
365
|
-
this.entryMethods.push(mtd);
|
|
366
|
-
}
|
|
402
|
+
this.classifyMethod(mtd);
|
|
367
403
|
}
|
|
368
404
|
});
|
|
369
405
|
}
|
|
@@ -397,30 +433,7 @@ class DummyMainCreater {
|
|
|
397
433
|
.forEach(cls => {
|
|
398
434
|
this.entryClasses.push(cls);
|
|
399
435
|
for (const mtd of cls.getMethods()) {
|
|
400
|
-
|
|
401
|
-
if (name === Const_1.ABILITY_CREATE_METHOD) {
|
|
402
|
-
this.abilityCreateMethods.push(mtd);
|
|
403
|
-
continue;
|
|
404
|
-
}
|
|
405
|
-
if (name === Const_1.ABILITY_STAGE_CREATE_METHOD) {
|
|
406
|
-
this.abilityStageCreateMethods.push(mtd);
|
|
407
|
-
continue;
|
|
408
|
-
}
|
|
409
|
-
if (name === Const_1.ABILITY_STAGE_WILL_DESTROY_METHOD) {
|
|
410
|
-
this.abilityStageWillDestroyMethods.push(mtd);
|
|
411
|
-
continue;
|
|
412
|
-
}
|
|
413
|
-
if (name === Const_1.ABILITY_STAGE_DESTROY_METHOD) {
|
|
414
|
-
this.abilityStageDestroyMethods.push(mtd);
|
|
415
|
-
continue;
|
|
416
|
-
}
|
|
417
|
-
if (name === Const_1.ABILITY_DESTROY_METHOD) {
|
|
418
|
-
this.abilityDestroyMethods.push(mtd);
|
|
419
|
-
continue;
|
|
420
|
-
}
|
|
421
|
-
if (entryMethodUtils_1.LIFECYCLE_METHOD_NAME.includes(name)) {
|
|
422
|
-
this.entryMethods.push(mtd);
|
|
423
|
-
}
|
|
436
|
+
this.classifyMethod(mtd);
|
|
424
437
|
}
|
|
425
438
|
});
|
|
426
439
|
}
|
|
@@ -457,7 +470,8 @@ class CoverageAnalysis {
|
|
|
457
470
|
this.totalStmts = new Set();
|
|
458
471
|
this.totalMethods.forEach(method => {
|
|
459
472
|
var _a;
|
|
460
|
-
(_a = method
|
|
473
|
+
(_a = method
|
|
474
|
+
.getCfg()) === null || _a === void 0 ? void 0 : _a.getStmts().forEach(stmt => {
|
|
461
475
|
this.totalStmts.add(stmt);
|
|
462
476
|
});
|
|
463
477
|
});
|
|
@@ -48,6 +48,7 @@ export declare const COMPONENT_FOR_EACH: string;
|
|
|
48
48
|
export declare const COMPONENT_LAZY_FOR_EACH: string;
|
|
49
49
|
export declare const BUILDIN_SYSTEM_COMPONENT: Set<string>;
|
|
50
50
|
export declare const BUILDIN_ATOMIC_COMPONENT: Set<string>;
|
|
51
|
+
export declare const DEFAULT_COMPONENTS: string[];
|
|
51
52
|
export declare const COMPONENT_DECORATOR: Set<string>;
|
|
52
53
|
export declare const ENTRY_DECORATOR: string;
|
|
53
54
|
export declare const BUILDER_DECORATOR: string;
|
|
@@ -56,6 +57,7 @@ export declare const COMPONENT_BEHAVIOR: string;
|
|
|
56
57
|
export declare function isEtsAtomicComponent(name: string): boolean;
|
|
57
58
|
export declare function isEtsSystemComponent(name: string): boolean;
|
|
58
59
|
export declare function isEtsContainerComponent(name: string): boolean;
|
|
60
|
+
export declare function addSystemComponent(componentNames: string[]): void;
|
|
59
61
|
export declare const COMPONENT_CREATE_FUNCTION: string;
|
|
60
62
|
export declare const COMPONENT_POP_FUNCTION: string;
|
|
61
63
|
export declare const COMPONENT_CUSTOMVIEW: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EtsConst.d.ts","sourceRoot":"","sources":["../../../src/core/common/EtsConst.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"EtsConst.d.ts","sourceRoot":"","sources":["../../../src/core/common/EtsConst.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+wBhC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAkB,CAAC;AACpD,eAAO,MAAM,uBAAuB,EAAE,MAAsB,CAAC;AAE7D,eAAO,MAAM,wBAAwB,EAAE,GAAG,CAAC,MAAM,CAA0D,CAAC;AAE5G,eAAO,MAAM,wBAAwB,EAAE,GAAG,CAAC,MAAM,CAqD/C,CAAC;AAEH,eAAO,MAAM,kBAAkB,UA0H9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAqE,CAAC;AAClH,eAAO,MAAM,eAAe,EAAE,MAAgB,CAAC;AAC/C,eAAO,MAAM,iBAAiB,EAAE,MAAkB,CAAC;AACnD,eAAO,MAAM,uBAAuB,EAAE,MAAuB,CAAC;AAC9D,eAAO,MAAM,kBAAkB,EAAE,MAAmB,CAAC;AAErD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI,CAKjE;AAED,eAAO,MAAM,yBAAyB,EAAE,MAAiB,CAAC;AAC1D,eAAO,MAAM,sBAAsB,EAAE,MAAc,CAAC;AACpD,eAAO,MAAM,oBAAoB,EAAE,MAAe,CAAC;AACnD,eAAO,MAAM,gBAAgB,EAAE,MAAiB,CAAC;AAEjD,eAAO,MAAM,YAAY,EAAE,MAAa,CAAC;AACzC,eAAO,MAAM,mBAAmB,EAAE,MAAmB,CAAC;AACtD,eAAO,MAAM,yBAAyB,EAAE,MAAiB,CAAC;AAC1D,eAAO,MAAM,wBAAwB,EAAE,MAAgB,CAAC;AAExD,eAAO,MAAM,2BAA2B,EAAE,GAAG,CAAC,MAAM,CAAwF,CAAC;AAE7I,eAAO,MAAM,gBAAgB,EAAE,MAAiB,CAAC;AACjD,eAAO,MAAM,kBAAkB,EAAE,MAAmB,CAAC;AAErD,eAAO,MAAM,mBAAmB,EAAE,MAAoB,CAAC;AACvD,eAAO,MAAM,SAAS,EAAE,MAAmB,CAAC;AAC5C,eAAO,MAAM,MAAM,EAAE,GAAG,CAAC,MAAM,CAA0B,CAAC;AAE1D,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AACzD,eAAO,MAAM,SAAS,EAAE,MAAoB,CAAC;AAC7C,eAAO,MAAM,aAAa,EAAE,MAAuB,CAAC;AACpD,eAAO,MAAM,0BAA0B,EAAE,GAAG,CAAC,MAAM,CAAqD,CAAC;AAEzG,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAC9C,eAAO,MAAM,cAAc,wBAAwB,CAAC;AAEpD,eAAO,MAAM,IAAI,EAAE,MAAgB,CAAC;AACpC,eAAO,MAAM,UAAU,EAAE,MAAqB,CAAC;AAC/C,eAAO,MAAM,aAAa,aAAa,CAAC;AAExC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,QAAQ,QAAQ,CAAC;AAC9B,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,aAAa,SAAS,CAAC"}
|