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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/.nyc_output/{78804420-ead6-486f-b682-ab54ccd95dc9.json → b920244d-8d01-4e76-be5a-95132217c5a1.json} +1 -1
  2. package/.nyc_output/processinfo/b920244d-8d01-4e76-be5a-95132217c5a1.json +1 -0
  3. package/.nyc_output/processinfo/index.json +1 -1
  4. package/coverage/index.html +113 -128
  5. package/coverage/src/automate/engine/index.html +1 -1
  6. package/coverage/src/automate/engine/utils.js.html +26 -26
  7. package/coverage/src/bak/index.html +15 -15
  8. package/coverage/src/bak/translator.js.html +63 -390
  9. package/coverage/src/breakpoint/generator/AfterStartNode.ts.html +1 -1
  10. package/coverage/src/breakpoint/generator/BeforeEndNode.ts.html +1 -1
  11. package/coverage/src/breakpoint/generator/BreakpointNode.ts.html +1 -1
  12. package/coverage/src/breakpoint/generator/CallbackNode.ts.html +1 -1
  13. package/coverage/src/breakpoint/generator/index.html +1 -1
  14. package/coverage/src/breakpoint/generator/index.ts.html +1 -1
  15. package/coverage/src/breakpoint/index.html +1 -1
  16. package/coverage/src/breakpoint/index.ts.html +1 -1
  17. package/coverage/src/breakpoint/shared/constants.ts.html +1 -1
  18. package/coverage/src/breakpoint/shared/index.html +1 -1
  19. package/coverage/src/breakpoint/shared/index.ts.html +1 -1
  20. package/coverage/src/breakpoint/shared/operations.ts.html +2 -2
  21. package/coverage/src/breakpoint/shared/socket.ts.html +1 -1
  22. package/coverage/src/breakpoint/shared/utils.ts.html +1 -1
  23. package/coverage/src/breakpoint/store/core.ts.html +3 -3
  24. package/coverage/src/breakpoint/store/dock.ts.html +1 -1
  25. package/coverage/src/breakpoint/store/index.html +1 -1
  26. package/coverage/src/breakpoint/store/index.ts.html +1 -1
  27. package/coverage/src/common/BaseNode.ts.html +370 -592
  28. package/coverage/src/common/Command.ts.html +1 -1
  29. package/coverage/src/common/EventEmitter.ts.html +34 -31
  30. package/coverage/src/common/Messager.ts.html +1 -1
  31. package/coverage/src/common/asyncFuncMap.ts.html +1 -1
  32. package/coverage/src/common/index.html +23 -38
  33. package/coverage/src/common/index.ts.html +4 -7
  34. package/coverage/src/concepts/Abort__.ts.html +9 -36
  35. package/coverage/src/concepts/Anchor__.ts.html +22 -58
  36. package/coverage/src/concepts/AnonymousFunction__.ts.html +77 -107
  37. package/coverage/src/concepts/App__.ts.html +253 -907
  38. package/coverage/src/concepts/Argument__.ts.html +54 -195
  39. package/coverage/src/concepts/Assignee__.ts.html +70 -79
  40. package/coverage/src/concepts/AssignmentLine__.ts.html +21 -33
  41. package/coverage/src/concepts/Assignment__.ts.html +49 -130
  42. package/coverage/src/concepts/Attribute__.ts.html +179 -20
  43. package/coverage/src/concepts/AuthInterface__.ts.html +1 -1
  44. package/coverage/src/concepts/AuthLogicForCallInterface__.ts.html +161 -98
  45. package/coverage/src/concepts/AuthLogic__.ts.html +1 -1
  46. package/coverage/src/concepts/BackendVariable__.ts.html +226 -139
  47. package/coverage/src/concepts/Backend__.ts.html +35 -86
  48. package/coverage/src/concepts/BatchAssignment__.ts.html +65 -95
  49. package/coverage/src/concepts/BinaryExpression__.ts.html +89 -218
  50. package/coverage/src/concepts/BindAttribute__.ts.html +125 -440
  51. package/coverage/src/concepts/BindDirective__.ts.html +40 -64
  52. package/coverage/src/concepts/BindEvent__.ts.html +71 -86
  53. package/coverage/src/concepts/BindStyle__.ts.html +34 -58
  54. package/coverage/src/concepts/BooleanLiteral__.ts.html +8 -32
  55. package/coverage/src/concepts/CallAuthInterface__.ts.html +57 -87
  56. package/coverage/src/concepts/CallConnector__.ts.html +35 -59
  57. package/coverage/src/concepts/CallFunction__.ts.html +145 -247
  58. package/coverage/src/concepts/CallInterface__.ts.html +77 -53
  59. package/coverage/src/concepts/CallLogic__.ts.html +181 -244
  60. package/coverage/src/concepts/CallQueryComponent__.ts.html +181 -103
  61. package/coverage/src/concepts/Comment__.ts.html +10 -40
  62. package/coverage/src/concepts/CompletionProperty__.ts.html +17 -23
  63. package/coverage/src/concepts/ConfigGroup__.ts.html +27 -27
  64. package/coverage/src/concepts/ConfigPropertyValue__.ts.html +1 -1
  65. package/coverage/src/concepts/ConfigProperty__.ts.html +36 -66
  66. package/coverage/src/concepts/Configuration__.ts.html +27 -27
  67. package/coverage/src/concepts/Connection__.ts.html +29 -77
  68. package/coverage/src/concepts/ConnectorTrigger__.ts.html +1 -1
  69. package/coverage/src/concepts/Connector__.ts.html +92 -80
  70. package/coverage/src/concepts/Constant__.ts.html +222 -72
  71. package/coverage/src/concepts/DataSource__.ts.html +32 -59
  72. package/coverage/src/concepts/DatabaseTypeAnnotation__.ts.html +1 -1
  73. package/coverage/src/{utils/time-slicing/controller.ts.html → concepts/DefaultValue__.ts.html} +294 -459
  74. package/coverage/src/concepts/Destination__.ts.html +67 -79
  75. package/coverage/src/concepts/End__.ts.html +21 -48
  76. package/coverage/src/concepts/EntityIndex__.ts.html +17 -35
  77. package/coverage/src/concepts/EntityProperty__.ts.html +208 -118
  78. package/coverage/src/concepts/Entity__.ts.html +123 -81
  79. package/coverage/src/concepts/EnumItem__.ts.html +10 -37
  80. package/coverage/src/concepts/Enum__.ts.html +32 -65
  81. package/coverage/src/concepts/Event__.ts.html +21 -21
  82. package/coverage/src/concepts/ExternalDestination__.ts.html +30 -57
  83. package/coverage/src/concepts/ForEachStatement__.ts.html +89 -98
  84. package/coverage/src/concepts/FrontendLibrary__.ts.html +35 -35
  85. package/coverage/src/concepts/FrontendVariable__.ts.html +1 -1
  86. package/coverage/src/concepts/Frontend__.ts.html +93 -132
  87. package/coverage/src/concepts/Function__.ts.html +98 -131
  88. package/coverage/src/concepts/Identifier__.ts.html +67 -103
  89. package/coverage/src/concepts/IfStatement__.ts.html +67 -88
  90. package/coverage/src/concepts/Integration__.ts.html +31 -37
  91. package/coverage/src/concepts/InterfaceParam__.ts.html +179 -65
  92. package/coverage/src/concepts/Interface__.ts.html +74 -107
  93. package/coverage/src/concepts/JSBlock__.ts.html +11 -212
  94. package/coverage/src/concepts/JavaLogic__.ts.html +9 -39
  95. package/coverage/src/concepts/LogicItem__.ts.html +17 -44
  96. package/coverage/src/concepts/Logic__.ts.html +503 -263
  97. package/coverage/src/concepts/MatchCase__.ts.html +87 -126
  98. package/coverage/src/concepts/Match__.ts.html +56 -74
  99. package/coverage/src/concepts/MemberExpression__.ts.html +59 -95
  100. package/coverage/src/concepts/MicroApp__.ts.html +1 -1
  101. package/coverage/src/concepts/Module__.ts.html +136 -625
  102. package/coverage/src/concepts/MsgTriggerEvent__.ts.html +21 -21
  103. package/coverage/src/concepts/MsgTriggerLauncher__.ts.html +21 -21
  104. package/coverage/src/concepts/Namespace__.ts.html +178 -166
  105. package/coverage/src/concepts/NewComposite__.ts.html +178 -295
  106. package/coverage/src/concepts/NewList__.ts.html +75 -129
  107. package/coverage/src/concepts/NewMap__.ts.html +139 -100
  108. package/coverage/src/concepts/New__.ts.html +9 -39
  109. package/coverage/src/concepts/NullLiteral__.ts.html +5 -29
  110. package/coverage/src/concepts/NumericLiteral__.ts.html +29 -65
  111. package/coverage/src/concepts/OqlQueryComponent__.ts.html +39 -69
  112. package/coverage/src/concepts/OverriddenLogic__.ts.html +264 -234
  113. package/coverage/src/concepts/Param__.ts.html +154 -196
  114. package/coverage/src/concepts/Point__.ts.html +1 -1
  115. package/coverage/src/concepts/ProcessComponent__.ts.html +36 -36
  116. package/coverage/src/concepts/ProcessElement__.ts.html +285 -183
  117. package/coverage/src/concepts/ProcessOutcome__.ts.html +13 -82
  118. package/coverage/src/concepts/ProcessOutcomes__.ts.html +20 -80
  119. package/coverage/src/concepts/Process__.ts.html +284 -122
  120. package/coverage/src/concepts/QueryAggregateExpression__.ts.html +20 -50
  121. package/coverage/src/concepts/QueryFieldExpression__.ts.html +11 -38
  122. package/coverage/src/concepts/QueryFromExpression__.ts.html +29 -62
  123. package/coverage/src/concepts/QueryGroupByExpression__.ts.html +23 -53
  124. package/coverage/src/concepts/QueryJoinExpression__.ts.html +41 -62
  125. package/coverage/src/concepts/QueryLimitExpression__.ts.html +29 -59
  126. package/coverage/src/concepts/QueryOrderByExpression__.ts.html +29 -62
  127. package/coverage/src/concepts/QuerySelectExpression__.ts.html +22 -22
  128. package/coverage/src/concepts/Rect__.ts.html +1 -1
  129. package/coverage/src/concepts/Return__.ts.html +187 -148
  130. package/coverage/src/concepts/Role__.ts.html +15 -42
  131. package/coverage/src/concepts/SelectMembers__.ts.html +31 -55
  132. package/coverage/src/concepts/Slot__.ts.html +17 -23
  133. package/coverage/src/concepts/SqlQueryComponent__.ts.html +28 -67
  134. package/coverage/src/concepts/Start__.ts.html +5 -29
  135. package/coverage/src/concepts/StringInterpolation__.ts.html +31 -79
  136. package/coverage/src/concepts/StringLiteral__.ts.html +26 -53
  137. package/coverage/src/concepts/StructureProperty__.ts.html +175 -64
  138. package/coverage/src/concepts/Structure__.ts.html +73 -67
  139. package/coverage/src/concepts/SwitchCase__.ts.html +45 -66
  140. package/coverage/src/concepts/SwitchStatement__.ts.html +28 -58
  141. package/coverage/src/concepts/Theme__.ts.html +7 -7
  142. package/coverage/src/concepts/Transactional__.ts.html +1 -1
  143. package/coverage/src/concepts/TriggerEvent__.ts.html +21 -21
  144. package/coverage/src/concepts/TriggerLauncher__.ts.html +13 -43
  145. package/coverage/src/concepts/TypeAnnotation__.ts.html +106 -223
  146. package/coverage/src/concepts/TypeParam__.ts.html +11 -38
  147. package/coverage/src/concepts/UnaryExpression__.ts.html +28 -73
  148. package/coverage/src/concepts/Unparsed__.ts.html +6 -27
  149. package/coverage/src/concepts/UseComponent__.ts.html +1 -1
  150. package/coverage/src/concepts/ValidationRule__.ts.html +57 -60
  151. package/coverage/src/concepts/Variable__.ts.html +238 -142
  152. package/coverage/src/concepts/ViewBlock__.ts.html +1 -1
  153. package/coverage/src/concepts/ViewComponent__.ts.html +80 -8
  154. package/coverage/src/concepts/ViewElement__.ts.html +238 -463
  155. package/coverage/src/concepts/View__.ts.html +296 -251
  156. package/coverage/src/concepts/WhileStatement__.ts.html +54 -75
  157. package/coverage/src/concepts/basics/stdlib/index.html +8 -8
  158. package/coverage/src/concepts/basics/stdlib/index.ts.html +1 -1
  159. package/coverage/src/concepts/basics/stdlib/nasl.auth.ts.html +1 -1
  160. package/coverage/src/concepts/basics/stdlib/nasl.browser.ts.html +1 -1
  161. package/coverage/src/concepts/basics/stdlib/nasl.collection.ts.html +1 -1
  162. package/coverage/src/concepts/basics/stdlib/nasl.configuration.ts.html +1 -1
  163. package/coverage/src/concepts/basics/stdlib/nasl.core.ts.html +1 -1
  164. package/coverage/src/concepts/basics/stdlib/nasl.event.ts.html +1 -1
  165. package/coverage/src/concepts/basics/stdlib/nasl.http.ts.html +1 -1
  166. package/coverage/src/concepts/basics/stdlib/nasl.interface.ts.html +1 -1
  167. package/coverage/src/concepts/basics/stdlib/nasl.io.ts.html +1 -1
  168. package/coverage/src/concepts/basics/stdlib/nasl.logging.ts.html +1 -1
  169. package/coverage/src/concepts/basics/stdlib/nasl.process.ts.html +1 -1
  170. package/coverage/src/concepts/basics/stdlib/nasl.ui.ts.html +1 -1
  171. package/coverage/src/concepts/basics/stdlib/nasl.util.ts.html +130 -19
  172. package/coverage/src/concepts/basics/stdlib/nasl.validation.ts.html +1 -1
  173. package/coverage/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts.html +1 -1
  174. package/coverage/src/concepts/basics/stdlib/timeZone.ts.html +1 -1
  175. package/coverage/src/concepts/basics/types/coreTypeList.ts.html +1 -1
  176. package/coverage/src/concepts/basics/types/index.html +1 -1
  177. package/coverage/src/concepts/basics/types/index.ts.html +1 -1
  178. package/coverage/src/concepts/index.html +858 -858
  179. package/coverage/src/concepts/index.ts.html +1 -1
  180. package/coverage/src/concepts/index__.ts.html +2 -2
  181. package/coverage/src/config.ts.html +1 -1
  182. package/coverage/src/decorators/index.html +16 -16
  183. package/coverage/src/decorators/index.ts.html +40 -31
  184. package/coverage/src/decorators/promise.ts.html +10 -10
  185. package/coverage/src/eventBus.ts.html +1 -1
  186. package/coverage/src/generator/compileComponent.ts.html +4 -4
  187. package/coverage/src/generator/genBundleFiles.ts.html +23 -17
  188. package/coverage/src/generator/genHash.ts.html +3 -3
  189. package/coverage/src/generator/genMetaData.ts.html +31 -76
  190. package/coverage/src/generator/genReleaseBody.ts.html +4 -4
  191. package/coverage/src/generator/icestark.ts.html +4 -10
  192. package/coverage/src/generator/index.html +20 -20
  193. package/coverage/src/generator/index.ts.html +1 -1
  194. package/coverage/src/generator/microApp.ts.html +1 -1
  195. package/coverage/src/generator/permission.ts.html +20 -92
  196. package/coverage/src/generator/qiankun.ts.html +3 -9
  197. package/coverage/src/generator/styleReplacer.ts.html +1 -1
  198. package/coverage/src/index.html +1 -1
  199. package/coverage/src/index.ts.html +7 -4
  200. package/coverage/src/manager/diagnostic.ts.html +14 -11
  201. package/coverage/src/manager/index.html +13 -13
  202. package/coverage/src/manager/stepRecorder.ts.html +1 -1
  203. package/coverage/src/natural/genNaturalTS.ts.html +1 -1
  204. package/coverage/src/natural/index.html +1 -1
  205. package/coverage/src/natural/index.ts.html +1 -1
  206. package/coverage/src/natural/naslStdlibMap.ts.html +1 -1
  207. package/coverage/src/natural/transformTSCode.ts.html +1 -1
  208. package/coverage/src/sentry/index.html +14 -14
  209. package/coverage/src/sentry/index.ts.html +32 -38
  210. package/coverage/src/server/createUiTs.ts.html +1 -1
  211. package/coverage/src/server/entity2LogicNamespace.ts.html +1 -1
  212. package/coverage/src/server/event.js.html +1 -1
  213. package/coverage/src/server/extendBaseNode.ts.html +4 -7
  214. package/coverage/src/server/formatTsUtils.ts.html +2 -2
  215. package/coverage/src/server/getConnector.ts.html +1 -1
  216. package/coverage/src/server/getExtensionModules.ts.html +1 -1
  217. package/coverage/src/server/getFunctions.ts.html +4 -4
  218. package/coverage/src/server/getInterfaces.ts.html +1 -1
  219. package/coverage/src/server/getLogging.ts.html +2 -2
  220. package/coverage/src/server/getLogics.ts.html +1 -1
  221. package/coverage/src/server/getMemberIdentifier.ts.html +128 -131
  222. package/coverage/src/server/getProcessComponents.ts.html +3 -3
  223. package/coverage/src/server/getProcesses.ts.html +1 -1
  224. package/coverage/src/server/getValidates.ts.html +4 -4
  225. package/coverage/src/server/index.html +26 -26
  226. package/coverage/src/server/index.ts.html +1 -1
  227. package/coverage/src/server/naslServer.ts.html +880 -1177
  228. package/coverage/src/server/naslStdlibMap.ts.html +1 -1
  229. package/coverage/src/server/process2LogicNamespace.ts.html +52 -52
  230. package/coverage/src/server/translator.ts.html +14 -50
  231. package/coverage/src/service/creator/add.configs.js.html +2 -2
  232. package/coverage/src/service/creator/errHandles.js.html +1 -1
  233. package/coverage/src/service/creator/index.html +1 -1
  234. package/coverage/src/service/creator/index.js.html +1 -1
  235. package/coverage/src/service/datasource/api.js.html +1 -1
  236. package/coverage/src/service/datasource/index.html +1 -1
  237. package/coverage/src/service/datasource/index.js.html +1 -1
  238. package/coverage/src/service/logic/api.js.html +1 -1
  239. package/coverage/src/service/logic/index.html +1 -1
  240. package/coverage/src/service/logic/index.js.html +1 -1
  241. package/coverage/src/service/storage/api.js.html +1 -1
  242. package/coverage/src/service/storage/index.html +27 -27
  243. package/coverage/src/service/storage/index.ts.html +1 -1
  244. package/coverage/src/service/storage/init.ts.html +137 -110
  245. package/coverage/src/service/storage/jsoner.ts.html +13 -76
  246. package/coverage/src/service/storage/map.ts.html +3 -3
  247. package/coverage/src/service/storage/service.ts.html +1 -1
  248. package/coverage/src/service/storage/storagePoint.ts.html +1 -1
  249. package/coverage/src/templator/genCallComponentLogic.ts.html +1 -1
  250. package/coverage/src/templator/genCreateBlock.ts.html +56 -47
  251. package/coverage/src/templator/genCurdEditMultipleKeyBlock.ts.html +31 -49
  252. package/coverage/src/templator/genCurdMultipleKeyBlock.ts.html +89 -80
  253. package/coverage/src/templator/genEditTableBlock.ts.html +9 -12
  254. package/coverage/src/templator/genEnumSelectBlock.ts.html +1 -1
  255. package/coverage/src/templator/genGetBlock.ts.html +1 -1
  256. package/coverage/src/templator/genGridViewBlock.ts.html +1 -1
  257. package/coverage/src/templator/genListViewBlock.ts.html +1 -1
  258. package/coverage/src/templator/genQueryComponent.ts.html +1 -1
  259. package/coverage/src/templator/genSelectBlock.ts.html +1 -1
  260. package/coverage/src/templator/genTableBlock.ts.html +1 -1
  261. package/coverage/src/templator/genUpdateBlock.ts.html +36 -48
  262. package/coverage/src/templator/index.html +39 -39
  263. package/coverage/src/templator/index.ts.html +1 -1
  264. package/coverage/src/templator/utils.ts.html +11 -77
  265. package/coverage/src/translator/constant.ts.html +1 -1
  266. package/coverage/src/translator/index.html +21 -21
  267. package/coverage/src/translator/index.ts.html +1 -1
  268. package/coverage/src/translator/utils.ts.html +68 -389
  269. package/coverage/src/utils/cookie.ts.html +4 -4
  270. package/coverage/src/utils/env.ts.html +1 -1
  271. package/coverage/src/utils/index.html +41 -26
  272. package/coverage/src/utils/index.ts.html +9 -63
  273. package/coverage/src/utils/logger.ts.html +13 -13
  274. package/coverage/src/utils/sortTsString.ts.html +10 -25
  275. package/coverage/src/utils/string.ts.html +8 -110
  276. package/coverage/src/utils/time-slicing.ts.html +1 -1
  277. package/coverage/src/utils/traverse.ts.html +1 -1
  278. package/coverage/src/utils/window.ts.html +1 -1
  279. package/out/common/Command.js +1 -1
  280. package/out/common/Command.js.map +1 -1
  281. package/out/concepts/Match__.js +1 -1
  282. package/out/concepts/Match__.js.map +1 -1
  283. package/out/concepts/View__.js +2 -2
  284. package/out/concepts/View__.js.map +1 -1
  285. package/package.json +1 -1
  286. package/src/common/Command.ts +1 -1
  287. package/src/concepts/Match__.ts +1 -1
  288. package/src/concepts/View__.ts +5 -5
  289. package/.nyc_output/processinfo/78804420-ead6-486f-b682-ab54ccd95dc9.json +0 -1
  290. package/coverage/cobertura-coverage.xml +0 -71878
  291. package/coverage/src/automate/engine/index.js.html +0 -1471
  292. package/coverage/src/automate/engine/operators.js.html +0 -862
  293. package/coverage/src/automate/engine/uniqueName.js.html +0 -412
  294. package/coverage/src/automate/engine/viewCache.js.html +0 -214
  295. package/coverage/src/automate/template/index.html +0 -116
  296. package/coverage/src/automate/template/myProcess.js.html +0 -34645
  297. package/coverage/src/common/utils.ts.html +0 -136
  298. package/coverage/src/concepts/DataElement__.ts.html +0 -118
  299. package/coverage/src/concepts/MetadataType__.ts.html +0 -2053
  300. package/coverage/src/utils/time-slicing/constant.ts.html +0 -196
  301. package/coverage/src/utils/time-slicing/index.html +0 -236
  302. package/coverage/src/utils/time-slicing/index.ts.html +0 -103
  303. package/coverage/src/utils/time-slicing/page-state.ts.html +0 -121
  304. package/coverage/src/utils/time-slicing/performance.ts.html +0 -253
  305. package/coverage/src/utils/time-slicing/runner.ts.html +0 -247
  306. package/coverage/src/utils/time-slicing/tool.ts.html +0 -220
  307. package/coverage/src/utils/time-slicing/utils.ts.html +0 -355
  308. package/coverage/src/utils/time-slicing/wrapper.ts.html +0 -259
  309. package/coverage/src/utils/time.ts.html +0 -118
