@igo2/geo 1.15.4 → 1.15.6

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 (420) hide show
  1. package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +2 -2
  2. package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +2 -2
  3. package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +2 -2
  4. package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +1 -1
  5. package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +2 -2
  6. package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +2 -2
  7. package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +2 -2
  8. package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +1 -1
  9. package/esm2020/lib/catalog/catalog.module.mjs +1 -1
  10. package/esm2020/lib/catalog/index.mjs +1 -1
  11. package/esm2020/lib/catalog/shared/catalog.abstract.mjs +1 -1
  12. package/esm2020/lib/catalog/shared/catalog.enum.mjs +1 -1
  13. package/esm2020/lib/catalog/shared/catalog.interface.mjs +1 -1
  14. package/esm2020/lib/catalog/shared/catalog.service.mjs +1 -1
  15. package/esm2020/lib/datasource/datasource.module.mjs +1 -1
  16. package/esm2020/lib/datasource/shared/capabilities.service.mjs +1 -1
  17. package/esm2020/lib/datasource/shared/datasource.service.mjs +1 -1
  18. package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
  19. package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +1 -1
  20. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +1 -1
  21. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
  22. package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +1 -1
  23. package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +1 -1
  24. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
  25. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +1 -1
  26. package/esm2020/lib/datasource/shared/datasources/data.service.mjs +1 -1
  27. package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
  28. package/esm2020/lib/datasource/shared/datasources/datasource.mjs +1 -1
  29. package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
  30. package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +1 -1
  31. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
  32. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +1 -1
  33. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +1 -1
  34. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +1 -1
  35. package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +1 -1
  36. package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +1 -1
  37. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +1 -1
  38. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +1 -1
  39. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
  40. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +1 -1
  41. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
  42. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
  43. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
  44. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +1 -1
  45. package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +1 -1
  46. package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  47. package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
  48. package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +1 -1
  49. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
  50. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +1 -1
  51. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
  52. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +1 -1
  53. package/esm2020/lib/datasource/shared/index.mjs +1 -1
  54. package/esm2020/lib/datasource/shared/options/index.mjs +1 -1
  55. package/esm2020/lib/datasource/shared/options/options-api.interface.mjs +1 -1
  56. package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +1 -1
  57. package/esm2020/lib/datasource/shared/options/options-api.service.mjs +1 -1
  58. package/esm2020/lib/datasource/shared/options/options.service.mjs +1 -1
  59. package/esm2020/lib/datasource/utils/index.mjs +1 -1
  60. package/esm2020/lib/datasource/utils/tilegrid.mjs +1 -1
  61. package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +2 -2
  62. package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +2 -2
  63. package/esm2020/lib/directions/directions-results/directions-results.component.mjs +2 -2
  64. package/esm2020/lib/directions/directions-sources/directions-source.interface.mjs +1 -1
  65. package/esm2020/lib/directions/directions-sources/directions-source.mjs +1 -1
  66. package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +1 -1
  67. package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +1 -1
  68. package/esm2020/lib/directions/directions.component.mjs +2 -2
  69. package/esm2020/lib/directions/directions.module.mjs +1 -1
  70. package/esm2020/lib/directions/shared/directions.interface.mjs +1 -1
  71. package/esm2020/lib/directions/shared/directions.service.mjs +1 -1
  72. package/esm2020/lib/directions/shared/directions.utils.mjs +1 -1
  73. package/esm2020/lib/directions/shared/store.mjs +1 -1
  74. package/esm2020/lib/download/download-button/download-button.component.mjs +2 -2
  75. package/esm2020/lib/download/download.module.mjs +1 -1
  76. package/esm2020/lib/download/shared/download.service.mjs +1 -1
  77. package/esm2020/lib/draw/draw/draw-layer-popup.component.mjs +2 -2
  78. package/esm2020/lib/draw/draw/draw-popup.component.mjs +2 -2
  79. package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +2 -2
  80. package/esm2020/lib/draw/draw/draw.component.mjs +2 -2
  81. package/esm2020/lib/draw/draw/draw.module.mjs +1 -1
  82. package/esm2020/lib/draw/drawingTool.module.mjs +1 -1
  83. package/esm2020/lib/draw/shared/draw-icon.service.mjs +1 -1
  84. package/esm2020/lib/draw/shared/draw.enum.mjs +1 -1
  85. package/esm2020/lib/draw/shared/draw.interface.mjs +1 -1
  86. package/esm2020/lib/draw/shared/draw.utils.mjs +1 -1
  87. package/esm2020/lib/draw/shared/index.mjs +1 -1
  88. package/esm2020/lib/feature/feature-details/feature-details.component.mjs +2 -2
  89. package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +1 -1
  90. package/esm2020/lib/feature/feature-details/feature-details.module.mjs +1 -1
  91. package/esm2020/lib/feature/feature-form/feature-form.component.mjs +2 -2
  92. package/esm2020/lib/feature/feature-form/feature-form.module.mjs +1 -1
  93. package/esm2020/lib/feature/feature.module.mjs +1 -1
  94. package/esm2020/lib/feature/index.mjs +1 -1
  95. package/esm2020/lib/feature/shared/feature.interfaces.mjs +1 -1
  96. package/esm2020/lib/feature/shared/feature.utils.mjs +1 -1
  97. package/esm2020/lib/feature/shared/index.mjs +1 -1
  98. package/esm2020/lib/feature/shared/store.mjs +1 -1
  99. package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
  100. package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +1 -1
  101. package/esm2020/lib/feature/shared/strategies/index.mjs +1 -1
  102. package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +1 -1
  103. package/esm2020/lib/feature/shared/strategies/loading.mjs +1 -1
  104. package/esm2020/lib/feature/shared/strategies/search.mjs +1 -1
  105. package/esm2020/lib/feature/shared/strategies/selection.mjs +1 -1
  106. package/esm2020/lib/feature/shared/strategies.utils.mjs +1 -1
  107. package/esm2020/lib/filter/filter.module.mjs +1 -1
  108. package/esm2020/lib/filter/index.mjs +1 -1
  109. package/esm2020/lib/filter/ogc-filter-button/index.mjs +1 -1
  110. package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +2 -2
  111. package/esm2020/lib/filter/ogc-filter-form/index.mjs +1 -1
  112. package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +2 -2
  113. package/esm2020/lib/filter/ogc-filter-selection/index.mjs +1 -1
  114. package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +2 -2
  115. package/esm2020/lib/filter/ogc-filter-time/index.mjs +1 -1
  116. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +2 -2
  117. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +2 -2
  118. package/esm2020/lib/filter/ogc-filterable-form/index.mjs +1 -1
  119. package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +2 -2
  120. package/esm2020/lib/filter/ogc-filterable-item/index.mjs +1 -1
  121. package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +2 -2
  122. package/esm2020/lib/filter/ogc-filterable-list/index.mjs +1 -1
  123. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +1 -1
  124. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +2 -2
  125. package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +1 -1
  126. package/esm2020/lib/filter/shared/index.mjs +1 -1
  127. package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +1 -1
  128. package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +1 -1
  129. package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +1 -1
  130. package/esm2020/lib/filter/shared/ogc-filter.mjs +1 -1
  131. package/esm2020/lib/filter/shared/ogc-filter.service.mjs +1 -1
  132. package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +1 -1
  133. package/esm2020/lib/filter/shared/spatial-filter.interface.mjs +1 -1
  134. package/esm2020/lib/filter/shared/spatial-filter.service.mjs +1 -1
  135. package/esm2020/lib/filter/shared/time-filter.enum.mjs +1 -1
  136. package/esm2020/lib/filter/shared/time-filter.interface.mjs +1 -1
  137. package/esm2020/lib/filter/shared/time-filter.service.mjs +1 -1
  138. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/index.mjs +1 -1
  139. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +2 -2
  140. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/index.mjs +1 -1
  141. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +2 -2
  142. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/index.mjs +1 -1
  143. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +2 -2
  144. package/esm2020/lib/filter/time-filter-button/index.mjs +1 -1
  145. package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +2 -2
  146. package/esm2020/lib/filter/time-filter-form/index.mjs +1 -1
  147. package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +2 -2
  148. package/esm2020/lib/filter/time-filter-item/index.mjs +1 -1
  149. package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +2 -2
  150. package/esm2020/lib/filter/time-filter-list/index.mjs +1 -1
  151. package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +1 -1
  152. package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +2 -2
  153. package/esm2020/lib/geo.module.mjs +1 -1
  154. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +1 -1
  155. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +2 -2
  156. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +1 -1
  157. package/esm2020/lib/geometry/geometry.module.mjs +1 -1
  158. package/esm2020/lib/geometry/index.mjs +1 -1
  159. package/esm2020/lib/geometry/shared/controls/draw.mjs +1 -1
  160. package/esm2020/lib/geometry/shared/controls/modify.mjs +1 -1
  161. package/esm2020/lib/geometry/shared/controls/slice.mjs +1 -1
  162. package/esm2020/lib/geometry/shared/geometry.errors.mjs +1 -1
  163. package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  164. package/esm2020/lib/geometry/shared/geometry.utils.mjs +1 -1
  165. package/esm2020/lib/import-export/export-button/export-button.component.mjs +2 -2
  166. package/esm2020/lib/import-export/import-export/import-export.component.mjs +8 -8
  167. package/esm2020/lib/import-export/import-export.module.mjs +1 -1
  168. package/esm2020/lib/import-export/index.mjs +1 -1
  169. package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +7 -7
  170. package/esm2020/lib/import-export/shared/export.interface.mjs +1 -1
  171. package/esm2020/lib/import-export/shared/export.service.mjs +1 -1
  172. package/esm2020/lib/import-export/shared/export.type.mjs +1 -1
  173. package/esm2020/lib/import-export/shared/export.utils.mjs +1 -1
  174. package/esm2020/lib/import-export/shared/import.errors.mjs +1 -1
  175. package/esm2020/lib/import-export/shared/import.interface.mjs +1 -1
  176. package/esm2020/lib/import-export/shared/import.service.mjs +1 -1
  177. package/esm2020/lib/import-export/shared/import.utils.mjs +1 -1
  178. package/esm2020/lib/layer/index.mjs +1 -1
  179. package/esm2020/lib/layer/layer-item/index.mjs +1 -1
  180. package/esm2020/lib/layer/layer-item/layer-item.component.mjs +2 -2
  181. package/esm2020/lib/layer/layer-legend/index.mjs +1 -1
  182. package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +2 -2
  183. package/esm2020/lib/layer/layer-legend-item/index.mjs +1 -1
  184. package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +2 -2
  185. package/esm2020/lib/layer/layer-legend-list/index.mjs +1 -1
  186. package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +1 -1
  187. package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +2 -2
  188. package/esm2020/lib/layer/layer-list/index.mjs +1 -1
  189. package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +1 -1
  190. package/esm2020/lib/layer/layer-list/layer-list.component.mjs +2 -2
  191. package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +1 -1
  192. package/esm2020/lib/layer/layer-list-tool/index.mjs +1 -1
  193. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +2 -2
  194. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +1 -1
  195. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +1 -1
  196. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +1 -1
  197. package/esm2020/lib/layer/layer.module.mjs +1 -1
  198. package/esm2020/lib/layer/shared/clusterParam.mjs +1 -1
  199. package/esm2020/lib/layer/shared/index.mjs +1 -1
  200. package/esm2020/lib/layer/shared/layer.enums.mjs +1 -1
  201. package/esm2020/lib/layer/shared/layer.service.mjs +6 -6
  202. package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
  203. package/esm2020/lib/layer/shared/layers/any-layer.mjs +1 -1
  204. package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
  205. package/esm2020/lib/layer/shared/layers/image-layer.mjs +1 -1
  206. package/esm2020/lib/layer/shared/layers/layer.interface.mjs +1 -1
  207. package/esm2020/lib/layer/shared/layers/layer.mjs +1 -1
  208. package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
  209. package/esm2020/lib/layer/shared/layers/tile-layer.mjs +1 -1
  210. package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
  211. package/esm2020/lib/layer/shared/layers/vector-layer.mjs +1 -1
  212. package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
  213. package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +1 -1
  214. package/esm2020/lib/layer/track-feature-button/index.mjs +1 -1
  215. package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +2 -2
  216. package/esm2020/lib/layer/utils/image-watcher.mjs +1 -1
  217. package/esm2020/lib/layer/utils/index.mjs +1 -1
  218. package/esm2020/lib/layer/utils/layer.utils.mjs +1 -1
  219. package/esm2020/lib/layer/utils/outputLegend.mjs +1 -1
  220. package/esm2020/lib/layer/utils/tile-watcher.mjs +1 -1
  221. package/esm2020/lib/layer/utils/vector-watcher.mjs +1 -1
  222. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +1 -1
  223. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +2 -2
  224. package/esm2020/lib/map/baselayers-switcher/index.mjs +1 -1
  225. package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +11 -12
  226. package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +2 -2
  227. package/esm2020/lib/map/geolocate-button/index.mjs +1 -1
  228. package/esm2020/lib/map/index.mjs +1 -1
  229. package/esm2020/lib/map/info-section/index.mjs +1 -1
  230. package/esm2020/lib/map/info-section/info-section.component.mjs +2 -2
  231. package/esm2020/lib/map/map-browser/index.mjs +1 -1
  232. package/esm2020/lib/map/map-browser/map-browser.component.mjs +2 -2
  233. package/esm2020/lib/map/map-center/index.mjs +1 -1
  234. package/esm2020/lib/map/map-center/map-center.component.mjs +2 -2
  235. package/esm2020/lib/map/map.module.mjs +1 -1
  236. package/esm2020/lib/map/menu-button/index.mjs +1 -1
  237. package/esm2020/lib/map/menu-button/menu-button.component.mjs +2 -2
  238. package/esm2020/lib/map/offline-button/index.mjs +1 -1
  239. package/esm2020/lib/map/offline-button/offline-button.component.mjs +2 -2
  240. package/esm2020/lib/map/rotation-button/index.mjs +1 -1
  241. package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +2 -2
  242. package/esm2020/lib/map/shared/controllers/controller.mjs +1 -1
  243. package/esm2020/lib/map/shared/controllers/geolocation.mjs +1 -1
  244. package/esm2020/lib/map/shared/controllers/index.mjs +1 -1
  245. package/esm2020/lib/map/shared/controllers/view.mjs +1 -1
  246. package/esm2020/lib/map/shared/hover-feature.directive.mjs +1 -1
  247. package/esm2020/lib/map/shared/index.mjs +1 -1
  248. package/esm2020/lib/map/shared/linkedLayers.utils.mjs +3 -3
  249. package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +1 -1
  250. package/esm2020/lib/map/shared/map.enums.mjs +1 -1
  251. package/esm2020/lib/map/shared/map.interface.mjs +1 -1
  252. package/esm2020/lib/map/shared/map.mjs +1 -1
  253. package/esm2020/lib/map/shared/map.service.mjs +1 -1
  254. package/esm2020/lib/map/shared/map.utils.mjs +1 -1
  255. package/esm2020/lib/map/shared/mapOffline.directive.mjs +1 -1
  256. package/esm2020/lib/map/shared/projection.interfaces.mjs +1 -1
  257. package/esm2020/lib/map/shared/projection.service.mjs +1 -1
  258. package/esm2020/lib/map/shared/projection.utils.mjs +1 -1
  259. package/esm2020/lib/map/swipe-control/index.mjs +1 -1
  260. package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +2 -2
  261. package/esm2020/lib/map/utils/layer-watcher.mjs +1 -1
  262. package/esm2020/lib/map/wake-lock-button/index.mjs +1 -1
  263. package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +2 -2
  264. package/esm2020/lib/map/zoom-button/index.mjs +1 -1
  265. package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +2 -2
  266. package/esm2020/lib/measure/index.mjs +1 -1
  267. package/esm2020/lib/measure/measure.module.mjs +1 -1
  268. package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +1 -1
  269. package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +2 -2
  270. package/esm2020/lib/measure/measurer/measurer-item.component.mjs +2 -2
  271. package/esm2020/lib/measure/measurer/measurer.component.mjs +2 -2
  272. package/esm2020/lib/measure/measurer/measurer.module.mjs +1 -1
  273. package/esm2020/lib/measure/shared/measure.enum.mjs +1 -1
  274. package/esm2020/lib/measure/shared/measure.interfaces.mjs +1 -1
  275. package/esm2020/lib/measure/shared/measure.utils.mjs +1 -1
  276. package/esm2020/lib/metadata/index.mjs +1 -1
  277. package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +2 -2
  278. package/esm2020/lib/metadata/metadata.module.mjs +1 -1
  279. package/esm2020/lib/metadata/shared/metadata.interface.mjs +1 -1
  280. package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +1 -1
  281. package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +1 -1
  282. package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +1 -1
  283. package/esm2020/lib/offline/geoDB/geoDB.service.mjs +1 -1
  284. package/esm2020/lib/offline/index.mjs +1 -1
  285. package/esm2020/lib/offline/layerDB/index.mjs +1 -1
  286. package/esm2020/lib/offline/layerDB/layerDB.interface.mjs +1 -1
  287. package/esm2020/lib/offline/layerDB/layerDB.service.mjs +1 -1
  288. package/esm2020/lib/offline/shared/geo-network.service.mjs +1 -1
  289. package/esm2020/lib/overlay/overlay.module.mjs +1 -1
  290. package/esm2020/lib/overlay/shared/index.mjs +1 -1
  291. package/esm2020/lib/overlay/shared/overlay.directive.mjs +1 -1
  292. package/esm2020/lib/overlay/shared/overlay.enum.mjs +1 -1
  293. package/esm2020/lib/overlay/shared/overlay.mjs +1 -1
  294. package/esm2020/lib/overlay/shared/overlay.service.mjs +1 -1
  295. package/esm2020/lib/overlay/shared/overlay.utils.mjs +1 -1
  296. package/esm2020/lib/print/print/print.component.mjs +2 -2
  297. package/esm2020/lib/print/print-form/print-form.component.mjs +2 -2
  298. package/esm2020/lib/print/print.module.mjs +1 -1
  299. package/esm2020/lib/print/shared/geopdf.mjs +1 -1
  300. package/esm2020/lib/print/shared/print.interface.mjs +1 -1
  301. package/esm2020/lib/print/shared/print.service.mjs +1 -1
  302. package/esm2020/lib/print/shared/print.type.mjs +1 -1
  303. package/esm2020/lib/query/query.module.mjs +1 -1
  304. package/esm2020/lib/query/shared/query-search-source.mjs +1 -1
  305. package/esm2020/lib/query/shared/query-search-source.providers.mjs +1 -1
  306. package/esm2020/lib/query/shared/query.directive.mjs +1 -1
  307. package/esm2020/lib/query/shared/query.interfaces.mjs +1 -1
  308. package/esm2020/lib/query/shared/query.service.mjs +1 -1
  309. package/esm2020/lib/query/shared/query.utils.mjs +1 -1
  310. package/esm2020/lib/search/index.mjs +1 -1
  311. package/esm2020/lib/search/search-bar/search-bar.component.mjs +2 -2
  312. package/esm2020/lib/search/search-bar/search-bar.module.mjs +1 -1
  313. package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +1 -1
  314. package/esm2020/lib/search/search-results/save-feature-dialog.component.mjs +2 -2
  315. package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +2 -2
  316. package/esm2020/lib/search/search-results/search-results-item.component.mjs +2 -2
  317. package/esm2020/lib/search/search-results/search-results.component.mjs +2 -2
  318. package/esm2020/lib/search/search-results/search-results.module.mjs +1 -1
  319. package/esm2020/lib/search/search-selector/search-selector.component.mjs +2 -2
  320. package/esm2020/lib/search/search-selector/search-selector.module.mjs +1 -1
  321. package/esm2020/lib/search/search-settings/search-settings.component.mjs +2 -2
  322. package/esm2020/lib/search/search-settings/search-settings.module.mjs +1 -1
  323. package/esm2020/lib/search/search.module.mjs +1 -1
  324. package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +1 -1
  325. package/esm2020/lib/search/shared/search-source-service.providers.mjs +1 -1
  326. package/esm2020/lib/search/shared/search-source.service.mjs +1 -1
  327. package/esm2020/lib/search/shared/search.enums.mjs +1 -1
  328. package/esm2020/lib/search/shared/search.interfaces.mjs +1 -1
  329. package/esm2020/lib/search/shared/search.service.mjs +1 -1
  330. package/esm2020/lib/search/shared/search.utils.mjs +1 -1
  331. package/esm2020/lib/search/shared/sources/cadastre.mjs +1 -1
  332. package/esm2020/lib/search/shared/sources/cadastre.providers.mjs +1 -1
  333. package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
  334. package/esm2020/lib/search/shared/sources/coordinates.mjs +1 -1
  335. package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +1 -1
  336. package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
  337. package/esm2020/lib/search/shared/sources/icherche.mjs +1 -1
  338. package/esm2020/lib/search/shared/sources/icherche.providers.mjs +1 -1
  339. package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
  340. package/esm2020/lib/search/shared/sources/ilayer.mjs +1 -1
  341. package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +1 -1
  342. package/esm2020/lib/search/shared/sources/index.mjs +1 -1
  343. package/esm2020/lib/search/shared/sources/nominatim.mjs +2 -2
  344. package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +1 -1
  345. package/esm2020/lib/search/shared/sources/source.interfaces.mjs +1 -1
  346. package/esm2020/lib/search/shared/sources/source.mjs +1 -1
  347. package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  348. package/esm2020/lib/search/shared/sources/storedqueries.mjs +1 -1
  349. package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +1 -1
  350. package/esm2020/lib/search/shared/sources/workspace.interfaces.mjs +1 -1
  351. package/esm2020/lib/search/shared/sources/workspace.mjs +1 -1
  352. package/esm2020/lib/search/shared/sources/workspace.providers.mjs +1 -1
  353. package/esm2020/lib/style/index.mjs +1 -1
  354. package/esm2020/lib/style/shared/datasource/esri-style-generator.mjs +1 -1
  355. package/esm2020/lib/style/shared/datasource/index.mjs +1 -1
  356. package/esm2020/lib/style/shared/feature/feature-style.mjs +1 -1
  357. package/esm2020/lib/style/shared/feature/index.mjs +1 -1
  358. package/esm2020/lib/style/shared/font.enum.mjs +1 -1
  359. package/esm2020/lib/style/shared/index.mjs +1 -1
  360. package/esm2020/lib/style/shared/overlay/index.mjs +1 -1
  361. package/esm2020/lib/style/shared/overlay/overlay-marker-style.utils.mjs +1 -1
  362. package/esm2020/lib/style/shared/overlay/overlay-style.utils.mjs +1 -1
  363. package/esm2020/lib/style/shared/vector/commonVectorStyle.mjs +1 -1
  364. package/esm2020/lib/style/shared/vector/conversion.utils.mjs +1 -1
  365. package/esm2020/lib/style/shared/vector/index.mjs +1 -1
  366. package/esm2020/lib/style/shared/vector/vector-style.interface.mjs +1 -1
  367. package/esm2020/lib/style/style-list/index.mjs +1 -1
  368. package/esm2020/lib/style/style-list/style-list.interface.mjs +1 -1
  369. package/esm2020/lib/style/style-list/style-list.module.mjs +1 -1
  370. package/esm2020/lib/style/style-list/style-list.provider.mjs +1 -1
  371. package/esm2020/lib/style/style-list/style-list.service.mjs +1 -1
  372. package/esm2020/lib/style/style-modal/drawing/index.mjs +1 -1
  373. package/esm2020/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +2 -2
  374. package/esm2020/lib/style/style-modal/index.mjs +1 -1
  375. package/esm2020/lib/style/style-modal/layer/index.mjs +1 -1
  376. package/esm2020/lib/style/style-modal/layer/style-modal-layer.component.mjs +2 -2
  377. package/esm2020/lib/style/style-modal/layer-button/index.mjs +1 -1
  378. package/esm2020/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +2 -2
  379. package/esm2020/lib/style/style-modal/shared/index.mjs +1 -1
  380. package/esm2020/lib/style/style-modal/shared/style-modal.interface.mjs +1 -1
  381. package/esm2020/lib/style/style-service/draw-style.service.mjs +1 -1
  382. package/esm2020/lib/style/style-service/index.mjs +1 -1
  383. package/esm2020/lib/style/style-service/style.service.mjs +1 -1
  384. package/esm2020/lib/style/style.module.mjs +1 -1
  385. package/esm2020/lib/toast/toast.component.mjs +2 -2
  386. package/esm2020/lib/toast/toast.module.mjs +1 -1
  387. package/esm2020/lib/utils/googleLinks.mjs +1 -1
  388. package/esm2020/lib/utils/id-generator.mjs +1 -1
  389. package/esm2020/lib/utils/index.mjs +1 -1
  390. package/esm2020/lib/utils/osmLinks.mjs +1 -1
  391. package/esm2020/lib/wkt/shared/wkt.service.mjs +15 -15
  392. package/esm2020/lib/wkt/wkt.module.mjs +1 -1
  393. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +2 -2
  394. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +1 -1
  395. package/esm2020/lib/workspace/confirmation-popup/index.mjs +1 -1
  396. package/esm2020/lib/workspace/shared/edition-workspace.mjs +1 -1
  397. package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +1 -1
  398. package/esm2020/lib/workspace/shared/feature-workspace.mjs +1 -1
  399. package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +1 -1
  400. package/esm2020/lib/workspace/shared/wfs-workspace.mjs +1 -1
  401. package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +1 -1
  402. package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +1 -1
  403. package/esm2020/lib/workspace/shared/workspace.utils.mjs +1 -1
  404. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +2 -2
  405. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +1 -1
  406. package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +1 -1
  407. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +1 -1
  408. package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +1 -1
  409. package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +1 -1
  410. package/esm2020/lib/workspace/workspace.module.mjs +1 -1
  411. package/esm2020/public_api.mjs +1 -1
  412. package/fesm2015/igo2-geo.mjs +116 -116
  413. package/fesm2015/igo2-geo.mjs.map +1 -1
  414. package/fesm2020/igo2-geo.mjs +115 -116
  415. package/fesm2020/igo2-geo.mjs.map +1 -1
  416. package/lib/layer/shared/layers/layer.interface.d.ts +2 -0
  417. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +1 -1
  418. package/ngcc.config.js +3 -3
  419. package/package.json +4 -4
  420. package/style/geo.theming.scss +12 -12
@@ -197,7 +197,7 @@ CatalogLibaryComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Cata
197
197
  } }, styles: ["igo-list[_ngcontent-%COMP%]{height:auto}.btnAddCatalog[_ngcontent-%COMP%]{justify-content:center;display:flex;margin:30px 0}"], changeDetection: 0 });
