@igo2/geo 17.0.0-next.0 → 17.0.0-next.2

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 (301) hide show
  1. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +3 -3
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +3 -3
  3. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +3 -3
  4. package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +4 -4
  5. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +19 -17
  6. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +3 -3
  7. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +14 -12
  8. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +4 -4
  9. package/esm2022/lib/catalog/catalog.module.mjs +4 -4
  10. package/esm2022/lib/catalog/shared/catalog.service.mjs +12 -8
  11. package/esm2022/lib/datasource/shared/capabilities.service.mjs +3 -3
  12. package/esm2022/lib/datasource/shared/datasource.service.mjs +10 -8
  13. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
  14. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
  15. package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
  16. package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +1 -1
  17. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
  18. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
  19. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +1 -1
  20. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +3 -3
  21. package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +2 -2
  22. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +3 -3
  23. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +17 -13
  24. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +6 -6
  25. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +6 -6
  26. package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +2 -2
  27. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +6 -6
  28. package/esm2022/lib/directions/directions.component.mjs +6 -6
  29. package/esm2022/lib/directions/directions.module.mjs +4 -4
  30. package/esm2022/lib/directions/shared/directions.service.mjs +13 -9
  31. package/esm2022/lib/directions/shared/directions.utils.mjs +1 -1
  32. package/esm2022/lib/download/download-button/download-button.component.mjs +3 -3
  33. package/esm2022/lib/download/download.module.mjs +4 -4
  34. package/esm2022/lib/download/shared/download.service.mjs +6 -6
  35. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +3 -3
  36. package/esm2022/lib/draw/draw/draw-popup.component.mjs +6 -6
  37. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +3 -3
  38. package/esm2022/lib/draw/draw/draw.component.mjs +6 -6
  39. package/esm2022/lib/draw/draw/draw.module.mjs +4 -4
  40. package/esm2022/lib/draw/drawingTool.module.mjs +4 -4
  41. package/esm2022/lib/draw/shared/draw-icon.service.mjs +6 -6
  42. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +13 -10
  43. package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +3 -3
  44. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +4 -4
  45. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +3 -3
  46. package/esm2022/lib/feature/feature-form/feature-form.module.mjs +4 -4
  47. package/esm2022/lib/feature/feature.module.mjs +4 -4
  48. package/esm2022/lib/filter/filter.module.mjs +4 -4
  49. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +3 -3
  50. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +3 -3
  51. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +6 -6
  52. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +3 -3
  53. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +3 -3
  54. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +3 -3
  55. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +3 -3
  56. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +3 -3
  57. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +3 -3
  58. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +3 -3
  59. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +3 -3
  60. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +3 -3
  61. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +9 -7
  62. package/esm2022/lib/filter/shared/time-filter.service.mjs +3 -3
  63. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +23 -21
  64. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +6 -6
  65. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +3 -3
  66. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +3 -3
  67. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +3 -3
  68. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +3 -3
  69. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +3 -3
  70. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +3 -3
  71. package/esm2022/lib/geo.module.mjs +4 -4
  72. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +3 -3
  73. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +3 -3
  74. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +4 -4
  75. package/esm2022/lib/geometry/geometry.module.mjs +4 -4
  76. package/esm2022/lib/import-export/export-button/export-button.component.mjs +3 -3
  77. package/esm2022/lib/import-export/import-export/import-export.component.mjs +28 -22
  78. package/esm2022/lib/import-export/import-export.module.mjs +4 -4
  79. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +11 -9
  80. package/esm2022/lib/import-export/shared/export.service.mjs +6 -6
  81. package/esm2022/lib/import-export/shared/export.utils.mjs +1 -1
  82. package/esm2022/lib/import-export/shared/import.service.mjs +6 -6
  83. package/esm2022/lib/import-export/shared/import.utils.mjs +1 -1
  84. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +6 -6
  85. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +18 -16
  86. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +6 -6
  87. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +3 -3
  88. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +3 -3
  89. package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +6 -6
  90. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +3 -3
  91. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +3 -3
  92. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +3 -3
  93. package/esm2022/lib/layer/layer.module.mjs +4 -4
  94. package/esm2022/lib/layer/shared/layer.service.mjs +6 -6
  95. package/esm2022/lib/layer/shared/layers/image-layer.mjs +1 -1
  96. package/esm2022/lib/layer/shared/layers/layer.interface.mjs +1 -1
  97. package/esm2022/lib/layer/shared/layers/layer.mjs +1 -1
  98. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +1 -1
  99. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +1 -1
  100. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +1 -1
  101. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +3 -3
  102. package/esm2022/lib/layer/utils/image-watcher.mjs +1 -1
  103. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +6 -6
  104. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +3 -3
  105. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +7 -7
  106. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +6 -6
  107. package/esm2022/lib/map/info-section/info-section.component.mjs +3 -3
  108. package/esm2022/lib/map/map-browser/map-browser.component.mjs +6 -6
  109. package/esm2022/lib/map/map-center/map-center.component.mjs +3 -3
  110. package/esm2022/lib/map/map.module.mjs +4 -4
  111. package/esm2022/lib/map/menu-button/menu-button.component.mjs +6 -6
  112. package/esm2022/lib/map/offline-button/offline-button.component.mjs +3 -3
  113. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +3 -3
  114. package/esm2022/lib/map/shared/controllers/geolocation.mjs +1 -1
  115. package/esm2022/lib/map/shared/hover-feature.directive.mjs +6 -6
  116. package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +6 -6
  117. package/esm2022/lib/map/shared/map.mjs +1 -1
  118. package/esm2022/lib/map/shared/map.service.mjs +3 -3
  119. package/esm2022/lib/map/shared/mapOffline.directive.mjs +9 -7
  120. package/esm2022/lib/map/shared/projection.service.mjs +6 -6
  121. package/esm2022/lib/map/shared/projection.utils.mjs +1 -1
  122. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +3 -3
  123. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +6 -6
  124. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +3 -3
  125. package/esm2022/lib/measure/measure.module.mjs +4 -4
  126. package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +3 -3
  127. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +3 -3
  128. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +3 -3
  129. package/esm2022/lib/measure/measurer/measurer.component.mjs +16 -14
  130. package/esm2022/lib/measure/measurer/measurer.module.mjs +4 -4
  131. package/esm2022/lib/measure/shared/measure.utils.mjs +1 -1
  132. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +6 -6
  133. package/esm2022/lib/metadata/metadata.module.mjs +4 -4
  134. package/esm2022/lib/metadata/shared/metadata.service.mjs +3 -3
  135. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +6 -6
  136. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +8 -10
  137. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +3 -3
  138. package/esm2022/lib/offline/shared/geo-network.service.mjs +6 -6
  139. package/esm2022/lib/overlay/overlay.module.mjs +4 -4
  140. package/esm2022/lib/overlay/shared/overlay.directive.mjs +3 -3
  141. package/esm2022/lib/overlay/shared/overlay.service.mjs +3 -3
  142. package/esm2022/lib/print/print/print.component.mjs +3 -3
  143. package/esm2022/lib/print/print-form/print-form.component.mjs +6 -6
  144. package/esm2022/lib/print/print.module.mjs +4 -4
  145. package/esm2022/lib/print/shared/print.service.mjs +13 -7
  146. package/esm2022/lib/query/query.module.mjs +6 -6
  147. package/esm2022/lib/query/shared/query-search-source.mjs +3 -3
  148. package/esm2022/lib/query/shared/query-search-source.providers.mjs +2 -2
  149. package/esm2022/lib/query/shared/query.directive.mjs +3 -3
  150. package/esm2022/lib/query/shared/query.service.mjs +6 -6
  151. package/esm2022/lib/search/search-bar/search-bar.component.mjs +6 -6
  152. package/esm2022/lib/search/search-bar/search-bar.module.mjs +4 -4
  153. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +6 -6
  154. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +6 -6
  155. package/esm2022/lib/search/search-results/search-results-item.component.mjs +3 -3
  156. package/esm2022/lib/search/search-results/search-results.component.mjs +6 -6
  157. package/esm2022/lib/search/search-results/search-results.module.mjs +4 -4
  158. package/esm2022/lib/search/search-selector/search-selector.component.mjs +3 -3
  159. package/esm2022/lib/search/search-selector/search-selector.module.mjs +4 -4
  160. package/esm2022/lib/search/search-settings/search-settings.component.mjs +18 -16
  161. package/esm2022/lib/search/search-settings/search-settings.module.mjs +4 -4
  162. package/esm2022/lib/search/search.module.mjs +4 -4
  163. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +6 -6
  164. package/esm2022/lib/search/shared/search.service.mjs +6 -6
  165. package/esm2022/lib/search/shared/sources/cadastre.mjs +9 -7
  166. package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +4 -2
  167. package/esm2022/lib/search/shared/sources/coordinates.mjs +12 -10
  168. package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +4 -2
  169. package/esm2022/lib/search/shared/sources/icherche.mjs +16 -14
  170. package/esm2022/lib/search/shared/sources/icherche.providers.mjs +4 -2
  171. package/esm2022/lib/search/shared/sources/ilayer.mjs +12 -10
  172. package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +4 -2
  173. package/esm2022/lib/search/shared/sources/nominatim.mjs +6 -6
  174. package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +3 -2
  175. package/esm2022/lib/search/shared/sources/source.mjs +1 -1
  176. package/esm2022/lib/search/shared/sources/storedqueries.mjs +13 -11
  177. package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +4 -2
  178. package/esm2022/lib/search/shared/sources/workspace.mjs +9 -7
  179. package/esm2022/lib/search/shared/sources/workspace.providers.mjs +4 -2
  180. package/esm2022/lib/style/style-list/style-list.module.mjs +4 -4
  181. package/esm2022/lib/style/style-list/style-list.service.mjs +3 -3
  182. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +3 -3
  183. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +3 -3
  184. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +3 -3
  185. package/esm2022/lib/style/style-service/draw-style.service.mjs +3 -3
  186. package/esm2022/lib/style/style-service/style.service.mjs +3 -3
  187. package/esm2022/lib/style/style.module.mjs +4 -4
  188. package/esm2022/lib/toast/toast.component.mjs +3 -3
  189. package/esm2022/lib/toast/toast.module.mjs +4 -4
  190. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +6 -6
  191. package/esm2022/lib/wkt/shared/wkt.service.mjs +3 -3
  192. package/esm2022/lib/wkt/wkt.module.mjs +4 -4
  193. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +6 -6
  194. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +4 -4
  195. package/esm2022/lib/workspace/shared/edition-workspace.mjs +1 -1
  196. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +15 -11
  197. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +12 -10
  198. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +12 -10
  199. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +10 -8
  200. package/esm2022/lib/workspace/shared/workspace.utils.mjs +2 -2
  201. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +3 -3
  202. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +4 -4
  203. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +3 -3
  204. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +4 -4
  205. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +3 -3
  206. package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +4 -4
  207. package/esm2022/lib/workspace/workspace.module.mjs +4 -4
  208. package/fesm2022/igo2-geo.mjs +701 -690
  209. package/fesm2022/igo2-geo.mjs.map +1 -1
  210. package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +2 -1
  211. package/lib/catalog/catalog-library/catalog-library.component.d.ts +2 -1
  212. package/lib/catalog/shared/catalog.service.d.ts +3 -1
  213. package/lib/datasource/shared/datasource.service.d.ts +2 -1
  214. package/lib/datasource/shared/options/options-api.providers.d.ts +1 -1
  215. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +3 -1
  216. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +1 -1
  217. package/lib/directions/directions-results/directions-results.component.d.ts +1 -1
  218. package/lib/directions/directions-sources/directions-source.provider.d.ts +1 -1
  219. package/lib/directions/directions-sources/osrm-directions-source.d.ts +1 -1
  220. package/lib/directions/directions.component.d.ts +1 -1
  221. package/lib/directions/shared/directions.service.d.ts +3 -1
  222. package/lib/directions/shared/directions.utils.d.ts +1 -1
  223. package/lib/download/shared/download.service.d.ts +1 -1
  224. package/lib/draw/draw/draw-popup.component.d.ts +1 -1
  225. package/lib/draw/draw/draw.component.d.ts +1 -1
  226. package/lib/draw/shared/draw-icon.service.d.ts +1 -1
  227. package/lib/feature/feature-details/feature-details.component.d.ts +3 -2
  228. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +1 -1
  229. package/lib/filter/shared/spatial-filter.service.d.ts +2 -1
  230. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +2 -1
  231. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +1 -1
  232. package/lib/import-export/import-export/import-export.component.d.ts +4 -1
  233. package/lib/import-export/shared/drop-geo-file.directive.d.ts +2 -1
  234. package/lib/import-export/shared/export.service.d.ts +1 -1
  235. package/lib/import-export/shared/export.utils.d.ts +1 -1
  236. package/lib/import-export/shared/import.service.d.ts +1 -1
  237. package/lib/import-export/shared/import.utils.d.ts +1 -1
  238. package/lib/layer/layer-item/layer-item.component.d.ts +1 -1
  239. package/lib/layer/layer-legend/layer-legend.component.d.ts +2 -1
  240. package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +1 -1
  241. package/lib/layer/layer-list/layer-list-binding.directive.d.ts +1 -1
  242. package/lib/layer/shared/layer.service.d.ts +1 -1
  243. package/lib/layer/shared/layers/image-layer.d.ts +1 -1
  244. package/lib/layer/shared/layers/layer.d.ts +1 -1
  245. package/lib/layer/shared/layers/layer.interface.d.ts +1 -1
  246. package/lib/layer/shared/layers/tile-layer.d.ts +1 -1
  247. package/lib/layer/shared/layers/vector-layer.d.ts +1 -1
  248. package/lib/layer/shared/layers/vectortile-layer.d.ts +1 -1
  249. package/lib/layer/utils/image-watcher.d.ts +1 -1
  250. package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +1 -1
  251. package/lib/map/geolocate-button/geolocate-button.component.d.ts +1 -1
  252. package/lib/map/home-extent-button/home-extent-button.component.d.ts +1 -1
  253. package/lib/map/map-browser/map-browser.component.d.ts +1 -1
  254. package/lib/map/menu-button/menu-button.component.d.ts +1 -1
  255. package/lib/map/shared/controllers/geolocation.d.ts +2 -1
  256. package/lib/map/shared/hover-feature.directive.d.ts +1 -1
  257. package/lib/map/shared/map-pointer-position.directive.d.ts +1 -1
  258. package/lib/map/shared/map.d.ts +2 -1
  259. package/lib/map/shared/mapOffline.directive.d.ts +2 -1
  260. package/lib/map/shared/projection.service.d.ts +1 -1
  261. package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +1 -1
  262. package/lib/measure/measurer/measurer.component.d.ts +2 -1
  263. package/lib/measure/shared/measure.utils.d.ts +1 -1
  264. package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +1 -1
  265. package/lib/offline/geoDB/geoDB.service.d.ts +2 -3
  266. package/lib/offline/shared/geo-network.service.d.ts +1 -1
  267. package/lib/print/print-form/print-form.component.d.ts +1 -1
  268. package/lib/print/shared/print.service.d.ts +4 -1
  269. package/lib/query/query.module.d.ts +1 -1
  270. package/lib/query/shared/query-search-source.providers.d.ts +1 -1
  271. package/lib/query/shared/query.service.d.ts +1 -1
  272. package/lib/search/search-bar/search-bar.component.d.ts +1 -1
  273. package/lib/search/search-results/save-feature-dialog.component.d.ts +1 -1
  274. package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
  275. package/lib/search/search-results/search-results.component.d.ts +1 -1
  276. package/lib/search/search-settings/search-settings.component.d.ts +2 -1
  277. package/lib/search/shared/search-pointer-summary.directive.d.ts +1 -1
  278. package/lib/search/shared/search.service.d.ts +1 -1
  279. package/lib/search/shared/sources/cadastre.d.ts +2 -1
  280. package/lib/search/shared/sources/cadastre.providers.d.ts +3 -1
  281. package/lib/search/shared/sources/coordinates.d.ts +2 -1
  282. package/lib/search/shared/sources/coordinates.providers.d.ts +3 -1
  283. package/lib/search/shared/sources/icherche.d.ts +2 -1
  284. package/lib/search/shared/sources/icherche.providers.d.ts +3 -1
  285. package/lib/search/shared/sources/ilayer.d.ts +2 -1
  286. package/lib/search/shared/sources/ilayer.providers.d.ts +3 -1
  287. package/lib/search/shared/sources/nominatim.d.ts +1 -1
  288. package/lib/search/shared/sources/nominatim.providers.d.ts +2 -1
  289. package/lib/search/shared/sources/source.d.ts +1 -1
  290. package/lib/search/shared/sources/storedqueries.d.ts +2 -1
  291. package/lib/search/shared/sources/storedqueries.providers.d.ts +3 -1
  292. package/lib/search/shared/sources/workspace.d.ts +2 -1
  293. package/lib/search/shared/sources/workspace.providers.d.ts +3 -1
  294. package/lib/utils/propertyTypeDetector/propertyTypeDetector.service.d.ts +1 -1
  295. package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +1 -1
  296. package/lib/workspace/shared/edition-workspace.d.ts +1 -1
  297. package/lib/workspace/shared/edition-workspace.service.d.ts +3 -1
  298. package/lib/workspace/shared/feature-workspace.service.d.ts +2 -1
  299. package/lib/workspace/shared/wfs-workspace.service.d.ts +2 -1
  300. package/lib/workspace/shared/wms-workspace.service.d.ts +2 -1
  301. package/package.json +5 -5
