@lcap/nasl 3.4.0-beta.8 → 3.4.0-beta.9

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 (407) hide show
  1. package/.nyc_output/559608df-ab15-4969-acf0-5239dacd6111.json +1 -0
  2. package/.nyc_output/processinfo/559608df-ab15-4969-acf0-5239dacd6111.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 +476 -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 +718 -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 +1282 -0
  19. package/coverage/src/breakpoint/generator/CallbackNode.ts.html +196 -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 +4303 -0
  35. package/coverage/src/common/Command.ts.html +310 -0
  36. package/coverage/src/common/EventEmitter.ts.html +370 -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 +206 -0
  40. package/coverage/src/common/index.ts.html +97 -0
  41. package/coverage/src/common/utils.ts.html +136 -0
  42. package/coverage/src/concepts/Abort__.ts.html +358 -0
  43. package/coverage/src/concepts/AbstractInterface__.ts.html +280 -0
  44. package/coverage/src/concepts/Anchor__.ts.html +703 -0
  45. package/coverage/src/concepts/AnonymousFunction__.ts.html +2122 -0
  46. package/coverage/src/concepts/App__.ts.html +14305 -0
  47. package/coverage/src/concepts/Argument__.ts.html +1033 -0
  48. package/coverage/src/concepts/Assignee__.ts.html +2326 -0
  49. package/coverage/src/concepts/AssignmentLine__.ts.html +442 -0
  50. package/coverage/src/concepts/Assignment__.ts.html +1201 -0
  51. package/coverage/src/concepts/Attribute__.ts.html +760 -0
  52. package/coverage/src/concepts/AuthInterface__.ts.html +370 -0
  53. package/coverage/src/concepts/AuthLogicForCallInterface__.ts.html +1948 -0
  54. package/coverage/src/concepts/AuthLogic__.ts.html +793 -0
  55. package/coverage/src/concepts/BackendVariable__.ts.html +1567 -0
  56. package/coverage/src/concepts/Backend__.ts.html +1243 -0
  57. package/coverage/src/concepts/BatchAssignment__.ts.html +3406 -0
  58. package/coverage/src/concepts/BinaryExpression__.ts.html +1519 -0
  59. package/coverage/src/concepts/BindAttribute__.ts.html +3955 -0
  60. package/coverage/src/concepts/BindDirective__.ts.html +2026 -0
  61. package/coverage/src/concepts/BindEvent__.ts.html +3502 -0
  62. package/coverage/src/concepts/BindStyle__.ts.html +1669 -0
  63. package/coverage/src/concepts/Block__.ts.html +910 -0
  64. package/coverage/src/concepts/BooleanLiteral__.ts.html +445 -0
  65. package/coverage/src/concepts/CallAuthInterface__.ts.html +1672 -0
  66. package/coverage/src/concepts/CallConnector__.ts.html +949 -0
  67. package/coverage/src/concepts/CallFunction__.ts.html +2290 -0
  68. package/coverage/src/concepts/CallInterface__.ts.html +2752 -0
  69. package/coverage/src/concepts/CallLogic__.ts.html +4924 -0
  70. package/coverage/src/concepts/CallQueryComponent__.ts.html +5341 -0
  71. package/coverage/src/concepts/Comment__.ts.html +427 -0
  72. package/coverage/src/concepts/CompletionProperty__.ts.html +952 -0
  73. package/coverage/src/concepts/ConfigGroup__.ts.html +1132 -0
  74. package/coverage/src/concepts/ConfigPropertyValue__.ts.html +427 -0
  75. package/coverage/src/concepts/ConfigProperty__.ts.html +1405 -0
  76. package/coverage/src/concepts/Configuration__.ts.html +1054 -0
  77. package/coverage/src/concepts/Connection__.ts.html +1435 -0
  78. package/coverage/src/concepts/ConnectorTrigger__.ts.html +598 -0
  79. package/coverage/src/concepts/Connector__.ts.html +4378 -0
  80. package/coverage/src/concepts/Constant__.ts.html +973 -0
  81. package/coverage/src/concepts/CountersignPolicy__.ts.html +316 -0
  82. package/coverage/src/concepts/DataSource__.ts.html +1825 -0
  83. package/coverage/src/concepts/DatabaseTypeAnnotation__.ts.html +334 -0
  84. package/coverage/src/concepts/DefaultValue__.ts.html +1000 -0
  85. package/coverage/src/concepts/Destination__.ts.html +2773 -0
  86. package/coverage/src/concepts/End__.ts.html +463 -0
  87. package/coverage/src/concepts/EntityIndex__.ts.html +817 -0
  88. package/coverage/src/concepts/EntityProperty__.ts.html +2776 -0
  89. package/coverage/src/concepts/Entity__.ts.html +3028 -0
  90. package/coverage/src/concepts/EnumItem__.ts.html +580 -0
  91. package/coverage/src/concepts/Enum__.ts.html +1291 -0
  92. package/coverage/src/concepts/Event__.ts.html +1111 -0
  93. package/coverage/src/concepts/ExternalDestination__.ts.html +1087 -0
  94. package/coverage/src/concepts/ForEachStatement__.ts.html +2005 -0
  95. package/coverage/src/concepts/FrontendLibrary__.ts.html +1762 -0
  96. package/coverage/src/concepts/FrontendVariable__.ts.html +292 -0
  97. package/coverage/src/concepts/Frontend__.ts.html +4117 -0
  98. package/coverage/src/concepts/Function__.ts.html +3751 -0
  99. package/coverage/src/concepts/I18nInfo__.ts.html +436 -0
  100. package/coverage/src/concepts/Identifier__.ts.html +1087 -0
  101. package/coverage/src/concepts/IfStatement__.ts.html +1657 -0
  102. package/coverage/src/concepts/ImportedInterface__.ts.html +268 -0
  103. package/coverage/src/concepts/Integration__.ts.html +1279 -0
  104. package/coverage/src/concepts/InterfaceParam__.ts.html +1144 -0
  105. package/coverage/src/concepts/Interface__.ts.html +3496 -0
  106. package/coverage/src/concepts/JSBlock__.ts.html +451 -0
  107. package/coverage/src/concepts/JavaLogic__.ts.html +493 -0
  108. package/coverage/src/concepts/LogicItem__.ts.html +1201 -0
  109. package/coverage/src/concepts/Logic__.ts.html +7495 -0
  110. package/coverage/src/concepts/MatchCase__.ts.html +3013 -0
  111. package/coverage/src/concepts/Match__.ts.html +2527 -0
  112. package/coverage/src/concepts/MemberExpression__.ts.html +1783 -0
  113. package/coverage/src/concepts/MetadataType__.ts.html +2053 -0
  114. package/coverage/src/concepts/MicroApp__.ts.html +439 -0
  115. package/coverage/src/concepts/Module__.ts.html +9874 -0
  116. package/coverage/src/concepts/MsgTriggerEvent__.ts.html +1072 -0
  117. package/coverage/src/concepts/MsgTriggerLauncher__.ts.html +1045 -0
  118. package/coverage/src/concepts/MultiApprovalPolicy__.ts.html +292 -0
  119. package/coverage/src/concepts/Namespace__.ts.html +8209 -0
  120. package/coverage/src/concepts/NewComposite__.ts.html +4909 -0
  121. package/coverage/src/concepts/NewList__.ts.html +1756 -0
  122. package/coverage/src/concepts/NewMap__.ts.html +2431 -0
  123. package/coverage/src/concepts/New__.ts.html +319 -0
  124. package/coverage/src/concepts/NullLiteral__.ts.html +376 -0
  125. package/coverage/src/concepts/NumericLiteral__.ts.html +730 -0
  126. package/coverage/src/concepts/OqlQueryComponent__.ts.html +1267 -0
  127. package/coverage/src/concepts/OverriddenLogic__.ts.html +6940 -0
  128. package/coverage/src/concepts/Param__.ts.html +1801 -0
  129. package/coverage/src/concepts/Point__.ts.html +334 -0
  130. package/coverage/src/concepts/ProcessComponent__.ts.html +1717 -0
  131. package/coverage/src/concepts/ProcessElement__.ts.html +6292 -0
  132. package/coverage/src/concepts/ProcessOutcome__.ts.html +424 -0
  133. package/coverage/src/concepts/ProcessOutcomes__.ts.html +415 -0
  134. package/coverage/src/concepts/Process__.ts.html +4915 -0
  135. package/coverage/src/concepts/QueryAggregateExpression__.ts.html +619 -0
  136. package/coverage/src/concepts/QueryFieldExpression__.ts.html +613 -0
  137. package/coverage/src/concepts/QueryFromExpression__.ts.html +970 -0
  138. package/coverage/src/concepts/QueryGroupByExpression__.ts.html +610 -0
  139. package/coverage/src/concepts/QueryJoinExpression__.ts.html +1627 -0
  140. package/coverage/src/concepts/QueryLimitExpression__.ts.html +694 -0
  141. package/coverage/src/concepts/QueryOrderByExpression__.ts.html +739 -0
  142. package/coverage/src/concepts/QuerySelectExpression__.ts.html +1741 -0
  143. package/coverage/src/concepts/Rect__.ts.html +376 -0
  144. package/coverage/src/concepts/Return__.ts.html +1393 -0
  145. package/coverage/src/concepts/Role__.ts.html +631 -0
  146. package/coverage/src/concepts/SelectMembers__.ts.html +1303 -0
  147. package/coverage/src/concepts/SequentialPolicy__.ts.html +259 -0
  148. package/coverage/src/concepts/Slot__.ts.html +655 -0
  149. package/coverage/src/concepts/SqlQueryComponent__.ts.html +1042 -0
  150. package/coverage/src/concepts/Start__.ts.html +331 -0
  151. package/coverage/src/concepts/StaticString__.ts.html +403 -0
  152. package/coverage/src/concepts/StringInterpolation__.ts.html +1210 -0
  153. package/coverage/src/concepts/StringLiteral__.ts.html +535 -0
  154. package/coverage/src/concepts/StructureProperty__.ts.html +1189 -0
  155. package/coverage/src/concepts/Structure__.ts.html +2176 -0
  156. package/coverage/src/concepts/SwitchCase__.ts.html +1225 -0
  157. package/coverage/src/concepts/SwitchStatement__.ts.html +934 -0
  158. package/coverage/src/concepts/Theme__.ts.html +361 -0
  159. package/coverage/src/concepts/Transactional__.ts.html +631 -0
  160. package/coverage/src/concepts/TriggerEvent__.ts.html +1039 -0
  161. package/coverage/src/concepts/TriggerLauncher__.ts.html +808 -0
  162. package/coverage/src/concepts/TypeAnnotation__.ts.html +3949 -0
  163. package/coverage/src/concepts/TypeParam__.ts.html +349 -0
  164. package/coverage/src/concepts/UnaryExpression__.ts.html +775 -0
  165. package/coverage/src/concepts/Unparsed__.ts.html +418 -0
  166. package/coverage/src/concepts/UseComponent__.ts.html +334 -0
  167. package/coverage/src/concepts/ValidationRule__.ts.html +1879 -0
  168. package/coverage/src/concepts/Variable__.ts.html +1570 -0
  169. package/coverage/src/concepts/ViewBlock__.ts.html +355 -0
  170. package/coverage/src/concepts/ViewComponent__.ts.html +4255 -0
  171. package/coverage/src/concepts/ViewElement__.ts.html +9013 -0
  172. package/coverage/src/concepts/View__.ts.html +8932 -0
  173. package/coverage/src/concepts/WhileStatement__.ts.html +1126 -0
  174. package/coverage/src/concepts/basics/constants.ts.html +88 -0
  175. package/coverage/src/concepts/basics/index.html +116 -0
  176. package/coverage/src/concepts/basics/stdlib/index.html +356 -0
  177. package/coverage/src/concepts/basics/stdlib/index.ts.html +208 -0
  178. package/coverage/src/concepts/basics/stdlib/nasl.auth.ts.html +565 -0
  179. package/coverage/src/concepts/basics/stdlib/nasl.browser.ts.html +517 -0
  180. package/coverage/src/concepts/basics/stdlib/nasl.collection.ts.html +226 -0
  181. package/coverage/src/concepts/basics/stdlib/nasl.configuration.ts.html +172 -0
  182. package/coverage/src/concepts/basics/stdlib/nasl.core.ts.html +214 -0
  183. package/coverage/src/concepts/basics/stdlib/nasl.event.ts.html +145 -0
  184. package/coverage/src/concepts/basics/stdlib/nasl.http.ts.html +589 -0
  185. package/coverage/src/concepts/basics/stdlib/nasl.interface.ts.html +214 -0
  186. package/coverage/src/concepts/basics/stdlib/nasl.io.ts.html +229 -0
  187. package/coverage/src/concepts/basics/stdlib/nasl.logging.ts.html +268 -0
  188. package/coverage/src/concepts/basics/stdlib/nasl.process.ts.html +1999 -0
  189. package/coverage/src/concepts/basics/stdlib/nasl.ui.ts.html +3259 -0
  190. package/coverage/src/concepts/basics/stdlib/nasl.util.ts.html +6844 -0
  191. package/coverage/src/concepts/basics/stdlib/nasl.validation.ts.html +1768 -0
  192. package/coverage/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts.html +163 -0
  193. package/coverage/src/concepts/basics/stdlib/timeZone.ts.html +664 -0
  194. package/coverage/src/concepts/basics/types/coreTypeList.ts.html +121 -0
  195. package/coverage/src/concepts/basics/types/index.html +131 -0
  196. package/coverage/src/concepts/basics/types/index.ts.html +160 -0
  197. package/coverage/src/concepts/index.html +2021 -0
  198. package/coverage/src/concepts/index.ts.html +103 -0
  199. package/coverage/src/concepts/index__.ts.html +463 -0
  200. package/coverage/src/concepts/utils/asserts.ts.html +27967 -0
  201. package/coverage/src/concepts/utils/index.html +116 -0
  202. package/coverage/src/config.ts.html +325 -0
  203. package/coverage/src/decorators/index.html +131 -0
  204. package/coverage/src/decorators/index.ts.html +574 -0
  205. package/coverage/src/decorators/promise.ts.html +169 -0
  206. package/coverage/src/eventBus.ts.html +100 -0
  207. package/coverage/src/generator/compileComponent.ts.html +142 -0
  208. package/coverage/src/generator/genBundleFiles.ts.html +1822 -0
  209. package/coverage/src/generator/genHash.ts.html +124 -0
  210. package/coverage/src/generator/genMetaData.ts.html +1129 -0
  211. package/coverage/src/generator/genReleaseBody.ts.html +1282 -0
  212. package/coverage/src/generator/icestark.ts.html +226 -0
  213. package/coverage/src/generator/index.html +266 -0
  214. package/coverage/src/generator/index.ts.html +106 -0
  215. package/coverage/src/generator/microApp.ts.html +172 -0
  216. package/coverage/src/generator/permission.ts.html +1108 -0
  217. package/coverage/src/generator/qiankun.ts.html +238 -0
  218. package/coverage/src/generator/styleReplacer.ts.html +199 -0
  219. package/coverage/src/index.html +146 -0
  220. package/coverage/src/index.ts.html +121 -0
  221. package/coverage/src/manager/diagnostic.ts.html +439 -0
  222. package/coverage/src/manager/index.html +131 -0
  223. package/coverage/src/manager/stepRecorder.ts.html +457 -0
  224. package/coverage/src/natural/genNaturalTS.ts.html +355 -0
  225. package/coverage/src/natural/index.html +161 -0
  226. package/coverage/src/natural/index.ts.html +91 -0
  227. package/coverage/src/natural/naslStdlibMap.ts.html +157 -0
  228. package/coverage/src/natural/transformTSCode.ts.html +2707 -0
  229. package/coverage/src/sentry/index.html +116 -0
  230. package/coverage/src/sentry/index.ts.html +682 -0
  231. package/coverage/src/server/createUiTs.ts.html +919 -0
  232. package/coverage/src/server/entity2LogicNamespace.ts.html +1294 -0
  233. package/coverage/src/server/event.js.html +526 -0
  234. package/coverage/src/server/extendBaseNode.ts.html +1792 -0
  235. package/coverage/src/server/formatTsUtils.ts.html +2692 -0
  236. package/coverage/src/server/getConnector.ts.html +316 -0
  237. package/coverage/src/server/getExtensionModules.ts.html +178 -0
  238. package/coverage/src/server/getFunctions.ts.html +133 -0
  239. package/coverage/src/server/getInterfaces.ts.html +229 -0
  240. package/coverage/src/server/getLogging.ts.html +100 -0
  241. package/coverage/src/server/getLogics.ts.html +1375 -0
  242. package/coverage/src/server/getMemberIdentifier.ts.html +1672 -0
  243. package/coverage/src/server/getProcessComponents.ts.html +112 -0
  244. package/coverage/src/server/getProcesses.ts.html +2173 -0
  245. package/coverage/src/server/getValidates.ts.html +115 -0
  246. package/coverage/src/server/index.html +401 -0
  247. package/coverage/src/server/index.ts.html +232 -0
  248. package/coverage/src/server/naslServer.ts.html +14659 -0
  249. package/coverage/src/server/naslStdlibMap.ts.html +241 -0
  250. package/coverage/src/server/process2LogicNamespace.ts.html +454 -0
  251. package/coverage/src/server/translator.ts.html +2611 -0
  252. package/coverage/src/service/creator/add.configs.js.html +397 -0
  253. package/coverage/src/service/creator/errHandles.js.html +313 -0
  254. package/coverage/src/service/creator/index.html +146 -0
  255. package/coverage/src/service/creator/index.js.html +352 -0
  256. package/coverage/src/service/datasource/api.js.html +118 -0
  257. package/coverage/src/service/datasource/index.html +131 -0
  258. package/coverage/src/service/datasource/index.js.html +103 -0
  259. package/coverage/src/service/logic/api.js.html +109 -0
  260. package/coverage/src/service/logic/index.html +131 -0
  261. package/coverage/src/service/logic/index.js.html +103 -0
  262. package/coverage/src/service/storage/api.js.html +202 -0
  263. package/coverage/src/service/storage/index.html +206 -0
  264. package/coverage/src/service/storage/index.ts.html +103 -0
  265. package/coverage/src/service/storage/init.ts.html +3694 -0
  266. package/coverage/src/service/storage/jsoner.ts.html +565 -0
  267. package/coverage/src/service/storage/map.ts.html +256 -0
  268. package/coverage/src/service/storage/service.ts.html +331 -0
  269. package/coverage/src/service/storage/storagePoint.ts.html +304 -0
  270. package/coverage/src/templator/genCallComponentLogic.ts.html +163 -0
  271. package/coverage/src/templator/genCreateBlock.ts.html +1072 -0
  272. package/coverage/src/templator/genCurdEditMultipleKeyBlock.ts.html +1609 -0
  273. package/coverage/src/templator/genCurdMultipleKeyBlock.ts.html +2236 -0
  274. package/coverage/src/templator/genEditTableBlock.ts.html +1018 -0
  275. package/coverage/src/templator/genEnumSelectBlock.ts.html +178 -0
  276. package/coverage/src/templator/genGetBlock.ts.html +451 -0
  277. package/coverage/src/templator/genGridViewBlock.ts.html +1114 -0
  278. package/coverage/src/templator/genListViewBlock.ts.html +475 -0
  279. package/coverage/src/templator/genQueryComponent.ts.html +1207 -0
  280. package/coverage/src/templator/genSelectBlock.ts.html +1243 -0
  281. package/coverage/src/templator/genTableBlock.ts.html +973 -0
  282. package/coverage/src/templator/genUpdateBlock.ts.html +1195 -0
  283. package/coverage/src/templator/index.html +326 -0
  284. package/coverage/src/templator/index.ts.html +154 -0
  285. package/coverage/src/templator/utils.ts.html +1924 -0
  286. package/coverage/src/translator/constant.ts.html +106 -0
  287. package/coverage/src/translator/index.html +146 -0
  288. package/coverage/src/translator/index.ts.html +94 -0
  289. package/coverage/src/translator/utils.ts.html +757 -0
  290. package/coverage/src/utils/cookie.ts.html +265 -0
  291. package/coverage/src/utils/env.ts.html +91 -0
  292. package/coverage/src/utils/i18nInfo.ts.html +166 -0
  293. package/coverage/src/utils/index.html +221 -0
  294. package/coverage/src/utils/index.ts.html +748 -0
  295. package/coverage/src/utils/logger.ts.html +145 -0
  296. package/coverage/src/utils/sortTsString.ts.html +202 -0
  297. package/coverage/src/utils/string.ts.html +502 -0
  298. package/coverage/src/utils/time-slicing/constant.ts.html +196 -0
  299. package/coverage/src/utils/time-slicing/controller.ts.html +1144 -0
  300. package/coverage/src/utils/time-slicing/index.html +236 -0
  301. package/coverage/src/utils/time-slicing/index.ts.html +103 -0
  302. package/coverage/src/utils/time-slicing/page-state.ts.html +121 -0
  303. package/coverage/src/utils/time-slicing/performance.ts.html +253 -0
  304. package/coverage/src/utils/time-slicing/runner.ts.html +241 -0
  305. package/coverage/src/utils/time-slicing/tool.ts.html +220 -0
  306. package/coverage/src/utils/time-slicing/utils.ts.html +355 -0
  307. package/coverage/src/utils/time-slicing/wrapper.ts.html +259 -0
  308. package/coverage/src/utils/time-slicing.ts.html +418 -0
  309. package/coverage/src/utils/traverse.ts.html +568 -0
  310. package/coverage/src/utils/window.ts.html +112 -0
  311. package/out/concepts/BackendVariable__.js +10 -2
  312. package/out/concepts/BackendVariable__.js.map +1 -1
  313. package/out/concepts/BinaryExpression__.d.ts +2 -0
  314. package/out/concepts/BinaryExpression__.js +4 -0
  315. package/out/concepts/BinaryExpression__.js.map +1 -1
  316. package/out/concepts/CallFunction__.d.ts +2 -0
  317. package/out/concepts/CallFunction__.js +14 -2
  318. package/out/concepts/CallFunction__.js.map +1 -1
  319. package/out/concepts/CallInterface__.d.ts +2 -0
  320. package/out/concepts/CallInterface__.js +5 -1
  321. package/out/concepts/CallInterface__.js.map +1 -1
  322. package/out/concepts/CallLogic__.d.ts +3 -2
  323. package/out/concepts/CallLogic__.js +15 -26
  324. package/out/concepts/CallLogic__.js.map +1 -1
  325. package/out/concepts/Logic__.js +0 -1
  326. package/out/concepts/Logic__.js.map +1 -1
  327. package/out/concepts/MemberExpression__.d.ts +1 -1
  328. package/out/concepts/MemberExpression__.js +3 -3
  329. package/out/concepts/MemberExpression__.js.map +1 -1
  330. package/out/concepts/NewComposite__.d.ts +2 -0
  331. package/out/concepts/NewComposite__.js +4 -0
  332. package/out/concepts/NewComposite__.js.map +1 -1
  333. package/out/concepts/NewList__.d.ts +2 -0
  334. package/out/concepts/NewList__.js +4 -0
  335. package/out/concepts/NewList__.js.map +1 -1
  336. package/out/concepts/NewMap__.d.ts +2 -0
  337. package/out/concepts/NewMap__.js +4 -0
  338. package/out/concepts/NewMap__.js.map +1 -1
  339. package/out/concepts/Param__.js +11 -3
  340. package/out/concepts/Param__.js.map +1 -1
  341. package/out/concepts/Return__.js +10 -2
  342. package/out/concepts/Return__.js.map +1 -1
  343. package/out/concepts/Variable__.js +10 -2
  344. package/out/concepts/Variable__.js.map +1 -1
  345. package/out/concepts/utils/quick-info.d.ts +13 -0
  346. package/out/concepts/utils/quick-info.js +51 -0
  347. package/out/concepts/utils/quick-info.js.map +1 -0
  348. package/out/server/naslServer.js +2 -48
  349. package/out/server/naslServer.js.map +1 -1
  350. package/out/translator/utils.d.ts +2 -2
  351. package/package.json +1 -1
  352. package/src/concepts/BackendVariable__.ts +10 -2
  353. package/src/concepts/BinaryExpression__.ts +5 -1
  354. package/src/concepts/CallFunction__.ts +15 -2
  355. package/src/concepts/CallInterface__.ts +6 -1
  356. package/src/concepts/CallLogic__.ts +15 -30
  357. package/src/concepts/Logic__.ts +0 -1
  358. package/src/concepts/MemberExpression__.ts +3 -3
  359. package/src/concepts/NewComposite__.ts +5 -5
  360. package/src/concepts/NewList__.ts +6 -2
  361. package/src/concepts/NewMap__.ts +6 -3
  362. package/src/concepts/Param__.ts +11 -3
  363. package/src/concepts/Return__.ts +10 -2
  364. package/src/concepts/Variable__.ts +10 -2
  365. package/src/concepts/utils/quick-info.ts +64 -0
  366. package/src/server/naslServer.ts +1 -45
  367. package/src/translator/utils.ts +2 -2
  368. package/test/concepts/binary-expression/__snapshots__/getQuickInfoOffset.spec.ts.snap +25 -0
  369. package/test/concepts/binary-expression/getQuickInfoOffset.spec.ts +19 -0
  370. package/test/concepts/call-function/__snapshots__/getQuickInfoOffset.spec.ts.snap +41 -0
  371. package/test/concepts/call-function/getQuickInfoOffset.spec.ts +19 -0
  372. package/test/concepts/call-interface/__snapshots__/getQuickInfoOffset.spec.ts.snap +86 -0
  373. package/test/concepts/call-interface/__snapshots__/toEmbeddedTS.spec.ts.snap +3 -3
  374. package/test/concepts/call-interface/getQuickInfoOffset.spec.ts +19 -0
  375. package/test/concepts/call-logic/getQuickInfoOffset.spec.ts +2 -7
  376. package/test/concepts/new-composite/__snapshots__/getQuickInfoOffset.spec.ts.snap +104 -0
  377. package/test/concepts/new-composite/__snapshots__/toEmbeddedTS.spec.ts.snap +97 -0
  378. package/test/concepts/new-composite/__snapshots__/toJS.spec.ts.snap +43 -0
  379. package/test/concepts/new-composite/constant.ts +5 -0
  380. package/test/concepts/new-composite/fixtures/nested-transform.json +241 -0
  381. package/test/concepts/new-composite/fixtures/nested.json +146 -0
  382. package/test/concepts/new-composite/fixtures/normal.json +63 -0
  383. package/test/concepts/new-composite/getQuickInfoOffset.spec.ts +19 -0
  384. package/test/concepts/new-composite/toEmbeddedTS.spec.ts +15 -0
  385. package/test/concepts/new-composite/toJS.spec.ts +14 -0
  386. package/test/concepts/new-list/__snapshots__/getQuickInfoOffset.spec.ts.snap +165 -0
  387. package/test/concepts/new-list/__snapshots__/toEmbeddedTS.spec.ts.snap +207 -0
  388. package/test/concepts/new-list/__snapshots__/toJS.spec.ts.snap +63 -0
  389. package/test/concepts/new-list/constant.ts +5 -0
  390. package/test/concepts/new-list/fixtures/nested-map.json +117 -0
  391. package/test/concepts/new-list/fixtures/nested-tranform.json +140 -0
  392. package/test/concepts/new-list/fixtures/nested.json +107 -0
  393. package/test/concepts/new-list/fixtures/normal.json +95 -0
  394. package/test/concepts/new-list/getQuickInfoOffset.spec.ts +19 -0
  395. package/test/concepts/new-list/toEmbeddedTS.spec.ts +15 -0
  396. package/test/concepts/new-list/toJS.spec.ts +14 -0
  397. package/test/concepts/new-map/__snapshots__/getQuickInfoOffset.spec.ts.snap +115 -0
  398. package/test/concepts/new-map/__snapshots__/toEmbeddedTS.spec.ts.snap +192 -0
  399. package/test/concepts/new-map/__snapshots__/toJS.spec.ts.snap +54 -0
  400. package/test/concepts/new-map/constant.ts +5 -0
  401. package/test/concepts/new-map/fixtures/nested-transform.json +169 -0
  402. package/test/concepts/new-map/fixtures/nested.json +141 -0
  403. package/test/concepts/new-map/fixtures/normal.json +101 -0
  404. package/test/concepts/new-map/getQuickInfoOffset.spec.ts +19 -0
  405. package/test/concepts/new-map/toEmbeddedTS.spec.ts +15 -0
  406. package/test/concepts/new-map/toJS.spec.ts +14 -0
  407. package/test/concepts/utils.ts +17 -0