198
198
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CatalogLibaryComponent, [{
199
199
  type: Component,
200
- args: [{ selector: 'igo-catalog-library', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-list [navigation]=\"false\">\r\n <ng-template ngFor let-catalog [ngForOf]=\"getCatalogs() | async\">\r\n <igo-catalog-library-item\r\n igoListItem\r\n color=\"accent\"\r\n [map]=\"map\"\r\n [catalog]=\"catalog\"\r\n (catalogRemove)=\"onCatalogRemove(catalog)\"\r\n (select)=\"onCatalogSelect(catalog)\">\r\n </igo-catalog-library-item>\r\n </ng-template>\r\n</igo-list>\r\n\r\n<div *ngIf=\"addCatalogAllowed\" class=btnAddCatalog>\r\n <button\r\n mat-raised-button\r\n [matTooltip]=\"'igo.geo.catalog.library.addBtn' | translate\"\r\n matTooltipPosition=\"above\"\r\n color=\"primary\"\r\n (click)=\"addCatalogDialog()\">\r\n {{'igo.geo.catalog.library.addBtn' | translate}}\r\n <mat-icon svgIcon=\"earth-plus\"></mat-icon>\r\n </button>\r\n</div>\r\n", styles: ["igo-list{height:auto}.btnAddCatalog{justify-content:center;display:flex;margin:30px 0}\n"] }]
200
+ args: [{ selector: 'igo-catalog-library', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-list [navigation]=\"false\">\n <ng-template ngFor let-catalog [ngForOf]=\"getCatalogs() | async\">\n <igo-catalog-library-item\n igoListItem\n color=\"accent\"\n [map]=\"map\"\n [catalog]=\"catalog\"\n (catalogRemove)=\"onCatalogRemove(catalog)\"\n (select)=\"onCatalogSelect(catalog)\">\n </igo-catalog-library-item>\n </ng-template>\n</igo-list>\n\n<div *ngIf=\"addCatalogAllowed\" class=btnAddCatalog>\n <button\n mat-raised-button\n [matTooltip]=\"'igo.geo.catalog.library.addBtn' | translate\"\n matTooltipPosition=\"above\"\n color=\"primary\"\n (click)=\"addCatalogDialog()\">\n {{'igo.geo.catalog.library.addBtn' | translate}}\n <mat-icon svgIcon=\"earth-plus\"></mat-icon>\n </button>\n</div>\n", styles: ["igo-list{height:auto}.btnAddCatalog{justify-content:center;display:flex;margin:30px 0}\n"] }]
201
201
  }], function () { return [{ type: i1.CapabilitiesService }, { type: i2.MessageService }, { type: i2.StorageService }, { type: i3.MatDialog }]; }, { store: [{
202
202
  type: Input
203
203
  }], map: [{
@@ -209,4 +209,4 @@ CatalogLibaryComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Cata
209
209
  }], catalogSelectChange: [{
210
210
  type: Output
211
211
  }] }); })();
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1saWJyYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2NhdGFsb2cvY2F0YWxvZy1saWJyYXJ5L2NhdGFsb2ctbGlicmFyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9jYXRhbG9nL2NhdGFsb2ctbGlicmFyeS9jYXRhbG9nLWxpYnJhcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWix1QkFBdUIsRUFHeEIsTUFBTSxlQUFlLENBQUM7QUFLdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUc3QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFMUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7SUNuQnZFLG1EQU1zQztJQURwQywyUUFBaUIsZUFBQSxrQ0FBd0IsQ0FBQSxJQUFDLGdQQUNoQyxlQUFBLGtDQUF3QixDQUFBLElBRFE7SUFFNUMsaUJBQTJCOzs7O0lBSnpCLGdDQUFXLHVCQUFBOzs7O0lBUWpCLDhCQUFtRCxnQkFBQTtJQU0vQyxtS0FBUyxlQUFBLHlCQUFrQixDQUFBLElBQUM7O0lBQzVCLFlBQ0E7O0lBQUEsOEJBQTBDO0lBQzVDLGlCQUFTLEVBQUE7O0lBTlAsZUFBMkQ7SUFBM0QsbUZBQTJEO0lBSTNELGVBQ0E7SUFEQSx1RkFDQTs7QURFSjs7R0FFRztBQU9ILE1BQU0sT0FBTyxzQkFBc0I7SUF1Q2pDLFlBQ1UsbUJB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QUs7WUFLRyxHQUFHO2tCQUFYLEtBQUs7WUFLRyxpQkFBaUI7a0JBQXpCLEtBQUs7WUFLRyxrQkFBa0I7a0JBQTFCLEtBQUs7WUFLSSxtQkFBbUI7a0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3lcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UsIFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IE9iamVjdFV0aWxzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTWQ1IH0gZnJvbSAndHMtbWQ1JztcclxuaW1wb3J0IHsgQ2FwYWJpbGl0aWVzU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi8uLi9tYXAnO1xyXG5pbXBvcnQgeyBzdGFuZGFyZGl6ZVVybCB9IGZyb20gJy4uLy4uL3V0aWxzL2lkLWdlbmVyYXRvcic7XHJcbmltcG9ydCB7IENhdGFsb2cgfSBmcm9tICcuLi9zaGFyZWQvY2F0YWxvZy5hYnN0cmFjdCc7XHJcbmltcG9ydCB7IEFkZENhdGFsb2dEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2FkZC1jYXRhbG9nLWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudCB0byBicm93c2UgYSBsaXN0IG9mIGF2YWlsYWJsZSBjYXRhbG9nc1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tY2F0YWxvZy1saWJyYXJ5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2F0YWxvZy1saWJyYXJ5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jYXRhbG9nLWxpYnJhcnkuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2F0YWxvZ0xpYmFyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAvKipcclxuICAgKiBTdG9yZSBob2xkaW5nIHRoZSBjYXRhbG9nc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHN0b3JlOiBFbnRpdHlTdG9yZTxDYXRhbG9nPjtcclxuXHJcbiAgLyoqXHJcbiAgICogTWFwIHRvIGFkZCB0aGUgY2F0YWxvZyBpdGVtcyB0b1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1hcDogSWdvTWFwO1xyXG5cclxuICAvKipcclxuICAgKiBEZXRlcm1pbmUgaWYgdGhlIGZvcm0gdG8gYWRkIGEgY2F0YWxvZyBpcyBhbGxvd2VkXHJcbiAgICovXHJcbiAgQElucHV0KCkgYWRkQ2F0YWxvZ0FsbG93ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogRGV0ZXJtaW5lIGlmIHRoZSBmb3JtIHRvIGFkZCBhIGNhdGFsb2cgaXMgYWxsb3dlZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHByZWRlZmluZWRDYXRhbG9nczogQ2F0YWxvZ1tdID0gW107XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgYSBjYXRhbG9nIGlzIHNlbGVjdGVkIG9yIHVuc2VsZWN0ZWRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgY2F0YWxvZ1NlbGVjdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XHJcbiAgICBjYXRhbG9nOiBDYXRhbG9nO1xyXG4gIH0+KCk7XHJcblxyXG4gIHN1Ym1pdERpc2FibGVkID0gdHJ1ZTtcclxuICBwcml2YXRlIGFkZGluZ0NhdGFsb2ckJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBnZXQgYWRkZWRDYXRhbG9ncygpOiBDYXRhbG9nW10ge1xyXG4gICAgcmV0dXJuICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldCgnYWRkZWRDYXRhbG9ncycpIHx8IFtdKSBhcyBDYXRhbG9nW107XHJcbiAgfVxyXG4gIHNldCBhZGRlZENhdGFsb2dzKGNhdGFsb2dzOiBDYXRhbG9nW10pIHtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0KCdhZGRlZENhdGFsb2dzJywgY2F0YWxvZ3MpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNhcGFiaWxpdGllc1NlcnZpY2U6IENhcGFiaWxpdGllc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZ1xyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnN0b3JlLnN0YXRlLmNsZWFyKCk7XHJcblxyXG4gICAgdGhpcy5wcmVkZWZpbmVkQ2F0YWxvZ3MgPSB0aGlzLnByZWRlZmluZWRDYXRhbG9ncy5tYXAoYyA9PiB7XHJcbiAgICAgIGMuaWQgPSBNZDUuaGFzaFN0cihcclxuICAgICAgICAoYy50eXBlIHx8ICd3bXMnKSArIHN0YW5kYXJkaXplVXJsKGMudXJsKVxyXG4gICAgICApIGFzIHN0cmluZztcclxuICAgICAgYy50aXRsZSA9IGMudGl0bGUgPT09ICcnIHx8ICFjLnRpdGxlID8gYy51cmwgOiBjLnRpdGxlO1xyXG4gICAgICByZXR1cm4gYztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2F0YWxvZ3MoKTogT2JzZXJ2YWJsZTxDYXRhbG9nW10+IHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnZpZXcuYWxsJCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBhIGNhdGFsb2cgaXMgc2VsZWN0ZWQsIHVwZGF0ZSBpdCdzIHN0YXRlIGluIHRoZSBzdG9yZVxyXG4gICAqIGFuZCBlbWl0IHRoZSBjYXRhbG9nIHNlbGVjdCBjaGFuZ2UgZXZlbnRcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBvbkNhdGFsb2dTZWxlY3QoY2F0YWxvZzogQ2F0YWxvZykge1xyXG4gICAgdGhpcy5zdG9yZS5zdGF0ZS51cGRhdGUoXHJcbiAgICAgIGNhdGFsb2csXHJcbiAgICAgIHtcclxuICAgICAgICBzZWxlY3RlZDogdHJ1ZSxcclxuICAgICAgICBmb2N1c2VkOiB0cnVlXHJcbiAgICAgIH0sXHJcbiAgICAgIHRydWVcclxuICAgICk7XHJcbiAgICB0aGlzLmNhdGFsb2dTZWxlY3RDaGFuZ2UuZW1pdCh7IHNlbGVjdGVkOiB0cnVlLCBjYXRhbG9nIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1bnN1YnNjcmliZUFkZGluZ0NhdGFsb2coKSB7XHJcbiAgICBpZiAodGhpcy5hZGRpbmdDYXRhbG9nJCQpIHtcclxuICAgICAgdGhpcy5hZGRpbmdDYXRhbG9nJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFkZENhdGFsb2coYWRkZWRDYXRhbG9nOiBDYXRhbG9nKSB7XHJcbiAgICBpZiAoIWFkZGVkQ2F0YWxvZykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgaWQgPSBNZDUuaGFzaFN0cihcclxuICAgICAgYWRkZWRDYXRhbG9nLnR5cGUgKyBzdGFuZGFyZGl6ZVVybChhZGRlZENhdGFsb2cudXJsKVxyXG4gICAgKSBhcyBzdHJpbmc7XHJcbiAgICBjb25zdCBwcmVkZWZpbmVkQ2F0YWxvZyA9IHRoaXMucHJlZGVmaW5lZENhdGFsb2dzLmZpbmQoXHJcbiAgICAgIChjKSA9PiBjLmlkID09PSBhZGRlZENhdGFsb2cuaWRcclxuICAgICk7XHJcblxyXG4gICAgaWYgKHByZWRlZmluZWRDYXRhbG9nKSB7XHJcbiAgICAgIGFkZGVkQ2F0YWxvZy52ZXJzaW9uID0gcHJlZGVmaW5lZENhdGFsb2cudmVyc2lvbjtcclxuICAgICAgYWRkZWRDYXRhbG9nLmV4dGVybmFsUHJvdmlkZXIgPSBwcmVkZWZpbmVkQ2F0YWxvZy5leHRlcm5hbFByb3ZpZGVyO1xyXG4gICAgICBpZCA9IHByZWRlZmluZWRDYXRhbG9nLmlkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnN0b3JlLmdldChpZCkpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hbGVydCgnaWdvLmdlby5jYXRhbG9nLmxpYnJhcnkuaW5saXN0Lm1lc3NhZ2UnLCAnaWdvLmdlby5jYXRhbG9nLmxpYnJhcnkuaW5saXN0LnRpdGxlJyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMudW5zdWJzY3JpYmVBZGRpbmdDYXRhbG9nKCk7XHJcblxyXG4gICAgdGhpcy5hZGRpbmdDYXRhbG9nJCQgPSB0aGlzLmNhcGFiaWxpdGllc1NlcnZpY2VcclxuICAgIC5nZXRDYXBhYmlsaXRpZXMoYWRkZWRDYXRhbG9nLnR5cGUgYXMgYW55LCBhZGRlZENhdGFsb2cudXJsLCBhZGRlZENhdGFsb2cudmVyc2lvbilcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGUuZXJyb3IpIHtcclxuICAgICAgICAgICAgdGhpcy5hZGRDYXRhbG9nRGlhbG9nKHRydWUsIGFkZGVkQ2F0YWxvZyk7XHJcbiAgICAgICAgICAgIGUuZXJyb3IuY2F1Z2h0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgcmV0dXJuIGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAnaWdvLmdlby5jYXRhbG9nLnVuYXZhaWxhYmxlJyxcclxuICAgICAgICAgICAgJ2lnby5nZW8uY2F0YWxvZy51bmF2YWlsYWJsZVRpdGxlJyxcclxuICAgICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICB7IHZhbHVlOiBhZGRlZENhdGFsb2cudXJsIH0pO1xyXG4gICAgICAgICAgdGhyb3cgZTtcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKGNhcGFiaWxpdGllcykgPT4ge1xyXG4gICAgICAgIGxldCB0aXRsZTtcclxuICAgICAgICBsZXQgdmVyc2lvbjtcclxuICAgICAgICBzd2l0Y2ggKGFkZGVkQ2F0YWxvZy50eXBlKSB7XHJcbiAgICAgICAgICBjYXNlICd3bXMnOlxyXG4gICAgICAgICAgICB0aXRsZSA9IGFkZGVkQ2F0YWxvZy50aXRsZSB8fCBjYXBhYmlsaXRpZXMuU2VydmljZS5UaXRsZTtcclxuICAgICAgICAgICAgdmVyc2lvbiA9IGFkZGVkQ2F0YWxvZy52ZXJzaW9uIHx8IGNhcGFiaWxpdGllcy52ZXJzaW9uO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgJ2FyY2dpc3Jlc3QnOlxyXG4gICAgICAgICAgY2FzZSAnaW1hZ2VhcmNnaXNyZXN0JzpcclxuICAgICAgICAgIGNhc2UgJ3RpbGVhcmNnaXNyZXN0JzpcclxuICAgICAgICAgICAgdGl0bGUgPSBhZGRlZENhdGFsb2cudGl0bGUgfHwgY2FwYWJpbGl0aWVzLm1hcE5hbWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnd210cyc6XHJcbiAgICAgICAgICAgIHRpdGxlID1cclxuICAgICAgICAgICAgICBhZGRlZENhdGFsb2cudGl0bGUgfHxcclxuICAgICAgICAgICAgICBjYXBhYmlsaXRpZXMuU2VydmljZUlkZW50aWZpY2F0aW9uLlNlcnZpY2VUeXBlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHRpdGxlID0gYWRkZWRDYXRhbG9nLnRpdGxlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgY2F0YWxvZ1RvQWRkID0gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKFxyXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih7fSxcclxuICAgICAgICAgICAgcHJlZGVmaW5lZENhdGFsb2csXHJcbiAgICAgICAgICAgIE9iamVjdFV0aWxzLnJlbW92ZVVuZGVmaW5lZCh7XHJcbiAgICAgICAgICAgICAgaWQsXHJcbiAgICAgICAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgICAgICAgdXJsOiBhZGRlZENhdGFsb2cudXJsLFxyXG4gICAgICAgICAgICAgIHR5cGU6IGFkZGVkQ2F0YWxvZy50eXBlIHx8ICd3bXMnLFxyXG4gICAgICAgICAgICAgIGV4dGVybmFsUHJvdmlkZXI6IGFkZGVkQ2F0YWxvZy5leHRlcm5hbFByb3ZpZGVyIHx8IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHJlbW92YWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICB2ZXJzaW9uXHJcbiAgICAgICAgICAgIH0pKSBhcyBDYXRhbG9nKTtcclxuICAgICAgICB0aGlzLnN0b3JlLmluc2VydChjYXRhbG9nVG9BZGQpO1xyXG4gICAgICAgIGNvbnN0IG5ld0NhdGFsb2dzID0gdGhpcy5hZGRlZENhdGFsb2dzLnNsaWNlKDApO1xyXG4gICAgICAgIG5ld0NhdGFsb2dzLnB1c2goY2F0YWxvZ1RvQWRkKTtcclxuICAgICAgICB0aGlzLmFkZGVkQ2F0YWxvZ3MgPSBuZXdDYXRhbG9ncztcclxuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlQWRkaW5nQ2F0YWxvZygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy51bnN1YnNjcmliZUFkZGluZ0NhdGFsb2coKTtcclxuICB9XHJcblxyXG4gIG9uQ2F0YWxvZ1JlbW92ZShjYXRhbG9nKSB7XHJcbiAgICB0aGlzLnN0b3JlLmRlbGV0ZShjYXRhbG9nKTtcclxuICAgIHRoaXMuYWRkZWRDYXRhbG9ncyA9IHRoaXMuYWRkZWRDYXRhbG9nc1xyXG4gICAgICAuc2xpY2UoMClcclxuICAgICAgLmZpbHRlcigoYykgPT4gYy5pZCAhPT0gY2F0YWxvZy5pZCk7XHJcbiAgfVxyXG5cclxuICBhZGRDYXRhbG9nRGlhbG9nKGVycm9yPywgYWRkZWRDYXRhbG9nPzogQ2F0YWxvZykge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBZGRDYXRhbG9nRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiAnNzAwcHgnLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgcHJlZGVmaW5lZENhdGFsb2dzOiB0aGlzLnByZWRlZmluZWRDYXRhbG9ncyxcclxuICAgICAgICBzdG9yZTogdGhpcy5zdG9yZSxcclxuICAgICAgICBlcnJvcixcclxuICAgICAgICBhZGRlZENhdGFsb2dcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChjYXRhbG9nKSA9PiB7XHJcbiAgICAgIHRoaXMuYWRkQ2F0YWxvZyhjYXRhbG9nKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8aWdvLWxpc3QgW25hdmlnYXRpb25dPVwiZmFsc2VcIj5cclxuICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWNhdGFsb2cgW25nRm9yT2ZdPVwiZ2V0Q2F0YWxvZ3MoKSB8IGFzeW5jXCI+XHJcbiAgICA8aWdvLWNhdGFsb2ctbGlicmFyeS1pdGVtXHJcbiAgICAgIGlnb0xpc3RJdGVtXHJcbiAgICAgIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgW21hcF09XCJtYXBcIlxyXG4gICAgICBbY2F0YWxvZ109XCJjYXRhbG9nXCJcclxuICAgICAgKGNhdGFsb2dSZW1vdmUpPVwib25DYXRhbG9nUmVtb3ZlKGNhdGFsb2cpXCJcclxuICAgICAgKHNlbGVjdCk9XCJvbkNhdGFsb2dTZWxlY3QoY2F0YWxvZylcIj5cclxuICAgIDwvaWdvLWNhdGFsb2ctbGlicmFyeS1pdGVtPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvaWdvLWxpc3Q+XHJcblxyXG48ZGl2ICpuZ0lmPVwiYWRkQ2F0YWxvZ0FsbG93ZWRcIiBjbGFzcz1idG5BZGRDYXRhbG9nPlxyXG4gIDxidXR0b25cclxuICAgIG1hdC1yYWlzZWQtYnV0dG9uXHJcbiAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5jYXRhbG9nLmxpYnJhcnkuYWRkQnRuJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXHJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgKGNsaWNrKT1cImFkZENhdGFsb2dEaWFsb2coKVwiPlxyXG4gICAge3snaWdvLmdlby5jYXRhbG9nLmxpYnJhcnkuYWRkQnRuJyB8IHRyYW5zbGF0ZX19XHJcbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImVhcnRoLXBsdXNcIj48L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG48L2Rpdj5cclxuIl19
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1saWJyYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2NhdGFsb2cvY2F0YWxvZy1saWJyYXJ5L2NhdGFsb2ctbGlicmFyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9jYXRhbG9nL2NhdGFsb2ctbGlicmFyeS9jYXRhbG9nLWxpYnJhcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWix1QkFBdUIsRUFHeEIsTUFBTSxlQUFlLENBQUM7QUFLdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUc3QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFMUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7SUNuQnZFLG1EQU1zQztJQURwQywyUUFBaUIsZUFBQSxrQ0FBd0IsQ0FBQSxJQUFDLGdQQUNoQyxlQUFBLGtDQUF3QixDQUFBLElBRFE7SUFFNUMsaUJBQTJCOzs7O0lBSnpCLGdDQUFXLHVCQUFBOzs7O0lBUWpCLDhCQUFtRCxnQkFBQTtJQU0vQyxtS0FBUyxlQUFBLHlCQUFrQixDQUFBLElBQUM7O0lBQzVCLFlBQ0E7O0lBQUEsOEJBQTBDO0lBQzVDLGlCQUFTLEVBQUE7O0lBTlAsZUFBMkQ7SUFBM0QsbUZBQTJEO0lBSTNELGVBQ0E7SUFEQSx1RkFDQTs7QURFSjs7R0FFRztBQU9ILE1BQU0sT0FBTyxzQkFBc0I7SUF1Q2pDLFlBQ1UsbUJB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QUs7WUFLRyxHQUFHO2tCQUFYLEtBQUs7WUFLRyxpQkFBaUI7a0JBQXpCLEtBQUs7WUFLRyxrQkFBa0I7a0JBQTFCLEtBQUs7WUFLSSxtQkFBbUI7a0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgRW50aXR5U3RvcmUgfSBmcm9tICdAaWdvMi9jb21tb24nO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UsIFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1kNSB9IGZyb20gJ3RzLW1kNSc7XG5pbXBvcnQgeyBDYXBhYmlsaXRpZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi8uLi9tYXAnO1xuaW1wb3J0IHsgc3RhbmRhcmRpemVVcmwgfSBmcm9tICcuLi8uLi91dGlscy9pZC1nZW5lcmF0b3InO1xuaW1wb3J0IHsgQ2F0YWxvZyB9IGZyb20gJy4uL3NoYXJlZC9jYXRhbG9nLmFic3RyYWN0JztcbmltcG9ydCB7IEFkZENhdGFsb2dEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2FkZC1jYXRhbG9nLWRpYWxvZy5jb21wb25lbnQnO1xuXG4vKipcbiAqIENvbXBvbmVudCB0byBicm93c2UgYSBsaXN0IG9mIGF2YWlsYWJsZSBjYXRhbG9nc1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tY2F0YWxvZy1saWJyYXJ5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhdGFsb2ctbGlicmFyeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhdGFsb2ctbGlicmFyeS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDYXRhbG9nTGliYXJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogU3RvcmUgaG9sZGluZyB0aGUgY2F0YWxvZ3NcbiAgICovXG4gIEBJbnB1dCgpIHN0b3JlOiBFbnRpdHlTdG9yZTxDYXRhbG9nPjtcblxuICAvKipcbiAgICogTWFwIHRvIGFkZCB0aGUgY2F0YWxvZyBpdGVtcyB0b1xuICAgKi9cbiAgQElucHV0KCkgbWFwOiBJZ29NYXA7XG5cbiAgLyoqXG4gICAqIERldGVybWluZSBpZiB0aGUgZm9ybSB0byBhZGQgYSBjYXRhbG9nIGlzIGFsbG93ZWRcbiAgICovXG4gIEBJbnB1dCgpIGFkZENhdGFsb2dBbGxvd2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIERldGVybWluZSBpZiB0aGUgZm9ybSB0byBhZGQgYSBjYXRhbG9nIGlzIGFsbG93ZWRcbiAgICovXG4gIEBJbnB1dCgpIHByZWRlZmluZWRDYXRhbG9nczogQ2F0YWxvZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgYSBjYXRhbG9nIGlzIHNlbGVjdGVkIG9yIHVuc2VsZWN0ZWRcbiAgICovXG4gIEBPdXRwdXQoKSBjYXRhbG9nU2VsZWN0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgY2F0YWxvZzogQ2F0YWxvZztcbiAgfT4oKTtcblxuICBzdWJtaXREaXNhYmxlZCA9IHRydWU7XG4gIHByaXZhdGUgYWRkaW5nQ2F0YWxvZyQkOiBTdWJzY3JpcHRpb247XG5cbiAgZ2V0IGFkZGVkQ2F0YWxvZ3MoKTogQ2F0YWxvZ1tdIHtcbiAgICByZXR1cm4gKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KCdhZGRlZENhdGFsb2dzJykgfHwgW10pIGFzIENhdGFsb2dbXTtcbiAgfVxuICBzZXQgYWRkZWRDYXRhbG9ncyhjYXRhbG9nczogQ2F0YWxvZ1tdKSB7XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXQoJ2FkZGVkQ2F0YWxvZ3MnLCBjYXRhbG9ncyk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNhcGFiaWxpdGllc1NlcnZpY2U6IENhcGFiaWxpdGllc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZ1xuICApIHt9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdG9yZS5zdGF0ZS5jbGVhcigpO1xuXG4gICAgdGhpcy5wcmVkZWZpbmVkQ2F0YWxvZ3MgPSB0aGlzLnByZWRlZmluZWRDYXRhbG9ncy5tYXAoYyA9PiB7XG4gICAgICBjLmlkID0gTWQ1Lmhhc2hTdHIoXG4gICAgICAgIChjLnR5cGUgfHwgJ3dtcycpICsgc3RhbmRhcmRpemVVcmwoYy51cmwpXG4gICAgICApIGFzIHN0cmluZztcbiAgICAgIGMudGl0bGUgPSBjLnRpdGxlID09PSAnJyB8fCAhYy50aXRsZSA/IGMudXJsIDogYy50aXRsZTtcbiAgICAgIHJldHVybiBjO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0Q2F0YWxvZ3MoKTogT2JzZXJ2YWJsZTxDYXRhbG9nW10+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS52aWV3LmFsbCQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIGEgY2F0YWxvZyBpcyBzZWxlY3RlZCwgdXBkYXRlIGl0J3Mgc3RhdGUgaW4gdGhlIHN0b3JlXG4gICAqIGFuZCBlbWl0IHRoZSBjYXRhbG9nIHNlbGVjdCBjaGFuZ2UgZXZlbnRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBvbkNhdGFsb2dTZWxlY3QoY2F0YWxvZzogQ2F0YWxvZykge1xuICAgIHRoaXMuc3RvcmUuc3RhdGUudXBkYXRlKFxuICAgICAgY2F0YWxvZyxcbiAgICAgIHtcbiAgICAgICAgc2VsZWN0ZWQ6IHRydWUsXG4gICAgICAgIGZvY3VzZWQ6IHRydWVcbiAgICAgIH0sXG4gICAgICB0cnVlXG4gICAgKTtcbiAgICB0aGlzLmNhdGFsb2dTZWxlY3RDaGFuZ2UuZW1pdCh7IHNlbGVjdGVkOiB0cnVlLCBjYXRhbG9nIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZUFkZGluZ0NhdGFsb2coKSB7XG4gICAgaWYgKHRoaXMuYWRkaW5nQ2F0YWxvZyQkKSB7XG4gICAgICB0aGlzLmFkZGluZ0NhdGFsb2ckJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGFkZENhdGFsb2coYWRkZWRDYXRhbG9nOiBDYXRhbG9nKSB7XG4gICAgaWYgKCFhZGRlZENhdGFsb2cpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGlkID0gTWQ1Lmhhc2hTdHIoXG4gICAgICBhZGRlZENhdGFsb2cudHlwZSArIHN0YW5kYXJkaXplVXJsKGFkZGVkQ2F0YWxvZy51cmwpXG4gICAgKSBhcyBzdHJpbmc7XG4gICAgY29uc3QgcHJlZGVmaW5lZENhdGFsb2cgPSB0aGlzLnByZWRlZmluZWRDYXRhbG9ncy5maW5kKFxuICAgICAgKGMpID0+IGMuaWQgPT09IGFkZGVkQ2F0YWxvZy5pZFxuICAgICk7XG5cbiAgICBpZiAocHJlZGVmaW5lZENhdGFsb2cpIHtcbiAgICAgIGFkZGVkQ2F0YWxvZy52ZXJzaW9uID0gcHJlZGVmaW5lZENhdGFsb2cudmVyc2lvbjtcbiAgICAgIGFkZGVkQ2F0YWxvZy5leHRlcm5hbFByb3ZpZGVyID0gcHJlZGVmaW5lZENhdGFsb2cuZXh0ZXJuYWxQcm92aWRlcjtcbiAgICAgIGlkID0gcHJlZGVmaW5lZENhdGFsb2cuaWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3RvcmUuZ2V0KGlkKSkge1xuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hbGVydCgnaWdvLmdlby5jYXRhbG9nLmxpYnJhcnkuaW5saXN0Lm1lc3NhZ2UnLCAnaWdvLmdlby5jYXRhbG9nLmxpYnJhcnkuaW5saXN0LnRpdGxlJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudW5zdWJzY3JpYmVBZGRpbmdDYXRhbG9nKCk7XG5cbiAgICB0aGlzLmFkZGluZ0NhdGFsb2ckJCA9IHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZVxuICAgIC5nZXRDYXBhYmlsaXRpZXMoYWRkZWRDYXRhbG9nLnR5cGUgYXMgYW55LCBhZGRlZENhdGFsb2cudXJsLCBhZGRlZENhdGFsb2cudmVyc2lvbilcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XG4gICAgICAgICAgaWYgKGUuZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkQ2F0YWxvZ0RpYWxvZyh0cnVlLCBhZGRlZENhdGFsb2cpO1xuICAgICAgICAgICAgZS5lcnJvci5jYXVnaHQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoXG4gICAgICAgICAgICAnaWdvLmdlby5jYXRhbG9nLnVuYXZhaWxhYmxlJyxcbiAgICAgICAgICAgICdpZ28uZ2VvLmNhdGFsb2cudW5hdmFpbGFibGVUaXRsZScsXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICB7IHZhbHVlOiBhZGRlZENhdGFsb2cudXJsIH0pO1xuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChjYXBhYmlsaXRpZXMpID0+IHtcbiAgICAgICAgbGV0IHRpdGxlO1xuICAgICAgICBsZXQgdmVyc2lvbjtcbiAgICAgICAgc3dpdGNoIChhZGRlZENhdGFsb2cudHlwZSkge1xuICAgICAgICAgIGNhc2UgJ3dtcyc6XG4gICAgICAgICAgICB0aXRsZSA9IGFkZGVkQ2F0YWxvZy50aXRsZSB8fCBjYXBhYmlsaXRpZXMuU2VydmljZS5UaXRsZTtcbiAgICAgICAgICAgIHZlcnNpb24gPSBhZGRlZENhdGFsb2cudmVyc2lvbiB8fCBjYXBhYmlsaXRpZXMudmVyc2lvbjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2FyY2dpc3Jlc3QnOlxuICAgICAgICAgIGNhc2UgJ2ltYWdlYXJjZ2lzcmVzdCc6XG4gICAgICAgICAgY2FzZSAndGlsZWFyY2dpc3Jlc3QnOlxuICAgICAgICAgICAgdGl0bGUgPSBhZGRlZENhdGFsb2cudGl0bGUgfHwgY2FwYWJpbGl0aWVzLm1hcE5hbWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICd3bXRzJzpcbiAgICAgICAgICAgIHRpdGxlID1cbiAgICAgICAgICAgICAgYWRkZWRDYXRhbG9nLnRpdGxlIHx8XG4gICAgICAgICAgICAgIGNhcGFiaWxpdGllcy5TZXJ2aWNlSWRlbnRpZmljYXRpb24uU2VydmljZVR5cGU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGl0bGUgPSBhZGRlZENhdGFsb2cudGl0bGU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjYXRhbG9nVG9BZGQgPSBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih7fSxcbiAgICAgICAgICAgIHByZWRlZmluZWRDYXRhbG9nLFxuICAgICAgICAgICAgT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHtcbiAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgICAgICB1cmw6IGFkZGVkQ2F0YWxvZy51cmwsXG4gICAgICAgICAgICAgIHR5cGU6IGFkZGVkQ2F0YWxvZy50eXBlIHx8ICd3bXMnLFxuICAgICAgICAgICAgICBleHRlcm5hbFByb3ZpZGVyOiBhZGRlZENhdGFsb2cuZXh0ZXJuYWxQcm92aWRlciB8fCBmYWxzZSxcbiAgICAgICAgICAgICAgcmVtb3ZhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICB2ZXJzaW9uXG4gICAgICAgICAgICB9KSkgYXMgQ2F0YWxvZyk7XG4gICAgICAgIHRoaXMuc3RvcmUuaW5zZXJ0KGNhdGFsb2dUb0FkZCk7XG4gICAgICAgIGNvbnN0IG5ld0NhdGFsb2dzID0gdGhpcy5hZGRlZENhdGFsb2dzLnNsaWNlKDApO1xuICAgICAgICBuZXdDYXRhbG9ncy5wdXNoKGNhdGFsb2dUb0FkZCk7XG4gICAgICAgIHRoaXMuYWRkZWRDYXRhbG9ncyA9IG5ld0NhdGFsb2dzO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlQWRkaW5nQ2F0YWxvZygpO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlQWRkaW5nQ2F0YWxvZygpO1xuICB9XG5cbiAgb25DYXRhbG9nUmVtb3ZlKGNhdGFsb2cpIHtcbiAgICB0aGlzLnN0b3JlLmRlbGV0ZShjYXRhbG9nKTtcbiAgICB0aGlzLmFkZGVkQ2F0YWxvZ3MgPSB0aGlzLmFkZGVkQ2F0YWxvZ3NcbiAgICAgIC5zbGljZSgwKVxuICAgICAgLmZpbHRlcigoYykgPT4gYy5pZCAhPT0gY2F0YWxvZy5pZCk7XG4gIH1cblxuICBhZGRDYXRhbG9nRGlhbG9nKGVycm9yPywgYWRkZWRDYXRhbG9nPzogQ2F0YWxvZykge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQWRkQ2F0YWxvZ0RpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc3MDBweCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHByZWRlZmluZWRDYXRhbG9nczogdGhpcy5wcmVkZWZpbmVkQ2F0YWxvZ3MsXG4gICAgICAgIHN0b3JlOiB0aGlzLnN0b3JlLFxuICAgICAgICBlcnJvcixcbiAgICAgICAgYWRkZWRDYXRhbG9nXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKGNhdGFsb2cpID0+IHtcbiAgICAgIHRoaXMuYWRkQ2F0YWxvZyhjYXRhbG9nKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGlnby1saXN0IFtuYXZpZ2F0aW9uXT1cImZhbHNlXCI+XG4gIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtY2F0YWxvZyBbbmdGb3JPZl09XCJnZXRDYXRhbG9ncygpIHwgYXN5bmNcIj5cbiAgICA8aWdvLWNhdGFsb2ctbGlicmFyeS1pdGVtXG4gICAgICBpZ29MaXN0SXRlbVxuICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgW21hcF09XCJtYXBcIlxuICAgICAgW2NhdGFsb2ddPVwiY2F0YWxvZ1wiXG4gICAgICAoY2F0YWxvZ1JlbW92ZSk9XCJvbkNhdGFsb2dSZW1vdmUoY2F0YWxvZylcIlxuICAgICAgKHNlbGVjdCk9XCJvbkNhdGFsb2dTZWxlY3QoY2F0YWxvZylcIj5cbiAgICA8L2lnby1jYXRhbG9nLWxpYnJhcnktaXRlbT5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvaWdvLWxpc3Q+XG5cbjxkaXYgKm5nSWY9XCJhZGRDYXRhbG9nQWxsb3dlZFwiIGNsYXNzPWJ0bkFkZENhdGFsb2c+XG4gIDxidXR0b25cbiAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmNhdGFsb2cubGlicmFyeS5hZGRCdG4nIHwgdHJhbnNsYXRlXCJcbiAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXG4gICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAoY2xpY2spPVwiYWRkQ2F0YWxvZ0RpYWxvZygpXCI+XG4gICAge3snaWdvLmdlby5jYXRhbG9nLmxpYnJhcnkuYWRkQnRuJyB8IHRyYW5zbGF0ZX19XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJlYXJ0aC1wbHVzXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
@@ -92,4 +92,4 @@ IgoCatalogLibraryModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [
92
92
  MatDialogModule], exports: [CatalogLibaryComponent,
93
93
  AddCatalogDialogComponent] }); })();
94
94
  i0.ɵɵsetComponentScope(CatalogLibaryComponent, [i1.NgForOf, i1.NgIf, i2.MatIcon, i3.MatTooltip, i4.ListItemDirective, i4.ListComponent, i5.MatButton, CatalogLibaryItemComponent], [i1.AsyncPipe, i6.TranslatePipe]);
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1saWJyYXJ5Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2NhdGFsb2cvY2F0YWxvZy1saWJyYXJ5L2NhdGFsb2ctbGlicmFyeS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxzQkFBc0IsR0FBRyxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7OztBQUUzRDs7R0FFRztBQTRCSCxNQUFNLE9BQU8sdUJBQXVCOzs4RkFBdkIsdUJBQXVCO3lFQUF2Qix1QkFBdUI7NkVBekJoQyxZQUFZO1FBQ1osYUFBYTtRQUNiLGNBQWM7UUFDZCxhQUFhO1FBQ2IsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixpQkFBaUI7UUFDakIsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQixtQkFBbUI7UUFDbkIsY0FBYztRQUNkLGVBQWU7UUFDZixxQkFBcUI7UUFDckIsZUFBZTt1RkFZTix1QkFBdUI7Y0EzQm5DLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixhQUFhO29CQUNiLGNBQWM7b0JBQ2QsYUFBYTtvQkFDYixnQkFBZ0I7b0JBQ2hCLGFBQWE7b0JBQ2IsaUJBQWlCO29CQUNqQixlQUFlO29CQUNmLGtCQUFrQjtvQkFDbEIsbUJBQW1CO29CQUNuQixjQUFjO29CQUNkLGVBQWU7b0JBQ2YscUJBQXFCO29CQUNyQixlQUFlO2lCQUNoQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1Asc0JBQXNCO29CQUN0Qix5QkFBeUI7aUJBQzFCO2dCQUNELFlBQVksRUFBRTtvQkFDWixzQkFBc0I7b0JBQ3RCLDBCQUEwQjtvQkFDMUIseUJBQXlCO2lCQUMxQjthQUNGOzt3RkFDWSx1QkFBdUIsbUJBTGhDLHNCQUFzQjtRQUN0QiwwQkFBMEI7UUFDMUIseUJBQXlCLGFBdEJ6QixZQUFZO1FBQ1osYUFBYTtRQUNiLGNBQWM7UUFDZCxhQUFhO1FBQ2IsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixpQkFBaUI7UUFDakIsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQixtQkFBbUI7UUFDbkIsY0FBYztRQUNkLGVBQWU7UUFDZixxQkFBcUI7UUFDckIsZUFBZSxhQUdmLHNCQUFzQjtRQUN0Qix5QkFBeUI7dUJBR3pCLHNCQUFzQix5R0FDdEIsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcblxyXG5pbXBvcnQgeyBJZ29MaXN0TW9kdWxlIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuXHJcbmltcG9ydCB7IENhdGFsb2dMaWJhcnlDb21wb25lbnQsIH0gZnJvbSAnLi9jYXRhbG9nLWxpYnJhcnkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2F0YWxvZ0xpYmFyeUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NhdGFsb2ctbGlicmFyeS1pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFkZENhdGFsb2dEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2FkZC1jYXRhbG9nLWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XHJcbmltcG9ydCB7IElnb0xhbmd1YWdlTW9kdWxlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRCYWRnZU1vZHVsZSxcclxuICAgIE1hdExpc3RNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgSWdvTGlzdE1vZHVsZSxcclxuICAgIElnb0xhbmd1YWdlTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBDYXRhbG9nTGliYXJ5Q29tcG9uZW50LFxyXG4gICAgQWRkQ2F0YWxvZ0RpYWxvZ0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBDYXRhbG9nTGliYXJ5Q29tcG9uZW50LFxyXG4gICAgQ2F0YWxvZ0xpYmFyeUl0ZW1Db21wb25lbnQsXHJcbiAgICBBZGRDYXRhbG9nRGlhbG9nQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSWdvQ2F0YWxvZ0xpYnJhcnlNb2R1bGUge31cclxuIl19
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1saWJyYXJ5Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2NhdGFsb2cvY2F0YWxvZy1saWJyYXJ5L2NhdGFsb2ctbGlicmFyeS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxzQkFBc0IsR0FBRyxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7OztBQUUzRDs7R0FFRztBQTRCSCxNQUFNLE9BQU8sdUJBQXVCOzs4RkFBdkIsdUJBQXVCO3lFQUF2Qix1QkFBdUI7NkVBekJoQyxZQUFZO1FBQ1osYUFBYTtRQUNiLGNBQWM7UUFDZCxhQUFhO1FBQ2IsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixpQkFBaUI7UUFDakIsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQixtQkFBbUI7UUFDbkIsY0FBYztRQUNkLGVBQWU7UUFDZixxQkFBcUI7UUFDckIsZUFBZTt1RkFZTix1QkFBdUI7Y0EzQm5DLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixhQUFhO29CQUNiLGNBQWM7b0JBQ2QsYUFBYTtvQkFDYixnQkFBZ0I7b0JBQ2hCLGFBQWE7b0JBQ2IsaUJBQWlCO29CQUNqQixlQUFlO29CQUNmLGtCQUFrQjtvQkFDbEIsbUJBQW1CO29CQUNuQixjQUFjO29CQUNkLGVBQWU7b0JBQ2YscUJBQXFCO29CQUNyQixlQUFlO2lCQUNoQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1Asc0JBQXNCO29CQUN0Qix5QkFBeUI7aUJBQzFCO2dCQUNELFlBQVksRUFBRTtvQkFDWixzQkFBc0I7b0JBQ3RCLDBCQUEwQjtvQkFDMUIseUJBQXlCO2lCQUMxQjthQUNGOzt3RkFDWSx1QkFBdUIsbUJBTGhDLHNCQUFzQjtRQUN0QiwwQkFBMEI7UUFDMUIseUJBQXlCLGFBdEJ6QixZQUFZO1FBQ1osYUFBYTtRQUNiLGNBQWM7UUFDZCxhQUFhO1FBQ2IsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixpQkFBaUI7UUFDakIsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQixtQkFBbUI7UUFDbkIsY0FBYztRQUNkLGVBQWU7UUFDZixxQkFBcUI7UUFDckIsZUFBZSxhQUdmLHNCQUFzQjtRQUN0Qix5QkFBeUI7dUJBR3pCLHNCQUFzQix5R0FDdEIsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHsgSWdvTGlzdE1vZHVsZSB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XG5cbmltcG9ydCB7IENhdGFsb2dMaWJhcnlDb21wb25lbnQsIH0gZnJvbSAnLi9jYXRhbG9nLWxpYnJhcnkuY29tcG9uZW50JztcbmltcG9ydCB7IENhdGFsb2dMaWJhcnlJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jYXRhbG9nLWxpYnJhcnktaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRkQ2F0YWxvZ0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vYWRkLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xuaW1wb3J0IHsgSWdvTGFuZ3VhZ2VNb2R1bGUgfSBmcm9tICdAaWdvMi9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuLyoqXG4gKiBAaWdub3JlXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRCYWRnZU1vZHVsZSxcbiAgICBNYXRMaXN0TW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgSWdvTGlzdE1vZHVsZSxcbiAgICBJZ29MYW5ndWFnZU1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBNYXREaWFsb2dNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIENhdGFsb2dMaWJhcnlDb21wb25lbnQsXG4gICAgQWRkQ2F0YWxvZ0RpYWxvZ0NvbXBvbmVudFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBDYXRhbG9nTGliYXJ5Q29tcG9uZW50LFxuICAgIENhdGFsb2dMaWJhcnlJdGVtQ29tcG9uZW50LFxuICAgIEFkZENhdGFsb2dEaWFsb2dDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJZ29DYXRhbG9nTGlicmFyeU1vZHVsZSB7fVxuIl19
@@ -50,4 +50,4 @@ IgoCatalogModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonM
50
50
  IgoListModule,
51
51
  IgoCollapsibleModule], exports: [IgoCatalogBrowserModule,
52
52
  IgoCatalogLibraryModule] }); })();
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9jYXRhbG9nL2NhdGFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFMUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBbUJuRixNQUFNLE9BQU8sZ0JBQWdCOztnRkFBaEIsZ0JBQWdCO2tFQUFoQixnQkFBZ0I7c0VBZnpCLFlBQVk7UUFDWixjQUFjO1FBQ2QsYUFBYTtRQUNiLGFBQWE7UUFDYixnQkFBZ0I7UUFDaEIscUJBQXFCO1FBQ3JCLGFBQWE7UUFDYixvQkFBb0IsRUFHcEIsdUJBQXVCO1FBQ3ZCLHVCQUF1Qjt1RkFJZCxnQkFBZ0I7Y0FqQjVCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixjQUFjO29CQUNkLGFBQWE7b0JBQ2IsYUFBYTtvQkFDYixnQkFBZ0I7b0JBQ2hCLHFCQUFxQjtvQkFDckIsYUFBYTtvQkFDYixvQkFBb0I7aUJBQ3JCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCx1QkFBdUI7b0JBQ3ZCLHVCQUF1QjtpQkFDeEI7Z0JBQ0QsWUFBWSxFQUFFLEVBQUU7YUFDakI7O3dGQUNZLGdCQUFnQixjQWZ6QixZQUFZO1FBQ1osY0FBYztRQUNkLGFBQWE7UUFDYixhQUFhO1FBQ2IsZ0JBQWdCO1FBQ2hCLHFCQUFxQjtRQUNyQixhQUFhO1FBQ2Isb0JBQW9CLGFBR3BCLHVCQUF1QjtRQUN2Qix1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRCYWRnZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JhZGdlJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IElnb0xpc3RNb2R1bGUsIElnb0NvbGxhcHNpYmxlTW9kdWxlLCBJZ29NYXRCYWRnZUljb25Nb2R1bGUgfSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgSWdvQ2F0YWxvZ0Jyb3dzZXJNb2R1bGUgfSBmcm9tICcuL2NhdGFsb2ctYnJvd3Nlci9jYXRhbG9nLWJyb3dzZXIubW9kdWxlJztcclxuaW1wb3J0IHsgSWdvQ2F0YWxvZ0xpYnJhcnlNb2R1bGUgfSBmcm9tICcuL2NhdGFsb2ctbGlicmFyeS9jYXRhbG9nLWxpYnJhcnkubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0QmFkZ2VNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0TGlzdE1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBJZ29NYXRCYWRnZUljb25Nb2R1bGUsXHJcbiAgICBJZ29MaXN0TW9kdWxlLFxyXG4gICAgSWdvQ29sbGFwc2libGVNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIElnb0NhdGFsb2dCcm93c2VyTW9kdWxlLFxyXG4gICAgSWdvQ2F0YWxvZ0xpYnJhcnlNb2R1bGVcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW11cclxufSlcclxuZXhwb3J0IGNsYXNzIElnb0NhdGFsb2dNb2R1bGUge31cclxuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9jYXRhbG9nL2NhdGFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFMUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBbUJuRixNQUFNLE9BQU8sZ0JBQWdCOztnRkFBaEIsZ0JBQWdCO2tFQUFoQixnQkFBZ0I7c0VBZnpCLFlBQVk7UUFDWixjQUFjO1FBQ2QsYUFBYTtRQUNiLGFBQWE7UUFDYixnQkFBZ0I7UUFDaEIscUJBQXFCO1FBQ3JCLGFBQWE7UUFDYixvQkFBb0IsRUFHcEIsdUJBQXVCO1FBQ3ZCLHVCQUF1Qjt1RkFJZCxnQkFBZ0I7Y0FqQjVCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixjQUFjO29CQUNkLGFBQWE7b0JBQ2IsYUFBYTtvQkFDYixnQkFBZ0I7b0JBQ2hCLHFCQUFxQjtvQkFDckIsYUFBYTtvQkFDYixvQkFBb0I7aUJBQ3JCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCx1QkFBdUI7b0JBQ3ZCLHVCQUF1QjtpQkFDeEI7Z0JBQ0QsWUFBWSxFQUFFLEVBQUU7YUFDakI7O3dGQUNZLGdCQUFnQixjQWZ6QixZQUFZO1FBQ1osY0FBYztRQUNkLGFBQWE7UUFDYixhQUFhO1FBQ2IsZ0JBQWdCO1FBQ2hCLHFCQUFxQjtRQUNyQixhQUFhO1FBQ2Isb0JBQW9CLGFBR3BCLHVCQUF1QjtRQUN2Qix1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBJZ29MaXN0TW9kdWxlLCBJZ29Db2xsYXBzaWJsZU1vZHVsZSwgSWdvTWF0QmFkZ2VJY29uTW9kdWxlIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcblxuaW1wb3J0IHsgSWdvQ2F0YWxvZ0Jyb3dzZXJNb2R1bGUgfSBmcm9tICcuL2NhdGFsb2ctYnJvd3Nlci9jYXRhbG9nLWJyb3dzZXIubW9kdWxlJztcbmltcG9ydCB7IElnb0NhdGFsb2dMaWJyYXJ5TW9kdWxlIH0gZnJvbSAnLi9jYXRhbG9nLWxpYnJhcnkvY2F0YWxvZy1saWJyYXJ5Lm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0QmFkZ2VNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRMaXN0TW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgSWdvTWF0QmFkZ2VJY29uTW9kdWxlLFxuICAgIElnb0xpc3RNb2R1bGUsXG4gICAgSWdvQ29sbGFwc2libGVNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIElnb0NhdGFsb2dCcm93c2VyTW9kdWxlLFxuICAgIElnb0NhdGFsb2dMaWJyYXJ5TW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW11cbn0pXG5leHBvcnQgY2xhc3MgSWdvQ2F0YWxvZ01vZHVsZSB7fVxuIl19
@@ -2,4 +2,4 @@ export * from './shared';
2
2
  export * from './catalog-browser/catalog-browser.component';
