tnp-helpers 18.0.17 → 18.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/esm2022/lib/base/classes/base-cli-worker-config.mjs +40 -0
  3. package/browser/esm2022/lib/base/classes/base-cli-worker-controller.mjs +125 -0
  4. package/browser/esm2022/lib/base/classes/base-cli-worker.mjs +466 -0
  5. package/browser/esm2022/lib/base/classes/base-compiler-for-project.mjs +61 -0
  6. package/browser/esm2022/lib/base/classes/base-db.mjs +31 -0
  7. package/browser/esm2022/lib/base/classes/base-debounce-compiler-for-project.mjs +56 -0
  8. package/browser/esm2022/lib/base/classes/base-feature-for-project.mjs +8 -0
  9. package/{websql/esm2022/lib/base → browser/esm2022/lib/base/classes}/base-git.mjs +2 -2
  10. package/{websql/esm2022/lib/base → browser/esm2022/lib/base/classes}/base-github-pages.mjs +2 -2
  11. package/{websql/esm2022/lib/base → browser/esm2022/lib/base/classes}/base-library-build.mjs +3 -3
  12. package/browser/esm2022/lib/base/classes/base-linked-projects.mjs +320 -0
  13. package/browser/esm2022/lib/base/classes/base-npm-helpers.mjs +630 -0
  14. package/browser/esm2022/lib/base/classes/base-project-resolver.mjs +291 -0
  15. package/browser/esm2022/lib/base/classes/base-project.mjs +926 -0
  16. package/browser/esm2022/lib/base/classes/base-quick-fixes.mjs +24 -0
  17. package/{websql/esm2022/lib/base → browser/esm2022/lib/base/classes}/base-release-process.mjs +4 -4
  18. package/browser/esm2022/lib/base/classes/base-vscode.mjs +488 -0
  19. package/browser/esm2022/lib/base/classes/index.mjs +22 -0
  20. package/browser/esm2022/lib/base/commit-data.mjs +1 -1
  21. package/browser/esm2022/lib/base/config-database.mjs +5 -2
  22. package/browser/esm2022/lib/base/core-project.mjs +1 -1
  23. package/browser/esm2022/lib/base/index.mjs +3 -19
  24. package/browser/esm2022/lib/base/project-database.mjs +2 -2
  25. package/browser/esm2022/lib/base/tcp-udp-ports/index.mjs +7 -0
  26. package/browser/esm2022/lib/base/tcp-udp-ports/not-assignable-port.entity.mjs +19 -0
  27. package/browser/esm2022/lib/base/tcp-udp-ports/ports.controller.mjs +108 -0
  28. package/browser/esm2022/lib/base/tcp-udp-ports/ports.entity.mjs +26 -0
  29. package/browser/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +35 -0
  30. package/browser/esm2022/lib/base/tcp-udp-ports/tcp-upd-ports.worker.mjs +122 -0
  31. package/browser/esm2022/lib/utils.mjs +33 -144
  32. package/browser/esm2022/migrations/1736198527297_init.mjs +41 -0
  33. package/browser/esm2022/migrations/1736199486472_addingNotAssignablePorts.mjs +55 -0
  34. package/browser/esm2022/migrations/1736454437350_addFreePorts.mjs +37 -0
  35. package/browser/esm2022/migrations/index.mjs +5 -0
  36. package/browser/esm2022/migrations/migrations_index._auto-generated_.mjs +16 -0
  37. package/browser/fesm2022/tnp-helpers.mjs +2135 -1598
  38. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  39. package/{client/lib/base → browser/lib/base/classes}/base-cli-worker-controller.d.ts +2 -2
  40. package/browser/lib/base/{base-cli-worker.d.ts → classes/base-cli-worker.d.ts} +7 -1
  41. package/browser/lib/base/{base-git.d.ts → classes/base-git.d.ts} +1 -1
  42. package/{client/lib/base → browser/lib/base/classes}/base-library-build.d.ts +1 -1
  43. package/{websql/lib/base → browser/lib/base/classes}/base-linked-projects.d.ts +1 -1
  44. package/{client/lib/base → browser/lib/base/classes}/base-project-resolver.d.ts +4 -4
  45. package/browser/lib/base/{base-project.d.ts → classes/base-project.d.ts} +7 -4
  46. package/browser/lib/base/{base-release-process.d.ts → classes/base-release-process.d.ts} +1 -1
  47. package/browser/lib/base/classes/base-vscode.d.ts +24 -0
  48. package/browser/lib/base/classes/index.d.ts +16 -0
  49. package/browser/lib/base/config-database.d.ts +2 -2
  50. package/browser/lib/base/core-project.d.ts +1 -1
  51. package/browser/lib/base/index.d.ts +3 -16
  52. package/browser/lib/base/project-database.d.ts +2 -2
  53. package/browser/lib/base/tcp-udp-ports/index.d.ts +5 -0
  54. package/browser/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +7 -0
  55. package/browser/lib/base/tcp-udp-ports/ports.controller.d.ts +20 -0
  56. package/browser/lib/base/tcp-udp-ports/ports.entity.d.ts +15 -0
  57. package/browser/lib/base/tcp-udp-ports/tcp-udp-ports.context.d.ts +59 -0
  58. package/browser/lib/base/tcp-udp-ports/tcp-upd-ports.worker.d.ts +23 -0
  59. package/browser/lib/utils.d.ts +2 -38
  60. package/browser/migrations/1736198527297_init.d.ts +19 -0
  61. package/browser/migrations/1736199486472_addingNotAssignablePorts.d.ts +11 -0
  62. package/browser/migrations/1736454437350_addFreePorts.d.ts +10 -0
  63. package/browser/migrations/index.d.ts +2 -0
  64. package/browser/migrations/migrations_index._auto-generated_.d.ts +12 -0
  65. package/client/esm2022/lib/base/classes/base-cli-worker-config.mjs +40 -0
  66. package/client/esm2022/lib/base/classes/base-cli-worker-controller.mjs +125 -0
  67. package/client/esm2022/lib/base/classes/base-cli-worker.mjs +466 -0
  68. package/client/esm2022/lib/base/classes/base-compiler-for-project.mjs +61 -0
  69. package/client/esm2022/lib/base/classes/base-db.mjs +31 -0
  70. package/client/esm2022/lib/base/classes/base-debounce-compiler-for-project.mjs +56 -0
  71. package/client/esm2022/lib/base/classes/base-feature-for-project.mjs +8 -0
  72. package/client/esm2022/lib/base/classes/base-git.mjs +932 -0
  73. package/client/esm2022/lib/base/classes/base-github-pages.mjs +110 -0
  74. package/{browser/esm2022/lib/base → client/esm2022/lib/base/classes}/base-library-build.mjs +2 -2
  75. package/client/esm2022/lib/base/classes/base-linked-projects.mjs +320 -0
  76. package/client/esm2022/lib/base/classes/base-npm-helpers.mjs +630 -0
  77. package/client/esm2022/lib/base/classes/base-project-resolver.mjs +291 -0
  78. package/client/esm2022/lib/base/classes/base-project.mjs +926 -0
  79. package/client/esm2022/lib/base/classes/base-quick-fixes.mjs +24 -0
  80. package/{browser/esm2022/lib/base → client/esm2022/lib/base/classes}/base-release-process.mjs +3 -3
  81. package/client/esm2022/lib/base/classes/base-vscode.mjs +488 -0
  82. package/client/esm2022/lib/base/classes/index.mjs +22 -0
  83. package/client/esm2022/lib/base/commit-data.mjs +1 -1
  84. package/client/esm2022/lib/base/config-database.mjs +5 -2
  85. package/client/esm2022/lib/base/core-project.mjs +1 -1
  86. package/client/esm2022/lib/base/index.mjs +3 -19
  87. package/client/esm2022/lib/base/project-database.mjs +2 -2
  88. package/client/esm2022/lib/base/tcp-udp-ports/index.mjs +7 -0
  89. package/client/esm2022/lib/base/tcp-udp-ports/not-assignable-port.entity.mjs +19 -0
  90. package/client/esm2022/lib/base/tcp-udp-ports/ports.controller.mjs +108 -0
  91. package/client/esm2022/lib/base/tcp-udp-ports/ports.entity.mjs +26 -0
  92. package/client/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +35 -0
  93. package/client/esm2022/lib/base/tcp-udp-ports/tcp-upd-ports.worker.mjs +122 -0
  94. package/client/esm2022/lib/utils.mjs +33 -144
  95. package/client/esm2022/migrations/1736198527297_init.mjs +41 -0
  96. package/client/esm2022/migrations/1736199486472_addingNotAssignablePorts.mjs +55 -0
  97. package/client/esm2022/migrations/1736454437350_addFreePorts.mjs +37 -0
  98. package/client/esm2022/migrations/index.mjs +5 -0
  99. package/client/esm2022/migrations/migrations_index._auto-generated_.mjs +16 -0
  100. package/client/fesm2022/tnp-helpers.mjs +2135 -1598
  101. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  102. package/{browser/lib/base → client/lib/base/classes}/base-cli-worker-controller.d.ts +2 -2
  103. package/client/lib/base/{base-cli-worker.d.ts → classes/base-cli-worker.d.ts} +7 -1
  104. package/{websql/lib/base → client/lib/base/classes}/base-git.d.ts +1 -1
  105. package/{browser/lib/base → client/lib/base/classes}/base-library-build.d.ts +1 -1
  106. package/{browser/lib/base → client/lib/base/classes}/base-linked-projects.d.ts +1 -1
  107. package/{websql/lib/base → client/lib/base/classes}/base-project-resolver.d.ts +4 -4
  108. package/client/lib/base/{base-project.d.ts → classes/base-project.d.ts} +7 -4
  109. package/client/lib/base/{base-release-process.d.ts → classes/base-release-process.d.ts} +1 -1
  110. package/client/lib/base/classes/base-vscode.d.ts +24 -0
  111. package/client/lib/base/classes/index.d.ts +16 -0
  112. package/client/lib/base/config-database.d.ts +2 -2
  113. package/client/lib/base/core-project.d.ts +1 -1
  114. package/client/lib/base/index.d.ts +3 -16
  115. package/client/lib/base/project-database.d.ts +2 -2
  116. package/client/lib/base/tcp-udp-ports/index.d.ts +5 -0
  117. package/client/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +7 -0
  118. package/client/lib/base/tcp-udp-ports/ports.controller.d.ts +20 -0
  119. package/client/lib/base/tcp-udp-ports/ports.entity.d.ts +15 -0
  120. package/client/lib/base/tcp-udp-ports/tcp-udp-ports.context.d.ts +59 -0
  121. package/client/lib/base/tcp-udp-ports/tcp-upd-ports.worker.d.ts +23 -0
  122. package/client/lib/utils.d.ts +2 -38
  123. package/client/migrations/1736198527297_init.d.ts +19 -0
  124. package/client/migrations/1736199486472_addingNotAssignablePorts.d.ts +11 -0
  125. package/client/migrations/1736454437350_addFreePorts.d.ts +10 -0
  126. package/client/migrations/index.d.ts +2 -0
  127. package/client/migrations/migrations_index._auto-generated_.d.ts +12 -0
  128. package/lib/base/{base-cli-worker-controller.d.ts → classes/base-cli-worker-controller.d.ts} +4 -4
  129. package/lib/base/{base-cli-worker-controller.js → classes/base-cli-worker-controller.js} +3 -3
  130. package/lib/base/classes/base-cli-worker-controller.js.map +1 -0
  131. package/lib/base/{base-cli-worker.d.ts → classes/base-cli-worker.d.ts} +7 -1
  132. package/lib/base/{base-cli-worker.js → classes/base-cli-worker.js} +48 -29
  133. package/lib/base/classes/base-cli-worker.js.map +1 -0
  134. package/lib/base/{command-line-feature.backend.d.ts → classes/base-command-line-feature.backend.d.ts} +1 -1
  135. package/lib/base/{command-line-feature.backend.js → classes/base-command-line-feature.backend.js} +15 -15
  136. package/lib/base/classes/base-command-line-feature.backend.js.map +1 -0
  137. package/lib/base/{base-compiler-for-project.d.ts → classes/base-compiler-for-project.d.ts} +2 -2
  138. package/lib/base/{base-compiler-for-project.js → classes/base-compiler-for-project.js} +1 -1
  139. package/lib/base/{base-compiler-for-project.js.map → classes/base-compiler-for-project.js.map} +1 -1
  140. package/lib/base/{base-db.d.ts → classes/base-db.d.ts} +1 -1
  141. package/lib/base/{base-db.js → classes/base-db.js} +1 -1
  142. package/lib/base/{base-db.js.map → classes/base-db.js.map} +1 -1
  143. package/lib/base/{base-debounce-compiler-for-project.d.ts → classes/base-debounce-compiler-for-project.d.ts} +2 -2
  144. package/lib/base/{base-debounce-compiler-for-project.js.map → classes/base-debounce-compiler-for-project.js.map} +1 -1
  145. package/lib/base/{base-git.d.ts → classes/base-git.d.ts} +1 -1
  146. package/lib/base/{base-git.js → classes/base-git.js} +3 -3
  147. package/lib/base/{base-git.js.map → classes/base-git.js.map} +1 -1
  148. package/lib/base/{base-github-pages.js → classes/base-github-pages.js} +1 -1
  149. package/lib/base/{base-github-pages.js.map → classes/base-github-pages.js.map} +1 -1
  150. package/lib/base/{base-command-line.backend.d.ts → classes/base-global-command-line.backend.d.ts} +17 -4
  151. package/lib/base/{base-command-line.backend.js → classes/base-global-command-line.backend.js} +236 -161
  152. package/lib/base/classes/base-global-command-line.backend.js.map +1 -0
  153. package/lib/base/{base-ignore-hide.js → classes/base-ignore-hide.js} +1 -1
  154. package/lib/base/{base-ignore-hide.js.map → classes/base-ignore-hide.js.map} +1 -1
  155. package/lib/base/{base-library-build.d.ts → classes/base-library-build.d.ts} +3 -3
  156. package/lib/base/{base-library-build.js → classes/base-library-build.js} +2 -2
  157. package/lib/base/{base-library-build.js.map → classes/base-library-build.js.map} +1 -1
  158. package/lib/base/{base-linked-projects.d.ts → classes/base-linked-projects.d.ts} +1 -1
  159. package/lib/base/{base-linked-projects.js → classes/base-linked-projects.js} +1 -1
  160. package/lib/base/{base-linked-projects.js.map → classes/base-linked-projects.js.map} +1 -1
  161. package/lib/base/{base-npm-helpers.d.ts → classes/base-npm-helpers.d.ts} +3 -3
  162. package/lib/base/{base-npm-helpers.js → classes/base-npm-helpers.js} +1 -1
  163. package/lib/base/{base-npm-helpers.js.map → classes/base-npm-helpers.js.map} +1 -1
  164. package/lib/base/{base-project-resolver.d.ts → classes/base-project-resolver.d.ts} +4 -4
  165. package/lib/base/{base-project-resolver.js → classes/base-project-resolver.js} +6 -6
  166. package/lib/base/{base-project-resolver.js.map → classes/base-project-resolver.js.map} +1 -1
  167. package/lib/base/{base-project.d.ts → classes/base-project.d.ts} +10 -7
  168. package/lib/base/{base-project.js → classes/base-project.js} +20 -5
  169. package/lib/base/{base-project.js.map → classes/base-project.js.map} +1 -1
  170. package/lib/base/{base-quick-fixes.js → classes/base-quick-fixes.js} +1 -1
  171. package/lib/base/{base-quick-fixes.js.map → classes/base-quick-fixes.js.map} +1 -1
  172. package/lib/base/{base-release-process.d.ts → classes/base-release-process.d.ts} +3 -3
  173. package/lib/base/{base-release-process.js → classes/base-release-process.js} +2 -2
  174. package/lib/base/{base-release-process.js.map → classes/base-release-process.js.map} +1 -1
  175. package/lib/base/{base-start-config.backend.js → classes/base-start-config.backend.js} +2 -2
  176. package/lib/base/{base-start-config.backend.js.map → classes/base-start-config.backend.js.map} +1 -1
  177. package/lib/base/classes/base-vscode.d.ts +23 -0
  178. package/lib/base/classes/base-vscode.js +451 -0
  179. package/lib/base/classes/base-vscode.js.map +1 -0
  180. package/lib/base/classes/index.d.ts +18 -0
  181. package/lib/base/classes/index.js +24 -0
  182. package/lib/base/classes/index.js.map +1 -0
  183. package/lib/base/commit-data.js.map +1 -1
  184. package/lib/base/config-database.d.ts +2 -2
  185. package/lib/base/config-database.js +5 -8
  186. package/lib/base/config-database.js.map +1 -1
  187. package/lib/base/core-project.d.ts +3 -3
  188. package/lib/base/gh-temp-code.d.ts +1 -1
  189. package/lib/base/index.d.ts +2 -18
  190. package/lib/base/index.js +2 -18
  191. package/lib/base/index.js.map +1 -1
  192. package/lib/base/project-database.d.ts +2 -2
  193. package/lib/base/project-database.js +1 -1
  194. package/lib/base/project-database.js.map +1 -1
  195. package/lib/base/tcp-udp-ports/index.d.ts +4 -0
  196. package/lib/base/tcp-udp-ports/index.js +8 -0
  197. package/lib/base/tcp-udp-ports/index.js.map +1 -0
  198. package/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +6 -0
  199. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js +45 -0
  200. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js.map +1 -0
  201. package/lib/base/tcp-udp-ports/ports.controller.d.ts +19 -0
  202. package/lib/base/tcp-udp-ports/ports.controller.js +135 -0
  203. package/lib/base/tcp-udp-ports/ports.controller.js.map +1 -0
  204. package/lib/base/tcp-udp-ports/ports.entity.d.ts +14 -0
  205. package/lib/base/tcp-udp-ports/ports.entity.js +45 -0
  206. package/lib/base/tcp-udp-ports/ports.entity.js.map +1 -0
  207. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.d.ts +58 -0
  208. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.js +41 -0
  209. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.js.map +1 -0
  210. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.d.ts +31 -0
  211. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.js +215 -0
  212. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.js.map +1 -0
  213. package/lib/helpers/for-backend/helpers-cli-tool.backend.d.ts +1 -1
  214. package/lib/helpers/for-backend/helpers-cli-tool.backend.js.map +1 -1
  215. package/lib/helpers/for-backend/helpers-console-gui.js +2 -1
  216. package/lib/helpers/for-backend/helpers-console-gui.js.map +1 -1
  217. package/lib/helpers/for-backend/helpers-file-folders.backend.d.ts +2 -2
  218. package/lib/helpers/for-backend/helpers-git.backend.js +2 -2
  219. package/lib/helpers/for-backend/helpers-git.backend.js.map +1 -1
  220. package/lib/helpers/for-backend/helpers-process.backend.d.ts +3 -3
  221. package/lib/helpers/for-backend/helpers-process.backend.js +4 -26
  222. package/lib/helpers/for-backend/helpers-process.backend.js.map +1 -1
  223. package/lib/helpers/for-backend/helpers-vscode.backend.d.ts +2 -2
  224. package/lib/helpers/for-browser/angular.helper.js +2 -2
  225. package/lib/helpers/helpers.d.ts +1 -1
  226. package/lib/models.d.ts +2 -2
  227. package/lib/old/base-component.js +2 -2
  228. package/lib/old/base-formly-component.js +2 -2
  229. package/lib/old/dual-component-ctrl.js +2 -2
  230. package/lib/utils.d.ts +2 -38
  231. package/lib/utils.js +51 -158
  232. package/lib/utils.js.map +1 -1
  233. package/migrations/1736198527297_init.d.ts +18 -0
  234. package/migrations/1736198527297_init.js +72 -0
  235. package/migrations/1736198527297_init.js.map +1 -0
  236. package/migrations/1736199486472_addingNotAssignablePorts.d.ts +10 -0
  237. package/migrations/1736199486472_addingNotAssignablePorts.js +94 -0
  238. package/migrations/1736199486472_addingNotAssignablePorts.js.map +1 -0
  239. package/migrations/1736454437350_addFreePorts.d.ts +9 -0
  240. package/migrations/1736454437350_addFreePorts.js +78 -0
  241. package/migrations/1736454437350_addFreePorts.js.map +1 -0
  242. package/migrations/migrations_index._auto-generated_.d.ts +11 -0
  243. package/migrations/migrations_index._auto-generated_.js +14 -0
  244. package/migrations/migrations_index._auto-generated_.js.map +1 -1
  245. package/package.json +5 -5
  246. package/tmp-environment.json +30 -29
  247. package/websql/esm2022/lib/base/classes/base-cli-worker-config.mjs +40 -0
  248. package/websql/esm2022/lib/base/classes/base-cli-worker-controller.mjs +125 -0
  249. package/websql/esm2022/lib/base/classes/base-cli-worker.mjs +466 -0
  250. package/websql/esm2022/lib/base/classes/base-compiler-for-project.mjs +61 -0
  251. package/websql/esm2022/lib/base/classes/base-db.mjs +31 -0
  252. package/websql/esm2022/lib/base/classes/base-debounce-compiler-for-project.mjs +56 -0
  253. package/websql/esm2022/lib/base/classes/base-feature-for-project.mjs +8 -0
  254. package/{browser/esm2022/lib/base → websql/esm2022/lib/base/classes}/base-git.mjs +2 -2
  255. package/{client/esm2022/lib/base → websql/esm2022/lib/base/classes}/base-github-pages.mjs +2 -2
  256. package/{client/esm2022/lib/base → websql/esm2022/lib/base/classes}/base-library-build.mjs +3 -3
  257. package/websql/esm2022/lib/base/classes/base-linked-projects.mjs +320 -0
  258. package/websql/esm2022/lib/base/classes/base-npm-helpers.mjs +630 -0
  259. package/websql/esm2022/lib/base/classes/base-project-resolver.mjs +280 -0
  260. package/websql/esm2022/lib/base/classes/base-project.mjs +896 -0
  261. package/websql/esm2022/lib/base/classes/base-quick-fixes.mjs +24 -0
  262. package/{client/esm2022/lib/base → websql/esm2022/lib/base/classes}/base-release-process.mjs +4 -4
  263. package/websql/esm2022/lib/base/classes/base-vscode.mjs +488 -0
  264. package/websql/esm2022/lib/base/classes/index.mjs +22 -0
  265. package/websql/esm2022/lib/base/commit-data.mjs +1 -1
  266. package/websql/esm2022/lib/base/config-database.mjs +5 -2
  267. package/websql/esm2022/lib/base/core-project.mjs +1 -1
  268. package/websql/esm2022/lib/base/index.mjs +3 -19
  269. package/websql/esm2022/lib/base/project-database.mjs +2 -2
  270. package/websql/esm2022/lib/base/tcp-udp-ports/index.mjs +7 -0
  271. package/websql/esm2022/lib/base/tcp-udp-ports/not-assignable-port.entity.mjs +34 -0
  272. package/websql/esm2022/lib/base/tcp-udp-ports/ports.controller.mjs +108 -0
  273. package/websql/esm2022/lib/base/tcp-udp-ports/ports.entity.mjs +34 -0
  274. package/websql/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +35 -0
  275. package/websql/esm2022/lib/base/tcp-udp-ports/tcp-upd-ports.worker.mjs +122 -0
  276. package/websql/esm2022/lib/utils.mjs +33 -144
  277. package/websql/esm2022/migrations/1736198527297_init.mjs +41 -0
  278. package/websql/esm2022/migrations/1736199486472_addingNotAssignablePorts.mjs +55 -0
  279. package/websql/esm2022/migrations/1736454437350_addFreePorts.mjs +37 -0
  280. package/websql/esm2022/migrations/index.mjs +5 -0
  281. package/websql/esm2022/migrations/migrations_index._auto-generated_.mjs +16 -0
  282. package/websql/fesm2022/tnp-helpers.mjs +1936 -1379
  283. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  284. package/websql/lib/base/{base-cli-worker-controller.d.ts → classes/base-cli-worker-controller.d.ts} +2 -2
  285. package/websql/lib/base/{base-cli-worker.d.ts → classes/base-cli-worker.d.ts} +7 -1
  286. package/{client/lib/base → websql/lib/base/classes}/base-git.d.ts +1 -1
  287. package/websql/lib/base/{base-library-build.d.ts → classes/base-library-build.d.ts} +1 -1
  288. package/{client/lib/base → websql/lib/base/classes}/base-linked-projects.d.ts +1 -1
  289. package/{browser/lib/base → websql/lib/base/classes}/base-project-resolver.d.ts +4 -4
  290. package/websql/lib/base/{base-project.d.ts → classes/base-project.d.ts} +7 -4
  291. package/websql/lib/base/{base-release-process.d.ts → classes/base-release-process.d.ts} +1 -1
  292. package/websql/lib/base/classes/base-vscode.d.ts +24 -0
  293. package/websql/lib/base/classes/index.d.ts +16 -0
  294. package/websql/lib/base/config-database.d.ts +2 -2
  295. package/websql/lib/base/core-project.d.ts +1 -1
  296. package/websql/lib/base/index.d.ts +3 -16
  297. package/websql/lib/base/project-database.d.ts +2 -2
  298. package/websql/lib/base/tcp-udp-ports/index.d.ts +5 -0
  299. package/websql/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +7 -0
  300. package/websql/lib/base/tcp-udp-ports/ports.controller.d.ts +20 -0
  301. package/websql/lib/base/tcp-udp-ports/ports.entity.d.ts +15 -0
  302. package/websql/lib/base/tcp-udp-ports/tcp-udp-ports.context.d.ts +59 -0
  303. package/websql/lib/base/tcp-udp-ports/tcp-upd-ports.worker.d.ts +23 -0
  304. package/websql/lib/utils.d.ts +2 -38
  305. package/websql/migrations/1736198527297_init.d.ts +19 -0
  306. package/websql/migrations/1736199486472_addingNotAssignablePorts.d.ts +11 -0
  307. package/websql/migrations/1736454437350_addFreePorts.d.ts +10 -0
  308. package/websql/migrations/index.d.ts +2 -0
  309. package/websql/migrations/migrations_index._auto-generated_.d.ts +12 -0
  310. package/browser/esm2022/lib/base/base-cli-worker-config.mjs +0 -40
  311. package/browser/esm2022/lib/base/base-cli-worker-controller.mjs +0 -125
  312. package/browser/esm2022/lib/base/base-cli-worker.mjs +0 -451
  313. package/browser/esm2022/lib/base/base-compiler-for-project.mjs +0 -61
  314. package/browser/esm2022/lib/base/base-db.mjs +0 -31
  315. package/browser/esm2022/lib/base/base-debounce-compiler-for-project.mjs +0 -56
  316. package/browser/esm2022/lib/base/base-feature-for-project.mjs +0 -8
  317. package/browser/esm2022/lib/base/base-github-pages.mjs +0 -110
  318. package/browser/esm2022/lib/base/base-linked-projects.mjs +0 -321
  319. package/browser/esm2022/lib/base/base-npm-helpers.mjs +0 -630
  320. package/browser/esm2022/lib/base/base-project-resolver.mjs +0 -291
  321. package/browser/esm2022/lib/base/base-project.mjs +0 -919
  322. package/browser/esm2022/lib/base/base-quick-fixes.mjs +0 -24
  323. package/browser/esm2022/lib/base/base-vscode.mjs +0 -145
  324. package/browser/esm2022/lib/base/ports-worker.mjs +0 -162
  325. package/browser/lib/base/base-vscode.d.ts +0 -13
  326. package/browser/lib/base/ports-worker.d.ts +0 -33
  327. package/client/esm2022/lib/base/base-cli-worker-config.mjs +0 -40
  328. package/client/esm2022/lib/base/base-cli-worker-controller.mjs +0 -125
  329. package/client/esm2022/lib/base/base-cli-worker.mjs +0 -451
  330. package/client/esm2022/lib/base/base-compiler-for-project.mjs +0 -61
  331. package/client/esm2022/lib/base/base-db.mjs +0 -31
  332. package/client/esm2022/lib/base/base-debounce-compiler-for-project.mjs +0 -56
  333. package/client/esm2022/lib/base/base-feature-for-project.mjs +0 -8
  334. package/client/esm2022/lib/base/base-git.mjs +0 -932
  335. package/client/esm2022/lib/base/base-linked-projects.mjs +0 -321
  336. package/client/esm2022/lib/base/base-npm-helpers.mjs +0 -630
  337. package/client/esm2022/lib/base/base-project-resolver.mjs +0 -291
  338. package/client/esm2022/lib/base/base-project.mjs +0 -919
  339. package/client/esm2022/lib/base/base-quick-fixes.mjs +0 -24
  340. package/client/esm2022/lib/base/base-vscode.mjs +0 -145
  341. package/client/esm2022/lib/base/ports-worker.mjs +0 -162
  342. package/client/lib/base/base-vscode.d.ts +0 -13
  343. package/client/lib/base/ports-worker.d.ts +0 -33
  344. package/lib/base/base-cli-worker-controller.js.map +0 -1
  345. package/lib/base/base-cli-worker.js.map +0 -1
  346. package/lib/base/base-command-line.backend.js.map +0 -1
  347. package/lib/base/base-vscode.d.ts +0 -12
  348. package/lib/base/base-vscode.js +0 -139
  349. package/lib/base/base-vscode.js.map +0 -1
  350. package/lib/base/command-line-feature.backend.js.map +0 -1
  351. package/lib/base/ports-worker.d.ts +0 -32
  352. package/lib/base/ports-worker.js +0 -244
  353. package/lib/base/ports-worker.js.map +0 -1
  354. package/websql/esm2022/lib/base/base-cli-worker-config.mjs +0 -40
  355. package/websql/esm2022/lib/base/base-cli-worker-controller.mjs +0 -125
  356. package/websql/esm2022/lib/base/base-cli-worker.mjs +0 -451
  357. package/websql/esm2022/lib/base/base-compiler-for-project.mjs +0 -61
  358. package/websql/esm2022/lib/base/base-db.mjs +0 -31
  359. package/websql/esm2022/lib/base/base-debounce-compiler-for-project.mjs +0 -56
  360. package/websql/esm2022/lib/base/base-feature-for-project.mjs +0 -8
  361. package/websql/esm2022/lib/base/base-linked-projects.mjs +0 -321
  362. package/websql/esm2022/lib/base/base-npm-helpers.mjs +0 -630
  363. package/websql/esm2022/lib/base/base-project-resolver.mjs +0 -280
  364. package/websql/esm2022/lib/base/base-project.mjs +0 -889
  365. package/websql/esm2022/lib/base/base-quick-fixes.mjs +0 -24
  366. package/websql/esm2022/lib/base/base-vscode.mjs +0 -145
  367. package/websql/esm2022/lib/base/ports-worker.mjs +0 -165
  368. package/websql/lib/base/base-vscode.d.ts +0 -13
  369. package/websql/lib/base/ports-worker.d.ts +0 -33
  370. /package/browser/lib/base/{base-cli-worker-config.d.ts → classes/base-cli-worker-config.d.ts} +0 -0
  371. /package/browser/lib/base/{base-compiler-for-project.d.ts → classes/base-compiler-for-project.d.ts} +0 -0
  372. /package/browser/lib/base/{base-db.d.ts → classes/base-db.d.ts} +0 -0
  373. /package/browser/lib/base/{base-debounce-compiler-for-project.d.ts → classes/base-debounce-compiler-for-project.d.ts} +0 -0
  374. /package/browser/lib/base/{base-feature-for-project.d.ts → classes/base-feature-for-project.d.ts} +0 -0
  375. /package/browser/lib/base/{base-github-pages.d.ts → classes/base-github-pages.d.ts} +0 -0
  376. /package/browser/lib/base/{base-npm-helpers.d.ts → classes/base-npm-helpers.d.ts} +0 -0
  377. /package/browser/lib/base/{base-quick-fixes.d.ts → classes/base-quick-fixes.d.ts} +0 -0
  378. /package/client/lib/base/{base-cli-worker-config.d.ts → classes/base-cli-worker-config.d.ts} +0 -0
  379. /package/client/lib/base/{base-compiler-for-project.d.ts → classes/base-compiler-for-project.d.ts} +0 -0
  380. /package/client/lib/base/{base-db.d.ts → classes/base-db.d.ts} +0 -0
  381. /package/client/lib/base/{base-debounce-compiler-for-project.d.ts → classes/base-debounce-compiler-for-project.d.ts} +0 -0
  382. /package/client/lib/base/{base-feature-for-project.d.ts → classes/base-feature-for-project.d.ts} +0 -0
  383. /package/client/lib/base/{base-github-pages.d.ts → classes/base-github-pages.d.ts} +0 -0
  384. /package/client/lib/base/{base-npm-helpers.d.ts → classes/base-npm-helpers.d.ts} +0 -0
  385. /package/client/lib/base/{base-quick-fixes.d.ts → classes/base-quick-fixes.d.ts} +0 -0
  386. /package/lib/base/{base-cli-worker-config.d.ts → classes/base-cli-worker-config.d.ts} +0 -0
  387. /package/lib/base/{base-cli-worker-config.js → classes/base-cli-worker-config.js} +0 -0
  388. /package/lib/base/{base-cli-worker-config.js.map → classes/base-cli-worker-config.js.map} +0 -0
  389. /package/lib/base/{base-debounce-compiler-for-project.js → classes/base-debounce-compiler-for-project.js} +0 -0
  390. /package/lib/base/{base-detached-service.d.ts → classes/base-detached-service.d.ts} +0 -0
  391. /package/lib/base/{base-detached-service.js → classes/base-detached-service.js} +0 -0
  392. /package/lib/base/{base-detached-service.js.map → classes/base-detached-service.js.map} +0 -0
  393. /package/lib/base/{base-feature-for-project.d.ts → classes/base-feature-for-project.d.ts} +0 -0
  394. /package/lib/base/{base-feature-for-project.js → classes/base-feature-for-project.js} +0 -0
  395. /package/lib/base/{base-feature-for-project.js.map → classes/base-feature-for-project.js.map} +0 -0
  396. /package/lib/base/{base-github-pages.d.ts → classes/base-github-pages.d.ts} +0 -0
  397. /package/lib/base/{base-ignore-hide.d.ts → classes/base-ignore-hide.d.ts} +0 -0
  398. /package/lib/base/{base-quick-fixes.d.ts → classes/base-quick-fixes.d.ts} +0 -0
  399. /package/lib/base/{base-start-config.backend.d.ts → classes/base-start-config.backend.d.ts} +0 -0
  400. /package/websql/lib/base/{base-cli-worker-config.d.ts → classes/base-cli-worker-config.d.ts} +0 -0
  401. /package/websql/lib/base/{base-compiler-for-project.d.ts → classes/base-compiler-for-project.d.ts} +0 -0
  402. /package/websql/lib/base/{base-db.d.ts → classes/base-db.d.ts} +0 -0
  403. /package/websql/lib/base/{base-debounce-compiler-for-project.d.ts → classes/base-debounce-compiler-for-project.d.ts} +0 -0
  404. /package/websql/lib/base/{base-feature-for-project.d.ts → classes/base-feature-for-project.d.ts} +0 -0
  405. /package/websql/lib/base/{base-github-pages.d.ts → classes/base-github-pages.d.ts} +0 -0
  406. /package/websql/lib/base/{base-npm-helpers.d.ts → classes/base-npm-helpers.d.ts} +0 -0
  407. /package/websql/lib/base/{base-quick-fixes.d.ts → classes/base-quick-fixes.d.ts} +0 -0