@@ -0,0 +1,1924 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/templator/utils.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/templator</a> utils.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">21.9% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>23/105</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">1.81% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>1/55</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">8.88% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>4/45</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">22.34% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>21/94</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>
626
+ <a name='L561'></a><a href='#L561'>561</a>
627
+ <a name='L562'></a><a href='#L562'>562</a>
628
+ <a name='L563'></a><a href='#L563'>563</a>
629
+ <a name='L564'></a><a href='#L564'>564</a>
630
+ <a name='L565'></a><a href='#L565'>565</a>
631
+ <a name='L566'></a><a href='#L566'>566</a>
632
+ <a name='L567'></a><a href='#L567'>567</a>
633
+ <a name='L568'></a><a href='#L568'>568</a>
634
+ <a name='L569'></a><a href='#L569'>569</a>
635
+ <a name='L570'></a><a href='#L570'>570</a>
636
+ <a name='L571'></a><a href='#L571'>571</a>
637
+ <a name='L572'></a><a href='#L572'>572</a>
638
+ <a name='L573'></a><a href='#L573'>573</a>
639
+ <a name='L574'></a><a href='#L574'>574</a>
640
+ <a name='L575'></a><a href='#L575'>575</a>
641
+ <a name='L576'></a><a href='#L576'>576</a>
642
+ <a name='L577'></a><a href='#L577'>577</a>
643
+ <a name='L578'></a><a href='#L578'>578</a>
644
+ <a name='L579'></a><a href='#L579'>579</a>
645
+ <a name='L580'></a><a href='#L580'>580</a>
646
+ <a name='L581'></a><a href='#L581'>581</a>
647
+ <a name='L582'></a><a href='#L582'>582</a>
648
+ <a name='L583'></a><a href='#L583'>583</a>
649
+ <a name='L584'></a><a href='#L584'>584</a>
650
+ <a name='L585'></a><a href='#L585'>585</a>
651
+ <a name='L586'></a><a href='#L586'>586</a>
652
+ <a name='L587'></a><a href='#L587'>587</a>
653
+ <a name='L588'></a><a href='#L588'>588</a>
654
+ <a name='L589'></a><a href='#L589'>589</a>
655
+ <a name='L590'></a><a href='#L590'>590</a>
656
+ <a name='L591'></a><a href='#L591'>591</a>
657
+ <a name='L592'></a><a href='#L592'>592</a>
658
+ <a name='L593'></a><a href='#L593'>593</a>
659
+ <a name='L594'></a><a href='#L594'>594</a>
660
+ <a name='L595'></a><a href='#L595'>595</a>
661
+ <a name='L596'></a><a href='#L596'>596</a>
662
+ <a name='L597'></a><a href='#L597'>597</a>
663
+ <a name='L598'></a><a href='#L598'>598</a>
664
+ <a name='L599'></a><a href='#L599'>599</a>
665
+ <a name='L600'></a><a href='#L600'>600</a>
666
+ <a name='L601'></a><a href='#L601'>601</a>
667
+ <a name='L602'></a><a href='#L602'>602</a>
668
+ <a name='L603'></a><a href='#L603'>603</a>
669
+ <a name='L604'></a><a href='#L604'>604</a>
670
+ <a name='L605'></a><a href='#L605'>605</a>
671
+ <a name='L606'></a><a href='#L606'>606</a>
672
+ <a name='L607'></a><a href='#L607'>607</a>
673
+ <a name='L608'></a><a href='#L608'>608</a>
674
+ <a name='L609'></a><a href='#L609'>609</a>
675
+ <a name='L610'></a><a href='#L610'>610</a>
676
+ <a name='L611'></a><a href='#L611'>611</a>
677
+ <a name='L612'></a><a href='#L612'>612</a>
678
+ <a name='L613'></a><a href='#L613'>613</a>
679
+ <a name='L614'></a><a href='#L614'>614</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
680
+ <span class="cline-any cline-neutral">&nbsp;</span>
681
+ <span class="cline-any cline-neutral">&nbsp;</span>
682
+ <span class="cline-any cline-yes">1x</span>
683
+ <span class="cline-any cline-no">&nbsp;</span>
684
+ <span class="cline-any cline-no">&nbsp;</span>
685
+ <span class="cline-any cline-neutral">&nbsp;</span>
686
+ <span class="cline-any cline-no">&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-neutral">&nbsp;</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-yes">1x</span>
695
+ <span class="cline-any cline-no">&nbsp;</span>
696
+ <span class="cline-any cline-no">&nbsp;</span>
697
+ <span class="cline-any cline-no">&nbsp;</span>
698
+ <span class="cline-any cline-no">&nbsp;</span>
699
+ <span class="cline-any cline-neutral">&nbsp;</span>
700
+ <span class="cline-any cline-no">&nbsp;</span>
701
+ <span class="cline-any cline-no">&nbsp;</span>
702
+ <span class="cline-any cline-no">&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-no">&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-neutral">&nbsp;</span>
711
+ <span class="cline-any cline-neutral">&nbsp;</span>
712
+ <span class="cline-any cline-neutral">&nbsp;</span>
713
+ <span class="cline-any cline-yes">1x</span>
714
+ <span class="cline-any cline-no">&nbsp;</span>
715
+ <span class="cline-any cline-no">&nbsp;</span>
716
+ <span class="cline-any cline-neutral">&nbsp;</span>
717
+ <span class="cline-any cline-neutral">&nbsp;</span>
718
+ <span class="cline-any cline-yes">1x</span>
719
+ <span class="cline-any cline-no">&nbsp;</span>
720
+ <span class="cline-any cline-no">&nbsp;</span>
721
+ <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
725
+ <span class="cline-any cline-neutral">&nbsp;</span>
726
+ <span class="cline-any cline-no">&nbsp;</span>
727
+ <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
733
+ <span class="cline-any cline-neutral">&nbsp;</span>
734
+ <span class="cline-any cline-neutral">&nbsp;</span>
735
+ <span class="cline-any cline-no">&nbsp;</span>
736
+ <span class="cline-any cline-neutral">&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-no">&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-yes">1x</span>
749
+ <span class="cline-any cline-no">&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-yes">1x</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-neutral">&nbsp;</span>
765
+ <span class="cline-any cline-no">&nbsp;</span>
766
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
770
+ <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
774
+ <span class="cline-any cline-neutral">&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-no">&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-no">&nbsp;</span>
782
+ <span class="cline-any cline-neutral">&nbsp;</span>
783
+ <span class="cline-any cline-neutral">&nbsp;</span>
784
+ <span class="cline-any cline-neutral">&nbsp;</span>
785
+ <span class="cline-any cline-neutral">&nbsp;</span>
786
+ <span class="cline-any cline-neutral">&nbsp;</span>
787
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
797
+ <span class="cline-any cline-neutral">&nbsp;</span>
798
+ <span class="cline-any cline-neutral">&nbsp;</span>
799
+ <span class="cline-any cline-no">&nbsp;</span>
800
+ <span class="cline-any cline-neutral">&nbsp;</span>
801
+ <span class="cline-any cline-no">&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-yes">1x</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-no">&nbsp;</span>
818
+ <span class="cline-any cline-no">&nbsp;</span>
819
+ <span class="cline-any cline-no">&nbsp;</span>
820
+ <span class="cline-any cline-neutral">&nbsp;</span>
821
+ <span class="cline-any cline-neutral">&nbsp;</span>
822
+ <span class="cline-any cline-no">&nbsp;</span>
823
+ <span class="cline-any cline-no">&nbsp;</span>
824
+ <span class="cline-any cline-neutral">&nbsp;</span>
825
+ <span class="cline-any cline-neutral">&nbsp;</span>
826
+ <span class="cline-any cline-neutral">&nbsp;</span>
827
+ <span class="cline-any cline-yes">8x</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-yes">25x</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-yes">2x</span>
849
+ <span class="cline-any cline-neutral">&nbsp;</span>
850
+ <span class="cline-any cline-neutral">&nbsp;</span>
851
+ <span class="cline-any cline-neutral">&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-yes">4x</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-yes">1x</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-neutral">&nbsp;</span>
875
+ <span class="cline-any cline-neutral">&nbsp;</span>
876
+ <span class="cline-any cline-neutral">&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-neutral">&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-yes">1x</span>
885
+ <span class="cline-any cline-neutral">&nbsp;</span>
886
+ <span class="cline-any cline-neutral">&nbsp;</span>
887
+ <span class="cline-any cline-neutral">&nbsp;</span>
888
+ <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
917
+ <span class="cline-any cline-yes">1x</span>
918
+ <span class="cline-any cline-no">&nbsp;</span>
919
+ <span class="cline-any cline-neutral">&nbsp;</span>
920
+ <span class="cline-any cline-neutral">&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-no">&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-neutral">&nbsp;</span>
929
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
938
+ <span class="cline-any cline-neutral">&nbsp;</span>
939
+ <span class="cline-any cline-neutral">&nbsp;</span>
940
+ <span class="cline-any cline-neutral">&nbsp;</span>
941
+ <span class="cline-any cline-neutral">&nbsp;</span>
942
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
952
+ <span class="cline-any cline-neutral">&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-yes">1x</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-yes">1x</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-neutral">&nbsp;</span>
975
+ <span class="cline-any cline-neutral">&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-neutral">&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-no">&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-neutral">&nbsp;</span>
1006
+ <span class="cline-any cline-neutral">&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-no">&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-neutral">&nbsp;</span>
1031
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1037
+ <span class="cline-any cline-no">&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-no">&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-no">&nbsp;</span>
1052
+ <span class="cline-any cline-neutral">&nbsp;</span>
1053
+ <span class="cline-any cline-neutral">&nbsp;</span>
1054
+ <span class="cline-any cline-neutral">&nbsp;</span>
1055
+ <span class="cline-any cline-neutral">&nbsp;</span>
1056
+ <span class="cline-any cline-neutral">&nbsp;</span>
1057
+ <span class="cline-any cline-no">&nbsp;</span>
1058
+ <span class="cline-any cline-neutral">&nbsp;</span>
1059
+ <span class="cline-any cline-neutral">&nbsp;</span>
1060
+ <span class="cline-any cline-neutral">&nbsp;</span>
1061
+ <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
1074
+ <span class="cline-any cline-neutral">&nbsp;</span>
1075
+ <span class="cline-any cline-no">&nbsp;</span>
1076
+ <span class="cline-any cline-neutral">&nbsp;</span>
1077
+ <span class="cline-any cline-neutral">&nbsp;</span>
1078
+ <span class="cline-any cline-neutral">&nbsp;</span>
1079
+ <span class="cline-any cline-neutral">&nbsp;</span>
1080
+ <span class="cline-any cline-neutral">&nbsp;</span>
1081
+ <span class="cline-any cline-neutral">&nbsp;</span>
1082
+ <span class="cline-any cline-neutral">&nbsp;</span>
1083
+ <span class="cline-any cline-neutral">&nbsp;</span>
1084
+ <span class="cline-any cline-neutral">&nbsp;</span>
1085
+ <span class="cline-any cline-neutral">&nbsp;</span>
1086
+ <span class="cline-any cline-yes">1x</span>
1087
+ <span class="cline-any cline-neutral">&nbsp;</span>
1088
+ <span class="cline-any cline-neutral">&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-no">&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-neutral">&nbsp;</span>
1106
+ <span class="cline-any cline-no">&nbsp;</span>
1107
+ <span class="cline-any cline-neutral">&nbsp;</span>
1108
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1112
+ <span class="cline-any cline-neutral">&nbsp;</span>
1113
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1118
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1126
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1131
+ <span class="cline-any cline-neutral">&nbsp;</span>
1132
+ <span class="cline-any cline-neutral">&nbsp;</span>
1133
+ <span class="cline-any cline-neutral">&nbsp;</span>
1134
+ <span class="cline-any cline-neutral">&nbsp;</span>
1135
+ <span class="cline-any cline-neutral">&nbsp;</span>
1136
+ <span class="cline-any cline-neutral">&nbsp;</span>
1137
+ <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
1149
+ <span class="cline-any cline-no">&nbsp;</span>
1150
+ <span class="cline-any cline-neutral">&nbsp;</span>
1151
+ <span class="cline-any cline-neutral">&nbsp;</span>
1152
+ <span class="cline-any cline-neutral">&nbsp;</span>
1153
+ <span class="cline-any cline-neutral">&nbsp;</span>
1154
+ <span class="cline-any cline-neutral">&nbsp;</span>
1155
+ <span class="cline-any cline-neutral">&nbsp;</span>
1156
+ <span class="cline-any cline-neutral">&nbsp;</span>
1157
+ <span class="cline-any cline-neutral">&nbsp;</span>
1158
+ <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
1162
+ <span class="cline-any cline-neutral">&nbsp;</span>
1163
+ <span class="cline-any cline-neutral">&nbsp;</span>
1164
+ <span class="cline-any cline-no">&nbsp;</span>
1165
+ <span class="cline-any cline-neutral">&nbsp;</span>
1166
+ <span class="cline-any cline-neutral">&nbsp;</span>
1167
+ <span class="cline-any cline-neutral">&nbsp;</span>
1168
+ <span class="cline-any cline-neutral">&nbsp;</span>
1169
+ <span class="cline-any cline-neutral">&nbsp;</span>
1170
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</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>
1185
+ <span class="cline-any cline-neutral">&nbsp;</span>
1186
+ <span class="cline-any cline-neutral">&nbsp;</span>
1187
+ <span class="cline-any cline-neutral">&nbsp;</span>
1188
+ <span class="cline-any cline-neutral">&nbsp;</span>
1189
+ <span class="cline-any cline-neutral">&nbsp;</span>
1190
+ <span class="cline-any cline-neutral">&nbsp;</span>
1191
+ <span class="cline-any cline-neutral">&nbsp;</span>
1192
+ <span class="cline-any cline-neutral">&nbsp;</span>
1193
+ <span class="cline-any cline-neutral">&nbsp;</span>
1194
+ <span class="cline-any cline-neutral">&nbsp;</span>
1195
+ <span class="cline-any cline-neutral">&nbsp;</span>
1196
+ <span class="cline-any cline-neutral">&nbsp;</span>
1197
+ <span class="cline-any cline-neutral">&nbsp;</span>
1198
+ <span class="cline-any cline-no">&nbsp;</span>
1199
+ <span class="cline-any cline-neutral">&nbsp;</span>
1200
+ <span class="cline-any cline-neutral">&nbsp;</span>
1201
+ <span class="cline-any cline-neutral">&nbsp;</span>
1202
+ <span class="cline-any cline-neutral">&nbsp;</span>
1203
+ <span class="cline-any cline-neutral">&nbsp;</span>
1204
+ <span class="cline-any cline-neutral">&nbsp;</span>
1205
+ <span class="cline-any cline-neutral">&nbsp;</span>
1206
+ <span class="cline-any cline-neutral">&nbsp;</span>
1207
+ <span class="cline-any cline-neutral">&nbsp;</span>
1208
+ <span class="cline-any cline-neutral">&nbsp;</span>
1209
+ <span class="cline-any cline-neutral">&nbsp;</span>
1210
+ <span class="cline-any cline-neutral">&nbsp;</span>
1211
+ <span class="cline-any cline-neutral">&nbsp;</span>
1212
+ <span class="cline-any cline-neutral">&nbsp;</span>
1213
+ <span class="cline-any cline-neutral">&nbsp;</span>
1214
+ <span class="cline-any cline-neutral">&nbsp;</span>
1215
+ <span class="cline-any cline-neutral">&nbsp;</span>
1216
+ <span class="cline-any cline-neutral">&nbsp;</span>
1217
+ <span class="cline-any cline-yes">1x</span>
1218
+ <span class="cline-any cline-neutral">&nbsp;</span>
1219
+ <span class="cline-any cline-neutral">&nbsp;</span>
1220
+ <span class="cline-any cline-neutral">&nbsp;</span>
1221
+ <span class="cline-any cline-neutral">&nbsp;</span>
1222
+ <span class="cline-any cline-neutral">&nbsp;</span>
1223
+ <span class="cline-any cline-neutral">&nbsp;</span>
1224
+ <span class="cline-any cline-neutral">&nbsp;</span>
1225
+ <span class="cline-any cline-neutral">&nbsp;</span>
1226
+ <span class="cline-any cline-neutral">&nbsp;</span>
1227
+ <span class="cline-any cline-neutral">&nbsp;</span>
1228
+ <span class="cline-any cline-neutral">&nbsp;</span>
1229
+ <span class="cline-any cline-neutral">&nbsp;</span>
1230
+ <span class="cline-any cline-neutral">&nbsp;</span>
1231
+ <span class="cline-any cline-neutral">&nbsp;</span>
1232
+ <span class="cline-any cline-neutral">&nbsp;</span>
1233
+ <span class="cline-any cline-neutral">&nbsp;</span>
1234
+ <span class="cline-any cline-no">&nbsp;</span>
1235
+ <span class="cline-any cline-neutral">&nbsp;</span>
1236
+ <span class="cline-any cline-neutral">&nbsp;</span>
1237
+ <span class="cline-any cline-neutral">&nbsp;</span>
1238
+ <span class="cline-any cline-neutral">&nbsp;</span>
1239
+ <span class="cline-any cline-neutral">&nbsp;</span>
1240
+ <span class="cline-any cline-neutral">&nbsp;</span>
1241
+ <span class="cline-any cline-neutral">&nbsp;</span>
1242
+ <span class="cline-any cline-neutral">&nbsp;</span>
1243
+ <span class="cline-any cline-neutral">&nbsp;</span>
1244
+ <span class="cline-any cline-no">&nbsp;</span>
1245
+ <span class="cline-any cline-neutral">&nbsp;</span>
1246
+ <span class="cline-any cline-neutral">&nbsp;</span>
1247
+ <span class="cline-any cline-neutral">&nbsp;</span>
1248
+ <span class="cline-any cline-neutral">&nbsp;</span>
1249
+ <span class="cline-any cline-neutral">&nbsp;</span>
1250
+ <span class="cline-any cline-no">&nbsp;</span>
1251
+ <span class="cline-any cline-neutral">&nbsp;</span>
1252
+ <span class="cline-any cline-neutral">&nbsp;</span>
1253
+ <span class="cline-any cline-neutral">&nbsp;</span>
1254
+ <span class="cline-any cline-neutral">&nbsp;</span>
1255
+ <span class="cline-any cline-no">&nbsp;</span>
1256
+ <span class="cline-any cline-neutral">&nbsp;</span>
1257
+ <span class="cline-any cline-neutral">&nbsp;</span>
1258
+ <span class="cline-any cline-neutral">&nbsp;</span>
1259
+ <span class="cline-any cline-neutral">&nbsp;</span>
1260
+ <span class="cline-any cline-no">&nbsp;</span>
1261
+ <span class="cline-any cline-neutral">&nbsp;</span>
1262
+ <span class="cline-any cline-neutral">&nbsp;</span>
1263
+ <span class="cline-any cline-neutral">&nbsp;</span>
1264
+ <span class="cline-any cline-neutral">&nbsp;</span>
1265
+ <span class="cline-any cline-no">&nbsp;</span>
1266
+ <span class="cline-any cline-neutral">&nbsp;</span>
1267
+ <span class="cline-any cline-neutral">&nbsp;</span>
1268
+ <span class="cline-any cline-neutral">&nbsp;</span>
1269
+ <span class="cline-any cline-neutral">&nbsp;</span>
1270
+ <span class="cline-any cline-neutral">&nbsp;</span>
1271
+ <span class="cline-any cline-neutral">&nbsp;</span>
1272
+ <span class="cline-any cline-neutral">&nbsp;</span>
1273
+ <span class="cline-any cline-yes">1x</span>
1274
+ <span class="cline-any cline-neutral">&nbsp;</span>
1275
+ <span class="cline-any cline-no">&nbsp;</span>
1276
+ <span class="cline-any cline-no">&nbsp;</span>
1277
+ <span class="cline-any cline-no">&nbsp;</span>
1278
+ <span class="cline-any cline-no">&nbsp;</span>
1279
+ <span class="cline-any cline-neutral">&nbsp;</span>
1280
+ <span class="cline-any cline-no">&nbsp;</span>
1281
+ <span class="cline-any cline-neutral">&nbsp;</span>
1282
+ <span class="cline-any cline-no">&nbsp;</span>
1283
+ <span class="cline-any cline-neutral">&nbsp;</span>
1284
+ <span class="cline-any cline-yes">1x</span>
1285
+ <span class="cline-any cline-no">&nbsp;</span>
1286
+ <span class="cline-any cline-no">&nbsp;</span>
1287
+ <span class="cline-any cline-no">&nbsp;</span>
1288
+ <span class="cline-any cline-no">&nbsp;</span>
1289
+ <span class="cline-any cline-no">&nbsp;</span>
1290
+ <span class="cline-any cline-neutral">&nbsp;</span>
1291
+ <span class="cline-any cline-no">&nbsp;</span>
1292
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { utils } from '..';
1293
+ import { App, Module, Entity, EntityProperty, Logic, View, Namespace, TypeAnnotation } from '../concepts';
1294
+ &nbsp;
1295
+ export const filterProperty = <span class="fstat-no" title="function not covered" >(k</span>ey: 'inTable' | 'inFilter' | 'inForm' | 'inDetail') =&gt; <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(p</span>roperty: EntityProperty) =&gt; {</span>
1296
+ <span class="cstat-no" title="statement not covered" > if (property.display) {</span>
1297
+ <span class="cstat-no" title="statement not covered" > return property.display[key];</span>
1298
+ }
1299
+ <span class="cstat-no" title="statement not covered" > return !['id', 'createdTime', 'updatedTime'].includes(property.name);</span>
1300
+ };
1301
+ &nbsp;
1302
+ /**
1303
+ * 生成表达式的代码
1304
+ * @param property 实体属性
1305
+ * @param expression 表达式
1306
+ */
1307
+ export function <span class="fstat-no" title="function not covered" >getExpression(</span>property: EntityProperty, expression: string) {
1308
+ const { typeAnnotation } = <span class="cstat-no" title="statement not covered" >property || {};</span>
1309
+ const { typeName: propertyTypeName, typeNamespace: propertyTypeNamespace } = <span class="cstat-no" title="statement not covered" >typeAnnotation || {};</span>
1310
+ <span class="cstat-no" title="statement not covered" > if (propertyTypeName === 'DateTime') <span class="cstat-no" title="statement not covered" >return `$utils['FormatDateTime'](${expression}, 'YYYY-MM-DD HH:mm:ss')`;</span></span>
1311
+ <span class="cstat-no" title="statement not covered" > if (propertyTypeName === 'Date') <span class="cstat-no" title="statement not covered" >return `$utils['FormatDate'](${expression}, 'YYYY-MM-DD')`;</span></span>
1312
+ &nbsp;
1313
+ const namespaceArr = <span class="cstat-no" title="statement not covered" >propertyTypeNamespace.split('.');</span>
1314
+ const type = <span class="cstat-no" title="statement not covered" >namespaceArr.pop();</span>
1315
+ <span class="cstat-no" title="statement not covered" > if (type === 'enums') {</span>
1316
+ <span class="cstat-no" title="statement not covered" > return `$utils['EnumValueToText'](${expression}, '__enumTypeAnnotation_${propertyTypeNamespace}.${propertyTypeName}')`;</span>
1317
+ }
1318
+ <span class="cstat-no" title="statement not covered" > return `${expression || "''"}`;</span>
1319
+ }
1320
+ &nbsp;
1321
+ /**
1322
+ * 从 Logic 中获取变量
1323
+ * @param resolver
1324
+ * @param paramName
1325
+ */
1326
+ export function <span class="fstat-no" title="function not covered" >getParamFromLogic(</span>logic: Logic, paramName: string) {
1327
+ const { params } = <span class="cstat-no" title="statement not covered" >logic;</span>
1328
+ <span class="cstat-no" title="statement not covered" > return params.find(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === paramName)</span>;</span>
1329
+ }
1330
+ &nbsp;
1331
+ export function <span class="fstat-no" title="function not covered" >getFirstDisplayedProperty(</span>entity: Entity) {
1332
+ let property = <span class="cstat-no" title="statement not covered" >entity.properties.find(<span class="fstat-no" title="function not covered" >(p</span>roperty) =&gt; <span class="cstat-no" title="statement not covered" >!property.readonly)</span>;</span>
1333
+ <span class="cstat-no" title="statement not covered" > if (!property) <span class="cstat-no" title="statement not covered" >property = entity.properties[0];</span></span>
1334
+ <span class="cstat-no" title="statement not covered" > return property;</span>
1335
+ }
1336
+ &nbsp;
1337
+ function <span class="fstat-no" title="function not covered" >genArgumentMemberExpression(</span>arr: string[]) {
1338
+ let expressionNode: any;
1339
+ const propertyName = <span class="cstat-no" title="statement not covered" >arr.pop();</span>
1340
+ <span class="cstat-no" title="statement not covered" > if (arr.length &gt;= 1) {</span>
1341
+ <span class="cstat-no" title="statement not covered" > expressionNode = NaslLogicItem.MemberExpression({</span>
1342
+ object: genArgumentMemberExpression(arr),
1343
+ property: NaslLogicItem.Identifier({
1344
+ name: propertyName,
1345
+ }),
1346
+ });
1347
+ } else {
1348
+ <span class="cstat-no" title="statement not covered" > return NaslLogicItem.Identifier({</span>
1349
+ name: propertyName,
1350
+ });
1351
+ }
1352
+ <span class="cstat-no" title="statement not covered" > return expressionNode;</span>
1353
+ }
1354
+ &nbsp;
1355
+ /**
1356
+ * 生成逻辑 Param
1357
+ * @param paramIdOrName 参数 id 或引用名称
1358
+ * @param expression 表达式
1359
+ * @param schemaChildren 数据结构
1360
+ */
1361
+ export function <span class="fstat-no" title="function not covered" >genLogicParam(</span>paramIdOrName: string, expression: string) {
1362
+ <span class="cstat-no" title="statement not covered" > return NaslLogicItem.Argument({</span>
1363
+ keyword: paramIdOrName,
1364
+ expression: genArgumentMemberExpression(expression.split('.')),
1365
+ });
1366
+ }
1367
+ &nbsp;
1368
+ /**
1369
+ * 生成接口 Param
1370
+ * @param paramIdOrName 参数 id 或引用名称
1371
+ * @param expression 表达式
1372
+ * @param schemaChildren 数据结构
1373
+ */
1374
+ export function <span class="fstat-no" title="function not covered" >genMemberExpression(</span>expression: string, schemaRefs: Array&lt;string&gt; = <span class="branch-0 cbranch-no" title="branch not covered" >[])</span> {
1375
+ const arr = <span class="cstat-no" title="statement not covered" >expression.split('.');</span>
1376
+ &nbsp;
1377
+ let expressionNode: any;
1378
+ <span class="cstat-no" title="statement not covered" > arr.forEach(<span class="fstat-no" title="function not covered" >(n</span>ame, index) =&gt; {</span>
1379
+ const currentNode = <span class="cstat-no" title="statement not covered" >NaslLogicItem.Identifier({</span>
1380
+ name,
1381
+ });
1382
+ <span class="cstat-no" title="statement not covered" > if (expressionNode) {</span>
1383
+ <span class="cstat-no" title="statement not covered" > expressionNode = NaslLogicItem.MemberExpression({</span>
1384
+ object: expressionNode,
1385
+ property: NaslLogicItem.Identifier({
1386
+ name,
1387
+ }),
1388
+ });
1389
+ } else {
1390
+ <span class="cstat-no" title="statement not covered" > expressionNode = currentNode;</span>
1391
+ }
1392
+ });
1393
+ &nbsp;
1394
+ <span class="cstat-no" title="statement not covered" > return expressionNode;</span>
1395
+ }
1396
+ &nbsp;
1397
+ /**
1398
+ * 命名组,主要承载一次 mergeBlock 中的逻辑名称
1399
+ */
1400
+ export interface NameGroup {
1401
+ logic?: string;
1402
+ structure?: string;
1403
+ load?: string;
1404
+ remove?: string;
1405
+ modify?: string;
1406
+ submit?: string;
1407
+ lowerEntity?: string;
1408
+ [key: string]: string;
1409
+ }
1410
+ &nbsp;
1411
+ function <span class="fstat-no" title="function not covered" >capFirstLetter(</span>word: string) {
1412
+ <span class="cstat-no" title="statement not covered" > if (!word) <span class="cstat-no" title="statement not covered" >return word;</span></span>
1413
+ &nbsp;
1414
+ <span class="cstat-no" title="statement not covered" > return word[0].toUpperCase() + word.slice(1);</span>
1415
+ }
1416
+ /**
1417
+ * 生成数据查询唯一的命名组
1418
+ * @param viewName 页面名称
1419
+ * @param componentName 组件名称
1420
+ * @param suffix 其它后缀,比如实体名等等
1421
+ * @param defaultInView 是否在页面逻辑中用 load 简写
1422
+ */
1423
+ export function <span class="fstat-no" title="function not covered" >genUniqueQueryNameGroup(</span>
1424
+ scope: App | Module | Namespace,
1425
+ view: View,
1426
+ componentName: string = <span class="branch-0 cbranch-no" title="branch not covered" >'',</span>
1427
+ defaultInView: boolean = <span class="branch-0 cbranch-no" title="branch not covered" >true,</span>
1428
+ suffix: string = <span class="branch-0 cbranch-no" title="branch not covered" >''</span>
1429
+ ) {
1430
+ const result: NameGroup = <span class="cstat-no" title="statement not covered" >{};</span>
1431
+ <span class="cstat-no" title="statement not covered" > result.viewLogicLoad = view.getLogicUniqueName(`load${defaultInView ? '' : capFirstLetter(componentName)}${suffix ? capFirstLetter(suffix) : ''}`);</span>
1432
+ <span class="cstat-no" title="statement not covered" > result.logic = scope.getLogicUniqueName(</span>
1433
+ `load${capFirstLetter(view.name)}${componentName ? capFirstLetter(componentName) : ''}${suffix ? capFirstLetter(suffix) : ''}`
1434
+ );
1435
+ <span class="cstat-no" title="statement not covered" > result.structure = scope.getStructureUniqueName(utils.firstUpperCase(`${result.logic}Structure`));</span>
1436
+ <span class="cstat-no" title="statement not covered" > return result;</span>
1437
+ }
1438
+ &nbsp;
1439
+ function genNaslCoreTypeAnnotation(typeName: string, text: string = '') {
1440
+ return {
1441
+ concept: 'TypeAnnotation',
1442
+ name: '',
1443
+ typeKind: 'primitive',
1444
+ typeNamespace: 'nasl.core',
1445
+ typeName,
1446
+ text,
1447
+ };
1448
+ }
1449
+ &nbsp;
1450
+ function genNaslUITypeAnnotation(typeName: string) {
1451
+ return {
1452
+ concept: 'TypeAnnotation',
1453
+ name: '',
1454
+ typeKind: 'reference',
1455
+ typeNamespace: 'nasl.ui',
1456
+ typeName,
1457
+ };
1458
+ }
1459
+ &nbsp;
1460
+ function genNaslCollectionTypeAnnotation(typeName: string) {
1461
+ return <span class="fstat-no" title="function not covered" >(t</span>ypeArguments: any[]) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1462
+ concept: 'TypeAnnotation',
1463
+ name: '',
1464
+ typeKind: 'generic',
1465
+ typeNamespace: 'nasl.collection',
1466
+ typeName,
1467
+ typeArguments,
1468
+ });
1469
+ }
1470
+ &nbsp;
1471
+ function genNaslUIGenericTypeAnnotation(typeName: string) {
1472
+ return <span class="fstat-no" title="function not covered" >(t</span>ypeArguments: any[]) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1473
+ concept: 'TypeAnnotation',
1474
+ name: '',
1475
+ typeKind: 'generic',
1476
+ typeNamespace: 'nasl.ui',
1477
+ typeName,
1478
+ typeArguments,
1479
+ });
1480
+ }
1481
+ &nbsp;
1482
+ export const NaslCoreTypeAnnotation = {
1483
+ Boolean: genNaslCoreTypeAnnotation('Boolean'),
1484
+ // Integer: genNaslCoreTypeAnnotation('Integer', 'Integer 整数'),
1485
+ // Double: genNaslCoreTypeAnnotation('Double'),
1486
+ Decimal: genNaslCoreTypeAnnotation('Decimal'),
1487
+ Long: genNaslCoreTypeAnnotation('Long', ' Integer 整数'),
1488
+ String: genNaslCoreTypeAnnotation('String', 'String 文本'),
1489
+ // Text: genNaslCoreTypeAnnotation('Text'),
1490
+ Binary: genNaslCoreTypeAnnotation('Binary'),
1491
+ Date: genNaslCoreTypeAnnotation('Date'),
1492
+ Time: genNaslCoreTypeAnnotation('Time'),
1493
+ DateTime: genNaslCoreTypeAnnotation('DateTime'),
1494
+ // Email: genNaslCoreTypeAnnotation('Email'),
1495
+ };
1496
+ &nbsp;
1497
+ export const NaslUITypeAnnotation = {
1498
+ DataSourceParams: genNaslUITypeAnnotation('DataSourceParams'),
1499
+ EventTarget: genNaslUITypeAnnotation('EventTarget'),
1500
+ MouseEvent: genNaslUITypeAnnotation('MouseEvent'),
1501
+ FocusEvent: genNaslUITypeAnnotation('FocusEvent'),
1502
+ ChangeEvent: genNaslUITypeAnnotation('ChangeEvent'),
1503
+ NavigateEvent: genNaslUITypeAnnotation('NavigateEvent'),
1504
+ ChangeItemEvent: genNaslUITypeAnnotation('ChangeItemEvent'),
1505
+ ChangeItemsEvent: genNaslUITypeAnnotation('ChangeItemsEvent'),
1506
+ CascadeCapsulesEvent: genNaslUITypeAnnotation('CascadeCapsulesEvent'),
1507
+ CollapseEvent: genNaslUITypeAnnotation('CollapseEvent'),
1508
+ SliderEvent: genNaslUITypeAnnotation('SliderEvent'),
1509
+ DateEvent: genNaslUITypeAnnotation('DateEvent'),
1510
+ OperatorItemEvent: genNaslUITypeAnnotation('OperatorItemEvent'),
1511
+ ValidateEvent: genNaslUITypeAnnotation('ValidateEvent'),
1512
+ PaginationEvent: genNaslUITypeAnnotation('PaginationEvent'),
1513
+ DurationEvent: genNaslUITypeAnnotation('DurationEvent'),
1514
+ TransferEvent: genNaslUITypeAnnotation('TransferEvent'),
1515
+ TreeChangeEvent: genNaslUITypeAnnotation('TreeChangeEvent'),
1516
+ CheckedEvent: genNaslUITypeAnnotation('CheckedEvent'),
1517
+ UploadEvent: genNaslUITypeAnnotation('UploadEvent'),
1518
+ UploadErrorEvent: genNaslUITypeAnnotation('UploadErrorEvent'),
1519
+ SortEvent: genNaslUITypeAnnotation('SortEvent'),
1520
+ PoiInfo: genNaslUITypeAnnotation('PoiInfo'),
1521
+ File: genNaslUITypeAnnotation('File'),
1522
+ KeyboardEvent: genNaslUITypeAnnotation('KeyboardEvent'),
1523
+ &nbsp;
1524
+ Current: genNaslUIGenericTypeAnnotation('Current'),
1525
+ DragAndDropEvent: genNaslUIGenericTypeAnnotation('DragAndDropEvent'),
1526
+ ExpandEvent: genNaslUIGenericTypeAnnotation('ExpandEvent'),
1527
+ ScrollEvent: genNaslUIGenericTypeAnnotation('ScrollEvent'),
1528
+ };
1529
+ &nbsp;
1530
+ export const NaslTypeAnnotation = {
1531
+ Reference: <span class="fstat-no" title="function not covered" >({</span> typeNamespace, typeName }: { typeNamespace: string; typeName: string }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1532
+ concept: 'TypeAnnotation',
1533
+ name: '',
1534
+ typeKind: 'reference',
1535
+ typeNamespace,
1536
+ typeName,
1537
+ }),
1538
+ AnonymousStructure: <span class="fstat-no" title="function not covered" >(p</span>roperties: any[]) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1539
+ concept: 'TypeAnnotation',
1540
+ typeKind: 'anonymousStructure',
1541
+ properties: [
1542
+ {
1543
+ concept: 'StructureProperty',
1544
+ name: 'list',
1545
+ typeAnnotation: {
1546
+ concept: 'TypeAnnotation',
1547
+ typeKind: 'generic',
1548
+ typeName: 'List',
1549
+ typeNamespace: 'nasl.collection',
1550
+ typeArguments: [
1551
+ {
1552
+ concept: 'TypeAnnotation',
1553
+ typeKind: 'anonymousStructure',
1554
+ properties,
1555
+ },
1556
+ ],
1557
+ },
1558
+ },
1559
+ {
1560
+ concept: 'StructureProperty',
1561
+ name: 'total',
1562
+ typeAnnotation: {
1563
+ concept: 'TypeAnnotation',
1564
+ typeKind: 'primitive',
1565
+ typeNamespace: 'nasl.core',
1566
+ typeName: 'Long',
1567
+ },
1568
+ },
1569
+ ],
1570
+ }),
1571
+ };
1572
+ &nbsp;
1573
+ export const NaslCollectionTypeAnnotation = {
1574
+ List: genNaslCollectionTypeAnnotation('List'),
1575
+ PageOf: genNaslCollectionTypeAnnotation('PageOf'),
1576
+ };
1577
+ &nbsp;
1578
+ export const NaslLogicItem = {
1579
+ // 开始
1580
+ Start: {
1581
+ concept: 'Start',
1582
+ name: '',
1583
+ label: '开始',
1584
+ kind: 'Statement',
1585
+ },
1586
+ // 结束
1587
+ End: {
1588
+ concept: 'End',
1589
+ name: '',
1590
+ label: '结束',
1591
+ kind: 'Statement',
1592
+ },
1593
+ // 调用逻辑
1594
+ CallLogic: <span class="fstat-no" title="function not covered" >({</span>
1595
+ calleeNamespace,
1596
+ calleeName,
1597
+ label = <span class="branch-0 cbranch-no" title="branch not covered" >'调用逻辑',</span>
1598
+ shortcut = <span class="branch-0 cbranch-no" title="branch not covered" >false,</span>
1599
+ arguments: args,
1600
+ }: {
1601
+ calleeNamespace?: string;
1602
+ calleeName: string;
1603
+ label?: string;
1604
+ shortcut?: boolean;
1605
+ arguments: any[];
1606
+ }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1607
+ concept: 'CallLogic',
1608
+ name: '',
1609
+ label,
1610
+ kind: 'Statement',
1611
+ shortcut,
1612
+ calleeNamespace,
1613
+ calleeName,
1614
+ arguments: args,
1615
+ }),
1616
+ // 内置函数
1617
+ CallFunction: <span class="fstat-no" title="function not covered" >({</span>
1618
+ calleeNamespace = <span class="branch-0 cbranch-no" title="branch not covered" >'nasl.util',</span>
1619
+ calleeName,
1620
+ label = <span class="branch-0 cbranch-no" title="branch not covered" >'内置函数',</span>
1621
+ shortcut = <span class="branch-0 cbranch-no" title="branch not covered" >false,</span>
1622
+ arguments: args = <span class="branch-0 cbranch-no" title="branch not covered" >[],</span>
1623
+ typeArguments: typeArgs = <span class="branch-0 cbranch-no" title="branch not covered" >[],</span>
1624
+ }: {
1625
+ calleeNamespace?: string;
1626
+ calleeName: string;
1627
+ label?: string;
1628
+ shortcut?: boolean;
1629
+ arguments?: any[];
1630
+ typeArguments?: any[];
1631
+ }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1632
+ concept: 'CallFunction',
1633
+ name: '',
1634
+ label: '调用逻辑',
1635
+ kind: 'Expression',
1636
+ calleeNamespace,
1637
+ calleeName,
1638
+ arguments: args,
1639
+ typeArguments: typeArgs,
1640
+ }),
1641
+ // 参数
1642
+ Argument: <span class="fstat-no" title="function not covered" >({</span> keyword, expression }: { keyword: string; expression: any }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1643
+ concept: 'Argument',
1644
+ name: '',
1645
+ kind: 'Statement',
1646
+ keyword,
1647
+ expression,
1648
+ }),
1649
+ // 成员表达式
1650
+ MemberExpression: <span class="fstat-no" title="function not covered" >({</span> object, property }: { object: any; property: any }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1651
+ concept: 'MemberExpression',
1652
+ name: '',
1653
+ kind: 'Expression',
1654
+ object,
1655
+ property,
1656
+ }),
1657
+ // 变量
1658
+ Identifier: <span class="fstat-no" title="function not covered" >({</span> name }: { name: string }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1659
+ concept: 'Identifier',
1660
+ kind: 'Expression',
1661
+ name,
1662
+ }),
1663
+ // 字面量
1664
+ StringLiteral: <span class="fstat-no" title="function not covered" >({</span> value }: { value: string }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1665
+ concept: 'StringLiteral',
1666
+ name: '',
1667
+ kind: 'Expression',
1668
+ value,
1669
+ }),
1670
+ Assignment: <span class="fstat-no" title="function not covered" >({</span> left, right }: { left: any; right: any }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1671
+ concept: 'Assignment',
1672
+ name: '',
1673
+ label: '赋值',
1674
+ kind: 'Statement',
1675
+ left,
1676
+ right,
1677
+ }),
1678
+ IfStatement: <span class="fstat-no" title="function not covered" >({</span> test, consequent, alternate }: { test: any; consequent: any[]; alternate: any[] }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1679
+ concept: 'IfStatement',
1680
+ name: '',
1681
+ kind: 'Statement',
1682
+ test,
1683
+ consequent,
1684
+ alternate,
1685
+ }),
1686
+ &nbsp;
1687
+ // 二元
1688
+ BinaryExpression: <span class="fstat-no" title="function not covered" >({</span> operator, left, label = <span class="branch-0 cbranch-no" title="branch not covered" >'算术运算',</span> right }: { operator: string; left?: any; right?: any; label?: string }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1689
+ concept: 'BinaryExpression',
1690
+ name: '',
1691
+ kind: 'Expression',
1692
+ label,
1693
+ operator,
1694
+ left,
1695
+ right,
1696
+ }),
1697
+ };
1698
+ &nbsp;
1699
+ export const NaslQueryExpression = {
1700
+ QueryFieldExpression: <span class="fstat-no" title="function not covered" >({</span>
1701
+ label,
1702
+ isDotStar,
1703
+ entityAsName,
1704
+ propertyName,
1705
+ }: {
1706
+ label: string;
1707
+ isDotStar: boolean;
1708
+ entityAsName: string;
1709
+ propertyName?: string;
1710
+ }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1711
+ concept: 'QueryFieldExpression',
1712
+ name: '',
1713
+ label,
1714
+ kind: 'Expression',
1715
+ isDotStar,
1716
+ entityAsName,
1717
+ propertyName,
1718
+ }),
1719
+ QueryFromExpression: <span class="fstat-no" title="function not covered" >({</span> entityNamespace, entityName, joinParts }: { entityNamespace: string; entityName: string; joinParts: any[] }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1720
+ concept: 'QueryFromExpression',
1721
+ name: '',
1722
+ kind: 'Expression',
1723
+ entityNamespace,
1724
+ entityName,
1725
+ joinParts,
1726
+ }),
1727
+ QueryJoinExpression: <span class="fstat-no" title="function not covered" >({</span>
1728
+ label,
1729
+ entityNamespace,
1730
+ entityName,
1731
+ joinType,
1732
+ onExpressions,
1733
+ joinParts,
1734
+ }: {
1735
+ label?: string;
1736
+ entityNamespace: string;
1737
+ entityName: string;
1738
+ joinType: string;
1739
+ onExpressions: any[];
1740
+ joinParts: any[];
1741
+ }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1742
+ concept: 'QueryJoinExpression',
1743
+ label,
1744
+ name: '',
1745
+ kind: 'Expression',
1746
+ entityNamespace,
1747
+ entityName,
1748
+ joinType,
1749
+ onExpressions,
1750
+ joinParts,
1751
+ }),
1752
+ QuerySelectExpression: <span class="fstat-no" title="function not covered" >({</span>
1753
+ label,
1754
+ distinct,
1755
+ star,
1756
+ selectElements,
1757
+ }: {
1758
+ label?: string;
1759
+ distinct?: boolean;
1760
+ star?: boolean;
1761
+ selectElements: any[];
1762
+ }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1763
+ concept: 'QuerySelectExpression',
1764
+ name: '',
1765
+ kind: 'Expression',
1766
+ label,
1767
+ distinct,
1768
+ star,
1769
+ selectElements,
1770
+ }),
1771
+ QueryOrderByExpression: <span class="fstat-no" title="function not covered" >({</span> label, order, orderElement }: { label?: string; order: any; orderElement: any }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1772
+ concept: 'QueryOrderByExpression',
1773
+ label,
1774
+ order,
1775
+ orderElement,
1776
+ }),
1777
+ QueryLimitExpression: <span class="fstat-no" title="function not covered" >({</span> label, pageElement, pageSizeElement }: { label?: string; pageElement: any; pageSizeElement: any }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1778
+ concept: 'QueryLimitExpression',
1779
+ name: '',
1780
+ kind: 'Expression',
1781
+ label,
1782
+ pageElement,
1783
+ pageSizeElement,
1784
+ }),
1785
+ CallQueryComponent: <span class="fstat-no" title="function not covered" >({</span>
1786
+ label,
1787
+ typeAnnotation,
1788
+ select,
1789
+ from,
1790
+ where,
1791
+ limit,
1792
+ groupBy,
1793
+ having,
1794
+ orderBy,
1795
+ logicName,
1796
+ structureName,
1797
+ ideVersion,
1798
+ }: {
1799
+ label?: string;
1800
+ typeAnnotation: any;
1801
+ select: any;
1802
+ from: any;
1803
+ where: any;
1804
+ limit: any;
1805
+ groupBy: any[];
1806
+ having: any;
1807
+ orderBy: any[];
1808
+ logicName: string;
1809
+ structureName: string;
1810
+ ideVersion: string;
1811
+ }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1812
+ concept: 'CallQueryComponent',
1813
+ name: '',
1814
+ label,
1815
+ kind: 'Statement',
1816
+ typeAnnotation,
1817
+ select,
1818
+ from,
1819
+ where,
1820
+ limit,
1821
+ groupBy,
1822
+ having,
1823
+ orderBy,
1824
+ logicName,
1825
+ structureName,
1826
+ ideVersion,
1827
+ }),
1828
+ };
1829
+ &nbsp;
1830
+ export const NaslNode = {
1831
+ Logic: <span class="fstat-no" title="function not covered" >({</span>
1832
+ name,
1833
+ params,
1834
+ returns,
1835
+ variables,
1836
+ body,
1837
+ description,
1838
+ playground,
1839
+ }: {
1840
+ name: string;
1841
+ params?: any[];
1842
+ returns?: any[];
1843
+ variables?: any[];
1844
+ body?: any[];
1845
+ description?: string;
1846
+ playground?: any[];
1847
+ }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1848
+ concept: 'Logic',
1849
+ name,
1850
+ params,
1851
+ returns,
1852
+ variables,
1853
+ body,
1854
+ description,
1855
+ playground,
1856
+ }),
1857
+ Structure: <span class="fstat-no" title="function not covered" >({</span> name, properties, origin }: { name: string; properties?: any[]; origin?: 'CallQueryComponent' }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1858
+ concept: 'Structure',
1859
+ name,
1860
+ properties,
1861
+ origin,
1862
+ }),
1863
+ StructureProperty: <span class="fstat-no" title="function not covered" >({</span> name, typeAnnotation }: { name: string; typeAnnotation?: any }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1864
+ concept: 'StructureProperty',
1865
+ name,
1866
+ typeAnnotation,
1867
+ }),
1868
+ Variable: <span class="fstat-no" title="function not covered" >({</span> name, typeAnnotation }: { name: string; typeAnnotation?: any }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1869
+ concept: 'Variable',
1870
+ name,
1871
+ typeAnnotation,
1872
+ }),
1873
+ Param: <span class="fstat-no" title="function not covered" >({</span> name, typeAnnotation }: { name: string; typeAnnotation?: any }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1874
+ concept: 'Param',
1875
+ name,
1876
+ typeAnnotation,
1877
+ }),
1878
+ Return: <span class="fstat-no" title="function not covered" >({</span> name, typeAnnotation }: { name: string; typeAnnotation?: any }) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1879
+ concept: 'Return',
1880
+ name,
1881
+ typeAnnotation,
1882
+ }),
1883
+ };
1884
+ &nbsp;
1885
+ export const getDecimalInfo = (property: any) =&gt; {
1886
+ let step<span class="fstat-no" title="function not covered" ></span>
1887
+ let typeAnnotation = property?.typeAnnotation
1888
+ let decimalLength = t<span class="cstat-no" title="statement not covered" >ypeAnnotation ? typeAnnot</span>ation.ruleMap?.scale : 0
1889
+ if (decimalLength &gt; <span class="cstat-no" title="statement not covered" >0) {</span>
1890
+ <span class="cstat-no" title="statement not covered" > step = +`${'0.'.padEnd(decimalLength + 1, '0')}1`</span>
1891
+ } <span class="cstat-no" title="statement not covered" >else {</span>
1892
+ step = 1
1893
+ }<span class="cstat-no" title="statement not covered" ></span>
1894
+ return { step, decimalLength }
1895
+ }<span class="cstat-no" title="statement not covered" ></span>
1896
+ export function transEntityMetadataTypes(typeAnnotation: TypeAnnotation, app: App) {
1897
+ let { typeName<span class="fstat-no" title="function not covered" >: propertyTypeName } = ty</span>peAnnotation || {};
1898
+ if (typeAnnotation?.typeNamespace?.ends<span class="cstat-no" title="statement not covered" >With('.metadataTypes'</span>)) {
1899
+ <span class="cstat-no" title="statement not covered" > const referenceNode = app.findNodeByCompleteName(typeAnnotation.typeNamespace + '.' + typeAnnotation.typeName) || {}</span>
1900
+ const { typeName } = refer<span class="cstat-no" title="statement not covered" >enceNode.typeAnnotation || {};</span>
1901
+ propertyTypeName = typeNam<span class="cstat-no" title="statement not covered" >e;</span>
1902
+ }<span class="cstat-no" title="statement not covered" ></span>
1903
+ return propertyTypeName;
1904
+ }<span class="cstat-no" title="statement not covered" ></span>
1905
+ &nbsp;</pre></td></tr></table></pre>
1906
+
1907
+ <div class='push'></div><!-- for sticky footer -->
1908
+ </div><!-- /wrapper -->
1909
+ <div class='footer quiet pad2 space-top1 center small'>
1910
+ Code coverage generated by
1911
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1912
+ at 2023-12-14T04:42:19.254Z
1913
+ </div>
1914
+ <script src="../../prettify.js"></script>
1915
+ <script>
1916
+ window.onload = function () {
1917
+ prettyPrint();
1918
+ };
1919
+ </script>
1920
+ <script src="../../sorter.js"></script>
1921
+ <script src="../../block-navigation.js"></script>
1922
+ </body>
1923
+ </html>
1924
+