@decaf-ts/for-angular 0.1.4 → 0.1.5

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 (374) hide show
  1. package/package.json +16 -89
  2. package/.editorconfig +0 -31
  3. package/.gitlab-ci.yml +0 -197
  4. package/.hintrc +0 -19
  5. package/.prettierrc +0 -49
  6. package/.snyk +0 -13
  7. package/LICENSE.md +0 -260
  8. package/angular.json +0 -274
  9. package/bs-config.json +0 -5
  10. package/cli-module.js.map +0 -1
  11. package/dist/for-angular/cli/cli-module.d.ts +0 -22
  12. package/dist/for-angular/cli/cli-module.d.ts.map +0 -1
  13. package/dist/for-angular/cli/cli-module.js +0 -131
  14. package/dist/for-angular/cli/cli-module.js.map +0 -1
  15. package/dist/lib/README.md +0 -117
  16. package/eslint.config.mjs +0 -101
  17. package/ionic.config.json +0 -14
  18. package/jest.config.ts +0 -52
  19. package/jest.setup.ts +0 -50
  20. package/karma.conf.js +0 -50
  21. package/ng-package.json +0 -16
  22. package/ngsw-config.json +0 -30
  23. package/playwright.config.ts +0 -80
  24. package/resources/favicon.png +0 -0
  25. package/resources/favicon.svg +0 -29
  26. package/resources/icon-background.png +0 -0
  27. package/resources/icon-foreground.png +0 -0
  28. package/resources/icon-only.png +0 -0
  29. package/resources/icon-only.svg +0 -29
  30. package/resources/splash-dark.png +0 -0
  31. package/resources/splash-dark2.png +0 -0
  32. package/resources/splash.png +0 -0
  33. package/resources/splash2.png +0 -0
  34. package/resources/touch-icon.svg +0 -29
  35. package/schematics/README.md +0 -28
  36. package/schematics/collection.json +0 -20
  37. package/schematics/package-lock.json +0 -1501
  38. package/schematics/package.json +0 -37
  39. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.__style__.template +0 -0
  40. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.html.template +0 -3
  41. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.spec.ts.template +0 -40
  42. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.ts.template +0 -37
  43. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.module.ts.template +0 -14
  44. package/schematics/src/component/index.js +0 -146
  45. package/schematics/src/component/schema.js +0 -2
  46. package/schematics/src/component/schema.json +0 -101
  47. package/schematics/src/page/files/__name@dasherize__.page.html.template +0 -15
  48. package/schematics/src/page/files/__name@dasherize__.page.scss.template +0 -0
  49. package/schematics/src/page/files/__name@dasherize__.page.ts.template +0 -19
  50. package/schematics/src/page/index.js +0 -71
  51. package/schematics/src/page/schema.json +0 -87
  52. package/schematics/src/schematics/index.js +0 -11
  53. package/schematics/src/schematics/index_spec.js +0 -13
  54. package/schematics/src/util/ast-util.js +0 -517
  55. package/schematics/src/util/change.js +0 -96
  56. package/schematics/src/util/index.js +0 -14
  57. package/settings.json +0 -112
  58. package/tsconfig.app.json +0 -22
  59. package/tsconfig.cli.json +0 -82
  60. package/tsconfig.lib.json +0 -14
  61. package/tsconfig.lib.prod.json +0 -10
  62. package/tsconfig.spec.json +0 -22
  63. package/webpack.config.js +0 -10
  64. package/workdocs/1-Header.md +0 -5
  65. package/workdocs/2-Badges.md +0 -30
  66. package/workdocs/4-Description.md +0 -4
  67. package/workdocs/5-HowToUse.md +0 -27
  68. package/workdocs/6-Related.md +0 -7
  69. package/workdocs/7-Social.md +0 -5
  70. package/workdocs/99-Footer.md +0 -28
  71. package/workdocs/Readme.md +0 -12
  72. package/workdocs/assets/apple-touch-icon.png +0 -0
  73. package/workdocs/assets/decaf-logo.svg +0 -54
  74. package/workdocs/assets/favicon.png +0 -0
  75. package/workdocs/assets/slogans.json +0 -182
  76. package/workdocs/confluence/.markdown-confluence.template.json +0 -6
  77. package/workdocs/confluence/Angular Module.md +0 -5
  78. package/workdocs/drawings/diagram.drawio +0 -24
  79. package/workdocs/prompts/bulk.md +0 -122
  80. package/workdocs/prompts/code.md +0 -47
  81. package/workdocs/prompts/documentation.md +0 -146
  82. package/workdocs/prompts/uml.md +0 -11
  83. package/workdocs/readme-md.json +0 -6
  84. package/workdocs/reports/CHANGELOG.md +0 -12
  85. package/workdocs/reports/DEPENDENCIES.md +0 -213
  86. package/workdocs/reports/RELEASE_NOTES.md +0 -24
  87. package/workdocs/reports/coverage/.gitkeep +0 -0
  88. package/workdocs/reports/coverage/clover.xml +0 -4110
  89. package/workdocs/reports/coverage/coverage-final.json +0 -76
  90. package/workdocs/reports/coverage/lcov-report/base.css +0 -224
  91. package/workdocs/reports/coverage/lcov-report/block-navigation.js +0 -87
  92. package/workdocs/reports/coverage/lcov-report/favicon.png +0 -0
  93. package/workdocs/reports/coverage/lcov-report/index.html +0 -551
  94. package/workdocs/reports/coverage/lcov-report/prettify.css +0 -1
  95. package/workdocs/reports/coverage/lcov-report/prettify.js +0 -2
  96. package/workdocs/reports/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  97. package/workdocs/reports/coverage/lcov-report/sorter.js +0 -210
  98. package/workdocs/reports/coverage/lcov-report/src/app/models/CategoryModel.ts.html +0 -277
  99. package/workdocs/reports/coverage/lcov-report/src/app/models/DemoModel.ts.html +0 -427
  100. package/workdocs/reports/coverage/lcov-report/src/app/models/UserModel.ts.html +0 -226
  101. package/workdocs/reports/coverage/lcov-report/src/app/models/index.html +0 -146
  102. package/workdocs/reports/coverage/lcov-report/src/cli-module.ts.html +0 -502
  103. package/workdocs/reports/coverage/lcov-report/src/environments/environment.ts.html +0 -166
  104. package/workdocs/reports/coverage/lcov-report/src/environments/index.html +0 -116
  105. package/workdocs/reports/coverage/lcov-report/src/index.html +0 -191
  106. package/workdocs/reports/coverage/lcov-report/src/karma-test.ts.html +0 -121
  107. package/workdocs/reports/coverage/lcov-report/src/lib/components/card/card.component.ts.html +0 -625
  108. package/workdocs/reports/coverage/lcov-report/src/lib/components/card/index.html +0 -116
  109. package/workdocs/reports/coverage/lcov-report/src/lib/components/component-renderer/component-renderer.component.ts.html +0 -772
  110. package/workdocs/reports/coverage/lcov-report/src/lib/components/component-renderer/index.html +0 -116
  111. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-field/crud-field.component.ts.html +0 -2698
  112. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-field/index.html +0 -116
  113. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-form/constants.ts.html +0 -133
  114. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-form/crud-form.component.ts.html +0 -346
  115. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-form/index.html +0 -116
  116. package/workdocs/reports/coverage/lcov-report/src/lib/components/empty-state/empty-state.component.ts.html +0 -1264
  117. package/workdocs/reports/coverage/lcov-report/src/lib/components/empty-state/index.html +0 -116
  118. package/workdocs/reports/coverage/lcov-report/src/lib/components/fieldset/fieldset.component.ts.html +0 -2965
  119. package/workdocs/reports/coverage/lcov-report/src/lib/components/fieldset/index.html +0 -116
  120. package/workdocs/reports/coverage/lcov-report/src/lib/components/file-upload/file-upload.component.ts.html +0 -2263
  121. package/workdocs/reports/coverage/lcov-report/src/lib/components/file-upload/index.html +0 -116
  122. package/workdocs/reports/coverage/lcov-report/src/lib/components/filter/filter.component.ts.html +0 -2485
  123. package/workdocs/reports/coverage/lcov-report/src/lib/components/filter/index.html +0 -116
  124. package/workdocs/reports/coverage/lcov-report/src/lib/components/for-angular-components.module.ts.html +0 -259
  125. package/workdocs/reports/coverage/lcov-report/src/lib/components/icon/icon.component.ts.html +0 -358
  126. package/workdocs/reports/coverage/lcov-report/src/lib/components/icon/index.html +0 -116
  127. package/workdocs/reports/coverage/lcov-report/src/lib/components/index.html +0 -131
  128. package/workdocs/reports/coverage/lcov-report/src/lib/components/index.ts.html +0 -181
  129. package/workdocs/reports/coverage/lcov-report/src/lib/components/layout/index.html +0 -116
  130. package/workdocs/reports/coverage/lcov-report/src/lib/components/layout/layout.component.ts.html +0 -943
  131. package/workdocs/reports/coverage/lcov-report/src/lib/components/list/index.html +0 -116
  132. package/workdocs/reports/coverage/lcov-report/src/lib/components/list/list.component.ts.html +0 -4261
  133. package/workdocs/reports/coverage/lcov-report/src/lib/components/list-item/index.html +0 -116
  134. package/workdocs/reports/coverage/lcov-report/src/lib/components/list-item/list-item.component.ts.html +0 -1741
  135. package/workdocs/reports/coverage/lcov-report/src/lib/components/modal/index.html +0 -116
  136. package/workdocs/reports/coverage/lcov-report/src/lib/components/modal/modal.component.ts.html +0 -1984
  137. package/workdocs/reports/coverage/lcov-report/src/lib/components/model-renderer/index.html +0 -116
  138. package/workdocs/reports/coverage/lcov-report/src/lib/components/model-renderer/model-renderer.component.ts.html +0 -373
  139. package/workdocs/reports/coverage/lcov-report/src/lib/components/pagination/index.html +0 -116
  140. package/workdocs/reports/coverage/lcov-report/src/lib/components/pagination/pagination.component.ts.html +0 -1165
  141. package/workdocs/reports/coverage/lcov-report/src/lib/components/searchbar/index.html +0 -116
  142. package/workdocs/reports/coverage/lcov-report/src/lib/components/searchbar/searchbar.component.ts.html +0 -1774
  143. package/workdocs/reports/coverage/lcov-report/src/lib/components/stepped-form/index.html +0 -116
  144. package/workdocs/reports/coverage/lcov-report/src/lib/components/stepped-form/stepped-form.component.ts.html +0 -1219
  145. package/workdocs/reports/coverage/lcov-report/src/lib/components/table/index.html +0 -116
  146. package/workdocs/reports/coverage/lcov-report/src/lib/components/table/table.component.ts.html +0 -988
  147. package/workdocs/reports/coverage/lcov-report/src/lib/directives/NgxSvgDirective.ts.html +0 -163
  148. package/workdocs/reports/coverage/lcov-report/src/lib/directives/collapsable.directive.ts.html +0 -268
  149. package/workdocs/reports/coverage/lcov-report/src/lib/directives/index.html +0 -131
  150. package/workdocs/reports/coverage/lcov-report/src/lib/directives/index.ts.html +0 -91
  151. package/workdocs/reports/coverage/lcov-report/src/lib/engine/DynamicModule.ts.html +0 -133
  152. package/workdocs/reports/coverage/lcov-report/src/lib/engine/MediaService.ts.html +0 -142
  153. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxBaseComponent.ts.html +0 -2194
  154. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxComponentDirective.ts.html +0 -3430
  155. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxCrudFormField.ts.html +0 -721
  156. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxDecafComponentDirective.ts.html +0 -1864
  157. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxDecafFormFieldDirective.ts.html +0 -952
  158. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxDecafFormService.ts.html +0 -3211
  159. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxEventHandler.ts.html +0 -307
  160. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxFormDirective.ts.html +0 -1366
  161. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxFormFieldDirective.ts.html +0 -1960
  162. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxFormService.ts.html +0 -3004
  163. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxModelPageDirective.ts.html +0 -1672
  164. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxPageDirective.ts.html +0 -748
  165. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxParentComponentDirective.ts.html +0 -775
  166. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxRenderableComponentDirective.ts.html +0 -727
  167. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxRenderingEngine.ts.html +0 -2005
  168. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxRepositoryDirective.ts.html +0 -1561
  169. package/workdocs/reports/coverage/lcov-report/src/lib/engine/ValidatorFactory.ts.html +0 -817
  170. package/workdocs/reports/coverage/lcov-report/src/lib/engine/constants.ts.html +0 -1120
  171. package/workdocs/reports/coverage/lcov-report/src/lib/engine/decorators.ts.html +0 -376
  172. package/workdocs/reports/coverage/lcov-report/src/lib/engine/helpers.ts.html +0 -676
  173. package/workdocs/reports/coverage/lcov-report/src/lib/engine/index.html +0 -356
  174. package/workdocs/reports/coverage/lcov-report/src/lib/engine/index.ts.html +0 -160
  175. package/workdocs/reports/coverage/lcov-report/src/lib/engine/overrides.ts.html +0 -499
  176. package/workdocs/reports/coverage/lcov-report/src/lib/for-angular-common.module.ts.html +0 -298
  177. package/workdocs/reports/coverage/lcov-report/src/lib/helpers/index.html +0 -131
  178. package/workdocs/reports/coverage/lcov-report/src/lib/helpers/index.ts.html +0 -121
  179. package/workdocs/reports/coverage/lcov-report/src/lib/helpers/utils.ts.html +0 -1603
  180. package/workdocs/reports/coverage/lcov-report/src/lib/i18n/FakeLoader.ts.html +0 -157
  181. package/workdocs/reports/coverage/lcov-report/src/lib/i18n/Loader.ts.html +0 -826
  182. package/workdocs/reports/coverage/lcov-report/src/lib/i18n/index.html +0 -146
  183. package/workdocs/reports/coverage/lcov-report/src/lib/i18n/index.ts.html +0 -91
  184. package/workdocs/reports/coverage/lcov-report/src/lib/index.html +0 -131
  185. package/workdocs/reports/coverage/lcov-report/src/lib/public-apis.ts.html +0 -157
  186. package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxFormService.ts.html +0 -3460
  187. package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxMediaService.ts.html +0 -1420
  188. package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxRouterService.ts.html +0 -1231
  189. package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxTranslateService.ts.html +0 -214
  190. package/workdocs/reports/coverage/lcov-report/src/lib/services/index.html +0 -176
  191. package/workdocs/reports/coverage/lcov-report/src/lib/services/index.ts.html +0 -91
  192. package/workdocs/reports/coverage/lcov-report/src/lib/utils/DecafFakerRepository.ts.html +0 -571
  193. package/workdocs/reports/coverage/lcov-report/src/lib/utils/helpers.ts.html +0 -1663
  194. package/workdocs/reports/coverage/lcov-report/src/lib/utils/index.html +0 -146
  195. package/workdocs/reports/coverage/lcov-report/src/lib/utils/index.ts.html +0 -124
  196. package/workdocs/reports/coverage/lcov-report/src/main.ts.html +0 -100
  197. package/workdocs/reports/coverage/lcov-report/src/polyfills.ts.html +0 -271
  198. package/workdocs/reports/coverage/lcov-report/src/stories/Configure.stories.ts.html +0 -1156
  199. package/workdocs/reports/coverage/lcov-report/src/stories/button.component.ts.html +0 -229
  200. package/workdocs/reports/coverage/lcov-report/src/stories/button.stories.ts.html +0 -235
  201. package/workdocs/reports/coverage/lcov-report/src/stories/crud-field.stories.ts.html +0 -325
  202. package/workdocs/reports/coverage/lcov-report/src/stories/header.stories.ts.html +0 -181
  203. package/workdocs/reports/coverage/lcov-report/src/stories/index.html +0 -281
  204. package/workdocs/reports/coverage/lcov-report/src/stories/list.stories.ts.html +0 -289
  205. package/workdocs/reports/coverage/lcov-report/src/stories/login.page.stories.ts.html +0 -175
  206. package/workdocs/reports/coverage/lcov-report/src/stories/model-renderer.stories.ts.html +0 -259
  207. package/workdocs/reports/coverage/lcov-report/src/stories/page.component.ts.html +0 -331
  208. package/workdocs/reports/coverage/lcov-report/src/stories/page.stories.ts.html +0 -193
  209. package/workdocs/reports/coverage/lcov-report/src/stories/setup.ts.html +0 -127
  210. package/workdocs/reports/coverage/lcov-report/src/stories/utils.ts.html +0 -247
  211. package/workdocs/reports/coverage/lcov-report/src/tests/index.html +0 -116
  212. package/workdocs/reports/coverage/lcov-report/src/tests/karmaErrorParser.ts.html +0 -190
  213. package/workdocs/reports/coverage/lcov-report/src/typings.d.ts.html +0 -88
  214. package/workdocs/reports/coverage/lcov-report/src/zone-flags.ts.html +0 -103
  215. package/workdocs/reports/coverage/lcov.info +0 -7917
  216. package/workdocs/reports/data/.gitkeep +0 -1
  217. package/workdocs/reports/html/.gitkeep +0 -0
  218. package/workdocs/reports/html/jest-html-reporters-attach/test-report/index.js +0 -3
  219. package/workdocs/reports/html/jest-html-reporters-attach/test-report/result.js +0 -1
  220. package/workdocs/reports/html/test-report.html +0 -1
  221. package/workdocs/reports/images/.gitkeep +0 -1
  222. package/workdocs/reports/jest.coverage.config.ts +0 -43
  223. package/workdocs/reports/junit/junit-report.xml +0 -91
  224. package/workdocs/resources/.gitlock +0 -0
  225. package/workdocs/resources/diagram-Actor.png +0 -0
  226. package/workdocs/resources/diagram-banner.png +0 -0
  227. package/workdocs/resources/diagram.png +0 -0
  228. package/workdocs/tutorials/Contributing.md +0 -64
  229. package/workdocs/tutorials/Documentation.md +0 -340
  230. package/workdocs/tutorials/For Developers.md +0 -337
  231. package/workdocs/uml/diagram.puml +0 -11
  232. package/www/1049.10b030f0de36543b.js +0 -1
  233. package/www/1102.67cedfb3e29f0a05.js +0 -1
  234. package/www/1107.6454396befef800d.js +0 -1
  235. package/www/1459.cabc18e941afa5d7.js +0 -1
  236. package/www/1577.5221deebe3501e43.js +0 -1
  237. package/www/2075.b6dc4fbb89dd6afc.js +0 -1
  238. package/www/2348.c4cc27dadbec70ec.js +0 -1
  239. package/www/2375.318d0b24ab346271.js +0 -1
  240. package/www/2415.618d6968ffda319c.js +0 -1
  241. package/www/2460.1d97c6f48b898ee2.js +0 -1
  242. package/www/2560.2e7000dcf80b6b2c.js +0 -1
  243. package/www/2585.dffa5649fffafb44.js +0 -1
  244. package/www/2885.d99b86afd1ff7aa8.js +0 -1
  245. package/www/3162.bbc401f4a5f82460.js +0 -1
  246. package/www/323.f64c512be5c8d797.js +0 -1
  247. package/www/3238.a3e7e8004c6b6667.js +0 -1
  248. package/www/3506.8c03f5589b33a4a6.js +0 -1
  249. package/www/3511.56b7e49bb6c2c936.js +0 -1
  250. package/www/3519.84fbb67dc803f702.js +0 -1
  251. package/www/3675.7ebfdcf145052232.js +0 -1
  252. package/www/3814.765c1794e1be63de.js +0 -1
  253. package/www/3rdpartylicenses.txt +0 -1344
  254. package/www/4171.a974bdbf9c97e4e1.js +0 -1
  255. package/www/4183.41ef1def450a2cc0.js +0 -1
  256. package/www/4406.0b2dd3839b8c1417.js +0 -1
  257. package/www/441.e1031657c7e5f0ff.js +0 -1
  258. package/www/4463.6ad7b857e5f34009.js +0 -1
  259. package/www/4591.42f34534d38b9b31.js +0 -1
  260. package/www/4699.8df8ea9806163d4c.js +0 -1
  261. package/www/5100.ed6483c55a157d67.js +0 -1
  262. package/www/5193.15ea6938534eceb1.js +0 -1
  263. package/www/5197.6733853529768a45.js +0 -1
  264. package/www/5222.8439a641c2c4b1c1.js +0 -1
  265. package/www/5373.d7878f708309f038.js +0 -1
  266. package/www/5467.53f5cce977c2e28b.js +0 -1
  267. package/www/5712.b08cf436ee8145ce.js +0 -1
  268. package/www/5887.3d038f564e925abb.js +0 -1
  269. package/www/5949.37330f20e95dee79.js +0 -1
  270. package/www/6024.c10cc3d1b341c748.js +0 -1
  271. package/www/6433.360fcff952bde822.js +0 -1
  272. package/www/6499.60169da9869db697.js +0 -1
  273. package/www/6521.fab1f34bfe6b8200.js +0 -1
  274. package/www/6631.eaa711da6e0aeed9.js +0 -1
  275. package/www/6717.b4731255038304cd.js +0 -1
  276. package/www/6840.7317cd962ab23932.js +0 -1
  277. package/www/7030.d115d82ca7468a4e.js +0 -1
  278. package/www/7076.cce20ed5c79ff305.js +0 -1
  279. package/www/7179.c0545989ce869b3d.js +0 -1
  280. package/www/7240.69aeb484d78eb24d.js +0 -1
  281. package/www/7372.94c62459e34f7303.js +0 -1
  282. package/www/7402.983a5ecff61e9a5d.js +0 -1
  283. package/www/7428.527ac48035a2f915.js +0 -1
  284. package/www/7676.d7db23d350e4b096.js +0 -1
  285. package/www/770.80af87d5eb0075d3.js +0 -1
  286. package/www/7720.0701576cb9966779.js +0 -1
  287. package/www/7927.ee869d0dc478250a.js +0 -1
  288. package/www/8066.894688fbb2e5c832.js +0 -1
  289. package/www/8193.7f09ecd40b6d42c2.js +0 -1
  290. package/www/8255.158098a6302c91c2.js +0 -1
  291. package/www/8314.596c1ccf26b9c93a.js +0 -1
  292. package/www/8357.c5406b92e6933d7a.js +0 -1
  293. package/www/8477.a3ccc11c25a642d3.js +0 -1
  294. package/www/8487.93b6f7465ae1b7ac.js +0 -1
  295. package/www/8584.b77ad478a5a7ac2a.js +0 -1
  296. package/www/8805.a87413652185ff8f.js +0 -1
  297. package/www/8814.b489a78ae8e926c4.js +0 -1
  298. package/www/8970.234b3db1f97528fe.js +0 -1
  299. package/www/9013.c2e6ba17a915bdd6.js +0 -1
  300. package/www/9073.16c4e42482d55a3c.js +0 -1
  301. package/www/9344.7d2d24b194b794e2.js +0 -1
  302. package/www/9364.9a028036dd89e3e7.js +0 -1
  303. package/www/944.7e4317348c48d4f4.js +0 -1
  304. package/www/964.9a979e1c1aad0f5b.js +0 -1
  305. package/www/9657.8c3589a0aff521c0.js +0 -1
  306. package/www/9956.2d00a2153e9a7799.js +0 -1
  307. package/www/9977.068cd5561462bc99.js +0 -1
  308. package/www/assets/i18n/en.json +0 -210
  309. package/www/assets/i18n/ew/en.json +0 -346
  310. package/www/assets/i18n/pt.json +0 -186
  311. package/www/assets/icons/icon-128.webp +0 -0
  312. package/www/assets/icons/icon-192.webp +0 -0
  313. package/www/assets/icons/icon-256.webp +0 -0
  314. package/www/assets/icons/icon-48.webp +0 -0
  315. package/www/assets/icons/icon-512.webp +0 -0
  316. package/www/assets/icons/icon-72.webp +0 -0
  317. package/www/assets/icons/icon-96.webp +0 -0
  318. package/www/assets/images/angular-logo.svg +0 -45
  319. package/www/assets/images/apple-touch-icon.png +0 -0
  320. package/www/assets/images/decaf-logo-black.svg +0 -22
  321. package/www/assets/images/decaf-logo-contrast.svg +0 -54
  322. package/www/assets/images/decaf-logo-white.svg +0 -22
  323. package/www/assets/images/decaf-logo.svg +0 -54
  324. package/www/assets/images/ew/product.txt +0 -1
  325. package/www/assets/images/favicon-contrast.svg +0 -7
  326. package/www/assets/images/favicon.png +0 -0
  327. package/www/assets/images/favicon.svg +0 -29
  328. package/www/assets/images/icons/document.svg +0 -7
  329. package/www/assets/images/icons/edit.svg +0 -1
  330. package/www/assets/images/icons/logout.svg +0 -4
  331. package/www/assets/images/icons/menu-collapse.svg +0 -5
  332. package/www/assets/images/icons/menu.svg +0 -3
  333. package/www/assets/images/icons/moon-stars.svg +0 -5
  334. package/www/assets/images/icons/trash.svg +0 -1
  335. package/www/cli-module.ts +0 -139
  336. package/www/common.e50b5f8708aca9a5.js +0 -1
  337. package/www/index.html +0 -29
  338. package/www/main.6144bf417dec1977.js +0 -1
  339. package/www/polyfills.4c1e087fffe784e8.js +0 -1
  340. package/www/runtime.d8dcb0932f88fe3c.js +0 -1
  341. package/www/styles.5a3cd83eba16afc9.css +0 -4
  342. package/www/tabler-icons.bfabe54eef86ae62.woff +0 -0
  343. package/www/tabler-icons.d9f65ab9439b4ffc.ttf +0 -0
  344. package/www/tabler-icons.f17d2c3b34a5deaa.woff2 +0 -0
  345. /package/{dist/lib/assets → assets}/i18n/en.json +0 -0
  346. /package/{dist/lib/assets → assets}/i18n/ew/en.json +0 -0
  347. /package/{dist/lib/assets → assets}/i18n/pt.json +0 -0
  348. /package/{dist/lib/assets → assets}/icons/icon-128.webp +0 -0
  349. /package/{dist/lib/assets → assets}/icons/icon-192.webp +0 -0
  350. /package/{dist/lib/assets → assets}/icons/icon-256.webp +0 -0
  351. /package/{dist/lib/assets → assets}/icons/icon-48.webp +0 -0
  352. /package/{dist/lib/assets → assets}/icons/icon-512.webp +0 -0
  353. /package/{dist/lib/assets → assets}/icons/icon-72.webp +0 -0
  354. /package/{dist/lib/assets → assets}/icons/icon-96.webp +0 -0
  355. /package/{dist/lib/assets → assets}/images/angular-logo.svg +0 -0
  356. /package/{dist/lib/assets → assets}/images/apple-touch-icon.png +0 -0
  357. /package/{dist/lib/assets → assets}/images/decaf-logo-black.svg +0 -0
  358. /package/{dist/lib/assets → assets}/images/decaf-logo-contrast.svg +0 -0
  359. /package/{dist/lib/assets → assets}/images/decaf-logo-white.svg +0 -0
  360. /package/{dist/lib/assets → assets}/images/decaf-logo.svg +0 -0
  361. /package/{dist/lib/assets → assets}/images/ew/product.txt +0 -0
  362. /package/{dist/lib/assets → assets}/images/favicon-contrast.svg +0 -0
  363. /package/{dist/lib/assets → assets}/images/favicon.png +0 -0
  364. /package/{dist/lib/assets → assets}/images/favicon.svg +0 -0
  365. /package/{dist/lib/assets → assets}/images/icons/document.svg +0 -0
  366. /package/{dist/lib/assets → assets}/images/icons/edit.svg +0 -0
  367. /package/{dist/lib/assets → assets}/images/icons/logout.svg +0 -0
  368. /package/{dist/lib/assets → assets}/images/icons/menu-collapse.svg +0 -0
  369. /package/{dist/lib/assets → assets}/images/icons/menu.svg +0 -0
  370. /package/{dist/lib/assets → assets}/images/icons/moon-stars.svg +0 -0
  371. /package/{dist/lib/assets → assets}/images/icons/trash.svg +0 -0
  372. /package/{dist/lib/fesm2022 → fesm2022}/decaf-ts-for-angular.mjs +0 -0
  373. /package/{dist/lib/fesm2022 → fesm2022}/decaf-ts-for-angular.mjs.map +0 -0
  374. /package/{dist/lib/index.d.ts → index.d.ts} +0 -0
