@lcap/nasl 2.20.0-beta.1 → 2.20.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (308) hide show
  1. package/out/automate/engine/index.d.ts +1 -1
  2. package/out/automate/engine/index.js +7 -7
  3. package/out/automate/engine/index.js.map +1 -1
  4. package/out/automate/engine/uniqueName.d.ts +1 -1
  5. package/out/automate/engine/uniqueName.js +3 -3
  6. package/out/automate/engine/uniqueName.js.map +1 -1
  7. package/out/automate/template/myProcess.js +1 -1
  8. package/out/automate/template/myProcess.js.map +1 -1
  9. package/out/bak/translator.js +38 -85
  10. package/out/bak/translator.js.map +1 -1
  11. package/out/common/BaseNode.d.ts +10 -6
  12. package/out/common/BaseNode.js +53 -7
  13. package/out/common/BaseNode.js.map +1 -1
  14. package/out/concepts/AnonymousFunction__.d.ts +1 -0
  15. package/out/concepts/AnonymousFunction__.js +40 -2
  16. package/out/concepts/AnonymousFunction__.js.map +1 -1
  17. package/out/concepts/App__.d.ts +89 -261
  18. package/out/concepts/App__.js +315 -367
  19. package/out/concepts/App__.js.map +1 -1
  20. package/out/concepts/Assignee__.js.map +1 -1
  21. package/out/concepts/AssignmentLine__.d.ts +5 -5
  22. package/out/concepts/AssignmentLine__.js +6 -6
  23. package/out/concepts/AssignmentLine__.js.map +1 -1
  24. package/out/concepts/Assignment__.js +1 -2
  25. package/out/concepts/Assignment__.js.map +1 -1
  26. package/out/concepts/BatchAssignment__.d.ts +62 -60
  27. package/out/concepts/BatchAssignment__.js +113 -42
  28. package/out/concepts/BatchAssignment__.js.map +1 -1
  29. package/out/concepts/BindAttribute__.d.ts +24 -0
  30. package/out/concepts/BindAttribute__.js +54 -4
  31. package/out/concepts/BindAttribute__.js.map +1 -1
  32. package/out/concepts/BindDirective__.d.ts +5 -0
  33. package/out/concepts/BindDirective__.js +6 -0
  34. package/out/concepts/BindDirective__.js.map +1 -1
  35. package/out/concepts/BindEvent__.d.ts +5 -0
  36. package/out/concepts/BindEvent__.js +6 -0
  37. package/out/concepts/BindEvent__.js.map +1 -1
  38. package/out/concepts/BindStyle__.d.ts +7 -2
  39. package/out/concepts/BindStyle__.js +9 -3
  40. package/out/concepts/BindStyle__.js.map +1 -1
  41. package/out/concepts/BooleanLiteral__.js +0 -8
  42. package/out/concepts/BooleanLiteral__.js.map +1 -1
  43. package/out/concepts/CallFunction__.js +90 -38
  44. package/out/concepts/CallFunction__.js.map +1 -1
  45. package/out/concepts/CallInterface__.d.ts +7 -0
  46. package/out/concepts/CallInterface__.js +54 -7
  47. package/out/concepts/CallInterface__.js.map +1 -1
  48. package/out/concepts/CallLogic__.d.ts +2 -1
  49. package/out/concepts/CallLogic__.js +171 -37
  50. package/out/concepts/CallLogic__.js.map +1 -1
  51. package/out/concepts/CallQueryComponent__.js +16 -1
  52. package/out/concepts/CallQueryComponent__.js.map +1 -1
  53. package/out/concepts/CompletionProperty__.js +3 -0
  54. package/out/concepts/CompletionProperty__.js.map +1 -1
  55. package/out/concepts/ConfigGroup__.js.map +1 -1
  56. package/out/concepts/ConfigProperty__.js.map +1 -1
  57. package/out/concepts/Configuration__.js.map +1 -1
  58. package/out/concepts/Constant__.d.ts +5 -0
  59. package/out/concepts/Constant__.js +6 -0
  60. package/out/concepts/Constant__.js.map +1 -1
  61. package/out/concepts/DataSource__.d.ts +8 -0
  62. package/out/concepts/DataSource__.js +96 -1
  63. package/out/concepts/DataSource__.js.map +1 -1
  64. package/out/concepts/Destination__.d.ts +11 -2
  65. package/out/concepts/Destination__.js +156 -51
  66. package/out/concepts/Destination__.js.map +1 -1
  67. package/out/concepts/EntityProperty__.d.ts +21 -8
  68. package/out/concepts/EntityProperty__.js +109 -23
  69. package/out/concepts/EntityProperty__.js.map +1 -1
  70. package/out/concepts/Entity__.d.ts +32 -0
  71. package/out/concepts/Entity__.js +117 -2
  72. package/out/concepts/Entity__.js.map +1 -1
  73. package/out/concepts/Enum__.js +0 -4
  74. package/out/concepts/Enum__.js.map +1 -1
  75. package/out/concepts/Event__.js.map +1 -1
  76. package/out/concepts/ExternalDestination__.d.ts +73 -0
  77. package/out/concepts/ExternalDestination__.js +264 -0
  78. package/out/concepts/ExternalDestination__.js.map +1 -0
  79. package/out/concepts/ForEachStatement__.d.ts +0 -4
  80. package/out/concepts/ForEachStatement__.js +4 -8
  81. package/out/concepts/ForEachStatement__.js.map +1 -1
  82. package/out/concepts/Frontend__.d.ts +370 -0
  83. package/out/concepts/Frontend__.js +669 -0
  84. package/out/concepts/Frontend__.js.map +1 -0
  85. package/out/concepts/Function__.js.map +1 -1
  86. package/out/concepts/Identifier__.d.ts +1 -0
  87. package/out/concepts/Identifier__.js +33 -10
  88. package/out/concepts/Identifier__.js.map +1 -1
  89. package/out/concepts/IfStatement__.d.ts +8 -0
  90. package/out/concepts/IfStatement__.js +22 -0
  91. package/out/concepts/IfStatement__.js.map +1 -1
  92. package/out/concepts/InterfaceParam__.js.map +1 -1
  93. package/out/concepts/Interface__.js.map +1 -1
  94. package/out/concepts/LogicItem__.d.ts +6 -1
  95. package/out/concepts/LogicItem__.js +6 -0
  96. package/out/concepts/LogicItem__.js.map +1 -1
  97. package/out/concepts/Logic__.d.ts +91 -80
  98. package/out/concepts/Logic__.js +178 -59
  99. package/out/concepts/Logic__.js.map +1 -1
  100. package/out/concepts/MatchCase__.d.ts +1 -1
  101. package/out/concepts/MatchCase__.js +15 -8
  102. package/out/concepts/MatchCase__.js.map +1 -1
  103. package/out/concepts/Match__.d.ts +21 -19
  104. package/out/concepts/Match__.js +118 -26
  105. package/out/concepts/Match__.js.map +1 -1
  106. package/out/concepts/MemberExpression__.d.ts +4 -1
  107. package/out/concepts/MemberExpression__.js +30 -15
  108. package/out/concepts/MemberExpression__.js.map +1 -1
  109. package/out/concepts/Module__.js.map +1 -1
  110. package/out/concepts/Namespace__.js.map +1 -1
  111. package/out/concepts/NewComposite__.d.ts +345 -0
  112. package/out/concepts/NewComposite__.js +1068 -0
  113. package/out/concepts/NewComposite__.js.map +1 -0
  114. package/out/concepts/NewList__.d.ts +130 -0
  115. package/out/concepts/NewList__.js +349 -0
  116. package/out/concepts/NewList__.js.map +1 -0
  117. package/out/concepts/NewMap__.d.ts +221 -0
  118. package/out/concepts/NewMap__.js +480 -0
  119. package/out/concepts/NewMap__.js.map +1 -0
  120. package/out/concepts/New__.d.ts +19 -0
  121. package/out/concepts/New__.js +66 -0
  122. package/out/concepts/New__.js.map +1 -0
  123. package/out/concepts/NumericLiteral__.js +1 -1
  124. package/out/concepts/NumericLiteral__.js.map +1 -1
  125. package/out/concepts/OqlQueryComponent__.d.ts +7 -3
  126. package/out/concepts/OqlQueryComponent__.js +56 -95
  127. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  128. package/out/concepts/Param__.d.ts +8 -1
  129. package/out/concepts/Param__.js +85 -6
  130. package/out/concepts/Param__.js.map +1 -1
  131. package/out/concepts/ProcessComponent__.js.map +1 -1
  132. package/out/concepts/ProcessElement__.js +42 -13
  133. package/out/concepts/ProcessElement__.js.map +1 -1
  134. package/out/concepts/ProcessOutcomes__.d.ts +30 -0
  135. package/out/concepts/ProcessOutcomes__.js +87 -0
  136. package/out/concepts/ProcessOutcomes__.js.map +1 -0
  137. package/out/concepts/Process__.d.ts +4 -20
  138. package/out/concepts/Process__.js +0 -7
  139. package/out/concepts/Process__.js.map +1 -1
  140. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  141. package/out/concepts/QueryOrderByExpression__.d.ts +3 -3
  142. package/out/concepts/QueryOrderByExpression__.js +3 -3
  143. package/out/concepts/QueryOrderByExpression__.js.map +1 -1
  144. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  145. package/out/concepts/Return__.d.ts +5 -0
  146. package/out/concepts/Return__.js +45 -2
  147. package/out/concepts/Return__.js.map +1 -1
  148. package/out/concepts/SelectMembers__.d.ts +1 -1
  149. package/out/concepts/SelectMembers__.js +5 -5
  150. package/out/concepts/SelectMembers__.js.map +1 -1
  151. package/out/concepts/SqlQueryComponent__.d.ts +2 -4
  152. package/out/concepts/SqlQueryComponent__.js +9 -88
  153. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  154. package/out/concepts/StringInterpolation__.d.ts +113 -0
  155. package/out/concepts/StringInterpolation__.js +227 -0
  156. package/out/concepts/StringInterpolation__.js.map +1 -0
  157. package/out/concepts/StringLiteral__.js +0 -7
  158. package/out/concepts/StringLiteral__.js.map +1 -1
  159. package/out/concepts/StructureProperty__.js.map +1 -1
  160. package/out/concepts/Structure__.js.map +1 -1
  161. package/out/concepts/Transactional__.d.ts +5 -0
  162. package/out/concepts/Transactional__.js +6 -0
  163. package/out/concepts/Transactional__.js.map +1 -1
  164. package/out/concepts/TypeAnnotation__.d.ts +4 -0
  165. package/out/concepts/TypeAnnotation__.js +67 -15
  166. package/out/concepts/TypeAnnotation__.js.map +1 -1
  167. package/out/concepts/TypeParam__.d.ts +1 -0
  168. package/out/concepts/TypeParam__.js +2 -0
  169. package/out/concepts/TypeParam__.js.map +1 -1
  170. package/out/concepts/UnaryExpression__.js +6 -9
  171. package/out/concepts/UnaryExpression__.js.map +1 -1
  172. package/out/concepts/ValidationRule__.js +87 -22
  173. package/out/concepts/ValidationRule__.js.map +1 -1
  174. package/out/concepts/Variable__.d.ts +5 -0
  175. package/out/concepts/Variable__.js +46 -3
  176. package/out/concepts/Variable__.js.map +1 -1
  177. package/out/concepts/ViewComponent__.js.map +1 -1
  178. package/out/concepts/ViewElement__.d.ts +35 -29
  179. package/out/concepts/ViewElement__.js +138 -54
  180. package/out/concepts/ViewElement__.js.map +1 -1
  181. package/out/concepts/View__.d.ts +10 -3
  182. package/out/concepts/View__.js +116 -86
  183. package/out/concepts/View__.js.map +1 -1
  184. package/out/concepts/WhileStatement__.js +1 -1
  185. package/out/concepts/WhileStatement__.js.map +1 -1
  186. package/out/concepts/basics/stdlib/nasl.auth.js +1 -1
  187. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -1
  188. package/out/concepts/basics/stdlib/nasl.browser.js +50 -0
  189. package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -1
  190. package/out/concepts/basics/stdlib/nasl.logging.js +5 -0
  191. package/out/concepts/basics/stdlib/nasl.logging.js.map +1 -1
  192. package/out/concepts/basics/stdlib/nasl.ui.js +38 -4
  193. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  194. package/out/concepts/basics/stdlib/nasl.util.js +214 -62
  195. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  196. package/out/concepts/index__.d.ts +9 -0
  197. package/out/concepts/index__.js +9 -0
  198. package/out/concepts/index__.js.map +1 -1
  199. package/out/enums/KEYWORDS.d.ts +1 -0
  200. package/out/enums/KEYWORDS.js +9 -1
  201. package/out/enums/KEYWORDS.js.map +1 -1
  202. package/out/generator/genBundleFiles.d.ts +10 -4
  203. package/out/generator/genBundleFiles.js +127 -162
  204. package/out/generator/genBundleFiles.js.map +1 -1
  205. package/out/generator/genMetaData.d.ts +2 -11
  206. package/out/generator/genMetaData.js +185 -51
  207. package/out/generator/genMetaData.js.map +1 -1
  208. package/out/generator/genReleaseBody.d.ts +57 -0
  209. package/out/generator/genReleaseBody.js +380 -0
  210. package/out/generator/genReleaseBody.js.map +1 -0
  211. package/out/generator/index.d.ts +2 -0
  212. package/out/generator/index.js +2 -0
  213. package/out/generator/index.js.map +1 -1
  214. package/out/generator/permission.d.ts +17 -0
  215. package/out/generator/permission.js +221 -0
  216. package/out/generator/permission.js.map +1 -0
  217. package/out/index.d.ts +3 -2
  218. package/out/index.js +7 -1
  219. package/out/index.js.map +1 -1
  220. package/out/server/entity2LogicNamespace.js +100 -20
  221. package/out/server/entity2LogicNamespace.js.map +1 -1
  222. package/out/server/extendBaseNode.js +33 -20
  223. package/out/server/extendBaseNode.js.map +1 -1
  224. package/out/server/formatTsUtils.d.ts +1 -2
  225. package/out/server/formatTsUtils.js +46 -64
  226. package/out/server/formatTsUtils.js.map +1 -1
  227. package/out/server/getLogics.d.ts +2 -1
  228. package/out/server/getLogics.js +24 -6
  229. package/out/server/getLogics.js.map +1 -1
  230. package/out/server/getMemberIdentifier.js +11 -11
  231. package/out/server/getMemberIdentifier.js.map +1 -1
  232. package/out/server/getProcesses.d.ts +1 -1
  233. package/out/server/getProcesses.js +1 -1
  234. package/out/server/getProcesses.js.map +1 -1
  235. package/out/server/index.d.ts +0 -1
  236. package/out/server/index.js +2 -27
  237. package/out/server/index.js.map +1 -1
  238. package/out/server/naslServer.d.ts +50 -8
  239. package/out/server/naslServer.js +816 -429
  240. package/out/server/naslServer.js.map +1 -1
  241. package/out/server/naslStdlibMap.js +30 -28
  242. package/out/server/naslStdlibMap.js.map +1 -1
  243. package/out/server/process2LogicNamespace.js +8 -0
  244. package/out/server/process2LogicNamespace.js.map +1 -1
  245. package/out/server/translator.js +90 -12
  246. package/out/server/translator.js.map +1 -1
  247. package/out/service/creator/add.configs.js +4 -0
  248. package/out/service/creator/add.configs.js.map +1 -1
  249. package/out/service/datasource/api.d.ts +12 -0
  250. package/out/service/datasource/api.js +14 -0
  251. package/out/service/datasource/api.js.map +1 -0
  252. package/out/service/datasource/index.d.ts +2 -0
  253. package/out/service/datasource/index.js +10 -0
  254. package/out/service/datasource/index.js.map +1 -0
  255. package/out/service/defaultErrorMessage.json +97 -0
  256. package/out/service/logic/api.d.ts +9 -0
  257. package/out/service/logic/api.js +11 -0
  258. package/out/service/logic/api.js.map +1 -0
  259. package/out/service/logic/index.d.ts +2 -0
  260. package/out/service/logic/index.js +10 -0
  261. package/out/service/logic/index.js.map +1 -0
  262. package/out/service/storage/init.js +48 -7
  263. package/out/service/storage/init.js.map +1 -1
  264. package/out/templator/genCreateBlock.js +6 -4
  265. package/out/templator/genCreateBlock.js.map +1 -1
  266. package/out/templator/genCurdEditMultipleKeyBlock.js +7 -4
  267. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  268. package/out/templator/genCurdMultipleKeyBlock.js +7 -5
  269. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  270. package/out/templator/genEditTableBlock.js +4 -5
  271. package/out/templator/genEditTableBlock.js.map +1 -1
  272. package/out/templator/genEnumSelectBlock.js +5 -2
  273. package/out/templator/genEnumSelectBlock.js.map +1 -1
  274. package/out/templator/genGetBlock.js +4 -3
  275. package/out/templator/genGetBlock.js.map +1 -1
  276. package/out/templator/genGridViewBlock.js +18 -16
  277. package/out/templator/genGridViewBlock.js.map +1 -1
  278. package/out/templator/genListViewBlock.js +7 -7
  279. package/out/templator/genListViewBlock.js.map +1 -1
  280. package/out/templator/genQueryComponent.d.ts +2 -2
  281. package/out/templator/genQueryComponent.js +4 -1
  282. package/out/templator/genQueryComponent.js.map +1 -1
  283. package/out/templator/genTableBlock.js +8 -12
  284. package/out/templator/genTableBlock.js.map +1 -1
  285. package/out/templator/genUpdateBlock.js +4 -3
  286. package/out/templator/genUpdateBlock.js.map +1 -1
  287. package/out/templator/utils.js +1 -1
  288. package/out/templator/utils.js.map +1 -1
  289. package/out/test/integration/node-nasl-server.js +10 -38
  290. package/out/test/integration/node-nasl-server.js.map +1 -1
  291. package/out/translator/index.d.ts +1 -0
  292. package/out/translator/index.js +1 -1
  293. package/out/translator/index.js.map +1 -1
  294. package/out/utils/index.d.ts +1 -0
  295. package/out/utils/index.js +38 -1
  296. package/out/utils/index.js.map +1 -1
  297. package/out/utils/string.d.ts +15 -2
  298. package/out/utils/string.js +18 -3
  299. package/out/utils/string.js.map +1 -1
  300. package/package.json +1 -1
  301. package/src/concepts/App__.ts +11 -36
  302. package/src/concepts/Frontend__.ts +8 -0
  303. package/src/concepts/ViewElement__.ts +7 -28
  304. package/src/concepts/View__.ts +1 -1
  305. package/src/generator/permission.ts +1 -1
  306. package/src/server/getLogics.ts +2 -2
  307. package/src/server/naslServer.ts +8 -8
  308. package/src/service/storage/init.ts +3 -4