3
3
  export * from './catalog-library/catalog-library.component';
4
4
  export * from './catalog-library/add-catalog-dialog.component';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9jYXRhbG9nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGdEQUFnRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NhdGFsb2ctYnJvd3Nlci9jYXRhbG9nLWJyb3dzZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jYXRhbG9nLWxpYnJhcnkvY2F0YWxvZy1saWJyYXJ5LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2F0YWxvZy1saWJyYXJ5L2FkZC1jYXRhbG9nLWRpYWxvZy5jb21wb25lbnQnO1xyXG4iXX0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9jYXRhbG9nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGdEQUFnRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXRhbG9nLWJyb3dzZXIvY2F0YWxvZy1icm93c2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NhdGFsb2ctbGlicmFyeS9jYXRhbG9nLWxpYnJhcnkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY2F0YWxvZy1saWJyYXJ5L2FkZC1jYXRhbG9nLWRpYWxvZy5jb21wb25lbnQnO1xuIl19
@@ -92,4 +92,4 @@ export class CatalogFactory {
92
92
  return catalog;
93
93
  }
94
94
  }
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5hYnN0cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2NhdGFsb2cvc2hhcmVkL2NhdGFsb2cuYWJzdHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFFLFdBQVcsRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRSxNQUFNLE9BQWdCLE9BQU87SUFpQ3pCLFlBQVksT0FBZ0IsRUFBRSxPQUF1QjtRQUNqRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztJQUNsQyxDQUFDO0NBR0o7QUFFRCxNQUFNLFVBQVcsU0FBUSxPQUFPO0lBQzVCLFlBQVksT0FBZ0IsRUFBRSxPQUF1QjtRQUNqRCxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sS0FBSyxHQUFXLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLG1CQUFtQjtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNKO0FBRUQsTUFBTSxXQUFZLFNBQVEsT0FBTztJQUM3QixZQUFZLE9BQWdCLEVBQUUsT0FBdUI7UUFDakQsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4QixNQUFNLEtBQUssR0FBVyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxtQkFBbUI7UUFDdEIsT0FBTyxJ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QUFPLEdBQUcsSUFBSSw0QkFBNEIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUM1RjthQUFNLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ2xFLE9BQU8sR0FBRyxJQUFJLDRCQUE0QixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQzdGO2FBQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdkQsT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMvQzthQUFNO1lBQ0gsT0FBTyxHQUFHLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM5QztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IFRvb2x0aXBUeXBlIH0gZnJvbSAnLi4vLi4vbGF5ZXInO1xyXG5pbXBvcnQgeyBUaW1lRmlsdGVyT3B0aW9ucyB9IGZyb20gJy4uLy4uL2ZpbHRlcic7XHJcbmltcG9ydCB7IFF1ZXJ5Rm9ybWF0LCBRdWVyeUh0bWxUYXJnZXQgfSBmcm9tICcuLi8uLi9xdWVyeSc7XHJcblxyXG5pbXBvcnQgeyBJQ2F0YWxvZywgSUNvbXBvc2l0ZUNhdGFsb2cgLCBDYXRhbG9nSXRlbSwgQ2F0YWxvZ0l0ZW1Hcm91cCB9IGZyb20gJy4vY2F0YWxvZy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBDYXRhbG9nU2VydmljZSB9IGZyb20gJy4vY2F0YWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHlwZUNhdGFsb2csIFR5cGVDYXRhbG9nU3RyaW5ncyB9IGZyb20gJy4vY2F0YWxvZy5lbnVtJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDYXRhbG9nIGltcGxlbWVudHMgSUNhdGFsb2cge1xyXG5cclxuICAgIC8vIElDYXRhbG9nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIHVybDogc3RyaW5nO1xyXG4gICAgcmVtb3ZhYmxlPzogYm9vbGVhbjtcclxuICAgIGV4dGVybmFsUHJvdmlkZXI/OiBib29sZWFuO1xyXG4gICAgYWJzdHJhY3Q/OiBzdHJpbmc7XHJcbiAgICBmb3JjZWRQcm9wZXJ0aWVzPzogYW55W107XHJcbiAgICBpdGVtcz86IENhdGFsb2dJdGVtW107XHJcbiAgICB0eXBlPzogVHlwZUNhdGFsb2dTdHJpbmdzO1xyXG4gICAgdmVyc2lvbj86IHN0cmluZztcclxuICAgIG1hdHJpeFNldD86IHN0cmluZztcclxuICAgIHJlcXVlc3RFbmNvZGluZz86IHN0cmluZztcclxuICAgIHJlZ0ZpbHRlcnM/OiBzdHJpbmdbXTtcclxuICAgIGdyb3VwSW1wb3NlPzogQ2F0YWxvZ0l0ZW1Hcm91cDtcclxuICAgIGdyb3VwU2VwYXJhdG9yPzogc3RyaW5nO1xyXG4gICAgdGltZUZpbHRlcj86IFRpbWVGaWx0ZXJPcHRpb25zO1xyXG4gICAgcXVlcnlGb3JtYXQ/OiBRdWVyeUZvcm1hdDtcclxuICAgIHF1ZXJ5SHRtbFRhcmdldD86IFF1ZXJ5SHRtbFRhcmdldDtcclxuICAgIHF1ZXJ5UGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmc7IH07XHJcbiAgICBzb3VyY2VPcHRpb25zPzogeyBba2V5OiBzdHJpbmddOiBhbnk7IH07XHJcbiAgICBjb3VudD86IG51bWJlcjtcclxuICAgIHRvb2x0aXBUeXBlPzogVG9vbHRpcFR5cGUuQUJTVFJBQ1QgfCBUb29sdGlwVHlwZS5USVRMRTtcclxuICAgIHNvcnREaXJlY3Rpb24/OiAnYXNjJyB8ICdkZXNjJztcclxuICAgIHNldENyb3NzT3JpZ2luQW5vbnltb3VzPzogYm9vbGVhbjtcclxuICAgIHNob3dMZWdlbmQ/OiBib29sZWFuO1xyXG4gICAgcHJvZmlscz86IHN0cmluZ1tdO1xyXG4gICAgLy8gSUNhdGFsb2cgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiAgICBwcm90ZWN0ZWQgY2F0YWxvZ1NlcnZpY2U6IENhdGFsb2dTZXJ2aWNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENhdGFsb2csIHNlcnZpY2U6IENhdGFsb2dTZXJ2aWNlKSB7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBvcHRpb25zKTtcclxuICAgICAgICB0aGlzLmNhdGFsb2dTZXJ2aWNlID0gc2VydmljZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgY29sbGVjdENhdGFsb2dJdGVtcygpOiBPYnNlcnZhYmxlPENhdGFsb2dJdGVtW10+O1xyXG59XHJcblxyXG5jbGFzcyBXTVNDYXRhbG9nIGV4dGVuZHMgQ2F0YWxvZyB7XHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDYXRhbG9nLCBzZXJ2aWNlOiBDYXRhbG9nU2VydmljZSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMsIHNlcnZpY2UpO1xyXG4gICAgICAgIGNvbnN0IHNUeXBlOiBzdHJpbmcgPSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy53bXNdO1xyXG4gICAgICAgIHRoaXMudHlwZSA9IFR5cGVDYXRhbG9nW3NUeXBlXTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY29sbGVjdENhdGFsb2dJdGVtcygpOiBPYnNlcnZhYmxlPENhdGFsb2dJdGVtW10+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYXRhbG9nU2VydmljZS5sb2FkQ2F0YWxvZ1dNU0xheWVySXRlbXModGhpcyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFdNVFNDYXRhbG9nIGV4dGVuZHMgQ2F0YWxvZyB7XHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDYXRhbG9nLCBzZXJ2aWNlOiBDYXRhbG9nU2VydmljZSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMsIHNlcnZpY2UpO1xyXG4gICAgICAgIGNvbnN0IHNUeXBlOiBzdHJpbmcgPSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy53bXRzXTtcclxuICAgICAgICB0aGlzLnR5cGUgPSBUeXBlQ2F0YWxvZ1tzVHlwZV07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbGxlY3RDYXRhbG9nSXRlbXMoKTogT2JzZXJ2YWJsZTxDYXRhbG9nSXRlbVtdPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2F0YWxvZ1NlcnZpY2UubG9hZENhdGFsb2dXTVRTTGF5ZXJJdGVtcyh0aGlzKTtcclxuICAgIH1cclxufVxyXG5cclxuY2xhc3MgQmFzZWxheWVyc0NhdGFsb2cgZXh0ZW5kcyBDYXRhbG9nIHtcclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENhdGFsb2csIHNlcnZpY2U6IENhdGFsb2dTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucywgc2VydmljZSk7XHJcbiAgICAgICAgY29uc3Qgc1R5cGU6IHN0cmluZyA9IFR5cGVDYXRhbG9nW1R5cGVDYXRhbG9nLmJhc2VsYXllcnNdO1xyXG4gICAgICAgIHRoaXMudHlwZSA9IFR5cGVDYXRhbG9nW3NUeXBlXTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY29sbGVjdENhdGFsb2dJdGVtcygpOiBPYnNlcnZhYmxlPENhdGFsb2dJdGVtR3JvdXBbXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhdGFsb2dTZXJ2aWNlLmxvYWRDYXRhbG9nQmFzZUxheWVySXRlbXModGhpcyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIEFyY0dJU1Jlc3RDYXRhbG9nIGV4dGVuZHMgQ2F0YWxvZyB7XHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDYXRhbG9nLCBzZXJ2aWNlOiBDYXRhbG9nU2VydmljZSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMsIHNlcnZpY2UpO1xyXG4gICAgICAgIGNvbnN0IHNUeXBlOiBzdHJpbmcgPSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy5hcmNnaXNyZXN0XTtcclxuICAgICAgICB0aGlzLnR5cGUgPSBUeXBlQ2F0YWxvZ1tzVHlwZV07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbGxlY3RDYXRhbG9nSXRlbXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2F0YWxvZ1NlcnZpY2UubG9hZENhdGFsb2dBcmNHSVNSZXN0SXRlbXModGhpcyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFRpbGVPckltYWdlQXJjR0lTUmVzdENhdGFsb2cgZXh0ZW5kcyBDYXRhbG9nIHtcclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENhdGFsb2csIHNlcnZpY2U6IENhdGFsb2dTZXJ2aWNlLCB0eXBlQ2F0YWxvZzogVHlwZUNhdGFsb2cpIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zLCBzZXJ2aWNlKTtcclxuICAgICAgICB0aGlzLnR5cGUgPSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZ1t0eXBlQ2F0YWxvZ11dO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjb2xsZWN0Q2F0YWxvZ0l0ZW1zKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhdGFsb2dTZXJ2aWNlLmxvYWRDYXRhbG9nQXJjR0lTUmVzdEl0ZW1zKHRoaXMpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29tcG9zaXRlQ2F0YWxvZyBleHRlbmRzIENhdGFsb2cgaW1wbGVtZW50cyBJQ29tcG9zaXRlQ2F0YWxvZyB7XHJcbiAgICBjb21wb3NpdGU6IElDYXRhbG9nW107XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogQ2F0YWxvZywgc2VydmljZTogQ2F0YWxvZ1NlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zLCBzZXJ2aWNlKTtcclxuICAgICAgICBjb25zdCBzVHlwZTogc3RyaW5nID0gVHlwZUNhdGFsb2dbVHlwZUNhdGFsb2cuY29tcG9zaXRlXTtcclxuICAgICAgICB0aGlzLnR5cGUgPSBUeXBlQ2F0YWxvZ1tzVHlwZV07XHJcbiAgICAgICAgdGhpcy51cmwgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjb2xsZWN0Q2F0YWxvZ0l0ZW1zKCk6IE9ic2VydmFibGU8Q2F0YWxvZ0l0ZW1bXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhdGFsb2dTZXJ2aWNlLmxvYWRDYXRhbG9nQ29tcG9zaXRlTGF5ZXJJdGVtcyh0aGlzKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENhdGFsb2dGYWN0b3J5IHtcclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZUluc3RhbmNlQ2F0YWxvZyhvcHRpb25zOiBDYXRhbG9nLCBzZXJ2aWNlOiBDYXRhbG9nU2VydmljZSk6IENhdGFsb2cge1xyXG5cclxuICAgICAgICBsZXQgY2F0YWxvZzogQ2F0YWxvZztcclxuICAgICAgICBpZiAob3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnY29tcG9zaXRlJykpIHtcclxuICAgICAgICAgICAgY2F0YWxvZyA9IG5ldyBDb21wb3NpdGVDYXRhbG9nKG9wdGlvbnMsIHNlcnZpY2UpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy50eXBlID09PSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy5iYXNlbGF5ZXJzXSkge1xyXG4gICAgICAgICAgICBjYXRhbG9nID0gbmV3IEJhc2VsYXllcnNDYXRhbG9nKG9wdGlvbnMsIHNlcnZpY2UpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy50eXBlID09PSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy5hcmNnaXNyZXN0XSkge1xyXG4gICAgICAgICAgICBjYXRhbG9nID0gbmV3IEFyY0dJU1Jlc3RDYXRhbG9nKG9wdGlvbnMsIHNlcnZpY2UpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy50eXBlID09PSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy50aWxlYXJjZ2lzcmVzdF0pIHtcclxuICAgICAgICAgICAgY2F0YWxvZyA9IG5ldyBUaWxlT3JJbWFnZUFyY0dJU1Jlc3RDYXRhbG9nKG9wdGlvbnMsIHNlcnZpY2UsIFR5cGVDYXRhbG9nLnRpbGVhcmNnaXNyZXN0KTtcclxuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMudHlwZSA9PT0gVHlwZUNhdGFsb2dbVHlwZUNhdGFsb2cuaW1hZ2VhcmNnaXNyZXN0XSkge1xyXG4gICAgICAgICAgICBjYXRhbG9nID0gbmV3IFRpbGVPckltYWdlQXJjR0lTUmVzdENhdGFsb2cob3B0aW9ucywgc2VydmljZSwgVHlwZUNhdGFsb2cuaW1hZ2VhcmNnaXNyZXN0KTtcclxuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMudHlwZSA9PT0gVHlwZUNhdGFsb2dbVHlwZUNhdGFsb2cud210c10pIHtcclxuICAgICAgICAgICAgY2F0YWxvZyA9IG5ldyBXTVRTQ2F0YWxvZyhvcHRpb25zLCBzZXJ2aWNlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjYXRhbG9nID0gbmV3IFdNU0NhdGFsb2cob3B0aW9ucywgc2VydmljZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gY2F0YWxvZztcclxuICAgIH1cclxufVxyXG4iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5hYnN0cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2NhdGFsb2cvc2hhcmVkL2NhdGFsb2cuYWJzdHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFFLFdBQVcsRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRSxNQUFNLE9BQWdCLE9BQU87SUFpQ3pCLFlBQVksT0FBZ0IsRUFBRSxPQUF1QjtRQUNqRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztJQUNsQyxDQUFDO0NBR0o7QUFFRCxNQUFNLFVBQVcsU0FBUSxPQUFPO0lBQzVCLFlBQVksT0FBZ0IsRUFBRSxPQUF1QjtRQUNqRCxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sS0FBSyxHQUFXLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLG1CQUFtQjtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNKO0FBRUQsTUFBTSxXQUFZLFNBQVEsT0FBTztJQUM3QixZQUFZLE9BQWdCLEVBQUUsT0FBdUI7UUFDakQsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4QixNQUFNLEtBQUssR0FBVyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxtQkFBbUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9ELENBQUM7Q0FDSjtBQUVELE1BQU0saUJBQWtCLFNBQVEsT0FBTztJQUNuQyxZQUFZLE9BQWdCLEVBQUUsT0FBdUI7UUFDakQsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4QixNQUFNLEtBQUssR0FBVyxXQUFXLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxtQkFBbUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9ELENBQUM7Q0FDSjtBQUVELE1BQU0saUJBQWtCLFNBQVEsT0FBTztJQUNuQyxZQUFZLE9BQWdCLEVBQUUsT0FBdUI7UUFDakQsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4QixNQUFNLEtBQUssR0FBVyxXQUFXLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxtQkFBbUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7Q0FDSjtBQUVELE1BQU0sNEJBQTZCLFNBQVEsT0FBTztJQUM5QyxZQUFZLE9BQWdCLEVBQUUsT0FBdUIsRUFBRSxXQUF3QjtRQUMzRSxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxtQkFBbUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxPQUFPO0lBR3pDLFlBQVksT0FBZ0IsRUFBRSxPQUF1QjtRQUNqRCxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sS0FBSyxHQUFXLFdBQVcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVNLG1CQUFtQjtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEUsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGNBQWM7SUFFaEIsTUFBTSxDQUFDLHFCQUFxQixDQUFDLE9BQWdCLEVBQUUsT0FBdUI7UUFFekUsSUFBSSxPQUFnQixDQUFDO1FBQ3JCLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNyQyxPQUFPLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDcEQ7YUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM3RCxPQUFPLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDckQ7YUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM3RCxPQUFPLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDckQ7YUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNqRSxPQUFPLEdBQUcsSUFBSSw0QkFBNEIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUM1RjthQUFNLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ2xFLE9BQU8sR0FBRyxJQUFJLDRCQUE0QixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQzdGO2FBQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdkQsT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMvQzthQUFNO1lBQ0gsT0FBTyxHQUFHLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM5QztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgVG9vbHRpcFR5cGUgfSBmcm9tICcuLi8uLi9sYXllcic7XG5pbXBvcnQgeyBUaW1lRmlsdGVyT3B0aW9ucyB9IGZyb20gJy4uLy4uL2ZpbHRlcic7XG5pbXBvcnQgeyBRdWVyeUZvcm1hdCwgUXVlcnlIdG1sVGFyZ2V0IH0gZnJvbSAnLi4vLi4vcXVlcnknO1xuXG5pbXBvcnQgeyBJQ2F0YWxvZywgSUNvbXBvc2l0ZUNhdGFsb2cgLCBDYXRhbG9nSXRlbSwgQ2F0YWxvZ0l0ZW1Hcm91cCB9IGZyb20gJy4vY2F0YWxvZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2F0YWxvZ1NlcnZpY2UgfSBmcm9tICcuL2NhdGFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBUeXBlQ2F0YWxvZywgVHlwZUNhdGFsb2dTdHJpbmdzIH0gZnJvbSAnLi9jYXRhbG9nLmVudW0nO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2F0YWxvZyBpbXBsZW1lbnRzIElDYXRhbG9nIHtcblxuICAgIC8vIElDYXRhbG9nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgaWQ6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xuICAgIHJlbW92YWJsZT86IGJvb2xlYW47XG4gICAgZXh0ZXJuYWxQcm92aWRlcj86IGJvb2xlYW47XG4gICAgYWJzdHJhY3Q/OiBzdHJpbmc7XG4gICAgZm9yY2VkUHJvcGVydGllcz86IGFueVtdO1xuICAgIGl0ZW1zPzogQ2F0YWxvZ0l0ZW1bXTtcbiAgICB0eXBlPzogVHlwZUNhdGFsb2dTdHJpbmdzO1xuICAgIHZlcnNpb24/OiBzdHJpbmc7XG4gICAgbWF0cml4U2V0Pzogc3RyaW5nO1xuICAgIHJlcXVlc3RFbmNvZGluZz86IHN0cmluZztcbiAgICByZWdGaWx0ZXJzPzogc3RyaW5nW107XG4gICAgZ3JvdXBJbXBvc2U/OiBDYXRhbG9nSXRlbUdyb3VwO1xuICAgIGdyb3VwU2VwYXJhdG9yPzogc3RyaW5nO1xuICAgIHRpbWVGaWx0ZXI/OiBUaW1lRmlsdGVyT3B0aW9ucztcbiAgICBxdWVyeUZvcm1hdD86IFF1ZXJ5Rm9ybWF0O1xuICAgIHF1ZXJ5SHRtbFRhcmdldD86IFF1ZXJ5SHRtbFRhcmdldDtcbiAgICBxdWVyeVBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nOyB9O1xuICAgIHNvdXJjZU9wdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IGFueTsgfTtcbiAgICBjb3VudD86IG51bWJlcjtcbiAgICB0b29sdGlwVHlwZT86IFRvb2x0aXBUeXBlLkFCU1RSQUNUIHwgVG9vbHRpcFR5cGUuVElUTEU7XG4gICAgc29ydERpcmVjdGlvbj86ICdhc2MnIHwgJ2Rlc2MnO1xuICAgIHNldENyb3NzT3JpZ2luQW5vbnltb3VzPzogYm9vbGVhbjtcbiAgICBzaG93TGVnZW5kPzogYm9vbGVhbjtcbiAgICBwcm9maWxzPzogc3RyaW5nW107XG4gICAgLy8gSUNhdGFsb2cgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBjYXRhbG9nU2VydmljZTogQ2F0YWxvZ1NlcnZpY2U7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDYXRhbG9nLCBzZXJ2aWNlOiBDYXRhbG9nU2VydmljZSkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIG9wdGlvbnMpO1xuICAgICAgICB0aGlzLmNhdGFsb2dTZXJ2aWNlID0gc2VydmljZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgY29sbGVjdENhdGFsb2dJdGVtcygpOiBPYnNlcnZhYmxlPENhdGFsb2dJdGVtW10+O1xufVxuXG5jbGFzcyBXTVNDYXRhbG9nIGV4dGVuZHMgQ2F0YWxvZyB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogQ2F0YWxvZywgc2VydmljZTogQ2F0YWxvZ1NlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucywgc2VydmljZSk7XG4gICAgICAgIGNvbnN0IHNUeXBlOiBzdHJpbmcgPSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy53bXNdO1xuICAgICAgICB0aGlzLnR5cGUgPSBUeXBlQ2F0YWxvZ1tzVHlwZV07XG4gICAgfVxuXG4gICAgcHVibGljIGNvbGxlY3RDYXRhbG9nSXRlbXMoKTogT2JzZXJ2YWJsZTxDYXRhbG9nSXRlbVtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhdGFsb2dTZXJ2aWNlLmxvYWRDYXRhbG9nV01TTGF5ZXJJdGVtcyh0aGlzKTtcbiAgICB9XG59XG5cbmNsYXNzIFdNVFNDYXRhbG9nIGV4dGVuZHMgQ2F0YWxvZyB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogQ2F0YWxvZywgc2VydmljZTogQ2F0YWxvZ1NlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucywgc2VydmljZSk7XG4gICAgICAgIGNvbnN0IHNUeXBlOiBzdHJpbmcgPSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy53bXRzXTtcbiAgICAgICAgdGhpcy50eXBlID0gVHlwZUNhdGFsb2dbc1R5cGVdO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb2xsZWN0Q2F0YWxvZ0l0ZW1zKCk6IE9ic2VydmFibGU8Q2F0YWxvZ0l0ZW1bXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXRhbG9nU2VydmljZS5sb2FkQ2F0YWxvZ1dNVFNMYXllckl0ZW1zKHRoaXMpO1xuICAgIH1cbn1cblxuY2xhc3MgQmFzZWxheWVyc0NhdGFsb2cgZXh0ZW5kcyBDYXRhbG9nIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDYXRhbG9nLCBzZXJ2aWNlOiBDYXRhbG9nU2VydmljZSkge1xuICAgICAgICBzdXBlcihvcHRpb25zLCBzZXJ2aWNlKTtcbiAgICAgICAgY29uc3Qgc1R5cGU6IHN0cmluZyA9IFR5cGVDYXRhbG9nW1R5cGVDYXRhbG9nLmJhc2VsYXllcnNdO1xuICAgICAgICB0aGlzLnR5cGUgPSBUeXBlQ2F0YWxvZ1tzVHlwZV07XG4gICAgfVxuXG4gICAgcHVibGljIGNvbGxlY3RDYXRhbG9nSXRlbXMoKTogT2JzZXJ2YWJsZTxDYXRhbG9nSXRlbUdyb3VwW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2F0YWxvZ1NlcnZpY2UubG9hZENhdGFsb2dCYXNlTGF5ZXJJdGVtcyh0aGlzKTtcbiAgICB9XG59XG5cbmNsYXNzIEFyY0dJU1Jlc3RDYXRhbG9nIGV4dGVuZHMgQ2F0YWxvZyB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogQ2F0YWxvZywgc2VydmljZTogQ2F0YWxvZ1NlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucywgc2VydmljZSk7XG4gICAgICAgIGNvbnN0IHNUeXBlOiBzdHJpbmcgPSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy5hcmNnaXNyZXN0XTtcbiAgICAgICAgdGhpcy50eXBlID0gVHlwZUNhdGFsb2dbc1R5cGVdO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb2xsZWN0Q2F0YWxvZ0l0ZW1zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXRhbG9nU2VydmljZS5sb2FkQ2F0YWxvZ0FyY0dJU1Jlc3RJdGVtcyh0aGlzKTtcbiAgICB9XG59XG5cbmNsYXNzIFRpbGVPckltYWdlQXJjR0lTUmVzdENhdGFsb2cgZXh0ZW5kcyBDYXRhbG9nIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDYXRhbG9nLCBzZXJ2aWNlOiBDYXRhbG9nU2VydmljZSwgdHlwZUNhdGFsb2c6IFR5cGVDYXRhbG9nKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMsIHNlcnZpY2UpO1xuICAgICAgICB0aGlzLnR5cGUgPSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZ1t0eXBlQ2F0YWxvZ11dO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb2xsZWN0Q2F0YWxvZ0l0ZW1zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXRhbG9nU2VydmljZS5sb2FkQ2F0YWxvZ0FyY0dJU1Jlc3RJdGVtcyh0aGlzKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb21wb3NpdGVDYXRhbG9nIGV4dGVuZHMgQ2F0YWxvZyBpbXBsZW1lbnRzIElDb21wb3NpdGVDYXRhbG9nIHtcbiAgICBjb21wb3NpdGU6IElDYXRhbG9nW107XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDYXRhbG9nLCBzZXJ2aWNlOiBDYXRhbG9nU2VydmljZSkge1xuICAgICAgICBzdXBlcihvcHRpb25zLCBzZXJ2aWNlKTtcbiAgICAgICAgY29uc3Qgc1R5cGU6IHN0cmluZyA9IFR5cGVDYXRhbG9nW1R5cGVDYXRhbG9nLmNvbXBvc2l0ZV07XG4gICAgICAgIHRoaXMudHlwZSA9IFR5cGVDYXRhbG9nW3NUeXBlXTtcbiAgICAgICAgdGhpcy51cmwgPSBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb2xsZWN0Q2F0YWxvZ0l0ZW1zKCk6IE9ic2VydmFibGU8Q2F0YWxvZ0l0ZW1bXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXRhbG9nU2VydmljZS5sb2FkQ2F0YWxvZ0NvbXBvc2l0ZUxheWVySXRlbXModGhpcyk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2F0YWxvZ0ZhY3Rvcnkge1xuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVJbnN0YW5jZUNhdGFsb2cob3B0aW9uczogQ2F0YWxvZywgc2VydmljZTogQ2F0YWxvZ1NlcnZpY2UpOiBDYXRhbG9nIHtcblxuICAgICAgICBsZXQgY2F0YWxvZzogQ2F0YWxvZztcbiAgICAgICAgaWYgKG9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ2NvbXBvc2l0ZScpKSB7XG4gICAgICAgICAgICBjYXRhbG9nID0gbmV3IENvbXBvc2l0ZUNhdGFsb2cob3B0aW9ucywgc2VydmljZSk7XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy50eXBlID09PSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy5iYXNlbGF5ZXJzXSkge1xuICAgICAgICAgICAgY2F0YWxvZyA9IG5ldyBCYXNlbGF5ZXJzQ2F0YWxvZyhvcHRpb25zLCBzZXJ2aWNlKTtcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLnR5cGUgPT09IFR5cGVDYXRhbG9nW1R5cGVDYXRhbG9nLmFyY2dpc3Jlc3RdKSB7XG4gICAgICAgICAgICBjYXRhbG9nID0gbmV3IEFyY0dJU1Jlc3RDYXRhbG9nKG9wdGlvbnMsIHNlcnZpY2UpO1xuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMudHlwZSA9PT0gVHlwZUNhdGFsb2dbVHlwZUNhdGFsb2cudGlsZWFyY2dpc3Jlc3RdKSB7XG4gICAgICAgICAgICBjYXRhbG9nID0gbmV3IFRpbGVPckltYWdlQXJjR0lTUmVzdENhdGFsb2cob3B0aW9ucywgc2VydmljZSwgVHlwZUNhdGFsb2cudGlsZWFyY2dpc3Jlc3QpO1xuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMudHlwZSA9PT0gVHlwZUNhdGFsb2dbVHlwZUNhdGFsb2cuaW1hZ2VhcmNnaXNyZXN0XSkge1xuICAgICAgICAgICAgY2F0YWxvZyA9IG5ldyBUaWxlT3JJbWFnZUFyY0dJU1Jlc3RDYXRhbG9nKG9wdGlvbnMsIHNlcnZpY2UsIFR5cGVDYXRhbG9nLmltYWdlYXJjZ2lzcmVzdCk7XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy50eXBlID09PSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy53bXRzXSkge1xuICAgICAgICAgICAgY2F0YWxvZyA9IG5ldyBXTVRTQ2F0YWxvZyhvcHRpb25zLCBzZXJ2aWNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNhdGFsb2cgPSBuZXcgV01TQ2F0YWxvZyhvcHRpb25zLCBzZXJ2aWNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjYXRhbG9nO1xuICAgIH1cbn1cbiJdfQ==
@@ -13,4 +13,4 @@ export var TypeCatalog;
13
13
  TypeCatalog[TypeCatalog["imagearcgisrest"] = 5] = "imagearcgisrest";
14
14
  TypeCatalog[TypeCatalog["composite"] = 6] = "composite";
