geonetwork-ui 2.4.0-dev.573bccd7 → 2.4.0-dev.5cc37149

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 (324) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +2 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/index.mjs +2 -1
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.mjs +2 -0
  4. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +1 -1
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.mjs +1 -1
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +1 -1
  8. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +14 -5
  9. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +2 -1
  10. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +3 -1
  11. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +12 -4
  12. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +38 -14
  13. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  14. package/esm2022/libs/common/domain/src/lib/model/record/organization.model.mjs +1 -1
  15. package/esm2022/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.mjs +1 -1
  16. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  17. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  18. package/esm2022/libs/data-access/gn4/src/openapi/model/user.api.model.mjs +1 -1
  19. package/esm2022/libs/feature/catalog/src/index.mjs +2 -1
  20. package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +1 -1
  21. package/esm2022/libs/feature/catalog/src/lib/organisations/organisations.component.mjs +6 -6
  22. package/esm2022/libs/feature/catalog/src/lib/organization-url.token.mjs +4 -0
  23. package/esm2022/libs/feature/catalog/src/lib/records/records.service.mjs +4 -6
  24. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +4 -4
  25. package/esm2022/libs/feature/dataviz/src/lib/feature-dataviz.module.mjs +7 -4
  26. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +1 -1
  27. package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +2 -1
  28. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +6 -4
  29. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +2 -1
  30. package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +2 -2
  31. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +59 -0
  32. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +64 -50
  33. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +17 -35
  34. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
  35. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +4 -3
  36. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +12 -5
  37. package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +12 -6
  38. package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +42 -23
  39. package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +13 -5
  40. package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +49 -15
  41. package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +7 -4
  42. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +3 -3
  43. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +8 -12
  44. package/esm2022/libs/feature/router/src/lib/default/constants.mjs +2 -1
  45. package/esm2022/libs/feature/router/src/lib/default/router.config.mjs +1 -1
  46. package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +9 -2
  47. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +8 -1
  48. package/esm2022/libs/feature/search/src/index.mjs +2 -2
  49. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +7 -4
  50. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +3 -3
  51. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +49 -0
  52. package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +3 -2
  53. package/esm2022/libs/feature/search/src/lib/state/selectors.mjs +4 -1
  54. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +7 -3
  55. package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +5 -5
  56. package/esm2022/libs/ui/catalog/src/lib/ui-catalog.module.mjs +5 -2
  57. package/esm2022/libs/ui/dataviz/src/lib/figure/figure.component.mjs +5 -8
  58. package/esm2022/libs/ui/elements/src/index.mjs +1 -2
  59. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
  60. package/esm2022/libs/ui/elements/src/lib/error/error.component.mjs +5 -3
  61. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +7 -7
  62. package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +24 -5
  63. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +9 -11
  64. package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
  65. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +59 -26
  66. package/esm2022/libs/ui/inputs/src/lib/badge/badge.component.mjs +28 -0
  67. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +11 -10
  68. package/esm2022/libs/ui/layout/src/index.mjs +2 -1
  69. package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +71 -0
  70. package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +1 -1
  71. package/esm2022/libs/ui/search/src/index.mjs +2 -1
  72. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +120 -0
  73. package/esm2022/libs/ui/widgets/src/index.mjs +1 -2
  74. package/esm2022/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.mjs +5 -3
  75. package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +1 -6
  76. package/esm2022/translations/de.json +66 -34
  77. package/esm2022/translations/en.json +37 -5
  78. package/esm2022/translations/es.json +37 -5
  79. package/esm2022/translations/fr.json +38 -6
  80. package/esm2022/translations/it.json +37 -5
  81. package/esm2022/translations/nl.json +37 -5
  82. package/esm2022/translations/pt.json +37 -5
  83. package/fesm2022/geonetwork-ui.mjs +1188 -688
  84. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  85. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
  86. package/libs/api/metadata-converter/src/lib/gn4/types/index.d.ts +1 -0
  87. package/libs/api/metadata-converter/src/lib/gn4/types/index.d.ts.map +1 -1
  88. package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts +31 -0
  89. package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts.map +1 -0
  90. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +1 -0
  91. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  92. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +3 -2
  93. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  94. package/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.d.ts +1 -1
  95. package/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.d.ts.map +1 -1
  96. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +3 -2
  97. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  98. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +1 -0
  99. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  100. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.d.ts.map +1 -1
  101. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
  102. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts +3 -3
  103. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
  104. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -5
  105. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  106. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +4 -7
  107. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  108. package/libs/common/domain/src/lib/model/record/organization.model.d.ts +1 -0
  109. package/libs/common/domain/src/lib/model/record/organization.model.d.ts.map +1 -1
  110. package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts +12 -5
  111. package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts.map +1 -1
  112. package/libs/common/domain/src/lib/platform.service.interface.d.ts +4 -3
  113. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  114. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +3 -1
  115. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  116. package/libs/data-access/gn4/src/openapi/model/user.api.model.d.ts +1 -1
  117. package/libs/feature/catalog/src/index.d.ts +1 -0
  118. package/libs/feature/catalog/src/index.d.ts.map +1 -1
  119. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +1 -1
  120. package/libs/feature/catalog/src/lib/organisations/organisations.component.d.ts.map +1 -1
  121. package/libs/feature/catalog/src/lib/organization-url.token.d.ts +3 -0
  122. package/libs/feature/catalog/src/lib/organization-url.token.d.ts.map +1 -0
  123. package/libs/feature/catalog/src/lib/records/records.service.d.ts.map +1 -1
  124. package/libs/feature/dataviz/src/lib/feature-dataviz.module.d.ts +2 -1
  125. package/libs/feature/dataviz/src/lib/feature-dataviz.module.d.ts.map +1 -1
  126. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +1 -0
  127. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
  128. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +1 -1
  129. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
  130. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +1 -0
  131. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
  132. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts +25 -0
  133. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -0
  134. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts +6 -6
  135. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts.map +1 -1
  136. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +6 -10
  137. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  138. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
  139. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  140. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  141. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  142. package/libs/feature/editor/src/lib/services/editor.service.d.ts +1 -1
  143. package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
  144. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +4 -1
  145. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
  146. package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts +4 -1
  147. package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts.map +1 -1
  148. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +4 -1
  149. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
  150. package/libs/feature/record/src/lib/feature-record.module.d.ts +2 -1
  151. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  152. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  153. package/libs/feature/router/src/lib/default/constants.d.ts +1 -0
  154. package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
  155. package/libs/feature/router/src/lib/default/router.config.d.ts +1 -0
  156. package/libs/feature/router/src/lib/default/router.config.d.ts.map +1 -1
  157. package/libs/feature/router/src/lib/default/router.service.d.ts +1 -0
  158. package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
  159. package/libs/feature/router/src/lib/default/state/router.facade.d.ts +1 -0
  160. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  161. package/libs/feature/search/src/index.d.ts +1 -1
  162. package/libs/feature/search/src/index.d.ts.map +1 -1
  163. package/libs/feature/search/src/lib/feature-search.module.d.ts +2 -1
  164. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  165. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  166. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +25 -0
  167. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -0
  168. package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -0
  169. package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
  170. package/libs/feature/search/src/lib/state/selectors.d.ts +1 -0
  171. package/libs/feature/search/src/lib/state/selectors.d.ts.map +1 -1
  172. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  173. package/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.d.ts +2 -2
  174. package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts +2 -1
  175. package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts.map +1 -1
  176. package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts +1 -2
  177. package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts.map +1 -1
  178. package/libs/ui/elements/src/index.d.ts +0 -1
  179. package/libs/ui/elements/src/index.d.ts.map +1 -1
  180. package/libs/ui/elements/src/lib/error/error.component.d.ts +3 -1
  181. package/libs/ui/elements/src/lib/error/error.component.d.ts.map +1 -1
  182. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +5 -1
  183. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +1 -1
  184. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +19 -19
  185. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  186. package/libs/ui/inputs/src/index.d.ts +1 -0
  187. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  188. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +7 -4
  189. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  190. package/libs/ui/inputs/src/lib/badge/badge.component.d.ts +11 -0
  191. package/libs/ui/inputs/src/lib/badge/badge.component.d.ts.map +1 -0
  192. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +35 -35
  193. package/libs/ui/layout/src/index.d.ts +1 -0
  194. package/libs/ui/layout/src/index.d.ts.map +1 -1
  195. package/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.d.ts +2 -2
  196. package/libs/ui/layout/src/lib/max-lines/max-lines.component.d.ts.map +1 -0
  197. package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +1 -1
  198. package/libs/ui/search/src/index.d.ts +1 -0
  199. package/libs/ui/search/src/index.d.ts.map +1 -1
  200. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +30 -0
  201. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -0
  202. package/libs/ui/widgets/src/index.d.ts +0 -1
  203. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  204. package/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.d.ts +1 -1
  205. package/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.d.ts.map +1 -1
  206. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +10 -11
  207. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +1 -1
  208. package/package.json +1 -1
  209. package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +1 -0
  210. package/src/libs/api/metadata-converter/src/lib/gn4/types/index.ts +1 -0
  211. package/src/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.ts +31 -0
  212. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +1 -0
  213. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +2 -2
  214. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.ts +1 -1
  215. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +2 -2
  216. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +21 -8
  217. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +1 -0
  218. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +3 -1
  219. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +25 -4
  220. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +81 -21
  221. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +4 -9
  222. package/src/libs/common/domain/src/lib/model/record/organization.model.ts +1 -0
  223. package/src/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.ts +13 -6
  224. package/src/libs/common/domain/src/lib/platform.service.interface.ts +7 -3
  225. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +4 -1
  226. package/src/libs/common/fixtures/src/lib/organisations.fixture.ts +28 -0
  227. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +8 -0
  228. package/src/libs/data-access/datafeeder/src/openapi/model/datasetMetadata.api.model.ts +4 -0
  229. package/src/libs/data-access/datafeeder/src/openapi/model/datasetUploadStatus.api.model.ts +2 -0
  230. package/src/libs/data-access/gn4/src/openapi/model/user.api.model.ts +1 -1
  231. package/src/libs/feature/catalog/src/index.ts +1 -0
  232. package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +0 -1
  233. package/src/libs/feature/catalog/src/lib/organisations/organisations.component.html +1 -1
  234. package/src/libs/feature/catalog/src/lib/organisations/organisations.component.ts +2 -2
  235. package/src/libs/feature/catalog/src/lib/organization-url.token.ts +6 -0
  236. package/src/libs/feature/catalog/src/lib/records/records.service.ts +6 -8
  237. package/src/libs/feature/dataviz/src/lib/feature-dataviz.module.ts +2 -1
  238. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +2 -0
  239. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +35 -29
  240. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +1 -0
  241. package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +1 -1
  242. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.html +19 -0
  243. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +79 -0
  244. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +95 -86
  245. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +7 -22
  246. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +16 -44
  247. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -1
  248. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +2 -1
  249. package/src/libs/feature/editor/src/lib/fields.config.ts +11 -4
  250. package/src/libs/feature/editor/src/lib/services/editor.service.ts +20 -6
  251. package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +36 -19
  252. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.html +6 -2
  253. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.ts +11 -0
  254. package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +59 -12
  255. package/src/libs/feature/record/src/lib/feature-record.module.ts +3 -2
  256. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +42 -31
  257. package/src/libs/feature/router/src/lib/default/constants.ts +1 -0
  258. package/src/libs/feature/router/src/lib/default/router.config.ts +1 -0
  259. package/src/libs/feature/router/src/lib/default/router.service.ts +13 -1
  260. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +9 -1
  261. package/src/libs/feature/search/src/index.ts +1 -1
  262. package/src/libs/feature/search/src/lib/feature-search.module.ts +2 -1
  263. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +2 -2
  264. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +9 -0
  265. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +49 -0
  266. package/src/libs/feature/search/src/lib/state/search.facade.ts +5 -0
  267. package/src/libs/feature/search/src/lib/state/selectors.ts +7 -0
  268. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +16 -2
  269. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.html +8 -6
  270. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.ts +2 -2
  271. package/src/libs/ui/catalog/src/lib/ui-catalog.module.ts +2 -0
  272. package/src/libs/ui/dataviz/src/lib/figure/figure.component.html +11 -3
  273. package/src/libs/ui/dataviz/src/lib/figure/figure.component.ts +3 -7
  274. package/src/libs/ui/elements/src/index.ts +0 -1
  275. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +29 -29
  276. package/src/libs/ui/elements/src/lib/error/error.component.html +30 -6
  277. package/src/libs/ui/elements/src/lib/error/error.component.ts +2 -0
  278. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +1 -1
  279. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +22 -1
  280. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +4 -6
  281. package/src/libs/ui/inputs/src/index.ts +1 -0
  282. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.css +0 -1
  283. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +23 -19
  284. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +79 -27
  285. package/src/libs/ui/inputs/src/lib/badge/badge.component.html +18 -0
  286. package/src/libs/ui/inputs/src/lib/badge/badge.component.ts +27 -0
  287. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.css +31 -0
  288. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.html +15 -0
  289. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +38 -0
  290. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +3 -3
  291. package/src/libs/ui/layout/src/index.ts +1 -0
  292. package/src/libs/ui/layout/src/lib/max-lines/max-lines.component.css +0 -0
  293. package/src/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.html +1 -0
  294. package/src/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.ts +9 -5
  295. package/src/libs/ui/layout/src/lib/ui-layout.module.ts +0 -1
  296. package/src/libs/ui/search/src/index.ts +1 -0
  297. package/src/libs/ui/search/src/lib/results-table/results-table.component.css +0 -0
  298. package/src/libs/{feature → ui}/search/src/lib/results-table/results-table.component.html +8 -8
  299. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +138 -0
  300. package/src/libs/ui/widgets/src/index.ts +0 -1
  301. package/src/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.ts +4 -0
  302. package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +0 -3
  303. package/translations/de.json +66 -34
  304. package/translations/en.json +37 -5
  305. package/translations/es.json +37 -5
  306. package/translations/fr.json +38 -6
  307. package/translations/it.json +37 -5
  308. package/translations/nl.json +37 -5
  309. package/translations/pt.json +37 -5
  310. package/translations/sk.json +38 -6
  311. package/esm2022/libs/feature/search/src/lib/results-table/results-table.component.mjs +0 -136
  312. package/esm2022/libs/ui/elements/src/lib/max-lines/max-lines.component.mjs +0 -69
  313. package/esm2022/libs/ui/widgets/src/lib/badge/badge.component.mjs +0 -18
  314. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts +0 -36
  315. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts.map +0 -1
  316. package/libs/ui/elements/src/lib/max-lines/max-lines.component.d.ts.map +0 -1
  317. package/libs/ui/widgets/src/lib/badge/badge.component.d.ts +0 -7
  318. package/libs/ui/widgets/src/lib/badge/badge.component.d.ts.map +0 -1
  319. package/src/libs/feature/search/src/lib/results-table/results-table.component.ts +0 -172
  320. package/src/libs/ui/widgets/src/lib/badge/badge.component.html +0 -10
  321. package/src/libs/ui/widgets/src/lib/badge/badge.component.ts +0 -14
  322. /package/src/libs/feature/{search/src/lib/results-table/results-table.component.css → editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.css} +0 -0
  323. /package/src/libs/{ui/elements/src/lib/max-lines/max-lines.component.css → feature/search/src/lib/results-table/results-table-container.component.css} +0 -0
  324. /package/src/libs/ui/{widgets → inputs}/src/lib/badge/badge.component.css +0 -0
@@ -67,10 +67,11 @@ export const mapKeywords = (thesauri, language) => {
67
67
  keywords.push({
68
68
  label: selectTranslatedValue(keyword, language),
69
69
  type: getKeywordTypeFromKeywordTypeCode(rawThesaurus.theme),
70
+ ...(keyword.link && { key: keyword.link }),
70
71
  ...(thesaurus && { thesaurus }),
71
72
  });
72
73
  }
73
74
  }
74
75
  return keywords;