@@ -1,2263 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/lib/components/file-upload/file-upload.component.ts</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../../../prettify.css" />
9
- <link rel="stylesheet" href="../../../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../../../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../../../index.html">All files</a> / <a href="index.html">src/lib/components/file-upload</a> file-upload.component.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">0% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>0/195</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/95</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/36</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">0% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>0/180</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 type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line low'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a>
295
- <a name='L230'></a><a href='#L230'>230</a>
296
- <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a>
298
- <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a>
300
- <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a>
302
- <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a>
305
- <a name='L240'></a><a href='#L240'>240</a>
306
- <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a>
328
- <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a>
330
- <a name='L265'></a><a href='#L265'>265</a>
331
- <a name='L266'></a><a href='#L266'>266</a>
332
- <a name='L267'></a><a href='#L267'>267</a>
333
- <a name='L268'></a><a href='#L268'>268</a>
334
- <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a>
336
- <a name='L271'></a><a href='#L271'>271</a>
337
- <a name='L272'></a><a href='#L272'>272</a>
338
- <a name='L273'></a><a href='#L273'>273</a>
339
- <a name='L274'></a><a href='#L274'>274</a>
340
- <a name='L275'></a><a href='#L275'>275</a>
341
- <a name='L276'></a><a href='#L276'>276</a>
342
- <a name='L277'></a><a href='#L277'>277</a>
343
- <a name='L278'></a><a href='#L278'>278</a>
344
- <a name='L279'></a><a href='#L279'>279</a>
345
- <a name='L280'></a><a href='#L280'>280</a>
346
- <a name='L281'></a><a href='#L281'>281</a>
347
- <a name='L282'></a><a href='#L282'>282</a>
348
- <a name='L283'></a><a href='#L283'>283</a>
349
- <a name='L284'></a><a href='#L284'>284</a>
350
- <a name='L285'></a><a href='#L285'>285</a>
351
- <a name='L286'></a><a href='#L286'>286</a>
352
- <a name='L287'></a><a href='#L287'>287</a>
353
- <a name='L288'></a><a href='#L288'>288</a>
354
- <a name='L289'></a><a href='#L289'>289</a>
355
- <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a>
359
- <a name='L294'></a><a href='#L294'>294</a>
360
- <a name='L295'></a><a href='#L295'>295</a>
361
- <a name='L296'></a><a href='#L296'>296</a>
362
- <a name='L297'></a><a href='#L297'>297</a>
363
- <a name='L298'></a><a href='#L298'>298</a>
364
- <a name='L299'></a><a href='#L299'>299</a>
365
- <a name='L300'></a><a href='#L300'>300</a>
366
- <a name='L301'></a><a href='#L301'>301</a>
367
- <a name='L302'></a><a href='#L302'>302</a>
368
- <a name='L303'></a><a href='#L303'>303</a>
369
- <a name='L304'></a><a href='#L304'>304</a>
370
- <a name='L305'></a><a href='#L305'>305</a>
371
- <a name='L306'></a><a href='#L306'>306</a>
372
- <a name='L307'></a><a href='#L307'>307</a>
373
- <a name='L308'></a><a href='#L308'>308</a>
374
- <a name='L309'></a><a href='#L309'>309</a>
375
- <a name='L310'></a><a href='#L310'>310</a>
376
- <a name='L311'></a><a href='#L311'>311</a>
377
- <a name='L312'></a><a href='#L312'>312</a>
378
- <a name='L313'></a><a href='#L313'>313</a>
379
- <a name='L314'></a><a href='#L314'>314</a>
380
- <a name='L315'></a><a href='#L315'>315</a>
381
- <a name='L316'></a><a href='#L316'>316</a>
382
- <a name='L317'></a><a href='#L317'>317</a>
383
- <a name='L318'></a><a href='#L318'>318</a>
384
- <a name='L319'></a><a href='#L319'>319</a>
385
- <a name='L320'></a><a href='#L320'>320</a>
386
- <a name='L321'></a><a href='#L321'>321</a>
387
- <a name='L322'></a><a href='#L322'>322</a>
388
- <a name='L323'></a><a href='#L323'>323</a>
389
- <a name='L324'></a><a href='#L324'>324</a>
390
- <a name='L325'></a><a href='#L325'>325</a>
391
- <a name='L326'></a><a href='#L326'>326</a>
392
- <a name='L327'></a><a href='#L327'>327</a>
393
- <a name='L328'></a><a href='#L328'>328</a>
394
- <a name='L329'></a><a href='#L329'>329</a>
395
- <a name='L330'></a><a href='#L330'>330</a>
396
- <a name='L331'></a><a href='#L331'>331</a>
397
- <a name='L332'></a><a href='#L332'>332</a>
398
- <a name='L333'></a><a href='#L333'>333</a>
399
- <a name='L334'></a><a href='#L334'>334</a>
400
- <a name='L335'></a><a href='#L335'>335</a>
401
- <a name='L336'></a><a href='#L336'>336</a>
402
- <a name='L337'></a><a href='#L337'>337</a>
403
- <a name='L338'></a><a href='#L338'>338</a>
404
- <a name='L339'></a><a href='#L339'>339</a>
405
- <a name='L340'></a><a href='#L340'>340</a>
406
- <a name='L341'></a><a href='#L341'>341</a>
407
- <a name='L342'></a><a href='#L342'>342</a>
408
- <a name='L343'></a><a href='#L343'>343</a>
409
- <a name='L344'></a><a href='#L344'>344</a>
410
- <a name='L345'></a><a href='#L345'>345</a>
411
- <a name='L346'></a><a href='#L346'>346</a>
412
- <a name='L347'></a><a href='#L347'>347</a>
413
- <a name='L348'></a><a href='#L348'>348</a>
414
- <a name='L349'></a><a href='#L349'>349</a>
415
- <a name='L350'></a><a href='#L350'>350</a>
416
- <a name='L351'></a><a href='#L351'>351</a>
417
- <a name='L352'></a><a href='#L352'>352</a>
418
- <a name='L353'></a><a href='#L353'>353</a>
419
- <a name='L354'></a><a href='#L354'>354</a>
420
- <a name='L355'></a><a href='#L355'>355</a>
421
- <a name='L356'></a><a href='#L356'>356</a>
422
- <a name='L357'></a><a href='#L357'>357</a>
423
- <a name='L358'></a><a href='#L358'>358</a>
424
- <a name='L359'></a><a href='#L359'>359</a>
425
- <a name='L360'></a><a href='#L360'>360</a>
426
- <a name='L361'></a><a href='#L361'>361</a>
427
- <a name='L362'></a><a href='#L362'>362</a>
428
- <a name='L363'></a><a href='#L363'>363</a>
429
- <a name='L364'></a><a href='#L364'>364</a>
430
- <a name='L365'></a><a href='#L365'>365</a>
431
- <a name='L366'></a><a href='#L366'>366</a>
432
- <a name='L367'></a><a href='#L367'>367</a>
433
- <a name='L368'></a><a href='#L368'>368</a>
434
- <a name='L369'></a><a href='#L369'>369</a>
435
- <a name='L370'></a><a href='#L370'>370</a>
436
- <a name='L371'></a><a href='#L371'>371</a>
437
- <a name='L372'></a><a href='#L372'>372</a>
438
- <a name='L373'></a><a href='#L373'>373</a>
439
- <a name='L374'></a><a href='#L374'>374</a>
440
- <a name='L375'></a><a href='#L375'>375</a>
441
- <a name='L376'></a><a href='#L376'>376</a>
442
- <a name='L377'></a><a href='#L377'>377</a>
443
- <a name='L378'></a><a href='#L378'>378</a>
444
- <a name='L379'></a><a href='#L379'>379</a>
445
- <a name='L380'></a><a href='#L380'>380</a>
446
- <a name='L381'></a><a href='#L381'>381</a>
447
- <a name='L382'></a><a href='#L382'>382</a>
448
- <a name='L383'></a><a href='#L383'>383</a>
449
- <a name='L384'></a><a href='#L384'>384</a>
450
- <a name='L385'></a><a href='#L385'>385</a>
451
- <a name='L386'></a><a href='#L386'>386</a>
452
- <a name='L387'></a><a href='#L387'>387</a>
453
- <a name='L388'></a><a href='#L388'>388</a>
454
- <a name='L389'></a><a href='#L389'>389</a>
455
- <a name='L390'></a><a href='#L390'>390</a>
456
- <a name='L391'></a><a href='#L391'>391</a>
457
- <a name='L392'></a><a href='#L392'>392</a>
458
- <a name='L393'></a><a href='#L393'>393</a>
459
- <a name='L394'></a><a href='#L394'>394</a>
460
- <a name='L395'></a><a href='#L395'>395</a>
461
- <a name='L396'></a><a href='#L396'>396</a>
462
- <a name='L397'></a><a href='#L397'>397</a>
463
- <a name='L398'></a><a href='#L398'>398</a>
464
- <a name='L399'></a><a href='#L399'>399</a>
465
- <a name='L400'></a><a href='#L400'>400</a>
466
- <a name='L401'></a><a href='#L401'>401</a>
467
- <a name='L402'></a><a href='#L402'>402</a>
468
- <a name='L403'></a><a href='#L403'>403</a>
469
- <a name='L404'></a><a href='#L404'>404</a>
470
- <a name='L405'></a><a href='#L405'>405</a>
471
- <a name='L406'></a><a href='#L406'>406</a>
472
- <a name='L407'></a><a href='#L407'>407</a>
473
- <a name='L408'></a><a href='#L408'>408</a>
474
- <a name='L409'></a><a href='#L409'>409</a>
475
- <a name='L410'></a><a href='#L410'>410</a>
476
- <a name='L411'></a><a href='#L411'>411</a>
477
- <a name='L412'></a><a href='#L412'>412</a>
478
- <a name='L413'></a><a href='#L413'>413</a>
479
- <a name='L414'></a><a href='#L414'>414</a>
480
- <a name='L415'></a><a href='#L415'>415</a>
481
- <a name='L416'></a><a href='#L416'>416</a>
482
- <a name='L417'></a><a href='#L417'>417</a>
483
- <a name='L418'></a><a href='#L418'>418</a>
484
- <a name='L419'></a><a href='#L419'>419</a>
485
- <a name='L420'></a><a href='#L420'>420</a>
486
- <a name='L421'></a><a href='#L421'>421</a>
487
- <a name='L422'></a><a href='#L422'>422</a>
488
- <a name='L423'></a><a href='#L423'>423</a>
489
- <a name='L424'></a><a href='#L424'>424</a>
490
- <a name='L425'></a><a href='#L425'>425</a>
491
- <a name='L426'></a><a href='#L426'>426</a>
492
- <a name='L427'></a><a href='#L427'>427</a>
493
- <a name='L428'></a><a href='#L428'>428</a>
494
- <a name='L429'></a><a href='#L429'>429</a>
495
- <a name='L430'></a><a href='#L430'>430</a>
496
- <a name='L431'></a><a href='#L431'>431</a>
497
- <a name='L432'></a><a href='#L432'>432</a>
498
- <a name='L433'></a><a href='#L433'>433</a>
499
- <a name='L434'></a><a href='#L434'>434</a>
500
- <a name='L435'></a><a href='#L435'>435</a>
501
- <a name='L436'></a><a href='#L436'>436</a>
502
- <a name='L437'></a><a href='#L437'>437</a>
503
- <a name='L438'></a><a href='#L438'>438</a>
504
- <a name='L439'></a><a href='#L439'>439</a>
505
- <a name='L440'></a><a href='#L440'>440</a>
506
- <a name='L441'></a><a href='#L441'>441</a>
507
- <a name='L442'></a><a href='#L442'>442</a>
508
- <a name='L443'></a><a href='#L443'>443</a>
509
- <a name='L444'></a><a href='#L444'>444</a>
510
- <a name='L445'></a><a href='#L445'>445</a>
511
- <a name='L446'></a><a href='#L446'>446</a>
512
- <a name='L447'></a><a href='#L447'>447</a>
513
- <a name='L448'></a><a href='#L448'>448</a>
514
- <a name='L449'></a><a href='#L449'>449</a>
515
- <a name='L450'></a><a href='#L450'>450</a>
516
- <a name='L451'></a><a href='#L451'>451</a>
517
- <a name='L452'></a><a href='#L452'>452</a>
518
- <a name='L453'></a><a href='#L453'>453</a>
519
- <a name='L454'></a><a href='#L454'>454</a>
520
- <a name='L455'></a><a href='#L455'>455</a>
521
- <a name='L456'></a><a href='#L456'>456</a>
522
- <a name='L457'></a><a href='#L457'>457</a>
523
- <a name='L458'></a><a href='#L458'>458</a>
524
- <a name='L459'></a><a href='#L459'>459</a>
525
- <a name='L460'></a><a href='#L460'>460</a>
526
- <a name='L461'></a><a href='#L461'>461</a>
527
- <a name='L462'></a><a href='#L462'>462</a>
528
- <a name='L463'></a><a href='#L463'>463</a>
529
- <a name='L464'></a><a href='#L464'>464</a>
530
- <a name='L465'></a><a href='#L465'>465</a>
531
- <a name='L466'></a><a href='#L466'>466</a>
532
- <a name='L467'></a><a href='#L467'>467</a>
533
- <a name='L468'></a><a href='#L468'>468</a>
534
- <a name='L469'></a><a href='#L469'>469</a>
535
- <a name='L470'></a><a href='#L470'>470</a>
536
- <a name='L471'></a><a href='#L471'>471</a>
537
- <a name='L472'></a><a href='#L472'>472</a>
538
- <a name='L473'></a><a href='#L473'>473</a>
539
- <a name='L474'></a><a href='#L474'>474</a>
540
- <a name='L475'></a><a href='#L475'>475</a>
541
- <a name='L476'></a><a href='#L476'>476</a>
542
- <a name='L477'></a><a href='#L477'>477</a>
543
- <a name='L478'></a><a href='#L478'>478</a>
544
- <a name='L479'></a><a href='#L479'>479</a>
545
- <a name='L480'></a><a href='#L480'>480</a>
546
- <a name='L481'></a><a href='#L481'>481</a>
547
- <a name='L482'></a><a href='#L482'>482</a>
548
- <a name='L483'></a><a href='#L483'>483</a>
549
- <a name='L484'></a><a href='#L484'>484</a>
550
- <a name='L485'></a><a href='#L485'>485</a>
551
- <a name='L486'></a><a href='#L486'>486</a>
552
- <a name='L487'></a><a href='#L487'>487</a>
553
- <a name='L488'></a><a href='#L488'>488</a>
554
- <a name='L489'></a><a href='#L489'>489</a>
555
- <a name='L490'></a><a href='#L490'>490</a>
556
- <a name='L491'></a><a href='#L491'>491</a>
557
- <a name='L492'></a><a href='#L492'>492</a>
558
- <a name='L493'></a><a href='#L493'>493</a>
559
- <a name='L494'></a><a href='#L494'>494</a>
560
- <a name='L495'></a><a href='#L495'>495</a>
561
- <a name='L496'></a><a href='#L496'>496</a>
562
- <a name='L497'></a><a href='#L497'>497</a>
563
- <a name='L498'></a><a href='#L498'>498</a>
564
- <a name='L499'></a><a href='#L499'>499</a>
565
- <a name='L500'></a><a href='#L500'>500</a>
566
- <a name='L501'></a><a href='#L501'>501</a>
567
- <a name='L502'></a><a href='#L502'>502</a>
568
- <a name='L503'></a><a href='#L503'>503</a>
569
- <a name='L504'></a><a href='#L504'>504</a>
570
- <a name='L505'></a><a href='#L505'>505</a>
571
- <a name='L506'></a><a href='#L506'>506</a>
572
- <a name='L507'></a><a href='#L507'>507</a>
573
- <a name='L508'></a><a href='#L508'>508</a>
574
- <a name='L509'></a><a href='#L509'>509</a>
575
- <a name='L510'></a><a href='#L510'>510</a>
576
- <a name='L511'></a><a href='#L511'>511</a>
577
- <a name='L512'></a><a href='#L512'>512</a>
578
- <a name='L513'></a><a href='#L513'>513</a>
579
- <a name='L514'></a><a href='#L514'>514</a>
580
- <a name='L515'></a><a href='#L515'>515</a>
581
- <a name='L516'></a><a href='#L516'>516</a>
582
- <a name='L517'></a><a href='#L517'>517</a>
583
- <a name='L518'></a><a href='#L518'>518</a>
584
- <a name='L519'></a><a href='#L519'>519</a>
585
- <a name='L520'></a><a href='#L520'>520</a>
586
- <a name='L521'></a><a href='#L521'>521</a>
587
- <a name='L522'></a><a href='#L522'>522</a>
588
- <a name='L523'></a><a href='#L523'>523</a>
589
- <a name='L524'></a><a href='#L524'>524</a>
590
- <a name='L525'></a><a href='#L525'>525</a>
591
- <a name='L526'></a><a href='#L526'>526</a>
592
- <a name='L527'></a><a href='#L527'>527</a>
593
- <a name='L528'></a><a href='#L528'>528</a>
594
- <a name='L529'></a><a href='#L529'>529</a>
595
- <a name='L530'></a><a href='#L530'>530</a>
596
- <a name='L531'></a><a href='#L531'>531</a>
597
- <a name='L532'></a><a href='#L532'>532</a>
598
- <a name='L533'></a><a href='#L533'>533</a>
599
- <a name='L534'></a><a href='#L534'>534</a>
600
- <a name='L535'></a><a href='#L535'>535</a>
601
- <a name='L536'></a><a href='#L536'>536</a>
602
- <a name='L537'></a><a href='#L537'>537</a>
603
- <a name='L538'></a><a href='#L538'>538</a>
604
- <a name='L539'></a><a href='#L539'>539</a>
605
- <a name='L540'></a><a href='#L540'>540</a>
606
- <a name='L541'></a><a href='#L541'>541</a>
607
- <a name='L542'></a><a href='#L542'>542</a>
608
- <a name='L543'></a><a href='#L543'>543</a>
609
- <a name='L544'></a><a href='#L544'>544</a>
610
- <a name='L545'></a><a href='#L545'>545</a>
611
- <a name='L546'></a><a href='#L546'>546</a>
612
- <a name='L547'></a><a href='#L547'>547</a>
613
- <a name='L548'></a><a href='#L548'>548</a>
614
- <a name='L549'></a><a href='#L549'>549</a>
615
- <a name='L550'></a><a href='#L550'>550</a>
616
- <a name='L551'></a><a href='#L551'>551</a>
617
- <a name='L552'></a><a href='#L552'>552</a>
618
- <a name='L553'></a><a href='#L553'>553</a>
619
- <a name='L554'></a><a href='#L554'>554</a>
620
- <a name='L555'></a><a href='#L555'>555</a>
621
- <a name='L556'></a><a href='#L556'>556</a>
622
- <a name='L557'></a><a href='#L557'>557</a>
623
- <a name='L558'></a><a href='#L558'>558</a>
624
- <a name='L559'></a><a href='#L559'>559</a>
625
- <a name='L560'></a><a href='#L560'>560</a>
626
- <a name='L561'></a><a href='#L561'>561</a>
627
- <a name='L562'></a><a href='#L562'>562</a>
628
- <a name='L563'></a><a href='#L563'>563</a>
629
- <a name='L564'></a><a href='#L564'>564</a>
630
- <a name='L565'></a><a href='#L565'>565</a>
631
- <a name='L566'></a><a href='#L566'>566</a>
632
- <a name='L567'></a><a href='#L567'>567</a>
633
- <a name='L568'></a><a href='#L568'>568</a>
634
- <a name='L569'></a><a href='#L569'>569</a>
635
- <a name='L570'></a><a href='#L570'>570</a>
636
- <a name='L571'></a><a href='#L571'>571</a>
637
- <a name='L572'></a><a href='#L572'>572</a>
638
- <a name='L573'></a><a href='#L573'>573</a>
639
- <a name='L574'></a><a href='#L574'>574</a>
640
- <a name='L575'></a><a href='#L575'>575</a>
641
- <a name='L576'></a><a href='#L576'>576</a>
642
- <a name='L577'></a><a href='#L577'>577</a>
643
- <a name='L578'></a><a href='#L578'>578</a>
644
- <a name='L579'></a><a href='#L579'>579</a>
645
- <a name='L580'></a><a href='#L580'>580</a>
646
- <a name='L581'></a><a href='#L581'>581</a>
647
- <a name='L582'></a><a href='#L582'>582</a>
648
- <a name='L583'></a><a href='#L583'>583</a>
649
- <a name='L584'></a><a href='#L584'>584</a>
650
- <a name='L585'></a><a href='#L585'>585</a>
651
- <a name='L586'></a><a href='#L586'>586</a>
652
- <a name='L587'></a><a href='#L587'>587</a>
653
- <a name='L588'></a><a href='#L588'>588</a>
654
- <a name='L589'></a><a href='#L589'>589</a>
655
- <a name='L590'></a><a href='#L590'>590</a>
656
- <a name='L591'></a><a href='#L591'>591</a>
657
- <a name='L592'></a><a href='#L592'>592</a>
658
- <a name='L593'></a><a href='#L593'>593</a>
659
- <a name='L594'></a><a href='#L594'>594</a>
660
- <a name='L595'></a><a href='#L595'>595</a>
661
- <a name='L596'></a><a href='#L596'>596</a>
662
- <a name='L597'></a><a href='#L597'>597</a>
663
- <a name='L598'></a><a href='#L598'>598</a>
664
- <a name='L599'></a><a href='#L599'>599</a>
665
- <a name='L600'></a><a href='#L600'>600</a>
666
- <a name='L601'></a><a href='#L601'>601</a>
667
- <a name='L602'></a><a href='#L602'>602</a>
668
- <a name='L603'></a><a href='#L603'>603</a>
669
- <a name='L604'></a><a href='#L604'>604</a>
670
- <a name='L605'></a><a href='#L605'>605</a>
671
- <a name='L606'></a><a href='#L606'>606</a>
672
- <a name='L607'></a><a href='#L607'>607</a>
673
- <a name='L608'></a><a href='#L608'>608</a>
674
- <a name='L609'></a><a href='#L609'>609</a>
675
- <a name='L610'></a><a href='#L610'>610</a>
676
- <a name='L611'></a><a href='#L611'>611</a>
677
- <a name='L612'></a><a href='#L612'>612</a>
678
- <a name='L613'></a><a href='#L613'>613</a>
679
- <a name='L614'></a><a href='#L614'>614</a>
680
- <a name='L615'></a><a href='#L615'>615</a>
681
- <a name='L616'></a><a href='#L616'>616</a>
682
- <a name='L617'></a><a href='#L617'>617</a>
683
- <a name='L618'></a><a href='#L618'>618</a>
684
- <a name='L619'></a><a href='#L619'>619</a>
685
- <a name='L620'></a><a href='#L620'>620</a>
686
- <a name='L621'></a><a href='#L621'>621</a>
687
- <a name='L622'></a><a href='#L622'>622</a>
688
- <a name='L623'></a><a href='#L623'>623</a>
689
- <a name='L624'></a><a href='#L624'>624</a>
690
- <a name='L625'></a><a href='#L625'>625</a>
691
- <a name='L626'></a><a href='#L626'>626</a>
692
- <a name='L627'></a><a href='#L627'>627</a>
693
- <a name='L628'></a><a href='#L628'>628</a>
694
- <a name='L629'></a><a href='#L629'>629</a>
695
- <a name='L630'></a><a href='#L630'>630</a>
696
- <a name='L631'></a><a href='#L631'>631</a>
697
- <a name='L632'></a><a href='#L632'>632</a>
698
- <a name='L633'></a><a href='#L633'>633</a>
699
- <a name='L634'></a><a href='#L634'>634</a>
700
- <a name='L635'></a><a href='#L635'>635</a>
701
- <a name='L636'></a><a href='#L636'>636</a>
702
- <a name='L637'></a><a href='#L637'>637</a>
703
- <a name='L638'></a><a href='#L638'>638</a>
704
- <a name='L639'></a><a href='#L639'>639</a>
705
- <a name='L640'></a><a href='#L640'>640</a>
706
- <a name='L641'></a><a href='#L641'>641</a>
707
- <a name='L642'></a><a href='#L642'>642</a>
708
- <a name='L643'></a><a href='#L643'>643</a>
709
- <a name='L644'></a><a href='#L644'>644</a>
710
- <a name='L645'></a><a href='#L645'>645</a>
711
- <a name='L646'></a><a href='#L646'>646</a>
712
- <a name='L647'></a><a href='#L647'>647</a>
713
- <a name='L648'></a><a href='#L648'>648</a>
714
- <a name='L649'></a><a href='#L649'>649</a>
715
- <a name='L650'></a><a href='#L650'>650</a>
716
- <a name='L651'></a><a href='#L651'>651</a>
717
- <a name='L652'></a><a href='#L652'>652</a>
718
- <a name='L653'></a><a href='#L653'>653</a>
719
- <a name='L654'></a><a href='#L654'>654</a>
720
- <a name='L655'></a><a href='#L655'>655</a>
721
- <a name='L656'></a><a href='#L656'>656</a>
722
- <a name='L657'></a><a href='#L657'>657</a>
723
- <a name='L658'></a><a href='#L658'>658</a>
724
- <a name='L659'></a><a href='#L659'>659</a>
725
- <a name='L660'></a><a href='#L660'>660</a>
726
- <a name='L661'></a><a href='#L661'>661</a>
727
- <a name='L662'></a><a href='#L662'>662</a>
728
- <a name='L663'></a><a href='#L663'>663</a>
729
- <a name='L664'></a><a href='#L664'>664</a>
730
- <a name='L665'></a><a href='#L665'>665</a>
731
- <a name='L666'></a><a href='#L666'>666</a>
732
- <a name='L667'></a><a href='#L667'>667</a>
733
- <a name='L668'></a><a href='#L668'>668</a>
734
- <a name='L669'></a><a href='#L669'>669</a>
735
- <a name='L670'></a><a href='#L670'>670</a>
736
- <a name='L671'></a><a href='#L671'>671</a>
737
- <a name='L672'></a><a href='#L672'>672</a>
738
- <a name='L673'></a><a href='#L673'>673</a>
739
- <a name='L674'></a><a href='#L674'>674</a>
740
- <a name='L675'></a><a href='#L675'>675</a>
741
- <a name='L676'></a><a href='#L676'>676</a>
742
- <a name='L677'></a><a href='#L677'>677</a>
743
- <a name='L678'></a><a href='#L678'>678</a>
744
- <a name='L679'></a><a href='#L679'>679</a>
745
- <a name='L680'></a><a href='#L680'>680</a>
746
- <a name='L681'></a><a href='#L681'>681</a>
747
- <a name='L682'></a><a href='#L682'>682</a>
748
- <a name='L683'></a><a href='#L683'>683</a>
749
- <a name='L684'></a><a href='#L684'>684</a>
750
- <a name='L685'></a><a href='#L685'>685</a>
751
- <a name='L686'></a><a href='#L686'>686</a>
752
- <a name='L687'></a><a href='#L687'>687</a>
753
- <a name='L688'></a><a href='#L688'>688</a>
754
- <a name='L689'></a><a href='#L689'>689</a>
755
- <a name='L690'></a><a href='#L690'>690</a>
756
- <a name='L691'></a><a href='#L691'>691</a>
757
- <a name='L692'></a><a href='#L692'>692</a>
758
- <a name='L693'></a><a href='#L693'>693</a>
759
- <a name='L694'></a><a href='#L694'>694</a>
760
- <a name='L695'></a><a href='#L695'>695</a>
761
- <a name='L696'></a><a href='#L696'>696</a>
762
- <a name='L697'></a><a href='#L697'>697</a>
763
- <a name='L698'></a><a href='#L698'>698</a>
764
- <a name='L699'></a><a href='#L699'>699</a>
765
- <a name='L700'></a><a href='#L700'>700</a>
766
- <a name='L701'></a><a href='#L701'>701</a>
767
- <a name='L702'></a><a href='#L702'>702</a>
768
- <a name='L703'></a><a href='#L703'>703</a>
769
- <a name='L704'></a><a href='#L704'>704</a>
770
- <a name='L705'></a><a href='#L705'>705</a>
771
- <a name='L706'></a><a href='#L706'>706</a>
772
- <a name='L707'></a><a href='#L707'>707</a>
773
- <a name='L708'></a><a href='#L708'>708</a>
774
- <a name='L709'></a><a href='#L709'>709</a>
775
- <a name='L710'></a><a href='#L710'>710</a>
776
- <a name='L711'></a><a href='#L711'>711</a>
777
- <a name='L712'></a><a href='#L712'>712</a>
778
- <a name='L713'></a><a href='#L713'>713</a>
779
- <a name='L714'></a><a href='#L714'>714</a>
780
- <a name='L715'></a><a href='#L715'>715</a>
781
- <a name='L716'></a><a href='#L716'>716</a>
782
- <a name='L717'></a><a href='#L717'>717</a>
783
- <a name='L718'></a><a href='#L718'>718</a>
784
- <a name='L719'></a><a href='#L719'>719</a>
785
- <a name='L720'></a><a href='#L720'>720</a>
786
- <a name='L721'></a><a href='#L721'>721</a>
787
- <a name='L722'></a><a href='#L722'>722</a>
788
- <a name='L723'></a><a href='#L723'>723</a>
789
- <a name='L724'></a><a href='#L724'>724</a>
790
- <a name='L725'></a><a href='#L725'>725</a>
791
- <a name='L726'></a><a href='#L726'>726</a>
792
- <a name='L727'></a><a href='#L727'>727</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
793
- <span class="cline-any cline-no">&nbsp;</span>
794
- <span class="cline-any cline-no">&nbsp;</span>
795
- <span class="cline-any cline-neutral">&nbsp;</span>
796
- <span class="cline-any cline-no">&nbsp;</span>
797
- <span class="cline-any cline-no">&nbsp;</span>
798
- <span class="cline-any cline-no">&nbsp;</span>
799
- <span class="cline-any cline-no">&nbsp;</span>
800
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
804
- <span class="cline-any cline-neutral">&nbsp;</span>
805
- <span class="cline-any cline-no">&nbsp;</span>
806
- <span class="cline-any cline-no">&nbsp;</span>
807
- <span class="cline-any cline-no">&nbsp;</span>
808
- <span class="cline-any cline-neutral">&nbsp;</span>
809
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
855
- <span class="cline-any cline-neutral">&nbsp;</span>
856
- <span class="cline-any cline-neutral">&nbsp;</span>
857
- <span class="cline-any cline-neutral">&nbsp;</span>
858
- <span class="cline-any cline-neutral">&nbsp;</span>
859
- <span class="cline-any cline-neutral">&nbsp;</span>
860
- <span class="cline-any cline-neutral">&nbsp;</span>
861
- <span class="cline-any cline-neutral">&nbsp;</span>
862
- <span class="cline-any cline-neutral">&nbsp;</span>
863
- <span class="cline-any cline-neutral">&nbsp;</span>
864
- <span class="cline-any cline-neutral">&nbsp;</span>
865
- <span class="cline-any cline-neutral">&nbsp;</span>
866
- <span class="cline-any cline-neutral">&nbsp;</span>
867
- <span class="cline-any cline-neutral">&nbsp;</span>
868
- <span class="cline-any cline-neutral">&nbsp;</span>
869
- <span class="cline-any cline-neutral">&nbsp;</span>
870
- <span class="cline-any cline-neutral">&nbsp;</span>
871
- <span class="cline-any cline-neutral">&nbsp;</span>
872
- <span class="cline-any cline-neutral">&nbsp;</span>
873
- <span class="cline-any cline-neutral">&nbsp;</span>
874
- <span class="cline-any cline-neutral">&nbsp;</span>
875
- <span class="cline-any cline-neutral">&nbsp;</span>
876
- <span class="cline-any cline-neutral">&nbsp;</span>
877
- <span class="cline-any cline-neutral">&nbsp;</span>
878
- <span class="cline-any cline-neutral">&nbsp;</span>
879
- <span class="cline-any cline-neutral">&nbsp;</span>
880
- <span class="cline-any cline-neutral">&nbsp;</span>
881
- <span class="cline-any cline-neutral">&nbsp;</span>
882
- <span class="cline-any cline-neutral">&nbsp;</span>
883
- <span class="cline-any cline-neutral">&nbsp;</span>
884
- <span class="cline-any cline-neutral">&nbsp;</span>
885
- <span class="cline-any cline-neutral">&nbsp;</span>
886
- <span class="cline-any cline-neutral">&nbsp;</span>
887
- <span class="cline-any cline-neutral">&nbsp;</span>
888
- <span class="cline-any cline-neutral">&nbsp;</span>
889
- <span class="cline-any cline-neutral">&nbsp;</span>
890
- <span class="cline-any cline-neutral">&nbsp;</span>
891
- <span class="cline-any cline-neutral">&nbsp;</span>
892
- <span class="cline-any cline-neutral">&nbsp;</span>
893
- <span class="cline-any cline-neutral">&nbsp;</span>
894
- <span class="cline-any cline-neutral">&nbsp;</span>
895
- <span class="cline-any cline-neutral">&nbsp;</span>
896
- <span class="cline-any cline-neutral">&nbsp;</span>
897
- <span class="cline-any cline-neutral">&nbsp;</span>
898
- <span class="cline-any cline-neutral">&nbsp;</span>
899
- <span class="cline-any cline-neutral">&nbsp;</span>
900
- <span class="cline-any cline-neutral">&nbsp;</span>
901
- <span class="cline-any cline-neutral">&nbsp;</span>
902
- <span class="cline-any cline-neutral">&nbsp;</span>
903
- <span class="cline-any cline-neutral">&nbsp;</span>
904
- <span class="cline-any cline-neutral">&nbsp;</span>
905
- <span class="cline-any cline-neutral">&nbsp;</span>
906
- <span class="cline-any cline-neutral">&nbsp;</span>
907
- <span class="cline-any cline-no">&nbsp;</span>
908
- <span class="cline-any cline-neutral">&nbsp;</span>
909
- <span class="cline-any cline-neutral">&nbsp;</span>
910
- <span class="cline-any cline-neutral">&nbsp;</span>
911
- <span class="cline-any cline-neutral">&nbsp;</span>
912
- <span class="cline-any cline-neutral">&nbsp;</span>
913
- <span class="cline-any cline-neutral">&nbsp;</span>
914
- <span class="cline-any cline-neutral">&nbsp;</span>
915
- <span class="cline-any cline-neutral">&nbsp;</span>
916
- <span class="cline-any cline-neutral">&nbsp;</span>
917
- <span class="cline-any cline-no">&nbsp;</span>
918
- <span class="cline-any cline-neutral">&nbsp;</span>
919
- <span class="cline-any cline-neutral">&nbsp;</span>
920
- <span class="cline-any cline-neutral">&nbsp;</span>
921
- <span class="cline-any cline-neutral">&nbsp;</span>
922
- <span class="cline-any cline-neutral">&nbsp;</span>
923
- <span class="cline-any cline-neutral">&nbsp;</span>
924
- <span class="cline-any cline-neutral">&nbsp;</span>
925
- <span class="cline-any cline-neutral">&nbsp;</span>
926
- <span class="cline-any cline-neutral">&nbsp;</span>
927
- <span class="cline-any cline-neutral">&nbsp;</span>
928
- <span class="cline-any cline-no">&nbsp;</span>
929
- <span class="cline-any cline-neutral">&nbsp;</span>
930
- <span class="cline-any cline-neutral">&nbsp;</span>
931
- <span class="cline-any cline-neutral">&nbsp;</span>
932
- <span class="cline-any cline-neutral">&nbsp;</span>
933
- <span class="cline-any cline-neutral">&nbsp;</span>
934
- <span class="cline-any cline-neutral">&nbsp;</span>
935
- <span class="cline-any cline-neutral">&nbsp;</span>
936
- <span class="cline-any cline-neutral">&nbsp;</span>
937
- <span class="cline-any cline-neutral">&nbsp;</span>
938
- <span class="cline-any cline-neutral">&nbsp;</span>
939
- <span class="cline-any cline-neutral">&nbsp;</span>
940
- <span class="cline-any cline-neutral">&nbsp;</span>
941
- <span class="cline-any cline-neutral">&nbsp;</span>
942
- <span class="cline-any cline-neutral">&nbsp;</span>
943
- <span class="cline-any cline-neutral">&nbsp;</span>
944
- <span class="cline-any cline-neutral">&nbsp;</span>
945
- <span class="cline-any cline-neutral">&nbsp;</span>
946
- <span class="cline-any cline-neutral">&nbsp;</span>
947
- <span class="cline-any cline-no">&nbsp;</span>
948
- <span class="cline-any cline-neutral">&nbsp;</span>
949
- <span class="cline-any cline-neutral">&nbsp;</span>
950
- <span class="cline-any cline-neutral">&nbsp;</span>
951
- <span class="cline-any cline-neutral">&nbsp;</span>
952
- <span class="cline-any cline-neutral">&nbsp;</span>
953
- <span class="cline-any cline-neutral">&nbsp;</span>
954
- <span class="cline-any cline-neutral">&nbsp;</span>
955
- <span class="cline-any cline-neutral">&nbsp;</span>
956
- <span class="cline-any cline-neutral">&nbsp;</span>
957
- <span class="cline-any cline-neutral">&nbsp;</span>
958
- <span class="cline-any cline-neutral">&nbsp;</span>
959
- <span class="cline-any cline-no">&nbsp;</span>
960
- <span class="cline-any cline-neutral">&nbsp;</span>
961
- <span class="cline-any cline-neutral">&nbsp;</span>
962
- <span class="cline-any cline-neutral">&nbsp;</span>
963
- <span class="cline-any cline-neutral">&nbsp;</span>
964
- <span class="cline-any cline-neutral">&nbsp;</span>
965
- <span class="cline-any cline-neutral">&nbsp;</span>
966
- <span class="cline-any cline-neutral">&nbsp;</span>
967
- <span class="cline-any cline-neutral">&nbsp;</span>
968
- <span class="cline-any cline-neutral">&nbsp;</span>
969
- <span class="cline-any cline-no">&nbsp;</span>
970
- <span class="cline-any cline-neutral">&nbsp;</span>
971
- <span class="cline-any cline-neutral">&nbsp;</span>
972
- <span class="cline-any cline-neutral">&nbsp;</span>
973
- <span class="cline-any cline-neutral">&nbsp;</span>
974
- <span class="cline-any cline-neutral">&nbsp;</span>
975
- <span class="cline-any cline-neutral">&nbsp;</span>
976
- <span class="cline-any cline-neutral">&nbsp;</span>
977
- <span class="cline-any cline-neutral">&nbsp;</span>
978
- <span class="cline-any cline-neutral">&nbsp;</span>
979
- <span class="cline-any cline-no">&nbsp;</span>
980
- <span class="cline-any cline-neutral">&nbsp;</span>
981
- <span class="cline-any cline-neutral">&nbsp;</span>
982
- <span class="cline-any cline-neutral">&nbsp;</span>
983
- <span class="cline-any cline-neutral">&nbsp;</span>
984
- <span class="cline-any cline-neutral">&nbsp;</span>
985
- <span class="cline-any cline-neutral">&nbsp;</span>
986
- <span class="cline-any cline-neutral">&nbsp;</span>
987
- <span class="cline-any cline-neutral">&nbsp;</span>
988
- <span class="cline-any cline-neutral">&nbsp;</span>
989
- <span class="cline-any cline-no">&nbsp;</span>
990
- <span class="cline-any cline-neutral">&nbsp;</span>
991
- <span class="cline-any cline-neutral">&nbsp;</span>
992
- <span class="cline-any cline-neutral">&nbsp;</span>
993
- <span class="cline-any cline-neutral">&nbsp;</span>
994
- <span class="cline-any cline-neutral">&nbsp;</span>
995
- <span class="cline-any cline-neutral">&nbsp;</span>
996
- <span class="cline-any cline-neutral">&nbsp;</span>
997
- <span class="cline-any cline-neutral">&nbsp;</span>
998
- <span class="cline-any cline-neutral">&nbsp;</span>
999
- <span class="cline-any cline-neutral">&nbsp;</span>
1000
- <span class="cline-any cline-neutral">&nbsp;</span>
1001
- <span class="cline-any cline-neutral">&nbsp;</span>
1002
- <span class="cline-any cline-no">&nbsp;</span>
1003
- <span class="cline-any cline-neutral">&nbsp;</span>
1004
- <span class="cline-any cline-neutral">&nbsp;</span>
1005
- <span class="cline-any cline-neutral">&nbsp;</span>
1006
- <span class="cline-any cline-neutral">&nbsp;</span>
1007
- <span class="cline-any cline-neutral">&nbsp;</span>
1008
- <span class="cline-any cline-neutral">&nbsp;</span>
1009
- <span class="cline-any cline-neutral">&nbsp;</span>
1010
- <span class="cline-any cline-neutral">&nbsp;</span>
1011
- <span class="cline-any cline-no">&nbsp;</span>
1012
- <span class="cline-any cline-neutral">&nbsp;</span>
1013
- <span class="cline-any cline-neutral">&nbsp;</span>
1014
- <span class="cline-any cline-neutral">&nbsp;</span>
1015
- <span class="cline-any cline-neutral">&nbsp;</span>
1016
- <span class="cline-any cline-neutral">&nbsp;</span>
1017
- <span class="cline-any cline-neutral">&nbsp;</span>
1018
- <span class="cline-any cline-neutral">&nbsp;</span>
1019
- <span class="cline-any cline-neutral">&nbsp;</span>
1020
- <span class="cline-any cline-no">&nbsp;</span>
1021
- <span class="cline-any cline-neutral">&nbsp;</span>
1022
- <span class="cline-any cline-neutral">&nbsp;</span>
1023
- <span class="cline-any cline-neutral">&nbsp;</span>
1024
- <span class="cline-any cline-neutral">&nbsp;</span>
1025
- <span class="cline-any cline-neutral">&nbsp;</span>
1026
- <span class="cline-any cline-neutral">&nbsp;</span>
1027
- <span class="cline-any cline-neutral">&nbsp;</span>
1028
- <span class="cline-any cline-neutral">&nbsp;</span>
1029
- <span class="cline-any cline-no">&nbsp;</span>
1030
- <span class="cline-any cline-neutral">&nbsp;</span>
1031
- <span class="cline-any cline-neutral">&nbsp;</span>
1032
- <span class="cline-any cline-neutral">&nbsp;</span>
1033
- <span class="cline-any cline-neutral">&nbsp;</span>
1034
- <span class="cline-any cline-neutral">&nbsp;</span>
1035
- <span class="cline-any cline-neutral">&nbsp;</span>
1036
- <span class="cline-any cline-neutral">&nbsp;</span>
1037
- <span class="cline-any cline-neutral">&nbsp;</span>
1038
- <span class="cline-any cline-no">&nbsp;</span>
1039
- <span class="cline-any cline-neutral">&nbsp;</span>
1040
- <span class="cline-any cline-neutral">&nbsp;</span>
1041
- <span class="cline-any cline-neutral">&nbsp;</span>
1042
- <span class="cline-any cline-neutral">&nbsp;</span>
1043
- <span class="cline-any cline-neutral">&nbsp;</span>
1044
- <span class="cline-any cline-neutral">&nbsp;</span>
1045
- <span class="cline-any cline-neutral">&nbsp;</span>
1046
- <span class="cline-any cline-neutral">&nbsp;</span>
1047
- <span class="cline-any cline-neutral">&nbsp;</span>
1048
- <span class="cline-any cline-no">&nbsp;</span>
1049
- <span class="cline-any cline-neutral">&nbsp;</span>
1050
- <span class="cline-any cline-neutral">&nbsp;</span>
1051
- <span class="cline-any cline-neutral">&nbsp;</span>
1052
- <span class="cline-any cline-neutral">&nbsp;</span>
1053
- <span class="cline-any cline-neutral">&nbsp;</span>
1054
- <span class="cline-any cline-neutral">&nbsp;</span>
1055
- <span class="cline-any cline-neutral">&nbsp;</span>
1056
- <span class="cline-any cline-neutral">&nbsp;</span>
1057
- <span class="cline-any cline-neutral">&nbsp;</span>
1058
- <span class="cline-any cline-no">&nbsp;</span>
1059
- <span class="cline-any cline-neutral">&nbsp;</span>
1060
- <span class="cline-any cline-neutral">&nbsp;</span>
1061
- <span class="cline-any cline-neutral">&nbsp;</span>
1062
- <span class="cline-any cline-neutral">&nbsp;</span>
1063
- <span class="cline-any cline-neutral">&nbsp;</span>
1064
- <span class="cline-any cline-neutral">&nbsp;</span>
1065
- <span class="cline-any cline-neutral">&nbsp;</span>
1066
- <span class="cline-any cline-neutral">&nbsp;</span>
1067
- <span class="cline-any cline-neutral">&nbsp;</span>
1068
- <span class="cline-any cline-neutral">&nbsp;</span>
1069
- <span class="cline-any cline-no">&nbsp;</span>
1070
- <span class="cline-any cline-neutral">&nbsp;</span>
1071
- <span class="cline-any cline-neutral">&nbsp;</span>
1072
- <span class="cline-any cline-no">&nbsp;</span>
1073
- <span class="cline-any cline-no">&nbsp;</span>
1074
- <span class="cline-any cline-neutral">&nbsp;</span>
1075
- <span class="cline-any cline-neutral">&nbsp;</span>
1076
- <span class="cline-any cline-neutral">&nbsp;</span>
1077
- <span class="cline-any cline-neutral">&nbsp;</span>
1078
- <span class="cline-any cline-neutral">&nbsp;</span>
1079
- <span class="cline-any cline-neutral">&nbsp;</span>
1080
- <span class="cline-any cline-neutral">&nbsp;</span>
1081
- <span class="cline-any cline-neutral">&nbsp;</span>
1082
- <span class="cline-any cline-neutral">&nbsp;</span>
1083
- <span class="cline-any cline-neutral">&nbsp;</span>
1084
- <span class="cline-any cline-no">&nbsp;</span>
1085
- <span class="cline-any cline-no">&nbsp;</span>
1086
- <span class="cline-any cline-neutral">&nbsp;</span>
1087
- <span class="cline-any cline-no">&nbsp;</span>
1088
- <span class="cline-any cline-no">&nbsp;</span>
1089
- <span class="cline-any cline-neutral">&nbsp;</span>
1090
- <span class="cline-any cline-neutral">&nbsp;</span>
1091
- <span class="cline-any cline-no">&nbsp;</span>
1092
- <span class="cline-any cline-no">&nbsp;</span>
1093
- <span class="cline-any cline-neutral">&nbsp;</span>
1094
- <span class="cline-any cline-neutral">&nbsp;</span>
1095
- <span class="cline-any cline-neutral">&nbsp;</span>
1096
- <span class="cline-any cline-no">&nbsp;</span>
1097
- <span class="cline-any cline-no">&nbsp;</span>
1098
- <span class="cline-any cline-neutral">&nbsp;</span>
1099
- <span class="cline-any cline-neutral">&nbsp;</span>
1100
- <span class="cline-any cline-neutral">&nbsp;</span>
1101
- <span class="cline-any cline-neutral">&nbsp;</span>
1102
- <span class="cline-any cline-neutral">&nbsp;</span>
1103
- <span class="cline-any cline-neutral">&nbsp;</span>
1104
- <span class="cline-any cline-neutral">&nbsp;</span>
1105
- <span class="cline-any cline-neutral">&nbsp;</span>
1106
- <span class="cline-any cline-neutral">&nbsp;</span>
1107
- <span class="cline-any cline-no">&nbsp;</span>
1108
- <span class="cline-any cline-no">&nbsp;</span>
1109
- <span class="cline-any cline-neutral">&nbsp;</span>
1110
- <span class="cline-any cline-neutral">&nbsp;</span>
1111
- <span class="cline-any cline-neutral">&nbsp;</span>
1112
- <span class="cline-any cline-neutral">&nbsp;</span>
1113
- <span class="cline-any cline-neutral">&nbsp;</span>
1114
- <span class="cline-any cline-neutral">&nbsp;</span>
1115
- <span class="cline-any cline-neutral">&nbsp;</span>
1116
- <span class="cline-any cline-neutral">&nbsp;</span>
1117
- <span class="cline-any cline-neutral">&nbsp;</span>
1118
- <span class="cline-any cline-neutral">&nbsp;</span>
1119
- <span class="cline-any cline-no">&nbsp;</span>
1120
- <span class="cline-any cline-no">&nbsp;</span>
1121
- <span class="cline-any cline-neutral">&nbsp;</span>
1122
- <span class="cline-any cline-neutral">&nbsp;</span>
1123
- <span class="cline-any cline-neutral">&nbsp;</span>
1124
- <span class="cline-any cline-neutral">&nbsp;</span>
1125
- <span class="cline-any cline-neutral">&nbsp;</span>
1126
- <span class="cline-any cline-neutral">&nbsp;</span>
1127
- <span class="cline-any cline-neutral">&nbsp;</span>
1128
- <span class="cline-any cline-neutral">&nbsp;</span>
1129
- <span class="cline-any cline-neutral">&nbsp;</span>
1130
- <span class="cline-any cline-neutral">&nbsp;</span>
1131
- <span class="cline-any cline-neutral">&nbsp;</span>
1132
- <span class="cline-any cline-no">&nbsp;</span>
1133
- <span class="cline-any cline-no">&nbsp;</span>
1134
- <span class="cline-any cline-no">&nbsp;</span>
1135
- <span class="cline-any cline-no">&nbsp;</span>
1136
- <span class="cline-any cline-no">&nbsp;</span>
1137
- <span class="cline-any cline-no">&nbsp;</span>
1138
- <span class="cline-any cline-neutral">&nbsp;</span>
1139
- <span class="cline-any cline-neutral">&nbsp;</span>
1140
- <span class="cline-any cline-neutral">&nbsp;</span>
1141
- <span class="cline-any cline-neutral">&nbsp;</span>
1142
- <span class="cline-any cline-neutral">&nbsp;</span>
1143
- <span class="cline-any cline-neutral">&nbsp;</span>
1144
- <span class="cline-any cline-neutral">&nbsp;</span>
1145
- <span class="cline-any cline-neutral">&nbsp;</span>
1146
- <span class="cline-any cline-neutral">&nbsp;</span>
1147
- <span class="cline-any cline-neutral">&nbsp;</span>
1148
- <span class="cline-any cline-neutral">&nbsp;</span>
1149
- <span class="cline-any cline-neutral">&nbsp;</span>
1150
- <span class="cline-any cline-no">&nbsp;</span>
1151
- <span class="cline-any cline-no">&nbsp;</span>
1152
- <span class="cline-any cline-no">&nbsp;</span>
1153
- <span class="cline-any cline-no">&nbsp;</span>
1154
- <span class="cline-any cline-no">&nbsp;</span>
1155
- <span class="cline-any cline-no">&nbsp;</span>
1156
- <span class="cline-any cline-no">&nbsp;</span>
1157
- <span class="cline-any cline-no">&nbsp;</span>
1158
- <span class="cline-any cline-neutral">&nbsp;</span>
1159
- <span class="cline-any cline-neutral">&nbsp;</span>
1160
- <span class="cline-any cline-neutral">&nbsp;</span>
1161
- <span class="cline-any cline-neutral">&nbsp;</span>
1162
- <span class="cline-any cline-neutral">&nbsp;</span>
1163
- <span class="cline-any cline-neutral">&nbsp;</span>
1164
- <span class="cline-any cline-neutral">&nbsp;</span>
1165
- <span class="cline-any cline-neutral">&nbsp;</span>
1166
- <span class="cline-any cline-neutral">&nbsp;</span>
1167
- <span class="cline-any cline-neutral">&nbsp;</span>
1168
- <span class="cline-any cline-neutral">&nbsp;</span>
1169
- <span class="cline-any cline-no">&nbsp;</span>
1170
- <span class="cline-any cline-no">&nbsp;</span>
1171
- <span class="cline-any cline-no">&nbsp;</span>
1172
- <span class="cline-any cline-neutral">&nbsp;</span>
1173
- <span class="cline-any cline-neutral">&nbsp;</span>
1174
- <span class="cline-any cline-neutral">&nbsp;</span>
1175
- <span class="cline-any cline-neutral">&nbsp;</span>
1176
- <span class="cline-any cline-neutral">&nbsp;</span>
1177
- <span class="cline-any cline-neutral">&nbsp;</span>
1178
- <span class="cline-any cline-neutral">&nbsp;</span>
1179
- <span class="cline-any cline-neutral">&nbsp;</span>
1180
- <span class="cline-any cline-neutral">&nbsp;</span>
1181
- <span class="cline-any cline-neutral">&nbsp;</span>
1182
- <span class="cline-any cline-neutral">&nbsp;</span>
1183
- <span class="cline-any cline-no">&nbsp;</span>
1184
- <span class="cline-any cline-no">&nbsp;</span>
1185
- <span class="cline-any cline-no">&nbsp;</span>
1186
- <span class="cline-any cline-no">&nbsp;</span>
1187
- <span class="cline-any cline-no">&nbsp;</span>
1188
- <span class="cline-any cline-neutral">&nbsp;</span>
1189
- <span class="cline-any cline-neutral">&nbsp;</span>
1190
- <span class="cline-any cline-neutral">&nbsp;</span>
1191
- <span class="cline-any cline-neutral">&nbsp;</span>
1192
- <span class="cline-any cline-neutral">&nbsp;</span>
1193
- <span class="cline-any cline-neutral">&nbsp;</span>
1194
- <span class="cline-any cline-neutral">&nbsp;</span>
1195
- <span class="cline-any cline-neutral">&nbsp;</span>
1196
- <span class="cline-any cline-neutral">&nbsp;</span>
1197
- <span class="cline-any cline-neutral">&nbsp;</span>
1198
- <span class="cline-any cline-neutral">&nbsp;</span>
1199
- <span class="cline-any cline-no">&nbsp;</span>
1200
- <span class="cline-any cline-no">&nbsp;</span>
1201
- <span class="cline-any cline-no">&nbsp;</span>
1202
- <span class="cline-any cline-neutral">&nbsp;</span>
1203
- <span class="cline-any cline-neutral">&nbsp;</span>
1204
- <span class="cline-any cline-neutral">&nbsp;</span>
1205
- <span class="cline-any cline-neutral">&nbsp;</span>
1206
- <span class="cline-any cline-neutral">&nbsp;</span>
1207
- <span class="cline-any cline-neutral">&nbsp;</span>
1208
- <span class="cline-any cline-neutral">&nbsp;</span>
1209
- <span class="cline-any cline-neutral">&nbsp;</span>
1210
- <span class="cline-any cline-neutral">&nbsp;</span>
1211
- <span class="cline-any cline-neutral">&nbsp;</span>
1212
- <span class="cline-any cline-neutral">&nbsp;</span>
1213
- <span class="cline-any cline-neutral">&nbsp;</span>
1214
- <span class="cline-any cline-no">&nbsp;</span>
1215
- <span class="cline-any cline-no">&nbsp;</span>
1216
- <span class="cline-any cline-no">&nbsp;</span>
1217
- <span class="cline-any cline-no">&nbsp;</span>
1218
- <span class="cline-any cline-no">&nbsp;</span>
1219
- <span class="cline-any cline-neutral">&nbsp;</span>
1220
- <span class="cline-any cline-no">&nbsp;</span>
1221
- <span class="cline-any cline-neutral">&nbsp;</span>
1222
- <span class="cline-any cline-neutral">&nbsp;</span>
1223
- <span class="cline-any cline-neutral">&nbsp;</span>
1224
- <span class="cline-any cline-neutral">&nbsp;</span>
1225
- <span class="cline-any cline-neutral">&nbsp;</span>
1226
- <span class="cline-any cline-neutral">&nbsp;</span>
1227
- <span class="cline-any cline-no">&nbsp;</span>
1228
- <span class="cline-any cline-no">&nbsp;</span>
1229
- <span class="cline-any cline-neutral">&nbsp;</span>
1230
- <span class="cline-any cline-no">&nbsp;</span>
1231
- <span class="cline-any cline-neutral">&nbsp;</span>
1232
- <span class="cline-any cline-no">&nbsp;</span>
1233
- <span class="cline-any cline-no">&nbsp;</span>
1234
- <span class="cline-any cline-neutral">&nbsp;</span>
1235
- <span class="cline-any cline-no">&nbsp;</span>
1236
- <span class="cline-any cline-no">&nbsp;</span>
1237
- <span class="cline-any cline-no">&nbsp;</span>
1238
- <span class="cline-any cline-neutral">&nbsp;</span>
1239
- <span class="cline-any cline-neutral">&nbsp;</span>
1240
- <span class="cline-any cline-neutral">&nbsp;</span>
1241
- <span class="cline-any cline-no">&nbsp;</span>
1242
- <span class="cline-any cline-no">&nbsp;</span>
1243
- <span class="cline-any cline-no">&nbsp;</span>
1244
- <span class="cline-any cline-no">&nbsp;</span>
1245
- <span class="cline-any cline-neutral">&nbsp;</span>
1246
- <span class="cline-any cline-no">&nbsp;</span>
1247
- <span class="cline-any cline-no">&nbsp;</span>
1248
- <span class="cline-any cline-no">&nbsp;</span>
1249
- <span class="cline-any cline-no">&nbsp;</span>
1250
- <span class="cline-any cline-neutral">&nbsp;</span>
1251
- <span class="cline-any cline-neutral">&nbsp;</span>
1252
- <span class="cline-any cline-neutral">&nbsp;</span>
1253
- <span class="cline-any cline-neutral">&nbsp;</span>
1254
- <span class="cline-any cline-neutral">&nbsp;</span>
1255
- <span class="cline-any cline-neutral">&nbsp;</span>
1256
- <span class="cline-any cline-no">&nbsp;</span>
1257
- <span class="cline-any cline-neutral">&nbsp;</span>
1258
- <span class="cline-any cline-neutral">&nbsp;</span>
1259
- <span class="cline-any cline-no">&nbsp;</span>
1260
- <span class="cline-any cline-no">&nbsp;</span>
1261
- <span class="cline-any cline-no">&nbsp;</span>
1262
- <span class="cline-any cline-no">&nbsp;</span>
1263
- <span class="cline-any cline-no">&nbsp;</span>
1264
- <span class="cline-any cline-no">&nbsp;</span>
1265
- <span class="cline-any cline-no">&nbsp;</span>
1266
- <span class="cline-any cline-no">&nbsp;</span>
1267
- <span class="cline-any cline-neutral">&nbsp;</span>
1268
- <span class="cline-any cline-neutral">&nbsp;</span>
1269
- <span class="cline-any cline-neutral">&nbsp;</span>
1270
- <span class="cline-any cline-neutral">&nbsp;</span>
1271
- <span class="cline-any cline-neutral">&nbsp;</span>
1272
- <span class="cline-any cline-no">&nbsp;</span>
1273
- <span class="cline-any cline-neutral">&nbsp;</span>
1274
- <span class="cline-any cline-no">&nbsp;</span>
1275
- <span class="cline-any cline-neutral">&nbsp;</span>
1276
- <span class="cline-any cline-neutral">&nbsp;</span>
1277
- <span class="cline-any cline-neutral">&nbsp;</span>
1278
- <span class="cline-any cline-neutral">&nbsp;</span>
1279
- <span class="cline-any cline-neutral">&nbsp;</span>
1280
- <span class="cline-any cline-neutral">&nbsp;</span>
1281
- <span class="cline-any cline-neutral">&nbsp;</span>
1282
- <span class="cline-any cline-neutral">&nbsp;</span>
1283
- <span class="cline-any cline-neutral">&nbsp;</span>
1284
- <span class="cline-any cline-neutral">&nbsp;</span>
1285
- <span class="cline-any cline-neutral">&nbsp;</span>
1286
- <span class="cline-any cline-neutral">&nbsp;</span>
1287
- <span class="cline-any cline-neutral">&nbsp;</span>
1288
- <span class="cline-any cline-no">&nbsp;</span>
1289
- <span class="cline-any cline-no">&nbsp;</span>
1290
- <span class="cline-any cline-neutral">&nbsp;</span>
1291
- <span class="cline-any cline-no">&nbsp;</span>
1292
- <span class="cline-any cline-no">&nbsp;</span>
1293
- <span class="cline-any cline-no">&nbsp;</span>
1294
- <span class="cline-any cline-no">&nbsp;</span>
1295
- <span class="cline-any cline-no">&nbsp;</span>
1296
- <span class="cline-any cline-no">&nbsp;</span>
1297
- <span class="cline-any cline-neutral">&nbsp;</span>
1298
- <span class="cline-any cline-no">&nbsp;</span>
1299
- <span class="cline-any cline-neutral">&nbsp;</span>
1300
- <span class="cline-any cline-no">&nbsp;</span>
1301
- <span class="cline-any cline-no">&nbsp;</span>
1302
- <span class="cline-any cline-neutral">&nbsp;</span>
1303
- <span class="cline-any cline-neutral">&nbsp;</span>
1304
- <span class="cline-any cline-neutral">&nbsp;</span>
1305
- <span class="cline-any cline-neutral">&nbsp;</span>
1306
- <span class="cline-any cline-neutral">&nbsp;</span>
1307
- <span class="cline-any cline-neutral">&nbsp;</span>
1308
- <span class="cline-any cline-neutral">&nbsp;</span>
1309
- <span class="cline-any cline-neutral">&nbsp;</span>
1310
- <span class="cline-any cline-neutral">&nbsp;</span>
1311
- <span class="cline-any cline-neutral">&nbsp;</span>
1312
- <span class="cline-any cline-neutral">&nbsp;</span>
1313
- <span class="cline-any cline-no">&nbsp;</span>
1314
- <span class="cline-any cline-neutral">&nbsp;</span>
1315
- <span class="cline-any cline-no">&nbsp;</span>
1316
- <span class="cline-any cline-no">&nbsp;</span>
1317
- <span class="cline-any cline-no">&nbsp;</span>
1318
- <span class="cline-any cline-no">&nbsp;</span>
1319
- <span class="cline-any cline-neutral">&nbsp;</span>
1320
- <span class="cline-any cline-neutral">&nbsp;</span>
1321
- <span class="cline-any cline-no">&nbsp;</span>
1322
- <span class="cline-any cline-neutral">&nbsp;</span>
1323
- <span class="cline-any cline-no">&nbsp;</span>
1324
- <span class="cline-any cline-no">&nbsp;</span>
1325
- <span class="cline-any cline-no">&nbsp;</span>
1326
- <span class="cline-any cline-no">&nbsp;</span>
1327
- <span class="cline-any cline-no">&nbsp;</span>
1328
- <span class="cline-any cline-no">&nbsp;</span>
1329
- <span class="cline-any cline-no">&nbsp;</span>
1330
- <span class="cline-any cline-neutral">&nbsp;</span>
1331
- <span class="cline-any cline-neutral">&nbsp;</span>
1332
- <span class="cline-any cline-neutral">&nbsp;</span>
1333
- <span class="cline-any cline-neutral">&nbsp;</span>
1334
- <span class="cline-any cline-neutral">&nbsp;</span>
1335
- <span class="cline-any cline-no">&nbsp;</span>
1336
- <span class="cline-any cline-neutral">&nbsp;</span>
1337
- <span class="cline-any cline-no">&nbsp;</span>
1338
- <span class="cline-any cline-no">&nbsp;</span>
1339
- <span class="cline-any cline-neutral">&nbsp;</span>
1340
- <span class="cline-any cline-neutral">&nbsp;</span>
1341
- <span class="cline-any cline-neutral">&nbsp;</span>
1342
- <span class="cline-any cline-no">&nbsp;</span>
1343
- <span class="cline-any cline-no">&nbsp;</span>
1344
- <span class="cline-any cline-no">&nbsp;</span>
1345
- <span class="cline-any cline-no">&nbsp;</span>
1346
- <span class="cline-any cline-neutral">&nbsp;</span>
1347
- <span class="cline-any cline-no">&nbsp;</span>
1348
- <span class="cline-any cline-neutral">&nbsp;</span>
1349
- <span class="cline-any cline-no">&nbsp;</span>
1350
- <span class="cline-any cline-neutral">&nbsp;</span>
1351
- <span class="cline-any cline-neutral">&nbsp;</span>
1352
- <span class="cline-any cline-no">&nbsp;</span>
1353
- <span class="cline-any cline-neutral">&nbsp;</span>
1354
- <span class="cline-any cline-neutral">&nbsp;</span>
1355
- <span class="cline-any cline-neutral">&nbsp;</span>
1356
- <span class="cline-any cline-neutral">&nbsp;</span>
1357
- <span class="cline-any cline-neutral">&nbsp;</span>
1358
- <span class="cline-any cline-neutral">&nbsp;</span>
1359
- <span class="cline-any cline-neutral">&nbsp;</span>
1360
- <span class="cline-any cline-neutral">&nbsp;</span>
1361
- <span class="cline-any cline-neutral">&nbsp;</span>
1362
- <span class="cline-any cline-neutral">&nbsp;</span>
1363
- <span class="cline-any cline-neutral">&nbsp;</span>
1364
- <span class="cline-any cline-no">&nbsp;</span>
1365
- <span class="cline-any cline-neutral">&nbsp;</span>
1366
- <span class="cline-any cline-neutral">&nbsp;</span>
1367
- <span class="cline-any cline-neutral">&nbsp;</span>
1368
- <span class="cline-any cline-no">&nbsp;</span>
1369
- <span class="cline-any cline-no">&nbsp;</span>
1370
- <span class="cline-any cline-no">&nbsp;</span>
1371
- <span class="cline-any cline-neutral">&nbsp;</span>
1372
- <span class="cline-any cline-neutral">&nbsp;</span>
1373
- <span class="cline-any cline-neutral">&nbsp;</span>
1374
- <span class="cline-any cline-no">&nbsp;</span>
1375
- <span class="cline-any cline-no">&nbsp;</span>
1376
- <span class="cline-any cline-neutral">&nbsp;</span>
1377
- <span class="cline-any cline-neutral">&nbsp;</span>
1378
- <span class="cline-any cline-neutral">&nbsp;</span>
1379
- <span class="cline-any cline-neutral">&nbsp;</span>
1380
- <span class="cline-any cline-neutral">&nbsp;</span>
1381
- <span class="cline-any cline-neutral">&nbsp;</span>
1382
- <span class="cline-any cline-neutral">&nbsp;</span>
1383
- <span class="cline-any cline-neutral">&nbsp;</span>
1384
- <span class="cline-any cline-neutral">&nbsp;</span>
1385
- <span class="cline-any cline-neutral">&nbsp;</span>
1386
- <span class="cline-any cline-neutral">&nbsp;</span>
1387
- <span class="cline-any cline-no">&nbsp;</span>
1388
- <span class="cline-any cline-no">&nbsp;</span>
1389
- <span class="cline-any cline-no">&nbsp;</span>
1390
- <span class="cline-any cline-neutral">&nbsp;</span>
1391
- <span class="cline-any cline-neutral">&nbsp;</span>
1392
- <span class="cline-any cline-neutral">&nbsp;</span>
1393
- <span class="cline-any cline-neutral">&nbsp;</span>
1394
- <span class="cline-any cline-neutral">&nbsp;</span>
1395
- <span class="cline-any cline-neutral">&nbsp;</span>
1396
- <span class="cline-any cline-neutral">&nbsp;</span>
1397
- <span class="cline-any cline-neutral">&nbsp;</span>
1398
- <span class="cline-any cline-neutral">&nbsp;</span>
1399
- <span class="cline-any cline-neutral">&nbsp;</span>
1400
- <span class="cline-any cline-no">&nbsp;</span>
1401
- <span class="cline-any cline-no">&nbsp;</span>
1402
- <span class="cline-any cline-no">&nbsp;</span>
1403
- <span class="cline-any cline-no">&nbsp;</span>
1404
- <span class="cline-any cline-no">&nbsp;</span>
1405
- <span class="cline-any cline-no">&nbsp;</span>
1406
- <span class="cline-any cline-neutral">&nbsp;</span>
1407
- <span class="cline-any cline-neutral">&nbsp;</span>
1408
- <span class="cline-any cline-no">&nbsp;</span>
1409
- <span class="cline-any cline-neutral">&nbsp;</span>
1410
- <span class="cline-any cline-neutral">&nbsp;</span>
1411
- <span class="cline-any cline-neutral">&nbsp;</span>
1412
- <span class="cline-any cline-neutral">&nbsp;</span>
1413
- <span class="cline-any cline-neutral">&nbsp;</span>
1414
- <span class="cline-any cline-neutral">&nbsp;</span>
1415
- <span class="cline-any cline-neutral">&nbsp;</span>
1416
- <span class="cline-any cline-neutral">&nbsp;</span>
1417
- <span class="cline-any cline-neutral">&nbsp;</span>
1418
- <span class="cline-any cline-neutral">&nbsp;</span>
1419
- <span class="cline-any cline-neutral">&nbsp;</span>
1420
- <span class="cline-any cline-no">&nbsp;</span>
1421
- <span class="cline-any cline-neutral">&nbsp;</span>
1422
- <span class="cline-any cline-neutral">&nbsp;</span>
1423
- <span class="cline-any cline-neutral">&nbsp;</span>
1424
- <span class="cline-any cline-neutral">&nbsp;</span>
1425
- <span class="cline-any cline-neutral">&nbsp;</span>
1426
- <span class="cline-any cline-neutral">&nbsp;</span>
1427
- <span class="cline-any cline-neutral">&nbsp;</span>
1428
- <span class="cline-any cline-neutral">&nbsp;</span>
1429
- <span class="cline-any cline-neutral">&nbsp;</span>
1430
- <span class="cline-any cline-neutral">&nbsp;</span>
1431
- <span class="cline-any cline-neutral">&nbsp;</span>
1432
- <span class="cline-any cline-neutral">&nbsp;</span>
1433
- <span class="cline-any cline-neutral">&nbsp;</span>
1434
- <span class="cline-any cline-neutral">&nbsp;</span>
1435
- <span class="cline-any cline-neutral">&nbsp;</span>
1436
- <span class="cline-any cline-neutral">&nbsp;</span>
1437
- <span class="cline-any cline-neutral">&nbsp;</span>
1438
- <span class="cline-any cline-no">&nbsp;</span>
1439
- <span class="cline-any cline-no">&nbsp;</span>
1440
- <span class="cline-any cline-neutral">&nbsp;</span>
1441
- <span class="cline-any cline-no">&nbsp;</span>
1442
- <span class="cline-any cline-no">&nbsp;</span>
1443
- <span class="cline-any cline-neutral">&nbsp;</span>
1444
- <span class="cline-any cline-neutral">&nbsp;</span>
1445
- <span class="cline-any cline-no">&nbsp;</span>
1446
- <span class="cline-any cline-no">&nbsp;</span>
1447
- <span class="cline-any cline-no">&nbsp;</span>
1448
- <span class="cline-any cline-no">&nbsp;</span>
1449
- <span class="cline-any cline-neutral">&nbsp;</span>
1450
- <span class="cline-any cline-no">&nbsp;</span>
1451
- <span class="cline-any cline-neutral">&nbsp;</span>
1452
- <span class="cline-any cline-neutral">&nbsp;</span>
1453
- <span class="cline-any cline-no">&nbsp;</span>
1454
- <span class="cline-any cline-neutral">&nbsp;</span>
1455
- <span class="cline-any cline-neutral">&nbsp;</span>
1456
- <span class="cline-any cline-neutral">&nbsp;</span>
1457
- <span class="cline-any cline-neutral">&nbsp;</span>
1458
- <span class="cline-any cline-neutral">&nbsp;</span>
1459
- <span class="cline-any cline-neutral">&nbsp;</span>
1460
- <span class="cline-any cline-neutral">&nbsp;</span>
1461
- <span class="cline-any cline-neutral">&nbsp;</span>
1462
- <span class="cline-any cline-neutral">&nbsp;</span>
1463
- <span class="cline-any cline-neutral">&nbsp;</span>
1464
- <span class="cline-any cline-neutral">&nbsp;</span>
1465
- <span class="cline-any cline-neutral">&nbsp;</span>
1466
- <span class="cline-any cline-no">&nbsp;</span>
1467
- <span class="cline-any cline-no">&nbsp;</span>
1468
- <span class="cline-any cline-neutral">&nbsp;</span>
1469
- <span class="cline-any cline-neutral">&nbsp;</span>
1470
- <span class="cline-any cline-neutral">&nbsp;</span>
1471
- <span class="cline-any cline-no">&nbsp;</span>
1472
- <span class="cline-any cline-no">&nbsp;</span>
1473
- <span class="cline-any cline-neutral">&nbsp;</span>
1474
- <span class="cline-any cline-no">&nbsp;</span>
1475
- <span class="cline-any cline-no">&nbsp;</span>
1476
- <span class="cline-any cline-no">&nbsp;</span>
1477
- <span class="cline-any cline-neutral">&nbsp;</span>
1478
- <span class="cline-any cline-no">&nbsp;</span>
1479
- <span class="cline-any cline-neutral">&nbsp;</span>
1480
- <span class="cline-any cline-no">&nbsp;</span>
1481
- <span class="cline-any cline-neutral">&nbsp;</span>
1482
- <span class="cline-any cline-no">&nbsp;</span>
1483
- <span class="cline-any cline-neutral">&nbsp;</span>
1484
- <span class="cline-any cline-neutral">&nbsp;</span>
1485
- <span class="cline-any cline-neutral">&nbsp;</span>
1486
- <span class="cline-any cline-neutral">&nbsp;</span>
1487
- <span class="cline-any cline-neutral">&nbsp;</span>
1488
- <span class="cline-any cline-neutral">&nbsp;</span>
1489
- <span class="cline-any cline-neutral">&nbsp;</span>
1490
- <span class="cline-any cline-neutral">&nbsp;</span>
1491
- <span class="cline-any cline-neutral">&nbsp;</span>
1492
- <span class="cline-any cline-neutral">&nbsp;</span>
1493
- <span class="cline-any cline-no">&nbsp;</span>
1494
- <span class="cline-any cline-neutral">&nbsp;</span>
1495
- <span class="cline-any cline-neutral">&nbsp;</span>
1496
- <span class="cline-any cline-neutral">&nbsp;</span>
1497
- <span class="cline-any cline-neutral">&nbsp;</span>
1498
- <span class="cline-any cline-neutral">&nbsp;</span>
1499
- <span class="cline-any cline-neutral">&nbsp;</span>
1500
- <span class="cline-any cline-neutral">&nbsp;</span>
1501
- <span class="cline-any cline-neutral">&nbsp;</span>
1502
- <span class="cline-any cline-neutral">&nbsp;</span>
1503
- <span class="cline-any cline-neutral">&nbsp;</span>
1504
- <span class="cline-any cline-neutral">&nbsp;</span>
1505
- <span class="cline-any cline-no">&nbsp;</span>
1506
- <span class="cline-any cline-neutral">&nbsp;</span>
1507
- <span class="cline-any cline-neutral">&nbsp;</span>
1508
- <span class="cline-any cline-no">&nbsp;</span>
1509
- <span class="cline-any cline-no">&nbsp;</span>
1510
- <span class="cline-any cline-no">&nbsp;</span>
1511
- <span class="cline-any cline-no">&nbsp;</span>
1512
- <span class="cline-any cline-no">&nbsp;</span>
1513
- <span class="cline-any cline-neutral">&nbsp;</span>
1514
- <span class="cline-any cline-neutral">&nbsp;</span>
1515
- <span class="cline-any cline-neutral">&nbsp;</span>
1516
- <span class="cline-any cline-neutral">&nbsp;</span>
1517
- <span class="cline-any cline-neutral">&nbsp;</span>
1518
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >import { CommonModule } from '@angular/common';</span>
1519
- <span class="cstat-no" title="statement not covered" >import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';</span>
1520
- <span class="cstat-no" title="statement not covered" >import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';</span>
1521
- import { Constructor } from '@decaf-ts/decoration';
1522
- <span class="cstat-no" title="statement not covered" >import { Primitives } from '@decaf-ts/decorator-validation';</span>
1523
- <span class="cstat-no" title="statement not covered" >import { ComponentEventNames, ElementSizes, HTML5InputTypes } from '@decaf-ts/ui-decorators';</span>
1524
- <span class="cstat-no" title="statement not covered" >import { IonButton, IonItem, IonLabel, IonList, IonText } from '@ionic/angular/standalone';</span>
1525
- <span class="cstat-no" title="statement not covered" >import { TranslatePipe } from '@ngx-translate/core';</span>
1526
- <span class="cstat-no" title="statement not covered" >import { Dynamic } from '../../engine/decorators';</span>
1527
- import { IBaseCustomEvent, IFileUploadError } from '../../engine/interfaces';
1528
- import { NgxEventHandler } from '../../engine/NgxEventHandler';
1529
- <span class="cstat-no" title="statement not covered" >import { NgxFormFieldDirective } from '../../engine/NgxFormFieldDirective';</span>
1530
- import { ElementSize, FlexPosition, KeyValue, PossibleInputTypes } from '../../engine/types';
1531
- <span class="cstat-no" title="statement not covered" >import { CardComponent } from '../card/card.component';</span>
1532
- <span class="cstat-no" title="statement not covered" >import { IconComponent } from '../icon/icon.component';</span>
1533
- <span class="cstat-no" title="statement not covered" >import { presentNgxInlineModal, presentNgxLightBoxModal } from '../modal/modal.component';</span>
1534
- &nbsp;
1535
- const FileErrors = <span class="cstat-no" title="statement not covered" >{</span>
1536
- notAllowed: 'not_allowed',
1537
- maxSize: 'max_size',
1538
- } as const;
1539
- &nbsp;
1540
- /**
1541
- * @description File upload component for Angular applications.
1542
- * @summary This component provides a user interface for uploading files with support for drag-and-drop,
1543
- * file validation, and preview functionality. It integrates seamlessly with Angular reactive forms
1544
- * and supports multiple file uploads, directory mode, and custom file size limits.
1545
- *
1546
- * @class FileUploadComponent
1547
- * @example
1548
- * ```typescript
1549
- * &lt;ngx-decaf-file-upload [formGroup]="formGroup" [name]="'fileInput'" [multiple]="true"&gt;&lt;/ngx-decaf-file-upload&gt;
1550
- * ```
1551
- * @mermaid
1552
- * sequenceDiagram
1553
- * participant User
1554
- * participant FileUploadComponent
1555
- * User-&gt;&gt;FileUploadComponent: Select or drag files
1556
- * FileUploadComponent-&gt;&gt;FileUploadComponent: Validate files
1557
- * FileUploadComponent-&gt;&gt;FileUploadComponent: Emit change event
1558
- * User-&gt;&gt;FileUploadComponent: Remove file
1559
- * FileUploadComponent-&gt;&gt;FileUploadComponent: Update file list
1560
- */
1561
- @Dynamic()
1562
- @Component({
1563
- selector: 'ngx-decaf-file-upload',
1564
- templateUrl: './file-upload.component.html',
1565
- styleUrls: ['./file-upload.component.scss'],
1566
- standalone: true,
1567
- imports: [
1568
- CommonModule,
1569
- ReactiveFormsModule,
1570
- CardComponent,
1571
- IonText,
1572
- IconComponent,
1573
- IonList,
1574
- IonLabel,
1575
- IonItem,
1576
- TranslatePipe,
1577
- IonButton,
1578
- ],
1579
- })
1580
- export class <span class="cstat-no" title="statement not covered" ><span class="cstat-no" title="statement not covered" >FileUploadComponent </span>extends NgxFormFieldDirective implements OnInit, OnDestroy {</span>
1581
- @ViewChild('component', { static: true })
1582
- override component!: ElementRef&lt;HTMLInputElement&gt;;
1583
- &nbsp;
1584
- /**
1585
- * @description Parent form group.
1586
- * @summary References the parent form group to which this field belongs.
1587
- * This is necessary for integrating the field with Angular's reactive forms.
1588
- *
1589
- * @type {FormGroup}
1590
- */
1591
- @Input()
1592
- override formGroup: FormGroup | undefined;
1593
- &nbsp;
1594
- /**
1595
- * @summary The flat field name used as the form control identifier in immediate parent FormGroup.
1596
- * @description Specifies the name of the field, which is used as the FormControl identifier in immediate parent FormGroup.
1597
- * This value must be unique within the immediate parent FormGroup context and should not contain dots or nesting.
1598
- *
1599
- * @type {string}
1600
- */
1601
- @Input()
1602
- override name!: string;
1603
- &nbsp;
1604
- /**
1605
- * @description Angular FormControl instance for this field.
1606
- * @summary The specific FormControl instance that manages this field's state, validation,
1607
- * and value. This provides direct access to Angular's reactive forms functionality
1608
- * for this individual field within the broader form structure.
1609
- *
1610
- * @type {FormControl}
1611
- */
1612
- @Input()
1613
- override formControl!: FormControl;
1614
- &nbsp;
1615
- /**
1616
- * @description Whether the field is required.
1617
- * @summary When true, the field must have a value for the form to be valid.
1618
- * Required fields are typically marked with an indicator in the UI.
1619
- *
1620
- * @type {boolean}
1621
- */
1622
- @Input()
1623
- override required?: boolean;
1624
- &nbsp;
1625
- /**
1626
- * @description Allows multiple file selection.
1627
- * @summary When true, the user can select multiple files for upload.
1628
- *
1629
- * @type {boolean}
1630
- * @default false
1631
- */
1632
- @Input()
1633
- override <span class="cstat-no" title="statement not covered" >multiple: boolean = false;</span>
1634
- &nbsp;
1635
- /**
1636
- * @description Specifies the input type for the file upload field.
1637
- * @summary Defines the type of input element used for file uploads, such as file or directory.
1638
- *
1639
- * @type {PossibleInputTypes}
1640
- * @default HTML5InputTypes.FILE
1641
- */
1642
- @Input()
1643
- override <span class="cstat-no" title="statement not covered" >type: PossibleInputTypes = HTML5InputTypes.FILE;</span>
1644
- &nbsp;
1645
- /**
1646
- * @description Specifies the value type for the file upload.
1647
- * @summary Determines the format in which the uploaded file's value is returned.
1648
- * Options include 'base64' for base64-encoded strings or 'files' for File objects.
1649
- *
1650
- * @type {'base64' | 'files'}
1651
- * @default 'base64'
1652
- */
1653
- @Input()
1654
- <span class="cstat-no" title="statement not covered" > valueType: 'base64' | 'files' = 'base64';</span>
1655
- &nbsp;
1656
- /**
1657
- * @description Label for the upload button.
1658
- * @summary Specifies the text displayed on the file upload button.
1659
- *
1660
- * @type {string | undefined}
1661
- */
1662
- @Input()
1663
- buttonLabel?: string;
1664
- &nbsp;
1665
- /**
1666
- * @description Size of the file upload component.
1667
- * @summary Determines the visual size of the file upload component, such as large, small, or default.
1668
- *
1669
- * @type {Extract&lt;ElementSize, 'large' | 'small' | 'default'&gt;}
1670
- * @default ElementSizes.large
1671
- */
1672
- @Input()
1673
- <span class="cstat-no" title="statement not covered" > size: Extract&lt;ElementSize, 'large' | 'small' | 'default'&gt; = ElementSizes.large;</span>
1674
- &nbsp;
1675
- /**
1676
- * @description Flex positioning of the container's content.
1677
- * @summary Controls how child elements are positioned within the container when flex layout
1678
- * is enabled. Options include 'center', 'top', 'bottom', 'left', 'right', and combinations
1679
- * like 'top-left'. This property is only applied when the flex property is true.
1680
- *
1681
- * @type {FlexPosition}
1682
- * @default 'center'
1683
- */
1684
- @Input()
1685
- <span class="cstat-no" title="statement not covered" > position: FlexPosition = 'center';</span>
1686
- &nbsp;
1687
- /**
1688
- * @description Accepted file types for upload.
1689
- * @summary Specifies the file types that are allowed for upload, such as images or documents.
1690
- *
1691
- * @type {string | string[]}
1692
- * @default ['image/*']
1693
- */
1694
- @Input()
1695
- <span class="cstat-no" title="statement not covered" > accept: string | string[] = ['image/*'];</span>
1696
- &nbsp;
1697
- /**
1698
- * @description Whether to show an icon in the file upload field.
1699
- * @summary When true, an icon is displayed alongside the file upload input.
1700
- *
1701
- * @type {boolean}
1702
- * @default true
1703
- */
1704
- @Input()
1705
- <span class="cstat-no" title="statement not covered" > showIcon: boolean = true;</span>
1706
- &nbsp;
1707
- /**
1708
- * @description Enables directory mode for file uploads.
1709
- * @summary When true, the user can upload entire directories instead of individual files.
1710
- *
1711
- * @type {boolean}
1712
- * @default false
1713
- */
1714
- @Input()
1715
- <span class="cstat-no" title="statement not covered" > enableDirectoryMode: boolean = false;</span>
1716
- &nbsp;
1717
- @Input()
1718
- previewHandler?: unknown;
1719
- &nbsp;
1720
- /**
1721
- * @description Maximum file size allowed for upload.
1722
- * @summary Specifies the maximum size (in MB) for files that can be uploaded.
1723
- *
1724
- * @type {number}
1725
- * @default 1
1726
- */
1727
- @Input()
1728
- <span class="cstat-no" title="statement not covered" > maxFileSize: number = 1;</span>
1729
- &nbsp;
1730
- /**
1731
- * @description Event emitted when the file upload field changes.
1732
- * @summary Emits an event containing details about the change in the file upload field.
1733
- *
1734
- * @type {EventEmitter&lt;IBaseCustomEvent&gt;}
1735
- */
1736
- @Output()
1737
- <span class="cstat-no" title="statement not covered" > changeEvent: EventEmitter&lt;IBaseCustomEvent&gt; = new EventEmitter&lt;IBaseCustomEvent&gt;();</span>
1738
- &nbsp;
1739
- /**
1740
- * @description Preview of the first file in the upload list.
1741
- * @summary Stores the data URL of the first file in the upload list for preview purposes.
1742
- * This is typically used to display a thumbnail or preview image.
1743
- *
1744
- * @type {string | undefined}
1745
- */
1746
- <span class="cstat-no" title="statement not covered" > previewFile: string | undefined = undefined;</span>
1747
- &nbsp;
1748
- /**
1749
- * @description List of files selected for upload.
1750
- * @summary Contains the files selected by the user for upload. This array is updated
1751
- * whenever files are added or removed from the upload list.
1752
- *
1753
- * @type {File[]}
1754
- */
1755
- <span class="cstat-no" title="statement not covered" > files: File[] | KeyValue[] = [];</span>
1756
- &nbsp;
1757
- /**
1758
- * @description List of errors encountered during file validation.
1759
- * @summary Stores validation errors for files that do not meet the specified criteria,
1760
- * such as file type or size restrictions. Each error includes the file name, size, and error message.
1761
- *
1762
- * @type {IFileUploadError[]}
1763
- */
1764
- <span class="cstat-no" title="statement not covered" > errors: IFileUploadError[] = [];</span>
1765
- &nbsp;
1766
- /**
1767
- * @description Indicates whether a drag operation is in progress.
1768
- * @summary This flag is set to true when a file is being dragged over the upload area.
1769
- * It is used to provide visual feedback to the user during drag-and-drop operations.
1770
- *
1771
- * @type {boolean}
1772
- * @default false
1773
- */
1774
- <span class="cstat-no" title="statement not covered" > dragging: boolean = false;</span>
1775
- &nbsp;
1776
- /**
1777
- * @description Counter for drag events.
1778
- * @summary Tracks the number of drag events to ensure proper handling of drag-and-drop
1779
- * operations. The counter is incremented on drag enter and decremented on drag leave.
1780
- *
1781
- * @type {number}
1782
- * @default 0
1783
- */
1784
- private <span class="cstat-no" title="statement not covered" >dragCounter: number = 0;</span>
1785
- &nbsp;
1786
- /**
1787
- * @description Specifies the subtype of the file upload.
1788
- * @summary Lock subtype to 'text' to ensure that the value is processed as a JSON string containing data URLs or Files.
1789
- * This property will be used to avoid validation errors and to determine how the value is processed and emitted.
1790
- *
1791
- * @type {string}
1792
- * @default 'text'
1793
- */
1794
- @Input()
1795
- <span class="cstat-no" title="statement not covered" > subType: string = 'text';</span>
1796
- &nbsp;
1797
- <span class="fstat-no" title="function not covered" > constructor() {</span>
1798
- <span class="cstat-no" title="statement not covered" > super('FileUploadComponent');</span>
1799
- <span class="cstat-no" title="statement not covered" > this.handleClear();</span>
1800
- }
1801
- &nbsp;
1802
- /**
1803
- * @description Lifecycle hook that is called after Angular has initialized all data-bound properties of a directive.
1804
- * @summary Sets up the component by enabling directory mode if specified, formatting the accepted file types,
1805
- * and converting the maximum file size from megabytes to bytes.
1806
- *
1807
- * @returns {Promise&lt;void&gt;}
1808
- */
1809
- <span class="fstat-no" title="function not covered" > async </span>ngOnInit(): Promise&lt;void&gt; {
1810
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.enableDirectoryMode) {</span>
1811
- <span class="cstat-no" title="statement not covered" > this.multiple = true;</span>
1812
- }
1813
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (Array.isArray(this.accept)) {</span>
1814
- <span class="cstat-no" title="statement not covered" > this.accept = this.accept.join(',');</span>
1815
- }
1816
- // Convert maxFileSize from MB to bytes
1817
- <span class="cstat-no" title="statement not covered" > this.maxFileSize = this.maxFileSize * 1024 * 1024;</span>
1818
- <span class="cstat-no" title="statement not covered" > await this.initialize();</span>
1819
- }
1820
- &nbsp;
1821
- override <span class="fstat-no" title="function not covered" >async </span>initialize(): Promise&lt;void&gt; {
1822
- <span class="cstat-no" title="statement not covered" > await super.initialize();</span>
1823
- <span class="cstat-no" title="statement not covered" > await this.parseValue(true);</span>
1824
- }
1825
- &nbsp;
1826
- /**
1827
- * @description Lifecycle hook that is called when a directive, pipe, or service is destroyed.
1828
- * @summary Cleans up the component by calling the parent ngOnDestroy method and clearing the file upload state.
1829
- *
1830
- * @returns {Promise&lt;void&gt;}
1831
- */
1832
- override <span class="fstat-no" title="function not covered" >async </span>ngOnDestroy(): Promise&lt;void&gt; {
1833
- <span class="cstat-no" title="statement not covered" > await super.ngOnDestroy();</span>
1834
- <span class="cstat-no" title="statement not covered" > this.handleClear();</span>
1835
- }
1836
- &nbsp;
1837
- /**
1838
- * @description Handles the click event to trigger file selection.
1839
- * @summary Simulates a click on the hidden file input element to open the file selection dialog.
1840
- * This method is used to allow users to select files programmatically.
1841
- *
1842
- * @returns {void}
1843
- */
1844
- <span class="fstat-no" title="function not covered" > handleClickToSelect(</span>): void {
1845
- const element = <span class="cstat-no" title="statement not covered" >this.component.nativeElement;</span>
1846
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (element) (<span class="cstat-no" title="statement not covered" >element.querySelector('#dcf-file-input') as HTMLButtonElement)?.click();</span></span>
1847
- }
1848
- &nbsp;
1849
- /**
1850
- * @description Handles the file selection event.
1851
- * @summary Processes the files selected by the user, validates them, and updates the file list.
1852
- * This method is triggered when the user selects files using the file input element.
1853
- *
1854
- * @param {Event} event - The file selection event.
1855
- * @returns {Promise&lt;void&gt; }
1856
- */
1857
- <span class="fstat-no" title="function not covered" > async </span>handleSelection(event: Event): Promise&lt;void&gt; {
1858
- <span class="cstat-no" title="statement not covered" > this.clearErrors();</span>
1859
- const input = <span class="cstat-no" title="statement not covered" >event.target as HTMLInputElement;</span>
1860
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (input.files) {</span>
1861
- const fileList = <span class="cstat-no" title="statement not covered" >Array.from(input.files);</span>
1862
- <span class="cstat-no" title="statement not covered" > this.handleSelectionConfirm(fileList);</span>
1863
- <span class="cstat-no" title="statement not covered" > input.value = '';</span>
1864
- }
1865
- }
1866
- &nbsp;
1867
- /**
1868
- * @description Handles the drop event for drag-and-drop file uploads.
1869
- * @summary Processes the files dropped by the user, validates them, and updates the file list.
1870
- * This method is triggered when the user drops files onto the upload area.
1871
- *
1872
- * @param {DragEvent} event - The drag-and-drop event.
1873
- * @returns {void}
1874
- */
1875
- <span class="fstat-no" title="function not covered" > handleDrop(</span>event: DragEvent): void {
1876
- <span class="cstat-no" title="statement not covered" > event.preventDefault();</span>
1877
- <span class="cstat-no" title="statement not covered" > event.stopPropagation();</span>
1878
- <span class="cstat-no" title="statement not covered" > this.dragCounter = 0;</span>
1879
- <span class="cstat-no" title="statement not covered" > this.dragging = false;</span>
1880
- <span class="cstat-no" title="statement not covered" > this.clearErrors();</span>
1881
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!event.dataTransfer) <span class="cstat-no" title="statement not covered" >return;</span></span>
1882
- const fileList = <span class="cstat-no" title="statement not covered" >Array.from(event.dataTransfer.files);</span>
1883
- <span class="cstat-no" title="statement not covered" > this.handleSelectionConfirm(fileList);</span>
1884
- }
1885
- &nbsp;
1886
- /**
1887
- * @description Handles the drag over event for drag-and-drop file uploads.
1888
- * @summary Sets the dragging flag to true to provide visual feedback during drag-and-drop operations.
1889
- * This method is triggered when the user drags files over the upload area.
1890
- *
1891
- * @param {DragEvent} event - The drag over event.
1892
- * @returns {void}
1893
- */
1894
- <span class="fstat-no" title="function not covered" > handleDragOver(</span>event: DragEvent): void {
1895
- <span class="cstat-no" title="statement not covered" > event.preventDefault();</span>
1896
- <span class="cstat-no" title="statement not covered" > event.stopPropagation();</span>
1897
- <span class="cstat-no" title="statement not covered" > this.dragging = true;</span>
1898
- }
1899
- &nbsp;
1900
- /**
1901
- * @description Handles the drag leave event for drag-and-drop file uploads.
1902
- * @summary Decrements the drag counter and clears the dragging flag when the counter reaches zero.
1903
- * This method is triggered when the user drags files out of the upload area.
1904
- *
1905
- * @param {DragEvent} event - The drag leave event.
1906
- * @returns {void}
1907
- */
1908
- <span class="fstat-no" title="function not covered" > handleDragLeave(</span>event: DragEvent): void {
1909
- <span class="cstat-no" title="statement not covered" > event.preventDefault();</span>
1910
- <span class="cstat-no" title="statement not covered" > event.stopPropagation();</span>
1911
- <span class="cstat-no" title="statement not covered" > this.dragCounter = Math.max(0, this.dragCounter - 1);</span>
1912
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.dragCounter === 0) {</span>
1913
- <span class="cstat-no" title="statement not covered" > this.dragging = false;</span>
1914
- }
1915
- }
1916
- &nbsp;
1917
- /**
1918
- * @description Clears the file list and validation errors.
1919
- * @summary Resets the file upload component by clearing the selected files, preview, and errors.
1920
- * This method is used to reset the component state.
1921
- *
1922
- * @returns {void}
1923
- */
1924
- <span class="fstat-no" title="function not covered" > handleClear(</span>): void {
1925
- <span class="cstat-no" title="statement not covered" > this.clearErrors();</span>
1926
- <span class="cstat-no" title="statement not covered" > this.previewFile = undefined;</span>
1927
- <span class="cstat-no" title="statement not covered" > this.files = [];</span>
1928
- }
1929
- &nbsp;
1930
- /**
1931
- * @description Confirms the file selection and updates the component state.
1932
- * @summary Validates each file in the selection, updates the file list, and emits
1933
- * the change event. If multiple or directory mode is enabled, adds files to the existing list.
1934
- * Otherwise, replaces the existing files with the new selection.
1935
- *
1936
- * @param {File[]} files - The array of files selected by the user.
1937
- * @returns {Promise&lt;void&gt;}
1938
- */
1939
- private <span class="fstat-no" title="function not covered" >async </span>handleSelectionConfirm(files: File[]): Promise&lt;void&gt; {
1940
- const validFiles: File[] = <span class="cstat-no" title="statement not covered" >[];</span>
1941
- <span class="cstat-no" title="statement not covered" > for (const file of files) {</span>
1942
- const isValid = <span class="cstat-no" title="statement not covered" >this.validateFile(file);</span>
1943
- <span class="cstat-no" title="statement not covered" > if (isValid === true) {</span>
1944
- <span class="cstat-no" title="statement not covered" > validFiles.push(file);</span>
1945
- } else {
1946
- <span class="cstat-no" title="statement not covered" > this.errors.push({</span>
1947
- name: file.name,
1948
- error: isValid,
1949
- size: file.size,
1950
- });
1951
- }
1952
- }
1953
- <span class="cstat-no" title="statement not covered" > if (this.multiple || this.enableDirectoryMode) {</span>
1954
- <span class="cstat-no" title="statement not covered" > this.files = this.files.concat(validFiles);</span>
1955
- } else {
1956
- <span class="cstat-no" title="statement not covered" > this.files = [validFiles[0]];</span>
1957
- }
1958
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.files.length) {</span>
1959
- <span class="cstat-no" title="statement not covered" > this.setValue(await this.parseValue());</span>
1960
- }
1961
- <span class="cstat-no" title="statement not covered" > await this.getPreview();</span>
1962
- <span class="cstat-no" title="statement not covered" > this.changeEventEmit();</span>
1963
- <span class="cstat-no" title="statement not covered" > this.changeDetectorRef.detectChanges();</span>
1964
- }
1965
- &nbsp;
1966
- <span class="fstat-no" title="function not covered" > async </span>parseValue(revert: boolean = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span>: Promise&lt;string | void&gt; {
1967
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!revert) {</span>
1968
- const files = <span class="cstat-no" title="statement not covered" >this.files as File[];</span>
1969
- <span class="cstat-no" title="statement not covered" > if (this.valueType === 'base64') {</span>
1970
- <span class="cstat-no" title="statement not covered" > return JSON.stringify(await this.getDataURLs(files));</span>
1971
- } else {
1972
- const data = <span class="cstat-no" title="statement not covered" >[];</span>
1973
- <span class="cstat-no" title="statement not covered" > for (const file of files) {</span>
1974
- const source = <span class="cstat-no" title="statement not covered" >await this.getDataURLs(file);</span>
1975
- <span class="cstat-no" title="statement not covered" > data.push({</span>
1976
- name: file.name,
1977
- size: file.size,
1978
- type: file.type,
1979
- source,
1980
- });
1981
- }
1982
- <span class="cstat-no" title="statement not covered" > return JSON.stringify(data);</span>
1983
- }
1984
- }
1985
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.value &amp;&amp; typeof this.value === Primitives.STRING) {</span>
1986
- <span class="cstat-no" title="statement not covered" > try {</span>
1987
- const value = <span class="cstat-no" title="statement not covered" >JSON.parse(this.value as string);</span>
1988
- const files = <span class="cstat-no" title="statement not covered" >Array.isArray(value) ? value : [value];</span>
1989
- <span class="cstat-no" title="statement not covered" > this.files = files.map(<span class="fstat-no" title="function not covered" >(f</span>ile) =&gt; {</span>
1990
- const mime = <span class="cstat-no" title="statement not covered" >this.getFileMime(file)?.split('/') || [];</span>
1991
- const type = <span class="cstat-no" title="statement not covered" >mime?.[0] === 'text' ? mime?.[1] : `${mime?.[0]}/${mime?.[1]}`;</span>
1992
- <span class="cstat-no" title="statement not covered" > return {</span>
1993
- name: mime?.[0] || 'file',
1994
- type: `${type}` || 'image/*',
1995
- source: file as string,
1996
- } as KeyValue;
1997
- });
1998
- <span class="cstat-no" title="statement not covered" > this.getPreview();</span>
1999
- } catch (error: unknown) {
2000
- <span class="cstat-no" title="statement not covered" > this.log.for(this.initialize).error(`Error parsing file list: ${(error as Error).message || error}`);</span>
2001
- }
2002
- }
2003
- }
2004
- &nbsp;
2005
- /**
2006
- * @description Validates a single file against the component's constraints.
2007
- * @summary Checks the file type and size against the accepted values and limits.
2008
- * Returns true if the file is valid, or an error code if it is not.
2009
- *
2010
- * @param {File} file - The file to be validated.
2011
- * @returns {true | string} - Returns true if valid, error code otherwise.
2012
- */
2013
- private <span class="fstat-no" title="function not covered" >validateFile(</span>file: File): true | string {
2014
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.accept &amp;&amp; this.accept !== '*') {</span>
2015
- const acceptedExtensions = <span class="cstat-no" title="statement not covered" >Array.isArray(this.accept)</span>
2016
- ? this.accept
2017
- : this.accept.split(',').map(<span class="fstat-no" title="function not covered" >(e</span>xt) =&gt; <span class="cstat-no" title="statement not covered" >ext.trim())</span>;
2018
- const accept = <span class="cstat-no" title="statement not covered" >acceptedExtensions.some(<span class="fstat-no" title="function not covered" >(e</span>xt) =&gt; {</span>
2019
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (ext === '*') <span class="cstat-no" title="statement not covered" >return true;</span></span>
2020
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (ext.endsWith('/*')) <span class="cstat-no" title="statement not covered" >return file.type.startsWith(ext.replace(/\/\*$/, ''));</span></span>
2021
- const fileExtension = <span class="cstat-no" title="statement not covered" >file.type.split('/').pop() || '';</span>
2022
- <span class="cstat-no" title="statement not covered" > return file.type === ext || fileExtension === ext || file.name.toLowerCase().endsWith(ext.replace('.', ''));</span>
2023
- });
2024
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!accept) <span class="cstat-no" title="statement not covered" >return FileErrors.notAllowed;</span></span>
2025
- }
2026
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.maxFileSize &amp;&amp; file.size &gt; this.maxFileSize) <span class="cstat-no" title="statement not covered" >return FileErrors.maxSize;</span></span>
2027
- <span class="cstat-no" title="statement not covered" > return true;</span>
2028
- }
2029
- &nbsp;
2030
- /**
2031
- * @description Displays a preview of the selected file in a lightbox.
2032
- * @summary If the file is an image, its data URL is retrieved and displayed in a modal lightbox.
2033
- * The lightbox shows the image at its natural size, constrained to the viewport dimensions.
2034
- *
2035
- * @param {File | string} [file] - The file to be previewed. If not provided, the current preview file is used.
2036
- * @returns {Promise&lt;void&gt;}
2037
- */
2038
- override <span class="fstat-no" title="function not covered" >async </span>preview(file: File | string, fileExtension: string = <span class="branch-0 cbranch-no" title="branch not covered" >'image/')</span>: Promise&lt;void&gt; {
2039
- <span class="cstat-no" title="statement not covered" > this.log.for(this).info(`Previewing file of type: ${fileExtension}`);</span>
2040
- let content: string | undefined;
2041
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (file instanceof File) {</span>
2042
- const dataUrl = (<span class="cstat-no" title="statement not covered" >await this.getDataURLs(file))</span> as string[];
2043
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (dataUrl) {</span>
2044
- <span class="cstat-no" title="statement not covered" > file = Array.isArray(dataUrl) ? dataUrl[0] : dataUrl;</span>
2045
- }
2046
- }
2047
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (fileExtension.includes('image')) <span class="cstat-no" title="statement not covered" >content = '&lt;img src="' + file + '" style="max-width: 100%; height: auto;" /&gt;';</span></span>
2048
- &nbsp;
2049
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (fileExtension.includes('xml')) {</span>
2050
- const parseXml = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(x</span>mlString: string): string | undefined =&gt; {</span>
2051
- <span class="cstat-no" title="statement not covered" > try {</span>
2052
- <span class="cstat-no" title="statement not covered" > xmlString = (xmlString as string).replace(/^data:[^;]+;base64,/, '').replace(/\s+/g, '');</span>
2053
- const decodedString = <span class="cstat-no" title="statement not covered" >atob(xmlString);</span>
2054
- const parser = <span class="cstat-no" title="statement not covered" >new DOMParser();</span>
2055
- const xmlDoc = <span class="cstat-no" title="statement not covered" >parser.parseFromString(decodedString, 'text/xml');</span>
2056
- &nbsp;
2057
- // const encoder = new TextEncoder(); // gera bytes UTF-8
2058
- // const utf8Bytes = encoder.encode(xmlDoc.documentElement.outerHTML);
2059
- // return new TextDecoder("utf-8").decode(utf8Bytes);
2060
- &nbsp;
2061
- <span class="cstat-no" title="statement not covered" > return xmlDoc.documentElement.outerHTML;</span>
2062
- } catch (error: unknown) {
2063
- <span class="cstat-no" title="statement not covered" > this.log.error((error as Error)?.message);</span>
2064
- <span class="cstat-no" title="statement not covered" > return undefined;</span>
2065
- }
2066
- };
2067
- &nbsp;
2068
- <span class="cstat-no" title="statement not covered" > if (this.previewHandler &amp;&amp; typeof this.previewHandler === 'function') {</span>
2069
- const clazz = <span class="cstat-no" title="statement not covered" >new (this.previewHandler as Constructor&lt;NgxEventHandler&gt;)();</span>
2070
- const previewFn = <span class="cstat-no" title="statement not covered" >clazz.handle.bind(this);</span>
2071
- <span class="cstat-no" title="statement not covered" > return previewFn({ data: file });</span>
2072
- } else {
2073
- <span class="cstat-no" title="statement not covered" > content = parseXml(file as string);</span>
2074
- }
2075
- <span class="cstat-no" title="statement not covered" > return await presentNgxInlineModal(content as string);</span>
2076
- }
2077
- &nbsp;
2078
- <span class="cstat-no" title="statement not covered" > await presentNgxLightBoxModal(content || '');</span>
2079
- }
2080
- &nbsp;
2081
- /**
2082
- * @description Checks if a file is an image based on its MIME type.
2083
- * @summary Determines if the file can be accepted as an image by checking
2084
- * if its type starts with 'image/'.
2085
- *
2086
- * @param {File} file - The file to be checked.
2087
- * @returns {boolean} - True if the file is an image, false otherwise.
2088
- */
2089
- <span class="fstat-no" title="function not covered" > isImageFile(</span>file: File): boolean {
2090
- <span class="cstat-no" title="statement not covered" > return file &amp;&amp; file.type.startsWith('image/');</span>
2091
- }
2092
- &nbsp;
2093
- <span class="fstat-no" title="function not covered" > isBase64String(</span>value: string): boolean {
2094
- const pure = <span class="cstat-no" title="statement not covered" >/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;</span>
2095
- const dataUrl = <span class="cstat-no" title="statement not covered" >/^data:([a-zA-Z0-9.+-]+\/[a-zA-Z0-9.+-]+);base64,[A-Za-z0-9+/]+={0,2}$/;</span>
2096
- <span class="cstat-no" title="statement not covered" > return pure.test(value) || dataUrl.test(value);</span>
2097
- }
2098
- &nbsp;
2099
- <span class="fstat-no" title="function not covered" > getFileMime(</span>base64: string): string {
2100
- const match = <span class="cstat-no" title="statement not covered" >base64.match(/^data:(.*?);base64,/);</span>
2101
- <span class="cstat-no" title="statement not covered" > return match ? match[1] : '';</span>
2102
- }
2103
- &nbsp;
2104
- /**
2105
- * @description Removes a file from the selection.
2106
- * @summary Updates the file list to exclude the file at the specified index.
2107
- * Emits the change event and updates the preview if necessary.
2108
- *
2109
- * @param {number} index - The index of the file to be removed.
2110
- * @returns {Promise&lt;void&gt;}
2111
- */
2112
- <span class="fstat-no" title="function not covered" > async </span>removeFile(index: number): Promise&lt;void&gt; {
2113
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (index &lt;= this.files.length) <span class="cstat-no" title="statement not covered" >this.files = [...this.files.filter(<span class="fstat-no" title="function not covered" >(_</span>, i) =&gt; <span class="cstat-no" title="statement not covered" >i !== index)</span>];</span></span>
2114
- <span class="cstat-no" title="statement not covered" > await this.getPreview();</span>
2115
- <span class="cstat-no" title="statement not covered" > this.changeEventEmit();</span>
2116
- }
2117
- &nbsp;
2118
- /**
2119
- * @description Retrieves the preview image for the selected files.
2120
- * @summary If the first selected file is an image, its data URL is retrieved and set as the preview.
2121
- * If the file is not an image, the preview is cleared.
2122
- *
2123
- * @returns {Promise&lt;void&gt;}
2124
- */
2125
- private <span class="fstat-no" title="function not covered" >async </span>getPreview(): Promise&lt;void&gt; {
2126
- <span class="cstat-no" title="statement not covered" > this.previewFile = undefined;</span>
2127
- const file = <span class="cstat-no" title="statement not covered" >this.files &amp;&amp; this.files.length ? this.files[0] : null;</span>
2128
- <span class="cstat-no" title="statement not covered" > if (file instanceof File) {</span>
2129
- const dataUrl = (<span class="cstat-no" title="statement not covered" >await this.getDataURLs(file as File))</span> as string[];
2130
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (dataUrl) {</span>
2131
- <span class="cstat-no" title="statement not covered" > this.previewFile = Array.isArray(dataUrl) ? dataUrl[0] : dataUrl;</span>
2132
- }
2133
- } else {
2134
- <span class="cstat-no" title="statement not covered" > this.previewFile = (file as KeyValue)?.['source'] as string;</span>
2135
- }
2136
- }
2137
- &nbsp;
2138
- /**
2139
- * @description Emits the change event for the file upload field.
2140
- * @summary Triggers the change event, notifying any listeners that the value has changed.
2141
- * The event contains the updated value, component name, and event type.
2142
- *
2143
- * @returns {void}
2144
- */
2145
- private <span class="fstat-no" title="function not covered" >changeEventEmit(</span>): void {
2146
- <span class="cstat-no" title="statement not covered" > this.changeEvent.emit({</span>
2147
- data: this.value,
2148
- component: this.componentName,
2149
- name: ComponentEventNames.Change,
2150
- });
2151
- }
2152
- &nbsp;
2153
- /**
2154
- * @description Retrieves the data URLs for the selected files.
2155
- * @summary Converts the selected image files to data URLs using FileReader.
2156
- * The resulting data URLs can be used for previewing images in the browser.
2157
- *
2158
- * @param {File[] | File} [files] - The files for which to generate data URLs.
2159
- * If not provided, the currently selected files are used.
2160
- *
2161
- * @returns {Promise&lt;string[] | undefined&gt;} - A promise that resolves to an array of data URLs, or undefined if an error occurs.
2162
- */
2163
- <span class="fstat-no" title="function not covered" > async </span>getDataURLs(files?: File[] | File): Promise&lt;string | string[] | undefined&gt; {
2164
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!files) {</span>
2165
- <span class="cstat-no" title="statement not covered" > files = this.files as File[];</span>
2166
- }
2167
- <span class="cstat-no" title="statement not covered" > files = !Array.isArray(files) ? [files] : files;</span>
2168
- <span class="cstat-no" title="statement not covered" > return this.readFile(files)</span>
2169
- .then(<span class="fstat-no" title="function not covered" >(u</span>rls) =&gt; {
2170
- // validate generated DataURLs
2171
- const invalid = <span class="cstat-no" title="statement not covered" >urls.some(<span class="fstat-no" title="function not covered" >(u</span>) =&gt; <span class="cstat-no" title="statement not covered" >!this.isValidDataURL(u))</span>;</span>
2172
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (invalid) <span class="cstat-no" title="statement not covered" >return undefined;</span></span>
2173
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.multiple || this.enableDirectoryMode) {</span>
2174
- <span class="cstat-no" title="statement not covered" > return urls.length === 1 ? urls[0] : urls;</span>
2175
- }
2176
- <span class="cstat-no" title="statement not covered" > return urls.length ? [urls[0]] : undefined;</span>
2177
- })
2178
- .catch(<span class="fstat-no" title="function not covered" >() =</span>&gt; {
2179
- <span class="cstat-no" title="statement not covered" > return undefined;</span>
2180
- });
2181
- }
2182
- &nbsp;
2183
- /**
2184
- * @description Validates the format of a data URL.
2185
- * @summary Checks if the data URL is a non-empty string and matches the expected pattern
2186
- * for base64-encoded image data URLs. Uses a regular expression to validate the format.
2187
- *
2188
- * @param {string | undefined} dataURL - The data URL to be validated.
2189
- * @returns {boolean} - True if the data URL is valid, false otherwise.
2190
- */
2191
- private <span class="fstat-no" title="function not covered" >isValidDataURL(</span>dataURL: string | undefined): boolean {
2192
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!dataURL || typeof dataURL !== 'string') {</span>
2193
- <span class="cstat-no" title="statement not covered" > return false;</span>
2194
- }
2195
- &nbsp;
2196
- // Regex para qualquer MIME type seguido de ;base64
2197
- const match = <span class="cstat-no" title="statement not covered" >dataURL.match(/^data:([a-zA-Z0-9.+-\\/]+);base64,([A-Za-z0-9+/=\s]+)$/);</span>
2198
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!match) <span class="cstat-no" title="statement not covered" >return false;</span></span>
2199
- &nbsp;
2200
- const payload = <span class="cstat-no" title="statement not covered" >match[2];</span>
2201
- <span class="cstat-no" title="statement not covered" > try {</span>
2202
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof atob === 'function') {</span>
2203
- // remove espaços e tenta decodificar
2204
- <span class="cstat-no" title="statement not covered" > atob(payload.replace(/\s+/g, ''));</span>
2205
- }
2206
- <span class="cstat-no" title="statement not covered" > return true;</span>
2207
- } catch {
2208
- <span class="cstat-no" title="statement not covered" > return false;</span>
2209
- }
2210
- }
2211
- &nbsp;
2212
- /**
2213
- * @description Clears all error messages from the component.
2214
- * @summary Resets the error state, removing all error messages from the display.
2215
- *
2216
- * @returns {void}
2217
- */
2218
- private <span class="fstat-no" title="function not covered" >clearErrors(</span>): void {
2219
- <span class="cstat-no" title="statement not covered" > this.errors = [];</span>
2220
- }
2221
- &nbsp;
2222
- /**
2223
- * @description Reads the selected files as data URLs.
2224
- * @summary Uses the FileReader API to read each file as a data URL.
2225
- * Returns a promise that resolves to an array of data URLs.
2226
- *
2227
- * @param {File[]} files - The files to be read.
2228
- * @returns {Promise&lt;string[]&gt;} - A promise that resolves to an array of data URLs.
2229
- */
2230
- private <span class="fstat-no" title="function not covered" >readFile(</span>files: File[]): Promise&lt;string[]&gt; {
2231
- <span class="cstat-no" title="statement not covered" > return Promise.all(</span>
2232
- files.map(
2233
- <span class="fstat-no" title="function not covered" > (f</span>ile) =&gt;
2234
- <span class="cstat-no" title="statement not covered" > new Promise&lt;string&gt;(<span class="fstat-no" title="function not covered" >(r</span>esolve, reject) =&gt; {</span>
2235
- const reader = <span class="cstat-no" title="statement not covered" >new FileReader();</span>
2236
- <span class="cstat-no" title="statement not covered" > reader.onerror = <span class="fstat-no" title="function not covered" >() =</span>&gt; <span class="cstat-no" title="statement not covered" >reject(reader.error);</span></span>
2237
- <span class="cstat-no" title="statement not covered" > reader.onload = <span class="fstat-no" title="function not covered" >() =</span>&gt; <span class="cstat-no" title="statement not covered" >resolve(String(reader.result || ''));</span></span>
2238
- <span class="cstat-no" title="statement not covered" > reader.readAsDataURL(file);</span>
2239
- })
2240
- )
2241
- );
2242
- }
2243
- }
2244
- &nbsp;</pre></td></tr></table></pre>
2245
-
2246
- <div class='push'></div><!-- for sticky footer -->
2247
- </div><!-- /wrapper -->
2248
- <div class='footer quiet pad2 space-top1 center small'>
2249
- Code coverage generated by
2250
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2251
- at 2026-02-25T10:45:48.506Z
2252
- </div>
2253
- <script src="../../../../prettify.js"></script>
2254
- <script>
2255
- window.onload = function () {
2256
- prettyPrint();
2257
- };
2258
- </script>
2259
- <script src="../../../../sorter.js"></script>
2260
- <script src="../../../../block-navigation.js"></script>
2261
- </body>
2262
- </html>
2263
-