15
15
  })(TypeCatalog || (TypeCatalog = {}));
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvY2F0YWxvZy9zaGFyZWQvY2F0YWxvZy5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDekIsa0NBQWUsQ0FBQTtJQUNmLGtDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhXLGVBQWUsS0FBZixlQUFlLFFBRzFCO0FBRUQsTUFBTSxDQUFOLElBQVksV0FFWDtBQUZELFdBQVksV0FBVztJQUNyQiwyQ0FBRyxDQUFBO0lBQUUsNkNBQUksQ0FBQTtJQUFFLHlEQUFVLENBQUE7SUFBRSx5REFBVSxDQUFBO0lBQUUsaUVBQWMsQ0FBQTtJQUFFLG1FQUFlLENBQUE7SUFBRSx1REFBUyxDQUFBO0FBQy9FLENBQUMsRUFGVyxXQUFXLEtBQVgsV0FBVyxRQUV0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIENhdGFsb2dJdGVtVHlwZSB7XHJcbiAgTGF5ZXIgPSAnbGF5ZXInLFxyXG4gIEdyb3VwID0gJ2dyb3VwJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBUeXBlQ2F0YWxvZyB7XHJcbiAgd21zLCB3bXRzLCBiYXNlbGF5ZXJzLCBhcmNnaXNyZXN0LCB0aWxlYXJjZ2lzcmVzdCwgaW1hZ2VhcmNnaXNyZXN0LCBjb21wb3NpdGVcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVHlwZUNhdGFsb2dTdHJpbmdzID0ga2V5b2YgdHlwZW9mIFR5cGVDYXRhbG9nO1xyXG4iXX0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvY2F0YWxvZy9zaGFyZWQvY2F0YWxvZy5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDekIsa0NBQWUsQ0FBQTtJQUNmLGtDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhXLGVBQWUsS0FBZixlQUFlLFFBRzFCO0FBRUQsTUFBTSxDQUFOLElBQVksV0FFWDtBQUZELFdBQVksV0FBVztJQUNyQiwyQ0FBRyxDQUFBO0lBQUUsNkNBQUksQ0FBQTtJQUFFLHlEQUFVLENBQUE7SUFBRSx5REFBVSxDQUFBO0lBQUUsaUVBQWMsQ0FBQTtJQUFFLG1FQUFlLENBQUE7SUFBRSx1REFBUyxDQUFBO0FBQy9FLENBQUMsRUFGVyxXQUFXLEtBQVgsV0FBVyxRQUV0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIENhdGFsb2dJdGVtVHlwZSB7XG4gIExheWVyID0gJ2xheWVyJyxcbiAgR3JvdXAgPSAnZ3JvdXAnXG59XG5cbmV4cG9ydCBlbnVtIFR5cGVDYXRhbG9nIHtcbiAgd21zLCB3bXRzLCBiYXNlbGF5ZXJzLCBhcmNnaXNyZXN0LCB0aWxlYXJjZ2lzcmVzdCwgaW1hZ2VhcmNnaXNyZXN0LCBjb21wb3NpdGVcbn1cblxuZXhwb3J0IHR5cGUgVHlwZUNhdGFsb2dTdHJpbmdzID0ga2V5b2YgdHlwZW9mIFR5cGVDYXRhbG9nO1xuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9jYXRhbG9nL3NoYXJlZC9jYXRhbG9nLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5U3RhdGUgfSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgTWV0YWRhdGFMYXllck9wdGlvbnMgfSBmcm9tICcuLy4uLy4uL21ldGFkYXRhL3NoYXJlZC9tZXRhZGF0YS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBUb29sdGlwVHlwZSB9IGZyb20gJy4uLy4uL2xheWVyJztcclxuaW1wb3J0IHsgUXVlcnlGb3JtYXQgfSBmcm9tICcuLi8uLi9xdWVyeSc7XHJcblxyXG5pbXBvcnQgeyBDYXRhbG9nSXRlbVR5cGUsIFR5cGVDYXRhbG9nU3RyaW5ncyB9IGZyb20gJy4vY2F0YWxvZy5lbnVtJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWRkZWRDaGFuZ2VFbWl0dGVyIHtcclxuICBhZGRlZDogYm9vbGVhbjtcclxuICBsYXllcjogQ2F0YWxvZ0l0ZW1MYXllclxyXG4gIGV2ZW50OiBFdmVudFxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQWRkZWRDaGFuZ2VHcm91cEVtaXR0ZXIge1xyXG4gIGFkZGVkOiBib29sZWFuO1xyXG4gIGdyb3VwOiBDYXRhbG9nSXRlbUdyb3VwXHJcbiAgZXZlbnQ6IEV2ZW50XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNhdGFsb2cge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgdXJsOiBzdHJpbmc7XHJcbiAgcmVtb3ZhYmxlPzogYm9vbGVhbjtcclxuICBleHRlcm5hbFByb3ZpZGVyPzogYm9vbGVhbjtcclxuICBpdGVtcz86IENhdGFsb2dJdGVtW107XHJcbiAgdHlwZT86IFR5cGVDYXRhbG9nU3RyaW5ncztcclxuICB2ZXJzaW9uPzogc3RyaW5nO1xyXG4gIG1hdHJpeFNldD86IHN0cmluZztcclxuICBmb3JjZWRQcm9wZXJ0aWVzPzogRm9yY2VkUHJvcGVydHlbXTtcclxuICByZXF1ZXN0RW5jb2Rpbmc/OiBzdHJpbmc7XHJcbiAgcmVnRmlsdGVycz86IHN0cmluZ1tdO1xyXG4gIGdyb3VwSW1wb3NlPzogQ2F0YWxvZ0l0ZW1Hcm91cDsgLy8gb25seSB1c2UgYnkgSUNvbXBvc2l0ZUNhdGFsb2cgb2JqZWN0IChpZCwgdGl0bGUsIHNvcnREaXJlY3Rpb24/KVxyXG4gIGdyb3VwU2VwYXJhdG9yPzogc3RyaW5nO1xyXG4gIHF1ZXJ5Rm9ybWF0PzogUXVlcnlGb3JtYXQ7XHJcbiAgcXVlcnlQYXJhbXM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xyXG4gIHNvdXJjZU9wdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG4gIHRvb2x0aXBUeXBlPzogVG9vbHRpcFR5cGUuQUJTVFJBQ1QgfCBUb29sdGlwVHlwZS5USVRMRTtcclxuICBzb3J0RGlyZWN0aW9uPzogJ2FzYycgfCAnZGVzYyc7XHJcbiAgc2V0Q3Jvc3NPcmlnaW5Bbm9ueW1vdXM/OiBib29sZWFuO1xyXG4gIHNob3dMZWdlbmQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZvcmNlZFByb3BlcnR5IHtcclxuICBsYXllck5hbWU6IGFueTtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBtZXRhZGF0YVVybD86IHN0cmluZztcclxuICBtZXRhZGF0YUFic3RyYWN0Pzogc3RyaW5nO1xyXG4gIG1ldGFkYXRhQWJzdHJhY3RBbGw/OiBzdHJpbmc7XHJcbiAgbWV0YWRhdGFVcmxBbGw/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNvbXBvc2l0ZUNhdGFsb2cgZXh0ZW5kcyBJQ2F0YWxvZyB7XHJcbiAgY29tcG9zaXRlOiBJQ2F0YWxvZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENhdGFsb2dJdGVtIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdHlwZT86IENhdGFsb2dJdGVtVHlwZTtcclxuICBhZGRyZXNzPzogc3RyaW5nO1xyXG4gIGV4dGVybmFsUHJvdmlkZXI/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENhdGFsb2dJdGVtTGF5ZXI8TCA9IE1ldGFkYXRhTGF5ZXJPcHRpb25zPlxyXG4gIGV4dGVuZHMgQ2F0YWxvZ0l0ZW0ge1xyXG4gIG9wdGlvbnM6IEw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2F0YWxvZ0l0ZW1Hcm91cCBleHRlbmRzIENhdGFsb2dJdGVtIHtcclxuICBpdGVtcz86IENhdGFsb2dJdGVtW107XHJcbiAgc29ydERpcmVjdGlvbj86ICdhc2MnIHwgJ2Rlc2MnOyAvLyB1c2Ugd2l0aCBncm91cEltcG9zZSBhbmQgSUNvbXBvc2l0ZUNhdGFsb2dcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDYXRhbG9nSXRlbVN0YXRlIGV4dGVuZHMgRW50aXR5U3RhdGUge1xyXG4gIGFkZGVkPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDYXRhbG9nU2VydmljZU9wdGlvbnMge1xyXG4gIGJhc2VMYXllcnM/OiBib29sZWFuO1xyXG4gIHNvdXJjZXM/OiAoSUNhdGFsb2cgfCBJQ29tcG9zaXRlQ2F0YWxvZylbXTtcclxuICBzb3VyY2VzVXJsPzogc3RyaW5nO1xyXG4gIGVtYWlsQWRkcmVzcz86IHN0cmluZztcclxufVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9jYXRhbG9nL3NoYXJlZC9jYXRhbG9nLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5U3RhdGUgfSBmcm9tICdAaWdvMi9jb21tb24nO1xuXG5pbXBvcnQgeyBNZXRhZGF0YUxheWVyT3B0aW9ucyB9IGZyb20gJy4vLi4vLi4vbWV0YWRhdGEvc2hhcmVkL21ldGFkYXRhLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUb29sdGlwVHlwZSB9IGZyb20gJy4uLy4uL2xheWVyJztcbmltcG9ydCB7IFF1ZXJ5Rm9ybWF0IH0gZnJvbSAnLi4vLi4vcXVlcnknO1xuXG5pbXBvcnQgeyBDYXRhbG9nSXRlbVR5cGUsIFR5cGVDYXRhbG9nU3RyaW5ncyB9IGZyb20gJy4vY2F0YWxvZy5lbnVtJztcblxuZXhwb3J0IGludGVyZmFjZSBBZGRlZENoYW5nZUVtaXR0ZXIge1xuICBhZGRlZDogYm9vbGVhbjtcbiAgbGF5ZXI6IENhdGFsb2dJdGVtTGF5ZXJcbiAgZXZlbnQ6IEV2ZW50XG59XG5leHBvcnQgaW50ZXJmYWNlIEFkZGVkQ2hhbmdlR3JvdXBFbWl0dGVyIHtcbiAgYWRkZWQ6IGJvb2xlYW47XG4gIGdyb3VwOiBDYXRhbG9nSXRlbUdyb3VwXG4gIGV2ZW50OiBFdmVudFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDYXRhbG9nIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xuICByZW1vdmFibGU/OiBib29sZWFuO1xuICBleHRlcm5hbFByb3ZpZGVyPzogYm9vbGVhbjtcbiAgaXRlbXM/OiBDYXRhbG9nSXRlbVtdO1xuICB0eXBlPzogVHlwZUNhdGFsb2dTdHJpbmdzO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xuICBtYXRyaXhTZXQ/OiBzdHJpbmc7XG4gIGZvcmNlZFByb3BlcnRpZXM/OiBGb3JjZWRQcm9wZXJ0eVtdO1xuICByZXF1ZXN0RW5jb2Rpbmc/OiBzdHJpbmc7XG4gIHJlZ0ZpbHRlcnM/OiBzdHJpbmdbXTtcbiAgZ3JvdXBJbXBvc2U/OiBDYXRhbG9nSXRlbUdyb3VwOyAvLyBvbmx5IHVzZSBieSBJQ29tcG9zaXRlQ2F0YWxvZyBvYmplY3QgKGlkLCB0aXRsZSwgc29ydERpcmVjdGlvbj8pXG4gIGdyb3VwU2VwYXJhdG9yPzogc3RyaW5nO1xuICBxdWVyeUZvcm1hdD86IFF1ZXJ5Rm9ybWF0O1xuICBxdWVyeVBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIHNvdXJjZU9wdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuICB0b29sdGlwVHlwZT86IFRvb2x0aXBUeXBlLkFCU1RSQUNUIHwgVG9vbHRpcFR5cGUuVElUTEU7XG4gIHNvcnREaXJlY3Rpb24/OiAnYXNjJyB8ICdkZXNjJztcbiAgc2V0Q3Jvc3NPcmlnaW5Bbm9ueW1vdXM/OiBib29sZWFuO1xuICBzaG93TGVnZW5kPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JjZWRQcm9wZXJ0eSB7XG4gIGxheWVyTmFtZTogYW55O1xuICB0aXRsZT86IHN0cmluZztcbiAgbWV0YWRhdGFVcmw/OiBzdHJpbmc7XG4gIG1ldGFkYXRhQWJzdHJhY3Q/OiBzdHJpbmc7XG4gIG1ldGFkYXRhQWJzdHJhY3RBbGw/OiBzdHJpbmc7XG4gIG1ldGFkYXRhVXJsQWxsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb21wb3NpdGVDYXRhbG9nIGV4dGVuZHMgSUNhdGFsb2cge1xuICBjb21wb3NpdGU6IElDYXRhbG9nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2F0YWxvZ0l0ZW0ge1xuICBpZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB0eXBlPzogQ2F0YWxvZ0l0ZW1UeXBlO1xuICBhZGRyZXNzPzogc3RyaW5nO1xuICBleHRlcm5hbFByb3ZpZGVyPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYXRhbG9nSXRlbUxheWVyPEwgPSBNZXRhZGF0YUxheWVyT3B0aW9ucz5cbiAgZXh0ZW5kcyBDYXRhbG9nSXRlbSB7XG4gIG9wdGlvbnM6IEw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2F0YWxvZ0l0ZW1Hcm91cCBleHRlbmRzIENhdGFsb2dJdGVtIHtcbiAgaXRlbXM/OiBDYXRhbG9nSXRlbVtdO1xuICBzb3J0RGlyZWN0aW9uPzogJ2FzYycgfCAnZGVzYyc7IC8vIHVzZSB3aXRoIGdyb3VwSW1wb3NlIGFuZCBJQ29tcG9zaXRlQ2F0YWxvZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhdGFsb2dJdGVtU3RhdGUgZXh0ZW5kcyBFbnRpdHlTdGF0ZSB7XG4gIGFkZGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYXRhbG9nU2VydmljZU9wdGlvbnMge1xuICBiYXNlTGF5ZXJzPzogYm9vbGVhbjtcbiAgc291cmNlcz86IChJQ2F0YWxvZyB8IElDb21wb3NpdGVDYXRhbG9nKVtdO1xuICBzb3VyY2VzVXJsPzogc3RyaW5nO1xuICBlbWFpbEFkZHJlc3M/OiBzdHJpbmc7XG59XG4iXX0=
@@ -601,4 +601,4 @@ CatalogService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CatalogSe
601
601
  providedIn: 'root'
602
602
  }]
603
603
  }], function () { return [{ type: i1.HttpClient }, { type: i2.ConfigService }, { type: i2.LanguageService }, { type: i2.MessageService }, { type: i3.CapabilitiesService }]; }, null); })();