@@ -116,10 +116,10 @@ export class StyleModalLayerComponent {
116
116
  closePicker() {
117
117
  this.dialogRef.disableClose = false;
118
118
  }
119
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: StyleModalLayerComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.UntypedFormBuilder }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
120
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: StyleModalLayerComponent, isStandalone: true, selector: "igo-style-modal-layer", inputs: { confirmFlag: "confirmFlag" }, ngImport: i0, template: "<h2 mat-dialog-title class=\"mat-typography\">\r\n {{ 'igo.geo.style.styleModal' | translate }}\r\n</h2>\r\n<div mat-dialog-content>\r\n <div class=\"edition-drawing mat-typography\">\r\n <form class=\"igo-form\" [formGroup]=\"form\">\r\n <div\r\n class=\"fill-color-picker mat-typography\"\r\n *ngIf=\"linestringOnly !== true\"\r\n >\r\n <span>\r\n <mat-icon class=\"stroke-palette-icon\" svgIcon=\"square\"></mat-icon>\r\n {{ 'igo.geo.style.fill' | translate }}\r\n </span>\r\n <igo-color-picker-form-field\r\n formControlName=\"fill\"\r\n (colorChange)=\"setLayerFillColor($event)\"\r\n ></igo-color-picker-form-field>\r\n </div>\r\n\r\n <div class=\"stroke-color-picker mat-typography\">\r\n <span>\r\n <mat-icon class=\"stroke-palette-icon\" svgIcon=\"square-outline\">\r\n </mat-icon>\r\n {{ 'igo.geo.style.stroke' | translate }}\r\n </span>\r\n <igo-color-picker-form-field\r\n formControlName=\"stroke\"\r\n (colorChange)=\"setLayerStrokeColor($event)\"\r\n ></igo-color-picker-form-field>\r\n </div>\r\n </form>\r\n </div>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button mat-raised-button (click)=\"cancel()\">\r\n {{ 'igo.geo.style.cancel' | translate }}\r\n </button>\r\n <button mat-raised-button color=\"primary\" (click)=\"confirm()\">OK</button>\r\n</div>\r\n", styles: ["h2{font-weight:700;font-size:large}.igo-form{padding:10px}.fill-field,.stroke-field{width:130px}.fill-color-picker mat-icon{position:relative;top:7px}.fill-color-picker mat-form-field{left:8px}.stroke-color-picker mat-icon{position:relative;top:7px}.stroke-color-picker mat-form-field{left:35px}.box{width:25px;height:25px}.edition-drawing{padding:10px 0}.igo-input-container .mat-mdc-form-field+.mat-form-field{margin-left:8px}.igo-form-input-box{width:150px}button{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ColorPickerFormFieldComponent, selector: "igo-color-picker-form-field", inputs: ["outputFormat"], outputs: ["colorChange"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
119
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: StyleModalLayerComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.UntypedFormBuilder }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
120
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: StyleModalLayerComponent, isStandalone: true, selector: "igo-style-modal-layer", inputs: { confirmFlag: "confirmFlag" }, ngImport: i0, template: "<h2 mat-dialog-title class=\"mat-typography\">\r\n {{ 'igo.geo.style.styleModal' | translate }}\r\n</h2>\r\n<div mat-dialog-content>\r\n <div class=\"edition-drawing mat-typography\">\r\n <form class=\"igo-form\" [formGroup]=\"form\">\r\n <div\r\n class=\"fill-color-picker mat-typography\"\r\n *ngIf=\"linestringOnly !== true\"\r\n >\r\n <span>\r\n <mat-icon class=\"stroke-palette-icon\" svgIcon=\"square\"></mat-icon>\r\n {{ 'igo.geo.style.fill' | translate }}\r\n </span>\r\n <igo-color-picker-form-field\r\n formControlName=\"fill\"\r\n (colorChange)=\"setLayerFillColor($event)\"\r\n ></igo-color-picker-form-field>\r\n </div>\r\n\r\n <div class=\"stroke-color-picker mat-typography\">\r\n <span>\r\n <mat-icon class=\"stroke-palette-icon\" svgIcon=\"square-outline\">\r\n </mat-icon>\r\n {{ 'igo.geo.style.stroke' | translate }}\r\n </span>\r\n <igo-color-picker-form-field\r\n formControlName=\"stroke\"\r\n (colorChange)=\"setLayerStrokeColor($event)\"\r\n ></igo-color-picker-form-field>\r\n </div>\r\n </form>\r\n </div>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button mat-raised-button (click)=\"cancel()\">\r\n {{ 'igo.geo.style.cancel' | translate }}\r\n </button>\r\n <button mat-raised-button color=\"primary\" (click)=\"confirm()\">OK</button>\r\n</div>\r\n", styles: ["h2{font-weight:700;font-size:large}.igo-form{padding:10px}.fill-field,.stroke-field{width:130px}.fill-color-picker mat-icon{position:relative;top:7px}.fill-color-picker mat-form-field{left:8px}.stroke-color-picker mat-icon{position:relative;top:7px}.stroke-color-picker mat-form-field{left:35px}.box{width:25px;height:25px}.edition-drawing{padding:10px 0}.igo-input-container .mat-mdc-form-field+.mat-form-field{margin-left:8px}.igo-form-input-box{width:150px}button{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ColorPickerFormFieldComponent, selector: "igo-color-picker-form-field", inputs: ["outputFormat"], outputs: ["colorChange"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
121
121
  }
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: StyleModalLayerComponent, decorators: [{
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: StyleModalLayerComponent, decorators: [{
123
123
  type: Component,
124
124
  args: [{ selector: 'igo-style-modal-layer', standalone: true, imports: [
125
125
  MatDialogTitle,
@@ -32,10 +32,10 @@ export class StyleModalLayerButtonComponent {
32
32
  });
33
33
  }, 250);
34
34
  }
35
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: StyleModalLayerButtonComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
36
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: StyleModalLayerButtonComponent, isStandalone: true, selector: "igo-style-modal-layer-button", inputs: { layer: "layer" }, ngImport: i0, template: "<button\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"openStyleModalDialog()\"\r\n [matTooltip]=\"'igo.geo.style.styleModalTooltipLayer' | translate\"\r\n>\r\n <mat-icon class=\"style-icon\" svgIcon=\"palette\"> </mat-icon>\r\n</button>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
35
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: StyleModalLayerButtonComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
36
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: StyleModalLayerButtonComponent, isStandalone: true, selector: "igo-style-modal-layer-button", inputs: { layer: "layer" }, ngImport: i0, template: "<button\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"openStyleModalDialog()\"\r\n [matTooltip]=\"'igo.geo.style.styleModalTooltipLayer' | translate\"\r\n>\r\n <mat-icon class=\"style-icon\" svgIcon=\"palette\"> </mat-icon>\r\n</button>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: StyleModalLayerButtonComponent, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: StyleModalLayerButtonComponent, decorators: [{
39
39
  type: Component,
40
40
  args: [{ selector: 'igo-style-modal-layer-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatButtonModule, MatTooltipModule, MatIconModule, TranslateModule], template: "<button\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"openStyleModalDialog()\"\r\n [matTooltip]=\"'igo.geo.style.styleModalTooltipLayer' | translate\"\r\n>\r\n <mat-icon class=\"style-icon\" svgIcon=\"palette\"> </mat-icon>\r\n</button>\r\n" }]
41
41
  }], ctorParameters: () => [{ type: i1.MatDialog }], propDecorators: { layer: [{
@@ -244,10 +244,10 @@ export class DrawStyleService {
244
244
  return style;
245
245
  }
246
246
  }
247
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DrawStyleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
248
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DrawStyleService, providedIn: 'root' });
247
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DrawStyleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
248
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DrawStyleService, providedIn: 'root' });
249
249
  }
250
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DrawStyleService, decorators: [{
250
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DrawStyleService, decorators: [{
251
251
  type: Injectable,
252
252
  args: [{
253
253
  providedIn: 'root'
@@ -381,10 +381,10 @@ export class StyleService {
381
381
  return 'regular';
382
382
  }
383
383
  }
384
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: StyleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
385
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: StyleService, providedIn: 'root' });
384
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: StyleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
385
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: StyleService, providedIn: 'root' });
386
386
  }