@@ -0,0 +1,22 @@
1
+ export * from './base-project';
2
+ export * from './base-project-resolver';
3
+ export * from './base-feature-for-project';
4
+ export * from './base-library-build';
5
+ export * from './base-npm-helpers';
6
+ export * from './base-linked-projects';
7
+ export * from './base-git';
8
+ export * from './base-vscode';
9
+ export * from './base-release-process';
10
+ export * from './base-compiler-for-project';
11
+ export * from './base-debounce-compiler-for-project';
12
+ export * from './base-quick-fixes';
13
+ export * from './base-cli-worker-controller';
14
+ export * from './base-cli-worker';
15
+ export * from './base-cli-worker-config';
16
+ /* */
17
+ /* */
18
+ /* */
19
+ /* */
20
+ ;
21
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/base/classes/index.ts
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UvY2xhc3Nlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFHSixDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtFQUFrRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtcHJvamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtcHJvamVjdC1yZXNvbHZlcic7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtZmVhdHVyZS1mb3ItcHJvamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtbGlicmFyeS1idWlsZCc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtbnBtLWhlbHBlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlLWxpbmtlZC1wcm9qZWN0cyc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtZ2l0JztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS12c2NvZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlLXJlbGVhc2UtcHJvY2Vzcyc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtY29tcGlsZXItZm9yLXByb2plY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlLWRlYm91bmNlLWNvbXBpbGVyLWZvci1wcm9qZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1xdWljay1maXhlcyc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtY2xpLXdvcmtlci1jb250cm9sbGVyJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1jbGktd29ya2VyJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1jbGktd29ya2VyLWNvbmZpZyc7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL2NsYXNzZXMvaW5kZXgudHMiXX0=
@@ -613,4 +613,4 @@ export class CommitData {
613
613
  }