75
76
  };
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvbWljLW9wZXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9nbjQvYXRvbWljLW9wZXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFFbkUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFJcEYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQ3pCLE1BQThCLEVBQzlCLFNBQWlCLEVBQ1AsRUFBRSxDQUNaLE1BQU0sS0FBSyxJQUFJLElBQUksU0FBUyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7QUFFMUUsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FDbEMsTUFBOEIsRUFDOUIsR0FBRyxVQUFvQixFQUNiLEVBQUUsQ0FDWixVQUFVLENBQUMsTUFBTSxDQUNmLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFDbEUsSUFBSSxDQUNMLENBQUE7QUFFSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBTyxLQUFRLEVBQUUsUUFBVyxFQUFTLEVBQUUsQ0FDbkUsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFFbkMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FDbkMsTUFBOEIsRUFDOUIsS0FBYSxFQUNILEVBQUUsQ0FDWixjQUFjLENBQUMsV0FBVyxDQUFDLE1BQU0s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LFdBQVcsQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtZQUMxRCxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ2xELFNBQVMsR0FBRztnQkFDVixFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQUU7Z0JBQ25CLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDckIsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO2FBQ3BCLENBQUE7U0FDRjtRQUNELEtBQUssTUFBTSxPQUFPLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRTtZQUMzQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNaLEtBQUssRUFBRSxxQkFBcUIsQ0FBUyxPQUFPLEVBQUUsUUFBUSxDQUFDO2dCQUN2RCxJQUFJLEVBQUUsaUNBQWlDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztnQkFDM0QsR0FBRyxDQUFDLFNBQVMsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO2FBQ2hDLENBQUMsQ0FBQTtTQUNIO0tBQ0Y7SUFFRCxPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmRpdmlkdWFsLFxuICBPcmdhbml6YXRpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IGdldFJvbGVGcm9tUm9sZUNvZGUgfSBmcm9tICcuLi9pc28xOTEzOS91dGlscy9yb2xlLm1hcHBlcidcbmltcG9ydCB7IFRoZXNhdXJ1cyB9IGZyb20gJy4vdHlwZXMnXG5pbXBvcnQgeyBnZXRLZXl3b3JkVHlwZUZyb21LZXl3b3JkVHlwZUNvZGUgfSBmcm9tICcuLi9pc28xOTEzOS91dGlscy9rZXl3b3JkLm1hcHBlcidcblxuZXhwb3J0IHR5cGUgU291cmNlV2l0aFVua25vd25Qcm9wcyA9IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RGaWVsZCA9IDxUPihcbiAgc291cmNlOiBTb3VyY2VXaXRoVW5rbm93blByb3BzLFxuICBmaWVsZE5hbWU6IHN0cmluZ1xuKTogVCB8IG51bGwgPT5cbiAgc291cmNlICE9PSBudWxsICYmIGZpZWxkTmFtZSBpbiBzb3VyY2UgPyAoc291cmNlW2ZpZWxkTmFtZV0gYXMgVCkgOiBudWxsXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RGYWxsYmFja0ZpZWxkcyA9IDxUPihcbiAgc291cmNlOiBTb3VyY2VXaXRoVW5rbm93blByb3BzLFxuICAuLi5maWVsZE5hbWVzOiBzdHJpbmdbXVxuKTogVCB8IG51bGwgPT5cbiAgZmllbGROYW1lcy5yZWR1Y2U8VD4oXG4gICAgKHByZXYsIGN1cnIpID0+IChwcmV2ID09PSBudWxsID8gc2VsZWN0RmllbGQoc291cmNlLCBjdXJyKSA6IHByZXYpLFxuICAgIG51bGxcbiAgKVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0RmFsbGJhY2sgPSA8VCwgVT4oZmllbGQ6IFQsIGZhbGxiYWNrOiBVKTogVCB8IFUgPT5cbiAgZmllbGQgPT09IG51bGwgPyBmYWxsYmFjayA6IGZpZWxkXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RUcmFuc2xhdGVkVmFsdWUgPSA8VD4oXG4gIHNvdXJjZTogU291cmNlV2l0aFVua25vd25Qcm9wcyxcbiAgbGFuZzM6IHN0cmluZ1xuKTogVCB8IG51bGwgPT5cbiAgc2VsZWN0RmFsbGJhY2soc2VsZWN0RmllbGQoc291cmNlLCBsYW5nMyksIHNlbGVjdEZpZWxkKHNvdXJjZSwgJ2RlZmF1bHQnKSlcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFRyYW5zbGF0ZWRGaWVsZCA9IDxUPihcbiAgc291cmNlOiBTb3VyY2VXaXRoVW5rbm93blByb3BzLFxuICBmaWVsZE5hbWU6IHN0cmluZyxcbiAgbGFuZzM6IHN0cmluZ1xuKTogVCB8IG51bGwgPT4gc2VsZWN0VHJhbnNsYXRlZFZhbHVlKHNlbGVjdEZpZWxkKHNvdXJjZSwgZmllbGROYW1lKSwgbGFuZzMpXG5cbmV4cG9ydCBjb25zdCB0b0RhdGUgPSAoZmllbGQpID0+IG5ldyBEYXRlKGZpZWxkKVxuXG5leHBvcnQgY29uc3QgZ2V0Rmlyc3RWYWx1ZSA9IChmaWVsZCkgPT5cbiAgQXJyYXkuaXNBcnJheShmaWVsZCkgPyBmaWVsZFswXSA6IGZpZWxkXG5cbmV4cG9ydCBjb25zdCBnZXRBcnJheUl0ZW0gPSAoZmllbGQsIGluZGV4KSA9PlxuICBBcnJheS5pc0FycmF5KGZpZWxkKSAmJiBmaWVsZFtpbmRleF0gIT09IHVuZGVmaW5lZCA/IGZpZWxkW2luZGV4XSA6IG51bGxcblxuZXhwb3J0IGNvbnN0IGdldEFzQXJyYXkgPSAoZmllbGQpID0+XG4gIEFycmF5LmlzQXJyYXkoZmllbGQpID8gZmllbGQgOiBmaWVsZCAhPT0gbnVsbCA/IFtmaWVsZF0gOiBbXVxuXG5leHBvcnQgY29uc3QgZ2V0QXNVcmwgPSAoXG4gIGZpZWxkLFxuICBsb2NhdGlvbjogc3RyaW5nID0gd2luZG93LmxvY2F0aW9uLnRvU3RyaW5nKClcbikgPT4ge1xuICAvLyBhbiBlbXB0eSBzdHJpbmcgaXMgbm90IGEgdmFsaWQgdXJsLCBldmVuIHRob3VnaCBpdCBjb3VsZCBiZSBjb25zaWRlcmVkIGFuIGVtcHR5IHBhdGggdG8gdGhlIHJvb3RcbiAgaWYgKGZpZWxkID09PSAnJyB8fCBmaWVsZCA9PT0gbnVsbCkgcmV0dXJuIG51bGxcbiAgbGV0IHVybCA9IGZpZWxkXG4gIGlmIChmaWVsZC5tYXRjaCgvXnd3d1xcLi8pKSB1cmwgPSBgaHR0cHM6Ly8ke2ZpZWxkfWBcbiAgdHJ5IHtcbiAgICByZXR1cm4gbmV3IFVSTCh1cmwsIGxvY2F0aW9uKVxuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBtYXBMb2dvID0gKHNvdXJjZTogU291cmNlV2l0aFVua25vd25Qcm9wcykgPT4ge1xuICBjb25zdCBsb2dvID0gc2VsZWN0RmFsbGJhY2tGaWVsZHMoc291cmNlLCAnbG9nb1VybCcsICdsb2dvJylcbiAgcmV0dXJuIGxvZ28gPyBnZXRBc1VybChgL2dlb25ldHdvcmske2xvZ299YCkgOiBudWxsXG59XG5cbmV4cG9ydCBjb25zdCBtYXBPcmdhbml6YXRpb24gPSAoXG4gIHNvdXJjZUNvbnRhY3Q6IFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG4gIGxhbmczOiBzdHJpbmdcbik6IE9yZ2FuaXphdGlvbiA9PiB7XG4gIGNvbnN0IHdlYnNpdGUgPSBnZXRBc1VybChzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICd3ZWJzaXRlJykpXG4gIGNvbnN0IGxvZ29VcmwgPSBnZXRBc1VybChzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdsb2dvJykpXG4gIHJldHVybiB7XG4gICAgbmFtZTogc2VsZWN0RmFsbGJhY2soXG4gICAgICBzZWxlY3RUcmFuc2xhdGVkRmllbGQ8c3RyaW5nPihzb3VyY2VDb250YWN0LCAnb3JnYW5pc2F0aW9uT2JqZWN0JywgbGFuZzMpLFxuICAgICAgc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2VDb250YWN0LCAnb3JnYW5pc2F0aW9uJylcbiAgICApLFxuICAgIC4uLihsb2dvVXJsICYmIHsgbG9nb1VybCB9KSxcbiAgICAuLi4od2Vic2l0ZSAmJiB7IHdlYnNpdGUgfSksXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG1hcENvbnRhY3QgPSAoXG4gIHNvdXJjZUNvbnRhY3Q6IFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG4gIGxhbmczOiBzdHJpbmdcbik6IEluZGl2aWR1YWwgPT4ge1xuICBjb25zdCBhZGRyZXNzID0gc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2VDb250YWN0LCAnYWRkcmVzcycpXG4gIGNvbnN0IHBob25lID0gc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2VDb250YWN0LCAncGhvbmUnKVxuICByZXR1cm4ge1xuICAgIGxhc3ROYW1lOiBzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdpbmRpdmlkdWFsJyksXG4gICAgb3JnYW5pemF0aW9uOiBtYXBPcmdhbml6YXRpb24oc291cmNlQ29udGFjdCwgbGFuZzMpLFxuICAgIGVtYWlsOiBzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdlbWFpbCcpLFxuICAgIHJvbGU6IGdldFJvbGVGcm9tUm9sZUNvZGUoc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2VDb250YWN0LCAncm9sZScpKSxcbiAgICAuLi4oYWRkcmVzcyAmJiB7IGFkZHJlc3MgfSksXG4gICAgLi4uKHBob25lICYmIHsgcGhvbmUgfSksXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG1hcEtleXdvcmRzID0gKHRoZXNhdXJpOiBUaGVzYXVydXNbXSwgbGFuZ3VhZ2U6IHN0cmluZykgPT4ge1xuICBjb25zdCBrZXl3b3JkcyA9IFtdXG4gIGZvciAoY29uc3QgdGhlc2F1cnVzSWQgaW4gdGhlc2F1cmkpIHtcbiAgICBjb25zdCByYXdUaGVzYXVydXMgPSB0aGVzYXVyaVt0aGVzYXVydXNJZF1cbiAgICBsZXQgdGhlc2F1cnVzID0gbnVsbFxuICAgIGlmIChyYXdUaGVzYXVydXMuaWQpIHtcbiAgICAgIGNvbnN0IHRoZXNhdXJ1c1NvdXJjZTogU291cmNlV2l0aFVua25vd25Qcm9wcyA9IHsgLi4ucmF3VGhlc2F1cnVzIH1cbiAgICAgIGNvbnN0IHVybCA9IGdldEFzVXJsKHNlbGVjdEZpZWxkKHRoZXNhdXJ1c1NvdXJjZSwgJ2xpbmsnKSlcbiAgICAgIGNvbnN0IG5hbWUgPSBzZWxlY3RGaWVsZCh0aGVzYXVydXNTb3VyY2UsICd0aXRsZScpXG4gICAgICB0aGVzYXVydXMgPSB7XG4gICAgICAgIGlkOiByYXdUaGVzYXVydXMuaWQsXG4gICAgICAgIC4uLihuYW1lICYmIHsgbmFtZSB9KSxcbiAgICAgICAgLi4uKHVybCAmJiB7IHVybCB9KSxcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBrZXl3b3JkIG9mIHJhd1RoZXNhdXJ1cy5rZXl3b3Jkcykge1xuICAgICAga2V5d29yZHMucHVzaCh7XG4gICAgICAgIGxhYmVsOiBzZWxlY3RUcmFuc2xhdGVkVmFsdWU8c3RyaW5nPihrZXl3b3JkLCBsYW5ndWFnZSksXG4gICAgICAgIHR5cGU6IGdldEtleXdvcmRUeXBlRnJvbUtleXdvcmRUeXBlQ29kZShyYXdUaGVzYXVydXMudGhlbWUpLFxuICAgICAgICAuLi4odGhlc2F1cnVzICYmIHsgdGhlc2F1cnVzIH0pLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4ga2V5d29yZHNcbn1cbiJdfQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvbWljLW9wZXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9nbjQvYXRvbWljLW9wZXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFFbkUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFJcEYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQ3pCLE1BQThCLEVBQzlCLFNBQWlCLEVBQ1AsRUFBRSxDQUNaLE1BQU0sS0FBSyxJQUFJLElBQUksU0FBUyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7QUFFMUUsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FDbEMsTUFBOEIsRUFDOUIsR0FBRyxVQUFvQixFQUNiLEVBQUUsQ0FDWixVQUFVLENBQUMsTUFBTSxDQUNmLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFDbEUsSUFBSSxDQUNMLENBQUE7QUFFSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBTyxLQUFRLEVBQUUsUUFBVyxFQUFTLEVBQUUsQ0FDbkUsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFFbkMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FDbkMsTUFBOEIsRUFDOUIsS0FBYSxFQUNILEVBQUUsQ0FDWixjQUFjLENBQUMsV0FBVyxDQUFDLE1BQU0s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LFdBQVcsQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtZQUMxRCxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ2xELFNBQVMsR0FBRztnQkFDVixFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQUU7Z0JBQ25CLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDckIsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO2FBQ3BCLENBQUE7U0FDRjtRQUNELEtBQUssTUFBTSxPQUFPLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRTtZQUMzQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNaLEtBQUssRUFBRSxxQkFBcUIsQ0FBUyxPQUFPLEVBQUUsUUFBUSxDQUFDO2dCQUN2RCxJQUFJLEVBQUUsaUNBQWlDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztnQkFDM0QsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMxQyxHQUFHLENBQUMsU0FBUyxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7YUFDaEMsQ0FBQyxDQUFBO1NBQ0g7S0FDRjtJQUVELE9BQU8sUUFBUSxDQUFBO0FBQ2pCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluZGl2aWR1YWwsXG4gIE9yZ2FuaXphdGlvbixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgZ2V0Um9sZUZyb21Sb2xlQ29kZSB9IGZyb20gJy4uL2lzbzE5MTM5L3V0aWxzL3JvbGUubWFwcGVyJ1xuaW1wb3J0IHsgVGhlc2F1cnVzIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7IGdldEtleXdvcmRUeXBlRnJvbUtleXdvcmRUeXBlQ29kZSB9IGZyb20gJy4uL2lzbzE5MTM5L3V0aWxzL2tleXdvcmQubWFwcGVyJ1xuXG5leHBvcnQgdHlwZSBTb3VyY2VXaXRoVW5rbm93blByb3BzID0geyBba2V5OiBzdHJpbmddOiB1bmtub3duIH1cblxuZXhwb3J0IGNvbnN0IHNlbGVjdEZpZWxkID0gPFQ+KFxuICBzb3VyY2U6IFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG4gIGZpZWxkTmFtZTogc3RyaW5nXG4pOiBUIHwgbnVsbCA9PlxuICBzb3VyY2UgIT09IG51bGwgJiYgZmllbGROYW1lIGluIHNvdXJjZSA/IChzb3VyY2VbZmllbGROYW1lXSBhcyBUKSA6IG51bGxcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEZhbGxiYWNrRmllbGRzID0gPFQ+KFxuICBzb3VyY2U6IFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG4gIC4uLmZpZWxkTmFtZXM6IHN0cmluZ1tdXG4pOiBUIHwgbnVsbCA9PlxuICBmaWVsZE5hbWVzLnJlZHVjZTxUPihcbiAgICAocHJldiwgY3VycikgPT4gKHByZXYgPT09IG51bGwgPyBzZWxlY3RGaWVsZChzb3VyY2UsIGN1cnIpIDogcHJldiksXG4gICAgbnVsbFxuICApXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RGYWxsYmFjayA9IDxULCBVPihmaWVsZDogVCwgZmFsbGJhY2s6IFUpOiBUIHwgVSA9PlxuICBmaWVsZCA9PT0gbnVsbCA/IGZhbGxiYWNrIDogZmllbGRcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFRyYW5zbGF0ZWRWYWx1ZSA9IDxUPihcbiAgc291cmNlOiBTb3VyY2VXaXRoVW5rbm93blByb3BzLFxuICBsYW5nMzogc3RyaW5nXG4pOiBUIHwgbnVsbCA9PlxuICBzZWxlY3RGYWxsYmFjayhzZWxlY3RGaWVsZChzb3VyY2UsIGxhbmczKSwgc2VsZWN0RmllbGQoc291cmNlLCAnZGVmYXVsdCcpKVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0VHJhbnNsYXRlZEZpZWxkID0gPFQ+KFxuICBzb3VyY2U6IFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG4gIGZpZWxkTmFtZTogc3RyaW5nLFxuICBsYW5nMzogc3RyaW5nXG4pOiBUIHwgbnVsbCA9PiBzZWxlY3RUcmFuc2xhdGVkVmFsdWUoc2VsZWN0RmllbGQoc291cmNlLCBmaWVsZE5hbWUpLCBsYW5nMylcblxuZXhwb3J0IGNvbnN0IHRvRGF0ZSA9IChmaWVsZCkgPT4gbmV3IERhdGUoZmllbGQpXG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdFZhbHVlID0gKGZpZWxkKSA9PlxuICBBcnJheS5pc0FycmF5KGZpZWxkKSA/IGZpZWxkWzBdIDogZmllbGRcblxuZXhwb3J0IGNvbnN0IGdldEFycmF5SXRlbSA9IChmaWVsZCwgaW5kZXgpID0+XG4gIEFycmF5LmlzQXJyYXkoZmllbGQpICYmIGZpZWxkW2luZGV4XSAhPT0gdW5kZWZpbmVkID8gZmllbGRbaW5kZXhdIDogbnVsbFxuXG5leHBvcnQgY29uc3QgZ2V0QXNBcnJheSA9IChmaWVsZCkgPT5cbiAgQXJyYXkuaXNBcnJheShmaWVsZCkgPyBmaWVsZCA6IGZpZWxkICE9PSBudWxsID8gW2ZpZWxkXSA6IFtdXG5cbmV4cG9ydCBjb25zdCBnZXRBc1VybCA9IChcbiAgZmllbGQsXG4gIGxvY2F0aW9uOiBzdHJpbmcgPSB3aW5kb3cubG9jYXRpb24udG9TdHJpbmcoKVxuKSA9PiB7XG4gIC8vIGFuIGVtcHR5IHN0cmluZyBpcyBub3QgYSB2YWxpZCB1cmwsIGV2ZW4gdGhvdWdoIGl0IGNvdWxkIGJlIGNvbnNpZGVyZWQgYW4gZW1wdHkgcGF0aCB0byB0aGUgcm9vdFxuICBpZiAoZmllbGQgPT09ICcnIHx8IGZpZWxkID09PSBudWxsKSByZXR1cm4gbnVsbFxuICBsZXQgdXJsID0gZmllbGRcbiAgaWYgKGZpZWxkLm1hdGNoKC9ed3d3XFwuLykpIHVybCA9IGBodHRwczovLyR7ZmllbGR9YFxuICB0cnkge1xuICAgIHJldHVybiBuZXcgVVJMKHVybCwgbG9jYXRpb24pXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG1hcExvZ28gPSAoc291cmNlOiBTb3VyY2VXaXRoVW5rbm93blByb3BzKSA9PiB7XG4gIGNvbnN0IGxvZ28gPSBzZWxlY3RGYWxsYmFja0ZpZWxkcyhzb3VyY2UsICdsb2dvVXJsJywgJ2xvZ28nKVxuICByZXR1cm4gbG9nbyA/IGdldEFzVXJsKGAvZ2VvbmV0d29yayR7bG9nb31gKSA6IG51bGxcbn1cblxuZXhwb3J0IGNvbnN0IG1hcE9yZ2FuaXphdGlvbiA9IChcbiAgc291cmNlQ29udGFjdDogU291cmNlV2l0aFVua25vd25Qcm9wcyxcbiAgbGFuZzM6IHN0cmluZ1xuKTogT3JnYW5pemF0aW9uID0+IHtcbiAgY29uc3Qgd2Vic2l0ZSA9IGdldEFzVXJsKHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlQ29udGFjdCwgJ3dlYnNpdGUnKSlcbiAgY29uc3QgbG9nb1VybCA9IGdldEFzVXJsKHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlQ29udGFjdCwgJ2xvZ28nKSlcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBzZWxlY3RGYWxsYmFjayhcbiAgICAgIHNlbGVjdFRyYW5zbGF0ZWRGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdvcmdhbmlzYXRpb25PYmplY3QnLCBsYW5nMyksXG4gICAgICBzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdvcmdhbmlzYXRpb24nKVxuICAgICksXG4gICAgLi4uKGxvZ29VcmwgJiYgeyBsb2dvVXJsIH0pLFxuICAgIC4uLih3ZWJzaXRlICYmIHsgd2Vic2l0ZSB9KSxcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgbWFwQ29udGFjdCA9IChcbiAgc291cmNlQ29udGFjdDogU291cmNlV2l0aFVua25vd25Qcm9wcyxcbiAgbGFuZzM6IHN0cmluZ1xuKTogSW5kaXZpZHVhbCA9PiB7XG4gIGNvbnN0IGFkZHJlc3MgPSBzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdhZGRyZXNzJylcbiAgY29uc3QgcGhvbmUgPSBzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdwaG9uZScpXG4gIHJldHVybiB7XG4gICAgbGFzdE5hbWU6IHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlQ29udGFjdCwgJ2luZGl2aWR1YWwnKSxcbiAgICBvcmdhbml6YXRpb246IG1hcE9yZ2FuaXphdGlvbihzb3VyY2VDb250YWN0LCBsYW5nMyksXG4gICAgZW1haWw6IHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlQ29udGFjdCwgJ2VtYWlsJyksXG4gICAgcm9sZTogZ2V0Um9sZUZyb21Sb2xlQ29kZShzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdyb2xlJykpLFxuICAgIC4uLihhZGRyZXNzICYmIHsgYWRkcmVzcyB9KSxcbiAgICAuLi4ocGhvbmUgJiYgeyBwaG9uZSB9KSxcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgbWFwS2V5d29yZHMgPSAodGhlc2F1cmk6IFRoZXNhdXJ1c1tdLCBsYW5ndWFnZTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGtleXdvcmRzID0gW11cbiAgZm9yIChjb25zdCB0aGVzYXVydXNJZCBpbiB0aGVzYXVyaSkge1xuICAgIGNvbnN0IHJhd1RoZXNhdXJ1cyA9IHRoZXNhdXJpW3RoZXNhdXJ1c0lkXVxuICAgIGxldCB0aGVzYXVydXMgPSBudWxsXG4gICAgaWYgKHJhd1RoZXNhdXJ1cy5pZCkge1xuICAgICAgY29uc3QgdGhlc2F1cnVzU291cmNlOiBTb3VyY2VXaXRoVW5rbm93blByb3BzID0geyAuLi5yYXdUaGVzYXVydXMgfVxuICAgICAgY29uc3QgdXJsID0gZ2V0QXNVcmwoc2VsZWN0RmllbGQodGhlc2F1cnVzU291cmNlLCAnbGluaycpKVxuICAgICAgY29uc3QgbmFtZSA9IHNlbGVjdEZpZWxkKHRoZXNhdXJ1c1NvdXJjZSwgJ3RpdGxlJylcbiAgICAgIHRoZXNhdXJ1cyA9IHtcbiAgICAgICAgaWQ6IHJhd1RoZXNhdXJ1cy5pZCxcbiAgICAgICAgLi4uKG5hbWUgJiYgeyBuYW1lIH0pLFxuICAgICAgICAuLi4odXJsICYmIHsgdXJsIH0pLFxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IGtleXdvcmQgb2YgcmF3VGhlc2F1cnVzLmtleXdvcmRzKSB7XG4gICAgICBrZXl3b3Jkcy5wdXNoKHtcbiAgICAgICAgbGFiZWw6IHNlbGVjdFRyYW5zbGF0ZWRWYWx1ZTxzdHJpbmc+KGtleXdvcmQsIGxhbmd1YWdlKSxcbiAgICAgICAgdHlwZTogZ2V0S2V5d29yZFR5cGVGcm9tS2V5d29yZFR5cGVDb2RlKHJhd1RoZXNhdXJ1cy50aGVtZSksXG4gICAgICAgIC4uLihrZXl3b3JkLmxpbmsgJiYgeyBrZXk6IGtleXdvcmQubGluayB9KSxcbiAgICAgICAgLi4uKHRoZXNhdXJ1cyAmJiB7IHRoZXNhdXJ1cyB9KSxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGtleXdvcmRzXG59XG4iXX0=
@@ -1,4 +1,5 @@
1
1
  export * from './elasticsearch.model';
2
2
  export * from './search.model';
3
3
  export * from './metadata.model';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9nbjQvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsa0JBQWtCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VsYXN0aWNzZWFyY2gubW9kZWwnXG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC5tb2RlbCdcbmV4cG9ydCAqIGZyb20gJy4vbWV0YWRhdGEubW9kZWwnXG4iXX0=