387
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: StyleService, decorators: [{
387
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: StyleService, decorators: [{
388
388
  type: Injectable,
389
389
  args: [{
390
390
  providedIn: 'root'
@@ -14,19 +14,19 @@ export class IgoStyleModule {
14
14
  providers: [StyleService, DrawStyleService]
15
15
  };
16
16
  }
17
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: IgoStyleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.1", ngImport: i0, type: IgoStyleModule, imports: [i1.IgoStyleListModule, StyleModalDrawingComponent,
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoStyleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: IgoStyleModule, imports: [i1.IgoStyleListModule, StyleModalDrawingComponent,
19
19
  StyleModalLayerComponent,
20
20
  StyleModalLayerButtonComponent], exports: [IgoStyleListModule,
21
21
  StyleModalDrawingComponent,
22
22
  StyleModalLayerComponent,
23
23
  StyleModalLayerButtonComponent] });
24
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: IgoStyleModule, imports: [IgoStyleListModule.forRoot(),
24
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoStyleModule, imports: [IgoStyleListModule.forRoot(),
25
25
  StyleModalDrawingComponent,
26
26
  StyleModalLayerComponent,
27
27
  StyleModalLayerButtonComponent, IgoStyleListModule] });
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: IgoStyleModule, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoStyleModule, decorators: [{
30
30
  type: NgModule,
31
31
  args: [{
32
32
  imports: [
@@ -73,10 +73,10 @@ export class ToastComponent {
73
73
  }
74
74
  }
75
75
  }
76
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
77
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: ToastComponent, isStandalone: true, selector: "igo-toast", inputs: { expanded: "expanded", map: "map", feature: "feature" }, outputs: { opened: "opened" }, ngImport: i0, template: "<igo-flexible\r\n #flex\r\n collapsedMobile=\"51px\"\r\n expandedMobile=\"300px\"\r\n [state]=\"state\"\r\n (swipeup)=\"swipe($event.type)\"\r\n (swipedown)=\"swipe($event.type)\"\r\n>\r\n <igo-panel [title]=\"title\">\r\n <button mat-icon-button panelLeftButton (click)=\"toggle()\">\r\n <mat-icon\r\n [svgIcon]=\"\r\n ['collapsed', 'initial'].indexOf(flex.state) >= 0\r\n ? 'arrow_upward'\r\n : 'arrow_downward'\r\n \"\r\n ></mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n panelRightButton\r\n class=\"igo-icon-button\"\r\n (click)=\"zoomToFeatureExtent()\"\r\n *ngIf=\"feature.geometry\"\r\n >\r\n <mat-icon svgIcon=\"zoom-in\"></mat-icon>\r\n </button>\r\n\r\n <igo-feature-details [feature]=\"feature\"></igo-feature-details>\r\n </igo-panel>\r\n</igo-flexible>\r\n", styles: [":host{position:absolute;bottom:0;width:100%;max-height:calc(100% - 50px);background-color:#fff}igo-feature-details ::ng-deep table{width:100%}\n"], dependencies: [{ kind: "component", type: FlexibleComponent, selector: "igo-flexible", inputs: ["initial", "collapsed", "expanded", "initialMobile", "collapsedMobile", "expandedMobile", "direction", "state"] }, { kind: "component", type: PanelComponent, selector: "igo-panel", inputs: ["title", "withHeader", "cursorPointer"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FeatureDetailsComponent, selector: "igo-feature-details", inputs: ["source", "map", "toolbox", "feature"], outputs: ["routeEvent", "selectFeature", "htmlDisplayEvent"] }] });
76
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
77
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: ToastComponent, isStandalone: true, selector: "igo-toast", inputs: { expanded: "expanded", map: "map", feature: "feature" }, outputs: { opened: "opened" }, ngImport: i0, template: "<igo-flexible\r\n #flex\r\n collapsedMobile=\"51px\"\r\n expandedMobile=\"300px\"\r\n [state]=\"state\"\r\n (swipeup)=\"swipe($event.type)\"\r\n (swipedown)=\"swipe($event.type)\"\r\n>\r\n <igo-panel [title]=\"title\">\r\n <button mat-icon-button panelLeftButton (click)=\"toggle()\">\r\n <mat-icon\r\n [svgIcon]=\"\r\n ['collapsed', 'initial'].indexOf(flex.state) >= 0\r\n ? 'arrow_upward'\r\n : 'arrow_downward'\r\n \"\r\n ></mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n panelRightButton\r\n class=\"igo-icon-button\"\r\n (click)=\"zoomToFeatureExtent()\"\r\n *ngIf=\"feature.geometry\"\r\n >\r\n <mat-icon svgIcon=\"zoom-in\"></mat-icon>\r\n </button>\r\n\r\n <igo-feature-details [feature]=\"feature\"></igo-feature-details>\r\n </igo-panel>\r\n</igo-flexible>\r\n", styles: [":host{position:absolute;bottom:0;width:100%;max-height:calc(100% - 50px);background-color:#fff}igo-feature-details ::ng-deep table{width:100%}\n"], dependencies: [{ kind: "component", type: FlexibleComponent, selector: "igo-flexible", inputs: ["initial", "collapsed", "expanded", "initialMobile", "collapsedMobile", "expandedMobile", "direction", "state"] }, { kind: "component", type: PanelComponent, selector: "igo-panel", inputs: ["title", "withHeader", "cursorPointer"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FeatureDetailsComponent, selector: "igo-feature-details", inputs: ["source", "map", "toolbox", "feature"], outputs: ["routeEvent", "selectFeature", "htmlDisplayEvent"] }] });
78
78
  }
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ToastComponent, decorators: [{
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ToastComponent, decorators: [{
80
80
  type: Component,
81
81
  args: [{ selector: 'igo-toast', standalone: true, imports: [
82
82
  FlexibleComponent,
@@ -10,11 +10,11 @@ export class IgoToastModule {
10
10
  ngModule: IgoToastModule
11
11
  };
12
12
  }
13
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: IgoToastModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.1", ngImport: i0, type: IgoToastModule, imports: [ToastComponent], exports: [ToastComponent] });
15
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: IgoToastModule, imports: [ToastComponent] });
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoToastModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: IgoToastModule, imports: [ToastComponent], exports: [ToastComponent] });
15
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoToastModule, imports: [ToastComponent] });
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: IgoToastModule, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoToastModule, decorators: [{
18
18
  type: NgModule,
19
19
  args: [{
20
20
  imports: [ToastComponent],
@@ -1,7 +1,7 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { RegexService } from '@igo2/core';
2
+ import { RegexService } from '@igo2/core/regex';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@igo2/core";
4
+ import * as i1 from "@igo2/core/regex";
5
5
  export class PropertyTypeDetectorService {
6
6
  regexService;
7
7
  geoServiceRegexes = [];
@@ -52,13 +52,13 @@ export class PropertyTypeDetectorService {
52
52
  return (this.regexService.get('geoservice') ||
53
53
  []);
54
54
  }
55
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: PropertyTypeDetectorService, deps: [{ token: i1.RegexService }], target: i0.ɵɵFactoryTarget.Injectable });
56
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: PropertyTypeDetectorService, providedIn: 'root' });
55
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: PropertyTypeDetectorService, deps: [{ token: i1.RegexService }], target: i0.ɵɵFactoryTarget.Injectable });
56
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: PropertyTypeDetectorService, providedIn: 'root' });
57
57
  }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: PropertyTypeDetectorService, decorators: [{
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: PropertyTypeDetectorService, decorators: [{
59
59
  type: Injectable,
60
60
  args: [{
61
61
  providedIn: 'root'
62
62
  }]
63
63
  }], ctorParameters: () => [{ type: i1.RegexService }] });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHlUeXBlRGV0ZWN0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3V0aWxzL3Byb3BlcnR5VHlwZURldGVjdG9yL3Byb3BlcnR5VHlwZURldGVjdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFPMUMsTUFBTSxPQUFPLDJCQUEyQjtJQUdsQjtJQUZiLGlCQUFpQixHQUEyQixFQUFFLENBQUM7SUFFdEQsWUFBb0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDNUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxlQUFlLENBQUMsS0FBSztRQUNuQixPQUFPLE9BQU8sS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFTyxLQUFLLENBQUMsS0FBSztRQUNqQixNQUFNLEtBQUssR0FBRyxjQUFjLENBQUM7UUFDN0IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBSztRQUNoQixJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixPQUFPO1FBQ1QsQ0FBQztRQUNELEtBQUssTUFBTSxlQUFlLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDckQsTUFBTSxXQUFXLEdBQUcsSUFBSSxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BELElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM1QixZQUFZLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixNQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBRUQsYUFBYSxDQUNYLEdBQVcsRUFDWCxtQkFBNkI7UUFFN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksa0JBQXdDLENBQUM7UUFDN0MsS0FBSyxNQUFNLGVBQWUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNyRCxNQUFNLFdBQVcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEQsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzFCLDBDQUEwQztnQkFDMUMsTUFBTSxrQkFBa0IsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUMxRCxlQUFlLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUNuRCxDQUFDO2dCQUNGLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDdEUsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO29CQUN2QixNQUFNO2dCQUNSLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDO1lBQ3pDLEVBQUUsQ0FBMkIsQ0FBQztJQUNsQyxDQUFDO3VHQTFEVSwyQkFBMkI7MkdBQTNCLDJCQUEyQixjQUYxQixNQUFNOzsyRkFFUCwyQkFBMkI7a0JBSHZDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgUmVnZXhTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBHZW9TZXJ2aWNlRGVmaW5pdGlvbiB9IGZyb20gJy4vcHJvcGVydHlUeXBlRGV0ZWN0b3IuaW50ZXJmYWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb3BlcnR5VHlwZURldGVjdG9yU2VydmljZSB7XHJcbiAgcHVibGljIGdlb1NlcnZpY2VSZWdleGVzOiBHZW9TZXJ2aWNlRGVmaW5pdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVnZXhTZXJ2aWNlOiBSZWdleFNlcnZpY2UpIHtcclxuICAgIHRoaXMuZ2VvU2VydmljZVJlZ2V4ZXMgPSB0aGlzLmdldEdlb1NlcnZpY2VSZWdleGVzKCk7XHJcbiAgfVxyXG5cclxuICBnZXRQcm9wZXJ0eVR5cGUodmFsdWUpIHtcclxuICAgIHJldHVybiB0eXBlb2YgdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzVXJsKHZhbHVlKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCByZWdleCA9IC9eaHR0cHM/OlxcL1xcLy87XHJcbiAgICByZXR1cm4gcmVnZXgudGVzdCh2YWx1ZS50b1N0cmluZygpKTtcclxuICB9XHJcblxyXG4gIGlzR2VvU2VydmljZSh2YWx1ZSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGlzR2VvU2VydmljZSA9IGZhbHNlO1xyXG4gICAgaWYgKCF0aGlzLmlzVXJsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgZ2VvU2VydmljZVJlZ2V4IG9mIHRoaXMuZ2VvU2VydmljZVJlZ2V4ZXMpIHtcclxuICAgICAgY29uc3QgZG9tYWluUmVnZXggPSBuZXcgUmVnRXhwKGdlb1NlcnZpY2VSZWdleC51cmwpO1xyXG4gICAgICBpZiAoZG9tYWluUmVnZXgudGVzdCh2YWx1ZSkpIHtcclxuICAgICAgICBpc0dlb1NlcnZpY2UgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXNHZW9TZXJ2aWNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0R2VvU2VydmljZShcclxuICAgIHVybDogc3RyaW5nLFxyXG4gICAgYXZhaWxhYmxlUHJvcGVydGllczogc3RyaW5nW11cclxuICApOiBHZW9TZXJ2aWNlRGVmaW5pdGlvbiB7XHJcbiAgICBpZiAoIXRoaXMuaXNHZW9TZXJ2aWNlKHVybCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IG1hdGNoaW5nR2Vvc2VydmljZTogR2VvU2VydmljZURlZmluaXRpb247XHJcbiAgICBmb3IgKGNvbnN0IGdlb1NlcnZpY2VSZWdleCBvZiB0aGlzLmdlb1NlcnZpY2VSZWdleGVzKSB7XHJcbiAgICAgIGNvbnN0IGRvbWFpblJlZ2V4ID0gbmV3IFJlZ0V4cChnZW9TZXJ2aWNlUmVnZXgudXJsKTtcclxuICAgICAgaWYgKGRvbWFpblJlZ2V4LnRlc3QodXJsKSkge1xyXG4gICAgICAgIC8vIHByb3ZpZGluZyB0aGUgdGhlIGZpcnN0IG1hdGNoaW5nIHJlZ2V4O1xyXG4gICAgICAgIGNvbnN0IG1hdGNoaW5nUHJvcGVydGllcyA9IGF2YWlsYWJsZVByb3BlcnRpZXMuZmlsdGVyKChwKSA9PlxyXG4gICAgICAgICAgZ2VvU2VydmljZVJlZ2V4LnByb3BlcnRpZXNGb3JMYXllck5hbWUuaW5jbHVkZXMocClcclxuICAgICAgICApO1xyXG4gICAgICAgIG1hdGNoaW5nR2Vvc2VydmljZSA9IG1hdGNoaW5nUHJvcGVydGllcyA/IGdlb1NlcnZpY2VSZWdleCA6IHVuZGVmaW5lZDtcclxuICAgICAgICBpZiAobWF0Y2hpbmdHZW9zZXJ2aWNlKSB7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtYXRjaGluZ0dlb3NlcnZpY2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEdlb1NlcnZpY2VSZWdleGVzKCk6IEdlb1NlcnZpY2VEZWZpbml0aW9uW10ge1xyXG4gICAgcmV0dXJuICh0aGlzLnJlZ2V4U2VydmljZS5nZXQoJ2dlb3NlcnZpY2UnKSB8fFxyXG4gICAgICBbXSkgYXMgR2VvU2VydmljZURlZmluaXRpb25bXTtcclxuICB9XHJcbn1cclxuIl19
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHlUeXBlRGV0ZWN0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3V0aWxzL3Byb3BlcnR5VHlwZURldGVjdG9yL3Byb3BlcnR5VHlwZURldGVjdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQU9oRCxNQUFNLE9BQU8sMkJBQTJCO0lBR2xCO0lBRmIsaUJBQWlCLEdBQTJCLEVBQUUsQ0FBQztJQUV0RCxZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUM1QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFLO1FBQ25CLE9BQU8sT0FBTyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVPLEtBQUssQ0FBQyxLQUFLO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQztRQUM3QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFLO1FBQ2hCLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLE9BQU87UUFDVCxDQUFDO1FBQ0QsS0FBSyxNQUFNLGVBQWUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNyRCxNQUFNLFdBQVcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEQsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzVCLFlBQVksR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLE1BQU07WUFDUixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxhQUFhLENBQ1gsR0FBVyxFQUNYLG1CQUE2QjtRQUU3QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxrQkFBd0MsQ0FBQztRQUM3QyxLQUFLLE1BQU0sZUFBZSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3JELE1BQU0sV0FBVyxHQUFHLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwRCxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDMUIsMENBQTBDO2dCQUMxQyxNQUFNLGtCQUFrQixHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQzFELGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQ25ELENBQUM7Z0JBQ0Ysa0JBQWtCLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUN0RSxJQUFJLGtCQUFrQixFQUFFLENBQUM7b0JBQ3ZCLE1BQU07Z0JBQ1IsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxrQkFBa0IsQ0FBQztJQUM1QixDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7WUFDekMsRUFBRSxDQUEyQixDQUFDO0lBQ2xDLENBQUM7dUdBMURVLDJCQUEyQjsyR0FBM0IsMkJBQTJCLGNBRjFCLE1BQU07OzJGQUVQLDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBSZWdleFNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL3JlZ2V4JztcclxuXHJcbmltcG9ydCB7IEdlb1NlcnZpY2VEZWZpbml0aW9uIH0gZnJvbSAnLi9wcm9wZXJ0eVR5cGVEZXRlY3Rvci5pbnRlcmZhY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvcGVydHlUeXBlRGV0ZWN0b3JTZXJ2aWNlIHtcclxuICBwdWJsaWMgZ2VvU2VydmljZVJlZ2V4ZXM6IEdlb1NlcnZpY2VEZWZpbml0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWdleFNlcnZpY2U6IFJlZ2V4U2VydmljZSkge1xyXG4gICAgdGhpcy5nZW9TZXJ2aWNlUmVnZXhlcyA9IHRoaXMuZ2V0R2VvU2VydmljZVJlZ2V4ZXMoKTtcclxuICB9XHJcblxyXG4gIGdldFByb3BlcnR5VHlwZSh2YWx1ZSkge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNVcmwodmFsdWUpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHJlZ2V4ID0gL15odHRwcz86XFwvXFwvLztcclxuICAgIHJldHVybiByZWdleC50ZXN0KHZhbHVlLnRvU3RyaW5nKCkpO1xyXG4gIH1cclxuXHJcbiAgaXNHZW9TZXJ2aWNlKHZhbHVlKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgaXNHZW9TZXJ2aWNlID0gZmFsc2U7XHJcbiAgICBpZiAoIXRoaXMuaXNVcmwpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBnZW9TZXJ2aWNlUmVnZXggb2YgdGhpcy5nZW9TZXJ2aWNlUmVnZXhlcykge1xyXG4gICAgICBjb25zdCBkb21haW5SZWdleCA9IG5ldyBSZWdFeHAoZ2VvU2VydmljZVJlZ2V4LnVybCk7XHJcbiAgICAgIGlmIChkb21haW5SZWdleC50ZXN0KHZhbHVlKSkge1xyXG4gICAgICAgIGlzR2VvU2VydmljZSA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBpc0dlb1NlcnZpY2U7XHJcbiAgfVxyXG5cclxuICBnZXRHZW9TZXJ2aWNlKFxyXG4gICAgdXJsOiBzdHJpbmcsXHJcbiAgICBhdmFpbGFibGVQcm9wZXJ0aWVzOiBzdHJpbmdbXVxyXG4gICk6IEdlb1NlcnZpY2VEZWZpbml0aW9uIHtcclxuICAgIGlmICghdGhpcy5pc0dlb1NlcnZpY2UodXJsKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgbWF0Y2hpbmdHZW9zZXJ2aWNlOiBHZW9TZXJ2aWNlRGVmaW5pdGlvbjtcclxuICAgIGZvciAoY29uc3QgZ2VvU2VydmljZVJlZ2V4IG9mIHRoaXMuZ2VvU2VydmljZVJlZ2V4ZXMpIHtcclxuICAgICAgY29uc3QgZG9tYWluUmVnZXggPSBuZXcgUmVnRXhwKGdlb1NlcnZpY2VSZWdleC51cmwpO1xyXG4gICAgICBpZiAoZG9tYWluUmVnZXgudGVzdCh1cmwpKSB7XHJcbiAgICAgICAgLy8gcHJvdmlkaW5nIHRoZSB0aGUgZmlyc3QgbWF0Y2hpbmcgcmVnZXg7XHJcbiAgICAgICAgY29uc3QgbWF0Y2hpbmdQcm9wZXJ0aWVzID0gYXZhaWxhYmxlUHJvcGVydGllcy5maWx0ZXIoKHApID0+XHJcbiAgICAgICAgICBnZW9TZXJ2aWNlUmVnZXgucHJvcGVydGllc0ZvckxheWVyTmFtZS5pbmNsdWRlcyhwKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgbWF0Y2hpbmdHZW9zZXJ2aWNlID0gbWF0Y2hpbmdQcm9wZXJ0aWVzID8gZ2VvU2VydmljZVJlZ2V4IDogdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmIChtYXRjaGluZ0dlb3NlcnZpY2UpIHtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1hdGNoaW5nR2Vvc2VydmljZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0R2VvU2VydmljZVJlZ2V4ZXMoKTogR2VvU2VydmljZURlZmluaXRpb25bXSB7XHJcbiAgICByZXR1cm4gKHRoaXMucmVnZXhTZXJ2aWNlLmdldCgnZ2Vvc2VydmljZScpIHx8XHJcbiAgICAgIFtdKSBhcyBHZW9TZXJ2aWNlRGVmaW5pdGlvbltdO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -224,10 +224,10 @@ export class WktService {
224
224
  };
225
225
  }
226
226
  }
227
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: WktService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
228
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: WktService, providedIn: 'root' });
227
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: WktService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
228
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: WktService, providedIn: 'root' });
229
229
  }