@@ -1,1471 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/automate/engine/index.js</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/automate/engine</a> index.js</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">6.91% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>13/188</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>0/61</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>0/44</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">7.1% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>13/183</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
529
- <span class="cline-any cline-yes">1x</span>
530
- <span class="cline-any cline-yes">1x</span>
531
- <span class="cline-any cline-yes">1x</span>
532
- <span class="cline-any cline-neutral">&nbsp;</span>
533
- <span class="cline-any cline-yes">1x</span>
534
- <span class="cline-any cline-yes">1x</span>
535
- <span class="cline-any cline-yes">1x</span>
536
- <span class="cline-any cline-neutral">&nbsp;</span>
537
- <span class="cline-any cline-yes">1x</span>
538
- <span class="cline-any cline-neutral">&nbsp;</span>
539
- <span class="cline-any cline-neutral">&nbsp;</span>
540
- <span class="cline-any cline-neutral">&nbsp;</span>
541
- <span class="cline-any cline-no">&nbsp;</span>
542
- <span class="cline-any cline-no">&nbsp;</span>
543
- <span class="cline-any cline-no">&nbsp;</span>
544
- <span class="cline-any cline-no">&nbsp;</span>
545
- <span class="cline-any cline-no">&nbsp;</span>
546
- <span class="cline-any cline-no">&nbsp;</span>
547
- <span class="cline-any cline-no">&nbsp;</span>
548
- <span class="cline-any cline-no">&nbsp;</span>
549
- <span class="cline-any cline-no">&nbsp;</span>
550
- <span class="cline-any cline-neutral">&nbsp;</span>
551
- <span class="cline-any cline-no">&nbsp;</span>
552
- <span class="cline-any cline-neutral">&nbsp;</span>
553
- <span class="cline-any cline-neutral">&nbsp;</span>
554
- <span class="cline-any cline-neutral">&nbsp;</span>
555
- <span class="cline-any cline-neutral">&nbsp;</span>
556
- <span class="cline-any cline-no">&nbsp;</span>
557
- <span class="cline-any cline-no">&nbsp;</span>
558
- <span class="cline-any cline-neutral">&nbsp;</span>
559
- <span class="cline-any cline-neutral">&nbsp;</span>
560
- <span class="cline-any cline-neutral">&nbsp;</span>
561
- <span class="cline-any cline-neutral">&nbsp;</span>
562
- <span class="cline-any cline-neutral">&nbsp;</span>
563
- <span class="cline-any cline-neutral">&nbsp;</span>
564
- <span class="cline-any cline-neutral">&nbsp;</span>
565
- <span class="cline-any cline-neutral">&nbsp;</span>
566
- <span class="cline-any cline-neutral">&nbsp;</span>
567
- <span class="cline-any cline-no">&nbsp;</span>
568
- <span class="cline-any cline-neutral">&nbsp;</span>
569
- <span class="cline-any cline-neutral">&nbsp;</span>
570
- <span class="cline-any cline-neutral">&nbsp;</span>
571
- <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-neutral">&nbsp;</span>
574
- <span class="cline-any cline-neutral">&nbsp;</span>
575
- <span class="cline-any cline-neutral">&nbsp;</span>
576
- <span class="cline-any cline-no">&nbsp;</span>
577
- <span class="cline-any cline-no">&nbsp;</span>
578
- <span class="cline-any cline-neutral">&nbsp;</span>
579
- <span class="cline-any cline-no">&nbsp;</span>
580
- <span class="cline-any cline-neutral">&nbsp;</span>
581
- <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-neutral">&nbsp;</span>
583
- <span class="cline-any cline-neutral">&nbsp;</span>
584
- <span class="cline-any cline-no">&nbsp;</span>
585
- <span class="cline-any cline-no">&nbsp;</span>
586
- <span class="cline-any cline-neutral">&nbsp;</span>
587
- <span class="cline-any cline-no">&nbsp;</span>
588
- <span class="cline-any cline-neutral">&nbsp;</span>
589
- <span class="cline-any cline-neutral">&nbsp;</span>
590
- <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-neutral">&nbsp;</span>
592
- <span class="cline-any cline-neutral">&nbsp;</span>
593
- <span class="cline-any cline-neutral">&nbsp;</span>
594
- <span class="cline-any cline-neutral">&nbsp;</span>
595
- <span class="cline-any cline-no">&nbsp;</span>
596
- <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-neutral">&nbsp;</span>
598
- <span class="cline-any cline-no">&nbsp;</span>
599
- <span class="cline-any cline-neutral">&nbsp;</span>
600
- <span class="cline-any cline-neutral">&nbsp;</span>
601
- <span class="cline-any cline-neutral">&nbsp;</span>
602
- <span class="cline-any cline-neutral">&nbsp;</span>
603
- <span class="cline-any cline-neutral">&nbsp;</span>
604
- <span class="cline-any cline-neutral">&nbsp;</span>
605
- <span class="cline-any cline-no">&nbsp;</span>
606
- <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-neutral">&nbsp;</span>
609
- <span class="cline-any cline-neutral">&nbsp;</span>
610
- <span class="cline-any cline-neutral">&nbsp;</span>
611
- <span class="cline-any cline-neutral">&nbsp;</span>
612
- <span class="cline-any cline-neutral">&nbsp;</span>
613
- <span class="cline-any cline-neutral">&nbsp;</span>
614
- <span class="cline-any cline-neutral">&nbsp;</span>
615
- <span class="cline-any cline-no">&nbsp;</span>
616
- <span class="cline-any cline-neutral">&nbsp;</span>
617
- <span class="cline-any cline-neutral">&nbsp;</span>
618
- <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-neutral">&nbsp;</span>
621
- <span class="cline-any cline-neutral">&nbsp;</span>
622
- <span class="cline-any cline-neutral">&nbsp;</span>
623
- <span class="cline-any cline-neutral">&nbsp;</span>
624
- <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-no">&nbsp;</span>
626
- <span class="cline-any cline-neutral">&nbsp;</span>
627
- <span class="cline-any cline-neutral">&nbsp;</span>
628
- <span class="cline-any cline-neutral">&nbsp;</span>
629
- <span class="cline-any cline-neutral">&nbsp;</span>
630
- <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-neutral">&nbsp;</span>
632
- <span class="cline-any cline-no">&nbsp;</span>
633
- <span class="cline-any cline-neutral">&nbsp;</span>
634
- <span class="cline-any cline-neutral">&nbsp;</span>
635
- <span class="cline-any cline-neutral">&nbsp;</span>
636
- <span class="cline-any cline-neutral">&nbsp;</span>
637
- <span class="cline-any cline-neutral">&nbsp;</span>
638
- <span class="cline-any cline-no">&nbsp;</span>
639
- <span class="cline-any cline-neutral">&nbsp;</span>
640
- <span class="cline-any cline-neutral">&nbsp;</span>
641
- <span class="cline-any cline-neutral">&nbsp;</span>
642
- <span class="cline-any cline-neutral">&nbsp;</span>
643
- <span class="cline-any cline-neutral">&nbsp;</span>
644
- <span class="cline-any cline-neutral">&nbsp;</span>
645
- <span class="cline-any cline-neutral">&nbsp;</span>
646
- <span class="cline-any cline-neutral">&nbsp;</span>
647
- <span class="cline-any cline-no">&nbsp;</span>
648
- <span class="cline-any cline-neutral">&nbsp;</span>
649
- <span class="cline-any cline-neutral">&nbsp;</span>
650
- <span class="cline-any cline-neutral">&nbsp;</span>
651
- <span class="cline-any cline-neutral">&nbsp;</span>
652
- <span class="cline-any cline-neutral">&nbsp;</span>
653
- <span class="cline-any cline-no">&nbsp;</span>
654
- <span class="cline-any cline-no">&nbsp;</span>
655
- <span class="cline-any cline-no">&nbsp;</span>
656
- <span class="cline-any cline-neutral">&nbsp;</span>
657
- <span class="cline-any cline-no">&nbsp;</span>
658
- <span class="cline-any cline-neutral">&nbsp;</span>
659
- <span class="cline-any cline-no">&nbsp;</span>
660
- <span class="cline-any cline-neutral">&nbsp;</span>
661
- <span class="cline-any cline-no">&nbsp;</span>
662
- <span class="cline-any cline-neutral">&nbsp;</span>
663
- <span class="cline-any cline-no">&nbsp;</span>
664
- <span class="cline-any cline-neutral">&nbsp;</span>
665
- <span class="cline-any cline-neutral">&nbsp;</span>
666
- <span class="cline-any cline-neutral">&nbsp;</span>
667
- <span class="cline-any cline-neutral">&nbsp;</span>
668
- <span class="cline-any cline-no">&nbsp;</span>
669
- <span class="cline-any cline-no">&nbsp;</span>
670
- <span class="cline-any cline-no">&nbsp;</span>
671
- <span class="cline-any cline-no">&nbsp;</span>
672
- <span class="cline-any cline-neutral">&nbsp;</span>
673
- <span class="cline-any cline-neutral">&nbsp;</span>
674
- <span class="cline-any cline-neutral">&nbsp;</span>
675
- <span class="cline-any cline-neutral">&nbsp;</span>
676
- <span class="cline-any cline-neutral">&nbsp;</span>
677
- <span class="cline-any cline-neutral">&nbsp;</span>
678
- <span class="cline-any cline-neutral">&nbsp;</span>
679
- <span class="cline-any cline-no">&nbsp;</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-neutral">&nbsp;</span>
683
- <span class="cline-any cline-neutral">&nbsp;</span>
684
- <span class="cline-any cline-no">&nbsp;</span>
685
- <span class="cline-any cline-no">&nbsp;</span>
686
- <span class="cline-any cline-neutral">&nbsp;</span>
687
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
692
- <span class="cline-any cline-no">&nbsp;</span>
693
- <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-no">&nbsp;</span>
695
- <span class="cline-any cline-neutral">&nbsp;</span>
696
- <span class="cline-any cline-neutral">&nbsp;</span>
697
- <span class="cline-any cline-neutral">&nbsp;</span>
698
- <span class="cline-any cline-neutral">&nbsp;</span>
699
- <span class="cline-any cline-neutral">&nbsp;</span>
700
- <span class="cline-any cline-no">&nbsp;</span>
701
- <span class="cline-any cline-no">&nbsp;</span>
702
- <span class="cline-any cline-neutral">&nbsp;</span>
703
- <span class="cline-any cline-neutral">&nbsp;</span>
704
- <span class="cline-any cline-neutral">&nbsp;</span>
705
- <span class="cline-any cline-neutral">&nbsp;</span>
706
- <span class="cline-any cline-neutral">&nbsp;</span>
707
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
712
- <span class="cline-any cline-no">&nbsp;</span>
713
- <span class="cline-any cline-neutral">&nbsp;</span>
714
- <span class="cline-any cline-no">&nbsp;</span>
715
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</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-neutral">&nbsp;</span>
722
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
726
- <span class="cline-any cline-neutral">&nbsp;</span>
727
- <span class="cline-any cline-neutral">&nbsp;</span>
728
- <span class="cline-any cline-neutral">&nbsp;</span>
729
- <span class="cline-any cline-neutral">&nbsp;</span>
730
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
736
- <span class="cline-any cline-neutral">&nbsp;</span>
737
- <span class="cline-any cline-no">&nbsp;</span>
738
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
745
- <span class="cline-any cline-no">&nbsp;</span>
746
- <span class="cline-any cline-no">&nbsp;</span>
747
- <span class="cline-any cline-neutral">&nbsp;</span>
748
- <span class="cline-any cline-neutral">&nbsp;</span>
749
- <span class="cline-any cline-neutral">&nbsp;</span>
750
- <span class="cline-any cline-neutral">&nbsp;</span>
751
- <span class="cline-any cline-neutral">&nbsp;</span>
752
- <span class="cline-any cline-no">&nbsp;</span>
753
- <span class="cline-any cline-no">&nbsp;</span>
754
- <span class="cline-any cline-no">&nbsp;</span>
755
- <span class="cline-any cline-no">&nbsp;</span>
756
- <span class="cline-any cline-no">&nbsp;</span>
757
- <span class="cline-any cline-no">&nbsp;</span>
758
- <span class="cline-any cline-no">&nbsp;</span>
759
- <span class="cline-any cline-no">&nbsp;</span>
760
- <span class="cline-any cline-no">&nbsp;</span>
761
- <span class="cline-any cline-no">&nbsp;</span>
762
- <span class="cline-any cline-no">&nbsp;</span>
763
- <span class="cline-any cline-neutral">&nbsp;</span>
764
- <span class="cline-any cline-no">&nbsp;</span>
765
- <span class="cline-any cline-no">&nbsp;</span>
766
- <span class="cline-any cline-no">&nbsp;</span>
767
- <span class="cline-any cline-no">&nbsp;</span>
768
- <span class="cline-any cline-no">&nbsp;</span>
769
- <span class="cline-any cline-neutral">&nbsp;</span>
770
- <span class="cline-any cline-no">&nbsp;</span>
771
- <span class="cline-any cline-no">&nbsp;</span>
772
- <span class="cline-any cline-neutral">&nbsp;</span>
773
- <span class="cline-any cline-no">&nbsp;</span>
774
- <span class="cline-any cline-no">&nbsp;</span>
775
- <span class="cline-any cline-no">&nbsp;</span>
776
- <span class="cline-any cline-no">&nbsp;</span>
777
- <span class="cline-any cline-no">&nbsp;</span>
778
- <span class="cline-any cline-no">&nbsp;</span>
779
- <span class="cline-any cline-no">&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-no">&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-neutral">&nbsp;</span>
800
- <span class="cline-any cline-neutral">&nbsp;</span>
801
- <span class="cline-any cline-neutral">&nbsp;</span>
802
- <span class="cline-any cline-neutral">&nbsp;</span>
803
- <span class="cline-any cline-neutral">&nbsp;</span>
804
- <span class="cline-any cline-neutral">&nbsp;</span>
805
- <span class="cline-any cline-neutral">&nbsp;</span>
806
- <span class="cline-any cline-neutral">&nbsp;</span>
807
- <span class="cline-any cline-neutral">&nbsp;</span>
808
- <span class="cline-any cline-neutral">&nbsp;</span>
809
- <span class="cline-any cline-neutral">&nbsp;</span>
810
- <span class="cline-any cline-neutral">&nbsp;</span>
811
- <span class="cline-any cline-neutral">&nbsp;</span>
812
- <span class="cline-any cline-neutral">&nbsp;</span>
813
- <span class="cline-any cline-neutral">&nbsp;</span>
814
- <span class="cline-any cline-neutral">&nbsp;</span>
815
- <span class="cline-any cline-neutral">&nbsp;</span>
816
- <span class="cline-any cline-neutral">&nbsp;</span>
817
- <span class="cline-any cline-neutral">&nbsp;</span>
818
- <span class="cline-any cline-neutral">&nbsp;</span>
819
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
823
- <span class="cline-any cline-neutral">&nbsp;</span>
824
- <span class="cline-any cline-neutral">&nbsp;</span>
825
- <span class="cline-any cline-neutral">&nbsp;</span>
826
- <span class="cline-any cline-neutral">&nbsp;</span>
827
- <span class="cline-any cline-neutral">&nbsp;</span>
828
- <span class="cline-any cline-neutral">&nbsp;</span>
829
- <span class="cline-any cline-neutral">&nbsp;</span>
830
- <span class="cline-any cline-neutral">&nbsp;</span>
831
- <span class="cline-any cline-neutral">&nbsp;</span>
832
- <span class="cline-any cline-neutral">&nbsp;</span>
833
- <span class="cline-any cline-neutral">&nbsp;</span>
834
- <span class="cline-any cline-neutral">&nbsp;</span>
835
- <span class="cline-any cline-neutral">&nbsp;</span>
836
- <span class="cline-any cline-neutral">&nbsp;</span>
837
- <span class="cline-any cline-neutral">&nbsp;</span>
838
- <span class="cline-any cline-neutral">&nbsp;</span>
839
- <span class="cline-any cline-neutral">&nbsp;</span>
840
- <span class="cline-any cline-neutral">&nbsp;</span>
841
- <span class="cline-any cline-neutral">&nbsp;</span>
842
- <span class="cline-any cline-neutral">&nbsp;</span>
843
- <span class="cline-any cline-neutral">&nbsp;</span>
844
- <span class="cline-any cline-neutral">&nbsp;</span>
845
- <span class="cline-any cline-neutral">&nbsp;</span>
846
- <span class="cline-any cline-neutral">&nbsp;</span>
847
- <span class="cline-any cline-neutral">&nbsp;</span>
848
- <span class="cline-any cline-neutral">&nbsp;</span>
849
- <span class="cline-any cline-neutral">&nbsp;</span>
850
- <span class="cline-any cline-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-yes">1x</span>
855
- <span class="cline-any cline-yes">1x</span>
856
- <span class="cline-any cline-no">&nbsp;</span>
857
- <span class="cline-any cline-no">&nbsp;</span>
858
- <span class="cline-any cline-no">&nbsp;</span>
859
- <span class="cline-any cline-no">&nbsp;</span>
860
- <span class="cline-any cline-no">&nbsp;</span>
861
- <span class="cline-any cline-neutral">&nbsp;</span>
862
- <span class="cline-any cline-no">&nbsp;</span>
863
- <span class="cline-any cline-no">&nbsp;</span>
864
- <span class="cline-any cline-no">&nbsp;</span>
865
- <span class="cline-any cline-no">&nbsp;</span>
866
- <span class="cline-any cline-neutral">&nbsp;</span>
867
- <span class="cline-any cline-no">&nbsp;</span>
868
- <span class="cline-any cline-no">&nbsp;</span>
869
- <span class="cline-any cline-no">&nbsp;</span>
870
- <span class="cline-any cline-no">&nbsp;</span>
871
- <span class="cline-any cline-no">&nbsp;</span>
872
- <span class="cline-any cline-no">&nbsp;</span>
873
- <span class="cline-any cline-neutral">&nbsp;</span>
874
- <span class="cline-any cline-no">&nbsp;</span>
875
- <span class="cline-any cline-no">&nbsp;</span>
876
- <span class="cline-any cline-neutral">&nbsp;</span>
877
- <span class="cline-any cline-neutral">&nbsp;</span>
878
- <span class="cline-any cline-no">&nbsp;</span>
879
- <span class="cline-any cline-no">&nbsp;</span>
880
- <span class="cline-any cline-no">&nbsp;</span>
881
- <span class="cline-any cline-no">&nbsp;</span>
882
- <span class="cline-any cline-neutral">&nbsp;</span>
883
- <span class="cline-any cline-no">&nbsp;</span>
884
- <span class="cline-any cline-no">&nbsp;</span>
885
- <span class="cline-any cline-no">&nbsp;</span>
886
- <span class="cline-any cline-no">&nbsp;</span>
887
- <span class="cline-any cline-neutral">&nbsp;</span>
888
- <span class="cline-any cline-neutral">&nbsp;</span>
889
- <span class="cline-any cline-no">&nbsp;</span>
890
- <span class="cline-any cline-neutral">&nbsp;</span>
891
- <span class="cline-any cline-no">&nbsp;</span>
892
- <span class="cline-any cline-no">&nbsp;</span>
893
- <span class="cline-any cline-no">&nbsp;</span>
894
- <span class="cline-any cline-no">&nbsp;</span>
895
- <span class="cline-any cline-no">&nbsp;</span>
896
- <span class="cline-any cline-neutral">&nbsp;</span>
897
- <span class="cline-any cline-no">&nbsp;</span>
898
- <span class="cline-any cline-no">&nbsp;</span>
899
- <span class="cline-any cline-neutral">&nbsp;</span>
900
- <span class="cline-any cline-no">&nbsp;</span>
901
- <span class="cline-any cline-no">&nbsp;</span>
902
- <span class="cline-any cline-neutral">&nbsp;</span>
903
- <span class="cline-any cline-no">&nbsp;</span>
904
- <span class="cline-any cline-no">&nbsp;</span>
905
- <span class="cline-any cline-no">&nbsp;</span>
906
- <span class="cline-any cline-neutral">&nbsp;</span>
907
- <span class="cline-any cline-no">&nbsp;</span>
908
- <span class="cline-any cline-no">&nbsp;</span>
909
- <span class="cline-any cline-no">&nbsp;</span>
910
- <span class="cline-any cline-neutral">&nbsp;</span>
911
- <span class="cline-any cline-no">&nbsp;</span>
912
- <span class="cline-any cline-no">&nbsp;</span>
913
- <span class="cline-any cline-neutral">&nbsp;</span>
914
- <span class="cline-any cline-no">&nbsp;</span>
915
- <span class="cline-any cline-no">&nbsp;</span>
916
- <span class="cline-any cline-no">&nbsp;</span>
917
- <span class="cline-any cline-no">&nbsp;</span>
918
- <span class="cline-any cline-no">&nbsp;</span>
919
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
923
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
927
- <span class="cline-any cline-no">&nbsp;</span>
928
- <span class="cline-any cline-no">&nbsp;</span>
929
- <span class="cline-any cline-no">&nbsp;</span>
930
- <span class="cline-any cline-no">&nbsp;</span>
931
- <span class="cline-any cline-no">&nbsp;</span>
932
- <span class="cline-any cline-neutral">&nbsp;</span>
933
- <span class="cline-any cline-no">&nbsp;</span>
934
- <span class="cline-any cline-neutral">&nbsp;</span>
935
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
939
- <span class="cline-any cline-no">&nbsp;</span>
940
- <span class="cline-any cline-no">&nbsp;</span>
941
- <span class="cline-any cline-neutral">&nbsp;</span>
942
- <span class="cline-any cline-no">&nbsp;</span>
943
- <span class="cline-any cline-neutral">&nbsp;</span>
944
- <span class="cline-any cline-neutral">&nbsp;</span>
945
- <span class="cline-any cline-neutral">&nbsp;</span>
946
- <span class="cline-any cline-no">&nbsp;</span>
947
- <span class="cline-any cline-no">&nbsp;</span>
948
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
961
- <span class="cline-any cline-neutral">&nbsp;</span>
962
- <span class="cline-any cline-neutral">&nbsp;</span>
963
- <span class="cline-any cline-neutral">&nbsp;</span>
964
- <span class="cline-any cline-neutral">&nbsp;</span>
965
- <span class="cline-any cline-yes">1x</span>
966
- <span class="cline-any cline-no">&nbsp;</span>
967
- <span class="cline-any cline-no">&nbsp;</span>
968
- <span class="cline-any cline-neutral">&nbsp;</span>
969
- <span class="cline-any cline-yes">1x</span>
970
- <span class="cline-any cline-no">&nbsp;</span>
971
- <span class="cline-any cline-no">&nbsp;</span>
972
- <span class="cline-any cline-neutral">&nbsp;</span>
973
- <span class="cline-any cline-no">&nbsp;</span>
974
- <span class="cline-any cline-no">&nbsp;</span>
975
- <span class="cline-any cline-no">&nbsp;</span>
976
- <span class="cline-any cline-neutral">&nbsp;</span>
977
- <span class="cline-any cline-no">&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-yes">1x</span>
981
- <span class="cline-any cline-no">&nbsp;</span>
982
- <span class="cline-any cline-neutral">&nbsp;</span>
983
- <span class="cline-any cline-no">&nbsp;</span>
984
- <span class="cline-any cline-no">&nbsp;</span>
985
- <span class="cline-any cline-no">&nbsp;</span>
986
- <span class="cline-any cline-neutral">&nbsp;</span>
987
- <span class="cline-any cline-no">&nbsp;</span>
988
- <span class="cline-any cline-no">&nbsp;</span>
989
- <span class="cline-any cline-neutral">&nbsp;</span>
990
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { uniq, omit } from 'lodash';
991
- import { BaseNode } from '../../common/BaseNode';
992
- import { tracking, TRACK_TYPE, IGNORE_PROPERTY } from './utils';
993
- import { getConceptConstructor, getConceptMeta } from '../../decorators/index';
994
- // import { unique, firstUpperCase } from '../../utils/string';
995
- import { uniqueName, componentUniqueName } from './uniqueName';
996
- import { ops as operatorModule, ComponentOps } from './operators';
997
- import { processComponent } from '../template/myProcess';
998
- &nbsp;
999
- let id = 0;
1000
- class TemplateMeta {
1001
- <span class="fstat-no" title="function not covered" > constructor(n</span>ode) {
1002
- // this.name = `t_${uuidv4().replace(/-/g, '')}`;
1003
- <span class="cstat-no" title="statement not covered" > this.name = `t_${node.concept}_${node.name ? node.name.replace(/[-\.]/g, '') : 'unknown'}_${id++}`;</span>
1004
- <span class="cstat-no" title="statement not covered" > this.node = node;</span>
1005
- <span class="cstat-no" title="statement not covered" > this.isRoot = false;</span>
1006
- <span class="cstat-no" title="statement not covered" > this.rootBinds = [];</span>
1007
- <span class="cstat-no" title="statement not covered" > this.binds = [];</span>
1008
- <span class="cstat-no" title="statement not covered" > this.callees = [];</span>
1009
- <span class="cstat-no" title="statement not covered" > this.modules = [];</span>
1010
- <span class="cstat-no" title="statement not covered" > this.rolebinds = [];</span>
1011
- <span class="cstat-no" title="statement not covered" > this.templatebinds = [];</span>
1012
- // 前端全局变量
1013
- <span class="cstat-no" title="statement not covered" > this.frontendVariables = [];</span>
1014
- }
1015
- &nbsp;
1016
- <span class="fstat-no" title="function not covered" > addRootBinds(</span>propertyName, templateMeta) {
1017
- // App.[propertyName].push(templateMeta.name)
1018
- <span class="cstat-no" title="statement not covered" > if (!this.rootBinds.find(<span class="fstat-no" title="function not covered" >(b</span>) =&gt; <span class="cstat-no" title="statement not covered" >b.propertyName === propertyName)</span>) {</span>
1019
- <span class="cstat-no" title="statement not covered" > this.rootBinds.push({</span>
1020
- propertyName,
1021
- value: templateMeta.name,
1022
- });
1023
- }
1024
- }
1025
- &nbsp;
1026
- <span class="fstat-no" title="function not covered" > addBinds(</span>type, propertyName, templateMeta) {
1027
- // this.node.[propertyName] = templateMeta.name
1028
- // this.node.[propertyName].push(templateMeta.name)
1029
- <span class="cstat-no" title="statement not covered" > this.binds.push({</span>
1030
- type,
1031
- propertyName,
1032
- value: templateMeta.name,
1033
- });
1034
- }
1035
- &nbsp;
1036
- <span class="fstat-no" title="function not covered" > addPlainBinds(</span>propertyName, value) {
1037
- // this.node.[propertyName] = value
1038
- <span class="cstat-no" title="statement not covered" > if (typeof value === 'string') {</span>
1039
- <span class="cstat-no" title="statement not covered" > value = value</span>
1040
- .split(/\r?\n/)
1041
- .map(<span class="fstat-no" title="function not covered" >(c</span>) =&gt; <span class="cstat-no" title="statement not covered" >`"${c.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`)</span>
1042
- // .map((c) =&gt; `"${c.replace(/([^\\])"/g, '$1\\"')}"`)
1043
- // .map((c) =&gt; `decodeURIComponent("${c.encodeURIComponent}")`)
1044
- .join(' + "\\n" +\n');
1045
- }
1046
- <span class="cstat-no" title="statement not covered" > if (typeof value === 'object') {</span>
1047
- <span class="cstat-no" title="statement not covered" > value = JSON.stringify(value);</span>
1048
- }
1049
- <span class="cstat-no" title="statement not covered" > this.binds.push({</span>
1050
- type: TRACK_TYPE.PLAIN,
1051
- propertyName,
1052
- value,
1053
- });
1054
- }
1055
- &nbsp;
1056
- <span class="fstat-no" title="function not covered" > addModule(</span>m) {
1057
- <span class="cstat-no" title="statement not covered" > this.modules.push({</span>
1058
- name: m.name,
1059
- belongs: m.parentKey,
1060
- data: m._toJSON(<span class="fstat-no" title="function not covered" >(s</span>ource) =&gt; <span class="cstat-no" title="statement not covered" >omit(source, IGNORE_PROPERTY))</span>,
1061
- });
1062
- }
1063
- &nbsp;
1064
- <span class="fstat-no" title="function not covered" > addCallee(</span>propertyName, relatedPropertyName, templateMeta) {
1065
- // this.node.[propertyName] = [targetVar].getNamespace();
1066
- // this.node.[relatedPropertyName] = [targetVar].name;
1067
- <span class="cstat-no" title="statement not covered" > this.callees.push({</span>
1068
- propertyName,
1069
- relatedPropertyName,
1070
- targetVar: templateMeta.name,
1071
- });
1072
- }
1073
- &nbsp;
1074
- <span class="fstat-no" title="function not covered" > addCalleeTemplate(</span>propertyName, relatedPropertyName, nstemplate, nametemplate, arguVars) {
1075
- // this.node.[propertyName] = nstemplate([arguVars]);
1076
- // this.node.[relatedPropertyName] = nametemplate([arguVars]);
1077
- <span class="cstat-no" title="statement not covered" > this.callees.push({</span>
1078
- propertyName,
1079
- relatedPropertyName,
1080
- nstemplate,
1081
- nametemplate,
1082
- arguVars,
1083
- });
1084
- }
1085
- &nbsp;
1086
- <span class="fstat-no" title="function not covered" > addRoleTemplate(</span>propertyName, arguVars) {
1087
- <span class="cstat-no" title="statement not covered" > this.rolebinds.push({</span>
1088
- propertyName,
1089
- arguVars,
1090
- });
1091
- }
1092
- &nbsp;
1093
- <span class="fstat-no" title="function not covered" > addTemplateBind(</span>propertyName, relatedVar, relatedProperty) {
1094
- <span class="cstat-no" title="statement not covered" > this.templatebinds.push({</span>
1095
- propertyName, relatedVar, relatedProperty,
1096
- });
1097
- }
1098
- &nbsp;
1099
- <span class="fstat-no" title="function not covered" > genComment(</span>part) {
1100
- <span class="cstat-no" title="statement not covered" > return `/*---------${this.node.concept} ${this.node.name} ${part} -----------*/`;</span>
1101
- }
1102
- &nbsp;
1103
- <span class="fstat-no" title="function not covered" > genCreate(</span>) {
1104
- // [this.name] = create[this.node.concept]();
1105
- &nbsp;
1106
- // return `${this.genComment('create')}
1107
- // _tempConstructor = getConceptConstructor("${this.node.concept}");
1108
- // const ${this.name} = new _tempConstructor();`
1109
- <span class="cstat-no" title="statement not covered" > return `${this.genComment('create')}</span>
1110
- let ${this.name} = _create("${this.node.concept}");
1111
- _templateObjects.push(${this.name})`;
1112
- }
1113
- &nbsp;
1114
- <span class="fstat-no" title="function not covered" > genBind(</span>) {
1115
- <span class="cstat-no" title="statement not covered" > return this.binds.map(<span class="fstat-no" title="function not covered" >(b</span>ind) =&gt; {</span>
1116
- const { type, propertyName, value } = <span class="cstat-no" title="statement not covered" >bind;</span>
1117
- <span class="cstat-no" title="statement not covered" > switch (type) {</span>
1118
- case TRACK_TYPE.PROPERTY:
1119
- <span class="cstat-no" title="statement not covered" > return `_set(${this.name}, "${propertyName}", ${value}, (updatedObj) =&gt; { ${value} = updatedObj; })`;</span>
1120
- case TRACK_TYPE.PLAIN:
1121
- <span class="cstat-no" title="statement not covered" > return `_set(${this.name}, "${propertyName}", ${value});`;</span>
1122
- case TRACK_TYPE.ARRAY:
1123
- <span class="cstat-no" title="statement not covered" > return `_push(${this.name}, "${propertyName}", ${value});`;</span>
1124
- }
1125
- <span class="cstat-no" title="statement not covered" > return '';</span>
1126
- });
1127
- }
1128
- &nbsp;
1129
- <span class="fstat-no" title="function not covered" > genRootBind(</span>) {
1130
- <span class="cstat-no" title="statement not covered" > return this.rootBinds.map(<span class="fstat-no" title="function not covered" >(b</span>ind) =&gt; {</span>
1131
- const { propertyName, value } = <span class="cstat-no" title="statement not covered" >bind;</span>
1132
- <span class="cstat-no" title="statement not covered" > if (propertyName === 'roles') {</span>
1133
- <span class="cstat-no" title="statement not covered" > return `</span>
1134
- if(roleCallback) {
1135
- ${value} = roleCallback(${value})
1136
- } else {
1137
- _push(app, "roles", ${value});
1138
- }`;
1139
- }
1140
- // return `app.${propertyName}.push(${value});
1141
- <span class="cstat-no" title="statement not covered" > return `_push(app, "${propertyName}", ${value});`;</span>
1142
- });
1143
- }
1144
- &nbsp;
1145
- <span class="fstat-no" title="function not covered" > genEntryBind(</span>) {
1146
- <span class="cstat-no" title="statement not covered" > if (this.isRoot) {</span>
1147
- <span class="cstat-no" title="statement not covered" > return `rootBindCallback(${this.name})`;</span>
1148
- }
1149
- <span class="cstat-no" title="statement not covered" > return '';</span>
1150
- }
1151
- &nbsp;
1152
- <span class="fstat-no" title="function not covered" > genRootReturn(</span>) {
1153
- <span class="cstat-no" title="statement not covered" > if (this.isRoot) {</span>
1154
- <span class="cstat-no" title="statement not covered" > return `return ${this.name};`;</span>
1155
- }
1156
- <span class="cstat-no" title="statement not covered" > return '';</span>
1157
- }
1158
- &nbsp;
1159
- <span class="fstat-no" title="function not covered" > genName(</span>) {
1160
- // [this.name].name = this.parent.genUniqueXXXName();
1161
- // return `${this.name}.name = (${this.name}.parentNode.gen${this.node.concept}UniqueName ? ${this.name}.parentNode.gen${this.node.concept}UniqueName() : ${this.name}.name)`
1162
- <span class="cstat-no" title="statement not covered" > if (this.node.concept === 'Role') {</span>
1163
- <span class="cstat-no" title="statement not covered" > return '';</span>
1164
- }
1165
- // if (this.node.concept === 'Entity') {
1166
- // return `_set(${this.name}, "name", getGenUniqNameFunctionName(${this.name}, "${this.node.concept}"));`;
1167
- // _setTableName(${this.name}, ${this.name}.name + '_' + app.id.slice(0,6));`;
1168
- // }
1169
- <span class="cstat-no" title="statement not covered" > return `_set(${this.name}, "name", _uniqueName.getGenUniqNameFunctionName(${this.name}, "${this.node.concept}", app), (updatedObj) =&gt; { ${this.name} = updatedObj; })`;</span>
1170
- }
1171
- &nbsp;
1172
- <span class="fstat-no" title="function not covered" > genRoleBind(</span>) {
1173
- <span class="cstat-no" title="statement not covered" > return this.rolebinds.map(<span class="fstat-no" title="function not covered" >(r</span>ole) =&gt; {</span>
1174
- const { propertyName, arguVars } = <span class="cstat-no" title="statement not covered" >role;</span>
1175
- &nbsp;
1176
- <span class="cstat-no" title="statement not covered" > return `_set(${this.name}, "${propertyName}", _bindRoles(${arguVars}), (updatedObj) =&gt; { ${this.name} = updatedObj; });`;</span>
1177
- });
1178
- }
1179
- &nbsp;
1180
- <span class="fstat-no" title="function not covered" > genCallee(</span>) {
1181
- <span class="cstat-no" title="statement not covered" > return this.callees.map(<span class="fstat-no" title="function not covered" >(c</span>allee) =&gt; {</span>
1182
- const { propertyName, relatedPropertyName, targetVar, nstemplate, nametemplate, arguVars } = <span class="cstat-no" title="statement not covered" >callee;</span>
1183
- &nbsp;
1184
- <span class="cstat-no" title="statement not covered" > if (arguVars &amp;&amp; nstemplate &amp;&amp; nametemplate) {</span>
1185
- // return `${this.name}.${propertyName} = (${nstemplate}(${arguVars}));
1186
- // ${this.name}.${relatedPropertyName} = (${nametemplate}(${arguVars}))`
1187
- <span class="cstat-no" title="statement not covered" > return `_set(${this.name}, "${propertyName}", (${nstemplate}(${arguVars})));</span>
1188
- _set(${this.name}, "${relatedPropertyName}", (${nametemplate}(${arguVars})))`;
1189
- } else {
1190
- // return `${this.name}.${propertyName} = ${targetVar}.getNamespace();
1191
- // ${this.name}.${relatedPropertyName} = ${targetVar}.name;`
1192
- <span class="cstat-no" title="statement not covered" > return `_set(${this.name}, "${propertyName}", ${targetVar}.getNamespace(), (updatedObj) =&gt; { ${this.name} = updatedObj; });</span>
1193
- _set(${this.name}, "${relatedPropertyName}", ${targetVar}.name, (updatedObj) =&gt; { ${this.name} = updatedObj; });`;
1194
- }
1195
- });
1196
- }
1197
- &nbsp;
1198
- <span class="fstat-no" title="function not covered" > genModule(</span>) {
1199
- <span class="cstat-no" title="statement not covered" > return this.modules.map(<span class="fstat-no" title="function not covered" >(m</span>eta) =&gt; {</span>
1200
- const { name, belongs, data } = <span class="cstat-no" title="statement not covered" >meta;</span>
1201
- <span class="cstat-no" title="statement not covered" > return `_addModule(app, "${name}", "${belongs}", ${JSON.stringify(data)});`;</span>
1202
- });
1203
- }
1204
- &nbsp;
1205
- <span class="fstat-no" title="function not covered" > genTemplateBind(</span>) {
1206
- <span class="cstat-no" title="statement not covered" > return this.templatebinds.map(<span class="fstat-no" title="function not covered" >(m</span>eta) =&gt; {</span>
1207
- const { propertyName, relatedVar, relatedProperty } = <span class="cstat-no" title="statement not covered" >meta;</span>
1208
- <span class="cstat-no" title="statement not covered" > return `_set(${this.name}, "${propertyName}", ${relatedVar}.${relatedProperty})`;</span>
1209
- });
1210
- }
1211
- }
1212
- &nbsp;
1213
- function <span class="fstat-no" title="function not covered" >autoScript(</span>stack) {
1214
- const createBlock = <span class="cstat-no" title="statement not covered" >[];</span>
1215
- let rootBindBlock = <span class="cstat-no" title="statement not covered" >[];</span>
1216
- let bindBlock = <span class="cstat-no" title="statement not covered" >[];</span>
1217
- let rolebindBlock = <span class="cstat-no" title="statement not covered" >[];</span>
1218
- let appBindBlock = <span class="cstat-no" title="statement not covered" >[];</span>
1219
- const nameBlock = <span class="cstat-no" title="statement not covered" >[];</span>
1220
- let calleeBlock = <span class="cstat-no" title="statement not covered" >[];</span>
1221
- let moduleBlock = <span class="cstat-no" title="statement not covered" >[];</span>
1222
- let returnBlock = <span class="cstat-no" title="statement not covered" >[];</span>
1223
- let roleNASL = <span class="cstat-no" title="statement not covered" >[];</span>
1224
- let templateBlock = <span class="cstat-no" title="statement not covered" >[];</span>
1225
- &nbsp;
1226
- <span class="cstat-no" title="statement not covered" > stack.forEach(<span class="fstat-no" title="function not covered" >(t</span>emp) =&gt; {</span>
1227
- <span class="cstat-no" title="statement not covered" > createBlock.push(temp.genCreate());</span>
1228
- <span class="cstat-no" title="statement not covered" > if (temp.isRoot) {</span>
1229
- <span class="cstat-no" title="statement not covered" > rootBindBlock = rootBindBlock.concat(temp.genEntryBind());</span>
1230
- <span class="cstat-no" title="statement not covered" > returnBlock = returnBlock.concat(temp.genRootReturn());</span>
1231
- }
1232
- <span class="cstat-no" title="statement not covered" > if (temp.node.concept === 'Role') {</span>
1233
- <span class="cstat-no" title="statement not covered" > roleNASL = roleNASL.concat(temp.node._toJSON(<span class="fstat-no" title="function not covered" >(s</span>ource) =&gt; <span class="cstat-no" title="statement not covered" >omit(source, IGNORE_PROPERTY))</span>);</span>
1234
- }
1235
- <span class="cstat-no" title="statement not covered" > rolebindBlock = rolebindBlock.concat(temp.genRoleBind());</span>
1236
- <span class="cstat-no" title="statement not covered" > bindBlock = bindBlock.concat(temp.genBind());</span>
1237
- <span class="cstat-no" title="statement not covered" > appBindBlock = uniq(appBindBlock.concat(temp.genRootBind()));</span>
1238
- <span class="cstat-no" title="statement not covered" > nameBlock.push(temp.genName());</span>
1239
- <span class="cstat-no" title="statement not covered" > calleeBlock = calleeBlock.concat(temp.genCallee());</span>
1240
- <span class="cstat-no" title="statement not covered" > moduleBlock = moduleBlock.concat(temp.genModule());</span>
1241
- <span class="cstat-no" title="statement not covered" > templateBlock = templateBlock.concat(temp.genTemplateBind());</span>
1242
- });
1243
- const ideVersion = <span class="cstat-no" title="statement not covered" >window.globalData.ideVersion;</span>
1244
- <span class="cstat-no" title="statement not covered" > return `</span>
1245
- (function () {
1246
- const injectModule = {};
1247
-
1248
- const exportRoles = function() {
1249
- return ${JSON.stringify(roleNASL)};
1250
- }
1251
- &nbsp;
1252
- const execTemplate = function(app, frontend, getCtor, getCMeta, base, rootBindCallback, roleCallback, finalCallback) {
1253
- let _templateObjects = [];
1254
- const {
1255
- _set,
1256
- _push,
1257
- _create,
1258
- _addModule,
1259
- _bindRoles,
1260
- } = injectModule.operators;
1261
- const _uniqueName = new injectModule.uniqueName();
1262
- &nbsp;
1263
- _uniqueName.initAppUniqueNames(app, frontend);
1264
- &nbsp;
1265
- app.emit('collect:start', {
1266
- actionMsg: '导入页面模板'
1267
- });
1268
- /*---- create ---- */
1269
- ${createBlock.join('\n\t\t')}
1270
- &nbsp;
1271
- /*---- bind ---- */
1272
- ${bindBlock.join('\n\t\t')}
1273
- &nbsp;
1274
- /*---- reset name ---- */
1275
- ${nameBlock.join('\n\t\t')}
1276
- &nbsp;
1277
- /*--- root bind ---*/
1278
- ${rootBindBlock.join('\n\t\t')}
1279
- &nbsp;
1280
- /*---- appbind ---- */
1281
- ${appBindBlock.join('\n\t\t')}
1282
- &nbsp;
1283
- /*--- role bind ---*/
1284
- ${rolebindBlock.join('\n\t\t')}
1285
- &nbsp;
1286
- /*---- reset callee ---- */
1287
- ${calleeBlock.join('\n\t\t')}
1288
- &nbsp;
1289
- /*--- template bind ---- */
1290
- ${templateBlock.join('\n\t\t')}
1291
- &nbsp;
1292
- /*---- add module ----*/
1293
- ${moduleBlock.join('\n\t\t')}
1294
- &nbsp;
1295
- /*--- final callback ---*/
1296
- if(finalCallback) {
1297
- finalCallback(_templateObjects)
1298
- }
1299
- app.emit('collect:end');
1300
- &nbsp;
1301
- /*---- return root -----*/
1302
- ${returnBlock.join('\n\t\t')}
1303
- }
1304
- &nbsp;
1305
- return {
1306
- version: '${ideVersion}',
1307
- execTemplate,
1308
- exportRoles,
1309
- importModule(key, m) {
1310
- injectModule[key] = m;
1311
- injectModule[key].templateVersion = '${ideVersion}'
1312
- },
1313
- }
1314
- })();`;
1315
- }
1316
- const i = 0;
1317
- export function <span class="fstat-no" title="function not covered" >autoTemplate(</span>node) {
1318
- const visitedMap = <span class="cstat-no" title="statement not covered" >new WeakMap();</span>
1319
- const stack = <span class="cstat-no" title="statement not covered" >[];</span>
1320
- const startNode = <span class="cstat-no" title="statement not covered" >node;</span>
1321
- let rootNode = <span class="cstat-no" title="statement not covered" >true;</span>
1322
- const finalOps = <span class="cstat-no" title="statement not covered" >[];</span>
1323
- function <span class="fstat-no" title="function not covered" >iterator(</span>node) {
1324
- <span class="cstat-no" title="statement not covered" > if (node &amp;&amp; !visitedMap.has(node)) {</span>
1325
- const meta = <span class="cstat-no" title="statement not covered" >new TemplateMeta(node);</span>
1326
- <span class="cstat-no" title="statement not covered" > if (rootNode) {</span>
1327
- <span class="cstat-no" title="statement not covered" > meta.isRoot = true;</span>
1328
- }
1329
- <span class="cstat-no" title="statement not covered" > rootNode = false;</span>
1330
- <span class="cstat-no" title="statement not covered" > stack.push(meta);</span>
1331
- <span class="cstat-no" title="statement not covered" > visitedMap.set(node, meta);</span>
1332
- <span class="cstat-no" title="statement not covered" > tracking(node, startNode, <span class="fstat-no" title="function not covered" >(t</span>ype, propertyName, property, options = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> =&gt; {</span>
1333
- const { rootNode, calleeNode, relatedPropertyName, AppPropertyName, metaNodes } = <span class="cstat-no" title="statement not covered" >options;</span>
1334
- <span class="cstat-no" title="statement not covered" > switch (type) {</span>
1335
- case TRACK_TYPE.PLAIN:
1336
- <span class="cstat-no" title="statement not covered" > meta.addPlainBinds(propertyName, property);</span>
1337
- <span class="cstat-no" title="statement not covered" > break;</span>
1338
- case TRACK_TYPE.PROPERTY:
1339
- case TRACK_TYPE.ARRAY:
1340
- <span class="cstat-no" title="statement not covered" > iterator(property);</span>
1341
- const pmeta = <span class="cstat-no" title="statement not covered" >visitedMap.get(property);</span>
1342
- <span class="cstat-no" title="statement not covered" > meta.addBinds(type, propertyName, pmeta);</span>
1343
- <span class="cstat-no" title="statement not covered" > break;</span>
1344
- case TRACK_TYPE.ARRAY_NO_FURTHER:
1345
- <span class="cstat-no" title="statement not covered" > finalOps.push(<span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1346
- const pmeta = <span class="cstat-no" title="statement not covered" >visitedMap.get(property);</span>
1347
- <span class="cstat-no" title="statement not covered" > if (pmeta) {</span>
1348
- <span class="cstat-no" title="statement not covered" > meta.addBinds(TRACK_TYPE.ARRAY, propertyName, pmeta);</span>
1349
- }
1350
- });
1351
- <span class="cstat-no" title="statement not covered" > break;</span>
1352
- case TRACK_TYPE.CALLEE:
1353
- <span class="cstat-no" title="statement not covered" > iterator(rootNode);</span>
1354
- <span class="cstat-no" title="statement not covered" > iterator(calleeNode);</span>
1355
- const cmeta = <span class="cstat-no" title="statement not covered" >visitedMap.get(calleeNode);</span>
1356
- <span class="cstat-no" title="statement not covered" > if (AppPropertyName) {</span>
1357
- <span class="cstat-no" title="statement not covered" > meta.addRootBinds(AppPropertyName, visitedMap.get(rootNode));</span>
1358
- }
1359
- <span class="cstat-no" title="statement not covered" > meta.addCallee(propertyName, relatedPropertyName, cmeta);</span>
1360
- <span class="cstat-no" title="statement not covered" > break;</span>
1361
- case TRACK_TYPE.MODULE:
1362
- <span class="cstat-no" title="statement not covered" > meta.addModule(property);</span>
1363
- <span class="cstat-no" title="statement not covered" > break;</span>
1364
- case TRACK_TYPE.CALLEE_TEMPLATE:
1365
- const { nstemplate, nametemplate } = <span class="cstat-no" title="statement not covered" >options;</span>
1366
- <span class="cstat-no" title="statement not covered" > metaNodes.forEach(<span class="fstat-no" title="function not covered" >(n</span>) =&gt; {</span>
1367
- <span class="cstat-no" title="statement not covered" > iterator(n);</span>
1368
- });
1369
- const arguVars = <span class="cstat-no" title="statement not covered" >metaNodes.map(<span class="fstat-no" title="function not covered" >(n</span>) =&gt; <span class="cstat-no" title="statement not covered" >visitedMap.get(n).name)</span>.join(',');</span>
1370
- <span class="cstat-no" title="statement not covered" > if (AppPropertyName) {</span>
1371
- <span class="cstat-no" title="statement not covered" > meta.addRootBinds(AppPropertyName, visitedMap.get(rootNode));</span>
1372
- }
1373
- <span class="cstat-no" title="statement not covered" > meta.addCalleeTemplate(propertyName, relatedPropertyName, nstemplate, nametemplate, arguVars);</span>
1374
- <span class="cstat-no" title="statement not covered" > break;</span>
1375
- case TRACK_TYPE.ROLE_TEMPLATE:
1376
- const roleMetaNames = <span class="cstat-no" title="statement not covered" >[];</span>
1377
- <span class="cstat-no" title="statement not covered" > metaNodes.forEach(<span class="fstat-no" title="function not covered" >(n</span>ode) =&gt; {</span>
1378
- <span class="cstat-no" title="statement not covered" > iterator(node);</span>
1379
- const m = <span class="cstat-no" title="statement not covered" >visitedMap.get(node);</span>
1380
- <span class="cstat-no" title="statement not covered" > m.addRootBinds('roles', m);</span>
1381
- <span class="cstat-no" title="statement not covered" > roleMetaNames.push(m.name);</span>
1382
- });
1383
- &nbsp;
1384
- <span class="cstat-no" title="statement not covered" > meta.addRoleTemplate(propertyName, roleMetaNames);</span>
1385
- <span class="cstat-no" title="statement not covered" > break;</span>
1386
- case TRACK_TYPE.PROPERTY_TEMPLATE:
1387
- const relatedProperty = <span class="cstat-no" title="statement not covered" >options.relatedProperty;</span>
1388
- const getRelatedVar = <span class="cstat-no" title="statement not covered" >options.getRelatedVar;</span>
1389
- const t = <span class="cstat-no" title="statement not covered" >getRelatedVar();</span>
1390
- <span class="cstat-no" title="statement not covered" > if (t) {</span>
1391
- <span class="cstat-no" title="statement not covered" > iterator(t);</span>
1392
- const relatedMeta = <span class="cstat-no" title="statement not covered" >visitedMap.get(t);</span>
1393
- <span class="cstat-no" title="statement not covered" > meta.addTemplateBind(propertyName, relatedMeta.name, relatedProperty);</span>
1394
- }
1395
- <span class="cstat-no" title="statement not covered" > break;</span>
1396
- default:
1397
- <span class="cstat-no" title="statement not covered" > break;</span>
1398
- }
1399
- });
1400
- <span class="cstat-no" title="statement not covered" > return meta;</span>
1401
- } else <span class="cstat-no" title="statement not covered" >if (node) {</span>
1402
- <span class="cstat-no" title="statement not covered" > return visitedMap.get(node);</span>
1403
- } else {
1404
- <span class="cstat-no" title="statement not covered" > return null;</span>
1405
- }
1406
- }
1407
- &nbsp;
1408
- <span class="cstat-no" title="statement not covered" > iterator(node);</span>
1409
- <span class="cstat-no" title="statement not covered" > finalOps.forEach(<span class="fstat-no" title="function not covered" >(f</span>) =&gt; { <span class="cstat-no" title="statement not covered" >f(); </span>});</span>
1410
- <span class="cstat-no" title="statement not covered" > return autoScript(stack);</span>
1411
- }
1412
- &nbsp;
1413
- /* 使用模板的代码 */
1414
- /*
1415
- const view = this.view;
1416
- const app = view.rootNode;
1417
- applyTemplate(script, app, (rootNode) =&gt; {
1418
- const names = app.getViewExistingNames();
1419
- if(names.includes(rootNode.name)) {
1420
- const name = app.getViewUniqueName();
1421
- rootNode.name = name;
1422
- }
1423
- app.addView(rootNode);
1424
- })
1425
- */
1426
- &nbsp;
1427
- export function <span class="fstat-no" title="function not covered" >getRoles(</span>script) {
1428
- const { exportRoles } = <span class="cstat-no" title="statement not covered" >eval(script);</span>
1429
- <span class="cstat-no" title="statement not covered" > return exportRoles();</span>
1430
- }
1431
- export function <span class="fstat-no" title="function not covered" >applyTemplate(</span>script, app, frontend, rootBindCallback, roleCallback, finalCallback) {
1432
- <span class="cstat-no" title="statement not covered" > operatorModule.upgraders.forEach(<span class="fstat-no" title="function not covered" >(u</span>pgrader) =&gt; <span class="cstat-no" title="statement not covered" >upgrader.replace &amp;&amp; (script = upgrader.replace(script)))</span>;</span>
1433
- const { execTemplate, importModule } = <span class="cstat-no" title="statement not covered" >eval(script);</span>
1434
- // 为了兼容 2.11 老模板
1435
- <span class="cstat-no" title="statement not covered" > if (importModule) {</span>
1436
- <span class="cstat-no" title="statement not covered" > importModule('operators', operatorModule);</span>
1437
- <span class="cstat-no" title="statement not covered" > importModule('uniqueName', uniqueName);</span>
1438
- }
1439
- <span class="cstat-no" title="statement not covered" > execTemplate(app, frontend, getConceptConstructor, getConceptMeta, BaseNode, rootBindCallback, roleCallback, finalCallback);</span>
1440
- }
1441
- &nbsp;
1442
- export function <span class="fstat-no" title="function not covered" >applyDropComponent(</span>app, frontend, view, element) {
1443
- const { execTemplate, importModule } = <span class="cstat-no" title="statement not covered" >processComponent;</span>
1444
- // 为了兼容 2.11 老模板
1445
- <span class="cstat-no" title="statement not covered" > if (importModule) {</span>
1446
- <span class="cstat-no" title="statement not covered" > importModule('operators', ComponentOps);</span>
1447
- <span class="cstat-no" title="statement not covered" > importModule('uniqueName', componentUniqueName);</span>
1448
- }
1449
- <span class="cstat-no" title="statement not covered" > view.collectExistingViewElementName();</span>
1450
- <span class="cstat-no" title="statement not covered" > return execTemplate(app, frontend, view, element);</span>
1451
- }
1452
- &nbsp;</pre></td></tr></table></pre>
1453
-
1454
- <div class='push'></div><!-- for sticky footer -->
1455
- </div><!-- /wrapper -->
1456
- <div class='footer quiet pad2 space-top1 center small'>
1457
- Code coverage generated by
1458
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1459
- at 2023-10-25T09:59:01.955Z
1460
- </div>
1461
- <script src="../../../prettify.js"></script>
1462
- <script>
1463
- window.onload = function () {
1464
- prettyPrint();
1465
- };
1466
- </script>
1467
- <script src="../../../sorter.js"></script>
1468
- <script src="../../../block-navigation.js"></script>
1469
- </body>
1470
- </html>
1471
-