4
+ export * from './keywords.model';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9nbjQvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsa0JBQWtCLENBQUE7QUFDaEMsY0FBYyxrQkFBa0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZWxhc3RpY3NlYXJjaC5tb2RlbCdcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLm1vZGVsJ1xuZXhwb3J0ICogZnJvbSAnLi9tZXRhZGF0YS5tb2RlbCdcbmV4cG9ydCAqIGZyb20gJy4va2V5d29yZHMubW9kZWwnXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5d29yZHMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9nbjQvdHlwZXMva2V5d29yZHMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgS2V5d29yZEFwaVJlc3BvbnNlIHtcbiAgdmFsdWVzPzoge1xuICAgIGVuZzogc3RyaW5nXG4gIH1cbiAgZGVmaW5pdGlvbnM/OiB7XG4gICAgZW5nOiBzdHJpbmdcbiAgfVxuICBjb29yZEVhc3Q/OiBzdHJpbmdcbiAgY29vcmRXZXN0Pzogc3RyaW5nXG4gIGNvb3JkU291dGg/OiBzdHJpbmdcbiAgY29vcmROb3J0aD86IHN0cmluZ1xuICB0aGVzYXVydXNLZXk/OiBzdHJpbmdcbiAgZGVmaW5pdGlvbj86IHN0cmluZ1xuICB2YWx1ZT86IHN0cmluZ1xuICB1cmk/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUaGVzYXVydXNBcGlSZXNwb25zZSB7XG4gIGtleT86IHN0cmluZ1xuICBkbmFtZT86IHN0cmluZ1xuICBkZXNjcmlwdGlvbj86IHN0cmluZ1tdIHwgc3RyaW5nXG4gIGZpbGVuYW1lPzogc3RyaW5nXG4gIHRpdGxlPzogc3RyaW5nXG4gIG11bHRpbGluZ3VhbFRpdGxlcz86IHN0cmluZ1tdXG4gIGR1YmxpbkNvcmVNdWx0aWxpbmd1YWxzPzogc3RyaW5nW11cbiAgZGF0ZT86IHN0cmluZ1xuICB1cmw/OiBzdHJpbmdcbiAgZGVmYXVsdE5hbWVzcGFjZT86IHN0cmluZ1xuICB0eXBlPzogc3RyaW5nXG4gIGFjdGl2YXRlZD86IHN0cmluZ1xufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9nbjQvdHlwZXMvbWV0YWRhdGEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdlb21ldHJ5IH0gZnJvbSAnZ2VvanNvbidcblxudHlwZSBMYW5nQ29kZSA9IHN0cmluZ1xudHlwZSBNdWx0aWxpbmd1YWxGaWVsZCA9IHtcbiAgW0sgaW4gYGxhbmcke0xhbmdDb2RlfWBdOiBzdHJpbmdcbn0gJiB7XG4gIGRlZmF1bHQ6IHN0cmluZ1xufVxuXG50eXBlIEJvb2xlYW5TdHJpbmcgPSAndHJ1ZScgfCAnZmFsc2UnXG5pbnRlcmZhY2UgQ29kZUxpc3RFbnRyeSBleHRlbmRzIE11bHRpbGluZ3VhbEZpZWxkIHtcbiAga2V5OiBzdHJpbmdcbiAgbGluaz86IHN0cmluZ1xufVxuXG50eXBlIE1heWJlQXJyYXk8VD4gPSBUIHwgVFtdXG5cbmludGVyZmFjZSBDb250YWN0IHtcbiAgb3JnYW5pc2F0aW9uOiBzdHJpbmdcbiAgcm9sZTogc3RyaW5nXG4gIGVtYWlsOiBzdHJpbmdcbiAgd2Vic2l0ZTogc3RyaW5nXG4gIGxvZ286IHN0cmluZ1xuICBpbmRpdmlkdWFsOiBzdHJpbmdcbiAgcG9zaXRpb246IHN0cmluZ1xuICBwaG9uZTogc3RyaW5nXG4gIGFkZHJlc3M6IHN0cmluZ1xufVxuXG5pbnRlcmZhY2UgT3ZlcnZpZXcge1xuICBkYXRhPzogc3RyaW5nXG4gIHVybD86IHN0cmluZ1xuICB0ZXh0PzogTXVsdGlsaW5ndWFsRmllbGRcbn1cblxuaW50ZXJmYWNlIFJlc291cmNlRGF0ZSB7XG4gIHR5cGU6IHN0cmluZ1xuICBkYXRlOiBzdHJpbmdcbn1cblxuaW50ZXJmYWNlIFJlc291cmNlVGVtcG9yYWxEYXRlUmFuZ2Uge1xuICBndGU/OiBzdHJpbmdcbiAgbHRlPzogc3RyaW5nXG59XG5cbmludGVyZmFjZSBSZXNvdXJjZUlkZW50aWZpZXIge1xuICBjb2RlOiBzdHJpbmdcbiAgY29kZVNwYWNlOiBzdHJpbmdcbiAgbGluazogc3RyaW5nXG59XG5cbmludGVyZmFjZSBTcGVjaWZpY2F0aW9uQ29uZm9ybWFuY2Uge1xuICB0aXRsZTogc3RyaW5nXG4gIGRhdGU6IHN0cmluZ1xuICBleHBsYW5hdGlvbjogc3RyaW5nXG4gIHBhc3M6IEJvb2xlYW5TdHJpbmdcbn1cblxudHlwZSBUaGVzYXVydXNOYW1lID0gc3RyaW5nXG5leHBvcnQgaW50ZXJmYWNlIFRoZXNhdXJ1cyB7XG4gIGlkPzogc3RyaW5nXG4gIHRpdGxlPzogc3RyaW5nXG4gIHRoZW1lPzogc3RyaW5nXG4gIGxpbms/OiBzdHJpbmdcbiAga2V5d29yZHM6IE11bHRpbGluZ3VhbEZpZWxkW11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaW5rIHtcbiAgcHJvdG9jb2w/OiBzdHJpbmdcbiAgbWltZVR5cGU/OiBzdHJpbmdcbiAgdXJsPzogc3RyaW5nXG4gIG5hbWU/OiBzdHJpbmdcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgZnVuY3Rpb24/OiBzdHJpbmdcbiAgYXBwbGljYXRpb25Qcm9maWxlPzogc3RyaW5nXG4gIGdyb3VwPzogbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIE1ldGFkYXRhT2JqZWN0ID0gUGFydGlhbDx7XG4gIE1EX0NvbnN0cmFpbnRzVXNlTGltaXRhdGlvbk9iamVjdDogTXVsdGlsaW5ndWFsRmllbGRbXVxuICBNRF9MZWdhbENvbnN0cmFpbnRzT3RoZXJDb25zdHJhaW50c09iamVjdDogTXVsdGlsaW5ndWFsRmllbGRbXVxuICBPcmc6IHN0cmluZ1xuICBPcmdGb3JSZXNvdXJjZTogc3RyaW5nW11cbiAgYWxsS2V5d29yZHM6IFJlY29yZDxUaGVzYXVydXNOYW1lLCBUaGVzYXVydXM+XG4gIGNoYW5nZURhdGU6IHN0cmluZ1xuICBjbF9jaGFyYWN0ZXJTZXQ6IENvZGVMaXN0RW50cnlbXVxuICBjbF9mdW5jdGlvbjogQ29kZUxpc3RFbnRyeVtdXG4gIGNsX2hpZXJhcmNoeUxldmVsOiBDb2RlTGlzdEVudHJ5W11cbiAgY2xfcmVzb3VyY2VDaGFyYWN0ZXJTZXQ6IENvZGVMaXN0RW50cnlbXVxuICBjbF9zdGF0dXM6IENvZGVMaXN0RW50cnlbXVxuICBjbF90b3BpYzogQ29kZUxpc3RFbnRyeVtdXG4gIGNsX3R5cGU6IENvZGVMaXN0RW50cnlbXVxuICBjb25mb3JtVG9fVGl0cmVkdW5lc3BjaWZpY2F0aW9ubGFxdWVsbGVsYXNyaWVkZWRvbm5lc2VzdGNvbmZvcm1lb3Vub246IHN0cmluZ1xuICBjb250YWN0OiBDb250YWN0W11cbiAgY29udGFjdEZvclJlc291cmNlOiBDb250YWN0W11cbiAgY3JlYXRlRGF0ZTogc3RyaW5nXG4gIGNyZWF0aW9uRGF0ZUZvclJlc291cmNlOiBzdHJpbmdbXVxuICBjcmVhdGlvbk1vbnRoRm9yUmVzb3VyY2U6IHN0cmluZ1xuICBjcmVhdGlvblllYXJGb3JSZXNvdXJjZTogc3RyaW5nXG4gIGRhdGVTdGFtcDogc3RyaW5nXG4gIGRpc3BsYXlPcmRlcjogc3RyaW5nXG4gIGRvY1R5cGU6IHN0cmluZ1xuICBkb2N1bWVudDogc3RyaW5nXG4gIGRvY3VtZW50U3RhbmRhcmQ6IHN0cmluZ1xuICBkcmFmdDogc3RyaW5nXG4gIGV4dGVudERlc2NyaXB0aW9uT2JqZWN0OiBNdWx0aWxpbmd1YWxGaWVsZFtdXG4gIGV4dHJhOiBzdHJpbmdcbiAgZmVhdHVyZU9mUmVjb3JkOiBzdHJpbmdcbiAgZmVlZGJhY2tDb3VudDogc3RyaW5nXG4gIGdlb206IEdlb21ldHJ5XG4gIGdyb3VwT3duZXI6IHN0cmluZ1xuICBncm91cFB1Ymxpc2hlZDogc3RyaW5nW11cbiAgZ3JvdXBQdWJsaXNoZWRJZDogc3RyaW5nXG4gIGhhcnZlc3RlclV1aWQ6IHN0cmluZ1xuICBoYXNJbnNwaXJlVGhlbWU6IEJvb2xlYW5TdHJpbmdcbiAgaGFzT3ZlcnZpZXc6IEJvb2xlYW5TdHJpbmdcbiAgaGFzeGxpbmtzOiBCb29sZWFuU3RyaW5nXG4gIGlkOiBzdHJpbmdcbiAgaW5kZXhpbmdEYXRlOiBzdHJpbmdcbiAgaW5kZXhpbmdFcnJvcjogc3RyaW5nW11cbiAgaW5kZXhpbmdFcnJvck1zZzogc3RyaW5nW11cbiAgaW5zcGlyZUFubmV4OiBzdHJpbmdbXVxuICBpbnNwaXJlQW5uZXhGb3JGaXJzdFRoZW1lOiBzdHJpbmdcbiAgaW5zcGlyZVRoZW1lOiBzdHJpbmdbXVxuICBpbnNwaXJlVGhlbWVGaXJzdDogc3RyaW5nXG4gIGluc3BpcmVUaGVtZUZpcnN0X3N5bjogc3RyaW5nXG4gIGluc3BpcmVUaGVtZU51bWJlcjogc3RyaW5nXG4gIGluc3BpcmVUaGVtZVVyaTogc3RyaW5nW11cbiAgaW5zcGlyZVRoZW1lX3N5bjogc3RyaW5nW11cbiAgaXNIYXJ2ZXN0ZWQ6IHN0cmluZ1xuICBpc09wZW5EYXRhOiBzdHJpbmdcbiAgaXNQdWJsaXNoZWRUb0FsbDogc3RyaW5nXG4gIGlzVGVtcGxhdGU6IHN0cmluZ1xuICBrZXl3b3JkVHlwZTogUmVjb3JkPHN0cmluZywgTXVsdGlsaW5ndWFsRmllbGRbXT5cbiAgbGljZW5zZU9iamVjdDogTXVsdGlsaW5ndWFsRmllbGRbXVxuICBsaW5lYWdlT2JqZWN0OiBNdWx0aWxpbmd1YWxGaWVsZFxuICBsaW5rOiBMaW5rW11cbiAgbGlua1Byb3RvY29sOiBzdHJpbmdbXVxuICBsaW5rVXJsOiBzdHJpbmdbXVxuICBsaW5rVXJsUHJvdG9jb2xPR0NXRlM6IHN0cmluZ1tdXG4gIGxpbmtVcmxQcm90b2NvbE9HQ1dNUzogc3RyaW5nW11cbiAgbGlua1VybFByb3RvY29sV1dXTElOSzEwaHR0cGxpbms6IE1heWJlQXJyYXk8c3RyaW5nPlxuICBsaW5rVXJsUHJvdG9jb2xXV1dMSU5LMTBodHRwcmVsYXRlZDogc3RyaW5nXG4gIGxvY2F0aW9uOiBzdHJpbmdcbiAgbG9nbzogc3RyaW5nXG4gIG1haW5MYW5ndWFnZTogc3RyaW5nXG4gIG1ldGFkYXRhSWRlbnRpZmllcjogc3RyaW5nXG4gIG92ZXJ2aWV3OiBPdmVydmlld1tdXG4gIG93bmVyOiBzdHJpbmdcbiAgcG9pbnRPZkNvbnRhY3RPcmc6IHN0cmluZ1xuICBwb2ludE9mQ29udGFjdE9yZ0ZvclJlc291cmNlOiBzdHJpbmdcbiAgcG9wdWxhcml0eTogbnVtYmVyXG4gIHB1YmxpY2F0aW9uRGF0ZUZvclJlc291cmNlOiBzdHJpbmdcbiAgcmF0aW5nOiBzdHJpbmdcbiAgcmVjb3JkOiBzdHJpbmdcbiAgcmVjb3JkR3JvdXA6IHN0cmluZ1xuICByZWNvcmRPd25lcjogc3RyaW5nXG4gIHJlc29sdXRpb25EaXN0YW5jZTogc3RyaW5nW11cbiAgcmVzb2x1dGlvblNjYWxlRGVub21pbmF0b3I6IHN0cmluZ1tdXG4gIHJlc291cmNlQWJzdHJhY3RPYmplY3Q6IE11bHRpbGluZ3VhbEZpZWxkXG4gIHJlc291cmNlRGF0ZTogUmVzb3VyY2VEYXRlW11cbiAgcmVzb3VyY2VFZGl0aW9uOiBzdHJpbmdcbiAgcmVzb3VyY2VJZGVudGlmaWVyOiBSZXNvdXJjZUlkZW50aWZpZXJbXVxuICByZXNvdXJjZUxhbmd1YWdlOiBzdHJpbmdbXVxuICByZXNvdXJjZVRlbXBvcmFsRGF0ZVJhbmdlOiBSZXNvdXJjZVRlbXBvcmFsRGF0ZVJhbmdlW11cbiAgcmVzb3VyY2VUZW1wb3JhbEV4dGVudERhdGVSYW5nZTogUmVzb3VyY2VUZW1wb3JhbERhdGVSYW5nZVtdXG4gIHJlc291cmNlVGl0bGVPYmplY3Q6IE11bHRpbGluZ3VhbEZpZWxkXG4gIHJlc291cmNlVHlwZTogc3RyaW5nW11cbiAgcmVzb3VyY2VUeXBlTmFtZU9iamVjdDogTXVsdGlsaW5ndWFsRmllbGRcbiAgcmV2aXNpb25EYXRlRm9yUmVzb3VyY2U6IHN0cmluZ1tdXG4gIHJldmlzaW9uTW9udGhGb3JSZXNvdXJjZTogc3RyaW5nXG4gIHJldmlzaW9uWWVhckZvclJlc291cmNlOiBzdHJpbmdcbiAgc291cmNlQ2F0YWxvZ3VlOiBzdHJpbmdcbiAgc3BlY2lmaWNhdGlvbkNvbmZvcm1hbmNlOiBNYXliZUFycmF5PFNwZWNpZmljYXRpb25Db25mb3JtYW5jZT5cbiAgc3RhbmRhcmROYW1lT2JqZWN0OiBNdWx0aWxpbmd1YWxGaWVsZFxuICBzdGFuZGFyZFZlcnNpb25PYmplY3Q6IE11bHRpbGluZ3VhbEZpZWxkXG4gIHRhZzogTXVsdGlsaW5ndWFsRmllbGRbXVxuICB0YWdOdW1iZXI6IHN0cmluZ1xuICB1c2VyU2F2ZWRDb3VudDogc3RyaW5nXG4gIHVzZXJpbmZvOiBzdHJpbmdcbiAgdXVpZDogc3RyaW5nXG4gIHZhbGlkOiBzdHJpbmdcbiAgeGxpbms6IHN0cmluZ1tdXG59PlxuXG5leHBvcnQgaW50ZXJmYWNlIEduNFJlY29yZCB7XG4gIF9pbmRleDogc3RyaW5nXG4gIF90eXBlOiBzdHJpbmdcbiAgX2lkOiBzdHJpbmdcbiAgX3Njb3JlOiBudW1iZXJcbiAgX3NvdXJjZTogTWV0YWRhdGFPYmplY3RcbiAgZWRpdD86IGJvb2xlYW5cbiAgb3duZXI/OiBib29sZWFuXG4gIGlzUHVibGlzaGVkVG9BbGw/OiBib29sZWFuXG4gIHZpZXc/OiBib29sZWFuXG4gIG5vdGlmeT86IGJvb2xlYW5cbiAgZG93bmxvYWQ/OiBib29sZWFuXG4gIGR5bmFtaWM/OiBib29sZWFuXG4gIGZlYXR1cmVkPzogYm9vbGVhblxuICBndWVzdGRvd25sb2FkPzogYm9vbGVhblxuICBzZWxlY3RlZD86IGJvb2xlYW5cbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9nbjQvdHlwZXMvbWV0YWRhdGEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdlb21ldHJ5IH0gZnJvbSAnZ2VvanNvbidcblxudHlwZSBMYW5nQ29kZSA9IHN0cmluZ1xudHlwZSBNdWx0aWxpbmd1YWxGaWVsZCA9IHtcbiAgW0sgaW4gYGxhbmcke0xhbmdDb2RlfWBdOiBzdHJpbmdcbn0gJiB7XG4gIGRlZmF1bHQ6IHN0cmluZ1xuICBsaW5rPzogc3RyaW5nXG59XG5cbnR5cGUgQm9vbGVhblN0cmluZyA9ICd0cnVlJyB8ICdmYWxzZSdcbmludGVyZmFjZSBDb2RlTGlzdEVudHJ5IGV4dGVuZHMgTXVsdGlsaW5ndWFsRmllbGQge1xuICBrZXk6IHN0cmluZ1xuICBsaW5rPzogc3RyaW5nXG59XG5cbnR5cGUgTWF5YmVBcnJheTxUPiA9IFQgfCBUW11cblxuaW50ZXJmYWNlIENvbnRhY3Qge1xuICBvcmdhbmlzYXRpb246IHN0cmluZ1xuICByb2xlOiBzdHJpbmdcbiAgZW1haWw6IHN0cmluZ1xuICB3ZWJzaXRlOiBzdHJpbmdcbiAgbG9nbzogc3RyaW5nXG4gIGluZGl2aWR1YWw6IHN0cmluZ1xuICBwb3NpdGlvbjogc3RyaW5nXG4gIHBob25lOiBzdHJpbmdcbiAgYWRkcmVzczogc3RyaW5nXG59XG5cbmludGVyZmFjZSBPdmVydmlldyB7XG4gIGRhdGE/OiBzdHJpbmdcbiAgdXJsPzogc3RyaW5nXG4gIHRleHQ/OiBNdWx0aWxpbmd1YWxGaWVsZFxufVxuXG5pbnRlcmZhY2UgUmVzb3VyY2VEYXRlIHtcbiAgdHlwZTogc3RyaW5nXG4gIGRhdGU6IHN0cmluZ1xufVxuXG5pbnRlcmZhY2UgUmVzb3VyY2VUZW1wb3JhbERhdGVSYW5nZSB7XG4gIGd0ZT86IHN0cmluZ1xuICBsdGU/OiBzdHJpbmdcbn1cblxuaW50ZXJmYWNlIFJlc291cmNlSWRlbnRpZmllciB7XG4gIGNvZGU6IHN0cmluZ1xuICBjb2RlU3BhY2U6IHN0cmluZ1xuICBsaW5rOiBzdHJpbmdcbn1cblxuaW50ZXJmYWNlIFNwZWNpZmljYXRpb25Db25mb3JtYW5jZSB7XG4gIHRpdGxlOiBzdHJpbmdcbiAgZGF0ZTogc3RyaW5nXG4gIGV4cGxhbmF0aW9uOiBzdHJpbmdcbiAgcGFzczogQm9vbGVhblN0cmluZ1xufVxuXG50eXBlIFRoZXNhdXJ1c05hbWUgPSBzdHJpbmdcbmV4cG9ydCBpbnRlcmZhY2UgVGhlc2F1cnVzIHtcbiAgaWQ/OiBzdHJpbmdcbiAgdGl0bGU/OiBzdHJpbmdcbiAgdGhlbWU/OiBzdHJpbmdcbiAgbGluaz86IHN0cmluZ1xuICBrZXl3b3JkczogTXVsdGlsaW5ndWFsRmllbGRbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpbmsge1xuICBwcm90b2NvbD86IHN0cmluZ1xuICBtaW1lVHlwZT86IHN0cmluZ1xuICB1cmw/OiBzdHJpbmdcbiAgbmFtZT86IHN0cmluZ1xuICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICBmdW5jdGlvbj86IHN0cmluZ1xuICBhcHBsaWNhdGlvblByb2ZpbGU/OiBzdHJpbmdcbiAgZ3JvdXA/OiBudW1iZXJcbn1cblxuZXhwb3J0IHR5cGUgTWV0YWRhdGFPYmplY3QgPSBQYXJ0aWFsPHtcbiAgTURfQ29uc3RyYWludHNVc2VMaW1pdGF0aW9uT2JqZWN0OiBNdWx0aWxpbmd1YWxGaWVsZFtdXG4gIE1EX0xlZ2FsQ29uc3RyYWludHNPdGhlckNvbnN0cmFpbnRzT2JqZWN0OiBNdWx0aWxpbmd1YWxGaWVsZFtdXG4gIE9yZzogc3RyaW5nXG4gIE9yZ0ZvclJlc291cmNlOiBzdHJpbmdbXVxuICBhbGxLZXl3b3JkczogUmVjb3JkPFRoZXNhdXJ1c05hbWUsIFRoZXNhdXJ1cz5cbiAgY2hhbmdlRGF0ZTogc3RyaW5nXG4gIGNsX2NoYXJhY3RlclNldDogQ29kZUxpc3RFbnRyeVtdXG4gIGNsX2Z1bmN0aW9uOiBDb2RlTGlzdEVudHJ5W11cbiAgY2xfaGllcmFyY2h5TGV2ZWw6IENvZGVMaXN0RW50cnlbXVxuICBjbF9yZXNvdXJjZUNoYXJhY3RlclNldDogQ29kZUxpc3RFbnRyeVtdXG4gIGNsX3N0YXR1czogQ29kZUxpc3RFbnRyeVtdXG4gIGNsX3RvcGljOiBDb2RlTGlzdEVudHJ5W11cbiAgY2xfdHlwZTogQ29kZUxpc3RFbnRyeVtdXG4gIGNvbmZvcm1Ub19UaXRyZWR1bmVzcGNpZmljYXRpb25sYXF1ZWxsZWxhc3JpZWRlZG9ubmVzZXN0Y29uZm9ybWVvdW5vbjogc3RyaW5nXG4gIGNvbnRhY3Q6IENvbnRhY3RbXVxuICBjb250YWN0Rm9yUmVzb3VyY2U6IENvbnRhY3RbXVxuICBjcmVhdGVEYXRlOiBzdHJpbmdcbiAgY3JlYXRpb25EYXRlRm9yUmVzb3VyY2U6IHN0cmluZ1tdXG4gIGNyZWF0aW9uTW9udGhGb3JSZXNvdXJjZTogc3RyaW5nXG4gIGNyZWF0aW9uWWVhckZvclJlc291cmNlOiBzdHJpbmdcbiAgZGF0ZVN0YW1wOiBzdHJpbmdcbiAgZGlzcGxheU9yZGVyOiBzdHJpbmdcbiAgZG9jVHlwZTogc3RyaW5nXG4gIGRvY3VtZW50OiBzdHJpbmdcbiAgZG9jdW1lbnRTdGFuZGFyZDogc3RyaW5nXG4gIGRyYWZ0OiBzdHJpbmdcbiAgZXh0ZW50RGVzY3JpcHRpb25PYmplY3Q6IE11bHRpbGluZ3VhbEZpZWxkW11cbiAgZXh0cmE6IHN0cmluZ1xuICBmZWF0dXJlT2ZSZWNvcmQ6IHN0cmluZ1xuICBmZWVkYmFja0NvdW50OiBzdHJpbmdcbiAgZ2VvbTogR2VvbWV0cnlcbiAgZ3JvdXBPd25lcjogc3RyaW5nXG4gIGdyb3VwUHVibGlzaGVkOiBzdHJpbmdbXVxuICBncm91cFB1Ymxpc2hlZElkOiBzdHJpbmdcbiAgaGFydmVzdGVyVXVpZDogc3RyaW5nXG4gIGhhc0luc3BpcmVUaGVtZTogQm9vbGVhblN0cmluZ1xuICBoYXNPdmVydmlldzogQm9vbGVhblN0cmluZ1xuICBoYXN4bGlua3M6IEJvb2xlYW5TdHJpbmdcbiAgaWQ6IHN0cmluZ1xuICBpbmRleGluZ0RhdGU6IHN0cmluZ1xuICBpbmRleGluZ0Vycm9yOiBzdHJpbmdbXVxuICBpbmRleGluZ0Vycm9yTXNnOiBzdHJpbmdbXVxuICBpbnNwaXJlQW5uZXg6IHN0cmluZ1tdXG4gIGluc3BpcmVBbm5leEZvckZpcnN0VGhlbWU6IHN0cmluZ1xuICBpbnNwaXJlVGhlbWU6IHN0cmluZ1tdXG4gIGluc3BpcmVUaGVtZUZpcnN0OiBzdHJpbmdcbiAgaW5zcGlyZVRoZW1lRmlyc3Rfc3luOiBzdHJpbmdcbiAgaW5zcGlyZVRoZW1lTnVtYmVyOiBzdHJpbmdcbiAgaW5zcGlyZVRoZW1lVXJpOiBzdHJpbmdbXVxuICBpbnNwaXJlVGhlbWVfc3luOiBzdHJpbmdbXVxuICBpc0hhcnZlc3RlZDogc3RyaW5nXG4gIGlzT3BlbkRhdGE6IHN0cmluZ1xuICBpc1B1Ymxpc2hlZFRvQWxsOiBzdHJpbmdcbiAgaXNUZW1wbGF0ZTogc3RyaW5nXG4gIGtleXdvcmRUeXBlOiBSZWNvcmQ8c3RyaW5nLCBNdWx0aWxpbmd1YWxGaWVsZFtdPlxuICBsaWNlbnNlT2JqZWN0OiBNdWx0aWxpbmd1YWxGaWVsZFtdXG4gIGxpbmVhZ2VPYmplY3Q6IE11bHRpbGluZ3VhbEZpZWxkXG4gIGxpbms6IExpbmtbXVxuICBsaW5rUHJvdG9jb2w6IHN0cmluZ1tdXG4gIGxpbmtVcmw6IHN0cmluZ1tdXG4gIGxpbmtVcmxQcm90b2NvbE9HQ1dGUzogc3RyaW5nW11cbiAgbGlua1VybFByb3RvY29sT0dDV01TOiBzdHJpbmdbXVxuICBsaW5rVXJsUHJvdG9jb2xXV1dMSU5LMTBodHRwbGluazogTWF5YmVBcnJheTxzdHJpbmc+XG4gIGxpbmtVcmxQcm90b2NvbFdXV0xJTksxMGh0dHByZWxhdGVkOiBzdHJpbmdcbiAgbG9jYXRpb246IHN0cmluZ1xuICBsb2dvOiBzdHJpbmdcbiAgbWFpbkxhbmd1YWdlOiBzdHJpbmdcbiAgbWV0YWRhdGFJZGVudGlmaWVyOiBzdHJpbmdcbiAgb3ZlcnZpZXc6IE92ZXJ2aWV3W11cbiAgb3duZXI6IHN0cmluZ1xuICBwb2ludE9mQ29udGFjdE9yZzogc3RyaW5nXG4gIHBvaW50T2ZDb250YWN0T3JnRm9yUmVzb3VyY2U6IHN0cmluZ1xuICBwb3B1bGFyaXR5OiBudW1iZXJcbiAgcHVibGljYXRpb25EYXRlRm9yUmVzb3VyY2U6IHN0cmluZ1xuICByYXRpbmc6IHN0cmluZ1xuICByZWNvcmQ6IHN0cmluZ1xuICByZWNvcmRHcm91cDogc3RyaW5nXG4gIHJlY29yZE93bmVyOiBzdHJpbmdcbiAgcmVzb2x1dGlvbkRpc3RhbmNlOiBzdHJpbmdbXVxuICByZXNvbHV0aW9uU2NhbGVEZW5vbWluYXRvcjogc3RyaW5nW11cbiAgcmVzb3VyY2VBYnN0cmFjdE9iamVjdDogTXVsdGlsaW5ndWFsRmllbGRcbiAgcmVzb3VyY2VEYXRlOiBSZXNvdXJjZURhdGVbXVxuICByZXNvdXJjZUVkaXRpb246IHN0cmluZ1xuICByZXNvdXJjZUlkZW50aWZpZXI6IFJlc291cmNlSWRlbnRpZmllcltdXG4gIHJlc291cmNlTGFuZ3VhZ2U6IHN0cmluZ1tdXG4gIHJlc291cmNlVGVtcG9yYWxEYXRlUmFuZ2U6IFJlc291cmNlVGVtcG9yYWxEYXRlUmFuZ2VbXVxuICByZXNvdXJjZVRlbXBvcmFsRXh0ZW50RGF0ZVJhbmdlOiBSZXNvdXJjZVRlbXBvcmFsRGF0ZVJhbmdlW11cbiAgcmVzb3VyY2VUaXRsZU9iamVjdDogTXVsdGlsaW5ndWFsRmllbGRcbiAgcmVzb3VyY2VUeXBlOiBzdHJpbmdbXVxuICByZXNvdXJjZVR5cGVOYW1lT2JqZWN0OiBNdWx0aWxpbmd1YWxGaWVsZFxuICByZXZpc2lvbkRhdGVGb3JSZXNvdXJjZTogc3RyaW5nW11cbiAgcmV2aXNpb25Nb250aEZvclJlc291cmNlOiBzdHJpbmdcbiAgcmV2aXNpb25ZZWFyRm9yUmVzb3VyY2U6IHN0cmluZ1xuICBzb3VyY2VDYXRhbG9ndWU6IHN0cmluZ1xuICBzcGVjaWZpY2F0aW9uQ29uZm9ybWFuY2U6IE1heWJlQXJyYXk8U3BlY2lmaWNhdGlvbkNvbmZvcm1hbmNlPlxuICBzdGFuZGFyZE5hbWVPYmplY3Q6IE11bHRpbGluZ3VhbEZpZWxkXG4gIHN0YW5kYXJkVmVyc2lvbk9iamVjdDogTXVsdGlsaW5ndWFsRmllbGRcbiAgdGFnOiBNdWx0aWxpbmd1YWxGaWVsZFtdXG4gIHRhZ051bWJlcjogc3RyaW5nXG4gIHVzZXJTYXZlZENvdW50OiBzdHJpbmdcbiAgdXNlcmluZm86IHN0cmluZ1xuICB1dWlkOiBzdHJpbmdcbiAgdmFsaWQ6IHN0cmluZ1xuICB4bGluazogc3RyaW5nW11cbn0+XG5cbmV4cG9ydCBpbnRlcmZhY2UgR240UmVjb3JkIHtcbiAgX2luZGV4OiBzdHJpbmdcbiAgX3R5cGU6IHN0cmluZ1xuICBfaWQ6IHN0cmluZ1xuICBfc2NvcmU6IG51bWJlclxuICBfc291cmNlOiBNZXRhZGF0YU9iamVjdFxuICBlZGl0PzogYm9vbGVhblxuICBvd25lcj86IGJvb2xlYW5cbiAgaXNQdWJsaXNoZWRUb0FsbD86IGJvb2xlYW5cbiAgdmlldz86IGJvb2xlYW5cbiAgbm90aWZ5PzogYm9vbGVhblxuICBkb3dubG9hZD86IGJvb2xlYW5cbiAgZHluYW1pYz86IGJvb2xlYW5cbiAgZmVhdHVyZWQ/OiBib29sZWFuXG4gIGd1ZXN0ZG93bmxvYWQ/OiBib29sZWFuXG4gIHNlbGVjdGVkPzogYm9vbGVhblxufVxuIl19
@@ -369,4 +369,4 @@ export function readTemporalExtents(rootEl) {
369
369
  }
370
370
  }))(rootEl);
371
371
  }
