@lcap/nasl 3.3.3-beta.7 → 3.3.5-beta.1

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 (369) hide show
  1. package/.nyc_output/b920244d-8d01-4e76-be5a-95132217c5a1.json +1 -0
  2. package/.nyc_output/processinfo/b920244d-8d01-4e76-be5a-95132217c5a1.json +1 -0
  3. package/.nyc_output/processinfo/index.json +1 -0
  4. package/coverage/base.css +224 -0
  5. package/coverage/block-navigation.js +87 -0
  6. package/coverage/favicon.png +0 -0
  7. package/coverage/index.html +461 -0
  8. package/coverage/prettify.css +1 -0
  9. package/coverage/prettify.js +2 -0
  10. package/coverage/sort-arrow-sprite.png +0 -0
  11. package/coverage/sorter.js +196 -0
  12. package/coverage/src/automate/engine/index.html +116 -0
  13. package/coverage/src/automate/engine/utils.js.html +1414 -0
  14. package/coverage/src/bak/index.html +116 -0
  15. package/coverage/src/bak/translator.js.html +631 -0
  16. package/coverage/src/breakpoint/generator/AfterStartNode.ts.html +175 -0
  17. package/coverage/src/breakpoint/generator/BeforeEndNode.ts.html +169 -0
  18. package/coverage/src/breakpoint/generator/BreakpointNode.ts.html +1246 -0
  19. package/coverage/src/breakpoint/generator/CallbackNode.ts.html +145 -0
  20. package/coverage/src/breakpoint/generator/index.html +176 -0
  21. package/coverage/src/breakpoint/generator/index.ts.html +508 -0
  22. package/coverage/src/breakpoint/index.html +116 -0
  23. package/coverage/src/breakpoint/index.ts.html +94 -0
  24. package/coverage/src/breakpoint/shared/constants.ts.html +436 -0
  25. package/coverage/src/breakpoint/shared/index.html +176 -0
  26. package/coverage/src/breakpoint/shared/index.ts.html +94 -0
  27. package/coverage/src/breakpoint/shared/operations.ts.html +160 -0
  28. package/coverage/src/breakpoint/shared/socket.ts.html +1297 -0
  29. package/coverage/src/breakpoint/shared/utils.ts.html +1087 -0
  30. package/coverage/src/breakpoint/store/core.ts.html +1600 -0
  31. package/coverage/src/breakpoint/store/dock.ts.html +733 -0
  32. package/coverage/src/breakpoint/store/index.html +146 -0
  33. package/coverage/src/breakpoint/store/index.ts.html +91 -0
  34. package/coverage/src/common/BaseNode.ts.html +4081 -0
  35. package/coverage/src/common/Command.ts.html +310 -0
  36. package/coverage/src/common/EventEmitter.ts.html +373 -0
  37. package/coverage/src/common/Messager.ts.html +820 -0
  38. package/coverage/src/common/asyncFuncMap.ts.html +127 -0
  39. package/coverage/src/common/index.html +191 -0
  40. package/coverage/src/common/index.ts.html +94 -0
  41. package/coverage/src/concepts/Abort__.ts.html +331 -0
  42. package/coverage/src/concepts/Anchor__.ts.html +667 -0
  43. package/coverage/src/concepts/AnonymousFunction__.ts.html +2092 -0
  44. package/coverage/src/concepts/App__.ts.html +13651 -0
  45. package/coverage/src/concepts/Argument__.ts.html +907 -0
  46. package/coverage/src/concepts/Assignee__.ts.html +2317 -0
  47. package/coverage/src/concepts/AssignmentLine__.ts.html +430 -0
  48. package/coverage/src/concepts/Assignment__.ts.html +1174 -0
  49. package/coverage/src/concepts/Attribute__.ts.html +919 -0
  50. package/coverage/src/concepts/AuthInterface__.ts.html +370 -0
  51. package/coverage/src/concepts/AuthLogicForCallInterface__.ts.html +2011 -0
  52. package/coverage/src/concepts/AuthLogic__.ts.html +793 -0
  53. package/coverage/src/concepts/BackendVariable__.ts.html +1690 -0
  54. package/coverage/src/concepts/Backend__.ts.html +1192 -0
  55. package/coverage/src/concepts/BatchAssignment__.ts.html +3376 -0
  56. package/coverage/src/concepts/BinaryExpression__.ts.html +1468 -0
  57. package/coverage/src/concepts/BindAttribute__.ts.html +3931 -0
  58. package/coverage/src/concepts/BindDirective__.ts.html +2002 -0
  59. package/coverage/src/concepts/BindEvent__.ts.html +3487 -0
  60. package/coverage/src/concepts/BindStyle__.ts.html +1645 -0
  61. package/coverage/src/concepts/BooleanLiteral__.ts.html +421 -0
  62. package/coverage/src/concepts/CallAuthInterface__.ts.html +1642 -0
  63. package/coverage/src/concepts/CallConnector__.ts.html +925 -0
  64. package/coverage/src/concepts/CallFunction__.ts.html +2164 -0
  65. package/coverage/src/concepts/CallInterface__.ts.html +2776 -0
  66. package/coverage/src/concepts/CallLogic__.ts.html +4693 -0
  67. package/coverage/src/concepts/CallQueryComponent__.ts.html +5419 -0
  68. package/coverage/src/concepts/Comment__.ts.html +397 -0
  69. package/coverage/src/concepts/CompletionProperty__.ts.html +946 -0
  70. package/coverage/src/concepts/ConfigGroup__.ts.html +1132 -0
  71. package/coverage/src/concepts/ConfigPropertyValue__.ts.html +427 -0
  72. package/coverage/src/concepts/ConfigProperty__.ts.html +1375 -0
  73. package/coverage/src/concepts/Configuration__.ts.html +1054 -0
  74. package/coverage/src/concepts/Connection__.ts.html +1387 -0
  75. package/coverage/src/concepts/ConnectorTrigger__.ts.html +598 -0
  76. package/coverage/src/concepts/Connector__.ts.html +4390 -0
  77. package/coverage/src/concepts/Constant__.ts.html +1123 -0
  78. package/coverage/src/concepts/DataSource__.ts.html +1798 -0
  79. package/coverage/src/concepts/DatabaseTypeAnnotation__.ts.html +334 -0
  80. package/coverage/src/concepts/DefaultValue__.ts.html +946 -0
  81. package/coverage/src/concepts/Destination__.ts.html +2761 -0
  82. package/coverage/src/concepts/End__.ts.html +436 -0
  83. package/coverage/src/concepts/EntityIndex__.ts.html +799 -0
  84. package/coverage/src/concepts/EntityProperty__.ts.html +2866 -0
  85. package/coverage/src/concepts/Entity__.ts.html +3070 -0
  86. package/coverage/src/concepts/EnumItem__.ts.html +553 -0
  87. package/coverage/src/concepts/Enum__.ts.html +1258 -0
  88. package/coverage/src/concepts/Event__.ts.html +1111 -0
  89. package/coverage/src/concepts/ExternalDestination__.ts.html +1060 -0
  90. package/coverage/src/concepts/ForEachStatement__.ts.html +2023 -0
  91. package/coverage/src/concepts/FrontendLibrary__.ts.html +1762 -0
  92. package/coverage/src/concepts/FrontendVariable__.ts.html +292 -0
  93. package/coverage/src/concepts/Frontend__.ts.html +4078 -0
  94. package/coverage/src/concepts/Function__.ts.html +3718 -0
  95. package/coverage/src/concepts/Identifier__.ts.html +1060 -0
  96. package/coverage/src/concepts/IfStatement__.ts.html +1636 -0
  97. package/coverage/src/concepts/Integration__.ts.html +1273 -0
  98. package/coverage/src/concepts/InterfaceParam__.ts.html +1258 -0
  99. package/coverage/src/concepts/Interface__.ts.html +3463 -0
  100. package/coverage/src/concepts/JSBlock__.ts.html +424 -0
  101. package/coverage/src/concepts/JavaLogic__.ts.html +463 -0
  102. package/coverage/src/concepts/LogicItem__.ts.html +1174 -0
  103. package/coverage/src/concepts/Logic__.ts.html +7732 -0
  104. package/coverage/src/concepts/MatchCase__.ts.html +2974 -0
  105. package/coverage/src/concepts/Match__.ts.html +2494 -0
  106. package/coverage/src/concepts/MemberExpression__.ts.html +1744 -0
  107. package/coverage/src/concepts/MicroApp__.ts.html +439 -0
  108. package/coverage/src/concepts/Module__.ts.html +9385 -0
  109. package/coverage/src/concepts/MsgTriggerEvent__.ts.html +1072 -0
  110. package/coverage/src/concepts/MsgTriggerLauncher__.ts.html +1045 -0
  111. package/coverage/src/concepts/Namespace__.ts.html +8221 -0
  112. package/coverage/src/concepts/NewComposite__.ts.html +4765 -0
  113. package/coverage/src/concepts/NewList__.ts.html +1702 -0
  114. package/coverage/src/concepts/NewMap__.ts.html +2470 -0
  115. package/coverage/src/concepts/New__.ts.html +289 -0
  116. package/coverage/src/concepts/NullLiteral__.ts.html +352 -0
  117. package/coverage/src/concepts/NumericLiteral__.ts.html +697 -0
  118. package/coverage/src/concepts/OqlQueryComponent__.ts.html +1237 -0
  119. package/coverage/src/concepts/OverriddenLogic__.ts.html +6970 -0
  120. package/coverage/src/concepts/Param__.ts.html +1798 -0
  121. package/coverage/src/concepts/Point__.ts.html +334 -0
  122. package/coverage/src/concepts/ProcessComponent__.ts.html +1717 -0
  123. package/coverage/src/concepts/ProcessElement__.ts.html +6187 -0
  124. package/coverage/src/concepts/ProcessOutcome__.ts.html +355 -0
  125. package/coverage/src/concepts/ProcessOutcomes__.ts.html +355 -0
  126. package/coverage/src/concepts/Process__.ts.html +5071 -0
  127. package/coverage/src/concepts/QueryAggregateExpression__.ts.html +589 -0
  128. package/coverage/src/concepts/QueryFieldExpression__.ts.html +586 -0
  129. package/coverage/src/concepts/QueryFromExpression__.ts.html +937 -0
  130. package/coverage/src/concepts/QueryGroupByExpression__.ts.html +580 -0
  131. package/coverage/src/concepts/QueryJoinExpression__.ts.html +1606 -0
  132. package/coverage/src/concepts/QueryLimitExpression__.ts.html +664 -0
  133. package/coverage/src/concepts/QueryOrderByExpression__.ts.html +706 -0
  134. package/coverage/src/concepts/QuerySelectExpression__.ts.html +1741 -0
  135. package/coverage/src/concepts/Rect__.ts.html +376 -0
  136. package/coverage/src/concepts/Return__.ts.html +1471 -0
  137. package/coverage/src/concepts/Role__.ts.html +604 -0
  138. package/coverage/src/concepts/SelectMembers__.ts.html +1279 -0
  139. package/coverage/src/concepts/Slot__.ts.html +649 -0
  140. package/coverage/src/concepts/SqlQueryComponent__.ts.html +1003 -0
  141. package/coverage/src/concepts/Start__.ts.html +307 -0
  142. package/coverage/src/concepts/StringInterpolation__.ts.html +1156 -0
  143. package/coverage/src/concepts/StringLiteral__.ts.html +508 -0
  144. package/coverage/src/concepts/StructureProperty__.ts.html +1300 -0
  145. package/coverage/src/concepts/Structure__.ts.html +2182 -0
  146. package/coverage/src/concepts/SwitchCase__.ts.html +1204 -0
  147. package/coverage/src/concepts/SwitchStatement__.ts.html +904 -0
  148. package/coverage/src/concepts/Theme__.ts.html +361 -0
  149. package/coverage/src/concepts/Transactional__.ts.html +631 -0
  150. package/coverage/src/concepts/TriggerEvent__.ts.html +1039 -0
  151. package/coverage/src/concepts/TriggerLauncher__.ts.html +778 -0
  152. package/coverage/src/concepts/TypeAnnotation__.ts.html +3832 -0
  153. package/coverage/src/concepts/TypeParam__.ts.html +322 -0
  154. package/coverage/src/concepts/UnaryExpression__.ts.html +730 -0
  155. package/coverage/src/concepts/Unparsed__.ts.html +397 -0
  156. package/coverage/src/concepts/UseComponent__.ts.html +334 -0
  157. package/coverage/src/concepts/ValidationRule__.ts.html +1876 -0
  158. package/coverage/src/concepts/Variable__.ts.html +1705 -0
  159. package/coverage/src/concepts/ViewBlock__.ts.html +355 -0
  160. package/coverage/src/concepts/ViewComponent__.ts.html +4327 -0
  161. package/coverage/src/concepts/ViewElement__.ts.html +8992 -0
  162. package/coverage/src/concepts/View__.ts.html +9019 -0
  163. package/coverage/src/concepts/WhileStatement__.ts.html +1105 -0
  164. package/coverage/src/concepts/basics/stdlib/index.html +356 -0
  165. package/coverage/src/concepts/basics/stdlib/index.ts.html +208 -0
  166. package/coverage/src/concepts/basics/stdlib/nasl.auth.ts.html +565 -0
  167. package/coverage/src/concepts/basics/stdlib/nasl.browser.ts.html +517 -0
  168. package/coverage/src/concepts/basics/stdlib/nasl.collection.ts.html +226 -0
  169. package/coverage/src/concepts/basics/stdlib/nasl.configuration.ts.html +172 -0
  170. package/coverage/src/concepts/basics/stdlib/nasl.core.ts.html +214 -0
  171. package/coverage/src/concepts/basics/stdlib/nasl.event.ts.html +145 -0
  172. package/coverage/src/concepts/basics/stdlib/nasl.http.ts.html +589 -0
  173. package/coverage/src/concepts/basics/stdlib/nasl.interface.ts.html +214 -0
  174. package/coverage/src/concepts/basics/stdlib/nasl.io.ts.html +229 -0
  175. package/coverage/src/concepts/basics/stdlib/nasl.logging.ts.html +268 -0
  176. package/coverage/src/concepts/basics/stdlib/nasl.process.ts.html +1999 -0
  177. package/coverage/src/concepts/basics/stdlib/nasl.ui.ts.html +3259 -0
  178. package/coverage/src/concepts/basics/stdlib/nasl.util.ts.html +6955 -0
  179. package/coverage/src/concepts/basics/stdlib/nasl.validation.ts.html +1768 -0
  180. package/coverage/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts.html +163 -0
  181. package/coverage/src/concepts/basics/stdlib/timeZone.ts.html +664 -0
  182. package/coverage/src/concepts/basics/types/coreTypeList.ts.html +121 -0
  183. package/coverage/src/concepts/basics/types/index.html +131 -0
  184. package/coverage/src/concepts/basics/types/index.ts.html +160 -0
  185. package/coverage/src/concepts/index.html +1976 -0
  186. package/coverage/src/concepts/index.ts.html +103 -0
  187. package/coverage/src/concepts/index__.ts.html +454 -0
  188. package/coverage/src/config.ts.html +325 -0
  189. package/coverage/src/decorators/index.html +131 -0
  190. package/coverage/src/decorators/index.ts.html +583 -0
  191. package/coverage/src/decorators/promise.ts.html +169 -0
  192. package/coverage/src/eventBus.ts.html +100 -0
  193. package/coverage/src/generator/compileComponent.ts.html +142 -0
  194. package/coverage/src/generator/genBundleFiles.ts.html +1828 -0
  195. package/coverage/src/generator/genHash.ts.html +124 -0
  196. package/coverage/src/generator/genMetaData.ts.html +1084 -0
  197. package/coverage/src/generator/genReleaseBody.ts.html +1282 -0
  198. package/coverage/src/generator/icestark.ts.html +220 -0
  199. package/coverage/src/generator/index.html +266 -0
  200. package/coverage/src/generator/index.ts.html +106 -0
  201. package/coverage/src/generator/microApp.ts.html +172 -0
  202. package/coverage/src/generator/permission.ts.html +1036 -0
  203. package/coverage/src/generator/qiankun.ts.html +232 -0
  204. package/coverage/src/generator/styleReplacer.ts.html +199 -0
  205. package/coverage/src/index.html +146 -0
  206. package/coverage/src/index.ts.html +124 -0
  207. package/coverage/src/manager/diagnostic.ts.html +442 -0
  208. package/coverage/src/manager/index.html +131 -0
  209. package/coverage/src/manager/stepRecorder.ts.html +457 -0
  210. package/coverage/src/natural/genNaturalTS.ts.html +355 -0
  211. package/coverage/src/natural/index.html +161 -0
  212. package/coverage/src/natural/index.ts.html +91 -0
  213. package/coverage/src/natural/naslStdlibMap.ts.html +157 -0
  214. package/coverage/src/natural/transformTSCode.ts.html +2707 -0
  215. package/coverage/src/sentry/index.html +116 -0
  216. package/coverage/src/sentry/index.ts.html +676 -0
  217. package/coverage/src/server/createUiTs.ts.html +919 -0
  218. package/coverage/src/server/entity2LogicNamespace.ts.html +1294 -0
  219. package/coverage/src/server/event.js.html +526 -0
  220. package/coverage/src/server/extendBaseNode.ts.html +1762 -0
  221. package/coverage/src/server/formatTsUtils.ts.html +2689 -0
  222. package/coverage/src/server/getConnector.ts.html +316 -0
  223. package/coverage/src/server/getExtensionModules.ts.html +178 -0
  224. package/coverage/src/server/getFunctions.ts.html +133 -0
  225. package/coverage/src/server/getInterfaces.ts.html +229 -0
  226. package/coverage/src/server/getLogging.ts.html +100 -0
  227. package/coverage/src/server/getLogics.ts.html +1363 -0
  228. package/coverage/src/server/getMemberIdentifier.ts.html +1606 -0
  229. package/coverage/src/server/getProcessComponents.ts.html +112 -0
  230. package/coverage/src/server/getProcesses.ts.html +2023 -0
  231. package/coverage/src/server/getValidates.ts.html +115 -0
  232. package/coverage/src/server/index.html +401 -0
  233. package/coverage/src/server/index.ts.html +229 -0
  234. package/coverage/src/server/naslServer.ts.html +14356 -0
  235. package/coverage/src/server/naslStdlibMap.ts.html +241 -0
  236. package/coverage/src/server/process2LogicNamespace.ts.html +454 -0
  237. package/coverage/src/server/translator.ts.html +2566 -0
  238. package/coverage/src/service/creator/add.configs.js.html +397 -0
  239. package/coverage/src/service/creator/errHandles.js.html +304 -0
  240. package/coverage/src/service/creator/index.html +146 -0
  241. package/coverage/src/service/creator/index.js.html +352 -0
  242. package/coverage/src/service/datasource/api.js.html +118 -0
  243. package/coverage/src/service/datasource/index.html +131 -0
  244. package/coverage/src/service/datasource/index.js.html +103 -0
  245. package/coverage/src/service/logic/api.js.html +109 -0
  246. package/coverage/src/service/logic/index.html +131 -0
  247. package/coverage/src/service/logic/index.js.html +103 -0
  248. package/coverage/src/service/storage/api.js.html +202 -0
  249. package/coverage/src/service/storage/index.html +206 -0
  250. package/coverage/src/service/storage/index.ts.html +103 -0
  251. package/coverage/src/service/storage/init.ts.html +3721 -0
  252. package/coverage/src/service/storage/jsoner.ts.html +502 -0
  253. package/coverage/src/service/storage/map.ts.html +256 -0
  254. package/coverage/src/service/storage/service.ts.html +331 -0
  255. package/coverage/src/service/storage/storagePoint.ts.html +304 -0
  256. package/coverage/src/templator/genCallComponentLogic.ts.html +163 -0
  257. package/coverage/src/templator/genCreateBlock.ts.html +1093 -0
  258. package/coverage/src/templator/genCurdEditMultipleKeyBlock.ts.html +1609 -0
  259. package/coverage/src/templator/genCurdMultipleKeyBlock.ts.html +2254 -0
  260. package/coverage/src/templator/genEditTableBlock.ts.html +1021 -0
  261. package/coverage/src/templator/genEnumSelectBlock.ts.html +178 -0
  262. package/coverage/src/templator/genGetBlock.ts.html +451 -0
  263. package/coverage/src/templator/genGridViewBlock.ts.html +1114 -0
  264. package/coverage/src/templator/genListViewBlock.ts.html +475 -0
  265. package/coverage/src/templator/genQueryComponent.ts.html +1207 -0
  266. package/coverage/src/templator/genSelectBlock.ts.html +1243 -0
  267. package/coverage/src/templator/genTableBlock.ts.html +973 -0
  268. package/coverage/src/templator/genUpdateBlock.ts.html +1192 -0
  269. package/coverage/src/templator/index.html +326 -0
  270. package/coverage/src/templator/index.ts.html +154 -0
  271. package/coverage/src/templator/utils.ts.html +1861 -0
  272. package/coverage/src/translator/constant.ts.html +106 -0
  273. package/coverage/src/translator/index.html +146 -0
  274. package/coverage/src/translator/index.ts.html +94 -0
  275. package/coverage/src/translator/utils.ts.html +436 -0
  276. package/coverage/src/utils/cookie.ts.html +265 -0
  277. package/coverage/src/utils/env.ts.html +91 -0
  278. package/coverage/src/utils/index.html +236 -0
  279. package/coverage/src/utils/index.ts.html +694 -0
  280. package/coverage/src/utils/logger.ts.html +145 -0
  281. package/coverage/src/utils/sortTsString.ts.html +187 -0
  282. package/coverage/src/utils/string.ts.html +400 -0
  283. package/coverage/src/utils/time-slicing.ts.html +418 -0
  284. package/coverage/src/utils/traverse.ts.html +568 -0
  285. package/coverage/src/utils/window.ts.html +112 -0
  286. package/out/bak/translator.js +18 -99
  287. package/out/bak/translator.js.map +1 -1
  288. package/out/common/Command.js +1 -1
  289. package/out/common/Command.js.map +1 -1
  290. package/out/concepts/Argument__.js +2 -7
  291. package/out/concepts/Argument__.js.map +1 -1
  292. package/out/concepts/Assignment__.js +3 -20
  293. package/out/concepts/Assignment__.js.map +1 -1
  294. package/out/concepts/BackendVariable__.js +2 -24
  295. package/out/concepts/BackendVariable__.js.map +1 -1
  296. package/out/concepts/BinaryExpression__.js +13 -40
  297. package/out/concepts/BinaryExpression__.js.map +1 -1
  298. package/out/concepts/BindAttribute__.d.ts +0 -6
  299. package/out/concepts/BindAttribute__.js +11 -105
  300. package/out/concepts/BindAttribute__.js.map +1 -1
  301. package/out/concepts/CallLogic__.js +21 -7
  302. package/out/concepts/CallLogic__.js.map +1 -1
  303. package/out/concepts/Identifier__.js +0 -3
  304. package/out/concepts/Identifier__.js.map +1 -1
  305. package/out/concepts/JSBlock__.js +0 -56
  306. package/out/concepts/JSBlock__.js.map +1 -1
  307. package/out/concepts/Match__.js +1 -1
  308. package/out/concepts/Match__.js.map +1 -1
  309. package/out/concepts/NumericLiteral__.js +1 -2
  310. package/out/concepts/NumericLiteral__.js.map +1 -1
  311. package/out/concepts/Param__.js +2 -24
  312. package/out/concepts/Param__.js.map +1 -1
  313. package/out/concepts/Return__.js +2 -24
  314. package/out/concepts/Return__.js.map +1 -1
  315. package/out/concepts/Variable__.js +2 -24
  316. package/out/concepts/Variable__.js.map +1 -1
  317. package/out/concepts/ViewElement__.d.ts +0 -1
  318. package/out/concepts/ViewElement__.js +4 -75
  319. package/out/concepts/ViewElement__.js.map +1 -1
  320. package/out/concepts/View__.d.ts +0 -2
  321. package/out/concepts/View__.js +3 -12
  322. package/out/concepts/View__.js.map +1 -1
  323. package/out/templator/genCreateBlock.js +5 -9
  324. package/out/templator/genCreateBlock.js.map +1 -1
  325. package/out/templator/genCurdEditMultipleKeyBlock.js +9 -15
  326. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  327. package/out/templator/genCurdMultipleKeyBlock.js +5 -7
  328. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  329. package/out/templator/genEditTableBlock.js +2 -3
  330. package/out/templator/genEditTableBlock.js.map +1 -1
  331. package/out/templator/genUpdateBlock.js +9 -12
  332. package/out/templator/genUpdateBlock.js.map +1 -1
  333. package/out/templator/utils.js.map +1 -1
  334. package/package.json +1 -1
  335. package/sandbox/stdlib/nasl.core.ts +0 -2
  336. package/sandbox/stdlib/nasl.util.ts +1 -1
  337. package/src/bak/translator.js +20 -99
  338. package/src/common/Command.ts +1 -1
  339. package/src/concepts/Argument__.ts +2 -7
  340. package/src/concepts/Assignment__.ts +13 -31
  341. package/src/concepts/BackendVariable__.ts +3 -22
  342. package/src/concepts/BinaryExpression__.ts +13 -39
  343. package/src/concepts/BindAttribute__.ts +11 -108
  344. package/src/concepts/CallLogic__.ts +12 -0
  345. package/src/concepts/Identifier__.ts +1 -4
  346. package/src/concepts/JSBlock__.ts +0 -58
  347. package/src/concepts/Match__.ts +1 -1
  348. package/src/concepts/NumericLiteral__.ts +1 -2
  349. package/src/concepts/Param__.ts +2 -24
  350. package/src/concepts/Return__.ts +3 -23
  351. package/src/concepts/Variable__.ts +3 -23
  352. package/src/concepts/ViewElement__.ts +8 -83
  353. package/src/concepts/View__.ts +18 -32
  354. package/src/templator/genCreateBlock.ts +5 -9
  355. package/src/templator/genCurdEditMultipleKeyBlock.ts +10 -16
  356. package/src/templator/genCurdMultipleKeyBlock.ts +8 -11
  357. package/src/templator/genEditTableBlock.ts +2 -4
  358. package/src/templator/genUpdateBlock.ts +12 -15
  359. package/src/templator/utils.ts +7 -8
  360. package/test/concepts/anonymous-function/__snapshots__/toJS.spec.ts.snap +1 -1
  361. package/test/concepts/assignment/__snapshots__/toJS.spec.ts.snap +1 -1
  362. package/test/concepts/batch-assignment/__snapshots__/toJS.spec.ts.snap +2 -2
  363. package/test/concepts/binary-expression/__snapshots__/toJS.spec.ts.snap +2 -3
  364. package/test/concepts/call-interface/__snapshots__/toJS.spec.ts.snap +2 -2
  365. package/test/concepts/call-logic/__snapshots__/toJS.spec.ts.snap +3 -3
  366. package/test/concepts/match/__snapshots__/toJS.spec.ts.snap +1 -1
  367. package/test/concepts/numeric-literal/__snapshots__/toJS.spec.ts.snap +1 -1
  368. package/test/concepts/validation-rule/__snapshots__/toJS.spec.ts.snap +3 -3
  369. package/test/concepts/view-element/__snapshots__/toVue.spec.ts.snap +0 -2
