@alfresco/adf-content-services 8.1.0-14794174089 → 8.1.0-14856070398

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 (202) hide show
  1. package/esm2022/lib/agent/services/agent.service.mjs +4 -4
  2. package/esm2022/lib/alfresco-icon/alfresco-icon.component.mjs +4 -4
  3. package/esm2022/lib/api-factories/alfresco-api-no-auth.service.mjs +4 -4
  4. package/esm2022/lib/api-factories/alfresco-api-v2-loader.service.mjs +4 -4
  5. package/esm2022/lib/aspect-list/aspect-list-dialog.component.mjs +4 -4
  6. package/esm2022/lib/aspect-list/aspect-list.component.mjs +4 -4
  7. package/esm2022/lib/aspect-list/aspect-list.module.mjs +5 -5
  8. package/esm2022/lib/aspect-list/services/aspect-list.service.mjs +4 -4
  9. package/esm2022/lib/aspect-list/services/dialog-aspect-list.service.mjs +4 -4
  10. package/esm2022/lib/aspect-list/services/node-aspect.service.mjs +4 -4
  11. package/esm2022/lib/auth-loader/content-auth-loader.service.mjs +4 -4
  12. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +4 -4
  13. package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +5 -5
  14. package/esm2022/lib/breadcrumb/dropdown-breadcrumb.component.mjs +4 -4
  15. package/esm2022/lib/category/categories-management/categories-management.component.mjs +4 -4
  16. package/esm2022/lib/category/category.module.mjs +5 -5
  17. package/esm2022/lib/category/services/category-tree-datasource.service.mjs +4 -4
  18. package/esm2022/lib/category/services/category.service.mjs +4 -4
  19. package/esm2022/lib/common/services/card-view-content-update.service.mjs +4 -4
  20. package/esm2022/lib/common/services/content.service.mjs +4 -4
  21. package/esm2022/lib/common/services/discovery-api.service.mjs +4 -4
  22. package/esm2022/lib/common/services/favorites-api.service.mjs +4 -4
  23. package/esm2022/lib/common/services/nodes-api.service.mjs +4 -4
  24. package/esm2022/lib/common/services/people-content.service.mjs +4 -4
  25. package/esm2022/lib/common/services/rendition.service.mjs +4 -4
  26. package/esm2022/lib/common/services/saved-searches.service.mjs +4 -4
  27. package/esm2022/lib/common/services/sites.service.mjs +4 -4
  28. package/esm2022/lib/common/services/upload.service.mjs +4 -4
  29. package/esm2022/lib/content-metadata/components/content-metadata/content-metadata-header.component.mjs +4 -4
  30. package/esm2022/lib/content-metadata/components/content-metadata/content-metadata.component.mjs +4 -4
  31. package/esm2022/lib/content-metadata/components/content-metadata-card/content-metadata-card.component.mjs +4 -4
  32. package/esm2022/lib/content-metadata/content-metadata.module.mjs +5 -5
  33. package/esm2022/lib/content-metadata/services/basic-properties.service.mjs +4 -4
  34. package/esm2022/lib/content-metadata/services/config/content-metadata-config.factory.mjs +4 -4
  35. package/esm2022/lib/content-metadata/services/content-metadata.service.mjs +4 -4
  36. package/esm2022/lib/content-metadata/services/content-type-property.service.mjs +4 -4
  37. package/esm2022/lib/content-metadata/services/property-descriptors.service.mjs +4 -4
  38. package/esm2022/lib/content-metadata/services/property-groups-translator.service.mjs +4 -4
  39. package/esm2022/lib/content-node-selector/content-node-dialog.service.mjs +4 -4
  40. package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.mjs +4 -4
  41. package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.service.mjs +4 -4
  42. package/esm2022/lib/content-node-selector/content-node-selector.component.mjs +4 -4
  43. package/esm2022/lib/content-node-selector/content-node-selector.module.mjs +5 -5
  44. package/esm2022/lib/content-node-selector/name-location-cell/name-location-cell.component.mjs +4 -4
  45. package/esm2022/lib/content-node-selector/site-dropdown/sites-dropdown.component.mjs +4 -4
  46. package/esm2022/lib/content-node-share/content-node-share.dialog.mjs +4 -4
  47. package/esm2022/lib/content-node-share/content-node-share.directive.mjs +4 -4
  48. package/esm2022/lib/content-node-share/content-node-share.module.mjs +5 -5
  49. package/esm2022/lib/content-node-share/services/shared-links-api.service.mjs +4 -4
  50. package/esm2022/lib/content-type/content-type-dialog.component.mjs +4 -4
  51. package/esm2022/lib/content-type/content-type.service.mjs +4 -4
  52. package/esm2022/lib/content.module.mjs +5 -5
  53. package/esm2022/lib/dialogs/category-selector/category-selector.dialog.mjs +4 -4
  54. package/esm2022/lib/dialogs/dialog.module.mjs +5 -5
  55. package/esm2022/lib/dialogs/download-zip/download-zip.dialog.mjs +4 -4
  56. package/esm2022/lib/dialogs/download-zip/download-zip.dialog.module.mjs +5 -5
  57. package/esm2022/lib/dialogs/download-zip/services/download-zip.service.mjs +4 -4
  58. package/esm2022/lib/dialogs/folder/folder.dialog.mjs +4 -4
  59. package/esm2022/lib/dialogs/library/library.dialog.mjs +4 -4
  60. package/esm2022/lib/dialogs/node-lock/node-lock.dialog.mjs +4 -4
  61. package/esm2022/lib/directives/auto-focus.directive.mjs +4 -4
  62. package/esm2022/lib/directives/check-allowable-operation.directive.mjs +4 -4
  63. package/esm2022/lib/directives/content-directive.module.mjs +5 -5
  64. package/esm2022/lib/directives/library-favorite.directive.mjs +4 -4
  65. package/esm2022/lib/directives/library-membership.directive.mjs +4 -4
  66. package/esm2022/lib/directives/node-counter.directive.mjs +7 -7
  67. package/esm2022/lib/directives/node-delete.directive.mjs +4 -4
  68. package/esm2022/lib/directives/node-download.directive.mjs +4 -4
  69. package/esm2022/lib/directives/node-favorite.directive.mjs +4 -4
  70. package/esm2022/lib/directives/node-lock.directive.mjs +4 -4
  71. package/esm2022/lib/directives/node-restore.directive.mjs +4 -4
  72. package/esm2022/lib/document-list/components/content-action/content-action-list.component.mjs +4 -4
  73. package/esm2022/lib/document-list/components/content-action/content-action.component.mjs +4 -4
  74. package/esm2022/lib/document-list/components/document-list.component.mjs +4 -4
  75. package/esm2022/lib/document-list/components/file-auto-download/file-auto-download.component.mjs +4 -4
  76. package/esm2022/lib/document-list/components/filter-header/filter-header.component.mjs +4 -4
  77. package/esm2022/lib/document-list/components/library-name-column/library-name-column.component.mjs +4 -4
  78. package/esm2022/lib/document-list/components/library-role-column/library-role-column.component.mjs +4 -4
  79. package/esm2022/lib/document-list/components/library-status-column/library-status-column.component.mjs +4 -4
  80. package/esm2022/lib/document-list/components/name-column/name-column.component.mjs +4 -4
  81. package/esm2022/lib/document-list/components/trashcan-name-column/trashcan-name-column.component.mjs +4 -4
  82. package/esm2022/lib/document-list/document-list.module.mjs +5 -5
  83. package/esm2022/lib/document-list/services/custom-resources.service.mjs +4 -4
  84. package/esm2022/lib/document-list/services/document-actions.service.mjs +4 -4
  85. package/esm2022/lib/document-list/services/document-list.service.mjs +4 -4
  86. package/esm2022/lib/document-list/services/folder-actions.service.mjs +4 -4
  87. package/esm2022/lib/document-list/services/lock.service.mjs +4 -4
  88. package/esm2022/lib/document-list/services/node-actions.service.mjs +4 -4
  89. package/esm2022/lib/group/services/group.service.mjs +4 -4
  90. package/esm2022/lib/legal-hold/services/legal-hold.service.mjs +4 -4
  91. package/esm2022/lib/material.module.mjs +5 -5
  92. package/esm2022/lib/mock/alfresco-api.service.mock.mjs +4 -4
  93. package/esm2022/lib/mock/search.component.mock.mjs +4 -4
  94. package/esm2022/lib/new-version-uploader/new-version-uploader.dialog.mjs +4 -4
  95. package/esm2022/lib/new-version-uploader/new-version-uploader.module.mjs +5 -5
  96. package/esm2022/lib/new-version-uploader/new-version-uploader.service.mjs +4 -4
  97. package/esm2022/lib/node-comments/node-comments.component.mjs +4 -4
  98. package/esm2022/lib/node-comments/node-comments.module.mjs +5 -5
  99. package/esm2022/lib/node-comments/services/node-comments.service.mjs +4 -4
  100. package/esm2022/lib/permission-manager/components/add-permission/add-permission-dialog.component.mjs +4 -4
  101. package/esm2022/lib/permission-manager/components/add-permission/add-permission-panel.component.mjs +4 -4
  102. package/esm2022/lib/permission-manager/components/add-permission/add-permission.component.mjs +4 -4
  103. package/esm2022/lib/permission-manager/components/add-permission/search-config-permission.service.mjs +4 -4
  104. package/esm2022/lib/permission-manager/components/inherited-button.directive.mjs +4 -4
  105. package/esm2022/lib/permission-manager/components/node-path-column/node-path-column.component.mjs +4 -4
  106. package/esm2022/lib/permission-manager/components/permission-container/permission-container.component.mjs +4 -4
  107. package/esm2022/lib/permission-manager/components/permission-list/permission-list.component.mjs +4 -4
  108. package/esm2022/lib/permission-manager/components/permission-list/permission-list.service.mjs +4 -4
  109. package/esm2022/lib/permission-manager/components/pop-over.directive.mjs +4 -4
  110. package/esm2022/lib/permission-manager/components/user-icon-column/user-icon-column.component.mjs +4 -4
  111. package/esm2022/lib/permission-manager/components/user-name-column/user-name-column.component.mjs +4 -4
  112. package/esm2022/lib/permission-manager/components/user-role-column/user-role-column.component.mjs +4 -4
  113. package/esm2022/lib/permission-manager/permission-manager.module.mjs +5 -5
  114. package/esm2022/lib/permission-manager/services/node-permission-dialog.service.mjs +4 -4
  115. package/esm2022/lib/permission-manager/services/node-permission.service.mjs +4 -4
  116. package/esm2022/lib/pipes/content-pipe.module.mjs +5 -5
  117. package/esm2022/lib/pipes/node-name-tooltip.pipe.mjs +4 -4
  118. package/esm2022/lib/prediction/services/prediction.service.mjs +4 -4
  119. package/esm2022/lib/search/components/empty-search-result.component.mjs +4 -4
  120. package/esm2022/lib/search/components/reset-search.directive.mjs +4 -4
  121. package/esm2022/lib/search/components/search-check-list/search-check-list.component.mjs +4 -4
  122. package/esm2022/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.mjs +4 -4
  123. package/esm2022/lib/search/components/search-chip-list/search-chip-list.component.mjs +4 -4
  124. package/esm2022/lib/search/components/search-control.component.mjs +4 -4
  125. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.component.mjs +5 -5
  126. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range-tabbed.component.mjs +4 -4
  127. package/esm2022/lib/search/components/search-datetime-range/search-datetime-range.component.mjs +4 -4
  128. package/esm2022/lib/search/components/search-facet-field/search-facet-field.component.mjs +4 -4
  129. package/esm2022/lib/search/components/search-filter/search-filter-card/search-filter-card.component.mjs +4 -4
  130. package/esm2022/lib/search/components/search-filter/search-filter.component.mjs +4 -4
  131. package/esm2022/lib/search/components/search-filter-autocomplete-chips/search-filter-autocomplete-chips.component.mjs +4 -4
  132. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.mjs +4 -4
  133. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.mjs +4 -4
  134. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-tabbed-content.component.mjs +4 -4
  135. package/esm2022/lib/search/components/search-filter-chips/search-filter-chips.component.mjs +4 -4
  136. package/esm2022/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.mjs +4 -4
  137. package/esm2022/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.mjs +4 -4
  138. package/esm2022/lib/search/components/search-filter-container/search-filter-container.component.mjs +4 -4
  139. package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tab.directive.mjs +4 -4
  140. package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tabbed.component.mjs +4 -4
  141. package/esm2022/lib/search/components/search-form/search-form.component.mjs +4 -4
  142. package/esm2022/lib/search/components/search-input/search-input.component.mjs +4 -4
  143. package/esm2022/lib/search/components/search-logical-filter/search-logical-filter.component.mjs +4 -4
  144. package/esm2022/lib/search/components/search-number-range/search-number-range.component.mjs +4 -4
  145. package/esm2022/lib/search/components/search-panel/search-panel.component.mjs +4 -4
  146. package/esm2022/lib/search/components/search-properties/search-properties.component.mjs +4 -4
  147. package/esm2022/lib/search/components/search-radio/search-radio.component.mjs +4 -4
  148. package/esm2022/lib/search/components/search-slider/search-slider.component.mjs +4 -4
  149. package/esm2022/lib/search/components/search-sorting-picker/search-sorting-picker.component.mjs +4 -4
  150. package/esm2022/lib/search/components/search-text/search-text.component.mjs +4 -4
  151. package/esm2022/lib/search/components/search-widget-container/search-widget-container.component.mjs +4 -4
  152. package/esm2022/lib/search/components/search.component.mjs +4 -4
  153. package/esm2022/lib/search/search.module.mjs +5 -5
  154. package/esm2022/lib/search/services/search-configuration.service.mjs +4 -4
  155. package/esm2022/lib/search/services/search-facet-filters.service.mjs +4 -4
  156. package/esm2022/lib/search/services/search-filter.service.mjs +4 -4
  157. package/esm2022/lib/search/services/search-header-query-builder.service.mjs +4 -4
  158. package/esm2022/lib/search/services/search-query-builder.service.mjs +4 -4
  159. package/esm2022/lib/search/services/search.service.mjs +4 -4
  160. package/esm2022/lib/search-ai/services/search-ai.service.mjs +4 -4
  161. package/esm2022/lib/security/services/security-controls-groups-marks-security.service.mjs +4 -4
  162. package/esm2022/lib/services/alfresco-api.service.mjs +4 -4
  163. package/esm2022/lib/tag/services/tag.service.mjs +4 -4
  164. package/esm2022/lib/tag/tag-actions/tag-actions.component.mjs +4 -4
  165. package/esm2022/lib/tag/tag-list/tag-list.component.mjs +4 -4
  166. package/esm2022/lib/tag/tag-node-list/tag-node-list.component.mjs +4 -4
  167. package/esm2022/lib/tag/tag.module.mjs +5 -5
  168. package/esm2022/lib/tag/tags-creator/tags-creator.component.mjs +4 -4
  169. package/esm2022/lib/testing/content.testing.module.mjs +5 -5
  170. package/esm2022/lib/tree/components/tree.component.mjs +4 -4
  171. package/esm2022/lib/tree/services/tree.service.mjs +4 -4
  172. package/esm2022/lib/tree/tree.module.mjs +5 -5
  173. package/esm2022/lib/tree-view/components/tree-view.component.mjs +4 -4
  174. package/esm2022/lib/tree-view/data/tree-view-datasource.mjs +4 -4
  175. package/esm2022/lib/tree-view/services/tree-view.service.mjs +4 -4
  176. package/esm2022/lib/tree-view/tree-view.module.mjs +5 -5
  177. package/esm2022/lib/upload/components/base-upload/upload-base.mjs +4 -4
  178. package/esm2022/lib/upload/components/file-uploading-dialog.component.mjs +4 -4
  179. package/esm2022/lib/upload/components/file-uploading-list-row.component.mjs +4 -4
  180. package/esm2022/lib/upload/components/file-uploading-list.component.mjs +4 -4
  181. package/esm2022/lib/upload/components/upload-button.component.mjs +4 -4
  182. package/esm2022/lib/upload/components/upload-drag-area.component.mjs +4 -4
  183. package/esm2022/lib/upload/components/upload-version-button.component.mjs +4 -4
  184. package/esm2022/lib/upload/directives/file-draggable.directive.mjs +4 -4
  185. package/esm2022/lib/upload/directives/toggle-icon.directive.mjs +4 -4
  186. package/esm2022/lib/upload/pipes/file-upload-error.pipe.mjs +4 -4
  187. package/esm2022/lib/upload/upload.module.mjs +5 -5
  188. package/esm2022/lib/version-compatibility/version-compatibility.directive.mjs +4 -4
  189. package/esm2022/lib/version-compatibility/version-compatibility.module.mjs +5 -5
  190. package/esm2022/lib/version-compatibility/version-compatibility.service.mjs +4 -4
  191. package/esm2022/lib/version-manager/content-version.service.mjs +4 -4
  192. package/esm2022/lib/version-manager/version-comparison.component.mjs +4 -4
  193. package/esm2022/lib/version-manager/version-list.component.mjs +4 -4
  194. package/esm2022/lib/version-manager/version-manager.component.mjs +4 -4
  195. package/esm2022/lib/version-manager/version-manager.module.mjs +5 -5
  196. package/esm2022/lib/version-manager/version-upload.component.mjs +4 -4
  197. package/esm2022/lib/viewer/alfresco-viewer.module.mjs +5 -5
  198. package/esm2022/lib/viewer/components/alfresco-viewer.component.mjs +4 -4
  199. package/fesm2022/adf-content-services.mjs +629 -629
  200. package/fesm2022/adf-content-services.mjs.map +1 -1
  201. package/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.component.d.ts +1 -1
  202. package/package.json +3 -3
@@ -367,11 +367,11 @@ export class CustomResourcesService {
367
367
  getIncludesFields(includeFields) {
368
368
  return ['path', 'properties', 'allowableOperations', 'permissions', 'aspectNames', ...includeFields].filter((element, index, array) => index === array.indexOf(element));
369
369
  }
370
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomResourcesService, deps: [{ token: i1.AlfrescoApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
371
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomResourcesService, providedIn: 'root' }); }
370
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CustomResourcesService, deps: [{ token: i1.AlfrescoApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
371
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CustomResourcesService, providedIn: 'root' }); }
372
372
  }
373
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomResourcesService, decorators: [{
373
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CustomResourcesService, decorators: [{
374
374
  type: Injectable,
375
375
  args: [{ providedIn: 'root' }]
376
376
  }], ctorParameters: () => [{ type: i1.AlfrescoApiService }] });