@@ -0,0 +1,669 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ var __importDefault = (this && this.__importDefault) || function (mod) {
32
+ return (mod && mod.__esModule) ? mod : { "default": mod };
33
+ };
34
+ var Frontend_1;
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Frontend = void 0;
37
+ const translator_1 = require("../translator");
38
+ const decorators_1 = require("../decorators");
39
+ const utils = __importStar(require("../utils"));
40
+ const BaseNode_1 = __importDefault(require("../common/BaseNode"));
41
+ const classMap_1 = __importDefault(require("../common/classMap"));
42
+ const View__1 = __importDefault(require("./View__"));
43
+ const Variable__1 = __importDefault(require("./Variable__"));
44
+ const Theme__1 = __importDefault(require("./Theme__"));
45
+ const Module__1 = __importDefault(require("./Module__"));
46
+ /**
47
+ * 端
48
+ */
49
+ let Frontend = Frontend_1 = class Frontend extends BaseNode_1.default {
50
+ /**
51
+ * 产品概念
52
+ */
53
+ concept = 'Frontend';
54
+ /**
55
+ * 端标识
56
+ */
57
+ name = undefined;
58
+ /**
59
+ * pc端
60
+ */
61
+ title = undefined;
62
+ /**
63
+ * PC/H5 端
64
+ */
65
+ type = undefined;
66
+ /**
67
+ * 基础路径
68
+ */
69
+ path = undefined;
70
+ /**
71
+ * 制品应用标题
72
+ */
73
+ documentTitle = undefined;
74
+ /**
75
+ * 制品应用图标
76
+ */
77
+ documentIcon = undefined;
78
+ /**
79
+ * 页面列表
80
+ */
81
+ views = [];
82
+ /**
83
+ * 变量列表
84
+ */
85
+ variables = [];
86
+ /**
87
+ * 主题配置
88
+ */
89
+ theme = new Theme__1.default();
90
+ /**
91
+ * 扩展组件列表(兼容老版)
92
+ */
93
+ componentDependencies = [];
94
+ /**
95
+ * 祖先 App
96
+ */
97
+ get app() {
98
+ return this.getAncestor('App');
99
+ }
100
+ /**
101
+ * @param source 需要合并的部分参数
102
+ */
103
+ constructor(source) {
104
+ source = Object.assign({}, Frontend_1.getDefaultOptions(), source);
105
+ super(source);
106
+ super.subConstructor(source);
107
+ }
108
+ static from(source, parentNode, parentKey) {
109
+ return super.from(source, parentNode, parentKey);
110
+ }
111
+ /**
112
+ * 从父级删除该节点
113
+ * @internal
114
+ */
115
+ _delete() {
116
+ let params = null;
117
+ if (this.parentNode) {
118
+ params = this.parentNode?.__removeFrontend?.(this);
119
+ }
120
+ return params;
121
+ }
122
+ /**
123
+ * 设置端标识
124
+ */
125
+ setName(name) {
126
+ const object = {
127
+ name,
128
+ };
129
+ this.update({
130
+ ...object,
131
+ field: 'name',
132
+ });
133
+ }
134
+ /**
135
+ * 设置pc端
136
+ */
137
+ setTitle(title) {
138
+ const object = {
139
+ title,
140
+ };
141
+ this.update({
142
+ ...object,
143
+ });
144
+ }
145
+ /**
146
+ * 设置基础路径
147
+ */
148
+ setPath(path) {
149
+ const object = {
150
+ path,
151
+ };
152
+ this.update({
153
+ ...object,
154
+ });
155
+ }
156
+ /**
157
+ * 设置制品应用标题
158
+ */
159
+ setDocumentTitle(documentTitle) {
160
+ const object = {
161
+ documentTitle,
162
+ };
163
+ this.update({
164
+ ...object,
165
+ });
166
+ }
167
+ /**
168
+ * 设置制品应用图标
169
+ */
170
+ setDocumentIcon(documentIcon) {
171
+ const object = {
172
+ documentIcon,
173
+ };
174
+ this.update({
175
+ ...object,
176
+ });
177
+ }
178
+ getViewExistingNames(excludedList = []) {
179
+ const excludedSet = new Set(excludedList);
180
+ return (this.views || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
181
+ }
182
+ getViewUniqueName(name = 'view1') {
183
+ return utils.unique(name, this.getViewExistingNames(), undefined, true);
184
+ }
185
+ _insertViewAt(options, index) {
186
+ const viewOptions = {};
187
+ const relationOptions = { parentNode: this, parentKey: 'views' };
188
+ let view;
189
+ if (!options) {
190
+ view = View__1.default.from({
191
+ ...viewOptions,
192
+ name: this.getViewUniqueName(),
193
+ }, this, 'views');
194
+ }
195
+ else if (typeof options === 'string') {
196
+ view = View__1.default.from({
197
+ ...viewOptions,
198
+ name: options,
199
+ }, this, 'views');
200
+ }
201
+ else if (options instanceof View__1.default) {
202
+ options.ensureDelete(); // 同一实例不支持多处存在
203
+ view = options;
204
+ Object.assign(view, relationOptions);
205
+ }
206
+ else {
207
+ view = View__1.default.from({
208
+ ...viewOptions,
209
+ ...options,
210
+ }, this, 'views');
211
+ }
212
+ this.views.splice(index, 0, view);
213
+ return view;
214
+ }
215
+ insertViewAt(options, index) {
216
+ const node = this._insertViewAt(options, index);
217
+ node.create({
218
+ index,
219
+ parentNode: this,
220
+ parentKey: 'views',
221
+ });
222
+ return node;
223
+ }
224
+ _addView(options) {
225
+ const index = this.views.length;
226
+ return this._insertViewAt(options, index);
227
+ }
228
+ addView(options) {
229
+ const node = this._addView(options);
230
+ const index = this.views.indexOf(node);
231
+ node.create({
232
+ index,
233
+ parentNode: this,
234
+ parentKey: 'views',
235
+ });
236
+ return node;
237
+ }
238
+ getVarExistingNames(excludedList = []) {
239
+ const excludedSet = new Set(excludedList);
240
+ return (this.variables || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
241
+ }
242
+ getVariableUniqueName(name = 'variable1') {
243
+ return utils.unique(name, this.getVarExistingNames(), undefined, true);
244
+ }
245
+ _insertVariableAt(options, index) {
246
+ const variableOptions = {};
247
+ const relationOptions = { parentNode: this, parentKey: 'variables' };
248
+ let variable;
249
+ if (!options) {
250
+ variable = Variable__1.default.from({
251
+ ...variableOptions,
252
+ name: this.getVariableUniqueName(),
253
+ }, this, 'variables');
254
+ }
255
+ else if (typeof options === 'string') {
256
+ variable = Variable__1.default.from({
257
+ ...variableOptions,
258
+ name: options,
259
+ }, this, 'variables');
260
+ }
261
+ else if (options instanceof Variable__1.default) {
262
+ options.ensureDelete(); // 同一实例不支持多处存在
263
+ variable = options;
264
+ Object.assign(variable, relationOptions);
265
+ }
266
+ else {
267
+ variable = Variable__1.default.from({
268
+ ...variableOptions,
269
+ ...options,
270
+ }, this, 'variables');
271
+ }
272
+ this.variables.splice(index, 0, variable);
273
+ return variable;
274
+ }
275
+ insertVariableAt(options, index) {
276
+ const node = this._insertVariableAt(options, index);
277
+ node.create({
278
+ index,
279
+ parentNode: this,
280
+ parentKey: 'variables',
281
+ });
282
+ return node;
283
+ }
284
+ _addVariable(options) {
285
+ const index = this.variables.length;
286
+ return this._insertVariableAt(options, index);
287
+ }
288
+ addVariable(options) {
289
+ const node = this._addVariable(options);
290
+ const index = this.variables.indexOf(node);
291
+ node.create({
292
+ index,
293
+ parentNode: this,
294
+ parentKey: 'variables',
295
+ });
296
+ return node;
297
+ }
298
+ getModuleExistingNames(excludedList = []) {
299
+ const excludedSet = new Set(excludedList);
300
+ return (this.componentDependencies || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
301
+ }
302
+ getModuleUniqueName(name = 'module1') {
303
+ return utils.unique(name, this.getModuleExistingNames(), undefined, false);
304
+ }
305
+ _insertModuleAt(options, index) {
306
+ const moduleOptions = {};
307
+ const relationOptions = { parentNode: this, parentKey: 'componentDependencies' };
308
+ let module;
309
+ if (!options) {
310
+ module = Module__1.default.from({
311
+ ...moduleOptions,
312
+ name: this.getModuleUniqueName(),
313
+ }, this, 'componentDependencies');
314
+ }
315
+ else if (typeof options === 'string') {
316
+ module = Module__1.default.from({
317
+ ...moduleOptions,
318
+ name: options,
319
+ }, this, 'componentDependencies');
320
+ }
321
+ else if (options instanceof Module__1.default) {
322
+ options.ensureDelete(); // 同一实例不支持多处存在
323
+ module = options;
324
+ Object.assign(module, relationOptions);
325
+ }
326
+ else {
327
+ module = Module__1.default.from({
328
+ ...moduleOptions,
329
+ ...options,
330
+ }, this, 'componentDependencies');
331
+ }
332
+ this.componentDependencies.splice(index, 0, module);
333
+ return module;
334
+ }
335
+ insertModuleAt(options, index) {
336
+ const node = this._insertModuleAt(options, index);
337
+ node.create({
338
+ index,
339
+ parentNode: this,
340
+ parentKey: 'componentDependencies',
341
+ });
342
+ return node;
343
+ }
344
+ _addModule(options) {
345
+ const index = this.componentDependencies.length;
346
+ return this._insertModuleAt(options, index);
347
+ }
348
+ addModule(options) {
349
+ const node = this._addModule(options);
350
+ const index = this.componentDependencies.indexOf(node);
351
+ node.create({
352
+ index,
353
+ parentNode: this,
354
+ parentKey: 'componentDependencies',
355
+ });
356
+ return node;
357
+ }
358
+ removeView(options) {
359
+ let view;
360
+ if (typeof options === 'string') {
361
+ view = this.views.find((item) => item.name === options);
362
+ if (!view) {
363
+ throw new Error('找不到页面 ' + options);
364
+ }
365
+ }
366
+ else {
367
+ view = options;
368
+ }
369
+ return view.delete();
370
+ }
371
+ __removeView(view) {
372
+ const parentKey = view.parentKey;
373
+ const params = {
374
+ parentNode: this,
375
+ parentKey,
376
+ index: -1,
377
+ object: null,
378
+ oldObject: view,
379
+ };
380
+ if (parentKey) {
381
+ params.parentKey = parentKey;
382
+ if (Array.isArray(this[parentKey])) {
383
+ const index = this[parentKey].indexOf(view);
384
+ ~index && this[parentKey].splice(index, 1);
385
+ params.index = index;
386
+ }
387
+ else if (this[parentKey] === view) {
388
+ params.index = 0;
389
+ this[parentKey] = undefined;
390
+ }
391
+ }
392
+ return params;
393
+ }
394
+ removeVariable(options) {
395
+ let variable;
396
+ if (typeof options === 'string') {
397
+ variable = this.variables.find((item) => item.name === options);
398
+ if (!variable) {
399
+ throw new Error('找不到变量 ' + options);
400
+ }
401
+ }
402
+ else {
403
+ variable = options;
404
+ }
405
+ return variable.delete();
406
+ }
407
+ __removeVariable(variable) {
408
+ const parentKey = variable.parentKey;
409
+ const params = {
410
+ parentNode: this,
411
+ parentKey,
412
+ index: -1,
413
+ object: null,
414
+ oldObject: variable,
415
+ };
416
+ if (parentKey) {
417
+ params.parentKey = parentKey;
418
+ if (Array.isArray(this[parentKey])) {
419
+ const index = this[parentKey].indexOf(variable);
420
+ ~index && this[parentKey].splice(index, 1);
421
+ params.index = index;
422
+ }
423
+ else if (this[parentKey] === variable) {
424
+ params.index = 0;
425
+ this[parentKey] = undefined;
426
+ }
427
+ }
428
+ return params;
429
+ }
430
+ removeTheme(options) {
431
+ let theme;
432
+ if (typeof options === 'string') {
433
+ theme = this.theme;
434
+ if (!theme) {
435
+ throw new Error('找不到主题 ' + options);
436
+ }
437
+ }
438
+ else {
439
+ theme = options;
440
+ }
441
+ return theme.delete();
442
+ }
443
+ __removeTheme(theme) {
444
+ const parentKey = theme.parentKey;
445
+ const params = {
446
+ parentNode: this,
447
+ parentKey,
448
+ index: -1,
449
+ object: null,
450
+ oldObject: theme,
451
+ };
452
+ if (parentKey) {
453
+ params.parentKey = parentKey;
454
+ if (Array.isArray(this[parentKey])) {
455
+ const index = this[parentKey].indexOf(theme);
456
+ ~index && this[parentKey].splice(index, 1);
457
+ params.index = index;
458
+ }
459
+ else if (this[parentKey] === theme) {
460
+ params.index = 0;
461
+ this[parentKey] = undefined;
462
+ }
463
+ }
464
+ return params;
465
+ }
466
+ removeModule(options) {
467
+ let module;
468
+ if (typeof options === 'string') {
469
+ module = this.componentDependencies.find((item) => item.name === options);
470
+ if (!module) {
471
+ throw new Error('找不到模块 ' + options);
472
+ }
473
+ }
474
+ else {
475
+ module = options;
476
+ }
477
+ return module.delete();
478
+ }
479
+ __removeModule(module) {
480
+ const parentKey = module.parentKey;
481
+ const params = {
482
+ parentNode: this,
483
+ parentKey,
484
+ index: -1,
485
+ object: null,
486
+ oldObject: module,
487
+ };
488
+ if (parentKey) {
489
+ params.parentKey = parentKey;
490
+ if (Array.isArray(this[parentKey])) {
491
+ const index = this[parentKey].indexOf(module);
492
+ ~index && this[parentKey].splice(index, 1);
493
+ params.index = index;
494
+ }
495
+ else if (this[parentKey] === module) {
496
+ params.index = 0;
497
+ this[parentKey] = undefined;
498
+ }
499
+ }
500
+ return params;
501
+ }
502
+ //================================================================================
503
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
504
+ // 自动生成的代码已结束。下面可以手动编写。
505
+ //================================================================================
506
+ findComponentDependencyByName(name) {
507
+ return this.componentDependencies.find((componentDependency) => componentDependency.name === name);
508
+ }
509
+ /**
510
+ * @param path 路径
511
+ * path 为要查找路径:如 /dashboard/student/list、/dashboard/student/list
512
+ */
513
+ findViewByPath(path) {
514
+ const arr = path.split('/');
515
+ if (arr[0] === '')
516
+ arr.shift();
517
+ if (!arr.length)
518
+ throw Error('Cannot find View ' + path);
519
+ const childName = arr.shift();
520
+ const subView = this.views.find((child) => child.name === childName);
521
+ return arr.length ? subView.findViewByPath(arr.join('/')) : subView;
522
+ }
523
+ findViewByName(name) {
524
+ return utils.traverse((current) => {
525
+ if (current.node.name === name)
526
+ return current.node;
527
+ }, { node: { name: '', children: this.views } });
528
+ }
529
+ genThemeCSS() {
530
+ const keys = Object.keys(this.theme?.variableMap || {});
531
+ if (!keys.length)
532
+ return;
533
+ return `:root {
534
+ ${keys.map((key) => ` ${key}: ${this.theme?.variableMap[key]};`).join('\n')}
535
+ }`;
536
+ }
537
+ getNamespace() {
538
+ if (this.parentNode && this.parentNode.getNamespace) {
539
+ const parentNamespace = this.parentNode.getNamespace();
540
+ const parentName = this.parentNode.name;
541
+ const arr = [parentNamespace];
542
+ if (this.parentNode.concept !== 'App' && parentName) {
543
+ arr.push(parentName);
544
+ }
545
+ return `${arr.join('.')}.frontends`;
546
+ }
547
+ else
548
+ throw new Error('无法获取命名空间,请设置 parentNode!');
549
+ }
550
+ /**
551
+ * 生成宿主语言的文件路径
552
+ * @param name 一般不用传,用于 rename
553
+ */
554
+ getEmbeddedFilePath(name = this.name) {
555
+ return `/embedded/${this.rootNode?.name || this.parentNode.name}/frontends/${name}.ts`;
556
+ }
557
+ toEmbeddedTS(state) {
558
+ let code = `export namespace ${this.name} {\n`;
559
+ code += 'const name = ';
560
+ code += '"' + this.name + '";\n';
561
+ code += '}\n';
562
+ return code;
563
+ }
564
+ toEmbeddedTSFile() {
565
+ let code = `namespace ${this.getNamespace()} {\n`;
566
+ const state = (0, translator_1.createCompilerState)(code, { tabSize: 1 });
567
+ try {
568
+ code += this.toEmbeddedTS(state);
569
+ }
570
+ catch (err) {
571
+ code += '';
572
+ console.log(err);
573
+ }
574
+ code += '}\n';
575
+ return {
576
+ code,
577
+ filePath: this.getEmbeddedFilePath(),
578
+ sourceMap: state.sourceMap,
579
+ };
580
+ }
581
+ getPath() {
582
+ const path = this.path;
583
+ const finalPath = path && path !== '/' ? path : '';
584
+ return finalPath;
585
+ }
586
+ /**
587
+ * 为/的转成'',便于url拼接
588
+ */
589
+ get basePath() {
590
+ const path = this.path;
591
+ const basePath = path && path !== '/' ? path : '';
592
+ return basePath;
593
+ }
594
+ genCustomAssetsInfo(prefix) {
595
+ const custom = {
596
+ js: [],
597
+ css: [],
598
+ names: [],
599
+ };
600
+ const existingSet = new Set();
601
+ this.componentDependencies.forEach((dep) => {
602
+ const { name, version } = dep;
603
+ const jsName = `${prefix}/packages/${name}@${version}/dist-theme/index.js`;
604
+ if (!existingSet.has(jsName)) {
605
+ existingSet.add(jsName);
606
+ custom.js.push(jsName);
607
+ if (utils.shouldLoadCss(name, version)) {
608
+ custom.css.push(`${prefix}/packages/${name}@${version}/dist-theme/index.css`);
609
+ }
610
+ custom.names.push(name);
611
+ }
612
+ });
613
+ return custom;
614
+ }
615
+ getExtensionsCallbackLogics() {
616
+ let resultLogics = [];
617
+ this.views.forEach((item) => {
618
+ resultLogics = [...resultLogics, ...item.getViewCallLogics()];
619
+ });
620
+ return Array.from(new Set(resultLogics));
621
+ }
622
+ };
623
+ __decorate([
624
+ (0, decorators_1.property)()
625
+ ], Frontend.prototype, "concept", void 0);
626
+ __decorate([
627
+ (0, decorators_1.property)()
628
+ ], Frontend.prototype, "name", void 0);
629
+ __decorate([
630
+ (0, decorators_1.property)()
631
+ ], Frontend.prototype, "title", void 0);
632
+ __decorate([
633
+ (0, decorators_1.property)()
634
+ ], Frontend.prototype, "type", void 0);
635
+ __decorate([
636
+ (0, decorators_1.property)()
637
+ ], Frontend.prototype, "path", void 0);
638
+ __decorate([
639
+ (0, decorators_1.property)()
640
+ ], Frontend.prototype, "documentTitle", void 0);
641
+ __decorate([
642
+ (0, decorators_1.property)()
643
+ ], Frontend.prototype, "documentIcon", void 0);
644
+ __decorate([
645
+ (0, decorators_1.property)('View')
646
+ ], Frontend.prototype, "views", void 0);
647
+ __decorate([
648
+ (0, decorators_1.property)('Variable')
649
+ ], Frontend.prototype, "variables", void 0);
650
+ __decorate([
651
+ (0, decorators_1.property)('Theme')
652
+ ], Frontend.prototype, "theme", void 0);
653
+ __decorate([
654
+ (0, decorators_1.property)('Module')
655
+ ], Frontend.prototype, "componentDependencies", void 0);
656
+ __decorate([
657
+ (0, translator_1.withSourceMap)()
658
+ ], Frontend.prototype, "toEmbeddedTS", null);
659
+ Frontend = Frontend_1 = __decorate([
660
+ (0, decorators_1.concept)('端')
661
+ ], Frontend);
662
+ exports.Frontend = Frontend;
663
+ classMap_1.default.Frontend = Frontend;
664
+ exports.default = Frontend;
665
+ //================================================================================
666
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
667
+ // 自动生成的代码已结束。下面可以手动编写。
668
+ //================================================================================
669
+ //# sourceMappingURL=Frontend__.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Frontend__.js","sourceRoot":"","sources":["../../src/concepts/Frontend__.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAwG;AAQxG,8CAAkE;AAElE,gDAAkC;AAElC,kEAA0C;AAC1C,kEAA0C;AAC1C,qDAA4B;AAC5B,6DAAoC;AACpC,uDAA8B;AAC9B,yDAAgC;AAGhC;;GAEG;AAEH,IAAa,QAAQ,gBAArB,MAAa,QAAS,SAAQ,kBAAQ;IAClC;;OAEG;IAEH,OAAO,GAAe,UAAU,CAAC;IAEjC;;OAEG;IAEH,IAAI,GAAW,SAAS,CAAC;IAEzB;;OAEG;IAEH,KAAK,GAAW,SAAS,CAAC;IAE1B;;OAEG;IAEH,IAAI,GAAgB,SAAS,CAAC;IAE9B;;OAEG;IAEH,IAAI,GAAW,SAAS,CAAC;IAEzB;;OAEG;IAEH,aAAa,GAAW,SAAS,CAAC;IAElC;;OAEG;IAEH,YAAY,GAAW,SAAS,CAAC;IAEjC;;OAEG;IAEH,KAAK,GAAgB,EAAE,CAAC;IAExB;;OAEG;IAEH,SAAS,GAAoB,EAAE,CAAC;IAEhC;;OAEG;IAEH,KAAK,GAAU,IAAI,gBAAK,EAAE,CAAC;IAE3B;;OAEG;IAEH,qBAAqB,GAAkB,EAAE,CAAC;IAE1C;;OAEG;IACH,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAQ,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,YAAY,MAA0B;QAClC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,UAAQ,CAAC,iBAAiB,EAAE,EAAE,MAAM,CAAC,CAAC;QACjE,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,MAAW,EAAE,UAAgB,EAAE,SAAkB;QACzD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAa,CAAC;IACjE,CAAC;IAED;;;OAGG;IACH,OAAO;QACH,IAAI,MAAM,GAAW,IAAI,CAAC;QAC1B,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,MAAM,GAAI,IAAI,CAAC,UAAkB,EAAE,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC;SAC/D;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD;;OAEG;IACH,OAAO,CAAC,IAAY;QAChB,MAAM,MAAM,GAAG;YACX,IAAI;SACP,CAAC;QACF,IAAI,CAAC,MAAM,CAAC;YACR,GAAG,MAAM;YACT,KAAK,EAAE,MAAM;SAChB,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAa;QAClB,MAAM,MAAM,GAAG;YACX,KAAK;SACR,CAAC;QACF,IAAI,CAAC,MAAM,CAAC;YACR,GAAG,MAAM;SACZ,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAY;QAChB,MAAM,MAAM,GAAG;YACX,IAAI;SACP,CAAC;QACF,IAAI,CAAC,MAAM,CAAC;YACR,GAAG,MAAM;SACZ,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,aAAqB;QAClC,MAAM,MAAM,GAAG;YACX,aAAa;SAChB,CAAC;QACF,IAAI,CAAC,MAAM,CAAC;YACR,GAAG,MAAM;SACZ,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,YAAoB;QAChC,MAAM,MAAM,GAAG;YACX,YAAY;SACf,CAAC;QACF,IAAI,CAAC,MAAM,CAAC;YACR,GAAG,MAAM;SACZ,CAAC,CAAC;IACP,CAAC;IAED,oBAAoB,CAAC,eAA4B,EAAE;QAC/C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1C,OAAO,CAAE,IAAI,CAAC,KAAgB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5G,CAAC;IACD,iBAAiB,CAAC,IAAI,GAAG,OAAO;QAC5B,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC5E,CAAC;IAuBD,aAAa,CAAC,OAAsC,EAAE,KAAa;QAC/D,MAAM,WAAW,GAAQ,EAAE,CAAC;QAC5B,MAAM,eAAe,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QACjE,IAAI,IAAU,CAAC;QACf,IAAI,CAAC,OAAO,EAAE;YACV,IAAI,GAAG,eAAI,CAAC,IAAI,CAAC;gBACb,GAAG,WAAW;gBACd,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE;aACjC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;SACrB;aAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YACpC,IAAI,GAAG,eAAI,CAAC,IAAI,CAAC;gBACb,GAAG,WAAW;gBACd,IAAI,EAAE,OAAO;aAChB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;SACrB;aAAM,IAAI,OAAO,YAAY,eAAI,EAAE;YAChC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,cAAc;YACtC,IAAI,GAAG,OAAO,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;SACxC;aAAM;YACH,IAAI,GAAG,eAAI,CAAC,IAAI,CAAC;gBACb,GAAG,WAAW;gBACd,GAAG,OAAO;aACb,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;SACrB;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAoBD,YAAY,CAAC,OAAsC,EAAE,KAAa;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,OAAc,EAAE,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC;YACR,KAAK;YACL,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,OAAO;SACrB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAuBD,QAAQ,CAAC,OAAuC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAChC,OAAO,IAAI,CAAC,aAAa,CAAC,OAAc,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAqBD,OAAO,CAAC,OAAuC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAc,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC;YACR,KAAK;YACL,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,OAAO;SACrB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,mBAAmB,CAAC,eAAgC,EAAE;QAClD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1C,OAAO,CAAE,IAAI,CAAC,SAAwB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpH,CAAC;IACD,qBAAqB,CAAC,IAAI,GAAG,WAAW;QACpC,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;IAuBD,iBAAiB,CAAC,OAA8C,EAAE,KAAa;QAC3E,MAAM,eAAe,GAAQ,EAAE,CAAC;QAChC,MAAM,eAAe,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;QACrE,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC,OAAO,EAAE;YACV,QAAQ,GAAG,mBAAQ,CAAC,IAAI,CAAC;gBACrB,GAAG,eAAe;gBAClB,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE;aACrC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;SACzB;aAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YACpC,QAAQ,GAAG,mBAAQ,CAAC,IAAI,CAAC;gBACrB,GAAG,eAAe;gBAClB,IAAI,EAAE,OAAO;aAChB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;SACzB;aAAM,IAAI,OAAO,YAAY,mBAAQ,EAAE;YACpC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,cAAc;YACtC,QAAQ,GAAG,OAAO,CAAC;YACnB,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;SAC5C;aAAM;YACH,QAAQ,GAAG,mBAAQ,CAAC,IAAI,CAAC;gBACrB,GAAG,eAAe;gBAClB,GAAG,OAAO;aACb,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC1C,OAAO,QAAQ,CAAC;IACpB,CAAC;IAoBD,gBAAgB,CAAC,OAA8C,EAAE,KAAa;QAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAc,EAAE,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC;YACR,KAAK;YACL,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,WAAW;SACzB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAuBD,YAAY,CAAC,OAA+C;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QACpC,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAc,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAqBD,WAAW,CAAC,OAA+C;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,OAAc,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC;YACR,KAAK;YACL,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,WAAW;SACzB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,sBAAsB,CAAC,eAA8B,EAAE;QACnD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1C,OAAO,CAAE,IAAI,CAAC,qBAAkC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9H,CAAC;IACD,mBAAmB,CAAC,IAAI,GAAG,SAAS;QAChC,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/E,CAAC;IAuBD,eAAe,CAAC,OAA0C,EAAE,KAAa;QACrE,MAAM,aAAa,GAAQ,EAAE,CAAC;QAC9B,MAAM,eAAe,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC;QACjF,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC,OAAO,EAAE;YACV,MAAM,GAAG,iBAAM,CAAC,IAAI,CAAC;gBACjB,GAAG,aAAa;gBAChB,IAAI,EAAE,IAAI,CAAC,mBAAmB,EAAE;aACnC,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC;SACrC;aAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YACpC,MAAM,GAAG,iBAAM,CAAC,IAAI,CAAC;gBACjB,GAAG,aAAa;gBAChB,IAAI,EAAE,OAAO;aAChB,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC;SACrC;aAAM,IAAI,OAAO,YAAY,iBAAM,EAAE;YAClC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,cAAc;YACtC,MAAM,GAAG,OAAO,CAAC;YACjB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;SAC1C;aAAM;YACH,MAAM,GAAG,iBAAM,CAAC,IAAI,CAAC;gBACjB,GAAG,aAAa;gBAChB,GAAG,OAAO;aACb,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC;SACrC;QACD,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC;IAClB,CAAC;IAoBD,cAAc,CAAC,OAA0C,EAAE,KAAa;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,OAAc,EAAE,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC;YACR,KAAK;YACL,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,uBAAuB;SACrC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAuBD,UAAU,CAAC,OAA2C;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;QAChD,OAAO,IAAI,CAAC,eAAe,CAAC,OAAc,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IAqBD,SAAS,CAAC,OAA2C;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAc,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC;YACR,KAAK;YACL,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,uBAAuB;SACrC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAcD,UAAU,CAAC,OAAsB;QAC7B,IAAI,IAAU,CAAC;QACf,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,IAAI,GAAI,IAAI,CAAC,KAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;YACpE,IAAI,CAAC,IAAI,EAAE;gBACP,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;aACvC;SACJ;aAAM;YACH,IAAI,GAAG,OAAO,CAAC;SAClB;QACD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAED,YAAY,CAAC,IAAU;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,MAAM,GAAW;YACnB,UAAU,EAAE,IAAI;YAChB,SAAS;YACT,KAAK,EAAE,CAAC,CAAC;YACT,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,IAAI;SAClB,CAAC;QACF,IAAI,SAAS,EAAE;YACX,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,IAAI,KAAK,CAAC,OAAO,CAAE,IAAY,CAAC,SAAS,CAAC,CAAC,EAAE;gBACzC,MAAM,KAAK,GAAI,IAAY,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACrD,CAAC,KAAK,IAAK,IAAY,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACpD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;aACxB;iBAAM,IAAK,IAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;gBAC1C,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;gBAChB,IAAY,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;aACxC;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAcD,cAAc,CAAC,OAA0B;QACrC,IAAI,QAAkB,CAAC;QACvB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,QAAQ,GAAI,IAAI,CAAC,SAAwB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;YAChF,IAAI,CAAC,QAAQ,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;aACvC;SACJ;aAAM;YACH,QAAQ,GAAG,OAAO,CAAC;SACtB;QACD,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC;IAED,gBAAgB,CAAC,QAAkB;QAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACrC,MAAM,MAAM,GAAW;YACnB,UAAU,EAAE,IAAI;YAChB,SAAS;YACT,KAAK,EAAE,CAAC,CAAC;YACT,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,QAAQ;SACtB,CAAC;QACF,IAAI,SAAS,EAAE;YACX,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,IAAI,KAAK,CAAC,OAAO,CAAE,IAAY,CAAC,SAAS,CAAC,CAAC,EAAE;gBACzC,MAAM,KAAK,GAAI,IAAY,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACzD,CAAC,KAAK,IAAK,IAAY,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACpD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;aACxB;iBAAM,IAAK,IAAY,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE;gBAC9C,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;gBAChB,IAAY,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;aACxC;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAcD,WAAW,CAAC,OAAuB;QAC/B,IAAI,KAAY,CAAC;QACjB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACnB,IAAI,CAAC,KAAK,EAAE;gBACR,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;aACvC;SACJ;aAAM;YACH,KAAK,GAAG,OAAO,CAAC;SACnB;QACD,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,aAAa,CAAC,KAAY;QACtB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAClC,MAAM,MAAM,GAAW;YACnB,UAAU,EAAE,IAAI;YAChB,SAAS;YACT,KAAK,EAAE,CAAC,CAAC;YACT,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,KAAK;SACnB,CAAC;QACF,IAAI,SAAS,EAAE;YACX,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,IAAI,KAAK,CAAC,OAAO,CAAE,IAAY,CAAC,SAAS,CAAC,CAAC,EAAE;gBACzC,MAAM,KAAK,GAAI,IAAY,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACtD,CAAC,KAAK,IAAK,IAAY,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACpD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;aACxB;iBAAM,IAAK,IAAY,CAAC,SAAS,CAAC,KAAK,KAAK,EAAE;gBAC3C,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;gBAChB,IAAY,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;aACxC;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAcD,YAAY,CAAC,OAAwB;QACjC,IAAI,MAAc,CAAC;QACnB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,GAAI,IAAI,CAAC,qBAAkC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;YACxF,IAAI,CAAC,MAAM,EAAE;gBACT,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;aACvC;SACJ;aAAM;YACH,MAAM,GAAG,OAAO,CAAC;SACpB;QACD,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;IAED,cAAc,CAAC,MAAc;QACzB,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,MAAM,MAAM,GAAW;YACnB,UAAU,EAAE,IAAI;YAChB,SAAS;YACT,KAAK,EAAE,CAAC,CAAC;YACT,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,MAAM;SACpB,CAAC;QACF,IAAI,SAAS,EAAE;YACX,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,IAAI,KAAK,CAAC,OAAO,CAAE,IAAY,CAAC,SAAS,CAAC,CAAC,EAAE;gBACzC,MAAM,KAAK,GAAI,IAAY,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvD,CAAC,KAAK,IAAK,IAAY,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACpD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;aACxB;iBAAM,IAAK,IAAY,CAAC,SAAS,CAAC,KAAK,MAAM,EAAE;gBAC5C,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;gBAChB,IAAY,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;aACxC;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,kFAAkF;IAClF,gEAAgE;IAChE,uBAAuB;IACvB,kFAAkF;IAElF,6BAA6B,CAAC,IAAY;QACtC,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACvG,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,IAAY;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE;YACb,GAAG,CAAC,KAAK,EAAE,CAAC;QAEhB,IAAI,CAAC,GAAG,CAAC,MAAM;YACX,MAAM,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACrE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACxE,CAAC;IAED,cAAc,CAAC,IAAY;QACvB,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI;gBAC1B,OAAO,OAAO,CAAC,IAAI,CAAC;QAC5B,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,WAAW;QACP,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,MAAM;YACZ,OAAO;QAEX,OAAO;cACD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;UAChF,CAAC;IACP,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,UAAU,IAAK,IAAI,CAAC,UAAwB,CAAC,YAAY,EAAE;YAChE,MAAM,eAAe,GAAI,IAAI,CAAC,UAAwB,CAAC,YAAY,EAAE,CAAC;YACtE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACxC,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC;YAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,KAAK,KAAK,IAAI,UAAU,EAAE;gBACjD,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACxB;YACD,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;SACvC;;YACG,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACpD,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;QAChC,OAAO,aAAa,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,cAAc,IAAI,KAAK,CAAC;IAC3F,CAAC;IAGD,YAAY,CAAC,KAAuB;QAChC,IAAI,IAAI,GAAG,oBAAoB,IAAI,CAAC,IAAI,MAAM,CAAC;QAC/C,IAAI,IAAI,eAAe,CAAC;QACxB,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACjC,IAAI,IAAI,KAAK,CAAC;QACd,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,gBAAgB;QACZ,IAAI,IAAI,GAAG,aAAa,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC;QAElD,MAAM,KAAK,GAAG,IAAA,gCAAmB,EAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI;YACA,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SACpC;QAAC,OAAO,GAAG,EAAE;YACV,IAAI,IAAI,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACpB;QACD,IAAI,IAAI,KAAK,CAAC;QAEd,OAAO;YACH,IAAI;YACJ,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE;YACpC,SAAS,EAAE,KAAK,CAAC,SAAS;SAC7B,CAAC;IACN,CAAC;IAED,OAAO;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,mBAAmB,CAAC,MAAc;QAC9B,MAAM,MAAM,GAAe;YACvB,EAAE,EAAE,EAAE;YACN,GAAG,EAAE,EAAE;YACP,KAAK,EAAE,EAAE;SACZ,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACvC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;YAC9B,MAAM,MAAM,GAAG,GAAG,MAAM,aAAa,IAAI,IAAI,OAAO,sBAAsB,CAAC;YAC3E,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAC1B,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACxB,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;oBACpC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,aAAa,IAAI,IAAI,OAAO,uBAAuB,CAAC,CAAC;iBACjF;gBACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC3B;QACL,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,2BAA2B;QACvB,IAAI,YAAY,GAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;YAC7B,YAAY,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7C,CAAC;CAMJ,CAAA;AA54BG;IADC,IAAA,qBAAQ,GAAE;yCACsB;AAMjC;IADC,IAAA,qBAAQ,GAAE;sCACc;AAMzB;IADC,IAAA,qBAAQ,GAAE;uCACe;AAM1B;IADC,IAAA,qBAAQ,GAAE;sCACmB;AAM9B;IADC,IAAA,qBAAQ,GAAE;sCACc;AAMzB;IADC,IAAA,qBAAQ,GAAE;+CACuB;AAMlC;IADC,IAAA,qBAAQ,GAAE;8CACsB;AAMjC;IADC,IAAA,qBAAQ,EAAC,MAAM,CAAC;uCACO;AAMxB;IADC,IAAA,qBAAQ,EAAC,UAAU,CAAC;2CACW;AAMhC;IADC,IAAA,qBAAQ,EAAC,OAAO,CAAC;uCACS;AAM3B;IADC,IAAA,qBAAQ,EAAC,QAAQ,CAAC;uDACuB;AAqwB1C;IADC,IAAA,0BAAa,GAAE;4CAOf;AA50BQ,QAAQ;IADpB,IAAA,oBAAO,EAAC,GAAG,CAAC;GACA,QAAQ,CAi5BpB;AAj5BY,4BAAQ;AAm5BrB,kBAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,kBAAe,QAAQ,CAAC;AACxB,kFAAkF;AAClF,gEAAgE;AAChE,uBAAuB;AACvB,kFAAkF"}