@angular/cdk 16.0.0-next.5 → 16.0.0-rc.0

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 (412) hide show
  1. package/{esm2020 → esm2022}/a11y/a11y-module.mjs +4 -4
  2. package/{esm2020 → esm2022}/a11y/aria-describer/aria-describer.mjs +3 -3
  3. package/{esm2020 → esm2022}/a11y/focus-monitor/focus-monitor.mjs +5 -5
  4. package/{esm2020 → esm2022}/a11y/focus-trap/configurable-focus-trap-factory.mjs +3 -3
  5. package/{esm2020 → esm2022}/a11y/focus-trap/focus-trap-manager.mjs +3 -3
  6. package/{esm2020 → esm2022}/a11y/focus-trap/focus-trap.mjs +5 -5
  7. package/{esm2020 → esm2022}/a11y/high-contrast-mode/high-contrast-mode-detector.mjs +3 -3
  8. package/{esm2020 → esm2022}/a11y/input-modality/input-modality-detector.mjs +3 -3
  9. package/{esm2020 → esm2022}/a11y/interactivity-checker/interactivity-checker.mjs +3 -3
  10. package/{esm2020 → esm2022}/a11y/live-announcer/live-announcer.mjs +5 -5
  11. package/{esm2020 → esm2022}/accordion/accordion-item.mjs +7 -7
  12. package/{esm2020 → esm2022}/accordion/accordion-module.mjs +4 -4
  13. package/{esm2020 → esm2022}/accordion/accordion.mjs +3 -3
  14. package/{esm2020 → esm2022}/bidi/bidi-module.mjs +4 -4
  15. package/{esm2020 → esm2022}/bidi/dir.mjs +3 -3
  16. package/{esm2020 → esm2022}/bidi/directionality.mjs +3 -3
  17. package/{esm2020 → esm2022}/clipboard/clipboard-module.mjs +4 -4
  18. package/{esm2020 → esm2022}/clipboard/clipboard.mjs +3 -3
  19. package/{esm2020 → esm2022}/clipboard/copy-to-clipboard.mjs +3 -3
  20. package/{esm2020 → esm2022}/collections/unique-selection-dispatcher.mjs +3 -3
  21. package/{esm2020 → esm2022}/dialog/dialog-container.mjs +3 -3
  22. package/{esm2020 → esm2022}/dialog/dialog-module.mjs +11 -11
  23. package/{esm2020 → esm2022}/dialog/dialog.mjs +3 -3
  24. package/{esm2020 → esm2022}/drag-drop/directives/drag-handle.mjs +3 -3
  25. package/{esm2020 → esm2022}/drag-drop/directives/drag-placeholder.mjs +3 -3
  26. package/{esm2020 → esm2022}/drag-drop/directives/drag-preview.mjs +3 -3
  27. package/esm2022/drag-drop/directives/drag.mjs +489 -0
  28. package/{esm2020 → esm2022}/drag-drop/directives/drop-list-group.mjs +3 -3
  29. package/esm2022/drag-drop/directives/drop-list.mjs +348 -0
  30. package/{esm2020 → esm2022}/drag-drop/drag-drop-module.mjs +14 -14
  31. package/{esm2020 → esm2022}/drag-drop/drag-drop-registry.mjs +3 -3
  32. package/{esm2020 → esm2022}/drag-drop/drag-drop.mjs +3 -3
  33. package/{esm2020 → esm2022}/layout/breakpoints-observer.mjs +3 -3
  34. package/{esm2020 → esm2022}/layout/layout-module.mjs +4 -4
  35. package/{esm2020 → esm2022}/layout/media-matcher.mjs +3 -3
  36. package/{esm2020 → esm2022}/listbox/listbox-module.mjs +4 -4
  37. package/{esm2020 → esm2022}/listbox/listbox.mjs +11 -11
  38. package/{esm2020 → esm2022}/menu/context-menu-trigger.mjs +8 -8
  39. package/{esm2020 → esm2022}/menu/menu-aim.mjs +5 -5
  40. package/{esm2020 → esm2022}/menu/menu-bar.mjs +7 -7
  41. package/{esm2020 → esm2022}/menu/menu-base.mjs +3 -3
  42. package/{esm2020 → esm2022}/menu/menu-group.mjs +3 -3
  43. package/{esm2020 → esm2022}/menu/menu-item-checkbox.mjs +6 -6
  44. package/{esm2020 → esm2022}/menu/menu-item-radio.mjs +6 -6
  45. package/{esm2020 → esm2022}/menu/menu-item-selectable.mjs +3 -3
  46. package/{esm2020 → esm2022}/menu/menu-item.mjs +3 -3
  47. package/{esm2020 → esm2022}/menu/menu-module.mjs +20 -20
  48. package/{esm2020 → esm2022}/menu/menu-stack.mjs +3 -3
  49. package/{esm2020 → esm2022}/menu/menu-trigger-base.mjs +3 -3
  50. package/{esm2020 → esm2022}/menu/menu-trigger.mjs +6 -6
  51. package/{esm2020 → esm2022}/menu/menu.mjs +7 -7
  52. package/{esm2020 → esm2022}/observers/observe-content.mjs +10 -10
  53. package/{esm2020 → esm2022}/overlay/dispatchers/base-overlay-dispatcher.mjs +3 -3
  54. package/{esm2020 → esm2022}/overlay/dispatchers/overlay-keyboard-dispatcher.mjs +3 -3
  55. package/{esm2020 → esm2022}/overlay/dispatchers/overlay-outside-click-dispatcher.mjs +3 -3
  56. package/{esm2020 → esm2022}/overlay/fullscreen-overlay-container.mjs +3 -3
  57. package/{esm2020 → esm2022}/overlay/overlay-container.mjs +3 -3
  58. package/{esm2020 → esm2022}/overlay/overlay-directives.mjs +5 -5
  59. package/{esm2020 → esm2022}/overlay/overlay-module.mjs +4 -4
  60. package/{esm2020 → esm2022}/overlay/overlay.mjs +3 -3
  61. package/{esm2020 → esm2022}/overlay/position/overlay-position-builder.mjs +3 -3
  62. package/{esm2020 → esm2022}/overlay/scroll/scroll-strategy-options.mjs +3 -3
  63. package/{esm2020 → esm2022}/platform/platform-module.mjs +4 -4
  64. package/{esm2020 → esm2022}/platform/platform.mjs +3 -3
  65. package/esm2022/portal/portal-directives.mjs +250 -0
  66. package/{esm2020 → esm2022}/scrolling/fixed-size-virtual-scroll.mjs +9 -9
  67. package/{esm2020 → esm2022}/scrolling/scroll-dispatcher.mjs +3 -3
  68. package/{esm2020 → esm2022}/scrolling/scrollable.mjs +3 -3
  69. package/{esm2020 → esm2022}/scrolling/scrolling-module.mjs +17 -17
  70. package/{esm2020 → esm2022}/scrolling/viewport-ruler.mjs +3 -3
  71. package/{esm2020 → esm2022}/scrolling/virtual-for-of.mjs +3 -3
  72. package/{esm2020 → esm2022}/scrolling/virtual-scroll-viewport.mjs +9 -9
  73. package/{esm2020 → esm2022}/scrolling/virtual-scrollable-element.mjs +3 -3
  74. package/{esm2020 → esm2022}/scrolling/virtual-scrollable-window.mjs +3 -3
  75. package/{esm2020 → esm2022}/scrolling/virtual-scrollable.mjs +3 -3
  76. package/{esm2020 → esm2022}/stepper/step-header.mjs +3 -3
  77. package/{esm2020 → esm2022}/stepper/step-label.mjs +3 -3
  78. package/{esm2020 → esm2022}/stepper/stepper-button.mjs +5 -5
  79. package/{esm2020 → esm2022}/stepper/stepper-module.mjs +9 -9
  80. package/{esm2020 → esm2022}/stepper/stepper.mjs +5 -5
  81. package/{esm2020 → esm2022}/table/cell.mjs +15 -15
  82. package/{esm2020 → esm2022}/table/coalesced-style-scheduler.mjs +3 -3
  83. package/esm2022/table/row.mjs +271 -0
  84. package/{esm2020 → esm2022}/table/table-module.mjs +46 -46
  85. package/{esm2020 → esm2022}/table/table.mjs +19 -19
  86. package/{esm2020 → esm2022}/table/text-column.mjs +5 -5
  87. package/{esm2020 → esm2022}/text-field/autofill.mjs +5 -5
  88. package/{esm2020 → esm2022}/text-field/autosize.mjs +3 -3
  89. package/{esm2020 → esm2022}/text-field/text-field-module.mjs +4 -4
  90. package/{esm2020 → esm2022}/tree/nested-node.mjs +6 -6
  91. package/{esm2020 → esm2022}/tree/node.mjs +3 -3
  92. package/{esm2020 → esm2022}/tree/outlet.mjs +3 -3
  93. package/{esm2020 → esm2022}/tree/padding.mjs +3 -3
  94. package/{esm2020 → esm2022}/tree/toggle.mjs +3 -3
  95. package/{esm2020 → esm2022}/tree/tree-module.mjs +16 -16
  96. package/esm2022/tree/tree.mjs +349 -0
  97. package/{esm2020 → esm2022}/version.mjs +1 -1
  98. package/{fesm2020 → fesm2022}/a11y.mjs +27 -27
  99. package/{fesm2020 → fesm2022}/a11y.mjs.map +1 -1
  100. package/{fesm2020 → fesm2022}/accordion.mjs +11 -11
  101. package/{fesm2020 → fesm2022}/accordion.mjs.map +1 -1
  102. package/{fesm2020 → fesm2022}/bidi.mjs +7 -7
  103. package/{fesm2020 → fesm2022}/bidi.mjs.map +1 -1
  104. package/{fesm2015 → fesm2022}/cdk.mjs +1 -1
  105. package/{fesm2015 → fesm2022}/cdk.mjs.map +1 -1
  106. package/{fesm2020 → fesm2022}/clipboard.mjs +7 -7
  107. package/{fesm2020 → fesm2022}/clipboard.mjs.map +1 -1
  108. package/{fesm2020 → fesm2022}/collections.mjs +2 -2
  109. package/{fesm2020 → fesm2022}/collections.mjs.map +1 -1
  110. package/{fesm2020 → fesm2022}/dialog.mjs +14 -14
  111. package/{fesm2020 → fesm2022}/dialog.mjs.map +1 -1
  112. package/{fesm2020 → fesm2022}/drag-drop.mjs +36 -36
  113. package/{fesm2020 → fesm2022}/drag-drop.mjs.map +1 -1
  114. package/{fesm2015 → fesm2022}/layout.mjs +7 -7
  115. package/{fesm2015 → fesm2022}/layout.mjs.map +1 -1
  116. package/{fesm2020 → fesm2022}/listbox.mjs +13 -13
  117. package/{fesm2020 → fesm2022}/listbox.mjs.map +1 -1
  118. package/{fesm2020 → fesm2022}/menu.mjs +69 -69
  119. package/{fesm2020 → fesm2022}/menu.mjs.map +1 -1
  120. package/{fesm2020 → fesm2022}/observers.mjs +9 -9
  121. package/{fesm2020 → fesm2022}/observers.mjs.map +1 -1
  122. package/{fesm2020 → fesm2022}/overlay.mjs +23 -23
  123. package/{fesm2020 → fesm2022}/overlay.mjs.map +1 -1
  124. package/{fesm2020 → fesm2022}/platform.mjs +5 -5
  125. package/{fesm2020 → fesm2022}/platform.mjs.map +1 -1
  126. package/{fesm2020 → fesm2022}/portal.mjs +21 -21
  127. package/{fesm2020 → fesm2022}/portal.mjs.map +1 -1
  128. package/{fesm2020 → fesm2022}/scrolling.mjs +46 -46
  129. package/{fesm2020 → fesm2022}/scrolling.mjs.map +1 -1
  130. package/{fesm2020 → fesm2022}/stepper.mjs +20 -20
  131. package/{fesm2020 → fesm2022}/stepper.mjs.map +1 -1
  132. package/{fesm2020 → fesm2022}/table.mjs +109 -109
  133. package/{fesm2020 → fesm2022}/table.mjs.map +1 -1
  134. package/{fesm2020 → fesm2022}/text-field.mjs +9 -9
  135. package/{fesm2020 → fesm2022}/text-field.mjs.map +1 -1
  136. package/{fesm2020 → fesm2022}/tree.mjs +37 -37
  137. package/{fesm2020 → fesm2022}/tree.mjs.map +1 -1
  138. package/package.json +77 -131
  139. package/schematics/ng-add/index.js +1 -1
  140. package/schematics/ng-add/index.mjs +1 -1
  141. package/schematics/ng-update/devkit-file-system.js +3 -2
  142. package/schematics/ng-update/devkit-file-system.mjs +3 -2
  143. package/schematics/ng-update/migrations/attribute-selectors.js +5 -8
  144. package/schematics/ng-update/migrations/attribute-selectors.mjs +5 -8
  145. package/schematics/ng-update/migrations/class-inheritance.js +8 -11
  146. package/schematics/ng-update/migrations/class-inheritance.mjs +8 -11
  147. package/schematics/ng-update/migrations/class-names.js +12 -15
  148. package/schematics/ng-update/migrations/class-names.mjs +12 -15
  149. package/schematics/ng-update/migrations/constructor-signature.js +7 -10
  150. package/schematics/ng-update/migrations/constructor-signature.mjs +7 -10
  151. package/schematics/ng-update/migrations/css-selectors.js +5 -8
  152. package/schematics/ng-update/migrations/css-selectors.mjs +5 -8
  153. package/schematics/ng-update/migrations/element-selectors.js +5 -8
  154. package/schematics/ng-update/migrations/element-selectors.mjs +5 -8
  155. package/schematics/ng-update/migrations/input-names.js +5 -8
  156. package/schematics/ng-update/migrations/input-names.mjs +5 -8
  157. package/schematics/ng-update/migrations/method-call-arguments.js +5 -8
  158. package/schematics/ng-update/migrations/method-call-arguments.mjs +5 -8
  159. package/schematics/ng-update/migrations/misc-template.js +3 -6
  160. package/schematics/ng-update/migrations/misc-template.mjs +3 -6
  161. package/schematics/ng-update/migrations/output-names.js +5 -8
  162. package/schematics/ng-update/migrations/output-names.mjs +5 -8
  163. package/schematics/ng-update/migrations/property-names.js +5 -8
  164. package/schematics/ng-update/migrations/property-names.mjs +5 -8
  165. package/schematics/ng-update/migrations/symbol-removal.js +5 -8
  166. package/schematics/ng-update/migrations/symbol-removal.mjs +5 -8
  167. package/schematics/update-tool/component-resource-collector.js +5 -3
  168. package/schematics/update-tool/component-resource-collector.mjs +5 -3
  169. package/schematics/update-tool/index.js +8 -2
  170. package/schematics/update-tool/index.mjs +8 -2
  171. package/schematics/update-tool/migration.js +10 -3
  172. package/schematics/update-tool/migration.mjs +10 -3
  173. package/schematics/update-tool/utils/virtual-host.js +3 -2
  174. package/schematics/update-tool/utils/virtual-host.mjs +3 -2
  175. package/esm2020/drag-drop/directives/drag.mjs +0 -489
  176. package/esm2020/drag-drop/directives/drop-list.mjs +0 -348
  177. package/esm2020/portal/portal-directives.mjs +0 -250
  178. package/esm2020/table/row.mjs +0 -271
  179. package/esm2020/tree/tree.mjs +0 -349
  180. package/fesm2015/a11y.mjs +0 -2409
  181. package/fesm2015/a11y.mjs.map +0 -1
  182. package/fesm2015/accordion.mjs +0 -238
  183. package/fesm2015/accordion.mjs.map +0 -1
  184. package/fesm2015/bidi.mjs +0 -150
  185. package/fesm2015/bidi.mjs.map +0 -1
  186. package/fesm2015/clipboard.mjs +0 -219
  187. package/fesm2015/clipboard.mjs.map +0 -1
  188. package/fesm2015/collections.mjs +0 -462
  189. package/fesm2015/collections.mjs.map +0 -1
  190. package/fesm2015/dialog.mjs +0 -749
  191. package/fesm2015/dialog.mjs.map +0 -1
  192. package/fesm2015/drag-drop.mjs +0 -3667
  193. package/fesm2015/drag-drop.mjs.map +0 -1
  194. package/fesm2015/listbox.mjs +0 -888
  195. package/fesm2015/listbox.mjs.map +0 -1
  196. package/fesm2015/menu.mjs +0 -1876
  197. package/fesm2015/menu.mjs.map +0 -1
  198. package/fesm2015/observers.mjs +0 -188
  199. package/fesm2015/observers.mjs.map +0 -1
  200. package/fesm2015/overlay.mjs +0 -2998
  201. package/fesm2015/overlay.mjs.map +0 -1
  202. package/fesm2015/platform.mjs +0 -320
  203. package/fesm2015/platform.mjs.map +0 -1
  204. package/fesm2015/portal.mjs +0 -640
  205. package/fesm2015/portal.mjs.map +0 -1
  206. package/fesm2015/scrolling.mjs +0 -1515
  207. package/fesm2015/scrolling.mjs.map +0 -1
  208. package/fesm2015/stepper.mjs +0 -570
  209. package/fesm2015/stepper.mjs.map +0 -1
  210. package/fesm2015/table.mjs +0 -2271
  211. package/fesm2015/table.mjs.map +0 -1
  212. package/fesm2015/testing/selenium-webdriver.mjs +0 -396
  213. package/fesm2015/testing/selenium-webdriver.mjs.map +0 -1
  214. package/fesm2015/testing/testbed.mjs +0 -811
  215. package/fesm2015/testing/testbed.mjs.map +0 -1
  216. package/fesm2015/testing.mjs +0 -748
  217. package/fesm2015/testing.mjs.map +0 -1
  218. package/fesm2015/text-field.mjs +0 -424
  219. package/fesm2015/text-field.mjs.map +0 -1
  220. package/fesm2015/tree.mjs +0 -871
  221. package/fesm2015/tree.mjs.map +0 -1
  222. package/fesm2020/cdk.mjs +0 -7
  223. package/fesm2020/cdk.mjs.map +0 -1
  224. package/fesm2020/coercion.mjs +0 -74
  225. package/fesm2020/coercion.mjs.map +0 -1
  226. package/fesm2020/keycodes.mjs +0 -137
  227. package/fesm2020/keycodes.mjs.map +0 -1
  228. package/fesm2020/layout.mjs +0 -210
  229. package/fesm2020/layout.mjs.map +0 -1
  230. /package/{esm2020 → esm2022}/a11y/a11y_public_index.mjs +0 -0
  231. /package/{esm2020 → esm2022}/a11y/aria-describer/aria-reference.mjs +0 -0
  232. /package/{esm2020 → esm2022}/a11y/fake-event-detection.mjs +0 -0
  233. /package/{esm2020 → esm2022}/a11y/focus-trap/configurable-focus-trap-config.mjs +0 -0
  234. /package/{esm2020 → esm2022}/a11y/focus-trap/configurable-focus-trap.mjs +0 -0
  235. /package/{esm2020 → esm2022}/a11y/focus-trap/event-listener-inert-strategy.mjs +0 -0
  236. /package/{esm2020 → esm2022}/a11y/focus-trap/focus-trap-inert-strategy.mjs +0 -0
  237. /package/{esm2020 → esm2022}/a11y/index.mjs +0 -0
  238. /package/{esm2020 → esm2022}/a11y/key-manager/activedescendant-key-manager.mjs +0 -0
  239. /package/{esm2020 → esm2022}/a11y/key-manager/focus-key-manager.mjs +0 -0
  240. /package/{esm2020 → esm2022}/a11y/key-manager/list-key-manager.mjs +0 -0
  241. /package/{esm2020 → esm2022}/a11y/live-announcer/live-announcer-tokens.mjs +0 -0
  242. /package/{esm2020 → esm2022}/a11y/public-api.mjs +0 -0
  243. /package/{esm2020 → esm2022}/accordion/accordion_public_index.mjs +0 -0
  244. /package/{esm2020 → esm2022}/accordion/index.mjs +0 -0
  245. /package/{esm2020 → esm2022}/accordion/public-api.mjs +0 -0
  246. /package/{esm2020 → esm2022}/bidi/bidi_public_index.mjs +0 -0
  247. /package/{esm2020 → esm2022}/bidi/dir-document-token.mjs +0 -0
  248. /package/{esm2020 → esm2022}/bidi/index.mjs +0 -0
  249. /package/{esm2020 → esm2022}/bidi/public-api.mjs +0 -0
  250. /package/{esm2020 → esm2022}/clipboard/clipboard_public_index.mjs +0 -0
  251. /package/{esm2020 → esm2022}/clipboard/index.mjs +0 -0
  252. /package/{esm2020 → esm2022}/clipboard/pending-copy.mjs +0 -0
  253. /package/{esm2020 → esm2022}/clipboard/public-api.mjs +0 -0
  254. /package/{esm2020 → esm2022}/coercion/array.mjs +0 -0
  255. /package/{esm2020 → esm2022}/coercion/boolean-property.mjs +0 -0
  256. /package/{esm2020 → esm2022}/coercion/css-pixel-value.mjs +0 -0
  257. /package/{esm2020 → esm2022}/coercion/element.mjs +0 -0
  258. /package/{esm2020 → esm2022}/coercion/index.mjs +0 -0
  259. /package/{esm2020 → esm2022}/coercion/number-property.mjs +0 -0
  260. /package/{esm2020 → esm2022}/coercion/public-api.mjs +0 -0
  261. /package/{esm2020 → esm2022}/coercion/string-array.mjs +0 -0
  262. /package/{esm2020 → esm2022}/collections/array-data-source.mjs +0 -0
  263. /package/{esm2020 → esm2022}/collections/collection-viewer.mjs +0 -0
  264. /package/{esm2020 → esm2022}/collections/collections_public_index.mjs +0 -0
  265. /package/{esm2020 → esm2022}/collections/data-source.mjs +0 -0
  266. /package/{esm2020 → esm2022}/collections/dispose-view-repeater-strategy.mjs +0 -0
  267. /package/{esm2020 → esm2022}/collections/index.mjs +0 -0
  268. /package/{esm2020 → esm2022}/collections/public-api.mjs +0 -0
  269. /package/{esm2020 → esm2022}/collections/recycle-view-repeater-strategy.mjs +0 -0
  270. /package/{esm2020 → esm2022}/collections/selection-model.mjs +0 -0
  271. /package/{esm2020 → esm2022}/collections/tree-adapter.mjs +0 -0
  272. /package/{esm2020 → esm2022}/collections/view-repeater.mjs +0 -0
  273. /package/{esm2020 → esm2022}/dialog/dialog-config.mjs +0 -0
  274. /package/{esm2020 → esm2022}/dialog/dialog-injectors.mjs +0 -0
  275. /package/{esm2020 → esm2022}/dialog/dialog-ref.mjs +0 -0
  276. /package/{esm2020 → esm2022}/dialog/dialog_public_index.mjs +0 -0
  277. /package/{esm2020 → esm2022}/dialog/index.mjs +0 -0
  278. /package/{esm2020 → esm2022}/dialog/public-api.mjs +0 -0
  279. /package/{esm2020 → esm2022}/drag-drop/directives/assertions.mjs +0 -0
  280. /package/{esm2020 → esm2022}/drag-drop/directives/config.mjs +0 -0
  281. /package/{esm2020 → esm2022}/drag-drop/dom/client-rect.mjs +0 -0
  282. /package/{esm2020 → esm2022}/drag-drop/dom/clone-node.mjs +0 -0
  283. /package/{esm2020 → esm2022}/drag-drop/dom/parent-position-tracker.mjs +0 -0
  284. /package/{esm2020 → esm2022}/drag-drop/dom/styling.mjs +0 -0
  285. /package/{esm2020 → esm2022}/drag-drop/dom/transition-duration.mjs +0 -0
  286. /package/{esm2020 → esm2022}/drag-drop/drag-drop_public_index.mjs +0 -0
  287. /package/{esm2020 → esm2022}/drag-drop/drag-events.mjs +0 -0
  288. /package/{esm2020 → esm2022}/drag-drop/drag-parent.mjs +0 -0
  289. /package/{esm2020 → esm2022}/drag-drop/drag-ref.mjs +0 -0
  290. /package/{esm2020 → esm2022}/drag-drop/drag-utils.mjs +0 -0
  291. /package/{esm2020 → esm2022}/drag-drop/drop-list-ref.mjs +0 -0
  292. /package/{esm2020 → esm2022}/drag-drop/index.mjs +0 -0
  293. /package/{esm2020 → esm2022}/drag-drop/public-api.mjs +0 -0
  294. /package/{esm2020 → esm2022}/drag-drop/sorting/drop-list-sort-strategy.mjs +0 -0
  295. /package/{esm2020 → esm2022}/drag-drop/sorting/single-axis-sort-strategy.mjs +0 -0
  296. /package/{esm2020 → esm2022}/index.mjs +0 -0
  297. /package/{esm2020 → esm2022}/keycodes/index.mjs +0 -0
  298. /package/{esm2020 → esm2022}/keycodes/keycodes.mjs +0 -0
  299. /package/{esm2020 → esm2022}/keycodes/keycodes_public_index.mjs +0 -0
  300. /package/{esm2020 → esm2022}/keycodes/modifiers.mjs +0 -0
  301. /package/{esm2020 → esm2022}/keycodes/public-api.mjs +0 -0
  302. /package/{esm2020 → esm2022}/layout/breakpoints.mjs +0 -0
  303. /package/{esm2020 → esm2022}/layout/index.mjs +0 -0
  304. /package/{esm2020 → esm2022}/layout/layout_public_index.mjs +0 -0
  305. /package/{esm2020 → esm2022}/layout/public-api.mjs +0 -0
  306. /package/{esm2020 → esm2022}/listbox/index.mjs +0 -0
  307. /package/{esm2020 → esm2022}/listbox/listbox_public_index.mjs +0 -0
  308. /package/{esm2020 → esm2022}/listbox/public-api.mjs +0 -0
  309. /package/{esm2020 → esm2022}/menu/index.mjs +0 -0
  310. /package/{esm2020 → esm2022}/menu/menu-errors.mjs +0 -0
  311. /package/{esm2020 → esm2022}/menu/menu-interface.mjs +0 -0
  312. /package/{esm2020 → esm2022}/menu/menu_public_index.mjs +0 -0
  313. /package/{esm2020 → esm2022}/menu/pointer-focus-tracker.mjs +0 -0
  314. /package/{esm2020 → esm2022}/menu/public-api.mjs +0 -0
  315. /package/{esm2020 → esm2022}/observers/index.mjs +0 -0
  316. /package/{esm2020 → esm2022}/observers/observers_public_index.mjs +0 -0
  317. /package/{esm2020 → esm2022}/observers/public-api.mjs +0 -0
  318. /package/{esm2020 → esm2022}/overlay/dispatchers/index.mjs +0 -0
  319. /package/{esm2020 → esm2022}/overlay/index.mjs +0 -0
  320. /package/{esm2020 → esm2022}/overlay/overlay-config.mjs +0 -0
  321. /package/{esm2020 → esm2022}/overlay/overlay-ref.mjs +0 -0
  322. /package/{esm2020 → esm2022}/overlay/overlay-reference.mjs +0 -0
  323. /package/{esm2020 → esm2022}/overlay/overlay_public_index.mjs +0 -0
  324. /package/{esm2020 → esm2022}/overlay/position/connected-position.mjs +0 -0
  325. /package/{esm2020 → esm2022}/overlay/position/flexible-connected-position-strategy.mjs +0 -0
  326. /package/{esm2020 → esm2022}/overlay/position/global-position-strategy.mjs +0 -0
  327. /package/{esm2020 → esm2022}/overlay/position/position-strategy.mjs +0 -0
  328. /package/{esm2020 → esm2022}/overlay/position/scroll-clip.mjs +0 -0
  329. /package/{esm2020 → esm2022}/overlay/public-api.mjs +0 -0
  330. /package/{esm2020 → esm2022}/overlay/scroll/block-scroll-strategy.mjs +0 -0
  331. /package/{esm2020 → esm2022}/overlay/scroll/close-scroll-strategy.mjs +0 -0
  332. /package/{esm2020 → esm2022}/overlay/scroll/index.mjs +0 -0
  333. /package/{esm2020 → esm2022}/overlay/scroll/noop-scroll-strategy.mjs +0 -0
  334. /package/{esm2020 → esm2022}/overlay/scroll/reposition-scroll-strategy.mjs +0 -0
  335. /package/{esm2020 → esm2022}/overlay/scroll/scroll-strategy.mjs +0 -0
  336. /package/{esm2020 → esm2022}/platform/features/input-types.mjs +0 -0
  337. /package/{esm2020 → esm2022}/platform/features/passive-listeners.mjs +0 -0
  338. /package/{esm2020 → esm2022}/platform/features/scrolling.mjs +0 -0
  339. /package/{esm2020 → esm2022}/platform/features/shadow-dom.mjs +0 -0
  340. /package/{esm2020 → esm2022}/platform/features/test-environment.mjs +0 -0
  341. /package/{esm2020 → esm2022}/platform/index.mjs +0 -0
  342. /package/{esm2020 → esm2022}/platform/platform_public_index.mjs +0 -0
  343. /package/{esm2020 → esm2022}/platform/public-api.mjs +0 -0
  344. /package/{esm2020 → esm2022}/portal/dom-portal-outlet.mjs +0 -0
  345. /package/{esm2020 → esm2022}/portal/index.mjs +0 -0
  346. /package/{esm2020 → esm2022}/portal/portal-errors.mjs +0 -0
  347. /package/{esm2020 → esm2022}/portal/portal-injector.mjs +0 -0
  348. /package/{esm2020 → esm2022}/portal/portal.mjs +0 -0
  349. /package/{esm2020 → esm2022}/portal/portal_public_index.mjs +0 -0
  350. /package/{esm2020 → esm2022}/portal/public-api.mjs +0 -0
  351. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  352. /package/{esm2020 → esm2022}/scrolling/index.mjs +0 -0
  353. /package/{esm2020 → esm2022}/scrolling/public-api.mjs +0 -0
  354. /package/{esm2020 → esm2022}/scrolling/scrolling_public_index.mjs +0 -0
  355. /package/{esm2020 → esm2022}/scrolling/virtual-scroll-repeater.mjs +0 -0
  356. /package/{esm2020 → esm2022}/scrolling/virtual-scroll-strategy.mjs +0 -0
  357. /package/{esm2020 → esm2022}/stepper/index.mjs +0 -0
  358. /package/{esm2020 → esm2022}/stepper/public-api.mjs +0 -0
  359. /package/{esm2020 → esm2022}/stepper/stepper_public_index.mjs +0 -0
  360. /package/{esm2020 → esm2022}/table/can-stick.mjs +0 -0
  361. /package/{esm2020 → esm2022}/table/index.mjs +0 -0
  362. /package/{esm2020 → esm2022}/table/public-api.mjs +0 -0
  363. /package/{esm2020 → esm2022}/table/sticky-position-listener.mjs +0 -0
  364. /package/{esm2020 → esm2022}/table/sticky-styler.mjs +0 -0
  365. /package/{esm2020 → esm2022}/table/table-errors.mjs +0 -0
  366. /package/{esm2020 → esm2022}/table/table_public_index.mjs +0 -0
  367. /package/{esm2020 → esm2022}/table/tokens.mjs +0 -0
  368. /package/{esm2020 → esm2022}/testing/change-detection.mjs +0 -0
  369. /package/{esm2020 → esm2022}/testing/component-harness.mjs +0 -0
  370. /package/{esm2020 → esm2022}/testing/element-dimensions.mjs +0 -0
  371. /package/{esm2020 → esm2022}/testing/harness-environment.mjs +0 -0
  372. /package/{esm2020 → esm2022}/testing/index.mjs +0 -0
  373. /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
  374. /package/{esm2020 → esm2022}/testing/selenium-webdriver/index.mjs +0 -0
  375. /package/{esm2020 → esm2022}/testing/selenium-webdriver/public-api.mjs +0 -0
  376. /package/{esm2020 → esm2022}/testing/selenium-webdriver/selenium-web-driver-element.mjs +0 -0
  377. /package/{esm2020 → esm2022}/testing/selenium-webdriver/selenium-web-driver-harness-environment.mjs +0 -0
  378. /package/{esm2020 → esm2022}/testing/selenium-webdriver/selenium-webdriver-keys.mjs +0 -0
  379. /package/{esm2020 → esm2022}/testing/test-element-errors.mjs +0 -0
  380. /package/{esm2020 → esm2022}/testing/test-element.mjs +0 -0
  381. /package/{esm2020 → esm2022}/testing/testbed/fake-events/dispatch-events.mjs +0 -0
  382. /package/{esm2020 → esm2022}/testing/testbed/fake-events/element-focus.mjs +0 -0
  383. /package/{esm2020 → esm2022}/testing/testbed/fake-events/event-objects.mjs +0 -0
  384. /package/{esm2020 → esm2022}/testing/testbed/fake-events/index.mjs +0 -0
  385. /package/{esm2020 → esm2022}/testing/testbed/fake-events/type-in-element.mjs +0 -0
  386. /package/{esm2020 → esm2022}/testing/testbed/index.mjs +0 -0
  387. /package/{esm2020 → esm2022}/testing/testbed/public-api.mjs +0 -0
  388. /package/{esm2020 → esm2022}/testing/testbed/task-state-zone-interceptor.mjs +0 -0
  389. /package/{esm2020 → esm2022}/testing/testbed/testbed-harness-environment.mjs +0 -0
  390. /package/{esm2020 → esm2022}/testing/testbed/unit-test-element.mjs +0 -0
  391. /package/{esm2020 → esm2022}/testing/text-filtering.mjs +0 -0
  392. /package/{esm2020 → esm2022}/text-field/index.mjs +0 -0
  393. /package/{esm2020 → esm2022}/text-field/public-api.mjs +0 -0
  394. /package/{esm2020 → esm2022}/text-field/text-field_public_index.mjs +0 -0
  395. /package/{esm2020 → esm2022}/tree/control/base-tree-control.mjs +0 -0
  396. /package/{esm2020 → esm2022}/tree/control/flat-tree-control.mjs +0 -0
  397. /package/{esm2020 → esm2022}/tree/control/nested-tree-control.mjs +0 -0
  398. /package/{esm2020 → esm2022}/tree/control/tree-control.mjs +0 -0
  399. /package/{esm2020 → esm2022}/tree/index.mjs +0 -0
  400. /package/{esm2020 → esm2022}/tree/public-api.mjs +0 -0
  401. /package/{esm2020 → esm2022}/tree/tree-errors.mjs +0 -0
  402. /package/{esm2020 → esm2022}/tree/tree_public_index.mjs +0 -0
  403. /package/{fesm2015 → fesm2022}/coercion.mjs +0 -0
  404. /package/{fesm2015 → fesm2022}/coercion.mjs.map +0 -0
  405. /package/{fesm2015 → fesm2022}/keycodes.mjs +0 -0
  406. /package/{fesm2015 → fesm2022}/keycodes.mjs.map +0 -0
  407. /package/{fesm2020 → fesm2022}/testing/selenium-webdriver.mjs +0 -0
  408. /package/{fesm2020 → fesm2022}/testing/selenium-webdriver.mjs.map +0 -0
  409. /package/{fesm2020 → fesm2022}/testing/testbed.mjs +0 -0
  410. /package/{fesm2020 → fesm2022}/testing/testbed.mjs.map +0 -0
  411. /package/{fesm2020 → fesm2022}/testing.mjs +0 -0
  412. /package/{fesm2020 → fesm2022}/testing.mjs.map +0 -0
@@ -19,11 +19,13 @@ const property_name_1 = require("./utils/property-name");
19
19
  * given TypeScript source files (inline or external referenced files)
20
20
  */