377
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJlc291cmNlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9kb2N1bWVudC1saXN0L3NlcnZpY2VzL2N1c3RvbS1yZXNvdXJjZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUtILGdCQUFnQixFQUVoQixTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDVCxZQUFZLEVBQ1osY0FBYyxFQUNkLFdBQVcsRUFDWCxRQUFRLEVBR1IsZUFBZSxFQUNsQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRXJDLE1BQU0saUJBQWlCLEdBQVcsUUFBUSxDQUFDO0FBRzNDLE1BQU0sT0FBTyxzQkFBc0I7SUFFL0IsSUFBSSxTQUFTO1FBQ1QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNsRixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUdELElBQUksUUFBUTtRQUNSLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDL0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFHRCxJ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QXNCLGNBRFQsTUFBTTs7NEZBQ25CLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFBhZ2luYXRpb25Nb2RlbCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBBbGZyZXNjb0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbGZyZXNjby1hcGkuc2VydmljZSc7XG5pbXBvcnQge1xuICAgIERlbGV0ZWROb2Rlc1BhZ2luZyxcbiAgICBTZWFyY2hSZXF1ZXN0LFxuICAgIFNoYXJlZExpbmtQYWdpbmcsXG4gICAgRmF2b3JpdGVQYWdpbmcsXG4gICAgU2l0ZU1lbWJlclBhZ2luZyxcbiAgICBTaXRlUm9sZVBhZ2luZyxcbiAgICBQZW9wbGVBcGksXG4gICAgU2l0ZXNBcGksXG4gICAgU2VhcmNoQXBpLFxuICAgIEZhdm9yaXRlc0FwaSxcbiAgICBTaGFyZWRsaW5rc0FwaSxcbiAgICBUcmFzaGNhbkFwaSxcbiAgICBOb2Rlc0FwaSxcbiAgICBTaXRlUGFnaW5nLFxuICAgIFJlc3VsdFNldFBhZ2luZyxcbiAgICBTRUFSQ0hfTEFOR1VBR0Vcbn0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmcm9tLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBDUkVBVEVfUEVSTUlTU0lPTjogc3RyaW5nID0gJ2NyZWF0ZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tUmVzb3VyY2VzU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfcGVvcGxlQXBpOiBQZW9wbGVBcGk7XG4gICAgZ2V0IHBlb3BsZUFwaSgpOiBQZW9wbGVBcGkge1xuICAgICAgICB0aGlzLl9wZW9wbGVBcGkgPSB0aGlzLl9wZW9wbGVBcGkgPz8gbmV3IFBlb3BsZUFwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9wZW9wbGVBcGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2l0ZXNBcGk6IFNpdGVzQXBpO1xuICAgIGdldCBzaXRlc0FwaSgpOiBTaXRlc0FwaSB7XG4gICAgICAgIHRoaXMuX3NpdGVzQXBpID0gdGhpcy5fc2l0ZXNBcGkgPz8gbmV3IFNpdGVzQXBpKHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpdGVzQXBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3RyYXNoY2FuQXBpOiBUcmFzaGNhbkFwaTtcbiAgICBnZXQgdHJhc2hjYW5BcGkoKTogVHJhc2hjYW5BcGkge1xuICAgICAgICB0aGlzLl90cmFzaGNhbkFwaSA9IHRoaXMuX3RyYXNoY2FuQXBpID8/IG5ldyBUcmFzaGNhbkFwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl90cmFzaGNhbkFwaTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZWFyY2hBcGk6IFNlYXJjaEFwaTtcbiAgICBnZXQgc2VhcmNoQXBpKCk6IFNlYXJjaEFwaSB7XG4gICAgICAgIHRoaXMuX3NlYXJjaEFwaSA9IHRoaXMuX3NlYXJjaEFwaSA/PyBuZXcgU2VhcmNoQXBpKHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlYXJjaEFwaTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zaGFyZWRMaW5rc0FwaTogU2hhcmVkbGlua3NBcGk7XG4gICAgZ2V0IHNoYXJlZExpbmtzQXBpKCk6IFNoYXJlZGxpbmtzQXBpIHtcbiAgICAgICAgdGhpcy5fc2hhcmVkTGlua3NBcGkgPSB0aGlzLl9zaGFyZWRMaW5rc0FwaSA/PyBuZXcgU2hhcmVkbGlua3NBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fc2hhcmVkTGlua3NBcGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZmF2b3JpdGVzQXBpOiBGYXZvcml0ZXNBcGk7XG4gICAgZ2V0IGZhdm9yaXRlc0FwaSgpOiBGYXZvcml0ZXNBcGkge1xuICAgICAgICB0aGlzLl9mYXZvcml0ZXNBcGkgPSB0aGlzLl9mYXZvcml0ZXNBcGkgPz8gbmV3IEZhdm9yaXRlc0FwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9mYXZvcml0ZXNBcGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbm9kZXNBcGk6IE5vZGVzQXBpO1xuICAgIGdldCBub2Rlc0FwaSgpOiBOb2Rlc0FwaSB7XG4gICAgICAgIHRoaXMuX25vZGVzQXBpID0gdGhpcy5fbm9kZXNBcGkgPz8gbmV3IE5vZGVzQXBpKHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vZGVzQXBpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpU2VydmljZTogQWxmcmVzY29BcGlTZXJ2aWNlKSB7fVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBmaWxlcyByZWNlbnRseSBhY2Nlc3NlZCBieSBhIHVzZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGVyc29uSWQgSUQgb2YgdGhlIHVzZXJcbiAgICAgKiBAcGFyYW0gcGFnaW5hdGlvbiBTcGVjaWZpZXMgaG93IHRvIHBhZ2luYXRlIHRoZSByZXN1bHRzXG4gICAgICogQHBhcmFtIGZpbHRlcnMgU3BlY2lmaWVzIGFkZGl0aW9uYWwgZmlsdGVycyB0byBhcHBseSAoam9pbmVkIHdpdGggKipBTkQqKilcbiAgICAgKiBAcmV0dXJucyBMaXN0IG9mIG5vZGVzIGZvciB0aGUgcmVjZW50bHkgdXNlZCBmaWxlc1xuICAgICAqL1xuICAgIGdldFJlY2VudEZpbGVzKHBlcnNvbklkOiBzdHJpbmcsIHBhZ2luYXRpb246IFBhZ2luYXRpb25Nb2RlbCwgZmlsdGVycz86IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxSZXN1bHRTZXRQYWdpbmc+IHtcbiAgICAgICAgY29uc3QgZGVmYXVsdEZpbHRlciA9IFtcbiAgICAgICAgICAgICdUWVBFOlwiY29udGVudFwiJyxcbiAgICAgICAgICAgICctUEFUSDpcIi8vY206d2lraS8qXCInLFxuICAgICAgICAgICAgJy1UWVBFOlwiYXBwOmZpbGVsaW5rXCInLFxuICAgICAgICAgICAgJy1UWVBFOlwiY206dGh1bWJuYWlsXCInLFxuICAgICAgICAgICAgJy1UWVBFOlwiY206ZmFpbGVkVGh1bWJuYWlsXCInLFxuICAgICAgICAgICAgJy1UWVBFOlwiY206cmF0aW5nXCInLFxuICAgICAgICAgICAgJy1UWVBFOlwiZGw6ZGF0YUxpc3RcIicsXG4gICAgICAgICAgICAnLVRZUEU6XCJkbDp0b2RvTGlzdFwiJyxcbiAgICAgICAgICAgICctVFlQRTpcImRsOmlzc3VlXCInLFxuICAgICAgICAgICAgJy1UWVBFOlwiZGw6Y29udGFjdFwiJyxcbiAgICAgICAgICAgICctVFlQRTpcImRsOmV2ZW50QWdlbmRhXCInLFxuICAgICAgICAgICAgJy1UWVBFOlwiZGw6ZXZlbnRcIicsXG4gICAgICAgICAgICAnLVRZUEU6XCJkbDp0YXNrXCInLFxuICAgICAgICAgICAgJy1UWVBFOlwiZGw6c2ltcGxldGFza1wiJyxcbiAgICAgICAgICAgICctVFlQRTpcImRsOm1lZXRpbmdBZ2VuZGFcIicsXG4gICAgICAgICAgICAnLVRZUEU6XCJkbDpsb2NhdGlvblwiJyxcbiAgICAgICAgICAgICctVFlQRTpcImZtOnRvcGljXCInLFxuICAgICAgICAgICAgJy1UWVBFOlwiZm06cG9zdFwiJyxcbiAgICAgICAgICAgICctVFlQRTpcImlhOmNhbGVuZGFyRXZlbnRcIicsXG4gICAgICAgICAgICAnLVRZUEU6XCJsbms6bGlua1wiJ1xuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGVvcGxlQXBpLmdldFBlcnNvbihwZXJzb25JZCkudGhlbihcbiAgICAgICAgICAgICAgICAocGVyc29uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVzZXJuYW1lID0gcGVyc29uLmVudHJ5LmlkO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJRdWVyaWVzID0gW1xuICAgICAgICAgICAgICAgICAgICAgICAgeyBxdWVyeTogYGNtOm1vZGlmaWVkOltOT1cvREFZLTMwREFZUyBUTyBOT1cvREFZKzFEQVldYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBxdWVyeTogYGNtOm1vZGlmaWVyOicke3VzZXJuYW1lfScgT1IgY206Y3JlYXRvcjonJHt1c2VybmFtZX0nYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBxdWVyeTogZGVmYXVsdEZpbHRlci5qb2luKCcgQU5EICcpIH1cbiAgICAgICAgICAgICAgICAgICAgXTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVycyAmJiBmaWx0ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclF1ZXJpZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IGZpbHRlcnMuam9pbigpXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHF1ZXJ5OiBTZWFyY2hSZXF1ZXN0ID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeTogJyonLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlOiBTRUFSQ0hfTEFOR1VBR0UuQUZUU1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclF1ZXJpZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlOiBbJ3BhdGgnLCAncHJvcGVydGllcycsICdhbGxvd2FibGVPcGVyYXRpb25zJywgJ2FzcGVjdE5hbWVzJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBzb3J0OiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnRklFTEQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZDogJ2NtOm1vZGlmaWVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNjZW5kaW5nOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdpbmc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhJdGVtczogcGFnaW5hdGlvbi5tYXhJdGVtcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwQ291bnQ6IHBhZ2luYXRpb24uc2tpcENvdW50XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoQXBpLnNlYXJjaChxdWVyeSkudGhlbihcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWFyY2hSZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHNlYXJjaFJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgZmF2b3JpdGUgZmlsZXMgZm9yIHRoZSBjdXJyZW50IHVzZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFnaW5hdGlvbiBTcGVjaWZpZXMgaG93IHRvIHBhZ2luYXRlIHRoZSByZXN1bHRzXG4gICAgICogQHBhcmFtIGluY2x1ZGVGaWVsZHMgTGlzdCBvZiBkYXRhIGZpZWxkIG5hbWVzIHRvIGluY2x1ZGUgaW4gdGhlIHJlc3VsdHNcbiAgICAgKiBAcGFyYW0gd2hlcmUgQSBzdHJpbmcgdG8gcmVzdHJpY3QgdGhlIHJldHVybmVkIG9iamVjdHMgYnkgdXNpbmcgYSBwcmVkaWNhdGVcbiAgICAgKiBAcmV0dXJucyBMaXN0IG9mIGZhdm9yaXRlIGZpbGVzXG4gICAgICovXG4gICAgbG9hZEZhdm9yaXRlcyhwYWdpbmF0aW9uOiBQYWdpbmF0aW9uTW9kZWwsIGluY2x1ZGVGaWVsZHM6IHN0cmluZ1tdID0gW10sIHdoZXJlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxGYXZvcml0ZVBhZ2luZz4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRmllbGRzUmVxdWVzdCA9IHRoaXMuZ2V0SW5jbHVkZXNGaWVsZHMoaW5jbHVkZUZpZWxkcyk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRQcmVkaWNhdGUgPSAnKEVYSVNUUyh0YXJnZXQvZmlsZSkgT1IgRVhJU1RTKHRhcmdldC9mb2xkZXIpKSc7XG5cbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG1heEl0ZW1zOiBwYWdpbmF0aW9uLm1heEl0ZW1zLFxuICAgICAgICAgICAgc2tpcENvdW50OiBwYWdpbmF0aW9uLnNraXBDb3VudCxcbiAgICAgICAgICAgIHdoZXJlOiB3aGVyZSA/IGAke3doZXJlfSBBTkQgJHtkZWZhdWx0UHJlZGljYXRlfWAgOiBkZWZhdWx0UHJlZGljYXRlLFxuICAgICAgICAgICAgaW5jbHVkZTogaW5jbHVkZUZpZWxkc1JlcXVlc3RcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZhdm9yaXRlc0FwaS5saXN0RmF2b3JpdGVzKCctbWUtJywgb3B0aW9ucykudGhlbihcbiAgICAgICAgICAgICAgICAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2U6IEZhdm9yaXRlUGFnaW5nID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJpZXM6IHJlc3VsdC5saXN0LmVudHJpZXMubWFwKCh7IGVudHJ5IH06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBlbnRyeS50YXJnZXQuZmlsZSB8fCBlbnRyeS50YXJnZXQuZm9sZGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHJvcGVydGllcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLih0YXJnZXQucHJvcGVydGllcyB8fCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NtOnRpdGxlJzogZW50cnkudGl0bGUgfHwgdGFyZ2V0LnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjbTpkZXNjcmlwdGlvbic6IGVudHJ5LmRlc2NyaXB0aW9uIHx8IHRhcmdldC5kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4oZW50cnkucHJvcGVydGllcyB8fCB7fSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmFzcGVjdE5hbWVzID0gZW50cnk/LmFzcGVjdE5hbWVzID8/IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQuYWxsb3dhYmxlT3BlcmF0aW9ucyA9IGVudHJ5Py5hbGxvd2FibGVPcGVyYXRpb25zID8/IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeTogdGFyZ2V0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnaW5hdGlvbjogcmVzdWx0Lmxpc3QucGFnaW5hdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQocGFnZSk7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBzaXRlcyB0aGF0IHRoZSBjdXJyZW50IHVzZXIgaXMgYSBtZW1iZXIgb2YuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFnaW5hdGlvbiBTcGVjaWZpZXMgaG93IHRvIHBhZ2luYXRlIHRoZSByZXN1bHRzXG4gICAgICogQHBhcmFtIHdoZXJlIEEgc3RyaW5nIHRvIHJlc3RyaWN0IHRoZSByZXR1cm5lZCBvYmplY3RzIGJ5IHVzaW5nIGEgcHJlZGljYXRlXG4gICAgICogQHJldHVybnMgTGlzdCBvZiBzaXRlc1xuICAgICAqL1xuICAgIGxvYWRNZW1iZXJTaXRlcyhwYWdpbmF0aW9uOiBQYWdpbmF0aW9uTW9kZWwsIHdoZXJlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxTaXRlTWVtYmVyUGFnaW5nPiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBpbmNsdWRlOiBbJ3Byb3BlcnRpZXMnXSxcbiAgICAgICAgICAgIG1heEl0ZW1zOiBwYWdpbmF0aW9uLm1heEl0ZW1zLFxuICAgICAgICAgICAgc2tpcENvdW50OiBwYWdpbmF0aW9uLnNraXBDb3VudCxcbiAgICAgICAgICAgIHdoZXJlXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5zaXRlc0FwaS5saXN0U2l0ZU1lbWJlcnNoaXBzRm9yUGVyc29uKCctbWUtJywgb3B0aW9ucykudGhlbihcbiAgICAgICAgICAgICAgICAocmVzdWx0OiBTaXRlUm9sZVBhZ2luZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYWdlOiBTaXRlTWVtYmVyUGFnaW5nID0gbmV3IFNpdGVNZW1iZXJQYWdpbmcoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJpZXM6IHJlc3VsdC5saXN0LmVudHJpZXMubWFwKCh7IGVudHJ5OiB7IHNpdGUgfSB9OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0ZS5hbGxvd2FibGVPcGVyYXRpb25zID0gc2l0ZS5hbGxvd2FibGVPcGVyYXRpb25zID8gc2l0ZS5hbGxvd2FibGVPcGVyYXRpb25zIDogW0NSRUFURV9QRVJNSVNTSU9OXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0ZS5uYW1lID0gc2l0ZS5uYW1lIHx8IHNpdGUudGl0bGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeTogc2l0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2luYXRpb246IHJlc3VsdC5saXN0LnBhZ2luYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChwYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCBzaXRlcyBpbiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWdpbmF0aW9uIFNwZWNpZmllcyBob3cgdG8gcGFnaW5hdGUgdGhlIHJlc3VsdHNcbiAgICAgKiBAcGFyYW0gd2hlcmUgQSBzdHJpbmcgdG8gcmVzdHJpY3QgdGhlIHJldHVybmVkIG9iamVjdHMgYnkgdXNpbmcgYSBwcmVkaWNhdGVcbiAgICAgKiBAcmV0dXJucyBMaXN0IG9mIHNpdGVzXG4gICAgICovXG4gICAgbG9hZFNpdGVzKHBhZ2luYXRpb246IFBhZ2luYXRpb25Nb2RlbCwgd2hlcmU/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNpdGVQYWdpbmc+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGluY2x1ZGU6IFsncHJvcGVydGllcycsICdhc3BlY3ROYW1lcyddLFxuICAgICAgICAgICAgbWF4SXRlbXM6IHBhZ2luYXRpb24ubWF4SXRlbXMsXG4gICAgICAgICAgICBza2lwQ291bnQ6IHBhZ2luYXRpb24uc2tpcENvdW50LFxuICAgICAgICAgICAgd2hlcmVcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNpdGVzQXBpLmxpc3RTaXRlcyhvcHRpb25zKS50aGVuKFxuICAgICAgICAgICAgICAgIChwYWdlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2UubGlzdC5lbnRyaWVzLm1hcCgoeyBlbnRyeSB9OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5Lm5hbWUgPSBlbnRyeS5uYW1lIHx8IGVudHJ5LnRpdGxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZW50cnkgfTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQocGFnZSk7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhbGwgaXRlbXMgY3VycmVudGx5IGluIHRoZSB0cmFzaC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWdpbmF0aW9uIFNwZWNpZmllcyBob3cgdG8gcGFnaW5hdGUgdGhlIHJlc3VsdHNcbiAgICAgKiBAcGFyYW0gaW5jbHVkZUZpZWxkcyBMaXN0IG9mIGRhdGEgZmllbGQgbmFtZXMgdG8gaW5jbHVkZSBpbiB0aGUgcmVzdWx0c1xuICAgICAqIEByZXR1cm5zIExpc3Qgb2YgZGVsZXRlZCBpdGVtc1xuICAgICAqL1xuICAgIGxvYWRUcmFzaGNhbihwYWdpbmF0aW9uOiBQYWdpbmF0aW9uTW9kZWwsIGluY2x1ZGVGaWVsZHM6IHN0cmluZ1tdID0gW10pOiBPYnNlcnZhYmxlPERlbGV0ZWROb2Rlc1BhZ2luZz4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRmllbGRzUmVxdWVzdCA9IHRoaXMuZ2V0SW5jbHVkZXNGaWVsZHMoaW5jbHVkZUZpZWxkcyk7XG5cbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGluY2x1ZGU6IGluY2x1ZGVGaWVsZHNSZXF1ZXN0LFxuICAgICAgICAgICAgbWF4SXRlbXM6IHBhZ2luYXRpb24ubWF4SXRlbXMsXG4gICAgICAgICAgICBza2lwQ291bnQ6IHBhZ2luYXRpb24uc2tpcENvdW50XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy50cmFzaGNhbkFwaS5saXN0RGVsZXRlZE5vZGVzKG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHNoYXJlZCBsaW5rcyBmb3IgdGhlIGN1cnJlbnQgdXNlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWdpbmF0aW9uIFNwZWNpZmllcyBob3cgdG8gcGFnaW5hdGUgdGhlIHJlc3VsdHNcbiAgICAgKiBAcGFyYW0gaW5jbHVkZUZpZWxkcyBMaXN0IG9mIGRhdGEgZmllbGQgbmFtZXMgdG8gaW5jbHVkZSBpbiB0aGUgcmVzdWx0c1xuICAgICAqIEBwYXJhbSB3aGVyZSBBIHN0cmluZyB0byByZXN0cmljdCB0aGUgcmV0dXJuZWQgb2JqZWN0cyBieSB1c2luZyBhIHByZWRpY2F0ZVxuICAgICAqIEByZXR1cm5zIExpc3Qgb2Ygc2hhcmVkIGxpbmtzXG4gICAgICovXG4gICAgbG9hZFNoYXJlZExpbmtzKHBhZ2luYXRpb246IFBhZ2luYXRpb25Nb2RlbCwgaW5jbHVkZUZpZWxkczogc3RyaW5nW10gPSBbXSwgd2hlcmU/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNoYXJlZExpbmtQYWdpbmc+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZUZpZWxkc1JlcXVlc3QgPSB0aGlzLmdldEluY2x1ZGVzRmllbGRzKGluY2x1ZGVGaWVsZHMpO1xuXG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBpbmNsdWRlOiBpbmNsdWRlRmllbGRzUmVxdWVzdCxcbiAgICAgICAgICAgIG1heEl0ZW1zOiBwYWdpbmF0aW9uLm1heEl0ZW1zLFxuICAgICAgICAgICAgc2tpcENvdW50OiBwYWdpbmF0aW9uLnNraXBDb3VudCxcbiAgICAgICAgICAgIHdoZXJlXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5zaGFyZWRMaW5rc0FwaS5saXN0U2hhcmVkTGlua3Mob3B0aW9ucykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElzIHRoZSBmb2xkZXIgSUQgb25lIG9mIHRoZSB3ZWxsLWtub3duIGFsaWFzZXM/XG4gICAgICpcbiAgICAgKiBAcGFyYW0gZm9sZGVySWQgRm9sZGVyIElEIG5hbWUgdG8gY2hlY2tcbiAgICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBJRCBpcyBhIHdlbGwta25vd24gbmFtZSwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAgICovXG4gICAgaXNDdXN0b21Tb3VyY2UoZm9sZGVySWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgaXNDdXN0b21Tb3VyY2VzID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHNvdXJjZXMgPSBbJy10cmFzaGNhbi0nLCAnLXNoYXJlZGxpbmtzLScsICctc2l0ZXMtJywgJy1teXNpdGVzLScsICctZmF2b3JpdGVzLScsICctcmVjZW50LSddO1xuXG4gICAgICAgIGlmIChzb3VyY2VzLmluZGV4T2YoZm9sZGVySWQpID4gLTEpIHtcbiAgICAgICAgICAgIGlzQ3VzdG9tU291cmNlcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXNDdXN0b21Tb3VyY2VzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElzIHRoZSBmb2xkZXIgSUQgYSBcIi1teVwiLCBcIi1yb290LVwiLCBvciBcIi1zaGFyZWQtXCIgYWxpYXM/XG4gICAgICpcbiAgICAgKiBAcGFyYW0gZm9sZGVySWQgRm9sZGVyIElEIG5hbWUgdG8gY2hlY2tcbiAgICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBJRCBpcyBvbmUgb2YgdGhlIHN1cHBvcnRlZCBzb3VyY2VzLCBmYWxzZSBvdGhlcndpc2VcbiAgICAgKi9cbiAgICBpc1N1cHBvcnRlZFNvdXJjZShmb2xkZXJJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBpc1N1cHBvcnRlZFNvdXJjZXMgPSBmYWxzZTtcbiAgICAgICAgY29uc3Qgc291cmNlcyA9IFsnLW15LScsICctcm9vdC0nLCAnLXNoYXJlZC0nXTtcblxuICAgICAgICBpZiAoc291cmNlcy5pbmRleE9mKGZvbGRlcklkKSA+IC0xKSB7XG4gICAgICAgICAgICBpc1N1cHBvcnRlZFNvdXJjZXMgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlzU3VwcG9ydGVkU291cmNlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgZm9sZGVyJ3MgY29udGVudHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZUlkIElEIG9mIHRoZSB0YXJnZXQgZm9sZGVyIG5vZGVcbiAgICAgKiBAcGFyYW0gcGFnaW5hdGlvbiBTcGVjaWZpZXMgaG93IHRvIHBhZ2luYXRlIHRoZSByZXN1bHRzXG4gICAgICogQHBhcmFtIGluY2x1ZGVGaWVsZHMgTGlzdCBvZiBkYXRhIGZpZWxkIG5hbWVzIHRvIGluY2x1ZGUgaW4gdGhlIHJlc3VsdHNcbiAgICAgKiBAcGFyYW0gd2hlcmUgIEZpbHRlcnMgdGhlIE5vZGUgbGlzdCB1c2luZyB0aGUgKndoZXJlKiBjb25kaXRpb24gb2YgdGhlIFJFU1QgQVBJIChmb3IgZXhhbXBsZSwgaXNGb2xkZXI9dHJ1ZSkuIFNlZSB0aGUgUkVTVCBBUEkgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICAgKiBAcmV0dXJucyBMaXN0IG9mIGl0ZW1zIGNvbnRhaW5lZCBpbiB0aGUgZm9sZGVyXG4gICAgICovXG4gICAgbG9hZEZvbGRlckJ5Tm9kZUlkKG5vZGVJZDogc3RyaW5nLCBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uTW9kZWwsIGluY2x1ZGVGaWVsZHM6IHN0cmluZ1tdID0gW10sIHdoZXJlPzogc3RyaW5nKTogYW55IHtcbiAgICAgICAgaWYgKG5vZGVJZCA9PT0gJy10cmFzaGNhbi0nKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkVHJhc2hjYW4ocGFnaW5hdGlvbiwgaW5jbHVkZUZpZWxkcyk7XG4gICAgICAgIH0gZWxzZSBpZiAobm9kZUlkID09PSAnLXNoYXJlZGxpbmtzLScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRTaGFyZWRMaW5rcyhwYWdpbmF0aW9uLCBpbmNsdWRlRmllbGRzLCB3aGVyZSk7XG4gICAgICAgIH0gZWxzZSBpZiAobm9kZUlkID09PSAnLXNpdGVzLScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRTaXRlcyhwYWdpbmF0aW9uLCB3aGVyZSk7XG4gICAgICAgIH0gZWxzZSBpZiAobm9kZUlkID09PSAnLW15c2l0ZXMtJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9hZE1lbWJlclNpdGVzKHBhZ2luYXRpb24sIHdoZXJlKTtcbiAgICAgICAgfSBlbHNlIGlmIChub2RlSWQgPT09ICctZmF2b3JpdGVzLScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRGYXZvcml0ZXMocGFnaW5hdGlvbiwgaW5jbHVkZUZpZWxkcywgd2hlcmUpO1xuICAgICAgICB9IGVsc2UgaWYgKG5vZGVJZCA9PT0gJy1yZWNlbnQtJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVjZW50RmlsZXMoJy1tZS0nLCBwYWdpbmF0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRPRE86IHJlbW92ZSBpdCBmcm9tIGhlcmVcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGNvbnRlbnRzIG9mIG9uZSBvZiB0aGUgd2VsbC1rbm93biBhbGlhc2VzIGluIHRoZSBmb3JtIG9mIG5vZGUgSUQgc3RyaW5ncy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlSWQgSUQgb2YgdGhlIHRhcmdldCBmb2xkZXIgbm9kZVxuICAgICAqIEBwYXJhbSBwYWdpbmF0aW9uIFNwZWNpZmllcyBob3cgdG8gcGFnaW5hdGUgdGhlIHJlc3VsdHNcbiAgICAgKiBAcmV0dXJucyBMaXN0IG9mIG5vZGUgSURzXG4gICAgICovXG4gICAgZ2V0Q29ycmVzcG9uZGluZ05vZGVJZHMobm9kZUlkOiBzdHJpbmcsIHBhZ2luYXRpb246IFBhZ2luYXRpb25Nb2RlbCA9IHt9KTogT2JzZXJ2YWJsZTxzdHJpbmdbXT4ge1xuICAgICAgICBpZiAodGhpcy5pc0N1c3RvbVNvdXJjZShub2RlSWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkRm9sZGVyQnlOb2RlSWQobm9kZUlkLCBwYWdpbmF0aW9uKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0OiBhbnkpOiBzdHJpbmdbXSA9PiByZXN1bHQubGlzdC5lbnRyaWVzLm1hcCgobm9kZTogYW55KTogc3RyaW5nID0+IHRoaXMuZ2V0SWRGcm9tRW50cnkobm9kZSwgbm9kZUlkKSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKG5vZGVJZCkge1xuICAgICAgICAgICAgLy8gY2FzZXMgd2hlbiBub2RlSWQgaXMgJy1teS0nLCAnLXJvb3QtJyBvciAnLXNoYXJlZC0nXG4gICAgICAgICAgICByZXR1cm4gZnJvbSh0aGlzLm5vZGVzQXBpLmdldE5vZGUobm9kZUlkKS50aGVuKChub2RlKSA9PiBbbm9kZS5lbnRyeS5pZF0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hvb3NlcyB0aGUgY29ycmVjdCBJRCBmb3IgYSBub2RlIGVudHJ5LlxuICAgICAqXG4gICAgICogQHBhcmFtIG5vZGUgTm9kZSBvYmplY3RcbiAgICAgKiBAcGFyYW0gbm9kZUlkIElEIG9mIHRoZSBub2RlIG9iamVjdFxuICAgICAqIEByZXR1cm5zIElEIHZhbHVlXG4gICAgICovXG4gICAgZ2V0SWRGcm9tRW50cnkobm9kZTogYW55LCBub2RlSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChub2RlSWQgPT09ICctc2hhcmVkbGlua3MtJykge1xuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZW50cnkubm9kZUlkO1xuICAgICAgICB9IGVsc2UgaWYgKG5vZGVJZCA9PT0gJy1zaXRlcy0nIHx8IG5vZGVJZCA9PT0gJy1teXNpdGVzLScpIHtcbiAgICAgICAgICAgIHJldHVybiBub2RlLmVudHJ5Lmd1aWQ7XG4gICAgICAgIH0gZWxzZSBpZiAobm9kZUlkID09PSAnLWZhdm9yaXRlcy0nKSB7XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5lbnRyeS50YXJnZXRHdWlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZW50cnkuaWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEb2VzIHRoZSB3ZWxsLWtub3duIGFsaWFzIGhhdmUgYSBjb3JyZXNwb25kaW5nIG5vZGUgSUQ/XG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZUlkIE5vZGUgdG8gY2hlY2tcbiAgICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBhbGlhcyBoYXMgYSBjb3JyZXNwb25kaW5nIG5vZGUgSUQsIGZhbHNlIG90aGVyd2lzZVxuICAgICAqL1xuICAgIGhhc0NvcnJlc3BvbmRpbmdOb2RlSWRzKG5vZGVJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzQ3VzdG9tU291cmNlKG5vZGVJZCkgfHwgdGhpcy5pc1N1cHBvcnRlZFNvdXJjZShub2RlSWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SW5jbHVkZXNGaWVsZHMoaW5jbHVkZUZpZWxkczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbJ3BhdGgnLCAncHJvcGVydGllcycsICdhbGxvd2FibGVPcGVyYXRpb25zJywgJ3Blcm1pc3Npb25zJywgJ2FzcGVjdE5hbWVzJywgLi4uaW5jbHVkZUZpZWxkc10uZmlsdGVyKFxuICAgICAgICAgICAgKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgPT4gaW5kZXggPT09IGFycmF5LmluZGV4T2YoZWxlbWVudClcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
377
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJlc291cmNlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9kb2N1bWVudC1saXN0L3NlcnZpY2VzL2N1c3RvbS1yZXNvdXJjZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUtILGdCQUFnQixFQUVoQixTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDVCxZQUFZLEVBQ1osY0FBYyxFQUNkLFdBQVcsRUFDWCxRQUFRLEVBR1IsZUFBZSxFQUNsQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRXJDLE1BQU0saUJBQWlCLEdBQVcsUUFBUSxDQUFDO0FBRzNDLE1BQU0sT0FBTyxzQkFBc0I7SUFFL0IsSUFBSSxTQUFTO1FBQ1QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNsRixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUdELElBQUksUUFBUTtRQUNSLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDL0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFHRCxJ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QXNCLGNBRFQsTUFBTTs7MkZBQ25CLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFBhZ2luYXRpb25Nb2RlbCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBBbGZyZXNjb0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbGZyZXNjby1hcGkuc2VydmljZSc7XG5pbXBvcnQge1xuICAgIERlbGV0ZWROb2Rlc1BhZ2luZyxcbiAgICBTZWFyY2hSZXF1ZXN0LFxuICAgIFNoYXJlZExpbmtQYWdpbmcsXG4gICAgRmF2b3JpdGVQYWdpbmcsXG4gICAgU2l0ZU1lbWJlclBhZ2luZyxcbiAgICBTaXRlUm9sZVBhZ2luZyxcbiAgICBQZW9wbGVBcGksXG4gICAgU2l0ZXNBcGksXG4gICAgU2VhcmNoQXBpLFxuICAgIEZhdm9yaXRlc0FwaSxcbiAgICBTaGFyZWRsaW5rc0FwaSxcbiAgICBUcmFzaGNhbkFwaSxcbiAgICBOb2Rlc0FwaSxcbiAgICBTaXRlUGFnaW5nLFxuICAgIFJlc3VsdFNldFBhZ2luZyxcbiAgICBTRUFSQ0hfTEFOR1VBR0Vcbn0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmcm9tLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBDUkVBVEVfUEVSTUlTU0lPTjogc3RyaW5nID0gJ2NyZWF0ZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tUmVzb3VyY2VzU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfcGVvcGxlQXBpOiBQZW9wbGVBcGk7XG4gICAgZ2V0IHBlb3BsZUFwaSgpOiBQZW9wbGVBcGkge1xuICAgICAgICB0aGlzLl9wZW9wbGVBcGkgPSB0aGlzLl9wZW9wbGVBcGkgPz8gbmV3IFBlb3BsZUFwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9wZW9wbGVBcGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2l0ZXNBcGk6IFNpdGVzQXBpO1xuICAgIGdldCBzaXRlc0FwaSgpOiBTaXRlc0FwaSB7XG4gICAgICAgIHRoaXMuX3NpdGVzQXBpID0gdGhpcy5fc2l0ZXNBcGkgPz8gbmV3IFNpdGVzQXBpKHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpdGVzQXBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3RyYXNoY2FuQXBpOiBUcmFzaGNhbkFwaTtcbiAgICBnZXQgdHJhc2hjYW5BcGkoKTogVHJhc2hjYW5BcGkge1xuICAgICAgICB0aGlzLl90cmFzaGNhbkFwaSA9IHRoaXMuX3RyYXNoY2FuQXBpID8/IG5ldyBUcmFzaGNhbkFwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl90cmFzaGNhbkFwaTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZWFyY2hBcGk6IFNlYXJjaEFwaTtcbiAgICBnZXQgc2VhcmNoQXBpKCk6IFNlYXJjaEFwaSB7XG4gICAgICAgIHRoaXMuX3NlYXJjaEFwaSA9IHRoaXMuX3NlYXJjaEFwaSA/PyBuZXcgU2VhcmNoQXBpKHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlYXJjaEFwaTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zaGFyZWRMaW5rc0FwaTogU2hhcmVkbGlua3NBcGk7XG4gICAgZ2V0IHNoYXJlZExpbmtzQXBpKCk6IFNoYXJlZGxpbmtzQXBpIHtcbiAgICAgICAgdGhpcy5fc2hhcmVkTGlua3NBcGkgPSB0aGlzLl9zaGFyZWRMaW5rc0FwaSA/PyBuZXcgU2hhcmVkbGlua3NBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fc2hhcmVkTGlua3NBcGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZmF2b3JpdGVzQXBpOiBGYXZvcml0ZXNBcGk7XG4gICAgZ2V0IGZhdm9yaXRlc0FwaSgpOiBGYXZvcml0ZXNBcGkge1xuICAgICAgICB0aGlzLl9mYXZvcml0ZXNBcGkgPSB0aGlzLl9mYXZvcml0ZXNBcGkgPz8gbmV3IEZhdm9yaXRlc0FwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9mYXZvcml0ZXNBcGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbm9kZXNBcGk6IE5vZGVzQXBpO1xuICAgIGdldCBub2Rlc0FwaSgpOiBOb2Rlc0FwaSB7XG4gICAgICAgIHRoaXMuX25vZGVzQXBpID0gdGhpcy5fbm9kZXNBcGkgPz8gbmV3IE5vZGVzQXBpKHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vZGVzQXBpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpU2VydmljZTogQWxmcmVzY29BcGlTZXJ2aWNlKSB7fVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBmaWxlcyByZWNlbnRseSBhY2Nlc3NlZCBieSBhIHVzZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGVyc29uSWQgSUQgb2YgdGhlIHVzZXJcbiAgICAgKiBAcGFyYW0gcGFnaW5hdGlvbiBTcGVjaWZpZXMgaG93IHRvIHBhZ2luYXRlIHRoZSByZXN1bHRzXG4gICAgICogQHBhcmFtIGZpbHRlcnMgU3BlY2lmaWVzIGFkZGl0aW9uYWwgZmlsdGVycyB0byBhcHBseSAoam9pbmVkIHdpdGggKipBTkQqKilcbiAgICAgKiBAcmV0dXJucyBMaXN0IG9mIG5vZGVzIGZvciB0aGUgcmVjZW50bHkgdXNlZCBmaWxlc1xuICAgICAqL1xuICAgIGdldFJlY2VudEZpbGVzKHBlcnNvbklkOiBzdHJpbmcsIHBhZ2luYXRpb246IFBhZ2luYXRpb25Nb2RlbCwgZmlsdGVycz86IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxSZXN1bHRTZXRQYWdpbmc+IHtcbiAgICAgICAgY29uc3QgZGVmYXVsdEZpbHRlciA9IFtcbiAgICAgICAgICAgICdUWVBFOlwiY29udGVudFwiJyxcbiAgICAgICAgICAgICctUEFUSDpcIi8vY206d2lraS8qXCInLFxuICAgICAgICAgICAgJy1UWVBFOlwiYXBwOmZpbGVsaW5rXCInLFxuICAgICAgICAgICAgJy1UWVBFOlwiY206dGh1bWJuYWlsXCInLFxuICAgICAgICAgICAgJy1UWVBFOlwiY206ZmFpbGVkVGh1bWJuYWlsXCInLFxuICAgICAgICAgICAgJy1UWVBFOlwiY206cmF0aW5nXCInLFxuICAgICAgICAgICAgJy1UWVBFOlwiZGw6ZGF0YUxpc3RcIicsXG4gICAgICAgICAgICAnLVRZUEU6XCJkbDp0b2RvTGlzdFwiJyxcbiAgICAgICAgICAgICctVFlQRTpcImRsOmlzc3VlXCInLFxuICAgICAgICAgICAgJy1UWVBFOlwiZGw6Y29udGFjdFwiJyxcbiAgICAgICAgICAgICctVFlQRTpcImRsOmV2ZW50QWdlbmRhXCInLFxuICAgICAgICAgICAgJy1UWVBFOlwiZGw6ZXZlbnRcIicsXG4gICAgICAgICAgICAnLVRZUEU6XCJkbDp0YXNrXCInLFxuICAgICAgICAgICAgJy1UWVBFOlwiZGw6c2ltcGxldGFza1wiJyxcbiAgICAgICAgICAgICctVFlQRTpcImRsOm1lZXRpbmdBZ2VuZGFcIicsXG4gICAgICAgICAgICAnLVRZUEU6XCJkbDpsb2NhdGlvblwiJyxcbiAgICAgICAgICAgICctVFlQRTpcImZtOnRvcGljXCInLFxuICAgICAgICAgICAgJy1UWVBFOlwiZm06cG9zdFwiJyxcbiAgICAgICAgICAgICctVFlQRTpcImlhOmNhbGVuZGFyRXZlbnRcIicsXG4gICAgICAgICAgICAnLVRZUEU6XCJsbms6bGlua1wiJ1xuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGVvcGxlQXBpLmdldFBlcnNvbihwZXJzb25JZCkudGhlbihcbiAgICAgICAgICAgICAgICAocGVyc29uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVzZXJuYW1lID0gcGVyc29uLmVudHJ5LmlkO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJRdWVyaWVzID0gW1xuICAgICAgICAgICAgICAgICAgICAgICAgeyBxdWVyeTogYGNtOm1vZGlmaWVkOltOT1cvREFZLTMwREFZUyBUTyBOT1cvREFZKzFEQVldYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBxdWVyeTogYGNtOm1vZGlmaWVyOicke3VzZXJuYW1lfScgT1IgY206Y3JlYXRvcjonJHt1c2VybmFtZX0nYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBxdWVyeTogZGVmYXVsdEZpbHRlci5qb2luKCcgQU5EICcpIH1cbiAgICAgICAgICAgICAgICAgICAgXTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVycyAmJiBmaWx0ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclF1ZXJpZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IGZpbHRlcnMuam9pbigpXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHF1ZXJ5OiBTZWFyY2hSZXF1ZXN0ID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeTogJyonLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlOiBTRUFSQ0hfTEFOR1VBR0UuQUZUU1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclF1ZXJpZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlOiBbJ3BhdGgnLCAncHJvcGVydGllcycsICdhbGxvd2FibGVPcGVyYXRpb25zJywgJ2FzcGVjdE5hbWVzJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBzb3J0OiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnRklFTEQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZDogJ2NtOm1vZGlmaWVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNjZW5kaW5nOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdpbmc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhJdGVtczogcGFnaW5hdGlvbi5tYXhJdGVtcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwQ291bnQ6IHBhZ2luYXRpb24uc2tpcENvdW50XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoQXBpLnNlYXJjaChxdWVyeSkudGhlbihcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWFyY2hSZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHNlYXJjaFJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgZmF2b3JpdGUgZmlsZXMgZm9yIHRoZSBjdXJyZW50IHVzZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFnaW5hdGlvbiBTcGVjaWZpZXMgaG93IHRvIHBhZ2luYXRlIHRoZSByZXN1bHRzXG4gICAgICogQHBhcmFtIGluY2x1ZGVGaWVsZHMgTGlzdCBvZiBkYXRhIGZpZWxkIG5hbWVzIHRvIGluY2x1ZGUgaW4gdGhlIHJlc3VsdHNcbiAgICAgKiBAcGFyYW0gd2hlcmUgQSBzdHJpbmcgdG8gcmVzdHJpY3QgdGhlIHJldHVybmVkIG9iamVjdHMgYnkgdXNpbmcgYSBwcmVkaWNhdGVcbiAgICAgKiBAcmV0dXJucyBMaXN0IG9mIGZhdm9yaXRlIGZpbGVzXG4gICAgICovXG4gICAgbG9hZEZhdm9yaXRlcyhwYWdpbmF0aW9uOiBQYWdpbmF0aW9uTW9kZWwsIGluY2x1ZGVGaWVsZHM6IHN0cmluZ1tdID0gW10sIHdoZXJlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxGYXZvcml0ZVBhZ2luZz4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRmllbGRzUmVxdWVzdCA9IHRoaXMuZ2V0SW5jbHVkZXNGaWVsZHMoaW5jbHVkZUZpZWxkcyk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRQcmVkaWNhdGUgPSAnKEVYSVNUUyh0YXJnZXQvZmlsZSkgT1IgRVhJU1RTKHRhcmdldC9mb2xkZXIpKSc7XG5cbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG1heEl0ZW1zOiBwYWdpbmF0aW9uLm1heEl0ZW1zLFxuICAgICAgICAgICAgc2tpcENvdW50OiBwYWdpbmF0aW9uLnNraXBDb3VudCxcbiAgICAgICAgICAgIHdoZXJlOiB3aGVyZSA/IGAke3doZXJlfSBBTkQgJHtkZWZhdWx0UHJlZGljYXRlfWAgOiBkZWZhdWx0UHJlZGljYXRlLFxuICAgICAgICAgICAgaW5jbHVkZTogaW5jbHVkZUZpZWxkc1JlcXVlc3RcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZhdm9yaXRlc0FwaS5saXN0RmF2b3JpdGVzKCctbWUtJywgb3B0aW9ucykudGhlbihcbiAgICAgICAgICAgICAgICAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2U6IEZhdm9yaXRlUGFnaW5nID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJpZXM6IHJlc3VsdC5saXN0LmVudHJpZXMubWFwKCh7IGVudHJ5IH06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBlbnRyeS50YXJnZXQuZmlsZSB8fCBlbnRyeS50YXJnZXQuZm9sZGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHJvcGVydGllcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLih0YXJnZXQucHJvcGVydGllcyB8fCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NtOnRpdGxlJzogZW50cnkudGl0bGUgfHwgdGFyZ2V0LnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjbTpkZXNjcmlwdGlvbic6IGVudHJ5LmRlc2NyaXB0aW9uIHx8IHRhcmdldC5kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4oZW50cnkucHJvcGVydGllcyB8fCB7fSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmFzcGVjdE5hbWVzID0gZW50cnk/LmFzcGVjdE5hbWVzID8/IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQuYWxsb3dhYmxlT3BlcmF0aW9ucyA9IGVudHJ5Py5hbGxvd2FibGVPcGVyYXRpb25zID8/IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeTogdGFyZ2V0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnaW5hdGlvbjogcmVzdWx0Lmxpc3QucGFnaW5hdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQocGFnZSk7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBzaXRlcyB0aGF0IHRoZSBjdXJyZW50IHVzZXIgaXMgYSBtZW1iZXIgb2YuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFnaW5hdGlvbiBTcGVjaWZpZXMgaG93IHRvIHBhZ2luYXRlIHRoZSByZXN1bHRzXG4gICAgICogQHBhcmFtIHdoZXJlIEEgc3RyaW5nIHRvIHJlc3RyaWN0IHRoZSByZXR1cm5lZCBvYmplY3RzIGJ5IHVzaW5nIGEgcHJlZGljYXRlXG4gICAgICogQHJldHVybnMgTGlzdCBvZiBzaXRlc1xuICAgICAqL1xuICAgIGxvYWRNZW1iZXJTaXRlcyhwYWdpbmF0aW9uOiBQYWdpbmF0aW9uTW9kZWwsIHdoZXJlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxTaXRlTWVtYmVyUGFnaW5nPiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBpbmNsdWRlOiBbJ3Byb3BlcnRpZXMnXSxcbiAgICAgICAgICAgIG1heEl0ZW1zOiBwYWdpbmF0aW9uLm1heEl0ZW1zLFxuICAgICAgICAgICAgc2tpcENvdW50OiBwYWdpbmF0aW9uLnNraXBDb3VudCxcbiAgICAgICAgICAgIHdoZXJlXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5zaXRlc0FwaS5saXN0U2l0ZU1lbWJlcnNoaXBzRm9yUGVyc29uKCctbWUtJywgb3B0aW9ucykudGhlbihcbiAgICAgICAgICAgICAgICAocmVzdWx0OiBTaXRlUm9sZVBhZ2luZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYWdlOiBTaXRlTWVtYmVyUGFnaW5nID0gbmV3IFNpdGVNZW1iZXJQYWdpbmcoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJpZXM6IHJlc3VsdC5saXN0LmVudHJpZXMubWFwKCh7IGVudHJ5OiB7IHNpdGUgfSB9OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0ZS5hbGxvd2FibGVPcGVyYXRpb25zID0gc2l0ZS5hbGxvd2FibGVPcGVyYXRpb25zID8gc2l0ZS5hbGxvd2FibGVPcGVyYXRpb25zIDogW0NSRUFURV9QRVJNSVNTSU9OXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0ZS5uYW1lID0gc2l0ZS5uYW1lIHx8IHNpdGUudGl0bGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeTogc2l0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2luYXRpb246IHJlc3VsdC5saXN0LnBhZ2luYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChwYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCBzaXRlcyBpbiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWdpbmF0aW9uIFNwZWNpZmllcyBob3cgdG8gcGFnaW5hdGUgdGhlIHJlc3VsdHNcbiAgICAgKiBAcGFyYW0gd2hlcmUgQSBzdHJpbmcgdG8gcmVzdHJpY3QgdGhlIHJldHVybmVkIG9iamVjdHMgYnkgdXNpbmcgYSBwcmVkaWNhdGVcbiAgICAgKiBAcmV0dXJucyBMaXN0IG9mIHNpdGVzXG4gICAgICovXG4gICAgbG9hZFNpdGVzKHBhZ2luYXRpb246IFBhZ2luYXRpb25Nb2RlbCwgd2hlcmU/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNpdGVQYWdpbmc+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGluY2x1ZGU6IFsncHJvcGVydGllcycsICdhc3BlY3ROYW1lcyddLFxuICAgICAgICAgICAgbWF4SXRlbXM6IHBhZ2luYXRpb24ubWF4SXRlbXMsXG4gICAgICAgICAgICBza2lwQ291bnQ6IHBhZ2luYXRpb24uc2tpcENvdW50LFxuICAgICAgICAgICAgd2hlcmVcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNpdGVzQXBpLmxpc3RTaXRlcyhvcHRpb25zKS50aGVuKFxuICAgICAgICAgICAgICAgIChwYWdlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2UubGlzdC5lbnRyaWVzLm1hcCgoeyBlbnRyeSB9OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5Lm5hbWUgPSBlbnRyeS5uYW1lIHx8IGVudHJ5LnRpdGxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZW50cnkgfTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQocGFnZSk7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhbGwgaXRlbXMgY3VycmVudGx5IGluIHRoZSB0cmFzaC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWdpbmF0aW9uIFNwZWNpZmllcyBob3cgdG8gcGFnaW5hdGUgdGhlIHJlc3VsdHNcbiAgICAgKiBAcGFyYW0gaW5jbHVkZUZpZWxkcyBMaXN0IG9mIGRhdGEgZmllbGQgbmFtZXMgdG8gaW5jbHVkZSBpbiB0aGUgcmVzdWx0c1xuICAgICAqIEByZXR1cm5zIExpc3Qgb2YgZGVsZXRlZCBpdGVtc1xuICAgICAqL1xuICAgIGxvYWRUcmFzaGNhbihwYWdpbmF0aW9uOiBQYWdpbmF0aW9uTW9kZWwsIGluY2x1ZGVGaWVsZHM6IHN0cmluZ1tdID0gW10pOiBPYnNlcnZhYmxlPERlbGV0ZWROb2Rlc1BhZ2luZz4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRmllbGRzUmVxdWVzdCA9IHRoaXMuZ2V0SW5jbHVkZXNGaWVsZHMoaW5jbHVkZUZpZWxkcyk7XG5cbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGluY2x1ZGU6IGluY2x1ZGVGaWVsZHNSZXF1ZXN0LFxuICAgICAgICAgICAgbWF4SXRlbXM6IHBhZ2luYXRpb24ubWF4SXRlbXMsXG4gICAgICAgICAgICBza2lwQ291bnQ6IHBhZ2luYXRpb24uc2tpcENvdW50XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy50cmFzaGNhbkFwaS5saXN0RGVsZXRlZE5vZGVzKG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHNoYXJlZCBsaW5rcyBmb3IgdGhlIGN1cnJlbnQgdXNlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWdpbmF0aW9uIFNwZWNpZmllcyBob3cgdG8gcGFnaW5hdGUgdGhlIHJlc3VsdHNcbiAgICAgKiBAcGFyYW0gaW5jbHVkZUZpZWxkcyBMaXN0IG9mIGRhdGEgZmllbGQgbmFtZXMgdG8gaW5jbHVkZSBpbiB0aGUgcmVzdWx0c1xuICAgICAqIEBwYXJhbSB3aGVyZSBBIHN0cmluZyB0byByZXN0cmljdCB0aGUgcmV0dXJuZWQgb2JqZWN0cyBieSB1c2luZyBhIHByZWRpY2F0ZVxuICAgICAqIEByZXR1cm5zIExpc3Qgb2Ygc2hhcmVkIGxpbmtzXG4gICAgICovXG4gICAgbG9hZFNoYXJlZExpbmtzKHBhZ2luYXRpb246IFBhZ2luYXRpb25Nb2RlbCwgaW5jbHVkZUZpZWxkczogc3RyaW5nW10gPSBbXSwgd2hlcmU/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNoYXJlZExpbmtQYWdpbmc+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZUZpZWxkc1JlcXVlc3QgPSB0aGlzLmdldEluY2x1ZGVzRmllbGRzKGluY2x1ZGVGaWVsZHMpO1xuXG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBpbmNsdWRlOiBpbmNsdWRlRmllbGRzUmVxdWVzdCxcbiAgICAgICAgICAgIG1heEl0ZW1zOiBwYWdpbmF0aW9uLm1heEl0ZW1zLFxuICAgICAgICAgICAgc2tpcENvdW50OiBwYWdpbmF0aW9uLnNraXBDb3VudCxcbiAgICAgICAgICAgIHdoZXJlXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5zaGFyZWRMaW5rc0FwaS5saXN0U2hhcmVkTGlua3Mob3B0aW9ucykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElzIHRoZSBmb2xkZXIgSUQgb25lIG9mIHRoZSB3ZWxsLWtub3duIGFsaWFzZXM/XG4gICAgICpcbiAgICAgKiBAcGFyYW0gZm9sZGVySWQgRm9sZGVyIElEIG5hbWUgdG8gY2hlY2tcbiAgICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBJRCBpcyBhIHdlbGwta25vd24gbmFtZSwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAgICovXG4gICAgaXNDdXN0b21Tb3VyY2UoZm9sZGVySWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgaXNDdXN0b21Tb3VyY2VzID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHNvdXJjZXMgPSBbJy10cmFzaGNhbi0nLCAnLXNoYXJlZGxpbmtzLScsICctc2l0ZXMtJywgJy1teXNpdGVzLScsICctZmF2b3JpdGVzLScsICctcmVjZW50LSddO1xuXG4gICAgICAgIGlmIChzb3VyY2VzLmluZGV4T2YoZm9sZGVySWQpID4gLTEpIHtcbiAgICAgICAgICAgIGlzQ3VzdG9tU291cmNlcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXNDdXN0b21Tb3VyY2VzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElzIHRoZSBmb2xkZXIgSUQgYSBcIi1teVwiLCBcIi1yb290LVwiLCBvciBcIi1zaGFyZWQtXCIgYWxpYXM/XG4gICAgICpcbiAgICAgKiBAcGFyYW0gZm9sZGVySWQgRm9sZGVyIElEIG5hbWUgdG8gY2hlY2tcbiAgICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBJRCBpcyBvbmUgb2YgdGhlIHN1cHBvcnRlZCBzb3VyY2VzLCBmYWxzZSBvdGhlcndpc2VcbiAgICAgKi9cbiAgICBpc1N1cHBvcnRlZFNvdXJjZShmb2xkZXJJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBpc1N1cHBvcnRlZFNvdXJjZXMgPSBmYWxzZTtcbiAgICAgICAgY29uc3Qgc291cmNlcyA9IFsnLW15LScsICctcm9vdC0nLCAnLXNoYXJlZC0nXTtcblxuICAgICAgICBpZiAoc291cmNlcy5pbmRleE9mKGZvbGRlcklkKSA+IC0xKSB7XG4gICAgICAgICAgICBpc1N1cHBvcnRlZFNvdXJjZXMgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlzU3VwcG9ydGVkU291cmNlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgZm9sZGVyJ3MgY29udGVudHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZUlkIElEIG9mIHRoZSB0YXJnZXQgZm9sZGVyIG5vZGVcbiAgICAgKiBAcGFyYW0gcGFnaW5hdGlvbiBTcGVjaWZpZXMgaG93IHRvIHBhZ2luYXRlIHRoZSByZXN1bHRzXG4gICAgICogQHBhcmFtIGluY2x1ZGVGaWVsZHMgTGlzdCBvZiBkYXRhIGZpZWxkIG5hbWVzIHRvIGluY2x1ZGUgaW4gdGhlIHJlc3VsdHNcbiAgICAgKiBAcGFyYW0gd2hlcmUgIEZpbHRlcnMgdGhlIE5vZGUgbGlzdCB1c2luZyB0aGUgKndoZXJlKiBjb25kaXRpb24gb2YgdGhlIFJFU1QgQVBJIChmb3IgZXhhbXBsZSwgaXNGb2xkZXI9dHJ1ZSkuIFNlZSB0aGUgUkVTVCBBUEkgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICAgKiBAcmV0dXJucyBMaXN0IG9mIGl0ZW1zIGNvbnRhaW5lZCBpbiB0aGUgZm9sZGVyXG4gICAgICovXG4gICAgbG9hZEZvbGRlckJ5Tm9kZUlkKG5vZGVJZDogc3RyaW5nLCBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uTW9kZWwsIGluY2x1ZGVGaWVsZHM6IHN0cmluZ1tdID0gW10sIHdoZXJlPzogc3RyaW5nKTogYW55IHtcbiAgICAgICAgaWYgKG5vZGVJZCA9PT0gJy10cmFzaGNhbi0nKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkVHJhc2hjYW4ocGFnaW5hdGlvbiwgaW5jbHVkZUZpZWxkcyk7XG4gICAgICAgIH0gZWxzZSBpZiAobm9kZUlkID09PSAnLXNoYXJlZGxpbmtzLScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRTaGFyZWRMaW5rcyhwYWdpbmF0aW9uLCBpbmNsdWRlRmllbGRzLCB3aGVyZSk7XG4gICAgICAgIH0gZWxzZSBpZiAobm9kZUlkID09PSAnLXNpdGVzLScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRTaXRlcyhwYWdpbmF0aW9uLCB3aGVyZSk7XG4gICAgICAgIH0gZWxzZSBpZiAobm9kZUlkID09PSAnLW15c2l0ZXMtJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9hZE1lbWJlclNpdGVzKHBhZ2luYXRpb24sIHdoZXJlKTtcbiAgICAgICAgfSBlbHNlIGlmIChub2RlSWQgPT09ICctZmF2b3JpdGVzLScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRGYXZvcml0ZXMocGFnaW5hdGlvbiwgaW5jbHVkZUZpZWxkcywgd2hlcmUpO1xuICAgICAgICB9IGVsc2UgaWYgKG5vZGVJZCA9PT0gJy1yZWNlbnQtJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVjZW50RmlsZXMoJy1tZS0nLCBwYWdpbmF0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRPRE86IHJlbW92ZSBpdCBmcm9tIGhlcmVcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGNvbnRlbnRzIG9mIG9uZSBvZiB0aGUgd2VsbC1rbm93biBhbGlhc2VzIGluIHRoZSBmb3JtIG9mIG5vZGUgSUQgc3RyaW5ncy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlSWQgSUQgb2YgdGhlIHRhcmdldCBmb2xkZXIgbm9kZVxuICAgICAqIEBwYXJhbSBwYWdpbmF0aW9uIFNwZWNpZmllcyBob3cgdG8gcGFnaW5hdGUgdGhlIHJlc3VsdHNcbiAgICAgKiBAcmV0dXJucyBMaXN0IG9mIG5vZGUgSURzXG4gICAgICovXG4gICAgZ2V0Q29ycmVzcG9uZGluZ05vZGVJZHMobm9kZUlkOiBzdHJpbmcsIHBhZ2luYXRpb246IFBhZ2luYXRpb25Nb2RlbCA9IHt9KTogT2JzZXJ2YWJsZTxzdHJpbmdbXT4ge1xuICAgICAgICBpZiAodGhpcy5pc0N1c3RvbVNvdXJjZShub2RlSWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkRm9sZGVyQnlOb2RlSWQobm9kZUlkLCBwYWdpbmF0aW9uKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0OiBhbnkpOiBzdHJpbmdbXSA9PiByZXN1bHQubGlzdC5lbnRyaWVzLm1hcCgobm9kZTogYW55KTogc3RyaW5nID0+IHRoaXMuZ2V0SWRGcm9tRW50cnkobm9kZSwgbm9kZUlkKSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKG5vZGVJZCkge1xuICAgICAgICAgICAgLy8gY2FzZXMgd2hlbiBub2RlSWQgaXMgJy1teS0nLCAnLXJvb3QtJyBvciAnLXNoYXJlZC0nXG4gICAgICAgICAgICByZXR1cm4gZnJvbSh0aGlzLm5vZGVzQXBpLmdldE5vZGUobm9kZUlkKS50aGVuKChub2RlKSA9PiBbbm9kZS5lbnRyeS5pZF0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hvb3NlcyB0aGUgY29ycmVjdCBJRCBmb3IgYSBub2RlIGVudHJ5LlxuICAgICAqXG4gICAgICogQHBhcmFtIG5vZGUgTm9kZSBvYmplY3RcbiAgICAgKiBAcGFyYW0gbm9kZUlkIElEIG9mIHRoZSBub2RlIG9iamVjdFxuICAgICAqIEByZXR1cm5zIElEIHZhbHVlXG4gICAgICovXG4gICAgZ2V0SWRGcm9tRW50cnkobm9kZTogYW55LCBub2RlSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChub2RlSWQgPT09ICctc2hhcmVkbGlua3MtJykge1xuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZW50cnkubm9kZUlkO1xuICAgICAgICB9IGVsc2UgaWYgKG5vZGVJZCA9PT0gJy1zaXRlcy0nIHx8IG5vZGVJZCA9PT0gJy1teXNpdGVzLScpIHtcbiAgICAgICAgICAgIHJldHVybiBub2RlLmVudHJ5Lmd1aWQ7XG4gICAgICAgIH0gZWxzZSBpZiAobm9kZUlkID09PSAnLWZhdm9yaXRlcy0nKSB7XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5lbnRyeS50YXJnZXRHdWlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZW50cnkuaWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEb2VzIHRoZSB3ZWxsLWtub3duIGFsaWFzIGhhdmUgYSBjb3JyZXNwb25kaW5nIG5vZGUgSUQ/XG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZUlkIE5vZGUgdG8gY2hlY2tcbiAgICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBhbGlhcyBoYXMgYSBjb3JyZXNwb25kaW5nIG5vZGUgSUQsIGZhbHNlIG90aGVyd2lzZVxuICAgICAqL1xuICAgIGhhc0NvcnJlc3BvbmRpbmdOb2RlSWRzKG5vZGVJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzQ3VzdG9tU291cmNlKG5vZGVJZCkgfHwgdGhpcy5pc1N1cHBvcnRlZFNvdXJjZShub2RlSWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SW5jbHVkZXNGaWVsZHMoaW5jbHVkZUZpZWxkczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbJ3BhdGgnLCAncHJvcGVydGllcycsICdhbGxvd2FibGVPcGVyYXRpb25zJywgJ3Blcm1pc3Npb25zJywgJ2FzcGVjdE5hbWVzJywgLi4uaW5jbHVkZUZpZWxkc10uZmlsdGVyKFxuICAgICAgICAgICAgKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgPT4gaW5kZXggPT09IGFycmF5LmluZGV4T2YoZWxlbWVudClcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
@@ -130,13 +130,13 @@ export class DocumentActionsService {
130
130
  }
