@igo2/geo 16.0.2 → 16.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +28 -132
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +22 -86
  3. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +22 -65
  4. package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +42 -47
  5. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +13 -129
  6. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +14 -55
  7. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +27 -57
  8. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +46 -54
  9. package/esm2022/lib/catalog/catalog.module.mjs +28 -29
  10. package/esm2022/lib/catalog/shared/catalog.abstract.mjs +1 -1
  11. package/esm2022/lib/catalog/shared/catalog.interface.mjs +1 -1
  12. package/esm2022/lib/catalog/shared/catalog.service.mjs +14 -14
  13. package/esm2022/lib/datasource/datasource.module.mjs +12 -12
  14. package/esm2022/lib/datasource/shared/capabilities.interface.mjs +9 -0
  15. package/esm2022/lib/datasource/shared/capabilities.service.mjs +10 -17
  16. package/esm2022/lib/datasource/shared/datasource.service.mjs +11 -11
  17. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +9 -9
  18. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  19. package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
  20. package/esm2022/lib/datasource/shared/index.mjs +2 -1
  21. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +12 -12
  22. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +19 -102
  23. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +21 -122
  24. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +11 -103
  25. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +6 -6
  26. package/esm2022/lib/directions/directions.component.mjs +25 -47
  27. package/esm2022/lib/directions/directions.module.mjs +61 -62
  28. package/esm2022/lib/directions/shared/directions.service.mjs +15 -14
  29. package/esm2022/lib/download/download-button/download-button.component.mjs +11 -26
  30. package/esm2022/lib/download/download.module.mjs +22 -23
  31. package/esm2022/lib/download/shared/download.service.mjs +9 -9
  32. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +9 -35
  33. package/esm2022/lib/draw/draw/draw-popup.component.mjs +20 -299
  34. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +7 -40
  35. package/esm2022/lib/draw/draw/draw.component.mjs +56 -322
  36. package/esm2022/lib/draw/draw/draw.module.mjs +64 -65
  37. package/esm2022/lib/draw/drawingTool.module.mjs +12 -13
  38. package/esm2022/lib/draw/shared/draw-icon.service.mjs +9 -9
  39. package/esm2022/lib/draw/shared/draw.interface.mjs +1 -1
  40. package/esm2022/lib/environment/environment.interface.mjs +1 -1
  41. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +21 -171
  42. package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +17 -19
  43. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +22 -23
  44. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +16 -34
  45. package/esm2022/lib/feature/feature-form/feature-form.module.mjs +12 -13
  46. package/esm2022/lib/feature/feature.module.mjs +13 -14
  47. package/esm2022/lib/feature/shared/feature-store.utils.mjs +2 -2
  48. package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
  49. package/esm2022/lib/feature/shared/feature.utils.mjs +1 -1
  50. package/esm2022/lib/feature/shared/store.mjs +1 -1
  51. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +1 -1
  52. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
  53. package/esm2022/lib/feature/shared/strategies/selection.mjs +2 -2
  54. package/esm2022/lib/filter/filter.module.mjs +158 -197
  55. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +24 -49
  56. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +32 -397
  57. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +39 -625
  58. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +20 -47
  59. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +44 -340
  60. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +36 -58
  61. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +26 -126
  62. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +11 -11
  63. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +17 -40
  64. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +9 -9
  65. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +6 -6
  66. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +6 -6
  67. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +9 -9
  68. package/esm2022/lib/filter/shared/time-filter.service.mjs +6 -6
  69. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +73 -386
  70. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +23 -87
  71. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +37 -86
  72. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +24 -49
  73. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +20 -268
  74. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +20 -72
  75. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +11 -11
  76. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +13 -24
  77. package/esm2022/lib/geo.module.mjs +54 -55
  78. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +36 -39
  79. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +32 -97
  80. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +30 -31
  81. package/esm2022/lib/geometry/geometry.module.mjs +13 -14
  82. package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  83. package/esm2022/lib/import-export/export-button/export-button.component.mjs +11 -24
  84. package/esm2022/lib/import-export/import-export/import-export.component.mjs +25 -434
  85. package/esm2022/lib/import-export/import-export.module.mjs +54 -55
  86. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +20 -22
  87. package/esm2022/lib/import-export/shared/export.service.mjs +10 -10
  88. package/esm2022/lib/import-export/shared/import.service.mjs +9 -9
  89. package/esm2022/lib/layer/index.mjs +1 -1
  90. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +47 -127
  91. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +16 -183
  92. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +16 -26
  93. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +11 -11
  94. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +26 -130
  95. package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +13 -13
  96. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +50 -272
  97. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +21 -72
  98. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +9 -9
  99. package/esm2022/lib/layer/layer.module.mjs +94 -114
  100. package/esm2022/lib/layer/shared/layer.service.mjs +12 -12
  101. package/esm2022/lib/layer/shared/layers/image-layer.mjs +2 -2
  102. package/esm2022/lib/layer/shared/layers/layer.mjs +1 -1
  103. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +2 -2
  104. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +2 -2
  105. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +2 -2
  106. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +12 -27
  107. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +18 -60
  108. package/esm2022/lib/map/baselayers-switcher/index.mjs +1 -1
  109. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +20 -48
  110. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +11 -31
  111. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +17 -26
  112. package/esm2022/lib/map/index.mjs +1 -1
  113. package/esm2022/lib/map/info-section/info-section.component.mjs +9 -22
  114. package/esm2022/lib/map/map-browser/index.mjs +1 -1
  115. package/esm2022/lib/map/map-browser/map-browser.component.mjs +11 -18
  116. package/esm2022/lib/map/map-center/map-center.component.mjs +9 -13
  117. package/esm2022/lib/map/map.module.mjs +88 -96
  118. package/esm2022/lib/map/menu-button/menu-button.component.mjs +11 -19
  119. package/esm2022/lib/map/offline-button/offline-button.component.mjs +13 -24
  120. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +13 -39
  121. package/esm2022/lib/map/shared/hover-feature.directive.mjs +18 -20
  122. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +1 -1
  123. package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +15 -15
  124. package/esm2022/lib/map/shared/map.abstract.mjs +1 -1
  125. package/esm2022/lib/map/shared/map.service.mjs +9 -9
  126. package/esm2022/lib/map/shared/mapOffline.directive.mjs +9 -9
  127. package/esm2022/lib/map/shared/projection.service.mjs +9 -9
  128. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +9 -16
  129. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +11 -24
  130. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +11 -28
  131. package/esm2022/lib/measure/measure.module.mjs +12 -13
  132. package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +9 -9
  133. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +13 -166
  134. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +19 -51
  135. package/esm2022/lib/measure/measurer/measurer.component.mjs +74 -241
  136. package/esm2022/lib/measure/measurer/measurer.module.mjs +46 -59
  137. package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
  138. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +20 -69
  139. package/esm2022/lib/metadata/metadata.module.mjs +24 -25
  140. package/esm2022/lib/metadata/shared/metadata.interface.mjs +1 -1
  141. package/esm2022/lib/metadata/shared/metadata.service.mjs +9 -9
  142. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +9 -9
  143. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +9 -9
  144. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +9 -9
  145. package/esm2022/lib/offline/shared/geo-network.service.mjs +9 -9
  146. package/esm2022/lib/overlay/overlay.module.mjs +12 -13
  147. package/esm2022/lib/overlay/shared/overlay.directive.mjs +11 -11
  148. package/esm2022/lib/overlay/shared/overlay.mjs +1 -1
  149. package/esm2022/lib/overlay/shared/overlay.service.mjs +9 -9
  150. package/esm2022/lib/overlay/shared/overlay.utils.mjs +2 -2
  151. package/esm2022/lib/print/print/print.component.mjs +21 -27
  152. package/esm2022/lib/print/print-form/print-form.component.mjs +56 -349
  153. package/esm2022/lib/print/print.module.mjs +36 -37
  154. package/esm2022/lib/print/shared/print.service.mjs +14 -14
  155. package/esm2022/lib/print/shared/print.type.mjs +2 -2
  156. package/esm2022/lib/query/query.module.mjs +13 -14
  157. package/esm2022/lib/query/shared/query-search-source.mjs +9 -9
  158. package/esm2022/lib/query/shared/query.directive.mjs +21 -21
  159. package/esm2022/lib/query/shared/query.service.mjs +10 -10
  160. package/esm2022/lib/search/search-bar/search-bar.component.mjs +66 -165
  161. package/esm2022/lib/search/search-bar/search-bar.module.mjs +38 -39
  162. package/esm2022/lib/search/search-bar/search-url-param.directive.mjs +13 -13
  163. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +12 -68
  164. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +23 -66
  165. package/esm2022/lib/search/search-results/search-results-item.component.mjs +18 -74
  166. package/esm2022/lib/search/search-results/search-results.component.mjs +41 -238
  167. package/esm2022/lib/search/search-results/search-results.module.mjs +58 -59
  168. package/esm2022/lib/search/search-selector/search-selector.component.mjs +13 -43
  169. package/esm2022/lib/search/search-selector/search-selector.module.mjs +30 -31
  170. package/esm2022/lib/search/search-settings/search-settings.component.mjs +24 -233
  171. package/esm2022/lib/search/search-settings/search-settings.module.mjs +32 -33
  172. package/esm2022/lib/search/search.module.mjs +32 -33
  173. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +18 -20
  174. package/esm2022/lib/search/shared/search.enums.mjs +3 -3
  175. package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
  176. package/esm2022/lib/search/shared/search.service.mjs +10 -10
  177. package/esm2022/lib/search/shared/sources/cadastre.mjs +10 -10
  178. package/esm2022/lib/search/shared/sources/coordinates.mjs +19 -19
  179. package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
  180. package/esm2022/lib/search/shared/sources/icherche.mjs +37 -26
  181. package/esm2022/lib/search/shared/sources/ilayer.mjs +19 -19
  182. package/esm2022/lib/search/shared/sources/nominatim.mjs +10 -10
  183. package/esm2022/lib/search/shared/sources/source.mjs +1 -1
  184. package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  185. package/esm2022/lib/search/shared/sources/storedqueries.mjs +18 -18
  186. package/esm2022/lib/search/shared/sources/workspace.mjs +10 -10
  187. package/esm2022/lib/style/style-list/style-list.module.mjs +12 -12
  188. package/esm2022/lib/style/style-list/style-list.service.mjs +9 -9
  189. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +12 -121
  190. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +13 -59
  191. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +9 -17
  192. package/esm2022/lib/style/style-service/draw-style.service.mjs +9 -9
  193. package/esm2022/lib/style/style-service/style.service.mjs +9 -9
  194. package/esm2022/lib/style/style.module.mjs +51 -52
  195. package/esm2022/lib/toast/toast.component.mjs +15 -44
  196. package/esm2022/lib/toast/toast.module.mjs +24 -25
  197. package/esm2022/lib/utils/id-generator.mjs +1 -1
  198. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +9 -9
  199. package/esm2022/lib/wkt/shared/wkt.service.mjs +9 -9
  200. package/esm2022/lib/wkt/wkt.module.mjs +12 -12
  201. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +10 -27
  202. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +20 -21
  203. package/esm2022/lib/workspace/shared/edition-workspace.mjs +4 -4
  204. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +10 -10
  205. package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
  206. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +14 -13
  207. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
  208. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +14 -13
  209. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +12 -12
  210. package/esm2022/lib/workspace/shared/workspace.utils.mjs +1 -1
  211. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +15 -19
  212. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +12 -13
  213. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +21 -21
  214. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +12 -13
  215. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +15 -15
  216. package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +12 -13
  217. package/esm2022/lib/workspace/workspace.module.mjs +35 -36
  218. package/fesm2022/igo2-geo.mjs +16547 -23425
  219. package/fesm2022/igo2-geo.mjs.map +1 -1
  220. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +1 -1
  221. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
  222. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +1 -1
  223. package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +1 -1
  224. package/lib/catalog/catalog-library/catalog-library.component.d.ts +2 -2
  225. package/lib/catalog/shared/catalog.abstract.d.ts +3 -3
  226. package/lib/catalog/shared/catalog.interface.d.ts +2 -2
  227. package/lib/catalog/shared/catalog.service.d.ts +1 -1
  228. package/lib/datasource/shared/capabilities.interface.d.ts +8 -0
  229. package/lib/datasource/shared/capabilities.service.d.ts +1 -8
  230. package/lib/datasource/shared/datasources/wms-datasource.d.ts +1 -1
  231. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +1 -1
  232. package/lib/datasource/shared/index.d.ts +1 -0
  233. package/lib/directions/shared/directions.service.d.ts +2 -2
  234. package/lib/download/shared/download.service.d.ts +1 -1
  235. package/lib/draw/shared/draw.interface.d.ts +1 -1
  236. package/lib/environment/environment.interface.d.ts +8 -6
  237. package/lib/feature/shared/feature.interfaces.d.ts +3 -3
  238. package/lib/feature/shared/feature.utils.d.ts +2 -1
  239. package/lib/feature/shared/store.d.ts +1 -1
  240. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +1 -1
  241. package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +1 -1
  242. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +1 -1
  243. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +1 -0
  244. package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +1 -1
  245. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +1 -1
  246. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +1 -1
  247. package/lib/filter/shared/spatial-filter.service.d.ts +1 -1
  248. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +1 -1
  249. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +2 -2
  250. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
  251. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -1
  252. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +1 -1
  253. package/lib/geometry/shared/geometry.interfaces.d.ts +1 -1
  254. package/lib/import-export/export-button/export-button.component.d.ts +1 -1
  255. package/lib/layer/layer-item/layer-item.component.d.ts +1 -1
  256. package/lib/layer/layer-legend/layer-legend.component.d.ts +1 -1
  257. package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +1 -1
  258. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +1 -1
  259. package/lib/layer/shared/layers/image-layer.d.ts +1 -1
  260. package/lib/layer/shared/layers/layer.d.ts +2 -1
  261. package/lib/layer/shared/layers/tile-layer.d.ts +1 -1
  262. package/lib/layer/shared/layers/vectortile-layer.d.ts +1 -1
  263. package/lib/layer/track-feature-button/track-feature-button.component.d.ts +1 -1
  264. package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +1 -1
  265. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +1 -1
  266. package/lib/map/shared/map.abstract.d.ts +5 -4
  267. package/lib/measure/measurer/measurer.component.d.ts +8 -4
  268. package/lib/measure/shared/measure.interfaces.d.ts +2 -2
  269. package/lib/metadata/shared/metadata.interface.d.ts +1 -1
  270. package/lib/overlay/shared/overlay.d.ts +1 -1
  271. package/lib/print/print-form/print-form.component.d.ts +4 -6
  272. package/lib/print/shared/print.service.d.ts +2 -1
  273. package/lib/print/shared/print.type.d.ts +2 -6
  274. package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
  275. package/lib/search/search-results/search-results-item.component.d.ts +1 -1
  276. package/lib/search/search-results/search-results.component.d.ts +1 -1
  277. package/lib/search/shared/search.interfaces.d.ts +1 -1
  278. package/lib/search/shared/sources/cadastre.d.ts +1 -1
  279. package/lib/search/shared/sources/coordinates.d.ts +1 -1
  280. package/lib/search/shared/sources/icherche.d.ts +1 -1
  281. package/lib/search/shared/sources/icherche.interfaces.d.ts +1 -1
  282. package/lib/search/shared/sources/nominatim.d.ts +1 -1
  283. package/lib/search/shared/sources/source.d.ts +1 -1
  284. package/lib/search/shared/sources/storedqueries.d.ts +1 -1
  285. package/lib/search/shared/sources/storedqueries.interfaces.d.ts +1 -1
  286. package/lib/search/shared/sources/workspace.d.ts +1 -1
  287. package/lib/utils/id-generator.d.ts +1 -1
  288. package/lib/workspace/shared/edition-workspace.d.ts +3 -3
  289. package/lib/workspace/shared/edition-workspace.service.d.ts +1 -1
  290. package/lib/workspace/shared/feature-workspace.d.ts +1 -1
  291. package/lib/workspace/shared/feature-workspace.service.d.ts +2 -2
  292. package/lib/workspace/shared/wfs-workspace.d.ts +1 -1
  293. package/lib/workspace/shared/wfs-workspace.service.d.ts +2 -2
  294. package/lib/workspace/shared/wms-workspace.service.d.ts +2 -2
  295. package/lib/workspace/shared/workspace.utils.d.ts +1 -1
  296. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +1 -1
  297. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +1 -1
  298. package/locale/en.geo.json +5 -3
  299. package/locale/fr.geo.json +5 -3
  300. package/package.json +26 -29
  301. package/{lib → src/lib}/search/search-bar/search-bar.theming.scss +1 -0
  302. package/src/style/style.scss +1 -0
  303. /package/{geo-theme.scss → src/geo-theme.scss} +0 -0
  304. /package/{lib → src/lib}/catalog/catalog-browser/catalog-browser.theming.scss +0 -0
  305. /package/{lib → src/lib}/catalog/catalog.theming.scss +0 -0
  306. /package/{lib → src/lib}/directions/directions-results/directions-results.theming.scss +0 -0
  307. /package/{lib → src/lib}/directions/directions.theming.scss +0 -0
  308. /package/{lib → src/lib}/draw/draw.theming.scss +0 -0
  309. /package/{lib → src/lib}/feature/feature-details/feature-details.theming.scss +0 -0
  310. /package/{lib → src/lib}/feature/feature.theming.scss +0 -0
  311. /package/{lib → src/lib}/filter/filter.theming.scss +0 -0
  312. /package/{lib → src/lib}/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +0 -0
  313. /package/{lib → src/lib}/filter/time-filter-form/time-filter-form.theming.scss +0 -0
  314. /package/{lib → src/lib}/layer/layer-item/layer-item.theme.scss +0 -0
  315. /package/{lib → src/lib}/layer/layer-legend/layer-legend.theming.scss +0 -0
  316. /package/{lib → src/lib}/layer/layer-list-tool/layer-list-tool.theming.scss +0 -0
  317. /package/{lib → src/lib}/layer/layer.theming.scss +0 -0
  318. /package/{lib → src/lib}/map/map-browser/map-browser.theming.scss +0 -0
  319. /package/{lib → src/lib}/map/map.theming.scss +0 -0
  320. /package/{lib → src/lib}/map/menu-button/menu-button.theming.scss +0 -0
  321. /package/{lib → src/lib}/map/zoom-button/zoom-button.theming.scss +0 -0
  322. /package/{lib → src/lib}/measure/measure.theming.scss +0 -0
  323. /package/{lib → src/lib}/measure/measurer/measurer.theming.scss +0 -0
  324. /package/{lib → src/lib}/search/search-results/search-results-item.theme.scss +0 -0
  325. /package/{lib → src/lib}/search/search.theming.scss +0 -0
  326. /package/{lib → src/lib}/workspace/confirmation-popup/confirmation-popup.theming.scss +0 -0
  327. /package/{lib → src/lib}/workspace/workspace.theming.scss +0 -0
@@ -24,271 +24,6 @@ import * as i9 from "@angular/material/core";
24
24
  import * as i10 from "@angular/material/radio";
25
25
  import * as i11 from "@angular/material/checkbox";
26
26
  import * as i12 from "@ngx-translate/core";