@@ -0,0 +1,1762 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/concepts/FrontendLibrary__.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../prettify.css" />
9
+ <link rel="stylesheet" href="../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">src/concepts</a> FrontendLibrary__.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">10.79% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>15/139</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">0% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/72</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">0% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/29</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">9.92% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>13/131</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line low'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a>
323
+ <a name='L258'></a><a href='#L258'>258</a>
324
+ <a name='L259'></a><a href='#L259'>259</a>
325
+ <a name='L260'></a><a href='#L260'>260</a>
326
+ <a name='L261'></a><a href='#L261'>261</a>
327
+ <a name='L262'></a><a href='#L262'>262</a>
328
+ <a name='L263'></a><a href='#L263'>263</a>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a>
331
+ <a name='L266'></a><a href='#L266'>266</a>
332
+ <a name='L267'></a><a href='#L267'>267</a>
333
+ <a name='L268'></a><a href='#L268'>268</a>
334
+ <a name='L269'></a><a href='#L269'>269</a>
335
+ <a name='L270'></a><a href='#L270'>270</a>
336
+ <a name='L271'></a><a href='#L271'>271</a>
337
+ <a name='L272'></a><a href='#L272'>272</a>
338
+ <a name='L273'></a><a href='#L273'>273</a>
339
+ <a name='L274'></a><a href='#L274'>274</a>
340
+ <a name='L275'></a><a href='#L275'>275</a>
341
+ <a name='L276'></a><a href='#L276'>276</a>
342
+ <a name='L277'></a><a href='#L277'>277</a>
343
+ <a name='L278'></a><a href='#L278'>278</a>
344
+ <a name='L279'></a><a href='#L279'>279</a>
345
+ <a name='L280'></a><a href='#L280'>280</a>
346
+ <a name='L281'></a><a href='#L281'>281</a>
347
+ <a name='L282'></a><a href='#L282'>282</a>
348
+ <a name='L283'></a><a href='#L283'>283</a>
349
+ <a name='L284'></a><a href='#L284'>284</a>
350
+ <a name='L285'></a><a href='#L285'>285</a>
351
+ <a name='L286'></a><a href='#L286'>286</a>
352
+ <a name='L287'></a><a href='#L287'>287</a>
353
+ <a name='L288'></a><a href='#L288'>288</a>
354
+ <a name='L289'></a><a href='#L289'>289</a>
355
+ <a name='L290'></a><a href='#L290'>290</a>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a>
358
+ <a name='L293'></a><a href='#L293'>293</a>
359
+ <a name='L294'></a><a href='#L294'>294</a>
360
+ <a name='L295'></a><a href='#L295'>295</a>
361
+ <a name='L296'></a><a href='#L296'>296</a>
362
+ <a name='L297'></a><a href='#L297'>297</a>
363
+ <a name='L298'></a><a href='#L298'>298</a>
364
+ <a name='L299'></a><a href='#L299'>299</a>
365
+ <a name='L300'></a><a href='#L300'>300</a>
366
+ <a name='L301'></a><a href='#L301'>301</a>
367
+ <a name='L302'></a><a href='#L302'>302</a>
368
+ <a name='L303'></a><a href='#L303'>303</a>
369
+ <a name='L304'></a><a href='#L304'>304</a>
370
+ <a name='L305'></a><a href='#L305'>305</a>
371
+ <a name='L306'></a><a href='#L306'>306</a>
372
+ <a name='L307'></a><a href='#L307'>307</a>
373
+ <a name='L308'></a><a href='#L308'>308</a>
374
+ <a name='L309'></a><a href='#L309'>309</a>
375
+ <a name='L310'></a><a href='#L310'>310</a>
376
+ <a name='L311'></a><a href='#L311'>311</a>
377
+ <a name='L312'></a><a href='#L312'>312</a>
378
+ <a name='L313'></a><a href='#L313'>313</a>
379
+ <a name='L314'></a><a href='#L314'>314</a>
380
+ <a name='L315'></a><a href='#L315'>315</a>
381
+ <a name='L316'></a><a href='#L316'>316</a>
382
+ <a name='L317'></a><a href='#L317'>317</a>
383
+ <a name='L318'></a><a href='#L318'>318</a>
384
+ <a name='L319'></a><a href='#L319'>319</a>
385
+ <a name='L320'></a><a href='#L320'>320</a>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a>
403
+ <a name='L338'></a><a href='#L338'>338</a>
404
+ <a name='L339'></a><a href='#L339'>339</a>
405
+ <a name='L340'></a><a href='#L340'>340</a>
406
+ <a name='L341'></a><a href='#L341'>341</a>
407
+ <a name='L342'></a><a href='#L342'>342</a>
408
+ <a name='L343'></a><a href='#L343'>343</a>
409
+ <a name='L344'></a><a href='#L344'>344</a>
410
+ <a name='L345'></a><a href='#L345'>345</a>
411
+ <a name='L346'></a><a href='#L346'>346</a>
412
+ <a name='L347'></a><a href='#L347'>347</a>
413
+ <a name='L348'></a><a href='#L348'>348</a>
414
+ <a name='L349'></a><a href='#L349'>349</a>
415
+ <a name='L350'></a><a href='#L350'>350</a>
416
+ <a name='L351'></a><a href='#L351'>351</a>
417
+ <a name='L352'></a><a href='#L352'>352</a>
418
+ <a name='L353'></a><a href='#L353'>353</a>
419
+ <a name='L354'></a><a href='#L354'>354</a>
420
+ <a name='L355'></a><a href='#L355'>355</a>
421
+ <a name='L356'></a><a href='#L356'>356</a>
422
+ <a name='L357'></a><a href='#L357'>357</a>
423
+ <a name='L358'></a><a href='#L358'>358</a>
424
+ <a name='L359'></a><a href='#L359'>359</a>
425
+ <a name='L360'></a><a href='#L360'>360</a>
426
+ <a name='L361'></a><a href='#L361'>361</a>
427
+ <a name='L362'></a><a href='#L362'>362</a>
428
+ <a name='L363'></a><a href='#L363'>363</a>
429
+ <a name='L364'></a><a href='#L364'>364</a>
430
+ <a name='L365'></a><a href='#L365'>365</a>
431
+ <a name='L366'></a><a href='#L366'>366</a>
432
+ <a name='L367'></a><a href='#L367'>367</a>
433
+ <a name='L368'></a><a href='#L368'>368</a>
434
+ <a name='L369'></a><a href='#L369'>369</a>
435
+ <a name='L370'></a><a href='#L370'>370</a>
436
+ <a name='L371'></a><a href='#L371'>371</a>
437
+ <a name='L372'></a><a href='#L372'>372</a>
438
+ <a name='L373'></a><a href='#L373'>373</a>
439
+ <a name='L374'></a><a href='#L374'>374</a>
440
+ <a name='L375'></a><a href='#L375'>375</a>
441
+ <a name='L376'></a><a href='#L376'>376</a>
442
+ <a name='L377'></a><a href='#L377'>377</a>
443
+ <a name='L378'></a><a href='#L378'>378</a>
444
+ <a name='L379'></a><a href='#L379'>379</a>
445
+ <a name='L380'></a><a href='#L380'>380</a>
446
+ <a name='L381'></a><a href='#L381'>381</a>
447
+ <a name='L382'></a><a href='#L382'>382</a>
448
+ <a name='L383'></a><a href='#L383'>383</a>
449
+ <a name='L384'></a><a href='#L384'>384</a>
450
+ <a name='L385'></a><a href='#L385'>385</a>
451
+ <a name='L386'></a><a href='#L386'>386</a>
452
+ <a name='L387'></a><a href='#L387'>387</a>
453
+ <a name='L388'></a><a href='#L388'>388</a>
454
+ <a name='L389'></a><a href='#L389'>389</a>
455
+ <a name='L390'></a><a href='#L390'>390</a>
456
+ <a name='L391'></a><a href='#L391'>391</a>
457
+ <a name='L392'></a><a href='#L392'>392</a>
458
+ <a name='L393'></a><a href='#L393'>393</a>
459
+ <a name='L394'></a><a href='#L394'>394</a>
460
+ <a name='L395'></a><a href='#L395'>395</a>
461
+ <a name='L396'></a><a href='#L396'>396</a>
462
+ <a name='L397'></a><a href='#L397'>397</a>
463
+ <a name='L398'></a><a href='#L398'>398</a>
464
+ <a name='L399'></a><a href='#L399'>399</a>
465
+ <a name='L400'></a><a href='#L400'>400</a>
466
+ <a name='L401'></a><a href='#L401'>401</a>
467
+ <a name='L402'></a><a href='#L402'>402</a>
468
+ <a name='L403'></a><a href='#L403'>403</a>
469
+ <a name='L404'></a><a href='#L404'>404</a>
470
+ <a name='L405'></a><a href='#L405'>405</a>
471
+ <a name='L406'></a><a href='#L406'>406</a>
472
+ <a name='L407'></a><a href='#L407'>407</a>
473
+ <a name='L408'></a><a href='#L408'>408</a>
474
+ <a name='L409'></a><a href='#L409'>409</a>
475
+ <a name='L410'></a><a href='#L410'>410</a>
476
+ <a name='L411'></a><a href='#L411'>411</a>
477
+ <a name='L412'></a><a href='#L412'>412</a>
478
+ <a name='L413'></a><a href='#L413'>413</a>
479
+ <a name='L414'></a><a href='#L414'>414</a>
480
+ <a name='L415'></a><a href='#L415'>415</a>
481
+ <a name='L416'></a><a href='#L416'>416</a>
482
+ <a name='L417'></a><a href='#L417'>417</a>
483
+ <a name='L418'></a><a href='#L418'>418</a>
484
+ <a name='L419'></a><a href='#L419'>419</a>
485
+ <a name='L420'></a><a href='#L420'>420</a>
486
+ <a name='L421'></a><a href='#L421'>421</a>
487
+ <a name='L422'></a><a href='#L422'>422</a>
488
+ <a name='L423'></a><a href='#L423'>423</a>
489
+ <a name='L424'></a><a href='#L424'>424</a>
490
+ <a name='L425'></a><a href='#L425'>425</a>
491
+ <a name='L426'></a><a href='#L426'>426</a>
492
+ <a name='L427'></a><a href='#L427'>427</a>
493
+ <a name='L428'></a><a href='#L428'>428</a>
494
+ <a name='L429'></a><a href='#L429'>429</a>
495
+ <a name='L430'></a><a href='#L430'>430</a>
496
+ <a name='L431'></a><a href='#L431'>431</a>
497
+ <a name='L432'></a><a href='#L432'>432</a>
498
+ <a name='L433'></a><a href='#L433'>433</a>
499
+ <a name='L434'></a><a href='#L434'>434</a>
500
+ <a name='L435'></a><a href='#L435'>435</a>
501
+ <a name='L436'></a><a href='#L436'>436</a>
502
+ <a name='L437'></a><a href='#L437'>437</a>
503
+ <a name='L438'></a><a href='#L438'>438</a>
504
+ <a name='L439'></a><a href='#L439'>439</a>
505
+ <a name='L440'></a><a href='#L440'>440</a>
506
+ <a name='L441'></a><a href='#L441'>441</a>
507
+ <a name='L442'></a><a href='#L442'>442</a>
508
+ <a name='L443'></a><a href='#L443'>443</a>
509
+ <a name='L444'></a><a href='#L444'>444</a>
510
+ <a name='L445'></a><a href='#L445'>445</a>
511
+ <a name='L446'></a><a href='#L446'>446</a>
512
+ <a name='L447'></a><a href='#L447'>447</a>
513
+ <a name='L448'></a><a href='#L448'>448</a>
514
+ <a name='L449'></a><a href='#L449'>449</a>
515
+ <a name='L450'></a><a href='#L450'>450</a>
516
+ <a name='L451'></a><a href='#L451'>451</a>
517
+ <a name='L452'></a><a href='#L452'>452</a>
518
+ <a name='L453'></a><a href='#L453'>453</a>
519
+ <a name='L454'></a><a href='#L454'>454</a>
520
+ <a name='L455'></a><a href='#L455'>455</a>
521
+ <a name='L456'></a><a href='#L456'>456</a>
522
+ <a name='L457'></a><a href='#L457'>457</a>
523
+ <a name='L458'></a><a href='#L458'>458</a>
524
+ <a name='L459'></a><a href='#L459'>459</a>
525
+ <a name='L460'></a><a href='#L460'>460</a>
526
+ <a name='L461'></a><a href='#L461'>461</a>
527
+ <a name='L462'></a><a href='#L462'>462</a>
528
+ <a name='L463'></a><a href='#L463'>463</a>
529
+ <a name='L464'></a><a href='#L464'>464</a>
530
+ <a name='L465'></a><a href='#L465'>465</a>
531
+ <a name='L466'></a><a href='#L466'>466</a>
532
+ <a name='L467'></a><a href='#L467'>467</a>
533
+ <a name='L468'></a><a href='#L468'>468</a>
534
+ <a name='L469'></a><a href='#L469'>469</a>
535
+ <a name='L470'></a><a href='#L470'>470</a>
536
+ <a name='L471'></a><a href='#L471'>471</a>
537
+ <a name='L472'></a><a href='#L472'>472</a>
538
+ <a name='L473'></a><a href='#L473'>473</a>
539
+ <a name='L474'></a><a href='#L474'>474</a>
540
+ <a name='L475'></a><a href='#L475'>475</a>
541
+ <a name='L476'></a><a href='#L476'>476</a>
542
+ <a name='L477'></a><a href='#L477'>477</a>
543
+ <a name='L478'></a><a href='#L478'>478</a>
544
+ <a name='L479'></a><a href='#L479'>479</a>
545
+ <a name='L480'></a><a href='#L480'>480</a>
546
+ <a name='L481'></a><a href='#L481'>481</a>
547
+ <a name='L482'></a><a href='#L482'>482</a>
548
+ <a name='L483'></a><a href='#L483'>483</a>
549
+ <a name='L484'></a><a href='#L484'>484</a>
550
+ <a name='L485'></a><a href='#L485'>485</a>
551
+ <a name='L486'></a><a href='#L486'>486</a>
552
+ <a name='L487'></a><a href='#L487'>487</a>
553
+ <a name='L488'></a><a href='#L488'>488</a>
554
+ <a name='L489'></a><a href='#L489'>489</a>
555
+ <a name='L490'></a><a href='#L490'>490</a>
556
+ <a name='L491'></a><a href='#L491'>491</a>
557
+ <a name='L492'></a><a href='#L492'>492</a>
558
+ <a name='L493'></a><a href='#L493'>493</a>
559
+ <a name='L494'></a><a href='#L494'>494</a>
560
+ <a name='L495'></a><a href='#L495'>495</a>
561
+ <a name='L496'></a><a href='#L496'>496</a>
562
+ <a name='L497'></a><a href='#L497'>497</a>
563
+ <a name='L498'></a><a href='#L498'>498</a>
564
+ <a name='L499'></a><a href='#L499'>499</a>
565
+ <a name='L500'></a><a href='#L500'>500</a>
566
+ <a name='L501'></a><a href='#L501'>501</a>
567
+ <a name='L502'></a><a href='#L502'>502</a>
568
+ <a name='L503'></a><a href='#L503'>503</a>
569
+ <a name='L504'></a><a href='#L504'>504</a>
570
+ <a name='L505'></a><a href='#L505'>505</a>
571
+ <a name='L506'></a><a href='#L506'>506</a>
572
+ <a name='L507'></a><a href='#L507'>507</a>
573
+ <a name='L508'></a><a href='#L508'>508</a>
574
+ <a name='L509'></a><a href='#L509'>509</a>
575
+ <a name='L510'></a><a href='#L510'>510</a>
576
+ <a name='L511'></a><a href='#L511'>511</a>
577
+ <a name='L512'></a><a href='#L512'>512</a>
578
+ <a name='L513'></a><a href='#L513'>513</a>
579
+ <a name='L514'></a><a href='#L514'>514</a>
580
+ <a name='L515'></a><a href='#L515'>515</a>
581
+ <a name='L516'></a><a href='#L516'>516</a>
582
+ <a name='L517'></a><a href='#L517'>517</a>
583
+ <a name='L518'></a><a href='#L518'>518</a>
584
+ <a name='L519'></a><a href='#L519'>519</a>
585
+ <a name='L520'></a><a href='#L520'>520</a>
586
+ <a name='L521'></a><a href='#L521'>521</a>
587
+ <a name='L522'></a><a href='#L522'>522</a>
588
+ <a name='L523'></a><a href='#L523'>523</a>
589
+ <a name='L524'></a><a href='#L524'>524</a>
590
+ <a name='L525'></a><a href='#L525'>525</a>
591
+ <a name='L526'></a><a href='#L526'>526</a>
592
+ <a name='L527'></a><a href='#L527'>527</a>
593
+ <a name='L528'></a><a href='#L528'>528</a>
594
+ <a name='L529'></a><a href='#L529'>529</a>
595
+ <a name='L530'></a><a href='#L530'>530</a>
596
+ <a name='L531'></a><a href='#L531'>531</a>
597
+ <a name='L532'></a><a href='#L532'>532</a>
598
+ <a name='L533'></a><a href='#L533'>533</a>
599
+ <a name='L534'></a><a href='#L534'>534</a>
600
+ <a name='L535'></a><a href='#L535'>535</a>
601
+ <a name='L536'></a><a href='#L536'>536</a>
602
+ <a name='L537'></a><a href='#L537'>537</a>
603
+ <a name='L538'></a><a href='#L538'>538</a>
604
+ <a name='L539'></a><a href='#L539'>539</a>
605
+ <a name='L540'></a><a href='#L540'>540</a>
606
+ <a name='L541'></a><a href='#L541'>541</a>
607
+ <a name='L542'></a><a href='#L542'>542</a>
608
+ <a name='L543'></a><a href='#L543'>543</a>
609
+ <a name='L544'></a><a href='#L544'>544</a>
610
+ <a name='L545'></a><a href='#L545'>545</a>
611
+ <a name='L546'></a><a href='#L546'>546</a>
612
+ <a name='L547'></a><a href='#L547'>547</a>
613
+ <a name='L548'></a><a href='#L548'>548</a>
614
+ <a name='L549'></a><a href='#L549'>549</a>
615
+ <a name='L550'></a><a href='#L550'>550</a>
616
+ <a name='L551'></a><a href='#L551'>551</a>
617
+ <a name='L552'></a><a href='#L552'>552</a>
618
+ <a name='L553'></a><a href='#L553'>553</a>
619
+ <a name='L554'></a><a href='#L554'>554</a>
620
+ <a name='L555'></a><a href='#L555'>555</a>
621
+ <a name='L556'></a><a href='#L556'>556</a>
622
+ <a name='L557'></a><a href='#L557'>557</a>
623
+ <a name='L558'></a><a href='#L558'>558</a>
624
+ <a name='L559'></a><a href='#L559'>559</a>
625
+ <a name='L560'></a><a href='#L560'>560</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
626
+ <span class="cline-any cline-neutral">&nbsp;</span>
627
+ <span class="cline-any cline-neutral">&nbsp;</span>
628
+ <span class="cline-any cline-neutral">&nbsp;</span>
629
+ <span class="cline-any cline-neutral">&nbsp;</span>
630
+ <span class="cline-any cline-neutral">&nbsp;</span>
631
+ <span class="cline-any cline-neutral">&nbsp;</span>
632
+ <span class="cline-any cline-yes">1x</span>
633
+ <span class="cline-any cline-neutral">&nbsp;</span>
634
+ <span class="cline-any cline-yes">1x</span>
635
+ <span class="cline-any cline-neutral">&nbsp;</span>
636
+ <span class="cline-any cline-yes">1x</span>
637
+ <span class="cline-any cline-yes">1x</span>
638
+ <span class="cline-any cline-yes">1x</span>
639
+ <span class="cline-any cline-neutral">&nbsp;</span>
640
+ <span class="cline-any cline-neutral">&nbsp;</span>
641
+ <span class="cline-any cline-neutral">&nbsp;</span>
642
+ <span class="cline-any cline-neutral">&nbsp;</span>
643
+ <span class="cline-any cline-neutral">&nbsp;</span>
644
+ <span class="cline-any cline-neutral">&nbsp;</span>
645
+ <span class="cline-any cline-neutral">&nbsp;</span>
646
+ <span class="cline-any cline-neutral">&nbsp;</span>
647
+ <span class="cline-any cline-neutral">&nbsp;</span>
648
+ <span class="cline-any cline-yes">1x</span>
649
+ <span class="cline-any cline-neutral">&nbsp;</span>
650
+ <span class="cline-any cline-yes">1x</span>
651
+ <span class="cline-any cline-neutral">&nbsp;</span>
652
+ <span class="cline-any cline-neutral">&nbsp;</span>
653
+ <span class="cline-any cline-neutral">&nbsp;</span>
654
+ <span class="cline-any cline-neutral">&nbsp;</span>
655
+ <span class="cline-any cline-neutral">&nbsp;</span>
656
+ <span class="cline-any cline-neutral">&nbsp;</span>
657
+ <span class="cline-any cline-yes">1x</span>
658
+ <span class="cline-any cline-neutral">&nbsp;</span>
659
+ <span class="cline-any cline-neutral">&nbsp;</span>
660
+ <span class="cline-any cline-neutral">&nbsp;</span>
661
+ <span class="cline-any cline-neutral">&nbsp;</span>
662
+ <span class="cline-any cline-neutral">&nbsp;</span>
663
+ <span class="cline-any cline-neutral">&nbsp;</span>
664
+ <span class="cline-any cline-yes">1x</span>
665
+ <span class="cline-any cline-neutral">&nbsp;</span>
666
+ <span class="cline-any cline-neutral">&nbsp;</span>
667
+ <span class="cline-any cline-neutral">&nbsp;</span>
668
+ <span class="cline-any cline-neutral">&nbsp;</span>
669
+ <span class="cline-any cline-neutral">&nbsp;</span>
670
+ <span class="cline-any cline-neutral">&nbsp;</span>
671
+ <span class="cline-any cline-yes">1x</span>
672
+ <span class="cline-any cline-neutral">&nbsp;</span>
673
+ <span class="cline-any cline-neutral">&nbsp;</span>
674
+ <span class="cline-any cline-neutral">&nbsp;</span>
675
+ <span class="cline-any cline-neutral">&nbsp;</span>
676
+ <span class="cline-any cline-neutral">&nbsp;</span>
677
+ <span class="cline-any cline-neutral">&nbsp;</span>
678
+ <span class="cline-any cline-neutral">&nbsp;</span>
679
+ <span class="cline-any cline-neutral">&nbsp;</span>
680
+ <span class="cline-any cline-neutral">&nbsp;</span>
681
+ <span class="cline-any cline-yes">1x</span>
682
+ <span class="cline-any cline-neutral">&nbsp;</span>
683
+ <span class="cline-any cline-neutral">&nbsp;</span>
684
+ <span class="cline-any cline-neutral">&nbsp;</span>
685
+ <span class="cline-any cline-neutral">&nbsp;</span>
686
+ <span class="cline-any cline-neutral">&nbsp;</span>
687
+ <span class="cline-any cline-neutral">&nbsp;</span>
688
+ <span class="cline-any cline-neutral">&nbsp;</span>
689
+ <span class="cline-any cline-neutral">&nbsp;</span>
690
+ <span class="cline-any cline-neutral">&nbsp;</span>
691
+ <span class="cline-any cline-yes">1x</span>
692
+ <span class="cline-any cline-neutral">&nbsp;</span>
693
+ <span class="cline-any cline-neutral">&nbsp;</span>
694
+ <span class="cline-any cline-neutral">&nbsp;</span>
695
+ <span class="cline-any cline-neutral">&nbsp;</span>
696
+ <span class="cline-any cline-neutral">&nbsp;</span>
697
+ <span class="cline-any cline-no">&nbsp;</span>
698
+ <span class="cline-any cline-neutral">&nbsp;</span>
699
+ <span class="cline-any cline-neutral">&nbsp;</span>
700
+ <span class="cline-any cline-neutral">&nbsp;</span>
701
+ <span class="cline-any cline-neutral">&nbsp;</span>
702
+ <span class="cline-any cline-neutral">&nbsp;</span>
703
+ <span class="cline-any cline-no">&nbsp;</span>
704
+ <span class="cline-any cline-neutral">&nbsp;</span>
705
+ <span class="cline-any cline-neutral">&nbsp;</span>
706
+ <span class="cline-any cline-neutral">&nbsp;</span>
707
+ <span class="cline-any cline-neutral">&nbsp;</span>
708
+ <span class="cline-any cline-neutral">&nbsp;</span>
709
+ <span class="cline-any cline-neutral">&nbsp;</span>
710
+ <span class="cline-any cline-no">&nbsp;</span>
711
+ <span class="cline-any cline-no">&nbsp;</span>
712
+ <span class="cline-any cline-no">&nbsp;</span>
713
+ <span class="cline-any cline-neutral">&nbsp;</span>
714
+ <span class="cline-any cline-neutral">&nbsp;</span>
715
+ <span class="cline-any cline-neutral">&nbsp;</span>
716
+ <span class="cline-any cline-no">&nbsp;</span>
717
+ <span class="cline-any cline-neutral">&nbsp;</span>
718
+ <span class="cline-any cline-neutral">&nbsp;</span>
719
+ <span class="cline-any cline-neutral">&nbsp;</span>
720
+ <span class="cline-any cline-neutral">&nbsp;</span>
721
+ <span class="cline-any cline-neutral">&nbsp;</span>
722
+ <span class="cline-any cline-neutral">&nbsp;</span>
723
+ <span class="cline-any cline-neutral">&nbsp;</span>
724
+ <span class="cline-any cline-no">&nbsp;</span>
725
+ <span class="cline-any cline-no">&nbsp;</span>
726
+ <span class="cline-any cline-no">&nbsp;</span>
727
+ <span class="cline-any cline-neutral">&nbsp;</span>
728
+ <span class="cline-any cline-no">&nbsp;</span>
729
+ <span class="cline-any cline-neutral">&nbsp;</span>
730
+ <span class="cline-any cline-neutral">&nbsp;</span>
731
+ <span class="cline-any cline-neutral">&nbsp;</span>
732
+ <span class="cline-any cline-no">&nbsp;</span>
733
+ <span class="cline-any cline-no">&nbsp;</span>
734
+ <span class="cline-any cline-neutral">&nbsp;</span>
735
+ <span class="cline-any cline-neutral">&nbsp;</span>
736
+ <span class="cline-any cline-no">&nbsp;</span>
737
+ <span class="cline-any cline-neutral">&nbsp;</span>
738
+ <span class="cline-any cline-neutral">&nbsp;</span>
739
+ <span class="cline-any cline-neutral">&nbsp;</span>
740
+ <span class="cline-any cline-neutral">&nbsp;</span>
741
+ <span class="cline-any cline-neutral">&nbsp;</span>
742
+ <span class="cline-any cline-neutral">&nbsp;</span>
743
+ <span class="cline-any cline-neutral">&nbsp;</span>
744
+ <span class="cline-any cline-neutral">&nbsp;</span>
745
+ <span class="cline-any cline-neutral">&nbsp;</span>
746
+ <span class="cline-any cline-neutral">&nbsp;</span>
747
+ <span class="cline-any cline-neutral">&nbsp;</span>
748
+ <span class="cline-any cline-neutral">&nbsp;</span>
749
+ <span class="cline-any cline-neutral">&nbsp;</span>
750
+ <span class="cline-any cline-neutral">&nbsp;</span>
751
+ <span class="cline-any cline-neutral">&nbsp;</span>
752
+ <span class="cline-any cline-neutral">&nbsp;</span>
753
+ <span class="cline-any cline-neutral">&nbsp;</span>
754
+ <span class="cline-any cline-neutral">&nbsp;</span>
755
+ <span class="cline-any cline-neutral">&nbsp;</span>
756
+ <span class="cline-any cline-neutral">&nbsp;</span>
757
+ <span class="cline-any cline-neutral">&nbsp;</span>
758
+ <span class="cline-any cline-neutral">&nbsp;</span>
759
+ <span class="cline-any cline-neutral">&nbsp;</span>
760
+ <span class="cline-any cline-neutral">&nbsp;</span>
761
+ <span class="cline-any cline-no">&nbsp;</span>
762
+ <span class="cline-any cline-no">&nbsp;</span>
763
+ <span class="cline-any cline-neutral">&nbsp;</span>
764
+ <span class="cline-any cline-no">&nbsp;</span>
765
+ <span class="cline-any cline-no">&nbsp;</span>
766
+ <span class="cline-any cline-neutral">&nbsp;</span>
767
+ <span class="cline-any cline-neutral">&nbsp;</span>
768
+ <span class="cline-any cline-neutral">&nbsp;</span>
769
+ <span class="cline-any cline-neutral">&nbsp;</span>
770
+ <span class="cline-any cline-neutral">&nbsp;</span>
771
+ <span class="cline-any cline-neutral">&nbsp;</span>
772
+ <span class="cline-any cline-neutral">&nbsp;</span>
773
+ <span class="cline-any cline-no">&nbsp;</span>
774
+ <span class="cline-any cline-no">&nbsp;</span>
775
+ <span class="cline-any cline-neutral">&nbsp;</span>
776
+ <span class="cline-any cline-neutral">&nbsp;</span>
777
+ <span class="cline-any cline-neutral">&nbsp;</span>
778
+ <span class="cline-any cline-neutral">&nbsp;</span>
779
+ <span class="cline-any cline-neutral">&nbsp;</span>
780
+ <span class="cline-any cline-neutral">&nbsp;</span>
781
+ <span class="cline-any cline-neutral">&nbsp;</span>
782
+ <span class="cline-any cline-no">&nbsp;</span>
783
+ <span class="cline-any cline-no">&nbsp;</span>
784
+ <span class="cline-any cline-no">&nbsp;</span>
785
+ <span class="cline-any cline-no">&nbsp;</span>
786
+ <span class="cline-any cline-neutral">&nbsp;</span>
787
+ <span class="cline-any cline-no">&nbsp;</span>
788
+ <span class="cline-any cline-neutral">&nbsp;</span>
789
+ <span class="cline-any cline-neutral">&nbsp;</span>
790
+ <span class="cline-any cline-neutral">&nbsp;</span>
791
+ <span class="cline-any cline-neutral">&nbsp;</span>
792
+ <span class="cline-any cline-neutral">&nbsp;</span>
793
+ <span class="cline-any cline-neutral">&nbsp;</span>
794
+ <span class="cline-any cline-neutral">&nbsp;</span>
795
+ <span class="cline-any cline-neutral">&nbsp;</span>
796
+ <span class="cline-any cline-no">&nbsp;</span>
797
+ <span class="cline-any cline-no">&nbsp;</span>
798
+ <span class="cline-any cline-neutral">&nbsp;</span>
799
+ <span class="cline-any cline-neutral">&nbsp;</span>
800
+ <span class="cline-any cline-neutral">&nbsp;</span>
801
+ <span class="cline-any cline-neutral">&nbsp;</span>
802
+ <span class="cline-any cline-neutral">&nbsp;</span>
803
+ <span class="cline-any cline-neutral">&nbsp;</span>
804
+ <span class="cline-any cline-neutral">&nbsp;</span>
805
+ <span class="cline-any cline-neutral">&nbsp;</span>
806
+ <span class="cline-any cline-neutral">&nbsp;</span>
807
+ <span class="cline-any cline-neutral">&nbsp;</span>
808
+ <span class="cline-any cline-neutral">&nbsp;</span>
809
+ <span class="cline-any cline-neutral">&nbsp;</span>
810
+ <span class="cline-any cline-neutral">&nbsp;</span>
811
+ <span class="cline-any cline-neutral">&nbsp;</span>
812
+ <span class="cline-any cline-neutral">&nbsp;</span>
813
+ <span class="cline-any cline-neutral">&nbsp;</span>
814
+ <span class="cline-any cline-neutral">&nbsp;</span>
815
+ <span class="cline-any cline-neutral">&nbsp;</span>
816
+ <span class="cline-any cline-neutral">&nbsp;</span>
817
+ <span class="cline-any cline-neutral">&nbsp;</span>
818
+ <span class="cline-any cline-neutral">&nbsp;</span>
819
+ <span class="cline-any cline-no">&nbsp;</span>
820
+ <span class="cline-any cline-no">&nbsp;</span>
821
+ <span class="cline-any cline-neutral">&nbsp;</span>
822
+ <span class="cline-any cline-neutral">&nbsp;</span>
823
+ <span class="cline-any cline-neutral">&nbsp;</span>
824
+ <span class="cline-any cline-neutral">&nbsp;</span>
825
+ <span class="cline-any cline-no">&nbsp;</span>
826
+ <span class="cline-any cline-neutral">&nbsp;</span>
827
+ <span class="cline-any cline-neutral">&nbsp;</span>
828
+ <span class="cline-any cline-neutral">&nbsp;</span>
829
+ <span class="cline-any cline-neutral">&nbsp;</span>
830
+ <span class="cline-any cline-neutral">&nbsp;</span>
831
+ <span class="cline-any cline-neutral">&nbsp;</span>
832
+ <span class="cline-any cline-neutral">&nbsp;</span>
833
+ <span class="cline-any cline-neutral">&nbsp;</span>
834
+ <span class="cline-any cline-neutral">&nbsp;</span>
835
+ <span class="cline-any cline-neutral">&nbsp;</span>
836
+ <span class="cline-any cline-neutral">&nbsp;</span>
837
+ <span class="cline-any cline-neutral">&nbsp;</span>
838
+ <span class="cline-any cline-neutral">&nbsp;</span>
839
+ <span class="cline-any cline-neutral">&nbsp;</span>
840
+ <span class="cline-any cline-neutral">&nbsp;</span>
841
+ <span class="cline-any cline-neutral">&nbsp;</span>
842
+ <span class="cline-any cline-neutral">&nbsp;</span>
843
+ <span class="cline-any cline-neutral">&nbsp;</span>
844
+ <span class="cline-any cline-neutral">&nbsp;</span>
845
+ <span class="cline-any cline-neutral">&nbsp;</span>
846
+ <span class="cline-any cline-neutral">&nbsp;</span>
847
+ <span class="cline-any cline-neutral">&nbsp;</span>
848
+ <span class="cline-any cline-neutral">&nbsp;</span>
849
+ <span class="cline-any cline-neutral">&nbsp;</span>
850
+ <span class="cline-any cline-no">&nbsp;</span>
851
+ <span class="cline-any cline-no">&nbsp;</span>
852
+ <span class="cline-any cline-neutral">&nbsp;</span>
853
+ <span class="cline-any cline-neutral">&nbsp;</span>
854
+ <span class="cline-any cline-neutral">&nbsp;</span>
855
+ <span class="cline-any cline-neutral">&nbsp;</span>
856
+ <span class="cline-any cline-neutral">&nbsp;</span>
857
+ <span class="cline-any cline-neutral">&nbsp;</span>
858
+ <span class="cline-any cline-neutral">&nbsp;</span>
859
+ <span class="cline-any cline-neutral">&nbsp;</span>
860
+ <span class="cline-any cline-neutral">&nbsp;</span>
861
+ <span class="cline-any cline-neutral">&nbsp;</span>
862
+ <span class="cline-any cline-neutral">&nbsp;</span>
863
+ <span class="cline-any cline-neutral">&nbsp;</span>
864
+ <span class="cline-any cline-neutral">&nbsp;</span>
865
+ <span class="cline-any cline-neutral">&nbsp;</span>
866
+ <span class="cline-any cline-neutral">&nbsp;</span>
867
+ <span class="cline-any cline-neutral">&nbsp;</span>
868
+ <span class="cline-any cline-neutral">&nbsp;</span>
869
+ <span class="cline-any cline-neutral">&nbsp;</span>
870
+ <span class="cline-any cline-neutral">&nbsp;</span>
871
+ <span class="cline-any cline-neutral">&nbsp;</span>
872
+ <span class="cline-any cline-neutral">&nbsp;</span>
873
+ <span class="cline-any cline-neutral">&nbsp;</span>
874
+ <span class="cline-any cline-no">&nbsp;</span>
875
+ <span class="cline-any cline-no">&nbsp;</span>
876
+ <span class="cline-any cline-no">&nbsp;</span>
877
+ <span class="cline-any cline-neutral">&nbsp;</span>
878
+ <span class="cline-any cline-neutral">&nbsp;</span>
879
+ <span class="cline-any cline-neutral">&nbsp;</span>
880
+ <span class="cline-any cline-neutral">&nbsp;</span>
881
+ <span class="cline-any cline-no">&nbsp;</span>
882
+ <span class="cline-any cline-neutral">&nbsp;</span>
883
+ <span class="cline-any cline-neutral">&nbsp;</span>
884
+ <span class="cline-any cline-neutral">&nbsp;</span>
885
+ <span class="cline-any cline-no">&nbsp;</span>
886
+ <span class="cline-any cline-no">&nbsp;</span>
887
+ <span class="cline-any cline-no">&nbsp;</span>
888
+ <span class="cline-any cline-no">&nbsp;</span>
889
+ <span class="cline-any cline-neutral">&nbsp;</span>
890
+ <span class="cline-any cline-neutral">&nbsp;</span>
891
+ <span class="cline-any cline-no">&nbsp;</span>
892
+ <span class="cline-any cline-neutral">&nbsp;</span>
893
+ <span class="cline-any cline-neutral">&nbsp;</span>
894
+ <span class="cline-any cline-neutral">&nbsp;</span>
895
+ <span class="cline-any cline-neutral">&nbsp;</span>
896
+ <span class="cline-any cline-neutral">&nbsp;</span>
897
+ <span class="cline-any cline-neutral">&nbsp;</span>
898
+ <span class="cline-any cline-neutral">&nbsp;</span>
899
+ <span class="cline-any cline-neutral">&nbsp;</span>
900
+ <span class="cline-any cline-neutral">&nbsp;</span>
901
+ <span class="cline-any cline-neutral">&nbsp;</span>
902
+ <span class="cline-any cline-neutral">&nbsp;</span>
903
+ <span class="cline-any cline-neutral">&nbsp;</span>
904
+ <span class="cline-any cline-neutral">&nbsp;</span>
905
+ <span class="cline-any cline-neutral">&nbsp;</span>
906
+ <span class="cline-any cline-neutral">&nbsp;</span>
907
+ <span class="cline-any cline-neutral">&nbsp;</span>
908
+ <span class="cline-any cline-neutral">&nbsp;</span>
909
+ <span class="cline-any cline-neutral">&nbsp;</span>
910
+ <span class="cline-any cline-neutral">&nbsp;</span>
911
+ <span class="cline-any cline-neutral">&nbsp;</span>
912
+ <span class="cline-any cline-neutral">&nbsp;</span>
913
+ <span class="cline-any cline-neutral">&nbsp;</span>
914
+ <span class="cline-any cline-neutral">&nbsp;</span>
915
+ <span class="cline-any cline-neutral">&nbsp;</span>
916
+ <span class="cline-any cline-no">&nbsp;</span>
917
+ <span class="cline-any cline-no">&nbsp;</span>
918
+ <span class="cline-any cline-neutral">&nbsp;</span>
919
+ <span class="cline-any cline-no">&nbsp;</span>
920
+ <span class="cline-any cline-no">&nbsp;</span>
921
+ <span class="cline-any cline-neutral">&nbsp;</span>
922
+ <span class="cline-any cline-neutral">&nbsp;</span>
923
+ <span class="cline-any cline-neutral">&nbsp;</span>
924
+ <span class="cline-any cline-neutral">&nbsp;</span>
925
+ <span class="cline-any cline-neutral">&nbsp;</span>
926
+ <span class="cline-any cline-neutral">&nbsp;</span>
927
+ <span class="cline-any cline-neutral">&nbsp;</span>
928
+ <span class="cline-any cline-no">&nbsp;</span>
929
+ <span class="cline-any cline-no">&nbsp;</span>
930
+ <span class="cline-any cline-neutral">&nbsp;</span>
931
+ <span class="cline-any cline-neutral">&nbsp;</span>
932
+ <span class="cline-any cline-neutral">&nbsp;</span>
933
+ <span class="cline-any cline-neutral">&nbsp;</span>
934
+ <span class="cline-any cline-neutral">&nbsp;</span>
935
+ <span class="cline-any cline-neutral">&nbsp;</span>
936
+ <span class="cline-any cline-neutral">&nbsp;</span>
937
+ <span class="cline-any cline-no">&nbsp;</span>
938
+ <span class="cline-any cline-no">&nbsp;</span>
939
+ <span class="cline-any cline-no">&nbsp;</span>
940
+ <span class="cline-any cline-no">&nbsp;</span>
941
+ <span class="cline-any cline-neutral">&nbsp;</span>
942
+ <span class="cline-any cline-no">&nbsp;</span>
943
+ <span class="cline-any cline-neutral">&nbsp;</span>
944
+ <span class="cline-any cline-neutral">&nbsp;</span>
945
+ <span class="cline-any cline-neutral">&nbsp;</span>
946
+ <span class="cline-any cline-neutral">&nbsp;</span>
947
+ <span class="cline-any cline-neutral">&nbsp;</span>
948
+ <span class="cline-any cline-neutral">&nbsp;</span>
949
+ <span class="cline-any cline-neutral">&nbsp;</span>
950
+ <span class="cline-any cline-neutral">&nbsp;</span>
951
+ <span class="cline-any cline-no">&nbsp;</span>
952
+ <span class="cline-any cline-no">&nbsp;</span>
953
+ <span class="cline-any cline-neutral">&nbsp;</span>
954
+ <span class="cline-any cline-neutral">&nbsp;</span>
955
+ <span class="cline-any cline-neutral">&nbsp;</span>
956
+ <span class="cline-any cline-neutral">&nbsp;</span>
957
+ <span class="cline-any cline-neutral">&nbsp;</span>
958
+ <span class="cline-any cline-neutral">&nbsp;</span>
959
+ <span class="cline-any cline-neutral">&nbsp;</span>
960
+ <span class="cline-any cline-neutral">&nbsp;</span>
961
+ <span class="cline-any cline-neutral">&nbsp;</span>
962
+ <span class="cline-any cline-neutral">&nbsp;</span>
963
+ <span class="cline-any cline-neutral">&nbsp;</span>
964
+ <span class="cline-any cline-neutral">&nbsp;</span>
965
+ <span class="cline-any cline-neutral">&nbsp;</span>
966
+ <span class="cline-any cline-neutral">&nbsp;</span>
967
+ <span class="cline-any cline-neutral">&nbsp;</span>
968
+ <span class="cline-any cline-neutral">&nbsp;</span>
969
+ <span class="cline-any cline-neutral">&nbsp;</span>
970
+ <span class="cline-any cline-neutral">&nbsp;</span>
971
+ <span class="cline-any cline-neutral">&nbsp;</span>
972
+ <span class="cline-any cline-neutral">&nbsp;</span>
973
+ <span class="cline-any cline-neutral">&nbsp;</span>
974
+ <span class="cline-any cline-no">&nbsp;</span>
975
+ <span class="cline-any cline-no">&nbsp;</span>
976
+ <span class="cline-any cline-neutral">&nbsp;</span>
977
+ <span class="cline-any cline-neutral">&nbsp;</span>
978
+ <span class="cline-any cline-neutral">&nbsp;</span>
979
+ <span class="cline-any cline-neutral">&nbsp;</span>
980
+ <span class="cline-any cline-no">&nbsp;</span>
981
+ <span class="cline-any cline-neutral">&nbsp;</span>
982
+ <span class="cline-any cline-neutral">&nbsp;</span>
983
+ <span class="cline-any cline-neutral">&nbsp;</span>
984
+ <span class="cline-any cline-neutral">&nbsp;</span>
985
+ <span class="cline-any cline-neutral">&nbsp;</span>
986
+ <span class="cline-any cline-neutral">&nbsp;</span>
987
+ <span class="cline-any cline-neutral">&nbsp;</span>
988
+ <span class="cline-any cline-neutral">&nbsp;</span>
989
+ <span class="cline-any cline-neutral">&nbsp;</span>
990
+ <span class="cline-any cline-neutral">&nbsp;</span>
991
+ <span class="cline-any cline-neutral">&nbsp;</span>
992
+ <span class="cline-any cline-neutral">&nbsp;</span>
993
+ <span class="cline-any cline-neutral">&nbsp;</span>
994
+ <span class="cline-any cline-neutral">&nbsp;</span>
995
+ <span class="cline-any cline-neutral">&nbsp;</span>
996
+ <span class="cline-any cline-neutral">&nbsp;</span>
997
+ <span class="cline-any cline-neutral">&nbsp;</span>
998
+ <span class="cline-any cline-neutral">&nbsp;</span>
999
+ <span class="cline-any cline-neutral">&nbsp;</span>
1000
+ <span class="cline-any cline-neutral">&nbsp;</span>
1001
+ <span class="cline-any cline-neutral">&nbsp;</span>
1002
+ <span class="cline-any cline-neutral">&nbsp;</span>
1003
+ <span class="cline-any cline-neutral">&nbsp;</span>
1004
+ <span class="cline-any cline-neutral">&nbsp;</span>
1005
+ <span class="cline-any cline-no">&nbsp;</span>
1006
+ <span class="cline-any cline-no">&nbsp;</span>
1007
+ <span class="cline-any cline-neutral">&nbsp;</span>
1008
+ <span class="cline-any cline-neutral">&nbsp;</span>
1009
+ <span class="cline-any cline-neutral">&nbsp;</span>
1010
+ <span class="cline-any cline-neutral">&nbsp;</span>
1011
+ <span class="cline-any cline-neutral">&nbsp;</span>
1012
+ <span class="cline-any cline-neutral">&nbsp;</span>
1013
+ <span class="cline-any cline-neutral">&nbsp;</span>
1014
+ <span class="cline-any cline-neutral">&nbsp;</span>
1015
+ <span class="cline-any cline-neutral">&nbsp;</span>
1016
+ <span class="cline-any cline-neutral">&nbsp;</span>
1017
+ <span class="cline-any cline-neutral">&nbsp;</span>
1018
+ <span class="cline-any cline-neutral">&nbsp;</span>
1019
+ <span class="cline-any cline-neutral">&nbsp;</span>
1020
+ <span class="cline-any cline-neutral">&nbsp;</span>
1021
+ <span class="cline-any cline-neutral">&nbsp;</span>
1022
+ <span class="cline-any cline-neutral">&nbsp;</span>
1023
+ <span class="cline-any cline-neutral">&nbsp;</span>
1024
+ <span class="cline-any cline-neutral">&nbsp;</span>
1025
+ <span class="cline-any cline-neutral">&nbsp;</span>
1026
+ <span class="cline-any cline-neutral">&nbsp;</span>
1027
+ <span class="cline-any cline-neutral">&nbsp;</span>
1028
+ <span class="cline-any cline-neutral">&nbsp;</span>
1029
+ <span class="cline-any cline-no">&nbsp;</span>
1030
+ <span class="cline-any cline-no">&nbsp;</span>
1031
+ <span class="cline-any cline-no">&nbsp;</span>
1032
+ <span class="cline-any cline-neutral">&nbsp;</span>
1033
+ <span class="cline-any cline-neutral">&nbsp;</span>
1034
+ <span class="cline-any cline-neutral">&nbsp;</span>
1035
+ <span class="cline-any cline-neutral">&nbsp;</span>
1036
+ <span class="cline-any cline-no">&nbsp;</span>
1037
+ <span class="cline-any cline-neutral">&nbsp;</span>
1038
+ <span class="cline-any cline-neutral">&nbsp;</span>
1039
+ <span class="cline-any cline-neutral">&nbsp;</span>
1040
+ <span class="cline-any cline-neutral">&nbsp;</span>
1041
+ <span class="cline-any cline-neutral">&nbsp;</span>
1042
+ <span class="cline-any cline-neutral">&nbsp;</span>
1043
+ <span class="cline-any cline-neutral">&nbsp;</span>
1044
+ <span class="cline-any cline-neutral">&nbsp;</span>
1045
+ <span class="cline-any cline-neutral">&nbsp;</span>
1046
+ <span class="cline-any cline-neutral">&nbsp;</span>
1047
+ <span class="cline-any cline-neutral">&nbsp;</span>
1048
+ <span class="cline-any cline-neutral">&nbsp;</span>
1049
+ <span class="cline-any cline-neutral">&nbsp;</span>
1050
+ <span class="cline-any cline-neutral">&nbsp;</span>
1051
+ <span class="cline-any cline-neutral">&nbsp;</span>
1052
+ <span class="cline-any cline-neutral">&nbsp;</span>
1053
+ <span class="cline-any cline-no">&nbsp;</span>
1054
+ <span class="cline-any cline-no">&nbsp;</span>
1055
+ <span class="cline-any cline-no">&nbsp;</span>
1056
+ <span class="cline-any cline-no">&nbsp;</span>
1057
+ <span class="cline-any cline-neutral">&nbsp;</span>
1058
+ <span class="cline-any cline-neutral">&nbsp;</span>
1059
+ <span class="cline-any cline-no">&nbsp;</span>
1060
+ <span class="cline-any cline-neutral">&nbsp;</span>
1061
+ <span class="cline-any cline-no">&nbsp;</span>
1062
+ <span class="cline-any cline-neutral">&nbsp;</span>
1063
+ <span class="cline-any cline-neutral">&nbsp;</span>
1064
+ <span class="cline-any cline-neutral">&nbsp;</span>
1065
+ <span class="cline-any cline-no">&nbsp;</span>
1066
+ <span class="cline-any cline-no">&nbsp;</span>
1067
+ <span class="cline-any cline-neutral">&nbsp;</span>
1068
+ <span class="cline-any cline-neutral">&nbsp;</span>
1069
+ <span class="cline-any cline-neutral">&nbsp;</span>
1070
+ <span class="cline-any cline-neutral">&nbsp;</span>
1071
+ <span class="cline-any cline-neutral">&nbsp;</span>
1072
+ <span class="cline-any cline-neutral">&nbsp;</span>
1073
+ <span class="cline-any cline-no">&nbsp;</span>
1074
+ <span class="cline-any cline-no">&nbsp;</span>
1075
+ <span class="cline-any cline-neutral">&nbsp;</span>
1076
+ <span class="cline-any cline-no">&nbsp;</span>
1077
+ <span class="cline-any cline-neutral">&nbsp;</span>
1078
+ <span class="cline-any cline-no">&nbsp;</span>
1079
+ <span class="cline-any cline-no">&nbsp;</span>
1080
+ <span class="cline-any cline-no">&nbsp;</span>
1081
+ <span class="cline-any cline-no">&nbsp;</span>
1082
+ <span class="cline-any cline-no">&nbsp;</span>
1083
+ <span class="cline-any cline-no">&nbsp;</span>
1084
+ <span class="cline-any cline-no">&nbsp;</span>
1085
+ <span class="cline-any cline-no">&nbsp;</span>
1086
+ <span class="cline-any cline-neutral">&nbsp;</span>
1087
+ <span class="cline-any cline-neutral">&nbsp;</span>
1088
+ <span class="cline-any cline-no">&nbsp;</span>
1089
+ <span class="cline-any cline-neutral">&nbsp;</span>
1090
+ <span class="cline-any cline-neutral">&nbsp;</span>
1091
+ <span class="cline-any cline-neutral">&nbsp;</span>
1092
+ <span class="cline-any cline-neutral">&nbsp;</span>
1093
+ <span class="cline-any cline-neutral">&nbsp;</span>
1094
+ <span class="cline-any cline-neutral">&nbsp;</span>
1095
+ <span class="cline-any cline-neutral">&nbsp;</span>
1096
+ <span class="cline-any cline-neutral">&nbsp;</span>
1097
+ <span class="cline-any cline-neutral">&nbsp;</span>
1098
+ <span class="cline-any cline-neutral">&nbsp;</span>
1099
+ <span class="cline-any cline-neutral">&nbsp;</span>
1100
+ <span class="cline-any cline-neutral">&nbsp;</span>
1101
+ <span class="cline-any cline-neutral">&nbsp;</span>
1102
+ <span class="cline-any cline-neutral">&nbsp;</span>
1103
+ <span class="cline-any cline-neutral">&nbsp;</span>
1104
+ <span class="cline-any cline-neutral">&nbsp;</span>
1105
+ <span class="cline-any cline-no">&nbsp;</span>
1106
+ <span class="cline-any cline-no">&nbsp;</span>
1107
+ <span class="cline-any cline-no">&nbsp;</span>
1108
+ <span class="cline-any cline-no">&nbsp;</span>
1109
+ <span class="cline-any cline-neutral">&nbsp;</span>
1110
+ <span class="cline-any cline-neutral">&nbsp;</span>
1111
+ <span class="cline-any cline-no">&nbsp;</span>
1112
+ <span class="cline-any cline-neutral">&nbsp;</span>
1113
+ <span class="cline-any cline-no">&nbsp;</span>
1114
+ <span class="cline-any cline-neutral">&nbsp;</span>
1115
+ <span class="cline-any cline-neutral">&nbsp;</span>
1116
+ <span class="cline-any cline-neutral">&nbsp;</span>
1117
+ <span class="cline-any cline-no">&nbsp;</span>
1118
+ <span class="cline-any cline-no">&nbsp;</span>
1119
+ <span class="cline-any cline-neutral">&nbsp;</span>
1120
+ <span class="cline-any cline-neutral">&nbsp;</span>
1121
+ <span class="cline-any cline-neutral">&nbsp;</span>
1122
+ <span class="cline-any cline-neutral">&nbsp;</span>
1123
+ <span class="cline-any cline-neutral">&nbsp;</span>
1124
+ <span class="cline-any cline-neutral">&nbsp;</span>
1125
+ <span class="cline-any cline-no">&nbsp;</span>
1126
+ <span class="cline-any cline-no">&nbsp;</span>
1127
+ <span class="cline-any cline-neutral">&nbsp;</span>
1128
+ <span class="cline-any cline-no">&nbsp;</span>
1129
+ <span class="cline-any cline-neutral">&nbsp;</span>
1130
+ <span class="cline-any cline-no">&nbsp;</span>
1131
+ <span class="cline-any cline-no">&nbsp;</span>
1132
+ <span class="cline-any cline-no">&nbsp;</span>
1133
+ <span class="cline-any cline-no">&nbsp;</span>
1134
+ <span class="cline-any cline-no">&nbsp;</span>
1135
+ <span class="cline-any cline-no">&nbsp;</span>
1136
+ <span class="cline-any cline-no">&nbsp;</span>
1137
+ <span class="cline-any cline-no">&nbsp;</span>
1138
+ <span class="cline-any cline-neutral">&nbsp;</span>
1139
+ <span class="cline-any cline-neutral">&nbsp;</span>
1140
+ <span class="cline-any cline-no">&nbsp;</span>
1141
+ <span class="cline-any cline-neutral">&nbsp;</span>
1142
+ <span class="cline-any cline-neutral">&nbsp;</span>
1143
+ <span class="cline-any cline-neutral">&nbsp;</span>
1144
+ <span class="cline-any cline-neutral">&nbsp;</span>
1145
+ <span class="cline-any cline-neutral">&nbsp;</span>
1146
+ <span class="cline-any cline-neutral">&nbsp;</span>
1147
+ <span class="cline-any cline-neutral">&nbsp;</span>
1148
+ <span class="cline-any cline-no">&nbsp;</span>
1149
+ <span class="cline-any cline-no">&nbsp;</span>
1150
+ <span class="cline-any cline-no">&nbsp;</span>
1151
+ <span class="cline-any cline-no">&nbsp;</span>
1152
+ <span class="cline-any cline-no">&nbsp;</span>
1153
+ <span class="cline-any cline-no">&nbsp;</span>
1154
+ <span class="cline-any cline-neutral">&nbsp;</span>
1155
+ <span class="cline-any cline-no">&nbsp;</span>
1156
+ <span class="cline-any cline-neutral">&nbsp;</span>
1157
+ <span class="cline-any cline-no">&nbsp;</span>
1158
+ <span class="cline-any cline-neutral">&nbsp;</span>
1159
+ <span class="cline-any cline-neutral">&nbsp;</span>
1160
+ <span class="cline-any cline-neutral">&nbsp;</span>
1161
+ <span class="cline-any cline-no">&nbsp;</span>
1162
+ <span class="cline-any cline-no">&nbsp;</span>
1163
+ <span class="cline-any cline-no">&nbsp;</span>
1164
+ <span class="cline-any cline-no">&nbsp;</span>
1165
+ <span class="cline-any cline-no">&nbsp;</span>
1166
+ <span class="cline-any cline-no">&nbsp;</span>
1167
+ <span class="cline-any cline-neutral">&nbsp;</span>
1168
+ <span class="cline-any cline-no">&nbsp;</span>
1169
+ <span class="cline-any cline-neutral">&nbsp;</span>
1170
+ <span class="cline-any cline-no">&nbsp;</span>
1171
+ <span class="cline-any cline-neutral">&nbsp;</span>
1172
+ <span class="cline-any cline-neutral">&nbsp;</span>
1173
+ <span class="cline-any cline-neutral">&nbsp;</span>
1174
+ <span class="cline-any cline-neutral">&nbsp;</span>
1175
+ <span class="cline-any cline-neutral">&nbsp;</span>
1176
+ <span class="cline-any cline-neutral">&nbsp;</span>
1177
+ <span class="cline-any cline-neutral">&nbsp;</span>
1178
+ <span class="cline-any cline-neutral">&nbsp;</span>
1179
+ <span class="cline-any cline-yes">1x</span>
1180
+ <span class="cline-any cline-neutral">&nbsp;</span>
1181
+ <span class="cline-any cline-neutral">&nbsp;</span>
1182
+ <span class="cline-any cline-neutral">&nbsp;</span>
1183
+ <span class="cline-any cline-neutral">&nbsp;</span>
1184
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import Namespace from './Namespace__';
1185
+ import { TranslatorState, shiftState, withSourceMap, indent, createCompilerState } from '../translator';
1186
+ //================================================================================
1187
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
1188
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
1189
+ //================================================================================
1190
+ import { EventPayload, Params } from '../common/EventEmitter';
1191
+ import { concept, excludedInJSON, property, className } from '../decorators';
1192
+ &nbsp;
1193
+ import * as utils from '../utils';
1194
+ import { v4 as uuidv4 } from 'uuid';
1195
+ import BaseNode from '../common/BaseNode';
1196
+ import Logic from './Logic__';
1197
+ import ViewComponent from './ViewComponent__';
1198
+ import Module from './Module__';
1199
+ import App from './App__';
1200
+ &nbsp;
1201
+ /**
1202
+ * 前端库
1203
+ */
1204
+ @className
1205
+ @concept('前端库')
1206
+ // @ts-ignore
1207
+ export class FrontendLibrary extends BaseNode {
1208
+ /** 类名 */
1209
+ static readonly ConceptName = 'FrontendLibrary';
1210
+ &nbsp;
1211
+ /**
1212
+ * 产品概念
1213
+ */
1214
+ @property('concept')
1215
+ // @ts-ignore
1216
+ readonly concept!: 'FrontendLibrary';
1217
+ &nbsp;
1218
+ /**
1219
+ * 名称与type保持一致
1220
+ */
1221
+ @property()
1222
+ // @ts-ignore
1223
+ name!: 'pc' | 'h5';
1224
+ &nbsp;
1225
+ /**
1226
+ * PC/H5 端
1227
+ */
1228
+ @property()
1229
+ // @ts-ignore
1230
+ type!: 'pc' | 'h5';
1231
+ &nbsp;
1232
+ /**
1233
+ * 逻辑列表
1234
+ */
1235
+ @property({
1236
+ objectRef: 'Logic',
1237
+ isArray: true,
1238
+ defaultValue: [],
1239
+ })
1240
+ logics: Array&lt;Logic&gt; = <span class="cstat-no" title="statement not covered" >[];</span>
1241
+ &nbsp;
1242
+ /**
1243
+ * 页面组件列表
1244
+ */
1245
+ @property({
1246
+ objectRef: 'ViewComponent',
1247
+ isArray: true,
1248
+ defaultValue: [],
1249
+ })
1250
+ viewComponents: Array&lt;ViewComponent&gt; = <span class="cstat-no" title="statement not covered" >[];</span>
1251
+ &nbsp;
1252
+ /**
1253
+ * 祖先 Module
1254
+ */
1255
+ <span class="fstat-no" title="function not covered" > get m</span>odule() {
1256
+ <span class="cstat-no" title="statement not covered" > return this.getAncestor('Module') as Module;</span>
1257
+ }
1258
+ /**
1259
+ * 祖先 App
1260
+ */
1261
+ <span class="fstat-no" title="function not covered" > get a</span>pp() {
1262
+ <span class="cstat-no" title="statement not covered" > return this.getAncestor('App') as App;</span>
1263
+ }
1264
+ &nbsp;
1265
+ /**
1266
+ * @param source 需要合并的部分参数
1267
+ */
1268
+ <span class="fstat-no" title="function not covered" > constructor(s</span>ource?: Partial&lt;FrontendLibrary&gt;) {
1269
+ <span class="cstat-no" title="statement not covered" > source = Object.assign({}, FrontendLibrary.getDefaultOptions(), source);</span>
1270
+ <span class="cstat-no" title="statement not covered" > super(source);</span>
1271
+ <span class="cstat-no" title="statement not covered" > super.subConstructor(source);</span>
1272
+ }
1273
+ &nbsp;
1274
+ <span class="fstat-no" title="function not covered" > static </span>from(source: any, parentNode?: any, parentKey?: string): FrontendLibrary {
1275
+ <span class="cstat-no" title="statement not covered" > return super.from(source, parentNode, parentKey) as FrontendLibrary;</span>
1276
+ }
1277
+ &nbsp;
1278
+ /**
1279
+ * 从父级删除该节点
1280
+ * @internal
1281
+ */
1282
+ <span class="fstat-no" title="function not covered" > _delete(</span>) {
1283
+ let params: Params = <span class="cstat-no" title="statement not covered" >null;</span>
1284
+ <span class="cstat-no" title="statement not covered" > if (this.parentNode) {</span>
1285
+ <span class="cstat-no" title="statement not covered" > params = (this.parentNode as any)?.__removeFrontendLibrary?.(this);</span>
1286
+ }
1287
+ <span class="cstat-no" title="statement not covered" > return params;</span>
1288
+ }
1289
+ &nbsp;
1290
+ <span class="fstat-no" title="function not covered" > getLogicExistingNames(</span>excludedList: Array&lt;Logic&gt; = <span class="branch-0 cbranch-no" title="branch not covered" >[])</span> {
1291
+ const excludedSet = <span class="cstat-no" title="statement not covered" >new Set(excludedList);</span>
1292
+ <span class="cstat-no" title="statement not covered" > return ((this.logics as Logic[]) || []).filter(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >!excludedSet.has(item))</span>.map(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name)</span>;</span>
1293
+ }
1294
+ <span class="fstat-no" title="function not covered" > getLogicUniqueName(</span>name = <span class="branch-0 cbranch-no" title="branch not covered" >'logic1')</span> {
1295
+ <span class="cstat-no" title="statement not covered" > return utils.unique(name, this.getLogicExistingNames(), undefined, true);</span>
1296
+ }
1297
+ &nbsp;
1298
+ /**
1299
+ * 插入逻辑
1300
+ * @internal
1301
+ * @param name 逻辑名称,如果不填会自动生成一个唯一名称
1302
+ */
1303
+ _insertLogicAt(name: string, index: number): Logic;
1304
+ &nbsp;
1305
+ /**
1306
+ * 插入逻辑
1307
+ * @internal
1308
+ * @param logicOptions 逻辑参数
1309
+ */
1310
+ _insertLogicAt(logicOptions: Partial&lt;Logic&gt;, index: number): Logic;
1311
+ &nbsp;
1312
+ /**
1313
+ * 插入逻辑
1314
+ * @internal
1315
+ * @param logic 已有的逻辑实例
1316
+ */
1317
+ _insertLogicAt(logic: Logic, index: number): Logic;
1318
+ &nbsp;
1319
+ <span class="fstat-no" title="function not covered" > _insertLogicAt(</span>options: string | Partial&lt;Logic&gt; | Logic, index: number) {
1320
+ const logicOptions: any = <span class="cstat-no" title="statement not covered" >{};</span>
1321
+ const relationOptions = <span class="cstat-no" title="statement not covered" >{ parentNode: this, parentKey: 'logics' };</span>
1322
+ let logic: Logic;
1323
+ <span class="cstat-no" title="statement not covered" > if (!options) {</span>
1324
+ <span class="cstat-no" title="statement not covered" > logic = Logic.from(</span>
1325
+ {
1326
+ ...logicOptions,
1327
+ name: this.getLogicUniqueName(),
1328
+ },
1329
+ this,
1330
+ 'logics',
1331
+ );
1332
+ } else <span class="cstat-no" title="statement not covered" >if (typeof options === 'string') {</span>
1333
+ <span class="cstat-no" title="statement not covered" > logic = Logic.from(</span>
1334
+ {
1335
+ ...logicOptions,
1336
+ name: options,
1337
+ },
1338
+ this,
1339
+ 'logics',
1340
+ );
1341
+ } else <span class="cstat-no" title="statement not covered" >if (options instanceof Logic) {</span>
1342
+ <span class="cstat-no" title="statement not covered" > options.ensureDelete(); </span>// 同一实例不支持多处存在
1343
+ <span class="cstat-no" title="statement not covered" > logic = options;</span>
1344
+ <span class="cstat-no" title="statement not covered" > Object.assign(logic, relationOptions);</span>
1345
+ } else {
1346
+ <span class="cstat-no" title="statement not covered" > logic = Logic.from(</span>
1347
+ {
1348
+ ...logicOptions,
1349
+ ...options,
1350
+ },
1351
+ this,
1352
+ 'logics',
1353
+ );
1354
+ }
1355
+ <span class="cstat-no" title="statement not covered" > this.logics.splice(index, 0, logic);</span>
1356
+ <span class="cstat-no" title="statement not covered" > return logic;</span>
1357
+ }
1358
+ &nbsp;
1359
+ /**
1360
+ * 插入逻辑
1361
+ * @param name 逻辑名称,如果不填会自动生成一个唯一名称
1362
+ */
1363
+ insertLogicAt(name: string, index: number): Logic;
1364
+ &nbsp;
1365
+ /**
1366
+ * 插入逻辑
1367
+ * @param logicOptions 逻辑参数
1368
+ */
1369
+ insertLogicAt(logicOptions: Partial&lt;Logic&gt;, index: number): Logic;
1370
+ &nbsp;
1371
+ /**
1372
+ * 插入逻辑
1373
+ * @param logic 已有的逻辑实例
1374
+ */
1375
+ insertLogicAt(logic: Logic, index: number): Logic;
1376
+ &nbsp;
1377
+ <span class="fstat-no" title="function not covered" > insertLogicAt(</span>options: string | Partial&lt;Logic&gt; | Logic, index: number) {
1378
+ const node = <span class="cstat-no" title="statement not covered" >this._insertLogicAt(options as any, index);</span>
1379
+ <span class="cstat-no" title="statement not covered" > node.create({</span>
1380
+ index,
1381
+ parentNode: this,
1382
+ parentKey: 'logics',
1383
+ });
1384
+ <span class="cstat-no" title="statement not covered" > return node;</span>
1385
+ }
1386
+ &nbsp;
1387
+ /**
1388
+ * 添加逻辑
1389
+ * @internal
1390
+ * @param name 逻辑名称,如果不填会自动生成一个唯一名称
1391
+ */
1392
+ _addLogic(name?: string): Logic;
1393
+ &nbsp;
1394
+ /**
1395
+ * 添加逻辑
1396
+ * @internal
1397
+ * @param logicOptions 逻辑参数
1398
+ */
1399
+ _addLogic(logicOptions: Partial&lt;Logic&gt;): Logic;
1400
+ &nbsp;
1401
+ /**
1402
+ * 添加逻辑
1403
+ * @internal
1404
+ * @param logic 已有的逻辑实例
1405
+ */
1406
+ _addLogic(logic: Logic): Logic;
1407
+ &nbsp;
1408
+ <span class="fstat-no" title="function not covered" > _addLogic(</span>options?: string | Partial&lt;Logic&gt; | Logic) {
1409
+ const index = <span class="cstat-no" title="statement not covered" >this.logics.length;</span>
1410
+ <span class="cstat-no" title="statement not covered" > return this._insertLogicAt(options as any, index);</span>
1411
+ }
1412
+ &nbsp;
1413
+ /**
1414
+ * 添加逻辑
1415
+ * @internal
1416
+ * @param name 逻辑名称,如果不填会自动生成一个唯一名称
1417
+ */
1418
+ addLogic(name?: string): Logic;
1419
+ &nbsp;
1420
+ /**
1421
+ * 添加逻辑
1422
+ * @param logicOptions 逻辑参数
1423
+ */
1424
+ addLogic(logicOptions: Partial&lt;Logic&gt;): Logic;
1425
+ &nbsp;
1426
+ /**
1427
+ * 添加逻辑
1428
+ * @param logic 已有的逻辑实例
1429
+ */
1430
+ addLogic(logic: Logic): Logic;
1431
+ &nbsp;
1432
+ <span class="fstat-no" title="function not covered" > addLogic(</span>options?: string | Partial&lt;Logic&gt; | Logic) {
1433
+ const node = <span class="cstat-no" title="statement not covered" >this._addLogic(options as any);</span>
1434
+ const index = <span class="cstat-no" title="statement not covered" >this.logics.indexOf(node);</span>
1435
+ <span class="cstat-no" title="statement not covered" > node.create({</span>
1436
+ index,
1437
+ parentNode: this,
1438
+ parentKey: 'logics',
1439
+ });
1440
+ <span class="cstat-no" title="statement not covered" > return node;</span>
1441
+ }
1442
+ &nbsp;
1443
+ <span class="fstat-no" title="function not covered" > getViewComponentExistingNames(</span>excludedList: Array&lt;ViewComponent&gt; = <span class="branch-0 cbranch-no" title="branch not covered" >[])</span> {
1444
+ const excludedSet = <span class="cstat-no" title="statement not covered" >new Set(excludedList);</span>
1445
+ <span class="cstat-no" title="statement not covered" > return ((this.viewComponents as ViewComponent[]) || [])</span>
1446
+ .filter(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >!excludedSet.has(item))</span>
1447
+ .map(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name)</span>;
1448
+ }
1449
+ <span class="fstat-no" title="function not covered" > getViewComponentUniqueName(</span>name = <span class="branch-0 cbranch-no" title="branch not covered" >'viewComponent1')</span> {
1450
+ <span class="cstat-no" title="statement not covered" > return utils.unique(name, this.getViewComponentExistingNames(), undefined, false);</span>
1451
+ }
1452
+ &nbsp;
1453
+ /**
1454
+ * 插入页面组件
1455
+ * @internal
1456
+ * @param name 页面组件名称,如果不填会自动生成一个唯一名称
1457
+ */
1458
+ _insertViewComponentAt(name: string, index: number): ViewComponent;
1459
+ &nbsp;
1460
+ /**
1461
+ * 插入页面组件
1462
+ * @internal
1463
+ * @param viewComponentOptions 页面组件参数
1464
+ */
1465
+ _insertViewComponentAt(viewComponentOptions: Partial&lt;ViewComponent&gt;, index: number): ViewComponent;
1466
+ &nbsp;
1467
+ /**
1468
+ * 插入页面组件
1469
+ * @internal
1470
+ * @param viewComponent 已有的页面组件实例
1471
+ */
1472
+ _insertViewComponentAt(viewComponent: ViewComponent, index: number): ViewComponent;
1473
+ &nbsp;
1474
+ <span class="fstat-no" title="function not covered" > _insertViewComponentAt(</span>options: string | Partial&lt;ViewComponent&gt; | ViewComponent, index: number) {
1475
+ const viewComponentOptions: any = <span class="cstat-no" title="statement not covered" >{};</span>
1476
+ const relationOptions = <span class="cstat-no" title="statement not covered" >{ parentNode: this, parentKey: 'viewComponents' };</span>
1477
+ let viewComponent: ViewComponent;
1478
+ <span class="cstat-no" title="statement not covered" > if (!options) {</span>
1479
+ <span class="cstat-no" title="statement not covered" > viewComponent = ViewComponent.from(</span>
1480
+ {
1481
+ ...viewComponentOptions,
1482
+ name: this.getViewComponentUniqueName(),
1483
+ },
1484
+ this,
1485
+ 'viewComponents',
1486
+ );
1487
+ } else <span class="cstat-no" title="statement not covered" >if (typeof options === 'string') {</span>
1488
+ <span class="cstat-no" title="statement not covered" > viewComponent = ViewComponent.from(</span>
1489
+ {
1490
+ ...viewComponentOptions,
1491
+ name: options,
1492
+ },
1493
+ this,
1494
+ 'viewComponents',
1495
+ );
1496
+ } else <span class="cstat-no" title="statement not covered" >if (options instanceof ViewComponent) {</span>
1497
+ <span class="cstat-no" title="statement not covered" > options.ensureDelete(); </span>// 同一实例不支持多处存在
1498
+ <span class="cstat-no" title="statement not covered" > viewComponent = options;</span>
1499
+ <span class="cstat-no" title="statement not covered" > Object.assign(viewComponent, relationOptions);</span>
1500
+ } else {
1501
+ <span class="cstat-no" title="statement not covered" > viewComponent = ViewComponent.from(</span>
1502
+ {
1503
+ ...viewComponentOptions,
1504
+ ...options,
1505
+ },
1506
+ this,
1507
+ 'viewComponents',
1508
+ );
1509
+ }
1510
+ <span class="cstat-no" title="statement not covered" > this.viewComponents.splice(index, 0, viewComponent);</span>
1511
+ <span class="cstat-no" title="statement not covered" > return viewComponent;</span>
1512
+ }
1513
+ &nbsp;
1514
+ /**
1515
+ * 插入页面组件
1516
+ * @param name 页面组件名称,如果不填会自动生成一个唯一名称
1517
+ */
1518
+ insertViewComponentAt(name: string, index: number): ViewComponent;
1519
+ &nbsp;
1520
+ /**
1521
+ * 插入页面组件
1522
+ * @param viewComponentOptions 页面组件参数
1523
+ */
1524
+ insertViewComponentAt(viewComponentOptions: Partial&lt;ViewComponent&gt;, index: number): ViewComponent;
1525
+ &nbsp;
1526
+ /**
1527
+ * 插入页面组件
1528
+ * @param viewComponent 已有的页面组件实例
1529
+ */
1530
+ insertViewComponentAt(viewComponent: ViewComponent, index: number): ViewComponent;
1531
+ &nbsp;
1532
+ <span class="fstat-no" title="function not covered" > insertViewComponentAt(</span>options: string | Partial&lt;ViewComponent&gt; | ViewComponent, index: number) {
1533
+ const node = <span class="cstat-no" title="statement not covered" >this._insertViewComponentAt(options as any, index);</span>
1534
+ <span class="cstat-no" title="statement not covered" > node.create({</span>
1535
+ index,
1536
+ parentNode: this,
1537
+ parentKey: 'viewComponents',
1538
+ });
1539
+ <span class="cstat-no" title="statement not covered" > return node;</span>
1540
+ }
1541
+ &nbsp;
1542
+ /**
1543
+ * 添加页面组件
1544
+ * @internal
1545
+ * @param name 页面组件名称,如果不填会自动生成一个唯一名称
1546
+ */
1547
+ _addViewComponent(name?: string): ViewComponent;
1548
+ &nbsp;
1549
+ /**
1550
+ * 添加页面组件
1551
+ * @internal
1552
+ * @param viewComponentOptions 页面组件参数
1553
+ */
1554
+ _addViewComponent(viewComponentOptions: Partial&lt;ViewComponent&gt;): ViewComponent;
1555
+ &nbsp;
1556
+ /**
1557
+ * 添加页面组件
1558
+ * @internal
1559
+ * @param viewComponent 已有的页面组件实例
1560
+ */
1561
+ _addViewComponent(viewComponent: ViewComponent): ViewComponent;
1562
+ &nbsp;
1563
+ <span class="fstat-no" title="function not covered" > _addViewComponent(</span>options?: string | Partial&lt;ViewComponent&gt; | ViewComponent) {
1564
+ const index = <span class="cstat-no" title="statement not covered" >this.viewComponents.length;</span>
1565
+ <span class="cstat-no" title="statement not covered" > return this._insertViewComponentAt(options as any, index);</span>
1566
+ }
1567
+ &nbsp;
1568
+ /**
1569
+ * 添加页面组件
1570
+ * @internal
1571
+ * @param name 页面组件名称,如果不填会自动生成一个唯一名称
1572
+ */
1573
+ addViewComponent(name?: string): ViewComponent;
1574
+ &nbsp;
1575
+ /**
1576
+ * 添加页面组件
1577
+ * @param viewComponentOptions 页面组件参数
1578
+ */
1579
+ addViewComponent(viewComponentOptions: Partial&lt;ViewComponent&gt;): ViewComponent;
1580
+ &nbsp;
1581
+ /**
1582
+ * 添加页面组件
1583
+ * @param viewComponent 已有的页面组件实例
1584
+ */
1585
+ addViewComponent(viewComponent: ViewComponent): ViewComponent;
1586
+ &nbsp;
1587
+ <span class="fstat-no" title="function not covered" > addViewComponent(</span>options?: string | Partial&lt;ViewComponent&gt; | ViewComponent) {
1588
+ const node = <span class="cstat-no" title="statement not covered" >this._addViewComponent(options as any);</span>
1589
+ const index = <span class="cstat-no" title="statement not covered" >this.viewComponents.indexOf(node);</span>
1590
+ <span class="cstat-no" title="statement not covered" > node.create({</span>
1591
+ index,
1592
+ parentNode: this,
1593
+ parentKey: 'viewComponents',
1594
+ });
1595
+ <span class="cstat-no" title="statement not covered" > return node;</span>
1596
+ }
1597
+ &nbsp;
1598
+ /**
1599
+ * 删除逻辑
1600
+ * @param name 逻辑名称
1601
+ */
1602
+ removeLogic(name: string): void;
1603
+ &nbsp;
1604
+ /**
1605
+ * 删除逻辑
1606
+ * @param logic 已有的逻辑实例
1607
+ */
1608
+ removeLogic(logic: Logic): void;
1609
+ &nbsp;
1610
+ <span class="fstat-no" title="function not covered" > removeLogic(</span>options: string | Logic) {
1611
+ let logic: Logic;
1612
+ <span class="cstat-no" title="statement not covered" > if (typeof options === 'string') {</span>
1613
+ <span class="cstat-no" title="statement not covered" > logic = (this.logics as Logic[]).find(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === options)</span>;</span>
1614
+ <span class="cstat-no" title="statement not covered" > if (!logic) {</span>
1615
+ <span class="cstat-no" title="statement not covered" > throw new Error('找不到逻辑 ' + options);</span>
1616
+ }
1617
+ } else {
1618
+ <span class="cstat-no" title="statement not covered" > logic = options;</span>
1619
+ }
1620
+ <span class="cstat-no" title="statement not covered" > return logic.delete();</span>
1621
+ }
1622
+ &nbsp;
1623
+ <span class="fstat-no" title="function not covered" > __removeLogic(</span>logic: Logic) {
1624
+ const parentKey = <span class="cstat-no" title="statement not covered" >logic.parentKey;</span>
1625
+ const params: Params = <span class="cstat-no" title="statement not covered" >{</span>
1626
+ parentNode: this,
1627
+ parentKey,
1628
+ index: -1,
1629
+ object: null,
1630
+ oldObject: logic,
1631
+ };
1632
+ <span class="cstat-no" title="statement not covered" > if (parentKey) {</span>
1633
+ <span class="cstat-no" title="statement not covered" > params.parentKey = parentKey;</span>
1634
+ // @ts-ignore
1635
+ const t = <span class="cstat-no" title="statement not covered" >this.__v_raw || this;</span>
1636
+ // @ts-ignore
1637
+ const n = <span class="cstat-no" title="statement not covered" >logic.__v_raw || logic;</span>
1638
+ <span class="cstat-no" title="statement not covered" > if (Array.isArray((t as any)[parentKey])) {</span>
1639
+ const index = (<span class="cstat-no" title="statement not covered" >t as any)[parentKey].indexOf(n);</span>
1640
+ <span class="cstat-no" title="statement not covered" > ~index &amp;&amp; (this as any)[parentKey].splice(index, 1);</span>
1641
+ <span class="cstat-no" title="statement not covered" > params.index = index;</span>
1642
+ } else <span class="cstat-no" title="statement not covered" >if ((t as any)[parentKey] === n) {</span>
1643
+ <span class="cstat-no" title="statement not covered" > params.index = 0;</span>
1644
+ (<span class="cstat-no" title="statement not covered" >this as any)[parentKey] = undefined;</span>
1645
+ }
1646
+ }
1647
+ <span class="cstat-no" title="statement not covered" > return params;</span>
1648
+ }
1649
+ &nbsp;
1650
+ /**
1651
+ * 删除页面组件
1652
+ * @param name 页面组件名称
1653
+ */
1654
+ removeViewComponent(name: string): void;
1655
+ &nbsp;
1656
+ /**
1657
+ * 删除页面组件
1658
+ * @param viewComponent 已有的页面组件实例
1659
+ */
1660
+ removeViewComponent(viewComponent: ViewComponent): void;
1661
+ &nbsp;
1662
+ <span class="fstat-no" title="function not covered" > removeViewComponent(</span>options: string | ViewComponent) {
1663
+ let viewComponent: ViewComponent;
1664
+ <span class="cstat-no" title="statement not covered" > if (typeof options === 'string') {</span>
1665
+ <span class="cstat-no" title="statement not covered" > viewComponent = (this.viewComponents as ViewComponent[]).find(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === options)</span>;</span>
1666
+ <span class="cstat-no" title="statement not covered" > if (!viewComponent) {</span>
1667
+ <span class="cstat-no" title="statement not covered" > throw new Error('找不到页面组件 ' + options);</span>
1668
+ }
1669
+ } else {
1670
+ <span class="cstat-no" title="statement not covered" > viewComponent = options;</span>
1671
+ }
1672
+ <span class="cstat-no" title="statement not covered" > return viewComponent.delete();</span>
1673
+ }
1674
+ &nbsp;
1675
+ <span class="fstat-no" title="function not covered" > __removeViewComponent(</span>viewComponent: ViewComponent) {
1676
+ const parentKey = <span class="cstat-no" title="statement not covered" >viewComponent.parentKey;</span>
1677
+ const params: Params = <span class="cstat-no" title="statement not covered" >{</span>
1678
+ parentNode: this,
1679
+ parentKey,
1680
+ index: -1,
1681
+ object: null,
1682
+ oldObject: viewComponent,
1683
+ };
1684
+ <span class="cstat-no" title="statement not covered" > if (parentKey) {</span>
1685
+ <span class="cstat-no" title="statement not covered" > params.parentKey = parentKey;</span>
1686
+ // @ts-ignore
1687
+ const t = <span class="cstat-no" title="statement not covered" >this.__v_raw || this;</span>
1688
+ // @ts-ignore
1689
+ const n = <span class="cstat-no" title="statement not covered" >viewComponent.__v_raw || viewComponent;</span>
1690
+ <span class="cstat-no" title="statement not covered" > if (Array.isArray((t as any)[parentKey])) {</span>
1691
+ const index = (<span class="cstat-no" title="statement not covered" >t as any)[parentKey].indexOf(n);</span>
1692
+ <span class="cstat-no" title="statement not covered" > ~index &amp;&amp; (this as any)[parentKey].splice(index, 1);</span>
1693
+ <span class="cstat-no" title="statement not covered" > params.index = index;</span>
1694
+ } else <span class="cstat-no" title="statement not covered" >if ((t as any)[parentKey] === n) {</span>
1695
+ <span class="cstat-no" title="statement not covered" > params.index = 0;</span>
1696
+ (<span class="cstat-no" title="statement not covered" >this as any)[parentKey] = undefined;</span>
1697
+ }
1698
+ }
1699
+ <span class="cstat-no" title="statement not covered" > return params;</span>
1700
+ }
1701
+ &nbsp;
1702
+ //================================================================================
1703
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1704
+ // 自动生成的代码已结束。下面可以手动编写。
1705
+ //================================================================================
1706
+ <span class="fstat-no" title="function not covered" > getNamespace(</span>) {
1707
+ <span class="cstat-no" title="statement not covered" > if (this.parentNode &amp;&amp; (this.parentNode as Namespace).getNamespace) {</span>
1708
+ const parentNamespace = (<span class="cstat-no" title="statement not covered" >this.parentNode as Namespace).getNamespace();</span>
1709
+ const parentName = <span class="cstat-no" title="statement not covered" >this.parentNode.name;</span>
1710
+ const arr = <span class="cstat-no" title="statement not covered" >[parentNamespace];</span>
1711
+ <span class="cstat-no" title="statement not covered" > if (this.parentNode.concept !== 'App' &amp;&amp; parentName) {</span>
1712
+ <span class="cstat-no" title="statement not covered" > arr.push(parentName);</span>
1713
+ }
1714
+ <span class="cstat-no" title="statement not covered" > return `${arr.join('.')}.frontends`;</span>
1715
+ }
1716
+ <span class="cstat-no" title="statement not covered" > throw new Error('无法获取命名空间,请设置 parentNode!');</span>
1717
+ }
1718
+ &nbsp;
1719
+ <span class="fstat-no" title="function not covered" > getTsNamespace(</span>) {
1720
+ <span class="cstat-no" title="statement not covered" > if (this.parentNode &amp;&amp; (this.parentNode as Namespace).getTsNamespace) {</span>
1721
+ const parentNamespace = (<span class="cstat-no" title="statement not covered" >this.parentNode as Namespace).getTsNamespace();</span>
1722
+ const parentName = <span class="cstat-no" title="statement not covered" >this.parentNode.tsName || this.parentNode.name;</span>
1723
+ const arr = <span class="cstat-no" title="statement not covered" >[parentNamespace];</span>
1724
+ <span class="cstat-no" title="statement not covered" > if (this.parentNode.concept !== 'App' &amp;&amp; parentName) {</span>
1725
+ <span class="cstat-no" title="statement not covered" > arr.push(parentName);</span>
1726
+ }
1727
+ <span class="cstat-no" title="statement not covered" > return `${arr.join('.')}.frontends`;</span>
1728
+ }
1729
+ <span class="cstat-no" title="statement not covered" > throw new Error('无法获取命名空间,请设置 parentNode!');</span>
1730
+ }
1731
+ &nbsp;
1732
+ //================================================================================
1733
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
1734
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
1735
+ //================================================================================
1736
+ }
1737
+ &nbsp;
1738
+ export default FrontendLibrary;
1739
+ //================================================================================
1740
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1741
+ // 自动生成的代码已结束。下面可以手动编写。
1742
+ //================================================================================
1743
+ &nbsp;</pre></td></tr></table></pre>
1744
+
1745
+ <div class='push'></div><!-- for sticky footer -->
1746
+ </div><!-- /wrapper -->
1747
+ <div class='footer quiet pad2 space-top1 center small'>
1748
+ Code coverage generated by
1749
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1750
+ at 2023-10-27T11:50:55.546Z
1751
+ </div>
1752
+ <script src="../../prettify.js"></script>
1753
+ <script>
1754
+ window.onload = function () {
1755
+ prettyPrint();
1756
+ };
1757
+ </script>
1758
+ <script src="../../sorter.js"></script>
1759
+ <script src="../../block-navigation.js"></script>
1760
+ </body>
1761
+ </html>
1762
+