372
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1wYXJ0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL21ldGFkYXRhLWNvbnZlcnRlci9zcmMvbGliL2lzbzE5MTM5L3JlYWQtcGFydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0JBLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDNUUsT0FBTyxFQUVMLE9BQU8sRUFDUCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFlBQVksRUFDWixVQUFVLEVBQ1YsR0FBRyxFQUNILFFBQVEsRUFDUixJQUFJLEdBQ0wsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLFVBQVUsRUFDVixhQUFhLEVBQ2IsUUFBUSxHQUNULE1BQU0sY0FBYyxDQUFBO0FBQ3JCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUVyRixNQUFNLFVBQVUsc0JBQXNCO0lBSXBDLE9BQU8sSUFBSSxDQUNULFFBQVEsQ0FDTixnQkFBZ0IsQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsRUFDOUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUN0QyxFQUNELFFBQVEsRUFBRSxDQUNYLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWU7SUFDN0IsT0FBTyxJQUFJLENBQ1QsUUFBUSxDQUNOLGdCQUFnQixD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LElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDYixLQUFLLEVBQUUsSUFBSTthQUNaLENBQUMsQ0FBQyxDQUNKLENBQUMsU0FBUyxDQUFDLENBQUE7U0FDYjtJQUNILENBQUMsQ0FBQyxDQUNILENBQUMsTUFBTSxDQUFDLENBQUE7QUFDWCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29uc3RyYWludCxcbiAgRGF0YXNldERpc3RyaWJ1dGlvbixcbiAgR3JhcGhpY092ZXJ2aWV3LFxuICBJbmRpdmlkdWFsLFxuICBLZXl3b3JkLFxuICBLZXl3b3JkVGhlc2F1cnVzLFxuICBPcmdhbml6YXRpb24sXG4gIFJlY29yZEtpbmQsXG4gIFJlY29yZFN0YXR1cyxcbiAgUm9sZSxcbiAgU2VydmljZU9ubGluZVJlc291cmNlLFxuICBTcGF0aWFsUmVwcmVzZW50YXRpb25UeXBlLFxuICBVcGRhdGVGcmVxdWVuY3ksXG4gIFVwZGF0ZUZyZXF1ZW5jeUN1c3RvbSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgbWF0Y2hNaW1lVHlwZSwgbWF0Y2hQcm90b2NvbCB9IGZyb20gJy4uL2NvbW1vbi9kaXN0cmlidXRpb24ubWFwcGVyJ1xuaW1wb3J0IHtcbiAgQ2hhaW5hYmxlRnVuY3Rpb24sXG4gIGNvbWJpbmUsXG4gIGZhbGxiYWNrLFxuICBmaWx0ZXJBcnJheSxcbiAgZmxhdHRlbkFycmF5LFxuICBnZXRBdEluZGV4LFxuICBtYXAsXG4gIG1hcEFycmF5LFxuICBwaXBlLFxufSBmcm9tICcuLi9mdW5jdGlvbi11dGlscydcbmltcG9ydCB7XG4gIFhtbEVsZW1lbnQsXG4gIGZpbmRDaGlsZEVsZW1lbnQsXG4gIGZpbmRDaGlsZHJlbkVsZW1lbnQsXG4gIGZpbmROZXN0ZWRFbGVtZW50LFxuICBmaW5kTmVzdGVkRWxlbWVudHMsXG4gIGZpbmRQYXJlbnQsXG4gIHJlYWRBdHRyaWJ1dGUsXG4gIHJlYWRUZXh0LFxufSBmcm9tICcuLi94bWwtdXRpbHMnXG5pbXBvcnQgeyBmdWxsTmFtZVRvUGFydHMgfSBmcm9tICcuL3V0aWxzL2luZGl2aWR1YWwtbmFtZSdcbmltcG9ydCB7IGdldEtleXdvcmRUeXBlRnJvbUtleXdvcmRUeXBlQ29kZSB9IGZyb20gJy4vdXRpbHMva2V5d29yZC5tYXBwZXInXG5pbXBvcnQgeyBnZXRSb2xlRnJvbVJvbGVDb2RlIH0gZnJvbSAnLi91dGlscy9yb2xlLm1hcHBlcidcbmltcG9ydCB7IGdldFN0YXR1c0Zyb21TdGF0dXNDb2RlIH0gZnJvbSAnLi91dGlscy9zdGF0dXMubWFwcGVyJ1xuaW1wb3J0IHsgZ2V0VXBkYXRlRnJlcXVlbmN5RnJvbUZyZXF1ZW5jeUNvZGUgfSBmcm9tICcuL3V0aWxzL3VwZGF0ZS1mcmVxdWVuY3kubWFwcGVyJ1xuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdENoYXJhY3RlclN0cmluZygpOiBDaGFpbmFibGVGdW5jdGlvbjxcbiAgWG1sRWxlbWVudCxcbiAgc3RyaW5nXG4+IHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmFsbGJhY2soXG4gICAgICBmaW5kQ2hpbGRFbGVtZW50KCdnY286Q2hhcmFjdGVyU3RyaW5nJywgZmFsc2UpLFxuICAgICAgZmluZENoaWxkRWxlbWVudCgnZ214OkFuY2hvcicsIGZhbHNlKVxuICAgICksXG4gICAgcmVhZFRleHQoKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0RGF0ZVRpbWUoKTogQ2hhaW5hYmxlRnVuY3Rpb248WG1sRWxlbWVudCwgRGF0ZT4ge1xuICByZXR1cm4gcGlwZShcbiAgICBmYWxsYmFjayhcbiAgICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2djbzpEYXRlVGltZScsIGZhbHNlKSxcbiAgICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2djbzpEYXRlJywgZmFsc2UpXG4gICAgKSxcbiAgICByZWFkVGV4dCgpLFxuICAgIG1hcCgoZGF0ZVN0cikgPT4gKGRhdGVTdHIgPyBuZXcgRGF0ZShkYXRlU3RyKSA6IG51bGwpKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0VXJsKCk6IENoYWluYWJsZUZ1bmN0aW9uPFhtbEVsZW1lbnQsIFVSTD4ge1xuICBjb25zdCBnZXRVcmwgPSBwaXBlKGZpbmRDaGlsZEVsZW1lbnQoJ2dtZDpVUkwnLCBmYWxzZSksIHJlYWRUZXh0KCkpXG4gIGNvbnN0IGdldENoYXJhY3RlclN0cmluZyA9IHBpcGUoXG4gICAgZmluZENoaWxkRWxlbWVudCgnZ2NvOkNoYXJhY3RlclN0cmluZycsIGZhbHNlKSxcbiAgICByZWFkVGV4dCgpXG4gIClcbiAgY29uc3QgZ2V0QW5jaG9yID0gcGlwZShcbiAgICBmaW5kQ2hpbGRFbGVtZW50KCdnbXg6QW5jaG9yJywgZmFsc2UpLFxuICAgIHJlYWRBdHRyaWJ1dGUoJ3hsaW5rOmhyZWYnKVxuICApXG4gIHJldHVybiBwaXBlKFxuICAgIGZhbGxiYWNrKGdldFVybCwgZ2V0QW5jaG9yLCBnZXRDaGFyYWN0ZXJTdHJpbmcpLFxuICAgIG1hcCgodXJsU3RyKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gbmV3IFVSTCh1cmxTdHIpXG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG4gICAgfSlcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdE1hbmRhdG9yeVVybCgpIHtcbiAgcmV0dXJuIGZhbGxiYWNrKGV4dHJhY3RVcmwoKSwgKCkgPT4gbmV3IFVSTCgnaHR0cDovL21pc3NpbmcnKSlcbn1cblxuLy8gZnJvbSBnbWQ6cm9sZVxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RSb2xlKCk6IENoYWluYWJsZUZ1bmN0aW9uPFhtbEVsZW1lbnQsIFJvbGU+IHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZENoaWxkRWxlbWVudCgnZ21kOkNJX1JvbGVDb2RlJyksXG4gICAgcmVhZEF0dHJpYnV0ZSgnY29kZUxpc3RWYWx1ZScpLFxuICAgIG1hcChnZXRSb2xlRnJvbVJvbGVDb2RlKVxuICApXG59XG5cbi8vIGZyb20gZ21kOkNJX1Jlc3BvbnNpYmxlUGFydHlcbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0T3JnYW5pemF0aW9uKCk6IENoYWluYWJsZUZ1bmN0aW9uPFxuICBYbWxFbGVtZW50LFxuICBPcmdhbml6YXRpb25cbj4ge1xuICBjb25zdCBnZXRVcmwgPSBwaXBlKFxuICAgIGZpbmROZXN0ZWRFbGVtZW50cyhcbiAgICAgICdnbWQ6Y29udGFjdEluZm8nLFxuICAgICAgJ2dtZDpDSV9Db250YWN0JyxcbiAgICAgICdnbWQ6b25saW5lUmVzb3VyY2UnLFxuICAgICAgJ2dtZDpDSV9PbmxpbmVSZXNvdXJjZScsXG4gICAgICAnZ21kOmxpbmthZ2UnXG4gICAgKSxcbiAgICBnZXRBdEluZGV4KDApLFxuICAgIGV4dHJhY3RVcmwoKVxuICApXG4gIHJldHVybiBwaXBlKFxuICAgIGNvbWJpbmUoXG4gICAgICBwaXBlKFxuICAgICAgICBmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6b3JnYW5pc2F0aW9uTmFtZScsIGZhbHNlKSxcbiAgICAgICAgZXh0cmFjdENoYXJhY3RlclN0cmluZygpXG4gICAgICApLFxuICAgICAgZ2V0VXJsXG4gICAgKSxcbiAgICBtYXAoKFtuYW1lLCB3ZWJzaXRlXSkgPT4gKHtcbiAgICAgIG5hbWUsXG4gICAgICAuLi4od2Vic2l0ZSAmJiB7IHdlYnNpdGUgfSksXG4gICAgfSkpXG4gIClcbn1cblxuLy8gZnJvbSBnbWQ6Q0lfUmVzcG9uc2libGVQYXJ0eVxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RJbmRpdmlkdWFsKCk6IENoYWluYWJsZUZ1bmN0aW9uPFhtbEVsZW1lbnQsIEluZGl2aWR1YWw+IHtcbiAgY29uc3QgZ2V0Um9sZSA9IHBpcGUoZmluZENoaWxkRWxlbWVudCgnZ21kOnJvbGUnKSwgZXh0cmFjdFJvbGUoKSlcbiAgY29uc3QgZ2V0UG9zaXRpb24gPSBwaXBlKFxuICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2dtZDpwb3NpdGlvbk5hbWUnKSxcbiAgICBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKClcbiAgKVxuICBjb25zdCBnZXROYW1lUGFydHMgPSBwaXBlKFxuICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2dtZDppbmRpdmlkdWFsTmFtZScpLFxuICAgIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKSxcbiAgICBtYXAoKGZ1bGxOYW1lKSA9PiB7XG4gICAgICBpZiAoIWZ1bGxOYW1lKSByZXR1cm4gW11cbiAgICAgIHJldHVybiBmdWxsTmFtZVRvUGFydHMoZnVsbE5hbWUpXG4gICAgfSlcbiAgKVxuICBjb25zdCBnZXRPcmdhbml6YXRpb24gPSBleHRyYWN0T3JnYW5pemF0aW9uKClcbiAgY29uc3QgZ2V0Q29udGFjdFJvb3QgPSBmaW5kTmVzdGVkRWxlbWVudCgnZ21kOmNvbnRhY3RJbmZvJywgJ2dtZDpDSV9Db250YWN0JylcbiAgY29uc3QgZ2V0RW1haWwgPSBwaXBlKFxuICAgIGdldENvbnRhY3RSb290LFxuICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2dtZDplbGVjdHJvbmljTWFpbEFkZHJlc3MnKSxcbiAgICBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKCksXG4gICAgbWFwKChlbWFpbCkgPT4gKGVtYWlsID09PSBudWxsID8gJ21pc3NpbmdAbWlzc2luZy5jb20nIDogZW1haWwpKVxuICApXG4gIGNvbnN0IGdldEFkZHJlc3MgPSBwaXBlKFxuICAgIGdldENvbnRhY3RSb290LFxuICAgIGZpbmROZXN0ZWRFbGVtZW50KCdnbWQ6YWRkcmVzcycsICdnbWQ6Q0lfQWRkcmVzcycpLFxuICAgIGNvbWJpbmUoXG4gICAgICBwaXBlKFxuICAgICAgICBmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6ZGVsaXZlcnlQb2ludCcsIGZhbHNlKSxcbiAgICAgICAgZXh0cmFjdENoYXJhY3RlclN0cmluZygpXG4gICAgICApLFxuICAgICAgcGlwZShmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6Y2l0eScsIGZhbHNlKSwgZXh0cmFjdENoYXJhY3RlclN0cmluZygpKSxcbiAgICAgIHBpcGUoZmluZENoaWxkRWxlbWVudCgnZ21kOnBvc3RhbENvZGUnLCBmYWxzZSksIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKSksXG4gICAgICBwaXBlKGZpbmRDaGlsZEVsZW1lbnQoJ2dtZDpjb3VudHJ5JywgZmFsc2UpLCBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKCkpXG4gICAgKSxcbiAgICBtYXAoKHBhcnRzKSA9PiBwYXJ0cy5maWx0ZXIoKHApID0+ICEhcCkuam9pbignLCAnKSlcbiAgKVxuICBjb25zdCBnZXRQaG9uZSA9IHBpcGUoXG4gICAgZ2V0Q29udGFjdFJvb3QsXG4gICAgZmluZE5lc3RlZEVsZW1lbnQoJ2dtZDpwaG9uZScsICdnbWQ6Q0lfVGVsZXBob25lJywgJ2dtZDp2b2ljZScpLFxuICAgIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKVxuICApXG4gIHJldHVybiBwaXBlKFxuICAgIGNvbWJpbmUoXG4gICAgICBnZXRSb2xlLFxuICAgICAgZ2V0UG9zaXRpb24sXG4gICAgICBnZXROYW1lUGFydHMsXG4gICAgICBnZXRPcmdhbml6YXRpb24sXG4gICAgICBnZXRFbWFpbCxcbiAgICAgIGdldEFkZHJlc3MsXG4gICAgICBnZXRQaG9uZVxuICAgICksXG4gICAgbWFwKFxuICAgICAgKFtcbiAgICAgICAgcm9sZSxcbiAgICAgICAgcG9zaXRpb24sXG4gICAgICAgIFtmaXJzdE5hbWUsIGxhc3ROYW1lXSxcbiAgICAgICAgb3JnYW5pemF0aW9uLFxuICAgICAgICBlbWFpbCxcbiAgICAgICAgYWRkcmVzcyxcbiAgICAgICAgcGhvbmUsXG4gICAgICBdKSA9PiAoe1xuICAgICAgICBlbWFpbCxcbiAgICAgICAgcm9sZSxcbiAgICAgICAgb3JnYW5pemF0aW9uLFxuICAgICAgICAuLi4ocG9zaXRpb24gJiYgeyBwb3NpdGlvbiB9KSxcbiAgICAgICAgLi4uKGZpcnN0TmFtZSAmJiB7IGZpcnN0TmFtZSB9KSxcbiAgICAgICAgLi4uKGxhc3ROYW1lICYmIHsgbGFzdE5hbWUgfSksXG4gICAgICAgIC4uLihhZGRyZXNzICYmIHsgYWRkcmVzcyB9KSxcbiAgICAgICAgLi4uKHBob25lICYmIHsgcGhvbmUgfSksXG4gICAgICB9KVxuICAgIClcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFN0YXR1cygpOiBDaGFpbmFibGVGdW5jdGlvbjxYbWxFbGVtZW50LCBSZWNvcmRTdGF0dXM+IHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZENoaWxkRWxlbWVudCgnZ21kOk1EX1Byb2dyZXNzQ29kZScpLFxuICAgIHJlYWRBdHRyaWJ1dGUoJ2NvZGVMaXN0VmFsdWUnKSxcbiAgICBtYXAoZ2V0U3RhdHVzRnJvbVN0YXR1c0NvZGUpXG4gIClcbn1cblxuLy8gZnJvbSBnbWQ6cmVzb3VyY2VDb25zdHJhaW50c1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RMZWdhbENvbnN0cmFpbnRzKCk6IENoYWluYWJsZUZ1bmN0aW9uPFxuICBYbWxFbGVtZW50LFxuICBBcnJheTxDb25zdHJhaW50PlxuPiB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmRDaGlsZHJlbkVsZW1lbnQoJ2dtZDpNRF9MZWdhbENvbnN0cmFpbnRzJywgZmFsc2UpLFxuICAgIGZpbHRlckFycmF5KFxuICAgICAgcGlwZShcbiAgICAgICAgZmluZENoaWxkcmVuRWxlbWVudCgnZ21kOk1EX1Jlc3RyaWN0aW9uQ29kZScpLFxuICAgICAgICBtYXBBcnJheShyZWFkQXR0cmlidXRlKCdjb2RlTGlzdFZhbHVlJykpLFxuICAgICAgICBtYXAoKHZhbHVlcykgPT4gdmFsdWVzLmluZGV4T2YoJ2xpY2Vuc2UnKSA9PT0gLTEpXG4gICAgICApXG4gICAgKSxcbiAgICBtYXBBcnJheShcbiAgICAgIGNvbWJpbmUoXG4gICAgICAgIGZpbmRDaGlsZHJlbkVsZW1lbnQoJ2dtZDpvdGhlckNvbnN0cmFpbnRzJyksXG4gICAgICAgIGZpbmRDaGlsZHJlbkVsZW1lbnQoJ2dtZDp1c2VMaW1pdGF0aW9uJylcbiAgICAgIClcbiAgICApLFxuICAgIGZsYXR0ZW5BcnJheSgpLFxuICAgIGZsYXR0ZW5BcnJheSgpLFxuICAgIG1hcEFycmF5KGNvbWJpbmUoZXh0cmFjdENoYXJhY3RlclN0cmluZygpLCBleHRyYWN0VXJsKCkpKSxcbiAgICBtYXBBcnJheSgoW3RleHQsIHVybF0pID0+ICh7XG4gICAgICAuLi4odXJsICYmIHsgdXJsIH0pLFxuICAgICAgdGV4dCxcbiAgICB9KSlcbiAgKVxufVxuXG4vLyBmcm9tIGdtZDpyZXNvdXJjZUNvbnN0cmFpbnRzXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFNlY3VyaXR5Q29uc3RyYWludHMoKTogQ2hhaW5hYmxlRnVuY3Rpb248XG4gIFhtbEVsZW1lbnQsXG4gIEFycmF5PENvbnN0cmFpbnQ+XG4+IHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZE5lc3RlZEVsZW1lbnRzKCdnbWQ6TURfU2VjdXJpdHlDb25zdHJhaW50cycsICdnbWQ6dXNlTGltaXRhdGlvbicpLFxuICAgIGZsYXR0ZW5BcnJheSgpLFxuICAgIG1hcEFycmF5KGNvbWJpbmUoZXh0cmFjdENoYXJhY3RlclN0cmluZygpLCBleHRyYWN0VXJsKCkpKSxcbiAgICBtYXBBcnJheSgoW3RleHQsIHVybF0pID0+ICh7XG4gICAgICAuLi4odXJsICYmIHsgdXJsIH0pLFxuICAgICAgdGV4dCxcbiAgICB9KSlcbiAgKVxufVxuXG4vLyBmcm9tIGdtZDpyZXNvdXJjZUNvbnN0cmFpbnRzXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdE90aGVyQ29uc3RyYWludHMoKTogQ2hhaW5hYmxlRnVuY3Rpb248XG4gIFhtbEVsZW1lbnQsXG4gIEFycmF5PENvbnN0cmFpbnQ+XG4+IHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZE5lc3RlZEVsZW1lbnRzKCdnbWQ6TURfQ29uc3RyYWludHMnLCAnZ21kOnVzZUxpbWl0YXRpb24nKSxcbiAgICBmbGF0dGVuQXJyYXkoKSxcbiAgICBtYXBBcnJheShjb21iaW5lKGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKSwgZXh0cmFjdFVybCgpKSksXG4gICAgbWFwQXJyYXkoKFt0ZXh0LCB1cmxdKSA9PiAoe1xuICAgICAgLi4uKHVybCAmJiB7IHVybCB9KSxcbiAgICAgIHRleHQsXG4gICAgfSkpXG4gIClcbn1cblxuLy8gZnJvbSBnbWQ6cmVzb3VyY2VDb25zdHJhaW50c1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RMaWNlbnNlcygpOiBDaGFpbmFibGVGdW5jdGlvbjxcbiAgWG1sRWxlbWVudCxcbiAgQXJyYXk8Q29uc3RyYWludD5cbj4ge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kQ2hpbGRyZW5FbGVtZW50KCdnbWQ6TURfTGVnYWxDb25zdHJhaW50cycsIGZhbHNlKSxcbiAgICBmaWx0ZXJBcnJheShcbiAgICAgIHBpcGUoXG4gICAgICAgIGZpbmRDaGlsZHJlbkVsZW1lbnQoJ2dtZDpNRF9SZXN0cmljdGlvbkNvZGUnKSxcbiAgICAgICAgbWFwQXJyYXkocmVhZEF0dHJpYnV0ZSgnY29kZUxpc3RWYWx1ZScpKSxcbiAgICAgICAgbWFwKCh2YWx1ZXMpID0+IHZhbHVlcy5pbmRleE9mKCdsaWNlbnNlJykgPiAtMSlcbiAgICAgIClcbiAgICApLFxuICAgIG1hcEFycmF5KFxuICAgICAgY29tYmluZShcbiAgICAgICAgZmluZENoaWxkcmVuRWxlbWVudCgnZ21kOm90aGVyQ29uc3RyYWludHMnKSxcbiAgICAgICAgZmluZENoaWxkcmVuRWxlbWVudCgnZ21kOnVzZUxpbWl0YXRpb24nKVxuICAgICAgKVxuICAgICksXG4gICAgZmxhdHRlbkFycmF5KCksXG4gICAgZmxhdHRlbkFycmF5KCksXG4gICAgbWFwQXJyYXkoY29tYmluZShleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKCksIGV4dHJhY3RVcmwoKSkpLFxuICAgIG1hcEFycmF5KChbdGV4dCwgdXJsXSkgPT4gKHtcbiAgICAgIC4uLih1cmwgJiYgeyB1cmwgfSksXG4gICAgICB0ZXh0LFxuICAgIH0pKVxuICApXG59XG5cbmNvbnN0IGdldE1pbWVUeXBlID0gcGlwZShcbiAgZmluZFBhcmVudCgnZ21kOk1EX0Rpc3RyaWJ1dGlvbicpLFxuICBmaW5kTmVzdGVkRWxlbWVudCgnZ21kOmRpc3RyaWJ1dGlvbkZvcm1hdCcsICdnbWQ6TURfRm9ybWF0JywgJ2dtZDpuYW1lJyksXG4gIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKSxcbiAgbWFwKG1hdGNoTWltZVR5cGUpXG4pXG5cbi8qKlxuICogRXh0cmFjdCBkaXN0cmlidXRpb25zIGZyb20gYSBNRF9EaXN0cmlidXRpb24gZWxlbWVudFxuICogQHBhcmFtIGdldE1pbWVUeXBlRm4gVGhpcyBmdW5jdGlvbiBzdGFydHMgZnJvbSBhIGdtZDp0cmFuc2Zlck9wdGlvbnMgZWxlbWVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdERhdGFzZXREaXN0cmlidXRpb25zKFxuICBnZXRNaW1lVHlwZUZuOiBDaGFpbmFibGVGdW5jdGlvbjxYbWxFbGVtZW50LCBzdHJpbmc+XG4pOiBDaGFpbmFibGVGdW5jdGlvbjxYbWxFbGVtZW50LCBEYXRhc2V0RGlzdHJpYnV0aW9uW10+IHtcbiAgY29uc3QgZ2V0VXJsID0gcGlwZShmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6bGlua2FnZScpLCBleHRyYWN0TWFuZGF0b3J5VXJsKCkpXG4gIGNvbnN0IGdldFByb3RvY29sU3RyID0gcGlwZShcbiAgICBmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6cHJvdG9jb2wnKSxcbiAgICBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKClcbiAgKVxuICBjb25zdCBnZXRQcm90b2NvbCA9IHBpcGUoZ2V0UHJvdG9jb2xTdHIsIG1hcChtYXRjaFByb3RvY29sKSlcbiAgY29uc3QgZ2V0T25saW5lRnVuY3Rpb24gPSBwaXBlKFxuICAgIGZpbmROZXN0ZWRFbGVtZW50KCdnbWQ6ZnVuY3Rpb24nLCAnZ21kOkNJX09uTGluZUZ1bmN0aW9uQ29kZScpLFxuICAgIHJlYWRBdHRyaWJ1dGUoJ2NvZGVMaXN0VmFsdWUnKVxuICApXG4gIGNvbnN0IGdldElzU2VydmljZSA9IHBpcGUoXG4gICAgZ2V0UHJvdG9jb2wsXG4gICAgbWFwKChwcm90b2NvbCkgPT4gcHJvdG9jb2wgIT09ICdvdGhlcicpXG4gIClcbiAgY29uc3QgZ2V0SXNEb3dubG9hZCA9IHBpcGUoXG4gICAgY29tYmluZShnZXRJc1NlcnZpY2UsIGdldE9ubGluZUZ1bmN0aW9uLCBnZXRQcm90b2NvbFN0ciksXG4gICAgbWFwKFxuICAgICAgKFtpc1NlcnZpY2UsIG9ubGluZUZ1bmN0aW9uLCBwcm90b2NvbFN0cl0pID0+XG4gICAgICAgICghaXNTZXJ2aWNlICYmIG9ubGluZUZ1bmN0aW9uID09PSAnZG93bmxvYWQnKSB8fFxuICAgICAgICAvZG93bmxvYWQvaS50ZXN0KHByb3RvY29sU3RyKVxuICAgIClcbiAgKVxuICBjb25zdCBnZXROYW1lID0gcGlwZShmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6bmFtZScpLCBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKCkpXG4gIGNvbnN0IGdldERlc2NyaXB0aW9uID0gcGlwZShcbiAgICBmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6ZGVzY3JpcHRpb24nKSxcbiAgICBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKClcbiAgKVxuICByZXR1cm4gcGlwZShcbiAgICBmaW5kTmVzdGVkRWxlbWVudHMoXG4gICAgICAnZ21kOnRyYW5zZmVyT3B0aW9ucycsXG4gICAgICAnZ21kOk1EX0RpZ2l0YWxUcmFuc2Zlck9wdGlvbnMnLFxuICAgICAgJ2dtZDpvbkxpbmUnLFxuICAgICAgJ2dtZDpDSV9PbmxpbmVSZXNvdXJjZSdcbiAgICApLFxuICAgIG1hcEFycmF5KFxuICAgICAgY29tYmluZShcbiAgICAgICAgZ2V0SXNTZXJ2aWNlLFxuICAgICAgICBnZXRJc0Rvd25sb2FkLFxuICAgICAgICBnZXRQcm90b2NvbCxcbiAgICAgICAgZ2V0VXJsLFxuICAgICAgICBnZXROYW1lLFxuICAgICAgICBnZXREZXNjcmlwdGlvbixcbiAgICAgICAgZ2V0TWltZVR5cGVGblxuICAgICAgKVxuICAgICksXG4gICAgbWFwQXJyYXkoXG4gICAgICAoW2lzU2VydmljZSwgaXNEb3dubG9hZCwgcHJvdG9jb2wsIHVybCwgbmFtZSwgZGVzY3JpcHRpb24sIG1pbWVUeXBlXSkgPT4ge1xuICAgICAgICBpZiAoaXNTZXJ2aWNlKSB7XG4gICAgICAgICAgY29uc3QgaGFzSWRlbnRpZmllciA9IHByb3RvY29sID09PSAnd21zJyB8fCBwcm90b2NvbCA9PT0gJ3dmcydcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ3NlcnZpY2UnLFxuICAgICAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgICAgICBhY2Nlc3NTZXJ2aWNlUHJvdG9jb2w6IHByb3RvY29sLFxuICAgICAgICAgICAgLi4uKG5hbWUgJiYgaGFzSWRlbnRpZmllciAmJiB7IGlkZW50aWZpZXJJblNlcnZpY2U6IG5hbWUgfSksXG4gICAgICAgICAgICAuLi4obmFtZSAmJiB7IG5hbWUgfSksXG4gICAgICAgICAgICAuLi4oZGVzY3JpcHRpb24gJiYgeyBkZXNjcmlwdGlvbiB9KSxcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoaXNEb3dubG9hZCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAnZG93bmxvYWQnLFxuICAgICAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgICAgICAuLi4obmFtZSAmJiB7IG5hbWUgfSksXG4gICAgICAgICAgICAuLi4oZGVzY3JpcHRpb24gJiYgeyBkZXNjcmlwdGlvbiB9KSxcbiAgICAgICAgICAgIC4uLihtaW1lVHlwZSAmJiB7IG1pbWVUeXBlIH0pLFxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ2xpbmsnLFxuICAgICAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgICAgICAuLi4obmFtZSAmJiB7IG5hbWUgfSksXG4gICAgICAgICAgICAuLi4oZGVzY3JpcHRpb24gJiYgeyBkZXNjcmlwdGlvbiB9KSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFVwZGF0ZUZyZXF1ZW5jeUZyb21DdXN0b21QZXJpb2QoXG4gIGlzb1BlcmlvZDogc3RyaW5nXG4pOiBVcGRhdGVGcmVxdWVuY3lDdXN0b20ge1xuICBpZiAoIWlzb1BlcmlvZCkgcmV0dXJuIG51bGxcbiAgY29uc3QgbWF0Y2hlcyA9IGlzb1BlcmlvZC5tYXRjaChcbiAgICAvXi0/UCg/OihbMC05XSspWSk/KD86KFswLTldKylNKT8oPzooWzAtOV0rKUQpP1Q/KD86KFswLTldKylIKT8vXG4gIClcbiAgaWYgKCFtYXRjaGVzKSByZXR1cm4gbnVsbFxuICBjb25zdCB5ZWFycyA9IHBhcnNlSW50KG1hdGNoZXNbMV0sIDEwKSB8fCAwXG4gIGNvbnN0IG1vbnRocyA9IHBhcnNlSW50KG1hdGNoZXNbMl0sIDEwKSB8fCAwXG4gIGNvbnN0IGRheXMgPSBwYXJzZUludChtYXRjaGVzWzNdLCAxMCkgfHwgMFxuICBjb25zdCBob3VycyA9IHBhcnNlSW50KG1hdGNoZXNbNF0sIDEwKSB8fCAwXG4gIGlmICh5ZWFycykge1xuICAgIHJldHVybiB7XG4gICAgICBwZXI6ICd5ZWFyJyxcbiAgICAgIHVwZGF0ZWRUaW1lczogMSxcbiAgICB9XG4gIH0gZWxzZSBpZiAobW9udGhzID09PSAxKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBlcjogJ21vbnRoJyxcbiAgICAgIHVwZGF0ZWRUaW1lczogMSxcbiAgICB9XG4gIH0gZWxzZSBpZiAobW9udGhzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBlcjogJ3llYXInLFxuICAgICAgdXBkYXRlZFRpbWVzOiBNYXRoLnJvdW5kKDEyIC8gbW9udGhzKSxcbiAgICB9XG4gIH0gZWxzZSBpZiAoZGF5cyA9PT0gMSkge1xuICAgIHJldHVybiB7XG4gICAgICBwZXI6ICdkYXknLFxuICAgICAgdXBkYXRlZFRpbWVzOiAxLFxuICAgIH1cbiAgfSBlbHNlIGlmIChkYXlzIDw9IDcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGVyOiAnd2VlaycsXG4gICAgICB1cGRhdGVkVGltZXM6IE1hdGgucm91bmQoNyAvIGRheXMgLSAwLjAwMDEpLCAvLyB0aGlzIGlzIHRvIG1ha2Ugc3VyZSB0aGF0ICdldmVyeSAyIGRheXMnID0gJzMgdGltZXMgcGVyIHdlZWsnXG4gICAgfVxuICB9IGVsc2UgaWYgKGRheXMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGVyOiAnbW9udGgnLFxuICAgICAgdXBkYXRlZFRpbWVzOiBNYXRoLnJvdW5kKDMwIC8gZGF5cyksXG4gICAgfVxuICB9IGVsc2UgaWYgKGhvdXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBlcjogJ2RheScsXG4gICAgICB1cGRhdGVkVGltZXM6IE1hdGgucm91bmQoMjQgLyBkYXlzKSxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuLy8gZnJvbSBnbWQ6TURfTWFpbnRlbmFuY2VJbmZvcm1hdGlvblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RVcGRhdGVGcmVxdWVuY3koKTogQ2hhaW5hYmxlRnVuY3Rpb248XG4gIFhtbEVsZW1lbnQsXG4gIFVwZGF0ZUZyZXF1ZW5jeVxuPiB7XG4gIHJldHVybiBmYWxsYmFjayhcbiAgICBwaXBlKFxuICAgICAgZmluZENoaWxkRWxlbWVudCgnZ21kOk1EX01haW50ZW5hbmNlRnJlcXVlbmN5Q29kZScpLFxuICAgICAgcmVhZEF0dHJpYnV0ZSgnY29kZUxpc3RWYWx1ZScpLFxuICAgICAgbWFwKGdldFVwZGF0ZUZyZXF1ZW5jeUZyb21GcmVxdWVuY3lDb2RlKVxuICAgICksXG4gICAgcGlwZShcbiAgICAgIGZpbmROZXN0ZWRFbGVtZW50KFxuICAgICAgICAnZ21kOnVzZXJEZWZpbmVkTWFpbnRlbmFuY2VGcmVxdWVuY3knLFxuICAgICAgICAnZ3RzOlRNX1BlcmlvZER1cmF0aW9uJ1xuICAgICAgKSxcbiAgICAgIHJlYWRUZXh0KCksXG4gICAgICBtYXAoZ2V0VXBkYXRlRnJlcXVlbmN5RnJvbUN1c3RvbVBlcmlvZClcbiAgICApLFxuICAgIG1hcCgoKSA9PiAndW5rbm93bicpXG4gIClcbn1cblxuLyoqXG4gKiBMb29rcyBmb3Igc3J2OlNWX1NlcnZpY2VJZGVudGlmaWNhdGlvbiBvciBnbWQ6TURfRGF0YUlkZW50aWZpY2F0aW9uIGVsZW1lbnRcbiAqIFdpbGwgZmluZCB0aGUgZmlyc3Qgb25lIHRoYXQgZXhpc3RzLCBub3QgcmVhZGluZyB0aGUgdHlwZSBvZiB0aGUgcmVjb3JkXG4gKiAodGhpcyBhbGxvd3MgdXNpbmcgdGhpcyBmdW5jdGlvbiBpbiBvdGhlciBzaW1pbGFyIHNjaGVtYXMpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSWRlbnRpZmljYXRpb24oKSB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2dtZDppZGVudGlmaWNhdGlvbkluZm8nLCBmYWxzZSksXG4gICAgY29tYmluZShcbiAgICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2dtZDpNRF9EYXRhSWRlbnRpZmljYXRpb24nLCBmYWxzZSksXG4gICAgICBmaW5kQ2hpbGRFbGVtZW50KCdzcnY6U1ZfU2VydmljZUlkZW50aWZpY2F0aW9uJywgZmFsc2UpXG4gICAgKSxcbiAgICBmaWx0ZXJBcnJheSgoZWwpID0+IGVsICE9PSBudWxsKSxcbiAgICBnZXRBdEluZGV4KDApXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RJZGVudGlmaWNhdGlvbkRhdGUoXG4gIHR5cGU6ICdjcmVhdGlvbicgfCAncmV2aXNpb24nIHwgJ3B1YmxpY2F0aW9uJ1xuKSB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmRJZGVudGlmaWNhdGlvbigpLFxuICAgIGZpbmROZXN0ZWRFbGVtZW50cygnZ21kOmNpdGF0aW9uJywgJ2dtZDpDSV9DaXRhdGlvbicsICdnbWQ6ZGF0ZScpLFxuICAgIGZpbHRlckFycmF5KFxuICAgICAgcGlwZShcbiAgICAgICAgZmluZE5lc3RlZEVsZW1lbnRzKFxuICAgICAgICAgICdnbWQ6Q0lfRGF0ZScsXG4gICAgICAgICAgJ2dtZDpkYXRlVHlwZScsXG4gICAgICAgICAgJ2dtZDpDSV9EYXRlVHlwZUNvZGUnXG4gICAgICAgICksXG4gICAgICAgIGdldEF0SW5kZXgoMCksXG4gICAgICAgIHJlYWRBdHRyaWJ1dGUoJ2NvZGVMaXN0VmFsdWUnKSxcbiAgICAgICAgbWFwKCh2YWx1ZSkgPT4gdmFsdWUgPT09IHR5cGUpXG4gICAgICApXG4gICAgKSxcbiAgICBnZXRBdEluZGV4KDApLFxuICAgIGZpbmROZXN0ZWRFbGVtZW50cygnZ21kOkNJX0RhdGUnLCAnZ21kOmRhdGUnKSxcbiAgICBnZXRBdEluZGV4KDApLFxuICAgIGV4dHJhY3REYXRlVGltZSgpXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNwYXRpYWxSZXByZXNlbnRhdGlvbkZyb21Db2RlKFxuICBzcGF0aWFsUmVwcmVzZW50YXRpb25Db2RlOiBzdHJpbmdcbik6IFNwYXRpYWxSZXByZXNlbnRhdGlvblR5cGUgfCBudWxsIHtcbiAgc3dpdGNoIChzcGF0aWFsUmVwcmVzZW50YXRpb25Db2RlKSB7XG4gICAgY2FzZSAnZ3JpZCc6XG4gICAgY2FzZSAndmVjdG9yJzpcbiAgICBjYXNlICd0aW4nOlxuICAgIGNhc2UgJ3RhYmxlJzpcbiAgICBjYXNlICdwb2ludCc6XG4gICAgICByZXR1cm4gc3BhdGlhbFJlcHJlc2VudGF0aW9uQ29kZVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkVW5pcXVlSWRlbnRpZmllcihyb290RWw6IFhtbEVsZW1lbnQpOiBzdHJpbmcge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6ZmlsZUlkZW50aWZpZXInLCBmYWxzZSksXG4gICAgZXh0cmFjdENoYXJhY3RlclN0cmluZygpXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEtpbmQocm9vdEVsOiBYbWxFbGVtZW50KTogUmVjb3JkS2luZCB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmROZXN0ZWRFbGVtZW50KCdnbWQ6aGllcmFyY2h5TGV2ZWwnLCAnZ21kOk1EX1Njb3BlQ29kZScpLFxuICAgIHJlYWRBdHRyaWJ1dGUoJ2NvZGVMaXN0VmFsdWUnKSxcbiAgICBtYXAoXG4gICAgICAoc2NvcGVDb2RlKTogUmVjb3JkS2luZCA9PlxuICAgICAgICBzY29wZUNvZGUgPT09ICdzZXJ2aWNlJyA/ICdzZXJ2aWNlJyA6ICdkYXRhc2V0J1xuICAgIClcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkT3duZXJPcmdhbml6YXRpb24ocm9vdEVsOiBYbWxFbGVtZW50KTogT3JnYW5pemF0aW9uIHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZE5lc3RlZEVsZW1lbnQoJ2dtZDpjb250YWN0JywgJ2dtZDpDSV9SZXNwb25zaWJsZVBhcnR5JyksXG4gICAgZXh0cmFjdE9yZ2FuaXphdGlvbigpXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFJlc291cmNlVXBkYXRlZChyb290RWw6IFhtbEVsZW1lbnQpOiBEYXRlIHtcbiAgcmV0dXJuIGV4dHJhY3RJZGVudGlmaWNhdGlvbkRhdGUoJ3JldmlzaW9uJykocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFJlc291cmNlQ3JlYXRlZChyb290RWw6IFhtbEVsZW1lbnQpOiBEYXRlIHtcbiAgcmV0dXJuIGV4dHJhY3RJZGVudGlmaWNhdGlvbkRhdGUoJ2NyZWF0aW9uJykocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFJlc291cmNlUHVibGlzaGVkKHJvb3RFbDogWG1sRWxlbWVudCk6IERhdGUge1xuICByZXR1cm4gZXh0cmFjdElkZW50aWZpY2F0aW9uRGF0ZSgncHVibGljYXRpb24nKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkUmVjb3JkVXBkYXRlZChyb290RWw6IFhtbEVsZW1lbnQpOiBEYXRlIHtcbiAgcmV0dXJuIHBpcGUoZmluZENoaWxkRWxlbWVudCgnZ21kOmRhdGVTdGFtcCcpLCBleHRyYWN0RGF0ZVRpbWUoKSkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFRpdGxlKHJvb3RFbDogWG1sRWxlbWVudCk6IHN0cmluZyB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmRJZGVudGlmaWNhdGlvbigpLFxuICAgIGZpbmROZXN0ZWRFbGVtZW50KCdnbWQ6Y2l0YXRpb24nLCAnZ21kOkNJX0NpdGF0aW9uJywgJ2dtZDp0aXRsZScpLFxuICAgIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKVxuICApKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRBYnN0cmFjdChyb290RWw6IFhtbEVsZW1lbnQpOiBzdHJpbmcge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kSWRlbnRpZmljYXRpb24oKSxcbiAgICBmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6YWJzdHJhY3QnLCBmYWxzZSksXG4gICAgZXh0cmFjdENoYXJhY3RlclN0cmluZygpXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZENvbnRhY3RzKHJvb3RFbDogWG1sRWxlbWVudCk6IEluZGl2aWR1YWxbXSB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmRDaGlsZHJlbkVsZW1lbnQoJ2dtZDpjb250YWN0JywgZmFsc2UpLFxuICAgIG1hcEFycmF5KGZpbmRDaGlsZEVsZW1lbnQoJ2dtZDpDSV9SZXNwb25zaWJsZVBhcnR5JywgZmFsc2UpKSxcbiAgICBtYXBBcnJheShleHRyYWN0SW5kaXZpZHVhbCgpKVxuICApKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRDb250YWN0c0ZvclJlc291cmNlKHJvb3RFbDogWG1sRWxlbWVudCk6IEluZGl2aWR1YWxbXSB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmRJZGVudGlmaWNhdGlvbigpLFxuICAgIGNvbWJpbmUoXG4gICAgICBmaW5kQ2hpbGRyZW5FbGVtZW50KCdnbWQ6Y29udGFjdCcsIGZhbHNlKSxcbiAgICAgIGZpbmRDaGlsZHJlbkVsZW1lbnQoJ2dtZDpwb2ludE9mQ29udGFjdCcsIGZhbHNlKVxuICAgICksXG4gICAgZmxhdHRlbkFycmF5KCksXG4gICAgbWFwQXJyYXkoZmluZENoaWxkRWxlbWVudCgnZ21kOkNJX1Jlc3BvbnNpYmxlUGFydHknLCBmYWxzZSkpLFxuICAgIG1hcEFycmF5KGV4dHJhY3RJbmRpdmlkdWFsKCkpXG4gICkocm9vdEVsKVxufVxuXG4vLyBmcm9tIGdtZDp0aGVzYXVydXNOYW1lXG5leHBvcnQgZnVuY3Rpb24gcmVhZFRoZXNhdXJ1cyhyb290RWw6IFhtbEVsZW1lbnQpOiBLZXl3b3JkVGhlc2F1cnVzIHtcbiAgaWYgKCFyb290RWwpIHJldHVybiBudWxsXG5cbiAgY29uc3QgZmluZElkZW50aWZpZXIgPSBmaW5kTmVzdGVkRWxlbWVudChcbiAgICAnZ21kOkNJX0NpdGF0aW9uJyxcbiAgICAnZ21kOmlkZW50aWZpZXInLFxuICAgICdnbWQ6TURfSWRlbnRpZmllcicsXG4gICAgJ2dtZDpjb2RlJ1xuICApXG4gIGNvbnN0IGlkID0gcGlwZShmaW5kSWRlbnRpZmllciwgZXh0cmFjdENoYXJhY3RlclN0cmluZygpKShyb290RWwpXG4gIGNvbnN0IHVybCA9IHBpcGUoZmluZElkZW50aWZpZXIsIGV4dHJhY3RVcmwoKSkocm9vdEVsKVxuICBjb25zdCBuYW1lID0gcGlwZShcbiAgICBmaW5kTmVzdGVkRWxlbWVudCgnZ21kOkNJX0NpdGF0aW9uJywgJ2dtZDp0aXRsZScpLFxuICAgIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKVxuICApKHJvb3RFbClcbiAgcmV0dXJuIHtcbiAgICBpZCxcbiAgICAuLi4obmFtZSAmJiB7IG5hbWUgfSksXG4gICAgLi4uKHVybCAmJiB7IHVybCB9KSxcbiAgfVxufVxuXG4vLyBmcm9tIGdtZDpNRF9LZXl3b3Jkc1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRLZXl3b3JkR3JvdXAocm9vdEVsOiBYbWxFbGVtZW50KTogS2V5d29yZFtdIHtcbiAgY29uc3QgdHlwZSA9IHBpcGUoXG4gICAgZmluZENoaWxkcmVuRWxlbWVudCgnZ21kOk1EX0tleXdvcmRUeXBlQ29kZScpLFxuICAgIG1hcEFycmF5KHJlYWRBdHRyaWJ1dGUoJ2NvZGVMaXN0VmFsdWUnKSksXG4gICAgbWFwKCh2YWx1ZXMpID0+IGdldEtleXdvcmRUeXBlRnJvbUtleXdvcmRUeXBlQ29kZSh2YWx1ZXNbMF0pKVxuICApKHJvb3RFbClcbiAgY29uc3QgdGhlc2F1cnVzID0gcGlwZShcbiAgICBmaW5kTmVzdGVkRWxlbWVudCgnZ21kOnRoZXNhdXJ1c05hbWUnKSxcbiAgICByZWFkVGhlc2F1cnVzXG4gICkocm9vdEVsKVxuICByZXR1cm4gcGlwZShcbiAgICBmaW5kQ2hpbGRyZW5FbGVtZW50KCdnbWQ6a2V5d29yZCcpLFxuICAgIG1hcEFycmF5KChlbCkgPT4ge1xuICAgICAgY29uc3QgbGFiZWwgPSBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKCkoZWwpXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi4odGhlc2F1cnVzID8geyB0aGVzYXVydXMgfSA6IHt9KSxcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIHR5cGUsXG4gICAgICB9IGFzIEtleXdvcmRcbiAgICB9KVxuICApKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRLZXl3b3Jkcyhyb290RWw6IFhtbEVsZW1lbnQpOiBLZXl3b3JkW10ge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kSWRlbnRpZmljYXRpb24oKSxcbiAgICBmaW5kTmVzdGVkRWxlbWVudHMoJ2dtZDpkZXNjcmlwdGl2ZUtleXdvcmRzJywgJ2dtZDpNRF9LZXl3b3JkcycpLFxuICAgIG1hcEFycmF5KHJlYWRLZXl3b3JkR3JvdXApLFxuICAgIGZsYXR0ZW5BcnJheSgpXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFN0YXR1cyhyb290RWw6IFhtbEVsZW1lbnQpOiBSZWNvcmRTdGF0dXMge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kSWRlbnRpZmljYXRpb24oKSxcbiAgICBmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6c3RhdHVzJywgZmFsc2UpLFxuICAgIGV4dHJhY3RTdGF0dXMoKVxuICApKHJvb3RFbClcbn1cblxuY29uc3QgZ2V0Q29uc3RyYWludHMgPSBwaXBlKFxuICBmaW5kSWRlbnRpZmljYXRpb24oKSxcbiAgZmluZENoaWxkcmVuRWxlbWVudCgnZ21kOnJlc291cmNlQ29uc3RyYWludHMnLCBmYWxzZSlcbilcblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRMZWdhbENvbnN0cmFpbnRzKHJvb3RFbDogWG1sRWxlbWVudCk6IENvbnN0cmFpbnRbXSB7XG4gIHJldHVybiBwaXBlKFxuICAgIGdldENvbnN0cmFpbnRzLFxuICAgIG1hcEFycmF5KGV4dHJhY3RMZWdhbENvbnN0cmFpbnRzKCkpLFxuICAgIGZsYXR0ZW5BcnJheSgpLFxuICAgIGZsYXR0ZW5BcnJheSgpXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFNlY3VyaXR5Q29uc3RyYWludHMocm9vdEVsOiBYbWxFbGVtZW50KTogQ29uc3RyYWludFtdIHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZ2V0Q29uc3RyYWludHMsXG4gICAgbWFwQXJyYXkoZXh0cmFjdFNlY3VyaXR5Q29uc3RyYWludHMoKSksXG4gICAgZmxhdHRlbkFycmF5KClcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkT3RoZXJDb25zdHJhaW50cyhyb290RWw6IFhtbEVsZW1lbnQpOiBDb25zdHJhaW50W10ge1xuICByZXR1cm4gcGlwZShcbiAgICBnZXRDb25zdHJhaW50cyxcbiAgICBtYXBBcnJheShleHRyYWN0T3RoZXJDb25zdHJhaW50cygpKSxcbiAgICBmbGF0dGVuQXJyYXkoKVxuICApKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRMaWNlbnNlcyhyb290RWw6IFhtbEVsZW1lbnQpOiBDb25zdHJhaW50W10ge1xuICByZXR1cm4gcGlwZShcbiAgICBnZXRDb25zdHJhaW50cyxcbiAgICBtYXBBcnJheShleHRyYWN0TGljZW5zZXMoKSksXG4gICAgZmxhdHRlbkFycmF5KClcbiAgKShyb290RWwpXG59XG5cbi8vIG5vdCB1c2VkIHlldFxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRJc29Ub3BpY3Mocm9vdEVsOiBYbWxFbGVtZW50KTogc3RyaW5nW10ge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kSWRlbnRpZmljYXRpb24oKSxcbiAgICBmaW5kQ2hpbGRyZW5FbGVtZW50KCdnbWQ6TURfVG9waWNDYXRlZ29yeUNvZGUnLCB0cnVlKSxcbiAgICBtYXBBcnJheShyZWFkVGV4dCgpKVxuICApKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRTcGF0aWFsUmVwcmVzZW50YXRpb24oXG4gIHJvb3RFbDogWG1sRWxlbWVudFxuKTogU3BhdGlhbFJlcHJlc2VudGF0aW9uVHlwZSB8IG51bGwge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kSWRlbnRpZmljYXRpb24oKSxcbiAgICBmaW5kTmVzdGVkRWxlbWVudChcbiAgICAgICdnbWQ6c3BhdGlhbFJlcHJlc2VudGF0aW9uVHlwZScsXG4gICAgICAnZ21kOk1EX1NwYXRpYWxSZXByZXNlbnRhdGlvblR5cGVDb2RlJ1xuICAgICksXG4gICAgcmVhZEF0dHJpYnV0ZSgnY29kZUxpc3RWYWx1ZScpLFxuICAgIG1hcChnZXRTcGF0aWFsUmVwcmVzZW50YXRpb25Gcm9tQ29kZSlcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkT3ZlcnZpZXdzKHJvb3RFbDogWG1sRWxlbWVudCk6IEdyYXBoaWNPdmVydmlld1tdIHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZElkZW50aWZpY2F0aW9uKCksXG4gICAgZmluZENoaWxkcmVuRWxlbWVudCgnZ21kOmdyYXBoaWNPdmVydmlldycsIGZhbHNlKSxcbiAgICBtYXBBcnJheShcbiAgICAgIGNvbWJpbmUoXG4gICAgICAgIHBpcGUoZmluZENoaWxkRWxlbWVudCgnZ21kOmZpbGVOYW1lJyksIGV4dHJhY3RNYW5kYXRvcnlVcmwoKSksXG4gICAgICAgIHBpcGUoZmluZENoaWxkRWxlbWVudCgnZ21kOmZpbGVEZXNjcmlwdGlvbicpLCBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKCkpXG4gICAgICApXG4gICAgKSxcbiAgICBtYXBBcnJheSgoW3VybCwgZGVzY3JpcHRpb25dKSA9PiAoe1xuICAgICAgdXJsLFxuICAgICAgLi4uKGRlc2NyaXB0aW9uICYmIHsgZGVzY3JpcHRpb24gfSksXG4gICAgfSkpXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZExpbmVhZ2Uocm9vdEVsOiBYbWxFbGVtZW50KTogc3RyaW5nIHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZE5lc3RlZEVsZW1lbnQoXG4gICAgICAnZ21kOmRhdGFRdWFsaXR5SW5mbycsXG4gICAgICAnZ21kOkRRX0RhdGFRdWFsaXR5JyxcbiAgICAgICdnbWQ6bGluZWFnZScsXG4gICAgICAnZ21kOkxJX0xpbmVhZ2UnLFxuICAgICAgJ2dtZDpzdGF0ZW1lbnQnXG4gICAgKSxcbiAgICBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKClcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkRGlzdHJpYnV0aW9ucyhyb290RWw6IFhtbEVsZW1lbnQpOiBEYXRhc2V0RGlzdHJpYnV0aW9uW10ge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kTmVzdGVkRWxlbWVudHMoJ2dtZDpkaXN0cmlidXRpb25JbmZvJywgJ2dtZDpNRF9EaXN0cmlidXRpb24nKSxcbiAgICBtYXBBcnJheShleHRyYWN0RGF0YXNldERpc3RyaWJ1dGlvbnMoZ2V0TWltZVR5cGUpKSxcbiAgICBmbGF0dGVuQXJyYXkoKVxuICApKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRVcGRhdGVGcmVxdWVuY3kocm9vdEVsOiBYbWxFbGVtZW50KTogVXBkYXRlRnJlcXVlbmN5IHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZElkZW50aWZpY2F0aW9uKCksXG4gICAgZmluZE5lc3RlZEVsZW1lbnQoXG4gICAgICAnZ21kOnJlc291cmNlTWFpbnRlbmFuY2UnLFxuICAgICAgJ2dtZDpNRF9NYWludGVuYW5jZUluZm9ybWF0aW9uJ1xuICAgICksXG4gICAgZXh0cmFjdFVwZGF0ZUZyZXF1ZW5jeSgpLFxuICAgIG1hcCgodXBkYXRlRnJlcXVlbmN5KSA9PiB1cGRhdGVGcmVxdWVuY3kgfHwgJ3Vua25vd24nKVxuICApKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RTZXJ2aWNlT25saW5lUmVzb3VyY2VzKCk6IENoYWluYWJsZUZ1bmN0aW9uPFxuICBYbWxFbGVtZW50LFxuICBTZXJ2aWNlT25saW5lUmVzb3VyY2VbXVxuPiB7XG4gIGNvbnN0IGdldFVybCA9IHBpcGUoZmluZENoaWxkRWxlbWVudCgnZ21kOmxpbmthZ2UnKSwgZXh0cmFjdE1hbmRhdG9yeVVybCgpKVxuICBjb25zdCBnZXRQcm90b2NvbFN0ciA9IHBpcGUoXG4gICAgZmluZENoaWxkRWxlbWVudCgnZ21kOnByb3RvY29sJyksXG4gICAgZXh0cmFjdENoYXJhY3RlclN0cmluZygpXG4gIClcbiAgY29uc3QgZ2V0UHJvdG9jb2wgPSBwaXBlKGdldFByb3RvY29sU3RyLCBtYXAobWF0Y2hQcm90b2NvbCkpXG4gIGNvbnN0IGdldE9ubGluZUZ1bmN0aW9uID0gcGlwZShcbiAgICBmaW5kTmVzdGVkRWxlbWVudCgnZ21kOmZ1bmN0aW9uJywgJ2dtZDpDSV9PbkxpbmVGdW5jdGlvbkNvZGUnKSxcbiAgICByZWFkQXR0cmlidXRlKCdjb2RlTGlzdFZhbHVlJylcbiAgKVxuICBjb25zdCBnZXRJc0xpbmsgPSBwaXBlKFxuICAgIGdldE9ubGluZUZ1bmN0aW9uLFxuICAgIG1hcCgob25saW5lRnVuY3Rpb24pID0+IG9ubGluZUZ1bmN0aW9uID09PSAnaW5mb3JtYXRpb24nKVxuICApXG4gIGNvbnN0IGdldE5hbWUgPSBwaXBlKGZpbmRDaGlsZEVsZW1lbnQoJ2dtZDpuYW1lJyksIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKSlcbiAgY29uc3QgZ2V0RGVzY3JpcHRpb24gPSBwaXBlKFxuICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2dtZDpkZXNjcmlwdGlvbicpLFxuICAgIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKVxuICApXG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmROZXN0ZWRFbGVtZW50cyhcbiAgICAgICdnbWQ6dHJhbnNmZXJPcHRpb25zJyxcbiAgICAgICdnbWQ6TURfRGlnaXRhbFRyYW5zZmVyT3B0aW9ucycsXG4gICAgICAnZ21kOm9uTGluZScsXG4gICAgICAnZ21kOkNJX09ubGluZVJlc291cmNlJ1xuICAgICksXG4gICAgbWFwQXJyYXkoY29tYmluZShnZXRJc0xpbmssIGdldFByb3RvY29sLCBnZXRVcmwsIGdldE5hbWUsIGdldERlc2NyaXB0aW9uKSksXG4gICAgbWFwQXJyYXkoKFtpc0xpbmssIHByb3RvY29sLCB1cmwsIG5hbWUsIGRlc2NyaXB0aW9uXSkgPT4ge1xuICAgICAgaWYgKGlzTGluaykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHR5cGU6ICdsaW5rJyxcbiAgICAgICAgICB1cmw6IHVybCxcbiAgICAgICAgICAuLi4obmFtZSAmJiB7IG5hbWUgfSksXG4gICAgICAgICAgLi4uKGRlc2NyaXB0aW9uICYmIHsgZGVzY3JpcHRpb24gfSksXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHlwZTogJ2VuZHBvaW50JyxcbiAgICAgICAgICBlbmRwb2ludFVybDogdXJsLFxuICAgICAgICAgIHByb3RvY29sLFxuICAgICAgICAgIC4uLihkZXNjcmlwdGlvbiAmJiB7IGRlc2NyaXB0aW9uIH0pLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZE9ubGluZVJlc291cmNlcyhcbiAgcm9vdEVsOiBYbWxFbGVtZW50XG4pOiBTZXJ2aWNlT25saW5lUmVzb3VyY2VbXSB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmROZXN0ZWRFbGVtZW50cygnZ21kOmRpc3RyaWJ1dGlvbkluZm8nLCAnZ21kOk1EX0Rpc3RyaWJ1dGlvbicpLFxuICAgIG1hcEFycmF5KGV4dHJhY3RTZXJ2aWNlT25saW5lUmVzb3VyY2VzKCkpLFxuICAgIGZsYXR0ZW5BcnJheSgpXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFRlbXBvcmFsRXh0ZW50cyhyb290RWw6IFhtbEVsZW1lbnQpIHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZElkZW50aWZpY2F0aW9uKCksXG4gICAgZmluZE5lc3RlZEVsZW1lbnRzKCdnbWQ6ZXh0ZW50JywgJ2dtZDpFWF9FeHRlbnQnLCAnZ21kOnRlbXBvcmFsRWxlbWVudCcpLFxuICAgIG1hcEFycmF5KFxuICAgICAgY29tYmluZShcbiAgICAgICAgZmluZE5lc3RlZEVsZW1lbnQoXG4gICAgICAgICAgJ2dtZDpFWF9UZW1wb3JhbEV4dGVudCcsXG4gICAgICAgICAgJ2dtZDpleHRlbnQnLFxuICAgICAgICAgICdnbWw6VGltZVBlcmlvZCdcbiAgICAgICAgKSxcbiAgICAgICAgZmluZE5lc3RlZEVsZW1lbnQoXG4gICAgICAgICAgJ2dtZDpFWF9UZW1wb3JhbEV4dGVudCcsXG4gICAgICAgICAgJ2dtZDpleHRlbnQnLFxuICAgICAgICAgICdnbWw6VGltZUluc3RhbnQnXG4gICAgICAgIClcbiAgICAgIClcbiAgICApLFxuICAgIG1hcEFycmF5KChbcGVyaW9kRWwsIGluc3RhbnRFbF0pID0+IHtcbiAgICAgIGlmIChwZXJpb2RFbCkge1xuICAgICAgICByZXR1cm4gcGlwZShcbiAgICAgICAgICBjb21iaW5lKFxuICAgICAgICAgICAgcGlwZShcbiAgICAgICAgICAgICAgZmluZENoaWxkRWxlbWVudCgnZ21sOmJlZ2luUG9zaXRpb24nLCBmYWxzZSksXG4gICAgICAgICAgICAgIHJlYWRUZXh0KCksXG4gICAgICAgICAgICAgIG1hcCgoZGF0ZVN0cikgPT4gKGRhdGVTdHIgPyBuZXcgRGF0ZShkYXRlU3RyKSA6IG51bGwpKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHBpcGUoXG4gICAgICAgICAgICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2dtbDplbmRQb3NpdGlvbicsIGZhbHNlKSxcbiAgICAgICAgICAgICAgcmVhZFRleHQoKSxcbiAgICAgICAgICAgICAgbWFwKChkYXRlU3RyKSA9PiAoZGF0ZVN0ciA/IG5ldyBEYXRlKGRhdGVTdHIpIDogbnVsbCkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKSxcbiAgICAgICAgICBtYXAoKFtzdGFydCwgZW5kXSkgPT4gKHtcbiAgICAgICAgICAgIHN0YXJ0LFxuICAgICAgICAgICAgZW5kLFxuICAgICAgICAgIH0pKVxuICAgICAgICApKHBlcmlvZEVsKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHBpcGUoXG4gICAgICAgICAgZmluZENoaWxkRWxlbWVudCgnZ21sOnRpbWVQb3NpdGlvbicsIGZhbHNlKSxcbiAgICAgICAgICByZWFkVGV4dCgpLFxuICAgICAgICAgIG1hcCgoZGF0ZVN0cikgPT4gKGRhdGVTdHIgPyBuZXcgRGF0ZShkYXRlU3RyKSA6IG51bGwpKSxcbiAgICAgICAgICBtYXAoKGRhdGUpID0+ICh7XG4gICAgICAgICAgICBzdGFydDogZGF0ZSxcbiAgICAgICAgICB9KSlcbiAgICAgICAgKShpbnN0YW50RWwpXG4gICAgICB9XG4gICAgfSlcbiAgKShyb290RWwpXG59XG4iXX0=
372
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1wYXJ0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL21ldGFkYXRhLWNvbnZlcnRlci9zcmMvbGliL2lzbzE5MTM5L3JlYWQtcGFydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUM1RSxPQUFPLEVBRUwsT0FBTyxFQUNQLFFBQVEsRUFDUixXQUFXLEVBQ1gsWUFBWSxFQUNaLFVBQVUsRUFDVixHQUFHLEVBQ0gsUUFBUSxFQUNSLElBQUksR0FDTCxNQUFNLG1CQUFtQixDQUFBO0FBQzFCLE9BQU8sRUFFTCxnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsVUFBVSxFQUNWLGFBQWEsRUFDYixRQUFRLEdBQ1QsTUFBTSxjQUFjLENBQUE7QUFDckIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3pELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQy9ELE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBR3JGLE1BQU0sVUFBVSxzQkFBc0I7SUFJcEMsT0FBTyxJQUFJLENBQ1QsUUFBUSxDQUNOLGdCQUFnQixDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxFQUM5QyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQ3RDLEVBQ0QsUUFBUSxFQUFFLENBQ1gsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZTtJQUM3QixPQUFPLElBQUksQ0FDVCxRQUFRLENBQ04sZ0JBQWdCLENB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SUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNiLEtBQUssRUFBRSxJQUFJO2FBQ1osQ0FBQyxDQUFDLENBQ0osQ0FBQyxTQUFTLENBQUMsQ0FBQTtTQUNiO0lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb25zdHJhaW50LFxuICBEYXRhc2V0RGlzdHJpYnV0aW9uLFxuICBHcmFwaGljT3ZlcnZpZXcsXG4gIEluZGl2aWR1YWwsXG4gIEtleXdvcmQsXG4gIE9yZ2FuaXphdGlvbixcbiAgUmVjb3JkS2luZCxcbiAgUmVjb3JkU3RhdHVzLFxuICBSb2xlLFxuICBTZXJ2aWNlT25saW5lUmVzb3VyY2UsXG4gIFNwYXRpYWxSZXByZXNlbnRhdGlvblR5cGUsXG4gIFVwZGF0ZUZyZXF1ZW5jeSxcbiAgVXBkYXRlRnJlcXVlbmN5Q3VzdG9tLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBtYXRjaE1pbWVUeXBlLCBtYXRjaFByb3RvY29sIH0gZnJvbSAnLi4vY29tbW9uL2Rpc3RyaWJ1dGlvbi5tYXBwZXInXG5pbXBvcnQge1xuICBDaGFpbmFibGVGdW5jdGlvbixcbiAgY29tYmluZSxcbiAgZmFsbGJhY2ssXG4gIGZpbHRlckFycmF5LFxuICBmbGF0dGVuQXJyYXksXG4gIGdldEF0SW5kZXgsXG4gIG1hcCxcbiAgbWFwQXJyYXksXG4gIHBpcGUsXG59IGZyb20gJy4uL2Z1bmN0aW9uLXV0aWxzJ1xuaW1wb3J0IHtcbiAgWG1sRWxlbWVudCxcbiAgZmluZENoaWxkRWxlbWVudCxcbiAgZmluZENoaWxkcmVuRWxlbWVudCxcbiAgZmluZE5lc3RlZEVsZW1lbnQsXG4gIGZpbmROZXN0ZWRFbGVtZW50cyxcbiAgZmluZFBhcmVudCxcbiAgcmVhZEF0dHJpYnV0ZSxcbiAgcmVhZFRleHQsXG59IGZyb20gJy4uL3htbC11dGlscydcbmltcG9ydCB7IGZ1bGxOYW1lVG9QYXJ0cyB9IGZyb20gJy4vdXRpbHMvaW5kaXZpZHVhbC1uYW1lJ1xuaW1wb3J0IHsgZ2V0S2V5d29yZFR5cGVGcm9tS2V5d29yZFR5cGVDb2RlIH0gZnJvbSAnLi91dGlscy9rZXl3b3JkLm1hcHBlcidcbmltcG9ydCB7IGdldFJvbGVGcm9tUm9sZUNvZGUgfSBmcm9tICcuL3V0aWxzL3JvbGUubWFwcGVyJ1xuaW1wb3J0IHsgZ2V0U3RhdHVzRnJvbVN0YXR1c0NvZGUgfSBmcm9tICcuL3V0aWxzL3N0YXR1cy5tYXBwZXInXG5pbXBvcnQgeyBnZXRVcGRhdGVGcmVxdWVuY3lGcm9tRnJlcXVlbmN5Q29kZSB9IGZyb20gJy4vdXRpbHMvdXBkYXRlLWZyZXF1ZW5jeS5tYXBwZXInXG5pbXBvcnQgeyBUaGVzYXVydXNNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3RoZXNhdXJ1cydcblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKTogQ2hhaW5hYmxlRnVuY3Rpb248XG4gIFhtbEVsZW1lbnQsXG4gIHN0cmluZ1xuPiB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZhbGxiYWNrKFxuICAgICAgZmluZENoaWxkRWxlbWVudCgnZ2NvOkNoYXJhY3RlclN0cmluZycsIGZhbHNlKSxcbiAgICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2dteDpBbmNob3InLCBmYWxzZSlcbiAgICApLFxuICAgIHJlYWRUZXh0KClcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdERhdGVUaW1lKCk6IENoYWluYWJsZUZ1bmN0aW9uPFhtbEVsZW1lbnQsIERhdGU+IHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmFsbGJhY2soXG4gICAgICBmaW5kQ2hpbGRFbGVtZW50KCdnY286RGF0ZVRpbWUnLCBmYWxzZSksXG4gICAgICBmaW5kQ2hpbGRFbGVtZW50KCdnY286RGF0ZScsIGZhbHNlKVxuICAgICksXG4gICAgcmVhZFRleHQoKSxcbiAgICBtYXAoKGRhdGVTdHIpID0+IChkYXRlU3RyID8gbmV3IERhdGUoZGF0ZVN0cikgOiBudWxsKSlcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFVybCgpOiBDaGFpbmFibGVGdW5jdGlvbjxYbWxFbGVtZW50LCBVUkw+IHtcbiAgY29uc3QgZ2V0VXJsID0gcGlwZShmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6VVJMJywgZmFsc2UpLCByZWFkVGV4dCgpKVxuICBjb25zdCBnZXRDaGFyYWN0ZXJTdHJpbmcgPSBwaXBlKFxuICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2djbzpDaGFyYWN0ZXJTdHJpbmcnLCBmYWxzZSksXG4gICAgcmVhZFRleHQoKVxuICApXG4gIGNvbnN0IGdldEFuY2hvciA9IHBpcGUoXG4gICAgZmluZENoaWxkRWxlbWVudCgnZ214OkFuY2hvcicsIGZhbHNlKSxcbiAgICByZWFkQXR0cmlidXRlKCd4bGluazpocmVmJylcbiAgKVxuICByZXR1cm4gcGlwZShcbiAgICBmYWxsYmFjayhnZXRVcmwsIGdldEFuY2hvciwgZ2V0Q2hhcmFjdGVyU3RyaW5nKSxcbiAgICBtYXAoKHVybFN0cikgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIG5ldyBVUkwodXJsU3RyKVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuICAgIH0pXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RNYW5kYXRvcnlVcmwoKSB7XG4gIHJldHVybiBmYWxsYmFjayhleHRyYWN0VXJsKCksICgpID0+IG5ldyBVUkwoJ2h0dHA6Ly9taXNzaW5nJykpXG59XG5cbi8vIGZyb20gZ21kOnJvbGVcbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0Um9sZSgpOiBDaGFpbmFibGVGdW5jdGlvbjxYbWxFbGVtZW50LCBSb2xlPiB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2dtZDpDSV9Sb2xlQ29kZScpLFxuICAgIHJlYWRBdHRyaWJ1dGUoJ2NvZGVMaXN0VmFsdWUnKSxcbiAgICBtYXAoZ2V0Um9sZUZyb21Sb2xlQ29kZSlcbiAgKVxufVxuXG4vLyBmcm9tIGdtZDpDSV9SZXNwb25zaWJsZVBhcnR5XG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdE9yZ2FuaXphdGlvbigpOiBDaGFpbmFibGVGdW5jdGlvbjxcbiAgWG1sRWxlbWVudCxcbiAgT3JnYW5pemF0aW9uXG4+IHtcbiAgY29uc3QgZ2V0VXJsID0gcGlwZShcbiAgICBmaW5kTmVzdGVkRWxlbWVudHMoXG4gICAgICAnZ21kOmNvbnRhY3RJbmZvJyxcbiAgICAgICdnbWQ6Q0lfQ29udGFjdCcsXG4gICAgICAnZ21kOm9ubGluZVJlc291cmNlJyxcbiAgICAgICdnbWQ6Q0lfT25saW5lUmVzb3VyY2UnLFxuICAgICAgJ2dtZDpsaW5rYWdlJ1xuICAgICksXG4gICAgZ2V0QXRJbmRleCgwKSxcbiAgICBleHRyYWN0VXJsKClcbiAgKVxuICByZXR1cm4gcGlwZShcbiAgICBjb21iaW5lKFxuICAgICAgcGlwZShcbiAgICAgICAgZmluZENoaWxkRWxlbWVudCgnZ21kOm9yZ2FuaXNhdGlvbk5hbWUnLCBmYWxzZSksXG4gICAgICAgIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKVxuICAgICAgKSxcbiAgICAgIGdldFVybFxuICAgICksXG4gICAgbWFwKChbbmFtZSwgd2Vic2l0ZV0pID0+ICh7XG4gICAgICBuYW1lLFxuICAgICAgLi4uKHdlYnNpdGUgJiYgeyB3ZWJzaXRlIH0pLFxuICAgIH0pKVxuICApXG59XG5cbi8vIGZyb20gZ21kOkNJX1Jlc3BvbnNpYmxlUGFydHlcbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0SW5kaXZpZHVhbCgpOiBDaGFpbmFibGVGdW5jdGlvbjxYbWxFbGVtZW50LCBJbmRpdmlkdWFsPiB7XG4gIGNvbnN0IGdldFJvbGUgPSBwaXBlKGZpbmRDaGlsZEVsZW1lbnQoJ2dtZDpyb2xlJyksIGV4dHJhY3RSb2xlKCkpXG4gIGNvbnN0IGdldFBvc2l0aW9uID0gcGlwZShcbiAgICBmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6cG9zaXRpb25OYW1lJyksXG4gICAgZXh0cmFjdENoYXJhY3RlclN0cmluZygpXG4gIClcbiAgY29uc3QgZ2V0TmFtZVBhcnRzID0gcGlwZShcbiAgICBmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6aW5kaXZpZHVhbE5hbWUnKSxcbiAgICBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKCksXG4gICAgbWFwKChmdWxsTmFtZSkgPT4ge1xuICAgICAgaWYgKCFmdWxsTmFtZSkgcmV0dXJuIFtdXG4gICAgICByZXR1cm4gZnVsbE5hbWVUb1BhcnRzKGZ1bGxOYW1lKVxuICAgIH0pXG4gIClcbiAgY29uc3QgZ2V0T3JnYW5pemF0aW9uID0gZXh0cmFjdE9yZ2FuaXphdGlvbigpXG4gIGNvbnN0IGdldENvbnRhY3RSb290ID0gZmluZE5lc3RlZEVsZW1lbnQoJ2dtZDpjb250YWN0SW5mbycsICdnbWQ6Q0lfQ29udGFjdCcpXG4gIGNvbnN0IGdldEVtYWlsID0gcGlwZShcbiAgICBnZXRDb250YWN0Um9vdCxcbiAgICBmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6ZWxlY3Ryb25pY01haWxBZGRyZXNzJyksXG4gICAgZXh0cmFjdENoYXJhY3RlclN0cmluZygpLFxuICAgIG1hcCgoZW1haWwpID0+IChlbWFpbCA9PT0gbnVsbCA/ICdtaXNzaW5nQG1pc3NpbmcuY29tJyA6IGVtYWlsKSlcbiAgKVxuICBjb25zdCBnZXRBZGRyZXNzID0gcGlwZShcbiAgICBnZXRDb250YWN0Um9vdCxcbiAgICBmaW5kTmVzdGVkRWxlbWVudCgnZ21kOmFkZHJlc3MnLCAnZ21kOkNJX0FkZHJlc3MnKSxcbiAgICBjb21iaW5lKFxuICAgICAgcGlwZShcbiAgICAgICAgZmluZENoaWxkRWxlbWVudCgnZ21kOmRlbGl2ZXJ5UG9pbnQnLCBmYWxzZSksXG4gICAgICAgIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKVxuICAgICAgKSxcbiAgICAgIHBpcGUoZmluZENoaWxkRWxlbWVudCgnZ21kOmNpdHknLCBmYWxzZSksIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKSksXG4gICAgICBwaXBlKGZpbmRDaGlsZEVsZW1lbnQoJ2dtZDpwb3N0YWxDb2RlJywgZmFsc2UpLCBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKCkpLFxuICAgICAgcGlwZShmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6Y291bnRyeScsIGZhbHNlKSwgZXh0cmFjdENoYXJhY3RlclN0cmluZygpKVxuICAgICksXG4gICAgbWFwKChwYXJ0cykgPT4gcGFydHMuZmlsdGVyKChwKSA9PiAhIXApLmpvaW4oJywgJykpXG4gIClcbiAgY29uc3QgZ2V0UGhvbmUgPSBwaXBlKFxuICAgIGdldENvbnRhY3RSb290LFxuICAgIGZpbmROZXN0ZWRFbGVtZW50KCdnbWQ6cGhvbmUnLCAnZ21kOkNJX1RlbGVwaG9uZScsICdnbWQ6dm9pY2UnKSxcbiAgICBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKClcbiAgKVxuICByZXR1cm4gcGlwZShcbiAgICBjb21iaW5lKFxuICAgICAgZ2V0Um9sZSxcbiAgICAgIGdldFBvc2l0aW9uLFxuICAgICAgZ2V0TmFtZVBhcnRzLFxuICAgICAgZ2V0T3JnYW5pemF0aW9uLFxuICAgICAgZ2V0RW1haWwsXG4gICAgICBnZXRBZGRyZXNzLFxuICAgICAgZ2V0UGhvbmVcbiAgICApLFxuICAgIG1hcChcbiAgICAgIChbXG4gICAgICAgIHJvbGUsXG4gICAgICAgIHBvc2l0aW9uLFxuICAgICAgICBbZmlyc3ROYW1lLCBsYXN0TmFtZV0sXG4gICAgICAgIG9yZ2FuaXphdGlvbixcbiAgICAgICAgZW1haWwsXG4gICAgICAgIGFkZHJlc3MsXG4gICAgICAgIHBob25lLFxuICAgICAgXSkgPT4gKHtcbiAgICAgICAgZW1haWwsXG4gICAgICAgIHJvbGUsXG4gICAgICAgIG9yZ2FuaXphdGlvbixcbiAgICAgICAgLi4uKHBvc2l0aW9uICYmIHsgcG9zaXRpb24gfSksXG4gICAgICAgIC4uLihmaXJzdE5hbWUgJiYgeyBmaXJzdE5hbWUgfSksXG4gICAgICAgIC4uLihsYXN0TmFtZSAmJiB7IGxhc3ROYW1lIH0pLFxuICAgICAgICAuLi4oYWRkcmVzcyAmJiB7IGFkZHJlc3MgfSksXG4gICAgICAgIC4uLihwaG9uZSAmJiB7IHBob25lIH0pLFxuICAgICAgfSlcbiAgICApXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RTdGF0dXMoKTogQ2hhaW5hYmxlRnVuY3Rpb248WG1sRWxlbWVudCwgUmVjb3JkU3RhdHVzPiB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2dtZDpNRF9Qcm9ncmVzc0NvZGUnKSxcbiAgICByZWFkQXR0cmlidXRlKCdjb2RlTGlzdFZhbHVlJyksXG4gICAgbWFwKGdldFN0YXR1c0Zyb21TdGF0dXNDb2RlKVxuICApXG59XG5cbi8vIGZyb20gZ21kOnJlc291cmNlQ29uc3RyYWludHNcbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0TGVnYWxDb25zdHJhaW50cygpOiBDaGFpbmFibGVGdW5jdGlvbjxcbiAgWG1sRWxlbWVudCxcbiAgQXJyYXk8Q29uc3RyYWludD5cbj4ge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kQ2hpbGRyZW5FbGVtZW50KCdnbWQ6TURfTGVnYWxDb25zdHJhaW50cycsIGZhbHNlKSxcbiAgICBmaWx0ZXJBcnJheShcbiAgICAgIHBpcGUoXG4gICAgICAgIGZpbmRDaGlsZHJlbkVsZW1lbnQoJ2dtZDpNRF9SZXN0cmljdGlvbkNvZGUnKSxcbiAgICAgICAgbWFwQXJyYXkocmVhZEF0dHJpYnV0ZSgnY29kZUxpc3RWYWx1ZScpKSxcbiAgICAgICAgbWFwKCh2YWx1ZXMpID0+IHZhbHVlcy5pbmRleE9mKCdsaWNlbnNlJykgPT09IC0xKVxuICAgICAgKVxuICAgICksXG4gICAgbWFwQXJyYXkoXG4gICAgICBjb21iaW5lKFxuICAgICAgICBmaW5kQ2hpbGRyZW5FbGVtZW50KCdnbWQ6b3RoZXJDb25zdHJhaW50cycpLFxuICAgICAgICBmaW5kQ2hpbGRyZW5FbGVtZW50KCdnbWQ6dXNlTGltaXRhdGlvbicpXG4gICAgICApXG4gICAgKSxcbiAgICBmbGF0dGVuQXJyYXkoKSxcbiAgICBmbGF0dGVuQXJyYXkoKSxcbiAgICBtYXBBcnJheShjb21iaW5lKGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKSwgZXh0cmFjdFVybCgpKSksXG4gICAgbWFwQXJyYXkoKFt0ZXh0LCB1cmxdKSA9PiAoe1xuICAgICAgLi4uKHVybCAmJiB7IHVybCB9KSxcbiAgICAgIHRleHQsXG4gICAgfSkpXG4gIClcbn1cblxuLy8gZnJvbSBnbWQ6cmVzb3VyY2VDb25zdHJhaW50c1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RTZWN1cml0eUNvbnN0cmFpbnRzKCk6IENoYWluYWJsZUZ1bmN0aW9uPFxuICBYbWxFbGVtZW50LFxuICBBcnJheTxDb25zdHJhaW50PlxuPiB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmROZXN0ZWRFbGVtZW50cygnZ21kOk1EX1NlY3VyaXR5Q29uc3RyYWludHMnLCAnZ21kOnVzZUxpbWl0YXRpb24nKSxcbiAgICBmbGF0dGVuQXJyYXkoKSxcbiAgICBtYXBBcnJheShjb21iaW5lKGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKSwgZXh0cmFjdFVybCgpKSksXG4gICAgbWFwQXJyYXkoKFt0ZXh0LCB1cmxdKSA9PiAoe1xuICAgICAgLi4uKHVybCAmJiB7IHVybCB9KSxcbiAgICAgIHRleHQsXG4gICAgfSkpXG4gIClcbn1cblxuLy8gZnJvbSBnbWQ6cmVzb3VyY2VDb25zdHJhaW50c1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RPdGhlckNvbnN0cmFpbnRzKCk6IENoYWluYWJsZUZ1bmN0aW9uPFxuICBYbWxFbGVtZW50LFxuICBBcnJheTxDb25zdHJhaW50PlxuPiB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmROZXN0ZWRFbGVtZW50cygnZ21kOk1EX0NvbnN0cmFpbnRzJywgJ2dtZDp1c2VMaW1pdGF0aW9uJyksXG4gICAgZmxhdHRlbkFycmF5KCksXG4gICAgbWFwQXJyYXkoY29tYmluZShleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKCksIGV4dHJhY3RVcmwoKSkpLFxuICAgIG1hcEFycmF5KChbdGV4dCwgdXJsXSkgPT4gKHtcbiAgICAgIC4uLih1cmwgJiYgeyB1cmwgfSksXG4gICAgICB0ZXh0LFxuICAgIH0pKVxuICApXG59XG5cbi8vIGZyb20gZ21kOnJlc291cmNlQ29uc3RyYWludHNcbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0TGljZW5zZXMoKTogQ2hhaW5hYmxlRnVuY3Rpb248XG4gIFhtbEVsZW1lbnQsXG4gIEFycmF5PENvbnN0cmFpbnQ+XG4+IHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZENoaWxkcmVuRWxlbWVudCgnZ21kOk1EX0xlZ2FsQ29uc3RyYWludHMnLCBmYWxzZSksXG4gICAgZmlsdGVyQXJyYXkoXG4gICAgICBwaXBlKFxuICAgICAgICBmaW5kQ2hpbGRyZW5FbGVtZW50KCdnbWQ6TURfUmVzdHJpY3Rpb25Db2RlJyksXG4gICAgICAgIG1hcEFycmF5KHJlYWRBdHRyaWJ1dGUoJ2NvZGVMaXN0VmFsdWUnKSksXG4gICAgICAgIG1hcCgodmFsdWVzKSA9PiB2YWx1ZXMuaW5kZXhPZignbGljZW5zZScpID4gLTEpXG4gICAgICApXG4gICAgKSxcbiAgICBtYXBBcnJheShcbiAgICAgIGNvbWJpbmUoXG4gICAgICAgIGZpbmRDaGlsZHJlbkVsZW1lbnQoJ2dtZDpvdGhlckNvbnN0cmFpbnRzJyksXG4gICAgICAgIGZpbmRDaGlsZHJlbkVsZW1lbnQoJ2dtZDp1c2VMaW1pdGF0aW9uJylcbiAgICAgIClcbiAgICApLFxuICAgIGZsYXR0ZW5BcnJheSgpLFxuICAgIGZsYXR0ZW5BcnJheSgpLFxuICAgIG1hcEFycmF5KGNvbWJpbmUoZXh0cmFjdENoYXJhY3RlclN0cmluZygpLCBleHRyYWN0VXJsKCkpKSxcbiAgICBtYXBBcnJheSgoW3RleHQsIHVybF0pID0+ICh7XG4gICAgICAuLi4odXJsICYmIHsgdXJsIH0pLFxuICAgICAgdGV4dCxcbiAgICB9KSlcbiAgKVxufVxuXG5jb25zdCBnZXRNaW1lVHlwZSA9IHBpcGUoXG4gIGZpbmRQYXJlbnQoJ2dtZDpNRF9EaXN0cmlidXRpb24nKSxcbiAgZmluZE5lc3RlZEVsZW1lbnQoJ2dtZDpkaXN0cmlidXRpb25Gb3JtYXQnLCAnZ21kOk1EX0Zvcm1hdCcsICdnbWQ6bmFtZScpLFxuICBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKCksXG4gIG1hcChtYXRjaE1pbWVUeXBlKVxuKVxuXG4vKipcbiAqIEV4dHJhY3QgZGlzdHJpYnV0aW9ucyBmcm9tIGEgTURfRGlzdHJpYnV0aW9uIGVsZW1lbnRcbiAqIEBwYXJhbSBnZXRNaW1lVHlwZUZuIFRoaXMgZnVuY3Rpb24gc3RhcnRzIGZyb20gYSBnbWQ6dHJhbnNmZXJPcHRpb25zIGVsZW1lbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3REYXRhc2V0RGlzdHJpYnV0aW9ucyhcbiAgZ2V0TWltZVR5cGVGbjogQ2hhaW5hYmxlRnVuY3Rpb248WG1sRWxlbWVudCwgc3RyaW5nPlxuKTogQ2hhaW5hYmxlRnVuY3Rpb248WG1sRWxlbWVudCwgRGF0YXNldERpc3RyaWJ1dGlvbltdPiB7XG4gIGNvbnN0IGdldFVybCA9IHBpcGUoZmluZENoaWxkRWxlbWVudCgnZ21kOmxpbmthZ2UnKSwgZXh0cmFjdE1hbmRhdG9yeVVybCgpKVxuICBjb25zdCBnZXRQcm90b2NvbFN0ciA9IHBpcGUoXG4gICAgZmluZENoaWxkRWxlbWVudCgnZ21kOnByb3RvY29sJyksXG4gICAgZXh0cmFjdENoYXJhY3RlclN0cmluZygpXG4gIClcbiAgY29uc3QgZ2V0UHJvdG9jb2wgPSBwaXBlKGdldFByb3RvY29sU3RyLCBtYXAobWF0Y2hQcm90b2NvbCkpXG4gIGNvbnN0IGdldE9ubGluZUZ1bmN0aW9uID0gcGlwZShcbiAgICBmaW5kTmVzdGVkRWxlbWVudCgnZ21kOmZ1bmN0aW9uJywgJ2dtZDpDSV9PbkxpbmVGdW5jdGlvbkNvZGUnKSxcbiAgICByZWFkQXR0cmlidXRlKCdjb2RlTGlzdFZhbHVlJylcbiAgKVxuICBjb25zdCBnZXRJc1NlcnZpY2UgPSBwaXBlKFxuICAgIGdldFByb3RvY29sLFxuICAgIG1hcCgocHJvdG9jb2wpID0+IHByb3RvY29sICE9PSAnb3RoZXInKVxuICApXG4gIGNvbnN0IGdldElzRG93bmxvYWQgPSBwaXBlKFxuICAgIGNvbWJpbmUoZ2V0SXNTZXJ2aWNlLCBnZXRPbmxpbmVGdW5jdGlvbiwgZ2V0UHJvdG9jb2xTdHIpLFxuICAgIG1hcChcbiAgICAgIChbaXNTZXJ2aWNlLCBvbmxpbmVGdW5jdGlvbiwgcHJvdG9jb2xTdHJdKSA9PlxuICAgICAgICAoIWlzU2VydmljZSAmJiBvbmxpbmVGdW5jdGlvbiA9PT0gJ2Rvd25sb2FkJykgfHxcbiAgICAgICAgL2Rvd25sb2FkL2kudGVzdChwcm90b2NvbFN0cilcbiAgICApXG4gIClcbiAgY29uc3QgZ2V0TmFtZSA9IHBpcGUoZmluZENoaWxkRWxlbWVudCgnZ21kOm5hbWUnKSwgZXh0cmFjdENoYXJhY3RlclN0cmluZygpKVxuICBjb25zdCBnZXREZXNjcmlwdGlvbiA9IHBpcGUoXG4gICAgZmluZENoaWxkRWxlbWVudCgnZ21kOmRlc2NyaXB0aW9uJyksXG4gICAgZXh0cmFjdENoYXJhY3RlclN0cmluZygpXG4gIClcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZE5lc3RlZEVsZW1lbnRzKFxuICAgICAgJ2dtZDp0cmFuc2Zlck9wdGlvbnMnLFxuICAgICAgJ2dtZDpNRF9EaWdpdGFsVHJhbnNmZXJPcHRpb25zJyxcbiAgICAgICdnbWQ6b25MaW5lJyxcbiAgICAgICdnbWQ6Q0lfT25saW5lUmVzb3VyY2UnXG4gICAgKSxcbiAgICBtYXBBcnJheShcbiAgICAgIGNvbWJpbmUoXG4gICAgICAgIGdldElzU2VydmljZSxcbiAgICAgICAgZ2V0SXNEb3dubG9hZCxcbiAgICAgICAgZ2V0UHJvdG9jb2wsXG4gICAgICAgIGdldFVybCxcbiAgICAgICAgZ2V0TmFtZSxcbiAgICAgICAgZ2V0RGVzY3JpcHRpb24sXG4gICAgICAgIGdldE1pbWVUeXBlRm5cbiAgICAgIClcbiAgICApLFxuICAgIG1hcEFycmF5KFxuICAgICAgKFtpc1NlcnZpY2UsIGlzRG93bmxvYWQsIHByb3RvY29sLCB1cmwsIG5hbWUsIGRlc2NyaXB0aW9uLCBtaW1lVHlwZV0pID0+IHtcbiAgICAgICAgaWYgKGlzU2VydmljZSkge1xuICAgICAgICAgIGNvbnN0IGhhc0lkZW50aWZpZXIgPSBwcm90b2NvbCA9PT0gJ3dtcycgfHwgcHJvdG9jb2wgPT09ICd3ZnMnXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6ICdzZXJ2aWNlJyxcbiAgICAgICAgICAgIHVybDogdXJsLFxuICAgICAgICAgICAgYWNjZXNzU2VydmljZVByb3RvY29sOiBwcm90b2NvbCxcbiAgICAgICAgICAgIC4uLihuYW1lICYmIGhhc0lkZW50aWZpZXIgJiYgeyBpZGVudGlmaWVySW5TZXJ2aWNlOiBuYW1lIH0pLFxuICAgICAgICAgICAgLi4uKG5hbWUgJiYgeyBuYW1lIH0pLFxuICAgICAgICAgICAgLi4uKGRlc2NyaXB0aW9uICYmIHsgZGVzY3JpcHRpb24gfSksXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGlzRG93bmxvYWQpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ2Rvd25sb2FkJyxcbiAgICAgICAgICAgIHVybDogdXJsLFxuICAgICAgICAgICAgLi4uKG5hbWUgJiYgeyBuYW1lIH0pLFxuICAgICAgICAgICAgLi4uKGRlc2NyaXB0aW9uICYmIHsgZGVzY3JpcHRpb24gfSksXG4gICAgICAgICAgICAuLi4obWltZVR5cGUgJiYgeyBtaW1lVHlwZSB9KSxcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6ICdsaW5rJyxcbiAgICAgICAgICAgIHVybDogdXJsLFxuICAgICAgICAgICAgLi4uKG5hbWUgJiYgeyBuYW1lIH0pLFxuICAgICAgICAgICAgLi4uKGRlc2NyaXB0aW9uICYmIHsgZGVzY3JpcHRpb24gfSksXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVcGRhdGVGcmVxdWVuY3lGcm9tQ3VzdG9tUGVyaW9kKFxuICBpc29QZXJpb2Q6IHN0cmluZ1xuKTogVXBkYXRlRnJlcXVlbmN5Q3VzdG9tIHtcbiAgaWYgKCFpc29QZXJpb2QpIHJldHVybiBudWxsXG4gIGNvbnN0IG1hdGNoZXMgPSBpc29QZXJpb2QubWF0Y2goXG4gICAgL14tP1AoPzooWzAtOV0rKVkpPyg/OihbMC05XSspTSk/KD86KFswLTldKylEKT9UPyg/OihbMC05XSspSCk/L1xuICApXG4gIGlmICghbWF0Y2hlcykgcmV0dXJuIG51bGxcbiAgY29uc3QgeWVhcnMgPSBwYXJzZUludChtYXRjaGVzWzFdLCAxMCkgfHwgMFxuICBjb25zdCBtb250aHMgPSBwYXJzZUludChtYXRjaGVzWzJdLCAxMCkgfHwgMFxuICBjb25zdCBkYXlzID0gcGFyc2VJbnQobWF0Y2hlc1szXSwgMTApIHx8IDBcbiAgY29uc3QgaG91cnMgPSBwYXJzZUludChtYXRjaGVzWzRdLCAxMCkgfHwgMFxuICBpZiAoeWVhcnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGVyOiAneWVhcicsXG4gICAgICB1cGRhdGVkVGltZXM6IDEsXG4gICAgfVxuICB9IGVsc2UgaWYgKG1vbnRocyA9PT0gMSkge1xuICAgIHJldHVybiB7XG4gICAgICBwZXI6ICdtb250aCcsXG4gICAgICB1cGRhdGVkVGltZXM6IDEsXG4gICAgfVxuICB9IGVsc2UgaWYgKG1vbnRocykge1xuICAgIHJldHVybiB7XG4gICAgICBwZXI6ICd5ZWFyJyxcbiAgICAgIHVwZGF0ZWRUaW1lczogTWF0aC5yb3VuZCgxMiAvIG1vbnRocyksXG4gICAgfVxuICB9IGVsc2UgaWYgKGRheXMgPT09IDEpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGVyOiAnZGF5JyxcbiAgICAgIHVwZGF0ZWRUaW1lczogMSxcbiAgICB9XG4gIH0gZWxzZSBpZiAoZGF5cyA8PSA3KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBlcjogJ3dlZWsnLFxuICAgICAgdXBkYXRlZFRpbWVzOiBNYXRoLnJvdW5kKDcgLyBkYXlzIC0gMC4wMDAxKSwgLy8gdGhpcyBpcyB0byBtYWtlIHN1cmUgdGhhdCAnZXZlcnkgMiBkYXlzJyA9ICczIHRpbWVzIHBlciB3ZWVrJ1xuICAgIH1cbiAgfSBlbHNlIGlmIChkYXlzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBlcjogJ21vbnRoJyxcbiAgICAgIHVwZGF0ZWRUaW1lczogTWF0aC5yb3VuZCgzMCAvIGRheXMpLFxuICAgIH1cbiAgfSBlbHNlIGlmIChob3Vycykge1xuICAgIHJldHVybiB7XG4gICAgICBwZXI6ICdkYXknLFxuICAgICAgdXBkYXRlZFRpbWVzOiBNYXRoLnJvdW5kKDI0IC8gZGF5cyksXG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbi8vIGZyb20gZ21kOk1EX01haW50ZW5hbmNlSW5mb3JtYXRpb25cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0VXBkYXRlRnJlcXVlbmN5KCk6IENoYWluYWJsZUZ1bmN0aW9uPFxuICBYbWxFbGVtZW50LFxuICBVcGRhdGVGcmVxdWVuY3lcbj4ge1xuICByZXR1cm4gZmFsbGJhY2soXG4gICAgcGlwZShcbiAgICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2dtZDpNRF9NYWludGVuYW5jZUZyZXF1ZW5jeUNvZGUnKSxcbiAgICAgIHJlYWRBdHRyaWJ1dGUoJ2NvZGVMaXN0VmFsdWUnKSxcbiAgICAgIG1hcChnZXRVcGRhdGVGcmVxdWVuY3lGcm9tRnJlcXVlbmN5Q29kZSlcbiAgICApLFxuICAgIHBpcGUoXG4gICAgICBmaW5kTmVzdGVkRWxlbWVudChcbiAgICAgICAgJ2dtZDp1c2VyRGVmaW5lZE1haW50ZW5hbmNlRnJlcXVlbmN5JyxcbiAgICAgICAgJ2d0czpUTV9QZXJpb2REdXJhdGlvbidcbiAgICAgICksXG4gICAgICByZWFkVGV4dCgpLFxuICAgICAgbWFwKGdldFVwZGF0ZUZyZXF1ZW5jeUZyb21DdXN0b21QZXJpb2QpXG4gICAgKSxcbiAgICBtYXAoKCkgPT4gJ3Vua25vd24nKVxuICApXG59XG5cbi8qKlxuICogTG9va3MgZm9yIHNydjpTVl9TZXJ2aWNlSWRlbnRpZmljYXRpb24gb3IgZ21kOk1EX0RhdGFJZGVudGlmaWNhdGlvbiBlbGVtZW50XG4gKiBXaWxsIGZpbmQgdGhlIGZpcnN0IG9uZSB0aGF0IGV4aXN0cywgbm90IHJlYWRpbmcgdGhlIHR5cGUgb2YgdGhlIHJlY29yZFxuICogKHRoaXMgYWxsb3dzIHVzaW5nIHRoaXMgZnVuY3Rpb24gaW4gb3RoZXIgc2ltaWxhciBzY2hlbWFzKVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZElkZW50aWZpY2F0aW9uKCkge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6aWRlbnRpZmljYXRpb25JbmZvJywgZmFsc2UpLFxuICAgIGNvbWJpbmUoXG4gICAgICBmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6TURfRGF0YUlkZW50aWZpY2F0aW9uJywgZmFsc2UpLFxuICAgICAgZmluZENoaWxkRWxlbWVudCgnc3J2OlNWX1NlcnZpY2VJZGVudGlmaWNhdGlvbicsIGZhbHNlKVxuICAgICksXG4gICAgZmlsdGVyQXJyYXkoKGVsKSA9PiBlbCAhPT0gbnVsbCksXG4gICAgZ2V0QXRJbmRleCgwKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0SWRlbnRpZmljYXRpb25EYXRlKFxuICB0eXBlOiAnY3JlYXRpb24nIHwgJ3JldmlzaW9uJyB8ICdwdWJsaWNhdGlvbidcbikge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kSWRlbnRpZmljYXRpb24oKSxcbiAgICBmaW5kTmVzdGVkRWxlbWVudHMoJ2dtZDpjaXRhdGlvbicsICdnbWQ6Q0lfQ2l0YXRpb24nLCAnZ21kOmRhdGUnKSxcbiAgICBmaWx0ZXJBcnJheShcbiAgICAgIHBpcGUoXG4gICAgICAgIGZpbmROZXN0ZWRFbGVtZW50cyhcbiAgICAgICAgICAnZ21kOkNJX0RhdGUnLFxuICAgICAgICAgICdnbWQ6ZGF0ZVR5cGUnLFxuICAgICAgICAgICdnbWQ6Q0lfRGF0ZVR5cGVDb2RlJ1xuICAgICAgICApLFxuICAgICAgICBnZXRBdEluZGV4KDApLFxuICAgICAgICByZWFkQXR0cmlidXRlKCdjb2RlTGlzdFZhbHVlJyksXG4gICAgICAgIG1hcCgodmFsdWUpID0+IHZhbHVlID09PSB0eXBlKVxuICAgICAgKVxuICAgICksXG4gICAgZ2V0QXRJbmRleCgwKSxcbiAgICBmaW5kTmVzdGVkRWxlbWVudHMoJ2dtZDpDSV9EYXRlJywgJ2dtZDpkYXRlJyksXG4gICAgZ2V0QXRJbmRleCgwKSxcbiAgICBleHRyYWN0RGF0ZVRpbWUoKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTcGF0aWFsUmVwcmVzZW50YXRpb25Gcm9tQ29kZShcbiAgc3BhdGlhbFJlcHJlc2VudGF0aW9uQ29kZTogc3RyaW5nXG4pOiBTcGF0aWFsUmVwcmVzZW50YXRpb25UeXBlIHwgbnVsbCB7XG4gIHN3aXRjaCAoc3BhdGlhbFJlcHJlc2VudGF0aW9uQ29kZSkge1xuICAgIGNhc2UgJ2dyaWQnOlxuICAgIGNhc2UgJ3ZlY3Rvcic6XG4gICAgY2FzZSAndGluJzpcbiAgICBjYXNlICd0YWJsZSc6XG4gICAgY2FzZSAncG9pbnQnOlxuICAgICAgcmV0dXJuIHNwYXRpYWxSZXByZXNlbnRhdGlvbkNvZGVcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG51bGxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFVuaXF1ZUlkZW50aWZpZXIocm9vdEVsOiBYbWxFbGVtZW50KTogc3RyaW5nIHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZENoaWxkRWxlbWVudCgnZ21kOmZpbGVJZGVudGlmaWVyJywgZmFsc2UpLFxuICAgIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKVxuICApKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRLaW5kKHJvb3RFbDogWG1sRWxlbWVudCk6IFJlY29yZEtpbmQge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kTmVzdGVkRWxlbWVudCgnZ21kOmhpZXJhcmNoeUxldmVsJywgJ2dtZDpNRF9TY29wZUNvZGUnKSxcbiAgICByZWFkQXR0cmlidXRlKCdjb2RlTGlzdFZhbHVlJyksXG4gICAgbWFwKFxuICAgICAgKHNjb3BlQ29kZSk6IFJlY29yZEtpbmQgPT5cbiAgICAgICAgc2NvcGVDb2RlID09PSAnc2VydmljZScgPyAnc2VydmljZScgOiAnZGF0YXNldCdcbiAgICApXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZE93bmVyT3JnYW5pemF0aW9uKHJvb3RFbDogWG1sRWxlbWVudCk6IE9yZ2FuaXphdGlvbiB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmROZXN0ZWRFbGVtZW50KCdnbWQ6Y29udGFjdCcsICdnbWQ6Q0lfUmVzcG9uc2libGVQYXJ0eScpLFxuICAgIGV4dHJhY3RPcmdhbml6YXRpb24oKVxuICApKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRSZXNvdXJjZVVwZGF0ZWQocm9vdEVsOiBYbWxFbGVtZW50KTogRGF0ZSB7XG4gIHJldHVybiBleHRyYWN0SWRlbnRpZmljYXRpb25EYXRlKCdyZXZpc2lvbicpKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRSZXNvdXJjZUNyZWF0ZWQocm9vdEVsOiBYbWxFbGVtZW50KTogRGF0ZSB7XG4gIHJldHVybiBleHRyYWN0SWRlbnRpZmljYXRpb25EYXRlKCdjcmVhdGlvbicpKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRSZXNvdXJjZVB1Ymxpc2hlZChyb290RWw6IFhtbEVsZW1lbnQpOiBEYXRlIHtcbiAgcmV0dXJuIGV4dHJhY3RJZGVudGlmaWNhdGlvbkRhdGUoJ3B1YmxpY2F0aW9uJykocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFJlY29yZFVwZGF0ZWQocm9vdEVsOiBYbWxFbGVtZW50KTogRGF0ZSB7XG4gIHJldHVybiBwaXBlKGZpbmRDaGlsZEVsZW1lbnQoJ2dtZDpkYXRlU3RhbXAnKSwgZXh0cmFjdERhdGVUaW1lKCkpKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRUaXRsZShyb290RWw6IFhtbEVsZW1lbnQpOiBzdHJpbmcge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kSWRlbnRpZmljYXRpb24oKSxcbiAgICBmaW5kTmVzdGVkRWxlbWVudCgnZ21kOmNpdGF0aW9uJywgJ2dtZDpDSV9DaXRhdGlvbicsICdnbWQ6dGl0bGUnKSxcbiAgICBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKClcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkQWJzdHJhY3Qocm9vdEVsOiBYbWxFbGVtZW50KTogc3RyaW5nIHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZElkZW50aWZpY2F0aW9uKCksXG4gICAgZmluZENoaWxkRWxlbWVudCgnZ21kOmFic3RyYWN0JywgZmFsc2UpLFxuICAgIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKVxuICApKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRDb250YWN0cyhyb290RWw6IFhtbEVsZW1lbnQpOiBJbmRpdmlkdWFsW10ge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kQ2hpbGRyZW5FbGVtZW50KCdnbWQ6Y29udGFjdCcsIGZhbHNlKSxcbiAgICBtYXBBcnJheShmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6Q0lfUmVzcG9uc2libGVQYXJ0eScsIGZhbHNlKSksXG4gICAgbWFwQXJyYXkoZXh0cmFjdEluZGl2aWR1YWwoKSlcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkQ29udGFjdHNGb3JSZXNvdXJjZShyb290RWw6IFhtbEVsZW1lbnQpOiBJbmRpdmlkdWFsW10ge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kSWRlbnRpZmljYXRpb24oKSxcbiAgICBjb21iaW5lKFxuICAgICAgZmluZENoaWxkcmVuRWxlbWVudCgnZ21kOmNvbnRhY3QnLCBmYWxzZSksXG4gICAgICBmaW5kQ2hpbGRyZW5FbGVtZW50KCdnbWQ6cG9pbnRPZkNvbnRhY3QnLCBmYWxzZSlcbiAgICApLFxuICAgIGZsYXR0ZW5BcnJheSgpLFxuICAgIG1hcEFycmF5KGZpbmRDaGlsZEVsZW1lbnQoJ2dtZDpDSV9SZXNwb25zaWJsZVBhcnR5JywgZmFsc2UpKSxcbiAgICBtYXBBcnJheShleHRyYWN0SW5kaXZpZHVhbCgpKVxuICApKHJvb3RFbClcbn1cblxuLy8gZnJvbSBnbWQ6dGhlc2F1cnVzTmFtZVxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRUaGVzYXVydXMocm9vdEVsOiBYbWxFbGVtZW50KTogVGhlc2F1cnVzTW9kZWwge1xuICBpZiAoIXJvb3RFbCkgcmV0dXJuIG51bGxcblxuICBjb25zdCBmaW5kSWRlbnRpZmllciA9IGZpbmROZXN0ZWRFbGVtZW50KFxuICAgICdnbWQ6Q0lfQ2l0YXRpb24nLFxuICAgICdnbWQ6aWRlbnRpZmllcicsXG4gICAgJ2dtZDpNRF9JZGVudGlmaWVyJyxcbiAgICAnZ21kOmNvZGUnXG4gIClcbiAgY29uc3QgaWQgPSBwaXBlKGZpbmRJZGVudGlmaWVyLCBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKCkpKHJvb3RFbClcbiAgY29uc3QgdXJsID0gcGlwZShmaW5kSWRlbnRpZmllciwgZXh0cmFjdFVybCgpKShyb290RWwpXG4gIGNvbnN0IG5hbWUgPSBwaXBlKFxuICAgIGZpbmROZXN0ZWRFbGVtZW50KCdnbWQ6Q0lfQ2l0YXRpb24nLCAnZ21kOnRpdGxlJyksXG4gICAgZXh0cmFjdENoYXJhY3RlclN0cmluZygpXG4gICkocm9vdEVsKVxuICByZXR1cm4ge1xuICAgIGlkLFxuICAgIC4uLihuYW1lICYmIHsgbmFtZSB9KSxcbiAgICAuLi4odXJsICYmIHsgdXJsIH0pLFxuICB9XG59XG5cbi8vIGZyb20gZ21kOk1EX0tleXdvcmRzXG5leHBvcnQgZnVuY3Rpb24gcmVhZEtleXdvcmRHcm91cChyb290RWw6IFhtbEVsZW1lbnQpOiBLZXl3b3JkW10ge1xuICBjb25zdCB0eXBlID0gcGlwZShcbiAgICBmaW5kQ2hpbGRyZW5FbGVtZW50KCdnbWQ6TURfS2V5d29yZFR5cGVDb2RlJyksXG4gICAgbWFwQXJyYXkocmVhZEF0dHJpYnV0ZSgnY29kZUxpc3RWYWx1ZScpKSxcbiAgICBtYXAoKHZhbHVlcykgPT4gZ2V0S2V5d29yZFR5cGVGcm9tS2V5d29yZFR5cGVDb2RlKHZhbHVlc1swXSkpXG4gICkocm9vdEVsKVxuICBjb25zdCB0aGVzYXVydXMgPSBwaXBlKFxuICAgIGZpbmROZXN0ZWRFbGVtZW50KCdnbWQ6dGhlc2F1cnVzTmFtZScpLFxuICAgIHJlYWRUaGVzYXVydXNcbiAgKShyb290RWwpXG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmRDaGlsZHJlbkVsZW1lbnQoJ2dtZDprZXl3b3JkJyksXG4gICAgbWFwQXJyYXkoKGVsKSA9PiB7XG4gICAgICBjb25zdCBsYWJlbCA9IGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKShlbClcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLih0aGVzYXVydXMgPyB7IHRoZXNhdXJ1cyB9IDoge30pLFxuICAgICAgICBsYWJlbCxcbiAgICAgICAgdHlwZSxcbiAgICAgIH0gYXMgS2V5d29yZFxuICAgIH0pXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEtleXdvcmRzKHJvb3RFbDogWG1sRWxlbWVudCk6IEtleXdvcmRbXSB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmRJZGVudGlmaWNhdGlvbigpLFxuICAgIGZpbmROZXN0ZWRFbGVtZW50cygnZ21kOmRlc2NyaXB0aXZlS2V5d29yZHMnLCAnZ21kOk1EX0tleXdvcmRzJyksXG4gICAgbWFwQXJyYXkocmVhZEtleXdvcmRHcm91cCksXG4gICAgZmxhdHRlbkFycmF5KClcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkU3RhdHVzKHJvb3RFbDogWG1sRWxlbWVudCk6IFJlY29yZFN0YXR1cyB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmRJZGVudGlmaWNhdGlvbigpLFxuICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2dtZDpzdGF0dXMnLCBmYWxzZSksXG4gICAgZXh0cmFjdFN0YXR1cygpXG4gICkocm9vdEVsKVxufVxuXG5jb25zdCBnZXRDb25zdHJhaW50cyA9IHBpcGUoXG4gIGZpbmRJZGVudGlmaWNhdGlvbigpLFxuICBmaW5kQ2hpbGRyZW5FbGVtZW50KCdnbWQ6cmVzb3VyY2VDb25zdHJhaW50cycsIGZhbHNlKVxuKVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZExlZ2FsQ29uc3RyYWludHMocm9vdEVsOiBYbWxFbGVtZW50KTogQ29uc3RyYWludFtdIHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZ2V0Q29uc3RyYWludHMsXG4gICAgbWFwQXJyYXkoZXh0cmFjdExlZ2FsQ29uc3RyYWludHMoKSksXG4gICAgZmxhdHRlbkFycmF5KCksXG4gICAgZmxhdHRlbkFycmF5KClcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkU2VjdXJpdHlDb25zdHJhaW50cyhyb290RWw6IFhtbEVsZW1lbnQpOiBDb25zdHJhaW50W10ge1xuICByZXR1cm4gcGlwZShcbiAgICBnZXRDb25zdHJhaW50cyxcbiAgICBtYXBBcnJheShleHRyYWN0U2VjdXJpdHlDb25zdHJhaW50cygpKSxcbiAgICBmbGF0dGVuQXJyYXkoKVxuICApKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRPdGhlckNvbnN0cmFpbnRzKHJvb3RFbDogWG1sRWxlbWVudCk6IENvbnN0cmFpbnRbXSB7XG4gIHJldHVybiBwaXBlKFxuICAgIGdldENvbnN0cmFpbnRzLFxuICAgIG1hcEFycmF5KGV4dHJhY3RPdGhlckNvbnN0cmFpbnRzKCkpLFxuICAgIGZsYXR0ZW5BcnJheSgpXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZExpY2Vuc2VzKHJvb3RFbDogWG1sRWxlbWVudCk6IENvbnN0cmFpbnRbXSB7XG4gIHJldHVybiBwaXBlKFxuICAgIGdldENvbnN0cmFpbnRzLFxuICAgIG1hcEFycmF5KGV4dHJhY3RMaWNlbnNlcygpKSxcbiAgICBmbGF0dGVuQXJyYXkoKVxuICApKHJvb3RFbClcbn1cblxuLy8gbm90IHVzZWQgeWV0XG5leHBvcnQgZnVuY3Rpb24gcmVhZElzb1RvcGljcyhyb290RWw6IFhtbEVsZW1lbnQpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmRJZGVudGlmaWNhdGlvbigpLFxuICAgIGZpbmRDaGlsZHJlbkVsZW1lbnQoJ2dtZDpNRF9Ub3BpY0NhdGVnb3J5Q29kZScsIHRydWUpLFxuICAgIG1hcEFycmF5KHJlYWRUZXh0KCkpXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFNwYXRpYWxSZXByZXNlbnRhdGlvbihcbiAgcm9vdEVsOiBYbWxFbGVtZW50XG4pOiBTcGF0aWFsUmVwcmVzZW50YXRpb25UeXBlIHwgbnVsbCB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmRJZGVudGlmaWNhdGlvbigpLFxuICAgIGZpbmROZXN0ZWRFbGVtZW50KFxuICAgICAgJ2dtZDpzcGF0aWFsUmVwcmVzZW50YXRpb25UeXBlJyxcbiAgICAgICdnbWQ6TURfU3BhdGlhbFJlcHJlc2VudGF0aW9uVHlwZUNvZGUnXG4gICAgKSxcbiAgICByZWFkQXR0cmlidXRlKCdjb2RlTGlzdFZhbHVlJyksXG4gICAgbWFwKGdldFNwYXRpYWxSZXByZXNlbnRhdGlvbkZyb21Db2RlKVxuICApKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRPdmVydmlld3Mocm9vdEVsOiBYbWxFbGVtZW50KTogR3JhcGhpY092ZXJ2aWV3W10ge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kSWRlbnRpZmljYXRpb24oKSxcbiAgICBmaW5kQ2hpbGRyZW5FbGVtZW50KCdnbWQ6Z3JhcGhpY092ZXJ2aWV3JywgZmFsc2UpLFxuICAgIG1hcEFycmF5KFxuICAgICAgY29tYmluZShcbiAgICAgICAgcGlwZShmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6ZmlsZU5hbWUnKSwgZXh0cmFjdE1hbmRhdG9yeVVybCgpKSxcbiAgICAgICAgcGlwZShmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6ZmlsZURlc2NyaXB0aW9uJyksIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKSlcbiAgICAgIClcbiAgICApLFxuICAgIG1hcEFycmF5KChbdXJsLCBkZXNjcmlwdGlvbl0pID0+ICh7XG4gICAgICB1cmwsXG4gICAgICAuLi4oZGVzY3JpcHRpb24gJiYgeyBkZXNjcmlwdGlvbiB9KSxcbiAgICB9KSlcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkTGluZWFnZShyb290RWw6IFhtbEVsZW1lbnQpOiBzdHJpbmcge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kTmVzdGVkRWxlbWVudChcbiAgICAgICdnbWQ6ZGF0YVF1YWxpdHlJbmZvJyxcbiAgICAgICdnbWQ6RFFfRGF0YVF1YWxpdHknLFxuICAgICAgJ2dtZDpsaW5lYWdlJyxcbiAgICAgICdnbWQ6TElfTGluZWFnZScsXG4gICAgICAnZ21kOnN0YXRlbWVudCdcbiAgICApLFxuICAgIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKVxuICApKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWREaXN0cmlidXRpb25zKHJvb3RFbDogWG1sRWxlbWVudCk6IERhdGFzZXREaXN0cmlidXRpb25bXSB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmROZXN0ZWRFbGVtZW50cygnZ21kOmRpc3RyaWJ1dGlvbkluZm8nLCAnZ21kOk1EX0Rpc3RyaWJ1dGlvbicpLFxuICAgIG1hcEFycmF5KGV4dHJhY3REYXRhc2V0RGlzdHJpYnV0aW9ucyhnZXRNaW1lVHlwZSkpLFxuICAgIGZsYXR0ZW5BcnJheSgpXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFVwZGF0ZUZyZXF1ZW5jeShyb290RWw6IFhtbEVsZW1lbnQpOiBVcGRhdGVGcmVxdWVuY3kge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kSWRlbnRpZmljYXRpb24oKSxcbiAgICBmaW5kTmVzdGVkRWxlbWVudChcbiAgICAgICdnbWQ6cmVzb3VyY2VNYWludGVuYW5jZScsXG4gICAgICAnZ21kOk1EX01haW50ZW5hbmNlSW5mb3JtYXRpb24nXG4gICAgKSxcbiAgICBleHRyYWN0VXBkYXRlRnJlcXVlbmN5KCksXG4gICAgbWFwKCh1cGRhdGVGcmVxdWVuY3kpID0+IHVwZGF0ZUZyZXF1ZW5jeSB8fCAndW5rbm93bicpXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFNlcnZpY2VPbmxpbmVSZXNvdXJjZXMoKTogQ2hhaW5hYmxlRnVuY3Rpb248XG4gIFhtbEVsZW1lbnQsXG4gIFNlcnZpY2VPbmxpbmVSZXNvdXJjZVtdXG4+IHtcbiAgY29uc3QgZ2V0VXJsID0gcGlwZShmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6bGlua2FnZScpLCBleHRyYWN0TWFuZGF0b3J5VXJsKCkpXG4gIGNvbnN0IGdldFByb3RvY29sU3RyID0gcGlwZShcbiAgICBmaW5kQ2hpbGRFbGVtZW50KCdnbWQ6cHJvdG9jb2wnKSxcbiAgICBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKClcbiAgKVxuICBjb25zdCBnZXRQcm90b2NvbCA9IHBpcGUoZ2V0UHJvdG9jb2xTdHIsIG1hcChtYXRjaFByb3RvY29sKSlcbiAgY29uc3QgZ2V0T25saW5lRnVuY3Rpb24gPSBwaXBlKFxuICAgIGZpbmROZXN0ZWRFbGVtZW50KCdnbWQ6ZnVuY3Rpb24nLCAnZ21kOkNJX09uTGluZUZ1bmN0aW9uQ29kZScpLFxuICAgIHJlYWRBdHRyaWJ1dGUoJ2NvZGVMaXN0VmFsdWUnKVxuICApXG4gIGNvbnN0IGdldElzTGluayA9IHBpcGUoXG4gICAgZ2V0T25saW5lRnVuY3Rpb24sXG4gICAgbWFwKChvbmxpbmVGdW5jdGlvbikgPT4gb25saW5lRnVuY3Rpb24gPT09ICdpbmZvcm1hdGlvbicpXG4gIClcbiAgY29uc3QgZ2V0TmFtZSA9IHBpcGUoZmluZENoaWxkRWxlbWVudCgnZ21kOm5hbWUnKSwgZXh0cmFjdENoYXJhY3RlclN0cmluZygpKVxuICBjb25zdCBnZXREZXNjcmlwdGlvbiA9IHBpcGUoXG4gICAgZmluZENoaWxkRWxlbWVudCgnZ21kOmRlc2NyaXB0aW9uJyksXG4gICAgZXh0cmFjdENoYXJhY3RlclN0cmluZygpXG4gIClcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZE5lc3RlZEVsZW1lbnRzKFxuICAgICAgJ2dtZDp0cmFuc2Zlck9wdGlvbnMnLFxuICAgICAgJ2dtZDpNRF9EaWdpdGFsVHJhbnNmZXJPcHRpb25zJyxcbiAgICAgICdnbWQ6b25MaW5lJyxcbiAgICAgICdnbWQ6Q0lfT25saW5lUmVzb3VyY2UnXG4gICAgKSxcbiAgICBtYXBBcnJheShjb21iaW5lKGdldElzTGluaywgZ2V0UHJvdG9jb2wsIGdldFVybCwgZ2V0TmFtZSwgZ2V0RGVzY3JpcHRpb24pKSxcbiAgICBtYXBBcnJheSgoW2lzTGluaywgcHJvdG9jb2wsIHVybCwgbmFtZSwgZGVzY3JpcHRpb25dKSA9PiB7XG4gICAgICBpZiAoaXNMaW5rKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHlwZTogJ2xpbmsnLFxuICAgICAgICAgIHVybDogdXJsLFxuICAgICAgICAgIC4uLihuYW1lICYmIHsgbmFtZSB9KSxcbiAgICAgICAgICAuLi4oZGVzY3JpcHRpb24gJiYgeyBkZXNjcmlwdGlvbiB9KSxcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlOiAnZW5kcG9pbnQnLFxuICAgICAgICAgIGVuZHBvaW50VXJsOiB1cmwsXG4gICAgICAgICAgcHJvdG9jb2wsXG4gICAgICAgICAgLi4uKGRlc2NyaXB0aW9uICYmIHsgZGVzY3JpcHRpb24gfSksXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkT25saW5lUmVzb3VyY2VzKFxuICByb290RWw6IFhtbEVsZW1lbnRcbik6IFNlcnZpY2VPbmxpbmVSZXNvdXJjZVtdIHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZE5lc3RlZEVsZW1lbnRzKCdnbWQ6ZGlzdHJpYnV0aW9uSW5mbycsICdnbWQ6TURfRGlzdHJpYnV0aW9uJyksXG4gICAgbWFwQXJyYXkoZXh0cmFjdFNlcnZpY2VPbmxpbmVSZXNvdXJjZXMoKSksXG4gICAgZmxhdHRlbkFycmF5KClcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkVGVtcG9yYWxFeHRlbnRzKHJvb3RFbDogWG1sRWxlbWVudCkge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kSWRlbnRpZmljYXRpb24oKSxcbiAgICBmaW5kTmVzdGVkRWxlbWVudHMoJ2dtZDpleHRlbnQnLCAnZ21kOkVYX0V4dGVudCcsICdnbWQ6dGVtcG9yYWxFbGVtZW50JyksXG4gICAgbWFwQXJyYXkoXG4gICAgICBjb21iaW5lKFxuICAgICAgICBmaW5kTmVzdGVkRWxlbWVudChcbiAgICAgICAgICAnZ21kOkVYX1RlbXBvcmFsRXh0ZW50JyxcbiAgICAgICAgICAnZ21kOmV4dGVudCcsXG4gICAgICAgICAgJ2dtbDpUaW1lUGVyaW9kJ1xuICAgICAgICApLFxuICAgICAgICBmaW5kTmVzdGVkRWxlbWVudChcbiAgICAgICAgICAnZ21kOkVYX1RlbXBvcmFsRXh0ZW50JyxcbiAgICAgICAgICAnZ21kOmV4dGVudCcsXG4gICAgICAgICAgJ2dtbDpUaW1lSW5zdGFudCdcbiAgICAgICAgKVxuICAgICAgKVxuICAgICksXG4gICAgbWFwQXJyYXkoKFtwZXJpb2RFbCwgaW5zdGFudEVsXSkgPT4ge1xuICAgICAgaWYgKHBlcmlvZEVsKSB7XG4gICAgICAgIHJldHVybiBwaXBlKFxuICAgICAgICAgIGNvbWJpbmUoXG4gICAgICAgICAgICBwaXBlKFxuICAgICAgICAgICAgICBmaW5kQ2hpbGRFbGVtZW50KCdnbWw6YmVnaW5Qb3NpdGlvbicsIGZhbHNlKSxcbiAgICAgICAgICAgICAgcmVhZFRleHQoKSxcbiAgICAgICAgICAgICAgbWFwKChkYXRlU3RyKSA9PiAoZGF0ZVN0ciA/IG5ldyBEYXRlKGRhdGVTdHIpIDogbnVsbCkpXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgcGlwZShcbiAgICAgICAgICAgICAgZmluZENoaWxkRWxlbWVudCgnZ21sOmVuZFBvc2l0aW9uJywgZmFsc2UpLFxuICAgICAgICAgICAgICByZWFkVGV4dCgpLFxuICAgICAgICAgICAgICBtYXAoKGRhdGVTdHIpID0+IChkYXRlU3RyID8gbmV3IERhdGUoZGF0ZVN0cikgOiBudWxsKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApLFxuICAgICAgICAgIG1hcCgoW3N0YXJ0LCBlbmRdKSA9PiAoe1xuICAgICAgICAgICAgc3RhcnQsXG4gICAgICAgICAgICBlbmQsXG4gICAgICAgICAgfSkpXG4gICAgICAgICkocGVyaW9kRWwpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcGlwZShcbiAgICAgICAgICBmaW5kQ2hpbGRFbGVtZW50KCdnbWw6dGltZVBvc2l0aW9uJywgZmFsc2UpLFxuICAgICAgICAgIHJlYWRUZXh0KCksXG4gICAgICAgICAgbWFwKChkYXRlU3RyKSA9PiAoZGF0ZVN0ciA/IG5ldyBEYXRlKGRhdGVTdHIpIDogbnVsbCkpLFxuICAgICAgICAgIG1hcCgoZGF0ZSkgPT4gKHtcbiAgICAgICAgICAgIHN0YXJ0OiBkYXRlLFxuICAgICAgICAgIH0pKVxuICAgICAgICApKGluc3RhbnRFbClcbiAgICAgIH1cbiAgICB9KVxuICApKHJvb3RFbClcbn1cbiJdfQ==
@@ -11,4 +11,4 @@ export function getKeywordTypeFromKeywordTypeCode(typeCode) {
11
11
  return 'other';
12
12
  }