27
- function DrawPopupComponent_ng_container_3_mat_radio_group_14_mat_radio_button_1_Template(rf, ctx) { if (rf & 1) {
28
- const _r10 = i0.ɵɵgetCurrentView();
29
- i0.ɵɵelementStart(0, "mat-radio-button", 11);
30
- i0.ɵɵlistener("change", function DrawPopupComponent_ng_container_3_mat_radio_group_14_mat_radio_button_1_Template_mat_radio_button_change_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r9.onLabelTypeChange($event.value)); });
31
- i0.ɵɵtext(1);
32
- i0.ɵɵelementEnd();
33
- } if (rf & 2) {
34
- const option_r8 = ctx.$implicit;
35
- const ctx_r7 = i0.ɵɵnextContext(3);
36
- i0.ɵɵproperty("value", option_r8.value)("disabled", ctx_r7.optionAvailable(option_r8.value))("checked", option_r8.checked);
37
- i0.ɵɵadvance(1);
38
- i0.ɵɵtextInterpolate1(" ", ctx_r7.getProperLengthLabel(option_r8.value), " ");
39
- } }
40
- function DrawPopupComponent_ng_container_3_mat_radio_group_14_Template(rf, ctx) { if (rf & 1) {
41
- i0.ɵɵelementStart(0, "mat-radio-group");
42
- i0.ɵɵtemplate(1, DrawPopupComponent_ng_container_3_mat_radio_group_14_mat_radio_button_1_Template, 2, 4, "mat-radio-button", 10);
43
- i0.ɵɵelementEnd();
44
- } if (rf & 2) {
45
- const ctx_r2 = i0.ɵɵnextContext(2);
46
- i0.ɵɵadvance(1);
47
- i0.ɵɵproperty("ngForOf", ctx_r2.arrayBuiltInType);
48
- } }
49
- function DrawPopupComponent_ng_container_3_ng_container_15_mat_checkbox_1_Template(rf, ctx) { if (rf & 1) {
50
- const _r14 = i0.ɵɵgetCurrentView();
51
- i0.ɵɵelementStart(0, "mat-checkbox", 13);
52
- i0.ɵɵlistener("change", function DrawPopupComponent_ng_container_3_ng_container_15_mat_checkbox_1_Template_mat_checkbox_change_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r13.onLabelTypeChange($event.source.value, $event.checked)); });
53
- i0.ɵɵtext(1);
54
- i0.ɵɵelementEnd();
55
- } if (rf & 2) {
56
- const option_r12 = ctx.$implicit;
57
- const ctx_r11 = i0.ɵɵnextContext(3);
58
- i0.ɵɵproperty("value", option_r12.value)("disabled", ctx_r11.optionAvailable(option_r12.value))("checked", option_r12.checked);
59
- i0.ɵɵadvance(1);
60
- i0.ɵɵtextInterpolate1(" ", ctx_r11.getProperLengthLabel(option_r12.value), " ");
61
- } }
62
- function DrawPopupComponent_ng_container_3_ng_container_15_Template(rf, ctx) { if (rf & 1) {
63
- i0.ɵɵelementContainerStart(0);
64
- i0.ɵɵtemplate(1, DrawPopupComponent_ng_container_3_ng_container_15_mat_checkbox_1_Template, 2, 4, "mat-checkbox", 12);
65
- i0.ɵɵelementContainerEnd();
66
- } if (rf & 2) {
67
- const ctx_r3 = i0.ɵɵnextContext(2);
68
- i0.ɵɵadvance(1);
69
- i0.ɵɵproperty("ngForOf", ctx_r3.arrayBuiltInType);
70
- } }
71
- function DrawPopupComponent_ng_container_3_div_16_mat_option_8_Template(rf, ctx) { if (rf & 1) {
72
- i0.ɵɵelementStart(0, "mat-option", 5);
73
- i0.ɵɵtext(1);
74
- i0.ɵɵelementEnd();
75
- } if (rf & 2) {
76
- const unit_r17 = ctx.$implicit;
77
- i0.ɵɵproperty("value", unit_r17);
78
- i0.ɵɵadvance(1);
79
- i0.ɵɵtextInterpolate1(" ", unit_r17, " ");
80
- } }
81
- function DrawPopupComponent_ng_container_3_div_16_Template(rf, ctx) { if (rf & 1) {
82
- const _r19 = i0.ɵɵgetCurrentView();
83
- i0.ɵɵelementStart(0, "div", 14)(1, "mat-form-field", 15)(2, "mat-label");
84
- i0.ɵɵtext(3, "(Latitude, Longitude)");
85
- i0.ɵɵelementEnd();
86
- i0.ɵɵelement(4, "input", 16, 17);
87
- i0.ɵɵelementEnd();
88
- i0.ɵɵelementStart(6, "mat-form-field", 18)(7, "mat-select", 19);
89
- i0.ɵɵlistener("selectionChange", function DrawPopupComponent_ng_container_3_div_16_Template_mat_select_selectionChange_7_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r18 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r18.onChangeCoordinateUnit($event.value)); });
90
- i0.ɵɵtemplate(8, DrawPopupComponent_ng_container_3_div_16_mat_option_8_Template, 2, 2, "mat-option", 20);
91
- i0.ɵɵelementEnd()()();
92
- } if (rf & 2) {
93
- const ctx_r4 = i0.ɵɵnextContext(2);
94
- i0.ɵɵadvance(4);
95
- i0.ɵɵpropertyInterpolate("value", ctx_r4.currentCoordinates);
96
- i0.ɵɵadvance(3);
97
- i0.ɵɵproperty("value", ctx_r4.coordinatesMeasureUnit);
98
- i0.ɵɵadvance(1);
99
- i0.ɵɵproperty("ngForOf", ctx_r4.allCoordinatesUnits);
100
- } }
101
- function DrawPopupComponent_ng_container_3_div_17_mat_option_8_Template(rf, ctx) { if (rf & 1) {
102
- i0.ɵɵelementStart(0, "mat-option", 5);
103
- i0.ɵɵtext(1);
104
- i0.ɵɵelementEnd();
105
- } if (rf & 2) {
106
- const unit_r22 = ctx.$implicit;
107
- const ctx_r21 = i0.ɵɵnextContext(3);
108
- i0.ɵɵproperty("value", unit_r22);
109
- i0.ɵɵadvance(1);
110
- i0.ɵɵtextInterpolate1(" ", ctx_r21.getLengthUnitEnum(unit_r22), " ");
111
- } }
112
- function DrawPopupComponent_ng_container_3_div_17_Template(rf, ctx) { if (rf & 1) {
113
- const _r24 = i0.ɵɵgetCurrentView();
114
- i0.ɵɵelementStart(0, "div", 14)(1, "mat-form-field", 15)(2, "mat-label");
115
- i0.ɵɵtext(3);
116
- i0.ɵɵelementEnd();
117
- i0.ɵɵelement(4, "input", 21, 17);
118
- i0.ɵɵelementEnd();
119
- i0.ɵɵelementStart(6, "mat-form-field", 18)(7, "mat-select", 19);
120
- i0.ɵɵlistener("selectionChange", function DrawPopupComponent_ng_container_3_div_17_Template_mat_select_selectionChange_7_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r23 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r23.onChangeLengthUnit($event.value)); });
121
- i0.ɵɵtemplate(8, DrawPopupComponent_ng_container_3_div_17_mat_option_8_Template, 2, 2, "mat-option", 20);
122
- i0.ɵɵelementEnd()()();
123
- } if (rf & 2) {
124
- const ctx_r5 = i0.ɵɵnextContext(2);
125
- i0.ɵɵadvance(3);
126
- i0.ɵɵtextInterpolate(ctx_r5.lengthLabelT);
127
- i0.ɵɵadvance(1);
128
- i0.ɵɵpropertyInterpolate("placeholder", ctx_r5.lengthLabelT);
129
- i0.ɵɵpropertyInterpolate("value", ctx_r5.currentLength);
130
- i0.ɵɵadvance(3);
131
- i0.ɵɵproperty("value", ctx_r5.lengthMeasureUnit);
132
- i0.ɵɵadvance(1);
133
- i0.ɵɵproperty("ngForOf", ctx_r5.allLengthUnits);
134
- } }
135
- function DrawPopupComponent_ng_container_3_div_18_mat_option_10_Template(rf, ctx) { if (rf & 1) {
136
- i0.ɵɵelementStart(0, "mat-option", 5);
137
- i0.ɵɵtext(1);
138
- i0.ɵɵelementEnd();
139
- } if (rf & 2) {
140
- const unit_r27 = ctx.$implicit;
141
- const ctx_r26 = i0.ɵɵnextContext(3);
142
- i0.ɵɵproperty("value", unit_r27);
143
- i0.ɵɵadvance(1);
144
- i0.ɵɵtextInterpolate1(" ", ctx_r26.getAreaUnitEnum(unit_r27), " ");
145
- } }
146
- function DrawPopupComponent_ng_container_3_div_18_Template(rf, ctx) { if (rf & 1) {
147
- const _r29 = i0.ɵɵgetCurrentView();
148
- i0.ɵɵelementStart(0, "div", 14)(1, "mat-form-field", 15)(2, "mat-label");
149
- i0.ɵɵtext(3);
150
- i0.ɵɵpipe(4, "translate");
151
- i0.ɵɵelementEnd();
152
- i0.ɵɵelement(5, "input", 21, 17);
153
- i0.ɵɵpipe(7, "translate");
154
- i0.ɵɵelementEnd();
155
- i0.ɵɵelementStart(8, "mat-form-field", 18)(9, "mat-select", 19);
156
- i0.ɵɵlistener("selectionChange", function DrawPopupComponent_ng_container_3_div_18_Template_mat_select_selectionChange_9_listener($event) { i0.ɵɵrestoreView(_r29); const ctx_r28 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r28.onChangeAreaUnit($event.value)); });
157
- i0.ɵɵtemplate(10, DrawPopupComponent_ng_container_3_div_18_mat_option_10_Template, 2, 2, "mat-option", 20);
158
- i0.ɵɵelementEnd()()();
159
- } if (rf & 2) {
160
- const ctx_r6 = i0.ɵɵnextContext(2);
161
- i0.ɵɵadvance(3);
162
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 5, "igo.geo.draw.labelType.Area"));
163
- i0.ɵɵadvance(2);
164
- i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(7, 7, "igo.geo.draw.labelType.Area"));
165
- i0.ɵɵpropertyInterpolate("value", ctx_r6.currentArea);
166
- i0.ɵɵadvance(4);
167
- i0.ɵɵproperty("value", ctx_r6.areaMeasureUnit);
168
- i0.ɵɵadvance(1);
169
- i0.ɵɵproperty("ngForOf", ctx_r6.allAreaUnits);
170
- } }
171
- function DrawPopupComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {
172
- const _r31 = i0.ɵɵgetCurrentView();
173
- i0.ɵɵelementContainerStart(0);
174
- i0.ɵɵelementStart(1, "div", 2)(2, "div", 3)(3, "mat-button-toggle-group", 4);
175
- i0.ɵɵlistener("change", function DrawPopupComponent_ng_container_3_Template_mat_button_toggle_group_change_3_listener($event) { i0.ɵɵrestoreView(_r31); const ctx_r30 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r30.onLabelTypeChange($event.value)); });
176
- i0.ɵɵelementStart(4, "mat-button-toggle", 5);
177
- i0.ɵɵtext(5);
178
- i0.ɵɵpipe(6, "translate");
179
- i0.ɵɵelementEnd();
180
- i0.ɵɵelementStart(7, "mat-button-toggle", 5);
181
- i0.ɵɵtext(8);
182
- i0.ɵɵpipe(9, "translate");
183
- i0.ɵɵelementEnd()()();
184
- i0.ɵɵelementStart(10, "div")(11, "p");
185
- i0.ɵɵtext(12);
186
- i0.ɵɵpipe(13, "translate");
187
- i0.ɵɵelementEnd();
188
- i0.ɵɵtemplate(14, DrawPopupComponent_ng_container_3_mat_radio_group_14_Template, 2, 1, "mat-radio-group", 1);
189
- i0.ɵɵtemplate(15, DrawPopupComponent_ng_container_3_ng_container_15_Template, 2, 1, "ng-container", 1);
190
- i0.ɵɵtemplate(16, DrawPopupComponent_ng_container_3_div_16_Template, 9, 3, "div", 6);
191
- i0.ɵɵtemplate(17, DrawPopupComponent_ng_container_3_div_17_Template, 9, 5, "div", 6);
192
- i0.ɵɵtemplate(18, DrawPopupComponent_ng_container_3_div_18_Template, 11, 9, "div", 6);
193
- i0.ɵɵelementEnd()();
194
- i0.ɵɵelementStart(19, "div", 7)(20, "button", 8);
195
- i0.ɵɵlistener("click", function DrawPopupComponent_ng_container_3_Template_button_click_20_listener() { i0.ɵɵrestoreView(_r31); const ctx_r32 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r32.cancelDrawing()); });
196
- i0.ɵɵtext(21);
197
- i0.ɵɵpipe(22, "translate");
198
- i0.ɵɵelementEnd();
199
- i0.ɵɵelementStart(23, "button", 9);
200
- i0.ɵɵlistener("click", function DrawPopupComponent_ng_container_3_Template_button_click_23_listener() { i0.ɵɵrestoreView(_r31); const ctx_r33 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r33.confirm()); });
201
- i0.ɵɵtext(24);
202
- i0.ɵɵelementEnd()();
203
- i0.ɵɵelementContainerEnd();
204
- } if (rf & 2) {
205
- const ctx_r0 = i0.ɵɵnextContext();
206
- i0.ɵɵadvance(3);
207
- i0.ɵɵproperty("value", ctx_r0.customOrPredefined);
208
- i0.ɵɵadvance(1);
209
- i0.ɵɵproperty("value", ctx_r0.labelType.Custom);
210
- i0.ɵɵadvance(1);
211
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 13, "igo.geo.draw.labelType.custom"), " ");
212
- i0.ɵɵadvance(2);
213
- i0.ɵɵproperty("value", ctx_r0.labelType.Predefined);
214
- i0.ɵɵadvance(1);
215
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(9, 15, "igo.geo.draw.labelType.predefined"), " ");
216
- i0.ɵɵadvance(4);
217
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(13, 17, "igo.geo.draw.builtInInstructions"), " ");
218
- i0.ɵɵadvance(2);
219
- i0.ɵɵproperty("ngIf", ctx_r0.olGeometryType !== "Polygon");
220
- i0.ɵɵadvance(1);
221
- i0.ɵɵproperty("ngIf", ctx_r0.olGeometryType === "Polygon");
222
- i0.ɵɵadvance(1);
223
- i0.ɵɵproperty("ngIf", ctx_r0.labelFlag === ctx_r0.labelType.Coordinates);
224
- i0.ɵɵadvance(1);
225
- i0.ɵɵproperty("ngIf", ctx_r0.labelFlag === ctx_r0.labelType.Length || ctx_r0.polygonCheck === 2);
226
- i0.ɵɵadvance(1);
227
- i0.ɵɵproperty("ngIf", ctx_r0.labelFlag === ctx_r0.labelType.Area || ctx_r0.polygonCheck === 2);
228
- i0.ɵɵadvance(3);
229
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(22, 19, "igo.geo.draw.cancel"), " ");
230
- i0.ɵɵadvance(3);
231
- i0.ɵɵtextInterpolate1(" ", ctx_r0.noLabelButton(), " ");
232
- } }
233
- function DrawPopupComponent_ng_container_4_Template(rf, ctx) { if (rf & 1) {
234
- const _r36 = i0.ɵɵgetCurrentView();
235
- i0.ɵɵelementContainerStart(0);
236
- i0.ɵɵelementStart(1, "div", 2)(2, "div", 3)(3, "mat-button-toggle-group", 4);
237
- i0.ɵɵlistener("change", function DrawPopupComponent_ng_container_4_Template_mat_button_toggle_group_change_3_listener($event) { i0.ɵɵrestoreView(_r36); const ctx_r35 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r35.onLabelTypeChange($event.value)); });
238
- i0.ɵɵelementStart(4, "mat-button-toggle", 5);
239
- i0.ɵɵtext(5);
240
- i0.ɵɵpipe(6, "translate");
241
- i0.ɵɵelementEnd();
242
- i0.ɵɵelementStart(7, "mat-button-toggle", 5);
243
- i0.ɵɵtext(8);
244
- i0.ɵɵpipe(9, "translate");
245
- i0.ɵɵelementEnd()()();
246
- i0.ɵɵelementStart(10, "p");
247
- i0.ɵɵtext(11);
248
- i0.ɵɵpipe(12, "translate");
249
- i0.ɵɵelementEnd();
250
- i0.ɵɵelementStart(13, "mat-form-field", 22)(14, "mat-label");
251
- i0.ɵɵtext(15);
252
- i0.ɵɵpipe(16, "translate");
253
- i0.ɵɵelementEnd();
254
- i0.ɵɵelementStart(17, "input", 23, 17);
255
- i0.ɵɵlistener("select", function DrawPopupComponent_ng_container_4_Template_input_select_17_listener() { return true; })("input", function DrawPopupComponent_ng_container_4_Template_input_input_17_listener($event) { i0.ɵɵrestoreView(_r36); const ctx_r38 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r38.getLabelLength($event.target.value)); });
256
- i0.ɵɵpipe(19, "translate");
257
- i0.ɵɵelementEnd()()();
258
- i0.ɵɵelementStart(20, "div", 7)(21, "button", 8);
259
- i0.ɵɵlistener("click", function DrawPopupComponent_ng_container_4_Template_button_click_21_listener() { i0.ɵɵrestoreView(_r36); const ctx_r39 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r39.cancelDrawing()); });
260
- i0.ɵɵtext(22);
261
- i0.ɵɵpipe(23, "translate");
262
- i0.ɵɵelementEnd();
263
- i0.ɵɵelementStart(24, "button", 9);
264
- i0.ɵɵlistener("click", function DrawPopupComponent_ng_container_4_Template_button_click_24_listener() { i0.ɵɵrestoreView(_r36); const _r34 = i0.ɵɵreference(18); const ctx_r40 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r40.confirm(_r34.value)); });
265
- i0.ɵɵtext(25);
266
- i0.ɵɵelementEnd()();
267
- i0.ɵɵelementContainerEnd();
268
- } if (rf & 2) {
269
- const ctx_r1 = i0.ɵɵnextContext();
270
- i0.ɵɵadvance(3);
271
- i0.ɵɵproperty("value", ctx_r1.customOrPredefined);
272
- i0.ɵɵadvance(1);
273
- i0.ɵɵproperty("value", ctx_r1.labelType.Custom);
274
- i0.ɵɵadvance(1);
275
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 11, "igo.geo.draw.labelType.custom"), " ");
276
- i0.ɵɵadvance(2);
277
- i0.ɵɵproperty("value", ctx_r1.labelType.Predefined);
278
- i0.ɵɵadvance(1);
279
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(9, 13, "igo.geo.draw.labelType.predefined"), " ");
280
- i0.ɵɵadvance(3);
281
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(12, 15, "igo.geo.draw.dialogInstruction"), " ");
282
- i0.ɵɵadvance(4);
283
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(16, 17, "igo.geo.draw.dialogTitle"));
284
- i0.ɵɵadvance(2);
285
- i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(19, 19, "igo.geo.draw.dialogTitle"));
286
- i0.ɵɵpropertyInterpolate("value", ctx_r1.currentLabel);
287
- i0.ɵɵadvance(5);
288
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(23, 21, "igo.geo.draw.cancel"), " ");
289
- i0.ɵɵadvance(3);
290
- i0.ɵɵtextInterpolate1(" ", ctx_r1.noLabelButton(), " ");
291
- } }
292
27
  export class DrawPopupComponent {
293
28
  languageService;
294
29
  dialogRef;
@@ -640,38 +375,24 @@ export class DrawPopupComponent {
640
375
  }
641
376
  return this.languageService.translate.instant('igo.geo.draw.labelType.' + option);
642
377
  }