21
21
  class ComponentResourceCollector {
22
+ typeChecker;
23
+ _fileSystem;
24
+ resolvedTemplates = [];
25
+ resolvedStylesheets = [];
22
26
  constructor(typeChecker, _fileSystem) {
23
27
  this.typeChecker = typeChecker;
24
28
  this._fileSystem = _fileSystem;
25
- this.resolvedTemplates = [];
26
- this.resolvedStylesheets = [];
27
29
  }
28
30
  visitNode(node) {
29
31
  if (node.kind === ts.SyntaxKind.ClassDeclaration) {
@@ -152,4 +154,4 @@ exports.ComponentResourceCollector = ComponentResourceCollector;
152
154
  function stripBom(content) {
153
155
  return content.replace(/\uFEFF/g, '');
154
156
  }
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXJlc291cmNlLWNvbGxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy91cGRhdGUtdG9vbC9jb21wb25lbnQtcmVzb3VyY2UtY29sbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILCtCQUE2QjtBQUM3QixpQ0FBaUM7QUFFakMsbURBQXdEO0FBQ3hELGlEQUFtRDtBQUNuRCx5REFJK0I7QUFDL0IseURBQTBEO0FBcUIxRDs7O0dBR0c7QUFDSCxNQUFhLDBCQUEwQjtJQUlyQyxZQUFtQixXQUEyQixFQUFVLFdBQXVCO1FBQTVELGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBSC9FLHNCQUFpQixHQUF1QixFQUFFLENBQUM7UUFDM0Msd0JBQW1CLEdBQXVCLEVBQUUsQ0FBQztJQUVxQyxDQUFDO0lBRW5GLFNBQVMsQ0FBQyxJQUFhO1FBQ3JCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFO1lBQ2hELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUEyQixDQUFDLENBQUM7U0FDMUQ7SUFDSCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsSUFBeUI7UUFDdEQsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUNyQyxPQUFPO1NBQ1I7UUFFRCxNQUFNLFlBQVksR0FBRyxJQUFBLGlDQUFvQixFQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEUsTUFBTSxrQkFBa0IsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxD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LENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7ZGlybmFtZX0gZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7RmlsZVN5c3RlbSwgV29ya3NwYWNlUGF0aH0gZnJvbSAnLi9maWxlLXN5c3RlbSc7XG5pbXBvcnQge2dldEFuZ3VsYXJEZWNvcmF0b3JzfSBmcm9tICcuL3V0aWxzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHt1bndyYXBFeHByZXNzaW9ufSBmcm9tICcuL3V0aWxzL2Z1bmN0aW9ucyc7XG5pbXBvcnQge1xuICBjb21wdXRlTGluZVN0YXJ0c01hcCxcbiAgZ2V0TGluZUFuZENoYXJhY3RlckZyb21Qb3NpdGlvbixcbiAgTGluZUFuZENoYXJhY3Rlcixcbn0gZnJvbSAnLi91dGlscy9saW5lLW1hcHBpbmdzJztcbmltcG9ydCB7Z2V0UHJvcGVydHlOYW1lVGV4dH0gZnJvbSAnLi91dGlscy9wcm9wZXJ0eS1uYW1lJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlZFJlc291cmNlIHtcbiAgLyoqIENsYXNzIGRlY2xhcmF0aW9uIHRoYXQgY29udGFpbnMgdGhpcyByZXNvdXJjZS4gKi9cbiAgY29udGFpbmVyOiB0cy5DbGFzc0RlY2xhcmF0aW9uIHwgbnVsbDtcbiAgLyoqIEZpbGUgY29udGVudCBvZiB0aGUgZ2l2ZW4gdGVtcGxhdGUuICovXG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgLyoqIFN0YXJ0IG9mZnNldCBvZiB0aGUgcmVzb3VyY2UgY29udGVudCAoZS5nLiBpbiB0aGUgaW5saW5lIHNvdXJjZSBmaWxlKSAqL1xuICBzdGFydDogbnVtYmVyO1xuICAvKiogV2hldGhlciB0aGUgZ2l2ZW4gcmVzb3VyY2UgaXMgaW5saW5lIG9yIG5vdC4gKi9cbiAgaW5saW5lOiBib29sZWFuO1xuICAvKiogUGF0aCB0byB0aGUgZmlsZSB0aGF0IGNvbnRhaW5zIHRoaXMgcmVzb3VyY2UuICovXG4gIGZpbGVQYXRoOiBXb3Jrc3BhY2VQYXRoO1xuICAvKipcbiAgICogR2V0cyB0aGUgY2hhcmFjdGVyIGFuZCBsaW5lIG9mIGEgZ2l2ZW4gcG9zaXRpb24gaW5kZXggaW4gdGhlIHJlc291cmNlLlxuICAgKiBJZiB0aGUgcmVzb3VyY2UgaXMgZGVjbGFyZWQgaW5saW5lIHdpdGhpbiBhIFR5cGVTY3JpcHQgc291cmNlIGZpbGUsIHRoZSBsaW5lIGFuZFxuICAgKiBjaGFyYWN0ZXIgYXJlIGJhc2VkIG9uIHRoZSBmdWxsIHNvdXJjZSBmaWxlIGNvbnRlbnQuXG4gICAqL1xuICBnZXRDaGFyYWN0ZXJBbmRMaW5lT2ZQb3NpdGlvbjogKHBvczogbnVtYmVyKSA9PiBMaW5lQW5kQ2hhcmFjdGVyO1xufVxuXG4vKipcbiAqIENvbGxlY3RvciB0aGF0IGNhbiBiZSB1c2VkIHRvIGZpbmQgQW5ndWxhciB0ZW1wbGF0ZXMgYW5kIHN0eWxlc2hlZXRzIHJlZmVyZW5jZWQgd2l0aGluXG4gKiBnaXZlbiBUeXBlU2NyaXB0IHNvdXJjZSBmaWxlcyAoaW5saW5lIG9yIGV4dGVybmFsIHJlZmVyZW5jZWQgZmlsZXMpXG4gKi9cbmV4cG9ydCBjbGFzcyBDb21wb25lbnRSZXNvdXJjZUNvbGxlY3RvciB7XG4gIHJlc29sdmVkVGVtcGxhdGVzOiBSZXNvbHZlZFJlc291cmNlW10gPSBbXTtcbiAgcmVzb2x2ZWRTdHlsZXNoZWV0czogUmVzb2x2ZWRSZXNvdXJjZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHVibGljIHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlciwgcHJpdmF0ZSBfZmlsZVN5c3RlbTogRmlsZVN5c3RlbSkge31cblxuICB2aXNpdE5vZGUobm9kZTogdHMuTm9kZSkge1xuICAgIGlmIChub2RlLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuQ2xhc3NEZWNsYXJhdGlvbikge1xuICAgICAgdGhpcy5fdmlzaXRDbGFzc0RlY2xhcmF0aW9uKG5vZGUgYXMgdHMuQ2xhc3NEZWNsYXJhdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdmlzaXRDbGFzc0RlY2xhcmF0aW9uKG5vZGU6IHRzLkNsYXNzRGVjbGFyYXRpb24pIHtcbiAgICBjb25zdCBkZWNvcmF0b3JzID0gdHMuZ2V0RGVjb3JhdG9ycyhub2RlKTtcblxuICAgIGlmICghZGVjb3JhdG9ycyB8fCAhZGVjb3JhdG9ycy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZ0RlY29yYXRvcnMgPSBnZXRBbmd1bGFyRGVjb3JhdG9ycyh0aGlzLnR5cGVDaGVja2VyLCBkZWNvcmF0b3JzKTtcbiAgICBjb25zdCBjb21wb25lbnREZWNvcmF0b3IgPSBuZ0RlY29yYXRvcnMuZmluZChkZWMgPT4gZGVjLm5hbWUgPT09ICdDb21wb25lbnQnKTtcblxuICAgIC8vIEluIGNhc2Ugbm8gXCJAQ29tcG9uZW50XCIgZGVjb3JhdG9yIGNvdWxkIGJlIGZvdW5kIG9uIHRoZSBjdXJyZW50IGNsYXNzLCBza2lwLlxuICAgIGlmICghY29tcG9uZW50RGVjb3JhdG9yKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVjb3JhdG9yQ2FsbCA9IGNvbXBvbmVudERlY29yYXRvci5ub2RlLmV4cHJlc3Npb247XG5cbiAgICAvLyBJbiBjYXNlIHRoZSBjb21wb25lbnQgZGVjb3JhdG9yIGNhbGwgaXMgbm90IHZhbGlkLCBza2lwIHRoaXMgY2xhc3MgZGVjbGFyYXRpb24uXG4gICAgaWYgKGRlY29yYXRvckNhbGwuYXJndW1lbnRzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbXBvbmVudE1ldGFkYXRhID0gdW53cmFwRXhwcmVzc2lvbihkZWNvcmF0b3JDYWxsLmFyZ3VtZW50c1swXSk7XG5cbiAgICAvLyBFbnN1cmUgdGhhdCB0aGUgY29tcG9uZW50IG1ldGFkYXRhIGlzIGFuIG9iamVjdCBsaXRlcmFsIGV4cHJlc3Npb24uXG4gICAgaWYgKCF0cy5pc09iamVjdExpdGVyYWxFeHByZXNzaW9uKGNvbXBvbmVudE1ldGFkYXRhKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNvdXJjZUZpbGUgPSBub2RlLmdldFNvdXJjZUZpbGUoKTtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMuX2ZpbGVTeXN0ZW0ucmVzb2x2ZShzb3VyY2VGaWxlLmZpbGVOYW1lKTtcbiAgICBjb25zdCBzb3VyY2VGaWxlRGlyUGF0aCA9IGRpcm5hbWUoc291cmNlRmlsZS5maWxlTmFtZSk7XG5cbiAgICAvLyBXYWxrIHRocm91Z2ggYWxsIGNvbXBvbmVudCBtZXRhZGF0YSBwcm9wZXJ0aWVzIGFuZCBkZXRlcm1pbmUgdGhlIHJlZmVyZW5jZWRcbiAgICAvLyBIVE1MIHRlbXBsYXRlcyAoZWl0aGVyIGV4dGVybmFsIG9yIGlubGluZSlcbiAgICBjb21wb25lbnRNZXRhZGF0YS5wcm9wZXJ0aWVzLmZvckVhY2gocHJvcGVydHkgPT4ge1xuICAgICAgaWYgKCF0cy5pc1Byb3BlcnR5QXNzaWdubWVudChwcm9wZXJ0eSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSBnZXRQcm9wZXJ0eU5hbWVUZXh0KHByb3BlcnR5Lm5hbWUpO1xuXG4gICAgICBpZiAocHJvcGVydHlOYW1lID09PSAnc3R5bGVzJyAmJiB0cy5pc0FycmF5TGl0ZXJhbEV4cHJlc3Npb24ocHJvcGVydHkuaW5pdGlhbGl6ZXIpKSB7XG4gICAgICAgIHByb3BlcnR5LmluaXRpYWxpemVyLmVsZW1lbnRzLmZvckVhY2goZWwgPT4ge1xuICAgICAgICAgIGlmICh0cy5pc1N0cmluZ0xpdGVyYWxMaWtlKGVsKSkge1xuICAgICAgICAgICAgLy8gTmVlZCB0byBhZGQgYW4gb2Zmc2V0IG9mIG9uZSB0byB0aGUgc3RhcnQgYmVjYXVzZSB0aGUgdGVtcGxhdGUgcXVvdGVzIGFyZVxuICAgICAgICAgICAgLy8gbm90IHBhcnQgb2YgdGhlIHRlbXBsYXRlIGNvbnRlbnQuXG4gICAgICAgICAgICBjb25zdCB0ZW1wbGF0ZVN0YXJ0SWR4ID0gZWwuZ2V0U3RhcnQoKSArIDE7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50ID0gc3RyaXBCb20oZWwudGV4dCk7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVkU3R5bGVzaGVldHMucHVzaCh7XG4gICAgICAgICAgICAgIGZpbGVQYXRoLFxuICAgICAgICAgICAgICBjb250YWluZXI6IG5vZGUsXG4gICAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAgIGlubGluZTogdHJ1ZSxcbiAgICAgICAgICAgICAgc3RhcnQ6IHRlbXBsYXRlU3RhcnRJZHgsXG4gICAgICAgICAgICAgIGdldENoYXJhY3RlckFuZExpbmVPZlBvc2l0aW9uOiBwb3MgPT5cbiAgICAgICAgICAgICAgICB0cy5nZXRMaW5lQW5kQ2hhcmFjdGVyT2ZQb3NpdGlvbihzb3VyY2VGaWxlLCBwb3MgKyB0ZW1wbGF0ZVN0YXJ0SWR4KSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEluIGNhc2UgdGhlcmUgaXMgYW4gaW5saW5lIHRlbXBsYXRlIHNwZWNpZmllZCwgZW5zdXJlIHRoYXQgdGhlIHZhbHVlIGlzIHN0YXRpY2FsbHlcbiAgICAgIC8vIGFuYWx5emFibGUgYnkgY2hlY2tpbmcgaWYgdGhlIGluaXRpYWxpemVyIGlzIGEgc3RyaW5nIGxpdGVyYWwtbGlrZSBub2RlLlxuICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PT0gJ3RlbXBsYXRlJyAmJiB0cy5pc1N0cmluZ0xpdGVyYWxMaWtlKHByb3BlcnR5LmluaXRpYWxpemVyKSkge1xuICAgICAgICAvLyBOZWVkIHRvIGFkZCBhbiBvZmZzZXQgb2Ygb25lIHRvIHRoZSBzdGFydCBiZWNhdXNlIHRoZSB0ZW1wbGF0ZSBxdW90ZXMgYXJlXG4gICAgICAgIC8vIG5vdCBwYXJ0IG9mIHRoZSB0ZW1wbGF0ZSBjb250ZW50LlxuICAgICAgICBjb25zdCB0ZW1wbGF0ZVN0YXJ0SWR4ID0gcHJvcGVydHkuaW5pdGlhbGl6ZXIuZ2V0U3RhcnQoKSArIDE7XG4gICAgICAgIHRoaXMucmVzb2x2ZWRUZW1wbGF0ZXMucHVzaCh7XG4gICAgICAgICAgZmlsZVBhdGgsXG4gICAgICAgICAgY29udGFpbmVyOiBub2RlLFxuICAgICAgICAgIGNvbnRlbnQ6IHByb3BlcnR5LmluaXRpYWxpemVyLnRleHQsXG4gICAgICAgICAgaW5saW5lOiB0cnVlLFxuICAgICAgICAgIHN0YXJ0OiB0ZW1wbGF0ZVN0YXJ0SWR4LFxuICAgICAgICAgIGdldENoYXJhY3RlckFuZExpbmVPZlBvc2l0aW9uOiBwb3MgPT5cbiAgICAgICAgICAgIHRzLmdldExpbmVBbmRDaGFyYWN0ZXJPZlBvc2l0aW9uKHNvdXJjZUZpbGUsIHBvcyArIHRlbXBsYXRlU3RhcnRJZHgpLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PT0gJ3N0eWxlVXJscycgJiYgdHMuaXNBcnJheUxpdGVyYWxFeHByZXNzaW9uKHByb3BlcnR5LmluaXRpYWxpemVyKSkge1xuICAgICAgICBwcm9wZXJ0eS5pbml0aWFsaXplci5lbGVtZW50cy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgICBpZiAodHMuaXNTdHJpbmdMaXRlcmFsTGlrZShlbCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlc2hlZXRQYXRoID0gdGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKHNvdXJjZUZpbGVEaXJQYXRoLCBlbC50ZXh0KTtcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlc2hlZXQgPSB0aGlzLnJlc29sdmVFeHRlcm5hbFN0eWxlc2hlZXQoc3R5bGVzaGVldFBhdGgsIG5vZGUpO1xuXG4gICAgICAgICAgICBpZiAoc3R5bGVzaGVldCkge1xuICAgICAgICAgICAgICB0aGlzLnJlc29sdmVkU3R5bGVzaGVldHMucHVzaChzdHlsZXNoZWV0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvcGVydHlOYW1lID09PSAndGVtcGxhdGVVcmwnICYmIHRzLmlzU3RyaW5nTGl0ZXJhbExpa2UocHJvcGVydHkuaW5pdGlhbGl6ZXIpKSB7XG4gICAgICAgIGNvbnN0IHRlbXBsYXRlVXJsID0gcHJvcGVydHkuaW5pdGlhbGl6ZXIudGV4dDtcbiAgICAgICAgY29uc3QgdGVtcGxhdGVQYXRoID0gdGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKHNvdXJjZUZpbGVEaXJQYXRoLCB0ZW1wbGF0ZVVybCk7XG5cbiAgICAgICAgLy8gSW4gY2FzZSB0aGUgdGVtcGxhdGUgZG9lcyBub3QgZXhpc3QgaW4gdGhlIGZpbGUgc3lzdGVtLCBza2lwIHRoaXNcbiAgICAgICAgLy8gZXh0ZXJuYWwgdGVtcGxhdGUuXG4gICAgICAgIGlmICghdGhpcy5fZmlsZVN5c3RlbS5maWxlRXhpc3RzKHRlbXBsYXRlUGF0aCkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWxlQ29udGVudCA9IHRoaXMuX2ZpbGVTeXN0ZW0ucmVhZCh0ZW1wbGF0ZVBhdGgpO1xuXG4gICAgICAgIGlmIChmaWxlQ29udGVudCkge1xuICAgICAgICAgIGNvbnN0IGxpbmVTdGFydHNNYXAgPSBjb21wdXRlTGluZVN0YXJ0c01hcChmaWxlQ29udGVudCk7XG5cbiAgICAgICAgICB0aGlzLnJlc29sdmVkVGVtcGxhdGVzLnB1c2goe1xuICAgICAgICAgICAgZmlsZVBhdGg6IHRlbXBsYXRlUGF0aCxcbiAgICAgICAgICAgIGNvbnRhaW5lcjogbm9kZSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGZpbGVDb250ZW50LFxuICAgICAgICAgICAgaW5saW5lOiBmYWxzZSxcbiAgICAgICAgICAgIHN0YXJ0OiAwLFxuICAgICAgICAgICAgZ2V0Q2hhcmFjdGVyQW5kTGluZU9mUG9zaXRpb246IHAgPT4gZ2V0TGluZUFuZENoYXJhY3RlckZyb21Qb3NpdGlvbihsaW5lU3RhcnRzTWFwLCBwKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqIFJlc29sdmVzIGFuIGV4dGVybmFsIHN0eWxlc2hlZXQgYnkgcmVhZGluZyBpdHMgY29udGVudCBhbmQgY29tcHV0aW5nIGxpbmUgbWFwcGluZ3MuICovXG4gIHJlc29sdmVFeHRlcm5hbFN0eWxlc2hlZXQoXG4gICAgZmlsZVBhdGg6IFdvcmtzcGFjZVBhdGgsXG4gICAgY29udGFpbmVyOiB0cy5DbGFzc0RlY2xhcmF0aW9uIHwgbnVsbCxcbiAgKTogUmVzb2x2ZWRSZXNvdXJjZSB8IG51bGwge1xuICAgIC8vIFN0cmlwIHRoZSBCT00gdG8gYXZvaWQgaXNzdWVzIHdpdGggdGhlIFNhc3MgY29tcGlsZXIuIFNlZTpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2lzc3Vlcy8yNDIyNyNpc3N1ZWNvbW1lbnQtMTIwMDkzNDI1OFxuICAgIGNvbnN0IGZpbGVDb250ZW50ID0gc3RyaXBCb20odGhpcy5fZmlsZVN5c3RlbS5yZWFkKGZpbGVQYXRoKSB8fCAnJyk7XG5cbiAgICBpZiAoIWZpbGVDb250ZW50KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBsaW5lU3RhcnRzTWFwID0gY29tcHV0ZUxpbmVTdGFydHNNYXAoZmlsZUNvbnRlbnQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGZpbGVQYXRoOiBmaWxlUGF0aCxcbiAgICAgIGNvbnRhaW5lcjogY29udGFpbmVyLFxuICAgICAgY29udGVudDogZmlsZUNvbnRlbnQsXG4gICAgICBpbmxpbmU6IGZhbHNlLFxuICAgICAgc3RhcnQ6IDAsXG4gICAgICBnZXRDaGFyYWN0ZXJBbmRMaW5lT2ZQb3NpdGlvbjogcG9zID0+IGdldExpbmVBbmRDaGFyYWN0ZXJGcm9tUG9zaXRpb24obGluZVN0YXJ0c01hcCwgcG9zKSxcbiAgICB9O1xuICB9XG59XG5cbi8qKiBTdHJpcHMgdGhlIEJPTSBmcm9tIGEgc3RyaW5nLiAqL1xuZnVuY3Rpb24gc3RyaXBCb20oY29udGVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGNvbnRlbnQucmVwbGFjZSgvXFx1RkVGRi9nLCAnJyk7XG59XG4iXX0=
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXJlc291cmNlLWNvbGxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy91cGRhdGUtdG9vbC9jb21wb25lbnQtcmVzb3VyY2UtY29sbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILCtCQUE2QjtBQUM3QixpQ0FBaUM7QUFFakMsbURBQXdEO0FBQ3hELGlEQUFtRDtBQUNuRCx5REFJK0I7QUFDL0IseURBQTBEO0FBcUIxRDs7O0dBR0c7QUFDSCxNQUFhLDBCQUEwQjtJQUlsQjtJQUFxQztJQUh4RCxpQkFBaUIsR0FBdUIsRUFBRSxDQUFDO0lBQzNDLG1CQUFtQixHQUF1QixFQUFFLENBQUM7SUFFN0MsWUFBbUIsV0FBMkIsRUFBVSxXQUF1QjtRQUE1RCxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtJQUFHLENBQUM7SUFFbkYsU0FBUyxDQUFDLElBQWE7UUFDckIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUU7WUFDaEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQTJCLENBQUMsQ0FBQztTQUMxRDtJQUNILENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxJQUF5QjtRQUN0RCxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQ3JDLE9BQU87U0FDUjtRQUVELE1BQU0sWUFBWSxHQUFHLElBQUEsaUNBQW9CLEVBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN4RSxNQUFNLGtCQUFrQixHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUs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QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtkaXJuYW1lfSBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtGaWxlU3lzdGVtLCBXb3Jrc3BhY2VQYXRofSBmcm9tICcuL2ZpbGUtc3lzdGVtJztcbmltcG9ydCB7Z2V0QW5ndWxhckRlY29yYXRvcnN9IGZyb20gJy4vdXRpbHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQge3Vud3JhcEV4cHJlc3Npb259IGZyb20gJy4vdXRpbHMvZnVuY3Rpb25zJztcbmltcG9ydCB7XG4gIGNvbXB1dGVMaW5lU3RhcnRzTWFwLFxuICBnZXRMaW5lQW5kQ2hhcmFjdGVyRnJvbVBvc2l0aW9uLFxuICBMaW5lQW5kQ2hhcmFjdGVyLFxufSBmcm9tICcuL3V0aWxzL2xpbmUtbWFwcGluZ3MnO1xuaW1wb3J0IHtnZXRQcm9wZXJ0eU5hbWVUZXh0fSBmcm9tICcuL3V0aWxzL3Byb3BlcnR5LW5hbWUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkUmVzb3VyY2Uge1xuICAvKiogQ2xhc3MgZGVjbGFyYXRpb24gdGhhdCBjb250YWlucyB0aGlzIHJlc291cmNlLiAqL1xuICBjb250YWluZXI6IHRzLkNsYXNzRGVjbGFyYXRpb24gfCBudWxsO1xuICAvKiogRmlsZSBjb250ZW50IG9mIHRoZSBnaXZlbiB0ZW1wbGF0ZS4gKi9cbiAgY29udGVudDogc3RyaW5nO1xuICAvKiogU3RhcnQgb2Zmc2V0IG9mIHRoZSByZXNvdXJjZSBjb250ZW50IChlLmcuIGluIHRoZSBpbmxpbmUgc291cmNlIGZpbGUpICovXG4gIHN0YXJ0OiBudW1iZXI7XG4gIC8qKiBXaGV0aGVyIHRoZSBnaXZlbiByZXNvdXJjZSBpcyBpbmxpbmUgb3Igbm90LiAqL1xuICBpbmxpbmU6IGJvb2xlYW47XG4gIC8qKiBQYXRoIHRvIHRoZSBmaWxlIHRoYXQgY29udGFpbnMgdGhpcyByZXNvdXJjZS4gKi9cbiAgZmlsZVBhdGg6IFdvcmtzcGFjZVBhdGg7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjaGFyYWN0ZXIgYW5kIGxpbmUgb2YgYSBnaXZlbiBwb3NpdGlvbiBpbmRleCBpbiB0aGUgcmVzb3VyY2UuXG4gICAqIElmIHRoZSByZXNvdXJjZSBpcyBkZWNsYXJlZCBpbmxpbmUgd2l0aGluIGEgVHlwZVNjcmlwdCBzb3VyY2UgZmlsZSwgdGhlIGxpbmUgYW5kXG4gICAqIGNoYXJhY3RlciBhcmUgYmFzZWQgb24gdGhlIGZ1bGwgc291cmNlIGZpbGUgY29udGVudC5cbiAgICovXG4gIGdldENoYXJhY3RlckFuZExpbmVPZlBvc2l0aW9uOiAocG9zOiBudW1iZXIpID0+IExpbmVBbmRDaGFyYWN0ZXI7XG59XG5cbi8qKlxuICogQ29sbGVjdG9yIHRoYXQgY2FuIGJlIHVzZWQgdG8gZmluZCBBbmd1bGFyIHRlbXBsYXRlcyBhbmQgc3R5bGVzaGVldHMgcmVmZXJlbmNlZCB3aXRoaW5cbiAqIGdpdmVuIFR5cGVTY3JpcHQgc291cmNlIGZpbGVzIChpbmxpbmUgb3IgZXh0ZXJuYWwgcmVmZXJlbmNlZCBmaWxlcylcbiAqL1xuZXhwb3J0IGNsYXNzIENvbXBvbmVudFJlc291cmNlQ29sbGVjdG9yIHtcbiAgcmVzb2x2ZWRUZW1wbGF0ZXM6IFJlc29sdmVkUmVzb3VyY2VbXSA9IFtdO1xuICByZXNvbHZlZFN0eWxlc2hlZXRzOiBSZXNvbHZlZFJlc291cmNlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLCBwcml2YXRlIF9maWxlU3lzdGVtOiBGaWxlU3lzdGVtKSB7fVxuXG4gIHZpc2l0Tm9kZShub2RlOiB0cy5Ob2RlKSB7XG4gICAgaWYgKG5vZGUua2luZCA9PT0gdHMuU3ludGF4S2luZC5DbGFzc0RlY2xhcmF0aW9uKSB7XG4gICAgICB0aGlzLl92aXNpdENsYXNzRGVjbGFyYXRpb24obm9kZSBhcyB0cy5DbGFzc0RlY2xhcmF0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF92aXNpdENsYXNzRGVjbGFyYXRpb24obm9kZTogdHMuQ2xhc3NEZWNsYXJhdGlvbikge1xuICAgIGNvbnN0IGRlY29yYXRvcnMgPSB0cy5nZXREZWNvcmF0b3JzKG5vZGUpO1xuXG4gICAgaWYgKCFkZWNvcmF0b3JzIHx8ICFkZWNvcmF0b3JzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5nRGVjb3JhdG9ycyA9IGdldEFuZ3VsYXJEZWNvcmF0b3JzKHRoaXMudHlwZUNoZWNrZXIsIGRlY29yYXRvcnMpO1xuICAgIGNvbnN0IGNvbXBvbmVudERlY29yYXRvciA9IG5nRGVjb3JhdG9ycy5maW5kKGRlYyA9PiBkZWMubmFtZSA9PT0gJ0NvbXBvbmVudCcpO1xuXG4gICAgLy8gSW4gY2FzZSBubyBcIkBDb21wb25lbnRcIiBkZWNvcmF0b3IgY291bGQgYmUgZm91bmQgb24gdGhlIGN1cnJlbnQgY2xhc3MsIHNraXAuXG4gICAgaWYgKCFjb21wb25lbnREZWNvcmF0b3IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZWNvcmF0b3JDYWxsID0gY29tcG9uZW50RGVjb3JhdG9yLm5vZGUuZXhwcmVzc2lvbjtcblxuICAgIC8vIEluIGNhc2UgdGhlIGNvbXBvbmVudCBkZWNvcmF0b3IgY2FsbCBpcyBub3QgdmFsaWQsIHNraXAgdGhpcyBjbGFzcyBkZWNsYXJhdGlvbi5cbiAgICBpZiAoZGVjb3JhdG9yQ2FsbC5hcmd1bWVudHMubGVuZ3RoICE9PSAxKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50TWV0YWRhdGEgPSB1bndyYXBFeHByZXNzaW9uKGRlY29yYXRvckNhbGwuYXJndW1lbnRzWzBdKTtcblxuICAgIC8vIEVuc3VyZSB0aGF0IHRoZSBjb21wb25lbnQgbWV0YWRhdGEgaXMgYW4gb2JqZWN0IGxpdGVyYWwgZXhwcmVzc2lvbi5cbiAgICBpZiAoIXRzLmlzT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb24oY29tcG9uZW50TWV0YWRhdGEpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc291cmNlRmlsZSA9IG5vZGUuZ2V0U291cmNlRmlsZSgpO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKHNvdXJjZUZpbGUuZmlsZU5hbWUpO1xuICAgIGNvbnN0IHNvdXJjZUZpbGVEaXJQYXRoID0gZGlybmFtZShzb3VyY2VGaWxlLmZpbGVOYW1lKTtcblxuICAgIC8vIFdhbGsgdGhyb3VnaCBhbGwgY29tcG9uZW50IG1ldGFkYXRhIHByb3BlcnRpZXMgYW5kIGRldGVybWluZSB0aGUgcmVmZXJlbmNlZFxuICAgIC8vIEhUTUwgdGVtcGxhdGVzIChlaXRoZXIgZXh0ZXJuYWwgb3IgaW5saW5lKVxuICAgIGNvbXBvbmVudE1ldGFkYXRhLnByb3BlcnRpZXMuZm9yRWFjaChwcm9wZXJ0eSA9PiB7XG4gICAgICBpZiAoIXRzLmlzUHJvcGVydHlBc3NpZ25tZW50KHByb3BlcnR5KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IGdldFByb3BlcnR5TmFtZVRleHQocHJvcGVydHkubmFtZSk7XG5cbiAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT09ICdzdHlsZXMnICYmIHRzLmlzQXJyYXlMaXRlcmFsRXhwcmVzc2lvbihwcm9wZXJ0eS5pbml0aWFsaXplcikpIHtcbiAgICAgICAgcHJvcGVydHkuaW5pdGlhbGl6ZXIuZWxlbWVudHMuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgICAgaWYgKHRzLmlzU3RyaW5nTGl0ZXJhbExpa2UoZWwpKSB7XG4gICAgICAgICAgICAvLyBOZWVkIHRvIGFkZCBhbiBvZmZzZXQgb2Ygb25lIHRvIHRoZSBzdGFydCBiZWNhdXNlIHRoZSB0ZW1wbGF0ZSBxdW90ZXMgYXJlXG4gICAgICAgICAgICAvLyBub3QgcGFydCBvZiB0aGUgdGVtcGxhdGUgY29udGVudC5cbiAgICAgICAgICAgIGNvbnN0IHRlbXBsYXRlU3RhcnRJZHggPSBlbC5nZXRTdGFydCgpICsgMTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBzdHJpcEJvbShlbC50ZXh0KTtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZWRTdHlsZXNoZWV0cy5wdXNoKHtcbiAgICAgICAgICAgICAgZmlsZVBhdGgsXG4gICAgICAgICAgICAgIGNvbnRhaW5lcjogbm9kZSxcbiAgICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgICAgaW5saW5lOiB0cnVlLFxuICAgICAgICAgICAgICBzdGFydDogdGVtcGxhdGVTdGFydElkeCxcbiAgICAgICAgICAgICAgZ2V0Q2hhcmFjdGVyQW5kTGluZU9mUG9zaXRpb246IHBvcyA9PlxuICAgICAgICAgICAgICAgIHRzLmdldExpbmVBbmRDaGFyYWN0ZXJPZlBvc2l0aW9uKHNvdXJjZUZpbGUsIHBvcyArIHRlbXBsYXRlU3RhcnRJZHgpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gSW4gY2FzZSB0aGVyZSBpcyBhbiBpbmxpbmUgdGVtcGxhdGUgc3BlY2lmaWVkLCBlbnN1cmUgdGhhdCB0aGUgdmFsdWUgaXMgc3RhdGljYWxseVxuICAgICAgLy8gYW5hbHl6YWJsZSBieSBjaGVja2luZyBpZiB0aGUgaW5pdGlhbGl6ZXIgaXMgYSBzdHJpbmcgbGl0ZXJhbC1saWtlIG5vZGUuXG4gICAgICBpZiAocHJvcGVydHlOYW1lID09PSAndGVtcGxhdGUnICYmIHRzLmlzU3RyaW5nTGl0ZXJhbExpa2UocHJvcGVydHkuaW5pdGlhbGl6ZXIpKSB7XG4gICAgICAgIC8vIE5lZWQgdG8gYWRkIGFuIG9mZnNldCBvZiBvbmUgdG8gdGhlIHN0YXJ0IGJlY2F1c2UgdGhlIHRlbXBsYXRlIHF1b3RlcyBhcmVcbiAgICAgICAgLy8gbm90IHBhcnQgb2YgdGhlIHRlbXBsYXRlIGNvbnRlbnQuXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlU3RhcnRJZHggPSBwcm9wZXJ0eS5pbml0aWFsaXplci5nZXRTdGFydCgpICsgMTtcbiAgICAgICAgdGhpcy5yZXNvbHZlZFRlbXBsYXRlcy5wdXNoKHtcbiAgICAgICAgICBmaWxlUGF0aCxcbiAgICAgICAgICBjb250YWluZXI6IG5vZGUsXG4gICAgICAgICAgY29udGVudDogcHJvcGVydHkuaW5pdGlhbGl6ZXIudGV4dCxcbiAgICAgICAgICBpbmxpbmU6IHRydWUsXG4gICAgICAgICAgc3RhcnQ6IHRlbXBsYXRlU3RhcnRJZHgsXG4gICAgICAgICAgZ2V0Q2hhcmFjdGVyQW5kTGluZU9mUG9zaXRpb246IHBvcyA9PlxuICAgICAgICAgICAgdHMuZ2V0TGluZUFuZENoYXJhY3Rlck9mUG9zaXRpb24oc291cmNlRmlsZSwgcG9zICsgdGVtcGxhdGVTdGFydElkeCksXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvcGVydHlOYW1lID09PSAnc3R5bGVVcmxzJyAmJiB0cy5pc0FycmF5TGl0ZXJhbEV4cHJlc3Npb24ocHJvcGVydHkuaW5pdGlhbGl6ZXIpKSB7XG4gICAgICAgIHByb3BlcnR5LmluaXRpYWxpemVyLmVsZW1lbnRzLmZvckVhY2goZWwgPT4ge1xuICAgICAgICAgIGlmICh0cy5pc1N0cmluZ0xpdGVyYWxMaWtlKGVsKSkge1xuICAgICAgICAgICAgY29uc3Qgc3R5bGVzaGVldFBhdGggPSB0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUoc291cmNlRmlsZURpclBhdGgsIGVsLnRleHQpO1xuICAgICAgICAgICAgY29uc3Qgc3R5bGVzaGVldCA9IHRoaXMucmVzb2x2ZUV4dGVybmFsU3R5bGVzaGVldChzdHlsZXNoZWV0UGF0aCwgbm9kZSk7XG5cbiAgICAgICAgICAgIGlmIChzdHlsZXNoZWV0KSB7XG4gICAgICAgICAgICAgIHRoaXMucmVzb2x2ZWRTdHlsZXNoZWV0cy5wdXNoKHN0eWxlc2hlZXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT09ICd0ZW1wbGF0ZVVybCcgJiYgdHMuaXNTdHJpbmdMaXRlcmFsTGlrZShwcm9wZXJ0eS5pbml0aWFsaXplcikpIHtcbiAgICAgICAgY29uc3QgdGVtcGxhdGVVcmwgPSBwcm9wZXJ0eS5pbml0aWFsaXplci50ZXh0O1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZVBhdGggPSB0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUoc291cmNlRmlsZURpclBhdGgsIHRlbXBsYXRlVXJsKTtcblxuICAgICAgICAvLyBJbiBjYXNlIHRoZSB0ZW1wbGF0ZSBkb2VzIG5vdCBleGlzdCBpbiB0aGUgZmlsZSBzeXN0ZW0sIHNraXAgdGhpc1xuICAgICAgICAvLyBleHRlcm5hbCB0ZW1wbGF0ZS5cbiAgICAgICAgaWYgKCF0aGlzLl9maWxlU3lzdGVtLmZpbGVFeGlzdHModGVtcGxhdGVQYXRoKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpbGVDb250ZW50ID0gdGhpcy5fZmlsZVN5c3RlbS5yZWFkKHRlbXBsYXRlUGF0aCk7XG5cbiAgICAgICAgaWYgKGZpbGVDb250ZW50KSB7XG4gICAgICAgICAgY29uc3QgbGluZVN0YXJ0c01hcCA9IGNvbXB1dGVMaW5lU3RhcnRzTWFwKGZpbGVDb250ZW50KTtcblxuICAgICAgICAgIHRoaXMucmVzb2x2ZWRUZW1wbGF0ZXMucHVzaCh7XG4gICAgICAgICAgICBmaWxlUGF0aDogdGVtcGxhdGVQYXRoLFxuICAgICAgICAgICAgY29udGFpbmVyOiBub2RlLFxuICAgICAgICAgICAgY29udGVudDogZmlsZUNvbnRlbnQsXG4gICAgICAgICAgICBpbmxpbmU6IGZhbHNlLFxuICAgICAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgICAgICBnZXRDaGFyYWN0ZXJBbmRMaW5lT2ZQb3NpdGlvbjogcCA9PiBnZXRMaW5lQW5kQ2hhcmFjdGVyRnJvbVBvc2l0aW9uKGxpbmVTdGFydHNNYXAsIHApLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKiogUmVzb2x2ZXMgYW4gZXh0ZXJuYWwgc3R5bGVzaGVldCBieSByZWFkaW5nIGl0cyBjb250ZW50IGFuZCBjb21wdXRpbmcgbGluZSBtYXBwaW5ncy4gKi9cbiAgcmVzb2x2ZUV4dGVybmFsU3R5bGVzaGVldChcbiAgICBmaWxlUGF0aDogV29ya3NwYWNlUGF0aCxcbiAgICBjb250YWluZXI6IHRzLkNsYXNzRGVjbGFyYXRpb24gfCBudWxsLFxuICApOiBSZXNvbHZlZFJlc291cmNlIHwgbnVsbCB7XG4gICAgLy8gU3RyaXAgdGhlIEJPTSB0byBhdm9pZCBpc3N1ZXMgd2l0aCB0aGUgU2FzcyBjb21waWxlci4gU2VlOlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvaXNzdWVzLzI0MjI3I2lzc3VlY29tbWVudC0xMjAwOTM0MjU4XG4gICAgY29uc3QgZmlsZUNvbnRlbnQgPSBzdHJpcEJvbSh0aGlzLl9maWxlU3lzdGVtLnJlYWQoZmlsZVBhdGgpIHx8ICcnKTtcblxuICAgIGlmICghZmlsZUNvbnRlbnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGxpbmVTdGFydHNNYXAgPSBjb21wdXRlTGluZVN0YXJ0c01hcChmaWxlQ29udGVudCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZmlsZVBhdGg6IGZpbGVQYXRoLFxuICAgICAgY29udGFpbmVyOiBjb250YWluZXIsXG4gICAgICBjb250ZW50OiBmaWxlQ29udGVudCxcbiAgICAgIGlubGluZTogZmFsc2UsXG4gICAgICBzdGFydDogMCxcbiAgICAgIGdldENoYXJhY3RlckFuZExpbmVPZlBvc2l0aW9uOiBwb3MgPT4gZ2V0TGluZUFuZENoYXJhY3RlckZyb21Qb3NpdGlvbihsaW5lU3RhcnRzTWFwLCBwb3MpLFxuICAgIH07XG4gIH1cbn1cblxuLyoqIFN0cmlwcyB0aGUgQk9NIGZyb20gYSBzdHJpbmcuICovXG5mdW5jdGlvbiBzdHJpcEJvbShjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gY29udGVudC5yZXBsYWNlKC9cXHVGRUZGL2csICcnKTtcbn1cbiJdfQ==
@@ -19,11 +19,13 @@ const property_name_1 = require("./utils/property-name");
19
19
  * given TypeScript source files (inline or external referenced files)
20
20
  */
21
21
  class ComponentResourceCollector {
22
+ typeChecker;
23
+ _fileSystem;
24
+ resolvedTemplates = [];
25
+ resolvedStylesheets = [];
22
26
  constructor(typeChecker, _fileSystem) {
23
27
  this.typeChecker = typeChecker;
24
28
  this._fileSystem = _fileSystem;
25
- this.resolvedTemplates = [];
26
- this.resolvedStylesheets = [];
27
29
  }
28
30
  visitNode(node) {
29
31
  if (node.kind === ts.SyntaxKind.ClassDeclaration) {
@@ -152,4 +154,4 @@ exports.ComponentResourceCollector = ComponentResourceCollector;
152
154
  function stripBom(content) {
153
155
  return content.replace(/\uFEFF/g, '');
154
156
  }
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXJlc291cmNlLWNvbGxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy91cGRhdGUtdG9vbC9jb21wb25lbnQtcmVzb3VyY2UtY29sbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILCtCQUE2QjtBQUM3QixpQ0FBaUM7QUFFakMsbURBQXdEO0FBQ3hELGlEQUFtRDtBQUNuRCx5REFJK0I7QUFDL0IseURBQTBEO0FBcUIxRDs7O0dBR0c7QUFDSCxNQUFhLDBCQUEwQjtJQUlyQyxZQUFtQixXQUEyQixFQUFVLFdBQXVCO1FBQTVELGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBSC9FLHNCQUFpQixHQUF1QixFQUFFLENBQUM7UUFDM0Msd0JBQW1CLEdBQXVCLEVBQUUsQ0FBQztJQUVxQyxDQUFDO0lBRW5GLFNBQVMsQ0FBQyxJQUFhO1FBQ3JCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFO1lBQ2hELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUEyQixDQUFDLENBQUM7U0FDMUQ7SUFDSCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsSUFBeUI7UUFDdEQsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUNyQyxPQUFPO1NBQ1I7UUFFRCxNQUFNLFlBQVksR0FBRyxJQUFBLGlDQUFvQixFQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEUsTUFBTSxrQkFBa0IsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxD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LENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7ZGlybmFtZX0gZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7RmlsZVN5c3RlbSwgV29ya3NwYWNlUGF0aH0gZnJvbSAnLi9maWxlLXN5c3RlbSc7XG5pbXBvcnQge2dldEFuZ3VsYXJEZWNvcmF0b3JzfSBmcm9tICcuL3V0aWxzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHt1bndyYXBFeHByZXNzaW9ufSBmcm9tICcuL3V0aWxzL2Z1bmN0aW9ucyc7XG5pbXBvcnQge1xuICBjb21wdXRlTGluZVN0YXJ0c01hcCxcbiAgZ2V0TGluZUFuZENoYXJhY3RlckZyb21Qb3NpdGlvbixcbiAgTGluZUFuZENoYXJhY3Rlcixcbn0gZnJvbSAnLi91dGlscy9saW5lLW1hcHBpbmdzJztcbmltcG9ydCB7Z2V0UHJvcGVydHlOYW1lVGV4dH0gZnJvbSAnLi91dGlscy9wcm9wZXJ0eS1uYW1lJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlZFJlc291cmNlIHtcbiAgLyoqIENsYXNzIGRlY2xhcmF0aW9uIHRoYXQgY29udGFpbnMgdGhpcyByZXNvdXJjZS4gKi9cbiAgY29udGFpbmVyOiB0cy5DbGFzc0RlY2xhcmF0aW9uIHwgbnVsbDtcbiAgLyoqIEZpbGUgY29udGVudCBvZiB0aGUgZ2l2ZW4gdGVtcGxhdGUuICovXG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgLyoqIFN0YXJ0IG9mZnNldCBvZiB0aGUgcmVzb3VyY2UgY29udGVudCAoZS5nLiBpbiB0aGUgaW5saW5lIHNvdXJjZSBmaWxlKSAqL1xuICBzdGFydDogbnVtYmVyO1xuICAvKiogV2hldGhlciB0aGUgZ2l2ZW4gcmVzb3VyY2UgaXMgaW5saW5lIG9yIG5vdC4gKi9cbiAgaW5saW5lOiBib29sZWFuO1xuICAvKiogUGF0aCB0byB0aGUgZmlsZSB0aGF0IGNvbnRhaW5zIHRoaXMgcmVzb3VyY2UuICovXG4gIGZpbGVQYXRoOiBXb3Jrc3BhY2VQYXRoO1xuICAvKipcbiAgICogR2V0cyB0aGUgY2hhcmFjdGVyIGFuZCBsaW5lIG9mIGEgZ2l2ZW4gcG9zaXRpb24gaW5kZXggaW4gdGhlIHJlc291cmNlLlxuICAgKiBJZiB0aGUgcmVzb3VyY2UgaXMgZGVjbGFyZWQgaW5saW5lIHdpdGhpbiBhIFR5cGVTY3JpcHQgc291cmNlIGZpbGUsIHRoZSBsaW5lIGFuZFxuICAgKiBjaGFyYWN0ZXIgYXJlIGJhc2VkIG9uIHRoZSBmdWxsIHNvdXJjZSBmaWxlIGNvbnRlbnQuXG4gICAqL1xuICBnZXRDaGFyYWN0ZXJBbmRMaW5lT2ZQb3NpdGlvbjogKHBvczogbnVtYmVyKSA9PiBMaW5lQW5kQ2hhcmFjdGVyO1xufVxuXG4vKipcbiAqIENvbGxlY3RvciB0aGF0IGNhbiBiZSB1c2VkIHRvIGZpbmQgQW5ndWxhciB0ZW1wbGF0ZXMgYW5kIHN0eWxlc2hlZXRzIHJlZmVyZW5jZWQgd2l0aGluXG4gKiBnaXZlbiBUeXBlU2NyaXB0IHNvdXJjZSBmaWxlcyAoaW5saW5lIG9yIGV4dGVybmFsIHJlZmVyZW5jZWQgZmlsZXMpXG4gKi9cbmV4cG9ydCBjbGFzcyBDb21wb25lbnRSZXNvdXJjZUNvbGxlY3RvciB7XG4gIHJlc29sdmVkVGVtcGxhdGVzOiBSZXNvbHZlZFJlc291cmNlW10gPSBbXTtcbiAgcmVzb2x2ZWRTdHlsZXNoZWV0czogUmVzb2x2ZWRSZXNvdXJjZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHVibGljIHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlciwgcHJpdmF0ZSBfZmlsZVN5c3RlbTogRmlsZVN5c3RlbSkge31cblxuICB2aXNpdE5vZGUobm9kZTogdHMuTm9kZSkge1xuICAgIGlmIChub2RlLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuQ2xhc3NEZWNsYXJhdGlvbikge1xuICAgICAgdGhpcy5fdmlzaXRDbGFzc0RlY2xhcmF0aW9uKG5vZGUgYXMgdHMuQ2xhc3NEZWNsYXJhdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdmlzaXRDbGFzc0RlY2xhcmF0aW9uKG5vZGU6IHRzLkNsYXNzRGVjbGFyYXRpb24pIHtcbiAgICBjb25zdCBkZWNvcmF0b3JzID0gdHMuZ2V0RGVjb3JhdG9ycyhub2RlKTtcblxuICAgIGlmICghZGVjb3JhdG9ycyB8fCAhZGVjb3JhdG9ycy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZ0RlY29yYXRvcnMgPSBnZXRBbmd1bGFyRGVjb3JhdG9ycyh0aGlzLnR5cGVDaGVja2VyLCBkZWNvcmF0b3JzKTtcbiAgICBjb25zdCBjb21wb25lbnREZWNvcmF0b3IgPSBuZ0RlY29yYXRvcnMuZmluZChkZWMgPT4gZGVjLm5hbWUgPT09ICdDb21wb25lbnQnKTtcblxuICAgIC8vIEluIGNhc2Ugbm8gXCJAQ29tcG9uZW50XCIgZGVjb3JhdG9yIGNvdWxkIGJlIGZvdW5kIG9uIHRoZSBjdXJyZW50IGNsYXNzLCBza2lwLlxuICAgIGlmICghY29tcG9uZW50RGVjb3JhdG9yKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVjb3JhdG9yQ2FsbCA9IGNvbXBvbmVudERlY29yYXRvci5ub2RlLmV4cHJlc3Npb247XG5cbiAgICAvLyBJbiBjYXNlIHRoZSBjb21wb25lbnQgZGVjb3JhdG9yIGNhbGwgaXMgbm90IHZhbGlkLCBza2lwIHRoaXMgY2xhc3MgZGVjbGFyYXRpb24uXG4gICAgaWYgKGRlY29yYXRvckNhbGwuYXJndW1lbnRzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbXBvbmVudE1ldGFkYXRhID0gdW53cmFwRXhwcmVzc2lvbihkZWNvcmF0b3JDYWxsLmFyZ3VtZW50c1swXSk7XG5cbiAgICAvLyBFbnN1cmUgdGhhdCB0aGUgY29tcG9uZW50IG1ldGFkYXRhIGlzIGFuIG9iamVjdCBsaXRlcmFsIGV4cHJlc3Npb24uXG4gICAgaWYgKCF0cy5pc09iamVjdExpdGVyYWxFeHByZXNzaW9uKGNvbXBvbmVudE1ldGFkYXRhKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNvdXJjZUZpbGUgPSBub2RlLmdldFNvdXJjZUZpbGUoKTtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMuX2ZpbGVTeXN0ZW0ucmVzb2x2ZShzb3VyY2VGaWxlLmZpbGVOYW1lKTtcbiAgICBjb25zdCBzb3VyY2VGaWxlRGlyUGF0aCA9IGRpcm5hbWUoc291cmNlRmlsZS5maWxlTmFtZSk7XG5cbiAgICAvLyBXYWxrIHRocm91Z2ggYWxsIGNvbXBvbmVudCBtZXRhZGF0YSBwcm9wZXJ0aWVzIGFuZCBkZXRlcm1pbmUgdGhlIHJlZmVyZW5jZWRcbiAgICAvLyBIVE1MIHRlbXBsYXRlcyAoZWl0aGVyIGV4dGVybmFsIG9yIGlubGluZSlcbiAgICBjb21wb25lbnRNZXRhZGF0YS5wcm9wZXJ0aWVzLmZvckVhY2gocHJvcGVydHkgPT4ge1xuICAgICAgaWYgKCF0cy5pc1Byb3BlcnR5QXNzaWdubWVudChwcm9wZXJ0eSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSBnZXRQcm9wZXJ0eU5hbWVUZXh0KHByb3BlcnR5Lm5hbWUpO1xuXG4gICAgICBpZiAocHJvcGVydHlOYW1lID09PSAnc3R5bGVzJyAmJiB0cy5pc0FycmF5TGl0ZXJhbEV4cHJlc3Npb24ocHJvcGVydHkuaW5pdGlhbGl6ZXIpKSB7XG4gICAgICAgIHByb3BlcnR5LmluaXRpYWxpemVyLmVsZW1lbnRzLmZvckVhY2goZWwgPT4ge1xuICAgICAgICAgIGlmICh0cy5pc1N0cmluZ0xpdGVyYWxMaWtlKGVsKSkge1xuICAgICAgICAgICAgLy8gTmVlZCB0byBhZGQgYW4gb2Zmc2V0IG9mIG9uZSB0byB0aGUgc3RhcnQgYmVjYXVzZSB0aGUgdGVtcGxhdGUgcXVvdGVzIGFyZVxuICAgICAgICAgICAgLy8gbm90IHBhcnQgb2YgdGhlIHRlbXBsYXRlIGNvbnRlbnQuXG4gICAgICAgICAgICBjb25zdCB0ZW1wbGF0ZVN0YXJ0SWR4ID0gZWwuZ2V0U3RhcnQoKSArIDE7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50ID0gc3RyaXBCb20oZWwudGV4dCk7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVkU3R5bGVzaGVldHMucHVzaCh7XG4gICAgICAgICAgICAgIGZpbGVQYXRoLFxuICAgICAgICAgICAgICBjb250YWluZXI6IG5vZGUsXG4gICAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAgIGlubGluZTogdHJ1ZSxcbiAgICAgICAgICAgICAgc3RhcnQ6IHRlbXBsYXRlU3RhcnRJZHgsXG4gICAgICAgICAgICAgIGdldENoYXJhY3RlckFuZExpbmVPZlBvc2l0aW9uOiBwb3MgPT5cbiAgICAgICAgICAgICAgICB0cy5nZXRMaW5lQW5kQ2hhcmFjdGVyT2ZQb3NpdGlvbihzb3VyY2VGaWxlLCBwb3MgKyB0ZW1wbGF0ZVN0YXJ0SWR4KSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEluIGNhc2UgdGhlcmUgaXMgYW4gaW5saW5lIHRlbXBsYXRlIHNwZWNpZmllZCwgZW5zdXJlIHRoYXQgdGhlIHZhbHVlIGlzIHN0YXRpY2FsbHlcbiAgICAgIC8vIGFuYWx5emFibGUgYnkgY2hlY2tpbmcgaWYgdGhlIGluaXRpYWxpemVyIGlzIGEgc3RyaW5nIGxpdGVyYWwtbGlrZSBub2RlLlxuICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PT0gJ3RlbXBsYXRlJyAmJiB0cy5pc1N0cmluZ0xpdGVyYWxMaWtlKHByb3BlcnR5LmluaXRpYWxpemVyKSkge1xuICAgICAgICAvLyBOZWVkIHRvIGFkZCBhbiBvZmZzZXQgb2Ygb25lIHRvIHRoZSBzdGFydCBiZWNhdXNlIHRoZSB0ZW1wbGF0ZSBxdW90ZXMgYXJlXG4gICAgICAgIC8vIG5vdCBwYXJ0IG9mIHRoZSB0ZW1wbGF0ZSBjb250ZW50LlxuICAgICAgICBjb25zdCB0ZW1wbGF0ZVN0YXJ0SWR4ID0gcHJvcGVydHkuaW5pdGlhbGl6ZXIuZ2V0U3RhcnQoKSArIDE7XG4gICAgICAgIHRoaXMucmVzb2x2ZWRUZW1wbGF0ZXMucHVzaCh7XG4gICAgICAgICAgZmlsZVBhdGgsXG4gICAgICAgICAgY29udGFpbmVyOiBub2RlLFxuICAgICAgICAgIGNvbnRlbnQ6IHByb3BlcnR5LmluaXRpYWxpemVyLnRleHQsXG4gICAgICAgICAgaW5saW5lOiB0cnVlLFxuICAgICAgICAgIHN0YXJ0OiB0ZW1wbGF0ZVN0YXJ0SWR4LFxuICAgICAgICAgIGdldENoYXJhY3RlckFuZExpbmVPZlBvc2l0aW9uOiBwb3MgPT5cbiAgICAgICAgICAgIHRzLmdldExpbmVBbmRDaGFyYWN0ZXJPZlBvc2l0aW9uKHNvdXJjZUZpbGUsIHBvcyArIHRlbXBsYXRlU3RhcnRJZHgpLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PT0gJ3N0eWxlVXJscycgJiYgdHMuaXNBcnJheUxpdGVyYWxFeHByZXNzaW9uKHByb3BlcnR5LmluaXRpYWxpemVyKSkge1xuICAgICAgICBwcm9wZXJ0eS5pbml0aWFsaXplci5lbGVtZW50cy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgICBpZiAodHMuaXNTdHJpbmdMaXRlcmFsTGlrZShlbCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlc2hlZXRQYXRoID0gdGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKHNvdXJjZUZpbGVEaXJQYXRoLCBlbC50ZXh0KTtcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlc2hlZXQgPSB0aGlzLnJlc29sdmVFeHRlcm5hbFN0eWxlc2hlZXQoc3R5bGVzaGVldFBhdGgsIG5vZGUpO1xuXG4gICAgICAgICAgICBpZiAoc3R5bGVzaGVldCkge1xuICAgICAgICAgICAgICB0aGlzLnJlc29sdmVkU3R5bGVzaGVldHMucHVzaChzdHlsZXNoZWV0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvcGVydHlOYW1lID09PSAndGVtcGxhdGVVcmwnICYmIHRzLmlzU3RyaW5nTGl0ZXJhbExpa2UocHJvcGVydHkuaW5pdGlhbGl6ZXIpKSB7XG4gICAgICAgIGNvbnN0IHRlbXBsYXRlVXJsID0gcHJvcGVydHkuaW5pdGlhbGl6ZXIudGV4dDtcbiAgICAgICAgY29uc3QgdGVtcGxhdGVQYXRoID0gdGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKHNvdXJjZUZpbGVEaXJQYXRoLCB0ZW1wbGF0ZVVybCk7XG5cbiAgICAgICAgLy8gSW4gY2FzZSB0aGUgdGVtcGxhdGUgZG9lcyBub3QgZXhpc3QgaW4gdGhlIGZpbGUgc3lzdGVtLCBza2lwIHRoaXNcbiAgICAgICAgLy8gZXh0ZXJuYWwgdGVtcGxhdGUuXG4gICAgICAgIGlmICghdGhpcy5fZmlsZVN5c3RlbS5maWxlRXhpc3RzKHRlbXBsYXRlUGF0aCkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWxlQ29udGVudCA9IHRoaXMuX2ZpbGVTeXN0ZW0ucmVhZCh0ZW1wbGF0ZVBhdGgpO1xuXG4gICAgICAgIGlmIChmaWxlQ29udGVudCkge1xuICAgICAgICAgIGNvbnN0IGxpbmVTdGFydHNNYXAgPSBjb21wdXRlTGluZVN0YXJ0c01hcChmaWxlQ29udGVudCk7XG5cbiAgICAgICAgICB0aGlzLnJlc29sdmVkVGVtcGxhdGVzLnB1c2goe1xuICAgICAgICAgICAgZmlsZVBhdGg6IHRlbXBsYXRlUGF0aCxcbiAgICAgICAgICAgIGNvbnRhaW5lcjogbm9kZSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGZpbGVDb250ZW50LFxuICAgICAgICAgICAgaW5saW5lOiBmYWxzZSxcbiAgICAgICAgICAgIHN0YXJ0OiAwLFxuICAgICAgICAgICAgZ2V0Q2hhcmFjdGVyQW5kTGluZU9mUG9zaXRpb246IHAgPT4gZ2V0TGluZUFuZENoYXJhY3RlckZyb21Qb3NpdGlvbihsaW5lU3RhcnRzTWFwLCBwKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqIFJlc29sdmVzIGFuIGV4dGVybmFsIHN0eWxlc2hlZXQgYnkgcmVhZGluZyBpdHMgY29udGVudCBhbmQgY29tcHV0aW5nIGxpbmUgbWFwcGluZ3MuICovXG4gIHJlc29sdmVFeHRlcm5hbFN0eWxlc2hlZXQoXG4gICAgZmlsZVBhdGg6IFdvcmtzcGFjZVBhdGgsXG4gICAgY29udGFpbmVyOiB0cy5DbGFzc0RlY2xhcmF0aW9uIHwgbnVsbCxcbiAgKTogUmVzb2x2ZWRSZXNvdXJjZSB8IG51bGwge1xuICAgIC8vIFN0cmlwIHRoZSBCT00gdG8gYXZvaWQgaXNzdWVzIHdpdGggdGhlIFNhc3MgY29tcGlsZXIuIFNlZTpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2lzc3Vlcy8yNDIyNyNpc3N1ZWNvbW1lbnQtMTIwMDkzNDI1OFxuICAgIGNvbnN0IGZpbGVDb250ZW50ID0gc3RyaXBCb20odGhpcy5fZmlsZVN5c3RlbS5yZWFkKGZpbGVQYXRoKSB8fCAnJyk7XG5cbiAgICBpZiAoIWZpbGVDb250ZW50KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBsaW5lU3RhcnRzTWFwID0gY29tcHV0ZUxpbmVTdGFydHNNYXAoZmlsZUNvbnRlbnQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGZpbGVQYXRoOiBmaWxlUGF0aCxcbiAgICAgIGNvbnRhaW5lcjogY29udGFpbmVyLFxuICAgICAgY29udGVudDogZmlsZUNvbnRlbnQsXG4gICAgICBpbmxpbmU6IGZhbHNlLFxuICAgICAgc3RhcnQ6IDAsXG4gICAgICBnZXRDaGFyYWN0ZXJBbmRMaW5lT2ZQb3NpdGlvbjogcG9zID0+IGdldExpbmVBbmRDaGFyYWN0ZXJGcm9tUG9zaXRpb24obGluZVN0YXJ0c01hcCwgcG9zKSxcbiAgICB9O1xuICB9XG59XG5cbi8qKiBTdHJpcHMgdGhlIEJPTSBmcm9tIGEgc3RyaW5nLiAqL1xuZnVuY3Rpb24gc3RyaXBCb20oY29udGVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGNvbnRlbnQucmVwbGFjZSgvXFx1RkVGRi9nLCAnJyk7XG59XG4iXX0=
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXJlc291cmNlLWNvbGxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy91cGRhdGUtdG9vbC9jb21wb25lbnQtcmVzb3VyY2UtY29sbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILCtCQUE2QjtBQUM3QixpQ0FBaUM7QUFFakMsbURBQXdEO0FBQ3hELGlEQUFtRDtBQUNuRCx5REFJK0I7QUFDL0IseURBQTBEO0FBcUIxRDs7O0dBR0c7QUFDSCxNQUFhLDBCQUEwQjtJQUlsQjtJQUFxQztJQUh4RCxpQkFBaUIsR0FBdUIsRUFBRSxDQUFDO0lBQzNDLG1CQUFtQixHQUF1QixFQUFFLENBQUM7SUFFN0MsWUFBbUIsV0FBMkIsRUFBVSxXQUF1QjtRQUE1RCxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtJQUFHLENBQUM7SUFFbkYsU0FBUyxDQUFDLElBQWE7UUFDckIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUU7WUFDaEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQTJCLENBQUMsQ0FBQztTQUMxRDtJQUNILENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxJQUF5QjtRQUN0RCxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQ3JDLE9BQU87U0FDUjtRQUVELE1BQU0sWUFBWSxHQUFHLElBQUEsaUNBQW9CLEVBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN4RSxNQUFNLGtCQUFrQixHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUs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QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtkaXJuYW1lfSBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtGaWxlU3lzdGVtLCBXb3Jrc3BhY2VQYXRofSBmcm9tICcuL2ZpbGUtc3lzdGVtJztcbmltcG9ydCB7Z2V0QW5ndWxhckRlY29yYXRvcnN9IGZyb20gJy4vdXRpbHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQge3Vud3JhcEV4cHJlc3Npb259IGZyb20gJy4vdXRpbHMvZnVuY3Rpb25zJztcbmltcG9ydCB7XG4gIGNvbXB1dGVMaW5lU3RhcnRzTWFwLFxuICBnZXRMaW5lQW5kQ2hhcmFjdGVyRnJvbVBvc2l0aW9uLFxuICBMaW5lQW5kQ2hhcmFjdGVyLFxufSBmcm9tICcuL3V0aWxzL2xpbmUtbWFwcGluZ3MnO1xuaW1wb3J0IHtnZXRQcm9wZXJ0eU5hbWVUZXh0fSBmcm9tICcuL3V0aWxzL3Byb3BlcnR5LW5hbWUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkUmVzb3VyY2Uge1xuICAvKiogQ2xhc3MgZGVjbGFyYXRpb24gdGhhdCBjb250YWlucyB0aGlzIHJlc291cmNlLiAqL1xuICBjb250YWluZXI6IHRzLkNsYXNzRGVjbGFyYXRpb24gfCBudWxsO1xuICAvKiogRmlsZSBjb250ZW50IG9mIHRoZSBnaXZlbiB0ZW1wbGF0ZS4gKi9cbiAgY29udGVudDogc3RyaW5nO1xuICAvKiogU3RhcnQgb2Zmc2V0IG9mIHRoZSByZXNvdXJjZSBjb250ZW50IChlLmcuIGluIHRoZSBpbmxpbmUgc291cmNlIGZpbGUpICovXG4gIHN0YXJ0OiBudW1iZXI7XG4gIC8qKiBXaGV0aGVyIHRoZSBnaXZlbiByZXNvdXJjZSBpcyBpbmxpbmUgb3Igbm90LiAqL1xuICBpbmxpbmU6IGJvb2xlYW47XG4gIC8qKiBQYXRoIHRvIHRoZSBmaWxlIHRoYXQgY29udGFpbnMgdGhpcyByZXNvdXJjZS4gKi9cbiAgZmlsZVBhdGg6IFdvcmtzcGFjZVBhdGg7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjaGFyYWN0ZXIgYW5kIGxpbmUgb2YgYSBnaXZlbiBwb3NpdGlvbiBpbmRleCBpbiB0aGUgcmVzb3VyY2UuXG4gICAqIElmIHRoZSByZXNvdXJjZSBpcyBkZWNsYXJlZCBpbmxpbmUgd2l0aGluIGEgVHlwZVNjcmlwdCBzb3VyY2UgZmlsZSwgdGhlIGxpbmUgYW5kXG4gICAqIGNoYXJhY3RlciBhcmUgYmFzZWQgb24gdGhlIGZ1bGwgc291cmNlIGZpbGUgY29udGVudC5cbiAgICovXG4gIGdldENoYXJhY3RlckFuZExpbmVPZlBvc2l0aW9uOiAocG9zOiBudW1iZXIpID0+IExpbmVBbmRDaGFyYWN0ZXI7XG59XG5cbi8qKlxuICogQ29sbGVjdG9yIHRoYXQgY2FuIGJlIHVzZWQgdG8gZmluZCBBbmd1bGFyIHRlbXBsYXRlcyBhbmQgc3R5bGVzaGVldHMgcmVmZXJlbmNlZCB3aXRoaW5cbiAqIGdpdmVuIFR5cGVTY3JpcHQgc291cmNlIGZpbGVzIChpbmxpbmUgb3IgZXh0ZXJuYWwgcmVmZXJlbmNlZCBmaWxlcylcbiAqL1xuZXhwb3J0IGNsYXNzIENvbXBvbmVudFJlc291cmNlQ29sbGVjdG9yIHtcbiAgcmVzb2x2ZWRUZW1wbGF0ZXM6IFJlc29sdmVkUmVzb3VyY2VbXSA9IFtdO1xuICByZXNvbHZlZFN0eWxlc2hlZXRzOiBSZXNvbHZlZFJlc291cmNlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLCBwcml2YXRlIF9maWxlU3lzdGVtOiBGaWxlU3lzdGVtKSB7fVxuXG4gIHZpc2l0Tm9kZShub2RlOiB0cy5Ob2RlKSB7XG4gICAgaWYgKG5vZGUua2luZCA9PT0gdHMuU3ludGF4S2luZC5DbGFzc0RlY2xhcmF0aW9uKSB7XG4gICAgICB0aGlzLl92aXNpdENsYXNzRGVjbGFyYXRpb24obm9kZSBhcyB0cy5DbGFzc0RlY2xhcmF0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF92aXNpdENsYXNzRGVjbGFyYXRpb24obm9kZTogdHMuQ2xhc3NEZWNsYXJhdGlvbikge1xuICAgIGNvbnN0IGRlY29yYXRvcnMgPSB0cy5nZXREZWNvcmF0b3JzKG5vZGUpO1xuXG4gICAgaWYgKCFkZWNvcmF0b3JzIHx8ICFkZWNvcmF0b3JzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5nRGVjb3JhdG9ycyA9IGdldEFuZ3VsYXJEZWNvcmF0b3JzKHRoaXMudHlwZUNoZWNrZXIsIGRlY29yYXRvcnMpO1xuICAgIGNvbnN0IGNvbXBvbmVudERlY29yYXRvciA9IG5nRGVjb3JhdG9ycy5maW5kKGRlYyA9PiBkZWMubmFtZSA9PT0gJ0NvbXBvbmVudCcpO1xuXG4gICAgLy8gSW4gY2FzZSBubyBcIkBDb21wb25lbnRcIiBkZWNvcmF0b3IgY291bGQgYmUgZm91bmQgb24gdGhlIGN1cnJlbnQgY2xhc3MsIHNraXAuXG4gICAgaWYgKCFjb21wb25lbnREZWNvcmF0b3IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZWNvcmF0b3JDYWxsID0gY29tcG9uZW50RGVjb3JhdG9yLm5vZGUuZXhwcmVzc2lvbjtcblxuICAgIC8vIEluIGNhc2UgdGhlIGNvbXBvbmVudCBkZWNvcmF0b3IgY2FsbCBpcyBub3QgdmFsaWQsIHNraXAgdGhpcyBjbGFzcyBkZWNsYXJhdGlvbi5cbiAgICBpZiAoZGVjb3JhdG9yQ2FsbC5hcmd1bWVudHMubGVuZ3RoICE9PSAxKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50TWV0YWRhdGEgPSB1bndyYXBFeHByZXNzaW9uKGRlY29yYXRvckNhbGwuYXJndW1lbnRzWzBdKTtcblxuICAgIC8vIEVuc3VyZSB0aGF0IHRoZSBjb21wb25lbnQgbWV0YWRhdGEgaXMgYW4gb2JqZWN0IGxpdGVyYWwgZXhwcmVzc2lvbi5cbiAgICBpZiAoIXRzLmlzT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb24oY29tcG9uZW50TWV0YWRhdGEpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc291cmNlRmlsZSA9IG5vZGUuZ2V0U291cmNlRmlsZSgpO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKHNvdXJjZUZpbGUuZmlsZU5hbWUpO1xuICAgIGNvbnN0IHNvdXJjZUZpbGVEaXJQYXRoID0gZGlybmFtZShzb3VyY2VGaWxlLmZpbGVOYW1lKTtcblxuICAgIC8vIFdhbGsgdGhyb3VnaCBhbGwgY29tcG9uZW50IG1ldGFkYXRhIHByb3BlcnRpZXMgYW5kIGRldGVybWluZSB0aGUgcmVmZXJlbmNlZFxuICAgIC8vIEhUTUwgdGVtcGxhdGVzIChlaXRoZXIgZXh0ZXJuYWwgb3IgaW5saW5lKVxuICAgIGNvbXBvbmVudE1ldGFkYXRhLnByb3BlcnRpZXMuZm9yRWFjaChwcm9wZXJ0eSA9PiB7XG4gICAgICBpZiAoIXRzLmlzUHJvcGVydHlBc3NpZ25tZW50KHByb3BlcnR5KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IGdldFByb3BlcnR5TmFtZVRleHQocHJvcGVydHkubmFtZSk7XG5cbiAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT09ICdzdHlsZXMnICYmIHRzLmlzQXJyYXlMaXRlcmFsRXhwcmVzc2lvbihwcm9wZXJ0eS5pbml0aWFsaXplcikpIHtcbiAgICAgICAgcHJvcGVydHkuaW5pdGlhbGl6ZXIuZWxlbWVudHMuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgICAgaWYgKHRzLmlzU3RyaW5nTGl0ZXJhbExpa2UoZWwpKSB7XG4gICAgICAgICAgICAvLyBOZWVkIHRvIGFkZCBhbiBvZmZzZXQgb2Ygb25lIHRvIHRoZSBzdGFydCBiZWNhdXNlIHRoZSB0ZW1wbGF0ZSBxdW90ZXMgYXJlXG4gICAgICAgICAgICAvLyBub3QgcGFydCBvZiB0aGUgdGVtcGxhdGUgY29udGVudC5cbiAgICAgICAgICAgIGNvbnN0IHRlbXBsYXRlU3RhcnRJZHggPSBlbC5nZXRTdGFydCgpICsgMTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBzdHJpcEJvbShlbC50ZXh0KTtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZWRTdHlsZXNoZWV0cy5wdXNoKHtcbiAgICAgICAgICAgICAgZmlsZVBhdGgsXG4gICAgICAgICAgICAgIGNvbnRhaW5lcjogbm9kZSxcbiAgICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgICAgaW5saW5lOiB0cnVlLFxuICAgICAgICAgICAgICBzdGFydDogdGVtcGxhdGVTdGFydElkeCxcbiAgICAgICAgICAgICAgZ2V0Q2hhcmFjdGVyQW5kTGluZU9mUG9zaXRpb246IHBvcyA9PlxuICAgICAgICAgICAgICAgIHRzLmdldExpbmVBbmRDaGFyYWN0ZXJPZlBvc2l0aW9uKHNvdXJjZUZpbGUsIHBvcyArIHRlbXBsYXRlU3RhcnRJZHgpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gSW4gY2FzZSB0aGVyZSBpcyBhbiBpbmxpbmUgdGVtcGxhdGUgc3BlY2lmaWVkLCBlbnN1cmUgdGhhdCB0aGUgdmFsdWUgaXMgc3RhdGljYWxseVxuICAgICAgLy8gYW5hbHl6YWJsZSBieSBjaGVja2luZyBpZiB0aGUgaW5pdGlhbGl6ZXIgaXMgYSBzdHJpbmcgbGl0ZXJhbC1saWtlIG5vZGUuXG4gICAgICBpZiAocHJvcGVydHlOYW1lID09PSAndGVtcGxhdGUnICYmIHRzLmlzU3RyaW5nTGl0ZXJhbExpa2UocHJvcGVydHkuaW5pdGlhbGl6ZXIpKSB7XG4gICAgICAgIC8vIE5lZWQgdG8gYWRkIGFuIG9mZnNldCBvZiBvbmUgdG8gdGhlIHN0YXJ0IGJlY2F1c2UgdGhlIHRlbXBsYXRlIHF1b3RlcyBhcmVcbiAgICAgICAgLy8gbm90IHBhcnQgb2YgdGhlIHRlbXBsYXRlIGNvbnRlbnQuXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlU3RhcnRJZHggPSBwcm9wZXJ0eS5pbml0aWFsaXplci5nZXRTdGFydCgpICsgMTtcbiAgICAgICAgdGhpcy5yZXNvbHZlZFRlbXBsYXRlcy5wdXNoKHtcbiAgICAgICAgICBmaWxlUGF0aCxcbiAgICAgICAgICBjb250YWluZXI6IG5vZGUsXG4gICAgICAgICAgY29udGVudDogcHJvcGVydHkuaW5pdGlhbGl6ZXIudGV4dCxcbiAgICAgICAgICBpbmxpbmU6IHRydWUsXG4gICAgICAgICAgc3RhcnQ6IHRlbXBsYXRlU3RhcnRJZHgsXG4gICAgICAgICAgZ2V0Q2hhcmFjdGVyQW5kTGluZU9mUG9zaXRpb246IHBvcyA9PlxuICAgICAgICAgICAgdHMuZ2V0TGluZUFuZENoYXJhY3Rlck9mUG9zaXRpb24oc291cmNlRmlsZSwgcG9zICsgdGVtcGxhdGVTdGFydElkeCksXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvcGVydHlOYW1lID09PSAnc3R5bGVVcmxzJyAmJiB0cy5pc0FycmF5TGl0ZXJhbEV4cHJlc3Npb24ocHJvcGVydHkuaW5pdGlhbGl6ZXIpKSB7XG4gICAgICAgIHByb3BlcnR5LmluaXRpYWxpemVyLmVsZW1lbnRzLmZvckVhY2goZWwgPT4ge1xuICAgICAgICAgIGlmICh0cy5pc1N0cmluZ0xpdGVyYWxMaWtlKGVsKSkge1xuICAgICAgICAgICAgY29uc3Qgc3R5bGVzaGVldFBhdGggPSB0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUoc291cmNlRmlsZURpclBhdGgsIGVsLnRleHQpO1xuICAgICAgICAgICAgY29uc3Qgc3R5bGVzaGVldCA9IHRoaXMucmVzb2x2ZUV4dGVybmFsU3R5bGVzaGVldChzdHlsZXNoZWV0UGF0aCwgbm9kZSk7XG5cbiAgICAgICAgICAgIGlmIChzdHlsZXNoZWV0KSB7XG4gICAgICAgICAgICAgIHRoaXMucmVzb2x2ZWRTdHlsZXNoZWV0cy5wdXNoKHN0eWxlc2hlZXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT09ICd0ZW1wbGF0ZVVybCcgJiYgdHMuaXNTdHJpbmdMaXRlcmFsTGlrZShwcm9wZXJ0eS5pbml0aWFsaXplcikpIHtcbiAgICAgICAgY29uc3QgdGVtcGxhdGVVcmwgPSBwcm9wZXJ0eS5pbml0aWFsaXplci50ZXh0O1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZVBhdGggPSB0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUoc291cmNlRmlsZURpclBhdGgsIHRlbXBsYXRlVXJsKTtcblxuICAgICAgICAvLyBJbiBjYXNlIHRoZSB0ZW1wbGF0ZSBkb2VzIG5vdCBleGlzdCBpbiB0aGUgZmlsZSBzeXN0ZW0sIHNraXAgdGhpc1xuICAgICAgICAvLyBleHRlcm5hbCB0ZW1wbGF0ZS5cbiAgICAgICAgaWYgKCF0aGlzLl9maWxlU3lzdGVtLmZpbGVFeGlzdHModGVtcGxhdGVQYXRoKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpbGVDb250ZW50ID0gdGhpcy5fZmlsZVN5c3RlbS5yZWFkKHRlbXBsYXRlUGF0aCk7XG5cbiAgICAgICAgaWYgKGZpbGVDb250ZW50KSB7XG4gICAgICAgICAgY29uc3QgbGluZVN0YXJ0c01hcCA9IGNvbXB1dGVMaW5lU3RhcnRzTWFwKGZpbGVDb250ZW50KTtcblxuICAgICAgICAgIHRoaXMucmVzb2x2ZWRUZW1wbGF0ZXMucHVzaCh7XG4gICAgICAgICAgICBmaWxlUGF0aDogdGVtcGxhdGVQYXRoLFxuICAgICAgICAgICAgY29udGFpbmVyOiBub2RlLFxuICAgICAgICAgICAgY29udGVudDogZmlsZUNvbnRlbnQsXG4gICAgICAgICAgICBpbmxpbmU6IGZhbHNlLFxuICAgICAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgICAgICBnZXRDaGFyYWN0ZXJBbmRMaW5lT2ZQb3NpdGlvbjogcCA9PiBnZXRMaW5lQW5kQ2hhcmFjdGVyRnJvbVBvc2l0aW9uKGxpbmVTdGFydHNNYXAsIHApLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKiogUmVzb2x2ZXMgYW4gZXh0ZXJuYWwgc3R5bGVzaGVldCBieSByZWFkaW5nIGl0cyBjb250ZW50IGFuZCBjb21wdXRpbmcgbGluZSBtYXBwaW5ncy4gKi9cbiAgcmVzb2x2ZUV4dGVybmFsU3R5bGVzaGVldChcbiAgICBmaWxlUGF0aDogV29ya3NwYWNlUGF0aCxcbiAgICBjb250YWluZXI6IHRzLkNsYXNzRGVjbGFyYXRpb24gfCBudWxsLFxuICApOiBSZXNvbHZlZFJlc291cmNlIHwgbnVsbCB7XG4gICAgLy8gU3RyaXAgdGhlIEJPTSB0byBhdm9pZCBpc3N1ZXMgd2l0aCB0aGUgU2FzcyBjb21waWxlci4gU2VlOlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvaXNzdWVzLzI0MjI3I2lzc3VlY29tbWVudC0xMjAwOTM0MjU4XG4gICAgY29uc3QgZmlsZUNvbnRlbnQgPSBzdHJpcEJvbSh0aGlzLl9maWxlU3lzdGVtLnJlYWQoZmlsZVBhdGgpIHx8ICcnKTtcblxuICAgIGlmICghZmlsZUNvbnRlbnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGxpbmVTdGFydHNNYXAgPSBjb21wdXRlTGluZVN0YXJ0c01hcChmaWxlQ29udGVudCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZmlsZVBhdGg6IGZpbGVQYXRoLFxuICAgICAgY29udGFpbmVyOiBjb250YWluZXIsXG4gICAgICBjb250ZW50OiBmaWxlQ29udGVudCxcbiAgICAgIGlubGluZTogZmFsc2UsXG4gICAgICBzdGFydDogMCxcbiAgICAgIGdldENoYXJhY3RlckFuZExpbmVPZlBvc2l0aW9uOiBwb3MgPT4gZ2V0TGluZUFuZENoYXJhY3RlckZyb21Qb3NpdGlvbihsaW5lU3RhcnRzTWFwLCBwb3MpLFxuICAgIH07XG4gIH1cbn1cblxuLyoqIFN0cmlwcyB0aGUgQk9NIGZyb20gYSBzdHJpbmcuICovXG5mdW5jdGlvbiBzdHJpcEJvbShjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gY29udGVudC5yZXBsYWNlKC9cXHVGRUZGL2csICcnKTtcbn1cbiJdfQ==
@@ -21,6 +21,12 @@ const virtual_host_1 = require("./utils/virtual-host");
21
21
  * the context can provide the necessary specifics to the migrations in a type-safe way.
22
22
  */
23
23
  class UpdateProject {
24
+ _context;
25
+ _program;
26
+ _fileSystem;
27
+ _analyzedFiles;
28
+ _logger;
29
+ _typeChecker;
24
30
  constructor(
25
31
  /** Context provided to all migrations. */
26
32
  _context,
@@ -53,7 +59,7 @@ class UpdateProject {
53
59
  * @param limitToDirectory If specified, changes will be limited to the given directory.
54
60
  */
55
61
  migrate(migrationTypes, target, data, additionalStylesheetPaths, limitToDirectory) {
56
- limitToDirectory && (limitToDirectory = this._fileSystem.resolve(limitToDirectory));
62
+ limitToDirectory &&= this._fileSystem.resolve(limitToDirectory);
57
63
  // Create instances of the specified migrations.
58
64
  const migrations = this._createMigrations(migrationTypes, target, data);
59
65
  // Creates the component resource collector. The collector can visit arbitrary
@@ -169,4 +175,4 @@ class UpdateProject {
169
175
  }
170
176
  }
171
177
  exports.UpdateProject = UpdateProject;
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXBkYXRlLXRvb2wvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsaUNBQWlDO0FBRWpDLGlGQUEwRTtBQUUxRSxxQ0FBcUQ7QUFHckQsMkRBQXlEO0FBQ3pELHVEQUFrRTtBQUVsRTs7Ozs7O0dBTUc7QUFDSCxNQUFhLGFBQWE7SUFHeEI7SUFDRSwwQ0FBMEM7SUFDbEMsUUFBaUI7SUFDekIsZ0RBQWdEO0lBQ3hDLFFBQW9CO0lBQzVCLCtEQUErRDtJQUN2RCxXQUF1QjtJQUMvQjs7O09BR0c7SUFDSyxpQkFBcUMsSUFBSSxHQUFHLEVBQUU7SUFDdEQseUNBQXlDO0lBQ2pDLFVBQXdCLHNCQUFhO1FBWHJDLGFBQVEsR0FBUixRQUFRLENBQVM7UUFFakIsYUFBUSxHQUFSLFFBQVEsQ0FBWTtRQUVwQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUt2QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0M7UUFFOUMsWUFBTyxHQUFQLE9BQU8sQ0FBOEI7UUFmOUIsaUJBQVksR0FBbUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQWdCNUUsQ0FBQztJQUVKOzs7Ozs7Ozs7T0FTRztJQUNILE9BQU8sQ0FDTCxjQUE4QyxFQUM5QyxNQUE0QixFQUM1QixJQUFVLEVBQ1YseUJBQW9DLEVBQ3BDLGdCQUF5QjtRQUV6QixnQkFBZ0IsS0FBaEIsZ0JBQWdCLEdBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBQztRQUVoRSxnREFBZ0Q7UUFDaEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEUsOEVBQThFO1FBQzlFLGdGQUFnRjtRQUNoRixnRkFB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QUcsSUFBQSxrQ0FBaUIsRUFBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sSUFBSSxHQUFHLElBQUEsMkNBQTRCLEVBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5RCxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FDRjtBQW5MRCxzQ0FtTEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7Q29tcG9uZW50UmVzb3VyY2VDb2xsZWN0b3J9IGZyb20gJy4vY29tcG9uZW50LXJlc291cmNlLWNvbGxlY3Rvcic7XG5pbXBvcnQge0ZpbGVTeXN0ZW0sIFdvcmtzcGFjZVBhdGh9IGZyb20gJy4vZmlsZS1zeXN0ZW0nO1xuaW1wb3J0IHtkZWZhdWx0TG9nZ2VyLCBVcGRhdGVMb2dnZXJ9IGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7TWlncmF0aW9uLCBNaWdyYXRpb25DdG9yLCBNaWdyYXRpb25GYWlsdXJlfSBmcm9tICcuL21pZ3JhdGlvbic7XG5pbXBvcnQge1RhcmdldFZlcnNpb259IGZyb20gJy4vdGFyZ2V0LXZlcnNpb24nO1xuaW1wb3J0IHtwYXJzZVRzY29uZmlnRmlsZX0gZnJvbSAnLi91dGlscy9wYXJzZS10c2NvbmZpZyc7XG5pbXBvcnQge2NyZWF0ZUZpbGVTeXN0ZW1Db21waWxlckhvc3R9IGZyb20gJy4vdXRpbHMvdmlydHVhbC1ob3N0JztcblxuLyoqXG4gKiBBbiB1cGRhdGUgcHJvamVjdCB0aGF0IGNhbiBiZSBydW4gYWdhaW5zdCBpbmRpdmlkdWFsIG1pZ3JhdGlvbnMuIEFuIHVwZGF0ZSBwcm9qZWN0XG4gKiBhY2NlcHRzIGEgVHlwZVNjcmlwdCBwcm9ncmFtIGFuZCBhIGNvbnRleHQgdGhhdCBpcyBwcm92aWRlZCB0byBhbGwgbWlncmF0aW9ucy4gVGhlXG4gKiBjb250ZXh0IGlzIHVzdWFsbHkgbm90IHVzZWQgYnkgbWlncmF0aW9ucywgYnV0IGluIHNvbWUgY2FzZXMgbWlncmF0aW9ucyByZWx5IG9uXG4gKiBzcGVjaWZpY3MgZnJvbSB0aGUgdG9vbCB0aGF0IHBlcmZvcm1zIHRoZSB1cGRhdGUgKGUuZy4gdGhlIEFuZ3VsYXIgQ0xJKS4gSW4gdGhvc2UgY2FzZXMsXG4gKiB0aGUgY29udGV4dCBjYW4gcHJvdmlkZSB0aGUgbmVjZXNzYXJ5IHNwZWNpZmljcyB0byB0aGUgbWlncmF0aW9ucyBpbiBhIHR5cGUtc2FmZSB3YXkuXG4gKi9cbmV4cG9ydCBjbGFzcyBVcGRhdGVQcm9qZWN0PENvbnRleHQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyID0gdGhpcy5fcHJvZ3JhbS5nZXRUeXBlQ2hlY2tlcigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKiBDb250ZXh0IHByb3ZpZGVkIHRvIGFsbCBtaWdyYXRpb25zLiAqL1xuICAgIHByaXZhdGUgX2NvbnRleHQ6IENvbnRleHQsXG4gICAgLyoqIFR5cGVTY3JpcHQgcHJvZ3JhbSB1c2luZyB3b3Jrc3BhY2UgcGF0aHMuICovXG4gICAgcHJpdmF0ZSBfcHJvZ3JhbTogdHMuUHJvZ3JhbSxcbiAgICAvKiogRmlsZSBzeXN0ZW0gdXNlZCBmb3IgcmVhZGluZywgd3JpdGluZyBhbmQgZWRpdGluZyBmaWxlcy4gKi9cbiAgICBwcml2YXRlIF9maWxlU3lzdGVtOiBGaWxlU3lzdGVtLFxuICAgIC8qKlxuICAgICAqIFNldCBvZiBhbmFseXplZCBmaWxlcy4gVXNlZCBmb3IgYXZvaWRpbmcgbXVsdGlwbGUgbWlncmF0aW9uIHJ1bnMgaWZcbiAgICAgKiBmaWxlcyBvdmVybGFwIGJldHdlZW4gdGFyZ2V0cy5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9hbmFseXplZEZpbGVzOiBTZXQ8V29ya3NwYWNlUGF0aD4gPSBuZXcgU2V0KCksXG4gICAgLyoqIExvZ2dlciB1c2VkIGZvciBwcmludGluZyBtZXNzYWdlcy4gKi9cbiAgICBwcml2YXRlIF9sb2dnZXI6IFVwZGF0ZUxvZ2dlciA9IGRlZmF1bHRMb2dnZXIsXG4gICkge31cblxuICAvKipcbiAgICogTWlncmF0ZXMgdGhlIHByb2plY3QgdG8gdGhlIHNwZWNpZmllZCB0YXJnZXQgdmVyc2lvbi5cbiAgICogQHBhcmFtIG1pZ3JhdGlvblR5cGVzIE1pZ3JhdGlvbnMgdGhhdCBzaG91bGQgYmUgcnVuLlxuICAgKiBAcGFyYW0gdGFyZ2V0IFZlcnNpb24gdGhlIHByb2plY3Qgc2hvdWxkIGJlIHVwZGF0ZWQgdG8uIENhbiBiZSBgbnVsbGAgaWYgdGhlIHNldCBvZlxuICAgKiAgIHNwZWNpZmllZCBtaWdyYXRpb25zIHJ1bnMgcmVnYXJkbGVzcyBvZiBhIHRhcmdldCB2ZXJzaW9uLlxuICAgKiBAcGFyYW0gZGF0YSBVcGdyYWRlIGRhdGEgdGhhdCBpcyBwYXNzZWQgdG8gYWxsIG1pZ3JhdGlvbiBydWxlcy5cbiAgICogQHBhcmFtIGFkZGl0aW9uYWxTdHlsZXNoZWV0UGF0aHMgQWRkaXRpb25hbCBzdHlsZXNoZWV0cyB0aGF0IHNob3VsZCBiZSBtaWdyYXRlZCwgaWYgbm90XG4gICAqICAgcmVmZXJlbmNlZCBpbiBhbiBBbmd1bGFyIGNvbXBvbmVudC4gVGhpcyBpcyBoZWxwZnVsIGZvciBnbG9iYWwgc3R5bGVzaGVldHMgaW4gYSBwcm9qZWN0LlxuICAgKiBAcGFyYW0gbGltaXRUb0RpcmVjdG9yeSBJZiBzcGVjaWZpZWQsIGNoYW5nZXMgd2lsbCBiZSBsaW1pdGVkIHRvIHRoZSBnaXZlbiBkaXJlY3RvcnkuXG4gICAqL1xuICBtaWdyYXRlPERhdGE+KFxuICAgIG1pZ3JhdGlvblR5cGVzOiBNaWdyYXRpb25DdG9yPERhdGEsIENvbnRleHQ+W10sXG4gICAgdGFyZ2V0OiBUYXJnZXRWZXJzaW9uIHwgbnVsbCxcbiAgICBkYXRhOiBEYXRhLFxuICAgIGFkZGl0aW9uYWxTdHlsZXNoZWV0UGF0aHM/OiBzdHJpbmdbXSxcbiAgICBsaW1pdFRvRGlyZWN0b3J5Pzogc3RyaW5nLFxuICApOiB7aGFzRmFpbHVyZXM6IGJvb2xlYW59IHtcbiAgICBsaW1pdFRvRGlyZWN0b3J5ICYmPSB0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUobGltaXRUb0RpcmVjdG9yeSk7XG5cbiAgICAvLyBDcmVhdGUgaW5zdGFuY2VzIG9mIHRoZSBzcGVjaWZpZWQgbWlncmF0aW9ucy5cbiAgICBjb25zdCBtaWdyYXRpb25zID0gdGhpcy5fY3JlYXRlTWlncmF0aW9ucyhtaWdyYXRpb25UeXBlcywgdGFyZ2V0LCBkYXRhKTtcbiAgICAvLyBDcmVhdGVzIHRoZSBjb21wb25lbnQgcmVzb3VyY2UgY29sbGVjdG9yLiBUaGUgY29sbGVjdG9yIGNhbiB2aXNpdCBhcmJpdHJhcnlcbiAgICAvLyBUeXBlU2NyaXB0IG5vZGVzIGFuZCB3aWxsIGZpbmQgQW5ndWxhciBjb21wb25lbnQgcmVzb3VyY2VzLiBSZXNvdXJjZXMgaW5jbHVkZVxuICAgIC8vIHRlbXBsYXRlcyBhbmQgc3R5bGVzaGVldHMuIEl0IGFsc28gY2FwdHVyZXMgaW5saW5lIHN0eWxlc2hlZXRzIGFuZCB0ZW1wbGF0ZXMuXG4gICAgY29uc3QgcmVzb3VyY2VDb2xsZWN0b3IgPSBuZXcgQ29tcG9uZW50UmVzb3VyY2VDb2xsZWN0b3IodGhpcy5fdHlwZUNoZWNrZXIsIHRoaXMuX2ZpbGVTeXN0ZW0pO1xuICAgIC8vIENvbGxlY3QgYWxsIG9mIHRoZSBUeXBlU2NyaXB0IHNvdXJjZSBmaWxlcyB3ZSB3YW50IHRvIG1pZ3JhdGUuIFdlIGRvbid0XG4gICAgLy8gbWlncmF0ZSB0eXBlIGRlZmluaXRpb24gZmlsZXMsIG9yIHNvdXJjZSBmaWxlcyBmcm9tIGV4dGVybmFsIGxpYnJhcmllcy5cbiAgICBjb25zdCBzb3VyY2VGaWxlcyA9IHRoaXMuX3Byb2dyYW0uZ2V0U291cmNlRmlsZXMoKS5maWx0ZXIoZiA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAhZi5pc0RlY2xhcmF0aW9uRmlsZSAmJlxuICAgICAgICAobGltaXRUb0RpcmVjdG9yeSA9PSBudWxsIHx8XG4gICAgICAgICAgdGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKGYuZmlsZU5hbWUpLnN0YXJ0c1dpdGgobGltaXRUb0RpcmVjdG9yeSkpICYmXG4gICAgICAgICF0aGlzLl9wcm9ncmFtLmlzU291cmNlRmlsZUZyb21FeHRlcm5hbExpYnJhcnkoZilcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBIZWxwZXIgZnVuY3Rpb24gdGhhdCB2aXNpdHMgYSBnaXZlbiBUeXBlU2NyaXB0IG5vZGUgYW5kIGNvbGxlY3RzIGFsbCByZWZlcmVuY2VkXG4gICAgLy8gY29tcG9uZW50IHJlc291cmNlcyAoaS5lLiBzdHlsZXNoZWV0cyBvciB0ZW1wbGF0ZXMpLiBBZGRpdGlvbmFsbHksIHRoZSBoZWxwZXJcbiAgICAvLyB2aXNpdHMgdGhlIG5vZGUgaW4gZWFjaCBpbnN0YW50aWF0ZWQgbWlncmF0aW9uLlxuICAgIGNvbnN0IHZpc2l0Tm9kZUFuZENvbGxlY3RSZXNvdXJjZXMgPSAobm9kZTogdHMuTm9kZSkgPT4ge1xuICAgICAgbWlncmF0aW9ucy5mb3JFYWNoKHIgPT4gci52aXNpdE5vZGUobm9kZSkpO1xuICAgICAgdHMuZm9yRWFjaENoaWxkKG5vZGUsIHZpc2l0Tm9kZUFuZENvbGxlY3RSZXNvdXJjZXMpO1xuICAgICAgcmVzb3VyY2VDb2xsZWN0b3IudmlzaXROb2RlKG5vZGUpO1xuICAgIH07XG5cbiAgICAvLyBXYWxrIHRocm91Z2ggYWxsIHNvdXJjZSBmaWxlLCBpZiBpdCBoYXMgbm90IGJlZW4gdmlzaXRlZCBiZWZvcmUsIGFuZFxuICAgIC8vIHZpc2l0IGZvdW5kIG5vZGVzIHdoaWxlIGNvbGxlY3RpbmcgcG90ZW50aWFsIHJlc291cmNlcy5cbiAgICBzb3VyY2VGaWxlcy5mb3JFYWNoKHNvdXJjZUZpbGUgPT4ge1xuICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gdGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKHNvdXJjZUZpbGUuZmlsZU5hbWUpO1xuICAgICAgLy8gRG8gbm90IHZpc2l0IHNvdXJjZSBmaWxlcyB3aGljaCBoYXZlIGJlZW4gY2hlY2tlZCBhcyBwYXJ0IG9mIGFcbiAgICAgIC8vIHByZXZpb3VzbHkgbWlncmF0ZWQgVHlwZVNjcmlwdCBwcm9qZWN0LlxuICAgICAgaWYgKCF0aGlzLl9hbmFseXplZEZpbGVzLmhhcyhyZXNvbHZlZFBhdGgpKSB7XG4gICAgICAgIHZpc2l0Tm9kZUFuZENvbGxlY3RSZXNvdXJjZXMoc291cmNlRmlsZSk7XG4gICAgICAgIHRoaXMuX2FuYWx5emVkRmlsZXMuYWRkKHJlc29sdmVkUGF0aCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBXYWxrIHRocm91Z2ggYWxsIHJlc29sdmVkIHRlbXBsYXRlcyBhbmQgdmlzaXQgdGhlbSBpbiBlYWNoIGluc3RhbnRpYXRlZFxuICAgIC8vIG1pZ3JhdGlvbi4gTm90ZSB0aGF0IHRoaXMgY2FuIG9ubHkgaGFwcGVuIGFmdGVyIHNvdXJjZSBmaWxlcyBoYXZlIGJlZW5cbiAgICAvLyB2aXNpdGVkIGJlY2F1c2Ugd2UgZmluZCB0ZW1wbGF0ZXMgdGhyb3VnaCB0aGUgVHlwZVNjcmlwdCBzb3VyY2UgZmlsZXMuXG4gICAgcmVzb3VyY2VDb2xsZWN0b3IucmVzb2x2ZWRUZW1wbGF0ZXMuZm9yRWFjaCh0ZW1wbGF0ZSA9PiB7XG4gICAgICAvLyBEbyBub3QgdmlzaXQgdGhlIHRlbXBsYXRlIGlmIGl0IGhhcyBiZWVuIGNoZWNrZWQgYmVmb3JlLiBJbmxpbmVcbiAgICAgIC8vIHRlbXBsYXRlcyBjYW5ub3QgYmUgcmVmZXJlbmNlZCBtdWx0aXBsZSB0aW1lcy5cbiAgICAgIGlmICh0ZW1wbGF0ZS5pbmxpbmUgfHwgIXRoaXMuX2FuYWx5emVkRmlsZXMuaGFzKHRlbXBsYXRlLmZpbGVQYXRoKSkge1xuICAgICAgICBtaWdyYXRpb25zLmZvckVhY2gobSA9PiBtLnZpc2l0VGVtcGxhdGUodGVtcGxhdGUpKTtcbiAgICAgICAgdGhpcy5fYW5hbHl6ZWRGaWxlcy5hZGQodGVtcGxhdGUuZmlsZVBhdGgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gV2FsayB0aHJvdWdoIGFsbCByZXNvbHZlZCBzdHlsZXNoZWV0cyBhbmQgdmlzaXQgdGhlbSBpbiBlYWNoIGluc3RhbnRpYXRlZFxuICAgIC8vIG1pZ3JhdGlvbi4gTm90ZSB0aGF0IHRoaXMgY2FuIG9ubHkgaGFwcGVuIGFmdGVyIHNvdXJjZSBmaWxlcyBoYXZlIGJlZW5cbiAgICAvLyB2aXNpdGVkIGJlY2F1c2Ugd2UgZmluZCBzdHlsZXNoZWV0cyB0aHJvdWdoIHRoZSBUeXBlU2NyaXB0IHNvdXJjZSBmaWxlcy5cbiAgICByZXNvdXJjZUNvbGxlY3Rvci5yZXNvbHZlZFN0eWxlc2hlZXRzLmZvckVhY2goc3R5bGVzaGVldCA9PiB7XG4gICAgICAvLyBEbyBub3QgdmlzaXQgdGhlIHN0eWxlc2hlZXQgaWYgaXQgaGFzIGJlZW4gY2hlY2tlZCBiZWZvcmUuIElubGluZVxuICAgICAgLy8gc3R5bGVzaGVldHMgY2Fubm90IGJlIHJlZmVyZW5jZWQgbXVsdGlwbGUgdGltZXMuXG4gICAgICBpZiAoc3R5bGVzaGVldC5pbmxpbmUgfHwgIXRoaXMuX2FuYWx5emVkRmlsZXMuaGFzKHN0eWxlc2hlZXQuZmlsZVBhdGgpKSB7XG4gICAgICAgIG1pZ3JhdGlvbnMuZm9yRWFjaChyID0+IHIudmlzaXRTdHlsZXNoZWV0KHN0eWxlc2hlZXQpKTtcbiAgICAgICAgdGhpcy5fYW5hbHl6ZWRGaWxlcy5hZGQoc3R5bGVzaGVldC5maWxlUGF0aCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBJbiBzb21lIGFwcGxpY2F0aW9ucywgZGV2ZWxvcGVycyB3aWxsIGhhdmUgZ2xvYmFsIHN0eWxlc2hlZXRzIHdoaWNoIGFyZSBub3RcbiAgICAvLyBzcGVjaWZpZWQgaW4gYW55IEFuZ3VsYXIgY29tcG9uZW50LiBUaGVyZWZvcmUgd2UgYWxsb3cgZm9yIGFkZGl0aW9uYWwgc3R5bGVzaGVldHNcbiAgICAvLyBiZWluZyBzcGVjaWZpZWQuIFdlIHZpc2l0IHRoZW0gaW4gZWFjaCBtaWdyYXRpb24gdW5sZXNzIHRoZXkgaGF2ZSBiZWVuIGFscmVhZHlcbiAgICAvLyBkaXNjb3ZlcmVkIGJlZm9yZSBhcyBhY3R1YWwgY29tcG9uZW50IHJlc291cmNlLlxuICAgIGlmIChhZGRpdGlvbmFsU3R5bGVzaGVldFBhdGhzKSB7XG4gICAgICBhZGRpdGlvbmFsU3R5bGVzaGVldFBhdGhzLmZvckVhY2goZmlsZVBhdGggPT4ge1xuICAgICAgICBjb25zdCByZXNvbHZlZFBhdGggPSB0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUoZmlsZVBhdGgpO1xuICAgICAgICBpZiAobGltaXRUb0RpcmVjdG9yeSA9PSBudWxsIHx8IHJlc29sdmVkUGF0aC5zdGFydHNXaXRoKGxpbWl0VG9EaXJlY3RvcnkpKSB7XG4gICAgICAgICAgY29uc3Qgc3R5bGVzaGVldCA9IHJlc291cmNlQ29sbGVjdG9yLnJlc29sdmVFeHRlcm5hbFN0eWxlc2hlZXQocmVzb2x2ZWRQYXRoLCBudWxsKTtcbiAgICAgICAgICAvLyBEbyBub3QgdmlzaXQgc3R5bGVzaGVldHMgd2hpY2ggaGF2ZSBiZWVuIHJlZmVyZW5jZWQgZnJvbSBhIGNvbXBvbmVudC5cbiAgICAgICAgICBpZiAoIXRoaXMuX2FuYWx5emVkRmlsZXMuaGFzKHJlc29sdmVkUGF0aCkgJiYgc3R5bGVzaGVldCkge1xuICAgICAgICAgICAgbWlncmF0aW9ucy5mb3JFYWNoKHIgPT4gci52aXNpdFN0eWxlc2hlZXQoc3R5bGVzaGVldCkpO1xuICAgICAgICAgICAgdGhpcy5fYW5hbHl6ZWRGaWxlcy5hZGQocmVzb2x2ZWRQYXRoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIENhbGwgdGhlIFwicG9zdEFuYWx5c2lzXCIgbWV0aG9kIGZvciBlYWNoIG1pZ3JhdGlvbi5cbiAgICBtaWdyYXRpb25zLmZvckVhY2gociA9PiByLnBvc3RBbmFseXNpcygpKTtcblxuICAgIC8vIENvbGxlY3QgYWxsIGZhaWx1cmVzIHJlcG9ydGVkIGJ5IGluZGl2aWR1YWwgbWlncmF0aW9ucy5cbiAgICBjb25zdCBmYWlsdXJlcyA9IG1pZ3JhdGlvbnMucmVkdWNlKFxuICAgICAgKHJlcywgbSkgPT4gcmVzLmNvbmNhdChtLmZhaWx1cmVzKSxcbiAgICAgIFtdIGFzIE1pZ3JhdGlvbkZhaWx1cmVbXSxcbiAgICApO1xuXG4gICAgLy8gSW4gY2FzZSB0aGVyZSBhcmUgZmFpbHVyZXMsIHByaW50IHRoZXNlIHRvIHRoZSBDTEkgbG9nZ2VyIGFzIHdhcm5pbmdzLlxuICAgIGlmIChmYWlsdXJlcy5sZW5ndGgpIHtcbiAgICAgIGZhaWx1cmVzLmZvckVhY2goKHtmaWxlUGF0aCwgbWVzc2FnZSwgcG9zaXRpb259KSA9PiB7XG4gICAgICAgIGNvbnN0IGxpbmVBbmRDaGFyYWN0ZXIgPSBwb3NpdGlvbiA/IGBAJHtwb3NpdGlvbi5saW5lICsgMX06JHtwb3NpdGlvbi5jaGFyYWN0ZXIgKyAxfWAgOiAnJztcbiAgICAgICAgdGhpcy5fbG9nZ2VyLndhcm4oYCR7ZmlsZVBhdGh9JHtsaW5lQW5kQ2hhcmFjdGVyfSAtICR7bWVzc2FnZX1gKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBoYXNGYWlsdXJlczogISFmYWlsdXJlcy5sZW5ndGgsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGluc3RhbmNlcyBvZiB0aGUgZ2l2ZW4gbWlncmF0aW9ucyB3aXRoIHRoZSBzcGVjaWZpZWQgdGFyZ2V0XG4gICAqIHZlcnNpb24gYW5kIGRhdGEuXG4gICAqL1xuICBwcml2YXRlIF9jcmVhdGVNaWdyYXRpb25zPERhdGE+KFxuICAgIHR5cGVzOiBNaWdyYXRpb25DdG9yPERhdGEsIENvbnRleHQ+W10sXG4gICAgdGFyZ2V0OiBUYXJnZXRWZXJzaW9uIHwgbnVsbCxcbiAgICBkYXRhOiBEYXRhLFxuICApOiBNaWdyYXRpb248RGF0YSwgQ29udGV4dD5bXSB7XG4gICAgY29uc3QgcmVzdWx0OiBNaWdyYXRpb248RGF0YSwgQ29udGV4dD5bXSA9IFtdO1xuICAgIGZvciAoY29uc3QgY3RvciBvZiB0eXBlcykge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgY3RvcihcbiAgICAgICAgdGhpcy5fcHJvZ3JhbSxcbiAgICAgICAgdGhpcy5fdHlwZUNoZWNrZXIsXG4gICAgICAgIHRhcmdldCxcbiAgICAgICAgdGhpcy5fY29udGV4dCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgdGhpcy5fZmlsZVN5c3RlbSxcbiAgICAgICAgdGhpcy5fbG9nZ2VyLFxuICAgICAgKTtcbiAgICAgIGluc3RhbmNlLmluaXQoKTtcbiAgICAgIGlmIChpbnN0YW5jZS5lbmFibGVkKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGluc3RhbmNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcHJvZ3JhbSBmb3JtIHRoZSBzcGVjaWZpZWQgdHNjb25maWcgYW5kIHBhdGNoZXMgdGhlIGhvc3RcbiAgICogdG8gcmVhZCBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdGhyb3VnaCB0aGUgZ2l2ZW4gZmlsZSBzeXN0ZW0uXG4gICAqXG4gICAqIEB0aHJvd3Mge1RzY29uZmlnUGFyc2VFcnJvcn0gSWYgdGhlIHRzY29uZmlnIGNvdWxkIG5vdCBiZSBwYXJzZWQuXG4gICAqL1xuICBzdGF0aWMgY3JlYXRlUHJvZ3JhbUZyb21Uc2NvbmZpZyh0c2NvbmZpZ1BhdGg6IFdvcmtzcGFjZVBhdGgsIGZzOiBGaWxlU3lzdGVtKTogdHMuUHJvZ3JhbSB7XG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VUc2NvbmZpZ0ZpbGUoZnMucmVzb2x2ZSh0c2NvbmZpZ1BhdGgpLCBmcyk7XG4gICAgY29uc3QgaG9zdCA9IGNyZWF0ZUZpbGVTeXN0ZW1Db21waWxlckhvc3QocGFyc2VkLm9wdGlvbnMsIGZzKTtcbiAgICByZXR1cm4gdHMuY3JlYXRlUHJvZ3JhbShwYXJzZWQuZmlsZU5hbWVzLCBwYXJzZWQub3B0aW9ucywgaG9zdCk7XG4gIH1cbn1cbiJdfQ==
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXBkYXRlLXRvb2wvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsaUNBQWlDO0FBRWpDLGlGQUEwRTtBQUUxRSxxQ0FBcUQ7QUFHckQsMkRBQXlEO0FBQ3pELHVEQUFrRTtBQUVsRTs7Ozs7O0dBTUc7QUFDSCxNQUFhLGFBQWE7SUFLZDtJQUVBO0lBRUE7SUFLQTtJQUVBO0lBZk8sWUFBWSxDQUFpQjtJQUU5QztJQUNFLDBDQUEwQztJQUNsQyxRQUFpQjtJQUN6QixnREFBZ0Q7SUFDeEMsUUFBb0I7SUFDNUIsK0RBQStEO0lBQ3ZELFdBQXVCO0lBQy9COzs7T0FHRztJQUNLLGlCQUFxQyxJQUFJLEdBQUcsRUFBRTtJQUN0RCx5Q0FBeUM7SUFDakMsVUFBd0Isc0JBQWE7UUFYckMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUVqQixhQUFRLEdBQVIsUUFBUSxDQUFZO1FBRXBCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBS3ZCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQztRQUU5QyxZQUFPLEdBQVAsT0FBTyxDQUE4QjtRQUU3QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILE9BQU8sQ0FDTCxjQUE4QyxFQUM5QyxNQUE0QixFQUM1QixJQUFVLEVBQ1YseUJBQW9DLEVBQ3BDLGdCQUF5QjtRQUV6QixnQkFBZ0IsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRWhFLGdEQUFnRDtRQUNoRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztR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LFlBQTJCLEVBQUUsRUFBYztRQUMxRSxNQUFNLE1BQU0sR0FBRyxJQUFBLGtDQUFpQixFQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0QsTUFBTSxJQUFJLEdBQUcsSUFBQSwyQ0FBNEIsRUFBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlELE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEUsQ0FBQztDQUNGO0FBckxELHNDQXFMQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtDb21wb25lbnRSZXNvdXJjZUNvbGxlY3Rvcn0gZnJvbSAnLi9jb21wb25lbnQtcmVzb3VyY2UtY29sbGVjdG9yJztcbmltcG9ydCB7RmlsZVN5c3RlbSwgV29ya3NwYWNlUGF0aH0gZnJvbSAnLi9maWxlLXN5c3RlbSc7XG5pbXBvcnQge2RlZmF1bHRMb2dnZXIsIFVwZGF0ZUxvZ2dlcn0gZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHtNaWdyYXRpb24sIE1pZ3JhdGlvbkN0b3IsIE1pZ3JhdGlvbkZhaWx1cmV9IGZyb20gJy4vbWlncmF0aW9uJztcbmltcG9ydCB7VGFyZ2V0VmVyc2lvbn0gZnJvbSAnLi90YXJnZXQtdmVyc2lvbic7XG5pbXBvcnQge3BhcnNlVHNjb25maWdGaWxlfSBmcm9tICcuL3V0aWxzL3BhcnNlLXRzY29uZmlnJztcbmltcG9ydCB7Y3JlYXRlRmlsZVN5c3RlbUNvbXBpbGVySG9zdH0gZnJvbSAnLi91dGlscy92aXJ0dWFsLWhvc3QnO1xuXG4vKipcbiAqIEFuIHVwZGF0ZSBwcm9qZWN0IHRoYXQgY2FuIGJlIHJ1biBhZ2FpbnN0IGluZGl2aWR1YWwgbWlncmF0aW9ucy4gQW4gdXBkYXRlIHByb2plY3RcbiAqIGFjY2VwdHMgYSBUeXBlU2NyaXB0IHByb2dyYW0gYW5kIGEgY29udGV4dCB0aGF0IGlzIHByb3ZpZGVkIHRvIGFsbCBtaWdyYXRpb25zLiBUaGVcbiAqIGNvbnRleHQgaXMgdXN1YWxseSBub3QgdXNlZCBieSBtaWdyYXRpb25zLCBidXQgaW4gc29tZSBjYXNlcyBtaWdyYXRpb25zIHJlbHkgb25cbiAqIHNwZWNpZmljcyBmcm9tIHRoZSB0b29sIHRoYXQgcGVyZm9ybXMgdGhlIHVwZGF0ZSAoZS5nLiB0aGUgQW5ndWxhciBDTEkpLiBJbiB0aG9zZSBjYXNlcyxcbiAqIHRoZSBjb250ZXh0IGNhbiBwcm92aWRlIHRoZSBuZWNlc3Nhcnkgc3BlY2lmaWNzIHRvIHRoZSBtaWdyYXRpb25zIGluIGEgdHlwZS1zYWZlIHdheS5cbiAqL1xuZXhwb3J0IGNsYXNzIFVwZGF0ZVByb2plY3Q8Q29udGV4dD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF90eXBlQ2hlY2tlcjogdHMuVHlwZUNoZWNrZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLyoqIENvbnRleHQgcHJvdmlkZWQgdG8gYWxsIG1pZ3JhdGlvbnMuICovXG4gICAgcHJpdmF0ZSBfY29udGV4dDogQ29udGV4dCxcbiAgICAvKiogVHlwZVNjcmlwdCBwcm9ncmFtIHVzaW5nIHdvcmtzcGFjZSBwYXRocy4gKi9cbiAgICBwcml2YXRlIF9wcm9ncmFtOiB0cy5Qcm9ncmFtLFxuICAgIC8qKiBGaWxlIHN5c3RlbSB1c2VkIGZvciByZWFkaW5nLCB3cml0aW5nIGFuZCBlZGl0aW5nIGZpbGVzLiAqL1xuICAgIHByaXZhdGUgX2ZpbGVTeXN0ZW06IEZpbGVTeXN0ZW0sXG4gICAgLyoqXG4gICAgICogU2V0IG9mIGFuYWx5emVkIGZpbGVzLiBVc2VkIGZvciBhdm9pZGluZyBtdWx0aXBsZSBtaWdyYXRpb24gcnVucyBpZlxuICAgICAqIGZpbGVzIG92ZXJsYXAgYmV0d2VlbiB0YXJnZXRzLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2FuYWx5emVkRmlsZXM6IFNldDxXb3Jrc3BhY2VQYXRoPiA9IG5ldyBTZXQoKSxcbiAgICAvKiogTG9nZ2VyIHVzZWQgZm9yIHByaW50aW5nIG1lc3NhZ2VzLiAqL1xuICAgIHByaXZhdGUgX2xvZ2dlcjogVXBkYXRlTG9nZ2VyID0gZGVmYXVsdExvZ2dlcixcbiAgKSB7XG4gICAgdGhpcy5fdHlwZUNoZWNrZXIgPSB0aGlzLl9wcm9ncmFtLmdldFR5cGVDaGVja2VyKCk7XG4gIH1cblxuICAvKipcbiAgICogTWlncmF0ZXMgdGhlIHByb2plY3QgdG8gdGhlIHNwZWNpZmllZCB0YXJnZXQgdmVyc2lvbi5cbiAgICogQHBhcmFtIG1pZ3JhdGlvblR5cGVzIE1pZ3JhdGlvbnMgdGhhdCBzaG91bGQgYmUgcnVuLlxuICAgKiBAcGFyYW0gdGFyZ2V0IFZlcnNpb24gdGhlIHByb2plY3Qgc2hvdWxkIGJlIHVwZGF0ZWQgdG8uIENhbiBiZSBgbnVsbGAgaWYgdGhlIHNldCBvZlxuICAgKiAgIHNwZWNpZmllZCBtaWdyYXRpb25zIHJ1bnMgcmVnYXJkbGVzcyBvZiBhIHRhcmdldCB2ZXJzaW9uLlxuICAgKiBAcGFyYW0gZGF0YSBVcGdyYWRlIGRhdGEgdGhhdCBpcyBwYXNzZWQgdG8gYWxsIG1pZ3JhdGlvbiBydWxlcy5cbiAgICogQHBhcmFtIGFkZGl0aW9uYWxTdHlsZXNoZWV0UGF0aHMgQWRkaXRpb25hbCBzdHlsZXNoZWV0cyB0aGF0IHNob3VsZCBiZSBtaWdyYXRlZCwgaWYgbm90XG4gICAqICAgcmVmZXJlbmNlZCBpbiBhbiBBbmd1bGFyIGNvbXBvbmVudC4gVGhpcyBpcyBoZWxwZnVsIGZvciBnbG9iYWwgc3R5bGVzaGVldHMgaW4gYSBwcm9qZWN0LlxuICAgKiBAcGFyYW0gbGltaXRUb0RpcmVjdG9yeSBJZiBzcGVjaWZpZWQsIGNoYW5nZXMgd2lsbCBiZSBsaW1pdGVkIHRvIHRoZSBnaXZlbiBkaXJlY3RvcnkuXG4gICAqL1xuICBtaWdyYXRlPERhdGE+KFxuICAgIG1pZ3JhdGlvblR5cGVzOiBNaWdyYXRpb25DdG9yPERhdGEsIENvbnRleHQ+W10sXG4gICAgdGFyZ2V0OiBUYXJnZXRWZXJzaW9uIHwgbnVsbCxcbiAgICBkYXRhOiBEYXRhLFxuICAgIGFkZGl0aW9uYWxTdHlsZXNoZWV0UGF0aHM/OiBzdHJpbmdbXSxcbiAgICBsaW1pdFRvRGlyZWN0b3J5Pzogc3RyaW5nLFxuICApOiB7aGFzRmFpbHVyZXM6IGJvb2xlYW59IHtcbiAgICBsaW1pdFRvRGlyZWN0b3J5ICYmPSB0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUobGltaXRUb0RpcmVjdG9yeSk7XG5cbiAgICAvLyBDcmVhdGUgaW5zdGFuY2VzIG9mIHRoZSBzcGVjaWZpZWQgbWlncmF0aW9ucy5cbiAgICBjb25zdCBtaWdyYXRpb25zID0gdGhpcy5fY3JlYXRlTWlncmF0aW9ucyhtaWdyYXRpb25UeXBlcywgdGFyZ2V0LCBkYXRhKTtcbiAgICAvLyBDcmVhdGVzIHRoZSBjb21wb25lbnQgcmVzb3VyY2UgY29sbGVjdG9yLiBUaGUgY29sbGVjdG9yIGNhbiB2aXNpdCBhcmJpdHJhcnlcbiAgICAvLyBUeXBlU2NyaXB0IG5vZGVzIGFuZCB3aWxsIGZpbmQgQW5ndWxhciBjb21wb25lbnQgcmVzb3VyY2VzLiBSZXNvdXJjZXMgaW5jbHVkZVxuICAgIC8vIHRlbXBsYXRlcyBhbmQgc3R5bGVzaGVldHMuIEl0IGFsc28gY2FwdHVyZXMgaW5saW5lIHN0eWxlc2hlZXRzIGFuZCB0ZW1wbGF0ZXMuXG4gICAgY29uc3QgcmVzb3VyY2VDb2xsZWN0b3IgPSBuZXcgQ29tcG9uZW50UmVzb3VyY2VDb2xsZWN0b3IodGhpcy5fdHlwZUNoZWNrZXIsIHRoaXMuX2ZpbGVTeXN0ZW0pO1xuICAgIC8vIENvbGxlY3QgYWxsIG9mIHRoZSBUeXBlU2NyaXB0IHNvdXJjZSBmaWxlcyB3ZSB3YW50IHRvIG1pZ3JhdGUuIFdlIGRvbid0XG4gICAgLy8gbWlncmF0ZSB0eXBlIGRlZmluaXRpb24gZmlsZXMsIG9yIHNvdXJjZSBmaWxlcyBmcm9tIGV4dGVybmFsIGxpYnJhcmllcy5cbiAgICBjb25zdCBzb3VyY2VGaWxlcyA9IHRoaXMuX3Byb2dyYW0uZ2V0U291cmNlRmlsZXMoKS5maWx0ZXIoZiA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAhZi5pc0RlY2xhcmF0aW9uRmlsZSAmJlxuICAgICAgICAobGltaXRUb0RpcmVjdG9yeSA9PSBudWxsIHx8XG4gICAgICAgICAgdGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKGYuZmlsZU5hbWUpLnN0YXJ0c1dpdGgobGltaXRUb0RpcmVjdG9yeSkpICYmXG4gICAgICAgICF0aGlzLl9wcm9ncmFtLmlzU291cmNlRmlsZUZyb21FeHRlcm5hbExpYnJhcnkoZilcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBIZWxwZXIgZnVuY3Rpb24gdGhhdCB2aXNpdHMgYSBnaXZlbiBUeXBlU2NyaXB0IG5vZGUgYW5kIGNvbGxlY3RzIGFsbCByZWZlcmVuY2VkXG4gICAgLy8gY29tcG9uZW50IHJlc291cmNlcyAoaS5lLiBzdHlsZXNoZWV0cyBvciB0ZW1wbGF0ZXMpLiBBZGRpdGlvbmFsbHksIHRoZSBoZWxwZXJcbiAgICAvLyB2aXNpdHMgdGhlIG5vZGUgaW4gZWFjaCBpbnN0YW50aWF0ZWQgbWlncmF0aW9uLlxuICAgIGNvbnN0IHZpc2l0Tm9kZUFuZENvbGxlY3RSZXNvdXJjZXMgPSAobm9kZTogdHMuTm9kZSkgPT4ge1xuICAgICAgbWlncmF0aW9ucy5mb3JFYWNoKHIgPT4gci52aXNpdE5vZGUobm9kZSkpO1xuICAgICAgdHMuZm9yRWFjaENoaWxkKG5vZGUsIHZpc2l0Tm9kZUFuZENvbGxlY3RSZXNvdXJjZXMpO1xuICAgICAgcmVzb3VyY2VDb2xsZWN0b3IudmlzaXROb2RlKG5vZGUpO1xuICAgIH07XG5cbiAgICAvLyBXYWxrIHRocm91Z2ggYWxsIHNvdXJjZSBmaWxlLCBpZiBpdCBoYXMgbm90IGJlZW4gdmlzaXRlZCBiZWZvcmUsIGFuZFxuICAgIC8vIHZpc2l0IGZvdW5kIG5vZGVzIHdoaWxlIGNvbGxlY3RpbmcgcG90ZW50aWFsIHJlc291cmNlcy5cbiAgICBzb3VyY2VGaWxlcy5mb3JFYWNoKHNvdXJjZUZpbGUgPT4ge1xuICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gdGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKHNvdXJjZUZpbGUuZmlsZU5hbWUpO1xuICAgICAgLy8gRG8gbm90IHZpc2l0IHNvdXJjZSBmaWxlcyB3aGljaCBoYXZlIGJlZW4gY2hlY2tlZCBhcyBwYXJ0IG9mIGFcbiAgICAgIC8vIHByZXZpb3VzbHkgbWlncmF0ZWQgVHlwZVNjcmlwdCBwcm9qZWN0LlxuICAgICAgaWYgKCF0aGlzLl9hbmFseXplZEZpbGVzLmhhcyhyZXNvbHZlZFBhdGgpKSB7XG4gICAgICAgIHZpc2l0Tm9kZUFuZENvbGxlY3RSZXNvdXJjZXMoc291cmNlRmlsZSk7XG4gICAgICAgIHRoaXMuX2FuYWx5emVkRmlsZXMuYWRkKHJlc29sdmVkUGF0aCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBXYWxrIHRocm91Z2ggYWxsIHJlc29sdmVkIHRlbXBsYXRlcyBhbmQgdmlzaXQgdGhlbSBpbiBlYWNoIGluc3RhbnRpYXRlZFxuICAgIC8vIG1pZ3JhdGlvbi4gTm90ZSB0aGF0IHRoaXMgY2FuIG9ubHkgaGFwcGVuIGFmdGVyIHNvdXJjZSBmaWxlcyBoYXZlIGJlZW5cbiAgICAvLyB2aXNpdGVkIGJlY2F1c2Ugd2UgZmluZCB0ZW1wbGF0ZXMgdGhyb3VnaCB0aGUgVHlwZVNjcmlwdCBzb3VyY2UgZmlsZXMuXG4gICAgcmVzb3VyY2VDb2xsZWN0b3IucmVzb2x2ZWRUZW1wbGF0ZXMuZm9yRWFjaCh0ZW1wbGF0ZSA9PiB7XG4gICAgICAvLyBEbyBub3QgdmlzaXQgdGhlIHRlbXBsYXRlIGlmIGl0IGhhcyBiZWVuIGNoZWNrZWQgYmVmb3JlLiBJbmxpbmVcbiAgICAgIC8vIHRlbXBsYXRlcyBjYW5ub3QgYmUgcmVmZXJlbmNlZCBtdWx0aXBsZSB0aW1lcy5cbiAgICAgIGlmICh0ZW1wbGF0ZS5pbmxpbmUgfHwgIXRoaXMuX2FuYWx5emVkRmlsZXMuaGFzKHRlbXBsYXRlLmZpbGVQYXRoKSkge1xuICAgICAgICBtaWdyYXRpb25zLmZvckVhY2gobSA9PiBtLnZpc2l0VGVtcGxhdGUodGVtcGxhdGUpKTtcbiAgICAgICAgdGhpcy5fYW5hbHl6ZWRGaWxlcy5hZGQodGVtcGxhdGUuZmlsZVBhdGgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gV2FsayB0aHJvdWdoIGFsbCByZXNvbHZlZCBzdHlsZXNoZWV0cyBhbmQgdmlzaXQgdGhlbSBpbiBlYWNoIGluc3RhbnRpYXRlZFxuICAgIC8vIG1pZ3JhdGlvbi4gTm90ZSB0aGF0IHRoaXMgY2FuIG9ubHkgaGFwcGVuIGFmdGVyIHNvdXJjZSBmaWxlcyBoYXZlIGJlZW5cbiAgICAvLyB2aXNpdGVkIGJlY2F1c2Ugd2UgZmluZCBzdHlsZXNoZWV0cyB0aHJvdWdoIHRoZSBUeXBlU2NyaXB0IHNvdXJjZSBmaWxlcy5cbiAgICByZXNvdXJjZUNvbGxlY3Rvci5yZXNvbHZlZFN0eWxlc2hlZXRzLmZvckVhY2goc3R5bGVzaGVldCA9PiB7XG4gICAgICAvLyBEbyBub3QgdmlzaXQgdGhlIHN0eWxlc2hlZXQgaWYgaXQgaGFzIGJlZW4gY2hlY2tlZCBiZWZvcmUuIElubGluZVxuICAgICAgLy8gc3R5bGVzaGVldHMgY2Fubm90IGJlIHJlZmVyZW5jZWQgbXVsdGlwbGUgdGltZXMuXG4gICAgICBpZiAoc3R5bGVzaGVldC5pbmxpbmUgfHwgIXRoaXMuX2FuYWx5emVkRmlsZXMuaGFzKHN0eWxlc2hlZXQuZmlsZVBhdGgpKSB7XG4gICAgICAgIG1pZ3JhdGlvbnMuZm9yRWFjaChyID0+IHIudmlzaXRTdHlsZXNoZWV0KHN0eWxlc2hlZXQpKTtcbiAgICAgICAgdGhpcy5fYW5hbHl6ZWRGaWxlcy5hZGQoc3R5bGVzaGVldC5maWxlUGF0aCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBJbiBzb21lIGFwcGxpY2F0aW9ucywgZGV2ZWxvcGVycyB3aWxsIGhhdmUgZ2xvYmFsIHN0eWxlc2hlZXRzIHdoaWNoIGFyZSBub3RcbiAgICAvLyBzcGVjaWZpZWQgaW4gYW55IEFuZ3VsYXIgY29tcG9uZW50LiBUaGVyZWZvcmUgd2UgYWxsb3cgZm9yIGFkZGl0aW9uYWwgc3R5bGVzaGVldHNcbiAgICAvLyBiZWluZyBzcGVjaWZpZWQuIFdlIHZpc2l0IHRoZW0gaW4gZWFjaCBtaWdyYXRpb24gdW5sZXNzIHRoZXkgaGF2ZSBiZWVuIGFscmVhZHlcbiAgICAvLyBkaXNjb3ZlcmVkIGJlZm9yZSBhcyBhY3R1YWwgY29tcG9uZW50IHJlc291cmNlLlxuICAgIGlmIChhZGRpdGlvbmFsU3R5bGVzaGVldFBhdGhzKSB7XG4gICAgICBhZGRpdGlvbmFsU3R5bGVzaGVldFBhdGhzLmZvckVhY2goZmlsZVBhdGggPT4ge1xuICAgICAgICBjb25zdCByZXNvbHZlZFBhdGggPSB0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUoZmlsZVBhdGgpO1xuICAgICAgICBpZiAobGltaXRUb0RpcmVjdG9yeSA9PSBudWxsIHx8IHJlc29sdmVkUGF0aC5zdGFydHNXaXRoKGxpbWl0VG9EaXJlY3RvcnkpKSB7XG4gICAgICAgICAgY29uc3Qgc3R5bGVzaGVldCA9IHJlc291cmNlQ29sbGVjdG9yLnJlc29sdmVFeHRlcm5hbFN0eWxlc2hlZXQocmVzb2x2ZWRQYXRoLCBudWxsKTtcbiAgICAgICAgICAvLyBEbyBub3QgdmlzaXQgc3R5bGVzaGVldHMgd2hpY2ggaGF2ZSBiZWVuIHJlZmVyZW5jZWQgZnJvbSBhIGNvbXBvbmVudC5cbiAgICAgICAgICBpZiAoIXRoaXMuX2FuYWx5emVkRmlsZXMuaGFzKHJlc29sdmVkUGF0aCkgJiYgc3R5bGVzaGVldCkge1xuICAgICAgICAgICAgbWlncmF0aW9ucy5mb3JFYWNoKHIgPT4gci52aXNpdFN0eWxlc2hlZXQoc3R5bGVzaGVldCkpO1xuICAgICAgICAgICAgdGhpcy5fYW5hbHl6ZWRGaWxlcy5hZGQocmVzb2x2ZWRQYXRoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIENhbGwgdGhlIFwicG9zdEFuYWx5c2lzXCIgbWV0aG9kIGZvciBlYWNoIG1pZ3JhdGlvbi5cbiAgICBtaWdyYXRpb25zLmZvckVhY2gociA9PiByLnBvc3RBbmFseXNpcygpKTtcblxuICAgIC8vIENvbGxlY3QgYWxsIGZhaWx1cmVzIHJlcG9ydGVkIGJ5IGluZGl2aWR1YWwgbWlncmF0aW9ucy5cbiAgICBjb25zdCBmYWlsdXJlcyA9IG1pZ3JhdGlvbnMucmVkdWNlKFxuICAgICAgKHJlcywgbSkgPT4gcmVzLmNvbmNhdChtLmZhaWx1cmVzKSxcbiAgICAgIFtdIGFzIE1pZ3JhdGlvbkZhaWx1cmVbXSxcbiAgICApO1xuXG4gICAgLy8gSW4gY2FzZSB0aGVyZSBhcmUgZmFpbHVyZXMsIHByaW50IHRoZXNlIHRvIHRoZSBDTEkgbG9nZ2VyIGFzIHdhcm5pbmdzLlxuICAgIGlmIChmYWlsdXJlcy5sZW5ndGgpIHtcbiAgICAgIGZhaWx1cmVzLmZvckVhY2goKHtmaWxlUGF0aCwgbWVzc2FnZSwgcG9zaXRpb259KSA9PiB7XG4gICAgICAgIGNvbnN0IGxpbmVBbmRDaGFyYWN0ZXIgPSBwb3NpdGlvbiA/IGBAJHtwb3NpdGlvbi5saW5lICsgMX06JHtwb3NpdGlvbi5jaGFyYWN0ZXIgKyAxfWAgOiAnJztcbiAgICAgICAgdGhpcy5fbG9nZ2VyLndhcm4oYCR7ZmlsZVBhdGh9JHtsaW5lQW5kQ2hhcmFjdGVyfSAtICR7bWVzc2FnZX1gKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBoYXNGYWlsdXJlczogISFmYWlsdXJlcy5sZW5ndGgsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGluc3RhbmNlcyBvZiB0aGUgZ2l2ZW4gbWlncmF0aW9ucyB3aXRoIHRoZSBzcGVjaWZpZWQgdGFyZ2V0XG4gICAqIHZlcnNpb24gYW5kIGRhdGEuXG4gICAqL1xuICBwcml2YXRlIF9jcmVhdGVNaWdyYXRpb25zPERhdGE+KFxuICAgIHR5cGVzOiBNaWdyYXRpb25DdG9yPERhdGEsIENvbnRleHQ+W10sXG4gICAgdGFyZ2V0OiBUYXJnZXRWZXJzaW9uIHwgbnVsbCxcbiAgICBkYXRhOiBEYXRhLFxuICApOiBNaWdyYXRpb248RGF0YSwgQ29udGV4dD5bXSB7XG4gICAgY29uc3QgcmVzdWx0OiBNaWdyYXRpb248RGF0YSwgQ29udGV4dD5bXSA9IFtdO1xuICAgIGZvciAoY29uc3QgY3RvciBvZiB0eXBlcykge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgY3RvcihcbiAgICAgICAgdGhpcy5fcHJvZ3JhbSxcbiAgICAgICAgdGhpcy5fdHlwZUNoZWNrZXIsXG4gICAgICAgIHRhcmdldCxcbiAgICAgICAgdGhpcy5fY29udGV4dCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgdGhpcy5fZmlsZVN5c3RlbSxcbiAgICAgICAgdGhpcy5fbG9nZ2VyLFxuICAgICAgKTtcbiAgICAgIGluc3RhbmNlLmluaXQoKTtcbiAgICAgIGlmIChpbnN0YW5jZS5lbmFibGVkKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGluc3RhbmNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcHJvZ3JhbSBmb3JtIHRoZSBzcGVjaWZpZWQgdHNjb25maWcgYW5kIHBhdGNoZXMgdGhlIGhvc3RcbiAgICogdG8gcmVhZCBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdGhyb3VnaCB0aGUgZ2l2ZW4gZmlsZSBzeXN0ZW0uXG4gICAqXG4gICAqIEB0aHJvd3Mge1RzY29uZmlnUGFyc2VFcnJvcn0gSWYgdGhlIHRzY29uZmlnIGNvdWxkIG5vdCBiZSBwYXJzZWQuXG4gICAqL1xuICBzdGF0aWMgY3JlYXRlUHJvZ3JhbUZyb21Uc2NvbmZpZyh0c2NvbmZpZ1BhdGg6IFdvcmtzcGFjZVBhdGgsIGZzOiBGaWxlU3lzdGVtKTogdHMuUHJvZ3JhbSB7XG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VUc2NvbmZpZ0ZpbGUoZnMucmVzb2x2ZSh0c2NvbmZpZ1BhdGgpLCBmcyk7XG4gICAgY29uc3QgaG9zdCA9IGNyZWF0ZUZpbGVTeXN0ZW1Db21waWxlckhvc3QocGFyc2VkLm9wdGlvbnMsIGZzKTtcbiAgICByZXR1cm4gdHMuY3JlYXRlUHJvZ3JhbShwYXJzZWQuZmlsZU5hbWVzLCBwYXJzZWQub3B0aW9ucywgaG9zdCk7XG4gIH1cbn1cbiJdfQ==
@@ -21,6 +21,12 @@ const virtual_host_1 = require("./utils/virtual-host");
21
21
  * the context can provide the necessary specifics to the migrations in a type-safe way.
22
22
  */
23
23
  class UpdateProject {
24
+ _context;
25
+ _program;
26
+ _fileSystem;
27
+ _analyzedFiles;
28
+ _logger;
29
+ _typeChecker;
24
30
  constructor(
25
31
  /** Context provided to all migrations. */
26
32
  _context,
@@ -53,7 +59,7 @@ class UpdateProject {
53
59
  * @param limitToDirectory If specified, changes will be limited to the given directory.
54
60
  */
55
61
  migrate(migrationTypes, target, data, additionalStylesheetPaths, limitToDirectory) {
56
- limitToDirectory && (limitToDirectory = this._fileSystem.resolve(limitToDirectory));
62
+ limitToDirectory &&= this._fileSystem.resolve(limitToDirectory);
57
63
  // Create instances of the specified migrations.
58
64
  const migrations = this._createMigrations(migrationTypes, target, data);
59
65
  // Creates the component resource collector. The collector can visit arbitrary
@@ -169,4 +175,4 @@ class UpdateProject {
169
175
  }
170
176
  }
171
177
  exports.UpdateProject = UpdateProject;
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXBkYXRlLXRvb2wvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsaUNBQWlDO0FBRWpDLGlGQUEwRTtBQUUxRSxxQ0FBcUQ7QUFHckQsMkRBQXlEO0FBQ3pELHVEQUFrRTtBQUVsRTs7Ozs7O0dBTUc7QUFDSCxNQUFhLGFBQWE7SUFHeEI7SUFDRSwwQ0FBMEM7SUFDbEMsUUFBaUI7SUFDekIsZ0RBQWdEO0lBQ3hDLFFBQW9CO0lBQzVCLCtEQUErRDtJQUN2RCxXQUF1QjtJQUMvQjs7O09BR0c7SUFDSyxpQkFBcUMsSUFBSSxHQUFHLEVBQUU7SUFDdEQseUNBQXlDO0lBQ2pDLFVBQXdCLHNCQUFhO1FBWHJDLGFBQVEsR0FBUixRQUFRLENBQVM7UUFFakIsYUFBUSxHQUFSLFFBQVEsQ0FBWTtRQUVwQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUt2QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0M7UUFFOUMsWUFBTyxHQUFQLE9BQU8sQ0FBOEI7UUFmOUIsaUJBQVksR0FBbUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQWdCNUUsQ0FBQztJQUVKOzs7Ozs7Ozs7T0FTRztJQUNILE9BQU8sQ0FDTCxjQUE4QyxFQUM5QyxNQUE0QixFQUM1QixJQUFVLEVBQ1YseUJBQW9DLEVBQ3BDLGdCQUF5QjtRQUV6QixnQkFBZ0IsS0FBaEIsZ0JBQWdCLEdBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBQztRQUVoRSxnREFBZ0Q7UUFDaEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEUsOEVBQThFO1FBQzlFLGdGQUFnRjtRQUNoRixnRkFB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QUcsSUFBQSxrQ0FBaUIsRUFBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sSUFBSSxHQUFHLElBQUEsMkNBQTRCLEVBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5RCxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FDRjtBQW5MRCxzQ0FtTEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7Q29tcG9uZW50UmVzb3VyY2VDb2xsZWN0b3J9IGZyb20gJy4vY29tcG9uZW50LXJlc291cmNlLWNvbGxlY3Rvcic7XG5pbXBvcnQge0ZpbGVTeXN0ZW0sIFdvcmtzcGFjZVBhdGh9IGZyb20gJy4vZmlsZS1zeXN0ZW0nO1xuaW1wb3J0IHtkZWZhdWx0TG9nZ2VyLCBVcGRhdGVMb2dnZXJ9IGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7TWlncmF0aW9uLCBNaWdyYXRpb25DdG9yLCBNaWdyYXRpb25GYWlsdXJlfSBmcm9tICcuL21pZ3JhdGlvbic7XG5pbXBvcnQge1RhcmdldFZlcnNpb259IGZyb20gJy4vdGFyZ2V0LXZlcnNpb24nO1xuaW1wb3J0IHtwYXJzZVRzY29uZmlnRmlsZX0gZnJvbSAnLi91dGlscy9wYXJzZS10c2NvbmZpZyc7XG5pbXBvcnQge2NyZWF0ZUZpbGVTeXN0ZW1Db21waWxlckhvc3R9IGZyb20gJy4vdXRpbHMvdmlydHVhbC1ob3N0JztcblxuLyoqXG4gKiBBbiB1cGRhdGUgcHJvamVjdCB0aGF0IGNhbiBiZSBydW4gYWdhaW5zdCBpbmRpdmlkdWFsIG1pZ3JhdGlvbnMuIEFuIHVwZGF0ZSBwcm9qZWN0XG4gKiBhY2NlcHRzIGEgVHlwZVNjcmlwdCBwcm9ncmFtIGFuZCBhIGNvbnRleHQgdGhhdCBpcyBwcm92aWRlZCB0byBhbGwgbWlncmF0aW9ucy4gVGhlXG4gKiBjb250ZXh0IGlzIHVzdWFsbHkgbm90IHVzZWQgYnkgbWlncmF0aW9ucywgYnV0IGluIHNvbWUgY2FzZXMgbWlncmF0aW9ucyByZWx5IG9uXG4gKiBzcGVjaWZpY3MgZnJvbSB0aGUgdG9vbCB0aGF0IHBlcmZvcm1zIHRoZSB1cGRhdGUgKGUuZy4gdGhlIEFuZ3VsYXIgQ0xJKS4gSW4gdGhvc2UgY2FzZXMsXG4gKiB0aGUgY29udGV4dCBjYW4gcHJvdmlkZSB0aGUgbmVjZXNzYXJ5IHNwZWNpZmljcyB0byB0aGUgbWlncmF0aW9ucyBpbiBhIHR5cGUtc2FmZSB3YXkuXG4gKi9cbmV4cG9ydCBjbGFzcyBVcGRhdGVQcm9qZWN0PENvbnRleHQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyID0gdGhpcy5fcHJvZ3JhbS5nZXRUeXBlQ2hlY2tlcigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKiBDb250ZXh0IHByb3ZpZGVkIHRvIGFsbCBtaWdyYXRpb25zLiAqL1xuICAgIHByaXZhdGUgX2NvbnRleHQ6IENvbnRleHQsXG4gICAgLyoqIFR5cGVTY3JpcHQgcHJvZ3JhbSB1c2luZyB3b3Jrc3BhY2UgcGF0aHMuICovXG4gICAgcHJpdmF0ZSBfcHJvZ3JhbTogdHMuUHJvZ3JhbSxcbiAgICAvKiogRmlsZSBzeXN0ZW0gdXNlZCBmb3IgcmVhZGluZywgd3JpdGluZyBhbmQgZWRpdGluZyBmaWxlcy4gKi9cbiAgICBwcml2YXRlIF9maWxlU3lzdGVtOiBGaWxlU3lzdGVtLFxuICAgIC8qKlxuICAgICAqIFNldCBvZiBhbmFseXplZCBmaWxlcy4gVXNlZCBmb3IgYXZvaWRpbmcgbXVsdGlwbGUgbWlncmF0aW9uIHJ1bnMgaWZcbiAgICAgKiBmaWxlcyBvdmVybGFwIGJldHdlZW4gdGFyZ2V0cy5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9hbmFseXplZEZpbGVzOiBTZXQ8V29ya3NwYWNlUGF0aD4gPSBuZXcgU2V0KCksXG4gICAgLyoqIExvZ2dlciB1c2VkIGZvciBwcmludGluZyBtZXNzYWdlcy4gKi9cbiAgICBwcml2YXRlIF9sb2dnZXI6IFVwZGF0ZUxvZ2dlciA9IGRlZmF1bHRMb2dnZXIsXG4gICkge31cblxuICAvKipcbiAgICogTWlncmF0ZXMgdGhlIHByb2plY3QgdG8gdGhlIHNwZWNpZmllZCB0YXJnZXQgdmVyc2lvbi5cbiAgICogQHBhcmFtIG1pZ3JhdGlvblR5cGVzIE1pZ3JhdGlvbnMgdGhhdCBzaG91bGQgYmUgcnVuLlxuICAgKiBAcGFyYW0gdGFyZ2V0IFZlcnNpb24gdGhlIHByb2plY3Qgc2hvdWxkIGJlIHVwZGF0ZWQgdG8uIENhbiBiZSBgbnVsbGAgaWYgdGhlIHNldCBvZlxuICAgKiAgIHNwZWNpZmllZCBtaWdyYXRpb25zIHJ1bnMgcmVnYXJkbGVzcyBvZiBhIHRhcmdldCB2ZXJzaW9uLlxuICAgKiBAcGFyYW0gZGF0YSBVcGdyYWRlIGRhdGEgdGhhdCBpcyBwYXNzZWQgdG8gYWxsIG1pZ3JhdGlvbiBydWxlcy5cbiAgICogQHBhcmFtIGFkZGl0aW9uYWxTdHlsZXNoZWV0UGF0aHMgQWRkaXRpb25hbCBzdHlsZXNoZWV0cyB0aGF0IHNob3VsZCBiZSBtaWdyYXRlZCwgaWYgbm90XG4gICAqICAgcmVmZXJlbmNlZCBpbiBhbiBBbmd1bGFyIGNvbXBvbmVudC4gVGhpcyBpcyBoZWxwZnVsIGZvciBnbG9iYWwgc3R5bGVzaGVldHMgaW4gYSBwcm9qZWN0LlxuICAgKiBAcGFyYW0gbGltaXRUb0RpcmVjdG9yeSBJZiBzcGVjaWZpZWQsIGNoYW5nZXMgd2lsbCBiZSBsaW1pdGVkIHRvIHRoZSBnaXZlbiBkaXJlY3RvcnkuXG4gICAqL1xuICBtaWdyYXRlPERhdGE+KFxuICAgIG1pZ3JhdGlvblR5cGVzOiBNaWdyYXRpb25DdG9yPERhdGEsIENvbnRleHQ+W10sXG4gICAgdGFyZ2V0OiBUYXJnZXRWZXJzaW9uIHwgbnVsbCxcbiAgICBkYXRhOiBEYXRhLFxuICAgIGFkZGl0aW9uYWxTdHlsZXNoZWV0UGF0aHM/OiBzdHJpbmdbXSxcbiAgICBsaW1pdFRvRGlyZWN0b3J5Pzogc3RyaW5nLFxuICApOiB7aGFzRmFpbHVyZXM6IGJvb2xlYW59IHtcbiAgICBsaW1pdFRvRGlyZWN0b3J5ICYmPSB0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUobGltaXRUb0RpcmVjdG9yeSk7XG5cbiAgICAvLyBDcmVhdGUgaW5zdGFuY2VzIG9mIHRoZSBzcGVjaWZpZWQgbWlncmF0aW9ucy5cbiAgICBjb25zdCBtaWdyYXRpb25zID0gdGhpcy5fY3JlYXRlTWlncmF0aW9ucyhtaWdyYXRpb25UeXBlcywgdGFyZ2V0LCBkYXRhKTtcbiAgICAvLyBDcmVhdGVzIHRoZSBjb21wb25lbnQgcmVzb3VyY2UgY29sbGVjdG9yLiBUaGUgY29sbGVjdG9yIGNhbiB2aXNpdCBhcmJpdHJhcnlcbiAgICAvLyBUeXBlU2NyaXB0IG5vZGVzIGFuZCB3aWxsIGZpbmQgQW5ndWxhciBjb21wb25lbnQgcmVzb3VyY2VzLiBSZXNvdXJjZXMgaW5jbHVkZVxuICAgIC8vIHRlbXBsYXRlcyBhbmQgc3R5bGVzaGVldHMuIEl0IGFsc28gY2FwdHVyZXMgaW5saW5lIHN0eWxlc2hlZXRzIGFuZCB0ZW1wbGF0ZXMuXG4gICAgY29uc3QgcmVzb3VyY2VDb2xsZWN0b3IgPSBuZXcgQ29tcG9uZW50UmVzb3VyY2VDb2xsZWN0b3IodGhpcy5fdHlwZUNoZWNrZXIsIHRoaXMuX2ZpbGVTeXN0ZW0pO1xuICAgIC8vIENvbGxlY3QgYWxsIG9mIHRoZSBUeXBlU2NyaXB0IHNvdXJjZSBmaWxlcyB3ZSB3YW50IHRvIG1pZ3JhdGUuIFdlIGRvbid0XG4gICAgLy8gbWlncmF0ZSB0eXBlIGRlZmluaXRpb24gZmlsZXMsIG9yIHNvdXJjZSBmaWxlcyBmcm9tIGV4dGVybmFsIGxpYnJhcmllcy5cbiAgICBjb25zdCBzb3VyY2VGaWxlcyA9IHRoaXMuX3Byb2dyYW0uZ2V0U291cmNlRmlsZXMoKS5maWx0ZXIoZiA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAhZi5pc0RlY2xhcmF0aW9uRmlsZSAmJlxuICAgICAgICAobGltaXRUb0RpcmVjdG9yeSA9PSBudWxsIHx8XG4gICAgICAgICAgdGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKGYuZmlsZU5hbWUpLnN0YXJ0c1dpdGgobGltaXRUb0RpcmVjdG9yeSkpICYmXG4gICAgICAgICF0aGlzLl9wcm9ncmFtLmlzU291cmNlRmlsZUZyb21FeHRlcm5hbExpYnJhcnkoZilcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBIZWxwZXIgZnVuY3Rpb24gdGhhdCB2aXNpdHMgYSBnaXZlbiBUeXBlU2NyaXB0IG5vZGUgYW5kIGNvbGxlY3RzIGFsbCByZWZlcmVuY2VkXG4gICAgLy8gY29tcG9uZW50IHJlc291cmNlcyAoaS5lLiBzdHlsZXNoZWV0cyBvciB0ZW1wbGF0ZXMpLiBBZGRpdGlvbmFsbHksIHRoZSBoZWxwZXJcbiAgICAvLyB2aXNpdHMgdGhlIG5vZGUgaW4gZWFjaCBpbnN0YW50aWF0ZWQgbWlncmF0aW9uLlxuICAgIGNvbnN0IHZpc2l0Tm9kZUFuZENvbGxlY3RSZXNvdXJjZXMgPSAobm9kZTogdHMuTm9kZSkgPT4ge1xuICAgICAgbWlncmF0aW9ucy5mb3JFYWNoKHIgPT4gci52aXNpdE5vZGUobm9kZSkpO1xuICAgICAgdHMuZm9yRWFjaENoaWxkKG5vZGUsIHZpc2l0Tm9kZUFuZENvbGxlY3RSZXNvdXJjZXMpO1xuICAgICAgcmVzb3VyY2VDb2xsZWN0b3IudmlzaXROb2RlKG5vZGUpO1xuICAgIH07XG5cbiAgICAvLyBXYWxrIHRocm91Z2ggYWxsIHNvdXJjZSBmaWxlLCBpZiBpdCBoYXMgbm90IGJlZW4gdmlzaXRlZCBiZWZvcmUsIGFuZFxuICAgIC8vIHZpc2l0IGZvdW5kIG5vZGVzIHdoaWxlIGNvbGxlY3RpbmcgcG90ZW50aWFsIHJlc291cmNlcy5cbiAgICBzb3VyY2VGaWxlcy5mb3JFYWNoKHNvdXJjZUZpbGUgPT4ge1xuICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gdGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKHNvdXJjZUZpbGUuZmlsZU5hbWUpO1xuICAgICAgLy8gRG8gbm90IHZpc2l0IHNvdXJjZSBmaWxlcyB3aGljaCBoYXZlIGJlZW4gY2hlY2tlZCBhcyBwYXJ0IG9mIGFcbiAgICAgIC8vIHByZXZpb3VzbHkgbWlncmF0ZWQgVHlwZVNjcmlwdCBwcm9qZWN0LlxuICAgICAgaWYgKCF0aGlzLl9hbmFseXplZEZpbGVzLmhhcyhyZXNvbHZlZFBhdGgpKSB7XG4gICAgICAgIHZpc2l0Tm9kZUFuZENvbGxlY3RSZXNvdXJjZXMoc291cmNlRmlsZSk7XG4gICAgICAgIHRoaXMuX2FuYWx5emVkRmlsZXMuYWRkKHJlc29sdmVkUGF0aCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBXYWxrIHRocm91Z2ggYWxsIHJlc29sdmVkIHRlbXBsYXRlcyBhbmQgdmlzaXQgdGhlbSBpbiBlYWNoIGluc3RhbnRpYXRlZFxuICAgIC8vIG1pZ3JhdGlvbi4gTm90ZSB0aGF0IHRoaXMgY2FuIG9ubHkgaGFwcGVuIGFmdGVyIHNvdXJjZSBmaWxlcyBoYXZlIGJlZW5cbiAgICAvLyB2aXNpdGVkIGJlY2F1c2Ugd2UgZmluZCB0ZW1wbGF0ZXMgdGhyb3VnaCB0aGUgVHlwZVNjcmlwdCBzb3VyY2UgZmlsZXMuXG4gICAgcmVzb3VyY2VDb2xsZWN0b3IucmVzb2x2ZWRUZW1wbGF0ZXMuZm9yRWFjaCh0ZW1wbGF0ZSA9PiB7XG4gICAgICAvLyBEbyBub3QgdmlzaXQgdGhlIHRlbXBsYXRlIGlmIGl0IGhhcyBiZWVuIGNoZWNrZWQgYmVmb3JlLiBJbmxpbmVcbiAgICAgIC8vIHRlbXBsYXRlcyBjYW5ub3QgYmUgcmVmZXJlbmNlZCBtdWx0aXBsZSB0aW1lcy5cbiAgICAgIGlmICh0ZW1wbGF0ZS5pbmxpbmUgfHwgIXRoaXMuX2FuYWx5emVkRmlsZXMuaGFzKHRlbXBsYXRlLmZpbGVQYXRoKSkge1xuICAgICAgICBtaWdyYXRpb25zLmZvckVhY2gobSA9PiBtLnZpc2l0VGVtcGxhdGUodGVtcGxhdGUpKTtcbiAgICAgICAgdGhpcy5fYW5hbHl6ZWRGaWxlcy5hZGQodGVtcGxhdGUuZmlsZVBhdGgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gV2FsayB0aHJvdWdoIGFsbCByZXNvbHZlZCBzdHlsZXNoZWV0cyBhbmQgdmlzaXQgdGhlbSBpbiBlYWNoIGluc3RhbnRpYXRlZFxuICAgIC8vIG1pZ3JhdGlvbi4gTm90ZSB0aGF0IHRoaXMgY2FuIG9ubHkgaGFwcGVuIGFmdGVyIHNvdXJjZSBmaWxlcyBoYXZlIGJlZW5cbiAgICAvLyB2aXNpdGVkIGJlY2F1c2Ugd2UgZmluZCBzdHlsZXNoZWV0cyB0aHJvdWdoIHRoZSBUeXBlU2NyaXB0IHNvdXJjZSBmaWxlcy5cbiAgICByZXNvdXJjZUNvbGxlY3Rvci5yZXNvbHZlZFN0eWxlc2hlZXRzLmZvckVhY2goc3R5bGVzaGVldCA9PiB7XG4gICAgICAvLyBEbyBub3QgdmlzaXQgdGhlIHN0eWxlc2hlZXQgaWYgaXQgaGFzIGJlZW4gY2hlY2tlZCBiZWZvcmUuIElubGluZVxuICAgICAgLy8gc3R5bGVzaGVldHMgY2Fubm90IGJlIHJlZmVyZW5jZWQgbXVsdGlwbGUgdGltZXMuXG4gICAgICBpZiAoc3R5bGVzaGVldC5pbmxpbmUgfHwgIXRoaXMuX2FuYWx5emVkRmlsZXMuaGFzKHN0eWxlc2hlZXQuZmlsZVBhdGgpKSB7XG4gICAgICAgIG1pZ3JhdGlvbnMuZm9yRWFjaChyID0+IHIudmlzaXRTdHlsZXNoZWV0KHN0eWxlc2hlZXQpKTtcbiAgICAgICAgdGhpcy5fYW5hbHl6ZWRGaWxlcy5hZGQoc3R5bGVzaGVldC5maWxlUGF0aCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBJbiBzb21lIGFwcGxpY2F0aW9ucywgZGV2ZWxvcGVycyB3aWxsIGhhdmUgZ2xvYmFsIHN0eWxlc2hlZXRzIHdoaWNoIGFyZSBub3RcbiAgICAvLyBzcGVjaWZpZWQgaW4gYW55IEFuZ3VsYXIgY29tcG9uZW50LiBUaGVyZWZvcmUgd2UgYWxsb3cgZm9yIGFkZGl0aW9uYWwgc3R5bGVzaGVldHNcbiAgICAvLyBiZWluZyBzcGVjaWZpZWQuIFdlIHZpc2l0IHRoZW0gaW4gZWFjaCBtaWdyYXRpb24gdW5sZXNzIHRoZXkgaGF2ZSBiZWVuIGFscmVhZHlcbiAgICAvLyBkaXNjb3ZlcmVkIGJlZm9yZSBhcyBhY3R1YWwgY29tcG9uZW50IHJlc291cmNlLlxuICAgIGlmIChhZGRpdGlvbmFsU3R5bGVzaGVldFBhdGhzKSB7XG4gICAgICBhZGRpdGlvbmFsU3R5bGVzaGVldFBhdGhzLmZvckVhY2goZmlsZVBhdGggPT4ge1xuICAgICAgICBjb25zdCByZXNvbHZlZFBhdGggPSB0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUoZmlsZVBhdGgpO1xuICAgICAgICBpZiAobGltaXRUb0RpcmVjdG9yeSA9PSBudWxsIHx8IHJlc29sdmVkUGF0aC5zdGFydHNXaXRoKGxpbWl0VG9EaXJlY3RvcnkpKSB7XG4gICAgICAgICAgY29uc3Qgc3R5bGVzaGVldCA9IHJlc291cmNlQ29sbGVjdG9yLnJlc29sdmVFeHRlcm5hbFN0eWxlc2hlZXQocmVzb2x2ZWRQYXRoLCBudWxsKTtcbiAgICAgICAgICAvLyBEbyBub3QgdmlzaXQgc3R5bGVzaGVldHMgd2hpY2ggaGF2ZSBiZWVuIHJlZmVyZW5jZWQgZnJvbSBhIGNvbXBvbmVudC5cbiAgICAgICAgICBpZiAoIXRoaXMuX2FuYWx5emVkRmlsZXMuaGFzKHJlc29sdmVkUGF0aCkgJiYgc3R5bGVzaGVldCkge1xuICAgICAgICAgICAgbWlncmF0aW9ucy5mb3JFYWNoKHIgPT4gci52aXNpdFN0eWxlc2hlZXQoc3R5bGVzaGVldCkpO1xuICAgICAgICAgICAgdGhpcy5fYW5hbHl6ZWRGaWxlcy5hZGQocmVzb2x2ZWRQYXRoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIENhbGwgdGhlIFwicG9zdEFuYWx5c2lzXCIgbWV0aG9kIGZvciBlYWNoIG1pZ3JhdGlvbi5cbiAgICBtaWdyYXRpb25zLmZvckVhY2gociA9PiByLnBvc3RBbmFseXNpcygpKTtcblxuICAgIC8vIENvbGxlY3QgYWxsIGZhaWx1cmVzIHJlcG9ydGVkIGJ5IGluZGl2aWR1YWwgbWlncmF0aW9ucy5cbiAgICBjb25zdCBmYWlsdXJlcyA9IG1pZ3JhdGlvbnMucmVkdWNlKFxuICAgICAgKHJlcywgbSkgPT4gcmVzLmNvbmNhdChtLmZhaWx1cmVzKSxcbiAgICAgIFtdIGFzIE1pZ3JhdGlvbkZhaWx1cmVbXSxcbiAgICApO1xuXG4gICAgLy8gSW4gY2FzZSB0aGVyZSBhcmUgZmFpbHVyZXMsIHByaW50IHRoZXNlIHRvIHRoZSBDTEkgbG9nZ2VyIGFzIHdhcm5pbmdzLlxuICAgIGlmIChmYWlsdXJlcy5sZW5ndGgpIHtcbiAgICAgIGZhaWx1cmVzLmZvckVhY2goKHtmaWxlUGF0aCwgbWVzc2FnZSwgcG9zaXRpb259KSA9PiB7XG4gICAgICAgIGNvbnN0IGxpbmVBbmRDaGFyYWN0ZXIgPSBwb3NpdGlvbiA/IGBAJHtwb3NpdGlvbi5saW5lICsgMX06JHtwb3NpdGlvbi5jaGFyYWN0ZXIgKyAxfWAgOiAnJztcbiAgICAgICAgdGhpcy5fbG9nZ2VyLndhcm4oYCR7ZmlsZVBhdGh9JHtsaW5lQW5kQ2hhcmFjdGVyfSAtICR7bWVzc2FnZX1gKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBoYXNGYWlsdXJlczogISFmYWlsdXJlcy5sZW5ndGgsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGluc3RhbmNlcyBvZiB0aGUgZ2l2ZW4gbWlncmF0aW9ucyB3aXRoIHRoZSBzcGVjaWZpZWQgdGFyZ2V0XG4gICAqIHZlcnNpb24gYW5kIGRhdGEuXG4gICAqL1xuICBwcml2YXRlIF9jcmVhdGVNaWdyYXRpb25zPERhdGE+KFxuICAgIHR5cGVzOiBNaWdyYXRpb25DdG9yPERhdGEsIENvbnRleHQ+W10sXG4gICAgdGFyZ2V0OiBUYXJnZXRWZXJzaW9uIHwgbnVsbCxcbiAgICBkYXRhOiBEYXRhLFxuICApOiBNaWdyYXRpb248RGF0YSwgQ29udGV4dD5bXSB7XG4gICAgY29uc3QgcmVzdWx0OiBNaWdyYXRpb248RGF0YSwgQ29udGV4dD5bXSA9IFtdO1xuICAgIGZvciAoY29uc3QgY3RvciBvZiB0eXBlcykge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgY3RvcihcbiAgICAgICAgdGhpcy5fcHJvZ3JhbSxcbiAgICAgICAgdGhpcy5fdHlwZUNoZWNrZXIsXG4gICAgICAgIHRhcmdldCxcbiAgICAgICAgdGhpcy5fY29udGV4dCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgdGhpcy5fZmlsZVN5c3RlbSxcbiAgICAgICAgdGhpcy5fbG9nZ2VyLFxuICAgICAgKTtcbiAgICAgIGluc3RhbmNlLmluaXQoKTtcbiAgICAgIGlmIChpbnN0YW5jZS5lbmFibGVkKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGluc3RhbmNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcHJvZ3JhbSBmb3JtIHRoZSBzcGVjaWZpZWQgdHNjb25maWcgYW5kIHBhdGNoZXMgdGhlIGhvc3RcbiAgICogdG8gcmVhZCBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdGhyb3VnaCB0aGUgZ2l2ZW4gZmlsZSBzeXN0ZW0uXG4gICAqXG4gICAqIEB0aHJvd3Mge1RzY29uZmlnUGFyc2VFcnJvcn0gSWYgdGhlIHRzY29uZmlnIGNvdWxkIG5vdCBiZSBwYXJzZWQuXG4gICAqL1xuICBzdGF0aWMgY3JlYXRlUHJvZ3JhbUZyb21Uc2NvbmZpZyh0c2NvbmZpZ1BhdGg6IFdvcmtzcGFjZVBhdGgsIGZzOiBGaWxlU3lzdGVtKTogdHMuUHJvZ3JhbSB7XG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VUc2NvbmZpZ0ZpbGUoZnMucmVzb2x2ZSh0c2NvbmZpZ1BhdGgpLCBmcyk7XG4gICAgY29uc3QgaG9zdCA9IGNyZWF0ZUZpbGVTeXN0ZW1Db21waWxlckhvc3QocGFyc2VkLm9wdGlvbnMsIGZzKTtcbiAgICByZXR1cm4gdHMuY3JlYXRlUHJvZ3JhbShwYXJzZWQuZmlsZU5hbWVzLCBwYXJzZWQub3B0aW9ucywgaG9zdCk7XG4gIH1cbn1cbiJdfQ==
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXBkYXRlLXRvb2wvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsaUNBQWlDO0FBRWpDLGlGQUEwRTtBQUUxRSxxQ0FBcUQ7QUFHckQsMkRBQXlEO0FBQ3pELHVEQUFrRTtBQUVsRTs7Ozs7O0dBTUc7QUFDSCxNQUFhLGFBQWE7SUFLZDtJQUVBO0lBRUE7SUFLQTtJQUVBO0lBZk8sWUFBWSxDQUFpQjtJQUU5QztJQUNFLDBDQUEwQztJQUNsQyxRQUFpQjtJQUN6QixnREFBZ0Q7SUFDeEMsUUFBb0I7SUFDNUIsK0RBQStEO0lBQ3ZELFdBQXVCO0lBQy9COzs7T0FHRztJQUNLLGlCQUFxQyxJQUFJLEdBQUcsRUFBRTtJQUN0RCx5Q0FBeUM7SUFDakMsVUFBd0Isc0JBQWE7UUFYckMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUVqQixhQUFRLEdBQVIsUUFBUSxDQUFZO1FBRXBCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBS3ZCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQztRQUU5QyxZQUFPLEdBQVAsT0FBTyxDQUE4QjtRQUU3QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILE9BQU8sQ0FDTCxjQUE4QyxFQUM5QyxNQUE0QixFQUM1QixJQUFVLEVBQ1YseUJBQW9DLEVBQ3BDLGdCQUF5QjtRQUV6QixnQkFBZ0IsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRWhFLGdEQUFnRDtRQUNoRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztR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LFlBQTJCLEVBQUUsRUFBYztRQUMxRSxNQUFNLE1BQU0sR0FBRyxJQUFBLGtDQUFpQixFQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0QsTUFBTSxJQUFJLEdBQUcsSUFBQSwyQ0FBNEIsRUFBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlELE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEUsQ0FBQztDQUNGO0FBckxELHNDQXFMQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtDb21wb25lbnRSZXNvdXJjZUNvbGxlY3Rvcn0gZnJvbSAnLi9jb21wb25lbnQtcmVzb3VyY2UtY29sbGVjdG9yJztcbmltcG9ydCB7RmlsZVN5c3RlbSwgV29ya3NwYWNlUGF0aH0gZnJvbSAnLi9maWxlLXN5c3RlbSc7XG5pbXBvcnQge2RlZmF1bHRMb2dnZXIsIFVwZGF0ZUxvZ2dlcn0gZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHtNaWdyYXRpb24sIE1pZ3JhdGlvbkN0b3IsIE1pZ3JhdGlvbkZhaWx1cmV9IGZyb20gJy4vbWlncmF0aW9uJztcbmltcG9ydCB7VGFyZ2V0VmVyc2lvbn0gZnJvbSAnLi90YXJnZXQtdmVyc2lvbic7XG5pbXBvcnQge3BhcnNlVHNjb25maWdGaWxlfSBmcm9tICcuL3V0aWxzL3BhcnNlLXRzY29uZmlnJztcbmltcG9ydCB7Y3JlYXRlRmlsZVN5c3RlbUNvbXBpbGVySG9zdH0gZnJvbSAnLi91dGlscy92aXJ0dWFsLWhvc3QnO1xuXG4vKipcbiAqIEFuIHVwZGF0ZSBwcm9qZWN0IHRoYXQgY2FuIGJlIHJ1biBhZ2FpbnN0IGluZGl2aWR1YWwgbWlncmF0aW9ucy4gQW4gdXBkYXRlIHByb2plY3RcbiAqIGFjY2VwdHMgYSBUeXBlU2NyaXB0IHByb2dyYW0gYW5kIGEgY29udGV4dCB0aGF0IGlzIHByb3ZpZGVkIHRvIGFsbCBtaWdyYXRpb25zLiBUaGVcbiAqIGNvbnRleHQgaXMgdXN1YWxseSBub3QgdXNlZCBieSBtaWdyYXRpb25zLCBidXQgaW4gc29tZSBjYXNlcyBtaWdyYXRpb25zIHJlbHkgb25cbiAqIHNwZWNpZmljcyBmcm9tIHRoZSB0b29sIHRoYXQgcGVyZm9ybXMgdGhlIHVwZGF0ZSAoZS5nLiB0aGUgQW5ndWxhciBDTEkpLiBJbiB0aG9zZSBjYXNlcyxcbiAqIHRoZSBjb250ZXh0IGNhbiBwcm92aWRlIHRoZSBuZWNlc3Nhcnkgc3BlY2lmaWNzIHRvIHRoZSBtaWdyYXRpb25zIGluIGEgdHlwZS1zYWZlIHdheS5cbiAqL1xuZXhwb3J0IGNsYXNzIFVwZGF0ZVByb2plY3Q8Q29udGV4dD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF90eXBlQ2hlY2tlcjogdHMuVHlwZUNoZWNrZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLyoqIENvbnRleHQgcHJvdmlkZWQgdG8gYWxsIG1pZ3JhdGlvbnMuICovXG4gICAgcHJpdmF0ZSBfY29udGV4dDogQ29udGV4dCxcbiAgICAvKiogVHlwZVNjcmlwdCBwcm9ncmFtIHVzaW5nIHdvcmtzcGFjZSBwYXRocy4gKi9cbiAgICBwcml2YXRlIF9wcm9ncmFtOiB0cy5Qcm9ncmFtLFxuICAgIC8qKiBGaWxlIHN5c3RlbSB1c2VkIGZvciByZWFkaW5nLCB3cml0aW5nIGFuZCBlZGl0aW5nIGZpbGVzLiAqL1xuICAgIHByaXZhdGUgX2ZpbGVTeXN0ZW06IEZpbGVTeXN0ZW0sXG4gICAgLyoqXG4gICAgICogU2V0IG9mIGFuYWx5emVkIGZpbGVzLiBVc2VkIGZvciBhdm9pZGluZyBtdWx0aXBsZSBtaWdyYXRpb24gcnVucyBpZlxuICAgICAqIGZpbGVzIG92ZXJsYXAgYmV0d2VlbiB0YXJnZXRzLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2FuYWx5emVkRmlsZXM6IFNldDxXb3Jrc3BhY2VQYXRoPiA9IG5ldyBTZXQoKSxcbiAgICAvKiogTG9nZ2VyIHVzZWQgZm9yIHByaW50aW5nIG1lc3NhZ2VzLiAqL1xuICAgIHByaXZhdGUgX2xvZ2dlcjogVXBkYXRlTG9nZ2VyID0gZGVmYXVsdExvZ2dlcixcbiAgKSB7XG4gICAgdGhpcy5fdHlwZUNoZWNrZXIgPSB0aGlzLl9wcm9ncmFtLmdldFR5cGVDaGVja2VyKCk7XG4gIH1cblxuICAvKipcbiAgICogTWlncmF0ZXMgdGhlIHByb2plY3QgdG8gdGhlIHNwZWNpZmllZCB0YXJnZXQgdmVyc2lvbi5cbiAgICogQHBhcmFtIG1pZ3JhdGlvblR5cGVzIE1pZ3JhdGlvbnMgdGhhdCBzaG91bGQgYmUgcnVuLlxuICAgKiBAcGFyYW0gdGFyZ2V0IFZlcnNpb24gdGhlIHByb2plY3Qgc2hvdWxkIGJlIHVwZGF0ZWQgdG8uIENhbiBiZSBgbnVsbGAgaWYgdGhlIHNldCBvZlxuICAgKiAgIHNwZWNpZmllZCBtaWdyYXRpb25zIHJ1bnMgcmVnYXJkbGVzcyBvZiBhIHRhcmdldCB2ZXJzaW9uLlxuICAgKiBAcGFyYW0gZGF0YSBVcGdyYWRlIGRhdGEgdGhhdCBpcyBwYXNzZWQgdG8gYWxsIG1pZ3JhdGlvbiBydWxlcy5cbiAgICogQHBhcmFtIGFkZGl0aW9uYWxTdHlsZXNoZWV0UGF0aHMgQWRkaXRpb25hbCBzdHlsZXNoZWV0cyB0aGF0IHNob3VsZCBiZSBtaWdyYXRlZCwgaWYgbm90XG4gICAqICAgcmVmZXJlbmNlZCBpbiBhbiBBbmd1bGFyIGNvbXBvbmVudC4gVGhpcyBpcyBoZWxwZnVsIGZvciBnbG9iYWwgc3R5bGVzaGVldHMgaW4gYSBwcm9qZWN0LlxuICAgKiBAcGFyYW0gbGltaXRUb0RpcmVjdG9yeSBJZiBzcGVjaWZpZWQsIGNoYW5nZXMgd2lsbCBiZSBsaW1pdGVkIHRvIHRoZSBnaXZlbiBkaXJlY3RvcnkuXG4gICAqL1xuICBtaWdyYXRlPERhdGE+KFxuICAgIG1pZ3JhdGlvblR5cGVzOiBNaWdyYXRpb25DdG9yPERhdGEsIENvbnRleHQ+W10sXG4gICAgdGFyZ2V0OiBUYXJnZXRWZXJzaW9uIHwgbnVsbCxcbiAgICBkYXRhOiBEYXRhLFxuICAgIGFkZGl0aW9uYWxTdHlsZXNoZWV0UGF0aHM/OiBzdHJpbmdbXSxcbiAgICBsaW1pdFRvRGlyZWN0b3J5Pzogc3RyaW5nLFxuICApOiB7aGFzRmFpbHVyZXM6IGJvb2xlYW59IHtcbiAgICBsaW1pdFRvRGlyZWN0b3J5ICYmPSB0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUobGltaXRUb0RpcmVjdG9yeSk7XG5cbiAgICAvLyBDcmVhdGUgaW5zdGFuY2VzIG9mIHRoZSBzcGVjaWZpZWQgbWlncmF0aW9ucy5cbiAgICBjb25zdCBtaWdyYXRpb25zID0gdGhpcy5fY3JlYXRlTWlncmF0aW9ucyhtaWdyYXRpb25UeXBlcywgdGFyZ2V0LCBkYXRhKTtcbiAgICAvLyBDcmVhdGVzIHRoZSBjb21wb25lbnQgcmVzb3VyY2UgY29sbGVjdG9yLiBUaGUgY29sbGVjdG9yIGNhbiB2aXNpdCBhcmJpdHJhcnlcbiAgICAvLyBUeXBlU2NyaXB0IG5vZGVzIGFuZCB3aWxsIGZpbmQgQW5ndWxhciBjb21wb25lbnQgcmVzb3VyY2VzLiBSZXNvdXJjZXMgaW5jbHVkZVxuICAgIC8vIHRlbXBsYXRlcyBhbmQgc3R5bGVzaGVldHMuIEl0IGFsc28gY2FwdHVyZXMgaW5saW5lIHN0eWxlc2hlZXRzIGFuZCB0ZW1wbGF0ZXMuXG4gICAgY29uc3QgcmVzb3VyY2VDb2xsZWN0b3IgPSBuZXcgQ29tcG9uZW50UmVzb3VyY2VDb2xsZWN0b3IodGhpcy5fdHlwZUNoZWNrZXIsIHRoaXMuX2ZpbGVTeXN0ZW0pO1xuICAgIC8vIENvbGxlY3QgYWxsIG9mIHRoZSBUeXBlU2NyaXB0IHNvdXJjZSBmaWxlcyB3ZSB3YW50IHRvIG1pZ3JhdGUuIFdlIGRvbid0XG4gICAgLy8gbWlncmF0ZSB0eXBlIGRlZmluaXRpb24gZmlsZXMsIG9yIHNvdXJjZSBmaWxlcyBmcm9tIGV4dGVybmFsIGxpYnJhcmllcy5cbiAgICBjb25zdCBzb3VyY2VGaWxlcyA9IHRoaXMuX3Byb2dyYW0uZ2V0U291cmNlRmlsZXMoKS5maWx0ZXIoZiA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAhZi5pc0RlY2xhcmF0aW9uRmlsZSAmJlxuICAgICAgICAobGltaXRUb0RpcmVjdG9yeSA9PSBudWxsIHx8XG4gICAgICAgICAgdGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKGYuZmlsZU5hbWUpLnN0YXJ0c1dpdGgobGltaXRUb0RpcmVjdG9yeSkpICYmXG4gICAgICAgICF0aGlzLl9wcm9ncmFtLmlzU291cmNlRmlsZUZyb21FeHRlcm5hbExpYnJhcnkoZilcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBIZWxwZXIgZnVuY3Rpb24gdGhhdCB2aXNpdHMgYSBnaXZlbiBUeXBlU2NyaXB0IG5vZGUgYW5kIGNvbGxlY3RzIGFsbCByZWZlcmVuY2VkXG4gICAgLy8gY29tcG9uZW50IHJlc291cmNlcyAoaS5lLiBzdHlsZXNoZWV0cyBvciB0ZW1wbGF0ZXMpLiBBZGRpdGlvbmFsbHksIHRoZSBoZWxwZXJcbiAgICAvLyB2aXNpdHMgdGhlIG5vZGUgaW4gZWFjaCBpbnN0YW50aWF0ZWQgbWlncmF0aW9uLlxuICAgIGNvbnN0IHZpc2l0Tm9kZUFuZENvbGxlY3RSZXNvdXJjZXMgPSAobm9kZTogdHMuTm9kZSkgPT4ge1xuICAgICAgbWlncmF0aW9ucy5mb3JFYWNoKHIgPT4gci52aXNpdE5vZGUobm9kZSkpO1xuICAgICAgdHMuZm9yRWFjaENoaWxkKG5vZGUsIHZpc2l0Tm9kZUFuZENvbGxlY3RSZXNvdXJjZXMpO1xuICAgICAgcmVzb3VyY2VDb2xsZWN0b3IudmlzaXROb2RlKG5vZGUpO1xuICAgIH07XG5cbiAgICAvLyBXYWxrIHRocm91Z2ggYWxsIHNvdXJjZSBmaWxlLCBpZiBpdCBoYXMgbm90IGJlZW4gdmlzaXRlZCBiZWZvcmUsIGFuZFxuICAgIC8vIHZpc2l0IGZvdW5kIG5vZGVzIHdoaWxlIGNvbGxlY3RpbmcgcG90ZW50aWFsIHJlc291cmNlcy5cbiAgICBzb3VyY2VGaWxlcy5mb3JFYWNoKHNvdXJjZUZpbGUgPT4ge1xuICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gdGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKHNvdXJjZUZpbGUuZmlsZU5hbWUpO1xuICAgICAgLy8gRG8gbm90IHZpc2l0IHNvdXJjZSBmaWxlcyB3aGljaCBoYXZlIGJlZW4gY2hlY2tlZCBhcyBwYXJ0IG9mIGFcbiAgICAgIC8vIHByZXZpb3VzbHkgbWlncmF0ZWQgVHlwZVNjcmlwdCBwcm9qZWN0LlxuICAgICAgaWYgKCF0aGlzLl9hbmFseXplZEZpbGVzLmhhcyhyZXNvbHZlZFBhdGgpKSB7XG4gICAgICAgIHZpc2l0Tm9kZUFuZENvbGxlY3RSZXNvdXJjZXMoc291cmNlRmlsZSk7XG4gICAgICAgIHRoaXMuX2FuYWx5emVkRmlsZXMuYWRkKHJlc29sdmVkUGF0aCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBXYWxrIHRocm91Z2ggYWxsIHJlc29sdmVkIHRlbXBsYXRlcyBhbmQgdmlzaXQgdGhlbSBpbiBlYWNoIGluc3RhbnRpYXRlZFxuICAgIC8vIG1pZ3JhdGlvbi4gTm90ZSB0aGF0IHRoaXMgY2FuIG9ubHkgaGFwcGVuIGFmdGVyIHNvdXJjZSBmaWxlcyBoYXZlIGJlZW5cbiAgICAvLyB2aXNpdGVkIGJlY2F1c2Ugd2UgZmluZCB0ZW1wbGF0ZXMgdGhyb3VnaCB0aGUgVHlwZVNjcmlwdCBzb3VyY2UgZmlsZXMuXG4gICAgcmVzb3VyY2VDb2xsZWN0b3IucmVzb2x2ZWRUZW1wbGF0ZXMuZm9yRWFjaCh0ZW1wbGF0ZSA9PiB7XG4gICAgICAvLyBEbyBub3QgdmlzaXQgdGhlIHRlbXBsYXRlIGlmIGl0IGhhcyBiZWVuIGNoZWNrZWQgYmVmb3JlLiBJbmxpbmVcbiAgICAgIC8vIHRlbXBsYXRlcyBjYW5ub3QgYmUgcmVmZXJlbmNlZCBtdWx0aXBsZSB0aW1lcy5cbiAgICAgIGlmICh0ZW1wbGF0ZS5pbmxpbmUgfHwgIXRoaXMuX2FuYWx5emVkRmlsZXMuaGFzKHRlbXBsYXRlLmZpbGVQYXRoKSkge1xuICAgICAgICBtaWdyYXRpb25zLmZvckVhY2gobSA9PiBtLnZpc2l0VGVtcGxhdGUodGVtcGxhdGUpKTtcbiAgICAgICAgdGhpcy5fYW5hbHl6ZWRGaWxlcy5hZGQodGVtcGxhdGUuZmlsZVBhdGgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gV2FsayB0aHJvdWdoIGFsbCByZXNvbHZlZCBzdHlsZXNoZWV0cyBhbmQgdmlzaXQgdGhlbSBpbiBlYWNoIGluc3RhbnRpYXRlZFxuICAgIC8vIG1pZ3JhdGlvbi4gTm90ZSB0aGF0IHRoaXMgY2FuIG9ubHkgaGFwcGVuIGFmdGVyIHNvdXJjZSBmaWxlcyBoYXZlIGJlZW5cbiAgICAvLyB2aXNpdGVkIGJlY2F1c2Ugd2UgZmluZCBzdHlsZXNoZWV0cyB0aHJvdWdoIHRoZSBUeXBlU2NyaXB0IHNvdXJjZSBmaWxlcy5cbiAgICByZXNvdXJjZUNvbGxlY3Rvci5yZXNvbHZlZFN0eWxlc2hlZXRzLmZvckVhY2goc3R5bGVzaGVldCA9PiB7XG4gICAgICAvLyBEbyBub3QgdmlzaXQgdGhlIHN0eWxlc2hlZXQgaWYgaXQgaGFzIGJlZW4gY2hlY2tlZCBiZWZvcmUuIElubGluZVxuICAgICAgLy8gc3R5bGVzaGVldHMgY2Fubm90IGJlIHJlZmVyZW5jZWQgbXVsdGlwbGUgdGltZXMuXG4gICAgICBpZiAoc3R5bGVzaGVldC5pbmxpbmUgfHwgIXRoaXMuX2FuYWx5emVkRmlsZXMuaGFzKHN0eWxlc2hlZXQuZmlsZVBhdGgpKSB7XG4gICAgICAgIG1pZ3JhdGlvbnMuZm9yRWFjaChyID0+IHIudmlzaXRTdHlsZXNoZWV0KHN0eWxlc2hlZXQpKTtcbiAgICAgICAgdGhpcy5fYW5hbHl6ZWRGaWxlcy5hZGQoc3R5bGVzaGVldC5maWxlUGF0aCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBJbiBzb21lIGFwcGxpY2F0aW9ucywgZGV2ZWxvcGVycyB3aWxsIGhhdmUgZ2xvYmFsIHN0eWxlc2hlZXRzIHdoaWNoIGFyZSBub3RcbiAgICAvLyBzcGVjaWZpZWQgaW4gYW55IEFuZ3VsYXIgY29tcG9uZW50LiBUaGVyZWZvcmUgd2UgYWxsb3cgZm9yIGFkZGl0aW9uYWwgc3R5bGVzaGVldHNcbiAgICAvLyBiZWluZyBzcGVjaWZpZWQuIFdlIHZpc2l0IHRoZW0gaW4gZWFjaCBtaWdyYXRpb24gdW5sZXNzIHRoZXkgaGF2ZSBiZWVuIGFscmVhZHlcbiAgICAvLyBkaXNjb3ZlcmVkIGJlZm9yZSBhcyBhY3R1YWwgY29tcG9uZW50IHJlc291cmNlLlxuICAgIGlmIChhZGRpdGlvbmFsU3R5bGVzaGVldFBhdGhzKSB7XG4gICAgICBhZGRpdGlvbmFsU3R5bGVzaGVldFBhdGhzLmZvckVhY2goZmlsZVBhdGggPT4ge1xuICAgICAgICBjb25zdCByZXNvbHZlZFBhdGggPSB0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUoZmlsZVBhdGgpO1xuICAgICAgICBpZiAobGltaXRUb0RpcmVjdG9yeSA9PSBudWxsIHx8IHJlc29sdmVkUGF0aC5zdGFydHNXaXRoKGxpbWl0VG9EaXJlY3RvcnkpKSB7XG4gICAgICAgICAgY29uc3Qgc3R5bGVzaGVldCA9IHJlc291cmNlQ29sbGVjdG9yLnJlc29sdmVFeHRlcm5hbFN0eWxlc2hlZXQocmVzb2x2ZWRQYXRoLCBudWxsKTtcbiAgICAgICAgICAvLyBEbyBub3QgdmlzaXQgc3R5bGVzaGVldHMgd2hpY2ggaGF2ZSBiZWVuIHJlZmVyZW5jZWQgZnJvbSBhIGNvbXBvbmVudC5cbiAgICAgICAgICBpZiAoIXRoaXMuX2FuYWx5emVkRmlsZXMuaGFzKHJlc29sdmVkUGF0aCkgJiYgc3R5bGVzaGVldCkge1xuICAgICAgICAgICAgbWlncmF0aW9ucy5mb3JFYWNoKHIgPT4gci52aXNpdFN0eWxlc2hlZXQoc3R5bGVzaGVldCkpO1xuICAgICAgICAgICAgdGhpcy5fYW5hbHl6ZWRGaWxlcy5hZGQocmVzb2x2ZWRQYXRoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIENhbGwgdGhlIFwicG9zdEFuYWx5c2lzXCIgbWV0aG9kIGZvciBlYWNoIG1pZ3JhdGlvbi5cbiAgICBtaWdyYXRpb25zLmZvckVhY2gociA9PiByLnBvc3RBbmFseXNpcygpKTtcblxuICAgIC8vIENvbGxlY3QgYWxsIGZhaWx1cmVzIHJlcG9ydGVkIGJ5IGluZGl2aWR1YWwgbWlncmF0aW9ucy5cbiAgICBjb25zdCBmYWlsdXJlcyA9IG1pZ3JhdGlvbnMucmVkdWNlKFxuICAgICAgKHJlcywgbSkgPT4gcmVzLmNvbmNhdChtLmZhaWx1cmVzKSxcbiAgICAgIFtdIGFzIE1pZ3JhdGlvbkZhaWx1cmVbXSxcbiAgICApO1xuXG4gICAgLy8gSW4gY2FzZSB0aGVyZSBhcmUgZmFpbHVyZXMsIHByaW50IHRoZXNlIHRvIHRoZSBDTEkgbG9nZ2VyIGFzIHdhcm5pbmdzLlxuICAgIGlmIChmYWlsdXJlcy5sZW5ndGgpIHtcbiAgICAgIGZhaWx1cmVzLmZvckVhY2goKHtmaWxlUGF0aCwgbWVzc2FnZSwgcG9zaXRpb259KSA9PiB7XG4gICAgICAgIGNvbnN0IGxpbmVBbmRDaGFyYWN0ZXIgPSBwb3NpdGlvbiA/IGBAJHtwb3NpdGlvbi5saW5lICsgMX06JHtwb3NpdGlvbi5jaGFyYWN0ZXIgKyAxfWAgOiAnJztcbiAgICAgICAgdGhpcy5fbG9nZ2VyLndhcm4oYCR7ZmlsZVBhdGh9JHtsaW5lQW5kQ2hhcmFjdGVyfSAtICR7bWVzc2FnZX1gKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBoYXNGYWlsdXJlczogISFmYWlsdXJlcy5sZW5ndGgsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGluc3RhbmNlcyBvZiB0aGUgZ2l2ZW4gbWlncmF0aW9ucyB3aXRoIHRoZSBzcGVjaWZpZWQgdGFyZ2V0XG4gICAqIHZlcnNpb24gYW5kIGRhdGEuXG4gICAqL1xuICBwcml2YXRlIF9jcmVhdGVNaWdyYXRpb25zPERhdGE+KFxuICAgIHR5cGVzOiBNaWdyYXRpb25DdG9yPERhdGEsIENvbnRleHQ+W10sXG4gICAgdGFyZ2V0OiBUYXJnZXRWZXJzaW9uIHwgbnVsbCxcbiAgICBkYXRhOiBEYXRhLFxuICApOiBNaWdyYXRpb248RGF0YSwgQ29udGV4dD5bXSB7XG4gICAgY29uc3QgcmVzdWx0OiBNaWdyYXRpb248RGF0YSwgQ29udGV4dD5bXSA9IFtdO1xuICAgIGZvciAoY29uc3QgY3RvciBvZiB0eXBlcykge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgY3RvcihcbiAgICAgICAgdGhpcy5fcHJvZ3JhbSxcbiAgICAgICAgdGhpcy5fdHlwZUNoZWNrZXIsXG4gICAgICAgIHRhcmdldCxcbiAgICAgICAgdGhpcy5fY29udGV4dCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgdGhpcy5fZmlsZVN5c3RlbSxcbiAgICAgICAgdGhpcy5fbG9nZ2VyLFxuICAgICAgKTtcbiAgICAgIGluc3RhbmNlLmluaXQoKTtcbiAgICAgIGlmIChpbnN0YW5jZS5lbmFibGVkKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGluc3RhbmNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcHJvZ3JhbSBmb3JtIHRoZSBzcGVjaWZpZWQgdHNjb25maWcgYW5kIHBhdGNoZXMgdGhlIGhvc3RcbiAgICogdG8gcmVhZCBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdGhyb3VnaCB0aGUgZ2l2ZW4gZmlsZSBzeXN0ZW0uXG4gICAqXG4gICAqIEB0aHJvd3Mge1RzY29uZmlnUGFyc2VFcnJvcn0gSWYgdGhlIHRzY29uZmlnIGNvdWxkIG5vdCBiZSBwYXJzZWQuXG4gICAqL1xuICBzdGF0aWMgY3JlYXRlUHJvZ3JhbUZyb21Uc2NvbmZpZyh0c2NvbmZpZ1BhdGg6IFdvcmtzcGFjZVBhdGgsIGZzOiBGaWxlU3lzdGVtKTogdHMuUHJvZ3JhbSB7XG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VUc2NvbmZpZ0ZpbGUoZnMucmVzb2x2ZSh0c2NvbmZpZ1BhdGgpLCBmcyk7XG4gICAgY29uc3QgaG9zdCA9IGNyZWF0ZUZpbGVTeXN0ZW1Db21waWxlckhvc3QocGFyc2VkLm9wdGlvbnMsIGZzKTtcbiAgICByZXR1cm4gdHMuY3JlYXRlUHJvZ3JhbShwYXJzZWQuZmlsZU5hbWVzLCBwYXJzZWQub3B0aW9ucywgaG9zdCk7XG4gIH1cbn1cbiJdfQ==
@@ -10,6 +10,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.Migration = void 0;
11
11
  const ts = require("typescript");
12
12
  class Migration {
13
+ program;
14
+ typeChecker;
15
+ targetVersion;
16
+ context;
17
+ upgradeData;
18
+ fileSystem;
19
+ logger;
20
+ /** List of migration failures that need to be reported. */
21
+ failures = [];
13
22
  constructor(
14
23
  /** TypeScript program for the migration. */
15
24
  program,
@@ -35,8 +44,6 @@ class Migration {
35
44
  this.upgradeData = upgradeData;
36
45
  this.fileSystem = fileSystem;
37
46
  this.logger = logger;
38
- /** List of migration failures that need to be reported. */
39
- this.failures = [];
40
47
  }
41
48
  /** Method can be used to perform global analysis of the program. */
42
49
  init() { }
@@ -67,4 +74,4 @@ class Migration {
67
74
  }
68
75
  }
69
76
  exports.Migration = Migration;
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3VwZGF0ZS10b29sL21pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCxpQ0FBaUM7QUF1QmpDLE1BQXNCLFNBQVM7SUFPN0I7SUFDRSw0Q0FBNEM7SUFDckMsT0FBbUI7SUFDMUIscURBQXFEO0lBQzlDLFdBQTJCO0lBQ2xDOzs7T0FHRztJQUNJLGFBQW1DO0lBQzFDLHNDQUFzQztJQUMvQixPQUFnQjtJQUN2Qiw0Q0FBNEM7SUFDckMsV0FBaUI7SUFDeEIsd0RBQXdEO0lBQ2pELFVBQXNCO0lBQzdCLDBFQUEwRTtJQUNuRSxNQUFvQjtRQWZwQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBRW5CLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUszQixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFFbkMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUVoQixnQkFBVyxHQUFYLFdBQVcsQ0FBTTtRQUVqQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRXRCLFdBQU0sR0FBTixNQUFNLENBQWM7UUF2QjdCLDJEQUEyRDtRQUMzRCxhQUFRLEdBQXVCLEVBQUUsQ0FBQztJQXVCL0IsQ0FBQztJQUVKLG9FQUFvRTtJQUNwRSxJQUFJLEtBQVUsQ0FBQztJQUVmOzs7T0FHRztJQUNILFlBQVksS0FBVSxDQUFDO0lBRXZCOzs7OztPQUtHO0lBQ0gsU0FBUyxDQUFDLElBQWEsSUFBUyxDQUFDO0lBRWpDLDJFQUEyRTtJQUMzRSxhQUFhLENBQUMsUUFBMEIsSUFBUyxDQUFDO0lBRWxELHFFQUFxRTtJQUNyRSxlQUFlLENBQUMsVUFBNEIsSUFBUyxDQUFDO0lBRXRELDZFQUE2RTtJQUNuRSxtQkFBbUIsQ0FBQyxJQUFhLEVBQUUsT0FBZTtRQUMxRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDakIsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDdEQsUUFBUSxFQUFFLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3ZFLE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTNERCw4QkEyREMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQge1Jlc29sdmVkUmVzb3VyY2V9IGZyb20gJy4vY29tcG9uZW50LXJlc291cmNlLWNvbGxlY3Rvcic7XG5pbXBvcnQge0ZpbGVTeXN0ZW0sIFdvcmtzcGFjZVBhdGh9IGZyb20gJy4vZmlsZS1zeXN0ZW0nO1xuaW1wb3J0IHtVcGRhdGVMb2dnZXJ9IGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7VGFyZ2V0VmVyc2lvbn0gZnJvbSAnLi90YXJnZXQtdmVyc2lvbic7XG5pbXBvcnQge0xpbmVBbmRDaGFyYWN0ZXJ9IGZyb20gJy4vdXRpbHMvbGluZS1tYXBwaW5ncyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWlncmF0aW9uRmFpbHVyZSB7XG4gIGZpbGVQYXRoOiBXb3Jrc3BhY2VQYXRoO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHBvc2l0aW9uPzogTGluZUFuZENoYXJhY3Rlcjtcbn1cblxuZXhwb3J0IHR5cGUgUG9zdE1pZ3JhdGlvbkFjdGlvbiA9IHZvaWQgfCB7XG4gIC8qKiBXaGV0aGVyIHRoZSBwYWNrYWdlIG1hbmFnZXIgc2hvdWxkIHJ1biB1cG9uIG1pZ3JhdGlvbiBjb21wbGV0aW9uLiAqL1xuICBydW5QYWNrYWdlTWFuYWdlcjogYm9vbGVhbjtcbn07XG5cbi8qKiBDcmVhdGVzIGEgY29uc3RydWN0b3IgdHlwZSBmb3IgdGhlIHNwZWNpZmllZCB0eXBlLiAqL1xuZXhwb3J0IHR5cGUgQ29uc3RydWN0b3I8VD4gPSBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUO1xuLyoqIEdldHMgYSBjb25zdHJ1Y3RvciB0eXBlIGZvciB0aGUgcGFzc2VkIG1pZ3JhdGlvbiBkYXRhLiAqL1xuZXhwb3J0IHR5cGUgTWlncmF0aW9uQ3RvcjxEYXRhLCBDb250ZXh0ID0gYW55PiA9IENvbnN0cnVjdG9yPE1pZ3JhdGlvbjxEYXRhLCBDb250ZXh0Pj47XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNaWdyYXRpb248RGF0YSwgQ29udGV4dCA9IGFueT4ge1xuICAvKiogTGlzdCBvZiBtaWdyYXRpb24gZmFpbHVyZXMgdGhhdCBuZWVkIHRvIGJlIHJlcG9ydGVkLiAqL1xuICBmYWlsdXJlczogTWlncmF0aW9uRmFpbHVyZVtdID0gW107XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG1pZ3JhdGlvbiBpcyBlbmFibGVkIG9yIG5vdC4gKi9cbiAgYWJzdHJhY3QgZW5hYmxlZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAvKiogVHlwZVNjcmlwdCBwcm9ncmFtIGZvciB0aGUgbWlncmF0aW9uLiAqL1xuICAgIHB1YmxpYyBwcm9ncmFtOiB0cy5Qcm9ncmFtLFxuICAgIC8qKiBUeXBlQ2hlY2tlciBpbnN0YW5jZSBmb3IgdGhlIGFuYWx5c2lzIHByb2dyYW0uICovXG4gICAgcHVibGljIHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlcixcbiAgICAvKipcbiAgICAgKiBWZXJzaW9uIGZvciB3aGljaCB0aGUgbWlncmF0aW9uIHJ1bGUgc2hvdWxkIHJ1bi4gTnVsbCBpZiB0aGUgbWlncmF0aW9uXG4gICAgICogaXMgaW52b2tlZCBtYW51YWxseS5cbiAgICAgKi9cbiAgICBwdWJsaWMgdGFyZ2V0VmVyc2lvbjogVGFyZ2V0VmVyc2lvbiB8IG51bGwsXG4gICAgLyoqIENvbnRleHQgZGF0YSBmb3IgdGhlIG1pZ3JhdGlvbi4gKi9cbiAgICBwdWJsaWMgY29udGV4dDogQ29udGV4dCxcbiAgICAvKiogVXBncmFkZSBkYXRhIHBhc3NlZCB0byB0aGUgbWlncmF0aW9uLiAqL1xuICAgIHB1YmxpYyB1cGdyYWRlRGF0YTogRGF0YSxcbiAgICAvKiogRmlsZSBzeXN0ZW0gdGhhdCBjYW4gYmUgdXNlZCBmb3IgbW9kaWZ5aW5nIGZpbGVzLiAqL1xuICAgIHB1YmxpYyBmaWxlU3lzdGVtOiBGaWxlU3lzdGVtLFxuICAgIC8qKiBMb2dnZXIgdGhhdCBjYW4gYmUgdXNlZCB0byBwcmludCBtZXNzYWdlcyBhcyBwYXJ0IG9mIHRoZSBtaWdyYXRpb24uICovXG4gICAgcHVibGljIGxvZ2dlcjogVXBkYXRlTG9nZ2VyLFxuICApIHt9XG5cbiAgLyoqIE1ldGhvZCBjYW4gYmUgdXNlZCB0byBwZXJmb3JtIGdsb2JhbCBhbmFseXNpcyBvZiB0aGUgcHJvZ3JhbS4gKi9cbiAgaW5pdCgpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uY2UgYWxsIG5vZGVzLCB0ZW1wbGF0ZXMgYW5kIHN0eWxlc2hlZXRzXG4gICAqIGhhdmUgYmVlbiB2aXNpdGVkLlxuICAgKi9cbiAgcG9zdEFuYWx5c2lzKCk6IHZvaWQge31cblxuICAvKipcbiAgICogTWV0aG9kIHRoYXQgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2ggbm9kZSBpbiBhIGdpdmVuIHNvdXJjZSBmaWxlLiBVbmxpa2UgdHNsaW50LCB0aGlzXG4gICAqIGZ1bmN0aW9uIHdpbGwgb25seSByZXRyaWV2ZSBUeXBlU2NyaXB0IG5vZGVzIHRoYXQgbmVlZCB0byBiZSBjYXN0ZWQgbWFudWFsbHkuIFRoaXNcbiAgICogYWxsb3dzIHVzIHRvIG9ubHkgd2FsayB0aGUgcHJvZ3JhbSBzb3VyY2UgZmlsZXMgb25jZSBwZXIgcHJvZ3JhbSBhbmQgbm90IHBlclxuICAgKiBtaWdyYXRpb24gcnVsZSAoc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgYm9vc3QpLlxuICAgKi9cbiAgdmlzaXROb2RlKG5vZGU6IHRzLk5vZGUpOiB2b2lkIHt9XG5cbiAgLyoqIE1ldGhvZCB0aGF0IHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoIEFuZ3VsYXIgdGVtcGxhdGUgaW4gdGhlIHByb2dyYW0uICovXG4gIHZpc2l0VGVtcGxhdGUodGVtcGxhdGU6IFJlc29sdmVkUmVzb3VyY2UpOiB2b2lkIHt9XG5cbiAgLyoqIE1ldGhvZCB0aGF0IHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoIHN0eWxlc2hlZXQgaW4gdGhlIHByb2dyYW0uICovXG4gIHZpc2l0U3R5bGVzaGVldChzdHlsZXNoZWV0OiBSZXNvbHZlZFJlc291cmNlKTogdm9pZCB7fVxuXG4gIC8qKiBDcmVhdGVzIGEgZmFpbHVyZSB3aXRoIGEgc3BlY2lmaWVkIG1lc3NhZ2UgYXQgdGhlIGdpdmVuIG5vZGUgbG9jYXRpb24uICovXG4gIHByb3RlY3RlZCBjcmVhdGVGYWlsdXJlQXROb2RlKG5vZGU6IHRzLk5vZGUsIG1lc3NhZ2U6IHN0cmluZykge1xuICAgIGNvbnN0IHNvdXJjZUZpbGUgPSBub2RlLmdldFNvdXJjZUZpbGUoKTtcbiAgICB0aGlzLmZhaWx1cmVzLnB1c2goe1xuICAgICAgZmlsZVBhdGg6IHRoaXMuZmlsZVN5c3RlbS5yZXNvbHZlKHNvdXJjZUZpbGUuZmlsZU5hbWUpLFxuICAgICAgcG9zaXRpb246IHRzLmdldExpbmVBbmRDaGFyYWN0ZXJPZlBvc2l0aW9uKHNvdXJjZUZpbGUsIG5vZGUuZ2V0U3RhcnQoKSksXG4gICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3VwZGF0ZS10b29sL21pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCxpQ0FBaUM7QUF1QmpDLE1BQXNCLFNBQVM7SUFTcEI7SUFFQTtJQUtBO0lBRUE7SUFFQTtJQUVBO0lBRUE7SUF2QlQsMkRBQTJEO0lBQzNELFFBQVEsR0FBdUIsRUFBRSxDQUFDO0lBS2xDO0lBQ0UsNENBQTRDO0lBQ3JDLE9BQW1CO0lBQzFCLHFEQUFxRDtJQUM5QyxXQUEyQjtJQUNsQzs7O09BR0c7SUFDSSxhQUFtQztJQUMxQyxzQ0FBc0M7SUFDL0IsT0FBZ0I7SUFDdkIsNENBQTRDO0lBQ3JDLFdBQWlCO0lBQ3hCLHdEQUF3RDtJQUNqRCxVQUFzQjtJQUM3QiwwRUFBMEU7SUFDbkUsTUFBb0I7UUFmcEIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUVuQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFLM0Isa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBRW5DLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFFaEIsZ0JBQVcsR0FBWCxXQUFXLENBQU07UUFFakIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUV0QixXQUFNLEdBQU4sTUFBTSxDQUFjO0lBQzFCLENBQUM7SUFFSixvRUFBb0U7SUFDcEUsSUFBSSxLQUFVLENBQUM7SUFFZjs7O09BR0c7SUFDSCxZQUFZLEtBQVUsQ0FBQztJQUV2Qjs7Ozs7T0FLRztJQUNILFNBQVMsQ0FBQyxJQUFhLElBQVMsQ0FBQztJQUVqQywyRUFBMkU7SUFDM0UsYUFBYSxDQUFDLFFBQTBCLElBQVMsQ0FBQztJQUVsRCxxRUFBcUU7SUFDckUsZUFBZSxDQUFDLFVBQTRCLElBQVMsQ0FBQztJQUV0RCw2RUFBNkU7SUFDbkUsbUJBQW1CLENBQUMsSUFBYSxFQUFFLE9BQWU7UUFDMUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2pCLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3RELFFBQVEsRUFBRSxFQUFFLENBQUMsNkJBQTZCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN2RSxPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEzREQsOEJBMkRDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtSZXNvbHZlZFJlc291cmNlfSBmcm9tICcuL2NvbXBvbmVudC1yZXNvdXJjZS1jb2xsZWN0b3InO1xuaW1wb3J0IHtGaWxlU3lzdGVtLCBXb3Jrc3BhY2VQYXRofSBmcm9tICcuL2ZpbGUtc3lzdGVtJztcbmltcG9ydCB7VXBkYXRlTG9nZ2VyfSBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQge1RhcmdldFZlcnNpb259IGZyb20gJy4vdGFyZ2V0LXZlcnNpb24nO1xuaW1wb3J0IHtMaW5lQW5kQ2hhcmFjdGVyfSBmcm9tICcuL3V0aWxzL2xpbmUtbWFwcGluZ3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1pZ3JhdGlvbkZhaWx1cmUge1xuICBmaWxlUGF0aDogV29ya3NwYWNlUGF0aDtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBwb3NpdGlvbj86IExpbmVBbmRDaGFyYWN0ZXI7XG59XG5cbmV4cG9ydCB0eXBlIFBvc3RNaWdyYXRpb25BY3Rpb24gPSB2b2lkIHwge1xuICAvKiogV2hldGhlciB0aGUgcGFja2FnZSBtYW5hZ2VyIHNob3VsZCBydW4gdXBvbiBtaWdyYXRpb24gY29tcGxldGlvbi4gKi9cbiAgcnVuUGFja2FnZU1hbmFnZXI6IGJvb2xlYW47XG59O1xuXG4vKiogQ3JlYXRlcyBhIGNvbnN0cnVjdG9yIHR5cGUgZm9yIHRoZSBzcGVjaWZpZWQgdHlwZS4gKi9cbmV4cG9ydCB0eXBlIENvbnN0cnVjdG9yPFQ+ID0gbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVDtcbi8qKiBHZXRzIGEgY29uc3RydWN0b3IgdHlwZSBmb3IgdGhlIHBhc3NlZCBtaWdyYXRpb24gZGF0YS4gKi9cbmV4cG9ydCB0eXBlIE1pZ3JhdGlvbkN0b3I8RGF0YSwgQ29udGV4dCA9IGFueT4gPSBDb25zdHJ1Y3RvcjxNaWdyYXRpb248RGF0YSwgQ29udGV4dD4+O1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTWlncmF0aW9uPERhdGEsIENvbnRleHQgPSBhbnk+IHtcbiAgLyoqIExpc3Qgb2YgbWlncmF0aW9uIGZhaWx1cmVzIHRoYXQgbmVlZCB0byBiZSByZXBvcnRlZC4gKi9cbiAgZmFpbHVyZXM6IE1pZ3JhdGlvbkZhaWx1cmVbXSA9IFtdO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBtaWdyYXRpb24gaXMgZW5hYmxlZCBvciBub3QuICovXG4gIGFic3RyYWN0IGVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLyoqIFR5cGVTY3JpcHQgcHJvZ3JhbSBmb3IgdGhlIG1pZ3JhdGlvbi4gKi9cbiAgICBwdWJsaWMgcHJvZ3JhbTogdHMuUHJvZ3JhbSxcbiAgICAvKiogVHlwZUNoZWNrZXIgaW5zdGFuY2UgZm9yIHRoZSBhbmFseXNpcyBwcm9ncmFtLiAqL1xuICAgIHB1YmxpYyB0eXBlQ2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsXG4gICAgLyoqXG4gICAgICogVmVyc2lvbiBmb3Igd2hpY2ggdGhlIG1pZ3JhdGlvbiBydWxlIHNob3VsZCBydW4uIE51bGwgaWYgdGhlIG1pZ3JhdGlvblxuICAgICAqIGlzIGludm9rZWQgbWFudWFsbHkuXG4gICAgICovXG4gICAgcHVibGljIHRhcmdldFZlcnNpb246IFRhcmdldFZlcnNpb24gfCBudWxsLFxuICAgIC8qKiBDb250ZXh0IGRhdGEgZm9yIHRoZSBtaWdyYXRpb24uICovXG4gICAgcHVibGljIGNvbnRleHQ6IENvbnRleHQsXG4gICAgLyoqIFVwZ3JhZGUgZGF0YSBwYXNzZWQgdG8gdGhlIG1pZ3JhdGlvbi4gKi9cbiAgICBwdWJsaWMgdXBncmFkZURhdGE6IERhdGEsXG4gICAgLyoqIEZpbGUgc3lzdGVtIHRoYXQgY2FuIGJlIHVzZWQgZm9yIG1vZGlmeWluZyBmaWxlcy4gKi9cbiAgICBwdWJsaWMgZmlsZVN5c3RlbTogRmlsZVN5c3RlbSxcbiAgICAvKiogTG9nZ2VyIHRoYXQgY2FuIGJlIHVzZWQgdG8gcHJpbnQgbWVzc2FnZXMgYXMgcGFydCBvZiB0aGUgbWlncmF0aW9uLiAqL1xuICAgIHB1YmxpYyBsb2dnZXI6IFVwZGF0ZUxvZ2dlcixcbiAgKSB7fVxuXG4gIC8qKiBNZXRob2QgY2FuIGJlIHVzZWQgdG8gcGVyZm9ybSBnbG9iYWwgYW5hbHlzaXMgb2YgdGhlIHByb2dyYW0uICovXG4gIGluaXQoKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdGhhdCB3aWxsIGJlIGNhbGxlZCBvbmNlIGFsbCBub2RlcywgdGVtcGxhdGVzIGFuZCBzdHlsZXNoZWV0c1xuICAgKiBoYXZlIGJlZW4gdmlzaXRlZC5cbiAgICovXG4gIHBvc3RBbmFseXNpcygpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0aGF0IHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoIG5vZGUgaW4gYSBnaXZlbiBzb3VyY2UgZmlsZS4gVW5saWtlIHRzbGludCwgdGhpc1xuICAgKiBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0cmlldmUgVHlwZVNjcmlwdCBub2RlcyB0aGF0IG5lZWQgdG8gYmUgY2FzdGVkIG1hbnVhbGx5LiBUaGlzXG4gICAqIGFsbG93cyB1cyB0byBvbmx5IHdhbGsgdGhlIHByb2dyYW0gc291cmNlIGZpbGVzIG9uY2UgcGVyIHByb2dyYW0gYW5kIG5vdCBwZXJcbiAgICogbWlncmF0aW9uIHJ1bGUgKHNpZ25pZmljYW50IHBlcmZvcm1hbmNlIGJvb3N0KS5cbiAgICovXG4gIHZpc2l0Tm9kZShub2RlOiB0cy5Ob2RlKTogdm9pZCB7fVxuXG4gIC8qKiBNZXRob2QgdGhhdCB3aWxsIGJlIGNhbGxlZCBmb3IgZWFjaCBBbmd1bGFyIHRlbXBsYXRlIGluIHRoZSBwcm9ncmFtLiAqL1xuICB2aXNpdFRlbXBsYXRlKHRlbXBsYXRlOiBSZXNvbHZlZFJlc291cmNlKTogdm9pZCB7fVxuXG4gIC8qKiBNZXRob2QgdGhhdCB3aWxsIGJlIGNhbGxlZCBmb3IgZWFjaCBzdHlsZXNoZWV0IGluIHRoZSBwcm9ncmFtLiAqL1xuICB2aXNpdFN0eWxlc2hlZXQoc3R5bGVzaGVldDogUmVzb2x2ZWRSZXNvdXJjZSk6IHZvaWQge31cblxuICAvKiogQ3JlYXRlcyBhIGZhaWx1cmUgd2l0aCBhIHNwZWNpZmllZCBtZXNzYWdlIGF0IHRoZSBnaXZlbiBub2RlIGxvY2F0aW9uLiAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlRmFpbHVyZUF0Tm9kZShub2RlOiB0cy5Ob2RlLCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzb3VyY2VGaWxlID0gbm9kZS5nZXRTb3VyY2VGaWxlKCk7XG4gICAgdGhpcy5mYWlsdXJlcy5wdXNoKHtcbiAgICAgIGZpbGVQYXRoOiB0aGlzLmZpbGVTeXN0ZW0ucmVzb2x2ZShzb3VyY2VGaWxlLmZpbGVOYW1lKSxcbiAgICAgIHBvc2l0aW9uOiB0cy5nZXRMaW5lQW5kQ2hhcmFjdGVyT2ZQb3NpdGlvbihzb3VyY2VGaWxlLCBub2RlLmdldFN0YXJ0KCkpLFxuICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -10,6 +10,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.Migration = void 0;
11
11
  const ts = require("typescript");
12
12
  class Migration {
13
+ program;
14
+ typeChecker;
15
+ targetVersion;
16
+ context;
17
+ upgradeData;
18
+ fileSystem;
19
+ logger;
20
+ /** List of migration failures that need to be reported. */
21
+ failures = [];
13
22
  constructor(
14
23
  /** TypeScript program for the migration. */
15
24
  program,
@@ -35,8 +44,6 @@ class Migration {
35
44
  this.upgradeData = upgradeData;
36
45
  this.fileSystem = fileSystem;
37
46
  this.logger = logger;
38
- /** List of migration failures that need to be reported. */
39
- this.failures = [];
40
47
  }
41
48
  /** Method can be used to perform global analysis of the program. */
42
49
  init() { }
@@ -67,4 +74,4 @@ class Migration {
67
74
  }
68
75
  }
69
76
  exports.Migration = Migration;
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3VwZGF0ZS10b29sL21pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCxpQ0FBaUM7QUF1QmpDLE1BQXNCLFNBQVM7SUFPN0I7SUFDRSw0Q0FBNEM7SUFDckMsT0FBbUI7SUFDMUIscURBQXFEO0lBQzlDLFdBQTJCO0lBQ2xDOzs7T0FHRztJQUNJLGFBQW1DO0lBQzFDLHNDQUFzQztJQUMvQixPQUFnQjtJQUN2Qiw0Q0FBNEM7SUFDckMsV0FBaUI7SUFDeEIsd0RBQXdEO0lBQ2pELFVBQXNCO0lBQzdCLDBFQUEwRTtJQUNuRSxNQUFvQjtRQWZwQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBRW5CLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUszQixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFFbkMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUVoQixnQkFBVyxHQUFYLFdBQVcsQ0FBTTtRQUVqQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRXRCLFdBQU0sR0FBTixNQUFNLENBQWM7UUF2QjdCLDJEQUEyRDtRQUMzRCxhQUFRLEdBQXVCLEVBQUUsQ0FBQztJQXVCL0IsQ0FBQztJQUVKLG9FQUFvRTtJQUNwRSxJQUFJLEtBQVUsQ0FBQztJQUVmOzs7T0FHRztJQUNILFlBQVksS0FBVSxDQUFDO0lBRXZCOzs7OztPQUtHO0lBQ0gsU0FBUyxDQUFDLElBQWEsSUFBUyxDQUFDO0lBRWpDLDJFQUEyRTtJQUMzRSxhQUFhLENBQUMsUUFBMEIsSUFBUyxDQUFDO0lBRWxELHFFQUFxRTtJQUNyRSxlQUFlLENBQUMsVUFBNEIsSUFBUyxDQUFDO0lBRXRELDZFQUE2RTtJQUNuRSxtQkFBbUIsQ0FBQyxJQUFhLEVBQUUsT0FBZTtRQUMxRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDakIsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDdEQsUUFBUSxFQUFFLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3ZFLE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTNERCw4QkEyREMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQge1Jlc29sdmVkUmVzb3VyY2V9IGZyb20gJy4vY29tcG9uZW50LXJlc291cmNlLWNvbGxlY3Rvcic7XG5pbXBvcnQge0ZpbGVTeXN0ZW0sIFdvcmtzcGFjZVBhdGh9IGZyb20gJy4vZmlsZS1zeXN0ZW0nO1xuaW1wb3J0IHtVcGRhdGVMb2dnZXJ9IGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7VGFyZ2V0VmVyc2lvbn0gZnJvbSAnLi90YXJnZXQtdmVyc2lvbic7XG5pbXBvcnQge0xpbmVBbmRDaGFyYWN0ZXJ9IGZyb20gJy4vdXRpbHMvbGluZS1tYXBwaW5ncyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWlncmF0aW9uRmFpbHVyZSB7XG4gIGZpbGVQYXRoOiBXb3Jrc3BhY2VQYXRoO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHBvc2l0aW9uPzogTGluZUFuZENoYXJhY3Rlcjtcbn1cblxuZXhwb3J0IHR5cGUgUG9zdE1pZ3JhdGlvbkFjdGlvbiA9IHZvaWQgfCB7XG4gIC8qKiBXaGV0aGVyIHRoZSBwYWNrYWdlIG1hbmFnZXIgc2hvdWxkIHJ1biB1cG9uIG1pZ3JhdGlvbiBjb21wbGV0aW9uLiAqL1xuICBydW5QYWNrYWdlTWFuYWdlcjogYm9vbGVhbjtcbn07XG5cbi8qKiBDcmVhdGVzIGEgY29uc3RydWN0b3IgdHlwZSBmb3IgdGhlIHNwZWNpZmllZCB0eXBlLiAqL1xuZXhwb3J0IHR5cGUgQ29uc3RydWN0b3I8VD4gPSBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUO1xuLyoqIEdldHMgYSBjb25zdHJ1Y3RvciB0eXBlIGZvciB0aGUgcGFzc2VkIG1pZ3JhdGlvbiBkYXRhLiAqL1xuZXhwb3J0IHR5cGUgTWlncmF0aW9uQ3RvcjxEYXRhLCBDb250ZXh0ID0gYW55PiA9IENvbnN0cnVjdG9yPE1pZ3JhdGlvbjxEYXRhLCBDb250ZXh0Pj47XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNaWdyYXRpb248RGF0YSwgQ29udGV4dCA9IGFueT4ge1xuICAvKiogTGlzdCBvZiBtaWdyYXRpb24gZmFpbHVyZXMgdGhhdCBuZWVkIHRvIGJlIHJlcG9ydGVkLiAqL1xuICBmYWlsdXJlczogTWlncmF0aW9uRmFpbHVyZVtdID0gW107XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG1pZ3JhdGlvbiBpcyBlbmFibGVkIG9yIG5vdC4gKi9cbiAgYWJzdHJhY3QgZW5hYmxlZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAvKiogVHlwZVNjcmlwdCBwcm9ncmFtIGZvciB0aGUgbWlncmF0aW9uLiAqL1xuICAgIHB1YmxpYyBwcm9ncmFtOiB0cy5Qcm9ncmFtLFxuICAgIC8qKiBUeXBlQ2hlY2tlciBpbnN0YW5jZSBmb3IgdGhlIGFuYWx5c2lzIHByb2dyYW0uICovXG4gICAgcHVibGljIHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlcixcbiAgICAvKipcbiAgICAgKiBWZXJzaW9uIGZvciB3aGljaCB0aGUgbWlncmF0aW9uIHJ1bGUgc2hvdWxkIHJ1bi4gTnVsbCBpZiB0aGUgbWlncmF0aW9uXG4gICAgICogaXMgaW52b2tlZCBtYW51YWxseS5cbiAgICAgKi9cbiAgICBwdWJsaWMgdGFyZ2V0VmVyc2lvbjogVGFyZ2V0VmVyc2lvbiB8IG51bGwsXG4gICAgLyoqIENvbnRleHQgZGF0YSBmb3IgdGhlIG1pZ3JhdGlvbi4gKi9cbiAgICBwdWJsaWMgY29udGV4dDogQ29udGV4dCxcbiAgICAvKiogVXBncmFkZSBkYXRhIHBhc3NlZCB0byB0aGUgbWlncmF0aW9uLiAqL1xuICAgIHB1YmxpYyB1cGdyYWRlRGF0YTogRGF0YSxcbiAgICAvKiogRmlsZSBzeXN0ZW0gdGhhdCBjYW4gYmUgdXNlZCBmb3IgbW9kaWZ5aW5nIGZpbGVzLiAqL1xuICAgIHB1YmxpYyBmaWxlU3lzdGVtOiBGaWxlU3lzdGVtLFxuICAgIC8qKiBMb2dnZXIgdGhhdCBjYW4gYmUgdXNlZCB0byBwcmludCBtZXNzYWdlcyBhcyBwYXJ0IG9mIHRoZSBtaWdyYXRpb24uICovXG4gICAgcHVibGljIGxvZ2dlcjogVXBkYXRlTG9nZ2VyLFxuICApIHt9XG5cbiAgLyoqIE1ldGhvZCBjYW4gYmUgdXNlZCB0byBwZXJmb3JtIGdsb2JhbCBhbmFseXNpcyBvZiB0aGUgcHJvZ3JhbS4gKi9cbiAgaW5pdCgpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uY2UgYWxsIG5vZGVzLCB0ZW1wbGF0ZXMgYW5kIHN0eWxlc2hlZXRzXG4gICAqIGhhdmUgYmVlbiB2aXNpdGVkLlxuICAgKi9cbiAgcG9zdEFuYWx5c2lzKCk6IHZvaWQge31cblxuICAvKipcbiAgICogTWV0aG9kIHRoYXQgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2ggbm9kZSBpbiBhIGdpdmVuIHNvdXJjZSBmaWxlLiBVbmxpa2UgdHNsaW50LCB0aGlzXG4gICAqIGZ1bmN0aW9uIHdpbGwgb25seSByZXRyaWV2ZSBUeXBlU2NyaXB0IG5vZGVzIHRoYXQgbmVlZCB0byBiZSBjYXN0ZWQgbWFudWFsbHkuIFRoaXNcbiAgICogYWxsb3dzIHVzIHRvIG9ubHkgd2FsayB0aGUgcHJvZ3JhbSBzb3VyY2UgZmlsZXMgb25jZSBwZXIgcHJvZ3JhbSBhbmQgbm90IHBlclxuICAgKiBtaWdyYXRpb24gcnVsZSAoc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgYm9vc3QpLlxuICAgKi9cbiAgdmlzaXROb2RlKG5vZGU6IHRzLk5vZGUpOiB2b2lkIHt9XG5cbiAgLyoqIE1ldGhvZCB0aGF0IHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoIEFuZ3VsYXIgdGVtcGxhdGUgaW4gdGhlIHByb2dyYW0uICovXG4gIHZpc2l0VGVtcGxhdGUodGVtcGxhdGU6IFJlc29sdmVkUmVzb3VyY2UpOiB2b2lkIHt9XG5cbiAgLyoqIE1ldGhvZCB0aGF0IHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoIHN0eWxlc2hlZXQgaW4gdGhlIHByb2dyYW0uICovXG4gIHZpc2l0U3R5bGVzaGVldChzdHlsZXNoZWV0OiBSZXNvbHZlZFJlc291cmNlKTogdm9pZCB7fVxuXG4gIC8qKiBDcmVhdGVzIGEgZmFpbHVyZSB3aXRoIGEgc3BlY2lmaWVkIG1lc3NhZ2UgYXQgdGhlIGdpdmVuIG5vZGUgbG9jYXRpb24uICovXG4gIHByb3RlY3RlZCBjcmVhdGVGYWlsdXJlQXROb2RlKG5vZGU6IHRzLk5vZGUsIG1lc3NhZ2U6IHN0cmluZykge1xuICAgIGNvbnN0IHNvdXJjZUZpbGUgPSBub2RlLmdldFNvdXJjZUZpbGUoKTtcbiAgICB0aGlzLmZhaWx1cmVzLnB1c2goe1xuICAgICAgZmlsZVBhdGg6IHRoaXMuZmlsZVN5c3RlbS5yZXNvbHZlKHNvdXJjZUZpbGUuZmlsZU5hbWUpLFxuICAgICAgcG9zaXRpb246IHRzLmdldExpbmVBbmRDaGFyYWN0ZXJPZlBvc2l0aW9uKHNvdXJjZUZpbGUsIG5vZGUuZ2V0U3RhcnQoKSksXG4gICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3VwZGF0ZS10b29sL21pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCxpQ0FBaUM7QUF1QmpDLE1BQXNCLFNBQVM7SUFTcEI7SUFFQTtJQUtBO0lBRUE7SUFFQTtJQUVBO0lBRUE7SUF2QlQsMkRBQTJEO0lBQzNELFFBQVEsR0FBdUIsRUFBRSxDQUFDO0lBS2xDO0lBQ0UsNENBQTRDO0lBQ3JDLE9BQW1CO0lBQzFCLHFEQUFxRDtJQUM5QyxXQUEyQjtJQUNsQzs7O09BR0c7SUFDSSxhQUFtQztJQUMxQyxzQ0FBc0M7SUFDL0IsT0FBZ0I7SUFDdkIsNENBQTRDO0lBQ3JDLFdBQWlCO0lBQ3hCLHdEQUF3RDtJQUNqRCxVQUFzQjtJQUM3QiwwRUFBMEU7SUFDbkUsTUFBb0I7UUFmcEIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUVuQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFLM0Isa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBRW5DLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFFaEIsZ0JBQVcsR0FBWCxXQUFXLENBQU07UUFFakIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUV0QixXQUFNLEdBQU4sTUFBTSxDQUFjO0lBQzFCLENBQUM7SUFFSixvRUFBb0U7SUFDcEUsSUFBSSxLQUFVLENBQUM7SUFFZjs7O09BR0c7SUFDSCxZQUFZLEtBQVUsQ0FBQztJQUV2Qjs7Ozs7T0FLRztJQUNILFNBQVMsQ0FBQyxJQUFhLElBQVMsQ0FBQztJQUVqQywyRUFBMkU7SUFDM0UsYUFBYSxDQUFDLFFBQTBCLElBQVMsQ0FBQztJQUVsRCxxRUFBcUU7SUFDckUsZUFBZSxDQUFDLFVBQTRCLElBQVMsQ0FBQztJQUV0RCw2RUFBNkU7SUFDbkUsbUJBQW1CLENBQUMsSUFBYSxFQUFFLE9BQWU7UUFDMUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2pCLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3RELFFBQVEsRUFBRSxFQUFFLENBQUMsNkJBQTZCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN2RSxPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEzREQsOEJBMkRDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtSZXNvbHZlZFJlc291cmNlfSBmcm9tICcuL2NvbXBvbmVudC1yZXNvdXJjZS1jb2xsZWN0b3InO1xuaW1wb3J0IHtGaWxlU3lzdGVtLCBXb3Jrc3BhY2VQYXRofSBmcm9tICcuL2ZpbGUtc3lzdGVtJztcbmltcG9ydCB7VXBkYXRlTG9nZ2VyfSBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQge1RhcmdldFZlcnNpb259IGZyb20gJy4vdGFyZ2V0LXZlcnNpb24nO1xuaW1wb3J0IHtMaW5lQW5kQ2hhcmFjdGVyfSBmcm9tICcuL3V0aWxzL2xpbmUtbWFwcGluZ3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1pZ3JhdGlvbkZhaWx1cmUge1xuICBmaWxlUGF0aDogV29ya3NwYWNlUGF0aDtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBwb3NpdGlvbj86IExpbmVBbmRDaGFyYWN0ZXI7XG59XG5cbmV4cG9ydCB0eXBlIFBvc3RNaWdyYXRpb25BY3Rpb24gPSB2b2lkIHwge1xuICAvKiogV2hldGhlciB0aGUgcGFja2FnZSBtYW5hZ2VyIHNob3VsZCBydW4gdXBvbiBtaWdyYXRpb24gY29tcGxldGlvbi4gKi9cbiAgcnVuUGFja2FnZU1hbmFnZXI6IGJvb2xlYW47XG59O1xuXG4vKiogQ3JlYXRlcyBhIGNvbnN0cnVjdG9yIHR5cGUgZm9yIHRoZSBzcGVjaWZpZWQgdHlwZS4gKi9cbmV4cG9ydCB0eXBlIENvbnN0cnVjdG9yPFQ+ID0gbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVDtcbi8qKiBHZXRzIGEgY29uc3RydWN0b3IgdHlwZSBmb3IgdGhlIHBhc3NlZCBtaWdyYXRpb24gZGF0YS4gKi9cbmV4cG9ydCB0eXBlIE1pZ3JhdGlvbkN0b3I8RGF0YSwgQ29udGV4dCA9IGFueT4gPSBDb25zdHJ1Y3RvcjxNaWdyYXRpb248RGF0YSwgQ29udGV4dD4+O1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTWlncmF0aW9uPERhdGEsIENvbnRleHQgPSBhbnk+IHtcbiAgLyoqIExpc3Qgb2YgbWlncmF0aW9uIGZhaWx1cmVzIHRoYXQgbmVlZCB0byBiZSByZXBvcnRlZC4gKi9cbiAgZmFpbHVyZXM6IE1pZ3JhdGlvbkZhaWx1cmVbXSA9IFtdO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBtaWdyYXRpb24gaXMgZW5hYmxlZCBvciBub3QuICovXG4gIGFic3RyYWN0IGVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLyoqIFR5cGVTY3JpcHQgcHJvZ3JhbSBmb3IgdGhlIG1pZ3JhdGlvbi4gKi9cbiAgICBwdWJsaWMgcHJvZ3JhbTogdHMuUHJvZ3JhbSxcbiAgICAvKiogVHlwZUNoZWNrZXIgaW5zdGFuY2UgZm9yIHRoZSBhbmFseXNpcyBwcm9ncmFtLiAqL1xuICAgIHB1YmxpYyB0eXBlQ2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsXG4gICAgLyoqXG4gICAgICogVmVyc2lvbiBmb3Igd2hpY2ggdGhlIG1pZ3JhdGlvbiBydWxlIHNob3VsZCBydW4uIE51bGwgaWYgdGhlIG1pZ3JhdGlvblxuICAgICAqIGlzIGludm9rZWQgbWFudWFsbHkuXG4gICAgICovXG4gICAgcHVibGljIHRhcmdldFZlcnNpb246IFRhcmdldFZlcnNpb24gfCBudWxsLFxuICAgIC8qKiBDb250ZXh0IGRhdGEgZm9yIHRoZSBtaWdyYXRpb24uICovXG4gICAgcHVibGljIGNvbnRleHQ6IENvbnRleHQsXG4gICAgLyoqIFVwZ3JhZGUgZGF0YSBwYXNzZWQgdG8gdGhlIG1pZ3JhdGlvbi4gKi9cbiAgICBwdWJsaWMgdXBncmFkZURhdGE6IERhdGEsXG4gICAgLyoqIEZpbGUgc3lzdGVtIHRoYXQgY2FuIGJlIHVzZWQgZm9yIG1vZGlmeWluZyBmaWxlcy4gKi9cbiAgICBwdWJsaWMgZmlsZVN5c3RlbTogRmlsZVN5c3RlbSxcbiAgICAvKiogTG9nZ2VyIHRoYXQgY2FuIGJlIHVzZWQgdG8gcHJpbnQgbWVzc2FnZXMgYXMgcGFydCBvZiB0aGUgbWlncmF0aW9uLiAqL1xuICAgIHB1YmxpYyBsb2dnZXI6IFVwZGF0ZUxvZ2dlcixcbiAgKSB7fVxuXG4gIC8qKiBNZXRob2QgY2FuIGJlIHVzZWQgdG8gcGVyZm9ybSBnbG9iYWwgYW5hbHlzaXMgb2YgdGhlIHByb2dyYW0uICovXG4gIGluaXQoKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdGhhdCB3aWxsIGJlIGNhbGxlZCBvbmNlIGFsbCBub2RlcywgdGVtcGxhdGVzIGFuZCBzdHlsZXNoZWV0c1xuICAgKiBoYXZlIGJlZW4gdmlzaXRlZC5cbiAgICovXG4gIHBvc3RBbmFseXNpcygpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0aGF0IHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoIG5vZGUgaW4gYSBnaXZlbiBzb3VyY2UgZmlsZS4gVW5saWtlIHRzbGludCwgdGhpc1xuICAgKiBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0cmlldmUgVHlwZVNjcmlwdCBub2RlcyB0aGF0IG5lZWQgdG8gYmUgY2FzdGVkIG1hbnVhbGx5LiBUaGlzXG4gICAqIGFsbG93cyB1cyB0byBvbmx5IHdhbGsgdGhlIHByb2dyYW0gc291cmNlIGZpbGVzIG9uY2UgcGVyIHByb2dyYW0gYW5kIG5vdCBwZXJcbiAgICogbWlncmF0aW9uIHJ1bGUgKHNpZ25pZmljYW50IHBlcmZvcm1hbmNlIGJvb3N0KS5cbiAgICovXG4gIHZpc2l0Tm9kZShub2RlOiB0cy5Ob2RlKTogdm9pZCB7fVxuXG4gIC8qKiBNZXRob2QgdGhhdCB3aWxsIGJlIGNhbGxlZCBmb3IgZWFjaCBBbmd1bGFyIHRlbXBsYXRlIGluIHRoZSBwcm9ncmFtLiAqL1xuICB2aXNpdFRlbXBsYXRlKHRlbXBsYXRlOiBSZXNvbHZlZFJlc291cmNlKTogdm9pZCB7fVxuXG4gIC8qKiBNZXRob2QgdGhhdCB3aWxsIGJlIGNhbGxlZCBmb3IgZWFjaCBzdHlsZXNoZWV0IGluIHRoZSBwcm9ncmFtLiAqL1xuICB2aXNpdFN0eWxlc2hlZXQoc3R5bGVzaGVldDogUmVzb2x2ZWRSZXNvdXJjZSk6IHZvaWQge31cblxuICAvKiogQ3JlYXRlcyBhIGZhaWx1cmUgd2l0aCBhIHNwZWNpZmllZCBtZXNzYWdlIGF0IHRoZSBnaXZlbiBub2RlIGxvY2F0aW9uLiAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlRmFpbHVyZUF0Tm9kZShub2RlOiB0cy5Ob2RlLCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzb3VyY2VGaWxlID0gbm9kZS5nZXRTb3VyY2VGaWxlKCk7XG4gICAgdGhpcy5mYWlsdXJlcy5wdXNoKHtcbiAgICAgIGZpbGVQYXRoOiB0aGlzLmZpbGVTeXN0ZW0ucmVzb2x2ZShzb3VyY2VGaWxlLmZpbGVOYW1lKSxcbiAgICAgIHBvc2l0aW9uOiB0cy5nZXRMaW5lQW5kQ2hhcmFjdGVyT2ZQb3NpdGlvbihzb3VyY2VGaWxlLCBub2RlLmdldFN0YXJ0KCkpLFxuICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -14,9 +14,10 @@ const ts = require("typescript");
14
14
  * a given virtual file system.
15
15
  */
16
16
  class FileSystemHost {
17
+ _fileSystem;
18
+ useCaseSensitiveFileNames = ts.sys.useCaseSensitiveFileNames;
17
19
  constructor(_fileSystem) {
18
20
  this._fileSystem = _fileSystem;
19
- this.useCaseSensitiveFileNames = ts.sys.useCaseSensitiveFileNames;
20
21
  }
21
22
  fileExists(path) {
22
23
  return this._fileSystem.fileExists(this._fileSystem.resolve(path));
@@ -68,4 +69,4 @@ function createFormatDiagnosticHost(fileSystem) {
68
69
  };
69
70
  }
70
71
  exports.createFormatDiagnosticHost = createFormatDiagnosticHost;
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1ob3N0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3VwZGF0ZS10b29sL3V0aWxzL3ZpcnR1YWwtaG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCxpQ0FBaUM7QUFnQ2pDOzs7R0FHRztBQUNILE1BQWEsY0FBYztJQUd6QixZQUFvQixXQUF1QjtRQUF2QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUYzQyw4QkFBeUIsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDO0lBRWYsQ0FBQztJQUUvQyxVQUFVLENBQUMsSUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFZO1FBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO1lBQ3BCLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBQ0QsbUZBQW1GO1FBQ25GLHFGQUFxRjtRQUNyRixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxhQUFhLENBQ1gsT0FBZSxFQUNmLFVBQW9CLEVBQ3BCLFFBQThCLEVBQzlCLFFBQWtCLEVBQ2xCLEtBQWM7UUFFZCxJQUFJLEVBQUUsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQy9CLE1BQU0sS0FBSyxDQUNULHdFQUF3RTtnQkFDdEUsc0ZBQXNGO2dCQUN0RiwrRUFBK0UsQ0FDbEYsQ0FBQztTQUNIO1FBQ0QsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUNsQixPQUFPLEVBQ1AsVUFBVSxFQUNWLFVBQVUsRUFDVixRQUFRLEVBQ1IsSUFBSSxDQUFDLHlCQUF5QixFQUM5QixHQUFHLEVBQ0gsS0FBSyxFQUNMLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxFQUNsQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUNoQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ25FLENBQUM7SUFDSixDQUFDO0lBRU8scUJBQXFCLENBQUMsSUFBWTtRQUN4QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztDQUNGO0FBbERELHdDQWtEQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLDRCQUE0QixDQUMxQyxPQUEyQixFQUMzQixVQUFzQjtJQUV0QixNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xELE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRW5ELElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqRSxJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNELElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMxRixJQUFJLENBQUMsbUJBQW1CLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDO0lBQ3JDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFdkQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBZkQsb0VBZUM7QUFFRCw4RUFBOEU7QUFDOUUsU0FBZ0IsMEJBQTBCLENBQUMsVUFBc0I7SUFDL0QsT0FBTztRQUNMLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDaEQsbUJBQW1CLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRztRQUM5QixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtLQUN2QixDQUFDO0FBQ0osQ0FBQztBQU5ELGdFQU1DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtGaWxlU3lzdGVtfSBmcm9tICcuLi9maWxlLXN5c3RlbSc7XG5cbi8vIFdlIHVzZSBUeXBlU2NyaXB0J3MgbmF0aXZlIGB0cy5tYXRjaEZpbGVzYCB1dGlsaXR5IGZvciB0aGUgdmlydHVhbCBmaWxlIHN5c3RlbVxuLy8gaG9zdHMsIGFzIHRoYXQgZnVuY3Rpb24gaW1wbGVtZW50cyBjb21wbGV4IGxvZ2ljIGZvciBtYXRjaGluZyBmaWxlcyB3aXRoIHJlc3BlY3Rcbi8vIHRvIHJvb3QgZGlyZWN0b3J5LCBleHRlbnNpb25zLCBleGNsdWRlcywgaW5jbHVkZXMgZXRjLiBUaGUgZnVuY3Rpb24gaXMgY3VycmVudGx5XG4vLyBpbnRlcm5hbCBidXQgd2UgY2FuIHVzZSBpdCBhcyB0aGUgQVBJIG1vc3QgbGlrZWx5IHdpbGwgbm90IGNoYW5nZSBhbnkgdGltZSBzb29uLFxuLy8gbm9yIGRvZXMgaXQgc2VlbSBsaWtlIHRoaXMgaXMgYmVpbmcgbWFkZSBwdWJsaWMgYW55IHRpbWUgc29vbi5cbi8vIFJlbGF0ZWQgaXNzdWUgZm9yIHRyYWNraW5nOiBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvaXNzdWVzLzEzNzkzLlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L2Jsb2IvYjM5N2QxZmQ0YWJkMGVkZWY4NWFkZjBhZmQ5MWMwMzBiYjBiNDk1NS9zcmMvY29tcGlsZXIvdXRpbGl0aWVzLnRzI0w2MTkyXG5kZWNsYXJlIG1vZHVsZSAndHlwZXNjcmlwdCcge1xuICBleHBvcnQgaW50ZXJmYWNlIEZpbGVTeXN0ZW1FbnRyaWVzIHtcbiAgICByZWFkb25seSBmaWxlczogcmVhZG9ubHkgc3RyaW5nW107XG4gICAgcmVhZG9ubHkgZGlyZWN0b3JpZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICB9XG5cbiAgZXhwb3J0IGNvbnN0IG1hdGNoRmlsZXM6XG4gICAgfCB1bmRlZmluZWRcbiAgICB8ICgoXG4gICAgICAgIHBhdGg6IHN0cmluZyxcbiAgICAgICAgZXh0ZW5zaW9uczogcmVhZG9ubHkgc3RyaW5nW10gfCB1bmRlZmluZWQsXG4gICAgICAgIGV4Y2x1ZGVzOiByZWFkb25seSBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcbiAgICAgICAgaW5jbHVkZXM6IHJlYWRvbmx5IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICAgICAgICB1c2VDYXNlU2Vuc2l0aXZlRmlsZU5hbWVzOiBib29sZWFuLFxuICAgICAgICBjdXJyZW50RGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgICAgIGRlcHRoOiBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgICAgIGdldEZpbGVTeXN0ZW1FbnRyaWVzOiAocGF0aDogc3RyaW5nKSA9PiBGaWxlU3lzdGVtRW50cmllcyxcbiAgICAgICAgcmVhbHBhdGg6IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZyxcbiAgICAgICAgZGlyZWN0b3J5RXhpc3RzOiAocGF0aDogc3RyaW5nKSA9PiBib29sZWFuLFxuICAgICAgKSA9PiBzdHJpbmdbXSk7XG59XG5cbi8qKlxuICogSW1wbGVtZW50YXRpb24gb2YgYSBUeXBlU2NyaXB0IHBhcnNlIGNvbmZpZyBob3N0IHRoYXQgcmVsaWVzIGZ1bGx5IG9uXG4gKiBhIGdpdmVuIHZpcnR1YWwgZmlsZSBzeXN0ZW0uXG4gKi9cbmV4cG9ydCBjbGFzcyBGaWxlU3lzdGVtSG9zdCBpbXBsZW1lbnRzIHRzLlBhcnNlQ29uZmlnSG9zdCB7XG4gIHVzZUNhc2VTZW5zaXRpdmVGaWxlTmFtZXMgPSB0cy5zeXMudXNlQ2FzZVNlbnNpdGl2ZUZpbGVOYW1lcztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9maWxlU3lzdGVtOiBGaWxlU3lzdGVtKSB7fVxuXG4gIGZpbGVFeGlzdHMocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbGVTeXN0ZW0uZmlsZUV4aXN0cyh0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUocGF0aCkpO1xuICB9XG5cbiAgcmVhZEZpbGUocGF0aDogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5fZmlsZVN5c3RlbS5yZWFkKHRoaXMuX2ZpbGVTeXN0ZW0ucmVzb2x2ZShwYXRoKSk7XG4gICAgaWYgKGNvbnRlbnQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIC8vIFN0cmlwIEJPTSBhcyBvdGhlcndpc2UgVFNDIG1ldGhvZHMgKGUuZy4gXCJnZXRXaWR0aFwiKSB3aWxsIHJldHVybiBhbiBvZmZzZXQgd2hpY2hcbiAgICAvLyB3aGljaCBicmVha3MgdGhlIENMSSBVcGRhdGVSZWNvcmRlci4gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9wdWxsLzMwNzE5XG4gICAgcmV0dXJuIGNvbnRlbnQucmVwbGFjZSgvXlxcdUZFRkYvLCAnJyk7XG4gIH1cblxuICByZWFkRGlyZWN0b3J5KFxuICAgIHJvb3REaXI6IHN0cmluZyxcbiAgICBleHRlbnNpb25zOiBzdHJpbmdbXSxcbiAgICBleGNsdWRlczogc3RyaW5nW10gfCB1bmRlZmluZWQsXG4gICAgaW5jbHVkZXM6IHN0cmluZ1tdLFxuICAgIGRlcHRoPzogbnVtYmVyLFxuICApOiBzdHJpbmdbXSB7XG4gICAgaWYgKHRzLm1hdGNoRmlsZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICdVbmFibGUgdG8gcmVhZCBkaXJlY3RvcnkgaW4gdmlydHVhbCBmaWxlIHN5c3RlbSBob3N0LiBUaGlzIG1lYW5zIHRoYXQgJyArXG4gICAgICAgICAgJ1R5cGVTY3JpcHQgY2hhbmdlZCBpdHMgZmlsZSBtYXRjaGluZyBpbnRlcm5hbHMuXFxuXFxuUGxlYXNlIGNvbnNpZGVyIGRvd25ncmFkaW5nIHlvdXIgJyArXG4gICAgICAgICAgJ1R5cGVTY3JpcHQgdmVyc2lvbiwgYW5kIHJlcG9ydCBhbiBpc3N1ZSBpbiB0aGUgQW5ndWxhciBDb21wb25lbnRzIHJlcG9zaXRvcnkuJyxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0cy5tYXRjaEZpbGVzKFxuICAgICAgcm9vdERpcixcbiAgICAgIGV4dGVuc2lvbnMsXG4gICAgICBleHRlbnNpb25zLFxuICAgICAgaW5jbHVkZXMsXG4gICAgICB0aGlzLnVzZUNhc2VTZW5zaXRpdmVGaWxlTmFtZXMsXG4gICAgICAnLycsXG4gICAgICBkZXB0aCxcbiAgICAgIHAgPT4gdGhpcy5fZ2V0RmlsZVN5c3RlbUVudHJpZXMocCksXG4gICAgICBwID0+IHRoaXMuX2ZpbGVTeXN0ZW0ucmVzb2x2ZShwKSxcbiAgICAgIHAgPT4gdGhpcy5fZmlsZVN5c3RlbS5kaXJlY3RvcnlFeGlzdHModGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKHApKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RmlsZVN5c3RlbUVudHJpZXMocGF0aDogc3RyaW5nKTogdHMuRmlsZVN5c3RlbUVudHJpZXMge1xuICAgIHJldHVybiB0aGlzLl9maWxlU3lzdGVtLnJlYWREaXJlY3RvcnkodGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKHBhdGgpKTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBUeXBlU2NyaXB0IGNvbXBpbGVyIGhvc3QgdGhhdCBmdWxseSByZWxpZXMgZnVsbHkgb24gdGhlIGdpdmVuXG4gKiB2aXJ0dWFsIGZpbGUgc3lzdGVtLiBpLmUuIG5vIGludGVyYWN0aW9ucyB3aXRoIHRoZSB3b3JraW5nIGRpcmVjdG9yeS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZpbGVTeXN0ZW1Db21waWxlckhvc3QoXG4gIG9wdGlvbnM6IHRzLkNvbXBpbGVyT3B0aW9ucyxcbiAgZmlsZVN5c3RlbTogRmlsZVN5c3RlbSxcbik6IHRzLkNvbXBpbGVySG9zdCB7XG4gIGNvbnN0IGhvc3QgPSB0cy5jcmVhdGVDb21waWxlckhvc3Qob3B0aW9ucywgdHJ1ZSk7XG4gIGNvbnN0IHZpcnR1YWxIb3N0ID0gbmV3IEZpbGVTeXN0ZW1Ib3N0KGZpbGVTeXN0ZW0pO1xuXG4gIGhvc3QucmVhZEZpbGUgPSB2aXJ0dWFsSG9zdC5yZWFkRmlsZS5iaW5kKHZpcnR1YWxIb3N0KTtcbiAgaG9zdC5yZWFkRGlyZWN0b3J5ID0gdmlydHVhbEhvc3QucmVhZERpcmVjdG9yeS5iaW5kKHZpcnR1YWxIb3N0KTtcbiAgaG9zdC5maWxlRXhpc3RzID0gdmlydHVhbEhvc3QuZmlsZUV4aXN0cy5iaW5kKHZpcnR1YWxIb3N0KTtcbiAgaG9zdC5kaXJlY3RvcnlFeGlzdHMgPSBkaXJQYXRoID0+IGZpbGVTeXN0ZW0uZGlyZWN0b3J5RXhpc3RzKGZpbGVTeXN0ZW0ucmVzb2x2ZShkaXJQYXRoKSk7XG4gIGhvc3QuZ2V0Q3VycmVudERpcmVjdG9yeSA9ICgpID0+ICcvJztcbiAgaG9zdC5nZXRDYW5vbmljYWxGaWxlTmFtZSA9IHAgPT4gZmlsZVN5c3RlbS5yZXNvbHZlKHApO1xuXG4gIHJldHVybiBob3N0O1xufVxuXG4vKiogQ3JlYXRlcyBhIGZvcm1hdCBkaWFnbm9zdGljIGhvc3QgdGhhdCB3b3JrcyB3aXRoIHRoZSBnaXZlbiBmaWxlIHN5c3RlbS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb3JtYXREaWFnbm9zdGljSG9zdChmaWxlU3lzdGVtOiBGaWxlU3lzdGVtKTogdHMuRm9ybWF0RGlhZ25vc3RpY3NIb3N0IHtcbiAgcmV0dXJuIHtcbiAgICBnZXRDYW5vbmljYWxGaWxlTmFtZTogcCA9PiBmaWxlU3lzdGVtLnJlc29sdmUocCksXG4gICAgZ2V0Q3VycmVudERpcmVjdG9yeTogKCkgPT4gJy8nLFxuICAgIGdldE5ld0xpbmU6ICgpID0+ICdcXG4nLFxuICB9O1xufVxuIl19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1ob3N0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3VwZGF0ZS10b29sL3V0aWxzL3ZpcnR1YWwtaG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCxpQ0FBaUM7QUFnQ2pDOzs7R0FHRztBQUNILE1BQWEsY0FBYztJQUdMO0lBRnBCLHlCQUF5QixHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUM7SUFFN0QsWUFBb0IsV0FBdUI7UUFBdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7SUFBRyxDQUFDO0lBRS9DLFVBQVUsQ0FBQyxJQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVk7UUFDbkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0RSxJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFDcEIsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFDRCxtRkFBbUY7UUFDbkYscUZBQXFGO1FBQ3JGLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGFBQWEsQ0FDWCxPQUFlLEVBQ2YsVUFBb0IsRUFDcEIsUUFBOEIsRUFDOUIsUUFBa0IsRUFDbEIsS0FBYztRQUVkLElBQUksRUFBRSxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDL0IsTUFBTSxLQUFLLENBQ1Qsd0VBQXdFO2dCQUN0RSxzRkFBc0Y7Z0JBQ3RGLCtFQUErRSxDQUNsRixDQUFDO1NBQ0g7UUFDRCxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQ2xCLE9BQU8sRUFDUCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFFBQVEsRUFDUixJQUFJLENBQUMseUJBQXlCLEVBQzlCLEdBQUcsRUFDSCxLQUFLLEVBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQ2xDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQ2hDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDbkUsQ0FBQztJQUNKLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxJQUFZO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0NBQ0Y7QUFsREQsd0NBa0RDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsNEJBQTRCLENBQzFDLE9BQTJCLEVBQzNCLFVBQXNCO0lBRXRCLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFbkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pFLElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzFGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDckMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV2RCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFmRCxvRUFlQztBQUVELDhFQUE4RTtBQUM5RSxTQUFnQiwwQkFBMEIsQ0FBQyxVQUFzQjtJQUMvRCxPQUFPO1FBQ0wsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNoRCxtQkFBbUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHO1FBQzlCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO0tBQ3ZCLENBQUM7QUFDSixDQUFDO0FBTkQsZ0VBTUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQge0ZpbGVTeXN0ZW19IGZyb20gJy4uL2ZpbGUtc3lzdGVtJztcblxuLy8gV2UgdXNlIFR5cGVTY3JpcHQncyBuYXRpdmUgYHRzLm1hdGNoRmlsZXNgIHV0aWxpdHkgZm9yIHRoZSB2aXJ0dWFsIGZpbGUgc3lzdGVtXG4vLyBob3N0cywgYXMgdGhhdCBmdW5jdGlvbiBpbXBsZW1lbnRzIGNvbXBsZXggbG9naWMgZm9yIG1hdGNoaW5nIGZpbGVzIHdpdGggcmVzcGVjdFxuLy8gdG8gcm9vdCBkaXJlY3RvcnksIGV4dGVuc2lvbnMsIGV4Y2x1ZGVzLCBpbmNsdWRlcyBldGMuIFRoZSBmdW5jdGlvbiBpcyBjdXJyZW50bHlcbi8vIGludGVybmFsIGJ1dCB3ZSBjYW4gdXNlIGl0IGFzIHRoZSBBUEkgbW9zdCBsaWtlbHkgd2lsbCBub3QgY2hhbmdlIGFueSB0aW1lIHNvb24sXG4vLyBub3IgZG9lcyBpdCBzZWVtIGxpa2UgdGhpcyBpcyBiZWluZyBtYWRlIHB1YmxpYyBhbnkgdGltZSBzb29uLlxuLy8gUmVsYXRlZCBpc3N1ZSBmb3IgdHJhY2tpbmc6IGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC9pc3N1ZXMvMTM3OTMuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvYmxvYi9iMzk3ZDFmZDRhYmQwZWRlZjg1YWRmMGFmZDkxYzAzMGJiMGI0OTU1L3NyYy9jb21waWxlci91dGlsaXRpZXMudHMjTDYxOTJcbmRlY2xhcmUgbW9kdWxlICd0eXBlc2NyaXB0JyB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgRmlsZVN5c3RlbUVudHJpZXMge1xuICAgIHJlYWRvbmx5IGZpbGVzOiByZWFkb25seSBzdHJpbmdbXTtcbiAgICByZWFkb25seSBkaXJlY3RvcmllczogcmVhZG9ubHkgc3RyaW5nW107XG4gIH1cblxuICBleHBvcnQgY29uc3QgbWF0Y2hGaWxlczpcbiAgICB8IHVuZGVmaW5lZFxuICAgIHwgKChcbiAgICAgICAgcGF0aDogc3RyaW5nLFxuICAgICAgICBleHRlbnNpb25zOiByZWFkb25seSBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcbiAgICAgICAgZXhjbHVkZXM6IHJlYWRvbmx5IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICAgICAgICBpbmNsdWRlczogcmVhZG9ubHkgc3RyaW5nW10gfCB1bmRlZmluZWQsXG4gICAgICAgIHVzZUNhc2VTZW5zaXRpdmVGaWxlTmFtZXM6IGJvb2xlYW4sXG4gICAgICAgIGN1cnJlbnREaXJlY3Rvcnk6IHN0cmluZyxcbiAgICAgICAgZGVwdGg6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICAgICAgZ2V0RmlsZVN5c3RlbUVudHJpZXM6IChwYXRoOiBzdHJpbmcpID0+IEZpbGVTeXN0ZW1FbnRyaWVzLFxuICAgICAgICByZWFscGF0aDogKHBhdGg6IHN0cmluZykgPT4gc3RyaW5nLFxuICAgICAgICBkaXJlY3RvcnlFeGlzdHM6IChwYXRoOiBzdHJpbmcpID0+IGJvb2xlYW4sXG4gICAgICApID0+IHN0cmluZ1tdKTtcbn1cblxuLyoqXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiBhIFR5cGVTY3JpcHQgcGFyc2UgY29uZmlnIGhvc3QgdGhhdCByZWxpZXMgZnVsbHkgb25cbiAqIGEgZ2l2ZW4gdmlydHVhbCBmaWxlIHN5c3RlbS5cbiAqL1xuZXhwb3J0IGNsYXNzIEZpbGVTeXN0ZW1Ib3N0IGltcGxlbWVudHMgdHMuUGFyc2VDb25maWdIb3N0IHtcbiAgdXNlQ2FzZVNlbnNpdGl2ZUZpbGVOYW1lcyA9IHRzLnN5cy51c2VDYXNlU2Vuc2l0aXZlRmlsZU5hbWVzO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ZpbGVTeXN0ZW06IEZpbGVTeXN0ZW0pIHt9XG5cbiAgZmlsZUV4aXN0cyhwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsZVN5c3RlbS5maWxlRXhpc3RzKHRoaXMuX2ZpbGVTeXN0ZW0ucmVzb2x2ZShwYXRoKSk7XG4gIH1cblxuICByZWFkRmlsZShwYXRoOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLl9maWxlU3lzdGVtLnJlYWQodGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKHBhdGgpKTtcbiAgICBpZiAoY29udGVudCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLy8gU3RyaXAgQk9NIGFzIG90aGVyd2lzZSBUU0MgbWV0aG9kcyAoZS5nLiBcImdldFdpZHRoXCIpIHdpbGwgcmV0dXJuIGFuIG9mZnNldCB3aGljaFxuICAgIC8vIHdoaWNoIGJyZWFrcyB0aGUgQ0xJIFVwZGF0ZVJlY29yZGVyLiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL3B1bGwvMzA3MTlcbiAgICByZXR1cm4gY29udGVudC5yZXBsYWNlKC9eXFx1RkVGRi8sICcnKTtcbiAgfVxuXG4gIHJlYWREaXJlY3RvcnkoXG4gICAgcm9vdERpcjogc3RyaW5nLFxuICAgIGV4dGVuc2lvbnM6IHN0cmluZ1tdLFxuICAgIGV4Y2x1ZGVzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcbiAgICBpbmNsdWRlczogc3RyaW5nW10sXG4gICAgZGVwdGg/OiBudW1iZXIsXG4gICk6IHN0cmluZ1tdIHtcbiAgICBpZiAodHMubWF0Y2hGaWxlcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgJ1VuYWJsZSB0byByZWFkIGRpcmVjdG9yeSBpbiB2aXJ0dWFsIGZpbGUgc3lzdGVtIGhvc3QuIFRoaXMgbWVhbnMgdGhhdCAnICtcbiAgICAgICAgICAnVHlwZVNjcmlwdCBjaGFuZ2VkIGl0cyBmaWxlIG1hdGNoaW5nIGludGVybmFscy5cXG5cXG5QbGVhc2UgY29uc2lkZXIgZG93bmdyYWRpbmcgeW91ciAnICtcbiAgICAgICAgICAnVHlwZVNjcmlwdCB2ZXJzaW9uLCBhbmQgcmVwb3J0IGFuIGlzc3VlIGluIHRoZSBBbmd1bGFyIENvbXBvbmVudHMgcmVwb3NpdG9yeS4nLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRzLm1hdGNoRmlsZXMoXG4gICAgICByb290RGlyLFxuICAgICAgZXh0ZW5zaW9ucyxcbiAgICAgIGV4dGVuc2lvbnMsXG4gICAgICBpbmNsdWRlcyxcbiAgICAgIHRoaXMudXNlQ2FzZVNlbnNpdGl2ZUZpbGVOYW1lcyxcbiAgICAgICcvJyxcbiAgICAgIGRlcHRoLFxuICAgICAgcCA9PiB0aGlzLl9nZXRGaWxlU3lzdGVtRW50cmllcyhwKSxcbiAgICAgIHAgPT4gdGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKHApLFxuICAgICAgcCA9PiB0aGlzLl9maWxlU3lzdGVtLmRpcmVjdG9yeUV4aXN0cyh0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUocCkpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRGaWxlU3lzdGVtRW50cmllcyhwYXRoOiBzdHJpbmcpOiB0cy5GaWxlU3lzdGVtRW50cmllcyB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbGVTeXN0ZW0ucmVhZERpcmVjdG9yeSh0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUocGF0aCkpO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIFR5cGVTY3JpcHQgY29tcGlsZXIgaG9zdCB0aGF0IGZ1bGx5IHJlbGllcyBmdWxseSBvbiB0aGUgZ2l2ZW5cbiAqIHZpcnR1YWwgZmlsZSBzeXN0ZW0uIGkuZS4gbm8gaW50ZXJhY3Rpb25zIHdpdGggdGhlIHdvcmtpbmcgZGlyZWN0b3J5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRmlsZVN5c3RlbUNvbXBpbGVySG9zdChcbiAgb3B0aW9uczogdHMuQ29tcGlsZXJPcHRpb25zLFxuICBmaWxlU3lzdGVtOiBGaWxlU3lzdGVtLFxuKTogdHMuQ29tcGlsZXJIb3N0IHtcbiAgY29uc3QgaG9zdCA9IHRzLmNyZWF0ZUNvbXBpbGVySG9zdChvcHRpb25zLCB0cnVlKTtcbiAgY29uc3QgdmlydHVhbEhvc3QgPSBuZXcgRmlsZVN5c3RlbUhvc3QoZmlsZVN5c3RlbSk7XG5cbiAgaG9zdC5yZWFkRmlsZSA9IHZpcnR1YWxIb3N0LnJlYWRGaWxlLmJpbmQodmlydHVhbEhvc3QpO1xuICBob3N0LnJlYWREaXJlY3RvcnkgPSB2aXJ0dWFsSG9zdC5yZWFkRGlyZWN0b3J5LmJpbmQodmlydHVhbEhvc3QpO1xuICBob3N0LmZpbGVFeGlzdHMgPSB2aXJ0dWFsSG9zdC5maWxlRXhpc3RzLmJpbmQodmlydHVhbEhvc3QpO1xuICBob3N0LmRpcmVjdG9yeUV4aXN0cyA9IGRpclBhdGggPT4gZmlsZVN5c3RlbS5kaXJlY3RvcnlFeGlzdHMoZmlsZVN5c3RlbS5yZXNvbHZlKGRpclBhdGgpKTtcbiAgaG9zdC5nZXRDdXJyZW50RGlyZWN0b3J5ID0gKCkgPT4gJy8nO1xuICBob3N0LmdldENhbm9uaWNhbEZpbGVOYW1lID0gcCA9PiBmaWxlU3lzdGVtLnJlc29sdmUocCk7XG5cbiAgcmV0dXJuIGhvc3Q7XG59XG5cbi8qKiBDcmVhdGVzIGEgZm9ybWF0IGRpYWdub3N0aWMgaG9zdCB0aGF0IHdvcmtzIHdpdGggdGhlIGdpdmVuIGZpbGUgc3lzdGVtLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZvcm1hdERpYWdub3N0aWNIb3N0KGZpbGVTeXN0ZW06IEZpbGVTeXN0ZW0pOiB0cy5Gb3JtYXREaWFnbm9zdGljc0hvc3Qge1xuICByZXR1cm4ge1xuICAgIGdldENhbm9uaWNhbEZpbGVOYW1lOiBwID0+IGZpbGVTeXN0ZW0ucmVzb2x2ZShwKSxcbiAgICBnZXRDdXJyZW50RGlyZWN0b3J5OiAoKSA9PiAnLycsXG4gICAgZ2V0TmV3TGluZTogKCkgPT4gJ1xcbicsXG4gIH07XG59XG4iXX0=