614
614
  ;
615
615
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/commit-data.ts
616
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0LWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UvY29tbWl0LWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFLLE1BQU0sa0JBQWtCLENBQUMsQ0FBQSxLQUFLO0FBWTVELE1BQU0sOEJBQThCLEdBQUc7SUFDckMsSUFBSTtDQU1MLENBQUM7QUF3QkYsTUFBTSxZQUFZLEdBQVcsYUFBYSxDQUFDO0FBRTNDLE1BQU0sdUJBQXVCLEdBQVcsa0JBQWtCLENBQUM7QUFDM0QsTUFBTSx5QkFBeUIsR0FBVyxzQkFBc0IsQ0FBQztBQUVqRSxNQUFNLE9BQU8sVUFBVTtJQUF2QjtRQStoQkUsa0NBQTZCLEdBQVksS0FBSyxDQUFDO0lBc05qRCxDQUFDO0lBanZCUyxNQUFNLENBQUMsMEJBQTBCLENBQUMsU0FBaUI7UUFDekQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0MsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUlPLE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBaUI7UUFDN0MsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDcEQsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsT0FBTztZQUNMLHFCQUFxQixFQUFFLFNBQVM7WUFDaEMsTUFBTTtTQUNQLENBQUM7SUFDSixDQUFDO0lBSU8sTUFBTSxDQUFDLGlCQUFpQixDQUFDLFNBQWlCO1FBQ2hELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztRQUN6RSxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDckIsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNELGdCQUFnQixHQUFHLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzRSxPQUFPO1lBQ0wsU0FBUztZQUNULGdCQUFnQjtTQUNqQixDQUFDO0lBQ0osQ0FBQztJQUlEOzs7T0FHRztJQUNILE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxrQkFBMEI7UUFDOUQsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLHNDQUFzQztJQUMzQzs7OztPQUlHO0lBQ0gsa0JBQTBCLEVBQzFCLGFBQXNCO1FBRTFCLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxNQUFNLENBQUMsZ0NBQWdDLENBQ3JDLE9BQWUsRUFDZixPQUtDO1FBRUQsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDeEIs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S0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQ3hCLGlCQUF5QixFQUN6QixPQVVDO1FBRUwsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSU0sTUFBTSxDQUFDLElBQUksQ0FDaEIsT0FRQztRQUVELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQVEsQ0FBQztRQUUxQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQWtCTyxZQUFZLENBQUMsT0FBZTtRQUNsQyxPQUFPLFVBQVUsQ0FBQyxnQ0FBZ0MsQ0FBQyxPQUFPLEVBQUU7WUFDMUQsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLHVCQUF1QixFQUFFLElBQUksQ0FBQyx1QkFBdUI7U0FDdEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlEOzs7T0FHRztJQUNILElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLE9BQU87UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFNRCxJQUFJLFlBQVk7UUFDbEIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRDs7T0FFRztJQUNILElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLHVCQUF1QixDQUFDLEtBQWU7UUFDekMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLEtBQUssQ0FBQztJQWtCekMsQ0FBQztJQU1ELElBQUksYUFBYTtRQUNuQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELElBQUksVUFBVTtRQUNoQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQsSUFBSSxjQUFjO1FBQ3BCLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztDQUVGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnRUFBZ0UiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyAgIF8sIC8qICovIC8qICovICAgIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7LyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG5cbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICcuLi9pbmRleCc7XG5pbXBvcnQgdHlwZSB7IEJhc2VQcm9qZWN0IH0gZnJvbSAnLi9iYXNlLXByb2plY3QnO1xuaW1wb3J0IHsgcGF0aCB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuXG5cblxuY29uc3Qgb3BlblNvdXJjZVByb3ZpZGVyc0lzc3VlUHJlZml4ID0gW1xuICAnR0gnLFxuXG5cblxuXG5cbl07XG5cblxuXG5leHBvcnQgdHlwZSBDb21tb25Db21taXRNc2dCcmFuY2ggPVxuICB8ICdyZWZhY3RvcidcbiAgfCAnY2hvcmUnXG4gIHwgJ3N0eWxlJ1xuICB8ICdkb2NzJ1xuICB8ICd0ZXN0J1xuICB8ICdjaSdcbiAgfCAnYnVpbGQnXG4gIHwgJ3JlbGVhc2UnO1xuXG5cblxuZXhwb3J0IHR5cGUgVHlwZU9mQ29tbWl0ID1cbiAgfCAnZmVhdHVyZSdcbiAgfCAnYnVnZml4J1xuICB8ICdwZXJmb3JtYW5jZSdcbiAgfCBDb21tb25Db21taXRNc2dCcmFuY2g7XG5cblxuZXhwb3J0IHR5cGUgVHlwZU9mTXNnUHJlZml4ID0gJ2ZlYXQnIHwgJ2ZpeCcgfCAncGVyZicgfCBDb21tb25Db21taXRNc2dCcmFuY2g7XG5jb25zdCByZWdleFRlYW1zSUQ6IFJlZ0V4cCA9IC9bQS1aMC05XStcXCMvO1xuXG5jb25zdCByZWdleENvbW1pdE1vZHVsZUluQXJnczogUmVnRXhwID0gL1xcW1thLXp8XFwtfFxcLF0rXFxdLztcbmNvbnN0IHJlZ2V4Q29tbWl0TW9kdWxlSW5CcmFuY2g6IFJlZ0V4cCA9IC9cXC1cXC1bYS16fFxcLXxcXF9dK1xcLVxcLS87XG5cbmV4cG9ydCBjbGFzcyBDb21taXREYXRhIHtcblxuXG5cbiAgcHJpdmF0ZSBzdGF0aWMgY2xlYW5IdHRwRnJvbUNvbW1pdE1lc3NhZ2UoY29tbWl0TXNnOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghY29tbWl0TXNnKSB7XG4gICAgICByZXR1cm4gY29tbWl0TXNnO1xuICAgIH1cbiAgICBjb21taXRNc2cgPSBjb21taXRNc2cucmVwbGFjZSgnaHR0cHM6Ly8nLCAnJyk7XG4gICAgY29tbWl0TXNnID0gY29tbWl0TXNnLnJlcGxhY2UoJ2h0dHA6Ly8nLCAnJyk7XG4gICAgcmV0dXJuIGNvbW1pdE1zZztcbiAgfVxuXG5cblxuICBwcml2YXRlIHN0YXRpYyBnZXRUZWFtc0lkRnJvbShjb21taXRNc2c6IHN0cmluZykge1xuICAgIGxldCB0ZWFtSUQgPSBfLmZpcnN0KGNvbW1pdE1zZy5tYXRjaChyZWdleFRlYW1zSUQpKTtcbiAgICBpZiAodGVhbUlEKSB7XG4gICAgICBjb21taXRNc2cgPSBjb21taXRNc2cucmVwbGFjZSh0ZWFtSUQsICcnKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbW1pdE1zZ09yQnJhbmNoTmFtZTogY29tbWl0TXNnLFxuICAgICAgdGVhbUlELFxuICAgIH07XG4gIH1cblxuXG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0TW9kdWxlTmFtZUZyb20oY29tbWl0TXNnOiBzdHJpbmcpIHtcbiAgICBsZXQgY29tbWl0TW9kdWxlTmFtZSA9IF8uZmlyc3QoY29tbWl0TXNnLm1hdGNoKHJlZ2V4Q29tbWl0TW9kdWxlSW5BcmdzKSk7XG4gICAgaWYgKGNvbW1pdE1vZHVsZU5hbWUpIHtcbiAgICAgIGNvbW1pdE1zZyA9IGNvbW1pdE1zZy5yZXBsYWNlKGNvbW1pdE1vZHVsZU5hbWUsICcnKTtcbiAgICB9XG4gICAgY29tbWl0TW9kdWxlTmFtZSA9IGNvbW1pdE1vZHVsZU5hbWU/LnJlcGxhY2UoL1xcWy9nLCAnJykucmVwbGFjZSgvXFxdL2csICcnKTtcbiAgICByZXR1cm4ge1xuICAgICAgY29tbWl0TXNnLFxuICAgICAgY29tbWl0TW9kdWxlTmFtZSxcbiAgICB9O1xuICB9XG5cblxuXG4gIC8qKlxuICAgKlxuICAgKiBAcmV0dXJucyBqaXJhcyAoZnJvbSBvbGRlc3QgdG8gbmV3c2V0KVxuICAgKi9cbiAgc3RhdGljIGV4dHJhY3RBbmRPcmRlckppcmFOdW1iZXJzKGNvbW1pdE9yQnJhbmNoTmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKlxuICAgKiBAcmV0dXJucyBqaXJhcyAoZnJvbSBvbGRlc3QgdG8gbmV3c2V0KVxuICAgKi9cbiAgc3RhdGljIGV4dHJhY3RBbmRPcmRlcklzc3Vlc0Zyb21PdGhlclByb2plY3RzKFxuICAgIC8qKlxuICAgICAqIGV4YW1wbGU6XG4gICAgICogY29tbWl0OiBwcm9wZXIgZ2l0IGNvbW1hbmRzIHRucC9HSC05IGRhcmVrZjc3L3RucC1oZWxwZXJzL0dILTEwXG4gICAgICogZmVhdHVyZS9fX3RucC1HSC05X19fX2RhcmVrZjc3X3RucC1oZWxwZXJzLUdIMTBfXy1wcm9wZXItZ2l0LWNvbW1hbmRzXG4gICAgICovXG4gICAgY29tbWl0T3JCcmFuY2hOYW1lOiBzdHJpbmcsXG4gICAgY3VycmVudE9yaWdpbj86IHN0cmluZyxcbiAgKTogc3RyaW5nW10ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBzdGF0aWMgY2xlYW5NZXNzYWdlRnJvbUppcmFOdW1UZWFtSWRFdGMoXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIG9wdGlub3M/OiB7XG4gICAgICB0ZWFtSUQ6IHN0cmluZztcbiAgICAgIGNvbW1pdE1vZHVsZU5hbWU6IHN0cmluZztcbiAgICAgIGppcmFOdW1iZXJzOiBzdHJpbmdbXTtcbiAgICAgIGlzc3Vlc0Zyb21PdGhlclByb2plY3RzOiBzdHJpbmdbXTtcbiAgICB9LFxuICApOiBzdHJpbmcge1xuICAgIG1lc3NhZ2UgPSBtZXNzYWdlIHx8ICcnO1xuICAgIGxldCB7IHRlYW1JRCwgY29tbWl0TW9kdWxlTmFtZSwgamlyYU51bWJlcnMsIGlzc3Vlc0Zyb21PdGhlclByb2plY3RzIH0gPVxuICAgICAgb3B0aW5vcyB8fCB7fTtcbiAgICB0ZWFtSUQgPSB0ZWFtSUQgfHwgdGhpcy5nZXRUZWFtc0lkRnJvbShtZXNzYWdlKS50ZWFtSUQgfHwgJyc7XG4gICAgY29tbWl0TW9kdWxlTmFtZSA9XG4gICAgICBjb21taXRNb2R1bGVOYW1lIHx8XG4gICAgICB0aGlzLmdldE1vZHVsZU5hbWVGcm9tKG1lc3NhZ2UpLmNvbW1pdE1vZHVsZU5hbWUgfHxcbiAgICAgICcnO1xuICAgIGppcmFOdW1iZXJzID0gamlyYU51bWJlcnMgfHwgdGhpcy5leHRyYWN0QW5kT3JkZXJKaXJhTnVtYmVycyhtZXNzYWdlKSB8fCBbXTtcbiAgICBpc3N1ZXNGcm9tT3RoZXJQcm9qZWN0cyA9XG4gICAgICBpc3N1ZXNGcm9tT3RoZXJQcm9qZWN0cyB8fFxuICAgICAgdGhpcy5leHRyYWN0QW5kT3JkZXJJc3N1ZXNGcm9tT3RoZXJQcm9qZWN0cyhtZXNzYWdlKSB8fFxuICAgICAgW107XG5cbiAgICBpZiAoISF0ZWFtSUQudHJpbSgpKSB7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKHRlYW1JRC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoJy0nLCAnICcpLCAnICcpO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSh0ZWFtSUQudG9VcHBlckNhc2UoKS5yZXBsYWNlKCctJywgJyAnKSwgJyAnKTtcbiAgICB9XG5cblxuXG4gICAgZm9yIChjb25zdCBpc3N1ZUZyb21PdGhlclByb2ogb2YgaXNzdWVzRnJvbU90aGVyUHJvamVjdHMgfHwgW10pIHtcblxuXG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKFxuICAgICAgICBgX18ke2lzc3VlRnJvbU90aGVyUHJvai5yZXBsYWNlKC9cXC8vZywgJ18nKS5yZXBsYWNlKC9cXC0vZywgJyAnKX1fX2AsXG4gICAgICAgICcgJyxcbiAgICAgICk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKGlzc3VlRnJvbU90aGVyUHJvaiwgJyAnKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoXG4gICAgICAgIGlzc3VlRnJvbU90aGVyUHJvai50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoJy0nLCAnICcpLFxuICAgICAgICAnICcsXG4gICAgICApO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShcbiAgICAgICAgaXNzdWVGcm9tT3RoZXJQcm9qLnRvVXBwZXJDYXNlKCkucmVwbGFjZSgnLScsICcgJyksXG4gICAgICAgICcgJyxcbiAgICAgICk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKGlzc3VlRnJvbU90aGVyUHJvai50b0xvd2VyQ2FzZSgpLCAnICcpO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShyZWdleENvbW1pdE1vZHVsZUluQXJncywgJyAnKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UocmVnZXhDb21taXRNb2R1bGVJbkJyYW5jaCwgJyAnKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoL1xcIFxcIC9nLCAnICcpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgamlyYSBvZiBqaXJhTnVtYmVycyB8fCBbXSkge1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShqaXJhLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgnLScsICcgJyksICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKGppcmEudG9VcHBlckNhc2UoKS5yZXBsYWNlKCctJywgJyAnKSwgJyAnKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoamlyYSwgJyAnKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoamlyYS50b0xvd2VyQ2FzZSgpLCAnICcpO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShyZWdleENvbW1pdE1vZHVsZUluQXJncywgJyAnKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UocmVnZXhDb21taXRNb2R1bGVJbkJyYW5jaCwgJyAnKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoL1xcIFxcIC9nLCAnICcpO1xuICAgIH1cblxuICAgIGlmICghIXRlYW1JRC50cmltKCkpIHtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoL1xcXy9nLCAnICcpO1xuICAgIH1cbiAgICBpZiAoISFjb21taXRNb2R1bGVOYW1lLnRyaW0oKSkge1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShjb21taXRNb2R1bGVOYW1lLnJlcGxhY2UoL1xcLS9nLCAnICcpLCAnICcpO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShjb21taXRNb2R1bGVOYW1lLnJlcGxhY2UoL1xcLC9nLCAnICcpLCAnICcpO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShjb21taXRNb2R1bGVOYW1lLnJlcGxhY2UoL1xcLC9nLCAnXycpLCAnICcpO1xuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZVxuICAgICAgLnJlcGxhY2UoL1xcIFxcIC9nLCAnICcpXG4gICAgICAucmVwbGFjZSgvXFwgXFwgL2csICcgJylcbiAgICAgIC5yZXBsYWNlKC9cXCBcXCAvZywgJyAnKTtcbiAgfVxuXG5cblxuXG4gIHByaXZhdGUgc3RhdGljIGdldE1vZHVsZU5hbWVGcm9tQnJhbmNoKGJyYW5jaE5hbWU6IHN0cmluZykge1xuICAgIGxldCBjb21taXRNb2R1bGVOYW1lID0gXy5maXJzdChicmFuY2hOYW1lLm1hdGNoKHJlZ2V4Q29tbWl0TW9kdWxlSW5CcmFuY2gpKTtcbiAgICBpZiAoY29tbWl0TW9kdWxlTmFtZSkge1xuICAgICAgYnJhbmNoTmFtZSA9IGJyYW5jaE5hbWUucmVwbGFjZShjb21taXRNb2R1bGVOYW1lLCAnJyk7XG4gICAgICBjb21taXRNb2R1bGVOYW1lID0gY29tbWl0TW9kdWxlTmFtZVxuICAgICAgICA/LnJlcGxhY2UoL15cXC1cXC0vLCAnJylcbiAgICAgICAgPy5yZXBsYWNlKC9cXC1cXC0kLywgJycpO1xuICAgICAgaWYgKGNvbW1pdE1vZHVsZU5hbWUuc3RhcnRzV2l0aCgnLScpKSB7XG4gICAgICAgIGNvbW1pdE1vZHVsZU5hbWUgPSBjb21taXRNb2R1bGVOYW1lLnJlcGxhY2UoL15cXC0vLCAnJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbW1pdE1vZHVsZU5hbWUgPSBjb21taXRNb2R1bGVOYW1lXG4gICAgICA/LnJlcGxhY2UoL15cXC1cXC0vLCAnJylcbiAgICAgID8ucmVwbGFjZSgvXFwtXFwtJC8sICcnKVxuICAgICAgLnJlcGxhY2UoL1xcXy8sICcsJyk7XG5cbiAgICByZXR1cm4geyBjb21taXRNb2R1bGVOYW1lIH07XG4gIH1cblxuXG5cbiAgc3RhdGljIGFzeW5jIGdldEZyb21BcmdzKFxuICAgIGFyZ3M6IHN0cmluZ1tdLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIHR5cGVPZkNvbW1pdDogVHlwZU9mQ29tbWl0O1xuICAgICAgLyoqXG4gICAgICAgKiBvbmx5IG5lZWRlZCB3aGVuIHB1c2ggZ2l0aHViXG4gICAgICAgKiBhbmQgSSBmb3Jnb3QgdG8gYWRkIG15IHVzZXJuYW1lIGJlZm9yZSBpc3N1ZVxuICAgICAgICogdGFvbiBwZml4IHByb3BlciBpbnB1dCBteS1yZXBvIzM0NFxuICAgICAgICogdGhhdCBzaG91bGQgYmVcbiAgICAgICAqIHRhb24gcGZpeCBwcm9wZXIgaW5wdXQgbXktdXNlcm5hbWUvbXktcmVwbyMzNDRcbiAgICAgICAqL1xuICAgICAgY3VycmVudE9yaWdpbj86IHN0cmluZztcbiAgICB9LFxuICApOiBQcm9taXNlPENvbW1pdERhdGE+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBzdGF0aWMgYXN5bmMgZ2V0RnJvbUJyYW5jaChcbiAgICBjdXJyZW50QnJhbmNoTmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICByZWxlYXNlV29yZHM/OiBzdHJpbmdbXTtcbiAgICAgIC8qKlxuICAgICAgICogb25seSBuZWVkZWQgd2hlbiBwdXNoIGdpdGh1YlxuICAgICAgICogYW5kIEkgZm9yZ290IHRvIGFkZCBteSB1c2VybmFtZSBiZWZvcmUgaXNzdWVcbiAgICAgICAqIHRhb24gcGZpeCBwcm9wZXIgaW5wdXQgbXktcmVwbyMzNDRcbiAgICAgICAqIHRoYXQgc2hvdWxkIGJlXG4gICAgICAgKiB0YW9uIHBmaXggcHJvcGVyIGlucHV0IG15LXVzZXJuYW1lL215LXJlcG8jMzQ0XG4gICAgICAgKi9cbiAgICAgIGN1cnJlbnRPcmlnaW4/OiBzdHJpbmc7XG4gICAgfSxcbiAgKTogUHJvbWlzZTxDb21taXREYXRhPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHVibGljIHN0YXRpYyBmcm9tKFxuICAgIG9wdGlvbnM6IFBpY2s8XG4gICAgICBDb21taXREYXRhLFxuICAgICAgfCAnbWVzc2FnZSdcbiAgICAgIHwgJ2ppcmFOdW1iZXJzJ1xuICAgICAgfCAndHlwZU9mQ29tbWl0J1xuICAgICAgfCAnY29tbWl0TW9kdWxlTmFtZSdcbiAgICAgIHwgJ3RlYW1JRCdcbiAgICAgIHwgJ2lzc3Vlc0Zyb21PdGhlclByb2plY3RzJ1xuICAgID4sXG4gICk6IENvbW1pdERhdGEge1xuICAgIG9wdGlvbnMgPSAob3B0aW9ucyA/IG9wdGlvbnMgOiB7fSkgYXMgYW55O1xuXG4gICAgY29uc3Qgb3B0ID0gXy5tZXJnZShuZXcgQ29tbWl0RGF0YSgpLCBfLmNsb25lRGVlcChvcHRpb25zKSk7XG4gICAgcmV0dXJuIG9wdDtcbiAgfVxuXG5cblxuXG5cbiAgcHJpdmF0ZSBfbWVzc2FnZTogc3RyaW5nO1xuICB0eXBlT2ZDb21taXQ6IFR5cGVPZkNvbW1pdDtcbiAgLyoqXG4gICAqIGV4LiBKSVJBLTIxMzIgb3IgTVlKSVJBUkVGSVgtMjM0MjM0XG4gICAqL1xuICBqaXJhTnVtYmVyczogc3RyaW5nW107XG5cbiAgcmVhZG9ubHkgY29tbWl0TW9kdWxlTmFtZTogc3RyaW5nO1xuICByZWFkb25seSB0ZWFtSUQ6IHN0cmluZztcblxuXG5cbiAgcHJpdmF0ZSBjbGVhck1lc3NhZ2UobWVzc2FnZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQ29tbWl0RGF0YS5jbGVhbk1lc3NhZ2VGcm9tSmlyYU51bVRlYW1JZEV0YyhtZXNzYWdlLCB7XG4gICAgICB0ZWFtSUQ6IHRoaXMudGVhbUlELFxuICAgICAgY29tbWl0TW9kdWxlTmFtZTogdGhpcy5jb21taXRNb2R1bGVOYW1lLFxuICAgICAgamlyYU51bWJlcnM6IHRoaXMuamlyYU51bWJlcnMsXG4gICAgICBpc3N1ZXNGcm9tT3RoZXJQcm9qZWN0czogdGhpcy5pc3N1ZXNGcm9tT3RoZXJQcm9qZWN0cyxcbiAgICB9KTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogcHVyZSBtZXNzYWdlIHdoYXQgd2FzIGRvbmUgKHdpdGhvdXQgamlyYSBvciBwcmVmaXhlcylcbiAgICogPT4gaXMgaW5jbHVkZWQgaW4gdGhpcy5jb21taXRNZXNzYWdlXG4gICAqL1xuICBnZXQgbWVzc2FnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jbGVhck1lc3NhZ2UodGhpcy5fbWVzc2FnZSk7XG4gIH1cbiAgc2V0IG1lc3NhZ2UobWVzc2FnZSkge1xuICAgIHRoaXMuX21lc3NhZ2UgPSB0aGlzLmNsZWFyTWVzc2FnZShtZXNzYWdlKTtcbiAgfVxuXG5cbiAgdXNlRmVhdHVyZUJyYW5jaEZvclRlc3RCcmFuY2g6IGJvb2xlYW4gPSBmYWxzZTtcblxuXG4gIGdldCBicmFuY2hQcmVmaXgoKTogVHlwZU9mTXNnUHJlZml4IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBleC4gdGFvbi9HSC0xMiAgZGFyZWtmNzcvdG5wLWhlbHBlcnMvR0gtNFxuICAgKi9cbiAgZ2V0IGlzc3Vlc0Zyb21PdGhlclByb2plY3RzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fX2lzc3Vlc0Zyb21PdGhlclByb2plY3RzO1xuICB9XG5cbiAgc2V0IGlzc3Vlc0Zyb21PdGhlclByb2plY3RzKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuX19pc3N1ZXNGcm9tT3RoZXJQcm9qZWN0cyA9IHZhbHVlO1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbiAgfVxuXG4gIHByaXZhdGUgX19pc3N1ZXNGcm9tT3RoZXJQcm9qZWN0czogc3RyaW5nW107XG5cblxuXG4gIGdldCBjb21taXRNZXNzYWdlKCk6IHN0cmluZyB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXQgYnJhbmNoTmFtZSgpOiBzdHJpbmcge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXQgaXNBY3Rpb25Db21taXQoKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2Jhc2UvY29tbWl0LWRhdGEudHMiXX0=
616
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0LWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UvY29tbWl0LWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFLLE1BQU0sa0JBQWtCLENBQUMsQ0FBQSxLQUFLO0FBVzVELE1BQU0sOEJBQThCLEdBQUc7SUFDckMsSUFBSTtDQU1MLENBQUM7QUF3QkYsTUFBTSxZQUFZLEdBQVcsYUFBYSxDQUFDO0FBRTNDLE1BQU0sdUJBQXVCLEdBQVcsa0JBQWtCLENBQUM7QUFDM0QsTUFBTSx5QkFBeUIsR0FBVyxzQkFBc0IsQ0FBQztBQUVqRSxNQUFNLE9BQU8sVUFBVTtJQUF2QjtRQStoQkUsa0NBQTZCLEdBQVksS0FBSyxDQUFDO0lBc05qRCxDQUFDO0lBanZCUyxNQUFNLENBQUMsMEJBQTBCLENBQUMsU0FBaUI7UUFDekQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0MsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUlPLE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBaUI7UUFDN0MsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDcEQsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsT0FBTztZQUNMLHFCQUFxQixFQUFFLFNBQVM7WUFDaEMsTUFBTTtTQUNQLENBQUM7SUFDSixDQUFDO0lBSU8sTUFBTSxDQUFDLGlCQUFpQixDQUFDLFNBQWlCO1FBQ2hELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztRQUN6RSxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDckIsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNELGdCQUFnQixHQUFHLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzRSxPQUFPO1lBQ0wsU0FBUztZQUNULGdCQUFnQjtTQUNqQixDQUFDO0lBQ0osQ0FBQztJQUlEOzs7T0FHRztJQUNILE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxrQkFBMEI7UUFDOUQsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLHNDQUFzQztJQUMzQzs7OztPQUlHO0lBQ0gsa0JBQTBCLEVBQzFCLGFBQXNCO1FBRTFCLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxNQUFNLENBQUMsZ0NBQWdDLENBQ3JDLE9BQWUsRUFDZixPQUtDO1FBRUQsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDeEIsSUFBSSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUUsR0FDcEUsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNoQixNQUFNLEdBQUcsTUFBTSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUM3RCxnQkFBZ0I7WUFDZCxnQkFBZ0I7Z0JBQ2hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxnQkFBZ0I7Z0JBQ2hELEVBQUUsQ0FBQztRQUNMLFdBQVcsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1RSx1QkFBdUI7WUFDckIsdUJBQXVCO2dCQUN2QixJQUFJLENBQUMsc0NBQXNDLENBQUMsT0FBTyxDQUFDO2dCQUNwRCxFQUFFLENBQUM7UUFFTCxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNwQixPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN2RSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBSUQsS0FBSyxNQUFNLGtCQUFrQixJQUFJLHVCQUF1QixJQUFJLEVBQUUsRUFBRSxDQUFDO1lBRy9ELE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUN2QixLQUFLLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxFQUNuRSxHQUFHLENBQ0osQ0FBQztZQUNGLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ25ELE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUN2QixrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUNsRCxHQUFHLENBQ0osQ0FBQztZQUNGLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUN2QixrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUNsRCxHQUFHLENBQ0osQ0FBQztZQUNGLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2pFLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3hELE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLHlCQUF5QixFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzFELE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsS0FBSyxNQUFNLElBQUksSUFBSSxXQUFXLElBQUksRUFBRSxFQUFFLENBQUM7WUFDckMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDckUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDckUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNuRCxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN4RCxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMxRCxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUVELElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUM5QixPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3JFLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDckUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN2RSxDQUFDO1FBQ0QsT0FBTyxPQUFPO2FBQ1gsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7YUFDckIsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7YUFDckIsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBS08sTUFBTSxDQUFDLHVCQUF1QixDQUFDLFVBQWtCO1FBQ3ZELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQztRQUM1RSxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDckIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEQsZ0JBQWdCLEdBQUcsZ0JBQWdCO2dCQUNqQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO2dCQUN0QixFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDekIsSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDckMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6RCxDQUFDO1FBQ0gsQ0FBQztRQUNELGdCQUFnQixHQUFHLGdCQUFnQjtZQUNqQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ3RCLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7YUFDckIsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV0QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBSUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQ3RCLElBQWMsRUFDZCxPQVVDO1FBRUwsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQ3hCLGlCQUF5QixFQUN6QixPQVVDO1FBRUwsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSU0sTUFBTSxDQUFDLElBQUksQ0FDaEIsT0FRQztRQUVELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQVEsQ0FBQztRQUUxQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQWtCTyxZQUFZLENBQUMsT0FBZTtRQUNsQyxPQUFPLFVBQVUsQ0FBQyxnQ0FBZ0MsQ0FBQyxPQUFPLEVBQUU7WUFDMUQsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLHVCQUF1QixFQUFFLElBQUksQ0FBQyx1QkFBdUI7U0FDdEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlEOzs7T0FHRztJQUNILElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLE9BQU87UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFNRCxJQUFJLFlBQVk7UUFDbEIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRDs7T0FFRztJQUNILElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLHVCQUF1QixDQUFDLEtBQWU7UUFDekMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLEtBQUssQ0FBQztJQWtCekMsQ0FBQztJQU1ELElBQUksYUFBYTtRQUNuQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELElBQUksVUFBVTtRQUNoQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQsSUFBSSxjQUFjO1FBQ3BCLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztDQUVGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnRUFBZ0UiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyAgIF8sIC8qICovIC8qICovICAgIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7LyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG5cbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICcuLi9pbmRleCc7XG5pbXBvcnQgeyBwYXRoIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5cblxuXG5jb25zdCBvcGVuU291cmNlUHJvdmlkZXJzSXNzdWVQcmVmaXggPSBbXG4gICdHSCcsXG5cblxuXG5cblxuXTtcblxuXG5cbmV4cG9ydCB0eXBlIENvbW1vbkNvbW1pdE1zZ0JyYW5jaCA9XG4gIHwgJ3JlZmFjdG9yJ1xuICB8ICdjaG9yZSdcbiAgfCAnc3R5bGUnXG4gIHwgJ2RvY3MnXG4gIHwgJ3Rlc3QnXG4gIHwgJ2NpJ1xuICB8ICdidWlsZCdcbiAgfCAncmVsZWFzZSc7XG5cblxuXG5leHBvcnQgdHlwZSBUeXBlT2ZDb21taXQgPVxuICB8ICdmZWF0dXJlJ1xuICB8ICdidWdmaXgnXG4gIHwgJ3BlcmZvcm1hbmNlJ1xuICB8IENvbW1vbkNvbW1pdE1zZ0JyYW5jaDtcblxuXG5leHBvcnQgdHlwZSBUeXBlT2ZNc2dQcmVmaXggPSAnZmVhdCcgfCAnZml4JyB8ICdwZXJmJyB8IENvbW1vbkNvbW1pdE1zZ0JyYW5jaDtcbmNvbnN0IHJlZ2V4VGVhbXNJRDogUmVnRXhwID0gL1tBLVowLTldK1xcIy87XG5cbmNvbnN0IHJlZ2V4Q29tbWl0TW9kdWxlSW5BcmdzOiBSZWdFeHAgPSAvXFxbW2EtenxcXC18XFwsXStcXF0vO1xuY29uc3QgcmVnZXhDb21taXRNb2R1bGVJbkJyYW5jaDogUmVnRXhwID0gL1xcLVxcLVthLXp8XFwtfFxcX10rXFwtXFwtLztcblxuZXhwb3J0IGNsYXNzIENvbW1pdERhdGEge1xuXG5cblxuICBwcml2YXRlIHN0YXRpYyBjbGVhbkh0dHBGcm9tQ29tbWl0TWVzc2FnZShjb21taXRNc2c6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFjb21taXRNc2cpIHtcbiAgICAgIHJldHVybiBjb21taXRNc2c7XG4gICAgfVxuICAgIGNvbW1pdE1zZyA9IGNvbW1pdE1zZy5yZXBsYWNlKCdodHRwczovLycsICcnKTtcbiAgICBjb21taXRNc2cgPSBjb21taXRNc2cucmVwbGFjZSgnaHR0cDovLycsICcnKTtcbiAgICByZXR1cm4gY29tbWl0TXNnO1xuICB9XG5cblxuXG4gIHByaXZhdGUgc3RhdGljIGdldFRlYW1zSWRGcm9tKGNvbW1pdE1zZzogc3RyaW5nKSB7XG4gICAgbGV0IHRlYW1JRCA9IF8uZmlyc3QoY29tbWl0TXNnLm1hdGNoKHJlZ2V4VGVhbXNJRCkpO1xuICAgIGlmICh0ZWFtSUQpIHtcbiAgICAgIGNvbW1pdE1zZyA9IGNvbW1pdE1zZy5yZXBsYWNlKHRlYW1JRCwgJycpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgY29tbWl0TXNnT3JCcmFuY2hOYW1lOiBjb21taXRNc2csXG4gICAgICB0ZWFtSUQsXG4gICAgfTtcbiAgfVxuXG5cblxuICBwcml2YXRlIHN0YXRpYyBnZXRNb2R1bGVOYW1lRnJvbShjb21taXRNc2c6IHN0cmluZykge1xuICAgIGxldCBjb21taXRNb2R1bGVOYW1lID0gXy5maXJzdChjb21taXRNc2cubWF0Y2gocmVnZXhDb21taXRNb2R1bGVJbkFyZ3MpKTtcbiAgICBpZiAoY29tbWl0TW9kdWxlTmFtZSkge1xuICAgICAgY29tbWl0TXNnID0gY29tbWl0TXNnLnJlcGxhY2UoY29tbWl0TW9kdWxlTmFtZSwgJycpO1xuICAgIH1cbiAgICBjb21taXRNb2R1bGVOYW1lID0gY29tbWl0TW9kdWxlTmFtZT8ucmVwbGFjZSgvXFxbL2csICcnKS5yZXBsYWNlKC9cXF0vZywgJycpO1xuICAgIHJldHVybiB7XG4gICAgICBjb21taXRNc2csXG4gICAgICBjb21taXRNb2R1bGVOYW1lLFxuICAgIH07XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqXG4gICAqIEByZXR1cm5zIGppcmFzIChmcm9tIG9sZGVzdCB0byBuZXdzZXQpXG4gICAqL1xuICBzdGF0aWMgZXh0cmFjdEFuZE9yZGVySmlyYU51bWJlcnMoY29tbWl0T3JCcmFuY2hOYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqXG4gICAqIEByZXR1cm5zIGppcmFzIChmcm9tIG9sZGVzdCB0byBuZXdzZXQpXG4gICAqL1xuICBzdGF0aWMgZXh0cmFjdEFuZE9yZGVySXNzdWVzRnJvbU90aGVyUHJvamVjdHMoXG4gICAgLyoqXG4gICAgICogZXhhbXBsZTpcbiAgICAgKiBjb21taXQ6IHByb3BlciBnaXQgY29tbWFuZHMgdG5wL0dILTkgZGFyZWtmNzcvdG5wLWhlbHBlcnMvR0gtMTBcbiAgICAgKiBmZWF0dXJlL19fdG5wLUdILTlfX19fZGFyZWtmNzdfdG5wLWhlbHBlcnMtR0gxMF9fLXByb3Blci1naXQtY29tbWFuZHNcbiAgICAgKi9cbiAgICBjb21taXRPckJyYW5jaE5hbWU6IHN0cmluZyxcbiAgICBjdXJyZW50T3JpZ2luPzogc3RyaW5nLFxuICApOiBzdHJpbmdbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHN0YXRpYyBjbGVhbk1lc3NhZ2VGcm9tSmlyYU51bVRlYW1JZEV0YyhcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgb3B0aW5vcz86IHtcbiAgICAgIHRlYW1JRDogc3RyaW5nO1xuICAgICAgY29tbWl0TW9kdWxlTmFtZTogc3RyaW5nO1xuICAgICAgamlyYU51bWJlcnM6IHN0cmluZ1tdO1xuICAgICAgaXNzdWVzRnJvbU90aGVyUHJvamVjdHM6IHN0cmluZ1tdO1xuICAgIH0sXG4gICk6IHN0cmluZyB7XG4gICAgbWVzc2FnZSA9IG1lc3NhZ2UgfHwgJyc7XG4gICAgbGV0IHsgdGVhbUlELCBjb21taXRNb2R1bGVOYW1lLCBqaXJhTnVtYmVycywgaXNzdWVzRnJvbU90aGVyUHJvamVjdHMgfSA9XG4gICAgICBvcHRpbm9zIHx8IHt9O1xuICAgIHRlYW1JRCA9IHRlYW1JRCB8fCB0aGlzLmdldFRlYW1zSWRGcm9tKG1lc3NhZ2UpLnRlYW1JRCB8fCAnJztcbiAgICBjb21taXRNb2R1bGVOYW1lID1cbiAgICAgIGNvbW1pdE1vZHVsZU5hbWUgfHxcbiAgICAgIHRoaXMuZ2V0TW9kdWxlTmFtZUZyb20obWVzc2FnZSkuY29tbWl0TW9kdWxlTmFtZSB8fFxuICAgICAgJyc7XG4gICAgamlyYU51bWJlcnMgPSBqaXJhTnVtYmVycyB8fCB0aGlzLmV4dHJhY3RBbmRPcmRlckppcmFOdW1iZXJzKG1lc3NhZ2UpIHx8IFtdO1xuICAgIGlzc3Vlc0Zyb21PdGhlclByb2plY3RzID1cbiAgICAgIGlzc3Vlc0Zyb21PdGhlclByb2plY3RzIHx8XG4gICAgICB0aGlzLmV4dHJhY3RBbmRPcmRlcklzc3Vlc0Zyb21PdGhlclByb2plY3RzKG1lc3NhZ2UpIHx8XG4gICAgICBbXTtcblxuICAgIGlmICghIXRlYW1JRC50cmltKCkpIHtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UodGVhbUlELnRvTG93ZXJDYXNlKCkucmVwbGFjZSgnLScsICcgJyksICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKHRlYW1JRC50b1VwcGVyQ2FzZSgpLnJlcGxhY2UoJy0nLCAnICcpLCAnICcpO1xuICAgIH1cblxuXG5cbiAgICBmb3IgKGNvbnN0IGlzc3VlRnJvbU90aGVyUHJvaiBvZiBpc3N1ZXNGcm9tT3RoZXJQcm9qZWN0cyB8fCBbXSkge1xuXG5cbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoXG4gICAgICAgIGBfXyR7aXNzdWVGcm9tT3RoZXJQcm9qLnJlcGxhY2UoL1xcLy9nLCAnXycpLnJlcGxhY2UoL1xcLS9nLCAnICcpfV9fYCxcbiAgICAgICAgJyAnLFxuICAgICAgKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoaXNzdWVGcm9tT3RoZXJQcm9qLCAnICcpO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShcbiAgICAgICAgaXNzdWVGcm9tT3RoZXJQcm9qLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgnLScsICcgJyksXG4gICAgICAgICcgJyxcbiAgICAgICk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKFxuICAgICAgICBpc3N1ZUZyb21PdGhlclByb2oudG9VcHBlckNhc2UoKS5yZXBsYWNlKCctJywgJyAnKSxcbiAgICAgICAgJyAnLFxuICAgICAgKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoaXNzdWVGcm9tT3RoZXJQcm9qLnRvTG93ZXJDYXNlKCksICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKHJlZ2V4Q29tbWl0TW9kdWxlSW5BcmdzLCAnICcpO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShyZWdleENvbW1pdE1vZHVsZUluQnJhbmNoLCAnICcpO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSgvXFwgXFwgL2csICcgJyk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBqaXJhIG9mIGppcmFOdW1iZXJzIHx8IFtdKSB7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKGppcmEudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCctJywgJyAnKSwgJyAnKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoamlyYS50b1VwcGVyQ2FzZSgpLnJlcGxhY2UoJy0nLCAnICcpLCAnICcpO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShqaXJhLCAnICcpO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShqaXJhLnRvTG93ZXJDYXNlKCksICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKHJlZ2V4Q29tbWl0TW9kdWxlSW5BcmdzLCAnICcpO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShyZWdleENvbW1pdE1vZHVsZUluQnJhbmNoLCAnICcpO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSgvXFwgXFwgL2csICcgJyk7XG4gICAgfVxuXG4gICAgaWYgKCEhdGVhbUlELnRyaW0oKSkge1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSgvXFxfL2csICcgJyk7XG4gICAgfVxuICAgIGlmICghIWNvbW1pdE1vZHVsZU5hbWUudHJpbSgpKSB7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKGNvbW1pdE1vZHVsZU5hbWUucmVwbGFjZSgvXFwtL2csICcgJyksICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKGNvbW1pdE1vZHVsZU5hbWUucmVwbGFjZSgvXFwsL2csICcgJyksICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKGNvbW1pdE1vZHVsZU5hbWUucmVwbGFjZSgvXFwsL2csICdfJyksICcgJyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlXG4gICAgICAucmVwbGFjZSgvXFwgXFwgL2csICcgJylcbiAgICAgIC5yZXBsYWNlKC9cXCBcXCAvZywgJyAnKVxuICAgICAgLnJlcGxhY2UoL1xcIFxcIC9nLCAnICcpO1xuICB9XG5cblxuXG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0TW9kdWxlTmFtZUZyb21CcmFuY2goYnJhbmNoTmFtZTogc3RyaW5nKSB7XG4gICAgbGV0IGNvbW1pdE1vZHVsZU5hbWUgPSBfLmZpcnN0KGJyYW5jaE5hbWUubWF0Y2gocmVnZXhDb21taXRNb2R1bGVJbkJyYW5jaCkpO1xuICAgIGlmIChjb21taXRNb2R1bGVOYW1lKSB7XG4gICAgICBicmFuY2hOYW1lID0gYnJhbmNoTmFtZS5yZXBsYWNlKGNvbW1pdE1vZHVsZU5hbWUsICcnKTtcbiAgICAgIGNvbW1pdE1vZHVsZU5hbWUgPSBjb21taXRNb2R1bGVOYW1lXG4gICAgICAgID8ucmVwbGFjZSgvXlxcLVxcLS8sICcnKVxuICAgICAgICA/LnJlcGxhY2UoL1xcLVxcLSQvLCAnJyk7XG4gICAgICBpZiAoY29tbWl0TW9kdWxlTmFtZS5zdGFydHNXaXRoKCctJykpIHtcbiAgICAgICAgY29tbWl0TW9kdWxlTmFtZSA9IGNvbW1pdE1vZHVsZU5hbWUucmVwbGFjZSgvXlxcLS8sICcnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29tbWl0TW9kdWxlTmFtZSA9IGNvbW1pdE1vZHVsZU5hbWVcbiAgICAgID8ucmVwbGFjZSgvXlxcLVxcLS8sICcnKVxuICAgICAgPy5yZXBsYWNlKC9cXC1cXC0kLywgJycpXG4gICAgICAucmVwbGFjZSgvXFxfLywgJywnKTtcblxuICAgIHJldHVybiB7IGNvbW1pdE1vZHVsZU5hbWUgfTtcbiAgfVxuXG5cblxuICBzdGF0aWMgYXN5bmMgZ2V0RnJvbUFyZ3MoXG4gICAgYXJnczogc3RyaW5nW10sXG4gICAgb3B0aW9uczoge1xuICAgICAgdHlwZU9mQ29tbWl0OiBUeXBlT2ZDb21taXQ7XG4gICAgICAvKipcbiAgICAgICAqIG9ubHkgbmVlZGVkIHdoZW4gcHVzaCBnaXRodWJcbiAgICAgICAqIGFuZCBJIGZvcmdvdCB0byBhZGQgbXkgdXNlcm5hbWUgYmVmb3JlIGlzc3VlXG4gICAgICAgKiB0YW9uIHBmaXggcHJvcGVyIGlucHV0IG15LXJlcG8jMzQ0XG4gICAgICAgKiB0aGF0IHNob3VsZCBiZVxuICAgICAgICogdGFvbiBwZml4IHByb3BlciBpbnB1dCBteS11c2VybmFtZS9teS1yZXBvIzM0NFxuICAgICAgICovXG4gICAgICBjdXJyZW50T3JpZ2luPzogc3RyaW5nO1xuICAgIH0sXG4gICk6IFByb21pc2U8Q29tbWl0RGF0YT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHN0YXRpYyBhc3luYyBnZXRGcm9tQnJhbmNoKFxuICAgIGN1cnJlbnRCcmFuY2hOYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIHJlbGVhc2VXb3Jkcz86IHN0cmluZ1tdO1xuICAgICAgLyoqXG4gICAgICAgKiBvbmx5IG5lZWRlZCB3aGVuIHB1c2ggZ2l0aHViXG4gICAgICAgKiBhbmQgSSBmb3Jnb3QgdG8gYWRkIG15IHVzZXJuYW1lIGJlZm9yZSBpc3N1ZVxuICAgICAgICogdGFvbiBwZml4IHByb3BlciBpbnB1dCBteS1yZXBvIzM0NFxuICAgICAgICogdGhhdCBzaG91bGQgYmVcbiAgICAgICAqIHRhb24gcGZpeCBwcm9wZXIgaW5wdXQgbXktdXNlcm5hbWUvbXktcmVwbyMzNDRcbiAgICAgICAqL1xuICAgICAgY3VycmVudE9yaWdpbj86IHN0cmluZztcbiAgICB9LFxuICApOiBQcm9taXNlPENvbW1pdERhdGE+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwdWJsaWMgc3RhdGljIGZyb20oXG4gICAgb3B0aW9uczogUGljazxcbiAgICAgIENvbW1pdERhdGEsXG4gICAgICB8ICdtZXNzYWdlJ1xuICAgICAgfCAnamlyYU51bWJlcnMnXG4gICAgICB8ICd0eXBlT2ZDb21taXQnXG4gICAgICB8ICdjb21taXRNb2R1bGVOYW1lJ1xuICAgICAgfCAndGVhbUlEJ1xuICAgICAgfCAnaXNzdWVzRnJvbU90aGVyUHJvamVjdHMnXG4gICAgPixcbiAgKTogQ29tbWl0RGF0YSB7XG4gICAgb3B0aW9ucyA9IChvcHRpb25zID8gb3B0aW9ucyA6IHt9KSBhcyBhbnk7XG5cbiAgICBjb25zdCBvcHQgPSBfLm1lcmdlKG5ldyBDb21taXREYXRhKCksIF8uY2xvbmVEZWVwKG9wdGlvbnMpKTtcbiAgICByZXR1cm4gb3B0O1xuICB9XG5cblxuXG5cblxuICBwcml2YXRlIF9tZXNzYWdlOiBzdHJpbmc7XG4gIHR5cGVPZkNvbW1pdDogVHlwZU9mQ29tbWl0O1xuICAvKipcbiAgICogZXguIEpJUkEtMjEzMiBvciBNWUpJUkFSRUZJWC0yMzQyMzRcbiAgICovXG4gIGppcmFOdW1iZXJzOiBzdHJpbmdbXTtcblxuICByZWFkb25seSBjb21taXRNb2R1bGVOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRlYW1JRDogc3RyaW5nO1xuXG5cblxuICBwcml2YXRlIGNsZWFyTWVzc2FnZShtZXNzYWdlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBDb21taXREYXRhLmNsZWFuTWVzc2FnZUZyb21KaXJhTnVtVGVhbUlkRXRjKG1lc3NhZ2UsIHtcbiAgICAgIHRlYW1JRDogdGhpcy50ZWFtSUQsXG4gICAgICBjb21taXRNb2R1bGVOYW1lOiB0aGlzLmNvbW1pdE1vZHVsZU5hbWUsXG4gICAgICBqaXJhTnVtYmVyczogdGhpcy5qaXJhTnVtYmVycyxcbiAgICAgIGlzc3Vlc0Zyb21PdGhlclByb2plY3RzOiB0aGlzLmlzc3Vlc0Zyb21PdGhlclByb2plY3RzLFxuICAgIH0pO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBwdXJlIG1lc3NhZ2Ugd2hhdCB3YXMgZG9uZSAod2l0aG91dCBqaXJhIG9yIHByZWZpeGVzKVxuICAgKiA9PiBpcyBpbmNsdWRlZCBpbiB0aGlzLmNvbW1pdE1lc3NhZ2VcbiAgICovXG4gIGdldCBtZXNzYWdlKCkge1xuICAgIHJldHVybiB0aGlzLmNsZWFyTWVzc2FnZSh0aGlzLl9tZXNzYWdlKTtcbiAgfVxuICBzZXQgbWVzc2FnZShtZXNzYWdlKSB7XG4gICAgdGhpcy5fbWVzc2FnZSA9IHRoaXMuY2xlYXJNZXNzYWdlKG1lc3NhZ2UpO1xuICB9XG5cblxuICB1c2VGZWF0dXJlQnJhbmNoRm9yVGVzdEJyYW5jaDogYm9vbGVhbiA9IGZhbHNlO1xuXG5cbiAgZ2V0IGJyYW5jaFByZWZpeCgpOiBUeXBlT2ZNc2dQcmVmaXgge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGV4LiB0YW9uL0dILTEyICBkYXJla2Y3Ny90bnAtaGVscGVycy9HSC00XG4gICAqL1xuICBnZXQgaXNzdWVzRnJvbU90aGVyUHJvamVjdHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9faXNzdWVzRnJvbU90aGVyUHJvamVjdHM7XG4gIH1cblxuICBzZXQgaXNzdWVzRnJvbU90aGVyUHJvamVjdHModmFsdWU6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5fX2lzc3Vlc0Zyb21PdGhlclByb2plY3RzID0gdmFsdWU7XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuICB9XG5cbiAgcHJpdmF0ZSBfX2lzc3Vlc0Zyb21PdGhlclByb2plY3RzOiBzdHJpbmdbXTtcblxuXG5cbiAgZ2V0IGNvbW1pdE1lc3NhZ2UoKTogc3RyaW5nIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldCBicmFuY2hOYW1lKCk6IHN0cmluZyB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldCBpc0FjdGlvbkNvbW1pdCgpIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvYmFzZS9jb21taXQtZGF0YS50cyJdfQ==
@@ -1,4 +1,4 @@
1
- import { BaseDb } from "./base-db";
1
+ import { BaseDb } from './classes/base-db';
2
2
  /* */