643
- static ɵfac = function DrawPopupComponent_Factory(t) { return new (t || DrawPopupComponent)(i0.ɵɵdirectiveInject(i1.LanguageService), i0.ɵɵdirectiveInject(i2.MatDialogRef), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA)); };
644
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawPopupComponent, selectors: [["igo-draw-popup-component"]], inputs: { confirmFlag: "confirmFlag", labelFlag: "labelFlag", coordinatesMeasureUnit: "coordinatesMeasureUnit", lengthMeasureUnit: "lengthMeasureUnit", areaMeasureUnit: "areaMeasureUnit" }, decls: 5, vars: 5, consts: [["mat-dialog-title", ""], [4, "ngIf"], ["mat-dialog-content", "", 1, "geometry-type-toggle"], [1, "button-toggle-container"], [3, "value", "change"], [3, "value"], ["class", "fields-container", 4, "ngIf"], ["mat-dialog-actions", ""], ["mat-raised-button", "", 3, "click"], ["mat-raised-button", "", "color", "primary", 3, "click"], [3, "value", "disabled", "checked", "change", 4, "ngFor", "ngForOf"], [3, "value", "disabled", "checked", "change"], ["class", "mat-typography", 3, "value", "disabled", "checked", "change", 4, "ngFor", "ngForOf"], [1, "mat-typography", 3, "value", "disabled", "checked", "change"], [1, "fields-container"], [1, "readOnly-Input"], ["matInput", "", "placeholder", "(Latitude, Longitude)", "readonly", "", 3, "value"], ["input", ""], [1, "unit-field"], [3, "value", "selectionChange"], [3, "value", 4, "ngFor", "ngForOf"], ["matInput", "", "readonly", "", 3, "placeholder", "value"], [1, "input"], ["matInput", "", "cdkFocusInitial", "", 3, "placeholder", "value", "select", "input"]], template: function DrawPopupComponent_Template(rf, ctx) { if (rf & 1) {
645
- i0.ɵɵelementStart(0, "h2", 0);
646
- i0.ɵɵtext(1);
647
- i0.ɵɵpipe(2, "translate");
648
- i0.ɵɵelementEnd();
649
- i0.ɵɵtemplate(3, DrawPopupComponent_ng_container_3_Template, 25, 21, "ng-container", 1);
650
- i0.ɵɵtemplate(4, DrawPopupComponent_ng_container_4_Template, 26, 23, "ng-container", 1);
651
- } if (rf & 2) {
652
- i0.ɵɵadvance(1);
653
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 3, "igo.geo.draw.popupTitle"), "\n");
654
- i0.ɵɵadvance(2);
655
- i0.ɵɵproperty("ngIf", ctx.labelFlag !== ctx.labelType.Custom);
656
- i0.ɵɵadvance(1);
657
- i0.ɵɵproperty("ngIf", ctx.labelFlag === ctx.labelType.Custom);
658
- } }, dependencies: [i3.NgForOf, i3.NgIf, i4.MatButton, i5.MatButtonToggleGroup, i5.MatButtonToggle, i6.MatFormField, i6.MatLabel, i7.MatInput, i8.MatSelect, i9.MatOption, i2.MatDialogTitle, i2.MatDialogContent, i2.MatDialogActions, i10.MatRadioGroup, i10.MatRadioButton, i11.MatCheckbox, i12.TranslatePipe], styles: ["[_nghost-%COMP%] .mat-mdc-radio-button[_ngcontent-%COMP%] ~ .mat-radio-button[_ngcontent-%COMP%]{margin-left:12px}[_nghost-%COMP%] .readOnly-Input[_ngcontent-%COMP%]{width:200px!important}[_nghost-%COMP%] .button-toggle-container[_ngcontent-%COMP%]{margin-bottom:12px}[_nghost-%COMP%] .unit-field[_ngcontent-%COMP%]{margin-left:12px}[_nghost-%COMP%] .unit-field[_ngcontent-%COMP%] .mat-mdc-form-field-infix{width:-moz-fit-content;width:fit-content}[_nghost-%COMP%] .unit-field[_ngcontent-%COMP%] .mat-mdc-select-min-line{padding-right:24px}[_nghost-%COMP%] .mat-mdc-form-field[_ngcontent-%COMP%]{position:sticky!important}[_nghost-%COMP%] .coordinatesInputView[_ngcontent-%COMP%]{top:5em!important}[_nghost-%COMP%] .mat-mdc-dialog-actions[_ngcontent-%COMP%]{display:flex!important;justify-content:flex-end}[_nghost-%COMP%] .input[_ngcontent-%COMP%]{width:auto!important}[_nghost-%COMP%] .mat-button-toggle-group[_ngcontent-%COMP%], [_nghost-%COMP%] .mat-button-toggle[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] mat-checkbox[_ngcontent-%COMP%]{margin-right:10px}[_nghost-%COMP%] mat-form-field .mat-mdc-form-field-subscript-wrapper{display:none}"] });
378
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrawPopupComponent, deps: [{ token: i1.LanguageService }, { token: i2.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
379
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DrawPopupComponent, selector: "igo-draw-popup-component", inputs: { confirmFlag: "confirmFlag", labelFlag: "labelFlag", coordinatesMeasureUnit: "coordinatesMeasureUnit", lengthMeasureUnit: "lengthMeasureUnit", areaMeasureUnit: "areaMeasureUnit" }, ngImport: i0, template: "<h2 mat-dialog-title>\r\n {{ 'igo.geo.draw.popupTitle' | translate }}\r\n</h2>\r\n\r\n<ng-container *ngIf=\"labelFlag !== labelType.Custom\">\r\n <div mat-dialog-content class=\"geometry-type-toggle\">\r\n <div class=\"button-toggle-container\">\r\n <mat-button-toggle-group\r\n (change)=\"onLabelTypeChange($event.value)\"\r\n [value]=\"customOrPredefined\"\r\n >\r\n <mat-button-toggle [value]=\"labelType.Custom\">\r\n {{ 'igo.geo.draw.labelType.custom' | translate }}\r\n </mat-button-toggle>\r\n <mat-button-toggle [value]=\"labelType.Predefined\">\r\n {{ 'igo.geo.draw.labelType.predefined' | translate }}\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n <div>\r\n <p>\r\n {{ 'igo.geo.draw.builtInInstructions' | translate }}\r\n </p>\r\n <mat-radio-group *ngIf=\"olGeometryType !== 'Polygon'\">\r\n <mat-radio-button\r\n *ngFor=\"let option of arrayBuiltInType\"\r\n [value]=\"option.value\"\r\n [disabled]=\"optionAvailable(option.value)\"\r\n (change)=\"onLabelTypeChange($event.value)\"\r\n [checked]=\"option.checked\"\r\n >\r\n {{ getProperLengthLabel(option.value) }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n <ng-container *ngIf=\"olGeometryType === 'Polygon'\">\r\n <mat-checkbox\r\n *ngFor=\"let option of arrayBuiltInType\"\r\n class=\"mat-typography\"\r\n [value]=\"option.value\"\r\n [disabled]=\"optionAvailable(option.value)\"\r\n (change)=\"onLabelTypeChange($event.source.value, $event.checked)\"\r\n [checked]=\"option.checked\"\r\n >\r\n {{ getProperLengthLabel(option.value) }}\r\n </mat-checkbox>\r\n </ng-container>\r\n <div *ngIf=\"labelFlag === labelType.Coordinates\" class=\"fields-container\">\r\n <mat-form-field class=\"readOnly-Input\">\r\n <mat-label>(Latitude, Longitude)</mat-label>\r\n <input\r\n #input\r\n matInput\r\n placeholder=\"(Latitude, Longitude)\"\r\n value=\"{{ currentCoordinates }}\"\r\n readonly\r\n />\r\n </mat-form-field>\r\n <mat-form-field class=\"unit-field\">\r\n <mat-select\r\n [value]=\"coordinatesMeasureUnit\"\r\n (selectionChange)=\"onChangeCoordinateUnit($event.value)\"\r\n >\r\n <mat-option *ngFor=\"let unit of allCoordinatesUnits\" [value]=\"unit\">\r\n {{ unit }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div\r\n *ngIf=\"labelFlag === labelType.Length || polygonCheck === 2\"\r\n class=\"fields-container\"\r\n >\r\n <mat-form-field class=\"readOnly-Input\">\r\n <mat-label>{{ lengthLabelT }}</mat-label>\r\n <input\r\n #input\r\n matInput\r\n placeholder=\"{{ lengthLabelT }}\"\r\n value=\"{{ currentLength }}\"\r\n readonly\r\n />\r\n </mat-form-field>\r\n <mat-form-field class=\"unit-field\">\r\n <mat-select\r\n [value]=\"lengthMeasureUnit\"\r\n (selectionChange)=\"onChangeLengthUnit($event.value)\"\r\n >\r\n <mat-option *ngFor=\"let unit of allLengthUnits\" [value]=\"unit\">\r\n {{ getLengthUnitEnum(unit) }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div\r\n *ngIf=\"labelFlag === labelType.Area || polygonCheck === 2\"\r\n class=\"fields-container\"\r\n >\r\n <mat-form-field class=\"readOnly-Input\">\r\n <mat-label>{{ 'igo.geo.draw.labelType.Area' | translate }}</mat-label>\r\n <input\r\n #input\r\n matInput\r\n placeholder=\"{{ 'igo.geo.draw.labelType.Area' | translate }}\"\r\n value=\"{{ currentArea }}\"\r\n readonly\r\n />\r\n </mat-form-field>\r\n <mat-form-field class=\"unit-field\">\r\n <mat-select\r\n [value]=\"areaMeasureUnit\"\r\n (selectionChange)=\"onChangeAreaUnit($event.value)\"\r\n >\r\n <mat-option *ngFor=\"let unit of allAreaUnits\" [value]=\"unit\">\r\n {{ getAreaUnitEnum(unit) }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div mat-dialog-actions>\r\n <button mat-raised-button (click)=\"cancelDrawing()\">\r\n {{ 'igo.geo.draw.cancel' | translate }}\r\n </button>\r\n <button mat-raised-button color=\"primary\" (click)=\"confirm()\">\r\n {{ noLabelButton() }}\r\n </button>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"labelFlag === labelType.Custom\">\r\n <div mat-dialog-content class=\"geometry-type-toggle\">\r\n <div class=\"button-toggle-container\">\r\n <mat-button-toggle-group\r\n (change)=\"onLabelTypeChange($event.value)\"\r\n [value]=\"customOrPredefined\"\r\n >\r\n <mat-button-toggle [value]=\"labelType.Custom\">\r\n {{ 'igo.geo.draw.labelType.custom' | translate }}\r\n </mat-button-toggle>\r\n <mat-button-toggle [value]=\"labelType.Predefined\">\r\n {{ 'igo.geo.draw.labelType.predefined' | translate }}\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n <p>\r\n {{ 'igo.geo.draw.dialogInstruction' | translate }}\r\n </p>\r\n <mat-form-field class=\"input\">\r\n <mat-label>{{ 'igo.geo.draw.dialogTitle' | translate }}</mat-label>\r\n <input\r\n #input\r\n matInput\r\n (select)=\"(true)\"\r\n (input)=\"getLabelLength($event.target.value)\"\r\n placeholder=\"{{ 'igo.geo.draw.dialogTitle' | translate }}\"\r\n value=\"{{ currentLabel }}\"\r\n cdkFocusInitial\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div mat-dialog-actions>\r\n <button mat-raised-button (click)=\"cancelDrawing()\">\r\n {{ 'igo.geo.draw.cancel' | translate }}\r\n </button>\r\n <button mat-raised-button color=\"primary\" (click)=\"confirm(input.value)\">\r\n {{ noLabelButton() }}\r\n </button>\r\n </div>\r\n</ng-container>\r\n", styles: [":host .mat-mdc-radio-button~.mat-radio-button{margin-left:12px}:host .readOnly-Input{width:200px!important}:host .button-toggle-container{margin-bottom:12px}:host .unit-field{margin-left:12px}:host .unit-field ::ng-deep .mat-mdc-form-field-infix{width:-moz-fit-content;width:fit-content}:host .unit-field ::ng-deep .mat-mdc-select-min-line{padding-right:24px}:host .mat-mdc-form-field{position:sticky!important}:host .coordinatesInputView{top:5em!important}:host .mat-mdc-dialog-actions{display:flex!important;justify-content:flex-end}:host .input{width:auto!important}:host .mat-button-toggle-group,:host .mat-button-toggle{width:100%}:host mat-checkbox{margin-right:10px}:host ::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{display:none}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i5.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i5.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i10.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i10.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i11.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }] });
659
380
  }
660
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawPopupComponent, [{
661
- type: Component,
662
- args: [{ selector: 'igo-draw-popup-component', template: "<h2 mat-dialog-title>\r\n {{ 'igo.geo.draw.popupTitle' | translate }}\r\n</h2>\r\n\r\n<ng-container *ngIf=\"labelFlag !== labelType.Custom\">\r\n <div mat-dialog-content class=\"geometry-type-toggle\">\r\n <div class=\"button-toggle-container\">\r\n <mat-button-toggle-group\r\n (change)=\"onLabelTypeChange($event.value)\"\r\n [value]=\"customOrPredefined\"\r\n >\r\n <mat-button-toggle [value]=\"labelType.Custom\">\r\n {{ 'igo.geo.draw.labelType.custom' | translate }}\r\n </mat-button-toggle>\r\n <mat-button-toggle [value]=\"labelType.Predefined\">\r\n {{ 'igo.geo.draw.labelType.predefined' | translate }}\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n <div>\r\n <p>\r\n {{ 'igo.geo.draw.builtInInstructions' | translate }}\r\n </p>\r\n <mat-radio-group *ngIf=\"olGeometryType !== 'Polygon'\">\r\n <mat-radio-button\r\n *ngFor=\"let option of arrayBuiltInType\"\r\n [value]=\"option.value\"\r\n [disabled]=\"optionAvailable(option.value)\"\r\n (change)=\"onLabelTypeChange($event.value)\"\r\n [checked]=\"option.checked\"\r\n >\r\n {{ getProperLengthLabel(option.value) }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n <ng-container *ngIf=\"olGeometryType === 'Polygon'\">\r\n <mat-checkbox\r\n *ngFor=\"let option of arrayBuiltInType\"\r\n class=\"mat-typography\"\r\n [value]=\"option.value\"\r\n [disabled]=\"optionAvailable(option.value)\"\r\n (change)=\"onLabelTypeChange($event.source.value, $event.checked)\"\r\n [checked]=\"option.checked\"\r\n >\r\n {{ getProperLengthLabel(option.value) }}\r\n </mat-checkbox>\r\n </ng-container>\r\n <div *ngIf=\"labelFlag === labelType.Coordinates\" class=\"fields-container\">\r\n <mat-form-field class=\"readOnly-Input\">\r\n <mat-label>(Latitude, Longitude)</mat-label>\r\n <input\r\n #input\r\n matInput\r\n placeholder=\"(Latitude, Longitude)\"\r\n value=\"{{ currentCoordinates }}\"\r\n readonly\r\n />\r\n </mat-form-field>\r\n <mat-form-field class=\"unit-field\">\r\n <mat-select\r\n [value]=\"coordinatesMeasureUnit\"\r\n (selectionChange)=\"onChangeCoordinateUnit($event.value)\"\r\n >\r\n <mat-option *ngFor=\"let unit of allCoordinatesUnits\" [value]=\"unit\">\r\n {{ unit }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div\r\n *ngIf=\"labelFlag === labelType.Length || polygonCheck === 2\"\r\n class=\"fields-container\"\r\n >\r\n <mat-form-field class=\"readOnly-Input\">\r\n <mat-label>{{ lengthLabelT }}</mat-label>\r\n <input\r\n #input\r\n matInput\r\n placeholder=\"{{ lengthLabelT }}\"\r\n value=\"{{ currentLength }}\"\r\n readonly\r\n />\r\n </mat-form-field>\r\n <mat-form-field class=\"unit-field\">\r\n <mat-select\r\n [value]=\"lengthMeasureUnit\"\r\n (selectionChange)=\"onChangeLengthUnit($event.value)\"\r\n >\r\n <mat-option *ngFor=\"let unit of allLengthUnits\" [value]=\"unit\">\r\n {{ getLengthUnitEnum(unit) }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div\r\n *ngIf=\"labelFlag === labelType.Area || polygonCheck === 2\"\r\n class=\"fields-container\"\r\n >\r\n <mat-form-field class=\"readOnly-Input\">\r\n <mat-label>{{ 'igo.geo.draw.labelType.Area' | translate }}</mat-label>\r\n <input\r\n #input\r\n matInput\r\n placeholder=\"{{ 'igo.geo.draw.labelType.Area' | translate }}\"\r\n value=\"{{ currentArea }}\"\r\n readonly\r\n />\r\n </mat-form-field>\r\n <mat-form-field class=\"unit-field\">\r\n <mat-select\r\n [value]=\"areaMeasureUnit\"\r\n (selectionChange)=\"onChangeAreaUnit($event.value)\"\r\n >\r\n <mat-option *ngFor=\"let unit of allAreaUnits\" [value]=\"unit\">\r\n {{ getAreaUnitEnum(unit) }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div mat-dialog-actions>\r\n <button mat-raised-button (click)=\"cancelDrawing()\">\r\n {{ 'igo.geo.draw.cancel' | translate }}\r\n </button>\r\n <button mat-raised-button color=\"primary\" (click)=\"confirm()\">\r\n {{ noLabelButton() }}\r\n </button>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"labelFlag === labelType.Custom\">\r\n <div mat-dialog-content class=\"geometry-type-toggle\">\r\n <div class=\"button-toggle-container\">\r\n <mat-button-toggle-group\r\n (change)=\"onLabelTypeChange($event.value)\"\r\n [value]=\"customOrPredefined\"\r\n >\r\n <mat-button-toggle [value]=\"labelType.Custom\">\r\n {{ 'igo.geo.draw.labelType.custom' | translate }}\r\n </mat-button-toggle>\r\n <mat-button-toggle [value]=\"labelType.Predefined\">\r\n {{ 'igo.geo.draw.labelType.predefined' | translate }}\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n <p>\r\n {{ 'igo.geo.draw.dialogInstruction' | translate }}\r\n </p>\r\n <mat-form-field class=\"input\">\r\n <mat-label>{{ 'igo.geo.draw.dialogTitle' | translate }}</mat-label>\r\n <input\r\n #input\r\n matInput\r\n (select)=\"(true)\"\r\n (input)=\"getLabelLength($event.target.value)\"\r\n placeholder=\"{{ 'igo.geo.draw.dialogTitle' | translate }}\"\r\n value=\"{{ currentLabel }}\"\r\n cdkFocusInitial\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div mat-dialog-actions>\r\n <button mat-raised-button (click)=\"cancelDrawing()\">\r\n {{ 'igo.geo.draw.cancel' | translate }}\r\n </button>\r\n <button mat-raised-button color=\"primary\" (click)=\"confirm(input.value)\">\r\n {{ noLabelButton() }}\r\n </button>\r\n </div>\r\n</ng-container>\r\n", styles: [":host .mat-mdc-radio-button~.mat-radio-button{margin-left:12px}:host .readOnly-Input{width:200px!important}:host .button-toggle-container{margin-bottom:12px}:host .unit-field{margin-left:12px}:host .unit-field ::ng-deep .mat-mdc-form-field-infix{width:-moz-fit-content;width:fit-content}:host .unit-field ::ng-deep .mat-mdc-select-min-line{padding-right:24px}:host .mat-mdc-form-field{position:sticky!important}:host .coordinatesInputView{top:5em!important}:host .mat-mdc-dialog-actions{display:flex!important;justify-content:flex-end}:host .input{width:auto!important}:host .mat-button-toggle-group,:host .mat-button-toggle{width:100%}:host mat-checkbox{margin-right:10px}:host ::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{display:none}\n"] }]
663
- }], function () { return [{ type: i1.LanguageService }, { type: i2.MatDialogRef }, { type: undefined, decorators: [{
664
- type: Inject,
665
- args: [MAT_DIALOG_DATA]
666
- }] }]; }, { confirmFlag: [{
667
- type: Input
668
- }], labelFlag: [{
669
- type: Input
670
- }], coordinatesMeasureUnit: [{
671
- type: Input
672
- }], lengthMeasureUnit: [{
673
- type: Input
674
- }], areaMeasureUnit: [{
675
- type: Input
676
- }] }); })();
677
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhdy1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kcmF3L2RyYXcvZHJhdy1wb3B1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kcmF3L2RyYXcvZHJhdy1wb3B1cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTdDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLE1BQU0sTUFBTSxnQkFBZ0IsQ0FBQztBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXRDLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLDJCQUEyQixFQUMzQixpQkFBaUIsRUFDakIsNkJBQTZCLEVBQzlCLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUNMLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLGtCQUFrQixFQUNuQixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0Is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QUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1NBQzVDO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxTQUFTLENBQUMsV0FBVyxFQUFFO1lBQzlELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2xFO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ2hFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQzdEO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFO1lBQzlELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUMzRDthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsV0FBVyxD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OzZEQTlCZCxrQkFBa0I7WUNoQy9CLDZCQUFxQjtZQUNuQixZQUNGOztZQUFBLGlCQUFLO1lBRUwsdUZBNkhlO1lBRWYsdUZBd0NlOztZQTFLYixlQUNGO1lBREUsaUZBQ0Y7WUFFZSxlQUFvQztZQUFwQyw2REFBb0M7WUErSHBDLGVBQW9DO1lBQXBDLDZEQUFvQzs7O3VGRG5HdEMsa0JBQWtCO2NBTDlCLFNBQVM7MkJBQ0UsMEJBQTBCOztzQkFrQ2pDLE1BQU07dUJBQUMsZUFBZTt3QkE3QmhCLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxTQUFTO2tCQUFqQixLQUFLO1lBQ0csc0JBQXNCO2tCQUE5QixLQUFLO1lBQ0csaUJBQWlCO2tCQUF6QixLQUFLO1lBQ0csZUFBZTtrQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcblxyXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbmltcG9ydCBPbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XHJcbmltcG9ydCBDaXJjbGUgZnJvbSAnb2wvZ2VvbS9DaXJjbGUnO1xyXG5pbXBvcnQgeyBmcm9tQ2lyY2xlIH0gZnJvbSAnb2wvZ2VvbS9Qb2x5Z29uJztcclxuaW1wb3J0IHsgdHJhbnNmb3JtIH0gZnJvbSAnb2wvcHJvaic7XHJcbmltcG9ydCB7IGdldExlbmd0aCB9IGZyb20gJ29sL3NwaGVyZSc7XHJcblxyXG5pbXBvcnQgeyBJZ29NYXAsIHJvdW5kQ29vcmRUbyB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQnO1xyXG5pbXBvcnQge1xyXG4gIE1lYXN1cmVBcmVhVW5pdCxcclxuICBNZWFzdXJlQXJlYVVuaXRBYmJyZXZpYXRpb24sXHJcbiAgTWVhc3VyZUxlbmd0aFVuaXQsXHJcbiAgTWVhc3VyZUxlbmd0aFVuaXRBYmJyZXZpYXRpb25cclxufSBmcm9tICcuLi8uLi9tZWFzdXJlL3NoYXJlZC9tZWFzdXJlLmVudW0nO1xyXG5pbXBvcnQge1xyXG4gIG1lYXN1cmVPbEdlb21ldHJ5QXJlYSxcclxuICBtZWFzdXJlT2xHZW9tZXRyeUxlbmd0aCxcclxuICBtZXRlcnNUb1VuaXQsXHJcbiAgc3F1YXJlTWV0ZXJzVG9Vbml0XHJcbn0gZnJvbSAnLi4vLi4vbWVhc3VyZS9zaGFyZWQvbWVhc3VyZS51dGlscyc7XHJcbmltcG9ydCB7IENvb3JkaW5hdGVzVW5pdCwgR2VvbWV0cnlUeXBlLCBMYWJlbFR5cGUgfSBmcm9tICcuLi9zaGFyZWQvZHJhdy5lbnVtJztcclxuaW1wb3J0IHsgRER0b0RNUyB9IGZyb20gJy4uL3NoYXJlZC9kcmF3LnV0aWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWRyYXctcG9wdXAtY29tcG9uZW50JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJhdy1wb3B1cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHJhdy1wb3B1cC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcmF3UG9wdXBDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGNvbmZpcm1GbGFnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbGFiZWxGbGFnOiBMYWJlbFR5cGUgfCBbTGFiZWxUeXBlLCBMYWJlbFR5cGVdID0gTGFiZWxUeXBlLkN1c3RvbTtcclxuICBASW5wdXQoKSBjb29yZGluYXRlc01lYXN1cmVVbml0OiBDb29yZGluYXRlc1VuaXQ7XHJcbiAgQElucHV0KCkgbGVuZ3RoTWVhc3VyZVVuaXQ6IE1lYXN1cmVMZW5ndGhVbml0O1xyXG4gIEBJbnB1dCgpIGFyZWFNZWFzdXJlVW5pdDogTWVhc3VyZUFyZWFVbml0O1xyXG5cclxuICBwdWJsaWMgZ2VvbWV0cnlUeXBlID0gR2VvbWV0cnlUeXBlO1xyXG4gIHB1YmxpYyBsYWJlbFR5cGUgPSBMYWJlbFR5cGU7XHJcbiAgcHVibGljIGFycmF5QnVpbHRJblR5cGU6IGFueVtdID0gW107XHJcblxyXG4gIHB1YmxpYyBjdXJyZW50TGFiZWw6IHN0cmluZztcclxuICBwdWJsaWMgY3VycmVudENvb3JkaW5hdGVzOiBzdHJpbmc7XHJcbiAgcHVibGljIGN1cnJlbnRBcmVhOiBzdHJpbmc7XHJcbiAgcHVibGljIGN1cnJlbnRMZW5ndGg6IHN0cmluZztcclxuXHJcbiAgcHVibGljIG9sR2VvbWV0cnlUeXBlOiBHZW9tZXRyeVR5cGUgPSB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGxlbmd0aEluTWV0ZXJzOiBzdHJpbmc7XHJcbiAgcHVibGljIGFyZWFJbk1ldGVyc1NxdWFyZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBjb29yZGluYXRlc0luREQ6IHN0cmluZztcclxuICBwdWJsaWMgY3VycmVudENvb3JkaW5hdGVzVW5pdDogc3RyaW5nO1xyXG5cclxuICBwcml2YXRlIGxvbmdsYXRERDogW251bWJlciwgbnVtYmVyXTtcclxuICBwcml2YXRlIGxhYmVsTGVuZ3RoOiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBwb2x5Z29uQ2hlY2sgPSAwOyAvLyBDb3VudCBmb3IgcG9seWdvbiBsYWJlbCB0eXBlcyBjaGVja2JveGVzXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxEcmF3UG9wdXBDb21wb25lbnQ+LFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiB7IG9sR2VvbWV0cnk6IGFueTsgbWFwOiBJZ29NYXAgfVxyXG4gICkge1xyXG4gICAgdGhpcy5jdXJyZW50TGFiZWwgPSB0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXQoJ2RyYXcnKTtcclxuICAgIHRoaXMubGFiZWxMZW5ndGggPSB0aGlzLmN1cnJlbnRMYWJlbCA/IHRoaXMuY3VycmVudExhYmVsLmxlbmd0aCA6IDA7XHJcbiAgICBsZXQgb2xHZW9tZXRyeTtcclxuXHJcbiAgICBjb25zdCBwcm9qZWN0aW9uID0gdGhpcy5kYXRhLm1hcC5vbC5nZXRWaWV3KCkuZ2V0UHJvamVjdGlvbigpO1xyXG5cclxuICAgIGlmICh0aGlzLmRhdGEub2xHZW9tZXRyeSBpbnN0YW5jZW9mIE9sRmVhdHVyZSkge1xyXG4gICAgICBpZiAodGhpcy5kYXRhLm9sR2VvbWV0cnkuZ2V0KCdyYWQnKSkge1xyXG4gICAgICAgIGNvbnN0IGxvbmdpdHVkZUxhdGl0dWRlID0gW1xyXG4gICAgICAgICAgdGhpcy5kYXRhLm9sR2VvbWV0cnkuZ2V0KCdsb25naXR1ZGUnKSxcclxuICAgICAgICAgIHRoaXMuZGF0YS5vbEdlb21ldHJ5LmdldCgnbGF0aXR1ZGUnKVxyXG4gICAgICAgIF07XHJcbiAgICAgICAgdGhpcy5vbEdlb21ldHJ5VHlwZSA9IEdlb21ldHJ5VHlwZS5DaXJjbGU7XHJcbiAgICAgICAgb2xHZW9tZXRyeSA9IG5ldyBDaXJjbGUoXHJcbiAgICAgICAgICBsb25naXR1ZGVMYXRpdHVkZSxcclxuICAgICAgICAgIHRoaXMuZGF0YS5vbEdlb21ldHJ5LmdldCgncmFkJylcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub2xHZW9tZXRyeVR5cGUgPSB0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKTtcclxuICAgICAgICBvbEdlb21ldHJ5ID0gdGhpcy5kYXRhLm9sR2VvbWV0cnkuZ2V0KCdnZW9tZXRyeScpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9sR2VvbWV0cnlUeXBlID0gdGhpcy5kYXRhLm9sR2VvbWV0cnkuZ2V0VHlwZSgpO1xyXG4gICAgICBvbEdlb21ldHJ5ID0gdGhpcy5kYXRhLm9sR2VvbWV0cnk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuUG9pbnQgfHxcclxuICAgICAgdGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkNpcmNsZVxyXG4gICAgKSB7XHJcbiAgICAgIGlmICh0aGlzLmRhdGEub2xHZW9tZXRyeSBpbnN0YW5jZW9mIE9sRmVhdHVyZSkge1xyXG4gICAgICAgIGxldCBsb25naXR1ZGUgPSB0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXQoJ2xvbmdpdHVkZScpO1xyXG4gICAgICAgIGxldCBsYXRpdHVkZSA9IHRoaXMuZGF0YS5vbEdlb21ldHJ5LmdldCgnbGF0aXR1ZGUnKTtcclxuICAgICAgICB0aGlzLmxvbmdsYXRERCA9IHJvdW5kQ29vcmRUbyhbbG9uZ2l0dWRlLCBsYXRpdHVkZV0sIDUpO1xyXG4gICAgICAgIHRoaXMuY29vcmRpbmF0ZXNJbkREID0gJygnICsgbGF0aXR1ZGUgKyAnLCAnICsgbG9uZ2l0dWRlICsgJyknO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBwb2ludDQzMjYgPSB0cmFuc2Zvcm0oXHJcbiAgICAgICAgICB0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXRGbGF0Q29vcmRpbmF0ZXMoKSxcclxuICAgICAgICAgIHByb2plY3Rpb24sXHJcbiAgICAgICAgICAnRVBTRzo0MzI2J1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5sb25nbGF0REQgPSByb3VuZENvb3JkVG8oW3BvaW50NDMyNlswXSwgcG9pbnQ0MzI2WzFdXSwgNSk7XHJcbiAgICAgICAgdGhpcy5jb29yZGluYXRlc0luREQgPVxyXG4gICAgICAgICAgJygnICsgdGhpcy5sb25nbGF0RERbMV0gKyAnLCAnICsgdGhpcy5sb25nbGF0RERbMF0gKyAnKSc7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jdXJyZW50Q29vcmRpbmF0ZXMgPSB0aGlzLmNvb3JkaW5hdGVzSW5ERDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuTGluZVN0cmluZykge1xyXG4gICAgICB0aGlzLmxlbmd0aEluTWV0ZXJzID0gbWVhc3VyZU9sR2VvbWV0cnlMZW5ndGgoXHJcbiAgICAgICAgb2xHZW9tZXRyeSxcclxuICAgICAgICBwcm9qZWN0aW9uLmdldENvZGUoKVxyXG4gICAgICApLnRvRml4ZWQoMik7XHJcbiAgICAgIHRoaXMuY3VycmVudExlbmd0aCA9IHRoaXMubGVuZ3RoSW5NZXRlcnM7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5Qb2x5Z29uKSB7XHJcbiAgICAgIHRoaXMubGVuZ3RoSW5NZXRlcnMgPSBtZWFzdXJlT2xHZW9tZXRyeUxlbmd0aChcclxuICAgICAgICBvbEdlb21ldHJ5LFxyXG4gICAgICAgIHByb2plY3Rpb24uZ2V0Q29kZSgpXHJcbiAgICAgICkudG9GaXhlZCgyKTtcclxuICAgICAgdGhpcy5jdXJyZW50TGVuZ3RoID0gdGhpcy5sZW5ndGhJbk1ldGVycztcclxuICAgICAgdGhpcy5hcmVhSW5NZXRlcnNTcXVhcmUgPSBtZWFzdXJlT2xHZW9tZXRyeUFyZWEoXHJcbiAgICAgICAgb2xHZW9tZXRyeSxcclxuICAgICAgICBwcm9qZWN0aW9uLmdldENvZGUoKVxyXG4gICAgICApLnRvRml4ZWQoMik7XHJcbiAgICAgIHRoaXMuY3VycmVudEFyZWEgPSB0aGlzLmFyZWFJbk1ldGVyc1NxdWFyZTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkNpcmNsZSkge1xyXG4gICAgICBsZXQgY2lyY3VsYXJQb2x5Z29uID0gZnJvbUNpcmNsZShvbEdlb21ldHJ5LCAxMDAwMCk7XHJcbiAgICAgIGNvbnN0IHJhZGl1cyA9IHRoaXMuZ2V0UmFkaXVzKGNpcmN1bGFyUG9seWdvbik7XHJcbiAgICAgIHRoaXMubGVuZ3RoSW5NZXRlcnMgPSByYWRpdXMudG9GaXhlZCgyKTtcclxuICAgICAgdGhpcy5jdXJyZW50TGVuZ3RoID0gdGhpcy5sZW5ndGhJbk1ldGVycztcclxuICAgICAgdGhpcy5hcmVhSW5NZXRlcnNTcXVhcmUgPSBtZWFzdXJlT2xHZW9tZXRyeUFyZWEoXHJcbiAgICAgICAgY2lyY3VsYXJQb2x5Z29uLFxyXG4gICAgICAgIHByb2plY3Rpb24uZ2V0Q29kZSgpXHJcbiAgICAgICkudG9GaXhlZCgyKTtcclxuICAgICAgdGhpcy5jdXJyZW50QXJlYSA9IHRoaXMuYXJlYUluTWV0ZXJzU3F1YXJlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChkYXRhLm9sR2VvbWV0cnkuZ2V0KCdsYWJlbFR5cGUnKSA9PT0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzKSB7XHJcbiAgICAgIHRoaXMub25MYWJlbFR5cGVDaGFuZ2UoTGFiZWxUeXBlLlByZWRlZmluZWQpO1xyXG4gICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5Db29yZGluYXRlcywgdHJ1ZSk7XHJcbiAgICAgIHRoaXMuY29vcmRpbmF0ZXNNZWFzdXJlVW5pdCA9IGRhdGEub2xHZW9tZXRyeS5nZXQoJ21lYXN1cmVVbml0Jyk7XHJcbiAgICB9IGVsc2UgaWYgKGRhdGEub2xHZW9tZXRyeS5nZXQoJ2xhYmVsVHlwZScpID09PSBMYWJlbFR5cGUuTGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMub25MYWJlbFR5cGVDaGFuZ2UoTGFiZWxUeXBlLlByZWRlZmluZWQpO1xyXG4gICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5MZW5ndGgsIHRydWUpO1xyXG4gICAgICB0aGlzLmxlbmd0aE1lYXN1cmVVbml0ID0gZGF0YS5vbEdlb21ldHJ5LmdldCgnbWVhc3VyZVVuaXQnKTtcclxuICAgIH0gZWxzZSBpZiAoZGF0YS5vbEdlb21ldHJ5LmdldCgnbGFiZWxUeXBlJykgPT09IExhYmVsVHlwZS5BcmVhKSB7XHJcbiAgICAgIHRoaXMub25MYWJlbFR5cGVDaGFuZ2UoTGFiZWxUeXBlLlByZWRlZmluZWQpO1xyXG4gICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5BcmVhLCB0cnVlKTtcclxuICAgICAgdGhpcy5hcmVhTWVhc3VyZVVuaXQgPSBkYXRhLm9sR2VvbWV0cnkuZ2V0KCdtZWFzdXJlVW5pdCcpO1xyXG4gICAgfSBlbHNlIGlmIChkYXRhLm9sR2VvbWV0cnkuZ2V0KCdsYWJlbFR5cGUnKT8ubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgIHRoaXMub25MYWJlbFR5cGVDaGFuZ2UoTGFiZWxUeXBlLlByZWRlZmluZWQpO1xyXG4gICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5MZW5ndGgsIHRydWUpO1xyXG4gICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5BcmVhLCB0cnVlKTtcclxuICAgICAgdGhpcy5sZW5ndGhNZWFzdXJlVW5pdCA9IGRhdGEub2xHZW9tZXRyeS5nZXQoJ21lYXN1cmVVbml0JylbMF07XHJcbiAgICAgIHRoaXMuYXJlYU1lYXN1cmVVbml0ID0gZGF0YS5vbEdlb21ldHJ5LmdldCgnbWVhc3VyZVVuaXQnKVsxXTtcclxuICAgIH1cclxuICAgIHRoaXMuYnVpbGRBcnJheVR5cGUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhUTUwgSW50ZXJhY3Rpb25zXHJcbiAgICovXHJcblxyXG4gIGNhbmNlbERyYXdpbmcoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgY29uZmlybShpbnB1dD86IHN0cmluZykge1xyXG4gICAgdGhpcy5jb25maXJtRmxhZyA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5sYWJlbEZsYWcgPT09IExhYmVsVHlwZS5QcmVkZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubGFiZWxGbGFnID09PSBMYWJlbFR5cGUuQ3VzdG9tKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgICAgICBsYWJlbDogaW5wdXRcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubGFiZWxGbGFnID09PSBMYWJlbFR5cGUuQ29vcmRpbmF0ZXMpIHtcclxuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xyXG4gICAgICAgIGxhYmVsOiB0aGlzLmN1cnJlbnRDb29yZGluYXRlcyxcclxuICAgICAgICBtZWFzdXJlVW5pdDogdGhpcy5jb29yZGluYXRlc01lYXN1cmVVbml0XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuUG9seWdvbikge1xyXG4gICAgICBpZiAodGhpcy5wb2x5Z29uQ2hlY2sgPT09IDIpIHtcclxuICAgICAgICB0aGlzLmxhYmVsRmxhZyA9IFtMYWJlbFR5cGUuTGVuZ3RoLCBMYWJlbFR5cGUuQXJlYV07XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xyXG4gICAgICAgICAgbGFiZWw6XHJcbiAgICAgICAgICAgICdQOiAnICtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGVuZ3RoICtcclxuICAgICAgICAgICAgJyAnICtcclxuICAgICAgICAgICAgTWVhc3VyZUxlbmd0aFVuaXRBYmJyZXZpYXRpb25bTWVhc3VyZUxlbmd0aFVuaXQuTWV0ZXJzXSArXHJcbiAgICAgICAgICAgICdcXG4nICtcclxuICAgICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUuQScpICtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50QXJlYSArXHJcbiAgICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICAgIE1lYXN1cmVBcmVhVW5pdEFiYnJldmlhdGlvbltNZWFzdXJlQXJlYVVuaXQuU3F1YXJlTWV0ZXJzXSxcclxuICAgICAgICAgIG1lYXN1cmVVbml0OiBbdGhpcy5sZW5ndGhNZWFzdXJlVW5pdCwgdGhpcy5hcmVhTWVhc3VyZVVuaXRdXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5sYWJlbEZsYWcgPT09IExhYmVsVHlwZS5MZW5ndGhcclxuICAgICAgICAgID8gdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xyXG4gICAgICAgICAgICAgIGxhYmVsOlxyXG4gICAgICAgICAgICAgICAgJ1A6ICcgK1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TGVuZ3RoICtcclxuICAgICAgICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICAgICAgICBNZWFzdXJlTGVuZ3RoVW5pdEFiYnJldmlhdGlvblt0aGlzLmxlbmd0aE1lYXN1cmVVbml0XSxcclxuICAgICAgICAgICAgICBtZWFzdXJlVW5pdDogdGhpcy5sZW5ndGhNZWFzdXJlVW5pdFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgOiB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7XHJcbiAgICAgICAgICAgICAgbGFiZWw6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBcmVhICtcclxuICAgICAgICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICAgICAgICBNZWFzdXJlQXJlYVVuaXRBYmJyZXZpYXRpb25bdGhpcy5hcmVhTWVhc3VyZVVuaXRdLFxyXG4gICAgICAgICAgICAgIG1lYXN1cmVVbml0OiB0aGlzLmFyZWFNZWFzdXJlVW5pdFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLmxhYmVsRmxhZyA9PT0gTGFiZWxUeXBlLkxlbmd0aCkge1xyXG4gICAgICBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkNpcmNsZSkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgICAgICAgIGxhYmVsOlxyXG4gICAgICAgICAgICAnUjogJyArXHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExlbmd0aCArXHJcbiAgICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICAgIE1lYXN1cmVMZW5ndGhVbml0QWJicmV2aWF0aW9uW3RoaXMubGVuZ3RoTWVhc3VyZVVuaXRdLFxyXG4gICAgICAgICAgbWVhc3VyZVVuaXQ6IHRoaXMubGVuZ3RoTWVhc3VyZVVuaXRcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuTGluZVN0cmluZykge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgICAgICAgIGxhYmVsOlxyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMZW5ndGggK1xyXG4gICAgICAgICAgICAnICcgK1xyXG4gICAgICAgICAgICBNZWFzdXJlTGVuZ3RoVW5pdEFiYnJldmlhdGlvblt0aGlzLmxlbmd0aE1lYXN1cmVVbml0XSxcclxuICAgICAgICAgIG1lYXN1cmVVbml0OiB0aGlzLmxlbmd0aE1lYXN1cmVVbml0XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5sYWJlbEZsYWcgPT09IExhYmVsVHlwZS5BcmVhKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgICAgICBsYWJlbDpcclxuICAgICAgICAgIHRoaXMuY3VycmVudEFyZWEgK1xyXG4gICAgICAgICAgJyAnICtcclxuICAgICAgICAgIE1lYXN1cmVBcmVhVW5pdEFiYnJldmlhdGlvblt0aGlzLmFyZWFNZWFzdXJlVW5pdF0sXHJcbiAgICAgICAgbWVhc3VyZVVuaXQ6IHRoaXMuYXJlYU1lYXN1cmVVbml0XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25MYWJlbFR5cGVDaGFuZ2UobGFiZWxUeXBlOiBMYWJlbFR5cGUsIGNoZWNrZWQ/OiBib29sZWFuKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIGxhYmVsVHlwZSAhPT0gTGFiZWxUeXBlLlByZWRlZmluZWQgJiZcclxuICAgICAgbGFiZWxUeXBlICE9PSBMYWJlbFR5cGUuQ3VzdG9tICYmXHJcbiAgICAgIHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5Qb2x5Z29uXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5hcnJheUJ1aWx0SW5UeXBlLmZpbmQoKHR5cGUpID0+IHR5cGUudmFsdWUgPT09IGxhYmVsVHlwZSlcclxuICAgICAgICA/ICh0aGlzLmFycmF5QnVpbHRJblR5cGUuZmluZChcclxuICAgICAgICAgICAgKHR5cGUpID0+IHR5cGUudmFsdWUgPT09IGxhYmVsVHlwZVxyXG4gICAgICAgICAgKS5jaGVja2VkID0gY2hlY2tlZClcclxuICAgICAgICA6ICh0aGlzLmxhYmVsRmxhZyA9IHVuZGVmaW5lZCk7XHJcbiAgICAgIGNoZWNrZWRcclxuICAgICAgICA/ICh0aGlzLmxhYmVsRmxhZyA9IGxhYmVsVHlwZSlcclxuICAgICAgICA6ICh0aGlzLmxhYmVsRmxhZyA9IHRoaXMuYXJyYXlCdWlsdEluVHlwZS5maW5kKCh0eXBlKSA9PiB0eXBlLmNoZWNrZWQpXHJcbiAgICAgICAgICAgID8udmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5sYWJlbEZsYWcgPSBsYWJlbFR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGxhYmVsVHlwZSA9PT0gTGFiZWxUeXBlLlByZWRlZmluZWQpIHtcclxuICAgICAgaWYgKHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5Qb2ludCkge1xyXG4gICAgICAgIHRoaXMubGFiZWxGbGFnID0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzO1xyXG4gICAgICAgIHRoaXMuY3VycmVudENvb3JkaW5hdGVzID0gdGhpcy5jb29yZGluYXRlc0luREQ7XHJcbiAgICAgICAgdGhpcy5jb29yZGluYXRlc01lYXN1cmVVbml0ID0gQ29vcmRpbmF0ZXNVbml0LkRlY2ltYWxEZWdyZWU7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkxpbmVTdHJpbmcpIHtcclxuICAgICAgICB0aGlzLmxhYmVsRmxhZyA9IExhYmVsVHlwZS5MZW5ndGg7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TGVuZ3RoID0gdGhpcy5sZW5ndGhJbk1ldGVycztcclxuICAgICAgICB0aGlzLmxlbmd0aE1lYXN1cmVVbml0ID0gTWVhc3VyZUxlbmd0aFVuaXQuTWV0ZXJzO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGxhYmVsVHlwZSA9PT0gTGFiZWxUeXBlLkFyZWEpIHtcclxuICAgICAgdGhpcy5jdXJyZW50QXJlYSA9IHRoaXMuYXJlYUluTWV0ZXJzU3F1YXJlO1xyXG4gICAgICB0aGlzLmFyZWFNZWFzdXJlVW5pdCA9IE1lYXN1cmVBcmVhVW5pdC5TcXVhcmVNZXRlcnM7XHJcbiAgICB9IGVsc2UgaWYgKGxhYmVsVHlwZSA9PT0gTGFiZWxUeXBlLkxlbmd0aCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRMZW5ndGggPSB0aGlzLmxlbmd0aEluTWV0ZXJzO1xyXG4gICAgICB0aGlzLmxlbmd0aE1lYXN1cmVVbml0ID0gTWVhc3VyZUxlbmd0aFVuaXQuTWV0ZXJzO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmxhYmVsRmxhZyA9PT0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudENvb3JkaW5hdGVzID0gdGhpcy5jb29yZGluYXRlc0luREQ7XHJcbiAgICAgIHRoaXMuY29vcmRpbmF0ZXNNZWFzdXJlVW5pdCA9IENvb3JkaW5hdGVzVW5pdC5EZWNpbWFsRGVncmVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGxhYmVsdHlwZXMgPSBbdGhpcy5sYWJlbFR5cGUuTGVuZ3RoLCB0aGlzLmxhYmVsVHlwZS5BcmVhXTtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLlBvbHlnb24gJiZcclxuICAgICAgbGFiZWx0eXBlcy5pbmNsdWRlcyhsYWJlbFR5cGUpXHJcbiAgICApIHtcclxuICAgICAgY2hlY2tlZCA/ICh0aGlzLnBvbHlnb25DaGVjayArPSAxKSA6ICh0aGlzLnBvbHlnb25DaGVjayAtPSAxKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucG9seWdvbkNoZWNrID0gMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlTGVuZ3RoVW5pdChsZW5ndGhVbml0OiBNZWFzdXJlTGVuZ3RoVW5pdCkge1xyXG4gICAgdGhpcy5sZW5ndGhNZWFzdXJlVW5pdCA9IGxlbmd0aFVuaXQ7XHJcbiAgICB0aGlzLmN1cnJlbnRMZW5ndGggPSBtZXRlcnNUb1VuaXQoXHJcbiAgICAgIE51bWJlcih0aGlzLmxlbmd0aEluTWV0ZXJzKSxcclxuICAgICAgbGVuZ3RoVW5pdFxyXG4gICAgKS50b0ZpeGVkKDIpO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VBcmVhVW5pdChhcmVhVW5pdDogTWVhc3VyZUFyZWFVbml0KSB7XHJcbiAgICB0aGlzLmFyZWFNZWFzdXJlVW5pdCA9IGFyZWFVbml0O1xyXG4gICAgdGhpcy5jdXJyZW50QXJlYSA9IHNxdWFyZU1ldGVyc1RvVW5pdChcclxuICAgICAgTnVtYmVyKHRoaXMuYXJlYUluTWV0ZXJzU3F1YXJlKSxcclxuICAgICAgYXJlYVVuaXRcclxuICAgICkudG9GaXhlZCgyKTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlQ29vcmRpbmF0ZVVuaXQoY29vcmRpbmF0ZXNVbml0OiBDb29yZGluYXRlc1VuaXQpIHtcclxuICAgIHRoaXMuY29vcmRpbmF0ZXNNZWFzdXJlVW5pdCA9IGNvb3JkaW5hdGVzVW5pdDtcclxuICAgIGxldCBjb29yZGluYXRlcyA9IEREdG9ETVModGhpcy5sb25nbGF0REQsIGNvb3JkaW5hdGVzVW5pdCk7XHJcbiAgICB0aGlzLmN1cnJlbnRDb29yZGluYXRlcyA9XHJcbiAgICAgICcoJyArIGNvb3JkaW5hdGVzWzFdICsgJywgJyArIGNvb3JkaW5hdGVzWzBdICsgJyknO1xyXG4gIH1cclxuXHJcbiAgYnVpbGRBcnJheVR5cGUoKSB7XHJcbiAgICBmb3IgKGNvbnN0IGxhYmVsVHlwZSBvZiBPYmplY3QudmFsdWVzKExhYmVsVHlwZSkpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGxhYmVsVHlwZSAhPT0gTGFiZWxUeXBlLkN1c3RvbSAmJlxyXG4gICAgICAgIGxhYmVsVHlwZSAhPT0gTGFiZWxUeXBlLlByZWRlZmluZWRcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5hcnJheUJ1aWx0SW5UeXBlLnB1c2goe1xyXG4gICAgICAgICAgdmFsdWU6IGxhYmVsVHlwZSxcclxuICAgICAgICAgIGNoZWNrZWQ6XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0T3B0aW9ucyhsYWJlbFR5cGUpIHx8XHJcbiAgICAgICAgICAgIHRoaXMubGFiZWxGbGFnID09PSBsYWJlbFR5cGUgfHxcclxuICAgICAgICAgICAgKHRoaXMucG9seWdvbkNoZWNrID09PSAyICYmIGxhYmVsVHlwZSAhPT0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBub0xhYmVsQnV0dG9uKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmxhYmVsRmxhZyA9PT0gTGFiZWxUeXBlLlByZWRlZmluZWQgfHxcclxuICAgICAgKHRoaXMubGFiZWxGbGFnID09PSBMYWJlbFR5cGUuQ3VzdG9tICYmIHRoaXMubGFiZWxMZW5ndGggPT09IDApXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRyYXcubm9MYWJlbCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAnT0snO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGN1c3RvbU9yUHJlZGVmaW5lZCgpIHtcclxuICAgIGlmICh0aGlzLmxhYmVsRmxhZyA9PT0gTGFiZWxUeXBlLkN1c3RvbSkge1xyXG4gICAgICByZXR1cm4gTGFiZWxUeXBlLkN1c3RvbTtcclxuICAgIH1cclxuICAgIHJldHVybiBMYWJlbFR5cGUuUHJlZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIG9wdGlvbkF2YWlsYWJsZShjdXJyZW50T3B0aW9uOiBMYWJlbFR5cGUpIHtcclxuICAgIHN3aXRjaCAodGhpcy5vbEdlb21ldHJ5VHlwZSkge1xyXG4gICAgICBjYXNlIEdlb21ldHJ5VHlwZS5Qb2ludDpcclxuICAgICAgICBpZiAoY3VycmVudE9wdGlvbiA9PT0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBjYXNlIEdlb21ldHJ5VHlwZS5MaW5lU3RyaW5nOlxyXG4gICAgICAgIGlmIChjdXJyZW50T3B0aW9uID09PSBMYWJlbFR5cGUuTGVuZ3RoKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBjYXNlIEdlb21ldHJ5VHlwZS5Qb2x5Z29uOlxyXG4gICAgICAgIGlmIChjdXJyZW50T3B0aW9uID09PSBMYWJlbFR5cGUuQ29vcmRpbmF0ZXMpIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGFsbExlbmd0aFVuaXRzKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKE1lYXN1cmVMZW5ndGhVbml0KTtcclxuICB9XHJcblxyXG4gIGdldExlbmd0aFVuaXRFbnVtKGxlbmd0aFVuaXQ6IE1lYXN1cmVMZW5ndGhVbml0KSB7XHJcbiAgICByZXR1cm4gTWVhc3VyZUxlbmd0aFVuaXRBYmJyZXZpYXRpb25bbGVuZ3RoVW5pdF07XHJcbiAgfVxyXG5cclxuICBnZXQgYWxsQXJlYVVuaXRzKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKE1lYXN1cmVBcmVhVW5pdCk7XHJcbiAgfVxyXG5cclxuICBnZXQgYWxsQ29vcmRpbmF0ZXNVbml0cygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhDb29yZGluYXRlc1VuaXQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QXJlYVVuaXRFbnVtKGFyZWFVbml0OiBNZWFzdXJlQXJlYVVuaXQpIHtcclxuICAgIHJldHVybiBNZWFzdXJlQXJlYVVuaXRBYmJyZXZpYXRpb25bYXJlYVVuaXRdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRSYWRpdXMob2xHZW9tZXRyeSk6IG51bWJlciB7XHJcbiAgICBjb25zdCBsZW5ndGggPSBnZXRMZW5ndGgob2xHZW9tZXRyeSk7XHJcbiAgICByZXR1cm4gTnVtYmVyKGxlbmd0aCAvICgyICogTWF0aC5QSSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxlbmd0aExhYmVsVCgpIHtcclxuICAgIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuUG9seWdvbikge1xyXG4gICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgJ2lnby5nZW8ubWVhc3VyZS5wZXJpbWV0ZXInXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkNpcmNsZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgJ2lnby5nZW8uc2VhcmNoLmNvb3JkaW5hdGVzLnJhZGl1cydcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUuTGVuZ3RoJ1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldExhYmVsTGVuZ3RoKGV2ZW50Pykge1xyXG4gICAgdGhpcy5sYWJlbExlbmd0aCA9IGV2ZW50Lmxlbmd0aDtcclxuICB9XHJcblxyXG4gIHNlbGVjdE9wdGlvbnMob3B0aW9uKSB7XHJcbiAgICBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLlBvaW50KSB7XHJcbiAgICAgIHJldHVybiBvcHRpb24gPT09IExhYmVsVHlwZS5Db29yZGluYXRlcztcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkxpbmVTdHJpbmcpIHtcclxuICAgICAgcmV0dXJuIG9wdGlvbiA9PT0gTGFiZWxUeXBlLkxlbmd0aDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFByb3Blckxlbmd0aExhYmVsKG9wdGlvbikge1xyXG4gICAgaWYgKG9wdGlvbiA9PT0gTGFiZWxUeXBlLkxlbmd0aCkge1xyXG4gICAgICBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLlBvbHlnb24pIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAnaWdvLmdlby5tZWFzdXJlLnBlcmltZXRlcidcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuQ2lyY2xlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgJ2lnby5nZW8uc2VhcmNoLmNvb3JkaW5hdGVzLnJhZGl1cydcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAnaWdvLmdlby5kcmF3LmxhYmVsVHlwZS5MZW5ndGgnXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICdpZ28uZ2VvLmRyYXcubGFiZWxUeXBlLicgKyBvcHRpb25cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIjxoMiBtYXQtZGlhbG9nLXRpdGxlPlxyXG4gIHt7ICdpZ28uZ2VvLmRyYXcucG9wdXBUaXRsZScgfCB0cmFuc2xhdGUgfX1cclxuPC9oMj5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbEZsYWcgIT09IGxhYmVsVHlwZS5DdXN0b21cIj5cclxuICA8ZGl2IG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImdlb21ldHJ5LXR5cGUtdG9nZ2xlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXRvZ2dsZS1jb250YWluZXJcIj5cclxuICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwXHJcbiAgICAgICAgKGNoYW5nZSk9XCJvbkxhYmVsVHlwZUNoYW5nZSgkZXZlbnQudmFsdWUpXCJcclxuICAgICAgICBbdmFsdWVdPVwiY3VzdG9tT3JQcmVkZWZpbmVkXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwibGFiZWxUeXBlLkN1c3RvbVwiPlxyXG4gICAgICAgICAge3sgJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUuY3VzdG9tJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIFt2YWx1ZV09XCJsYWJlbFR5cGUuUHJlZGVmaW5lZFwiPlxyXG4gICAgICAgICAge3sgJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUucHJlZGVmaW5lZCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8cD5cclxuICAgICAgICB7eyAnaWdvLmdlby5kcmF3LmJ1aWx0SW5JbnN0cnVjdGlvbnMnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvcD5cclxuICAgICAgPG1hdC1yYWRpby1ncm91cCAqbmdJZj1cIm9sR2VvbWV0cnlUeXBlICE9PSAnUG9seWdvbidcIj5cclxuICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBhcnJheUJ1aWx0SW5UeXBlXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbkF2YWlsYWJsZShvcHRpb24udmFsdWUpXCJcclxuICAgICAgICAgIChjaGFuZ2UpPVwib25MYWJlbFR5cGVDaGFuZ2UoJGV2ZW50LnZhbHVlKVwiXHJcbiAgICAgICAgICBbY2hlY2tlZF09XCJvcHRpb24uY2hlY2tlZFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgZ2V0UHJvcGVyTGVuZ3RoTGFiZWwob3B0aW9uLnZhbHVlKSB9fVxyXG4gICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvbEdlb21ldHJ5VHlwZSA9PT0gJ1BvbHlnb24nXCI+XHJcbiAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBhcnJheUJ1aWx0SW5UeXBlXCJcclxuICAgICAgICAgIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwib3B0aW9uQXZhaWxhYmxlKG9wdGlvbi52YWx1ZSlcIlxyXG4gICAgICAgICAgKGNoYW5nZSk9XCJvbkxhYmVsVHlwZUNoYW5nZSgkZXZlbnQuc291cmNlLnZhbHVlLCAkZXZlbnQuY2hlY2tlZClcIlxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwib3B0aW9uLmNoZWNrZWRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGdldFByb3Blckxlbmd0aExhYmVsKG9wdGlvbi52YWx1ZSkgfX1cclxuICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJsYWJlbEZsYWcgPT09IGxhYmVsVHlwZS5Db29yZGluYXRlc1wiIGNsYXNzPVwiZmllbGRzLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInJlYWRPbmx5LUlucHV0XCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPihMYXRpdHVkZSwgTG9uZ2l0dWRlKTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICNpbnB1dFxyXG4gICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIihMYXRpdHVkZSwgTG9uZ2l0dWRlKVwiXHJcbiAgICAgICAgICAgIHZhbHVlPVwie3sgY3VycmVudENvb3JkaW5hdGVzIH19XCJcclxuICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ1bml0LWZpZWxkXCI+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICBbdmFsdWVdPVwiY29vcmRpbmF0ZXNNZWFzdXJlVW5pdFwiXHJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25DaGFuZ2VDb29yZGluYXRlVW5pdCgkZXZlbnQudmFsdWUpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHVuaXQgb2YgYWxsQ29vcmRpbmF0ZXNVbml0c1wiIFt2YWx1ZV09XCJ1bml0XCI+XHJcbiAgICAgICAgICAgICAge3sgdW5pdCB9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cImxhYmVsRmxhZyA9PT0gbGFiZWxUeXBlLkxlbmd0aCB8fCBwb2x5Z29uQ2hlY2sgPT09IDJcIlxyXG4gICAgICAgIGNsYXNzPVwiZmllbGRzLWNvbnRhaW5lclwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJyZWFkT25seS1JbnB1dFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eyBsZW5ndGhMYWJlbFQgfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAjaW5wdXRcclxuICAgICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBsZW5ndGhMYWJlbFQgfX1cIlxyXG4gICAgICAgICAgICB2YWx1ZT1cInt7IGN1cnJlbnRMZW5ndGggfX1cIlxyXG4gICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInVuaXQtZmllbGRcIj5cclxuICAgICAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJsZW5ndGhNZWFzdXJlVW5pdFwiXHJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25DaGFuZ2VMZW5ndGhVbml0KCRldmVudC52YWx1ZSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdW5pdCBvZiBhbGxMZW5ndGhVbml0c1wiIFt2YWx1ZV09XCJ1bml0XCI+XHJcbiAgICAgICAgICAgICAge3sgZ2V0TGVuZ3RoVW5pdEVudW0odW5pdCkgfX1cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJsYWJlbEZsYWcgPT09IGxhYmVsVHlwZS5BcmVhIHx8IHBvbHlnb25DaGVjayA9PT0gMlwiXHJcbiAgICAgICAgY2xhc3M9XCJmaWVsZHMtY29udGFpbmVyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInJlYWRPbmx5LUlucHV0XCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLmRyYXcubGFiZWxUeXBlLkFyZWEnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgI2lucHV0XHJcbiAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUuQXJlYScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICB2YWx1ZT1cInt7IGN1cnJlbnRBcmVhIH19XCJcclxuICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ1bml0LWZpZWxkXCI+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICBbdmFsdWVdPVwiYXJlYU1lYXN1cmVVbml0XCJcclxuICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkNoYW5nZUFyZWFVbml0KCRldmVudC52YWx1ZSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdW5pdCBvZiBhbGxBcmVhVW5pdHNcIiBbdmFsdWVdPVwidW5pdFwiPlxyXG4gICAgICAgICAgICAgIHt7IGdldEFyZWFVbml0RW51bSh1bml0KSB9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJjYW5jZWxEcmF3aW5nKClcIj5cclxuICAgICAge3sgJ2lnby5nZW8uZHJhdy5jYW5jZWwnIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNvbmZpcm0oKVwiPlxyXG4gICAgICB7eyBub0xhYmVsQnV0dG9uKCkgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbEZsYWcgPT09IGxhYmVsVHlwZS5DdXN0b21cIj5cclxuICA8ZGl2IG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImdlb21ldHJ5LXR5cGUtdG9nZ2xlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXRvZ2dsZS1jb250YWluZXJcIj5cclxuICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwXHJcbiAgICAgICAgKGNoYW5nZSk9XCJvbkxhYmVsVHlwZUNoYW5nZSgkZXZlbnQudmFsdWUpXCJcclxuICAgICAgICBbdmFsdWVdPVwiY3VzdG9tT3JQcmVkZWZpbmVkXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwibGFiZWxUeXBlLkN1c3RvbVwiPlxyXG4gICAgICAgICAge3sgJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUuY3VzdG9tJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIFt2YWx1ZV09XCJsYWJlbFR5cGUuUHJlZGVmaW5lZFwiPlxyXG4gICAgICAgICAge3sgJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUucHJlZGVmaW5lZCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8cD5cclxuICAgICAge3sgJ2lnby5nZW8uZHJhdy5kaWFsb2dJbnN0cnVjdGlvbicgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvcD5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImlucHV0XCI+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3sgJ2lnby5nZW8uZHJhdy5kaWFsb2dUaXRsZScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgI2lucHV0XHJcbiAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAoc2VsZWN0KT1cIih0cnVlKVwiXHJcbiAgICAgICAgKGlucHV0KT1cImdldExhYmVsTGVuZ3RoKCRldmVudC50YXJnZXQudmFsdWUpXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLmRyYXcuZGlhbG9nVGl0bGUnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICB2YWx1ZT1cInt7IGN1cnJlbnRMYWJlbCB9fVwiXHJcbiAgICAgICAgY2RrRm9jdXNJbml0aWFsXHJcbiAgICAgIC8+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImNhbmNlbERyYXdpbmcoKVwiPlxyXG4gICAgICB7eyAnaWdvLmdlby5kcmF3LmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY29uZmlybShpbnB1dC52YWx1ZSlcIj5cclxuICAgICAge3sgbm9MYWJlbEJ1dHRvbigpIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
381
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrawPopupComponent, decorators: [{
382
+ type: Component,
383
+ args: [{ selector: 'igo-draw-popup-component', template: "<h2 mat-dialog-title>\r\n {{ 'igo.geo.draw.popupTitle' | translate }}\r\n</h2>\r\n\r\n<ng-container *ngIf=\"labelFlag !== labelType.Custom\">\r\n <div mat-dialog-content class=\"geometry-type-toggle\">\r\n <div class=\"button-toggle-container\">\r\n <mat-button-toggle-group\r\n (change)=\"onLabelTypeChange($event.value)\"\r\n [value]=\"customOrPredefined\"\r\n >\r\n <mat-button-toggle [value]=\"labelType.Custom\">\r\n {{ 'igo.geo.draw.labelType.custom' | translate }}\r\n </mat-button-toggle>\r\n <mat-button-toggle [value]=\"labelType.Predefined\">\r\n {{ 'igo.geo.draw.labelType.predefined' | translate }}\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n <div>\r\n <p>\r\n {{ 'igo.geo.draw.builtInInstructions' | translate }}\r\n </p>\r\n <mat-radio-group *ngIf=\"olGeometryType !== 'Polygon'\">\r\n <mat-radio-button\r\n *ngFor=\"let option of arrayBuiltInType\"\r\n [value]=\"option.value\"\r\n [disabled]=\"optionAvailable(option.value)\"\r\n (change)=\"onLabelTypeChange($event.value)\"\r\n [checked]=\"option.checked\"\r\n >\r\n {{ getProperLengthLabel(option.value) }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n <ng-container *ngIf=\"olGeometryType === 'Polygon'\">\r\n <mat-checkbox\r\n *ngFor=\"let option of arrayBuiltInType\"\r\n class=\"mat-typography\"\r\n [value]=\"option.value\"\r\n [disabled]=\"optionAvailable(option.value)\"\r\n (change)=\"onLabelTypeChange($event.source.value, $event.checked)\"\r\n [checked]=\"option.checked\"\r\n >\r\n {{ getProperLengthLabel(option.value) }}\r\n </mat-checkbox>\r\n </ng-container>\r\n <div *ngIf=\"labelFlag === labelType.Coordinates\" class=\"fields-container\">\r\n <mat-form-field class=\"readOnly-Input\">\r\n <mat-label>(Latitude, Longitude)</mat-label>\r\n <input\r\n #input\r\n matInput\r\n placeholder=\"(Latitude, Longitude)\"\r\n value=\"{{ currentCoordinates }}\"\r\n readonly\r\n />\r\n </mat-form-field>\r\n <mat-form-field class=\"unit-field\">\r\n <mat-select\r\n [value]=\"coordinatesMeasureUnit\"\r\n (selectionChange)=\"onChangeCoordinateUnit($event.value)\"\r\n >\r\n <mat-option *ngFor=\"let unit of allCoordinatesUnits\" [value]=\"unit\">\r\n {{ unit }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div\r\n *ngIf=\"labelFlag === labelType.Length || polygonCheck === 2\"\r\n class=\"fields-container\"\r\n >\r\n <mat-form-field class=\"readOnly-Input\">\r\n <mat-label>{{ lengthLabelT }}</mat-label>\r\n <input\r\n #input\r\n matInput\r\n placeholder=\"{{ lengthLabelT }}\"\r\n value=\"{{ currentLength }}\"\r\n readonly\r\n />\r\n </mat-form-field>\r\n <mat-form-field class=\"unit-field\">\r\n <mat-select\r\n [value]=\"lengthMeasureUnit\"\r\n (selectionChange)=\"onChangeLengthUnit($event.value)\"\r\n >\r\n <mat-option *ngFor=\"let unit of allLengthUnits\" [value]=\"unit\">\r\n {{ getLengthUnitEnum(unit) }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div\r\n *ngIf=\"labelFlag === labelType.Area || polygonCheck === 2\"\r\n class=\"fields-container\"\r\n >\r\n <mat-form-field class=\"readOnly-Input\">\r\n <mat-label>{{ 'igo.geo.draw.labelType.Area' | translate }}</mat-label>\r\n <input\r\n #input\r\n matInput\r\n placeholder=\"{{ 'igo.geo.draw.labelType.Area' | translate }}\"\r\n value=\"{{ currentArea }}\"\r\n readonly\r\n />\r\n </mat-form-field>\r\n <mat-form-field class=\"unit-field\">\r\n <mat-select\r\n [value]=\"areaMeasureUnit\"\r\n (selectionChange)=\"onChangeAreaUnit($event.value)\"\r\n >\r\n <mat-option *ngFor=\"let unit of allAreaUnits\" [value]=\"unit\">\r\n {{ getAreaUnitEnum(unit) }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div mat-dialog-actions>\r\n <button mat-raised-button (click)=\"cancelDrawing()\">\r\n {{ 'igo.geo.draw.cancel' | translate }}\r\n </button>\r\n <button mat-raised-button color=\"primary\" (click)=\"confirm()\">\r\n {{ noLabelButton() }}\r\n </button>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"labelFlag === labelType.Custom\">\r\n <div mat-dialog-content class=\"geometry-type-toggle\">\r\n <div class=\"button-toggle-container\">\r\n <mat-button-toggle-group\r\n (change)=\"onLabelTypeChange($event.value)\"\r\n [value]=\"customOrPredefined\"\r\n >\r\n <mat-button-toggle [value]=\"labelType.Custom\">\r\n {{ 'igo.geo.draw.labelType.custom' | translate }}\r\n </mat-button-toggle>\r\n <mat-button-toggle [value]=\"labelType.Predefined\">\r\n {{ 'igo.geo.draw.labelType.predefined' | translate }}\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n <p>\r\n {{ 'igo.geo.draw.dialogInstruction' | translate }}\r\n </p>\r\n <mat-form-field class=\"input\">\r\n <mat-label>{{ 'igo.geo.draw.dialogTitle' | translate }}</mat-label>\r\n <input\r\n #input\r\n matInput\r\n (select)=\"(true)\"\r\n (input)=\"getLabelLength($event.target.value)\"\r\n placeholder=\"{{ 'igo.geo.draw.dialogTitle' | translate }}\"\r\n value=\"{{ currentLabel }}\"\r\n cdkFocusInitial\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div mat-dialog-actions>\r\n <button mat-raised-button (click)=\"cancelDrawing()\">\r\n {{ 'igo.geo.draw.cancel' | translate }}\r\n </button>\r\n <button mat-raised-button color=\"primary\" (click)=\"confirm(input.value)\">\r\n {{ noLabelButton() }}\r\n </button>\r\n </div>\r\n</ng-container>\r\n", styles: [":host .mat-mdc-radio-button~.mat-radio-button{margin-left:12px}:host .readOnly-Input{width:200px!important}:host .button-toggle-container{margin-bottom:12px}:host .unit-field{margin-left:12px}:host .unit-field ::ng-deep .mat-mdc-form-field-infix{width:-moz-fit-content;width:fit-content}:host .unit-field ::ng-deep .mat-mdc-select-min-line{padding-right:24px}:host .mat-mdc-form-field{position:sticky!important}:host .coordinatesInputView{top:5em!important}:host .mat-mdc-dialog-actions{display:flex!important;justify-content:flex-end}:host .input{width:auto!important}:host .mat-button-toggle-group,:host .mat-button-toggle{width:100%}:host mat-checkbox{margin-right:10px}:host ::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{display:none}\n"] }]
384
+ }], ctorParameters: function () { return [{ type: i1.LanguageService }, { type: i2.MatDialogRef }, { type: undefined, decorators: [{
385
+ type: Inject,
386
+ args: [MAT_DIALOG_DATA]
387
+ }] }]; }, propDecorators: { confirmFlag: [{
388
+ type: Input
389
+ }], labelFlag: [{
390
+ type: Input
391
+ }], coordinatesMeasureUnit: [{
392
+ type: Input
393
+ }], lengthMeasureUnit: [{
394
+ type: Input
395
+ }], areaMeasureUnit: [{
396
+ type: Input
397
+ }] } });
398
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhdy1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kcmF3L2RyYXcvZHJhdy1wb3B1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kcmF3L2RyYXcvZHJhdy1wb3B1cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTdDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLE1BQU0sTUFBTSxnQkFBZ0IsQ0FBQztBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXRDLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLDJCQUEyQixFQUMzQixpQkFBaUIsRUFDakIsNkJBQTZCLEVBQzlCLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUNMLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLGtCQUFrQixFQUNuQixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPL0MsTUFBTSxPQUFPLGtCQUFrQjtJQTRCbkI7SUFDRDtJQUN5QjtJQTdCekIsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixTQUFTLEdBQXVDLFNBQVMsQ0FBQyxNQUFNLENBQUM7SUFDakUsc0JBQXNCLENBQWtCO0lBQ3hDLGlCQUFpQixDQUFvQjtJQUNyQyxlQUFlLENBQWtCO0lBRW5DLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDNUIsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUN0QixnQkFBZ0IsR0FBVSxFQUFFLENBQUM7SUFFN0IsWUFBWSxDQUFTO0lBQ3JCLGtCQUFrQixDQUFTO0lBQzNCLFdBQVcsQ0FBUztJQUNwQixhQUFhLENBQVM7SUFFdEIsY0FBYyxHQUFpQixTQUFTLENBQUM7SUFDekMsY0FBYyxDQUFTO0lBQ3ZCLGtCQUFrQixDQUFTO0lBQzNCLGVBQWUsQ0FBUztJQUN4QixzQkFBc0IsQ0FBUztJQUU5QixTQUFTLENBQW1CO0lBQzVCLFdBQVcsQ0FBUztJQUVyQixZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsMkNBQTJDO0lBRXBFLFlBQ1UsZUFBZ0MsRUFDakMsU0FBMkMsRUFDbEIsSUFBc0M7UUFGOUQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2pDLGNBQVMsR0FBVCxTQUFTLENBQWtDO1FBQ2xCLFNBQUksR0FBSixJQUFJLENBQWtDO1FBRXRFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRSxJQUFJLFVBQVUsQ0FBQztRQUVmLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUU5RCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxZQUFZLFNBQVMsRUFBRTtZQUM3QyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDbkMsTUFBTSxpQkFBaUIsR0FBRztvQkFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztvQkFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztpQkFDckMsQ0FBQztnQkFDRixJQUFJLENBQUMsY0FBYyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7Z0JBQzFDLFVBQVUsR0FBRyxJQUFJLE1BQU0sQ0FDckIsaUJBQWlCLEVBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FDaEMsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ25FLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDbkQ7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyRCxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDbkM7UUFFRCxJQUNFLElBQUksQ0FBQyxjQUFjLEtBQUssWUFBWSxDQUFDLEtBQUs7WUFDMUMsSUFBSSxDQUFDLGNBQWMsS0FBSyxZQUFZLENBQUMsTUFBTSxFQUMzQztZQUNBLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLFlBQVksU0FBUyxFQUFFO2dCQUM3QyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3RELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxHQUFHLFFBQVEsR0FBRyxJQUFJLEdBQUcsU0FBUyxHQUFHLEdBQUcsQ0FBQzthQUNoRTtpQkFBTTtnQkFDTCxJQUFJLFNBQVMsR0FBRyxTQUFTLENBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFLEVBQ3pDLFVBQVUsRUFDVixXQUFXLENBQ1osQ0FBQztnQkFDRixJQUFJLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDL0QsSUFBSSxDQUFDLGVBQWU7b0JBQ2xCLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQzthQUM1RDtZQUNELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQ2hEO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLFlBQVksQ0FBQyxVQUFVLEVBQUU7WUFDbkQsSUFBSSxDQUFDLGNBQWMsR0FBRyx1QkFBdUIsQ0FDM0MsVUFBVSxFQUNWLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FDckIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDYixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDMUM7YUFBTSxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssWUFBWSxDQUFDLE9BQU8sRUFBRTtZQUN2RCxJQUFJLENBQUMsY0FBYyxHQUFHLHVCQUF1QixDQUMzQyxVQUFVLEVBQ1YsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUNyQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNiLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUN6QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcscUJBQXFCLENBQzdDLFVBQVUsRUFDVixVQUFVLENBQUMsT0FBTyxFQUFFLENBQ3JCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7U0FDNUM7YUFBTSxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssWUFBWSxDQUFDLE1BQU0sRUFBRTtZQUN0RCxJQUFJLGVBQWUsR0FBRyxVQUFVLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3BELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUN6QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcscUJBQXFCLENBQzdDLGVBQWUsRUFDZixVQUFVLENBQUMsT0FBTyxFQUFFLENBQ3JCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7U0FDNUM7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxXQUFXLEVBQUU7WUFDOUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDbEU7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDaEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDN0Q7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxJQUFJLEVBQUU7WUFDOUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQzNEO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3pELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDOUQ7UUFDRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBRUgsYUFBYTtRQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFjO1FBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsVUFBVSxFQUFFO1lBQzNDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDeEI7YUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLE1BQU0sRUFBRTtZQUM5QyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztnQkFDbkIsS0FBSyxFQUFFLEtBQUs7YUFDYixDQUFDLENBQUM7U0FDSjthQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsV0FBVyxFQUFFO1lBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2dCQUNuQixLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtnQkFDOUIsV0FBVyxFQUFFLElBQUksQ0FBQyxzQkFBc0I7YUFDekMsQ0FBQyxDQUFDO1NBQ0o7YUFBTSxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssWUFBWSxDQUFDLE9BQU8sRUFBRTtZQUN2RCxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssQ0FBQyxFQUFFO2dCQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO29CQUNuQixLQUFLLEVBQ0gsS0FBSzt3QkFDTCxJQUFJLENBQUMsYUFBYTt3QkFDbEIsR0FBRzt3QkFDSCw2QkFBNkIsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7d0JBQ3ZELElBQUk7d0JBQ0osSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDO3dCQUNsRSxJQUFJLENBQUMsV0FBVzt3QkFDaEIsR0FBRzt3QkFDSCwyQkFBMkIsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDO29CQUMzRCxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQztpQkFDNUQsQ0FBQyxDQUFDO2FBQ0o7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsTUFBTTtvQkFDakMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO3dCQUNuQixLQUFLLEVBQ0gsS0FBSzs0QkFDTCxJQUFJLENBQUMsYUFBYTs0QkFDbEIsR0FBRzs0QkFDSCw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7d0JBQ3ZELFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCO3FCQUNwQyxDQUFDO29CQUNKLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQzt3QkFDbkIsS0FBSyxFQUNILElBQUksQ0FBQyxXQUFXOzRCQUNoQixHQUFHOzRCQUNILDJCQUEyQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7d0JBQ25ELFdBQVcsRUFBRSxJQUFJLENBQUMsZUFBZTtxQkFDbEMsQ0FBQyxDQUFDO2FBQ1I7U0FDRjthQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQzlDLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztvQkFDbkIsS0FBSyxFQUNILEtBQUs7d0JBQ0wsSUFBSSxDQUFDLGFBQWE7d0JBQ2xCLEdBQUc7d0JBQ0gsNkJBQTZCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO29CQUN2RCxXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtpQkFDcEMsQ0FBQyxDQUFDO2FBQ0o7aUJBQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLFlBQVksQ0FBQyxVQUFVLEVBQUU7Z0JBQzFELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO29CQUNuQixLQUFLLEVBQ0gsSUFBSSxDQUFDLGFBQWE7d0JBQ2xCLEdBQUc7d0JBQ0gsNkJBQTZCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO29CQUN2RCxXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtpQkFDcEMsQ0FBQyxDQUFDO2FBQ0o7U0FDRjthQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFO1lBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2dCQUNuQixLQUFLLEVBQ0gsSUFBSSxDQUFDLFdBQVc7b0JBQ2hCLEdBQUc7b0JBQ0gsMkJBQTJCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDbkQsV0FBVyxFQUFFLElBQUksQ0FBQyxlQUFlO2FBQ2xDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELGlCQUFpQixDQUFDLFNBQW9CLEVBQUUsT0FBaUI7UUFDdkQsSUFDRSxTQUFTLEtBQUssU0FBUyxDQUFDLFVBQVU7WUFDbEMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxNQUFNO1lBQzlCLElBQUksQ0FBQyxjQUFjLEtBQUssWUFBWSxDQUFDLE9BQU8sRUFDNUM7WUFDQSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQztnQkFDNUQsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDekIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUNuQyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7Z0JBQ3RCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLENBQUM7WUFDakMsT0FBTztnQkFDTCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztnQkFDOUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO29CQUNsRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ2hCO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztTQUM1QjtRQUVELElBQUksU0FBUyxLQUFLLFNBQVMsQ0FBQyxVQUFVLEVBQUU7WUFDdEMsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLFlBQVksQ0FBQyxLQUFLLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxlQUFlLENBQUMsYUFBYSxDQUFDO2FBQzdEO2lCQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxZQUFZLENBQUMsVUFBVSxFQUFFO2dCQUMxRCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztnQkFDekMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQzthQUNuRDtTQUNGO2FBQU0sSUFBSSxTQUFTLEtBQUssU0FBUyxDQUFDLElBQUksRUFBRTtZQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztZQUMzQyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQyxZQUFZLENBQUM7U0FDckQ7YUFBTSxJQUFJLFNBQVMsS0FBSyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUN6QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1NBQ25EO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxXQUFXLEVBQUU7WUFDbkQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDL0MsSUFBSSxDQUFDLHNCQUFzQixHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQUM7U0FDN0Q7UUFFRCxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEUsSUFDRSxJQUFJLENBQUMsY0FBYyxLQUFLLFlBQVksQ0FBQyxPQUFPO1lBQzVDLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQzlCO1lBQ0EsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQztTQUMvRDthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsVUFBNkI7UUFDOUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztRQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FDL0IsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFDM0IsVUFBVSxDQUNYLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVELGdCQUFnQixDQUFDLFFBQXlCO1FBQ3hDLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsa0JBQWtCLENBQ25DLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFDL0IsUUFBUSxDQUNULENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVELHNCQUFzQixDQUFDLGVBQWdDO1FBQ3JELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxlQUFlLENBQUM7UUFDOUMsSUFBSSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLGtCQUFrQjtZQUNyQixHQUFHLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxjQUFjO1FBQ1osS0FBSyxNQUFNLFNBQVMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ2hELElBQ0UsU0FBUyxLQUFLLFNBQVMsQ0FBQyxNQUFNO2dCQUM5QixTQUFTLEtBQUssU0FBUyxDQUFDLFVBQVUsRUFDbEM7Z0JBQ0EsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztvQkFDekIsS0FBSyxFQUFFLFNBQVM7b0JBQ2hCLE9BQU8sRUFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQzt3QkFDN0IsSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTO3dCQUM1QixDQUFDLElBQUksQ0FBQyxZQUFZLEtBQUssQ0FBQyxJQUFJLFNBQVMsS0FBSyxTQUFTLENBQUMsV0FBVyxDQUFDO2lCQUNuRSxDQUFDLENBQUM7YUFDSjtTQUNGO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUNFLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLFVBQVU7WUFDdkMsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxDQUFDLENBQUMsRUFDL0Q7WUFDQSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1NBQ3ZFO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDdkMsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDO1NBQ3pCO1FBQ0QsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDO0lBQzlCLENBQUM7SUFFRCxlQUFlLENBQUMsYUFBd0I7UUFDdEMsUUFBUSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQzNCLEtBQUssWUFBWSxDQUFDLEtBQUs7Z0JBQ3JCLElBQUksYUFBYSxLQUFLLFNBQVMsQ0FBQyxXQUFXLEVBQUU7b0JBQzNDLE9BQU8sS0FBSyxDQUFDO2lCQUNkO2dCQUNELE9BQU8sSUFBSSxDQUFDO1lBQ2QsS0FBSyxZQUFZLENBQUMsVUFBVTtnQkFDMUIsSUFBSSxhQUFhLEtBQUssU0FBUyxDQUFDLE1BQU0sRUFBRTtvQkFDdEMsT0FBTyxLQUFLLENBQUM7aUJBQ2Q7Z0JBQ0QsT0FBTyxJQUFJLENBQUM7WUFDZCxLQUFLLFlBQVksQ0FBQyxPQUFPO2dCQUN2QixJQUFJLGFBQWEsS0FBSyxTQUFTLENBQUMsV0FBVyxFQUFFO29CQUMzQyxPQUFPLElBQUksQ0FBQztpQkFDYjtnQkFDRCxPQUFPLEtBQUssQ0FBQztZQUNmO2dCQUNFLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsVUFBNkI7UUFDN0MsT0FBTyw2QkFBNkIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxRQUF5QjtRQUN2QyxPQUFPLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxTQUFTLENBQUMsVUFBVTtRQUMxQixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckMsT0FBTyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssWUFBWSxDQUFDLE9BQU8sRUFBRTtZQUNoRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FDM0MsMkJBQTJCLENBQzVCLENBQUM7U0FDSDtRQUNELElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQy9DLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUMzQyxtQ0FBbUMsQ0FDcEMsQ0FBQztTQUNIO1FBQ0QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQzNDLCtCQUErQixDQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFNO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQU07UUFDbEIsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLFlBQVksQ0FBQyxLQUFLLEVBQUU7WUFDOUMsT0FBTyxNQUFNLEtBQUssU0FBUyxDQUFDLFdBQVcsQ0FBQztTQUN6QzthQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxZQUFZLENBQUMsVUFBVSxFQUFFO1lBQzFELE9BQU8sTUFBTSxLQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsTUFBTTtRQUN6QixJQUFJLE1BQU0sS0FBSyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQy9CLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxZQUFZLENBQUMsT0FBTyxFQUFFO2dCQUNoRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FDM0MsMkJBQTJCLENBQzVCLENBQUM7YUFDSDtZQUNELElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUMvQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FDM0MsbUNBQW1DLENBQ3BDLENBQUM7YUFDSDtZQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUMzQywrQkFBK0IsQ0FDaEMsQ0FBQztTQUNIO1FBQ0QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQzNDLHlCQUF5QixHQUFHLE1BQU0sQ0FDbkMsQ0FBQztJQUNKLENBQUM7d0dBbGFVLGtCQUFrQiw2RUE4Qm5CLGVBQWU7NEZBOUJkLGtCQUFrQiw4UENoQy9CLDQwTUE0S0E7OzRGRDVJYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsMEJBQTBCOzswQkFrQ2pDLE1BQU07MkJBQUMsZUFBZTs0Q0E3QmhCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5cclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQgT2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xyXG5pbXBvcnQgQ2lyY2xlIGZyb20gJ29sL2dlb20vQ2lyY2xlJztcclxuaW1wb3J0IHsgZnJvbUNpcmNsZSB9IGZyb20gJ29sL2dlb20vUG9seWdvbic7XHJcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJ29sL3Byb2onO1xyXG5pbXBvcnQgeyBnZXRMZW5ndGggfSBmcm9tICdvbC9zcGhlcmUnO1xyXG5cclxuaW1wb3J0IHsgSWdvTWFwLCByb3VuZENvb3JkVG8gfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkJztcclxuaW1wb3J0IHtcclxuICBNZWFzdXJlQXJlYVVuaXQsXHJcbiAgTWVhc3VyZUFyZWFVbml0QWJicmV2aWF0aW9uLFxyXG4gIE1lYXN1cmVMZW5ndGhVbml0LFxyXG4gIE1lYXN1cmVMZW5ndGhVbml0QWJicmV2aWF0aW9uXHJcbn0gZnJvbSAnLi4vLi4vbWVhc3VyZS9zaGFyZWQvbWVhc3VyZS5lbnVtJztcclxuaW1wb3J0IHtcclxuICBtZWFzdXJlT2xHZW9tZXRyeUFyZWEsXHJcbiAgbWVhc3VyZU9sR2VvbWV0cnlMZW5ndGgsXHJcbiAgbWV0ZXJzVG9Vbml0LFxyXG4gIHNxdWFyZU1ldGVyc1RvVW5pdFxyXG59IGZyb20gJy4uLy4uL21lYXN1cmUvc2hhcmVkL21lYXN1cmUudXRpbHMnO1xyXG5pbXBvcnQgeyBDb29yZGluYXRlc1VuaXQsIEdlb21ldHJ5VHlwZSwgTGFiZWxUeXBlIH0gZnJvbSAnLi4vc2hhcmVkL2RyYXcuZW51bSc7XHJcbmltcG9ydCB7IEREdG9ETVMgfSBmcm9tICcuLi9zaGFyZWQvZHJhdy51dGlscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1kcmF3LXBvcHVwLWNvbXBvbmVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RyYXctcG9wdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RyYXctcG9wdXAuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJhd1BvcHVwQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBjb25maXJtRmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGxhYmVsRmxhZzogTGFiZWxUeXBlIHwgW0xhYmVsVHlwZSwgTGFiZWxUeXBlXSA9IExhYmVsVHlwZS5DdXN0b207XHJcbiAgQElucHV0KCkgY29vcmRpbmF0ZXNNZWFzdXJlVW5pdDogQ29vcmRpbmF0ZXNVbml0O1xyXG4gIEBJbnB1dCgpIGxlbmd0aE1lYXN1cmVVbml0OiBNZWFzdXJlTGVuZ3RoVW5pdDtcclxuICBASW5wdXQoKSBhcmVhTWVhc3VyZVVuaXQ6IE1lYXN1cmVBcmVhVW5pdDtcclxuXHJcbiAgcHVibGljIGdlb21ldHJ5VHlwZSA9IEdlb21ldHJ5VHlwZTtcclxuICBwdWJsaWMgbGFiZWxUeXBlID0gTGFiZWxUeXBlO1xyXG4gIHB1YmxpYyBhcnJheUJ1aWx0SW5UeXBlOiBhbnlbXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgY3VycmVudExhYmVsOiBzdHJpbmc7XHJcbiAgcHVibGljIGN1cnJlbnRDb29yZGluYXRlczogc3RyaW5nO1xyXG4gIHB1YmxpYyBjdXJyZW50QXJlYTogc3RyaW5nO1xyXG4gIHB1YmxpYyBjdXJyZW50TGVuZ3RoOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBvbEdlb21ldHJ5VHlwZTogR2VvbWV0cnlUeXBlID0gdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBsZW5ndGhJbk1ldGVyczogc3RyaW5nO1xyXG4gIHB1YmxpYyBhcmVhSW5NZXRlcnNTcXVhcmU6IHN0cmluZztcclxuICBwdWJsaWMgY29vcmRpbmF0ZXNJbkREOiBzdHJpbmc7XHJcbiAgcHVibGljIGN1cnJlbnRDb29yZGluYXRlc1VuaXQ6IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSBsb25nbGF0REQ6IFtudW1iZXIsIG51bWJlcl07XHJcbiAgcHJpdmF0ZSBsYWJlbExlbmd0aDogbnVtYmVyO1xyXG5cclxuICBwdWJsaWMgcG9seWdvbkNoZWNrID0gMDsgLy8gQ291bnQgZm9yIHBvbHlnb24gbGFiZWwgdHlwZXMgY2hlY2tib3hlc1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RHJhd1BvcHVwQ29tcG9uZW50PixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogeyBvbEdlb21ldHJ5OiBhbnk7IG1hcDogSWdvTWFwIH1cclxuICApIHtcclxuICAgIHRoaXMuY3VycmVudExhYmVsID0gdGhpcy5kYXRhLm9sR2VvbWV0cnkuZ2V0KCdkcmF3Jyk7XHJcbiAgICB0aGlzLmxhYmVsTGVuZ3RoID0gdGhpcy5jdXJyZW50TGFiZWwgPyB0aGlzLmN1cnJlbnRMYWJlbC5sZW5ndGggOiAwO1xyXG4gICAgbGV0IG9sR2VvbWV0cnk7XHJcblxyXG4gICAgY29uc3QgcHJvamVjdGlvbiA9IHRoaXMuZGF0YS5tYXAub2wuZ2V0VmlldygpLmdldFByb2plY3Rpb24oKTtcclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLm9sR2VvbWV0cnkgaW5zdGFuY2VvZiBPbEZlYXR1cmUpIHtcclxuICAgICAgaWYgKHRoaXMuZGF0YS5vbEdlb21ldHJ5LmdldCgncmFkJykpIHtcclxuICAgICAgICBjb25zdCBsb25naXR1ZGVMYXRpdHVkZSA9IFtcclxuICAgICAgICAgIHRoaXMuZGF0YS5vbEdlb21ldHJ5LmdldCgnbG9uZ2l0dWRlJyksXHJcbiAgICAgICAgICB0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXQoJ2xhdGl0dWRlJylcclxuICAgICAgICBdO1xyXG4gICAgICAgIHRoaXMub2xHZW9tZXRyeVR5cGUgPSBHZW9tZXRyeVR5cGUuQ2lyY2xlO1xyXG4gICAgICAgIG9sR2VvbWV0cnkgPSBuZXcgQ2lyY2xlKFxyXG4gICAgICAgICAgbG9uZ2l0dWRlTGF0aXR1ZGUsXHJcbiAgICAgICAgICB0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXQoJ3JhZCcpXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm9sR2VvbWV0cnlUeXBlID0gdGhpcy5kYXRhLm9sR2VvbWV0cnkuZ2V0R2VvbWV0cnkoKS5nZXRUeXBlKCk7XHJcbiAgICAgICAgb2xHZW9tZXRyeSA9IHRoaXMuZGF0YS5vbEdlb21ldHJ5LmdldCgnZ2VvbWV0cnknKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vbEdlb21ldHJ5VHlwZSA9IHRoaXMuZGF0YS5vbEdlb21ldHJ5LmdldFR5cGUoKTtcclxuICAgICAgb2xHZW9tZXRyeSA9IHRoaXMuZGF0YS5vbEdlb21ldHJ5O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLlBvaW50IHx8XHJcbiAgICAgIHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5DaXJjbGVcclxuICAgICkge1xyXG4gICAgICBpZiAodGhpcy5kYXRhLm9sR2VvbWV0cnkgaW5zdGFuY2VvZiBPbEZlYXR1cmUpIHtcclxuICAgICAgICBsZXQgbG9uZ2l0dWRlID0gdGhpcy5kYXRhLm9sR2VvbWV0cnkuZ2V0KCdsb25naXR1ZGUnKTtcclxuICAgICAgICBsZXQgbGF0aXR1ZGUgPSB0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXQoJ2xhdGl0dWRlJyk7XHJcbiAgICAgICAgdGhpcy5sb25nbGF0REQgPSByb3VuZENvb3JkVG8oW2xvbmdpdHVkZSwgbGF0aXR1ZGVdLCA1KTtcclxuICAgICAgICB0aGlzLmNvb3JkaW5hdGVzSW5ERCA9ICcoJyArIGxhdGl0dWRlICsgJywgJyArIGxvbmdpdHVkZSArICcpJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsZXQgcG9pbnQ0MzI2ID0gdHJhbnNmb3JtKFxyXG4gICAgICAgICAgdGhpcy5kYXRhLm9sR2VvbWV0cnkuZ2V0RmxhdENvb3JkaW5hdGVzKCksXHJcbiAgICAgICAgICBwcm9qZWN0aW9uLFxyXG4gICAgICAgICAgJ0VQU0c6NDMyNidcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMubG9uZ2xhdEREID0gcm91bmRDb29yZFRvKFtwb2ludDQzMjZbMF0sIHBvaW50NDMyNlsxXV0sIDUpO1xyXG4gICAgICAgIHRoaXMuY29vcmRpbmF0ZXNJbkREID1cclxuICAgICAgICAgICcoJyArIHRoaXMubG9uZ2xhdEREWzFdICsgJywgJyArIHRoaXMubG9uZ2xhdEREWzBdICsgJyknO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY3VycmVudENvb3JkaW5hdGVzID0gdGhpcy5jb29yZGluYXRlc0luREQ7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkxpbmVTdHJpbmcpIHtcclxuICAgICAgdGhpcy5sZW5ndGhJbk1ldGVycyA9IG1lYXN1cmVPbEdlb21ldHJ5TGVuZ3RoKFxyXG4gICAgICAgIG9sR2VvbWV0cnksXHJcbiAgICAgICAgcHJvamVjdGlvbi5nZXRDb2RlKClcclxuICAgICAgKS50b0ZpeGVkKDIpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRMZW5ndGggPSB0aGlzLmxlbmd0aEluTWV0ZXJzO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuUG9seWdvbikge1xyXG4gICAgICB0aGlzLmxlbmd0aEluTWV0ZXJzID0gbWVhc3VyZU9sR2VvbWV0cnlMZW5ndGgoXHJcbiAgICAgICAgb2xHZW9tZXRyeSxcclxuICAgICAgICBwcm9qZWN0aW9uLmdldENvZGUoKVxyXG4gICAgICApLnRvRml4ZWQoMik7XHJcbiAgICAgIHRoaXMuY3VycmVudExlbmd0aCA9IHRoaXMubGVuZ3RoSW5NZXRlcnM7XHJcbiAgICAgIHRoaXMuYXJlYUluTWV0ZXJzU3F1YXJlID0gbWVhc3VyZU9sR2VvbWV0cnlBcmVhKFxyXG4gICAgICAgIG9sR2VvbWV0cnksXHJcbiAgICAgICAgcHJvamVjdGlvbi5nZXRDb2RlKClcclxuICAgICAgKS50b0ZpeGVkKDIpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRBcmVhID0gdGhpcy5hcmVhSW5NZXRlcnNTcXVhcmU7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5DaXJjbGUpIHtcclxuICAgICAgbGV0IGNpcmN1bGFyUG9seWdvbiA9IGZyb21DaXJjbGUob2xHZW9tZXRyeSwgMTAwMDApO1xyXG4gICAgICBjb25zdCByYWRpdXMgPSB0aGlzLmdldFJhZGl1cyhjaXJjdWxhclBvbHlnb24pO1xyXG4gICAgICB0aGlzLmxlbmd0aEluTWV0ZXJzID0gcmFkaXVzLnRvRml4ZWQoMik7XHJcbiAgICAgIHRoaXMuY3VycmVudExlbmd0aCA9IHRoaXMubGVuZ3RoSW5NZXRlcnM7XHJcbiAgICAgIHRoaXMuYXJlYUluTWV0ZXJzU3F1YXJlID0gbWVhc3VyZU9sR2VvbWV0cnlBcmVhKFxyXG4gICAgICAgIGNpcmN1bGFyUG9seWdvbixcclxuICAgICAgICBwcm9qZWN0aW9uLmdldENvZGUoKVxyXG4gICAgICApLnRvRml4ZWQoMik7XHJcbiAgICAgIHRoaXMuY3VycmVudEFyZWEgPSB0aGlzLmFyZWFJbk1ldGVyc1NxdWFyZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZGF0YS5vbEdlb21ldHJ5LmdldCgnbGFiZWxUeXBlJykgPT09IExhYmVsVHlwZS5Db29yZGluYXRlcykge1xyXG4gICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5QcmVkZWZpbmVkKTtcclxuICAgICAgdGhpcy5vbkxhYmVsVHlwZUNoYW5nZShMYWJlbFR5cGUuQ29vcmRpbmF0ZXMsIHRydWUpO1xyXG4gICAgICB0aGlzLmNvb3JkaW5hdGVzTWVhc3VyZVVuaXQgPSBkYXRhLm9sR2VvbWV0cnkuZ2V0KCdtZWFzdXJlVW5pdCcpO1xyXG4gICAgfSBlbHNlIGlmIChkYXRhLm9sR2VvbWV0cnkuZ2V0KCdsYWJlbFR5cGUnKSA9PT0gTGFiZWxUeXBlLkxlbmd0aCkge1xyXG4gICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5QcmVkZWZpbmVkKTtcclxuICAgICAgdGhpcy5vbkxhYmVsVHlwZUNoYW5nZShMYWJlbFR5cGUuTGVuZ3RoLCB0cnVlKTtcclxuICAgICAgdGhpcy5sZW5ndGhNZWFzdXJlVW5pdCA9IGRhdGEub2xHZW9tZXRyeS5nZXQoJ21lYXN1cmVVbml0Jyk7XHJcbiAgICB9IGVsc2UgaWYgKGRhdGEub2xHZW9tZXRyeS5nZXQoJ2xhYmVsVHlwZScpID09PSBMYWJlbFR5cGUuQXJlYSkge1xyXG4gICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5QcmVkZWZpbmVkKTtcclxuICAgICAgdGhpcy5vbkxhYmVsVHlwZUNoYW5nZShMYWJlbFR5cGUuQXJlYSwgdHJ1ZSk7XHJcbiAgICAgIHRoaXMuYXJlYU1lYXN1cmVVbml0ID0gZGF0YS5vbEdlb21ldHJ5LmdldCgnbWVhc3VyZVVuaXQnKTtcclxuICAgIH0gZWxzZSBpZiAoZGF0YS5vbEdlb21ldHJ5LmdldCgnbGFiZWxUeXBlJyk/Lmxlbmd0aCA9PT0gMikge1xyXG4gICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5QcmVkZWZpbmVkKTtcclxuICAgICAgdGhpcy5vbkxhYmVsVHlwZUNoYW5nZShMYWJlbFR5cGUuTGVuZ3RoLCB0cnVlKTtcclxuICAgICAgdGhpcy5vbkxhYmVsVHlwZUNoYW5nZShMYWJlbFR5cGUuQXJlYSwgdHJ1ZSk7XHJcbiAgICAgIHRoaXMubGVuZ3RoTWVhc3VyZVVuaXQgPSBkYXRhLm9sR2VvbWV0cnkuZ2V0KCdtZWFzdXJlVW5pdCcpWzBdO1xyXG4gICAgICB0aGlzLmFyZWFNZWFzdXJlVW5pdCA9IGRhdGEub2xHZW9tZXRyeS5nZXQoJ21lYXN1cmVVbml0JylbMV07XHJcbiAgICB9XHJcbiAgICB0aGlzLmJ1aWxkQXJyYXlUeXBlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIVE1MIEludGVyYWN0aW9uc1xyXG4gICAqL1xyXG5cclxuICBjYW5jZWxEcmF3aW5nKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIGNvbmZpcm0oaW5wdXQ/OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY29uZmlybUZsYWcgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMubGFiZWxGbGFnID09PSBMYWJlbFR5cGUuUHJlZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmxhYmVsRmxhZyA9PT0gTGFiZWxUeXBlLkN1c3RvbSkge1xyXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7XHJcbiAgICAgICAgbGFiZWw6IGlucHV0XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmxhYmVsRmxhZyA9PT0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgICAgICBsYWJlbDogdGhpcy5jdXJyZW50Q29vcmRpbmF0ZXMsXHJcbiAgICAgICAgbWVhc3VyZVVuaXQ6IHRoaXMuY29vcmRpbmF0ZXNNZWFzdXJlVW5pdFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLlBvbHlnb24pIHtcclxuICAgICAgaWYgKHRoaXMucG9seWdvbkNoZWNrID09PSAyKSB7XHJcbiAgICAgICAgdGhpcy5sYWJlbEZsYWcgPSBbTGFiZWxUeXBlLkxlbmd0aCwgTGFiZWxUeXBlLkFyZWFdO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgICAgICAgIGxhYmVsOlxyXG4gICAgICAgICAgICAnUDogJyArXHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExlbmd0aCArXHJcbiAgICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICAgIE1lYXN1cmVMZW5ndGhVbml0QWJicmV2aWF0aW9uW01lYXN1cmVMZW5ndGhVbml0Lk1ldGVyc10gK1xyXG4gICAgICAgICAgICAnXFxuJyArXHJcbiAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRyYXcubGFiZWxUeXBlLkEnKSArXHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEFyZWEgK1xyXG4gICAgICAgICAgICAnICcgK1xyXG4gICAgICAgICAgICBNZWFzdXJlQXJlYVVuaXRBYmJyZXZpYXRpb25bTWVhc3VyZUFyZWFVbml0LlNxdWFyZU1ldGVyc10sXHJcbiAgICAgICAgICBtZWFzdXJlVW5pdDogW3RoaXMubGVuZ3RoTWVhc3VyZVVuaXQsIHRoaXMuYXJlYU1lYXN1cmVVbml0XVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubGFiZWxGbGFnID09PSBMYWJlbFR5cGUuTGVuZ3RoXHJcbiAgICAgICAgICA/IHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgICAgICAgICAgICBsYWJlbDpcclxuICAgICAgICAgICAgICAgICdQOiAnICtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudExlbmd0aCArXHJcbiAgICAgICAgICAgICAgICAnICcgK1xyXG4gICAgICAgICAgICAgICAgTWVhc3VyZUxlbmd0aFVuaXRBYmJyZXZpYXRpb25bdGhpcy5sZW5ndGhNZWFzdXJlVW5pdF0sXHJcbiAgICAgICAgICAgICAgbWVhc3VyZVVuaXQ6IHRoaXMubGVuZ3RoTWVhc3VyZVVuaXRcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIDogdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xyXG4gICAgICAgICAgICAgIGxhYmVsOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXJlYSArXHJcbiAgICAgICAgICAgICAgICAnICcgK1xyXG4gICAgICAgICAgICAgICAgTWVhc3VyZUFyZWFVbml0QWJicmV2aWF0aW9uW3RoaXMuYXJlYU1lYXN1cmVVbml0XSxcclxuICAgICAgICAgICAgICBtZWFzdXJlVW5pdDogdGhpcy5hcmVhTWVhc3VyZVVuaXRcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5sYWJlbEZsYWcgPT09IExhYmVsVHlwZS5MZW5ndGgpIHtcclxuICAgICAgaWYgKHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5DaXJjbGUpIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7XHJcbiAgICAgICAgICBsYWJlbDpcclxuICAgICAgICAgICAgJ1I6ICcgK1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMZW5ndGggK1xyXG4gICAgICAgICAgICAnICcgK1xyXG4gICAgICAgICAgICBNZWFzdXJlTGVuZ3RoVW5pdEFiYnJldmlhdGlvblt0aGlzLmxlbmd0aE1lYXN1cmVVbml0XSxcclxuICAgICAgICAgIG1lYXN1cmVVbml0OiB0aGlzLmxlbmd0aE1lYXN1cmVVbml0XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkxpbmVTdHJpbmcpIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7XHJcbiAgICAgICAgICBsYWJlbDpcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGVuZ3RoICtcclxuICAgICAgICAgICAgJyAnICtcclxuICAgICAgICAgICAgTWVhc3VyZUxlbmd0aFVuaXRBYmJyZXZpYXRpb25bdGhpcy5sZW5ndGhNZWFzdXJlVW5pdF0sXHJcbiAgICAgICAgICBtZWFzdXJlVW5pdDogdGhpcy5sZW5ndGhNZWFzdXJlVW5pdFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubGFiZWxGbGFnID09PSBMYWJlbFR5cGUuQXJlYSkge1xyXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7XHJcbiAgICAgICAgbGFiZWw6XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRBcmVhICtcclxuICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICBNZWFzdXJlQXJlYVVuaXRBYmJyZXZpYXRpb25bdGhpcy5hcmVhTWVhc3VyZVVuaXRdLFxyXG4gICAgICAgIG1lYXN1cmVVbml0OiB0aGlzLmFyZWFNZWFzdXJlVW5pdFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTGFiZWxUeXBlQ2hhbmdlKGxhYmVsVHlwZTogTGFiZWxUeXBlLCBjaGVja2VkPzogYm9vbGVhbikge1xyXG4gICAgaWYgKFxyXG4gICAgICBsYWJlbFR5cGUgIT09IExhYmVsVHlwZS5QcmVkZWZpbmVkICYmXHJcbiAgICAgIGxhYmVsVHlwZSAhPT0gTGFiZWxUeXBlLkN1c3RvbSAmJlxyXG4gICAgICB0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuUG9seWdvblxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuYXJyYXlCdWlsdEluVHlwZS5maW5kKCh0eXBlKSA9PiB0eXBlLnZhbHVlID09PSBsYWJlbFR5cGUpXHJcbiAgICAgICAgPyAodGhpcy5hcnJheUJ1aWx0SW5UeXBlLmZpbmQoXHJcbiAgICAgICAgICAgICh0eXBlKSA9PiB0eXBlLnZhbHVlID09PSBsYWJlbFR5cGVcclxuICAgICAgICAgICkuY2hlY2tlZCA9IGNoZWNrZWQpXHJcbiAgICAgICAgOiAodGhpcy5sYWJlbEZsYWcgPSB1bmRlZmluZWQpO1xyXG4gICAgICBjaGVja2VkXHJcbiAgICAgICAgPyAodGhpcy5sYWJlbEZsYWcgPSBsYWJlbFR5cGUpXHJcbiAgICAgICAgOiAodGhpcy5sYWJlbEZsYWcgPSB0aGlzLmFycmF5QnVpbHRJblR5cGUuZmluZCgodHlwZSkgPT4gdHlwZS5jaGVja2VkKVxyXG4gICAgICAgICAgICA/LnZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubGFiZWxGbGFnID0gbGFiZWxUeXBlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChsYWJlbFR5cGUgPT09IExhYmVsVHlwZS5QcmVkZWZpbmVkKSB7XHJcbiAgICAgIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuUG9pbnQpIHtcclxuICAgICAgICB0aGlzLmxhYmVsRmxhZyA9IExhYmVsVHlwZS5Db29yZGluYXRlcztcclxuICAgICAgICB0aGlzLmN1cnJlbnRDb29yZGluYXRlcyA9IHRoaXMuY29vcmRpbmF0ZXNJbkREO1xyXG4gICAgICAgIHRoaXMuY29vcmRpbmF0ZXNNZWFzdXJlVW5pdCA9IENvb3JkaW5hdGVzVW5pdC5EZWNpbWFsRGVncmVlO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5MaW5lU3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5sYWJlbEZsYWcgPSBMYWJlbFR5cGUuTGVuZ3RoO1xyXG4gICAgICAgIHRoaXMuY3VycmVudExlbmd0aCA9IHRoaXMubGVuZ3RoSW5NZXRlcnM7XHJcbiAgICAgICAgdGhpcy5sZW5ndGhNZWFzdXJlVW5pdCA9IE1lYXN1cmVMZW5ndGhVbml0Lk1ldGVycztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChsYWJlbFR5cGUgPT09IExhYmVsVHlwZS5BcmVhKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudEFyZWEgPSB0aGlzLmFyZWFJbk1ldGVyc1NxdWFyZTtcclxuICAgICAgdGhpcy5hcmVhTWVhc3VyZVVuaXQgPSBNZWFzdXJlQXJlYVVuaXQuU3F1YXJlTWV0ZXJzO1xyXG4gICAgfSBlbHNlIGlmIChsYWJlbFR5cGUgPT09IExhYmVsVHlwZS5MZW5ndGgpIHtcclxuICAgICAgdGhpcy5jdXJyZW50TGVuZ3RoID0gdGhpcy5sZW5ndGhJbk1ldGVycztcclxuICAgICAgdGhpcy5sZW5ndGhNZWFzdXJlVW5pdCA9IE1lYXN1cmVMZW5ndGhVbml0Lk1ldGVycztcclxuICAgIH0gZWxzZSBpZiAodGhpcy5sYWJlbEZsYWcgPT09IExhYmVsVHlwZS5Db29yZGluYXRlcykge1xyXG4gICAgICB0aGlzLmN1cnJlbnRDb29yZGluYXRlcyA9IHRoaXMuY29vcmRpbmF0ZXNJbkREO1xyXG4gICAgICB0aGlzLmNvb3JkaW5hdGVzTWVhc3VyZVVuaXQgPSBDb29yZGluYXRlc1VuaXQuRGVjaW1hbERlZ3JlZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsYWJlbHR5cGVzID0gW3RoaXMubGFiZWxUeXBlLkxlbmd0aCwgdGhpcy5sYWJlbFR5cGUuQXJlYV07XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5Qb2x5Z29uICYmXHJcbiAgICAgIGxhYmVsdHlwZXMuaW5jbHVkZXMobGFiZWxUeXBlKVxyXG4gICAgKSB7XHJcbiAgICAgIGNoZWNrZWQgPyAodGhpcy5wb2x5Z29uQ2hlY2sgKz0gMSkgOiAodGhpcy5wb2x5Z29uQ2hlY2sgLT0gMSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBvbHlnb25DaGVjayA9IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZUxlbmd0aFVuaXQobGVuZ3RoVW5pdDogTWVhc3VyZUxlbmd0aFVuaXQpIHtcclxuICAgIHRoaXMubGVuZ3RoTWVhc3VyZVVuaXQgPSBsZW5ndGhVbml0O1xyXG4gICAgdGhpcy5jdXJyZW50TGVuZ3RoID0gbWV0ZXJzVG9Vbml0KFxyXG4gICAgICBOdW1iZXIodGhpcy5sZW5ndGhJbk1ldGVycyksXHJcbiAgICAgIGxlbmd0aFVuaXRcclxuICAgICkudG9GaXhlZCgyKTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlQXJlYVVuaXQoYXJlYVVuaXQ6IE1lYXN1cmVBcmVhVW5pdCkge1xyXG4gICAgdGhpcy5hcmVhTWVhc3VyZVVuaXQgPSBhcmVhVW5pdDtcclxuICAgIHRoaXMuY3VycmVudEFyZWEgPSBzcXVhcmVNZXRlcnNUb1VuaXQoXHJcbiAgICAgIE51bWJlcih0aGlzLmFyZWFJbk1ldGVyc1NxdWFyZSksXHJcbiAgICAgIGFyZWFVbml0XHJcbiAgICApLnRvRml4ZWQoMik7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZUNvb3JkaW5hdGVVbml0KGNvb3JkaW5hdGVzVW5pdDogQ29vcmRpbmF0ZXNVbml0KSB7XHJcbiAgICB0aGlzLmNvb3JkaW5hdGVzTWVhc3VyZVVuaXQgPSBjb29yZGluYXRlc1VuaXQ7XHJcbiAgICBsZXQgY29vcmRpbmF0ZXMgPSBERHRvRE1TKHRoaXMubG9uZ2xhdERELCBjb29yZGluYXRlc1VuaXQpO1xyXG4gICAgdGhpcy5jdXJyZW50Q29vcmRpbmF0ZXMgPVxyXG4gICAgICAnKCcgKyBjb29yZGluYXRlc1sxXSArICcsICcgKyBjb29yZGluYXRlc1swXSArICcpJztcclxuICB9XHJcblxyXG4gIGJ1aWxkQXJyYXlUeXBlKCkge1xyXG4gICAgZm9yIChjb25zdCBsYWJlbFR5cGUgb2YgT2JqZWN0LnZhbHVlcyhMYWJlbFR5cGUpKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBsYWJlbFR5cGUgIT09IExhYmVsVHlwZS5DdXN0b20gJiZcclxuICAgICAgICBsYWJlbFR5cGUgIT09IExhYmVsVHlwZS5QcmVkZWZpbmVkXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuYXJyYXlCdWlsdEluVHlwZS5wdXNoKHtcclxuICAgICAgICAgIHZhbHVlOiBsYWJlbFR5cGUsXHJcbiAgICAgICAgICBjaGVja2VkOlxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbnMobGFiZWxUeXBlKSB8fFxyXG4gICAgICAgICAgICB0aGlzLmxhYmVsRmxhZyA9PT0gbGFiZWxUeXBlIHx8XHJcbiAgICAgICAgICAgICh0aGlzLnBvbHlnb25DaGVjayA9PT0gMiAmJiBsYWJlbFR5cGUgIT09IExhYmVsVHlwZS5Db29yZGluYXRlcylcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbm9MYWJlbEJ1dHRvbigpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5sYWJlbEZsYWcgPT09IExhYmVsVHlwZS5QcmVkZWZpbmVkIHx8XHJcbiAgICAgICh0aGlzLmxhYmVsRmxhZyA9PT0gTGFiZWxUeXBlLkN1c3RvbSAmJiB0aGlzLmxhYmVsTGVuZ3RoID09PSAwKVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kcmF3Lm5vTGFiZWwnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJ09LJztcclxuICB9XHJcblxyXG4gIGdldCBjdXN0b21PclByZWRlZmluZWQoKSB7XHJcbiAgICBpZiAodGhpcy5sYWJlbEZsYWcgPT09IExhYmVsVHlwZS5DdXN0b20pIHtcclxuICAgICAgcmV0dXJuIExhYmVsVHlwZS5DdXN0b207XHJcbiAgICB9XHJcbiAgICByZXR1cm4gTGFiZWxUeXBlLlByZWRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBvcHRpb25BdmFpbGFibGUoY3VycmVudE9wdGlvbjogTGFiZWxUeXBlKSB7XHJcbiAgICBzd2l0Y2ggKHRoaXMub2xHZW9tZXRyeVR5cGUpIHtcclxuICAgICAgY2FzZSBHZW9tZXRyeVR5cGUuUG9pbnQ6XHJcbiAgICAgICAgaWYgKGN1cnJlbnRPcHRpb24gPT09IExhYmVsVHlwZS5Db29yZGluYXRlcykge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgY2FzZSBHZW9tZXRyeVR5cGUuTGluZVN0cmluZzpcclxuICAgICAgICBpZiAoY3VycmVudE9wdGlvbiA9PT0gTGFiZWxUeXBlLkxlbmd0aCkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgY2FzZSBHZW9tZXRyeVR5cGUuUG9seWdvbjpcclxuICAgICAgICBpZiAoY3VycmVudE9wdGlvbiA9PT0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBhbGxMZW5ndGhVbml0cygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhNZWFzdXJlTGVuZ3RoVW5pdCk7XHJcbiAgfVxyXG5cclxuICBnZXRMZW5ndGhVbml0RW51bShsZW5ndGhVbml0OiBNZWFzdXJlTGVuZ3RoVW5pdCkge1xyXG4gICAgcmV0dXJuIE1lYXN1cmVMZW5ndGhVbml0QWJicmV2aWF0aW9uW2xlbmd0aFVuaXRdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFsbEFyZWFVbml0cygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhNZWFzdXJlQXJlYVVuaXQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFsbENvb3JkaW5hdGVzVW5pdHMoKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoQ29vcmRpbmF0ZXNVbml0KTtcclxuICB9XHJcblxyXG4gIGdldEFyZWFVbml0RW51bShhcmVhVW5pdDogTWVhc3VyZUFyZWFVbml0KSB7XHJcbiAgICByZXR1cm4gTWVhc3VyZUFyZWFVbml0QWJicmV2aWF0aW9uW2FyZWFVbml0XTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UmFkaXVzKG9sR2VvbWV0cnkpOiBudW1iZXIge1xyXG4gICAgY29uc3QgbGVuZ3RoID0gZ2V0TGVuZ3RoKG9sR2VvbWV0cnkpO1xyXG4gICAgcmV0dXJuIE51bWJlcihsZW5ndGggLyAoMiAqIE1hdGguUEkpKTtcclxuICB9XHJcblxyXG4gIGdldCBsZW5ndGhMYWJlbFQoKSB7XHJcbiAgICBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLlBvbHlnb24pIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICdpZ28uZ2VvLm1lYXN1cmUucGVyaW1ldGVyJ1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5DaXJjbGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICdpZ28uZ2VvLnNlYXJjaC5jb29yZGluYXRlcy5yYWRpdXMnXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICdpZ28uZ2VvLmRyYXcubGFiZWxUeXBlLkxlbmd0aCdcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRMYWJlbExlbmd0aChldmVudD8pIHtcclxuICAgIHRoaXMubGFiZWxMZW5ndGggPSBldmVudC5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RPcHRpb25zKG9wdGlvbikge1xyXG4gICAgaWYgKHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5Qb2ludCkge1xyXG4gICAgICByZXR1cm4gb3B0aW9uID09PSBMYWJlbFR5cGUuQ29vcmRpbmF0ZXM7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5MaW5lU3RyaW5nKSB7XHJcbiAgICAgIHJldHVybiBvcHRpb24gPT09IExhYmVsVHlwZS5MZW5ndGg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRQcm9wZXJMZW5ndGhMYWJlbChvcHRpb24pIHtcclxuICAgIGlmIChvcHRpb24gPT09IExhYmVsVHlwZS5MZW5ndGgpIHtcclxuICAgICAgaWYgKHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5Qb2x5Z29uKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgJ2lnby5nZW8ubWVhc3VyZS5wZXJpbWV0ZXInXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkNpcmNsZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICdpZ28uZ2VvLnNlYXJjaC5jb29yZGluYXRlcy5yYWRpdXMnXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUuTGVuZ3RoJ1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAnaWdvLmdlby5kcmF3LmxhYmVsVHlwZS4nICsgb3B0aW9uXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCI8aDIgbWF0LWRpYWxvZy10aXRsZT5cclxuICB7eyAnaWdvLmdlby5kcmF3LnBvcHVwVGl0bGUnIHwgdHJhbnNsYXRlIH19XHJcbjwvaDI+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxGbGFnICE9PSBsYWJlbFR5cGUuQ3VzdG9tXCI+XHJcbiAgPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJnZW9tZXRyeS10eXBlLXRvZ2dsZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbi10b2dnbGUtY29udGFpbmVyXCI+XHJcbiAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cFxyXG4gICAgICAgIChjaGFuZ2UpPVwib25MYWJlbFR5cGVDaGFuZ2UoJGV2ZW50LnZhbHVlKVwiXHJcbiAgICAgICAgW3ZhbHVlXT1cImN1c3RvbU9yUHJlZGVmaW5lZFwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgW3ZhbHVlXT1cImxhYmVsVHlwZS5DdXN0b21cIj5cclxuICAgICAgICAgIHt7ICdpZ28uZ2VvLmRyYXcubGFiZWxUeXBlLmN1c3RvbScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwibGFiZWxUeXBlLlByZWRlZmluZWRcIj5cclxuICAgICAgICAgIHt7ICdpZ28uZ2VvLmRyYXcubGFiZWxUeXBlLnByZWRlZmluZWQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdj5cclxuICAgICAgPHA+XHJcbiAgICAgICAge3sgJ2lnby5nZW8uZHJhdy5idWlsdEluSW5zdHJ1Y3Rpb25zJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L3A+XHJcbiAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgKm5nSWY9XCJvbEdlb21ldHJ5VHlwZSAhPT0gJ1BvbHlnb24nXCI+XHJcbiAgICAgICAgPG1hdC1yYWRpby1idXR0b25cclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgYXJyYXlCdWlsdEluVHlwZVwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJvcHRpb25BdmFpbGFibGUob3B0aW9uLnZhbHVlKVwiXHJcbiAgICAgICAgICAoY2hhbmdlKT1cIm9uTGFiZWxUeXBlQ2hhbmdlKCRldmVudC52YWx1ZSlcIlxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwib3B0aW9uLmNoZWNrZWRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGdldFByb3Blckxlbmd0aExhYmVsKG9wdGlvbi52YWx1ZSkgfX1cclxuICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib2xHZW9tZXRyeVR5cGUgPT09ICdQb2x5Z29uJ1wiPlxyXG4gICAgICAgIDxtYXQtY2hlY2tib3hcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgYXJyYXlCdWlsdEluVHlwZVwiXHJcbiAgICAgICAgICBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbkF2YWlsYWJsZShvcHRpb24udmFsdWUpXCJcclxuICAgICAgICAgIChjaGFuZ2UpPVwib25MYWJlbFR5cGVDaGFuZ2UoJGV2ZW50LnNvdXJjZS52YWx1ZSwgJGV2ZW50LmNoZWNrZWQpXCJcclxuICAgICAgICAgIFtjaGVja2VkXT1cIm9wdGlvbi5jaGVja2VkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBnZXRQcm9wZXJMZW5ndGhMYWJlbChvcHRpb24udmFsdWUpIH19XHJcbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwibGFiZWxGbGFnID09PSBsYWJlbFR5cGUuQ29vcmRpbmF0ZXNcIiBjbGFzcz1cImZpZWxkcy1jb250YWluZXJcIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJyZWFkT25seS1JbnB1dFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD4oTGF0aXR1ZGUsIExvbmdpdHVkZSk8L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAjaW5wdXRcclxuICAgICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIoTGF0aXR1ZGUsIExvbmdpdHVkZSlcIlxyXG4gICAgICAgICAgICB2YWx1ZT1cInt7IGN1cnJlbnRDb29yZGluYXRlcyB9fVwiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidW5pdC1maWVsZFwiPlxyXG4gICAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgW3ZhbHVlXT1cImNvb3JkaW5hdGVzTWVhc3VyZVVuaXRcIlxyXG4gICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQ2hhbmdlQ29vcmRpbmF0ZVVuaXQoJGV2ZW50LnZhbHVlKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB1bml0IG9mIGFsbENvb3JkaW5hdGVzVW5pdHNcIiBbdmFsdWVdPVwidW5pdFwiPlxyXG4gICAgICAgICAgICAgIHt7IHVuaXQgfX1cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJsYWJlbEZsYWcgPT09IGxhYmVsVHlwZS5MZW5ndGggfHwgcG9seWdvbkNoZWNrID09PSAyXCJcclxuICAgICAgICBjbGFzcz1cImZpZWxkcy1jb250YWluZXJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwicmVhZE9ubHktSW5wdXRcIj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+e3sgbGVuZ3RoTGFiZWxUIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgI2lucHV0XHJcbiAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgbGVuZ3RoTGFiZWxUIH19XCJcclxuICAgICAgICAgICAgdmFsdWU9XCJ7eyBjdXJyZW50TGVuZ3RoIH19XCJcclxuICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ1bml0LWZpZWxkXCI+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICBbdmFsdWVdPVwibGVuZ3RoTWVhc3VyZVVuaXRcIlxyXG4gICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQ2hhbmdlTGVuZ3RoVW5pdCgkZXZlbnQudmFsdWUpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHVuaXQgb2YgYWxsTGVuZ3RoVW5pdHNcIiBbdmFsdWVdPVwidW5pdFwiPlxyXG4gICAgICAgICAgICAgIHt7IGdldExlbmd0aFVuaXRFbnVtKHVuaXQpIH19XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICpuZ0lmPVwibGFiZWxGbGFnID09PSBsYWJlbFR5cGUuQXJlYSB8fCBwb2x5Z29uQ2hlY2sgPT09IDJcIlxyXG4gICAgICAgIGNsYXNzPVwiZmllbGRzLWNvbnRhaW5lclwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJyZWFkT25seS1JbnB1dFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eyAnaWdvLmdlby5kcmF3LmxhYmVsVHlwZS5BcmVhJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICNpbnB1dFxyXG4gICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLmRyYXcubGFiZWxUeXBlLkFyZWEnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgdmFsdWU9XCJ7eyBjdXJyZW50QXJlYSB9fVwiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidW5pdC1maWVsZFwiPlxyXG4gICAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgW3ZhbHVlXT1cImFyZWFNZWFzdXJlVW5pdFwiXHJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25DaGFuZ2VBcmVhVW5pdCgkZXZlbnQudmFsdWUpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHVuaXQgb2YgYWxsQXJlYVVuaXRzXCIgW3ZhbHVlXT1cInVuaXRcIj5cclxuICAgICAgICAgICAgICB7eyBnZXRBcmVhVW5pdEVudW0odW5pdCkgfX1cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiY2FuY2VsRHJhd2luZygpXCI+XHJcbiAgICAgIHt7ICdpZ28uZ2VvLmRyYXcuY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJjb25maXJtKClcIj5cclxuICAgICAge3sgbm9MYWJlbEJ1dHRvbigpIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxGbGFnID09PSBsYWJlbFR5cGUuQ3VzdG9tXCI+XHJcbiAgPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJnZW9tZXRyeS10eXBlLXRvZ2dsZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbi10b2dnbGUtY29udGFpbmVyXCI+XHJcbiAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cFxyXG4gICAgICAgIChjaGFuZ2UpPVwib25MYWJlbFR5cGVDaGFuZ2UoJGV2ZW50LnZhbHVlKVwiXHJcbiAgICAgICAgW3ZhbHVlXT1cImN1c3RvbU9yUHJlZGVmaW5lZFwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgW3ZhbHVlXT1cImxhYmVsVHlwZS5DdXN0b21cIj5cclxuICAgICAgICAgIHt7ICdpZ28uZ2VvLmRyYXcubGFiZWxUeXBlLmN1c3RvbScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwibGFiZWxUeXBlLlByZWRlZmluZWRcIj5cclxuICAgICAgICAgIHt7ICdpZ28uZ2VvLmRyYXcubGFiZWxUeXBlLnByZWRlZmluZWQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cclxuICAgIDwvZGl2PlxyXG4gICAgPHA+XHJcbiAgICAgIHt7ICdpZ28uZ2VvLmRyYXcuZGlhbG9nSW5zdHJ1Y3Rpb24nIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L3A+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJpbnB1dFwiPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLmRyYXcuZGlhbG9nVGl0bGUnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgICNpbnB1dFxyXG4gICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgKHNlbGVjdCk9XCIodHJ1ZSlcIlxyXG4gICAgICAgIChpbnB1dCk9XCJnZXRMYWJlbExlbmd0aCgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby5kcmF3LmRpYWxvZ1RpdGxlJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgdmFsdWU9XCJ7eyBjdXJyZW50TGFiZWwgfX1cIlxyXG4gICAgICAgIGNka0ZvY3VzSW5pdGlhbFxyXG4gICAgICAvPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJjYW5jZWxEcmF3aW5nKClcIj5cclxuICAgICAge3sgJ2lnby5nZW8uZHJhdy5jYW5jZWwnIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNvbmZpcm0oaW5wdXQudmFsdWUpXCI+XHJcbiAgICAgIHt7IG5vTGFiZWxCdXR0b24oKSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=