13
13
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5d29yZC5tYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9pc28xOTEzOS91dGlscy9rZXl3b3JkLm1hcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsaUNBQWlDLENBQy9DLFFBQWdCO0lBRWhCLElBQUksQ0FBQyxRQUFRO1FBQUUsT0FBTyxPQUFPLENBQUE7SUFDN0IsUUFBUSxRQUFRLEVBQUU7UUFDaEIsS0FBSyxPQUFPLENBQUM7UUFDYixLQUFLLE9BQU8sQ0FBQztRQUNiLEtBQUssVUFBVSxDQUFDO1FBQ2hCLEtBQUssT0FBTztZQUNWLE9BQU8sUUFBUSxDQUFBO1FBQ2pCO1lBQ0UsT0FBTyxPQUFPLENBQUE7S0FDakI7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2V5d29yZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRLZXl3b3JkVHlwZUZyb21LZXl3b3JkVHlwZUNvZGUoXG4gIHR5cGVDb2RlOiBzdHJpbmdcbik6IEtleXdvcmRUeXBlIHtcbiAgaWYgKCF0eXBlQ29kZSkgcmV0dXJuICdvdGhlcidcbiAgc3dpdGNoICh0eXBlQ29kZSkge1xuICAgIGNhc2UgJ3RoZW1lJzpcbiAgICBjYXNlICdwbGFjZSc6XG4gICAgY2FzZSAndGVtcG9yYWwnOlxuICAgIGNhc2UgJ290aGVyJzpcbiAgICAgIHJldHVybiB0eXBlQ29kZVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ290aGVyJ1xuICB9XG59XG4iXX0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5d29yZC5tYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9pc28xOTEzOS91dGlscy9rZXl3b3JkLm1hcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsaUNBQWlDLENBQy9DLFFBQWdCO0lBRWhCLElBQUksQ0FBQyxRQUFRO1FBQUUsT0FBTyxPQUFPLENBQUE7SUFDN0IsUUFBUSxRQUFRLEVBQUU7UUFDaEIsS0FBSyxPQUFPLENBQUM7UUFDYixLQUFLLE9BQU8sQ0FBQztRQUNiLEtBQUssVUFBVSxDQUFDO1FBQ2hCLEtBQUssT0FBTztZQUNWLE9BQU8sUUFBUSxDQUFBO1FBQ2pCO1lBQ0UsT0FBTyxPQUFPLENBQUE7S0FDakI7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2V5d29yZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC90aGVzYXVydXMnXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRLZXl3b3JkVHlwZUZyb21LZXl3b3JkVHlwZUNvZGUoXG4gIHR5cGVDb2RlOiBzdHJpbmdcbik6IEtleXdvcmRUeXBlIHtcbiAgaWYgKCF0eXBlQ29kZSkgcmV0dXJuICdvdGhlcidcbiAgc3dpdGNoICh0eXBlQ29kZSkge1xuICAgIGNhc2UgJ3RoZW1lJzpcbiAgICBjYXNlICdwbGFjZSc6XG4gICAgY2FzZSAndGVtcG9yYWwnOlxuICAgIGNhc2UgJ290aGVyJzpcbiAgICAgIHJldHVybiB0eXBlQ29kZVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ290aGVyJ1xuICB9XG59XG4iXX0=