131
131
  return of();
132
132
  }
133
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DocumentActionsService, deps: [{ token: i1.NodeActionsService }, { token: i2.ContentNodeDialogService }, { token: i3.TranslationService }, { token: i4.DocumentListService }, { token: i5.ContentService }], target: i0.ɵɵFactoryTarget.Injectable }); }
134
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DocumentActionsService, providedIn: 'root' }); }
133
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DocumentActionsService, deps: [{ token: i1.NodeActionsService }, { token: i2.ContentNodeDialogService }, { token: i3.TranslationService }, { token: i4.DocumentListService }, { token: i5.ContentService }], target: i0.ɵɵFactoryTarget.Injectable }); }
134
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DocumentActionsService, providedIn: 'root' }); }
135
135
  }
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DocumentActionsService, decorators: [{
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DocumentActionsService, decorators: [{
137
137
  type: Injectable,
138
138
  args: [{
139
139
  providedIn: 'root'
140
140
  }]
141
141
  }], ctorParameters: () => [{ type: i1.NodeActionsService }, { type: i2.ContentNodeDialogService }, { type: i3.TranslationService }, { type: i4.DocumentListService }, { type: i5.ContentService }] });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtYWN0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9kb2N1bWVudC1saXN0L3NlcnZpY2VzL2RvY3VtZW50LWFjdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDOzs7Ozs7O0FBS25HLE1BQU0sT0FBTyxzQkFBc0I7SUFPL0IsWUFDWSxrQkFBc0MsRUFDdEMsd0JBQWtELEVBQ2xELFdBQStCLEVBQy9CLG1CQUF5QyxFQUN6QyxjQUErQjtRQUovQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQy9CLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBc0I7UUFDekMsbUJBQWMsR0FBZCxjQUFjLENBQWlCO1FBWDNDLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQW1CLENBQUM7UUFDakQsVUFBSyxHQUFHLElB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QU0sQ0FBQztnQkFDSixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FDckIsSUFBSSxlQUFlLENBQUM7b0JBQ2hCLElBQUksRUFBRSxTQUFTO29CQUNmLE1BQU0sRUFBRSxRQUFRO29CQUNoQixVQUFVO2lCQUNiLENBQUMsQ0FDTCxDQUFDO2dCQUNGLE9BQU8sVUFBVSxDQUFDLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQztZQUM1RCxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sRUFBRSxFQUFFLENBQUM7SUFDaEIsQ0FBQzsrR0F2SFEsc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGbkIsTUFBTTs7NEZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IENvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL2NvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlRW50cnkgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRocm93RXJyb3IsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb250ZW50QWN0aW9uSGFuZGxlciB9IGZyb20gJy4uL21vZGVscy9jb250ZW50LWFjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvcGVybWlzc2lvbnMubW9kZWwnO1xuaW1wb3J0IHsgRG9jdW1lbnRMaXN0U2VydmljZSB9IGZyb20gJy4vZG9jdW1lbnQtbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVBY3Rpb25zU2VydmljZSB9IGZyb20gJy4vbm9kZS1hY3Rpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udGVudE5vZGVEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29udGVudC1ub2RlLXNlbGVjdG9yL2NvbnRlbnQtbm9kZS1kaWFsb2cuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRBY3Rpb25zU2VydmljZSB7XG4gICAgcGVybWlzc2lvbkV2ZW50ID0gbmV3IFN1YmplY3Q8UGVybWlzc2lvbk1vZGVsPigpO1xuICAgIGVycm9yID0gbmV3IFN1YmplY3Q8RXJyb3I+KCk7XG4gICAgc3VjY2VzcyA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAgIHByaXZhdGUgaGFuZGxlcnM6IHsgW2lkOiBzdHJpbmddOiBDb250ZW50QWN0aW9uSGFuZGxlciB9ID0ge307XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBub2RlQWN0aW9uc1NlcnZpY2U6IE5vZGVBY3Rpb25zU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb250ZW50Tm9kZURpYWxvZ1NlcnZpY2U6IENvbnRlbnROb2RlRGlhbG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRvY3VtZW50TGlzdFNlcnZpY2U/OiBEb2N1bWVudExpc3RTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbnRlbnRTZXJ2aWNlPzogQ29udGVudFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5zZXR1cEFjdGlvbkhhbmRsZXJzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgaGFuZGxlciBmb3IgYW4gYWN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIGtleSBJZGVudGlmaWVyIG9mIHRoZSBhY3Rpb25cbiAgICAgKiBAcmV0dXJucyBUaGUgaGFuZGxlciBmb3IgdGhlIGFjdGlvblxuICAgICAqL1xuICAgIGdldEhhbmRsZXIoa2V5OiBzdHJpbmcpOiBDb250ZW50QWN0aW9uSGFuZGxlciB7XG4gICAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgICAgIGNvbnN0IGxLZXkgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZXJzW2xLZXldIHx8IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBhIG5ldyBoYW5kbGVyIGZvciBhbiBhY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ga2V5IElkZW50aWZpZXIgb2YgdGhlIGFjdGlvblxuICAgICAqIEBwYXJhbSBoYW5kbGVyIEhhbmRsZXIgZm9yIHRoZSBhY3Rpb25cbiAgICAgKiBAcmV0dXJucyBGYWxzZSBpZiB0aGUga2V5IHdhcyBhbiBlbXB0eS9udWxsIHN0cmluZywgdHJ1ZSBvdGhlcndpc2VcbiAgICAgKi9cbiAgICBzZXRIYW5kbGVyKGtleTogc3RyaW5nLCBoYW5kbGVyOiBDb250ZW50QWN0aW9uSGFuZGxlcik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoa2V5KSB7XG4gICAgICAgICAgICBjb25zdCBsS2V5ID0ga2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZXJzW2xLZXldID0gaGFuZGxlcjtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYWN0aW9ucyBjYW4gYmUgZXhlY3V0ZWQgZm9yIGFuIGl0ZW0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZUVudHJ5IEl0ZW0gdG8gcmVjZWl2ZSBhbiBhY3Rpb25cbiAgICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBhY3Rpb24gY2FuIGJlIGV4ZWN1dGVkIG9uIHRoaXMgaXRlbSwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAgICovXG4gICAgY2FuRXhlY3V0ZUFjdGlvbihub2RlRW50cnk6IE5vZGVFbnRyeSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudExpc3RTZXJ2aWNlICYmIG5vZGVFbnRyeSAmJiBub2RlRW50cnkuZW50cnkuaXNGaWxlID09PSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBBY3Rpb25IYW5kbGVycygpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVyc1snY29weSddID0gdGhpcy5jb3B5Tm9kZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZXJzWydtb3ZlJ10gPSB0aGlzLm1vdmVOb2RlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlcnNbJ2RlbGV0ZSddID0gdGhpcy5kZWxldGVOb2RlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlcnNbJ2Rvd25sb2FkJ10gPSB0aGlzLmRvd25sb2FkTm9kZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZXJzWydsb2NrJ10gPSB0aGlzLmxvY2tOb2RlLmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2NrTm9kZShub2RlOiBOb2RlRW50cnkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudE5vZGVEaWFsb2dTZXJ2aWNlLm9wZW5Mb2NrTm9kZURpYWxvZyhub2RlLmVudHJ5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRvd25sb2FkTm9kZShvYmo6IE5vZGVFbnRyeSkge1xuICAgICAgICB0aGlzLm5vZGVBY3Rpb25zU2VydmljZS5kb3dubG9hZE5vZGUob2JqKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvcHlOb2RlKG5vZGU6IE5vZGVFbnRyeSwgX3RhcmdldD86IGFueSwgcGVybWlzc2lvbj86IHN0cmluZykge1xuICAgICAgICBjb25zdCBhY3Rpb25PYnNlcnZhYmxlID0gdGhpcy5ub2RlQWN0aW9uc1NlcnZpY2UuY29weUNvbnRlbnQobm9kZS5lbnRyeSwgcGVybWlzc2lvbik7XG4gICAgICAgIHRoaXMucHJlcGFyZUhhbmRsZXJzKGFjdGlvbk9ic2VydmFibGUpO1xuICAgICAgICByZXR1cm4gYWN0aW9uT2JzZXJ2YWJsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdmVOb2RlKG5vZGU6IE5vZGVFbnRyeSwgX3RhcmdldD86IGFueSwgcGVybWlzc2lvbj86IHN0cmluZykge1xuICAgICAgICBjb25zdCBhY3Rpb25PYnNlcnZhYmxlID0gdGhpcy5ub2RlQWN0aW9uc1NlcnZpY2UubW92ZUNvbnRlbnQobm9kZS5lbnRyeSwgcGVybWlzc2lvbik7XG4gICAgICAgIHRoaXMucHJlcGFyZUhhbmRsZXJzKGFjdGlvbk9ic2VydmFibGUpO1xuICAgICAgICByZXR1cm4gYWN0aW9uT2JzZXJ2YWJsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByZXBhcmVIYW5kbGVycyhhY3Rpb25PYnNlcnZhYmxlOiBTdWJqZWN0PHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgYWN0aW9uT2JzZXJ2YWJsZS5zdWJzY3JpYmUoKGZpbGVPcGVyYXRpb25NZXNzYWdlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN1Y2Nlc3MubmV4dChmaWxlT3BlcmF0aW9uTWVzc2FnZSk7XG4gICAgICAgIH0sIHRoaXMuZXJyb3IubmV4dC5iaW5kKHRoaXMuZXJyb3IpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlbGV0ZU5vZGUobm9kZTogTm9kZUVudHJ5LCBfdGFyZ2V0PzogYW55LCBwZXJtaXNzaW9uPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgaWYgKHRoaXMuY2FuRXhlY3V0ZUFjdGlvbihub2RlKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29udGVudFNlcnZpY2UuaGFzQWxsb3dhYmxlT3BlcmF0aW9ucyhub2RlLmVudHJ5LCBwZXJtaXNzaW9uKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGhhbmRsZXJPYnNlcnZhYmxlID0gdGhpcy5kb2N1bWVudExpc3RTZXJ2aWNlLmRlbGV0ZU5vZGUobm9kZS5lbnRyeS5pZCk7XG4gICAgICAgICAgICAgICAgaGFuZGxlck9ic2VydmFibGUuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGlvbi5pbnN0YW50KCdDT1JFLkRFTEVURV9OT0RFLlNJTkdVTEFSJywgeyBuYW1lOiBub2RlLmVudHJ5Lm5hbWUgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Y2Nlc3MubmV4dChtZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJhbnNsYXRpb24uaW5zdGFudCgnQ09SRS5ERUxFVEVfTk9ERS5FUlJPUl9TSU5HVUxBUicsIHsgbmFtZTogbm9kZS5lbnRyeS5uYW1lIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvci5uZXh0KG1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlck9ic2VydmFibGU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucGVybWlzc2lvbkV2ZW50Lm5leHQoXG4gICAgICAgICAgICAgICAgICAgIG5ldyBQZXJtaXNzaW9uTW9kZWwoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2NvbnRlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnZGVsZXRlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKG5ldyBFcnJvcignTm8gcGVybWlzc2lvbiB0byBkZWxldGUnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2YoKTtcbiAgICB9XG59XG4iXX0=
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtYWN0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9kb2N1bWVudC1saXN0L3NlcnZpY2VzL2RvY3VtZW50LWFjdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDOzs7Ozs7O0FBS25HLE1BQU0sT0FBTyxzQkFBc0I7SUFPL0IsWUFDWSxrQkFBc0MsRUFDdEMsd0JBQWtELEVBQ2xELFdBQStCLEVBQy9CLG1CQUF5QyxFQUN6QyxjQUErQjtRQUovQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQy9CLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBc0I7UUFDekMsbUJBQWMsR0FBZCxjQUFjLENBQWlCO1FBWDNDLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQW1CLENBQUM7UUFDakQsVUFBSyxHQUFHLElB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QU0sQ0FBQztnQkFDSixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FDckIsSUFBSSxlQUFlLENBQUM7b0JBQ2hCLElBQUksRUFBRSxTQUFTO29CQUNmLE1BQU0sRUFBRSxRQUFRO29CQUNoQixVQUFVO2lCQUNiLENBQUMsQ0FDTCxDQUFDO2dCQUNGLE9BQU8sVUFBVSxDQUFDLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQztZQUM1RCxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sRUFBRSxFQUFFLENBQUM7SUFDaEIsQ0FBQzs4R0F2SFEsc0JBQXNCO2tIQUF0QixzQkFBc0IsY0FGbkIsTUFBTTs7MkZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IENvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL2NvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlRW50cnkgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRocm93RXJyb3IsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb250ZW50QWN0aW9uSGFuZGxlciB9IGZyb20gJy4uL21vZGVscy9jb250ZW50LWFjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvcGVybWlzc2lvbnMubW9kZWwnO1xuaW1wb3J0IHsgRG9jdW1lbnRMaXN0U2VydmljZSB9IGZyb20gJy4vZG9jdW1lbnQtbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVBY3Rpb25zU2VydmljZSB9IGZyb20gJy4vbm9kZS1hY3Rpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udGVudE5vZGVEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29udGVudC1ub2RlLXNlbGVjdG9yL2NvbnRlbnQtbm9kZS1kaWFsb2cuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRBY3Rpb25zU2VydmljZSB7XG4gICAgcGVybWlzc2lvbkV2ZW50ID0gbmV3IFN1YmplY3Q8UGVybWlzc2lvbk1vZGVsPigpO1xuICAgIGVycm9yID0gbmV3IFN1YmplY3Q8RXJyb3I+KCk7XG4gICAgc3VjY2VzcyA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAgIHByaXZhdGUgaGFuZGxlcnM6IHsgW2lkOiBzdHJpbmddOiBDb250ZW50QWN0aW9uSGFuZGxlciB9ID0ge307XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBub2RlQWN0aW9uc1NlcnZpY2U6IE5vZGVBY3Rpb25zU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb250ZW50Tm9kZURpYWxvZ1NlcnZpY2U6IENvbnRlbnROb2RlRGlhbG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRvY3VtZW50TGlzdFNlcnZpY2U/OiBEb2N1bWVudExpc3RTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbnRlbnRTZXJ2aWNlPzogQ29udGVudFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5zZXR1cEFjdGlvbkhhbmRsZXJzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgaGFuZGxlciBmb3IgYW4gYWN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIGtleSBJZGVudGlmaWVyIG9mIHRoZSBhY3Rpb25cbiAgICAgKiBAcmV0dXJucyBUaGUgaGFuZGxlciBmb3IgdGhlIGFjdGlvblxuICAgICAqL1xuICAgIGdldEhhbmRsZXIoa2V5OiBzdHJpbmcpOiBDb250ZW50QWN0aW9uSGFuZGxlciB7XG4gICAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgICAgIGNvbnN0IGxLZXkgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZXJzW2xLZXldIHx8IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBhIG5ldyBoYW5kbGVyIGZvciBhbiBhY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ga2V5IElkZW50aWZpZXIgb2YgdGhlIGFjdGlvblxuICAgICAqIEBwYXJhbSBoYW5kbGVyIEhhbmRsZXIgZm9yIHRoZSBhY3Rpb25cbiAgICAgKiBAcmV0dXJucyBGYWxzZSBpZiB0aGUga2V5IHdhcyBhbiBlbXB0eS9udWxsIHN0cmluZywgdHJ1ZSBvdGhlcndpc2VcbiAgICAgKi9cbiAgICBzZXRIYW5kbGVyKGtleTogc3RyaW5nLCBoYW5kbGVyOiBDb250ZW50QWN0aW9uSGFuZGxlcik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoa2V5KSB7XG4gICAgICAgICAgICBjb25zdCBsS2V5ID0ga2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZXJzW2xLZXldID0gaGFuZGxlcjtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYWN0aW9ucyBjYW4gYmUgZXhlY3V0ZWQgZm9yIGFuIGl0ZW0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZUVudHJ5IEl0ZW0gdG8gcmVjZWl2ZSBhbiBhY3Rpb25cbiAgICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBhY3Rpb24gY2FuIGJlIGV4ZWN1dGVkIG9uIHRoaXMgaXRlbSwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAgICovXG4gICAgY2FuRXhlY3V0ZUFjdGlvbihub2RlRW50cnk6IE5vZGVFbnRyeSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudExpc3RTZXJ2aWNlICYmIG5vZGVFbnRyeSAmJiBub2RlRW50cnkuZW50cnkuaXNGaWxlID09PSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBBY3Rpb25IYW5kbGVycygpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVyc1snY29weSddID0gdGhpcy5jb3B5Tm9kZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZXJzWydtb3ZlJ10gPSB0aGlzLm1vdmVOb2RlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlcnNbJ2RlbGV0ZSddID0gdGhpcy5kZWxldGVOb2RlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlcnNbJ2Rvd25sb2FkJ10gPSB0aGlzLmRvd25sb2FkTm9kZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZXJzWydsb2NrJ10gPSB0aGlzLmxvY2tOb2RlLmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2NrTm9kZShub2RlOiBOb2RlRW50cnkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudE5vZGVEaWFsb2dTZXJ2aWNlLm9wZW5Mb2NrTm9kZURpYWxvZyhub2RlLmVudHJ5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRvd25sb2FkTm9kZShvYmo6IE5vZGVFbnRyeSkge1xuICAgICAgICB0aGlzLm5vZGVBY3Rpb25zU2VydmljZS5kb3dubG9hZE5vZGUob2JqKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvcHlOb2RlKG5vZGU6IE5vZGVFbnRyeSwgX3RhcmdldD86IGFueSwgcGVybWlzc2lvbj86IHN0cmluZykge1xuICAgICAgICBjb25zdCBhY3Rpb25PYnNlcnZhYmxlID0gdGhpcy5ub2RlQWN0aW9uc1NlcnZpY2UuY29weUNvbnRlbnQobm9kZS5lbnRyeSwgcGVybWlzc2lvbik7XG4gICAgICAgIHRoaXMucHJlcGFyZUhhbmRsZXJzKGFjdGlvbk9ic2VydmFibGUpO1xuICAgICAgICByZXR1cm4gYWN0aW9uT2JzZXJ2YWJsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdmVOb2RlKG5vZGU6IE5vZGVFbnRyeSwgX3RhcmdldD86IGFueSwgcGVybWlzc2lvbj86IHN0cmluZykge1xuICAgICAgICBjb25zdCBhY3Rpb25PYnNlcnZhYmxlID0gdGhpcy5ub2RlQWN0aW9uc1NlcnZpY2UubW92ZUNvbnRlbnQobm9kZS5lbnRyeSwgcGVybWlzc2lvbik7XG4gICAgICAgIHRoaXMucHJlcGFyZUhhbmRsZXJzKGFjdGlvbk9ic2VydmFibGUpO1xuICAgICAgICByZXR1cm4gYWN0aW9uT2JzZXJ2YWJsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByZXBhcmVIYW5kbGVycyhhY3Rpb25PYnNlcnZhYmxlOiBTdWJqZWN0PHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgYWN0aW9uT2JzZXJ2YWJsZS5zdWJzY3JpYmUoKGZpbGVPcGVyYXRpb25NZXNzYWdlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN1Y2Nlc3MubmV4dChmaWxlT3BlcmF0aW9uTWVzc2FnZSk7XG4gICAgICAgIH0sIHRoaXMuZXJyb3IubmV4dC5iaW5kKHRoaXMuZXJyb3IpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlbGV0ZU5vZGUobm9kZTogTm9kZUVudHJ5LCBfdGFyZ2V0PzogYW55LCBwZXJtaXNzaW9uPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgaWYgKHRoaXMuY2FuRXhlY3V0ZUFjdGlvbihub2RlKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29udGVudFNlcnZpY2UuaGFzQWxsb3dhYmxlT3BlcmF0aW9ucyhub2RlLmVudHJ5LCBwZXJtaXNzaW9uKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGhhbmRsZXJPYnNlcnZhYmxlID0gdGhpcy5kb2N1bWVudExpc3RTZXJ2aWNlLmRlbGV0ZU5vZGUobm9kZS5lbnRyeS5pZCk7XG4gICAgICAgICAgICAgICAgaGFuZGxlck9ic2VydmFibGUuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGlvbi5pbnN0YW50KCdDT1JFLkRFTEVURV9OT0RFLlNJTkdVTEFSJywgeyBuYW1lOiBub2RlLmVudHJ5Lm5hbWUgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Y2Nlc3MubmV4dChtZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJhbnNsYXRpb24uaW5zdGFudCgnQ09SRS5ERUxFVEVfTk9ERS5FUlJPUl9TSU5HVUxBUicsIHsgbmFtZTogbm9kZS5lbnRyeS5uYW1lIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvci5uZXh0KG1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlck9ic2VydmFibGU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucGVybWlzc2lvbkV2ZW50Lm5leHQoXG4gICAgICAgICAgICAgICAgICAgIG5ldyBQZXJtaXNzaW9uTW9kZWwoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2NvbnRlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnZGVsZXRlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKG5ldyBFcnJvcignTm8gcGVybWlzc2lvbiB0byBkZWxldGUnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2YoKTtcbiAgICB9XG59XG4iXX0=
@@ -163,13 +163,13 @@ export class DocumentListService {
163
163
  }, includeFields)