604
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvY2F0YWxvZy9zaGFyZWQvY2F0YWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFVaEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBUW5ELE9BQU8sRUFBVyxjQUFjLEVBQW9CLE1BQU0sb0JBQW9CLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7QUFLMUQsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFDVSxJQUFnQixFQUNoQixNQUFxQixFQUNyQixlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixtQkFBd0M7UUFKeEMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtJQUMvQyxDQUFDO0lBRUosWUFBWTtRQUNWLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0QsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLEdBQUcsSUFBSSxhQUFhLENBQUMsR0FBRyxDQUFDO1FBQ3RELE1BQU0sa0JBQWtCLEdBQUcsYUFBYSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFFdkQsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBRXhCLElBQUksTUFBTSxFQUFFO1lBQ1Ysc0JBQXNCO1lBQ3RCLElBQUksYUFBYSxDQUFDLFVBQVUsRUFBRTtnQkFDNUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUM7Z0JBQ2pELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FBQztnQkFDOUQsTUFBTSxpQkFBaUIsR0FBRztvQkFDeEI7d0JBQ0UsRUFBRSxFQUFFLG9CQUFvQjt3QkFDeEIsS0FBSzt3QkFDTCxHQUFHLEVBQUUsR0FBRyxNQUFNLGFBQWE7d0JBQzNCLElBQUksRUFBRSxZQUFZO3FCQUNuQjtpQkFDRixDQUFDO2dCQUNGLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQzthQUMxQztZQUVELG9CQUFvQjtZQUNwQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJO2lCQUMvQixHQUFHLENBQVksR0FBRyxNQUFNLFdBQVcsQ0FBQztpQkFDcEMsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ2YsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQ3RELEVBQ0QsVUFBVSxDQUFDLENBQUMsU0FBNEIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQ3BELENBQUM7WUFDSixZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDckM7UUFFRCx1QkFBdUI7UUFDdkIsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2pDLFlBQVksQ0FBQyxJQUFJLENBQ2YsRUFBRSxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxDQUN6QixHQUFHLENBQUMsQ0FBQyxRQUFtQixFQUFFLEVBQUUsQ0FDMUIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDVCxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO2lCQUNmO2dCQUNELE9BQU8sQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUNGLENBQUM7U0FDSDtRQUVELE9BQU8sR0FBRyxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUM5QixHQUFHLENBQUMsQ0FBQyxRQUFxQixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FDckMsQ0FBQztJQUM3QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBZ0I7UUFDL0IsSUFBSSxVQUFtQixDQUFDO1FBQ3hCLFVBQVUsR0FBRyxjQUFjLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELHlCQUF5QixDQUFDLE9BQWdCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDbkQsR0FBRyxDQUFDLENBQUMsYUFBNkIsRUFBRSxFQUFFO1lBQ3BDLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUEwQixFQUFFLEVBQUU7Z0JBQzdELE9BQU87b0JBQ0wsRUFBRSxFQUFFLDJCQUEyQixDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUM7b0JBQzNELEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSztvQkFDekIsSUFBSSxFQUFFLGVBQWUsQ0FBQyxLQUFLO29CQUMzQixnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCO29CQUMxQyxPQUFPLEVBQUUsWUFBWTtpQkFDRixDQUFDO1lBQ3hCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTztnQkFDTDtvQkFDRSxFQUFFLEVBQUUsMEJBQTBCO29CQUM5QixJQUFJLEVBQUUsZUFBZSxDQUFDLEtBQUs7b0JBQzNCLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7b0JBQzFDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztvQkFDcEIsS0FBSztpQkFDTjthQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLDJCQUEyQixDQUNqQyxPQUFnQjtRQUVoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFpQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELHdCQUF3QixDQUFDLE9BQWdCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDOUMsR0FBRyxDQUFDLENBQUMsWUFBaUIsRUFBRSxFQUFFO1lBQ3hCLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUNqQixPQUFPLEtBQUssQ0FBQzthQUNkO1lBQ0QsSUFBSSxZQUFZLENBQUMsT0FBTyxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtnQkFDakcsT0FBTyxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQzthQUNsRDtZQUNELE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDbkcsTUFBTSwyQkFBMkIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JGLDJCQUEyQixDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbEYsSUFBSSxDQUFDLHFCQUFxQixDQUN4QixPQUFPLEVBQ1AsMkJBQTJCLEVBQzNCLEtBQUssQ0FDTixDQUFDO1lBQ0YsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELHNCQUFzQixDQUFDLE1BQU0sRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxTQUFTLEdBQUcsS0FBSztRQUN0RSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDckMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDakQsY0FBYyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDMUIsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNwQztRQUNELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRTtZQUM5QixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMvQyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7Z0JBQ2IsYUFBYSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxHQUFHLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO2FBQzlEO1lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFO2dCQUNiLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDakY7aUJBQU07Z0JBQ0gsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDdEU7U0FDTDtJQUNMLENBQUM7SUFFQyx5QkFBeUIsQ0FBQyxPQUFnQjtRQUN4QyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzlDLEdBQUcsQ0FBQyxDQUFDLFlBQWlCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQ3JFLENBQUM7SUFDSixDQUFDO0lBRUQsMEJBQTBCLENBQUMsT0FBZ0I7UUFDekMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM5QyxHQUFHLENBQUMsQ0FBQyxZQUFpQixFQUFFLEVBQUU7WUFDeEIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsOEJBQThCLENBQUMsT0FBZ0I7UUFDN0MsTUFBTSxnQkFBZ0IsR0FBSSxPQUE0QixDQUFDLFNBQVMsQ0FBQztRQUVqRSxNQUFNLG9CQUFvQixHQUFHLEVBQWUsQ0FBQztRQUM3QyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFrQixFQUFFLEVBQUU7WUFDMUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsNENBQTRDO1lBQzdGLG9CQUFvQixDQUFDLElBQUksQ0FDdkIsY0FBYyxDQUFDLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FDeEQsQ0FBQztRQUNKLENBQUMsQ0FDRSxDQUFDO1FBRUYsa0dBQWtHO1FBQ2xHLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNyQixvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFrQixFQUFFLEVBQUUsQ0FDOUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUNoRCxDQUFDO1FBRUYsZ0ZBQWdGO1FBQ2hGLElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUVuQixTQUFTLGFBQWEsQ0FBQyxHQUFHO1lBQ3hCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FDZixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUNYLEdBQUcsQ0FBQyxNQUFNLENBQ1IsR0FBRyxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQ3BFLEVBQ0gsRUFBRSxDQUNILENBQUM7UUFDSixDQUFDO1FBRUQsSUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFDMUU7WUFDQSxNQUFNLGVBQWUsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDdEMsTUFBTSxDQUFDLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3RDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDeEQsY0FBYyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM5QixjQUFjLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUM7Z0JBQzVDLGNBQWMsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ3JELElBQUksY0FBYyxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUU7b0JBQzlDLGNBQWMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztpQkFDaEQ7Z0JBQ0QsY0FBYyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBRTFCLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdEMsU0FBUyxDQUFDLEdBQUcsQ0FDWCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLEdBQUcsY0FBYyxDQUFDLE9BQU8sSUFBSSxjQUFjLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FDdEUsQ0FBQztnQkFDRixjQUFjLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztnQkFFakMsT0FBTyxjQUFjLENBQUM7WUFDeEIsQ0FBQyxDQUFDO1lBRUYsU0FBUyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FDckMsR0FBRyxDQUFDLElBQUksQ0FDTixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNaLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVc7Z0JBQy9CLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLEtBQUssQ0FDVixDQUNGLENBQ0YsQ0FBQztTQUNIO2FBQU07WUFDTCxTQUFTLEdBQUcsU0FBUyxDQUFDO1NBQ3ZCO1FBRUQscUVBQXFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDdEMsR0FBRyxDQUNELENBQUMsTUFBcUIsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLDhCQUE4QjtTQUMvRSxDQUNGLENBQUM7UUFFRix1RkFBdUY7UUFDdkYsTUFBTSxjQUFjLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN6QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsQ0FBQztZQUU5QyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNSLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQ3pCO2lCQUFNO2dCQUNMLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzVCLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtvQkFDNUQsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO2lCQUN6RDtnQkFDRCxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRVQseURBQXlEO1FBQ3pELE1BQU0sNEJBQTRCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FDcEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ25DLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUV4QyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLEtBQUssRUFBRTtnQkFDdkMsNERBQTREO2dCQUU1RCwyQkFBMkI7Z0JBQzNCLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO2dCQUM3QixNQUFNLDBCQUEwQixHQUFHLEVBQUUsQ0FBQyxDQUFDLFdBQVc7Z0JBQ2xELE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQ3RDLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztvQkFDakIsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLFVBQVUsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxLQUFLLEVBQUU7d0JBQzlELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUU7NEJBQzNDLElBQUksR0FBRyxJQUFJLENBQUM7eUJBQ2I7d0JBQ0QsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUMzQjtvQkFDRCxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWU7Z0JBRW5CLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQzFCLElBQUksU0FBUyxHQUFHLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDbEUsT0FBTyxDQUFDLEtBQUssR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxHQUFHLENBQUMsQ0FBQyx3Q0FBd0M7b0JBQ3hGLFNBQVMsR0FBRywwQkFBMEIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3ZFLE9BQU8sQ0FBQyxjQUFjLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxLQUFLLFNBQVMsR0FBRyxDQUFDLENBQUMsd0NBQXdDO2lCQUMzRztnQkFFRCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxDQUNwQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLEtBQUssQ0FDckUsQ0FBQztnQkFDRixJQUFJLENBQUMsS0FBSyxFQUFFO29CQUNWLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDO2lCQUMzQjthQUNGO2lCQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsS0FBSyxFQUFFO2dCQUM5QyxPQUFPLENBQUMsS0FBSyxHQUFHLDRCQUE0QixDQUMxQyxJQUFJLENBQUMsS0FBSyxFQUNWLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUN2QixDQUFDO2dCQUNGLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDO2FBQzNCO1lBRUQsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFVCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUM5QixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUM1RCxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxFQUNyQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLDRCQUE0QixDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzFFLENBQUM7UUFFRixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU8sc0JBQXNCLENBQUMsT0FBZ0I7UUFDN0MsTUFBTSxLQUFLLEdBQVcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFjLENBQUMsQ0FBQztRQUMxRCxPQUFPLElBQUksQ0FBQyxtQkFBbUI7YUFDNUIsZUFBZSxDQUFDLEtBQVksRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUM7YUFDM0QsSUFBSSxDQUNILFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQ3ZCLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxpQ0FBaUMsRUFDakYsa0NBQWtDLEVBQ2xDLFNBQVMsRUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakIsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFTyx1QkFBdUIsQ0FDN0Isb0JBQTRCLEVBQzVCLGdCQUFrQztRQUVsQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN0RCxPQUFPO1NBQ1I7UUFDRCxNQUFNLGNBQWMsR0FBbUI7WUFDckMsU0FBUyxFQUFFLG9CQUFvQjtZQUMvQixLQUFLLEVBQUUsU0FBUztZQUNoQixXQUFXLEVBQUUsU0FBUztZQUN0QixnQkFBZ0IsRUFBRSxTQUFTO1lBQzNCLG1CQUFtQixFQUFFLFNBQVM7WUFDOUIsY0FBYyxFQUFFLFNBQVM7U0FDMUIsQ0FBQztRQUNGLHlCQUF5QjtRQUN6QiwyQkFBMkI7UUFDM0IsTUFBTSw0QkFBNEIsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ3JGLElBQUksNEJBQTRCLEVBQUU7WUFDaEMsc0JBQXNCO1lBQ3RCLElBQUksNEJBQTRCLENBQUMsbUJBQW1CLEVBQUU7Z0JBQ3BELGNBQWMsQ0FBQyxtQkFBbUIsR0FBRyw0QkFBNEIsQ0FBQyxtQkFBbUIsQ0FBQzthQUN2RjtZQUNELGlCQUFpQjtZQUNqQixJQUFJLDRCQUE0QixDQUFDLGNBQWMsRUFBRTtnQkFDL0MsY0FBYyxDQUFDLGNBQWMsR0FBRyw0QkFBNEIsQ0FBQyxjQUFjLENBQUM7YUFDN0U7U0FDRjtRQUNELGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNwQyxpQkFBaUI7WUFDakIsSUFBSSxvQkFBb0IsS0FBSyxjQUFjLENBQUMsU0FBUyxFQUFFO2dCQUNyRCxRQUFRO2dCQUNSLElBQUksY0FBYyxDQUFDLEtBQUssRUFBRTtvQkFDeEIsY0FBYyxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDO2lCQUM3QztnQkFDRCxjQUFjO2dCQUNkLElBQUksY0FBYyxDQUFDLFdBQVcsRUFBRTtvQkFDOUIsY0FBYyxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDO2lCQUN6RDtnQkFDRCxtQkFBbUI7Z0JBQ25CLElBQUksY0FBYyxDQUFDLGdCQUFnQixFQUFFO29CQUNuQyxjQUFjLENBQUMsZ0JBQWdCLEdBQUcsY0FBYyxDQUFDLGdCQUFnQixDQUFDO2lCQUNuRTthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRUQsT0FBTztJQUVDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsT0FBTztRQUN6RSxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FDeEQsS0FBSyxDQUFDLElBQUksRUFDVixpQkFBaUIsQ0FDbEIsQ0FBQztRQUVGLE1BQU0sYUFBYSxHQUNqQixPQUFPLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxLQUFLO1lBQy9CLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDaEQsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVoQixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsV0FBVyxFQUFFO1lBQ3BELE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNsQixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87U0FDSyxDQUFDLENBQUM7UUFFakMsTUFBTSxpQkFBaUIsR0FBRztZQUN4QixJQUFJLEVBQUUsS0FBSztZQUNYLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztZQUNoQixXQUFXLEVBQUUsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDdEUsV0FBVyxFQUFFLHFCQUFxQjtZQUNsQyxlQUFlLEVBQ2IscUJBQXFCLEtBQUssV0FBVyxDQUFDLElBQUk7Z0JBQzFDLHFCQUFxQixLQUFLLFdBQVcsQ0FBQyxRQUFRO2dCQUM1QyxDQUFDLENBQUMsUUFBUTtnQkFDVixDQUFDLENBQUMsU0FBUztZQUNmLHVCQUF1QixFQUFFLElBQUk7U0FDOUIsQ0FBQztRQUVGLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQ2pDLEVBQUUsRUFDRixpQkFBaUIsRUFDakIsT0FBTyxDQUFDLGFBQWEsRUFDckIsRUFBRSxNQUFNLEVBQUUsQ0FDYSxDQUFDO1FBRTFCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDN0YsSUFBSSxZQUFZLENBQUM7UUFDakIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNsQixZQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztTQUMvQjthQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDOUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7U0FDakM7UUFDRCxNQUFNLG1CQUFtQixHQUFHLEtBQUssRUFBRSxPQUFPLElBQUksS0FBSyxFQUFFLE9BQU8sQ0FBQyxNQUFNLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRXRILElBQUksV0FBVyxHQUFHLGlCQUFpQixFQUFFLFdBQVcsSUFBSSxpQkFBaUIsRUFBRSxjQUFjLElBQUksbUJBQW1CLENBQUM7UUFDN0csSUFBSSxnQkFBZ0IsR0FBRyxpQkFBaUIsRUFBRSxnQkFBZ0IsSUFBSSxpQkFBaUIsRUFBRSxtQkFBbUIsSUFBSSxZQUFZLENBQUM7UUFFckgsSUFDRSxDQUFDLGlCQUFpQixFQUFFLFdBQVc7WUFDL0IsQ0FBQyxpQkFBaUIsRUFBRSxjQUFjO1lBQ2xDLENBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCO2dCQUNsQyxpQkFBaUIsRUFBRSxtQkFBbUIsQ0FBQyxFQUN6QztZQUNBLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDaEI7UUFDRCxJQUFJLGlCQUFpQixFQUFFLGdCQUFnQixJQUFJLGlCQUFpQixFQUFFLGNBQWMsRUFBRTtZQUM1RSxNQUFNLEdBQUcsS0FBSyxDQUFDO1NBQ2hCO1FBRUQsTUFBTSxZQUFZLEdBQUc7WUFDbkIsRUFBRSxFQUFFLDJCQUEyQixDQUFDLGFBQWEsQ0FBQztZQUM5QyxJQUFJLEVBQUUsZUFBZSxDQUFDLEtBQUs7WUFDM0IsS0FBSyxFQUFFLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSztZQUN2RSxPQUFPLEVBQUUsUUFBUTtZQUNqQixnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLElBQUksS0FBSztZQUNuRCxPQUFPLEVBQUU7Z0JBQ1AsYUFBYSxFQUFFLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztnQkFDaEUsYUFBYSxFQUFFLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztnQkFDaEUsUUFBUSxFQUFFO29CQUNSLEdBQUcsRUFBRSxXQUFXO29CQUNoQixNQUFNO29CQUNOLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUM3QjtnQkFDRCxhQUFhO2dCQUNiLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsV0FBVyxFQUFFO2dCQUN0QyxhQUFhO2FBQ2Q7U0FDYSxDQUFDO1FBRWpCLE9BQU8sV0FBVyxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sdUJBQXVCLENBQzdCLFVBQVUsRUFDVixPQUFPLEVBQ1AsT0FBTyxFQUNQLGlCQUFpQixFQUNqQixPQUFPO1FBRVAsTUFBTSxZQUFZLEdBQUc7WUFDbkIsRUFBRSxFQUFFLE9BQU87WUFDWCxJQUFJLEVBQUUsZUFBZSxDQUFDLEtBQUs7WUFDM0IsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO1lBQ3ZCLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRTtZQUNuQixnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLElBQUksS0FBSztZQUNuRCxhQUFhLEVBQUUsT0FBTyxDQUFDLGFBQWE7WUFDcEMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBb0IsRUFBRSxLQUFVLEVBQUUsRUFBRTtnQkFDbEUsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtvQkFDN0IsOEJBQThCO29CQUM5QixNQUFNLG9CQUFvQixHQUN4QixPQUFPLEdBQUcsVUFBVSxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQzFELE1BQU0sU0FBUyxHQUFxQixJQUFJLENBQUMsdUJBQXVCLENBQzlELEtBQUssRUFDTCxPQUFPLEVBQ1Asb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQixPQUFPLENBQ1IsQ0FBQztvQkFFRixLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUN2QjtxQkFBTTtvQkFDTCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxLQUFLLEtBQUssRUFBRTt3QkFDeEQsT0FBTyxLQUFLLENBQUM7cUJBQ2Q7b0JBRUQsTUFBTSxTQUFTLEdBQXdDLElBQUksQ0FBQyx1QkFBdUIsQ0FDakYsS0FBSyxFQUNMLE9BQU8sRUFDUCxpQkFBaUIsRUFDakIsT0FBTyxDQUNSLENBQUM7b0JBRUYsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDdkI7Z0JBQ0QsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDO1NBQ1AsQ0FBQztRQUNGLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxxQkFBcUIsQ0FDM0IsT0FBZ0IsRUFDaEIsVUFBZSxFQUNmLFlBQTJCLEVBQzNCLFlBQW9CLENBQUM7UUFFckIsK0VBQStFO1FBQy9FLE1BQU0sT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQzVDLENBQUMsT0FBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FDekMsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFO1lBQ3JCLE9BQU87U0FDUjtRQUVELEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRTtZQUNuQyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO2dCQUM1Qiw4QkFBOEI7Z0JBQzlCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZFLFNBQVM7YUFDVjtZQUVELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRTlELHNEQUFzRDtZQUN0RCxJQUFJLFNBQVMsS0FBSyxDQUFDLEVBQUU7Z0JBQ25CLHlDQUF5QztnQkFDekMsK0JBQStCO2dCQUMvQixNQUFNLFdBQVcsR0FBRyxpQkFBaUIsVUFBVSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3BFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FDNUMsVUFBVSxFQUNWLE9BQU8sRUFDUCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLE9BQU8sQ0FDUixDQUFDO2dCQUVGLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO29CQUNoQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUM5QjtnQkFFRCx3RUFBd0U7Z0JBQ3hFLE1BQU07YUFDUDtpQkFBTTtnQkFDTCxzQkFBc0I7Z0JBQ3RCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEtBQUssS0FBSyxFQUFFO29CQUN2RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQzVDLElBQUksRUFDSixPQUFPLENBQUMsRUFBRSxFQUNWLGlCQUFpQixFQUNqQixPQUFPLENBQ1IsQ0FBQztvQkFDRixZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUM5QjthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsUUFBUTtJQUVBLFlBQVksQ0FDbEIsT0FBTyxFQUNQLFlBQW9DO1FBRXBDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQzVDLENBQUMsT0FBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FDekMsQ0FBQztRQUVGLElBQ0UsWUFBWSxDQUFDLHFCQUFxQjtZQUNsQyxZQUFZLENBQUMscUJBQXFCLENBQUMsUUFBUTtZQUMzQyxZQUFZLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUNwRCxPQUFPLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUM7U0FDaEU7UUFFRCxPQUFPLE1BQU07YUFDVixHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUVsQixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzlGLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztZQUVsQixJQUFJLFdBQVcsR0FBRyxpQkFBaUIsRUFBRSxXQUFXLElBQUksaUJBQWlCLEVBQUUsY0FBYyxDQUFDO1lBQ3RGLElBQUksZ0JBQWdCLEdBQUcsaUJBQWlCLEVBQUUsZ0JBQWdCLElBQUksaUJBQWlCLEVBQUUsbUJBQW1CLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUV6SCxJQUNFLENBQUMsaUJBQWlCLEVBQUUsV0FBVztnQkFDL0IsQ0FBQyxpQkFBaUIsRUFBRSxjQUFjO2dCQUNsQyxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQjtvQkFDbEMsaUJBQWlCLEVBQUUsbUJBQW1CLENBQUMsRUFDekM7Z0JBQ0EsTUFBTSxHQUFHLEtBQUssQ0FBQzthQUNoQjtZQUNELElBQUksaUJBQWlCLEVBQUUsZ0JBQWdCLElBQUksaUJBQWlCLEVBQUUsY0FBYyxFQUFFO2dCQUM1RSxNQUFNLEdBQUcsS0FBSyxDQUFDO2FBQ2hCO1lBR0gsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsS0FBSyxLQUFLLEVBQUU7Z0JBQzlELE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1lBQ0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRTtnQkFDcEQsT0FBTyxFQUFFLE9BQU87YUFDakIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxpQkFBaUIsR0FBRztnQkFDeEIsSUFBSSxFQUFFLE1BQU07Z0JBQ1osR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO2dCQUNoQixXQUFXLEVBQUUsT0FBTyxDQUFDLHVCQUF1QjtvQkFDMUMsQ0FBQyxDQUFDLFdBQVc7b0JBQ2IsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2IsS0FBSyxFQUFFLEtBQUssQ0FBQyxVQUFVO2dCQUN2QixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7Z0JBQzVCLHVCQUF1QixFQUFFLElBQUk7Z0JBQzdCLGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZSxJQUFJLEtBQUs7Z0JBQ2pELEtBQUssRUFBRSxTQUFTO2FBQ1EsQ0FBQztZQUMzQixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUNqQyxFQUFFLEVBQ0YsaUJBQWlCLEVBQ2pCLE9BQU8sQ0FBQyxhQUFhLEVBQ3JCLEVBQUUsTUFBTSxFQUFFLENBQ2MsQ0FBQztZQUUzQixPQUFPLFdBQVcsQ0FBQyxlQUFlLENBQUM7Z0JBQ2pDLEVBQUUsRUFBRSwyQkFBMkIsQ0FBQyxhQUFhLENBQUM7Z0JBQzlDLElBQUksRUFBRSxlQUFlLENBQUMsS0FBSztnQkFDM0IsS0FBSyxFQUFFLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSztnQkFDdkUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFO2dCQUNuQixnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCO2dCQUMxQyxPQUFPLEVBQUU7b0JBQ1AsYUFBYTtvQkFDYixRQUFRLEVBQUU7d0JBQ1IsR0FBRyxFQUFFLFdBQVc7d0JBQ2hCLE1BQU07d0JBQ04sUUFBUSxFQUFFLGdCQUFnQjt3QkFDMUIsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUk7cUJBQzdCO2lCQUNGO2FBQ2EsQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQzthQUNELE1BQU0sQ0FBQyxDQUFDLElBQWtDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsUUFBUTtJQUVFLGtCQUFrQixDQUN4QixPQUFPLEVBQ1AsWUFBWTtRQUVaLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE1BQU0sTUFBTSxHQUNaLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxDQUFDO1FBQy9HLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUN2QixpQ0FBaUMsRUFDakMsa0NBQWtDLENBQUMsQ0FBQztTQUN2QztRQUVELE1BQU0sT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQzVDLENBQUMsT0FBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FDekMsQ0FBQztRQUVGLElBQUksUUFBUSxDQUFDO1FBQ2IsSUFBSSxZQUFZLENBQUMsa0JBQWtCLElBQUksWUFBWSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRTtZQUM3RSxNQUFNLEtBQUssR0FBRyxlQUFlLENBQUM7WUFDOUIsUUFBUSxHQUFHLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQy9EO1FBRUQsT0FBTyxNQUFNO2FBQ1YsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFFbEIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUM3RixJQUFJLFlBQVksQ0FBQztZQUNqQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDbEIsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO2dCQUNsQixZQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQzthQUMvQjtpQkFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUM5QyxZQUFZLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQzthQUNqQztZQUVELElBQUksV0FBVyxHQUFHLGlCQUFpQixFQUFFLFdBQVcsSUFBSSxpQkFBaUIsRUFBRSxjQUFjLENBQUM7WUFDdEYsSUFBSSxnQkFBZ0IsR0FBRyxpQkFBaUIsRUFBRSxnQkFBZ0IsSUFBSSxpQkFBaUIsRUFBRSxtQkFBbUIsSUFBSSxZQUFZLENBQUM7WUFFckgsSUFDRSxDQUFDLGlCQUFpQixFQUFFLFdBQVc7Z0JBQy9CLENBQUMsaUJBQWlCLEVBQUUsY0FBYztnQkFDbEMsQ0FBQyxpQkFBaUIsRUFBRSxnQkFBZ0I7b0JBQ2xDLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDLEVBQ3pDO2dCQUNBLE1BQU0sR0FBRyxLQUFLLENBQUM7YUFDaEI7WUFDRCxJQUFJLGlCQUFpQixFQUFFLGdCQUFnQixJQUFJLGlCQUFpQixFQUFFLGNBQWMsRUFBRTtnQkFDNUUsTUFBTSxHQUFHLEtBQUssQ0FBQzthQUNoQjtZQUVELElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUssS0FBSyxFQUFFO2dCQUN0RCxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELE1BQU0saUJBQWlCLEdBQUc7Z0JBQ3hCLElBQUksRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDL0IsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO2dCQUNoQixXQUFXLEVBQUUsT0FBTyxDQUFDLHVCQUF1QjtvQkFDMUMsQ0FBQyxDQUFDLFdBQVc7b0JBQ2IsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2IsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFZO2dCQUN6QixTQUFTLEVBQUUsSUFBSTtnQkFDZixXQUFXLEVBQUUsVUFBVTtnQkFDdkIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO2dCQUM1Qix1QkFBdUIsRUFBRSxJQUFJO2dCQUM3QixLQUFLLEVBQUUsU0FBUzthQUNjLENBQUM7WUFDakMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FDakMsRUFBRSxFQUNGLGlCQUFpQixFQUNqQixPQUFPLENBQUMsYUFBYSxDQUNTLENBQUM7WUFDakMsT0FBTyxXQUFXLENBQUMsZUFBZSxDQUFDO2dCQUNqQyxFQUFFLEVBQUUsMkJBQTJCLENBQUMsYUFBYSxDQUFDO2dCQUM5QyxJQUFJLEVBQUUsZUFBZSxDQUFDLEtBQUs7Z0JBQzNCLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUk7Z0JBQ3RFLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7Z0JBQzFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRTtnQkFDbkIsT0FBTyxFQUFFO29CQUNQLGFBQWE7b0JBQ2IsYUFBYSxFQUFFLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7b0JBQ3JELGFBQWEsRUFBRSxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO29CQUNyRCxRQUFRLEVBQUU7d0JBQ1IsR0FBRyxFQUFFLFdBQVc7d0JBQ2hCLE1BQU07d0JBQ04sUUFBUSxFQUFFLGdCQUFnQjt3QkFDMUIsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUk7cUJBQzdCO2lCQUNGO2FBQ2EsQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQzthQUNELE1BQU0sQ0FBQyxDQUFDLElBQWtDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsU0FBaUIsRUFBRSxPQUFpQjtRQUMzRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUM7SUFDOUUsQ0FBQztJQUVPLHVCQUF1QixDQUM3QixvQkFBNEIsRUFDNUIsaUJBQWdFO1FBRWhFLE1BQU0sc0JBQXNCLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUNuRCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxvQkFBb0IsQ0FDeEMsQ0FBQztRQUNGLE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsQ0FBQztRQUN0RSxJQUFJLFdBQXdCLENBQUM7UUFDN0IsSUFBSSxzQkFBc0IsRUFBRTtZQUMxQixXQUFXLEdBQUcsc0JBQXNCLENBQUMsV0FBVyxDQUFDO1NBQ2xEO2FBQU0sSUFBSSxjQUFjLEVBQUU7WUFDekIsV0FBVyxHQUFHLGNBQWMsQ0FBQyxXQUFXLENBQUM7U0FDMUM7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU8scUJBQXFCLENBQzNCLE9BQWdCO1FBRWhCLE1BQU0saUJBQWlCLEdBQWtELEVBQUUsQ0FBQztRQUM1RSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUN4QixPQUFPLGlCQUFpQixDQUFDO1NBQzFCO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsb0JBQW9CLEVBQUUsRUFBRTtZQUNoRSxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsWUFBWSxLQUFLLEVBQUU7Z0JBQzlELE9BQU8sQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtvQkFDOUQsSUFDRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsRUFDbkU7d0JBQ0EsaUJBQWlCLENBQUMsSUFBSSxDQUFDOzRCQUNyQixLQUFLLEVBQUUsU0FBUzs0QkFDaEIsV0FBVyxFQUFFLG9CQUFtQzt5QkFDakQsQ0FBQyxDQUFDO3FCQUNKO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7aUJBQU07Z0JBQ0wsSUFDRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FDckIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUNYLFFBQVEsQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUMvRCxFQUNEO29CQUNBLGlCQUFpQixDQUFDLElBQUksQ0FBQzt3QkFDckIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUM7d0JBQ2hELFdBQVcsRUFBRSxvQkFBbUM7cUJBQ2pELENBQUMsQ0FBQztpQkFDSjthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7OzRFQXh5QlUsY0FBYztvRUFBZCxjQUFjLFdBQWQsY0FBYyxtQkFGYixNQUFNO3VGQUVQLGNBQWM7Y0FIMUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgRU1QVFksIE9ic2VydmFibGUsIG9mLCB6aXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgdXVpZCwgT2JqZWN0VXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XHJcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSwgTWVzc2FnZVNlcnZpY2UsIENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDYXBhYmlsaXRpZXNTZXJ2aWNlLFxyXG4gIFdNU0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gIFdNU0RhdGFTb3VyY2VPcHRpb25zUGFyYW1zLFxyXG4gIFdNVFNEYXRhU291cmNlT3B0aW9ucyxcclxuICBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcclxufSBmcm9tICcuLi8uLi9kYXRhc291cmNlJztcclxuaW1wb3J0IHsgTGF5ZXJPcHRpb25zLCBJbWFnZUxheWVyT3B0aW9ucyB9IGZyb20gJy4uLy4uL2xheWVyJztcclxuaW1wb3J0IHsgZ2V0UmVzb2x1dGlvbkZyb21TY2FsZSB9IGZyb20gJy4uLy4uL21hcCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIENhdGFsb2dJdGVtLFxyXG4gIENhdGFsb2dJdGVtTGF5ZXIsXHJcbiAgQ2F0YWxvZ0l0ZW1Hcm91cCxcclxuICBGb3JjZWRQcm9wZXJ0eVxyXG59IGZyb20gJy4vY2F0YWxvZy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBDYXRhbG9nLCBDYXRhbG9nRmFjdG9yeSwgQ29tcG9zaXRlQ2F0YWxvZyB9IGZyb20gJy4vY2F0YWxvZy5hYnN0cmFjdCc7XHJcbmltcG9ydCB7IENhdGFsb2dJdGVtVHlwZSwgVHlwZUNhdGFsb2cgfSBmcm9tICcuL2NhdGFsb2cuZW51bSc7XHJcbmltcG9ydCB7IFF1ZXJ5Rm9ybWF0IH0gZnJvbSAnLi4vLi4vcXVlcnknO1xyXG5pbXBvcnQgeyBnZW5lcmF0ZUlkRnJvbVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXRhbG9nU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgY2FwYWJpbGl0aWVzU2VydmljZTogQ2FwYWJpbGl0aWVzU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbG9hZENhdGFsb2dzKCk6IE9ic2VydmFibGU8Q2F0YWxvZ1tdPiB7XHJcbiAgICBjb25zdCBjb250ZXh0Q29uZmlnID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdjb250ZXh0JykgfHwge307XHJcbiAgICBjb25zdCBjYXRhbG9nQ29uZmlnID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdjYXRhbG9nJykgfHwge307XHJcbiAgICBjb25zdCBhcGlVcmwgPSBjYXRhbG9nQ29uZmlnLnVybCB8fCBjb250ZXh0Q29uZmlnLnVybDtcclxuICAgIGNvbnN0IGNhdGFsb2dzRnJvbUNvbmZpZyA9IGNhdGFsb2dDb25maWcuc291cmNlcyB8fCBbXTtcclxuXHJcbiAgICBjb25zdCBvYnNlcnZhYmxlcyQgPSBbXTtcclxuXHJcbiAgICBpZiAoYXBpVXJsKSB7XHJcbiAgICAgIC8vIEJhc2UgbGF5ZXJzIGNhdGFsb2dcclxuICAgICAgaWYgKGNhdGFsb2dDb25maWcuYmFzZUxheWVycykge1xyXG4gICAgICAgIGNvbnN0IHRyYW5zbGF0ZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZTtcclxuICAgICAgICBjb25zdCB0aXRsZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmNhdGFsb2cuYmFzZUxheWVycycpO1xyXG4gICAgICAgIGNvbnN0IGJhc2VMYXllcnNDYXRhbG9nID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBpZDogJ2NhdGFsb2cuYmFzZWxheWVycycsXHJcbiAgICAgICAgICAgIHRpdGxlLFxyXG4gICAgICAgICAgICB1cmw6IGAke2FwaVVybH0vYmFzZWxheWVyc2AsXHJcbiAgICAgICAgICAgIHR5cGU6ICdiYXNlbGF5ZXJzJ1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIF07XHJcbiAgICAgICAgb2JzZXJ2YWJsZXMkLnB1c2gob2YoYmFzZUxheWVyc0NhdGFsb2cpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQ2F0YWxvZ3MgZnJvbSBBUElcclxuICAgICAgY29uc3QgY2F0YWxvZ3NGcm9tQXBpJCA9IHRoaXMuaHR0cFxyXG4gICAgICAgIC5nZXQ8Q2F0YWxvZ1tdPihgJHthcGlVcmx9L2NhdGFsb2dzYClcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIG1hcCgoY2F0YWxvZ3MpID0+XHJcbiAgICAgICAgICAgIGNhdGFsb2dzLm1hcCgoYzogYW55KSA9PiBPYmplY3QuYXNzaWduKGMsIGMub3B0aW9ucykpXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcigoX3Jlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gRU1QVFkpXHJcbiAgICAgICAgKTtcclxuICAgICAgb2JzZXJ2YWJsZXMkLnB1c2goY2F0YWxvZ3NGcm9tQXBpJCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2F0YWxvZ3MgZnJvbSBjb25maWdcclxuICAgIGlmIChjYXRhbG9nc0Zyb21Db25maWcubGVuZ3RoID4gMCkge1xyXG4gICAgICBvYnNlcnZhYmxlcyQucHVzaChcclxuICAgICAgICBvZihjYXRhbG9nc0Zyb21Db25maWcpLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKGNhdGFsb2dzOiBDYXRhbG9nW10pID0+XHJcbiAgICAgICAgICAgIGNhdGFsb2dzLm1hcCgoYykgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICghYy5pZCkge1xyXG4gICAgICAgICAgICAgICAgYy5pZCA9IHV1aWQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGM7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB6aXAoLi4ub2JzZXJ2YWJsZXMkKS5waXBlKFxyXG4gICAgICBtYXAoKGNhdGFsb2dzOiBDYXRhbG9nW11bXSkgPT4gW10uY29uY2F0LmFwcGx5KFtdLCBjYXRhbG9ncykpXHJcbiAgICApIGFzIE9ic2VydmFibGU8Q2F0YWxvZ1tdPjtcclxuICB9XHJcblxyXG4gIGxvYWRDYXRhbG9nSXRlbXMoY2F0YWxvZzogQ2F0YWxvZyk6IE9ic2VydmFibGU8Q2F0YWxvZ0l0ZW1bXT4ge1xyXG4gICAgbGV0IG5ld0NhdGFsb2c6IENhdGFsb2c7XHJcbiAgICBuZXdDYXRhbG9nID0gQ2F0YWxvZ0ZhY3RvcnkuY3JlYXRlSW5zdGFuY2VDYXRhbG9nKGNhdGFsb2csIHRoaXMpO1xyXG4gICAgcmV0dXJuIG5ld0NhdGFsb2cuY29sbGVjdENhdGFsb2dJdGVtcygpO1xyXG4gIH1cclxuXHJcbiAgbG9hZENhdGFsb2dCYXNlTGF5ZXJJdGVtcyhjYXRhbG9nOiBDYXRhbG9nKTogT2JzZXJ2YWJsZTxDYXRhbG9nSXRlbUdyb3VwW10+IHtcclxuICAgIHJldHVybiB0aGlzLmdldENhdGFsb2dCYXNlTGF5ZXJzT3B0aW9ucyhjYXRhbG9nKS5waXBlKFxyXG4gICAgICBtYXAoKGxheWVyc09wdGlvbnM6IExheWVyT3B0aW9uc1tdKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaXRlbXMgPSBsYXllcnNPcHRpb25zLm1hcCgobGF5ZXJPcHRpb25zOiBMYXllck9wdGlvbnMpID0+IHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlkOiBnZW5lcmF0ZUlkRnJvbVNvdXJjZU9wdGlvbnMobGF5ZXJPcHRpb25zLnNvdXJjZU9wdGlvbnMpLFxyXG4gICAgICAgICAgICB0aXRsZTogbGF5ZXJPcHRpb25zLnRpdGxlLFxyXG4gICAgICAgICAgICB0eXBlOiBDYXRhbG9nSXRlbVR5cGUuTGF5ZXIsXHJcbiAgICAgICAgICAgIGV4dGVybmFsUHJvdmlkZXI6IGNhdGFsb2cuZXh0ZXJuYWxQcm92aWRlcixcclxuICAgICAgICAgICAgb3B0aW9uczogbGF5ZXJPcHRpb25zXHJcbiAgICAgICAgICB9IGFzIENhdGFsb2dJdGVtTGF5ZXI7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgaWQ6ICdjYXRhbG9nLmdyb3VwLmJhc2VsYXllcnMnLFxyXG4gICAgICAgICAgICB0eXBlOiBDYXRhbG9nSXRlbVR5cGUuR3JvdXAsXHJcbiAgICAgICAgICAgIGV4dGVybmFsUHJvdmlkZXI6IGNhdGFsb2cuZXh0ZXJuYWxQcm92aWRlcixcclxuICAgICAgICAgICAgdGl0bGU6IGNhdGFsb2cudGl0bGUsXHJcbiAgICAgICAgICAgIGl0ZW1zXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENhdGFsb2dCYXNlTGF5ZXJzT3B0aW9ucyhcclxuICAgIGNhdGFsb2c6IENhdGFsb2dcclxuICApOiBPYnNlcnZhYmxlPExheWVyT3B0aW9uc1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxMYXllck9wdGlvbnNbXT4oY2F0YWxvZy51cmwpO1xyXG4gIH1cclxuXHJcbiAgbG9hZENhdGFsb2dXTVNMYXllckl0ZW1zKGNhdGFsb2c6IENhdGFsb2cpOiBPYnNlcnZhYmxlPENhdGFsb2dJdGVtW10+IHtcclxuICAgIHJldHVybiB0aGlzLmdldENhdGFsb2dDYXBhYmlsaXRpZXMoY2F0YWxvZykucGlwZShcclxuICAgICAgbWFwKChjYXBhYmlsaXRpZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1zID0gW107XHJcbiAgICAgICAgaWYgKCFjYXBhYmlsaXRpZXMpIHtcclxuICAgICAgICAgIHJldHVybiBpdGVtcztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNhcGFiaWxpdGllcy5TZXJ2aWNlICYmIGNhcGFiaWxpdGllcy5TZXJ2aWNlLkFic3RyYWN0ICYmIGNhcGFiaWxpdGllcy5TZXJ2aWNlLkFic3RyYWN0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgY2F0YWxvZy5hYnN0cmFjdCA9IGNhcGFiaWxpdGllcy5TZXJ2aWNlLkFic3RyYWN0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBmaW5hbExheWVycyA9IFtdO1xyXG4gICAgICAgIHRoaXMuZmxhdHRlbldtc0NhcGFiaWxpdGllcyhjYXBhYmlsaXRpZXMuQ2FwYWJpbGl0eS5MYXllciwgMCwgZmluYWxMYXllcnMsIGNhdGFsb2cuZ3JvdXBTZXBhcmF0b3IpO1xyXG4gICAgICAgIGNvbnN0IGNhcGFiaWxpdGllc0NhcGFiaWxpdHlMYXllciA9IE9iamVjdC5hc3NpZ24oe30sIGNhcGFiaWxpdGllcy5DYXBhYmlsaXR5LkxheWVyKTtcclxuICAgICAgICBjYXBhYmlsaXRpZXNDYXBhYmlsaXR5TGF5ZXIuTGF5ZXIgPSBmaW5hbExheWVycy5maWx0ZXIoZiA9PiBmLkxheWVyLmxlbmd0aCAhPT0gMCk7XHJcbiAgICAgICAgdGhpcy5pbmNsdWRlUmVjdXJzaXZlSXRlbXMoXHJcbiAgICAgICAgICBjYXRhbG9nLFxyXG4gICAgICAgICAgY2FwYWJpbGl0aWVzQ2FwYWJpbGl0eUxheWVyLFxyXG4gICAgICAgICAgaXRlbXNcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBpdGVtcztcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBmbGF0dGVuV21zQ2FwYWJpbGl0aWVzKHBhcmVudCwgbGV2ZWwgPSAwLCBmaW5hbExheWVycywgc2VwYXJhdG9yID0gJyAvICcpIHtcclxuICAgIGlmICghZmluYWxMYXllcnMuaW5jbHVkZXMocGFyZW50LlRpdGxlKSkge1xyXG4gICAgICAgIGNvbnN0IG1vZGlmaWVkUGFyZW50ID0gT2JqZWN0LmFzc2lnbih7fSwgcGFyZW50KTtcclxuICAgICAgICBtb2RpZmllZFBhcmVudC5MYXllciA9IFtdO1xyXG4gICAgICAgIGZpbmFsTGF5ZXJzLnB1c2gobW9kaWZpZWRQYXJlbnQpO1xyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBsYXllciBvZiBwYXJlbnQuTGF5ZXIpIHtcclxuICAgICAgICBjb25zdCBtb2RpZmllZExheWVyID0gT2JqZWN0LmFzc2lnbih7fSwgbGF5ZXIpO1xyXG4gICAgICAgIGlmIChsZXZlbCA+IDApIHtcclxuICAgICAgICAgIG1vZGlmaWVkTGF5ZXIuVGl0bGUgPSBwYXJlbnQuVGl0bGUgKyBzZXBhcmF0b3IgKyBsYXllci5UaXRsZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxheWVyLkxheWVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmxhdHRlbldtc0NhcGFiaWxpdGllcyhtb2RpZmllZExheWVyLCBsZXZlbCArIDEsIGZpbmFsTGF5ZXJzLCBzZXBhcmF0b3IpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZpbmFsTGF5ZXJzLmZpbmQoZmYgPT4gZmYuVGl0bGUgPT09IHBhcmVudC5UaXRsZSkuTGF5ZXIucHVzaChsYXllcik7XHJcbiAgICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuICBsb2FkQ2F0YWxvZ1dNVFNMYXllckl0ZW1zKGNhdGFsb2c6IENhdGFsb2cpOiBPYnNlcnZhYmxlPENhdGFsb2dJdGVtW10+IHtcclxuICAgIHJldHVybiB0aGlzLmdldENhdGFsb2dDYXBhYmlsaXRpZXMoY2F0YWxvZykucGlwZShcclxuICAgICAgbWFwKChjYXBhYmlsaXRpZXM6IGFueSkgPT4gdGhpcy5nZXRXTVRTSXRlbXMoY2F0YWxvZywgY2FwYWJpbGl0aWVzKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBsb2FkQ2F0YWxvZ0FyY0dJU1Jlc3RJdGVtcyhjYXRhbG9nOiBDYXRhbG9nKTogT2JzZXJ2YWJsZTxDYXRhbG9nSXRlbVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDYXRhbG9nQ2FwYWJpbGl0aWVzKGNhdGFsb2cpLnBpcGUoXHJcbiAgICAgIG1hcCgoY2FwYWJpbGl0aWVzOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRBcmNHSVNSRVNUSXRlbXMoY2F0YWxvZywgY2FwYWJpbGl0aWVzKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBsb2FkQ2F0YWxvZ0NvbXBvc2l0ZUxheWVySXRlbXMoY2F0YWxvZzogQ2F0YWxvZyk6IE9ic2VydmFibGU8Q2F0YWxvZ0l0ZW1bXT4ge1xyXG4gICAgY29uc3QgY29tcG9zaXRlQ2F0YWxvZyA9IChjYXRhbG9nIGFzIENvbXBvc2l0ZUNhdGFsb2cpLmNvbXBvc2l0ZTtcclxuXHJcbiAgICBjb25zdCBjYXRhbG9nc0Zyb21JbnN0YW5jZSA9IFtdIGFzIENhdGFsb2dbXTtcclxuICAgIGNvbXBvc2l0ZUNhdGFsb2cubWFwKChjb21wb25lbnQ6IENhdGFsb2cpID0+IHtcclxuICAgICAgY29tcG9uZW50LnNvcnREaXJlY3Rpb24gPSBjYXRhbG9nLnNvcnREaXJlY3Rpb247IC8vIHByb3BhZ2F0ZSBzb3J0RGlyZWN0aW9uIHdpdGggcGFyZW50IHZhbHVlXHJcbiAgICAgIGNhdGFsb2dzRnJvbUluc3RhbmNlLnB1c2goXHJcbiAgICAgICAgQ2F0YWxvZ0ZhY3RvcnkuY3JlYXRlSW5zdGFuY2VDYXRhbG9nKGNvbXBvbmVudCwgdGhpcylcclxuICAgICk7XHJcbiAgfVxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBnZXQgQ2F0YWxvZ0l0ZW1zIGZvciBlYWNoIG9yaWdpbmFsIENhdGFsb2ctLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgY29uc3QgcmVxdWVzdDEkID0gW107XHJcbiAgICBjYXRhbG9nc0Zyb21JbnN0YW5jZS5tYXAoKGNvbXBvbmVudDogQ2F0YWxvZykgPT5cclxuICAgICAgcmVxdWVzdDEkLnB1c2goY29tcG9uZW50LmNvbGxlY3RDYXRhbG9nSXRlbXMoKSlcclxuICAgICk7XHJcblxyXG4gICAgLy8gaW50ZWdyYXRlIGltcG9zZWQgZ3JvdXAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIGxldCByZXF1ZXN0MiQgPSBbXTtcclxuXHJcbiAgICBmdW5jdGlvbiBmbGF0RGVlcExheWVyKGFycikge1xyXG4gICAgICByZXR1cm4gYXJyLnJlZHVjZShcclxuICAgICAgICAoYWNjLCB2YWwpID0+XHJcbiAgICAgICAgICBhY2MuY29uY2F0KFxyXG4gICAgICAgICAgICB2YWwudHlwZSA9PT0gQ2F0YWxvZ0l0ZW1UeXBlLkdyb3VwID8gZmxhdERlZXBMYXllcih2YWwuaXRlbXMpIDogdmFsXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgIFtdXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBPYmplY3Qua2V5cyhjb21wb3NpdGVDYXRhbG9nKS5maW5kKChrKSA9PiBjb21wb3NpdGVDYXRhbG9nW2tdLmdyb3VwSW1wb3NlKVxyXG4gICAgKSB7XHJcbiAgICAgIGNvbnN0IHB1c2hJbXBvc2VHcm91cCA9IChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGMgPSBjYXRhbG9nc0Zyb21JbnN0YW5jZVtpbmRleF07XHJcbiAgICAgICAgY29uc3Qgb3V0R3JvdXBJbXBvc2UgPSBPYmplY3QuYXNzaWduKHt9LCBjLmdyb3VwSW1wb3NlKTtcclxuICAgICAgICBvdXRHcm91cEltcG9zZS5hZGRyZXNzID0gYy5pZDtcclxuICAgICAgICBvdXRHcm91cEltcG9zZS50eXBlID0gQ2F0YWxvZ0l0ZW1UeXBlLkdyb3VwO1xyXG4gICAgICAgIG91dEdyb3VwSW1wb3NlLmV4dGVybmFsUHJvdmlkZXIgPSBjLmV4dGVybmFsUHJvdmlkZXI7XHJcbiAgICAgICAgaWYgKG91dEdyb3VwSW1wb3NlLnNvcnREaXJlY3Rpb24gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgb3V0R3JvdXBJbXBvc2Uuc29ydERpcmVjdGlvbiA9IGMuc29ydERpcmVjdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgb3V0R3JvdXBJbXBvc2UuaXRlbXMgPSBbXTtcclxuXHJcbiAgICAgICAgY29uc3QgZmxhdExheWVyID0gZmxhdERlZXBMYXllcihpdGVtKTtcclxuICAgICAgICBmbGF0TGF5ZXIubWFwKFxyXG4gICAgICAgICAgKHYpID0+ICh2LmFkZHJlc3MgPSBgJHtvdXRHcm91cEltcG9zZS5hZGRyZXNzfS4ke291dEdyb3VwSW1wb3NlLmlkfWApXHJcbiAgICAgICAgKTtcclxuICAgICAgICBvdXRHcm91cEltcG9zZS5pdGVtcyA9IGZsYXRMYXllcjtcclxuXHJcbiAgICAgICAgcmV0dXJuIG91dEdyb3VwSW1wb3NlO1xyXG4gICAgICB9O1xyXG5cclxuICAgICAgcmVxdWVzdDIkID0gcmVxdWVzdDEkLm1hcCgob2JzLCBpZHgpID0+XHJcbiAgICAgICAgb2JzLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKGl0ZW1zKSA9PlxyXG4gICAgICAgICAgICBjb21wb3NpdGVDYXRhbG9nW2lkeF0uZ3JvdXBJbXBvc2VcclxuICAgICAgICAgICAgICA/IHB1c2hJbXBvc2VHcm91cChpdGVtcywgaWR4KVxyXG4gICAgICAgICAgICAgIDogaXRlbXNcclxuICAgICAgICAgIClcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXF1ZXN0MiQgPSByZXF1ZXN0MSQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gY29uY2F0IEdyb3VwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICBjb25zdCByZXF1ZXN0MyQgPSB6aXAoLi4ucmVxdWVzdDIkKS5waXBlKFxyXG4gICAgICBtYXAoXHJcbiAgICAgICAgKG91dHB1dDogQ2F0YWxvZ0l0ZW1bXSkgPT4gW10uY29uY2F0KC4uLm91dHB1dCkgLy8gW10uY29uY2F0LmFwcGx5KFtdLCByZXN1bHQxXHJcbiAgICAgIClcclxuICAgICk7XHJcblxyXG4gICAgLy8gbWVyZ2UgR3JvdXAgKGZpcnN0IGxldmVsIG9ubHkpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICBjb25zdCBncm91cEJ5R3JvdXBJZCA9IChkYXRhLCBrZXlGbikgPT5cclxuICAgICAgZGF0YS5yZWR1Y2UoKGFjYywgZ3JvdXApID0+IHtcclxuICAgICAgICBjb25zdCBncm91cElkID0ga2V5Rm4oZ3JvdXApO1xyXG4gICAgICAgIGNvbnN0IGluZCA9IGFjYy5maW5kKCh4KSA9PiB4LmlkID09PSBncm91cElkKTtcclxuXHJcbiAgICAgICAgaWYgKCFpbmQpIHtcclxuICAgICAgICAgIGFjY1thY2MubGVuZ3RoXSA9IGdyb3VwO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBpeCA9IGFjYy5pbmRleE9mKGluZCk7XHJcbiAgICAgICAgICBpZiAoYWNjW2l4XS5hZGRyZXNzLnNwbGl0KCd8JykuaW5kZXhPZihncm91cC5hZGRyZXNzKSA9PT0gLTEpIHtcclxuICAgICAgICAgICAgYWNjW2l4XS5hZGRyZXNzID0gYCR7YWNjW2l4XS5hZGRyZXNzfXwke2dyb3VwLmFkZHJlc3N9YDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGFjY1tpeF0uaXRlbXMucHVzaCguLi5ncm91cC5pdGVtcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgIH0sIFtdKTtcclxuXHJcbiAgICAvLyBtZXJnZSBMYXllciBmb3IgZWFjaCBMZXZlbCAoY2F0YWxvZywgZ3JvdXAocmVjdXJzaXZlKSlcclxuICAgIGNvbnN0IHJlY3Vyc2l2ZUdyb3VwQnlMYXllckFkZHJlc3MgPSAoaXRlbXMsIGtleUZuKSA9PlxyXG4gICAgICBpdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSwgaWR4LCBhcnIpID0+IHtcclxuICAgICAgICBjb25zdCBsYXllclRpdGxlID0ga2V5Rm4oaXRlbSk7XHJcbiAgICAgICAgY29uc3Qgb3V0SXRlbSA9IE9iamVjdC5hc3NpZ24oe30sIGl0ZW0pO1xyXG5cclxuICAgICAgICBpZiAoaXRlbS50eXBlID09PSBDYXRhbG9nSXRlbVR5cGUuTGF5ZXIpIHtcclxuICAgICAgICAgIC8vIHNhbWUgdGl0bGUsIHNhbWUgYWRkcmVzcyA9PiByZXN1bHQ6IG9ubHkgb25lIGl0ZW0gaXMga2VwdFxyXG5cclxuICAgICAgICAgIC8vIHNhbWUgdGl0bGUsIGFkZHJlc3MgZGlmZlxyXG4gICAgICAgICAgY29uc3QgaW5kaWNlc01hdGNoVGl0bGUgPSBbXTtcclxuICAgICAgICAgIGNvbnN0IGluZGljZXNNYXRjaE5ld01ldGFkYXRhVXJsID0gW107IC8vIG1ldGFkYXRhXHJcbiAgICAgICAgICBjb25zdCBkaWZmQWRkcmVzcyA9IGFyci5maWx0ZXIoKHgsIGkpID0+IHtcclxuICAgICAgICAgICAgbGV0IGJJbmQgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKHgudGl0bGUgPT09IGxheWVyVGl0bGUgJiYgeC50eXBlID09PSBDYXRhbG9nSXRlbVR5cGUuTGF5ZXIpIHtcclxuICAgICAgICAgICAgICBpZiAoaSAhPT0gaWR4ICYmIHguYWRkcmVzcyAhPT0gaXRlbS5hZGRyZXNzKSB7XHJcbiAgICAgICAgICAgICAgICBiSW5kID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaW5kaWNlc01hdGNoVGl0bGUucHVzaChpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gYkluZDtcclxuICAgICAgICAgIH0pOyAvLyAkJiBpICE9PSBpZHhcclxuXHJcbiAgICAgICAgICBpZiAoZGlmZkFkZHJlc3MubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBsZXQgblBvc2l0aW9uID0gaW5kaWNlc01hdGNoVGl0bGUuZmluZEluZGV4KCh4KSA9PiB4ID09PSBpZHgpICsgMTtcclxuICAgICAgICAgICAgb3V0SXRlbS50aXRsZSA9IGAke2l0ZW0udGl0bGV9ICgke25Qb3NpdGlvbn0pYDsgLy8gc291cmNlOiAke2l0ZW0uYWRkcmVzcy5zcGxpdCgnLicpWzBdfVxyXG4gICAgICAgICAgICBuUG9zaXRpb24gPSBpbmRpY2VzTWF0Y2hOZXdNZXRhZGF0YVVybC5maW5kSW5kZXgoKHgpID0+IHggPT09IGlkeCkgKyAxO1xyXG4gICAgICAgICAgICBvdXRJdGVtLm5ld01ldGFkYXRhVXJsID0gYCR7aXRlbS5uZXdNZXRhZGF0YVVybH0gKCR7blBvc2l0aW9ufSlgOyAvLyBzb3VyY2U6ICR7aXRlbS5hZGRyZXNzLnNwbGl0KCcuJylbMF19XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgY29uc3QgZXhpc3QgPSBhY2MuZmluZChcclxuICAgICAgICAgICAgKHgpID0+IHgudGl0bGUgPT09IG91dEl0ZW0udGl0bGUgJiYgeC50eXBlID09PSBDYXRhbG9nSXRlbVR5cGUuTGF5ZXJcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBpZiAoIWV4aXN0KSB7XHJcbiAgICAgICAgICAgIGFjY1thY2MubGVuZ3RoXSA9IG91dEl0ZW07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09IENhdGFsb2dJdGVtVHlwZS5Hcm91cCkge1xyXG4gICAgICAgICAgb3V0SXRlbS5pdGVtcyA9IHJlY3Vyc2l2ZUdyb3VwQnlMYXllckFkZHJlc3MoXHJcbiAgICAgICAgICAgIGl0ZW0uaXRlbXMsXHJcbiAgICAgICAgICAgIChsYXllcikgPT4gbGF5ZXIudGl0bGVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBhY2NbYWNjLmxlbmd0aF0gPSBvdXRJdGVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgfSwgW10pO1xyXG5cclxuICAgIGNvbnN0IHJlcXVlc3Q0JCA9IHJlcXVlc3QzJC5waXBlKFxyXG4gICAgICBtYXAoKG91dHB1dCkgPT4gZ3JvdXBCeUdyb3VwSWQob3V0cHV0LCAoZ3JvdXApID0+IGdyb3VwLmlkKSksXHJcbiAgICAgIG1hcCgob3V0cHV0KSA9PiBbXS5jb25jYXQoLi4ub3V0cHV0KSksXHJcbiAgICAgIG1hcCgoZGF0YSkgPT4gcmVjdXJzaXZlR3JvdXBCeUxheWVyQWRkcmVzcyhkYXRhLCAobGF5ZXIpID0+IGxheWVyLnRpdGxlKSlcclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIHJlcXVlc3Q0JDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q2F0YWxvZ0NhcGFiaWxpdGllcyhjYXRhbG9nOiBDYXRhbG9nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHNUeXBlOiBzdHJpbmcgPSBUeXBlQ2F0YWxvZ1tjYXRhbG9nLnR5cGUgYXMgc3RyaW5nXTtcclxuICAgIHJldHVybiB0aGlzLmNhcGFiaWxpdGllc1NlcnZpY2VcclxuICAgICAgLmdldENhcGFiaWxpdGllcyhzVHlwZSBhcyBhbnksIGNhdGFsb2cudXJsLCBjYXRhbG9nLnZlcnNpb24pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgIGNhdGFsb2cudGl0bGUgPyAnaWdvLmdlby5jYXRhbG9nLnVuYXZhaWxhYmxlJyA6ICdpZ28uZ2VvLmNhdGFsb2cuc29tZVVuYXZhaWxhYmxlJyxcclxuICAgICAgICAgICAgJ2lnby5nZW8uY2F0YWxvZy51bmF2YWlsYWJsZVRpdGxlJyxcclxuICAgICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICBjYXRhbG9nLnRpdGxlID8geyB2YWx1ZTogY2F0YWxvZy50aXRsZSB9IDogdW5kZWZpbmVkKTtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XHJcbiAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb21wdXRlRm9yY2VkUHJvcGVydGllcyhcclxuICAgIGxheWVyTmFtZUZyb21DYXRhbG9nOiBzdHJpbmcsXHJcbiAgICBmb3JjZWRQcm9wZXJ0aWVzOiBGb3JjZWRQcm9wZXJ0eVtdKTogRm9yY2VkUHJvcGVydHkge1xyXG5cclxuICAgIGlmICghZm9yY2VkUHJvcGVydGllcyB8fCBmb3JjZWRQcm9wZXJ0aWVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCByZXR1cm5Qcm9wZXJ0eTogRm9yY2VkUHJvcGVydHkgPSB7XHJcbiAgICAgIGxheWVyTmFtZTogbGF5ZXJOYW1lRnJvbUNhdGFsb2csXHJcbiAgICAgIHRpdGxlOiB1bmRlZmluZWQsXHJcbiAgICAgIG1ldGFkYXRhVXJsOiB1bmRlZmluZWQsXHJcbiAgICAgIG1ldGFkYXRhQWJzdHJhY3Q6IHVuZGVmaW5lZCxcclxuICAgICAgbWV0YWRhdGFBYnN0cmFjdEFsbDogdW5kZWZpbmVkLFxyXG4gICAgICBtZXRhZGF0YVVybEFsbDogdW5kZWZpbmVkXHJcbiAgICB9O1xyXG4gICAgLy9wcm9jZXNzIHdpbGRjYXJkIGJlZm9yZVxyXG4gICAgLy8gaWYgdGhlcmUgaXMgYSAqIHdpbGRjYXJkXHJcbiAgICBjb25zdCBmb3JjZWRQcm9wZXJ0aWVzRm9yQWxsTGF5ZXJzID0gZm9yY2VkUHJvcGVydGllcy5maW5kKGYgPT4gZi5sYXllck5hbWUgPT09ICcqJyk7XHJcbiAgICBpZiAoZm9yY2VkUHJvcGVydGllc0ZvckFsbExheWVycykge1xyXG4gICAgICAvLyBtZXRhZGF0YUFic3RyYWN0QWxsXHJcbiAgICAgIGlmIChmb3JjZWRQcm9wZXJ0aWVzRm9yQWxsTGF5ZXJzLm1ldGFkYXRhQWJzdHJhY3RBbGwpIHtcclxuICAgICAgICByZXR1cm5Qcm9wZXJ0eS5tZXRhZGF0YUFic3RyYWN0QWxsID0gZm9yY2VkUHJvcGVydGllc0ZvckFsbExheWVycy5tZXRhZGF0YUFic3RyYWN0QWxsO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIG1ldGFkYXRhVXJsQWxsXHJcbiAgICAgIGlmIChmb3JjZWRQcm9wZXJ0aWVzRm9yQWxsTGF5ZXJzLm1ldGFkYXRhVXJsQWxsKSB7XHJcbiAgICAgICAgcmV0dXJuUHJvcGVydHkubWV0YWRhdGFVcmxBbGwgPSBmb3JjZWRQcm9wZXJ0aWVzRm9yQWxsTGF5ZXJzLm1ldGFkYXRhVXJsQWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBmb3JjZWRQcm9wZXJ0aWVzLm1hcChmb3JjZWRQcm9wZXJ0eSA9PiB7XHJcbiAgICAgIC8vIGlmIG1hdGNoIGZvdW5kXHJcbiAgICAgIGlmIChsYXllck5hbWVGcm9tQ2F0YWxvZyA9PT0gZm9yY2VkUHJvcGVydHkubGF5ZXJOYW1lKSB7XHJcbiAgICAgICAgLy8gdGl0bGVcclxuICAgICAgICBpZiAoZm9yY2VkUHJvcGVydHkudGl0bGUpIHtcclxuICAgICAgICAgIHJldHVyblByb3BlcnR5LnRpdGxlID0gZm9yY2VkUHJvcGVydHkudGl0bGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIG1ldGFkYXRhVXJsXHJcbiAgICAgICAgaWYgKGZvcmNlZFByb3BlcnR5Lm1ldGFkYXRhVXJsKSB7XHJcbiAgICAgICAgICByZXR1cm5Qcm9wZXJ0eS5tZXRhZGF0YVVybCA9IGZvcmNlZFByb3BlcnR5Lm1ldGFkYXRhVXJsO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBtZXRhZGF0YUFic3RyYWN0XHJcbiAgICAgICAgaWYgKGZvcmNlZFByb3BlcnR5Lm1ldGFkYXRhQWJzdHJhY3QpIHtcclxuICAgICAgICAgIHJldHVyblByb3BlcnR5Lm1ldGFkYXRhQWJzdHJhY3QgPSBmb3JjZWRQcm9wZXJ0eS5tZXRhZGF0YUFic3RyYWN0O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcmV0dXJuUHJvcGVydHk7XHJcbiAgfVxyXG5cclxuICAvLy8gV01TXHJcblxyXG4gIHByaXZhdGUgcHJlcGFyZUNhdGFsb2dJdGVtTGF5ZXIobGF5ZXIsIGlkUGFyZW50LCBsYXllcnNRdWVyeUZvcm1hdCwgY2F0YWxvZykge1xyXG4gICAgY29uc3QgY29uZmlndXJlZFF1ZXJ5Rm9ybWF0ID0gdGhpcy5yZXRyaWV2ZUxheWVySW5mb0Zvcm1hdChcclxuICAgICAgbGF5ZXIuTmFtZSxcclxuICAgICAgbGF5ZXJzUXVlcnlGb3JtYXRcclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgbGVnZW5kT3B0aW9ucyA9XHJcbiAgICAgIGNhdGFsb2cuc2hvd0xlZ2VuZCAmJiBsYXllci5TdHlsZVxyXG4gICAgICAgID8gdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldFN0eWxlKGxheWVyLlN0eWxlKVxyXG4gICAgICAgIDogdW5kZWZpbmVkO1xyXG5cclxuICAgIGNvbnN0IHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe30sIGNhdGFsb2cucXVlcnlQYXJhbXMsIHtcclxuICAgICAgTEFZRVJTOiBsYXllci5OYW1lLFxyXG4gICAgICBWRVJTSU9OOiBjYXRhbG9nLnZlcnNpb25cclxuICAgIH0gYXMgV01TRGF0YVNvdXJjZU9wdGlvbnNQYXJhbXMpO1xyXG5cclxuICAgIGNvbnN0IGJhc2VTb3VyY2VPcHRpb25zID0ge1xyXG4gICAgICB0eXBlOiAnd21zJyxcclxuICAgICAgdXJsOiBjYXRhbG9nLnVybCxcclxuICAgICAgY3Jvc3NPcmlnaW46IGNhdGFsb2cuc2V0Q3Jvc3NPcmlnaW5Bbm9ueW1vdXMgPyAnYW5vbnltb3VzJyA6IHVuZGVmaW5lZCxcclxuICAgICAgcXVlcnlGb3JtYXQ6IGNvbmZpZ3VyZWRRdWVyeUZvcm1hdCxcclxuICAgICAgcXVlcnlIdG1sVGFyZ2V0OlxyXG4gICAgICAgIGNvbmZpZ3VyZWRRdWVyeUZvcm1hdCA9PT0gUXVlcnlGb3JtYXQuSFRNTCB8fFxyXG4gICAgICAgIGNvbmZpZ3VyZWRRdWVyeUZvcm1hdCA9PT0gUXVlcnlGb3JtYXQuSFRNTEdNTDJcclxuICAgICAgICAgID8gJ2lmcmFtZSdcclxuICAgICAgICAgIDogdW5kZWZpbmVkLFxyXG4gICAgICBvcHRpb25zRnJvbUNhcGFiaWxpdGllczogdHJ1ZVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBzb3VyY2VPcHRpb25zID0gT2JqZWN0LmFzc2lnbihcclxuICAgICAge30sXHJcbiAgICAgIGJhc2VTb3VyY2VPcHRpb25zLFxyXG4gICAgICBjYXRhbG9nLnNvdXJjZU9wdGlvbnMsXHJcbiAgICAgIHsgcGFyYW1zIH1cclxuICAgICkgYXMgV01TRGF0YVNvdXJjZU9wdGlvbnM7XHJcblxyXG4gICAgY29uc3QgcHJvcGVydGllc1RvRm9yY2UgPSB0aGlzLmNvbXB1dGVGb3JjZWRQcm9wZXJ0aWVzKGxheWVyLk5hbWUsIGNhdGFsb2cuZm9yY2VkUHJvcGVydGllcyk7XHJcbiAgICBsZXQgYmFzZUFic3RyYWN0O1xyXG4gICAgbGV0IGV4dGVybiA9IHRydWU7XHJcbiAgICBpZiAobGF5ZXIuQWJzdHJhY3QpIHtcclxuICAgICAgYmFzZUFic3RyYWN0ID0gbGF5ZXIuQWJzdHJhY3Q7XHJcbiAgICB9IGVsc2UgaWYgKCFsYXllci5BYnN0cmFjdCAmJiBjYXRhbG9nLmFic3RyYWN0KSB7XHJcbiAgICAgIGJhc2VBYnN0cmFjdCA9IGNhdGFsb2cuYWJzdHJhY3Q7XHJcbiAgICB9XHJcbiAgICBjb25zdCBsYXllck9ubGluZVJlc291cmNlID0gbGF5ZXI/LkRhdGFVUkwgJiYgbGF5ZXI/LkRhdGFVUkwubGVuZ3RoID4wID8gbGF5ZXI/LkRhdGFVUkxbMF0uT25saW5lUmVzb3VyY2UgOiB1bmRlZmluZWQ7XHJcblxyXG4gICAgbGV0IG1ldGFkYXRhVXJsID0gcHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhVXJsIHx8IHByb3BlcnRpZXNUb0ZvcmNlPy5tZXRhZGF0YVVybEFsbCB8fCBsYXllck9ubGluZVJlc291cmNlO1xyXG4gICAgbGV0IG1ldGFkYXRhQWJzdHJhY3QgPSBwcm9wZXJ0aWVzVG9Gb3JjZT8ubWV0YWRhdGFBYnN0cmFjdCB8fCBwcm9wZXJ0aWVzVG9Gb3JjZT8ubWV0YWRhdGFBYnN0cmFjdEFsbCB8fCBiYXNlQWJzdHJhY3Q7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICAhcHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhVXJsICYmXHJcbiAgICAgICFwcm9wZXJ0aWVzVG9Gb3JjZT8ubWV0YWRhdGFVcmxBbGwgJiZcclxuICAgICAgKHByb3BlcnRpZXNUb0ZvcmNlPy5tZXRhZGF0YUFic3RyYWN0IHx8XHJcbiAgICAgICAgcHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhQWJzdHJhY3RBbGwpXHJcbiAgICApIHtcclxuICAgICAgZXh0ZXJuID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAocHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhQWJzdHJhY3QgJiYgcHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhVXJsQWxsKSB7XHJcbiAgICAgIGV4dGVybiA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGxheWVyUHJlcGFyZSA9IHtcclxuICAgICAgaWQ6IGdlbmVyYXRlSWRGcm9tU291cmNlT3B0aW9ucyhzb3VyY2VPcHRpb25zKSxcclxuICAgICAgdHlwZTogQ2F0YWxvZ0l0ZW1UeXBlLkxheWVyLFxyXG4gICAgICB0aXRsZTogcHJvcGVydGllc1RvRm9yY2U/LnRpdGxlID8gcHJvcGVydGllc1RvRm9yY2UudGl0bGUgOiBsYXllci5UaXRsZSxcclxuICAgICAgYWRkcmVzczogaWRQYXJlbnQsXHJcbiAgICAgIGV4dGVybmFsUHJvdmlkZXI6IGNhdGFsb2cuZXh0ZXJuYWxQcm92aWRlciB8fCBmYWxzZSxcclxuICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgIG1heFJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUobGF5ZXIuTWF4U2NhbGVEZW5vbWluYXRvciksXHJcbiAgICAgICAgbWluUmVzb2x1dGlvbjogZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShsYXllci5NaW5TY2FsZURlbm9taW5hdG9yKSxcclxuICAgICAgICBtZXRhZGF0YToge1xyXG4gICAgICAgICAgdXJsOiBtZXRhZGF0YVVybCxcclxuICAgICAgICAgIGV4dGVybixcclxuICAgICAgICAgIGFic3RyYWN0OiBtZXRhZGF0YUFic3RyYWN0LFxyXG4gICAgICAgICAgdHlwZTogYmFzZVNvdXJjZU9wdGlvbnMudHlwZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGVnZW5kT3B0aW9ucyxcclxuICAgICAgICB0b29sdGlwOiB7IHR5cGU6IGNhdGFsb2cudG9vbHRpcFR5cGUgfSxcclxuICAgICAgICBzb3VyY2VPcHRpb25zXHJcbiAgICAgIH1cclxuICAgIH0gYXMgQ2F0YWxvZ0l0ZW07XHJcblxyXG4gICAgcmV0dXJuIE9iamVjdFV0aWxzLnJlbW92ZVVuZGVmaW5lZChsYXllclByZXBhcmUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcmVwYXJlQ2F0YWxvZ0l0ZW1Hcm91cChcclxuICAgIGl0ZW1MaXN0SW4sXHJcbiAgICByZWdleGVzLFxyXG4gICAgaWRHcm91cCxcclxuICAgIGxheWVyc1F1ZXJ5Rm9ybWF0LFxyXG4gICAgY2F0YWxvZ1xyXG4gICkge1xyXG4gICAgY29uc3QgZ3JvdXBQcmVwYXJlID0ge1xyXG4gICAgICBpZDogaWRHcm91cCxcclxuICAgICAgdHlwZTogQ2F0YWxvZ0l0ZW1UeXBlLkdyb3VwLFxyXG4gICAgICB0aXRsZTogaXRlbUxpc3RJbi5UaXRsZSxcclxuICAgICAgYWRkcmVzczogY2F0YWxvZy5pZCxcclxuICAgICAgZXh0ZXJuYWxQcm92aWRlcjogY2F0YWxvZy5leHRlcm5hbFByb3ZpZGVyIHx8IGZhbHNlLFxyXG4gICAgICBzb3J0RGlyZWN0aW9uOiBjYXRhbG9nLnNvcnREaXJlY3Rpb24sIC8vIHByb3BhZ2F0ZSBzb3J0RGlyZWN0aW9uXHJcbiAgICAgIGl0ZW1zOiBpdGVtTGlzdEluLkxheWVyLnJlZHVjZSgoaXRlbXM6IENhdGFsb2dJdGVtW10sIGxheWVyOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAobGF5ZXIuTGF5ZXIgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgLy8gcmVjdXJzaXZlLCBjaGVjayBuZXh0IGxldmVsXHJcbiAgICAgICAgICBjb25zdCBpZEdyb3VwSXRlbU5leHRMZXZlbCA9XHJcbiAgICAgICAgICAgIGlkR3JvdXAgKyBgLmdyb3VwLiR7bGF5ZXIuTmFtZSB8fCBsYXllci5MYXllclswXS5OYW1lfWA7XHJcbiAgICAgICAgICBjb25zdCBncm91cEl0ZW06IENhdGFsb2dJdGVtR3JvdXAgPSB0aGlzLnByZXBhcmVDYXRhbG9nSXRlbUdyb3VwKFxyXG4gICAgICAgICAgICBsYXllcixcclxuICAgICAgICAgICAgcmVnZXhlcyxcclxuICAgICAgICAgICAgaWRHcm91cEl0ZW1OZXh0TGV2ZWwsXHJcbiAgICAgICAgICAgIGxheWVyc1F1ZXJ5Rm9ybWF0LFxyXG4gICAgICAgICAgICBjYXRhbG9nXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgIGl0ZW1zLnB1c2goZ3JvdXBJdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHRoaXMudGVzdExheWVyUmVnZXhlcyhsYXllci5OYW1lLCByZWdleGVzKSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGNvbnN0IGxheWVySXRlbTogQ2F0YWxvZ0l0ZW1MYXllcjxJbWFnZUxheWVyT3B0aW9ucz4gPSB0aGlzLnByZXBhcmVDYXRhbG9nSXRlbUxheWVyKFxyXG4gICAgICAgICAgICBsYXllcixcclxuICAgICAgICAgICAgaWRHcm91cCxcclxuICAgICAgICAgICAgbGF5ZXJzUXVlcnlGb3JtYXQsXHJcbiAgICAgICAgICAgIGNhdGFsb2dcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgaXRlbXMucHVzaChsYXllckl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICAgIH0sIFtdKVxyXG4gICAgfTtcclxuICAgIHJldHVybiBncm91cFByZXBhcmU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluY2x1ZGVSZWN1cnNpdmVJdGVtcyhcclxuICAgIGNhdGFsb2c6IENhdGFsb2csXHJcbiAgICBpdGVtTGlzdEluOiBhbnksXHJcbiAgICBpdGVtc1ByZXBhcmU6IENhdGFsb2dJdGVtW10sXHJcbiAgICBsb29wTGV2ZWw6IG51bWJlciA9IDBcclxuICApIHtcclxuICAgIC8vIERpZyBhbGwgbGV2ZWxzIHVudGlsIGxhc3QgbGV2ZWwgKGxheWVyIG9iamVjdCBhcmUgbm90IGRlZmluZWQgb24gbGFzdCBsZXZlbClcclxuICAgIGNvbnN0IHJlZ2V4ZXMgPSAoY2F0YWxvZy5yZWdGaWx0ZXJzIHx8IFtdKS5tYXAoXHJcbiAgICAgIChwYXR0ZXJuOiBzdHJpbmcpID0+IG5ldyBSZWdFeHAocGF0dGVybilcclxuICAgICk7XHJcbiAgICBpZiAoIWl0ZW1MaXN0SW4uTGF5ZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtTGlzdEluLkxheWVyKSB7XHJcbiAgICAgIGlmIChpdGVtLkxheWVyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAvLyByZWN1cnNpdmUsIGNoZWNrIG5leHQgbGV2ZWxcclxuICAgICAgICB0aGlzLmluY2x1ZGVSZWN1cnNpdmVJdGVtcyhjYXRhbG9nLCBpdGVtLCBpdGVtc1ByZXBhcmUsIGxvb3BMZXZlbCArIDEpO1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBsYXllcnNRdWVyeUZvcm1hdCA9IHRoaXMuZmluZENhdGFsb2dJbmZvRm9ybWF0KGNhdGFsb2cpO1xyXG5cclxuICAgICAgLy8gZ3JvdXAod2l0aCBsYXllcnMpIGFuZCBsYXllcih3aXRob3V0IGdyb3VwKSBsZXZlbCAxXHJcbiAgICAgIGlmIChsb29wTGV2ZWwgIT09IDApIHtcclxuICAgICAgICAvLyBUT0RPOiBTbGljZSB0aGF0IGludG8gbXVsdGlwbGUgbWV0aG9kc1xyXG4gICAgICAgIC8vIERlZmluZSBvYmplY3Qgb2YgZ3JvdXAgbGF5ZXJcclxuICAgICAgICBjb25zdCBpZEdyb3VwSXRlbSA9IGBjYXRhbG9nLmdyb3VwLiR7aXRlbUxpc3RJbi5OYW1lIHx8IGl0ZW0uTmFtZX1gO1xyXG4gICAgICAgIGNvbnN0IGdyb3VwSXRlbSA9IHRoaXMucHJlcGFyZUNhdGFsb2dJdGVtR3JvdXAoXHJcbiAgICAgICAgICBpdGVtTGlzdEluLFxyXG4gICAgICAgICAgcmVnZXhlcyxcclxuICAgICAgICAgIGlkR3JvdXBJdGVtLFxyXG4gICAgICAgICAgbGF5ZXJzUXVlcnlGb3JtYXQsXHJcbiAgICAgICAgICBjYXRhbG9nXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKGdyb3VwSXRlbS5pdGVtcy5sZW5ndGggIT09IDApIHtcclxuICAgICAgICAgIGl0ZW1zUHJlcGFyZS5wdXNoKGdyb3VwSXRlbSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBCcmVhayB0aGUgZ3JvdXAgKGRvbid0IGFkZCBhIGdyb3VwIG9mIGxheWVyIGZvciBlYWNoIG9mIHRoZWlyIGxheWVyISlcclxuICAgICAgICBicmVhaztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBsYXllciB3aXRob3V0IGdyb3VwXHJcbiAgICAgICAgaWYgKHRoaXMudGVzdExheWVyUmVnZXhlcyhpdGVtLk5hbWUsIHJlZ2V4ZXMpICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgY29uc3QgbGF5ZXJJdGVtID0gdGhpcy5wcmVwYXJlQ2F0YWxvZ0l0ZW1MYXllcihcclxuICAgICAgICAgICAgaXRlbSxcclxuICAgICAgICAgICAgY2F0YWxvZy5pZCxcclxuICAgICAgICAgICAgbGF5ZXJzUXVlcnlGb3JtYXQsXHJcbiAgICAgICAgICAgIGNhdGFsb2dcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBpdGVtc1ByZXBhcmUucHVzaChsYXllckl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIFdNVFNcclxuXHJcbiAgcHJpdmF0ZSBnZXRXTVRTSXRlbXMoXHJcbiAgICBjYXRhbG9nLFxyXG4gICAgY2FwYWJpbGl0aWVzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9XHJcbiAgKTogQ2F0YWxvZ0l0ZW1MYXllcltdIHtcclxuICAgIGlmICghY2FwYWJpbGl0aWVzKSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICAgIGNvbnN0IGxheWVycyA9IGNhcGFiaWxpdGllcy5Db250ZW50cy5MYXllcjtcclxuICAgIGNvbnN0IHJlZ2V4ZXMgPSAoY2F0YWxvZy5yZWdGaWx0ZXJzIHx8IFtdKS5tYXAoXHJcbiAgICAgIChwYXR0ZXJuOiBzdHJpbmcpID0+IG5ldyBSZWdFeHAocGF0dGVybilcclxuICAgICk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBjYXBhYmlsaXRpZXMuU2VydmljZUlkZW50aWZpY2F0aW9uICYmXHJcbiAgICAgIGNhcGFiaWxpdGllcy5TZXJ2aWNlSWRlbnRpZmljYXRpb24uQWJzdHJhY3QgJiZcclxuICAgICAgY2FwYWJpbGl0aWVzLlNlcnZpY2VJZGVudGlmaWNhdGlvbi5BYnN0cmFjdC5sZW5ndGgpIHtcclxuICAgICAgY2F0YWxvZy5hYnN0cmFjdCA9IGNhcGFiaWxpdGllcy5TZXJ2aWNlSWRlbnRpZmljYXRpb24uQWJzdHJhY3Q7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGxheWVyc1xyXG4gICAgICAubWFwKChsYXllcjogYW55KSA9PiB7XHJcblxyXG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXNUb0ZvcmNlID0gdGhpcy5jb21wdXRlRm9yY2VkUHJvcGVydGllcyhsYXllci5UaXRsZSwgY2F0YWxvZy5mb3JjZWRQcm9wZXJ0aWVzKTtcclxuICAgICAgICBsZXQgZXh0ZXJuID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgbGV0IG1ldGFkYXRhVXJsID0gcHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhVXJsIHx8IHByb3BlcnRpZXNUb0ZvcmNlPy5tZXRhZGF0YVVybEFsbDtcclxuICAgICAgICBsZXQgbWV0YWRhdGFBYnN0cmFjdCA9IHByb3BlcnRpZXNUb0ZvcmNlPy5tZXRhZGF0YUFic3RyYWN0IHx8IHByb3BlcnRpZXNUb0ZvcmNlPy5tZXRhZGF0YUFic3RyYWN0QWxsIHx8IGNhdGFsb2cuYWJzdHJhY3Q7XHJcblxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICFwcm9wZXJ0aWVzVG9Gb3JjZT8ubWV0YWRhdGFVcmwgJiZcclxuICAgICAgICAgICFwcm9wZXJ0aWVzVG9Gb3JjZT8ubWV0YWRhdGFVcmxBbGwgJiZcclxuICAgICAgICAgIChwcm9wZXJ0aWVzVG9Gb3JjZT8ubWV0YWRhdGFBYnN0cmFjdCB8fFxyXG4gICAgICAgICAgICBwcm9wZXJ0aWVzVG9Gb3JjZT8ubWV0YWRhdGFBYnN0cmFjdEFsbClcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGV4dGVybiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhQWJzdHJhY3QgJiYgcHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhVXJsQWxsKSB7XHJcbiAgICAgICAgICBleHRlcm4gPSBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgaWYgKHRoaXMudGVzdExheWVyUmVnZXhlcyhsYXllci5JZGVudGlmaWVyLCByZWdleGVzKSA9PT0gZmFsc2UpIHtcclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe30sIGNhdGFsb2cucXVlcnlQYXJhbXMsIHtcclxuICAgICAgICB2ZXJzaW9uOiAnMS4wLjAnXHJcbiAgICAgIH0pO1xyXG4gICAgICBjb25zdCBiYXNlU291cmNlT3B0aW9ucyA9IHtcclxuICAgICAgICB0eXBlOiAnd210cycsXHJcbiAgICAgICAgdXJsOiBjYXRhbG9nLnVybCxcclxuICAgICAgICBjcm9zc09yaWdpbjogY2F0YWxvZy5zZXRDcm9zc09yaWdpbkFub255bW91c1xyXG4gICAgICAgICAgPyAnYW5vbnltb3VzJ1xyXG4gICAgICAgICAgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgbGF5ZXI6IGxheWVyLklkZW50aWZpZXIsXHJcbiAgICAgICAgbWF0cml4U2V0OiBjYXRhbG9nLm1hdHJpeFNldCxcclxuICAgICAgICBvcHRpb25zRnJvbUNhcGFiaWxpdGllczogdHJ1ZSxcclxuICAgICAgICByZXF1ZXN0RW5jb2Rpbmc6IGNhdGFsb2cucmVxdWVzdEVuY29kaW5nIHx8ICdLVlAnLFxyXG4gICAgICAgIHN0eWxlOiAnZGVmYXVsdCdcclxuICAgICAgfSBhcyBXTVRTRGF0YVNvdXJjZU9wdGlvbnM7XHJcbiAgICAgIGNvbnN0IHNvdXJjZU9wdGlvbnMgPSBPYmplY3QuYXNzaWduKFxyXG4gICAgICAgIHt9LFxyXG4gICAgICAgIGJhc2VTb3VyY2VPcHRpb25zLFxyXG4gICAgICAgIGNhdGFsb2cuc291cmNlT3B0aW9ucyxcclxuICAgICAgICB7IHBhcmFtcyB9XHJcbiAgICAgICkgYXMgV01UU0RhdGFTb3VyY2VPcHRpb25zO1xyXG5cclxuICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLnJlbW92ZVVuZGVmaW5lZCh7XHJcbiAgICAgICAgaWQ6IGdlbmVyYXRlSWRGcm9tU291cmNlT3B0aW9ucyhzb3VyY2VPcHRpb25zKSxcclxuICAgICAgICB0eXBlOiBDYXRhbG9nSXRlbVR5cGUuTGF5ZXIsXHJcbiAgICAgICAgdGl0bGU6IHByb3BlcnRpZXNUb0ZvcmNlPy50aXRsZSA/IHByb3BlcnRpZXNUb0ZvcmNlLnRpdGxlIDogbGF5ZXIuVGl0bGUsXHJcbiAgICAgICAgYWRkcmVzczogY2F0YWxvZy5pZCxcclxuICAgICAgICBleHRlcm5hbFByb3ZpZGVyOiBjYXRhbG9nLmV4dGVybmFsUHJvdmlkZXIsXHJcbiAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgc291cmNlT3B0aW9ucyxcclxuICAgICAgICAgIG1ldGFkYXRhOiB7XHJcbiAgICAgICAgICAgIHVybDogbWV0YWRhdGFVcmwsXHJcbiAgICAgICAgICAgIGV4dGVybixcclxuICAgICAgICAgICAgYWJzdHJhY3Q6IG1ldGFkYXRhQWJzdHJhY3QsXHJcbiAgICAgICAgICAgIHR5cGU6IGJhc2VTb3VyY2VPcHRpb25zLnR5cGVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gYXMgQ2F0YWxvZ0l0ZW0pO1xyXG4gICAgfSlcclxuICAgIC5maWx0ZXIoKGl0ZW06IENhdGFsb2dJdGVtTGF5ZXIgfCB1bmRlZmluZWQpID0+IGl0ZW0gIT09IHVuZGVmaW5lZCk7XHJcbn1cclxuXHJcbi8vLyBFUlNJXHJcblxyXG4gIHByaXZhdGUgZ2V0QXJjR0lTUkVTVEl0ZW1zKFxyXG4gICAgY2F0YWxvZyxcclxuICAgIGNhcGFiaWxpdGllc1xyXG4gICk6IENhdGFsb2dJdGVtTGF5ZXJbXSB7XHJcbiAgICBpZiAoIWNhcGFiaWxpdGllcykge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICBjb25zdCBsYXllcnMgPVxyXG4gICAgIWNhcGFiaWxpdGllcy5sYXllcnMgPyBbXSA6IGNhcGFiaWxpdGllcy5sYXllcnMuZmlsdGVyKGxheWVyID0+ICFsYXllci50eXBlIHx8IGxheWVyLnR5cGUgPT09ICdGZWF0dXJlIExheWVyJyk7XHJcbiAgICBpZiAoIWNhcGFiaWxpdGllcy5sYXllcnMpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICAgICAnaWdvLmdlby5jYXRhbG9nLnNvbWVVbmF2YWlsYWJsZScsXHJcbiAgICAgICAgJ2lnby5nZW8uY2F0YWxvZy51bmF2YWlsYWJsZVRpdGxlJyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVnZXhlcyA9IChjYXRhbG9nLnJlZ0ZpbHRlcnMgfHwgW10pLm1hcChcclxuICAgICAgKHBhdHRlcm46IHN0cmluZykgPT4gbmV3IFJlZ0V4cChwYXR0ZXJuKVxyXG4gICAgKTtcclxuXHJcbiAgICBsZXQgYWJzdHJhY3Q7XHJcbiAgICBpZiAoY2FwYWJpbGl0aWVzLnNlcnZpY2VEZXNjcmlwdGlvbiAmJiBjYXBhYmlsaXRpZXMuc2VydmljZURlc2NyaXB0aW9uLmxlbmd0aCkge1xyXG4gICAgICBjb25zdCByZWdleCA9IC8oPChbXj5dKyk+KS9pZztcclxuICAgICAgYWJzdHJhY3QgPSBjYXBhYmlsaXRpZXMuc2VydmljZURlc2NyaXB0aW9uLnJlcGxhY2UocmVnZXgsICcnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbGF5ZXJzXHJcbiAgICAgIC5tYXAoKGxheWVyOiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgY29uc3QgcHJvcGVydGllc1RvRm9yY2UgPSB0aGlzLmNvbXB1dGVGb3JjZWRQcm9wZXJ0aWVzKGxheWVyLm5hbWUsIGNhdGFsb2cuZm9yY2VkUHJvcGVydGllcyk7XHJcbiAgICAgICAgbGV0IGJhc2VBYnN0cmFjdDtcclxuICAgICAgICBsZXQgZXh0ZXJuID0gdHJ1ZTtcclxuICAgICAgICBpZiAobGF5ZXIuQWJzdHJhY3QpIHtcclxuICAgICAgICAgIGJhc2VBYnN0cmFjdCA9IGxheWVyLkFic3RyYWN0O1xyXG4gICAgICAgIH0gZWxzZSBpZiAoIWxheWVyLkFic3RyYWN0ICYmIGNhdGFsb2cuYWJzdHJhY3QpIHtcclxuICAgICAgICAgIGJhc2VBYnN0cmFjdCA9IGNhdGFsb2cuYWJzdHJhY3Q7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgbWV0YWRhdGFVcmwgPSBwcm9wZXJ0aWVzVG9Gb3JjZT8ubWV0YWRhdGFVcmwgfHwgcHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhVXJsQWxsO1xyXG4gICAgICAgIGxldCBtZXRhZGF0YUFic3RyYWN0ID0gcHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhQWJzdHJhY3QgfHwgcHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhQWJzdHJhY3RBbGwgfHwgYmFzZUFic3RyYWN0O1xyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAhcHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhVXJsICYmXHJcbiAgICAgICAgICAhcHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhVXJsQWxsICYmXHJcbiAgICAgICAgICAocHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhQWJzdHJhY3QgfHxcclxuICAgICAgICAgICAgcHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhQWJzdHJhY3RBbGwpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBleHRlcm4gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHByb3BlcnRpZXNUb0ZvcmNlPy5tZXRhZGF0YUFic3RyYWN0ICYmIHByb3BlcnRpZXNUb0ZvcmNlPy5tZXRhZGF0YVVybEFsbCkge1xyXG4gICAgICAgICAgZXh0ZXJuID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy50ZXN0TGF5ZXJSZWdleGVzKGxheWVyLmlkLCByZWdleGVzKSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGJhc2VTb3VyY2VPcHRpb25zID0ge1xyXG4gICAgICAgICAgdHlwZTogVHlwZUNhdGFsb2dbY2F0YWxvZy50eXBlXSxcclxuICAgICAgICAgIHVybDogY2F0YWxvZy51cmwsXHJcbiAgICAgICAgICBjcm9zc09yaWdpbjogY2F0YWxvZy5zZXRDcm9zc09yaWdpbkFub255bW91c1xyXG4gICAgICAgICAgICA/ICdhbm9ueW1vdXMnXHJcbiAgICAgICAgICAgIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgbGF5ZXI6IGxheWVyLmlkIGFzIHN0cmluZyxcclxuICAgICAgICAgIHF1ZXJ5YWJsZTogdHJ1ZSxcclxuICAgICAgICAgIHF1ZXJ5Rm9ybWF0OiAnZXNyaWpzb24nLFxyXG4gICAgICAgICAgbWF0cml4U2V0OiBjYXRhbG9nLm1hdHJpeFNldCxcclxuICAgICAgICAgIG9wdGlvbnNGcm9tQ2FwYWJpbGl0aWVzOiB0cnVlLFxyXG4gICAgICAgICAgc3R5bGU6ICdkZWZhdWx0J1xyXG4gICAgICAgIH0gYXMgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zO1xyXG4gICAgICAgIGNvbnN0IHNvdXJjZU9wdGlvbnMgPSBPYmplY3QuYXNzaWduKFxyXG4gICAgICAgICAge30sXHJcbiAgICAgICAgICBiYXNlU291cmNlT3B0aW9ucyxcclxuICAgICAgICAgIGNhdGFsb2cuc291cmNlT3B0aW9uc1xyXG4gICAgICAgICkgYXMgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zO1xyXG4gICAgICAgIHJldHVybiBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xyXG4gICAgICAgICAgaWQ6IGdlbmVyYXRlSWRGcm9tU291cmNlT3B0aW9ucyhzb3VyY2VPcHRpb25zKSxcclxuICAgICAgICAgIHR5cGU6IENhdGFsb2dJdGVtVHlwZS5MYXllcixcclxuICAgICAgICAgIHRpdGxlOiBwcm9wZXJ0aWVzVG9Gb3JjZT8udGl0bGUgPyBwcm9wZXJ0aWVzVG9Gb3JjZS50aXRsZSA6IGxheWVyLm5hbWUsXHJcbiAgICAgICAgICBleHRlcm5hbFByb3ZpZGVyOiBjYXRhbG9nLmV4dGVybmFsUHJvdmlkZXIsXHJcbiAgICAgICAgICBhZGRyZXNzOiBjYXRhbG9nLmlkLFxyXG4gICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICBzb3VyY2VPcHRpb25zLFxyXG4gICAgICAgICAgICBtaW5SZXNvbHV0aW9uOiBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKGxheWVyLm1heFNjYWxlKSxcclxuICAgICAgICAgICAgbWF4UmVzb2x1dGlvbjogZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShsYXllci5taW5TY2FsZSksXHJcbiAgICAgICAgICAgIG1ldGFkYXRhOiB7XHJcbiAgICAgICAgICAgICAgdXJsOiBtZXRhZGF0YVVybCxcclxuICAgICAgICAgICAgICBleHRlcm4sXHJcbiAgICAgICAgICAgICAgYWJzdHJhY3Q6IG1ldGFkYXRhQWJzdHJhY3QsXHJcbiAgICAgICAgICAgICAgdHlwZTogYmFzZVNvdXJjZU9wdGlvbnMudHlwZVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gYXMgQ2F0YWxvZ0l0ZW0pO1xyXG4gICAgICB9KVxyXG4gICAgICAuZmlsdGVyKChpdGVtOiBDYXRhbG9nSXRlbUxheWVyIHwgdW5kZWZpbmVkKSA9PiBpdGVtICE9PSB1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0ZXN0TGF5ZXJSZWdleGVzKGxheWVyTmFtZTogc3RyaW5nLCByZWdleGVzOiBSZWdFeHBbXSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHJlZ2V4ZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlZ2V4ZXMuZmluZCgocmVnZXg6IFJlZ0V4cCkgPT4gcmVnZXgudGVzdChsYXllck5hbWUpKSAhPT0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXRyaWV2ZUxheWVySW5mb0Zvcm1hdChcclxuICAgIGxheWVyTmFtZUZyb21DYXRhbG9nOiBzdHJpbmcsXHJcbiAgICBsYXllcnNRdWVyeUZvcm1hdDogeyBsYXllcjogc3RyaW5nOyBxdWVyeUZvcm1hdDogUXVlcnlGb3JtYXQgfVtdXHJcbiAgKTogUXVlcnlGb3JtYXQge1xyXG4gICAgY29uc3QgY3VycmVudExheWVySW5mb0Zvcm1hdCA9IGxheWVyc1F1ZXJ5Rm9ybWF0LmZpbmQoXHJcbiAgICAgIChmKSA9PiBmLmxheWVyID09PSBsYXllck5hbWVGcm9tQ2F0YWxvZ1xyXG4gICAgKTtcclxuICAgIGNvbnN0IGJhc2VJbmZvRm9ybWF0ID0gbGF5ZXJzUXVlcnlGb3JtYXQuZmluZCgoZikgPT4gZi5sYXllciA9PT0gJyonKTtcclxuICAgIGxldCBxdWVyeUZvcm1hdDogUXVlcnlGb3JtYXQ7XHJcbiAgICBpZiAoY3VycmVudExheWVySW5mb0Zvcm1hdCkge1xyXG4gICAgICBxdWVyeUZvcm1hdCA9IGN1cnJlbnRMYXllckluZm9Gb3JtYXQucXVlcnlGb3JtYXQ7XHJcbiAgICB9IGVsc2UgaWYgKGJhc2VJbmZvRm9ybWF0KSB7XHJcbiAgICAgIHF1ZXJ5Rm9ybWF0ID0gYmFzZUluZm9Gb3JtYXQucXVlcnlGb3JtYXQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcXVlcnlGb3JtYXQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRDYXRhbG9nSW5mb0Zvcm1hdChcclxuICAgIGNhdGFsb2c6IENhdGFsb2dcclxuICApOiB7IGxheWVyOiBzdHJpbmc7IHF1ZXJ5Rm9ybWF0OiBRdWVyeUZvcm1hdCB9W10ge1xyXG4gICAgY29uc3QgbGF5ZXJzUXVlcnlGb3JtYXQ6IHsgbGF5ZXI6IHN0cmluZzsgcXVlcnlGb3JtYXQ6IFF1ZXJ5Rm9ybWF0IH1bXSA9IFtdO1xyXG4gICAgaWYgKCFjYXRhbG9nLnF1ZXJ5Rm9ybWF0KSB7XHJcbiAgICAgIHJldHVybiBsYXllcnNRdWVyeUZvcm1hdDtcclxuICAgIH1cclxuICAgIE9iamVjdC5rZXlzKGNhdGFsb2cucXVlcnlGb3JtYXQpLmZvckVhY2goKGNvbmZpZ3VyZWRJbmZvRm9ybWF0KSA9PiB7XHJcbiAgICAgIGlmIChjYXRhbG9nLnF1ZXJ5Rm9ybWF0W2NvbmZpZ3VyZWRJbmZvRm9ybWF0XSBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgY2F0YWxvZy5xdWVyeUZvcm1hdFtjb25maWd1cmVkSW5mb0Zvcm1hdF0uZm9yRWFjaCgobGF5ZXJOYW1lKSA9PiB7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICFsYXllcnNRdWVyeUZvcm1hdC5maW5kKChzcGVjaWZpYykgPT4gc3BlY2lmaWMubGF5ZXIgPT09IGxheWVyTmFtZSlcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBsYXllcnNRdWVyeUZvcm1hdC5wdXNoKHtcclxuICAgICAgICAgICAgICBsYXllcjogbGF5ZXJOYW1lLFxyXG4gICAgICAgICAgICAgIHF1ZXJ5Rm9ybWF0OiBjb25maWd1cmVkSW5mb0Zvcm1hdCBhcyBRdWVyeUZvcm1hdFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAhbGF5ZXJzUXVlcnlGb3JtYXQuZmluZChcclxuICAgICAgICAgICAgKHNwZWNpZmljKSA9PlxyXG4gICAgICAgICAgICAgIHNwZWNpZmljLmxheWVyID09PSBjYXRhbG9nLnF1ZXJ5Rm9ybWF0W2NvbmZpZ3VyZWRJbmZvRm9ybWF0XVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgbGF5ZXJzUXVlcnlGb3JtYXQucHVzaCh7XHJcbiAgICAgICAgICAgIGxheWVyOiBjYXRhbG9nLnF1ZXJ5Rm9ybWF0W2NvbmZpZ3VyZWRJbmZvRm9ybWF0XSxcclxuICAgICAgICAgICAgcXVlcnlGb3JtYXQ6IGNvbmZpZ3VyZWRJbmZvRm9ybWF0IGFzIFF1ZXJ5Rm9ybWF0XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGxheWVyc1F1ZXJ5Rm9ybWF0O1xyXG4gIH1cclxufVxyXG4iXX0=
604
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvY2F0YWxvZy9zaGFyZWQvY2F0YWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFVaEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBUW5ELE9BQU8sRUFBVyxjQUFjLEVBQW9CLE1BQU0sb0JBQW9CLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7QUFLMUQsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFDVSxJQUFnQixFQUNoQixNQUFxQixFQUNyQixlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixtQkFBd0M7UUFKeEMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtJQUMvQyxDQUFDO0lBRUosWUFBWTtRQUNWLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNB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QkFBb0IsQ0FBQyxDQUMvRCxFQUNEO29CQUNBLGlCQUFpQixDQUFDLElBQUksQ0FBQzt3QkFDckIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUM7d0JBQ2hELFdBQVcsRUFBRSxvQkFBbUM7cUJBQ2pELENBQUMsQ0FBQztpQkFDSjthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7OzRFQXh5QlUsY0FBYztvRUFBZCxjQUFjLFdBQWQsY0FBYyxtQkFGYixNQUFNO3VGQUVQLGNBQWM7Y0FIMUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBFTVBUWSwgT2JzZXJ2YWJsZSwgb2YsIHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyB1dWlkLCBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSwgTWVzc2FnZVNlcnZpY2UsIENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcbmltcG9ydCB7XG4gIENhcGFiaWxpdGllc1NlcnZpY2UsXG4gIFdNU0RhdGFTb3VyY2VPcHRpb25zLFxuICBXTVNEYXRhU291cmNlT3B0aW9uc1BhcmFtcyxcbiAgV01UU0RhdGFTb3VyY2VPcHRpb25zLFxuICBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcbn0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBMYXllck9wdGlvbnMsIEltYWdlTGF5ZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vbGF5ZXInO1xuaW1wb3J0IHsgZ2V0UmVzb2x1dGlvbkZyb21TY2FsZSB9IGZyb20gJy4uLy4uL21hcCc7XG5cbmltcG9ydCB7XG4gIENhdGFsb2dJdGVtLFxuICBDYXRhbG9nSXRlbUxheWVyLFxuICBDYXRhbG9nSXRlbUdyb3VwLFxuICBGb3JjZWRQcm9wZXJ0eVxufSBmcm9tICcuL2NhdGFsb2cuaW50ZXJmYWNlJztcbmltcG9ydCB7IENhdGFsb2csIENhdGFsb2dGYWN0b3J5LCBDb21wb3NpdGVDYXRhbG9nIH0gZnJvbSAnLi9jYXRhbG9nLmFic3RyYWN0JztcbmltcG9ydCB7IENhdGFsb2dJdGVtVHlwZSwgVHlwZUNhdGFsb2cgfSBmcm9tICcuL2NhdGFsb2cuZW51bSc7XG5pbXBvcnQgeyBRdWVyeUZvcm1hdCB9IGZyb20gJy4uLy4uL3F1ZXJ5JztcbmltcG9ydCB7IGdlbmVyYXRlSWRGcm9tU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ2F0YWxvZ1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGNhcGFiaWxpdGllc1NlcnZpY2U6IENhcGFiaWxpdGllc1NlcnZpY2VcbiAgKSB7fVxuXG4gIGxvYWRDYXRhbG9ncygpOiBPYnNlcnZhYmxlPENhdGFsb2dbXT4ge1xuICAgIGNvbnN0IGNvbnRleHRDb25maWcgPSB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ2NvbnRleHQnKSB8fCB7fTtcbiAgICBjb25zdCBjYXRhbG9nQ29uZmlnID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdjYXRhbG9nJykgfHwge307XG4gICAgY29uc3QgYXBpVXJsID0gY2F0YWxvZ0NvbmZpZy51cmwgfHwgY29udGV4dENvbmZpZy51cmw7XG4gICAgY29uc3QgY2F0YWxvZ3NGcm9tQ29uZmlnID0gY2F0YWxvZ0NvbmZpZy5zb3VyY2VzIHx8IFtdO1xuXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMkID0gW107XG5cbiAgICBpZiAoYXBpVXJsKSB7XG4gICAgICAvLyBCYXNlIGxheWVycyBjYXRhbG9nXG4gICAgICBpZiAoY2F0YWxvZ0NvbmZpZy5iYXNlTGF5ZXJzKSB7XG4gICAgICAgIGNvbnN0IHRyYW5zbGF0ZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZTtcbiAgICAgICAgY29uc3QgdGl0bGUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5jYXRhbG9nLmJhc2VMYXllcnMnKTtcbiAgICAgICAgY29uc3QgYmFzZUxheWVyc0NhdGFsb2cgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdjYXRhbG9nLmJhc2VsYXllcnMnLFxuICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICB1cmw6IGAke2FwaVVybH0vYmFzZWxheWVyc2AsXG4gICAgICAgICAgICB0eXBlOiAnYmFzZWxheWVycydcbiAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgICAgIG9ic2VydmFibGVzJC5wdXNoKG9mKGJhc2VMYXllcnNDYXRhbG9nKSk7XG4gICAgICB9XG5cbiAgICAgIC8vIENhdGFsb2dzIGZyb20gQVBJXG4gICAgICBjb25zdCBjYXRhbG9nc0Zyb21BcGkkID0gdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8Q2F0YWxvZ1tdPihgJHthcGlVcmx9L2NhdGFsb2dzYClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChjYXRhbG9ncykgPT5cbiAgICAgICAgICAgIGNhdGFsb2dzLm1hcCgoYzogYW55KSA9PiBPYmplY3QuYXNzaWduKGMsIGMub3B0aW9ucykpXG4gICAgICAgICAgKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChfcmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBFTVBUWSlcbiAgICAgICAgKTtcbiAgICAgIG9ic2VydmFibGVzJC5wdXNoKGNhdGFsb2dzRnJvbUFwaSQpO1xuICAgIH1cblxuICAgIC8vIENhdGFsb2dzIGZyb20gY29uZmlnXG4gICAgaWYgKGNhdGFsb2dzRnJvbUNvbmZpZy5sZW5ndGggPiAwKSB7XG4gICAgICBvYnNlcnZhYmxlcyQucHVzaChcbiAgICAgICAgb2YoY2F0YWxvZ3NGcm9tQ29uZmlnKS5waXBlKFxuICAgICAgICAgIG1hcCgoY2F0YWxvZ3M6IENhdGFsb2dbXSkgPT5cbiAgICAgICAgICAgIGNhdGFsb2dzLm1hcCgoYykgPT4ge1xuICAgICAgICAgICAgICBpZiAoIWMuaWQpIHtcbiAgICAgICAgICAgICAgICBjLmlkID0gdXVpZCgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBjO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHppcCguLi5vYnNlcnZhYmxlcyQpLnBpcGUoXG4gICAgICBtYXAoKGNhdGFsb2dzOiBDYXRhbG9nW11bXSkgPT4gW10uY29uY2F0LmFwcGx5KFtdLCBjYXRhbG9ncykpXG4gICAgKSBhcyBPYnNlcnZhYmxlPENhdGFsb2dbXT47XG4gIH1cblxuICBsb2FkQ2F0YWxvZ0l0ZW1zKGNhdGFsb2c6IENhdGFsb2cpOiBPYnNlcnZhYmxlPENhdGFsb2dJdGVtW10+IHtcbiAgICBsZXQgbmV3Q2F0YWxvZzogQ2F0YWxvZztcbiAgICBuZXdDYXRhbG9nID0gQ2F0YWxvZ0ZhY3RvcnkuY3JlYXRlSW5zdGFuY2VDYXRhbG9nKGNhdGFsb2csIHRoaXMpO1xuICAgIHJldHVybiBuZXdDYXRhbG9nLmNvbGxlY3RDYXRhbG9nSXRlbXMoKTtcbiAgfVxuXG4gIGxvYWRDYXRhbG9nQmFzZUxheWVySXRlbXMoY2F0YWxvZzogQ2F0YWxvZyk6IE9ic2VydmFibGU8Q2F0YWxvZ0l0ZW1Hcm91cFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2F0YWxvZ0Jhc2VMYXllcnNPcHRpb25zKGNhdGFsb2cpLnBpcGUoXG4gICAgICBtYXAoKGxheWVyc09wdGlvbnM6IExheWVyT3B0aW9uc1tdKSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gbGF5ZXJzT3B0aW9ucy5tYXAoKGxheWVyT3B0aW9uczogTGF5ZXJPcHRpb25zKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBnZW5lcmF0ZUlkRnJvbVNvdXJjZU9wdGlvbnMobGF5ZXJPcHRpb25zLnNvdXJjZU9wdGlvbnMpLFxuICAgICAgICAgICAgdGl0bGU6IGxheWVyT3B0aW9ucy50aXRsZSxcbiAgICAgICAgICAgIHR5cGU6IENhdGFsb2dJdGVtVHlwZS5MYXllcixcbiAgICAgICAgICAgIGV4dGVybmFsUHJvdmlkZXI6IGNhdGFsb2cuZXh0ZXJuYWxQcm92aWRlcixcbiAgICAgICAgICAgIG9wdGlvbnM6IGxheWVyT3B0aW9uc1xuICAgICAgICAgIH0gYXMgQ2F0YWxvZ0l0ZW1MYXllcjtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdjYXRhbG9nLmdyb3VwLmJhc2VsYXllcnMnLFxuICAgICAgICAgICAgdHlwZTogQ2F0YWxvZ0l0ZW1UeXBlLkdyb3VwLFxuICAgICAgICAgICAgZXh0ZXJuYWxQcm92aWRlcjogY2F0YWxvZy5leHRlcm5hbFByb3ZpZGVyLFxuICAgICAgICAgICAgdGl0bGU6IGNhdGFsb2cudGl0bGUsXG4gICAgICAgICAgICBpdGVtc1xuICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2F0YWxvZ0Jhc2VMYXllcnNPcHRpb25zKFxuICAgIGNhdGFsb2c6IENhdGFsb2dcbiAgKTogT2JzZXJ2YWJsZTxMYXllck9wdGlvbnNbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PExheWVyT3B0aW9uc1tdPihjYXRhbG9nLnVybCk7XG4gIH1cblxuICBsb2FkQ2F0YWxvZ1dNU0xheWVySXRlbXMoY2F0YWxvZzogQ2F0YWxvZyk6IE9ic2VydmFibGU8Q2F0YWxvZ0l0ZW1bXT4ge1xuICAgIHJldHVybiB0aGlzLmdldENhdGFsb2dDYXBhYmlsaXRpZXMoY2F0YWxvZykucGlwZShcbiAgICAgIG1hcCgoY2FwYWJpbGl0aWVzOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSBbXTtcbiAgICAgICAgaWYgKCFjYXBhYmlsaXRpZXMpIHtcbiAgICAgICAgICByZXR1cm4gaXRlbXM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhcGFiaWxpdGllcy5TZXJ2aWNlICYmIGNhcGFiaWxpdGllcy5TZXJ2aWNlLkFic3RyYWN0ICYmIGNhcGFiaWxpdGllcy5TZXJ2aWNlLkFic3RyYWN0Lmxlbmd0aCkge1xuICAgICAgICAgIGNhdGFsb2cuYWJzdHJhY3QgPSBjYXBhYmlsaXRpZXMuU2VydmljZS5BYnN0cmFjdDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmaW5hbExheWVycyA9IFtdO1xuICAgICAgICB0aGlzLmZsYXR0ZW5XbXNDYXBhYmlsaXRpZXMoY2FwYWJpbGl0aWVzLkNhcGFiaWxpdHkuTGF5ZXIsIDAsIGZpbmFsTGF5ZXJzLCBjYXRhbG9nLmdyb3VwU2VwYXJhdG9yKTtcbiAgICAgICAgY29uc3QgY2FwYWJpbGl0aWVzQ2FwYWJpbGl0eUxheWVyID0gT2JqZWN0LmFzc2lnbih7fSwgY2FwYWJpbGl0aWVzLkNhcGFiaWxpdHkuTGF5ZXIpO1xuICAgICAgICBjYXBhYmlsaXRpZXNDYXBhYmlsaXR5TGF5ZXIuTGF5ZXIgPSBmaW5hbExheWVycy5maWx0ZXIoZiA9PiBmLkxheWVyLmxlbmd0aCAhPT0gMCk7XG4gICAgICAgIHRoaXMuaW5jbHVkZVJlY3Vyc2l2ZUl0ZW1zKFxuICAgICAgICAgIGNhdGFsb2csXG4gICAgICAgICAgY2FwYWJpbGl0aWVzQ2FwYWJpbGl0eUxheWVyLFxuICAgICAgICAgIGl0ZW1zXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBpdGVtcztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGZsYXR0ZW5XbXNDYXBhYmlsaXRpZXMocGFyZW50LCBsZXZlbCA9IDAsIGZpbmFsTGF5ZXJzLCBzZXBhcmF0b3IgPSAnIC8gJykge1xuICAgIGlmICghZmluYWxMYXllcnMuaW5jbHVkZXMocGFyZW50LlRpdGxlKSkge1xuICAgICAgICBjb25zdCBtb2RpZmllZFBhcmVudCA9IE9iamVjdC5hc3NpZ24oe30sIHBhcmVudCk7XG4gICAgICAgIG1vZGlmaWVkUGFyZW50LkxheWVyID0gW107XG4gICAgICAgIGZpbmFsTGF5ZXJzLnB1c2gobW9kaWZpZWRQYXJlbnQpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGxheWVyIG9mIHBhcmVudC5MYXllcikge1xuICAgICAgICBjb25zdCBtb2RpZmllZExheWVyID0gT2JqZWN0LmFzc2lnbih7fSwgbGF5ZXIpO1xuICAgICAgICBpZiAobGV2ZWwgPiAwKSB7XG4gICAgICAgICAgbW9kaWZpZWRMYXllci5UaXRsZSA9IHBhcmVudC5UaXRsZSArIHNlcGFyYXRvciArIGxheWVyLlRpdGxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsYXllci5MYXllcikge1xuICAgICAgICAgICAgdGhpcy5mbGF0dGVuV21zQ2FwYWJpbGl0aWVzKG1vZGlmaWVkTGF5ZXIsIGxldmVsICsgMSwgZmluYWxMYXllcnMsIHNlcGFyYXRvcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaW5hbExheWVycy5maW5kKGZmID0+IGZmLlRpdGxlID09PSBwYXJlbnQuVGl0bGUpLkxheWVyLnB1c2gobGF5ZXIpO1xuICAgICAgICAgfVxuICAgIH1cbn1cblxuICBsb2FkQ2F0YWxvZ1dNVFNMYXllckl0ZW1zKGNhdGFsb2c6IENhdGFsb2cpOiBPYnNlcnZhYmxlPENhdGFsb2dJdGVtW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRDYXRhbG9nQ2FwYWJpbGl0aWVzKGNhdGFsb2cpLnBpcGUoXG4gICAgICBtYXAoKGNhcGFiaWxpdGllczogYW55KSA9PiB0aGlzLmdldFdNVFNJdGVtcyhjYXRhbG9nLCBjYXBhYmlsaXRpZXMpKVxuICAgICk7XG4gIH1cblxuICBsb2FkQ2F0YWxvZ0FyY0dJU1Jlc3RJdGVtcyhjYXRhbG9nOiBDYXRhbG9nKTogT2JzZXJ2YWJsZTxDYXRhbG9nSXRlbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2F0YWxvZ0NhcGFiaWxpdGllcyhjYXRhbG9nKS5waXBlKFxuICAgICAgbWFwKChjYXBhYmlsaXRpZXM6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRBcmNHSVNSRVNUSXRlbXMoY2F0YWxvZywgY2FwYWJpbGl0aWVzKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGxvYWRDYXRhbG9nQ29tcG9zaXRlTGF5ZXJJdGVtcyhjYXRhbG9nOiBDYXRhbG9nKTogT2JzZXJ2YWJsZTxDYXRhbG9nSXRlbVtdPiB7XG4gICAgY29uc3QgY29tcG9zaXRlQ2F0YWxvZyA9IChjYXRhbG9nIGFzIENvbXBvc2l0ZUNhdGFsb2cpLmNvbXBvc2l0ZTtcblxuICAgIGNvbnN0IGNhdGFsb2dzRnJvbUluc3RhbmNlID0gW10gYXMgQ2F0YWxvZ1tdO1xuICAgIGNvbXBvc2l0ZUNhdGFsb2cubWFwKChjb21wb25lbnQ6IENhdGFsb2cpID0+IHtcbiAgICAgIGNvbXBvbmVudC5zb3J0RGlyZWN0aW9uID0gY2F0YWxvZy5zb3J0RGlyZWN0aW9uOyAvLyBwcm9wYWdhdGUgc29ydERpcmVjdGlvbiB3aXRoIHBhcmVudCB2YWx1ZVxuICAgICAgY2F0YWxvZ3NGcm9tSW5zdGFuY2UucHVzaChcbiAgICAgICAgQ2F0YWxvZ0ZhY3RvcnkuY3JlYXRlSW5zdGFuY2VDYXRhbG9nKGNvbXBvbmVudCwgdGhpcylcbiAgICApO1xuICB9XG4gICAgKTtcblxuICAgIC8vIGdldCBDYXRhbG9nSXRlbXMgZm9yIGVhY2ggb3JpZ2luYWwgQ2F0YWxvZy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3QgcmVxdWVzdDEkID0gW107XG4gICAgY2F0YWxvZ3NGcm9tSW5zdGFuY2UubWFwKChjb21wb25lbnQ6IENhdGFsb2cpID0+XG4gICAgICByZXF1ZXN0MSQucHVzaChjb21wb25lbnQuY29sbGVjdENhdGFsb2dJdGVtcygpKVxuICAgICk7XG5cbiAgICAvLyBpbnRlZ3JhdGUgaW1wb3NlZCBncm91cCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIGxldCByZXF1ZXN0MiQgPSBbXTtcblxuICAgIGZ1bmN0aW9uIGZsYXREZWVwTGF5ZXIoYXJyKSB7XG4gICAgICByZXR1cm4gYXJyLnJlZHVjZShcbiAgICAgICAgKGFjYywgdmFsKSA9PlxuICAgICAgICAgIGFjYy5jb25jYXQoXG4gICAgICAgICAgICB2YWwudHlwZSA9PT0gQ2F0YWxvZ0l0ZW1UeXBlLkdyb3VwID8gZmxhdERlZXBMYXllcih2YWwuaXRlbXMpIDogdmFsXG4gICAgICAgICAgKSxcbiAgICAgICAgW11cbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgT2JqZWN0LmtleXMoY29tcG9zaXRlQ2F0YWxvZykuZmluZCgoaykgPT4gY29tcG9zaXRlQ2F0YWxvZ1trXS5ncm91cEltcG9zZSlcbiAgICApIHtcbiAgICAgIGNvbnN0IHB1c2hJbXBvc2VHcm91cCA9IChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBjID0gY2F0YWxvZ3NGcm9tSW5zdGFuY2VbaW5kZXhdO1xuICAgICAgICBjb25zdCBvdXRHcm91cEltcG9zZSA9IE9iamVjdC5hc3NpZ24oe30sIGMuZ3JvdXBJbXBvc2UpO1xuICAgICAgICBvdXRHcm91cEltcG9zZS5hZGRyZXNzID0gYy5pZDtcbiAgICAgICAgb3V0R3JvdXBJbXBvc2UudHlwZSA9IENhdGFsb2dJdGVtVHlwZS5Hcm91cDtcbiAgICAgICAgb3V0R3JvdXBJbXBvc2UuZXh0ZXJuYWxQcm92aWRlciA9IGMuZXh0ZXJuYWxQcm92aWRlcjtcbiAgICAgICAgaWYgKG91dEdyb3VwSW1wb3NlLnNvcnREaXJlY3Rpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG91dEdyb3VwSW1wb3NlLnNvcnREaXJlY3Rpb24gPSBjLnNvcnREaXJlY3Rpb247XG4gICAgICAgIH1cbiAgICAgICAgb3V0R3JvdXBJbXBvc2UuaXRlbXMgPSBbXTtcblxuICAgICAgICBjb25zdCBmbGF0TGF5ZXIgPSBmbGF0RGVlcExheWVyKGl0ZW0pO1xuICAgICAgICBmbGF0TGF5ZXIubWFwKFxuICAgICAgICAgICh2KSA9PiAodi5hZGRyZXNzID0gYCR7b3V0R3JvdXBJbXBvc2UuYWRkcmVzc30uJHtvdXRHcm91cEltcG9zZS5pZH1gKVxuICAgICAgICApO1xuICAgICAgICBvdXRHcm91cEltcG9zZS5pdGVtcyA9IGZsYXRMYXllcjtcblxuICAgICAgICByZXR1cm4gb3V0R3JvdXBJbXBvc2U7XG4gICAgICB9O1xuXG4gICAgICByZXF1ZXN0MiQgPSByZXF1ZXN0MSQubWFwKChvYnMsIGlkeCkgPT5cbiAgICAgICAgb2JzLnBpcGUoXG4gICAgICAgICAgbWFwKChpdGVtcykgPT5cbiAgICAgICAgICAgIGNvbXBvc2l0ZUNhdGFsb2dbaWR4XS5ncm91cEltcG9zZVxuICAgICAgICAgICAgICA/IHB1c2hJbXBvc2VHcm91cChpdGVtcywgaWR4KVxuICAgICAgICAgICAgICA6IGl0ZW1zXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXF1ZXN0MiQgPSByZXF1ZXN0MSQ7XG4gICAgfVxuXG4gICAgLy8gY29uY2F0IEdyb3VwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3QgcmVxdWVzdDMkID0gemlwKC4uLnJlcXVlc3QyJCkucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKG91dHB1dDogQ2F0YWxvZ0l0ZW1bXSkgPT4gW10uY29uY2F0KC4uLm91dHB1dCkgLy8gW10uY29uY2F0LmFwcGx5KFtdLCByZXN1bHQxXG4gICAgICApXG4gICAgKTtcblxuICAgIC8vIG1lcmdlIEdyb3VwIChmaXJzdCBsZXZlbCBvbmx5KSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIGNvbnN0IGdyb3VwQnlHcm91cElkID0gKGRhdGEsIGtleUZuKSA9PlxuICAgICAgZGF0YS5yZWR1Y2UoKGFjYywgZ3JvdXApID0+IHtcbiAgICAgICAgY29uc3QgZ3JvdXBJZCA9IGtleUZuKGdyb3VwKTtcbiAgICAgICAgY29uc3QgaW5kID0gYWNjLmZpbmQoKHgpID0+IHguaWQgPT09IGdyb3VwSWQpO1xuXG4gICAgICAgIGlmICghaW5kKSB7XG4gICAgICAgICAgYWNjW2FjYy5sZW5ndGhdID0gZ3JvdXA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgaXggPSBhY2MuaW5kZXhPZihpbmQpO1xuICAgICAgICAgIGlmIChhY2NbaXhdLmFkZHJlc3Muc3BsaXQoJ3wnKS5pbmRleE9mKGdyb3VwLmFkZHJlc3MpID09PSAtMSkge1xuICAgICAgICAgICAgYWNjW2l4XS5hZGRyZXNzID0gYCR7YWNjW2l4XS5hZGRyZXNzfXwke2dyb3VwLmFkZHJlc3N9YDtcbiAgICAgICAgICB9XG4gICAgICAgICAgYWNjW2l4XS5pdGVtcy5wdXNoKC4uLmdyb3VwLml0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgW10pO1xuXG4gICAgLy8gbWVyZ2UgTGF5ZXIgZm9yIGVhY2ggTGV2ZWwgKGNhdGFsb2csIGdyb3VwKHJlY3Vyc2l2ZSkpXG4gICAgY29uc3QgcmVjdXJzaXZlR3JvdXBCeUxheWVyQWRkcmVzcyA9IChpdGVtcywga2V5Rm4pID0+XG4gICAgICBpdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSwgaWR4LCBhcnIpID0+IHtcbiAgICAgICAgY29uc3QgbGF5ZXJUaXRsZSA9IGtleUZuKGl0ZW0pO1xuICAgICAgICBjb25zdCBvdXRJdGVtID0gT2JqZWN0LmFzc2lnbih7fSwgaXRlbSk7XG5cbiAgICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gQ2F0YWxvZ0l0ZW1UeXBlLkxheWVyKSB7XG4gICAgICAgICAgLy8gc2FtZSB0aXRsZSwgc2FtZSBhZGRyZXNzID0+IHJlc3VsdDogb25seSBvbmUgaXRlbSBpcyBrZXB0XG5cbiAgICAgICAgICAvLyBzYW1lIHRpdGxlLCBhZGRyZXNzIGRpZmZcbiAgICAgICAgICBjb25zdCBpbmRpY2VzTWF0Y2hUaXRsZSA9IFtdO1xuICAgICAgICAgIGNvbnN0IGluZGljZXNNYXRjaE5ld01ldGFkYXRhVXJsID0gW107IC8vIG1ldGFkYXRhXG4gICAgICAgICAgY29uc3QgZGlmZkFkZHJlc3MgPSBhcnIuZmlsdGVyKCh4LCBpKSA9PiB7XG4gICAgICAgICAgICBsZXQgYkluZCA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHgudGl0bGUgPT09IGxheWVyVGl0bGUgJiYgeC50eXBlID09PSBDYXRhbG9nSXRlbVR5cGUuTGF5ZXIpIHtcbiAgICAgICAgICAgICAgaWYgKGkgIT09IGlkeCAmJiB4LmFkZHJlc3MgIT09IGl0ZW0uYWRkcmVzcykge1xuICAgICAgICAgICAgICAgIGJJbmQgPSB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGluZGljZXNNYXRjaFRpdGxlLnB1c2goaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYkluZDtcbiAgICAgICAgICB9KTsgLy8gJCYgaSAhPT0gaWR4XG5cbiAgICAgICAgICBpZiAoZGlmZkFkZHJlc3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGV0IG5Qb3NpdGlvbiA9IGluZGljZXNNYXRjaFRpdGxlLmZpbmRJbmRleCgoeCkgPT4geCA9PT0gaWR4KSArIDE7XG4gICAgICAgICAgICBvdXRJdGVtLnRpdGxlID0gYCR7aXRlbS50aXRsZX0gKCR7blBvc2l0aW9ufSlgOyAvLyBzb3VyY2U6ICR7aXRlbS5hZGRyZXNzLnNwbGl0KCcuJylbMF19XG4gICAgICAgICAgICBuUG9zaXRpb24gPSBpbmRpY2VzTWF0Y2hOZXdNZXRhZGF0YVVybC5maW5kSW5kZXgoKHgpID0+IHggPT09IGlkeCkgKyAxO1xuICAgICAgICAgICAgb3V0SXRlbS5uZXdNZXRhZGF0YVVybCA9IGAke2l0ZW0ubmV3TWV0YWRhdGFVcmx9ICgke25Qb3NpdGlvbn0pYDsgLy8gc291cmNlOiAke2l0ZW0uYWRkcmVzcy5zcGxpdCgnLicpWzBdfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGV4aXN0ID0gYWNjLmZpbmQoXG4gICAgICAgICAgICAoeCkgPT4geC50aXRsZSA9PT0gb3V0SXRlbS50aXRsZSAmJiB4LnR5cGUgPT09IENhdGFsb2dJdGVtVHlwZS5MYXllclxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKCFleGlzdCkge1xuICAgICAgICAgICAgYWNjW2FjYy5sZW5ndGhdID0gb3V0SXRlbTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09PSBDYXRhbG9nSXRlbVR5cGUuR3JvdXApIHtcbiAgICAgICAgICBvdXRJdGVtLml0ZW1zID0gcmVjdXJzaXZlR3JvdXBCeUxheWVyQWRkcmVzcyhcbiAgICAgICAgICAgIGl0ZW0uaXRlbXMsXG4gICAgICAgICAgICAobGF5ZXIpID0+IGxheWVyLnRpdGxlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBhY2NbYWNjLmxlbmd0aF0gPSBvdXRJdGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IHJlcXVlc3Q0JCA9IHJlcXVlc3QzJC5waXBlKFxuICAgICAgbWFwKChvdXRwdXQpID0+IGdyb3VwQnlHcm91cElkKG91dHB1dCwgKGdyb3VwKSA9PiBncm91cC5pZCkpLFxuICAgICAgbWFwKChvdXRwdXQpID0+IFtdLmNvbmNhdCguLi5vdXRwdXQpKSxcbiAgICAgIG1hcCgoZGF0YSkgPT4gcmVjdXJzaXZlR3JvdXBCeUxheWVyQWRkcmVzcyhkYXRhLCAobGF5ZXIpID0+IGxheWVyLnRpdGxlKSlcbiAgICApO1xuXG4gICAgcmV0dXJuIHJlcXVlc3Q0JDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2F0YWxvZ0NhcGFiaWxpdGllcyhjYXRhbG9nOiBDYXRhbG9nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBzVHlwZTogc3RyaW5nID0gVHlwZUNhdGFsb2dbY2F0YWxvZy50eXBlIGFzIHN0cmluZ107XG4gICAgcmV0dXJuIHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZVxuICAgICAgLmdldENhcGFiaWxpdGllcyhzVHlwZSBhcyBhbnksIGNhdGFsb2cudXJsLCBjYXRhbG9nLnZlcnNpb24pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoXG4gICAgICAgICAgICBjYXRhbG9nLnRpdGxlID8gJ2lnby5nZW8uY2F0YWxvZy51bmF2YWlsYWJsZScgOiAnaWdvLmdlby5jYXRhbG9nLnNvbWVVbmF2YWlsYWJsZScsXG4gICAgICAgICAgICAnaWdvLmdlby5jYXRhbG9nLnVuYXZhaWxhYmxlVGl0bGUnLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgY2F0YWxvZy50aXRsZSA/IHsgdmFsdWU6IGNhdGFsb2cudGl0bGUgfSA6IHVuZGVmaW5lZCk7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNvbXB1dGVGb3JjZWRQcm9wZXJ0aWVzKFxuICAgIGxheWVyTmFtZUZyb21DYXRhbG9nOiBzdHJpbmcsXG4gICAgZm9yY2VkUHJvcGVydGllczogRm9yY2VkUHJvcGVydHlbXSk6IEZvcmNlZFByb3BlcnR5IHtcblxuICAgIGlmICghZm9yY2VkUHJvcGVydGllcyB8fCBmb3JjZWRQcm9wZXJ0aWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZXR1cm5Qcm9wZXJ0eTogRm9yY2VkUHJvcGVydHkgPSB7XG4gICAgICBsYXllck5hbWU6IGxheWVyTmFtZUZyb21DYXRhbG9nLFxuICAgICAgdGl0bGU6IHVuZGVmaW5lZCxcbiAgICAgIG1ldGFkYXRhVXJsOiB1bmRlZmluZWQsXG4gICAgICBtZXRhZGF0YUFic3RyYWN0OiB1bmRlZmluZWQsXG4gICAgICBtZXRhZGF0YUFic3RyYWN0QWxsOiB1bmRlZmluZWQsXG4gICAgICBtZXRhZGF0YVVybEFsbDogdW5kZWZpbmVkXG4gICAgfTtcbiAgICAvL3Byb2Nlc3Mgd2lsZGNhcmQgYmVmb3JlXG4gICAgLy8gaWYgdGhlcmUgaXMgYSAqIHdpbGRjYXJkXG4gICAgY29uc3QgZm9yY2VkUHJvcGVydGllc0ZvckFsbExheWVycyA9IGZvcmNlZFByb3BlcnRpZXMuZmluZChmID0+IGYubGF5ZXJOYW1lID09PSAnKicpO1xuICAgIGlmIChmb3JjZWRQcm9wZXJ0aWVzRm9yQWxsTGF5ZXJzKSB7XG4gICAgICAvLyBtZXRhZGF0YUFic3RyYWN0QWxsXG4gICAgICBpZiAoZm9yY2VkUHJvcGVydGllc0ZvckFsbExheWVycy5tZXRhZGF0YUFic3RyYWN0QWxsKSB7XG4gICAgICAgIHJldHVyblByb3BlcnR5Lm1ldGFkYXRhQWJzdHJhY3RBbGwgPSBmb3JjZWRQcm9wZXJ0aWVzRm9yQWxsTGF5ZXJzLm1ldGFkYXRhQWJzdHJhY3RBbGw7XG4gICAgICB9XG4gICAgICAvLyBtZXRhZGF0YVVybEFsbFxuICAgICAgaWYgKGZvcmNlZFByb3BlcnRpZXNGb3JBbGxMYXllcnMubWV0YWRhdGFVcmxBbGwpIHtcbiAgICAgICAgcmV0dXJuUHJvcGVydHkubWV0YWRhdGFVcmxBbGwgPSBmb3JjZWRQcm9wZXJ0aWVzRm9yQWxsTGF5ZXJzLm1ldGFkYXRhVXJsQWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3JjZWRQcm9wZXJ0aWVzLm1hcChmb3JjZWRQcm9wZXJ0eSA9PiB7XG4gICAgICAvLyBpZiBtYXRjaCBmb3VuZFxuICAgICAgaWYgKGxheWVyTmFtZUZyb21DYXRhbG9nID09PSBmb3JjZWRQcm9wZXJ0eS5sYXllck5hbWUpIHtcbiAgICAgICAgLy8gdGl0bGVcbiAgICAgICAgaWYgKGZvcmNlZFByb3BlcnR5LnRpdGxlKSB7XG4gICAgICAgICAgcmV0dXJuUHJvcGVydHkudGl0bGUgPSBmb3JjZWRQcm9wZXJ0eS50aXRsZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBtZXRhZGF0YVVybFxuICAgICAgICBpZiAoZm9yY2VkUHJvcGVydHkubWV0YWRhdGFVcmwpIHtcbiAgICAgICAgICByZXR1cm5Qcm9wZXJ0eS5tZXRhZGF0YVVybCA9IGZvcmNlZFByb3BlcnR5Lm1ldGFkYXRhVXJsO1xuICAgICAgICB9XG4gICAgICAgIC8vIG1ldGFkYXRhQWJzdHJhY3RcbiAgICAgICAgaWYgKGZvcmNlZFByb3BlcnR5Lm1ldGFkYXRhQWJzdHJhY3QpIHtcbiAgICAgICAgICByZXR1cm5Qcm9wZXJ0eS5tZXRhZGF0YUFic3RyYWN0ID0gZm9yY2VkUHJvcGVydHkubWV0YWRhdGFBYnN0cmFjdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXR1cm5Qcm9wZXJ0eTtcbiAgfVxuXG4gIC8vLyBXTVNcblxuICBwcml2YXRlIHByZXBhcmVDYXRhbG9nSXRlbUxheWVyKGxheWVyLCBpZFBhcmVudCwgbGF5ZXJzUXVlcnlGb3JtYXQsIGNhdGFsb2cpIHtcbiAgICBjb25zdCBjb25maWd1cmVkUXVlcnlGb3JtYXQgPSB0aGlzLnJldHJpZXZlTGF5ZXJJbmZvRm9ybWF0KFxuICAgICAgbGF5ZXIuTmFtZSxcbiAgICAgIGxheWVyc1F1ZXJ5Rm9ybWF0XG4gICAgKTtcblxuICAgIGNvbnN0IGxlZ2VuZE9wdGlvbnMgPVxuICAgICAgY2F0YWxvZy5zaG93TGVnZW5kICYmIGxheWVyLlN0eWxlXG4gICAgICAgID8gdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldFN0eWxlKGxheWVyLlN0eWxlKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe30sIGNhdGFsb2cucXVlcnlQYXJhbXMsIHtcbiAgICAgIExBWUVSUzogbGF5ZXIuTmFtZSxcbiAgICAgIFZFUlNJT046IGNhdGFsb2cudmVyc2lvblxuICAgIH0gYXMgV01TRGF0YVNvdXJjZU9wdGlvbnNQYXJhbXMpO1xuXG4gICAgY29uc3QgYmFzZVNvdXJjZU9wdGlvbnMgPSB7XG4gICAgICB0eXBlOiAnd21zJyxcbiAgICAgIHVybDogY2F0YWxvZy51cmwsXG4gICAgICBjcm9zc09yaWdpbjogY2F0YWxvZy5zZXRDcm9zc09yaWdpbkFub255bW91cyA/ICdhbm9ueW1vdXMnIDogdW5kZWZpbmVkLFxuICAgICAgcXVlcnlGb3JtYXQ6IGNvbmZpZ3VyZWRRdWVyeUZvcm1hdCxcbiAgICAgIHF1ZXJ5SHRtbFRhcmdldDpcbiAgICAgICAgY29uZmlndXJlZFF1ZXJ5Rm9ybWF0ID09PSBRdWVyeUZvcm1hdC5IVE1MIHx8XG4gICAgICAgIGNvbmZpZ3VyZWRRdWVyeUZvcm1hdCA9PT0gUXVlcnlGb3JtYXQuSFRNTEdNTDJcbiAgICAgICAgICA/ICdpZnJhbWUnXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBvcHRpb25zRnJvbUNhcGFiaWxpdGllczogdHJ1ZVxuICAgIH07XG5cbiAgICBjb25zdCBzb3VyY2VPcHRpb25zID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgYmFzZVNvdXJjZU9wdGlvbnMsXG4gICAgICBjYXRhbG9nLnNvdXJjZU9wdGlvbnMsXG4gICAgICB7IHBhcmFtcyB9XG4gICAgKSBhcyBXTVNEYXRhU291cmNlT3B0aW9ucztcblxuICAgIGNvbnN0IHByb3BlcnRpZXNUb0ZvcmNlID0gdGhpcy5jb21wdXRlRm9yY2VkUHJvcGVydGllcyhsYXllci5OYW1lLCBjYXRhbG9nLmZvcmNlZFByb3BlcnRpZXMpO1xuICAgIGxldCBiYXNlQWJzdHJhY3Q7XG4gICAgbGV0IGV4dGVybiA9IHRydWU7XG4gICAgaWYgKGxheWVyLkFic3RyYWN0KSB7XG4gICAgICBiYXNlQWJzdHJhY3QgPSBsYXllci5BYnN0cmFjdDtcbiAgICB9IGVsc2UgaWYgKCFsYXllci5BYnN0cmFjdCAmJiBjYXRhbG9nLmFic3RyYWN0KSB7XG4gICAgICBiYXNlQWJzdHJhY3QgPSBjYXRhbG9nLmFic3RyYWN0O1xuICAgIH1cbiAgICBjb25zdCBsYXllck9ubGluZVJlc291cmNlID0gbGF5ZXI/LkRhdGFVUkwgJiYgbGF5ZXI/LkRhdGFVUkwubGVuZ3RoID4wID8gbGF5ZXI/LkRhdGFVUkxbMF0uT25saW5lUmVzb3VyY2UgOiB1bmRlZmluZWQ7XG5cbiAgICBsZXQgbWV0YWRhdGFVcmwgPSBwcm9wZXJ0aWVzVG9Gb3JjZT8ubWV0YWRhdGFVcmwgfHwgcHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhVXJsQWxsIHx8IGxheWVyT25saW5lUmVzb3VyY2U7XG4gICAgbGV0IG1ldGFkYXRhQWJzdHJhY3QgPSBwcm9wZXJ0aWVzVG9Gb3JjZT8ubWV0YWRhdGFBYnN0cmFjdCB8fCBwcm9wZXJ0aWVzVG9Gb3JjZT8ubWV0YWRhdGFBYnN0cmFjdEFsbCB8fCBiYXNlQWJzdHJhY3Q7XG5cbiAgICBpZiAoXG4gICAgICAhcHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhVXJsICYmXG4gICAgICAhcHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhVXJsQWxsICYmXG4gICAgICAocHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhQWJzdHJhY3QgfHxcbiAgICAgICAgcHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhQWJzdHJhY3RBbGwpXG4gICAgKSB7XG4gICAgICBleHRlcm4gPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHByb3BlcnRpZXNUb0ZvcmNlPy5tZXRhZGF0YUFic3RyYWN0ICYmIHByb3BlcnRpZXNUb0ZvcmNlPy5tZXRhZGF0YVVybEFsbCkge1xuICAgICAgZXh0ZXJuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgbGF5ZXJQcmVwYXJlID0ge1xuICAgICAgaWQ6IGdlbmVyYXRlSWRGcm9tU291cmNlT3B0aW9ucyhzb3VyY2VPcHRpb25zKSxcbiAgICAgIHR5cGU6IENhdGFsb2dJdGVtVHlwZS5MYXllcixcbiAgICAgIHRpdGxlOiBwcm9wZXJ0aWVzVG9Gb3JjZT8udGl0bGUgPyBwcm9wZXJ0aWVzVG9Gb3JjZS50aXRsZSA6IGxheWVyLlRpdGxlLFxuICAgICAgYWRkcmVzczogaWRQYXJlbnQsXG4gICAgICBleHRlcm5hbFByb3ZpZGVyOiBjYXRhbG9nLmV4dGVybmFsUHJvdmlkZXIgfHwgZmFsc2UsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIG1heFJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUobGF5ZXIuTWF4U2NhbGVEZW5vbWluYXRvciksXG4gICAgICAgIG1pblJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUobGF5ZXIuTWluU2NhbGVEZW5vbWluYXRvciksXG4gICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgdXJsOiBtZXRhZGF0YVVybCxcbiAgICAgICAgICBleHRlcm4sXG4gICAgICAgICAgYWJzdHJhY3Q6IG1ldGFkYXRhQWJzdHJhY3QsXG4gICAgICAgICAgdHlwZTogYmFzZVNvdXJjZU9wdGlvbnMudHlwZVxuICAgICAgICB9LFxuICAgICAgICBsZWdlbmRPcHRpb25zLFxuICAgICAgICB0b29sdGlwOiB7IHR5cGU6IGNhdGFsb2cudG9vbHRpcFR5cGUgfSxcbiAgICAgICAgc291cmNlT3B0aW9uc1xuICAgICAgfVxuICAgIH0gYXMgQ2F0YWxvZ0l0ZW07XG5cbiAgICByZXR1cm4gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKGxheWVyUHJlcGFyZSk7XG4gIH1cblxuICBwcml2YXRlIHByZXBhcmVDYXRhbG9nSXRlbUdyb3VwKFxuICAgIGl0ZW1MaXN0SW4sXG4gICAgcmVnZXhlcyxcbiAgICBpZEdyb3VwLFxuICAgIGxheWVyc1F1ZXJ5Rm9ybWF0LFxuICAgIGNhdGFsb2dcbiAgKSB7XG4gICAgY29uc3QgZ3JvdXBQcmVwYXJlID0ge1xuICAgICAgaWQ6IGlkR3JvdXAsXG4gICAgICB0eXBlOiBDYXRhbG9nSXRlbVR5cGUuR3JvdXAsXG4gICAgICB0aXRsZTogaXRlbUxpc3RJbi5UaXRsZSxcbiAgICAgIGFkZHJlc3M6IGNhdGFsb2cuaWQsXG4gICAgICBleHRlcm5hbFByb3ZpZGVyOiBjYXRhbG9nLmV4dGVybmFsUHJvdmlkZXIgfHwgZmFsc2UsXG4gICAgICBzb3J0RGlyZWN0aW9uOiBjYXRhbG9nLnNvcnREaXJlY3Rpb24sIC8vIHByb3BhZ2F0ZSBzb3J0RGlyZWN0aW9uXG4gICAgICBpdGVtczogaXRlbUxpc3RJbi5MYXllci5yZWR1Y2UoKGl0ZW1zOiBDYXRhbG9nSXRlbVtdLCBsYXllcjogYW55KSA9PiB7XG4gICAgICAgIGlmIChsYXllci5MYXllciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gcmVjdXJzaXZlLCBjaGVjayBuZXh0IGxldmVsXG4gICAgICAgICAgY29uc3QgaWRHcm91cEl0ZW1OZXh0TGV2ZWwgPVxuICAgICAgICAgICAgaWRHcm91cCArIGAuZ3JvdXAuJHtsYXllci5OYW1lIHx8IGxheWVyLkxheWVyWzBdLk5hbWV9YDtcbiAgICAgICAgICBjb25zdCBncm91cEl0ZW06IENhdGFsb2dJdGVtR3JvdXAgPSB0aGlzLnByZXBhcmVDYXRhbG9nSXRlbUdyb3VwKFxuICAgICAgICAgICAgbGF5ZXIsXG4gICAgICAgICAgICByZWdleGVzLFxuICAgICAgICAgICAgaWRHcm91cEl0ZW1OZXh0TGV2ZWwsXG4gICAgICAgICAgICBsYXllcnNRdWVyeUZvcm1hdCxcbiAgICAgICAgICAgIGNhdGFsb2dcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaXRlbXMucHVzaChncm91cEl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLnRlc3RMYXllclJlZ2V4ZXMobGF5ZXIuTmFtZSwgcmVnZXhlcykgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbXM7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgbGF5ZXJJdGVtOiBDYXRhbG9nSXRlbUxheWVyPEltYWdlTGF5ZXJPcHRpb25zPiA9IHRoaXMucHJlcGFyZUNhdGFsb2dJdGVtTGF5ZXIoXG4gICAgICAgICAgICBsYXllcixcbiAgICAgICAgICAgIGlkR3JvdXAsXG4gICAgICAgICAgICBsYXllcnNRdWVyeUZvcm1hdCxcbiAgICAgICAgICAgIGNhdGFsb2dcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaXRlbXMucHVzaChsYXllckl0ZW0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpdGVtcztcbiAgICAgIH0sIFtdKVxuICAgIH07XG4gICAgcmV0dXJuIGdyb3VwUHJlcGFyZTtcbiAgfVxuXG4gIHByaXZhdGUgaW5jbHVkZVJlY3Vyc2l2ZUl0ZW1zKFxuICAgIGNhdGFsb2c6IENhdGFsb2csXG4gICAgaXRlbUxpc3RJbjogYW55LFxuICAgIGl0ZW1zUHJlcGFyZTogQ2F0YWxvZ0l0ZW1bXSxcbiAgICBsb29wTGV2ZWw6IG51bWJlciA9IDBcbiAgKSB7XG4gICAgLy8gRGlnIGFsbCBsZXZlbHMgdW50aWwgbGFzdCBsZXZlbCAobGF5ZXIgb2JqZWN0IGFyZSBub3QgZGVmaW5lZCBvbiBsYXN0IGxldmVsKVxuICAgIGNvbnN0IHJlZ2V4ZXMgPSAoY2F0YWxvZy5yZWdGaWx0ZXJzIHx8IFtdKS5tYXAoXG4gICAgICAocGF0dGVybjogc3RyaW5nKSA9PiBuZXcgUmVnRXhwKHBhdHRlcm4pXG4gICAgKTtcbiAgICBpZiAoIWl0ZW1MaXN0SW4uTGF5ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbUxpc3RJbi5MYXllcikge1xuICAgICAgaWYgKGl0ZW0uTGF5ZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyByZWN1cnNpdmUsIGNoZWNrIG5leHQgbGV2ZWxcbiAgICAgICAgdGhpcy5pbmNsdWRlUmVjdXJzaXZlSXRlbXMoY2F0YWxvZywgaXRlbSwgaXRlbXNQcmVwYXJlLCBsb29wTGV2ZWwgKyAxKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxheWVyc1F1ZXJ5Rm9ybWF0ID0gdGhpcy5maW5kQ2F0YWxvZ0luZm9Gb3JtYXQoY2F0YWxvZyk7XG5cbiAgICAgIC8vIGdyb3VwKHdpdGggbGF5ZXJzKSBhbmQgbGF5ZXIod2l0aG91dCBncm91cCkgbGV2ZWwgMVxuICAgICAgaWYgKGxvb3BMZXZlbCAhPT0gMCkge1xuICAgICAgICAvLyBUT0RPOiBTbGljZSB0aGF0IGludG8gbXVsdGlwbGUgbWV0aG9kc1xuICAgICAgICAvLyBEZWZpbmUgb2JqZWN0IG9mIGdyb3VwIGxheWVyXG4gICAgICAgIGNvbnN0IGlkR3JvdXBJdGVtID0gYGNhdGFsb2cuZ3JvdXAuJHtpdGVtTGlzdEluLk5hbWUgfHwgaXRlbS5OYW1lfWA7XG4gICAgICAgIGNvbnN0IGdyb3VwSXRlbSA9IHRoaXMucHJlcGFyZUNhdGFsb2dJdGVtR3JvdXAoXG4gICAgICAgICAgaXRlbUxpc3RJbixcbiAgICAgICAgICByZWdleGVzLFxuICAgICAgICAgIGlkR3JvdXBJdGVtLFxuICAgICAgICAgIGxheWVyc1F1ZXJ5Rm9ybWF0LFxuICAgICAgICAgIGNhdGFsb2dcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoZ3JvdXBJdGVtLml0ZW1zLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgIGl0ZW1zUHJlcGFyZS5wdXNoKGdyb3VwSXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBCcmVhayB0aGUgZ3JvdXAgKGRvbid0IGFkZCBhIGdyb3VwIG9mIGxheWVyIGZvciBlYWNoIG9mIHRoZWlyIGxheWVyISlcbiAgICAgICAgYnJlYWs7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBsYXllciB3aXRob3V0IGdyb3VwXG4gICAgICAgIGlmICh0aGlzLnRlc3RMYXllclJlZ2V4ZXMoaXRlbS5OYW1lLCByZWdleGVzKSAhPT0gZmFsc2UpIHtcbiAgICAgICAgICBjb25zdCBsYXllckl0ZW0gPSB0aGlzLnByZXBhcmVDYXRhbG9nSXRlbUxheWVyKFxuICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgIGNhdGFsb2cuaWQsXG4gICAgICAgICAgICBsYXllcnNRdWVyeUZvcm1hdCxcbiAgICAgICAgICAgIGNhdGFsb2dcbiAgICAgICAgICApO1xuICAgICAgICAgIGl0ZW1zUHJlcGFyZS5wdXNoKGxheWVySXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLy8gV01UU1xuXG4gIHByaXZhdGUgZ2V0V01UU0l0ZW1zKFxuICAgIGNhdGFsb2csXG4gICAgY2FwYWJpbGl0aWVzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9XG4gICk6IENhdGFsb2dJdGVtTGF5ZXJbXSB7XG4gICAgaWYgKCFjYXBhYmlsaXRpZXMpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3QgbGF5ZXJzID0gY2FwYWJpbGl0aWVzLkNvbnRlbnRzLkxheWVyO1xuICAgIGNvbnN0IHJlZ2V4ZXMgPSAoY2F0YWxvZy5yZWdGaWx0ZXJzIHx8IFtdKS5tYXAoXG4gICAgICAocGF0dGVybjogc3RyaW5nKSA9PiBuZXcgUmVnRXhwKHBhdHRlcm4pXG4gICAgKTtcblxuICAgIGlmIChcbiAgICAgIGNhcGFiaWxpdGllcy5TZXJ2aWNlSWRlbnRpZmljYXRpb24gJiZcbiAgICAgIGNhcGFiaWxpdGllcy5TZXJ2aWNlSWRlbnRpZmljYXRpb24uQWJzdHJhY3QgJiZcbiAgICAgIGNhcGFiaWxpdGllcy5TZXJ2aWNlSWRlbnRpZmljYXRpb24uQWJzdHJhY3QubGVuZ3RoKSB7XG4gICAgICBjYXRhbG9nLmFic3RyYWN0ID0gY2FwYWJpbGl0aWVzLlNlcnZpY2VJZGVudGlmaWNhdGlvbi5BYnN0cmFjdDtcbiAgICB9XG5cbiAgICByZXR1cm4gbGF5ZXJzXG4gICAgICAubWFwKChsYXllcjogYW55KSA9PiB7XG5cbiAgICAgICAgY29uc3QgcHJvcGVydGllc1RvRm9yY2UgPSB0aGlzLmNvbXB1dGVGb3JjZWRQcm9wZXJ0aWVzKGxheWVyLlRpdGxlLCBjYXRhbG9nLmZvcmNlZFByb3BlcnRpZXMpO1xuICAgICAgICBsZXQgZXh0ZXJuID0gdHJ1ZTtcblxuICAgICAgICBsZXQgbWV0YWRhdGFVcmwgPSBwcm9wZXJ0aWVzVG9Gb3JjZT8ubWV0YWRhdGFVcmwgfHwgcHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhVXJsQWxsO1xuICAgICAgICBsZXQgbWV0YWRhdGFBYnN0cmFjdCA9IHByb3BlcnRpZXNUb0ZvcmNlPy5tZXRhZGF0YUFic3RyYWN0IHx8IHByb3BlcnRpZXNUb0ZvcmNlPy5tZXRhZGF0YUFic3RyYWN0QWxsIHx8IGNhdGFsb2cuYWJzdHJhY3Q7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICFwcm9wZXJ0aWVzVG9Gb3JjZT8ubWV0YWRhdGFVcmwgJiZcbiAgICAgICAgICAhcHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhVXJsQWxsICYmXG4gICAgICAgICAgKHByb3BlcnRpZXNUb0ZvcmNlPy5tZXRhZGF0YUFic3RyYWN0IHx8XG4gICAgICAgICAgICBwcm9wZXJ0aWVzVG9Gb3JjZT8ubWV0YWRhdGFBYnN0cmFjdEFsbClcbiAgICAgICAgKSB7XG4gICAgICAgICAgZXh0ZXJuID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb3BlcnRpZXNUb0ZvcmNlPy5tZXRhZGF0YUFic3RyYWN0ICYmIHByb3BlcnRpZXNUb0ZvcmNlPy5tZXRhZGF0YVVybEFsbCkge1xuICAgICAgICAgIGV4dGVybiA9IGZhbHNlO1xuICAgICAgICB9XG5cblxuICAgICAgaWYgKHRoaXMudGVzdExheWVyUmVnZXhlcyhsYXllci5JZGVudGlmaWVyLCByZWdleGVzKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe30sIGNhdGFsb2cucXVlcnlQYXJhbXMsIHtcbiAgICAgICAgdmVyc2lvbjogJzEuMC4wJ1xuICAgICAgfSk7XG4gICAgICBjb25zdCBiYXNlU291cmNlT3B0aW9ucyA9IHtcbiAgICAgICAgdHlwZTogJ3dtdHMnLFxuICAgICAgICB1cmw6IGNhdGFsb2cudXJsLFxuICAgICAgICBjcm9zc09yaWdpbjogY2F0YWxvZy5zZXRDcm9zc09yaWdpbkFub255bW91c1xuICAgICAgICAgID8gJ2Fub255bW91cydcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgbGF5ZXI6IGxheWVyLklkZW50aWZpZXIsXG4gICAgICAgIG1hdHJpeFNldDogY2F0YWxvZy5tYXRyaXhTZXQsXG4gICAgICAgIG9wdGlvbnNGcm9tQ2FwYWJpbGl0aWVzOiB0cnVlLFxuICAgICAgICByZXF1ZXN0RW5jb2Rpbmc6IGNhdGFsb2cucmVxdWVzdEVuY29kaW5nIHx8ICdLVlAnLFxuICAgICAgICBzdHlsZTogJ2RlZmF1bHQnXG4gICAgICB9IGFzIFdNVFNEYXRhU291cmNlT3B0aW9ucztcbiAgICAgIGNvbnN0IHNvdXJjZU9wdGlvbnMgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICB7fSxcbiAgICAgICAgYmFzZVNvdXJjZU9wdGlvbnMsXG4gICAgICAgIGNhdGFsb2cuc291cmNlT3B0aW9ucyxcbiAgICAgICAgeyBwYXJhbXMgfVxuICAgICAgKSBhcyBXTVRTRGF0YVNvdXJjZU9wdGlvbnM7XG5cbiAgICAgIHJldHVybiBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xuICAgICAgICBpZDogZ2VuZXJhdGVJZEZyb21Tb3VyY2VPcHRpb25zKHNvdXJjZU9wdGlvbnMpLFxuICAgICAgICB0eXBlOiBDYXRhbG9nSXRlbVR5cGUuTGF5ZXIsXG4gICAgICAgIHRpdGxlOiBwcm9wZXJ0aWVzVG9Gb3JjZT8udGl0bGUgPyBwcm9wZXJ0aWVzVG9Gb3JjZS50aXRsZSA6IGxheWVyLlRpdGxlLFxuICAgICAgICBhZGRyZXNzOiBjYXRhbG9nLmlkLFxuICAgICAgICBleHRlcm5hbFByb3ZpZGVyOiBjYXRhbG9nLmV4dGVybmFsUHJvdmlkZXIsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3VyY2VPcHRpb25zLFxuICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICB1cmw6IG1ldGFkYXRhVXJsLFxuICAgICAgICAgICAgZXh0ZXJuLFxuICAgICAgICAgICAgYWJzdHJhY3Q6IG1ldGFkYXRhQWJzdHJhY3QsXG4gICAgICAgICAgICB0eXBlOiBiYXNlU291cmNlT3B0aW9ucy50eXBlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGFzIENhdGFsb2dJdGVtKTtcbiAgICB9KVxuICAgIC5maWx0ZXIoKGl0ZW06IENhdGFsb2dJdGVtTGF5ZXIgfCB1bmRlZmluZWQpID0+IGl0ZW0gIT09IHVuZGVmaW5lZCk7XG59XG5cbi8vLyBFUlNJXG5cbiAgcHJpdmF0ZSBnZXRBcmNHSVNSRVNUSXRlbXMoXG4gICAgY2F0YWxvZyxcbiAgICBjYXBhYmlsaXRpZXNcbiAgKTogQ2F0YWxvZ0l0ZW1MYXllcltdIHtcbiAgICBpZiAoIWNhcGFiaWxpdGllcykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBjb25zdCBsYXllcnMgPVxuICAgICFjYXBhYmlsaXRpZXMubGF5ZXJzID8gW10gOiBjYXBhYmlsaXRpZXMubGF5ZXJzLmZpbHRlcihsYXllciA9PiAhbGF5ZXIudHlwZSB8fCBsYXllci50eXBlID09PSAnRmVhdHVyZSBMYXllcicpO1xuICAgIGlmICghY2FwYWJpbGl0aWVzLmxheWVycykge1xuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcbiAgICAgICAgJ2lnby5nZW8uY2F0YWxvZy5zb21lVW5hdmFpbGFibGUnLFxuICAgICAgICAnaWdvLmdlby5jYXRhbG9nLnVuYXZhaWxhYmxlVGl0bGUnKTtcbiAgICB9XG5cbiAgICBjb25zdCByZWdleGVzID0gKGNhdGFsb2cucmVnRmlsdGVycyB8fCBbXSkubWFwKFxuICAgICAgKHBhdHRlcm46IHN0cmluZykgPT4gbmV3IFJlZ0V4cChwYXR0ZXJuKVxuICAgICk7XG5cbiAgICBsZXQgYWJzdHJhY3Q7XG4gICAgaWYgKGNhcGFiaWxpdGllcy5zZXJ2aWNlRGVzY3JpcHRpb24gJiYgY2FwYWJpbGl0aWVzLnNlcnZpY2VEZXNjcmlwdGlvbi5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHJlZ2V4ID0gLyg8KFtePl0rKT4pL2lnO1xuICAgICAgYWJzdHJhY3QgPSBjYXBhYmlsaXRpZXMuc2VydmljZURlc2NyaXB0aW9uLnJlcGxhY2UocmVnZXgsICcnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbGF5ZXJzXG4gICAgICAubWFwKChsYXllcjogYW55KSA9PiB7XG5cbiAgICAgICAgY29uc3QgcHJvcGVydGllc1RvRm9yY2UgPSB0aGlzLmNvbXB1dGVGb3JjZWRQcm9wZXJ0aWVzKGxheWVyLm5hbWUsIGNhdGFsb2cuZm9yY2VkUHJvcGVydGllcyk7XG4gICAgICAgIGxldCBiYXNlQWJzdHJhY3Q7XG4gICAgICAgIGxldCBleHRlcm4gPSB0cnVlO1xuICAgICAgICBpZiAobGF5ZXIuQWJzdHJhY3QpIHtcbiAgICAgICAgICBiYXNlQWJzdHJhY3QgPSBsYXllci5BYnN0cmFjdDtcbiAgICAgICAgfSBlbHNlIGlmICghbGF5ZXIuQWJzdHJhY3QgJiYgY2F0YWxvZy5hYnN0cmFjdCkge1xuICAgICAgICAgIGJhc2VBYnN0cmFjdCA9IGNhdGFsb2cuYWJzdHJhY3Q7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbWV0YWRhdGFVcmwgPSBwcm9wZXJ0aWVzVG9Gb3JjZT8ubWV0YWRhdGFVcmwgfHwgcHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhVXJsQWxsO1xuICAgICAgICBsZXQgbWV0YWRhdGFBYnN0cmFjdCA9IHByb3BlcnRpZXNUb0ZvcmNlPy5tZXRhZGF0YUFic3RyYWN0IHx8IHByb3BlcnRpZXNUb0ZvcmNlPy5tZXRhZGF0YUFic3RyYWN0QWxsIHx8IGJhc2VBYnN0cmFjdDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgIXByb3BlcnRpZXNUb0ZvcmNlPy5tZXRhZGF0YVVybCAmJlxuICAgICAgICAgICFwcm9wZXJ0aWVzVG9Gb3JjZT8ubWV0YWRhdGFVcmxBbGwgJiZcbiAgICAgICAgICAocHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhQWJzdHJhY3QgfHxcbiAgICAgICAgICAgIHByb3BlcnRpZXNUb0ZvcmNlPy5tZXRhZGF0YUFic3RyYWN0QWxsKVxuICAgICAgICApIHtcbiAgICAgICAgICBleHRlcm4gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhQWJzdHJhY3QgJiYgcHJvcGVydGllc1RvRm9yY2U/Lm1ldGFkYXRhVXJsQWxsKSB7XG4gICAgICAgICAgZXh0ZXJuID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50ZXN0TGF5ZXJSZWdleGVzKGxheWVyLmlkLCByZWdleGVzKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJhc2VTb3VyY2VPcHRpb25zID0ge1xuICAgICAgICAgIHR5cGU6IFR5cGVDYXRhbG9nW2NhdGFsb2cudHlwZV0sXG4gICAgICAgICAgdXJsOiBjYXRhbG9nLnVybCxcbiAgICAgICAgICBjcm9zc09yaWdpbjogY2F0YWxvZy5zZXRDcm9zc09yaWdpbkFub255bW91c1xuICAgICAgICAgICAgPyAnYW5vbnltb3VzJ1xuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgbGF5ZXI6IGxheWVyLmlkIGFzIHN0cmluZyxcbiAgICAgICAgICBxdWVyeWFibGU6IHRydWUsXG4gICAgICAgICAgcXVlcnlGb3JtYXQ6ICdlc3JpanNvbicsXG4gICAgICAgICAgbWF0cml4U2V0OiBjYXRhbG9nLm1hdHJpeFNldCxcbiAgICAgICAgICBvcHRpb25zRnJvbUNhcGFiaWxpdGllczogdHJ1ZSxcbiAgICAgICAgICBzdHlsZTogJ2RlZmF1bHQnXG4gICAgICAgIH0gYXMgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zO1xuICAgICAgICBjb25zdCBzb3VyY2VPcHRpb25zID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICB7fSxcbiAgICAgICAgICBiYXNlU291cmNlT3B0aW9ucyxcbiAgICAgICAgICBjYXRhbG9nLnNvdXJjZU9wdGlvbnNcbiAgICAgICAgKSBhcyBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnM7XG4gICAgICAgIHJldHVybiBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xuICAgICAgICAgIGlkOiBnZW5lcmF0ZUlkRnJvbVNvdXJjZU9wdGlvbnMoc291cmNlT3B0aW9ucyksXG4gICAgICAgICAgdHlwZTogQ2F0YWxvZ0l0ZW1UeXBlLkxheWVyLFxuICAgICAgICAgIHRpdGxlOiBwcm9wZXJ0aWVzVG9Gb3JjZT8udGl0bGUgPyBwcm9wZXJ0aWVzVG9Gb3JjZS50aXRsZSA6IGxheWVyLm5hbWUsXG4gICAgICAgICAgZXh0ZXJuYWxQcm92aWRlcjogY2F0YWxvZy5leHRlcm5hbFByb3ZpZGVyLFxuICAgICAgICAgIGFkZHJlc3M6IGNhdGFsb2cuaWQsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgc291cmNlT3B0aW9ucyxcbiAgICAgICAgICAgIG1pblJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUobGF5ZXIubWF4U2NhbGUpLFxuICAgICAgICAgICAgbWF4UmVzb2x1dGlvbjogZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShsYXllci5taW5TY2FsZSksXG4gICAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgICB1cmw6IG1ldGFkYXRhVXJsLFxuICAgICAgICAgICAgICBleHRlcm4sXG4gICAgICAgICAgICAgIGFic3RyYWN0OiBtZXRhZGF0YUFic3RyYWN0LFxuICAgICAgICAgICAgICB0eXBlOiBiYXNlU291cmNlT3B0aW9ucy50eXBlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfSBhcyBDYXRhbG9nSXRlbSk7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigoaXRlbTogQ2F0YWxvZ0l0ZW1MYXllciB8IHVuZGVmaW5lZCkgPT4gaXRlbSAhPT0gdW5kZWZpbmVkKTtcbiAgfVxuXG4gIHByaXZhdGUgdGVzdExheWVyUmVnZXhlcyhsYXllck5hbWU6IHN0cmluZywgcmVnZXhlczogUmVnRXhwW10pOiBib29sZWFuIHtcbiAgICBpZiAocmVnZXhlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gcmVnZXhlcy5maW5kKChyZWdleDogUmVnRXhwKSA9PiByZWdleC50ZXN0KGxheWVyTmFtZSkpICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHJldHJpZXZlTGF5ZXJJbmZvRm9ybWF0KFxuICAgIGxheWVyTmFtZUZyb21DYXRhbG9nOiBzdHJpbmcsXG4gICAgbGF5ZXJzUXVlcnlGb3JtYXQ6IHsgbGF5ZXI6IHN0cmluZzsgcXVlcnlGb3JtYXQ6IFF1ZXJ5Rm9ybWF0IH1bXVxuICApOiBRdWVyeUZvcm1hdCB7XG4gICAgY29uc3QgY3VycmVudExheWVySW5mb0Zvcm1hdCA9IGxheWVyc1F1ZXJ5Rm9ybWF0LmZpbmQoXG4gICAgICAoZikgPT4gZi5sYXllciA9PT0gbGF5ZXJOYW1lRnJvbUNhdGFsb2dcbiAgICApO1xuICAgIGNvbnN0IGJhc2VJbmZvRm9ybWF0ID0gbGF5ZXJzUXVlcnlGb3JtYXQuZmluZCgoZikgPT4gZi5sYXllciA9PT0gJyonKTtcbiAgICBsZXQgcXVlcnlGb3JtYXQ6IFF1ZXJ5Rm9ybWF0O1xuICAgIGlmIChjdXJyZW50TGF5ZXJJbmZvRm9ybWF0KSB7XG4gICAgICBxdWVyeUZvcm1hdCA9IGN1cnJlbnRMYXllckluZm9Gb3JtYXQucXVlcnlGb3JtYXQ7XG4gICAgfSBlbHNlIGlmIChiYXNlSW5mb0Zvcm1hdCkge1xuICAgICAgcXVlcnlGb3JtYXQgPSBiYXNlSW5mb0Zvcm1hdC5xdWVyeUZvcm1hdDtcbiAgICB9XG4gICAgcmV0dXJuIHF1ZXJ5Rm9ybWF0O1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kQ2F0YWxvZ0luZm9Gb3JtYXQoXG4gICAgY2F0YWxvZzogQ2F0YWxvZ1xuICApOiB7IGxheWVyOiBzdHJpbmc7IHF1ZXJ5Rm9ybWF0OiBRdWVyeUZvcm1hdCB9W10ge1xuICAgIGNvbnN0IGxheWVyc1F1ZXJ5Rm9ybWF0OiB7IGxheWVyOiBzdHJpbmc7IHF1ZXJ5Rm9ybWF0OiBRdWVyeUZvcm1hdCB9W10gPSBbXTtcbiAgICBpZiAoIWNhdGFsb2cucXVlcnlGb3JtYXQpIHtcbiAgICAgIHJldHVybiBsYXllcnNRdWVyeUZvcm1hdDtcbiAgICB9XG4gICAgT2JqZWN0LmtleXMoY2F0YWxvZy5xdWVyeUZvcm1hdCkuZm9yRWFjaCgoY29uZmlndXJlZEluZm9Gb3JtYXQpID0+IHtcbiAgICAgIGlmIChjYXRhbG9nLnF1ZXJ5Rm9ybWF0W2NvbmZpZ3VyZWRJbmZvRm9ybWF0XSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgIGNhdGFsb2cucXVlcnlGb3JtYXRbY29uZmlndXJlZEluZm9Gb3JtYXRdLmZvckVhY2goKGxheWVyTmFtZSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFsYXllcnNRdWVyeUZvcm1hdC5maW5kKChzcGVjaWZpYykgPT4gc3BlY2lmaWMubGF5ZXIgPT09IGxheWVyTmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGxheWVyc1F1ZXJ5Rm9ybWF0LnB1c2goe1xuICAgICAgICAgICAgICBsYXllcjogbGF5ZXJOYW1lLFxuICAgICAgICAgICAgICBxdWVyeUZvcm1hdDogY29uZmlndXJlZEluZm9Gb3JtYXQgYXMgUXVlcnlGb3JtYXRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWxheWVyc1F1ZXJ5Rm9ybWF0LmZpbmQoXG4gICAgICAgICAgICAoc3BlY2lmaWMpID0+XG4gICAgICAgICAgICAgIHNwZWNpZmljLmxheWVyID09PSBjYXRhbG9nLnF1ZXJ5Rm9ybWF0W2NvbmZpZ3VyZWRJbmZvRm9ybWF0XVxuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgbGF5ZXJzUXVlcnlGb3JtYXQucHVzaCh7XG4gICAgICAgICAgICBsYXllcjogY2F0YWxvZy5xdWVyeUZvcm1hdFtjb25maWd1cmVkSW5mb0Zvcm1hdF0sXG4gICAgICAgICAgICBxdWVyeUZvcm1hdDogY29uZmlndXJlZEluZm9Gb3JtYXQgYXMgUXVlcnlGb3JtYXRcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBsYXllcnNRdWVyeUZvcm1hdDtcbiAgfVxufVxuIl19
@@ -19,4 +19,4 @@ IgoDataSourceModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
19
19
  declarations: []