230
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: WktService, decorators: [{
230
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: WktService, decorators: [{
231
231
  type: Injectable,
232
232
  args: [{
233
233
  providedIn: 'root'
@@ -10,11 +10,11 @@ export class IgoWktModule {
10
10
  providers: []
11
11
  };
12
12
  }
13
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: IgoWktModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.1", ngImport: i0, type: IgoWktModule });
15
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: IgoWktModule });
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoWktModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: IgoWktModule });
15
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoWktModule });
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: IgoWktModule, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoWktModule, decorators: [{
18
18
  type: NgModule,
19
19
  args: [{
20
20
  imports: [],
@@ -1,10 +1,10 @@
1
1
  import { Component, Inject } from '@angular/core';
2
2
  import { MatButtonModule } from '@angular/material/button';
3
3
  import { MAT_DIALOG_DATA, MatDialogActions, MatDialogContent, MatDialogRef } from '@angular/material/dialog';
4
- import { LanguageService } from '@igo2/core';
4
+ import { LanguageService } from '@igo2/core/language';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/material/dialog";
7
- import * as i2 from "@igo2/core";
7
+ import * as i2 from "@igo2/core/language";
8
8
  import * as i3 from "@angular/material/button";
9
9
  export class ConfirmationPopupComponent {
10
10
  dialogRef;
@@ -23,14 +23,14 @@ export class ConfirmationPopupComponent {
23
23
  this.data.cancel = false;
24
24
  this.dialogRef.close(this.data.cancel);
25
25
  }
26
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ConfirmationPopupComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.LanguageService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
27
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: ConfirmationPopupComponent, isStandalone: true, selector: "igo-confirmation-popup-component", ngImport: i0, template: "<div mat-dialog-content>\r\n <p class=\"mat-typography\">\r\n {{\r\n data.type === 'add'\r\n ? languageService.translate.instant('igo.geo.workspace.addConfirmation')\r\n : languageService.translate.instant(\r\n 'igo.geo.workspace.deleteConfirmation'\r\n )\r\n }}\r\n </p>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button mat-raised-button color=\"primary\" (click)=\"confirmedAction()\">\r\n Ok\r\n </button>\r\n <button mat-raised-button (click)=\"cancelAction()\">\r\n {{ languageService.translate.instant('igo.geo.workspace.cancel') }}\r\n </button>\r\n</div>\r\n", styles: ["div.mat-mdc-dialog-actions{justify-content:center}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] });
26
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ConfirmationPopupComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.LanguageService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
27
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: ConfirmationPopupComponent, isStandalone: true, selector: "igo-confirmation-popup-component", ngImport: i0, template: "<div mat-dialog-content>\r\n <p class=\"mat-typography\">\r\n {{\r\n data.type === 'add'\r\n ? languageService.translate.instant('igo.geo.workspace.addConfirmation')\r\n : languageService.translate.instant(\r\n 'igo.geo.workspace.deleteConfirmation'\r\n )\r\n }}\r\n </p>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button mat-raised-button color=\"primary\" (click)=\"confirmedAction()\">\r\n Ok\r\n </button>\r\n <button mat-raised-button (click)=\"cancelAction()\">\r\n {{ languageService.translate.instant('igo.geo.workspace.cancel') }}\r\n </button>\r\n</div>\r\n", styles: ["div.mat-mdc-dialog-actions{justify-content:center}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] });
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ConfirmationPopupComponent, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ConfirmationPopupComponent, decorators: [{
30
30
  type: Component,
31
31
  args: [{ selector: 'igo-confirmation-popup-component', standalone: true, imports: [MatDialogContent, MatDialogActions, MatButtonModule], template: "<div mat-dialog-content>\r\n <p class=\"mat-typography\">\r\n {{\r\n data.type === 'add'\r\n ? languageService.translate.instant('igo.geo.workspace.addConfirmation')\r\n : languageService.translate.instant(\r\n 'igo.geo.workspace.deleteConfirmation'\r\n )\r\n }}\r\n </p>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button mat-raised-button color=\"primary\" (click)=\"confirmedAction()\">\r\n Ok\r\n </button>\r\n <button mat-raised-button (click)=\"cancelAction()\">\r\n {{ languageService.translate.instant('igo.geo.workspace.cancel') }}\r\n </button>\r\n</div>\r\n", styles: ["div.mat-mdc-dialog-actions{justify-content:center}\n"] }]
32
32
  }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: i2.LanguageService }, { type: undefined, decorators: [{
33
33
  type: Inject,
34
34
  args: [MAT_DIALOG_DATA]
35
35
  }] }] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3dvcmtzcGFjZS9jb25maXJtYXRpb24tcG9wdXAvY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3dvcmtzcGFjZS9jb25maXJtYXRpb24tcG9wdXAvY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNiLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7QUFjN0MsTUFBTSxPQUFPLDBCQUEwQjtJQUU1QjtJQUNBO0lBQ3lCO0lBSGxDLFlBQ1MsU0FBbUQsRUFDbkQsZUFBZ0MsRUFDUCxJQUF1QztRQUZoRSxjQUFTLEdBQVQsU0FBUyxDQUEwQztRQUNuRCxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDUCxTQUFJLEdBQUosSUFBSSxDQUFtQztJQUN0RSxDQUFDO0lBRUosWUFBWTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQzt1R0FmVSwwQkFBMEIsNkVBSTNCLGVBQWU7MkZBSmQsMEJBQTBCLDRGQ3ZCdkMsa25CQW1CQSw4R0RFWSxnQkFBZ0IseUdBQUUsZ0JBQWdCLDJIQUFFLGVBQWU7OzJGQUVsRCwwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0Usa0NBQWtDLGNBR2hDLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGVBQWUsQ0FBQzs7MEJBTTNELE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7XHJcbiAgTUFUX0RJQUxPR19EQVRBLFxyXG4gIE1hdERpYWxvZ0FjdGlvbnMsXHJcbiAgTWF0RGlhbG9nQ29udGVudCxcclxuICBNYXREaWFsb2dSZWZcclxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5cclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERpYWxvZ0RhdGEge1xyXG4gIHR5cGU6IHN0cmluZztcclxuICBjYW5jZWw6IGJvb2xlYW47XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWNvbmZpcm1hdGlvbi1wb3B1cC1jb21wb25lbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maXJtYXRpb24tcG9wdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbmZpcm1hdGlvbi1wb3B1cC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW01hdERpYWxvZ0NvbnRlbnQsIE1hdERpYWxvZ0FjdGlvbnMsIE1hdEJ1dHRvbk1vZHVsZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmZpcm1hdGlvblBvcHVwQ29tcG9uZW50IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxDb25maXJtYXRpb25Qb3B1cENvbXBvbmVudD4sXHJcbiAgICBwdWJsaWMgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IHsgdHlwZTogc3RyaW5nOyBjYW5jZWw6IGJvb2xlYW4gfVxyXG4gICkge31cclxuXHJcbiAgY2FuY2VsQWN0aW9uKCkge1xyXG4gICAgdGhpcy5kYXRhLmNhbmNlbCA9IHRydWU7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLmRhdGEuY2FuY2VsKTtcclxuICB9XHJcblxyXG4gIGNvbmZpcm1lZEFjdGlvbigpIHtcclxuICAgIHRoaXMuZGF0YS5jYW5jZWwgPSBmYWxzZTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuZGF0YS5jYW5jZWwpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8cCBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+XHJcbiAgICB7e1xyXG4gICAgICBkYXRhLnR5cGUgPT09ICdhZGQnXHJcbiAgICAgICAgPyBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8ud29ya3NwYWNlLmFkZENvbmZpcm1hdGlvbicpXHJcbiAgICAgICAgOiBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICdpZ28uZ2VvLndvcmtzcGFjZS5kZWxldGVDb25maXJtYXRpb24nXHJcbiAgICAgICAgICApXHJcbiAgICB9fVxyXG4gIDwvcD5cclxuPC9kaXY+XHJcbjxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNvbmZpcm1lZEFjdGlvbigpXCI+XHJcbiAgICBPa1xyXG4gIDwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImNhbmNlbEFjdGlvbigpXCI+XHJcbiAgICB7eyBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8ud29ya3NwYWNlLmNhbmNlbCcpIH19XHJcbiAgPC9idXR0b24+XHJcbjwvZGl2PlxyXG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3dvcmtzcGFjZS9jb25maXJtYXRpb24tcG9wdXAvY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3dvcmtzcGFjZS9jb25maXJtYXRpb24tcG9wdXAvY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNiLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQWN0RCxNQUFNLE9BQU8sMEJBQTBCO0lBRTVCO0lBQ0E7SUFDeUI7SUFIbEMsWUFDUyxTQUFtRCxFQUNuRCxlQUFnQyxFQUNQLElBQXVDO1FBRmhFLGNBQVMsR0FBVCxTQUFTLENBQTBDO1FBQ25ELG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNQLFNBQUksR0FBSixJQUFJLENBQW1DO0lBQ3RFLENBQUM7SUFFSixZQUFZO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDO3VHQWZVLDBCQUEwQiw2RUFJM0IsZUFBZTsyRkFKZCwwQkFBMEIsNEZDdkJ2QyxrbkJBbUJBLDhHREVZLGdCQUFnQix5R0FBRSxnQkFBZ0IsMkhBQUUsZUFBZTs7MkZBRWxELDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDRSxrQ0FBa0MsY0FHaEMsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDOzswQkFNM0QsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHtcclxuICBNQVRfRElBTE9HX0RBVEEsXHJcbiAgTWF0RGlhbG9nQWN0aW9ucyxcclxuICBNYXREaWFsb2dDb250ZW50LFxyXG4gIE1hdERpYWxvZ1JlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcblxyXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL2xhbmd1YWdlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlhbG9nRGF0YSB7XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIGNhbmNlbDogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tY29uZmlybWF0aW9uLXBvcHVwLWNvbXBvbmVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpcm1hdGlvbi1wb3B1cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTWF0RGlhbG9nQ29udGVudCwgTWF0RGlhbG9nQWN0aW9ucywgTWF0QnV0dG9uTW9kdWxlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29uZmlybWF0aW9uUG9wdXBDb21wb25lbnQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPENvbmZpcm1hdGlvblBvcHVwQ29tcG9uZW50PixcclxuICAgIHB1YmxpYyBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogeyB0eXBlOiBzdHJpbmc7IGNhbmNlbDogYm9vbGVhbiB9XHJcbiAgKSB7fVxyXG5cclxuICBjYW5jZWxBY3Rpb24oKSB7XHJcbiAgICB0aGlzLmRhdGEuY2FuY2VsID0gdHJ1ZTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuZGF0YS5jYW5jZWwpO1xyXG4gIH1cclxuXHJcbiAgY29uZmlybWVkQWN0aW9uKCkge1xyXG4gICAgdGhpcy5kYXRhLmNhbmNlbCA9IGZhbHNlO1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5kYXRhLmNhbmNlbCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gIDxwIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5cclxuICAgIHt7XHJcbiAgICAgIGRhdGEudHlwZSA9PT0gJ2FkZCdcclxuICAgICAgICA/IGxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby53b3Jrc3BhY2UuYWRkQ29uZmlybWF0aW9uJylcclxuICAgICAgICA6IGxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICAgJ2lnby5nZW8ud29ya3NwYWNlLmRlbGV0ZUNvbmZpcm1hdGlvbidcclxuICAgICAgICAgIClcclxuICAgIH19XHJcbiAgPC9wPlxyXG48L2Rpdj5cclxuPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY29uZmlybWVkQWN0aW9uKClcIj5cclxuICAgIE9rXHJcbiAgPC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiY2FuY2VsQWN0aW9uKClcIj5cclxuICAgIHt7IGxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby53b3Jrc3BhY2UuY2FuY2VsJykgfX1cclxuICA8L2J1dHRvbj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -5,11 +5,11 @@ import * as i0 from "@angular/core";
5
5
  * @deprecated import the ConfirmationPopupComponent directly
6
6
  */
7
7
  export class IgoConfirmationPopupModule {
8
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: IgoConfirmationPopupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.1", ngImport: i0, type: IgoConfirmationPopupModule, imports: [ConfirmationPopupComponent], exports: [ConfirmationPopupComponent] });
10
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: IgoConfirmationPopupModule, imports: [ConfirmationPopupComponent] });
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoConfirmationPopupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: IgoConfirmationPopupModule, imports: [ConfirmationPopupComponent], exports: [ConfirmationPopupComponent] });
10
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoConfirmationPopupModule, imports: [ConfirmationPopupComponent] });
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: IgoConfirmationPopupModule, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoConfirmationPopupModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  imports: [ConfirmationPopupComponent],
@@ -296,4 +296,4 @@ export class EditionWorkspace extends Workspace {
296
296
  });
297
297
  }
298
298
  }