164
164
  ]).pipe(map((results) => new DocumentLoaderNode(results[0], results[1])));
165
165
  }
166
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DocumentListService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
167
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DocumentListService, providedIn: 'root' }); }
166
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DocumentListService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
167
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DocumentListService, providedIn: 'root' }); }
168
168
  }
169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DocumentListService, decorators: [{
169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DocumentListService, decorators: [{
170
170
  type: Injectable,
171
171
  args: [{
172
172
  providedIn: 'root'
173
173
  }]
174
174
  }] });
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtbGlzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9kb2N1bWVudC1saXN0L3NlcnZpY2VzL2RvY3VtZW50LWxpc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBK0IsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFjLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFekUsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDO0FBS3pCLE1BQU0sT0FBTyxtQkFBbUI7SUFIaEM7UUFJWSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxQyxlQUFVLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDeEMsMkJBQXNCLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFReEQsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDOUIsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRTlDLCtFQUErRTtRQUMvRSxZQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FB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QyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7K0dBdE1RLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRmhCLE1BQU07OzRGQUVULG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFBhZ2luYXRpb25Nb2RlbCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBOb2Rlc0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZXMvbm9kZXMtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlLCBOb2RlRW50cnksIE5vZGVQYWdpbmcsIE5vZGVzQXBpIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBEb2N1bWVudExvYWRlck5vZGUgfSBmcm9tICcuLi9tb2RlbHMvZG9jdW1lbnQtZm9sZGVyLm1vZGVsJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20sIGZvcmtKb2luLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEb2N1bWVudExpc3RMb2FkZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RvY3VtZW50LWxpc3QtbG9hZGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDdXN0b21SZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnLi9jdXN0b20tcmVzb3VyY2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxmcmVzY29BcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWxmcmVzY28tYXBpLnNlcnZpY2UnO1xuXG5jb25zdCBST09UX0lEID0gJy1yb290LSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRMaXN0U2VydmljZSBpbXBsZW1lbnRzIERvY3VtZW50TGlzdExvYWRlciB7XG4gICAgcHJpdmF0ZSBub2Rlc0FwaVNlcnZpY2UgPSBpbmplY3QoTm9kZXNBcGlTZXJ2aWNlKTtcbiAgICBwcml2YXRlIGFwaVNlcnZpY2UgPSBpbmplY3QoQWxmcmVzY29BcGlTZXJ2aWNlKTtcbiAgICBwcml2YXRlIGN1c3RvbVJlc291cmNlc1NlcnZpY2UgPSBpbmplY3QoQ3VzdG9tUmVzb3VyY2VzU2VydmljZSk7XG5cbiAgICBwcml2YXRlIF9ub2Rlc0FwaTogTm9kZXNBcGk7XG4gICAgZ2V0IG5vZGVzKCk6IE5vZGVzQXBpIHtcbiAgICAgICAgdGhpcy5fbm9kZXNBcGkgPSB0aGlzLl9ub2Rlc0FwaSA/PyBuZXcgTm9kZXNBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fbm9kZXNBcGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVsb2FkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF9yZXNldFNlbGVjdGlvbiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogR2V0cyBhbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgd2hlbiB0aGUgZG9jdW1lbnQgbGlzdCBzaG91bGQgYmUgcmVsb2FkZWQuICovXG4gICAgcmVsb2FkJCA9IHRoaXMuX3JlbG9hZC5hc09ic2VydmFibGUoKTtcblxuICAgIC8qKiBHZXRzIGFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB3aGVuIHRoZSBzZWxlY3Rpb24gc2hvdWxkIGJlIHJlc2V0LiAqL1xuICAgIHJlc2V0U2VsZWN0aW9uJCA9IHRoaXMuX3Jlc2V0U2VsZWN0aW9uLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgLyoqIFJlbG9hZHMgdGhlIGRvY3VtZW50IGxpc3QuICovXG4gICAgcmVsb2FkKCkge1xuICAgICAgICB0aGlzLl9yZWxvYWQubmV4dCgpO1xuICAgIH1cblxuICAgIC8qKiBSZXNldHMgdGhlIHNlbGVjdGlvbi4gKi9cbiAgICByZXNldFNlbGVjdGlvbigpIHtcbiAgICAgICAgdGhpcy5fcmVzZXRTZWxlY3Rpb24ubmV4dCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgYSBub2RlLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5vZGVJZCBJRCBvZiB0aGUgbm9kZSB0byBkZWxldGVcbiAgICAgKiBAcmV0dXJucyBFbXB0eSByZXNwb25zZSB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVcbiAgICAgKi9cbiAgICBkZWxldGVOb2RlKG5vZGVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5ub2Rlcy5kZWxldGVOb2RlKG5vZGVJZCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcHkgYSBub2RlIHRvIGRlc3RpbmF0aW9uIG5vZGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlSWQgVGhlIGlkIG9mIHRoZSBub2RlIHRvIGJlIGNvcGllZFxuICAgICAqIEBwYXJhbSB0YXJnZXRQYXJlbnRJZCBUaGUgaWQgb2YgdGhlIGZvbGRlciB3aGVyZSB0aGUgbm9kZSB3aWxsIGJlIGNvcGllZFxuICAgICAqIEByZXR1cm5zIE5vZGVFbnRyeSBmb3IgdGhlIGNvcGllZCBub2RlXG4gICAgICovXG4gICAgY29weU5vZGUobm9kZUlkOiBzdHJpbmcsIHRhcmdldFBhcmVudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE5vZGVFbnRyeT4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLm5vZGVzLmNvcHlOb2RlKG5vZGVJZCwgeyB0YXJnZXRQYXJlbnRJZCB9KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTW92ZXMgYSBub2RlIHRvIGRlc3RpbmF0aW9uIG5vZGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZUlkIFRoZSBpZCBvZiB0aGUgbm9kZSB0byBiZSBtb3ZlZFxuICAgICAqIEBwYXJhbSB0YXJnZXRQYXJlbnRJZCBUaGUgaWQgb2YgdGhlIGZvbGRlciB3aGVyZSB0aGUgbm9kZSB3aWxsIGJlIG1vdmVkXG4gICAgICogQHJldHVybnMgTm9kZUVudHJ5IGZvciB0aGUgbW92ZWQgbm9kZVxuICAgICAqL1xuICAgIG1vdmVOb2RlKG5vZGVJZDogc3RyaW5nLCB0YXJnZXRQYXJlbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxOb2RlRW50cnk+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5ub2Rlcy5tb3ZlTm9kZShub2RlSWQsIHsgdGFyZ2V0UGFyZW50SWQgfSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGZvbGRlciBub2RlIHdpdGggdGhlIHNwZWNpZmllZCByZWxhdGl2ZSBuYW1lIHBhdGggYmVsb3cgdGhlIHJvb3Qgbm9kZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmb2xkZXIgUGF0aCB0byBmb2xkZXIuXG4gICAgICogQHBhcmFtIG9wdHMgT3B0aW9ucy5cbiAgICAgKiBAcGFyYW0gaW5jbHVkZUZpZWxkcyBFeHRyYSBpbmZvcm1hdGlvbiB0byBpbmNsdWRlIChhdmFpbGFibGUgb3B0aW9ucyBhcmUgXCJhc3BlY3ROYW1lc1wiLCBcImlzTGlua1wiIGFuZCBcImFzc29jaWF0aW9uXCIpXG4gICAgICogQHJldHVybnMgRGV0YWlscyBvZiB0aGUgZm9sZGVyXG4gICAgICovXG4gICAgZ2V0Rm9sZGVyKGZvbGRlcjogc3RyaW5nLCBvcHRzPzogYW55LCBpbmNsdWRlRmllbGRzOiBzdHJpbmdbXSA9IFtdKTogT2JzZXJ2YWJsZTxOb2RlUGFnaW5nPiB7XG4gICAgICAgIGxldCByb290Tm9kZUlkID0gUk9PVF9JRDtcbiAgICAgICAgaWYgKG9wdHM/LnJvb3RGb2xkZXJJZCkge1xuICAgICAgICAgICAgcm9vdE5vZGVJZCA9IG9wdHMucm9vdEZvbGRlcklkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW5jbHVkZUZpZWxkc1JlcXVlc3QgPSBbJ3BhdGgnLCAncHJvcGVydGllcycsICdhbGxvd2FibGVPcGVyYXRpb25zJywgJ3Blcm1pc3Npb25zJywgJ2FzcGVjdE5hbWVzJywgLi4uaW5jbHVkZUZpZWxkc10uZmlsdGVyKFxuICAgICAgICAgICAgKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgPT4gaW5kZXggPT09IGFycmF5LmluZGV4T2YoZWxlbWVudClcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBwYXJhbXM6IGFueSA9IHtcbiAgICAgICAgICAgIGluY2x1ZGVTb3VyY2U6IHRydWUsXG4gICAgICAgICAgICBpbmNsdWRlOiBpbmNsdWRlRmllbGRzUmVxdWVzdFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChmb2xkZXIpIHtcbiAgICAgICAgICAgIHBhcmFtcy5yZWxhdGl2ZVBhdGggPSBmb2xkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0cykge1xuICAgICAgICAgICAgaWYgKG9wdHMubWF4SXRlbXMpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMubWF4SXRlbXMgPSBvcHRzLm1heEl0ZW1zO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdHMuc2tpcENvdW50KSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zLnNraXBDb3VudCA9IG9wdHMuc2tpcENvdW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdHMud2hlcmUpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMud2hlcmUgPSBvcHRzLndoZXJlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdHMub3JkZXJCeSkge1xuICAgICAgICAgICAgICAgIHBhcmFtcy5vcmRlckJ5ID0gb3B0cy5vcmRlckJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5ub2Rlcy5saXN0Tm9kZUNoaWxkcmVuKHJvb3ROb2RlSWQsIHBhcmFtcykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSBub2RlIHZpYSBpdHMgbm9kZSBJRC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlSWQgSUQgb2YgdGhlIHRhcmdldCBub2RlXG4gICAgICogQHBhcmFtIGluY2x1ZGVGaWVsZHMgRXh0cmEgaW5mb3JtYXRpb24gdG8gaW5jbHVkZSAoYXZhaWxhYmxlIG9wdGlvbnMgYXJlIFwiYXNwZWN0TmFtZXNcIiwgXCJpc0xpbmtcIiBhbmQgXCJhc3NvY2lhdGlvblwiKVxuICAgICAqIEByZXR1cm5zIERldGFpbHMgb2YgdGhlIGZvbGRlclxuICAgICAqL1xuICAgIGdldE5vZGUobm9kZUlkOiBzdHJpbmcsIGluY2x1ZGVGaWVsZHM6IHN0cmluZ1tdID0gW10pOiBPYnNlcnZhYmxlPE5vZGU+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZUZpZWxkc1JlcXVlc3QgPSBbJ3BhdGgnLCAncHJvcGVydGllcycsICdhbGxvd2FibGVPcGVyYXRpb25zJywgJ3Blcm1pc3Npb25zJywgJ2RlZmluaXRpb24nLCAuLi5pbmNsdWRlRmllbGRzXS5maWx0ZXIoXG4gICAgICAgICAgICAoZWxlbWVudCwgaW5kZXgsIGFycmF5KSA9PiBpbmRleCA9PT0gYXJyYXkuaW5kZXhPZihlbGVtZW50KVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IG9wdHM6IGFueSA9IHtcbiAgICAgICAgICAgIGluY2x1ZGVTb3VyY2U6IHRydWUsXG4gICAgICAgICAgICBpbmNsdWRlOiBpbmNsdWRlRmllbGRzUmVxdWVzdFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLm5vZGVzQXBpU2VydmljZS5nZXROb2RlKG5vZGVJZCwgb3B0cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIGZvbGRlciBub2RlIHZpYSBpdHMgbm9kZSBJRC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlSWQgSUQgb2YgdGhlIGZvbGRlciBub2RlXG4gICAgICogQHBhcmFtIGluY2x1ZGVGaWVsZHMgRXh0cmEgaW5mb3JtYXRpb24gdG8gaW5jbHVkZSAoYXZhaWxhYmxlIG9wdGlvbnMgYXJlIFwiYXNwZWN0TmFtZXNcIiwgXCJpc0xpbmtcIiBhbmQgXCJhc3NvY2lhdGlvblwiKVxuICAgICAqIEByZXR1cm5zIERldGFpbHMgb2YgdGhlIGZvbGRlclxuICAgICAqL1xuICAgIGdldEZvbGRlck5vZGUobm9kZUlkOiBzdHJpbmcsIGluY2x1ZGVGaWVsZHM6IHN0cmluZ1tdID0gW10pOiBPYnNlcnZhYmxlPE5vZGVFbnRyeT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRmllbGRzUmVxdWVzdCA9IFsncGF0aCcsICdwcm9wZXJ0aWVzJywgJ2FsbG93YWJsZU9wZXJhdGlvbnMnLCAncGVybWlzc2lvbnMnLCAnYXNwZWN0TmFtZXMnLCAuLi5pbmNsdWRlRmllbGRzXS5maWx0ZXIoXG4gICAgICAgICAgICAoZWxlbWVudCwgaW5kZXgsIGFycmF5KSA9PiBpbmRleCA9PT0gYXJyYXkuaW5kZXhPZihlbGVtZW50KVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IG9wdHM6IGFueSA9IHtcbiAgICAgICAgICAgIGluY2x1ZGVTb3VyY2U6IHRydWUsXG4gICAgICAgICAgICBpbmNsdWRlOiBpbmNsdWRlRmllbGRzUmVxdWVzdFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMubm9kZXMuZ2V0Tm9kZShub2RlSWQsIG9wdHMpKTtcbiAgICB9XG5cbiAgICBpc0N1c3RvbVNvdXJjZVNlcnZpY2Uobm9kZUlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tUmVzb3VyY2VzU2VydmljZS5pc0N1c3RvbVNvdXJjZShub2RlSWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExvYWQgYSBmb2xkZXIgYnkgTm9kZSBJZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlSWQgSUQgb2YgdGhlIGZvbGRlciBub2RlXG4gICAgICogQHBhcmFtIHBhZ2luYXRpb24gcGFnaW5hdGlvbiBtb2RlbFxuICAgICAqIEBwYXJhbSBpbmNsdWRlRmllbGRzIExpc3Qgb2YgZGF0YSBmaWVsZCBuYW1lcyB0byBpbmNsdWRlIGluIHRoZSByZXN1bHRzXG4gICAgICogQHBhcmFtIHdoZXJlICBPcHRpb25hbGx5IGZpbHRlciB0aGUgbGlzdFxuICAgICAqIEBwYXJhbSBvcmRlckJ5IG9yZGVyIGJ5IG5vZGUgcHJvcGVydHlcbiAgICAgKiBAcmV0dXJucyBEZXRhaWxzIG9mIHRoZSBmb2xkZXJcbiAgICAgKi9cbiAgICBsb2FkRm9sZGVyQnlOb2RlSWQoXG4gICAgICAgIG5vZGVJZDogc3RyaW5nLFxuICAgICAgICBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uTW9kZWwsXG4gICAgICAgIGluY2x1ZGVGaWVsZHM6IHN0cmluZ1tdLFxuICAgICAgICB3aGVyZT86IHN0cmluZyxcbiAgICAgICAgb3JkZXJCeT86IHN0cmluZ1tdXG4gICAgKTogT2JzZXJ2YWJsZTxEb2N1bWVudExvYWRlck5vZGU+IHtcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tUmVzb3VyY2VzU2VydmljZS5pc0N1c3RvbVNvdXJjZShub2RlSWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21SZXNvdXJjZXNTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmxvYWRGb2xkZXJCeU5vZGVJZChub2RlSWQsIHBhZ2luYXRpb24sIGluY2x1ZGVGaWVsZHMsIHdoZXJlKVxuICAgICAgICAgICAgICAgIC5waXBlKG1hcCgocmVzdWx0OiBhbnkpID0+IG5ldyBEb2N1bWVudExvYWRlck5vZGUobnVsbCwgcmVzdWx0KSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0cmlldmVEb2N1bWVudE5vZGUobm9kZUlkLCBwYWdpbmF0aW9uLCBpbmNsdWRlRmllbGRzLCB3aGVyZSwgb3JkZXJCeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJldHJpZXZlRG9jdW1lbnROb2RlKFxuICAgICAgICBub2RlSWQ6IHN0cmluZyxcbiAgICAgICAgcGFnaW5hdGlvbjogUGFnaW5hdGlvbk1vZGVsLFxuICAgICAgICBpbmNsdWRlRmllbGRzOiBzdHJpbmdbXSxcbiAgICAgICAgd2hlcmU/OiBzdHJpbmcsXG4gICAgICAgIG9yZGVyQnk/OiBzdHJpbmdbXVxuICAgICk6IE9ic2VydmFibGU8RG9jdW1lbnRMb2FkZXJOb2RlPiB7XG4gICAgICAgIHJldHVybiBmb3JrSm9pbihbXG4gICAgICAgICAgICB0aGlzLmdldEZvbGRlck5vZGUobm9kZUlkLCBpbmNsdWRlRmllbGRzKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0Rm9sZGVyKFxuICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBtYXhJdGVtczogcGFnaW5hdGlvbi5tYXhJdGVtcyxcbiAgICAgICAgICAgICAgICAgICAgc2tpcENvdW50OiBwYWdpbmF0aW9uLnNraXBDb3VudCxcbiAgICAgICAgICAgICAgICAgICAgb3JkZXJCeSxcbiAgICAgICAgICAgICAgICAgICAgcm9vdEZvbGRlcklkOiBub2RlSWQsXG4gICAgICAgICAgICAgICAgICAgIHdoZXJlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpbmNsdWRlRmllbGRzXG4gICAgICAgICAgICApXG4gICAgICAgIF0pLnBpcGUobWFwKChyZXN1bHRzKSA9PiBuZXcgRG9jdW1lbnRMb2FkZXJOb2RlKHJlc3VsdHNbMF0sIHJlc3VsdHNbMV0pKSk7XG4gICAgfVxufVxuIl19
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtbGlzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9kb2N1bWVudC1saXN0L3NlcnZpY2VzL2RvY3VtZW50LWxpc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBK0IsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFjLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFekUsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDO0FBS3pCLE1BQU0sT0FBTyxtQkFBbUI7SUFIaEM7UUFJWSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxQyxlQUFVLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDeEMsMkJBQXNCLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFReEQsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDOUIsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRTlDLCtFQUErRTtRQUMvRSxZQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FB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QyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7OEdBdE1RLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRmhCLE1BQU07OzJGQUVULG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFBhZ2luYXRpb25Nb2RlbCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBOb2Rlc0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZXMvbm9kZXMtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlLCBOb2RlRW50cnksIE5vZGVQYWdpbmcsIE5vZGVzQXBpIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBEb2N1bWVudExvYWRlck5vZGUgfSBmcm9tICcuLi9tb2RlbHMvZG9jdW1lbnQtZm9sZGVyLm1vZGVsJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20sIGZvcmtKb2luLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEb2N1bWVudExpc3RMb2FkZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RvY3VtZW50LWxpc3QtbG9hZGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDdXN0b21SZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnLi9jdXN0b20tcmVzb3VyY2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxmcmVzY29BcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWxmcmVzY28tYXBpLnNlcnZpY2UnO1xuXG5jb25zdCBST09UX0lEID0gJy1yb290LSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRMaXN0U2VydmljZSBpbXBsZW1lbnRzIERvY3VtZW50TGlzdExvYWRlciB7XG4gICAgcHJpdmF0ZSBub2Rlc0FwaVNlcnZpY2UgPSBpbmplY3QoTm9kZXNBcGlTZXJ2aWNlKTtcbiAgICBwcml2YXRlIGFwaVNlcnZpY2UgPSBpbmplY3QoQWxmcmVzY29BcGlTZXJ2aWNlKTtcbiAgICBwcml2YXRlIGN1c3RvbVJlc291cmNlc1NlcnZpY2UgPSBpbmplY3QoQ3VzdG9tUmVzb3VyY2VzU2VydmljZSk7XG5cbiAgICBwcml2YXRlIF9ub2Rlc0FwaTogTm9kZXNBcGk7XG4gICAgZ2V0IG5vZGVzKCk6IE5vZGVzQXBpIHtcbiAgICAgICAgdGhpcy5fbm9kZXNBcGkgPSB0aGlzLl9ub2Rlc0FwaSA/PyBuZXcgTm9kZXNBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fbm9kZXNBcGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVsb2FkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF9yZXNldFNlbGVjdGlvbiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogR2V0cyBhbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgd2hlbiB0aGUgZG9jdW1lbnQgbGlzdCBzaG91bGQgYmUgcmVsb2FkZWQuICovXG4gICAgcmVsb2FkJCA9IHRoaXMuX3JlbG9hZC5hc09ic2VydmFibGUoKTtcblxuICAgIC8qKiBHZXRzIGFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB3aGVuIHRoZSBzZWxlY3Rpb24gc2hvdWxkIGJlIHJlc2V0LiAqL1xuICAgIHJlc2V0U2VsZWN0aW9uJCA9IHRoaXMuX3Jlc2V0U2VsZWN0aW9uLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgLyoqIFJlbG9hZHMgdGhlIGRvY3VtZW50IGxpc3QuICovXG4gICAgcmVsb2FkKCkge1xuICAgICAgICB0aGlzLl9yZWxvYWQubmV4dCgpO1xuICAgIH1cblxuICAgIC8qKiBSZXNldHMgdGhlIHNlbGVjdGlvbi4gKi9cbiAgICByZXNldFNlbGVjdGlvbigpIHtcbiAgICAgICAgdGhpcy5fcmVzZXRTZWxlY3Rpb24ubmV4dCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgYSBub2RlLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5vZGVJZCBJRCBvZiB0aGUgbm9kZSB0byBkZWxldGVcbiAgICAgKiBAcmV0dXJucyBFbXB0eSByZXNwb25zZSB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVcbiAgICAgKi9cbiAgICBkZWxldGVOb2RlKG5vZGVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5ub2Rlcy5kZWxldGVOb2RlKG5vZGVJZCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcHkgYSBub2RlIHRvIGRlc3RpbmF0aW9uIG5vZGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlSWQgVGhlIGlkIG9mIHRoZSBub2RlIHRvIGJlIGNvcGllZFxuICAgICAqIEBwYXJhbSB0YXJnZXRQYXJlbnRJZCBUaGUgaWQgb2YgdGhlIGZvbGRlciB3aGVyZSB0aGUgbm9kZSB3aWxsIGJlIGNvcGllZFxuICAgICAqIEByZXR1cm5zIE5vZGVFbnRyeSBmb3IgdGhlIGNvcGllZCBub2RlXG4gICAgICovXG4gICAgY29weU5vZGUobm9kZUlkOiBzdHJpbmcsIHRhcmdldFBhcmVudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE5vZGVFbnRyeT4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLm5vZGVzLmNvcHlOb2RlKG5vZGVJZCwgeyB0YXJnZXRQYXJlbnRJZCB9KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTW92ZXMgYSBub2RlIHRvIGRlc3RpbmF0aW9uIG5vZGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZUlkIFRoZSBpZCBvZiB0aGUgbm9kZSB0byBiZSBtb3ZlZFxuICAgICAqIEBwYXJhbSB0YXJnZXRQYXJlbnRJZCBUaGUgaWQgb2YgdGhlIGZvbGRlciB3aGVyZSB0aGUgbm9kZSB3aWxsIGJlIG1vdmVkXG4gICAgICogQHJldHVybnMgTm9kZUVudHJ5IGZvciB0aGUgbW92ZWQgbm9kZVxuICAgICAqL1xuICAgIG1vdmVOb2RlKG5vZGVJZDogc3RyaW5nLCB0YXJnZXRQYXJlbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxOb2RlRW50cnk+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5ub2Rlcy5tb3ZlTm9kZShub2RlSWQsIHsgdGFyZ2V0UGFyZW50SWQgfSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGZvbGRlciBub2RlIHdpdGggdGhlIHNwZWNpZmllZCByZWxhdGl2ZSBuYW1lIHBhdGggYmVsb3cgdGhlIHJvb3Qgbm9kZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmb2xkZXIgUGF0aCB0byBmb2xkZXIuXG4gICAgICogQHBhcmFtIG9wdHMgT3B0aW9ucy5cbiAgICAgKiBAcGFyYW0gaW5jbHVkZUZpZWxkcyBFeHRyYSBpbmZvcm1hdGlvbiB0byBpbmNsdWRlIChhdmFpbGFibGUgb3B0aW9ucyBhcmUgXCJhc3BlY3ROYW1lc1wiLCBcImlzTGlua1wiIGFuZCBcImFzc29jaWF0aW9uXCIpXG4gICAgICogQHJldHVybnMgRGV0YWlscyBvZiB0aGUgZm9sZGVyXG4gICAgICovXG4gICAgZ2V0Rm9sZGVyKGZvbGRlcjogc3RyaW5nLCBvcHRzPzogYW55LCBpbmNsdWRlRmllbGRzOiBzdHJpbmdbXSA9IFtdKTogT2JzZXJ2YWJsZTxOb2RlUGFnaW5nPiB7XG4gICAgICAgIGxldCByb290Tm9kZUlkID0gUk9PVF9JRDtcbiAgICAgICAgaWYgKG9wdHM/LnJvb3RGb2xkZXJJZCkge1xuICAgICAgICAgICAgcm9vdE5vZGVJZCA9IG9wdHMucm9vdEZvbGRlcklkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW5jbHVkZUZpZWxkc1JlcXVlc3QgPSBbJ3BhdGgnLCAncHJvcGVydGllcycsICdhbGxvd2FibGVPcGVyYXRpb25zJywgJ3Blcm1pc3Npb25zJywgJ2FzcGVjdE5hbWVzJywgLi4uaW5jbHVkZUZpZWxkc10uZmlsdGVyKFxuICAgICAgICAgICAgKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgPT4gaW5kZXggPT09IGFycmF5LmluZGV4T2YoZWxlbWVudClcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBwYXJhbXM6IGFueSA9IHtcbiAgICAgICAgICAgIGluY2x1ZGVTb3VyY2U6IHRydWUsXG4gICAgICAgICAgICBpbmNsdWRlOiBpbmNsdWRlRmllbGRzUmVxdWVzdFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChmb2xkZXIpIHtcbiAgICAgICAgICAgIHBhcmFtcy5yZWxhdGl2ZVBhdGggPSBmb2xkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0cykge1xuICAgICAgICAgICAgaWYgKG9wdHMubWF4SXRlbXMpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMubWF4SXRlbXMgPSBvcHRzLm1heEl0ZW1zO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdHMuc2tpcENvdW50KSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zLnNraXBDb3VudCA9IG9wdHMuc2tpcENvdW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdHMud2hlcmUpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMud2hlcmUgPSBvcHRzLndoZXJlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdHMub3JkZXJCeSkge1xuICAgICAgICAgICAgICAgIHBhcmFtcy5vcmRlckJ5ID0gb3B0cy5vcmRlckJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5ub2Rlcy5saXN0Tm9kZUNoaWxkcmVuKHJvb3ROb2RlSWQsIHBhcmFtcykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSBub2RlIHZpYSBpdHMgbm9kZSBJRC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlSWQgSUQgb2YgdGhlIHRhcmdldCBub2RlXG4gICAgICogQHBhcmFtIGluY2x1ZGVGaWVsZHMgRXh0cmEgaW5mb3JtYXRpb24gdG8gaW5jbHVkZSAoYXZhaWxhYmxlIG9wdGlvbnMgYXJlIFwiYXNwZWN0TmFtZXNcIiwgXCJpc0xpbmtcIiBhbmQgXCJhc3NvY2lhdGlvblwiKVxuICAgICAqIEByZXR1cm5zIERldGFpbHMgb2YgdGhlIGZvbGRlclxuICAgICAqL1xuICAgIGdldE5vZGUobm9kZUlkOiBzdHJpbmcsIGluY2x1ZGVGaWVsZHM6IHN0cmluZ1tdID0gW10pOiBPYnNlcnZhYmxlPE5vZGU+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZUZpZWxkc1JlcXVlc3QgPSBbJ3BhdGgnLCAncHJvcGVydGllcycsICdhbGxvd2FibGVPcGVyYXRpb25zJywgJ3Blcm1pc3Npb25zJywgJ2RlZmluaXRpb24nLCAuLi5pbmNsdWRlRmllbGRzXS5maWx0ZXIoXG4gICAgICAgICAgICAoZWxlbWVudCwgaW5kZXgsIGFycmF5KSA9PiBpbmRleCA9PT0gYXJyYXkuaW5kZXhPZihlbGVtZW50KVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IG9wdHM6IGFueSA9IHtcbiAgICAgICAgICAgIGluY2x1ZGVTb3VyY2U6IHRydWUsXG4gICAgICAgICAgICBpbmNsdWRlOiBpbmNsdWRlRmllbGRzUmVxdWVzdFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLm5vZGVzQXBpU2VydmljZS5nZXROb2RlKG5vZGVJZCwgb3B0cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIGZvbGRlciBub2RlIHZpYSBpdHMgbm9kZSBJRC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlSWQgSUQgb2YgdGhlIGZvbGRlciBub2RlXG4gICAgICogQHBhcmFtIGluY2x1ZGVGaWVsZHMgRXh0cmEgaW5mb3JtYXRpb24gdG8gaW5jbHVkZSAoYXZhaWxhYmxlIG9wdGlvbnMgYXJlIFwiYXNwZWN0TmFtZXNcIiwgXCJpc0xpbmtcIiBhbmQgXCJhc3NvY2lhdGlvblwiKVxuICAgICAqIEByZXR1cm5zIERldGFpbHMgb2YgdGhlIGZvbGRlclxuICAgICAqL1xuICAgIGdldEZvbGRlck5vZGUobm9kZUlkOiBzdHJpbmcsIGluY2x1ZGVGaWVsZHM6IHN0cmluZ1tdID0gW10pOiBPYnNlcnZhYmxlPE5vZGVFbnRyeT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRmllbGRzUmVxdWVzdCA9IFsncGF0aCcsICdwcm9wZXJ0aWVzJywgJ2FsbG93YWJsZU9wZXJhdGlvbnMnLCAncGVybWlzc2lvbnMnLCAnYXNwZWN0TmFtZXMnLCAuLi5pbmNsdWRlRmllbGRzXS5maWx0ZXIoXG4gICAgICAgICAgICAoZWxlbWVudCwgaW5kZXgsIGFycmF5KSA9PiBpbmRleCA9PT0gYXJyYXkuaW5kZXhPZihlbGVtZW50KVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IG9wdHM6IGFueSA9IHtcbiAgICAgICAgICAgIGluY2x1ZGVTb3VyY2U6IHRydWUsXG4gICAgICAgICAgICBpbmNsdWRlOiBpbmNsdWRlRmllbGRzUmVxdWVzdFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMubm9kZXMuZ2V0Tm9kZShub2RlSWQsIG9wdHMpKTtcbiAgICB9XG5cbiAgICBpc0N1c3RvbVNvdXJjZVNlcnZpY2Uobm9kZUlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tUmVzb3VyY2VzU2VydmljZS5pc0N1c3RvbVNvdXJjZShub2RlSWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExvYWQgYSBmb2xkZXIgYnkgTm9kZSBJZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlSWQgSUQgb2YgdGhlIGZvbGRlciBub2RlXG4gICAgICogQHBhcmFtIHBhZ2luYXRpb24gcGFnaW5hdGlvbiBtb2RlbFxuICAgICAqIEBwYXJhbSBpbmNsdWRlRmllbGRzIExpc3Qgb2YgZGF0YSBmaWVsZCBuYW1lcyB0byBpbmNsdWRlIGluIHRoZSByZXN1bHRzXG4gICAgICogQHBhcmFtIHdoZXJlICBPcHRpb25hbGx5IGZpbHRlciB0aGUgbGlzdFxuICAgICAqIEBwYXJhbSBvcmRlckJ5IG9yZGVyIGJ5IG5vZGUgcHJvcGVydHlcbiAgICAgKiBAcmV0dXJucyBEZXRhaWxzIG9mIHRoZSBmb2xkZXJcbiAgICAgKi9cbiAgICBsb2FkRm9sZGVyQnlOb2RlSWQoXG4gICAgICAgIG5vZGVJZDogc3RyaW5nLFxuICAgICAgICBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uTW9kZWwsXG4gICAgICAgIGluY2x1ZGVGaWVsZHM6IHN0cmluZ1tdLFxuICAgICAgICB3aGVyZT86IHN0cmluZyxcbiAgICAgICAgb3JkZXJCeT86IHN0cmluZ1tdXG4gICAgKTogT2JzZXJ2YWJsZTxEb2N1bWVudExvYWRlck5vZGU+IHtcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tUmVzb3VyY2VzU2VydmljZS5pc0N1c3RvbVNvdXJjZShub2RlSWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21SZXNvdXJjZXNTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmxvYWRGb2xkZXJCeU5vZGVJZChub2RlSWQsIHBhZ2luYXRpb24sIGluY2x1ZGVGaWVsZHMsIHdoZXJlKVxuICAgICAgICAgICAgICAgIC5waXBlKG1hcCgocmVzdWx0OiBhbnkpID0+IG5ldyBEb2N1bWVudExvYWRlck5vZGUobnVsbCwgcmVzdWx0KSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0cmlldmVEb2N1bWVudE5vZGUobm9kZUlkLCBwYWdpbmF0aW9uLCBpbmNsdWRlRmllbGRzLCB3aGVyZSwgb3JkZXJCeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJldHJpZXZlRG9jdW1lbnROb2RlKFxuICAgICAgICBub2RlSWQ6IHN0cmluZyxcbiAgICAgICAgcGFnaW5hdGlvbjogUGFnaW5hdGlvbk1vZGVsLFxuICAgICAgICBpbmNsdWRlRmllbGRzOiBzdHJpbmdbXSxcbiAgICAgICAgd2hlcmU/OiBzdHJpbmcsXG4gICAgICAgIG9yZGVyQnk/OiBzdHJpbmdbXVxuICAgICk6IE9ic2VydmFibGU8RG9jdW1lbnRMb2FkZXJOb2RlPiB7XG4gICAgICAgIHJldHVybiBmb3JrSm9pbihbXG4gICAgICAgICAgICB0aGlzLmdldEZvbGRlck5vZGUobm9kZUlkLCBpbmNsdWRlRmllbGRzKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0Rm9sZGVyKFxuICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBtYXhJdGVtczogcGFnaW5hdGlvbi5tYXhJdGVtcyxcbiAgICAgICAgICAgICAgICAgICAgc2tpcENvdW50OiBwYWdpbmF0aW9uLnNraXBDb3VudCxcbiAgICAgICAgICAgICAgICAgICAgb3JkZXJCeSxcbiAgICAgICAgICAgICAgICAgICAgcm9vdEZvbGRlcklkOiBub2RlSWQsXG4gICAgICAgICAgICAgICAgICAgIHdoZXJlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpbmNsdWRlRmllbGRzXG4gICAgICAgICAgICApXG4gICAgICAgIF0pLnBpcGUobWFwKChyZXN1bHRzKSA9PiBuZXcgRG9jdW1lbnRMb2FkZXJOb2RlKHJlc3VsdHNbMF0sIHJlc3VsdHNbMV0pKSk7XG4gICAgfVxufVxuIl19
@@ -125,13 +125,13 @@ export class FolderActionsService {
125
125
  }