20
20
  }]
21
21
  }], null, null); })();
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL2RhdGFzb3VyY2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDOztBQU85RCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxtQkFBbUI7WUFDN0IsU0FBUyxFQUFFLEVBQUU7U0FDZCxDQUFDO0lBQ0osQ0FBQzs7c0ZBTlUsbUJBQW1CO3FFQUFuQixtQkFBbUI7O3VGQUFuQixtQkFBbUI7Y0FML0IsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRSxFQUFFO2dCQUNYLE9BQU8sRUFBRSxFQUFFO2dCQUNYLFlBQVksRUFBRSxFQUFFO2FBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW10sXHJcbiAgZXhwb3J0czogW10sXHJcbiAgZGVjbGFyYXRpb25zOiBbXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSWdvRGF0YVNvdXJjZU1vZHVsZSB7XHJcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxJZ29EYXRhU291cmNlTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogSWdvRGF0YVNvdXJjZU1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL2RhdGFzb3VyY2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDOztBQU85RCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxtQkFBbUI7WUFDN0IsU0FBUyxFQUFFLEVBQUU7U0FDZCxDQUFDO0lBQ0osQ0FBQzs7c0ZBTlUsbUJBQW1CO3FFQUFuQixtQkFBbUI7O3VGQUFuQixtQkFBbUI7Y0FML0IsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRSxFQUFFO2dCQUNYLE9BQU8sRUFBRSxFQUFFO2dCQUNYLFlBQVksRUFBRSxFQUFFO2FBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW10sXG4gIGV4cG9ydHM6IFtdLFxuICBkZWNsYXJhdGlvbnM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIElnb0RhdGFTb3VyY2VNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPElnb0RhdGFTb3VyY2VNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IElnb0RhdGFTb3VyY2VNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtdXG4gICAgfTtcbiAgfVxufVxuIl19