299
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGlvbi13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi93b3Jrc3BhY2Uvc2hhcmVkL2VkaXRpb24td29ya3NwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBZ0IsU0FBUyxFQUFvQixNQUFNLGNBQWMsQ0FBQztBQUd6RSxPQUFPLFVBQVUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxTQUFTLE1BQU0sbUJBQW1CLENBQUM7QUFHMUMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxVQUFVLENBQUM7QUFFcEMsT0FBTyxFQUFFLGVBQWUsRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFFakUsT0FBTyxFQUFFLGlCQUFpQixFQUFtQixNQUFNLHlCQUF5QixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQU9oRyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsU0FBUztJQXFEbkM7SUFDQTtJQUNBO0lBQ0E7SUFDRTtJQXhESCxrQkFBa0IsR0FBNkIsSUFBSSxlQUFlLENBQ3pFLElBQUksQ0FDTCxDQUFDO0lBRUYsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUMxQixDQUFDO0lBRU8sV0FBVyxDQUFjO0lBQ3pCLFNBQVMsQ0FBZTtJQUN4QixvQkFBb0IsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO0lBQzVDLGNBQWMsQ0FBYztJQUM3QixZQUFZLEdBQUcsWUFBWSxDQUFDLENBQUMscUNBQXFDO0lBQ2xFLE1BQU0sQ0FBQyxDQUFDLGtDQUFrQztJQUUxQyxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3JDLE1BQU0sRUFBRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDekIsS0FBSyxFQUFFLHFCQUFxQjtZQUM1QixLQUFLLEVBQUUsQ0FBQztTQUNULENBQUM7UUFDRixJQUFJLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3JCLEtBQUssRUFBRSxtQkFBbUI7U0FDM0IsQ0FBQztRQUNGLEtBQUssRUFBRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDeEIsTUFBTSxFQUFFLENBQUM7WUFDVCxNQUFNLEVBQUUsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDO2dCQUN6QixLQUFLLEVBQUUscUJBQXFCO2dCQUM1QixLQUFLLEVBQUUsQ0FBQzthQUNULENBQUM7WUFDRixJQUFJLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNyQixLQUFLLEVBQUUsbUJBQW1CO2FBQzNCLENBQUM7U0FDSCxDQUFDO0tBQ0gsQ0FBQyxDQUFDO0lBRUssMEJBQTBCLEdBQUcsQ0FBQyxNQUE0QixFQUFFLEVBQUU7UUFDcEUsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUM7SUFDMUMsQ0FBQyxDQUFDO0lBRU0sMkJBQTJCLEdBQUcsQ0FBQyxNQUE0QixFQUFFLEVBQUU7UUFDckUsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUM7SUFDcEMsQ0FBQyxDQUFDO0lBRUssU0FBUyxDQUFTO0lBQ2xCLFdBQVcsQ0FBUztJQUNwQixXQUFXLENBQVM7SUFFM0IsWUFDVSxNQUFpQixFQUNqQixhQUE0QixFQUM1QixPQUFpQyxFQUNqQyxlQUErRCxFQUM3RCxPQUFnQztRQUUxQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFOUCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBQ2pDLG9CQUFlLEdBQWYsZUFBZSxDQUFnRDtRQUM3RCxZQUFPLEdBQVAsT0FBTyxDQUF5QjtRQUcxQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDOUQsSUFDRSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhO2dCQUN4QyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQ3hDLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBWSxDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTFDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxXQUFXLENBQUM7WUFDcEMsRUFBRSxFQUFFLGdCQUFnQjtZQUNwQixLQUFLLEVBQUUsU0FBUztZQUNoQixNQUFNLEVBQUUsR0FBRztZQUNYLE1BQU0sRUFBRSxJQUFJLGlCQUFpQixFQUFFO1lBQy9CLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLFNBQVMsRUFBRTtnQkFDVCxPQUFPLEVBQUUsS0FBSzthQUNmO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUFPLEVBQUUsU0FBUztRQUM5QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUU7Z0JBQzdELFlBQVksRUFBRSxLQUFLO2dCQUNuQixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO2FBQ3pCLENBQUMsQ0FBQztZQUVILFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDM0MsSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFLENBQUM7b0JBQ3JCLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQztvQkFDWixNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztvQkFDbkUsTUFBTSxTQUFTLEdBQ2IsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7b0JBQ3ZELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUNuQixHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDOzRCQUMvQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDO2dDQUMzQyxPQUFPO2dDQUNQLEdBQUc7Z0NBQ0gsU0FBUzs0QkFDWCxDQUFDLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUM7b0JBQ2hDLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDOzRCQUMvQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEdBQUcsU0FBUzs0QkFDekQsQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQkFDaEIsQ0FBQztvQkFFRCxLQUFLLE1BQU0sTUFBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUMxRCxLQUFLLE1BQU0sUUFBUSxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQzs0QkFDMUMsSUFBSSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQzs0QkFDN0IsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7Z0NBQ3ZDLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUN4QyxDQUFDOzRCQUNELElBQUksVUFBVSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO2dDQUN2RCxFQUFFLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQzs0QkFDcEMsQ0FBQzt3QkFDSCxDQUFDO29CQUNILENBQUM7b0JBQ0QsSUFBSSxHQUFHLEVBQUUsQ0FBQzt3QkFDUixHQUFHLElBQUksRUFBRSxDQUFDO3dCQUNWLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUNyQyxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBTyxFQUFFLFNBQTJCO1FBQzlDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksRUFBRSxDQUFDO1FBQ1AsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDOUQsS0FBSyxNQUFNLE1BQU0sSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMxRCxxQkFBcUI7WUFDckIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRSxDQUFDO2dCQUM3RCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDekQsTUFBTSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUNuQixLQUFLLE1BQU0sUUFBUSxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDMUMsSUFBSSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDN0IsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7d0JBQ3ZDLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN4QyxDQUFDO29CQUNELElBQUksVUFBVSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO3dCQUN2RCxFQUFFLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQzt3QkFDbEMsSUFBSSxHQUFHLElBQUksQ0FBQzt3QkFDWixNQUFNO29CQUNSLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNQLE9BQU8sQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FDbkMsQ0FBQztZQUNGLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQzdDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ25CLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELFNBQVMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUN6RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzdDLENBQUM7YUFBTSxDQUFDO1lBQ04sMENBQTBDO1lBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDL0MsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN4QixTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDN0QsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO2dCQUN4RSxJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDM0IsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztvQkFDekMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQzlELENBQUM7cUJBQU0sQ0FBQztvQkFDTixTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDdEMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUNoQyxPQUFPLEVBQ1AsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQ3BCLElBQUksQ0FDTCxDQUFDO2dCQUNKLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxpQkFBaUIsQ0FDZixTQUFrQixFQUNsQixXQUFvQixFQUNwQixXQUFvQjtRQUVwQixNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBQztZQUNsQyxZQUFZLEVBQUUsU0FBUztZQUN2QixrQkFBa0IsRUFBRSxJQUFJLENBQUMsb0JBQW9CO1lBQzdDLGlCQUFpQixFQUFFLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEMsZ0JBQWdCLEVBQUUsc0JBQXNCLENBQ3RDLFNBQVMsRUFDVCxXQUFXLEVBQ1gsV0FBVyxDQUNaO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7T0FHRztJQUNILG9CQUFvQixDQUNsQixZQUFrQixFQUNsQixPQUFPLEVBQ1AsU0FBMkI7UUFFM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsU0FBMkI7UUFDNUQsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxxQkFBcUI7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDL0IsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNLLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxTQUEyQjtRQUM5RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FDOUMsQ0FBQyxVQUFzQixFQUFFLEVBQUU7WUFDekIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGlCQUFpQixDQUN2QixPQUFPLEVBQ1AsU0FBMkIsRUFDM0IsVUFBdUI7UUFFdkIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekQsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUVoQyxnRUFBZ0U7UUFDaEUsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDeEUsUUFBUSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFO2dCQUN6RCxpQkFBaUIsRUFBRSxVQUFVO2dCQUM3QixjQUFjLEVBQUUsV0FBVzthQUM1QixDQUFRLENBQUM7WUFFVixPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUM5QixDQUFDO2FBQU0sQ0FBQztZQUNOLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUVELE9BQU8sQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO1FBRWpDLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFN0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXZDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjO1FBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsdUJBQXVCLENBQ3JCLFNBQWdDLEVBQ2hDLE9BQU8sRUFDUCxTQUEyQjtRQUUzQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsTUFBTSxZQUFZLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxRQUFRLENBQUM7WUFDekIsUUFBUSxFQUFFLFlBQVk7U0FDdkIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDL0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNwQyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQy9ELElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDekQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbmltcG9ydCB7IEVudGl0eVJlY29yZCwgV29ya3NwYWNlLCBXb3Jrc3BhY2VPcHRpb25zIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IENvbGxlY3Rpb24gZnJvbSAnb2wvQ29sbGVjdGlvbic7XHJcbmltcG9ydCBPbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XHJcbmltcG9ydCBPbEdlb0pTT04gZnJvbSAnb2wvZm9ybWF0L0dlb0pTT04nO1xyXG5pbXBvcnQgdHlwZSB7IFR5cGUgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcclxuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcclxuaW1wb3J0IE9sTW9kaWZ5IGZyb20gJ29sL2ludGVyYWN0aW9uL01vZGlmeSc7XHJcbmltcG9ydCBPbFZlY3RvclNvdXJjZSBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJztcclxuaW1wb3J0ICogYXMgT2xTdHlsZSBmcm9tICdvbC9zdHlsZSc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgRmVhdHVyZURhdGFTb3VyY2UsIFJlbGF0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkJztcclxuaW1wb3J0IHsgR2VvbWV0cnlUeXBlLCBjcmVhdGVJbnRlcmFjdGlvblN0eWxlIH0gZnJvbSAnLi4vLi4vZHJhdy9zaGFyZWQnO1xyXG5pbXBvcnQgeyBmZWF0dXJlVG9PbCB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkJztcclxuaW1wb3J0IHsgRHJhd0NvbnRyb2wgfSBmcm9tICcuLi8uLi9nZW9tZXRyeS9zaGFyZWQnO1xyXG5pbXBvcnQgeyBJbWFnZUxheWVyLCBWZWN0b3JMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZCc7XHJcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uUG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi9jb25maXJtYXRpb24tcG9wdXAvY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRpb25Xb3Jrc3BhY2VPcHRpb25zIGV4dGVuZHMgV29ya3NwYWNlT3B0aW9ucyB7XHJcbiAgbGF5ZXI6IEltYWdlTGF5ZXIgfCBWZWN0b3JMYXllcjtcclxuICBtYXA6IElnb01hcDtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVkaXRpb25Xb3Jrc3BhY2UgZXh0ZW5kcyBXb3Jrc3BhY2Uge1xyXG4gIHJlYWRvbmx5IGluUmVzb2x1dGlvblJhbmdlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChcclxuICAgIHRydWVcclxuICApO1xyXG5cclxuICBnZXQgbGF5ZXIoKTogSW1hZ2VMYXllciB8IFZlY3RvckxheWVyIHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubGF5ZXI7XHJcbiAgfVxyXG5cclxuICBnZXQgbWFwKCk6IElnb01hcCB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLm1hcDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZHJhd0NvbnRyb2w6IERyYXdDb250cm9sO1xyXG4gIHByaXZhdGUgZHJhd0VuZCQkOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBvbERyYXdpbmdMYXllclNvdXJjZSA9IG5ldyBPbFZlY3RvclNvdXJjZSgpO1xyXG4gIHByaXZhdGUgb2xEcmF3aW5nTGF5ZXI6IFZlY3RvckxheWVyO1xyXG4gIHB1YmxpYyBnZW9tZXRyeVR5cGUgPSBHZW9tZXRyeVR5cGU7IC8vIFJlZmVyZW5jZSB0byB0aGUgR2VvbWV0cnlUeXBlIGVudW1cclxuICBwdWJsaWMgbW9kaWZ5OyAvLyBSZWZlcmVuY2UgdG8gdGhlIG9sIGludGVyYWN0aW9uXHJcblxyXG4gIHB1YmxpYyBtb2RpZnlTdHlsZSA9IG5ldyBPbFN0eWxlLlN0eWxlKHtcclxuICAgIHN0cm9rZTogbmV3IE9sU3R5bGUuU3Ryb2tlKHtcclxuICAgICAgY29sb3I6ICdyZ2JhKDI1NSwyNTUsMjU1LDEpJyxcclxuICAgICAgd2lkdGg6IDFcclxuICAgIH0pLFxyXG4gICAgZmlsbDogbmV3IE9sU3R5bGUuRmlsbCh7XHJcbiAgICAgIGNvbG9yOiAncmdiYSgwLDE2MSwyMjIsMSknXHJcbiAgICB9KSxcclxuICAgIGltYWdlOiBuZXcgT2xTdHlsZS5DaXJjbGUoe1xyXG4gICAgICByYWRpdXM6IDcsXHJcbiAgICAgIHN0cm9rZTogbmV3IE9sU3R5bGUuU3Ryb2tlKHtcclxuICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMSknLFxyXG4gICAgICAgIHdpZHRoOiAxXHJcbiAgICAgIH0pLFxyXG4gICAgICBmaWxsOiBuZXcgT2xTdHlsZS5GaWxsKHtcclxuICAgICAgICBjb2xvcjogJ3JnYmEoMCwxNjEsMjIyLDEpJ1xyXG4gICAgICB9KVxyXG4gICAgfSlcclxuICB9KTtcclxuXHJcbiAgcHJpdmF0ZSBuZXdGZWF0dXJlZmlsdGVyQ2xhdXNlRnVuYyA9IChyZWNvcmQ6IEVudGl0eVJlY29yZDxvYmplY3Q+KSA9PiB7XHJcbiAgICByZXR1cm4gcmVjb3JkLnN0YXRlLm5ld0ZlYXR1cmUgPT09IHRydWU7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBlZGl0RmVhdHVyZWZpbHRlckNsYXVzZUZ1bmMgPSAocmVjb3JkOiBFbnRpdHlSZWNvcmQ8b2JqZWN0PikgPT4ge1xyXG4gICAgcmV0dXJuIHJlY29yZC5zdGF0ZS5lZGl0ID09PSB0cnVlO1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBmaWxsQ29sb3I6IHN0cmluZztcclxuICBwdWJsaWMgc3Ryb2tlQ29sb3I6IHN0cmluZztcclxuICBwdWJsaWMgc3Ryb2tlV2lkdGg6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhZGRpbmckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4sXHJcbiAgICBwcml2YXRlIGdldERvbWFpblZhbHVlczogKHJlbGF0aW9uOiBSZWxhdGlvbk9wdGlvbnMpID0+IE9ic2VydmFibGU8YW55PixcclxuICAgIHByb3RlY3RlZCBvcHRpb25zOiBFZGl0aW9uV29ya3NwYWNlT3B0aW9uc1xyXG4gICkge1xyXG4gICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5yZXNvbHV0aW9uJC5zdWJzY3JpYmUoKG1hcFJlc29sdXRpb24pID0+IHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIG1hcFJlc29sdXRpb24gPiB0aGlzLmxheWVyLm1pblJlc29sdXRpb24gJiZcclxuICAgICAgICBtYXBSZXNvbHV0aW9uIDwgdGhpcy5sYXllci5tYXhSZXNvbHV0aW9uXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuaW5SZXNvbHV0aW9uUmFuZ2UkLm5leHQodHJ1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pblJlc29sdXRpb25SYW5nZSQubmV4dChmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZHJhd0NvbnRyb2wgPSB0aGlzLmNyZWF0ZURyYXdDb250cm9sKCk7XHJcbiAgICB0aGlzLmRyYXdDb250cm9sLnNldEdlb21ldHJ5VHlwZSh0aGlzLmdlb21ldHJ5VHlwZS5Qb2ludCBhcyBhbnkpO1xyXG5cclxuICAgIHRoaXMubWFwLnJlbW92ZUxheWVyKHRoaXMub2xEcmF3aW5nTGF5ZXIpO1xyXG5cclxuICAgIHRoaXMub2xEcmF3aW5nTGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoe1xyXG4gICAgICBpZDogJ2lnby1kcmF3LWxheWVyJyxcclxuICAgICAgdGl0bGU6ICdlZGl0aW9uJyxcclxuICAgICAgekluZGV4OiAzMDAsXHJcbiAgICAgIHNvdXJjZTogbmV3IEZlYXR1cmVEYXRhU291cmNlKCksXHJcbiAgICAgIHNob3dJbkxheWVyTGlzdDogZmFsc2UsXHJcbiAgICAgIGV4cG9ydGFibGU6IGZhbHNlLFxyXG4gICAgICBicm93c2FibGU6IGZhbHNlLFxyXG4gICAgICB3b3Jrc3BhY2U6IHtcclxuICAgICAgICBlbmFibGVkOiBmYWxzZVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUZlYXR1cmUoZmVhdHVyZSwgd29ya3NwYWNlKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihDb25maXJtYXRpb25Qb3B1cENvbXBvbmVudCwge1xyXG4gICAgICAgIGRpc2FibGVDbG9zZTogZmFsc2UsXHJcbiAgICAgICAgZGF0YTogeyB0eXBlOiAnZGVsZXRlJyB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0ID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgbGV0IGlkLCB1cmw7XHJcbiAgICAgICAgICBjb25zdCBiYXNlVXJsID0gd29ya3NwYWNlLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy5lZGl0aW9uLmJhc2VVcmw7XHJcbiAgICAgICAgICBjb25zdCBkZWxldGVVcmwgPVxyXG4gICAgICAgICAgICB3b3Jrc3BhY2UubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLmVkaXRpb24uZGVsZXRlVXJsO1xyXG4gICAgICAgICAgaWYgKGJhc2VVcmwubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHVybCA9IHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoJ2VkaXRpb24udXJsJylcclxuICAgICAgICAgICAgICA/IHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoJ2VkaXRpb24udXJsJykgK1xyXG4gICAgICAgICAgICAgICAgYmFzZVVybCArXHJcbiAgICAgICAgICAgICAgICAnPycgK1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlVXJsXHJcbiAgICAgICAgICAgICAgOiBiYXNlVXJsICsgJz8nICsgZGVsZXRlVXJsO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdXJsID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZygnZWRpdGlvbi51cmwnKVxyXG4gICAgICAgICAgICAgID8gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZygnZWRpdGlvbi51cmwnKSArIGRlbGV0ZVVybFxyXG4gICAgICAgICAgICAgIDogZGVsZXRlVXJsO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGZvciAoY29uc3QgY29sdW1uIG9mIHdvcmtzcGFjZS5tZXRhLnRhYmxlVGVtcGxhdGUuY29sdW1ucykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGZlYXR1cmUucHJvcGVydGllcykge1xyXG4gICAgICAgICAgICAgIGxldCBjb2x1bW5OYW1lID0gY29sdW1uLm5hbWU7XHJcbiAgICAgICAgICAgICAgaWYgKGNvbHVtbk5hbWUuaW5jbHVkZXMoJ3Byb3BlcnRpZXMuJykpIHtcclxuICAgICAgICAgICAgICAgIGNvbHVtbk5hbWUgPSBjb2x1bW5OYW1lLnNwbGl0KCcuJylbMV07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5OYW1lID09PSBwcm9wZXJ0eSAmJiBjb2x1bW4ucHJpbWFyeSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgaWQgPSBmZWF0dXJlLnByb3BlcnRpZXNbcHJvcGVydHldO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHVybCkge1xyXG4gICAgICAgICAgICB1cmwgKz0gaWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlRmVhdHVyZSh3b3Jrc3BhY2UsIHVybCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0sIDI1MCk7XHJcbiAgfVxyXG5cclxuICBlZGl0RmVhdHVyZShmZWF0dXJlLCB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2UpIHtcclxuICAgIGZlYXR1cmUuZWRpdGlvbiA9IHRydWU7XHJcbiAgICBsZXQgaWQ7XHJcbiAgICBsZXQgZmluZCA9IGZhbHNlO1xyXG4gICAgY29uc3QgZWRpdGlvbk9wdCA9IHdvcmtzcGFjZS5sYXllci5kYXRhU291cmNlLm9wdGlvbnMuZWRpdGlvbjtcclxuICAgIGZvciAoY29uc3QgY29sdW1uIG9mIHdvcmtzcGFjZS5tZXRhLnRhYmxlVGVtcGxhdGUuY29sdW1ucykge1xyXG4gICAgICAvLyBVcGRhdGUgZG9tYWluIGxpc3RcclxuICAgICAgaWYgKGNvbHVtbi50eXBlID09PSAnbGlzdCcgfHwgY29sdW1uLnR5cGUgPT09ICdhdXRvY29tcGxldGUnKSB7XHJcbiAgICAgICAgdGhpcy5nZXREb21haW5WYWx1ZXMoY29sdW1uLnJlbGF0aW9uKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgY29sdW1uLmRvbWFpblZhbHVlcyA9IHJlc3VsdDtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZmluZCA9PT0gZmFsc2UpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGZlYXR1cmUucHJvcGVydGllcykge1xyXG4gICAgICAgICAgbGV0IGNvbHVtbk5hbWUgPSBjb2x1bW4ubmFtZTtcclxuICAgICAgICAgIGlmIChjb2x1bW5OYW1lLmluY2x1ZGVzKCdwcm9wZXJ0aWVzLicpKSB7XHJcbiAgICAgICAgICAgIGNvbHVtbk5hbWUgPSBjb2x1bW5OYW1lLnNwbGl0KCcuJylbMV07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoY29sdW1uTmFtZSA9PT0gcHJvcGVydHkgJiYgY29sdW1uLnByaW1hcnkgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgaWQgPSBmZWF0dXJlLnByb3BlcnRpZXNbcHJvcGVydHldO1xyXG4gICAgICAgICAgICBmaW5kID0gdHJ1ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoaWQpIHtcclxuICAgICAgZmVhdHVyZS5vcmlnaW5hbF9wcm9wZXJ0aWVzID0gSlNPTi5wYXJzZShcclxuICAgICAgICBKU09OLnN0cmluZ2lmeShmZWF0dXJlLnByb3BlcnRpZXMpXHJcbiAgICAgICk7XHJcbiAgICAgIGZlYXR1cmUub3JpZ2luYWxfZ2VvbWV0cnkgPSBmZWF0dXJlLmdlb21ldHJ5O1xyXG4gICAgICBmZWF0dXJlLmlka2V5ID0gaWQ7XHJcbiAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5zdGF0ZS51cGRhdGVBbGwoeyBlZGl0OiBmYWxzZSB9KTtcclxuICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlVmlldy5maWx0ZXIodGhpcy5lZGl0RmVhdHVyZWZpbHRlckNsYXVzZUZ1bmMpO1xyXG4gICAgICB0aGlzLmFkZEZlYXR1cmVUb1N0b3JlKGZlYXR1cmUsIHdvcmtzcGFjZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBPbmx5IGZvciBlZGl0aW9uIHdpdGggaXQncyBvd24gZ2VvbWV0cnlcclxuICAgICAgaWYgKCFmZWF0dXJlLm5ld0ZlYXR1cmUgJiYgZWRpdGlvbk9wdC5nZW9tVHlwZSkge1xyXG4gICAgICAgIGZlYXR1cmUubmV3RmVhdHVyZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5hZGRpbmckLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlLnVwZGF0ZUFsbCh7IG5ld0ZlYXR1cmU6IGZhbHNlIH0pO1xyXG4gICAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5zdGF0ZVZpZXcuZmlsdGVyKHRoaXMubmV3RmVhdHVyZWZpbHRlckNsYXVzZUZ1bmMpO1xyXG4gICAgICAgIGlmIChlZGl0aW9uT3B0LmFkZFdpdGhEcmF3KSB7XHJcbiAgICAgICAgICBjb25zdCBnZW9tZXRyeVR5cGUgPSBlZGl0aW9uT3B0Lmdlb21UeXBlO1xyXG4gICAgICAgICAgdGhpcy5vbkdlb21ldHJ5VHlwZUNoYW5nZShnZW9tZXRyeVR5cGUsIGZlYXR1cmUsIHdvcmtzcGFjZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5pbnNlcnQoZmVhdHVyZSk7XHJcbiAgICAgICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuc3RhdGUudXBkYXRlKFxyXG4gICAgICAgICAgICBmZWF0dXJlLFxyXG4gICAgICAgICAgICB7IG5ld0ZlYXR1cmU6IHRydWUgfSxcclxuICAgICAgICAgICAgdHJ1ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhIERyYXcgQ29udHJvbFxyXG4gICAqIEBwYXJhbSBmaWxsQ29sb3IgdGhlIGZpbGwgY29sb3JcclxuICAgKiBAcGFyYW0gc3Ryb2tlQ29sb3IgdGhlIHN0cm9rZSBjb2xvclxyXG4gICAqIEBwYXJhbSBzdHJva2VXaWR0aCB0aGUgc3Ryb2tlIHdpZHRoXHJcbiAgICogQHJldHVybnMgYSBEcmF3IENvbnRyb2xcclxuICAgKi9cclxuICBjcmVhdGVEcmF3Q29udHJvbChcclxuICAgIGZpbGxDb2xvcj86IHN0cmluZyxcclxuICAgIHN0cm9rZUNvbG9yPzogc3RyaW5nLFxyXG4gICAgc3Ryb2tlV2lkdGg/OiBudW1iZXJcclxuICApIHtcclxuICAgIGNvbnN0IGRyYXdDb250cm9sID0gbmV3IERyYXdDb250cm9sKHtcclxuICAgICAgZ2VvbWV0cnlUeXBlOiB1bmRlZmluZWQsXHJcbiAgICAgIGRyYXdpbmdMYXllclNvdXJjZTogdGhpcy5vbERyYXdpbmdMYXllclNvdXJjZSxcclxuICAgICAgZHJhd2luZ0xheWVyU3R5bGU6IG5ldyBPbFN0eWxlLlN0eWxlKHt9KSxcclxuICAgICAgaW50ZXJhY3Rpb25TdHlsZTogY3JlYXRlSW50ZXJhY3Rpb25TdHlsZShcclxuICAgICAgICBmaWxsQ29sb3IsXHJcbiAgICAgICAgc3Ryb2tlQ29sb3IsXHJcbiAgICAgICAgc3Ryb2tlV2lkdGhcclxuICAgICAgKVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGRyYXdDb250cm9sO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhIG5ldyBnZW9tZXRyeSB0eXBlXHJcbiAgICogQHBhcmFtIGdlb21ldHJ5VHlwZSB0aGUgZ2VvbWV0cnkgdHlwZSBzZWxlY3RlZCBieSB0aGUgdXNlclxyXG4gICAqL1xyXG4gIG9uR2VvbWV0cnlUeXBlQ2hhbmdlKFxyXG4gICAgZ2VvbWV0cnlUeXBlOiBUeXBlLFxyXG4gICAgZmVhdHVyZSxcclxuICAgIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZVxyXG4gICkge1xyXG4gICAgdGhpcy5kcmF3Q29udHJvbC5zZXRHZW9tZXRyeVR5cGUoZ2VvbWV0cnlUeXBlKTtcclxuICAgIHRoaXMudG9nZ2xlRHJhd0NvbnRyb2woZmVhdHVyZSwgd29ya3NwYWNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFjdGl2YXRlIHRoZSBjb3JyZWN0IGNvbnRyb2xcclxuICAgKi9cclxuICBwcml2YXRlIHRvZ2dsZURyYXdDb250cm9sKGZlYXR1cmUsIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZSkge1xyXG4gICAgdGhpcy5kZWFjdGl2YXRlRHJhd0NvbnRyb2woKTtcclxuICAgIHRoaXMuYWN0aXZhdGVEcmF3Q29udHJvbChmZWF0dXJlLCB3b3Jrc3BhY2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVhY3RpdmF0ZSB0aGUgYWN0aXZlIGRyYXcgY29udHJvbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBkZWFjdGl2YXRlRHJhd0NvbnRyb2woKSB7XHJcbiAgICBpZiAoIXRoaXMuZHJhd0NvbnRyb2wpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmRyYXdFbmQkJCkge1xyXG4gICAgICB0aGlzLmRyYXdFbmQkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZHJhd0NvbnRyb2wuc2V0T2xNYXAodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFjdGl2YXRlIGEgZ2l2ZW4gY29udHJvbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYWN0aXZhdGVEcmF3Q29udHJvbChmZWF0dXJlLCB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2UpIHtcclxuICAgIHRoaXMuZHJhd0VuZCQkID0gdGhpcy5kcmF3Q29udHJvbC5lbmQkLnN1YnNjcmliZShcclxuICAgICAgKG9sR2VvbWV0cnk6IE9sR2VvbWV0cnkpID0+IHtcclxuICAgICAgICB0aGlzLmFkZEZlYXR1cmVUb1N0b3JlKGZlYXR1cmUsIHdvcmtzcGFjZSwgb2xHZW9tZXRyeSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5kcmF3Q29udHJvbC5zZXRPbE1hcCh0aGlzLm1hcC5vbCwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSBmZWF0dXJlIHRvIGxheWVyLiBUaGUgbG9hZGluZyBzdHJhdGVneSBvZiB0aGUgbGF5ZXJcclxuICAgKiB3aWxsIHRyaWdnZXIgYW5kIGFkZCB0aGUgZmVhdHVyZSB0byB0aGUgd29ya3NwYWNlIHN0b3JlLlxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYWRkRmVhdHVyZVRvU3RvcmUoXHJcbiAgICBmZWF0dXJlLFxyXG4gICAgd29ya3NwYWNlOiBFZGl0aW9uV29ya3NwYWNlLFxyXG4gICAgb2xHZW9tZXRyeT86IE9sR2VvbWV0cnlcclxuICApIHtcclxuICAgIGNvbnN0IHByb2plY3Rpb24gPSB0aGlzLm1hcC5vbC5nZXRWaWV3KCkuZ2V0UHJvamVjdGlvbigpO1xyXG4gICAgbGV0IGdlb21ldHJ5ID0gZmVhdHVyZS5nZW9tZXRyeTtcclxuXHJcbiAgICAvLyBJZiBhbiBvbEdlb21ldHJ5IGlzIHBhc3NlZCwgaXQgbWVhbnMgdGhhdCBpdCBpcyBhIG5ldyBmZWF0dXJlXHJcbiAgICBpZiAob2xHZW9tZXRyeSkge1xyXG4gICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuaW5zZXJ0KGZlYXR1cmUpO1xyXG4gICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuc3RhdGUudXBkYXRlKGZlYXR1cmUsIHsgbmV3RmVhdHVyZTogdHJ1ZSB9LCB0cnVlKTtcclxuICAgICAgZ2VvbWV0cnkgPSBuZXcgT2xHZW9KU09OKCkud3JpdGVHZW9tZXRyeU9iamVjdChvbEdlb21ldHJ5LCB7XHJcbiAgICAgICAgZmVhdHVyZVByb2plY3Rpb246IHByb2plY3Rpb24sXHJcbiAgICAgICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnXHJcbiAgICAgIH0pIGFzIGFueTtcclxuXHJcbiAgICAgIGZlYXR1cmUuZ2VvbWV0cnkgPSBnZW9tZXRyeTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5zdGF0ZS51cGRhdGUoZmVhdHVyZSwgeyBlZGl0OiB0cnVlIH0sIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGZlYXR1cmUucHJvamVjdGlvbiA9ICdFUFNHOjQzMjYnO1xyXG5cclxuICAgIGNvbnN0IGZlYXR1cmVPbCA9IGZlYXR1cmVUb09sKGZlYXR1cmUsIHByb2plY3Rpb24uZ2V0Q29kZSgpKTtcclxuXHJcbiAgICB0aGlzLm9sRHJhd2luZ0xheWVyLmRhdGFTb3VyY2Uub2wuY2xlYXIoKTtcclxuICAgIHRoaXMub2xEcmF3aW5nTGF5ZXIuZGF0YVNvdXJjZS5vbC5hZGRGZWF0dXJlKGZlYXR1cmVPbCk7XHJcbiAgICB0aGlzLm1hcC5hZGRMYXllcih0aGlzLm9sRHJhd2luZ0xheWVyKTtcclxuXHJcbiAgICB0aGlzLmRlYWN0aXZhdGVEcmF3Q29udHJvbCgpO1xyXG4gICAgdGhpcy5jcmVhdGVNb2RpZnlJbnRlcmFjdGlvbihmZWF0dXJlT2wsIGZlYXR1cmUsIHdvcmtzcGFjZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGUgZHJhd2luZ3MgbGF5ZXIgYW5kIHNvdXJjZSBmcm9tIHRoZSBtYXAgQU5EIGZlYXR1cmUgZnJvbSB0aGUgZW50aXR5IHN0b3JlLlxyXG4gICAqIExheWVyIHJlZnJlc2ggd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCB0aGUgbmV3IGZlYXR1cmUgaW50byB0aGUgc3RvcmUuXHJcbiAgICovXHJcbiAgZGVsZXRlRHJhd2luZ3MoKSB7XHJcbiAgICB0aGlzLm1hcC5yZW1vdmVMYXllcih0aGlzLm9sRHJhd2luZ0xheWVyKTtcclxuICAgIHRoaXMub2xEcmF3aW5nTGF5ZXJTb3VyY2UuY2xlYXIoKTtcclxuICAgIHRoaXMubWFwLm9sLnJlbW92ZUludGVyYWN0aW9uKHRoaXMubW9kaWZ5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhIG1vZGlmeSBpbnRlcmFjdGlvbiB0byBhbGxvdyBhIGdlb21ldHJ5IGNoYW5nZSBvbmUgZmVhdHVyZSBhdCB0aGUgdGltZSAoZHJhZyBhbmQgZHJvcClcclxuICAgKi9cclxuICBjcmVhdGVNb2RpZnlJbnRlcmFjdGlvbihcclxuICAgIG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+LFxyXG4gICAgZmVhdHVyZSxcclxuICAgIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZVxyXG4gICkge1xyXG4gICAgdGhpcy5tYXAub2wucmVtb3ZlSW50ZXJhY3Rpb24odGhpcy5tb2RpZnkpO1xyXG4gICAgY29uc3Qgb2xDb2xsZWN0aW9uID0gbmV3IENvbGxlY3Rpb24oW29sRmVhdHVyZV0sIHsgdW5pcXVlOiB0cnVlIH0pO1xyXG4gICAgdGhpcy5tb2RpZnkgPSBuZXcgT2xNb2RpZnkoe1xyXG4gICAgICBmZWF0dXJlczogb2xDb2xsZWN0aW9uXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLm1hcC5vbC5hZGRJbnRlcmFjdGlvbih0aGlzLm1vZGlmeSk7XHJcbiAgICBvbENvbGxlY3Rpb24uZm9yRWFjaCgoZmVhdHVyZSkgPT4ge1xyXG4gICAgICBmZWF0dXJlLnNldFN0eWxlKHRoaXMubW9kaWZ5U3R5bGUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5tb2RpZnkub24oJ21vZGlmeWVuZCcsIChldmVudCkgPT4ge1xyXG4gICAgICBjb25zdCBvbEdlb21ldHJ5ID0gZXZlbnQuZmVhdHVyZXMuZ2V0QXJyYXkoKVswXT8uZ2V0R2VvbWV0cnkoKTtcclxuICAgICAgaWYgKG9sR2VvbWV0cnkpIHtcclxuICAgICAgICB0aGlzLmFkZEZlYXR1cmVUb1N0b3JlKGZlYXR1cmUsIHdvcmtzcGFjZSwgb2xHZW9tZXRyeSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
299
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGlvbi13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi93b3Jrc3BhY2Uvc2hhcmVkL2VkaXRpb24td29ya3NwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBZ0IsU0FBUyxFQUFvQixNQUFNLGNBQWMsQ0FBQztBQUd6RSxPQUFPLFVBQVUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxTQUFTLE1BQU0sbUJBQW1CLENBQUM7QUFHMUMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxVQUFVLENBQUM7QUFFcEMsT0FBTyxFQUFFLGVBQWUsRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFFakUsT0FBTyxFQUFFLGlCQUFpQixFQUFtQixNQUFNLHlCQUF5QixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQU9oRyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsU0FBUztJQXFEbkM7SUFDQTtJQUNBO0lBQ0E7SUFDRTtJQXhESCxrQkFBa0IsR0FBNkIsSUFBSSxlQUFlLENBQ3pFLElBQUksQ0FDTCxDQUFDO0lBRUYsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJ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TUFBTSxDQUFDLENBQUM7UUFDM0MsTUFBTSxZQUFZLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxRQUFRLENBQUM7WUFDekIsUUFBUSxFQUFFLFlBQVk7U0FDdkIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDL0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNwQyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQy9ELElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDekQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbmltcG9ydCB7IEVudGl0eVJlY29yZCwgV29ya3NwYWNlLCBXb3Jrc3BhY2VPcHRpb25zIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvY29uZmlnJztcclxuXHJcbmltcG9ydCBDb2xsZWN0aW9uIGZyb20gJ29sL0NvbGxlY3Rpb24nO1xyXG5pbXBvcnQgT2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xyXG5pbXBvcnQgT2xHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJztcclxuaW1wb3J0IHR5cGUgeyBUeXBlIH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XHJcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XHJcbmltcG9ydCBPbE1vZGlmeSBmcm9tICdvbC9pbnRlcmFjdGlvbi9Nb2RpZnknO1xyXG5pbXBvcnQgT2xWZWN0b3JTb3VyY2UgZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XHJcbmltcG9ydCAqIGFzIE9sU3R5bGUgZnJvbSAnb2wvc3R5bGUnO1xyXG5cclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlLCBSZWxhdGlvbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZCc7XHJcbmltcG9ydCB7IEdlb21ldHJ5VHlwZSwgY3JlYXRlSW50ZXJhY3Rpb25TdHlsZSB9IGZyb20gJy4uLy4uL2RyYXcvc2hhcmVkJztcclxuaW1wb3J0IHsgZmVhdHVyZVRvT2wgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZCc7XHJcbmltcG9ydCB7IERyYXdDb250cm9sIH0gZnJvbSAnLi4vLi4vZ2VvbWV0cnkvc2hhcmVkJztcclxuaW1wb3J0IHsgSW1hZ2VMYXllciwgVmVjdG9yTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQnO1xyXG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcCc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvblBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vY29uZmlybWF0aW9uLXBvcHVwL2NvbmZpcm1hdGlvbi1wb3B1cC5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFZGl0aW9uV29ya3NwYWNlT3B0aW9ucyBleHRlbmRzIFdvcmtzcGFjZU9wdGlvbnMge1xyXG4gIGxheWVyOiBJbWFnZUxheWVyIHwgVmVjdG9yTGF5ZXI7XHJcbiAgbWFwOiBJZ29NYXA7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFZGl0aW9uV29ya3NwYWNlIGV4dGVuZHMgV29ya3NwYWNlIHtcclxuICByZWFkb25seSBpblJlc29sdXRpb25SYW5nZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXHJcbiAgICB0cnVlXHJcbiAgKTtcclxuXHJcbiAgZ2V0IGxheWVyKCk6IEltYWdlTGF5ZXIgfCBWZWN0b3JMYXllciB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmxheWVyO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1hcCgpOiBJZ29NYXAge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5tYXA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRyYXdDb250cm9sOiBEcmF3Q29udHJvbDtcclxuICBwcml2YXRlIGRyYXdFbmQkJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgb2xEcmF3aW5nTGF5ZXJTb3VyY2UgPSBuZXcgT2xWZWN0b3JTb3VyY2UoKTtcclxuICBwcml2YXRlIG9sRHJhd2luZ0xheWVyOiBWZWN0b3JMYXllcjtcclxuICBwdWJsaWMgZ2VvbWV0cnlUeXBlID0gR2VvbWV0cnlUeXBlOyAvLyBSZWZlcmVuY2UgdG8gdGhlIEdlb21ldHJ5VHlwZSBlbnVtXHJcbiAgcHVibGljIG1vZGlmeTsgLy8gUmVmZXJlbmNlIHRvIHRoZSBvbCBpbnRlcmFjdGlvblxyXG5cclxuICBwdWJsaWMgbW9kaWZ5U3R5bGUgPSBuZXcgT2xTdHlsZS5TdHlsZSh7XHJcbiAgICBzdHJva2U6IG5ldyBPbFN0eWxlLlN0cm9rZSh7XHJcbiAgICAgIGNvbG9yOiAncmdiYSgyNTUsMjU1LDI1NSwxKScsXHJcbiAgICAgIHdpZHRoOiAxXHJcbiAgICB9KSxcclxuICAgIGZpbGw6IG5ldyBPbFN0eWxlLkZpbGwoe1xyXG4gICAgICBjb2xvcjogJ3JnYmEoMCwxNjEsMjIyLDEpJ1xyXG4gICAgfSksXHJcbiAgICBpbWFnZTogbmV3IE9sU3R5bGUuQ2lyY2xlKHtcclxuICAgICAgcmFkaXVzOiA3LFxyXG4gICAgICBzdHJva2U6IG5ldyBPbFN0eWxlLlN0cm9rZSh7XHJcbiAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwyNTUsMjU1LDEpJyxcclxuICAgICAgICB3aWR0aDogMVxyXG4gICAgICB9KSxcclxuICAgICAgZmlsbDogbmV3IE9sU3R5bGUuRmlsbCh7XHJcbiAgICAgICAgY29sb3I6ICdyZ2JhKDAsMTYxLDIyMiwxKSdcclxuICAgICAgfSlcclxuICAgIH0pXHJcbiAgfSk7XHJcblxyXG4gIHByaXZhdGUgbmV3RmVhdHVyZWZpbHRlckNsYXVzZUZ1bmMgPSAocmVjb3JkOiBFbnRpdHlSZWNvcmQ8b2JqZWN0PikgPT4ge1xyXG4gICAgcmV0dXJuIHJlY29yZC5zdGF0ZS5uZXdGZWF0dXJlID09PSB0cnVlO1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgZWRpdEZlYXR1cmVmaWx0ZXJDbGF1c2VGdW5jID0gKHJlY29yZDogRW50aXR5UmVjb3JkPG9iamVjdD4pID0+IHtcclxuICAgIHJldHVybiByZWNvcmQuc3RhdGUuZWRpdCA9PT0gdHJ1ZTtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgZmlsbENvbG9yOiBzdHJpbmc7XHJcbiAgcHVibGljIHN0cm9rZUNvbG9yOiBzdHJpbmc7XHJcbiAgcHVibGljIHN0cm9rZVdpZHRoOiBudW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgYWRkaW5nJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+LFxyXG4gICAgcHJpdmF0ZSBnZXREb21haW5WYWx1ZXM6IChyZWxhdGlvbjogUmVsYXRpb25PcHRpb25zKSA9PiBPYnNlcnZhYmxlPGFueT4sXHJcbiAgICBwcm90ZWN0ZWQgb3B0aW9uczogRWRpdGlvbldvcmtzcGFjZU9wdGlvbnNcclxuICApIHtcclxuICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIucmVzb2x1dGlvbiQuc3Vic2NyaWJlKChtYXBSZXNvbHV0aW9uKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBtYXBSZXNvbHV0aW9uID4gdGhpcy5sYXllci5taW5SZXNvbHV0aW9uICYmXHJcbiAgICAgICAgbWFwUmVzb2x1dGlvbiA8IHRoaXMubGF5ZXIubWF4UmVzb2x1dGlvblxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmluUmVzb2x1dGlvblJhbmdlJC5uZXh0KHRydWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaW5SZXNvbHV0aW9uUmFuZ2UkLm5leHQoZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmRyYXdDb250cm9sID0gdGhpcy5jcmVhdGVEcmF3Q29udHJvbCgpO1xyXG4gICAgdGhpcy5kcmF3Q29udHJvbC5zZXRHZW9tZXRyeVR5cGUodGhpcy5nZW9tZXRyeVR5cGUuUG9pbnQgYXMgYW55KTtcclxuXHJcbiAgICB0aGlzLm1hcC5yZW1vdmVMYXllcih0aGlzLm9sRHJhd2luZ0xheWVyKTtcclxuXHJcbiAgICB0aGlzLm9sRHJhd2luZ0xheWVyID0gbmV3IFZlY3RvckxheWVyKHtcclxuICAgICAgaWQ6ICdpZ28tZHJhdy1sYXllcicsXHJcbiAgICAgIHRpdGxlOiAnZWRpdGlvbicsXHJcbiAgICAgIHpJbmRleDogMzAwLFxyXG4gICAgICBzb3VyY2U6IG5ldyBGZWF0dXJlRGF0YVNvdXJjZSgpLFxyXG4gICAgICBzaG93SW5MYXllckxpc3Q6IGZhbHNlLFxyXG4gICAgICBleHBvcnRhYmxlOiBmYWxzZSxcclxuICAgICAgYnJvd3NhYmxlOiBmYWxzZSxcclxuICAgICAgd29ya3NwYWNlOiB7XHJcbiAgICAgICAgZW5hYmxlZDogZmFsc2VcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGZWF0dXJlKGZlYXR1cmUsIHdvcmtzcGFjZSkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ29uZmlybWF0aW9uUG9wdXBDb21wb25lbnQsIHtcclxuICAgICAgICBkaXNhYmxlQ2xvc2U6IGZhbHNlLFxyXG4gICAgICAgIGRhdGE6IHsgdHlwZTogJ2RlbGV0ZScgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgIGxldCBpZCwgdXJsO1xyXG4gICAgICAgICAgY29uc3QgYmFzZVVybCA9IHdvcmtzcGFjZS5sYXllci5kYXRhU291cmNlLm9wdGlvbnMuZWRpdGlvbi5iYXNlVXJsO1xyXG4gICAgICAgICAgY29uc3QgZGVsZXRlVXJsID1cclxuICAgICAgICAgICAgd29ya3NwYWNlLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy5lZGl0aW9uLmRlbGV0ZVVybDtcclxuICAgICAgICAgIGlmIChiYXNlVXJsLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB1cmwgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdlZGl0aW9uLnVybCcpXHJcbiAgICAgICAgICAgICAgPyB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdlZGl0aW9uLnVybCcpICtcclxuICAgICAgICAgICAgICAgIGJhc2VVcmwgK1xyXG4gICAgICAgICAgICAgICAgJz8nICtcclxuICAgICAgICAgICAgICAgIGRlbGV0ZVVybFxyXG4gICAgICAgICAgICAgIDogYmFzZVVybCArICc/JyArIGRlbGV0ZVVybDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHVybCA9IHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoJ2VkaXRpb24udXJsJylcclxuICAgICAgICAgICAgICA/IHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoJ2VkaXRpb24udXJsJykgKyBkZWxldGVVcmxcclxuICAgICAgICAgICAgICA6IGRlbGV0ZVVybDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiB3b3Jrc3BhY2UubWV0YS50YWJsZVRlbXBsYXRlLmNvbHVtbnMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBmZWF0dXJlLnByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgICBsZXQgY29sdW1uTmFtZSA9IGNvbHVtbi5uYW1lO1xyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5OYW1lLmluY2x1ZGVzKCdwcm9wZXJ0aWVzLicpKSB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5OYW1lID0gY29sdW1uTmFtZS5zcGxpdCgnLicpWzFdO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoY29sdW1uTmFtZSA9PT0gcHJvcGVydHkgJiYgY29sdW1uLnByaW1hcnkgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgIGlkID0gZmVhdHVyZS5wcm9wZXJ0aWVzW3Byb3BlcnR5XTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh1cmwpIHtcclxuICAgICAgICAgICAgdXJsICs9IGlkO1xyXG4gICAgICAgICAgICB0aGlzLmRlbGV0ZUZlYXR1cmUod29ya3NwYWNlLCB1cmwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9LCAyNTApO1xyXG4gIH1cclxuXHJcbiAgZWRpdEZlYXR1cmUoZmVhdHVyZSwgd29ya3NwYWNlOiBFZGl0aW9uV29ya3NwYWNlKSB7XHJcbiAgICBmZWF0dXJlLmVkaXRpb24gPSB0cnVlO1xyXG4gICAgbGV0IGlkO1xyXG4gICAgbGV0IGZpbmQgPSBmYWxzZTtcclxuICAgIGNvbnN0IGVkaXRpb25PcHQgPSB3b3Jrc3BhY2UubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLmVkaXRpb247XHJcbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiB3b3Jrc3BhY2UubWV0YS50YWJsZVRlbXBsYXRlLmNvbHVtbnMpIHtcclxuICAgICAgLy8gVXBkYXRlIGRvbWFpbiBsaXN0XHJcbiAgICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ2xpc3QnIHx8IGNvbHVtbi50eXBlID09PSAnYXV0b2NvbXBsZXRlJykge1xyXG4gICAgICAgIHRoaXMuZ2V0RG9tYWluVmFsdWVzKGNvbHVtbi5yZWxhdGlvbikuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgIGNvbHVtbi5kb21haW5WYWx1ZXMgPSByZXN1bHQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGZpbmQgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBmZWF0dXJlLnByb3BlcnRpZXMpIHtcclxuICAgICAgICAgIGxldCBjb2x1bW5OYW1lID0gY29sdW1uLm5hbWU7XHJcbiAgICAgICAgICBpZiAoY29sdW1uTmFtZS5pbmNsdWRlcygncHJvcGVydGllcy4nKSkge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lID0gY29sdW1uTmFtZS5zcGxpdCgnLicpWzFdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGNvbHVtbk5hbWUgPT09IHByb3BlcnR5ICYmIGNvbHVtbi5wcmltYXJ5ID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIGlkID0gZmVhdHVyZS5wcm9wZXJ0aWVzW3Byb3BlcnR5XTtcclxuICAgICAgICAgICAgZmluZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGlkKSB7XHJcbiAgICAgIGZlYXR1cmUub3JpZ2luYWxfcHJvcGVydGllcyA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoZmVhdHVyZS5wcm9wZXJ0aWVzKVxyXG4gICAgICApO1xyXG4gICAgICBmZWF0dXJlLm9yaWdpbmFsX2dlb21ldHJ5ID0gZmVhdHVyZS5nZW9tZXRyeTtcclxuICAgICAgZmVhdHVyZS5pZGtleSA9IGlkO1xyXG4gICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuc3RhdGUudXBkYXRlQWxsKHsgZWRpdDogZmFsc2UgfSk7XHJcbiAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5zdGF0ZVZpZXcuZmlsdGVyKHRoaXMuZWRpdEZlYXR1cmVmaWx0ZXJDbGF1c2VGdW5jKTtcclxuICAgICAgdGhpcy5hZGRGZWF0dXJlVG9TdG9yZShmZWF0dXJlLCB3b3Jrc3BhY2UpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gT25seSBmb3IgZWRpdGlvbiB3aXRoIGl0J3Mgb3duIGdlb21ldHJ5XHJcbiAgICAgIGlmICghZmVhdHVyZS5uZXdGZWF0dXJlICYmIGVkaXRpb25PcHQuZ2VvbVR5cGUpIHtcclxuICAgICAgICBmZWF0dXJlLm5ld0ZlYXR1cmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuYWRkaW5nJC5uZXh0KHRydWUpO1xyXG4gICAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5zdGF0ZS51cGRhdGVBbGwoeyBuZXdGZWF0dXJlOiBmYWxzZSB9KTtcclxuICAgICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuc3RhdGVWaWV3LmZpbHRlcih0aGlzLm5ld0ZlYXR1cmVmaWx0ZXJDbGF1c2VGdW5jKTtcclxuICAgICAgICBpZiAoZWRpdGlvbk9wdC5hZGRXaXRoRHJhdykge1xyXG4gICAgICAgICAgY29uc3QgZ2VvbWV0cnlUeXBlID0gZWRpdGlvbk9wdC5nZW9tVHlwZTtcclxuICAgICAgICAgIHRoaXMub25HZW9tZXRyeVR5cGVDaGFuZ2UoZ2VvbWV0cnlUeXBlLCBmZWF0dXJlLCB3b3Jrc3BhY2UpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuaW5zZXJ0KGZlYXR1cmUpO1xyXG4gICAgICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlLnVwZGF0ZShcclxuICAgICAgICAgICAgZmVhdHVyZSxcclxuICAgICAgICAgICAgeyBuZXdGZWF0dXJlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgIHRydWVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgYSBEcmF3IENvbnRyb2xcclxuICAgKiBAcGFyYW0gZmlsbENvbG9yIHRoZSBmaWxsIGNvbG9yXHJcbiAgICogQHBhcmFtIHN0cm9rZUNvbG9yIHRoZSBzdHJva2UgY29sb3JcclxuICAgKiBAcGFyYW0gc3Ryb2tlV2lkdGggdGhlIHN0cm9rZSB3aWR0aFxyXG4gICAqIEByZXR1cm5zIGEgRHJhdyBDb250cm9sXHJcbiAgICovXHJcbiAgY3JlYXRlRHJhd0NvbnRyb2woXHJcbiAgICBmaWxsQ29sb3I/OiBzdHJpbmcsXHJcbiAgICBzdHJva2VDb2xvcj86IHN0cmluZyxcclxuICAgIHN0cm9rZVdpZHRoPzogbnVtYmVyXHJcbiAgKSB7XHJcbiAgICBjb25zdCBkcmF3Q29udHJvbCA9IG5ldyBEcmF3Q29udHJvbCh7XHJcbiAgICAgIGdlb21ldHJ5VHlwZTogdW5kZWZpbmVkLFxyXG4gICAgICBkcmF3aW5nTGF5ZXJTb3VyY2U6IHRoaXMub2xEcmF3aW5nTGF5ZXJTb3VyY2UsXHJcbiAgICAgIGRyYXdpbmdMYXllclN0eWxlOiBuZXcgT2xTdHlsZS5TdHlsZSh7fSksXHJcbiAgICAgIGludGVyYWN0aW9uU3R5bGU6IGNyZWF0ZUludGVyYWN0aW9uU3R5bGUoXHJcbiAgICAgICAgZmlsbENvbG9yLFxyXG4gICAgICAgIHN0cm9rZUNvbG9yLFxyXG4gICAgICAgIHN0cm9rZVdpZHRoXHJcbiAgICAgIClcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBkcmF3Q29udHJvbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGxlZCB3aGVuIHRoZSB1c2VyIHNlbGVjdHMgYSBuZXcgZ2VvbWV0cnkgdHlwZVxyXG4gICAqIEBwYXJhbSBnZW9tZXRyeVR5cGUgdGhlIGdlb21ldHJ5IHR5cGUgc2VsZWN0ZWQgYnkgdGhlIHVzZXJcclxuICAgKi9cclxuICBvbkdlb21ldHJ5VHlwZUNoYW5nZShcclxuICAgIGdlb21ldHJ5VHlwZTogVHlwZSxcclxuICAgIGZlYXR1cmUsXHJcbiAgICB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2VcclxuICApIHtcclxuICAgIHRoaXMuZHJhd0NvbnRyb2wuc2V0R2VvbWV0cnlUeXBlKGdlb21ldHJ5VHlwZSk7XHJcbiAgICB0aGlzLnRvZ2dsZURyYXdDb250cm9sKGZlYXR1cmUsIHdvcmtzcGFjZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBY3RpdmF0ZSB0aGUgY29ycmVjdCBjb250cm9sXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB0b2dnbGVEcmF3Q29udHJvbChmZWF0dXJlLCB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2UpIHtcclxuICAgIHRoaXMuZGVhY3RpdmF0ZURyYXdDb250cm9sKCk7XHJcbiAgICB0aGlzLmFjdGl2YXRlRHJhd0NvbnRyb2woZmVhdHVyZSwgd29ya3NwYWNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlYWN0aXZhdGUgdGhlIGFjdGl2ZSBkcmF3IGNvbnRyb2xcclxuICAgKi9cclxuICBwdWJsaWMgZGVhY3RpdmF0ZURyYXdDb250cm9sKCkge1xyXG4gICAgaWYgKCF0aGlzLmRyYXdDb250cm9sKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kcmF3RW5kJCQpIHtcclxuICAgICAgdGhpcy5kcmF3RW5kJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRyYXdDb250cm9sLnNldE9sTWFwKHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBY3RpdmF0ZSBhIGdpdmVuIGNvbnRyb2xcclxuICAgKi9cclxuICBwcml2YXRlIGFjdGl2YXRlRHJhd0NvbnRyb2woZmVhdHVyZSwgd29ya3NwYWNlOiBFZGl0aW9uV29ya3NwYWNlKSB7XHJcbiAgICB0aGlzLmRyYXdFbmQkJCA9IHRoaXMuZHJhd0NvbnRyb2wuZW5kJC5zdWJzY3JpYmUoXHJcbiAgICAgIChvbEdlb21ldHJ5OiBPbEdlb21ldHJ5KSA9PiB7XHJcbiAgICAgICAgdGhpcy5hZGRGZWF0dXJlVG9TdG9yZShmZWF0dXJlLCB3b3Jrc3BhY2UsIG9sR2VvbWV0cnkpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuZHJhd0NvbnRyb2wuc2V0T2xNYXAodGhpcy5tYXAub2wsIHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGEgZmVhdHVyZSB0byBsYXllci4gVGhlIGxvYWRpbmcgc3RyYXRlZ3kgb2YgdGhlIGxheWVyXHJcbiAgICogd2lsbCB0cmlnZ2VyIGFuZCBhZGQgdGhlIGZlYXR1cmUgdG8gdGhlIHdvcmtzcGFjZSBzdG9yZS5cclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcml2YXRlIGFkZEZlYXR1cmVUb1N0b3JlKFxyXG4gICAgZmVhdHVyZSxcclxuICAgIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZSxcclxuICAgIG9sR2VvbWV0cnk/OiBPbEdlb21ldHJ5XHJcbiAgKSB7XHJcbiAgICBjb25zdCBwcm9qZWN0aW9uID0gdGhpcy5tYXAub2wuZ2V0VmlldygpLmdldFByb2plY3Rpb24oKTtcclxuICAgIGxldCBnZW9tZXRyeSA9IGZlYXR1cmUuZ2VvbWV0cnk7XHJcblxyXG4gICAgLy8gSWYgYW4gb2xHZW9tZXRyeSBpcyBwYXNzZWQsIGl0IG1lYW5zIHRoYXQgaXQgaXMgYSBuZXcgZmVhdHVyZVxyXG4gICAgaWYgKG9sR2VvbWV0cnkpIHtcclxuICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLmluc2VydChmZWF0dXJlKTtcclxuICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlLnVwZGF0ZShmZWF0dXJlLCB7IG5ld0ZlYXR1cmU6IHRydWUgfSwgdHJ1ZSk7XHJcbiAgICAgIGdlb21ldHJ5ID0gbmV3IE9sR2VvSlNPTigpLndyaXRlR2VvbWV0cnlPYmplY3Qob2xHZW9tZXRyeSwge1xyXG4gICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBwcm9qZWN0aW9uLFxyXG4gICAgICAgIGRhdGFQcm9qZWN0aW9uOiAnRVBTRzo0MzI2J1xyXG4gICAgICB9KSBhcyBhbnk7XHJcblxyXG4gICAgICBmZWF0dXJlLmdlb21ldHJ5ID0gZ2VvbWV0cnk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuc3RhdGUudXBkYXRlKGZlYXR1cmUsIHsgZWRpdDogdHJ1ZSB9LCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBmZWF0dXJlLnByb2plY3Rpb24gPSAnRVBTRzo0MzI2JztcclxuXHJcbiAgICBjb25zdCBmZWF0dXJlT2wgPSBmZWF0dXJlVG9PbChmZWF0dXJlLCBwcm9qZWN0aW9uLmdldENvZGUoKSk7XHJcblxyXG4gICAgdGhpcy5vbERyYXdpbmdMYXllci5kYXRhU291cmNlLm9sLmNsZWFyKCk7XHJcbiAgICB0aGlzLm9sRHJhd2luZ0xheWVyLmRhdGFTb3VyY2Uub2wuYWRkRmVhdHVyZShmZWF0dXJlT2wpO1xyXG4gICAgdGhpcy5tYXAuYWRkTGF5ZXIodGhpcy5vbERyYXdpbmdMYXllcik7XHJcblxyXG4gICAgdGhpcy5kZWFjdGl2YXRlRHJhd0NvbnRyb2woKTtcclxuICAgIHRoaXMuY3JlYXRlTW9kaWZ5SW50ZXJhY3Rpb24oZmVhdHVyZU9sLCBmZWF0dXJlLCB3b3Jrc3BhY2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIGRyYXdpbmdzIGxheWVyIGFuZCBzb3VyY2UgZnJvbSB0aGUgbWFwIEFORCBmZWF0dXJlIGZyb20gdGhlIGVudGl0eSBzdG9yZS5cclxuICAgKiBMYXllciByZWZyZXNoIHdpbGwgYXV0b21hdGljYWxseSBhZGQgdGhlIG5ldyBmZWF0dXJlIGludG8gdGhlIHN0b3JlLlxyXG4gICAqL1xyXG4gIGRlbGV0ZURyYXdpbmdzKCkge1xyXG4gICAgdGhpcy5tYXAucmVtb3ZlTGF5ZXIodGhpcy5vbERyYXdpbmdMYXllcik7XHJcbiAgICB0aGlzLm9sRHJhd2luZ0xheWVyU291cmNlLmNsZWFyKCk7XHJcbiAgICB0aGlzLm1hcC5vbC5yZW1vdmVJbnRlcmFjdGlvbih0aGlzLm1vZGlmeSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgYSBtb2RpZnkgaW50ZXJhY3Rpb24gdG8gYWxsb3cgYSBnZW9tZXRyeSBjaGFuZ2Ugb25lIGZlYXR1cmUgYXQgdGhlIHRpbWUgKGRyYWcgYW5kIGRyb3ApXHJcbiAgICovXHJcbiAgY3JlYXRlTW9kaWZ5SW50ZXJhY3Rpb24oXHJcbiAgICBvbEZlYXR1cmU6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PixcclxuICAgIGZlYXR1cmUsXHJcbiAgICB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2VcclxuICApIHtcclxuICAgIHRoaXMubWFwLm9sLnJlbW92ZUludGVyYWN0aW9uKHRoaXMubW9kaWZ5KTtcclxuICAgIGNvbnN0IG9sQ29sbGVjdGlvbiA9IG5ldyBDb2xsZWN0aW9uKFtvbEZlYXR1cmVdLCB7IHVuaXF1ZTogdHJ1ZSB9KTtcclxuICAgIHRoaXMubW9kaWZ5ID0gbmV3IE9sTW9kaWZ5KHtcclxuICAgICAgZmVhdHVyZXM6IG9sQ29sbGVjdGlvblxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5tYXAub2wuYWRkSW50ZXJhY3Rpb24odGhpcy5tb2RpZnkpO1xyXG4gICAgb2xDb2xsZWN0aW9uLmZvckVhY2goKGZlYXR1cmUpID0+IHtcclxuICAgICAgZmVhdHVyZS5zZXRTdHlsZSh0aGlzLm1vZGlmeVN0eWxlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubW9kaWZ5Lm9uKCdtb2RpZnllbmQnLCAoZXZlbnQpID0+IHtcclxuICAgICAgY29uc3Qgb2xHZW9tZXRyeSA9IGV2ZW50LmZlYXR1cmVzLmdldEFycmF5KClbMF0/LmdldEdlb21ldHJ5KCk7XHJcbiAgICAgIGlmIChvbEdlb21ldHJ5KSB7XHJcbiAgICAgICAgdGhpcy5hZGRGZWF0dXJlVG9TdG9yZShmZWF0dXJlLCB3b3Jrc3BhY2UsIG9sR2VvbWV0cnkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19