126
126
  return of();
127
127
  }
128
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FolderActionsService, deps: [{ token: i1.NodeActionsService }, { token: i2.DocumentListService }, { token: i3.ContentService }, { token: i4.TranslationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
129
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FolderActionsService, providedIn: 'root' }); }
128
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FolderActionsService, deps: [{ token: i1.NodeActionsService }, { token: i2.DocumentListService }, { token: i3.ContentService }, { token: i4.TranslationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
129
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FolderActionsService, providedIn: 'root' }); }
130
130
  }
131
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FolderActionsService, decorators: [{
131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FolderActionsService, decorators: [{
132
132
  type: Injectable,
133
133
  args: [{
134
134
  providedIn: 'root'
135
135
  }]
136
136
  }], ctorParameters: () => [{ type: i1.NodeActionsService }, { type: i2.DocumentListService }, { type: i3.ContentService }, { type: i4.TranslationService }] });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9sZGVyLWFjdGlvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvZG9jdW1lbnQtbGlzdC9zZXJ2aWNlcy9mb2xkZXItYWN0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQUs1RCxNQUFNLE9BQU8sb0JBQW9CO0lBTzdCLFlBQ1ksa0JBQXNDLEVBQ3RDLG1CQUF3QyxFQUN4QyxjQUE4QixFQUM5QixXQUErQjtRQUgvQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQVYzQyxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFtQixDQUFDO1FBQ2pELFVBQUssR0FBRyxJQUFJLE9BQU8sRUFBUyxDQUFDO1FBQzdCLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBRXhCLGFBQVEsR0FBMkMsRUFBRSxDQUFDO1FBUTFELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsQ0FBQyxHQUFXO1FBQ2xCLElBQUksR0FBRyxFQUFFLENBQUM7WUFDTixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDL0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQztRQUN2QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFVBQVUsQ0FBQyxHQUFXLEVBQUUsT0FBNkI7UUFDakQsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNOLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsZ0JBQWdCLENBQUMsU0FBb0I7UUFDakMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQztJQUN0RixDQUFDO0lBRU8sbUJBQW1CO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLFlBQVksQ0FBQyxTQUFvQjtRQUNyQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTyxRQUFRLENBQUMsU0FBb0IsRUFBRSxNQUFZLEVBQUUsVUFBbUI7UUFDcEUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQyxPQUFPLGdCQUFnQixDQUFDO0lBQzVCLENBQUM7SUFFTyxRQUFRLENBQUMsU0FBb0IsRUFBRSxNQUFZLEVBQUUsVUFBbUI7UUFDcEUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQyxPQUFPLGdCQUFnQixDQUFDO0lBQzVCLENBQUM7SUFFTyxlQUFlLENBQUMsZ0JBQWlDLEVBQUUsTUFBWTtRQUNuRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxvQkFBb0IsRUFBRSxFQUFFO1lBQ2hELElBQUksTUFBTSxJQUFJLE9BQU8sTUFBTSxDQUFDLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDaEQsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLENBQUM7WUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzVDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVPLFVBQVUsQ0FBQyxJQUFlLEVBQUUsTUFBWSxFQUFFLFVBQW1CO1FBQ2pFLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDOUIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDckUsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzdFLGlCQUFpQixDQUFDLFNBQVMsQ0FDdkIsR0FBRyxFQUFFO29CQUNELElBQUksTUFBTSxJQUFJLE9BQU8sTUFBTSxDQUFDLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQzt3QkFDaEQsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNwQixDQUFDO29CQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLDJCQUEyQixFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztvQkFDakcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQy9CLENBQUMsRUFDRCxHQUFHLEVBQUU7b0JBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsaUNBQWlDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUN2RyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDN0IsQ0FBQyxDQUNKLENBQUM7Z0JBRUYsT0FBTyxpQkFBaUIsQ0FBQztZQUM3QixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxlQUFlLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNqRyxPQUFPLFVBQVUsQ0FBQyxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7WUFDNUQsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQ2hCLENBQUM7K0dBbkhRLG9CQUFvQjttSEFBcEIsb0JBQW9CLGNBRmpCLE1BQU07OzRGQUVULG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBDb250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZXJ2aWNlcy9jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm9kZUVudHJ5IH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0aHJvd0Vycm9yLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29udGVudEFjdGlvbkhhbmRsZXIgfSBmcm9tICcuLi9tb2RlbHMvY29udGVudC1hY3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgUGVybWlzc2lvbk1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3Blcm1pc3Npb25zLm1vZGVsJztcbmltcG9ydCB7IERvY3VtZW50TGlzdFNlcnZpY2UgfSBmcm9tICcuL2RvY3VtZW50LWxpc3Quc2VydmljZSc7XG5pbXBvcnQgeyBOb2RlQWN0aW9uc1NlcnZpY2UgfSBmcm9tICcuL25vZGUtYWN0aW9ucy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGb2xkZXJBY3Rpb25zU2VydmljZSB7XG4gICAgcGVybWlzc2lvbkV2ZW50ID0gbmV3IFN1YmplY3Q8UGVybWlzc2lvbk1vZGVsPigpO1xuICAgIGVycm9yID0gbmV3IFN1YmplY3Q8RXJyb3I+KCk7XG4gICAgc3VjY2VzcyA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAgIHByaXZhdGUgaGFuZGxlcnM6IHsgW2lkOiBzdHJpbmddOiBDb250ZW50QWN0aW9uSGFuZGxlciB9ID0ge307XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBub2RlQWN0aW9uc1NlcnZpY2U6IE5vZGVBY3Rpb25zU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkb2N1bWVudExpc3RTZXJ2aWNlOiBEb2N1bWVudExpc3RTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbnRlbnRTZXJ2aWNlOiBDb250ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb25TZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuc2V0dXBBY3Rpb25IYW5kbGVycygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGhhbmRsZXIgZnVuY3Rpb24gZm9yIGFuIGFjdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBrZXkgSWRlbnRpZmllciBmb3IgdGhlIGFjdGlvblxuICAgICAqIEByZXR1cm5zIFRoZSBoYW5kbGVyIGZ1bmN0aW9uXG4gICAgICovXG4gICAgZ2V0SGFuZGxlcihrZXk6IHN0cmluZyk6IENvbnRlbnRBY3Rpb25IYW5kbGVyIHtcbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgY29uc3QgbEtleSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlcnNbbEtleV0gfHwgbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGEgbmV3IGhhbmRsZXIgZnVuY3Rpb24gZm9yIGFuIGFjdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBrZXkgSWRlbnRpZmllciBmb3IgdGhlIGFjdGlvblxuICAgICAqIEBwYXJhbSBoYW5kbGVyIFRoZSBuZXcgaGFuZGxlciBmdW5jdGlvblxuICAgICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGtleSB3YXMgYSB2YWxpZCBhY3Rpb24gaWRlbnRpZmllciwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAgICovXG4gICAgc2V0SGFuZGxlcihrZXk6IHN0cmluZywgaGFuZGxlcjogQ29udGVudEFjdGlvbkhhbmRsZXIpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgY29uc3QgbEtleSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVyc1tsS2V5XSA9IGhhbmRsZXI7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGFuIGFjdGlvbiBpcyBhdmFpbGFibGUgZm9yIGEgcGFydGljdWxhciBpdGVtLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5vZGVFbnRyeSBJdGVtIHRvIGNoZWNrXG4gICAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgYWN0aW9uIGlzIGF2YWlsYWJsZSwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAgICovXG4gICAgY2FuRXhlY3V0ZUFjdGlvbihub2RlRW50cnk6IE5vZGVFbnRyeSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudExpc3RTZXJ2aWNlICYmIG5vZGVFbnRyeSAmJiBub2RlRW50cnkuZW50cnkuaXNGb2xkZXIgPT09IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXR1cEFjdGlvbkhhbmRsZXJzKCkge1xuICAgICAgICB0aGlzLmhhbmRsZXJzWydjb3B5J10gPSB0aGlzLmNvcHlOb2RlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlcnNbJ21vdmUnXSA9IHRoaXMubW92ZU5vZGUuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5oYW5kbGVyc1snZGVsZXRlJ10gPSB0aGlzLmRlbGV0ZU5vZGUuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5oYW5kbGVyc1snZG93bmxvYWQnXSA9IHRoaXMuZG93bmxvYWROb2RlLmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkb3dubG9hZE5vZGUobm9kZUVudHJ5OiBOb2RlRW50cnkpIHtcbiAgICAgICAgdGhpcy5ub2RlQWN0aW9uc1NlcnZpY2UuZG93bmxvYWROb2RlKG5vZGVFbnRyeSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb3B5Tm9kZShub2RlRW50cnk6IE5vZGVFbnRyeSwgdGFyZ2V0PzogYW55LCBwZXJtaXNzaW9uPzogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGFjdGlvbk9ic2VydmFibGUgPSB0aGlzLm5vZGVBY3Rpb25zU2VydmljZS5jb3B5Rm9sZGVyKG5vZGVFbnRyeS5lbnRyeSwgcGVybWlzc2lvbik7XG4gICAgICAgIHRoaXMucHJlcGFyZUhhbmRsZXJzKGFjdGlvbk9ic2VydmFibGUsIHRhcmdldCk7XG4gICAgICAgIHJldHVybiBhY3Rpb25PYnNlcnZhYmxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgbW92ZU5vZGUobm9kZUVudHJ5OiBOb2RlRW50cnksIHRhcmdldD86IGFueSwgcGVybWlzc2lvbj86IHN0cmluZykge1xuICAgICAgICBjb25zdCBhY3Rpb25PYnNlcnZhYmxlID0gdGhpcy5ub2RlQWN0aW9uc1NlcnZpY2UubW92ZUZvbGRlcihub2RlRW50cnkuZW50cnksIHBlcm1pc3Npb24pO1xuICAgICAgICB0aGlzLnByZXBhcmVIYW5kbGVycyhhY3Rpb25PYnNlcnZhYmxlLCB0YXJnZXQpO1xuICAgICAgICByZXR1cm4gYWN0aW9uT2JzZXJ2YWJsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByZXBhcmVIYW5kbGVycyhhY3Rpb25PYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4sIHRhcmdldD86IGFueSk6IHZvaWQge1xuICAgICAgICBhY3Rpb25PYnNlcnZhYmxlLnN1YnNjcmliZSgoZmlsZU9wZXJhdGlvbk1lc3NhZ2UpID0+IHtcbiAgICAgICAgICAgIGlmICh0YXJnZXQgJiYgdHlwZW9mIHRhcmdldC5yZWxvYWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXQucmVsb2FkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN1Y2Nlc3MubmV4dChmaWxlT3BlcmF0aW9uTWVzc2FnZSk7XG4gICAgICAgIH0sIHRoaXMuZXJyb3IubmV4dC5iaW5kKHRoaXMuZXJyb3IpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlbGV0ZU5vZGUobm9kZTogTm9kZUVudHJ5LCB0YXJnZXQ/OiBhbnksIHBlcm1pc3Npb24/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBpZiAodGhpcy5jYW5FeGVjdXRlQWN0aW9uKG5vZGUpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jb250ZW50U2VydmljZS5oYXNBbGxvd2FibGVPcGVyYXRpb25zKG5vZGUuZW50cnksIHBlcm1pc3Npb24pKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaGFuZGxlck9ic2VydmFibGUgPSB0aGlzLmRvY3VtZW50TGlzdFNlcnZpY2UuZGVsZXRlTm9kZShub2RlLmVudHJ5LmlkKTtcbiAgICAgICAgICAgICAgICBoYW5kbGVyT2JzZXJ2YWJsZS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQgJiYgdHlwZW9mIHRhcmdldC5yZWxvYWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0aW9uLmluc3RhbnQoJ0NPUkUuREVMRVRFX05PREUuU0lOR1VMQVInLCB7IG5hbWU6IG5vZGUuZW50cnkubmFtZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3VjY2Vzcy5uZXh0KG1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGlvbi5pbnN0YW50KCdDT1JFLkRFTEVURV9OT0RFLkVSUk9SX1NJTkdVTEFSJywgeyBuYW1lOiBub2RlLmVudHJ5Lm5hbWUgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yLm5leHQobWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZXJPYnNlcnZhYmxlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25FdmVudC5uZXh0KG5ldyBQZXJtaXNzaW9uTW9kZWwoeyB0eXBlOiAnZm9sZGVyJywgYWN0aW9uOiAnZGVsZXRlJywgcGVybWlzc2lvbiB9KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IobmV3IEVycm9yKCdObyBwZXJtaXNzaW9uIHRvIGRlbGV0ZScpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvZigpO1xuICAgIH1cbn1cbiJdfQ==
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9sZGVyLWFjdGlvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvZG9jdW1lbnQtbGlzdC9zZXJ2aWNlcy9mb2xkZXItYWN0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQUs1RCxNQUFNLE9BQU8sb0JBQW9CO0lBTzdCLFlBQ1ksa0JBQXNDLEVBQ3RDLG1CQUF3QyxFQUN4QyxjQUE4QixFQUM5QixXQUErQjtRQUgvQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQVYzQyxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFtQixDQUFDO1FBQ2pELFVBQUssR0FBRyxJQUFJLE9BQU8sRUFBUyxDQUFDO1FBQzdCLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBRXhCLGFBQVEsR0FBMkMsRUFBRSxDQUFDO1FBUTFELElBQUksQ0FB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QUMsSUFBSSxlQUFlLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNqRyxPQUFPLFVBQVUsQ0FBQyxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7WUFDNUQsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQ2hCLENBQUM7OEdBbkhRLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGNBRmpCLE1BQU07OzJGQUVULG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBDb250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZXJ2aWNlcy9jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm9kZUVudHJ5IH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0aHJvd0Vycm9yLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29udGVudEFjdGlvbkhhbmRsZXIgfSBmcm9tICcuLi9tb2RlbHMvY29udGVudC1hY3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgUGVybWlzc2lvbk1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3Blcm1pc3Npb25zLm1vZGVsJztcbmltcG9ydCB7IERvY3VtZW50TGlzdFNlcnZpY2UgfSBmcm9tICcuL2RvY3VtZW50LWxpc3Quc2VydmljZSc7XG5pbXBvcnQgeyBOb2RlQWN0aW9uc1NlcnZpY2UgfSBmcm9tICcuL25vZGUtYWN0aW9ucy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGb2xkZXJBY3Rpb25zU2VydmljZSB7XG4gICAgcGVybWlzc2lvbkV2ZW50ID0gbmV3IFN1YmplY3Q8UGVybWlzc2lvbk1vZGVsPigpO1xuICAgIGVycm9yID0gbmV3IFN1YmplY3Q8RXJyb3I+KCk7XG4gICAgc3VjY2VzcyA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAgIHByaXZhdGUgaGFuZGxlcnM6IHsgW2lkOiBzdHJpbmddOiBDb250ZW50QWN0aW9uSGFuZGxlciB9ID0ge307XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBub2RlQWN0aW9uc1NlcnZpY2U6IE5vZGVBY3Rpb25zU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkb2N1bWVudExpc3RTZXJ2aWNlOiBEb2N1bWVudExpc3RTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbnRlbnRTZXJ2aWNlOiBDb250ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb25TZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuc2V0dXBBY3Rpb25IYW5kbGVycygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGhhbmRsZXIgZnVuY3Rpb24gZm9yIGFuIGFjdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBrZXkgSWRlbnRpZmllciBmb3IgdGhlIGFjdGlvblxuICAgICAqIEByZXR1cm5zIFRoZSBoYW5kbGVyIGZ1bmN0aW9uXG4gICAgICovXG4gICAgZ2V0SGFuZGxlcihrZXk6IHN0cmluZyk6IENvbnRlbnRBY3Rpb25IYW5kbGVyIHtcbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgY29uc3QgbEtleSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlcnNbbEtleV0gfHwgbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGEgbmV3IGhhbmRsZXIgZnVuY3Rpb24gZm9yIGFuIGFjdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBrZXkgSWRlbnRpZmllciBmb3IgdGhlIGFjdGlvblxuICAgICAqIEBwYXJhbSBoYW5kbGVyIFRoZSBuZXcgaGFuZGxlciBmdW5jdGlvblxuICAgICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGtleSB3YXMgYSB2YWxpZCBhY3Rpb24gaWRlbnRpZmllciwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAgICovXG4gICAgc2V0SGFuZGxlcihrZXk6IHN0cmluZywgaGFuZGxlcjogQ29udGVudEFjdGlvbkhhbmRsZXIpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgY29uc3QgbEtleSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVyc1tsS2V5XSA9IGhhbmRsZXI7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGFuIGFjdGlvbiBpcyBhdmFpbGFibGUgZm9yIGEgcGFydGljdWxhciBpdGVtLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5vZGVFbnRyeSBJdGVtIHRvIGNoZWNrXG4gICAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgYWN0aW9uIGlzIGF2YWlsYWJsZSwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAgICovXG4gICAgY2FuRXhlY3V0ZUFjdGlvbihub2RlRW50cnk6IE5vZGVFbnRyeSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudExpc3RTZXJ2aWNlICYmIG5vZGVFbnRyeSAmJiBub2RlRW50cnkuZW50cnkuaXNGb2xkZXIgPT09IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXR1cEFjdGlvbkhhbmRsZXJzKCkge1xuICAgICAgICB0aGlzLmhhbmRsZXJzWydjb3B5J10gPSB0aGlzLmNvcHlOb2RlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlcnNbJ21vdmUnXSA9IHRoaXMubW92ZU5vZGUuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5oYW5kbGVyc1snZGVsZXRlJ10gPSB0aGlzLmRlbGV0ZU5vZGUuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5oYW5kbGVyc1snZG93bmxvYWQnXSA9IHRoaXMuZG93bmxvYWROb2RlLmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkb3dubG9hZE5vZGUobm9kZUVudHJ5OiBOb2RlRW50cnkpIHtcbiAgICAgICAgdGhpcy5ub2RlQWN0aW9uc1NlcnZpY2UuZG93bmxvYWROb2RlKG5vZGVFbnRyeSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb3B5Tm9kZShub2RlRW50cnk6IE5vZGVFbnRyeSwgdGFyZ2V0PzogYW55LCBwZXJtaXNzaW9uPzogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGFjdGlvbk9ic2VydmFibGUgPSB0aGlzLm5vZGVBY3Rpb25zU2VydmljZS5jb3B5Rm9sZGVyKG5vZGVFbnRyeS5lbnRyeSwgcGVybWlzc2lvbik7XG4gICAgICAgIHRoaXMucHJlcGFyZUhhbmRsZXJzKGFjdGlvbk9ic2VydmFibGUsIHRhcmdldCk7XG4gICAgICAgIHJldHVybiBhY3Rpb25PYnNlcnZhYmxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgbW92ZU5vZGUobm9kZUVudHJ5OiBOb2RlRW50cnksIHRhcmdldD86IGFueSwgcGVybWlzc2lvbj86IHN0cmluZykge1xuICAgICAgICBjb25zdCBhY3Rpb25PYnNlcnZhYmxlID0gdGhpcy5ub2RlQWN0aW9uc1NlcnZpY2UubW92ZUZvbGRlcihub2RlRW50cnkuZW50cnksIHBlcm1pc3Npb24pO1xuICAgICAgICB0aGlzLnByZXBhcmVIYW5kbGVycyhhY3Rpb25PYnNlcnZhYmxlLCB0YXJnZXQpO1xuICAgICAgICByZXR1cm4gYWN0aW9uT2JzZXJ2YWJsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByZXBhcmVIYW5kbGVycyhhY3Rpb25PYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4sIHRhcmdldD86IGFueSk6IHZvaWQge1xuICAgICAgICBhY3Rpb25PYnNlcnZhYmxlLnN1YnNjcmliZSgoZmlsZU9wZXJhdGlvbk1lc3NhZ2UpID0+IHtcbiAgICAgICAgICAgIGlmICh0YXJnZXQgJiYgdHlwZW9mIHRhcmdldC5yZWxvYWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXQucmVsb2FkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN1Y2Nlc3MubmV4dChmaWxlT3BlcmF0aW9uTWVzc2FnZSk7XG4gICAgICAgIH0sIHRoaXMuZXJyb3IubmV4dC5iaW5kKHRoaXMuZXJyb3IpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlbGV0ZU5vZGUobm9kZTogTm9kZUVudHJ5LCB0YXJnZXQ/OiBhbnksIHBlcm1pc3Npb24/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBpZiAodGhpcy5jYW5FeGVjdXRlQWN0aW9uKG5vZGUpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jb250ZW50U2VydmljZS5oYXNBbGxvd2FibGVPcGVyYXRpb25zKG5vZGUuZW50cnksIHBlcm1pc3Npb24pKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaGFuZGxlck9ic2VydmFibGUgPSB0aGlzLmRvY3VtZW50TGlzdFNlcnZpY2UuZGVsZXRlTm9kZShub2RlLmVudHJ5LmlkKTtcbiAgICAgICAgICAgICAgICBoYW5kbGVyT2JzZXJ2YWJsZS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQgJiYgdHlwZW9mIHRhcmdldC5yZWxvYWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0aW9uLmluc3RhbnQoJ0NPUkUuREVMRVRFX05PREUuU0lOR1VMQVInLCB7IG5hbWU6IG5vZGUuZW50cnkubmFtZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3VjY2Vzcy5uZXh0KG1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGlvbi5pbnN0YW50KCdDT1JFLkRFTEVURV9OT0RFLkVSUk9SX1NJTkdVTEFSJywgeyBuYW1lOiBub2RlLmVudHJ5Lm5hbWUgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yLm5leHQobWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZXJPYnNlcnZhYmxlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25FdmVudC5uZXh0KG5ldyBQZXJtaXNzaW9uTW9kZWwoeyB0eXBlOiAnZm9sZGVyJywgYWN0aW9uOiAnZGVsZXRlJywgcGVybWlzc2lvbiB9KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IobmV3IEVycm9yKCdObyBwZXJtaXNzaW9uIHRvIGRlbGV0ZScpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvZigpO1xuICAgIH1cbn1cbiJdfQ==
@@ -60,13 +60,13 @@ export class LockService {
60
60
  }