3
3
  /* */
4
4
  /* */
@@ -25,6 +25,9 @@ export class ConfigDatabase extends BaseDb {
25
25
  /* */
26
26
  /* */
27
27
  /* */
28
+ /* */
29
+ /* */
30
+ /* */
28
31
  return (void 0);
29
32
  }
30
33
  async getCodeEditor() {
@@ -40,4 +43,4 @@ export class ConfigDatabase extends BaseDb {
40
43
  }
41
44
  ;
42
45
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/config-database.ts
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWRhdGFiYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL2NvbmZpZy1kYXRhYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRW5DLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUlMLE1BQU0sU0FBUyxHQUFHO0lBQ2hCLE1BQU0sRUFBRSxFQUEwRDtDQUNuRSxDQUFBO0FBRUQsTUFBTSxPQUFPLGNBQWUsU0FBUSxNQUF3QjtJQUMxRCxZQUNFLEdBQXdCO1FBRXhCLEtBQUssQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFZLHFCQUFxQjtRQUMvQixPQUFPLHNCQUFzQixDQUFDO0lBQ2hDLENBQUM7SUFFTSxLQUFLLENBQUMsZ0JBQWdCO1FBQy9CLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFTSxLQUFLLENBQUMsYUFBYTtRQUM1QixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztDQUVGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxvRUFBb0UiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBjcm9zc1BsYXRmb3JtUGF0aCB9IGZyb20gXCJ0bnAtY29yZS9icm93c2VyXCI7XG5cbmltcG9ydCB0eXBlIHsgQmFzZVByb2plY3RSZXNvbHZlciB9IGZyb20gXCIuL2Jhc2UtcHJvamVjdC1yZXNvbHZlclwiO1xuaW1wb3J0IHsgQmFzZURiIH0gZnJvbSBcIi4vYmFzZS1kYlwiO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gXCIuLi9pbmRleFwiO1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5jb25zdCBkZWZhdWx0RGIgPSB7XG4gIGNvbmZpZzoge30gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbDsgfSxcbn1cblxuZXhwb3J0IGNsYXNzIENvbmZpZ0RhdGFiYXNlIGV4dGVuZHMgQmFzZURiPHR5cGVvZiBkZWZhdWx0RGI+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgaW5zOiBCYXNlUHJvamVjdFJlc29sdmVyLFxuICApIHtcbiAgICBzdXBlcihpbnMsICdjb25maWcnLCBkZWZhdWx0RGIpO1xuICB9XG4gIHByaXZhdGUgZ2V0IHNlbGVjdGVkQ29kZUVkaXRvcktleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnc2VsZWN0ZWQtY29kZS1lZGl0b3InO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNlbGVjdENvZGVFZGl0b3IoKTogUHJvbWlzZTwnY29kZScgfCAnaWRlYScgfCAnaWRlYTY0JyB8IHN0cmluZz4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRDb2RlRWRpdG9yKCk6IFByb21pc2U8J2NvZGUnIHwgJ2lkZWEnIHwgJ2lkZWE2NCcgfCBzdHJpbmc+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL2NvbmZpZy1kYXRhYmFzZS50cyJdfQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWRhdGFiYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL2NvbmZpZy1kYXRhYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFM0MsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBSUwsTUFBTSxTQUFTLEdBQUc7SUFDaEIsTUFBTSxFQUFFLEVBQXlEO0NBQ2xFLENBQUM7QUFFRixNQUFNLE9BQU8sY0FBZSxTQUFRLE1BQXdCO0lBQzFELFlBQVksR0FBd0I7UUFDbEMsS0FBSyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQVkscUJBQXFCO1FBQy9CLE9BQU8sc0JBQXNCLENBQUM7SUFDaEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxnQkFBZ0I7UUFHL0IsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVNLEtBQUssQ0FBQyxhQUFhO1FBQzVCLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0NBQ0Y7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLG9FQUFvRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmltcG9ydCB7IGNyb3NzUGxhdGZvcm1QYXRoIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5cbmltcG9ydCB0eXBlIHsgQmFzZVByb2plY3RSZXNvbHZlciB9IGZyb20gJy4vY2xhc3Nlcy9iYXNlLXByb2plY3QtcmVzb2x2ZXInO1xuaW1wb3J0IHsgQmFzZURiIH0gZnJvbSAnLi9jbGFzc2VzL2Jhc2UtZGInO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJy4uL2luZGV4Jztcbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cblxuY29uc3QgZGVmYXVsdERiID0ge1xuICBjb25maWc6IHt9IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfSxcbn07XG5cbmV4cG9ydCBjbGFzcyBDb25maWdEYXRhYmFzZSBleHRlbmRzIEJhc2VEYjx0eXBlb2YgZGVmYXVsdERiPiB7XG4gIGNvbnN0cnVjdG9yKGluczogQmFzZVByb2plY3RSZXNvbHZlcikge1xuICAgIHN1cGVyKGlucywgJ2NvbmZpZycsIGRlZmF1bHREYik7XG4gIH1cbiAgcHJpdmF0ZSBnZXQgc2VsZWN0ZWRDb2RlRWRpdG9yS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdzZWxlY3RlZC1jb2RlLWVkaXRvcic7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2VsZWN0Q29kZUVkaXRvcigpOiBQcm9taXNlPFxuICAgICdjb2RlJyB8ICdpZGVhJyB8ICdpZGVhNjQnIHwgc3RyaW5nXG4gID4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRDb2RlRWRpdG9yKCk6IFByb21pc2U8J2NvZGUnIHwgJ2lkZWEnIHwgJ2lkZWE2NCcgfCBzdHJpbmc+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvYmFzZS9jb25maWctZGF0YWJhc2UudHMiXX0=
@@ -112,4 +112,4 @@ export const CoreAngularProject = CoreProject.from({
112
112
  });
113
113
  ;
114
114
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/core-project.ts
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL2NvcmUtcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQWlCOUQsTUFBTSxTQUFTLEdBQUc7SUFDaEIsUUFBUSxFQUFFLEVBQUU7Q0FDYixDQUFDO0FBd0NGLE1BQU0sT0FBTyxXQUFXO2FBSVIsaUJBQVksR0FBdUIsRUFBRSxBQUF6QixDQUEwQjtJQUlwRCxNQUFNLENBQUMsSUFBSSxDQUNULE9BQTJEO1FBRS9ELEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBTUQ7UUE0QkE7O1dBRUc7UUFDSCxpQkFBWSxHQUE4QixFQUFFLENBQUM7SUEvQnRCLENBQUM7SUErQ3hCOztPQUVHO0lBQ0gsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksTUFBTTtRQUNSLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0QsQ0FBQzs7QUFJSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFjO0lBRWpFLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7SUFDL0IsT0FBTyxFQUFFLHlDQUF5QztJQUNsRCxZQUFZLEVBQUUsRUFBRTtJQUNoQixZQUFZLEVBQUUsT0FBTyxDQUFDLEVBQUU7UUFDMUIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLEVBQUU7UUFDaEMsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFDRCxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtRQUN2QyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7Q0FHRixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFjO0lBRTlELE9BQU8sRUFBRSxxQkFBcUI7SUFDOUIsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQztJQUMvQixPQUFPLEVBQUUsd0NBQXdDO0lBQ2pELFlBQVksRUFBRSxFQUFFO0lBQ2hCLFlBQVksRUFBRSxPQUFPLENBQUMsRUFBRTtRQUN0QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLEVBQUU7UUFDNUIsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDeEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLEVBQUU7UUFDNUIsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pDLENBQUM7Q0FFRixDQUFDLENBQUM7QUFFRixDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlFQUFpRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmltcG9ydCB7IF8sIHBhdGgsIGNyb3NzUGxhdGZvcm1QYXRoIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgdHlwZSB7IEJhc2VQcm9qZWN0IH0gZnJvbSAnLi9iYXNlLXByb2plY3QnO1xuaW1wb3J0IHsgQ0xBU1MgfSBmcm9tICd0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvYnJvd3Nlcic7XG5pbXBvcnQgeyBIZWxwZXJzLCBMaWJyYXJpZXNCdWlsZE9wdGlvbnMsIFRlc3RCdWlsZE9wdGlvbnMgfSBmcm9tICcuLi9pbmRleCc7XG5cblxuXG5leHBvcnQgdHlwZSBDb3JlUHJvamVjdEVudmlyb25tZW50ID0ge1xuICBzaG9ydE5hbWU/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBvbmxpbmVMaW5rPzogc3RyaW5nO1xufTtcblxuXG5cblxuY29uc3QgZGVmYXVsdERiID0ge1xuICBwcm9qZWN0czogW10sXG59O1xuXG5cblxuXG5leHBvcnQgdHlwZSBDb3JlQ29tbWFuZEFyZ09wdGlvbnM8UFJPSkVDVCBleHRlbmRzIEJhc2VQcm9qZWN0PGFueSxhbnk+PiA9IHtcbiAgcHJvamVjdD86IFBST0pFQ1Q7XG4gIC8qKlxuICAgKiB3YXRjaCBtb2RlXG4gICAqL1xuICB3YXRjaD86IGJvb2xlYW47XG4gIHByb2Q/OiBib29sZWFuO1xuICBkZWJ1Zz86IGJvb2xlYW47XG4gIGlzSW5SZWxlYXNlUHJvY2Vzcz86IGJvb2xlYW47XG4gIGxpYnJhcnlCdWlsZE9wdGlvbnM/OiBMaWJyYXJpZXNCdWlsZE9wdGlvbnM7XG4gIHRlc3RCdWlsZE9wdGlvbnM/OiBUZXN0QnVpbGRPcHRpb25zO1xuICAvKipcbiAgICogZmlyc3QgYXJnIGZyb20gY29tbWFuZCBsaW5lXG4gICAqL1xuICBmaXJzdEFyZzogc3RyaW5nO1xuICAvKipcbiAgICogTm90IHF1ZXN0aW9uIGZvciB1c2VyIGV4LlxuICAgKiAtIGF1dG9tYXRpYyBwcm9jZXNzIG9mIHBhdGNoIHJlbGVhc2VcbiAgICogLSBhdXRvbWF0aWMgZGVwbG95bWVudCBmb3IgZGVmYXVsdCBzZXJ2ZXJcbiAgICovXG4gIGF1dG9tYXRpY1Byb2Nlc3M/OiBib29sZWFuO1xuICAvKipcbiAgICogb3JpZ25hbCBhcmdzIHdpdGggcGFyYW1zXG4gICAqL1xuICBhcmdzV2l0aFBhcmFtczogc3RyaW5nO1xuICBjb3B5dG8/OiBzdHJpbmdbXTtcbiAgY29weXRvYWxsPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIGFyZ3MgZnJvbSBjb21tYW5kIGxpbmUgKGNsZWFybiBmcm9tIHBhcmFtcylcbiAgICovXG4gIGFyZ3M6IHN0cmluZ1tdO1xuICBleGl0Q2FsbGJhY2s6ICgpID0+IHZvaWQ7XG59O1xuXG5cbmV4cG9ydCBjbGFzcyBDb3JlUHJvamVjdDxQUk9KRUNUIGV4dGVuZHMgQmFzZVByb2plY3QgPSBCYXNlUHJvamVjdD4ge1xuXG5cblxuICBwdWJsaWMgc3RhdGljIGNvcmVQcm9qZWN0czogQ29yZVByb2plY3Q8YW55PltdID0gW107XG5cblxuXG4gIHN0YXRpYyBmcm9tPFByb2ogZXh0ZW5kcyBCYXNlUHJvamVjdCA9IEJhc2VQcm9qZWN0PGFueSxhbnk+PihcbiAgICBvcHRpb25zOiBPbWl0PENvcmVQcm9qZWN0PFByb2o+LCAnbmFtZScgfCAndXJsJyB8ICdicmFuY2gnPixcbiAgKTogQ29yZVByb2plY3Q8UHJvaj4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cblxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7fVxuXG5cblxuICBleHRlbmRzPzogQ29yZVByb2plY3Q8YW55PjtcbiAgY29sb3I/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBzZWNvbmQgY29sb3IgZm9yIHByb2plY3QgKG9wdGlvbmFsKVxuICAgKi9cbiAgc2Vjb25kQ29sb3I/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBzZWNvbmQgY29sb3IgZm9yIHByb2plY3QgKG9wdGlvbmFsKVxuICAgKi9cbiAgdGhpcmRDb2xvcj86IHN0cmluZztcbiAgbnBtUmVnaXN0cnk/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogc3NoIHVybCBmb3IgZ2l0IHJlcG9cbiAgICovXG4gIHVybFNTSD86IHN0cmluZztcbiAgLyoqXG4gICAqIGh0dHBzIHVybCBmb3IgZ2l0IHJlcG9cbiAgICovXG4gIHVybEh0dHA/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBtYWluIGJyYW5jaGVzIC0gZmlyc3QgaXMgZGVmYXVsdFxuICAgKi9cbiAgYnJhbmNoZXM6IHN0cmluZ1tdO1xuICAvKipcbiAgICogcHJvamVjdCBlbnZpcm9ubWVudHNcbiAgICovXG4gIGVudmlyb25tZW50cz86IENvcmVQcm9qZWN0RW52aXJvbm1lbnRbXSA9IFtdO1xuXG5cblxuICBzdGFydENvbW1hbmQ/OiAob3B0aW9uczogQ29yZUNvbW1hbmRBcmdPcHRpb25zPFBST0pFQ1Q+KSA9PiBQcm9taXNlPHZvaWQ+O1xuICByZWxhc2VDb21tYW5kPzogKG9wdGlvbnM6IENvcmVDb21tYW5kQXJnT3B0aW9uczxQUk9KRUNUPikgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcHVibGlzaENvbW1hbmQ/OiAob3B0aW9uczogQ29yZUNvbW1hbmRBcmdPcHRpb25zPFBST0pFQ1Q+KSA9PiBQcm9taXNlPHZvaWQ+O1xuICBkZXBsb3lDb21tYW5kPzogKG9wdGlvbnM6IENvcmVDb21tYW5kQXJnT3B0aW9uczxQUk9KRUNUPikgPT4gUHJvbWlzZTx2b2lkPjtcbiAgdGVzdENvbW1hbmQ/OiAob3B0aW9uczogQ29yZUNvbW1hbmRBcmdPcHRpb25zPFBST0pFQ1Q+KSA9PiBQcm9taXNlPHZvaWQ+O1xuICBidWlsZENvbW1hbmQ/OiAob3B0aW9uczogQ29yZUNvbW1hbmRBcmdPcHRpb25zPFBST0pFQ1Q+KSA9PiBQcm9taXNlPHZvaWQ+O1xuICBkb2NzQ29tbWFuZD86IChvcHRpb25zOiBDb3JlQ29tbWFuZEFyZ09wdGlvbnM8UFJPSkVDVD4pID0+IFByb21pc2U8dm9pZD47XG4gIC8qKlxuICAgKiBmdW5jdGlvbiB0byByZWNvZ25pemUgcHJvamVjdFxuICAgKi9cbiAgcmVjb2duaXplZEZuOiAocHJvamVjdDogUFJPSkVDVCkgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogY29yZSBwb3JqZWN0IG5hbWUgZnJvbSByZXBvIGJhc2VuYW1lXG4gICAqL1xuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gcGF0aC5iYXNlbmFtZSh0aGlzLnVybCkucmVwbGFjZSgvXFwuZ2l0JC8sICcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBtYWluIChkZWZhdWx0IGZvciByZXNldCkgYnJhbmNoXG4gICAqL1xuICBnZXQgYnJhbmNoKCkge1xuICAgIHJldHVybiBfLmZpcnN0KHRoaXMuYnJhbmNoZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIHVybCBmb3IgZ2l0IHJlcG9cbiAgICovXG4gIGdldCB1cmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMudXJsSHR0cCA/IHRoaXMudXJsSHR0cCA6IHRoaXMudXJsU1NIKSB8fCAnJztcbiAgfVxuXG59XG5cbmV4cG9ydCBjb25zdCBDb3JlVHlwZXNjcmlwdFByb2plY3QgPSBDb3JlUHJvamVjdC5mcm9tPEJhc2VQcm9qZWN0Pih7XG5cbiAgYnJhbmNoZXM6IFsnbWFzdGVyJywgJ2RldmVsb3AnXSxcbiAgdXJsSHR0cDogJ2h0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdCcsXG4gIGVudmlyb25tZW50czogW10sXG4gIHJlY29nbml6ZWRGbjogcHJvamVjdCA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9LFxuICBhc3luYyBzdGFydENvbW1hbmQoeyBwcm9qZWN0IH0pIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9LFxuICBhc3luYyBidWlsZENvbW1hbmQoeyBwcm9qZWN0LCB3YXRjaCB9KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH0sXG5cblxufSk7XG5cbmV4cG9ydCBjb25zdCBDb3JlQW5ndWxhclByb2plY3QgPSBDb3JlUHJvamVjdC5mcm9tPEJhc2VQcm9qZWN0Pih7XG5cbiAgZXh0ZW5kczogQ29yZVR5cGVzY3JpcHRQcm9qZWN0LFxuICBicmFuY2hlczogWydtYXN0ZXInLCAnZGV2ZWxvcCddLFxuICB1cmxIdHRwOiAnaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci1jbGknLFxuICBlbnZpcm9ubWVudHM6IFtdLFxuICByZWNvZ25pemVkRm46IHByb2plY3QgPT4ge1xuICAgIHJldHVybiBwcm9qZWN0Lmhhc0ZpbGUoJ2FuZ3VsYXIuanNvbicpO1xuICB9LFxuICBhc3luYyBzdGFydENvbW1hbmQoeyBwcm9qZWN0IH0pIHtcbiAgICBhd2FpdCBwcm9qZWN0Lm5wbUhlbHBlcnMubWFrZVN1cmVOb2RlTW9kdWxlc0luc3RhbGxlZCgpO1xuICAgIGNvbnN0IHBvcnQgPSBhd2FpdCBwcm9qZWN0LmFzc2lnbkZyZWVQb3J0KDQyMDApO1xuICAgIHByb2plY3QucnVuKGBucG0tcnVuIG5nIHNlcnZlIC0tcG9ydCAke3BvcnR9YCkuc3luYygpO1xuICB9LFxuICBhc3luYyBidWlsZENvbW1hbmQoeyBwcm9qZWN0IH0pIHtcbiAgICBhd2FpdCBwcm9qZWN0Lm5wbUhlbHBlcnMubWFrZVN1cmVOb2RlTW9kdWxlc0luc3RhbGxlZCgpO1xuICAgIHByb2plY3QucnVuKGBucG0tcnVuIG5nIGJ1aWxkYCkuc3luYygpO1xuICB9LFxuXG59KTtcblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL2NvcmUtcHJvamVjdC50cyJdfQ==
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL2NvcmUtcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQWlCOUQsTUFBTSxTQUFTLEdBQUc7SUFDaEIsUUFBUSxFQUFFLEVBQUU7Q0FDYixDQUFDO0FBd0NGLE1BQU0sT0FBTyxXQUFXO2FBSVIsaUJBQVksR0FBdUIsRUFBRSxBQUF6QixDQUEwQjtJQUlwRCxNQUFNLENBQUMsSUFBSSxDQUNULE9BQTJEO1FBRS9ELEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBTUQ7UUE0QkE7O1dBRUc7UUFDSCxpQkFBWSxHQUE4QixFQUFFLENBQUM7SUEvQnRCLENBQUM7SUErQ3hCOztPQUVHO0lBQ0gsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksTUFBTTtRQUNSLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0QsQ0FBQzs7QUFJSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFjO0lBRWpFLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7SUFDL0IsT0FBTyxFQUFFLHlDQUF5QztJQUNsRCxZQUFZLEVBQUUsRUFBRTtJQUNoQixZQUFZLEVBQUUsT0FBTyxDQUFDLEVBQUU7UUFDMUIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLEVBQUU7UUFDaEMsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFDRCxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtRQUN2QyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7Q0FHRixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFjO0lBRTlELE9BQU8sRUFBRSxxQkFBcUI7SUFDOUIsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQztJQUMvQixPQUFPLEVBQUUsd0NBQXdDO0lBQ2pELFlBQVksRUFBRSxFQUFFO0lBQ2hCLFlBQVksRUFBRSxPQUFPLENBQUMsRUFBRTtRQUN0QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLEVBQUU7UUFDNUIsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDeEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLEVBQUU7UUFDNUIsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pDLENBQUM7Q0FFRixDQUFDLENBQUM7QUFFRixDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlFQUFpRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmltcG9ydCB7IF8sIHBhdGgsIGNyb3NzUGxhdGZvcm1QYXRoIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgdHlwZSB7IEJhc2VQcm9qZWN0IH0gZnJvbSAnLi9jbGFzc2VzL2Jhc2UtcHJvamVjdCc7XG5pbXBvcnQgeyBDTEFTUyB9IGZyb20gJ3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy9icm93c2VyJztcbmltcG9ydCB7IEhlbHBlcnMsIExpYnJhcmllc0J1aWxkT3B0aW9ucywgVGVzdEJ1aWxkT3B0aW9ucyB9IGZyb20gJy4uL2luZGV4JztcblxuXG5cbmV4cG9ydCB0eXBlIENvcmVQcm9qZWN0RW52aXJvbm1lbnQgPSB7XG4gIHNob3J0TmFtZT86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIG9ubGluZUxpbms/OiBzdHJpbmc7XG59O1xuXG5cblxuXG5jb25zdCBkZWZhdWx0RGIgPSB7XG4gIHByb2plY3RzOiBbXSxcbn07XG5cblxuXG5cbmV4cG9ydCB0eXBlIENvcmVDb21tYW5kQXJnT3B0aW9uczxQUk9KRUNUIGV4dGVuZHMgQmFzZVByb2plY3Q8YW55LGFueT4+ID0ge1xuICBwcm9qZWN0PzogUFJPSkVDVDtcbiAgLyoqXG4gICAqIHdhdGNoIG1vZGVcbiAgICovXG4gIHdhdGNoPzogYm9vbGVhbjtcbiAgcHJvZD86IGJvb2xlYW47XG4gIGRlYnVnPzogYm9vbGVhbjtcbiAgaXNJblJlbGVhc2VQcm9jZXNzPzogYm9vbGVhbjtcbiAgbGlicmFyeUJ1aWxkT3B0aW9ucz86IExpYnJhcmllc0J1aWxkT3B0aW9ucztcbiAgdGVzdEJ1aWxkT3B0aW9ucz86IFRlc3RCdWlsZE9wdGlvbnM7XG4gIC8qKlxuICAgKiBmaXJzdCBhcmcgZnJvbSBjb21tYW5kIGxpbmVcbiAgICovXG4gIGZpcnN0QXJnOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBOb3QgcXVlc3Rpb24gZm9yIHVzZXIgZXguXG4gICAqIC0gYXV0b21hdGljIHByb2Nlc3Mgb2YgcGF0Y2ggcmVsZWFzZVxuICAgKiAtIGF1dG9tYXRpYyBkZXBsb3ltZW50IGZvciBkZWZhdWx0IHNlcnZlclxuICAgKi9cbiAgYXV0b21hdGljUHJvY2Vzcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBvcmlnbmFsIGFyZ3Mgd2l0aCBwYXJhbXNcbiAgICovXG4gIGFyZ3NXaXRoUGFyYW1zOiBzdHJpbmc7XG4gIGNvcHl0bz86IHN0cmluZ1tdO1xuICBjb3B5dG9hbGw/OiBib29sZWFuO1xuICAvKipcbiAgICogYXJncyBmcm9tIGNvbW1hbmQgbGluZSAoY2xlYXJuIGZyb20gcGFyYW1zKVxuICAgKi9cbiAgYXJnczogc3RyaW5nW107XG4gIGV4aXRDYWxsYmFjazogKCkgPT4gdm9pZDtcbn07XG5cblxuZXhwb3J0IGNsYXNzIENvcmVQcm9qZWN0PFBST0pFQ1QgZXh0ZW5kcyBCYXNlUHJvamVjdCA9IEJhc2VQcm9qZWN0PiB7XG5cblxuXG4gIHB1YmxpYyBzdGF0aWMgY29yZVByb2plY3RzOiBDb3JlUHJvamVjdDxhbnk+W10gPSBbXTtcblxuXG5cbiAgc3RhdGljIGZyb208UHJvaiBleHRlbmRzIEJhc2VQcm9qZWN0ID0gQmFzZVByb2plY3Q8YW55LGFueT4+KFxuICAgIG9wdGlvbnM6IE9taXQ8Q29yZVByb2plY3Q8UHJvaj4sICduYW1lJyB8ICd1cmwnIHwgJ2JyYW5jaCc+LFxuICApOiBDb3JlUHJvamVjdDxQcm9qPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuXG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG5cblxuXG4gIGV4dGVuZHM/OiBDb3JlUHJvamVjdDxhbnk+O1xuICBjb2xvcj86IHN0cmluZztcbiAgLyoqXG4gICAqIHNlY29uZCBjb2xvciBmb3IgcHJvamVjdCAob3B0aW9uYWwpXG4gICAqL1xuICBzZWNvbmRDb2xvcj86IHN0cmluZztcbiAgLyoqXG4gICAqIHNlY29uZCBjb2xvciBmb3IgcHJvamVjdCAob3B0aW9uYWwpXG4gICAqL1xuICB0aGlyZENvbG9yPzogc3RyaW5nO1xuICBucG1SZWdpc3RyeT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBzc2ggdXJsIGZvciBnaXQgcmVwb1xuICAgKi9cbiAgdXJsU1NIPzogc3RyaW5nO1xuICAvKipcbiAgICogaHR0cHMgdXJsIGZvciBnaXQgcmVwb1xuICAgKi9cbiAgdXJsSHR0cD86IHN0cmluZztcbiAgLyoqXG4gICAqIG1haW4gYnJhbmNoZXMgLSBmaXJzdCBpcyBkZWZhdWx0XG4gICAqL1xuICBicmFuY2hlczogc3RyaW5nW107XG4gIC8qKlxuICAgKiBwcm9qZWN0IGVudmlyb25tZW50c1xuICAgKi9cbiAgZW52aXJvbm1lbnRzPzogQ29yZVByb2plY3RFbnZpcm9ubWVudFtdID0gW107XG5cblxuXG4gIHN0YXJ0Q29tbWFuZD86IChvcHRpb25zOiBDb3JlQ29tbWFuZEFyZ09wdGlvbnM8UFJPSkVDVD4pID0+IFByb21pc2U8dm9pZD47XG4gIHJlbGFzZUNvbW1hbmQ/OiAob3B0aW9uczogQ29yZUNvbW1hbmRBcmdPcHRpb25zPFBST0pFQ1Q+KSA9PiBQcm9taXNlPHZvaWQ+O1xuICBwdWJsaXNoQ29tbWFuZD86IChvcHRpb25zOiBDb3JlQ29tbWFuZEFyZ09wdGlvbnM8UFJPSkVDVD4pID0+IFByb21pc2U8dm9pZD47XG4gIGRlcGxveUNvbW1hbmQ/OiAob3B0aW9uczogQ29yZUNvbW1hbmRBcmdPcHRpb25zPFBST0pFQ1Q+KSA9PiBQcm9taXNlPHZvaWQ+O1xuICB0ZXN0Q29tbWFuZD86IChvcHRpb25zOiBDb3JlQ29tbWFuZEFyZ09wdGlvbnM8UFJPSkVDVD4pID0+IFByb21pc2U8dm9pZD47XG4gIGJ1aWxkQ29tbWFuZD86IChvcHRpb25zOiBDb3JlQ29tbWFuZEFyZ09wdGlvbnM8UFJPSkVDVD4pID0+IFByb21pc2U8dm9pZD47XG4gIGRvY3NDb21tYW5kPzogKG9wdGlvbnM6IENvcmVDb21tYW5kQXJnT3B0aW9uczxQUk9KRUNUPikgPT4gUHJvbWlzZTx2b2lkPjtcbiAgLyoqXG4gICAqIGZ1bmN0aW9uIHRvIHJlY29nbml6ZSBwcm9qZWN0XG4gICAqL1xuICByZWNvZ25pemVkRm46IChwcm9qZWN0OiBQUk9KRUNUKSA9PiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBjb3JlIHBvcmplY3QgbmFtZSBmcm9tIHJlcG8gYmFzZW5hbWVcbiAgICovXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiBwYXRoLmJhc2VuYW1lKHRoaXMudXJsKS5yZXBsYWNlKC9cXC5naXQkLywgJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIG1haW4gKGRlZmF1bHQgZm9yIHJlc2V0KSBicmFuY2hcbiAgICovXG4gIGdldCBicmFuY2goKSB7XG4gICAgcmV0dXJuIF8uZmlyc3QodGhpcy5icmFuY2hlcyk7XG4gIH1cblxuICAvKipcbiAgICogdXJsIGZvciBnaXQgcmVwb1xuICAgKi9cbiAgZ2V0IHVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy51cmxIdHRwID8gdGhpcy51cmxIdHRwIDogdGhpcy51cmxTU0gpIHx8ICcnO1xuICB9XG5cbn1cblxuZXhwb3J0IGNvbnN0IENvcmVUeXBlc2NyaXB0UHJvamVjdCA9IENvcmVQcm9qZWN0LmZyb208QmFzZVByb2plY3Q+KHtcblxuICBicmFuY2hlczogWydtYXN0ZXInLCAnZGV2ZWxvcCddLFxuICB1cmxIdHRwOiAnaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0JyxcbiAgZW52aXJvbm1lbnRzOiBbXSxcbiAgcmVjb2duaXplZEZuOiBwcm9qZWN0ID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH0sXG4gIGFzeW5jIHN0YXJ0Q29tbWFuZCh7IHByb2plY3QgfSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH0sXG4gIGFzeW5jIGJ1aWxkQ29tbWFuZCh7IHByb2plY3QsIHdhdGNoIH0pIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfSxcblxuXG59KTtcblxuZXhwb3J0IGNvbnN0IENvcmVBbmd1bGFyUHJvamVjdCA9IENvcmVQcm9qZWN0LmZyb208QmFzZVByb2plY3Q+KHtcblxuICBleHRlbmRzOiBDb3JlVHlwZXNjcmlwdFByb2plY3QsXG4gIGJyYW5jaGVzOiBbJ21hc3RlcicsICdkZXZlbG9wJ10sXG4gIHVybEh0dHA6ICdodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyLWNsaScsXG4gIGVudmlyb25tZW50czogW10sXG4gIHJlY29nbml6ZWRGbjogcHJvamVjdCA9PiB7XG4gICAgcmV0dXJuIHByb2plY3QuaGFzRmlsZSgnYW5ndWxhci5qc29uJyk7XG4gIH0sXG4gIGFzeW5jIHN0YXJ0Q29tbWFuZCh7IHByb2plY3QgfSkge1xuICAgIGF3YWl0IHByb2plY3QubnBtSGVscGVycy5tYWtlU3VyZU5vZGVNb2R1bGVzSW5zdGFsbGVkKCk7XG4gICAgY29uc3QgcG9ydCA9IGF3YWl0IHByb2plY3QuYXNzaWduRnJlZVBvcnQoNDIwMCk7XG4gICAgcHJvamVjdC5ydW4oYG5wbS1ydW4gbmcgc2VydmUgLS1wb3J0ICR7cG9ydH1gKS5zeW5jKCk7XG4gIH0sXG4gIGFzeW5jIGJ1aWxkQ29tbWFuZCh7IHByb2plY3QgfSkge1xuICAgIGF3YWl0IHByb2plY3QubnBtSGVscGVycy5tYWtlU3VyZU5vZGVNb2R1bGVzSW5zdGFsbGVkKCk7XG4gICAgcHJvamVjdC5ydW4oYG5wbS1ydW4gbmcgYnVpbGRgKS5zeW5jKCk7XG4gIH0sXG5cbn0pO1xuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2Jhc2UvY29yZS1wcm9qZWN0LnRzIl19
@@ -1,26 +1,10 @@
1
- export * from './base-project';
2
- export * from './base-project-resolver';
3
- export * from './base-feature-for-project';
4
- export * from './base-library-build';
5
- export * from './base-npm-helpers';
6
- export * from './base-linked-projects';
7
- export * from './base-git';
8
- export * from './base-vscode';
9
- export * from './base-release-process';
10
- export * from './base-compiler-for-project';
11
- export * from './base-debounce-compiler-for-project';
12
- export * from './base-quick-fixes';
13
- export * from './base-cli-worker-controller';
14
- export * from './base-cli-worker';
15
- export * from './base-cli-worker-config';
1
+ export * from './classes';
16
2
  export * from './commit-data';
17
3
  export * from './core-project';
18
4
  export * from './linked-project';
19
- /* */
20
- /* */
21
- /* */
5
+ export * from './tcp-udp-ports';
22
6
  /* */
23
7
  /* */
24
8
  ;
25
9
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/index.ts
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFHSixDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDBEQUEwRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtcHJvamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtcHJvamVjdC1yZXNvbHZlcic7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtZmVhdHVyZS1mb3ItcHJvamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtbGlicmFyeS1idWlsZCc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtbnBtLWhlbHBlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlLWxpbmtlZC1wcm9qZWN0cyc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtZ2l0JztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS12c2NvZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlLXJlbGVhc2UtcHJvY2Vzcyc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtY29tcGlsZXItZm9yLXByb2plY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlLWRlYm91bmNlLWNvbXBpbGVyLWZvci1wcm9qZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1xdWljay1maXhlcyc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtY2xpLXdvcmtlci1jb250cm9sbGVyJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1jbGktd29ya2VyJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1jbGktd29ya2VyLWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1pdC1kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS1wcm9qZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGlua2VkLXByb2plY3QnO1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2Jhc2UvaW5kZXgudHMiXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsS0FBSztBQUNMLEtBQUs7QUFHSixDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDBEQUEwRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21taXQtZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUtcHJvamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpbmtlZC1wcm9qZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vdGNwLXVkcC1wb3J0cyc7XG4vKiAqL1xuLyogKi9cbiAgXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvYmFzZS9pbmRleC50cyJdfQ==
@@ -1,4 +1,4 @@
1
- import { BaseDb } from "./base-db";
1
+ import { BaseDb } from "./classes/base-db";
2
2
  const defaultDb = {
3
3
  projects: [],
4
4
  };
@@ -15,4 +15,4 @@ export class ProjectDatabase extends BaseDb {
15
15
  }
16
16
  ;
17
17
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/project-database.ts
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1kYXRhYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvYmFzZS9wcm9qZWN0LWRhdGFiYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHbkMsTUFBTSxTQUFTLEdBQUc7SUFDaEIsUUFBUSxFQUFFLEVBRVA7Q0FDSixDQUFBO0FBRUQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsTUFBd0I7SUFDM0QsWUFDRSxHQUF3QjtRQUV4QixLQUFLLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsS0FBSyxDQUFDLG9CQUFvQjtRQUM1QixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0NBQ0Y7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHFFQUFxRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmltcG9ydCB7IEhlbHBlcnMsIGNyb3NzUGxhdGZvcm1QYXRoIH0gZnJvbSBcInRucC1jb3JlL2Jyb3dzZXJcIjtcbmltcG9ydCB0eXBlIHsgQmFzZVByb2plY3RSZXNvbHZlciB9IGZyb20gXCIuL2Jhc2UtcHJvamVjdC1yZXNvbHZlclwiO1xuaW1wb3J0IHsgQmFzZURiIH0gZnJvbSBcIi4vYmFzZS1kYlwiO1xuXG5cbmNvbnN0IGRlZmF1bHREYiA9IHtcbiAgcHJvamVjdHM6IFtdIGFzIHtcbiAgICBsb2NhdGlvbjogc3RyaW5nO1xuICB9W10sXG59XG5cbmV4cG9ydCBjbGFzcyBQcm9qZWN0RGF0YWJhc2UgZXh0ZW5kcyBCYXNlRGI8dHlwZW9mIGRlZmF1bHREYj57XG4gIGNvbnN0cnVjdG9yKFxuICAgIGluczogQmFzZVByb2plY3RSZXNvbHZlcixcbiAgKSB7XG4gICAgc3VwZXIoaW5zLCAncHJvamVjdHMnLCBkZWZhdWx0RGIpO1xuICB9XG5cbiAgYXN5bmMgZ2V0QWxsUHJvamVjdHNGcm9tREIoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvYmFzZS9wcm9qZWN0LWRhdGFiYXNlLnRzIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1kYXRhYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvYmFzZS9wcm9qZWN0LWRhdGFiYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUczQyxNQUFNLFNBQVMsR0FBRztJQUNoQixRQUFRLEVBQUUsRUFFUDtDQUNKLENBQUE7QUFFRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxNQUF3QjtJQUMzRCxZQUNFLEdBQXdCO1FBRXhCLEtBQUssQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CO1FBQzVCLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7Q0FDRjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMscUVBQXFFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgSGVscGVycywgY3Jvc3NQbGF0Zm9ybVBhdGggfSBmcm9tIFwidG5wLWNvcmUvYnJvd3NlclwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlUHJvamVjdFJlc29sdmVyIH0gZnJvbSBcIi4vY2xhc3Nlcy9iYXNlLXByb2plY3QtcmVzb2x2ZXJcIjtcbmltcG9ydCB7IEJhc2VEYiB9IGZyb20gXCIuL2NsYXNzZXMvYmFzZS1kYlwiO1xuXG5cbmNvbnN0IGRlZmF1bHREYiA9IHtcbiAgcHJvamVjdHM6IFtdIGFzIHtcbiAgICBsb2NhdGlvbjogc3RyaW5nO1xuICB9W10sXG59XG5cbmV4cG9ydCBjbGFzcyBQcm9qZWN0RGF0YWJhc2UgZXh0ZW5kcyBCYXNlRGI8dHlwZW9mIGRlZmF1bHREYj57XG4gIGNvbnN0cnVjdG9yKFxuICAgIGluczogQmFzZVByb2plY3RSZXNvbHZlcixcbiAgKSB7XG4gICAgc3VwZXIoaW5zLCAncHJvamVjdHMnLCBkZWZhdWx0RGIpO1xuICB9XG5cbiAgYXN5bmMgZ2V0QWxsUHJvamVjdHNGcm9tREIoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvYmFzZS9wcm9qZWN0LWRhdGFiYXNlLnRzIl19
@@ -0,0 +1,7 @@
1
+ export * from './not-assignable-port.entity';
2
+ export * from './ports.entity';
3
+ export * from './ports.controller';
4
+ export * from './tcp-upd-ports.worker';
5
+ ;
6
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/base/tcp-udp-ports/index.ts
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UvdGNwLXVkcC1wb3J0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHdCQUF3QixDQUFDO0FBRXRDLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsd0VBQXdFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmV4cG9ydCAqIGZyb20gJy4vbm90LWFzc2lnbmFibGUtcG9ydC5lbnRpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9wb3J0cy5lbnRpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9wb3J0cy5jb250cm9sbGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdGNwLXVwZC1wb3J0cy53b3JrZXInO1xuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2Jhc2UvdGNwLXVkcC1wb3J0cy9pbmRleC50cyJdfQ==
@@ -0,0 +1,19 @@
1
+ var NotAssignablePort_1;
2
+ import { __decorate } from "tslib";
3
+ import { Taon } from 'taon/browser';
4
+ import { _ } from 'tnp-core/browser';
5
+ let NotAssignablePort = NotAssignablePort_1 = class NotAssignablePort extends Taon.Base.Entity {
6
+ static from(opt) {
7
+ return _.merge(new NotAssignablePort_1(), opt);
8
+ }
9
+ };
10
+ NotAssignablePort = NotAssignablePort_1 = __decorate([
11
+ Taon.Entity({
12
+ className: 'NotAssignablePort',
13
+ uniqueKeyProp: 'port',
14
+ })
15
+ ], NotAssignablePort);
16
+ export { NotAssignablePort };
17
+ ;
18
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/base/tcp-udp-ports/not-assignable-port.entity.ts
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90LWFzc2lnbmFibGUtcG9ydC5lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UvdGNwLXVkcC1wb3J0cy9ub3QtYXNzaWduYWJsZS1wb3J0LmVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBTTlCLElBQU0saUJBQWlCLHlCQUF2QixNQUFNLGlCQUFrQixTQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtJQUNyRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQXVEO1FBQ2pFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLG1CQUFpQixFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQXNCRixDQUFBO0FBekJZLGlCQUFpQjtJQUo3QixJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ1gsU0FBUyxFQUFFLG1CQUFtQjtRQUM5QixhQUFhLEVBQUUsTUFBTTtLQUN0QixDQUFDO0dBQ1csaUJBQWlCLENBeUI3Qjs7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDZGQUE2RiIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBUYW9uIH0gZnJvbSAndGFvbi9icm93c2VyJztcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcblxuQFRhb24uRW50aXR5KHtcbiAgY2xhc3NOYW1lOiAnTm90QXNzaWduYWJsZVBvcnQnLFxuICB1bmlxdWVLZXlQcm9wOiAncG9ydCcsXG59KVxuZXhwb3J0IGNsYXNzIE5vdEFzc2lnbmFibGVQb3J0IGV4dGVuZHMgVGFvbi5CYXNlLkVudGl0eSB7XG4gIHN0YXRpYyBmcm9tKG9wdDogT21pdDxOb3RBc3NpZ25hYmxlUG9ydCwgJ3ZlcnNpb24nIHwgJ18nIHwgJ2Nsb25lJz4pIHtcbiAgICByZXR1cm4gXy5tZXJnZShuZXcgTm90QXNzaWduYWJsZVBvcnQoKSwgb3B0KTtcbiAgfVxuXG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgcG9ydDogbnVtYmVyO1xuXG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgc2VydmljZUlkOiBzdHJpbmc7XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL3RjcC11ZHAtcG9ydHMvbm90LWFzc2lnbmFibGUtcG9ydC5lbnRpdHkudHMiXX0=
@@ -0,0 +1,108 @@
1
+ import { __decorate, __metadata, __param } from "tslib";
2
+ import { Taon } from 'taon/browser';
3
+ import { BaseCliWorkerController } from '../classes/base-cli-worker-controller';
4
+ let PortsController = class PortsController extends BaseCliWorkerController {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.START_PORT = 3000;
8
+ this.END_PORT = 6000;
9
+ this.takenByOsPorts = new Map();
10
+ this.assignedPorts = new Map();
11
+ }
12
+ get firstFreePort() {
13
+ if (!this.assignedPorts) {
14
+ return null;
15
+ }
16
+ return Array.from(this.assignedPorts.values()).find(p => p.status === 'unassigned');
17
+ }
18
+ firstUnassignedPortMoreThan(port) {
19
+ if (!this.assignedPorts) {
20
+ return null;
21
+ }
22
+ return Array.from(this.assignedPorts.values()).find(p => p.status === 'unassigned' && p.port > port);
23
+ }
24
+ getPortByStatus(status) {
25
+ return async () => {
26
+ if (status === 'assigned-taken-by-os') {
27
+ return Array.from(this.takenByOsPorts.values());
28
+ }
29
+ return Array.from(this.assignedPorts.values()).filter(f => f.status === status);
30
+ };
31
+ }
32
+ /**
33
+ * @param uniqueServiceName unique service name
34
+ * @param startFrom start searching for free port from this number
35
+ * @returns
36
+ */
37
+ registerAndAssignPort(uniqueServiceName, startFrom) {
38
+ /* */
39
+ /* */
40
+ /* */
41
+ /* */
42
+ /* */
43
+ /* */
44
+ /* */
45
+ /* */
46
+ /* */
47
+ /* */
48
+ /* */
49
+ /* */
50
+ /* */
51
+ /* */
52
+ /* */
53
+ /* */
54
+ /* */
55
+ /* */
56
+ /* */
57
+ /* */
58
+ /* */
59
+ /* */
60
+ /* */
61
+ /* */
62
+ /* */
63
+ /* */
64
+ /* */
65
+ /* */
66
+ /* */
67
+ /* */
68
+ /* */
69
+ /* */
70
+ /* */
71
+ /* */
72
+ /* */
73
+ /* */
74
+ /* */
75
+ /* */
76
+ /* */
77
+ /* */
78
+ /* */
79
+ /* */
80
+ /* */
81
+ /* */
82
+ return (void 0);
83
+ }
84
+ };
85
+ __decorate([
86
+ Taon.Http.GET(),
87
+ __param(0, Taon.Http.Param.Query('status')),
88
+ __metadata("design:type", Function),
89
+ __metadata("design:paramtypes", [String]),
90
+ __metadata("design:returntype", Object)
91
+ ], PortsController.prototype, "getPortByStatus", null);
92
+ __decorate([
93
+ Taon.Http.PUT(),
94
+ __param(0, Taon.Http.Param.Query('uniqueServiceName')),
95
+ __param(1, Taon.Http.Param.Query('startFrom')),
96
+ __metadata("design:type", Function),
97
+ __metadata("design:paramtypes", [String, Number]),
98
+ __metadata("design:returntype", Object)
99
+ ], PortsController.prototype, "registerAndAssignPort", null);
100
+ PortsController = __decorate([
101
+ Taon.Controller({
102
+ className: 'PortsController',
103
+ })
104
+ ], PortsController);
105
+ export { PortsController };
106
+ ;
107
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/base/tcp-udp-ports/ports.controller.ts
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydHMuY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvYmFzZS90Y3AtdWRwLXBvcnRzL3BvcnRzLmNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFcEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFPekUsSUFBTSxlQUFlLEdBQXJCLE1BQU0sZUFBZ0IsU0FBUSx1QkFBdUI7SUFBckQ7O1FBQ0UsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ1AsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBNkIsQ0FBQztRQUN0RCxrQkFBYSxHQUFHLElBQUksR0FBRyxFQUFnQixDQUFDO0lBOEYxRCxDQUFDO0lBNUZDLElBQUksYUFBYTtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ2pELENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxZQUFZLENBQy9CLENBQUM7SUFDSixDQUFDO0lBRVMsMkJBQTJCLENBQUMsSUFBWTtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNqRCxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssWUFBWSxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUNoRCxDQUFDO0lBQ0osQ0FBQztJQUlELGVBQWUsQ0FDb0IsTUFBa0I7UUFFbkQsT0FBTyxLQUFLLElBQUksRUFBRTtZQUNoQixJQUFJLE1BQU0sS0FBSyxzQkFBc0IsRUFBRSxDQUFDO2dCQUN0QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ2xELENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FDbkQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FDekIsQ0FBQztRQUNKLENBQUMsQ0FBQztJQUNKLENBQUM7SUFJRDs7OztPQUlHO0lBRUgscUJBQXFCLENBQ3lCLGlCQUF5QixFQUNqQyxTQUFrQjtRQUUxRCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7Q0FFRixDQUFBO0FBeEVDO0lBREMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7SUFFYixXQUFBLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTs7OztzREFVakM7QUFVRDtJQURDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO0lBRWIsV0FBQSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUMxQyxXQUFBLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQTs7Ozs0REErQ3BDO0FBaEdVLGVBQWU7SUFIM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNmLFNBQVMsRUFBRSxpQkFBaUI7S0FDN0IsQ0FBQztHQUNXLGVBQWUsQ0FrRzNCOztBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUZBQW1GIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IFRhb24gfSBmcm9tICd0YW9uL2Jyb3dzZXInO1xuaW1wb3J0IHsgXywgVXRpbHNPcyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgQmFzZUNsaVdvcmtlckNvbnRyb2xsZXIgfSBmcm9tICcuLi9jbGFzc2VzL2Jhc2UtY2xpLXdvcmtlci1jb250cm9sbGVyJztcbmltcG9ydCB7IFBvcnQsIFBvcnRTdGF0dXMgfSBmcm9tICcuL3BvcnRzLmVudGl0eSc7XG5pbXBvcnQgeyBOb3RBc3NpZ25hYmxlUG9ydCB9IGZyb20gJy4vbm90LWFzc2lnbmFibGUtcG9ydC5lbnRpdHknO1xuXG5AVGFvbi5Db250cm9sbGVyKHtcbiAgY2xhc3NOYW1lOiAnUG9ydHNDb250cm9sbGVyJyxcbn0pXG5leHBvcnQgY2xhc3MgUG9ydHNDb250cm9sbGVyIGV4dGVuZHMgQmFzZUNsaVdvcmtlckNvbnRyb2xsZXIge1xuICBwdWJsaWMgU1RBUlRfUE9SVCA9IDMwMDA7XG4gIHB1YmxpYyBFTkRfUE9SVCA9IDYwMDA7XG4gIHB1YmxpYyByZWFkb25seSB0YWtlbkJ5T3NQb3J0cyA9IG5ldyBNYXA8bnVtYmVyLCBOb3RBc3NpZ25hYmxlUG9ydD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGFzc2lnbmVkUG9ydHMgPSBuZXcgTWFwPHN0cmluZywgUG9ydD4oKTtcblxuICBnZXQgZmlyc3RGcmVlUG9ydCgpIHtcbiAgICBpZiAoIXRoaXMuYXNzaWduZWRQb3J0cykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuYXNzaWduZWRQb3J0cy52YWx1ZXMoKSkuZmluZChcbiAgICAgIHAgPT4gcC5zdGF0dXMgPT09ICd1bmFzc2lnbmVkJyxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZpcnN0VW5hc3NpZ25lZFBvcnRNb3JlVGhhbihwb3J0OiBudW1iZXIpIHtcbiAgICBpZiAoIXRoaXMuYXNzaWduZWRQb3J0cykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuYXNzaWduZWRQb3J0cy52YWx1ZXMoKSkuZmluZChcbiAgICAgIHAgPT4gcC5zdGF0dXMgPT09ICd1bmFzc2lnbmVkJyAmJiBwLnBvcnQgPiBwb3J0LFxuICAgICk7XG4gIH1cblxuXG4gIEBUYW9uLkh0dHAuR0VUKClcbiAgZ2V0UG9ydEJ5U3RhdHVzKFxuICAgIEBUYW9uLkh0dHAuUGFyYW0uUXVlcnkoJ3N0YXR1cycpIHN0YXR1czogUG9ydFN0YXR1cyxcbiAgKTogVGFvbi5SZXNwb25zZTxQb3J0W10+IHtcbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKHN0YXR1cyA9PT0gJ2Fzc2lnbmVkLXRha2VuLWJ5LW9zJykge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnRha2VuQnlPc1BvcnRzLnZhbHVlcygpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuYXNzaWduZWRQb3J0cy52YWx1ZXMoKSkuZmlsdGVyKFxuICAgICAgICBmID0+IGYuc3RhdHVzID09PSBzdGF0dXMsXG4gICAgICApO1xuICAgIH07XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB1bmlxdWVTZXJ2aWNlTmFtZSB1bmlxdWUgc2VydmljZSBuYW1lXG4gICAqIEBwYXJhbSBzdGFydEZyb20gc3RhcnQgc2VhcmNoaW5nIGZvciBmcmVlIHBvcnQgZnJvbSB0aGlzIG51bWJlclxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgQFRhb24uSHR0cC5QVVQoKVxuICByZWdpc3RlckFuZEFzc2lnblBvcnQoXG4gICAgQFRhb24uSHR0cC5QYXJhbS5RdWVyeSgndW5pcXVlU2VydmljZU5hbWUnKSB1bmlxdWVTZXJ2aWNlTmFtZTogc3RyaW5nLFxuICAgIEBUYW9uLkh0dHAuUGFyYW0uUXVlcnkoJ3N0YXJ0RnJvbScpIHN0YXJ0RnJvbT86IG51bWJlcixcbiAgKTogVGFvbi5SZXNwb25zZTxQb3J0PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2Jhc2UvdGNwLXVkcC1wb3J0cy9wb3J0cy5jb250cm9sbGVyLnRzIl19
@@ -0,0 +1,26 @@
1
+ var Port_1;
2
+ import { __decorate } from "tslib";
3
+ import { Taon } from 'taon/browser';
4
+ import { _ } from 'tnp-core/browser';
5
+ import { NotAssignablePort } from './not-assignable-port.entity';
6
+ export const PortStatusArr = [
7
+ 'unassigned',
8
+ 'assigned',
9
+ 'assigned-not-registered',
10
+ 'assigned-taken-by-os',
11
+ ];
12
+ let Port = Port_1 = class Port extends NotAssignablePort {
13
+ static from(opt) {
14
+ return _.merge(new Port_1(), opt);
15
+ }
16
+ };
17
+ Port = Port_1 = __decorate([
18
+ Taon.Entity({
19
+ className: 'Port',
20
+ uniqueKeyProp: 'port',
21
+ })
22
+ ], Port);
23
+ export { Port };
24
+ ;
25
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/base/tcp-udp-ports/ports.entity.ts
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydHMuZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL3RjcC11ZHAtcG9ydHMvcG9ydHMuZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFRakUsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFpQjtJQUN6QyxZQUFZO0lBQ1osVUFBVTtJQUNWLHlCQUF5QjtJQUN6QixzQkFBc0I7Q0FDdkIsQ0FBQztBQU1LLElBQU0sSUFBSSxZQUFWLE1BQU0sSUFBSyxTQUFRLGlCQUFpQjtJQUN6QyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQTBDO1FBQ3BELE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FxQkYsQ0FBQTtBQXhCWSxJQUFJO0lBSmhCLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDWCxTQUFTLEVBQUUsTUFBTTtRQUNqQixhQUFhLEVBQUUsTUFBTTtLQUN0QixDQUFDO0dBQ1csSUFBSSxDQXdCaEI7O0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywrRUFBK0UiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgVGFvbiB9IGZyb20gJ3Rhb24vYnJvd3Nlcic7XG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBOb3RBc3NpZ25hYmxlUG9ydCB9IGZyb20gJy4vbm90LWFzc2lnbmFibGUtcG9ydC5lbnRpdHknO1xuXG5leHBvcnQgdHlwZSBQb3J0U3RhdHVzID1cbiAgfCAndW5hc3NpZ25lZCdcbiAgfCAnYXNzaWduZWQnXG4gIHwgJ2Fzc2lnbmVkLW5vdC1yZWdpc3RlcmVkJ1xuICB8ICdhc3NpZ25lZC10YWtlbi1ieS1vcyc7XG5cbmV4cG9ydCBjb25zdCBQb3J0U3RhdHVzQXJyOiBQb3J0U3RhdHVzW10gPSBbXG4gICd1bmFzc2lnbmVkJyxcbiAgJ2Fzc2lnbmVkJyxcbiAgJ2Fzc2lnbmVkLW5vdC1yZWdpc3RlcmVkJyxcbiAgJ2Fzc2lnbmVkLXRha2VuLWJ5LW9zJyxcbl07XG5cbkBUYW9uLkVudGl0eSh7XG4gIGNsYXNzTmFtZTogJ1BvcnQnLFxuICB1bmlxdWVLZXlQcm9wOiAncG9ydCcsXG59KVxuZXhwb3J0IGNsYXNzIFBvcnQgZXh0ZW5kcyBOb3RBc3NpZ25hYmxlUG9ydCB7XG4gIHN0YXRpYyBmcm9tKG9wdDogT21pdDxQb3J0LCAndmVyc2lvbicgfCAnXycgfCAnY2xvbmUnPikge1xuICAgIHJldHVybiBfLm1lcmdlKG5ldyBQb3J0KCksIG9wdCk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBQb3J0IHN0YXR1c1xuICAgKi9cbi8qICovXG4vKiAqL1xuICBcbiAgc3RhdHVzPzogUG9ydFN0YXR1cztcblxuXG5cbiAgLyoqXG4gICAqIFdoZW4gcG9ydCB3YXMgYXNzaWduZWQgYXMgcmVnaXN0ZXJlZCBzZXJ2aWNlXG4gICAqL1xuLyogKi9cbi8qICovXG4gIFxuICB3aGVuQXNzaWduZWRUaW1lc3RhbXA/OiBOdW1iZXI7XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL3RjcC11ZHAtcG9ydHMvcG9ydHMuZW50aXR5LnRzIl19
@@ -0,0 +1,35 @@
1
+ /* */
2
+ /* */
3
+ import { BaseContext, Taon } from 'taon/browser';
4
+ import { PortsController } from './ports.controller';
5
+ import { Port } from './ports.entity';
6
+ import { NotAssignablePort } from './not-assignable-port.entity';
7
+ import { MIGRATIONS_CLASSES_FOR_PortsContext } from '../../../migrations';
8
+ /* */
9
+ /* */
10
+ /* */
11
+ /* */
12
+ /* */
13
+ /* */
14
+ /* */
15
+ /* */
16
+ /* */
17
+ export const PortsContext = Taon.createContext(() => ({
18
+ contextName: 'PortsContext',
19
+ contexts: { BaseContext },
20
+ controllers: { PortsController },
21
+ entities: { Port, NotAssignablePort },
22
+ migrations: { ...MIGRATIONS_CLASSES_FOR_PortsContext },
23
+ skipWritingServerRoutes: true,
24
+ /* */
25
+ /* */
26
+ /* */
27
+ /* */
28
+ /* */
29
+ logs: {
30
+ migrations: true,
31
+ },
32
+ }));
33
+ ;
34
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/base/tcp-udp-ports/tcp-udp-ports.context.ts
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNwLXVkcC1wb3J0cy5jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL3RjcC11ZHAtcG9ydHMvdGNwLXVkcC1wb3J0cy5jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLEtBQUs7QUFDTCxLQUFLO0FBRUwsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUxRSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFHTCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELFdBQVcsRUFBRSxjQUFjO0lBQzNCLFFBQVEsRUFBRSxFQUFFLFdBQVcsRUFBRTtJQUN6QixXQUFXLEVBQUUsRUFBRSxlQUFlLEVBQUU7SUFDaEMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFO0lBQ3JDLFVBQVUsRUFBRSxFQUFFLEdBQUcsbUNBQW1DLEVBQUU7SUFDdEQsdUJBQXVCLEVBQUUsSUFBSTtJQUMvQixLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUVILElBQUksRUFBRTtRQUNKLFVBQVUsRUFBRSxJQUFJO0tBQ2pCO0NBQ0YsQ0FBQyxDQUFDLENBQUM7QUFFSCxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHdGQUF3RiIsInNvdXJjZXNDb250ZW50IjpbIlxuXG4vKiAqL1xuLyogKi9cbiAgXG5pbXBvcnQgeyBCYXNlQ29udGV4dCwgVGFvbiB9IGZyb20gJ3Rhb24vYnJvd3Nlcic7XG5pbXBvcnQgeyBjcm9zc1BsYXRmb3JtUGF0aCwgcGF0aCwgSGVscGVycyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgUG9ydHNDb250cm9sbGVyIH0gZnJvbSAnLi9wb3J0cy5jb250cm9sbGVyJztcbmltcG9ydCB7IFBvcnQgfSBmcm9tICcuL3BvcnRzLmVudGl0eSc7XG5pbXBvcnQgeyBOb3RBc3NpZ25hYmxlUG9ydCB9IGZyb20gJy4vbm90LWFzc2lnbmFibGUtcG9ydC5lbnRpdHknO1xuaW1wb3J0IHsgTUlHUkFUSU9OU19DTEFTU0VTX0ZPUl9Qb3J0c0NvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9taWdyYXRpb25zJztcblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuZXhwb3J0IGNvbnN0IFBvcnRzQ29udGV4dCA9IFRhb24uY3JlYXRlQ29udGV4dCgoKSA9PiAoe1xuICBjb250ZXh0TmFtZTogJ1BvcnRzQ29udGV4dCcsXG4gIGNvbnRleHRzOiB7IEJhc2VDb250ZXh0IH0sXG4gIGNvbnRyb2xsZXJzOiB7IFBvcnRzQ29udHJvbGxlciB9LFxuICBlbnRpdGllczogeyBQb3J0LCBOb3RBc3NpZ25hYmxlUG9ydCB9LFxuICBtaWdyYXRpb25zOiB7IC4uLk1JR1JBVElPTlNfQ0xBU1NFU19GT1JfUG9ydHNDb250ZXh0IH0sXG4gIHNraXBXcml0aW5nU2VydmVyUm91dGVzOiB0cnVlLFxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICBsb2dzOiB7XG4gICAgbWlncmF0aW9uczogdHJ1ZSxcbiAgfSxcbn0pKTtcblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL3RjcC11ZHAtcG9ydHMvdGNwLXVkcC1wb3J0cy5jb250ZXh0LnRzIl19