61
61
  return false;
62
62
  }
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LockService, deps: [{ token: i1.AuthenticationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
64
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LockService, providedIn: 'root' }); }
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: LockService, deps: [{ token: i1.AuthenticationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
64
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: LockService, providedIn: 'root' }); }
65
65
  }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LockService, decorators: [{
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: LockService, decorators: [{
67
67
  type: Injectable,
68
68
  args: [{
69
69
  providedIn: 'root'
70
70
  }]
71
71
  }], ctorParameters: () => [{ type: i1.AuthenticationService }] });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9kb2N1bWVudC1saXN0L3NlcnZpY2VzL2xvY2suc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQUtuQyxNQUFNLE9BQU8sV0FBVztJQUNwQixZQUFvQixXQUFrQztRQUFsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBdUI7SUFBRyxDQUFDO0lBRTFELFFBQVEsQ0FBQyxJQUFVO1FBQ2YsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDL0IsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzVCLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekMsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN2QyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDcEYsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQzNCLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxJQUFVO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVPLGNBQWMsQ0FBQyxJQUFVO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssWUFBWSxDQUFDO0lBQ3RILENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxJQUFVO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxZQUFZLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLFlBQVksQ0FBQztJQUNsSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsSUFBVTtRQUNoQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxJQUFVO1FBQzVCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7K0dBM0NRLFdBQVc7bUhBQVgsV0FBVyxjQUZSLE1BQU07OzRGQUVULFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgaXNBZnRlciB9IGZyb20gJ2RhdGUtZm5zJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMb2NrU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlKSB7fVxuXG4gICAgaXNMb2NrZWQobm9kZTogTm9kZSk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgaXNMb2NrZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuaGFzTG9ja0NvbmZpZ3VyZWQobm9kZSkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzUmVhZE9ubHlMb2NrKG5vZGUpKSB7XG4gICAgICAgICAgICAgICAgaXNMb2NrZWQgPSAhdGhpcy5pc0xvY2tFeHBpcmVkKG5vZGUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzTG9ja093bmVyQWxsb3dlZChub2RlKSkge1xuICAgICAgICAgICAgICAgIGlzTG9ja2VkID0gdGhpcy5hdXRoU2VydmljZS5nZXRFY21Vc2VybmFtZSgpICE9PSBub2RlLnByb3BlcnRpZXNbJ2NtOmxvY2tPd25lciddLmlkO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTG9ja0V4cGlyZWQobm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNMb2NrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzTG9ja2VkO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzTG9ja0NvbmZpZ3VyZWQobm9kZTogTm9kZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gbm9kZS5pc0ZpbGUgJiYgbm9kZS5pc0xvY2tlZCAmJiBub2RlLnByb3BlcnRpZXNbJ2NtOmxvY2tUeXBlJ107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1JlYWRPbmx5TG9jayhub2RlOiBOb2RlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBub2RlLnByb3BlcnRpZXNbJ2NtOmxvY2tUeXBlJ10gPT09ICdSRUFEX09OTFlfTE9DSycgJiYgbm9kZS5wcm9wZXJ0aWVzWydjbTpsb2NrTGlmZXRpbWUnXSA9PT0gJ1BFUlNJU1RFTlQnO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNMb2NrT3duZXJBbGxvd2VkKG5vZGU6IE5vZGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIG5vZGUucHJvcGVydGllc1snY206bG9ja1R5cGUnXSA9PT0gJ1dSSVRFX0xPQ0snICYmIG5vZGUucHJvcGVydGllc1snY206bG9ja0xpZmV0aW1lJ10gPT09ICdQRVJTSVNURU5UJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExvY2tFeHBpcnlUaW1lKG5vZGU6IE5vZGUpOiBEYXRlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKG5vZGUucHJvcGVydGllc1snY206ZXhwaXJ5RGF0ZSddKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUobm9kZS5wcm9wZXJ0aWVzWydjbTpleHBpcnlEYXRlJ10pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0xvY2tFeHBpcmVkKG5vZGU6IE5vZGUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZXhwaXJ5TG9ja1RpbWUgPSB0aGlzLmdldExvY2tFeHBpcnlUaW1lKG5vZGUpO1xuICAgICAgICBpZiAoZXhwaXJ5TG9ja1RpbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBpc0FmdGVyKG5ldyBEYXRlKCksIGV4cGlyeUxvY2tUaW1lKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIl19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9kb2N1bWVudC1saXN0L3NlcnZpY2VzL2xvY2suc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQUtuQyxNQUFNLE9BQU8sV0FBVztJQUNwQixZQUFvQixXQUFrQztRQUFsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBdUI7SUFBRyxDQUFDO0lBRTFELFFBQVEsQ0FBQyxJQUFVO1FBQ2YsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDL0IsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzVCLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekMsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN2QyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDcEYsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQzNCLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxJQUFVO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVPLGNBQWMsQ0FBQyxJQUFVO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssWUFBWSxDQUFDO0lBQ3RILENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxJQUFVO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxZQUFZLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLFlBQVksQ0FBQztJQUNsSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsSUFBVTtRQUNoQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxJQUFVO1FBQzVCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7OEdBM0NRLFdBQVc7a0hBQVgsV0FBVyxjQUZSLE1BQU07OzJGQUVULFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgaXNBZnRlciB9IGZyb20gJ2RhdGUtZm5zJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMb2NrU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlKSB7fVxuXG4gICAgaXNMb2NrZWQobm9kZTogTm9kZSk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgaXNMb2NrZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuaGFzTG9ja0NvbmZpZ3VyZWQobm9kZSkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzUmVhZE9ubHlMb2NrKG5vZGUpKSB7XG4gICAgICAgICAgICAgICAgaXNMb2NrZWQgPSAhdGhpcy5pc0xvY2tFeHBpcmVkKG5vZGUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzTG9ja093bmVyQWxsb3dlZChub2RlKSkge1xuICAgICAgICAgICAgICAgIGlzTG9ja2VkID0gdGhpcy5hdXRoU2VydmljZS5nZXRFY21Vc2VybmFtZSgpICE9PSBub2RlLnByb3BlcnRpZXNbJ2NtOmxvY2tPd25lciddLmlkO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTG9ja0V4cGlyZWQobm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNMb2NrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzTG9ja2VkO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzTG9ja0NvbmZpZ3VyZWQobm9kZTogTm9kZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gbm9kZS5pc0ZpbGUgJiYgbm9kZS5pc0xvY2tlZCAmJiBub2RlLnByb3BlcnRpZXNbJ2NtOmxvY2tUeXBlJ107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1JlYWRPbmx5TG9jayhub2RlOiBOb2RlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBub2RlLnByb3BlcnRpZXNbJ2NtOmxvY2tUeXBlJ10gPT09ICdSRUFEX09OTFlfTE9DSycgJiYgbm9kZS5wcm9wZXJ0aWVzWydjbTpsb2NrTGlmZXRpbWUnXSA9PT0gJ1BFUlNJU1RFTlQnO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNMb2NrT3duZXJBbGxvd2VkKG5vZGU6IE5vZGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIG5vZGUucHJvcGVydGllc1snY206bG9ja1R5cGUnXSA9PT0gJ1dSSVRFX0xPQ0snICYmIG5vZGUucHJvcGVydGllc1snY206bG9ja0xpZmV0aW1lJ10gPT09ICdQRVJTSVNURU5UJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExvY2tFeHBpcnlUaW1lKG5vZGU6IE5vZGUpOiBEYXRlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKG5vZGUucHJvcGVydGllc1snY206ZXhwaXJ5RGF0ZSddKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUobm9kZS5wcm9wZXJ0aWVzWydjbTpleHBpcnlEYXRlJ10pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0xvY2tFeHBpcmVkKG5vZGU6IE5vZGUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZXhwaXJ5TG9ja1RpbWUgPSB0aGlzLmdldExvY2tFeHBpcnlUaW1lKG5vZGUpO1xuICAgICAgICBpZiAoZXhwaXJ5TG9ja1RpbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBpc0FmdGVyKG5ldyBEYXRlKCksIGV4cGlyeUxvY2tUaW1lKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIl19
@@ -108,10 +108,10 @@ export class NodeActionsService {
108
108
  });
109
109
  return observable;
110
110
  }
111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NodeActionsService, deps: [{ token: i1.ContentNodeDialogService }, { token: i2.MatDialog }, { token: i3.ContentService }, { token: i4.DocumentListService }, { token: i5.AlfrescoApiService }, { token: i2.MatDialog }, { token: i6.DownloadService }], target: i0.ɵɵFactoryTarget.Injectable }); }
112
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NodeActionsService, providedIn: 'root' }); }
111
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NodeActionsService, deps: [{ token: i1.ContentNodeDialogService }, { token: i2.MatDialog }, { token: i3.ContentService }, { token: i4.DocumentListService }, { token: i5.AlfrescoApiService }, { token: i2.MatDialog }, { token: i6.DownloadService }], target: i0.ɵɵFactoryTarget.Injectable }); }
112
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NodeActionsService, providedIn: 'root' }); }
113
113
  }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NodeActionsService, decorators: [{
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NodeActionsService, decorators: [{
115
115
  type: Injectable,
116
116
  args: [{
117
117
  providedIn: 'root'
@@ -119,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
119
119
  }], ctorParameters: () => [{ type: i1.ContentNodeDialogService }, { type: i2.MatDialog }, { type: i3.ContentService }, { type: i4.DocumentListService }, { type: i5.AlfrescoApiService }, { type: i2.MatDialog }, { type: i6.DownloadService }], propDecorators: { error: [{
120
120
  type: Output
121
121
  }] } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1hY3Rpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL2RvY3VtZW50LWxpc3Qvc2VydmljZXMvbm9kZS1hY3Rpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDbkcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7OztBQUt4RCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLGtCQUFrQjtJQUkzQixZQUNZLG9CQUE4QyxFQUMvQyxTQUFvQixFQUNwQixPQUF1QixFQUN0QixtQkFBeUMsRUFDekMsVUFBK0IsRUFDL0IsTUFBa0IsRUFDbEIsZUFBaUM7UUFOakMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUEwQjtRQUMvQyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3RCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBc0I7UUFDekMsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUFDL0IsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNsQixvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFUN0MsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFVN0IsQ0FBQztJQUVKLFlBQVksQ0FBQyxJQUFlO1FBQ3hCLElBQUkscUJBQXFCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFdBQVcsQ0FBQyxZQUFrQixFQUFFLFVBQW1CO1FBQy9DLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFVBQVUsQ0FBQyxZQUFrQixFQUFFLFVBQW1CO1FBQzlDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFdBQVcsQ0FBQyxZQUFrQixFQUFFLFVBQW1CO1FBQy9DLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFVBQVUsQ0FBQyxZQUFrQixFQUFFLFVBQW1CO1FBQzlDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ssZUFBZSxDQUNuQixNQUF5QyxFQUN6QyxJQUEwQixFQUMxQixZQUFrQixFQUNsQixVQUFtQjtRQUVuQixNQUFNLFVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBRXpDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FDcEYsQ0FBQyxVQUFrQixFQUFFLEVBQUU7WUFDbkIsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDO2lCQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztpQkFDN0QsU0FBUyxDQUNOLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxxQkFBcUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLE1BQU0sRUFBRSxDQUFDLEVBQ3JGLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUNwQyxDQUFDO1FBQ1YsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDTixVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hCLE9BQU8sVUFBVSxDQUFDO1FBQ3RCLENBQUMsQ0FDSixDQUFDO1FBQ0YsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQzsrR0EvRlEsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FIZixNQUFNOzs0RkFHVCxrQkFBa0I7a0JBSjlCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzJRQUlHLEtBQUs7c0JBREosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vZGUsIE5vZGVFbnRyeSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRG93bmxvYWRTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBDb250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZXJ2aWNlcy9jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgTm9kZURvd25sb2FkRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9ub2RlLWRvd25sb2FkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBbGZyZXNjb0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbGZyZXNjby1hcGkuc2VydmljZSc7XG5cbmltcG9ydCB7IERvY3VtZW50TGlzdFNlcnZpY2UgfSBmcm9tICcuL2RvY3VtZW50LWxpc3Quc2VydmljZSc7XG5pbXBvcnQgeyBDb250ZW50Tm9kZURpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb250ZW50LW5vZGUtc2VsZWN0b3IvY29udGVudC1ub2RlLWRpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVBY3Rpb24gfSBmcm9tICcuLi9tb2RlbHMvbm9kZS1hY3Rpb24uZW51bSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBOb2RlQWN0aW9uc1NlcnZpY2Uge1xuICAgIEBPdXRwdXQoKVxuICAgIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjb250ZW50RGlhbG9nU2VydmljZTogQ29udGVudE5vZGVEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2csXG4gICAgICAgIHB1YmxpYyBjb250ZW50OiBDb250ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkb2N1bWVudExpc3RTZXJ2aWNlPzogRG9jdW1lbnRMaXN0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBhcGlTZXJ2aWNlPzogQWxmcmVzY29BcGlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZz86IE1hdERpYWxvZyxcbiAgICAgICAgcHJpdmF0ZSBkb3dubG9hZFNlcnZpY2U/OiBEb3dubG9hZFNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBkb3dubG9hZE5vZGUobm9kZTogTm9kZUVudHJ5KSB7XG4gICAgICAgIG5ldyBOb2RlRG93bmxvYWREaXJlY3RpdmUodGhpcy5hcGlTZXJ2aWNlLCB0aGlzLmRvd25sb2FkU2VydmljZSwgdGhpcy5kaWFsb2cpLmRvd25sb2FkTm9kZShub2RlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3B5IGNvbnRlbnQgbm9kZVxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbnRlbnRFbnRyeSBub2RlIHRvIGNvcHlcbiAgICAgKiBAcGFyYW0gcGVybWlzc2lvbiBwZXJtaXNzaW9uIHdoaWNoIGlzIG5lZWRlZCB0byBhcHBseSB0aGUgYWN0aW9uXG4gICAgICogQHJldHVybnMgb3BlcmF0aW9uIHJlc3VsdFxuICAgICAqL1xuICAgIGNvcHlDb250ZW50KGNvbnRlbnRFbnRyeTogTm9kZSwgcGVybWlzc2lvbj86IHN0cmluZyk6IFN1YmplY3Q8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRvRmlsZU9wZXJhdGlvbihOb2RlQWN0aW9uLkNPUFksICdjb250ZW50JywgY29udGVudEVudHJ5LCBwZXJtaXNzaW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3B5IGZvbGRlciBub2RlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udGVudEVudHJ5IG5vZGUgdG8gY29weVxuICAgICAqIEBwYXJhbSBwZXJtaXNzaW9uIHBlcm1pc3Npb24gd2hpY2ggaXMgbmVlZGVkIHRvIGFwcGx5IHRoZSBhY3Rpb25cbiAgICAgKiBAcmV0dXJucyBvcGVyYXRpb24gcmVzdWx0XG4gICAgICovXG4gICAgY29weUZvbGRlcihjb250ZW50RW50cnk6IE5vZGUsIHBlcm1pc3Npb24/OiBzdHJpbmcpOiBTdWJqZWN0PHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kb0ZpbGVPcGVyYXRpb24oTm9kZUFjdGlvbi5DT1BZLCAnZm9sZGVyJywgY29udGVudEVudHJ5LCBwZXJtaXNzaW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNb3ZlIGNvbnRlbnQgbm9kZVxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbnRlbnRFbnRyeSBub2RlIHRvIG1vdmVcbiAgICAgKiBAcGFyYW0gcGVybWlzc2lvbiBwZXJtaXNzaW9uIHdoaWNoIGlzIG5lZWRlZCB0byBhcHBseSB0aGUgYWN0aW9uXG4gICAgICogQHJldHVybnMgb3BlcmF0aW9uIHJlc3VsdFxuICAgICAqL1xuICAgIG1vdmVDb250ZW50KGNvbnRlbnRFbnRyeTogTm9kZSwgcGVybWlzc2lvbj86IHN0cmluZyk6IFN1YmplY3Q8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRvRmlsZU9wZXJhdGlvbihOb2RlQWN0aW9uLk1PVkUsICdjb250ZW50JywgY29udGVudEVudHJ5LCBwZXJtaXNzaW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNb3ZlIGZvbGRlciBub2RlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udGVudEVudHJ5IG5vZGUgdG8gbW92ZVxuICAgICAqIEBwYXJhbSBwZXJtaXNzaW9uIHBlcm1pc3Npb24gd2hpY2ggaXMgbmVlZGVkIHRvIGFwcGx5IHRoZSBhY3Rpb25cbiAgICAgKiBAcmV0dXJucyBvcGVyYXRpb24gcmVzdWx0XG4gICAgICovXG4gICAgbW92ZUZvbGRlcihjb250ZW50RW50cnk6IE5vZGUsIHBlcm1pc3Npb24/OiBzdHJpbmcpOiBTdWJqZWN0PHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kb0ZpbGVPcGVyYXRpb24oTm9kZUFjdGlvbi5NT1ZFLCAnZm9sZGVyJywgY29udGVudEVudHJ5LCBwZXJtaXNzaW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZW5lcmFsIG1ldGhvZCBmb3IgcGVyZm9ybWluZyB0aGUgZ2l2ZW4gb3BlcmF0aW9uIChjb3B5fG1vdmUpXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYWN0aW9uIHRoZSBhY3Rpb24gdG8gcGVyZm9ybSAoY29weXxtb3ZlKVxuICAgICAqIEBwYXJhbSB0eXBlIHR5cGUgb2YgdGhlIGNvbnRlbnQgKGNvbnRlbnR8Zm9sZGVyKVxuICAgICAqIEBwYXJhbSBjb250ZW50RW50cnkgdGhlIGNvbnRlbnRFbnRyeSB3aGljaCBoYXMgdG8gaGF2ZSB0aGUgYWN0aW9uIHBlcmZvcm1lZCBvblxuICAgICAqIEBwYXJhbSBwZXJtaXNzaW9uIHBlcm1pc3Npb24gd2hpY2ggaXMgbmVlZGVkIHRvIGFwcGx5IHRoZSBhY3Rpb25cbiAgICAgKiBAcmV0dXJucyBvcGVyYXRpb24gcmVzdWx0XG4gICAgICovXG4gICAgcHJpdmF0ZSBkb0ZpbGVPcGVyYXRpb24oXG4gICAgICAgIGFjdGlvbjogTm9kZUFjdGlvbi5DT1BZIHwgTm9kZUFjdGlvbi5NT1ZFLFxuICAgICAgICB0eXBlOiAnY29udGVudCcgfCAnZm9sZGVyJyxcbiAgICAgICAgY29udGVudEVudHJ5OiBOb2RlLFxuICAgICAgICBwZXJtaXNzaW9uPzogc3RyaW5nXG4gICAgKTogU3ViamVjdDxzdHJpbmc+IHtcbiAgICAgICAgY29uc3Qgb2JzZXJ2YWJsZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAgICAgICB0aGlzLmNvbnRlbnREaWFsb2dTZXJ2aWNlLm9wZW5Db3B5TW92ZURpYWxvZyhhY3Rpb24sIGNvbnRlbnRFbnRyeSwgcGVybWlzc2lvbikuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKHNlbGVjdGlvbnM6IE5vZGVbXSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHNlbGVjdGlvbnNbMF07XG4gICAgICAgICAgICAgICAgdGhpcy5kb2N1bWVudExpc3RTZXJ2aWNlW2Ake2FjdGlvbi50b0xvd2VyQ2FzZSgpfU5vZGVgXVxuICAgICAgICAgICAgICAgICAgICAuY2FsbCh0aGlzLmRvY3VtZW50TGlzdFNlcnZpY2UsIGNvbnRlbnRFbnRyeS5pZCwgc2VsZWN0aW9uLmlkKVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2YWJsZS5uZXh0LmJpbmQob2JzZXJ2YWJsZSwgYE9QRVJBVElPTi5TVUNDRVNTLiR7dHlwZS50b1VwcGVyQ2FzZSgpfS4ke2FjdGlvbn1gKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmFibGUuZXJyb3IuYmluZChvYnNlcnZhYmxlKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIG9ic2VydmFibGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgIHJldHVybiBvYnNlcnZhYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZTtcbiAgICB9XG59XG4iXX0=
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1hY3Rpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL2RvY3VtZW50LWxpc3Qvc2VydmljZXMvbm9kZS1hY3Rpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDbkcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7OztBQUt4RCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLGtCQUFrQjtJQUkzQixZQUNZLG9CQUE4QyxFQUMvQyxTQUFvQixFQUNwQixPQUF1QixFQUN0QixtQkFBeUMsRUFDekMsVUFBK0IsRUFDL0IsTUFBa0IsRUFDbEIsZUFBaUM7UUFOakMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUEwQjtRQUMvQyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3RCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBc0I7UUFDekMsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUFDL0IsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNsQixvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFUN0MsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFVN0IsQ0FBQztJQUVKLFlBQVksQ0FBQyxJQUFlO1FBQ3hCLElBQUkscUJBQXFCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFdBQVcsQ0FBQyxZQUFrQixFQUFFLFVBQW1CO1FBQy9DLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFVBQVUsQ0FBQyxZQUFrQixFQUFFLFVBQW1CO1FBQzlDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFdBQVcsQ0FBQyxZQUFrQixFQUFFLFVBQW1CO1FBQy9DLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFVBQVUsQ0FBQyxZQUFrQixFQUFFLFVBQW1CO1FBQzlDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ssZUFBZSxDQUNuQixNQUF5QyxFQUN6QyxJQUEwQixFQUMxQixZQUFrQixFQUNsQixVQUFtQjtRQUVuQixNQUFNLFVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBRXpDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FDcEYsQ0FBQyxVQUFrQixFQUFFLEVBQUU7WUFDbkIsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDO2lCQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztpQkFDN0QsU0FBUyxDQUNOLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxxQkFBcUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLE1BQU0sRUFBRSxDQUFDLEVBQ3JGLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUNwQyxDQUFDO1FBQ1YsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDTixVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hCLE9BQU8sVUFBVSxDQUFDO1FBQ3RCLENBQUMsQ0FDSixDQUFDO1FBQ0YsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQzs4R0EvRlEsa0JBQWtCO2tIQUFsQixrQkFBa0IsY0FIZixNQUFNOzsyRkFHVCxrQkFBa0I7a0JBSjlCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzJRQUlHLEtBQUs7c0JBREosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vZGUsIE5vZGVFbnRyeSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRG93bmxvYWRTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBDb250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZXJ2aWNlcy9jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgTm9kZURvd25sb2FkRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9ub2RlLWRvd25sb2FkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBbGZyZXNjb0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbGZyZXNjby1hcGkuc2VydmljZSc7XG5cbmltcG9ydCB7IERvY3VtZW50TGlzdFNlcnZpY2UgfSBmcm9tICcuL2RvY3VtZW50LWxpc3Quc2VydmljZSc7XG5pbXBvcnQgeyBDb250ZW50Tm9kZURpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb250ZW50LW5vZGUtc2VsZWN0b3IvY29udGVudC1ub2RlLWRpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVBY3Rpb24gfSBmcm9tICcuLi9tb2RlbHMvbm9kZS1hY3Rpb24uZW51bSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBOb2RlQWN0aW9uc1NlcnZpY2Uge1xuICAgIEBPdXRwdXQoKVxuICAgIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjb250ZW50RGlhbG9nU2VydmljZTogQ29udGVudE5vZGVEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2csXG4gICAgICAgIHB1YmxpYyBjb250ZW50OiBDb250ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkb2N1bWVudExpc3RTZXJ2aWNlPzogRG9jdW1lbnRMaXN0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBhcGlTZXJ2aWNlPzogQWxmcmVzY29BcGlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZz86IE1hdERpYWxvZyxcbiAgICAgICAgcHJpdmF0ZSBkb3dubG9hZFNlcnZpY2U/OiBEb3dubG9hZFNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBkb3dubG9hZE5vZGUobm9kZTogTm9kZUVudHJ5KSB7XG4gICAgICAgIG5ldyBOb2RlRG93bmxvYWREaXJlY3RpdmUodGhpcy5hcGlTZXJ2aWNlLCB0aGlzLmRvd25sb2FkU2VydmljZSwgdGhpcy5kaWFsb2cpLmRvd25sb2FkTm9kZShub2RlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3B5IGNvbnRlbnQgbm9kZVxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbnRlbnRFbnRyeSBub2RlIHRvIGNvcHlcbiAgICAgKiBAcGFyYW0gcGVybWlzc2lvbiBwZXJtaXNzaW9uIHdoaWNoIGlzIG5lZWRlZCB0byBhcHBseSB0aGUgYWN0aW9uXG4gICAgICogQHJldHVybnMgb3BlcmF0aW9uIHJlc3VsdFxuICAgICAqL1xuICAgIGNvcHlDb250ZW50KGNvbnRlbnRFbnRyeTogTm9kZSwgcGVybWlzc2lvbj86IHN0cmluZyk6IFN1YmplY3Q8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRvRmlsZU9wZXJhdGlvbihOb2RlQWN0aW9uLkNPUFksICdjb250ZW50JywgY29udGVudEVudHJ5LCBwZXJtaXNzaW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3B5IGZvbGRlciBub2RlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udGVudEVudHJ5IG5vZGUgdG8gY29weVxuICAgICAqIEBwYXJhbSBwZXJtaXNzaW9uIHBlcm1pc3Npb24gd2hpY2ggaXMgbmVlZGVkIHRvIGFwcGx5IHRoZSBhY3Rpb25cbiAgICAgKiBAcmV0dXJucyBvcGVyYXRpb24gcmVzdWx0XG4gICAgICovXG4gICAgY29weUZvbGRlcihjb250ZW50RW50cnk6IE5vZGUsIHBlcm1pc3Npb24/OiBzdHJpbmcpOiBTdWJqZWN0PHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kb0ZpbGVPcGVyYXRpb24oTm9kZUFjdGlvbi5DT1BZLCAnZm9sZGVyJywgY29udGVudEVudHJ5LCBwZXJtaXNzaW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNb3ZlIGNvbnRlbnQgbm9kZVxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbnRlbnRFbnRyeSBub2RlIHRvIG1vdmVcbiAgICAgKiBAcGFyYW0gcGVybWlzc2lvbiBwZXJtaXNzaW9uIHdoaWNoIGlzIG5lZWRlZCB0byBhcHBseSB0aGUgYWN0aW9uXG4gICAgICogQHJldHVybnMgb3BlcmF0aW9uIHJlc3VsdFxuICAgICAqL1xuICAgIG1vdmVDb250ZW50KGNvbnRlbnRFbnRyeTogTm9kZSwgcGVybWlzc2lvbj86IHN0cmluZyk6IFN1YmplY3Q8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRvRmlsZU9wZXJhdGlvbihOb2RlQWN0aW9uLk1PVkUsICdjb250ZW50JywgY29udGVudEVudHJ5LCBwZXJtaXNzaW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNb3ZlIGZvbGRlciBub2RlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udGVudEVudHJ5IG5vZGUgdG8gbW92ZVxuICAgICAqIEBwYXJhbSBwZXJtaXNzaW9uIHBlcm1pc3Npb24gd2hpY2ggaXMgbmVlZGVkIHRvIGFwcGx5IHRoZSBhY3Rpb25cbiAgICAgKiBAcmV0dXJucyBvcGVyYXRpb24gcmVzdWx0XG4gICAgICovXG4gICAgbW92ZUZvbGRlcihjb250ZW50RW50cnk6IE5vZGUsIHBlcm1pc3Npb24/OiBzdHJpbmcpOiBTdWJqZWN0PHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kb0ZpbGVPcGVyYXRpb24oTm9kZUFjdGlvbi5NT1ZFLCAnZm9sZGVyJywgY29udGVudEVudHJ5LCBwZXJtaXNzaW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZW5lcmFsIG1ldGhvZCBmb3IgcGVyZm9ybWluZyB0aGUgZ2l2ZW4gb3BlcmF0aW9uIChjb3B5fG1vdmUpXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYWN0aW9uIHRoZSBhY3Rpb24gdG8gcGVyZm9ybSAoY29weXxtb3ZlKVxuICAgICAqIEBwYXJhbSB0eXBlIHR5cGUgb2YgdGhlIGNvbnRlbnQgKGNvbnRlbnR8Zm9sZGVyKVxuICAgICAqIEBwYXJhbSBjb250ZW50RW50cnkgdGhlIGNvbnRlbnRFbnRyeSB3aGljaCBoYXMgdG8gaGF2ZSB0aGUgYWN0aW9uIHBlcmZvcm1lZCBvblxuICAgICAqIEBwYXJhbSBwZXJtaXNzaW9uIHBlcm1pc3Npb24gd2hpY2ggaXMgbmVlZGVkIHRvIGFwcGx5IHRoZSBhY3Rpb25cbiAgICAgKiBAcmV0dXJucyBvcGVyYXRpb24gcmVzdWx0XG4gICAgICovXG4gICAgcHJpdmF0ZSBkb0ZpbGVPcGVyYXRpb24oXG4gICAgICAgIGFjdGlvbjogTm9kZUFjdGlvbi5DT1BZIHwgTm9kZUFjdGlvbi5NT1ZFLFxuICAgICAgICB0eXBlOiAnY29udGVudCcgfCAnZm9sZGVyJyxcbiAgICAgICAgY29udGVudEVudHJ5OiBOb2RlLFxuICAgICAgICBwZXJtaXNzaW9uPzogc3RyaW5nXG4gICAgKTogU3ViamVjdDxzdHJpbmc+IHtcbiAgICAgICAgY29uc3Qgb2JzZXJ2YWJsZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAgICAgICB0aGlzLmNvbnRlbnREaWFsb2dTZXJ2aWNlLm9wZW5Db3B5TW92ZURpYWxvZyhhY3Rpb24sIGNvbnRlbnRFbnRyeSwgcGVybWlzc2lvbikuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKHNlbGVjdGlvbnM6IE5vZGVbXSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHNlbGVjdGlvbnNbMF07XG4gICAgICAgICAgICAgICAgdGhpcy5kb2N1bWVudExpc3RTZXJ2aWNlW2Ake2FjdGlvbi50b0xvd2VyQ2FzZSgpfU5vZGVgXVxuICAgICAgICAgICAgICAgICAgICAuY2FsbCh0aGlzLmRvY3VtZW50TGlzdFNlcnZpY2UsIGNvbnRlbnRFbnRyeS5pZCwgc2VsZWN0aW9uLmlkKVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2YWJsZS5uZXh0LmJpbmQob2JzZXJ2YWJsZSwgYE9QRVJBVElPTi5TVUNDRVNTLiR7dHlwZS50b1VwcGVyQ2FzZSgpfS4ke2FjdGlvbn1gKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmFibGUuZXJyb3IuYmluZChvYnNlcnZhYmxlKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIG9ic2VydmFibGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgIHJldHVybiBvYnNlcnZhYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZTtcbiAgICB9XG59XG4iXX0=