valtech-components 4.0.962 → 4.0.964

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 (173) hide show
  1. package/esm2022/lib/components/atoms/avatar/avatar.component.mjs +3 -3
  2. package/esm2022/lib/components/atoms/box/box.component.mjs +3 -3
  3. package/esm2022/lib/components/atoms/button/button.component.mjs +3 -3
  4. package/esm2022/lib/components/atoms/countdown/countdown.component.mjs +3 -3
  5. package/esm2022/lib/components/atoms/display/display.component.mjs +3 -3
  6. package/esm2022/lib/components/atoms/divider/divider.component.mjs +3 -3
  7. package/esm2022/lib/components/atoms/href/href.component.mjs +3 -3
  8. package/esm2022/lib/components/atoms/icon/icon.component.mjs +3 -3
  9. package/esm2022/lib/components/atoms/image/image.component.mjs +3 -3
  10. package/esm2022/lib/components/atoms/notice/notice.component.mjs +3 -3
  11. package/esm2022/lib/components/atoms/price-tag/price-tag.component.mjs +3 -3
  12. package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +3 -3
  13. package/esm2022/lib/components/atoms/qr-code/qr-code.component.mjs +3 -3
  14. package/esm2022/lib/components/atoms/rights-footer/rights-footer.component.mjs +2 -2
  15. package/esm2022/lib/components/atoms/text/text.component.mjs +3 -3
  16. package/esm2022/lib/components/atoms/title/title.component.mjs +3 -3
  17. package/esm2022/lib/components/atoms/user-avatar/user-avatar.component.mjs +3 -3
  18. package/esm2022/lib/components/molecules/action-card/action-card.component.mjs +3 -3
  19. package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +3 -3
  20. package/esm2022/lib/components/molecules/animal-card/animal-card.component.mjs +3 -3
  21. package/esm2022/lib/components/molecules/article-card/article-card.component.mjs +3 -3
  22. package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +3 -3
  23. package/esm2022/lib/components/molecules/button-group/button-group.component.mjs +3 -3
  24. package/esm2022/lib/components/molecules/card/card.component.mjs +3 -3
  25. package/esm2022/lib/components/molecules/chat-composer/chat-composer.component.mjs +3 -3
  26. package/esm2022/lib/components/molecules/chat-input/chat-input.component.mjs +3 -3
  27. package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +3 -3
  28. package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +3 -3
  29. package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +3 -3
  30. package/esm2022/lib/components/molecules/comment/comment.component.mjs +4 -4
  31. package/esm2022/lib/components/molecules/content-loader/content-loader.component.mjs +3 -3
  32. package/esm2022/lib/components/molecules/content-reaction/content-reaction.component.mjs +3 -3
  33. package/esm2022/lib/components/molecules/conversation-list-item/conversation-list-item.component.mjs +3 -3
  34. package/esm2022/lib/components/molecules/currency-input/currency-input.component.mjs +3 -3
  35. package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +5 -5
  36. package/esm2022/lib/components/molecules/date-picker/date-picker.component.mjs +7 -7
  37. package/esm2022/lib/components/molecules/date-range-input/date-range-input.component.mjs +3 -3
  38. package/esm2022/lib/components/molecules/docs-breadcrumb/docs-breadcrumb.component.mjs +3 -3
  39. package/esm2022/lib/components/molecules/docs-code-example/docs-code-example.component.mjs +3 -3
  40. package/esm2022/lib/components/molecules/docs-nav-links/docs-nav-links.component.mjs +3 -3
  41. package/esm2022/lib/components/molecules/docs-search/docs-search.component.mjs +3 -3
  42. package/esm2022/lib/components/molecules/docs-section/docs-section.component.mjs +3 -3
  43. package/esm2022/lib/components/molecules/empty-state/empty-state.component.mjs +5 -5
  44. package/esm2022/lib/components/molecules/entity-card/entity-card.component.mjs +3 -3
  45. package/esm2022/lib/components/molecules/features-list/features-list.component.mjs +3 -3
  46. package/esm2022/lib/components/molecules/feedback-form/feedback-form.component.mjs +3 -3
  47. package/esm2022/lib/components/molecules/field-options-editor/field-options-editor.component.mjs +5 -5
  48. package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +3 -3
  49. package/esm2022/lib/components/molecules/footer-links/footer-links.component.mjs +3 -3
  50. package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +4 -4
  51. package/esm2022/lib/components/molecules/hint/hint.component.mjs +3 -3
  52. package/esm2022/lib/components/molecules/image-crop/image-crop.component.mjs +3 -3
  53. package/esm2022/lib/components/molecules/layered-card/layered-card.component.mjs +3 -3
  54. package/esm2022/lib/components/molecules/link/link.component.mjs +3 -3
  55. package/esm2022/lib/components/molecules/linked-providers/linked-providers.component.mjs +5 -5
  56. package/esm2022/lib/components/molecules/links-cake/links-cake.component.mjs +3 -3
  57. package/esm2022/lib/components/molecules/media-object/media-object.component.mjs +3 -3
  58. package/esm2022/lib/components/molecules/message-bubble/message-bubble.component.mjs +3 -3
  59. package/esm2022/lib/components/molecules/metadata-list/metadata-list.component.mjs +3 -3
  60. package/esm2022/lib/components/molecules/metric-card/metric-card.component.mjs +3 -3
  61. package/esm2022/lib/components/molecules/multi-select-search/multi-select-search.component.mjs +3 -3
  62. package/esm2022/lib/components/molecules/notes-box/notes-box.component.mjs +3 -3
  63. package/esm2022/lib/components/molecules/number-stepper/number-stepper.component.mjs +3 -3
  64. package/esm2022/lib/components/molecules/operation-reference/operation-reference.component.mjs +3 -3
  65. package/esm2022/lib/components/molecules/option-cards/option-cards.component.mjs +5 -5
  66. package/esm2022/lib/components/molecules/page-links/page-links.component.mjs +3 -3
  67. package/esm2022/lib/components/molecules/pagination/pagination.component.mjs +3 -3
  68. package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +3 -3
  69. package/esm2022/lib/components/molecules/permission-selector/permission-selector.component.mjs +5 -5
  70. package/esm2022/lib/components/molecules/phone-input/phone-input.component.mjs +3 -3
  71. package/esm2022/lib/components/molecules/pill/pill.component.mjs +3 -3
  72. package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +3 -3
  73. package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +3 -3
  74. package/esm2022/lib/components/molecules/profile-card/profile-card.component.mjs +3 -3
  75. package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +5 -5
  76. package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +3 -3
  77. package/esm2022/lib/components/molecules/quote-box/quote-box.component.mjs +3 -3
  78. package/esm2022/lib/components/molecules/rating/rating.component.mjs +3 -3
  79. package/esm2022/lib/components/molecules/reaction-bar/reaction-bar.component.mjs +3 -3
  80. package/esm2022/lib/components/molecules/request-form/request-form.component.mjs +3 -3
  81. package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +3 -3
  82. package/esm2022/lib/components/molecules/section-header/section-header.component.mjs +3 -3
  83. package/esm2022/lib/components/molecules/segment-control/segment-control.component.mjs +3 -3
  84. package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +3 -3
  85. package/esm2022/lib/components/molecules/select-search/select-search-picker-modal.component.mjs +3 -3
  86. package/esm2022/lib/components/molecules/stats-card/stats-card.component.mjs +3 -3
  87. package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +4 -4
  88. package/esm2022/lib/components/molecules/swipe-carousel/swipe-carousel.component.mjs +3 -3
  89. package/esm2022/lib/components/molecules/tabs/tabs.component.mjs +3 -3
  90. package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +3 -3
  91. package/esm2022/lib/components/molecules/textarea-input/textarea-input.component.mjs +3 -3
  92. package/esm2022/lib/components/molecules/ticket-card/ticket-card.component.mjs +3 -3
  93. package/esm2022/lib/components/molecules/timeline/timeline.component.mjs +3 -3
  94. package/esm2022/lib/components/molecules/title-block/title-block.component.mjs +3 -3
  95. package/esm2022/lib/components/molecules/typing-indicator/typing-indicator.component.mjs +3 -3
  96. package/esm2022/lib/components/molecules/update-banner/update-banner.component.mjs +3 -3
  97. package/esm2022/lib/components/molecules/usage-meters/usage-meters.component.mjs +3 -3
  98. package/esm2022/lib/components/molecules/username-input/username-input.component.mjs +3 -3
  99. package/esm2022/lib/components/organisms/about-view/about-view.component.mjs +3 -3
  100. package/esm2022/lib/components/organisms/access-request-view/access-request-view.component.mjs +5 -5
  101. package/esm2022/lib/components/organisms/api-keys-modal/api-keys-modal.component.mjs +7 -7
  102. package/esm2022/lib/components/organisms/api-keys-view/api-keys-view.component.mjs +3 -3
  103. package/esm2022/lib/components/organisms/article/article.component.mjs +3 -3
  104. package/esm2022/lib/components/organisms/attachment-uploader/attachment-uploader.component.mjs +3 -3
  105. package/esm2022/lib/components/organisms/auth-cta/auth-cta.component.mjs +3 -3
  106. package/esm2022/lib/components/organisms/banner/banner.component.mjs +3 -3
  107. package/esm2022/lib/components/organisms/bottom-nav/bottom-nav.component.mjs +3 -3
  108. package/esm2022/lib/components/organisms/chat-window/chat-window.component.mjs +3 -3
  109. package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +5 -5
  110. package/esm2022/lib/components/organisms/confirmation-dialog-v2/confirmation-dialog-v2.component.mjs +3 -3
  111. package/esm2022/lib/components/organisms/cookie-banner/cookie-banner.component.mjs +3 -3
  112. package/esm2022/lib/components/organisms/cookie-settings/cookie-settings.component.mjs +5 -5
  113. package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +3 -3
  114. package/esm2022/lib/components/organisms/delete-account-modal/delete-account-modal.component.mjs +3 -3
  115. package/esm2022/lib/components/organisms/docs-sidebar/docs-sidebar.component.mjs +3 -3
  116. package/esm2022/lib/components/organisms/docs-toc/docs-toc.component.mjs +3 -3
  117. package/esm2022/lib/components/organisms/faq/faq.component.mjs +3 -3
  118. package/esm2022/lib/components/organisms/field-list/field-list.component.mjs +5 -5
  119. package/esm2022/lib/components/organisms/folder-tabs/folder-tabs.component.mjs +3 -3
  120. package/esm2022/lib/components/organisms/form/form.component.mjs +5 -5
  121. package/esm2022/lib/components/organisms/fun-header/fun-header.component.mjs +3 -3
  122. package/esm2022/lib/components/organisms/group-members/group-members.component.mjs +3 -3
  123. package/esm2022/lib/components/organisms/header/header.component.mjs +3 -3
  124. package/esm2022/lib/components/organisms/infinite-list/infinite-list.component.mjs +7 -7
  125. package/esm2022/lib/components/organisms/invite-member-modal/invite-member-modal.component.mjs +3 -3
  126. package/esm2022/lib/components/organisms/item-list/item-list.component.mjs +11 -11
  127. package/esm2022/lib/components/organisms/login/login.component.mjs +3 -3
  128. package/esm2022/lib/components/organisms/login-attempt-modal/login-attempt-modal.component.mjs +6 -6
  129. package/esm2022/lib/components/organisms/member-detail-modal/member-detail-modal.component.mjs +5 -5
  130. package/esm2022/lib/components/organisms/member-import-modal/member-import-modal.component.mjs +5 -5
  131. package/esm2022/lib/components/organisms/menu/menu.component.mjs +3 -3
  132. package/esm2022/lib/components/organisms/mfa-modal/mfa-modal.component.mjs +3 -3
  133. package/esm2022/lib/components/organisms/mini-games/bubble-blitz-game.component.mjs +3 -3
  134. package/esm2022/lib/components/organisms/mini-games/memory-game.component.mjs +3 -3
  135. package/esm2022/lib/components/organisms/mini-games/simon-game.component.mjs +3 -3
  136. package/esm2022/lib/components/organisms/no-content/no-content.component.mjs +3 -3
  137. package/esm2022/lib/components/organisms/notification-preferences-view/notification-preferences-view.component.mjs +7 -7
  138. package/esm2022/lib/components/organisms/notifications-view/notifications-view.component.mjs +5 -5
  139. package/esm2022/lib/components/organisms/option-sheet/option-sheet.component.mjs +3 -3
  140. package/esm2022/lib/components/organisms/org-info-sheet/org-info-sheet.component.mjs +3 -3
  141. package/esm2022/lib/components/organisms/organization-view/organization-view.component.mjs +5 -5
  142. package/esm2022/lib/components/organisms/permissions-view/permissions-view.component.mjs +11 -11
  143. package/esm2022/lib/components/organisms/qr-scanner/qr-scanner.component.mjs +3 -3
  144. package/esm2022/lib/components/organisms/request-review-panel/request-review-panel.component.mjs +7 -7
  145. package/esm2022/lib/components/organisms/role-manager/role-manager.component.mjs +7 -7
  146. package/esm2022/lib/components/organisms/rotating-text/rotating-text.component.mjs +3 -3
  147. package/esm2022/lib/components/organisms/security-view/security-view.component.mjs +5 -5
  148. package/esm2022/lib/components/organisms/session-list-modal/session-list-modal.component.mjs +3 -3
  149. package/esm2022/lib/components/organisms/share-profile-modal/share-profile-modal.component.mjs +3 -3
  150. package/esm2022/lib/components/organisms/thread-panel/thread-panel.component.mjs +3 -3
  151. package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +3 -3
  152. package/esm2022/lib/components/organisms/transfer-ownership-modal/transfer-ownership-modal.component.mjs +5 -5
  153. package/esm2022/lib/components/organisms/verify-view/verify-view.component.mjs +3 -3
  154. package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +3 -3
  155. package/esm2022/lib/components/templates/docs-layout/docs-layout.component.mjs +3 -3
  156. package/esm2022/lib/components/templates/docs-page/docs-page.component.mjs +3 -3
  157. package/esm2022/lib/components/templates/maintenance-page/maintenance-page.component.mjs +3 -3
  158. package/esm2022/lib/components/templates/page-content/page-content.component.mjs +3 -3
  159. package/esm2022/lib/components/templates/simple/simple.component.mjs +3 -3
  160. package/esm2022/lib/services/confirmation-dialog/types.mjs +2 -2
  161. package/esm2022/lib/services/content/transformer.mjs +3 -3
  162. package/esm2022/lib/services/markdown-article/beautify-legal-article.mjs +2 -2
  163. package/esm2022/lib/services/markdown-article/markdown-article-parser.mjs +2 -2
  164. package/esm2022/lib/services/modal/types.mjs +2 -2
  165. package/esm2022/lib/version.mjs +2 -2
  166. package/fesm2022/valtech-components.mjs +406 -406
  167. package/fesm2022/valtech-components.mjs.map +1 -1
  168. package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +1 -1
  169. package/lib/version.d.ts +1 -1
  170. package/package.json +1 -1
  171. package/src/lib/components/styles/_docs-page.scss +1 -1
  172. package/src/lib/components/styles/overrides.scss +4 -4
  173. package/src/lib/components/styles/variables.scss +7 -7
@@ -164,12 +164,12 @@ export class AccessRequestViewComponent {
164
164
  <section class="access-request">
165
165
  <span class="access-request__eyebrow">{{ t('eyebrow') }}</span>
166
166
  <val-display [props]="{ content: t('title'), size: 'small', color: 'dark' }" />
167
- <val-text [props]="{ content: t('body'), color: 'medium', size: 'medium', bold: false }" />
167
+ <val-text [props]="{ content: t('body'), color: 'dark', size: 'medium', bold: false }" />
168
168
 
169
169
  <val-form [props]="form()" (onSubmit)="submit($event)" />
170
170
  </section>
171
171
  }
172
- `, isInline: true, styles: [":host{display:block}.access-request{display:grid;gap:12px}.access-request__eyebrow{color:var(--ion-color-medium, #92949c);font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}\n"], dependencies: [{ kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onValueChange", "onInvalid", "onSelectChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: EmptyStateComponent, selector: "val-empty-state", inputs: ["props"] }] }); }
172
+ `, isInline: true, styles: [":host{display:block}.access-request{display:grid;gap:12px}.access-request__eyebrow{color:var(--ion-color-dark, #92949c);font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}\n"], dependencies: [{ kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onValueChange", "onInvalid", "onSelectChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: EmptyStateComponent, selector: "val-empty-state", inputs: ["props"] }] }); }
173
173
  }
174
174
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccessRequestViewComponent, decorators: [{
175
175
  type: Component,
@@ -180,15 +180,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
180
180
  <section class="access-request">
181
181
  <span class="access-request__eyebrow">{{ t('eyebrow') }}</span>
182
182
  <val-display [props]="{ content: t('title'), size: 'small', color: 'dark' }" />
183
- <val-text [props]="{ content: t('body'), color: 'medium', size: 'medium', bold: false }" />
183
+ <val-text [props]="{ content: t('body'), color: 'dark', size: 'medium', bold: false }" />
184
184
 
185
185
  <val-form [props]="form()" (onSubmit)="submit($event)" />
186
186
  </section>
187
187
  }
188
- `, styles: [":host{display:block}.access-request{display:grid;gap:12px}.access-request__eyebrow{color:var(--ion-color-medium, #92949c);font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}\n"] }]
188
+ `, styles: [":host{display:block}.access-request{display:grid;gap:12px}.access-request__eyebrow{color:var(--ion-color-dark, #92949c);font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}\n"] }]
189
189
  }], ctorParameters: () => [], propDecorators: { i18nNamespace: [{
190
190
  type: Input
191
191
  }], requested: [{
192
192
  type: Output
193
193
  }] } });
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLXJlcXVlc3Qtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2FjY2Vzcy1yZXF1ZXN0LXZpZXcvYWNjZXNzLXJlcXVlc3Qtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN4RixPQUFPLEVBRUwsZUFBZSxFQUlmLFNBQVMsR0FDVixNQUFNLGFBQWEsQ0FBQztBQUdyQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUVyRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFdEUsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFFMUMsK0RBQStEO0FBQy9ELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLGdCQUFnQixDQUFDO0FBRXBEOzs7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VSwwQkFBMEI7bUdBQTFCLDBCQUEwQixvS0FsQzNCOzs7Ozs7Ozs7Ozs7R0FZVCxvUkFiUyxhQUFhLCtJQUFFLGdCQUFnQiwyRUFBRSxhQUFhLHdFQUFFLG1CQUFtQjs7NEZBbUNsRSwwQkFBMEI7a0JBdEN0QyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixDQUFDLFlBQ3BFOzs7Ozs7Ozs7Ozs7R0FZVDt3REE2QlEsYUFBYTtzQkFBckIsS0FBSztnQkFHYSxTQUFTO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS9mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVN0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBCdXR0b25NZXRhZGF0YSxcbiAgQ29tcG9uZW50U3RhdGVzLFxuICBGb3JtTWV0YWRhdGEsXG4gIEZvcm1TdWJtaXQsXG4gIElucHV0TWV0YWRhdGEsXG4gIElucHV0VHlwZSxcbn0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL3R5cGVzJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXF1ZXN0cy9yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsdGVjaEVycm9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vycm9ycy92YWx0ZWNoLWVycm9yLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBBQ0NFU1NfUkVRVUVTVF9WSUVXX0kxOE4gfSBmcm9tICcuL2FjY2Vzcy1yZXF1ZXN0LXZpZXcuaTE4bic7XG5cbmNvbnN0IERFRkFVTFRfTkFNRVNQQUNFID0gJ0FjY2Vzc1JlcXVlc3QnO1xuXG4vKiogVGlwbyBkZSBzb2xpY2l0dWQgY29uIHF1ZSBzZSByZWdpc3RyYW4gZXN0YXMgcGV0aWNpb25lcy4gKi9cbmV4cG9ydCBjb25zdCBBQ0NFU1NfUkVRVUVTVF9UWVBFID0gJ2FjY2Vzcy1yZXF1ZXN0JztcblxuLyoqXG4gKiBgdmFsLWFjY2Vzcy1yZXF1ZXN0LXZpZXdgIOKAlCBsbyBxdWUgdmUgYWxndWllbiBjdWFuZG8gbGEgYXBwIGVzdMOhIGVuIG1vZG9cbiAqIGludml0YWNpw7NuIHkgbm8gZXN0w6EgZW4gbGEgbGlzdGEuXG4gKlxuICogTm8gZXMgdW5hIHBhbnRhbGxhIGRlIGVycm9yOiBlcyB1bmEgcHVlcnRhIGNvbiB0aW1icmUuIEV4cGxpY2EgcG9yIHF1w6kgZXN0w6FcbiAqIGNlcnJhZG8geSBkZWphIHBlZGlyIGVudHJhciwgcXVlIGVzIGxhIGRpZmVyZW5jaWEgZW50cmUgcGVyZGVyIGEgbGEgcGVyc29uYSB5XG4gKiBzYWJlciBxdWnDqW4gcXVpc28gZW50cmFyLlxuICpcbiAqIExhIHNvbGljaXR1ZCBzZSByZWdpc3RyYSBjb21vIHVuIGByZXF1ZXN0YCBkZWwgdGlwbyBgYWNjZXNzLXJlcXVlc3RgLCBhc8OtIHF1ZVxuICogc2UgcmV2aXNhIGNvbiBsYXMgbWlzbWFzIGhlcnJhbWllbnRhcyBxdWUgZWwgcmVzdG8gZGUgbGFzIHNvbGljaXR1ZGVzLlxuICpcbiAqIFNlIHVzYSBqdW50byBjb24gZWwgbW9kbyBkZSBhY2Nlc28gZGVsIGJhY2tlbmQgKGBBY2Nlc3NNb2RlYCA9IGBpbnZpdGVgKSwgcXVlXG4gKiBlcyBsbyBxdWUgcmVhbG1lbnRlIGZyZW5hLiBWZXIgZG9jcy9ydW5ib29rcy9jb3N0LWd1YXJkcmFpbHMubWQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hY2Nlc3MtcmVxdWVzdC12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0Zvcm1Db21wb25lbnQsIERpc3BsYXlDb21wb25lbnQsIFRleHRDb21wb25lbnQsIEVtcHR5U3RhdGVDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAoc2VudCgpKSB7XG4gICAgICA8dmFsLWVtcHR5LXN0YXRlIFtwcm9wc109XCJzZW50U3RhdGUoKVwiIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImFjY2Vzcy1yZXF1ZXN0XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjZXNzLXJlcXVlc3RfX2V5ZWJyb3dcIj57eyB0KCdleWVicm93JykgfX08L3NwYW4+XG4gICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCd0aXRsZScpLCBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnIH1cIiAvPlxuICAgICAgICA8dmFsLXRleHQgW3Byb3BzXT1cInsgY29udGVudDogdCgnYm9keScpLCBjb2xvcjogJ21lZGl1bScsIHNpemU6ICdtZWRpdW0nLCBib2xkOiBmYWxzZSB9XCIgLz5cblxuICAgICAgICA8dmFsLWZvcm0gW3Byb3BzXT1cImZvcm0oKVwiIChvblN1Ym1pdCk9XCJzdWJtaXQoJGV2ZW50KVwiIC8+XG4gICAgICA8L3NlY3Rpb24+XG4gICAgfVxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAuYWNjZXNzLXJlcXVlc3Qge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICB9XG5cbiAgICAgIC5hY2Nlc3MtcmVxdWVzdF9fZXllYnJvdyB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQWNjZXNzUmVxdWVzdFZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dGggPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3RzID0gaW5qZWN0KFJlcXVlc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG5cbiAgLyoqIE5hbWVzcGFjZSBpMThuLCBwb3Igc2kgdW5hIGFwcCBxdWllcmUgc3UgcHJvcGlhIHJlZGFjY2nDs24uICovXG4gIEBJbnB1dCgpIGkxOG5OYW1lc3BhY2UgPSBERUZBVUxUX05BTUVTUEFDRTtcblxuICAvKiogU2UgZW1pdGUgY3VhbmRvIGxhIHNvbGljaXR1ZCBxdWVkw7MgcmVnaXN0cmFkYS4gKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHJlcXVlc3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHJlYWRvbmx5IHNlbmRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBzZW50ID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZW50VG8gPSBzaWduYWwoJycpO1xuXG4gIHJlYWRvbmx5IHNlbnRTdGF0ZSA9IGNvbXB1dGVkPEVtcHR5U3RhdGVNZXRhZGF0YT4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhcmlhbnQ6ICdlbXB0eScsXG4gICAgICB0aXRsZTogdGhpcy50KCdzZW50VGl0bGUnKSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLnQoJ3NlbnRCb2R5JykucmVwbGFjZSgne2VtYWlsfScsIHRoaXMuc2VudFRvKCkpLFxuICAgIH0gYXMgRW1wdHlTdGF0ZU1ldGFkYXRhO1xuICB9KTtcblxuICByZWFkb25seSBmb3JtID0gY29tcHV0ZWQ8Rm9ybU1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCB3b3JraW5nID0gdGhpcy5zZW5kaW5nKCk7XG4gICAgY29uc3QgdXNlciA9IHRoaXMuYXV0aC51c2VyKCk7XG5cbiAgICBjb25zdCBuYW1lRmllbGQ6IElucHV0TWV0YWRhdGEgPSB7XG4gICAgICB0b2tlbjogJ2FjY2Vzcy1yZXF1ZXN0LW5hbWUnLFxuICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgbGFiZWw6IHRoaXMudCgnbmFtZUxhYmVsJyksXG4gICAgICBoaW50OiAnJyxcbiAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnQoJ25hbWVQbGFjZWhvbGRlcicpLFxuICAgICAgdHlwZTogSW5wdXRUeXBlLlRFWFQsXG4gICAgICBvcmRlcjogMSxcbiAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxMjApXSxcbiAgICAgIGVycm9yczogeyByZXF1aXJlZDogdGhpcy50KCdub05hbWUnKSB9LFxuICAgICAgdmFsdWU6IHVzZXI/Lm5hbWUgPz8gJycsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBJbnB1dE1ldGFkYXRhO1xuXG4gICAgY29uc3QgZW1haWxGaWVsZDogSW5wdXRNZXRhZGF0YSA9IHtcbiAgICAgIHRva2VuOiAnYWNjZXNzLXJlcXVlc3QtZW1haWwnLFxuICAgICAgbmFtZTogJ2VtYWlsJyxcbiAgICAgIGxhYmVsOiB0aGlzLnQoJ2VtYWlsTGFiZWwnKSxcbiAgICAgIGhpbnQ6ICcnLFxuICAgICAgcGxhY2Vob2xkZXI6IHRoaXMudCgnZW1haWxQbGFjZWhvbGRlcicpLFxuICAgICAgdHlwZTogSW5wdXRUeXBlLkVNQUlMLFxuICAgICAgb3JkZXI6IDIsXG4gICAgICB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF0sXG4gICAgICBlcnJvcnM6IHsgcmVxdWlyZWQ6IHRoaXMudCgnbm9FbWFpbCcpLCBlbWFpbDogdGhpcy50KCdpbnZhbGlkRW1haWwnKSB9LFxuICAgICAgdmFsdWU6IHVzZXI/LmVtYWlsID8/ICcnLFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH0gYXMgSW5wdXRNZXRhZGF0YTtcblxuICAgIGNvbnN0IHJlYXNvbkZpZWxkOiBJbnB1dE1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46ICdhY2Nlc3MtcmVxdWVzdC1yZWFzb24nLFxuICAgICAgbmFtZTogJ3JlYXNvbicsXG4gICAgICBsYWJlbDogdGhpcy50KCdyZWFzb25MYWJlbCcpLFxuICAgICAgaGludDogJycsXG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy50KCdyZWFzb25QbGFjZWhvbGRlcicpLFxuICAgICAgdHlwZTogSW5wdXRUeXBlLlRFWFRBUkVBLFxuICAgICAgb3JkZXI6IDMsXG4gICAgICB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTAwKV0sXG4gICAgICBlcnJvcnM6IHt9LFxuICAgICAgdmFsdWU6ICcnLFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH0gYXMgSW5wdXRNZXRhZGF0YTtcblxuICAgIGNvbnN0IHN1Ym1pdEJ1dHRvbjogQnV0dG9uTWV0YWRhdGEgPSB7XG4gICAgICB0b2tlbjogJ2FjY2Vzcy1yZXF1ZXN0LXN1Ym1pdCcsXG4gICAgICB0ZXh0OiB0aGlzLnQoJ3N1Ym1pdCcpLFxuICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgIHR5cGU6ICdzdWJtaXQnLFxuICAgICAgZmlsbDogJ3NvbGlkJyxcbiAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgZXhwYW5kOiAnYmxvY2snLFxuICAgICAgc3RhdGU6IHdvcmtpbmcgPyBDb21wb25lbnRTdGF0ZXMuV09SS0lORyA6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH0gYXMgQnV0dG9uTWV0YWRhdGE7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogJycsXG4gICAgICBzdGF0ZTogd29ya2luZyA/IENvbXBvbmVudFN0YXRlcy5XT1JLSU5HIDogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgICBzZWN0aW9uczogW3sgbmFtZTogJycsIG9yZGVyOiAxLCBmaWVsZHM6IFtuYW1lRmllbGQsIGVtYWlsRmllbGQsIHJlYXNvbkZpZWxkXSB9XSxcbiAgICAgIGFjdGlvbnM6IHN1Ym1pdEJ1dHRvbixcbiAgICB9O1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhERUZBVUxUX05BTUVTUEFDRSwgQUNDRVNTX1JFUVVFU1RfVklFV19JMThOKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKHRoaXMuaTE4bk5hbWVzcGFjZSwgQUNDRVNTX1JFUVVFU1RfVklFV19JMThOKTtcbiAgfVxuXG4gIHN1Ym1pdChldmVudDogRm9ybVN1Ym1pdCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbmRpbmcoKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgdmFsdWVzID0gKGV2ZW50Py5maWVsZHMgPz8ge30pIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgY29uc3QgZW1haWwgPSAodmFsdWVzWydlbWFpbCddID8/ICcnKS50cmltKCk7XG4gICAgY29uc3QgbmFtZSA9ICh2YWx1ZXNbJ25hbWUnXSA/PyAnJykudHJpbSgpO1xuICAgIGNvbnN0IHJlYXNvbiA9ICh2YWx1ZXNbJ3JlYXNvbiddID8/ICcnKS50cmltKCk7XG4gICAgaWYgKCFlbWFpbCB8fCAhbmFtZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5zZW5kaW5nLnNldCh0cnVlKTtcblxuICAgIC8vIEF1dGVudGljYWRvIG8gbm86IHF1aWVuIGVzdMOhIGJsb3F1ZWFkbyBwb3IgaW52aXRhY2nDs24gU8ONIHRpZW5lIHNlc2nDs24sXG4gICAgLy8gcGVybyBsYSB2aXN0YSB0YW1iacOpbiBzaXJ2ZSBhbnRlcyBkZSBlbnRyYXIuXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIHR5cGU6IEFDQ0VTU19SRVFVRVNUX1RZUEUsXG4gICAgICB0aXRsZTogYFNvbGljaXR1ZCBkZSBhY2Nlc28g4oCUICR7bmFtZX1gLFxuICAgICAgZmllbGRzOiB7IG5hbWUsIGVtYWlsLCByZWFzb24gfSxcbiAgICAgIHN1Ym1pdHRlcjogeyBuYW1lLCBlbWFpbCB9LFxuICAgIH07XG5cbiAgICBjb25zdCBjYWxsJCA9IHRoaXMuYXV0aC5pc0F1dGhlbnRpY2F0ZWQoKVxuICAgICAgPyB0aGlzLnJlcXVlc3RzLmNyZWF0ZVJlcXVlc3QocGF5bG9hZClcbiAgICAgIDogdGhpcy5yZXF1ZXN0cy5jcmVhdGVBbm9ueW1vdXNSZXF1ZXN0KHBheWxvYWQpO1xuXG4gICAgY2FsbCQuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAgIHRoaXMuc2VuZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLnNlbnRUby5zZXQoZW1haWwpO1xuICAgICAgICB0aGlzLnNlbnQuc2V0KHRydWUpO1xuICAgICAgICB0aGlzLnJlcXVlc3RlZC5lbWl0KHJlcz8ucmVxdWVzdElkID8/ICcnKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgdGhpcy5zZW5kaW5nLnNldChmYWxzZSk7XG4gICAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHtcbiAgICAgICAgICBjb250ZXh0OiAnYWNjZXNzUmVxdWVzdC5zdWJtaXQnLFxuICAgICAgICAgIGZhbGxiYWNrS2V5OiAnc2VuZEVycm9yJyxcbiAgICAgICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLmkxOG5OYW1lc3BhY2UsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksIHRoaXMuaTE4bk5hbWVzcGFjZSk7XG4gIH1cbn1cbiJdfQ==
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLXJlcXVlc3Qtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2FjY2Vzcy1yZXF1ZXN0LXZpZXcvYWNjZXNzLXJlcXVlc3Qtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN4RixPQUFPLEVBRUwsZUFBZSxFQUlmLFNBQVMsR0FDVixNQUFNLGFBQWEsQ0FBQztBQUdyQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUVyRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFdEUsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFFMUMsK0RBQStEO0FBQy9ELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLGdCQUFnQixDQUFDO0FBRXBEOzs7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VSwwQkFBMEI7bUdBQTFCLDBCQUEwQixvS0FsQzNCOzs7Ozs7Ozs7Ozs7R0FZVCxrUkFiUyxhQUFhLCtJQUFFLGdCQUFnQiwyRUFBRSxhQUFhLHdFQUFFLG1CQUFtQjs7NEZBbUNsRSwwQkFBMEI7a0JBdEN0QyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixDQUFDLFlBQ3BFOzs7Ozs7Ozs7Ozs7R0FZVDt3REE2QlEsYUFBYTtzQkFBckIsS0FBSztnQkFHYSxTQUFTO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS9mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVN0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBCdXR0b25NZXRhZGF0YSxcbiAgQ29tcG9uZW50U3RhdGVzLFxuICBGb3JtTWV0YWRhdGEsXG4gIEZvcm1TdWJtaXQsXG4gIElucHV0TWV0YWRhdGEsXG4gIElucHV0VHlwZSxcbn0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL3R5cGVzJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXF1ZXN0cy9yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsdGVjaEVycm9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vycm9ycy92YWx0ZWNoLWVycm9yLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBBQ0NFU1NfUkVRVUVTVF9WSUVXX0kxOE4gfSBmcm9tICcuL2FjY2Vzcy1yZXF1ZXN0LXZpZXcuaTE4bic7XG5cbmNvbnN0IERFRkFVTFRfTkFNRVNQQUNFID0gJ0FjY2Vzc1JlcXVlc3QnO1xuXG4vKiogVGlwbyBkZSBzb2xpY2l0dWQgY29uIHF1ZSBzZSByZWdpc3RyYW4gZXN0YXMgcGV0aWNpb25lcy4gKi9cbmV4cG9ydCBjb25zdCBBQ0NFU1NfUkVRVUVTVF9UWVBFID0gJ2FjY2Vzcy1yZXF1ZXN0JztcblxuLyoqXG4gKiBgdmFsLWFjY2Vzcy1yZXF1ZXN0LXZpZXdgIOKAlCBsbyBxdWUgdmUgYWxndWllbiBjdWFuZG8gbGEgYXBwIGVzdMOhIGVuIG1vZG9cbiAqIGludml0YWNpw7NuIHkgbm8gZXN0w6EgZW4gbGEgbGlzdGEuXG4gKlxuICogTm8gZXMgdW5hIHBhbnRhbGxhIGRlIGVycm9yOiBlcyB1bmEgcHVlcnRhIGNvbiB0aW1icmUuIEV4cGxpY2EgcG9yIHF1w6kgZXN0w6FcbiAqIGNlcnJhZG8geSBkZWphIHBlZGlyIGVudHJhciwgcXVlIGVzIGxhIGRpZmVyZW5jaWEgZW50cmUgcGVyZGVyIGEgbGEgcGVyc29uYSB5XG4gKiBzYWJlciBxdWnDqW4gcXVpc28gZW50cmFyLlxuICpcbiAqIExhIHNvbGljaXR1ZCBzZSByZWdpc3RyYSBjb21vIHVuIGByZXF1ZXN0YCBkZWwgdGlwbyBgYWNjZXNzLXJlcXVlc3RgLCBhc8OtIHF1ZVxuICogc2UgcmV2aXNhIGNvbiBsYXMgbWlzbWFzIGhlcnJhbWllbnRhcyBxdWUgZWwgcmVzdG8gZGUgbGFzIHNvbGljaXR1ZGVzLlxuICpcbiAqIFNlIHVzYSBqdW50byBjb24gZWwgbW9kbyBkZSBhY2Nlc28gZGVsIGJhY2tlbmQgKGBBY2Nlc3NNb2RlYCA9IGBpbnZpdGVgKSwgcXVlXG4gKiBlcyBsbyBxdWUgcmVhbG1lbnRlIGZyZW5hLiBWZXIgZG9jcy9ydW5ib29rcy9jb3N0LWd1YXJkcmFpbHMubWQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hY2Nlc3MtcmVxdWVzdC12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0Zvcm1Db21wb25lbnQsIERpc3BsYXlDb21wb25lbnQsIFRleHRDb21wb25lbnQsIEVtcHR5U3RhdGVDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAoc2VudCgpKSB7XG4gICAgICA8dmFsLWVtcHR5LXN0YXRlIFtwcm9wc109XCJzZW50U3RhdGUoKVwiIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImFjY2Vzcy1yZXF1ZXN0XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjZXNzLXJlcXVlc3RfX2V5ZWJyb3dcIj57eyB0KCdleWVicm93JykgfX08L3NwYW4+XG4gICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCd0aXRsZScpLCBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnIH1cIiAvPlxuICAgICAgICA8dmFsLXRleHQgW3Byb3BzXT1cInsgY29udGVudDogdCgnYm9keScpLCBjb2xvcjogJ2RhcmsnLCBzaXplOiAnbWVkaXVtJywgYm9sZDogZmFsc2UgfVwiIC8+XG5cbiAgICAgICAgPHZhbC1mb3JtIFtwcm9wc109XCJmb3JtKClcIiAob25TdWJtaXQpPVwic3VibWl0KCRldmVudClcIiAvPlxuICAgICAgPC9zZWN0aW9uPlxuICAgIH1cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLmFjY2Vzcy1yZXF1ZXN0IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgfVxuXG4gICAgICAuYWNjZXNzLXJlcXVlc3RfX2V5ZWJyb3cge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmssICM5Mjk0OWMpO1xuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBY2Nlc3NSZXF1ZXN0Vmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVxdWVzdHMgPSBpbmplY3QoUmVxdWVzdFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVycm9ycyA9IGluamVjdChWYWx0ZWNoRXJyb3JTZXJ2aWNlKTtcblxuICAvKiogTmFtZXNwYWNlIGkxOG4sIHBvciBzaSB1bmEgYXBwIHF1aWVyZSBzdSBwcm9waWEgcmVkYWNjacOzbi4gKi9cbiAgQElucHV0KCkgaTE4bk5hbWVzcGFjZSA9IERFRkFVTFRfTkFNRVNQQUNFO1xuXG4gIC8qKiBTZSBlbWl0ZSBjdWFuZG8gbGEgc29saWNpdHVkIHF1ZWTDsyByZWdpc3RyYWRhLiAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgcmVxdWVzdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcmVhZG9ubHkgc2VuZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IHNlbnQgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlbnRUbyA9IHNpZ25hbCgnJyk7XG5cbiAgcmVhZG9ubHkgc2VudFN0YXRlID0gY29tcHV0ZWQ8RW1wdHlTdGF0ZU1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4ge1xuICAgICAgdmFyaWFudDogJ2VtcHR5JyxcbiAgICAgIHRpdGxlOiB0aGlzLnQoJ3NlbnRUaXRsZScpLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMudCgnc2VudEJvZHknKS5yZXBsYWNlKCd7ZW1haWx9JywgdGhpcy5zZW50VG8oKSksXG4gICAgfSBhcyBFbXB0eVN0YXRlTWV0YWRhdGE7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGZvcm0gPSBjb21wdXRlZDxGb3JtTWV0YWRhdGE+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIGNvbnN0IHdvcmtpbmcgPSB0aGlzLnNlbmRpbmcoKTtcbiAgICBjb25zdCB1c2VyID0gdGhpcy5hdXRoLnVzZXIoKTtcblxuICAgIGNvbnN0IG5hbWVGaWVsZDogSW5wdXRNZXRhZGF0YSA9IHtcbiAgICAgIHRva2VuOiAnYWNjZXNzLXJlcXVlc3QtbmFtZScsXG4gICAgICBuYW1lOiAnbmFtZScsXG4gICAgICBsYWJlbDogdGhpcy50KCduYW1lTGFiZWwnKSxcbiAgICAgIGhpbnQ6ICcnLFxuICAgICAgcGxhY2Vob2xkZXI6IHRoaXMudCgnbmFtZVBsYWNlaG9sZGVyJyksXG4gICAgICB0eXBlOiBJbnB1dFR5cGUuVEVYVCxcbiAgICAgIG9yZGVyOiAxLFxuICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEyMCldLFxuICAgICAgZXJyb3JzOiB7IHJlcXVpcmVkOiB0aGlzLnQoJ25vTmFtZScpIH0sXG4gICAgICB2YWx1ZTogdXNlcj8ubmFtZSA/PyAnJyxcbiAgICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICB9IGFzIElucHV0TWV0YWRhdGE7XG5cbiAgICBjb25zdCBlbWFpbEZpZWxkOiBJbnB1dE1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46ICdhY2Nlc3MtcmVxdWVzdC1lbWFpbCcsXG4gICAgICBuYW1lOiAnZW1haWwnLFxuICAgICAgbGFiZWw6IHRoaXMudCgnZW1haWxMYWJlbCcpLFxuICAgICAgaGludDogJycsXG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy50KCdlbWFpbFBsYWNlaG9sZGVyJyksXG4gICAgICB0eXBlOiBJbnB1dFR5cGUuRU1BSUwsXG4gICAgICBvcmRlcjogMixcbiAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXSxcbiAgICAgIGVycm9yczogeyByZXF1aXJlZDogdGhpcy50KCdub0VtYWlsJyksIGVtYWlsOiB0aGlzLnQoJ2ludmFsaWRFbWFpbCcpIH0sXG4gICAgICB2YWx1ZTogdXNlcj8uZW1haWwgPz8gJycsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBJbnB1dE1ldGFkYXRhO1xuXG4gICAgY29uc3QgcmVhc29uRmllbGQ6IElucHV0TWV0YWRhdGEgPSB7XG4gICAgICB0b2tlbjogJ2FjY2Vzcy1yZXF1ZXN0LXJlYXNvbicsXG4gICAgICBuYW1lOiAncmVhc29uJyxcbiAgICAgIGxhYmVsOiB0aGlzLnQoJ3JlYXNvbkxhYmVsJyksXG4gICAgICBoaW50OiAnJyxcbiAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnQoJ3JlYXNvblBsYWNlaG9sZGVyJyksXG4gICAgICB0eXBlOiBJbnB1dFR5cGUuVEVYVEFSRUEsXG4gICAgICBvcmRlcjogMyxcbiAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLm1heExlbmd0aCg1MDApXSxcbiAgICAgIGVycm9yczoge30sXG4gICAgICB2YWx1ZTogJycsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBJbnB1dE1ldGFkYXRhO1xuXG4gICAgY29uc3Qgc3VibWl0QnV0dG9uOiBCdXR0b25NZXRhZGF0YSA9IHtcbiAgICAgIHRva2VuOiAnYWNjZXNzLXJlcXVlc3Qtc3VibWl0JyxcbiAgICAgIHRleHQ6IHRoaXMudCgnc3VibWl0JyksXG4gICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgdHlwZTogJ3N1Ym1pdCcsXG4gICAgICBmaWxsOiAnc29saWQnLFxuICAgICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgICBleHBhbmQ6ICdibG9jaycsXG4gICAgICBzdGF0ZTogd29ya2luZyA/IENvbXBvbmVudFN0YXRlcy5XT1JLSU5HIDogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBCdXR0b25NZXRhZGF0YTtcblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiAnJyxcbiAgICAgIHN0YXRlOiB3b3JraW5nID8gQ29tcG9uZW50U3RhdGVzLldPUktJTkcgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICAgIHNlY3Rpb25zOiBbeyBuYW1lOiAnJywgb3JkZXI6IDEsIGZpZWxkczogW25hbWVGaWVsZCwgZW1haWxGaWVsZCwgcmVhc29uRmllbGRdIH1dLFxuICAgICAgYWN0aW9uczogc3VibWl0QnV0dG9uLFxuICAgIH07XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKERFRkFVTFRfTkFNRVNQQUNFLCBBQ0NFU1NfUkVRVUVTVF9WSUVXX0kxOE4pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHModGhpcy5pMThuTmFtZXNwYWNlLCBBQ0NFU1NfUkVRVUVTVF9WSUVXX0kxOE4pO1xuICB9XG5cbiAgc3VibWl0KGV2ZW50OiBGb3JtU3VibWl0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VuZGluZygpKSByZXR1cm47XG5cbiAgICBjb25zdCB2YWx1ZXMgPSAoZXZlbnQ/LmZpZWxkcyA/PyB7fSkgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICBjb25zdCBlbWFpbCA9ICh2YWx1ZXNbJ2VtYWlsJ10gPz8gJycpLnRyaW0oKTtcbiAgICBjb25zdCBuYW1lID0gKHZhbHVlc1snbmFtZSddID8/ICcnKS50cmltKCk7XG4gICAgY29uc3QgcmVhc29uID0gKHZhbHVlc1sncmVhc29uJ10gPz8gJycpLnRyaW0oKTtcbiAgICBpZiAoIWVtYWlsIHx8ICFuYW1lKSByZXR1cm47XG5cbiAgICB0aGlzLnNlbmRpbmcuc2V0KHRydWUpO1xuXG4gICAgLy8gQXV0ZW50aWNhZG8gbyBubzogcXVpZW4gZXN0w6EgYmxvcXVlYWRvIHBvciBpbnZpdGFjacOzbiBTw40gdGllbmUgc2VzacOzbixcbiAgICAvLyBwZXJvIGxhIHZpc3RhIHRhbWJpw6luIHNpcnZlIGFudGVzIGRlIGVudHJhci5cbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgdHlwZTogQUNDRVNTX1JFUVVFU1RfVFlQRSxcbiAgICAgIHRpdGxlOiBgU29saWNpdHVkIGRlIGFjY2VzbyDigJQgJHtuYW1lfWAsXG4gICAgICBmaWVsZHM6IHsgbmFtZSwgZW1haWwsIHJlYXNvbiB9LFxuICAgICAgc3VibWl0dGVyOiB7IG5hbWUsIGVtYWlsIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IGNhbGwkID0gdGhpcy5hdXRoLmlzQXV0aGVudGljYXRlZCgpXG4gICAgICA/IHRoaXMucmVxdWVzdHMuY3JlYXRlUmVxdWVzdChwYXlsb2FkKVxuICAgICAgOiB0aGlzLnJlcXVlc3RzLmNyZWF0ZUFub255bW91c1JlcXVlc3QocGF5bG9hZCk7XG5cbiAgICBjYWxsJC5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgdGhpcy5zZW5kaW5nLnNldChmYWxzZSk7XG4gICAgICAgIHRoaXMuc2VudFRvLnNldChlbWFpbCk7XG4gICAgICAgIHRoaXMuc2VudC5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMucmVxdWVzdGVkLmVtaXQocmVzPy5yZXF1ZXN0SWQgPz8gJycpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICB0aGlzLnNlbmRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwge1xuICAgICAgICAgIGNvbnRleHQ6ICdhY2Nlc3NSZXF1ZXN0LnN1Ym1pdCcsXG4gICAgICAgICAgZmFsbGJhY2tLZXk6ICdzZW5kRXJyb3InLFxuICAgICAgICAgIGkxOG5OYW1lc3BhY2U6IHRoaXMuaTE4bk5hbWVzcGFjZSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5pMThuTmFtZXNwYWNlKTtcbiAgfVxufVxuIl19
@@ -243,7 +243,7 @@ export class ApiKeysModalComponent {
243
243
  } @else {
244
244
  <!-- Lista -->
245
245
  @if (keys().length === 0) {
246
- <val-text [props]="{ content: t('empty'), size: 'medium', color: 'medium', bold: false }" />
246
+ <val-text [props]="{ content: t('empty'), size: 'medium', color: 'dark', bold: false }" />
247
247
  } @else {
248
248
  <div class="apikey-list">
249
249
  @for (k of keys(); track k.keyId) {
@@ -278,7 +278,7 @@ export class ApiKeysModalComponent {
278
278
  (selectedChange)="selectedPerms.set($event)"
279
279
  />
280
280
  <val-form [props]="createForm()" (onSubmit)="onCreateSubmit($event)" />
281
- <ion-button expand="block" fill="clear" color="medium" shape="round" (click)="showCreate.set(false)">
281
+ <ion-button expand="block" fill="clear" color="dark" shape="round" (click)="showCreate.set(false)">
282
282
  {{ t('cancel') }}
283
283
  </ion-button>
284
284
  </div>
@@ -292,7 +292,7 @@ export class ApiKeysModalComponent {
292
292
  }
293
293
  }
294
294
  </ion-content>
295
- `, isInline: true, styles: ["ion-content{--padding-bottom: 64px}val-display{display:block;margin-bottom:4px}val-title{display:block;margin-bottom:12px}.apikey-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.apikey-row{display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:10px;border:1.5px solid var(--ion-color-light)}.apikey-row__main{display:flex;flex-direction:column}.apikey-row__name{font-weight:600;color:var(--ion-color-dark)}.apikey-row__meta{font-size:12px;color:var(--ion-color-medium-shade, #6b6e76)}.apikey-create{margin-top:8px;padding:4px 0 0}.apikey-perms{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px}.apikey-actions{margin-top:16px;display:flex;flex-direction:column;gap:8px}.apikey-error{margin:8px 0;font-size:.875rem;color:var(--ion-color-danger, #c0392b)}.apikey-secret__warn{font-size:.875rem;color:var(--ion-color-warning-shade, #b88600);margin:0 0 12px}.apikey-secret__box{padding:12px;border-radius:8px;background:var(--ion-color-dark);color:#fff;word-break:break-all;font-family:monospace;font-size:13px}\n"], dependencies: [{ kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onValueChange", "onInvalid", "onSelectChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: PermissionSelectorComponent, selector: "val-permission-selector", inputs: ["permissions", "actionLabels", "locale", "header", "selected"], outputs: ["selectedChange"] }] }); }
295
+ `, isInline: true, styles: ["ion-content{--padding-bottom: 64px}val-display{display:block;margin-bottom:4px}val-title{display:block;margin-bottom:12px}.apikey-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.apikey-row{display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:10px;border:1.5px solid var(--ion-color-light)}.apikey-row__main{display:flex;flex-direction:column}.apikey-row__name{font-weight:600;color:var(--ion-color-dark)}.apikey-row__meta{font-size:12px;color:var(--ion-color-dark-shade, #6b6e76)}.apikey-create{margin-top:8px;padding:4px 0 0}.apikey-perms{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px}.apikey-actions{margin-top:16px;display:flex;flex-direction:column;gap:8px}.apikey-error{margin:8px 0;font-size:.875rem;color:var(--ion-color-danger, #c0392b)}.apikey-secret__warn{font-size:.875rem;color:var(--ion-color-warning-shade, #b88600);margin:0 0 12px}.apikey-secret__box{padding:12px;border-radius:8px;background:var(--ion-color-dark);color:#fff;word-break:break-all;font-family:monospace;font-size:13px}\n"], dependencies: [{ kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onValueChange", "onInvalid", "onSelectChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: PermissionSelectorComponent, selector: "val-permission-selector", inputs: ["permissions", "actionLabels", "locale", "header", "selected"], outputs: ["selectedChange"] }] }); }
296
296
  }
297
297
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ApiKeysModalComponent, decorators: [{
298
298
  type: Component,
@@ -346,7 +346,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
346
346
  } @else {
347
347
  <!-- Lista -->
348
348
  @if (keys().length === 0) {
349
- <val-text [props]="{ content: t('empty'), size: 'medium', color: 'medium', bold: false }" />
349
+ <val-text [props]="{ content: t('empty'), size: 'medium', color: 'dark', bold: false }" />
350
350
  } @else {
351
351
  <div class="apikey-list">
352
352
  @for (k of keys(); track k.keyId) {
@@ -381,7 +381,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
381
381
  (selectedChange)="selectedPerms.set($event)"
382
382
  />
383
383
  <val-form [props]="createForm()" (onSubmit)="onCreateSubmit($event)" />
384
- <ion-button expand="block" fill="clear" color="medium" shape="round" (click)="showCreate.set(false)">
384
+ <ion-button expand="block" fill="clear" color="dark" shape="round" (click)="showCreate.set(false)">
385
385
  {{ t('cancel') }}
386
386
  </ion-button>
387
387
  </div>
@@ -395,10 +395,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
395
395
  }
396
396
  }
397
397
  </ion-content>
398
- `, styles: ["ion-content{--padding-bottom: 64px}val-display{display:block;margin-bottom:4px}val-title{display:block;margin-bottom:12px}.apikey-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.apikey-row{display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:10px;border:1.5px solid var(--ion-color-light)}.apikey-row__main{display:flex;flex-direction:column}.apikey-row__name{font-weight:600;color:var(--ion-color-dark)}.apikey-row__meta{font-size:12px;color:var(--ion-color-medium-shade, #6b6e76)}.apikey-create{margin-top:8px;padding:4px 0 0}.apikey-perms{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px}.apikey-actions{margin-top:16px;display:flex;flex-direction:column;gap:8px}.apikey-error{margin:8px 0;font-size:.875rem;color:var(--ion-color-danger, #c0392b)}.apikey-secret__warn{font-size:.875rem;color:var(--ion-color-warning-shade, #b88600);margin:0 0 12px}.apikey-secret__box{padding:12px;border-radius:8px;background:var(--ion-color-dark);color:#fff;word-break:break-all;font-family:monospace;font-size:13px}\n"] }]
398
+ `, styles: ["ion-content{--padding-bottom: 64px}val-display{display:block;margin-bottom:4px}val-title{display:block;margin-bottom:12px}.apikey-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.apikey-row{display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:10px;border:1.5px solid var(--ion-color-light)}.apikey-row__main{display:flex;flex-direction:column}.apikey-row__name{font-weight:600;color:var(--ion-color-dark)}.apikey-row__meta{font-size:12px;color:var(--ion-color-dark-shade, #6b6e76)}.apikey-create{margin-top:8px;padding:4px 0 0}.apikey-perms{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px}.apikey-actions{margin-top:16px;display:flex;flex-direction:column;gap:8px}.apikey-error{margin:8px 0;font-size:.875rem;color:var(--ion-color-danger, #c0392b)}.apikey-secret__warn{font-size:.875rem;color:var(--ion-color-warning-shade, #b88600);margin:0 0 12px}.apikey-secret__box{padding:12px;border-radius:8px;background:var(--ion-color-dark);color:#fff;word-break:break-all;font-family:monospace;font-size:13px}\n"] }]
399
399
  }], ctorParameters: () => [], propDecorators: { _modalRef: [{
400
400
  type: Input
401
401
  }], i18nNamespace: [{
402
402
  type: Input
403
403
  }] } });
404
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWtleXMtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcGkta2V5cy1tb2RhbC9hcGkta2V5cy1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWpILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBa0IsZUFBZSxFQUEyQyxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEUsT0FBTyxFQUVMLHdCQUF3QixHQUV6QixNQUFNLGtEQUFrRCxDQUFDO0FBQzFELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRWhILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixD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UDt3QkFDUCxTQUFTO3dCQUNULFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixTQUFTO3dCQUNULFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLDJCQUEyQjtxQkFDNUIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUZUO3dEQXdGUSxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIElucHV0LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uQnV0dG9ucywgSW9uQ29udGVudCwgSW9uSGVhZGVyLCBJb25TcGlubmVyLCBJb25Ub29sYmFyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5cbmltcG9ydCB7IEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbk1ldGFkYXRhLCBDb21wb25lbnRTdGF0ZXMsIEZvcm1NZXRhZGF0YSwgRm9ybVN1Ym1pdCwgSW5wdXRNZXRhZGF0YSwgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgQXBpS2V5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwaWtleXMvYXBpLWtleXMuc2VydmljZSc7XG5pbXBvcnQgeyBDbGllbnRBcGlLZXksIENsaWVudEFwaUtleVdpdGhTZWNyZXQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcGlrZXlzL3R5cGVzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgTG9jYWxpemVkTGFiZWwsXG4gIFBlcm1pc3Npb25DYXRhbG9nU2VydmljZSxcbiAgUGVybWlzc2lvblJlc291cmNlLFxufSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvcGVybWlzc2lvbi1jYXRhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3Blcm1pc3Npb24tc2VsZWN0b3IvcGVybWlzc2lvbi1zZWxlY3Rvci5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBBUElfS0VZU19NT0RBTF9JMThOIH0gZnJvbSAnLi9hcGkta2V5cy1tb2RhbC5pMThuJztcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuQXBpS2V5c01vZGFsJztcblxuLyoqXG4gKiBgdmFsLWFwaS1rZXlzLW1vZGFsYCDigJQgZ2VzdGnDs24gZGUgQ2xpZW50IEFQSSBLZXlzIG9yZy1zY29wZWFkYXMgKEFEUi0wMjMgZmFzZSA2KS5cbiAqXG4gKiBMaXN0YSBsYXMga2V5cyBkZSBsYSBvcmcsIHBlcm1pdGUgY3JlYXIgKG1vc3RyYW5kbyBlbCBzZWNyZXRvIFVOQSB2ZXogY29uIGNvcGlhKVxuICogeSByZXZvY2FyLiBQZW5zYWRvIHBhcmEgaGFiaWxpdGFyIGludGVncmFjaW9uZXMgTTJNIGRlbCBpbXBvcnQgZGUgbWllbWJyb3MsIHBlcm9cbiAqIHNpcnZlIGEgY3VhbHF1aWVyIHBlcm1pc28gZGVsIGNhdMOhbG9nby4gSGVhZGVyIGNhbsOzbmljbyAoUmVnbGEgIzUpLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYXBpLWtleXMtbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uQ29udGVudCxcbiAgICBJb25TcGlubmVyLFxuICAgIEZvcm1Db21wb25lbnQsXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFBlcm1pc3Npb25TZWxlY3RvckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWhlYWRlcj5cbiAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cImRpc21pc3MoKVwiPlxuICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdjbG9zZScpIH19PC9zdHJvbmc+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICA8L2lvbi1oZWFkZXI+XG5cbiAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ3RpdGxlJyksIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycgfVwiIC8+XG4gICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ2hpbnQnKSwgc2l6ZTogJ2xhcmdlJywgY29sb3I6ICcnLCBib2xkOiBmYWxzZSB9XCIgLz5cblxuICAgICAgQGlmIChzZWNyZXQoKTsgYXMgcykge1xuICAgICAgICA8IS0tIFNlY3JldG8gcmVjacOpbiBjcmVhZG86IG1vc3RyYXIgVU5BIHZleiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1zZWNyZXRcIj5cbiAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ3NlY3JldFRpdGxlJyksIHNpemU6ICdsYXJnZScsIGNvbG9yOiAnJywgYm9sZDogdHJ1ZSB9XCIgLz5cbiAgICAgICAgICA8cCBjbGFzcz1cImFwaWtleS1zZWNyZXRfX3dhcm5cIj57eyB0KCdzZWNyZXRXYXJuaW5nJykgfX08L3A+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1zZWNyZXRfX2JveFwiPlxuICAgICAgICAgICAgPGNvZGU+e3sgcy5zZWNyZXQgfX08L2NvZGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1hY3Rpb25zXCI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGNvbG9yPVwiZGFya1wiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwiY29weShzLnNlY3JldClcIj5cbiAgICAgICAgICAgICAge3sgY29waWVkKCkgPyB0KCdjb3BpZWQnKSA6IHQoJ2NvcHknKSB9fVxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwiZGFya1wiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwiZmluaXNoU2VjcmV0KClcIj5cbiAgICAgICAgICAgICAge3sgdCgnZG9uZScpIH19XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJkb3RzXCIgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPCEtLSBMaXN0YSAtLT5cbiAgICAgICAgICBAaWYgKGtleXMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIDx2YWwtdGV4dCBbcHJvcHNdPVwieyBjb250ZW50OiB0KCdlbXB0eScpLCBzaXplOiAnbWVkaXVtJywgY29sb3I6ICdtZWRpdW0nLCBib2xkOiBmYWxzZSB9XCIgLz5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktbGlzdFwiPlxuICAgICAgICAgICAgICBAZm9yIChrIG9mIGtleXMoKTsgdHJhY2sgay5rZXlJZCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktcm93XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBpa2V5LXJvd19fbWFpblwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwaWtleS1yb3dfX25hbWVcIj57eyBrLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBpa2V5LXJvd19fbWV0YVwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGsucGVybWlzc2lvbnMubGVuZ3RoIH19IHt7IHQoJ3Blcm1zQ291bnQnKSB9fSDCtyB7eyB0KCdsYXN0VXNlZCcpIH19OlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGsubGFzdFVzZWRBdCB8fCB0KCduZXZlcicpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgY29sb3I9XCJkYW5nZXJcIiBzaXplPVwic21hbGxcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cInJldm9rZShrKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyB0KCdyZXZva2UnKSB9fVxuICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKGVycm9yTXNnKCkpIHtcbiAgICAgICAgICAgIDxwIGNsYXNzPVwiYXBpa2V5LWVycm9yXCI+e3sgZXJyb3JNc2coKSB9fTwvcD5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8IS0tIENyZWFyIOKAlCB2YWwtZm9ybSAobm9tYnJlICsgZXhwaXJhY2nDs24pICsgc2VsZWN0b3IgZGUgcGVybWlzb3MuIC0tPlxuICAgICAgICAgIEBpZiAoc2hvd0NyZWF0ZSgpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBpa2V5LWNyZWF0ZVwiPlxuICAgICAgICAgICAgICA8dmFsLXBlcm1pc3Npb24tc2VsZWN0b3JcbiAgICAgICAgICAgICAgICBbaGVhZGVyXT1cInQoJ3Blcm1pc3Npb25zTGFiZWwnKVwiXG4gICAgICAgICAgICAgICAgW3Blcm1pc3Npb25zXT1cImNhdGFsb2dQZXJtaXNzaW9ucygpXCJcbiAgICAgICAgICAgICAgICBbYWN0aW9uTGFiZWxzXT1cImFjdGlvbkxhYmVscygpXCJcbiAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRQZXJtcygpXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwic2VsZWN0ZWRQZXJtcy5zZXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDx2YWwtZm9ybSBbcHJvcHNdPVwiY3JlYXRlRm9ybSgpXCIgKG9uU3VibWl0KT1cIm9uQ3JlYXRlU3VibWl0KCRldmVudClcIiAvPlxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwibWVkaXVtXCIgc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJzaG93Q3JlYXRlLnNldChmYWxzZSlcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdjYW5jZWwnKSB9fVxuICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGNvbG9yPVwicHJpbWFyeVwiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwib3BlbkNyZWF0ZSgpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnbmV3S2V5JykgfX1cbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9pb24tY29udGVudD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLyogU2hlZXQgbW9kYWw6IHBhZGRpbmcgaW5mZXJpb3IgZ2VuZXJvc28gcGFyYSBwb2RlciBzY3JvbGxlYXIgaGFzdGEgZWxcbiAgICAgICAgIMO6bHRpbW8gZWxlbWVudG8gKGJvdMOzbiBjcmVhcikgc2luIHF1ZSBxdWVkZSBiYWpvIGVsIGJvcmRlL2luZGljYWRvci4gKi9cbiAgICAgIGlvbi1jb250ZW50IHtcbiAgICAgICAgLS1wYWRkaW5nLWJvdHRvbTogNjRweDtcbiAgICAgIH1cbiAgICAgIHZhbC1kaXNwbGF5IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgIH1cbiAgICAgIHZhbC10aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgfVxuICAgICAgLmFwaWtleS1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1pb24tY29sb3ItbGlnaHQpO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3dfX21haW4ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3dfX25hbWUge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3dfX21ldGEge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLXNoYWRlLCAjNmI2ZTc2KTtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktY3JlYXRlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICBwYWRkaW5nOiA0cHggMCAwIDA7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXBlcm1zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuICAgICAgLmFwaWtleS1lcnJvciB7XG4gICAgICAgIG1hcmdpbjogOHB4IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyLCAjYzAzOTJiKTtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktc2VjcmV0X193YXJuIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci13YXJuaW5nLXNoYWRlLCAjYjg4NjAwKTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMTJweCAwO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1zZWNyZXRfX2JveCB7XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXBpS2V5c01vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhcGlLZXlzID0gaW5qZWN0KEFwaUtleVNlcnZpY2UpO1xuICBwcml2YXRlIGNhdGFsb2cgPSBpbmplY3QoUGVybWlzc2lvbkNhdGFsb2dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcblxuICAvKiogSW55ZWN0YWRvIHBvciBgTW9kYWxTZXJ2aWNlLm9wZW5gLiAqL1xuICBASW5wdXQoKSBfbW9kYWxSZWY/OiB7IGRpc21pc3M6IChkYXRhPzogdW5rbm93biwgcm9sZT86IHN0cmluZykgPT4gdm9pZCB9O1xuXG4gIC8qKiBOYW1lc3BhY2UgaTE4bi4gKi9cbiAgQElucHV0KCkgaTE4bk5hbWVzcGFjZSA9IERFRkFVTFRfTkFNRVNQQUNFO1xuXG4gIC8qKiBQZXJtaXNvcyBkZWwgY2F0w6Fsb2dvIFlBIGZpbHRyYWRvcyAoc2luIGludGVybmFsLCBzaW4gb3RyYXMgYXBwcykuICovXG4gIHJlYWRvbmx5IGNhdGFsb2dQZXJtaXNzaW9ucyA9IHNpZ25hbDxQZXJtaXNzaW9uUmVzb3VyY2VbXT4oW10pO1xuICAvKiogTGFiZWxzIGRlIGFjY2nDs24gKGVzL2VuKSBkZWwgYmFja2VuZCwgcGFyYSBlbCBzZWxlY3Rvci4gKi9cbiAgcmVhZG9ubHkgYWN0aW9uTGFiZWxzID0gc2lnbmFsPFJlY29yZDxzdHJpbmcsIExvY2FsaXplZExhYmVsPj4oe30pO1xuICAvKiogUGVybWlzb3Mgc2VsZWNjaW9uYWRvcyBwYXJhIGxhIG51ZXZhIGtleSAoYHJlc291cmNlOmFjdGlvbmApLiAqL1xuICByZWFkb25seSBzZWxlY3RlZFBlcm1zID0gc2lnbmFsPHN0cmluZ1tdPihbXSk7XG5cbiAgcmVhZG9ubHkga2V5cyA9IHNpZ25hbDxDbGllbnRBcGlLZXlbXT4oW10pO1xuICByZWFkb25seSBsb2FkaW5nID0gc2lnbmFsKHRydWUpO1xuICByZWFkb25seSBzaG93Q3JlYXRlID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgc3VibWl0dGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGVycm9yTXNnID0gc2lnbmFsKCcnKTtcbiAgcmVhZG9ubHkgc2VjcmV0ID0gc2lnbmFsPENsaWVudEFwaUtleVdpdGhTZWNyZXQgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgY29waWVkID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKipcbiAgICogRm9ybU1ldGFkYXRhIGRlbCBmb3JtIGRlIGNyZWFyIGtleSAodmFsLWZvcm0pLiBSZWFjdGl2byBhIGlkaW9tYSArIHBlcm1pc29zXG4gICAqIGRpc3BvbmlibGVzICsgZXN0YWRvIHN1Ym1pdHRpbmcuIFJlZW1wbGF6YSBsb3MgaW9uLWlucHV0L2lvbi1jaGVja2JveCBjcnVkb3NcbiAgICogcG9yIHZhbC1mb3JtIChjb25zaXN0ZW5jaWEgY29uIGVsIHJlc3RvIGRlIG1vZGFsZXMgZGVsIGZhY3RvcnkpLlxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlRm9ybSA9IGNvbXB1dGVkPEZvcm1NZXRhZGF0YT4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgY29uc3Qgd29ya2luZyA9IHRoaXMuc3VibWl0dGluZygpO1xuXG4gICAgY29uc3QgbmFtZUZpZWxkOiBJbnB1dE1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46ICdhcGlrZXktbmFtZScsXG4gICAgICBuYW1lOiAnbmFtZScsXG4gICAgICBsYWJlbDogdGhpcy50KCduYW1lTGFiZWwnKSxcbiAgICAgIGhpbnQ6ICcnLFxuICAgICAgcGxhY2Vob2xkZXI6IHRoaXMudCgnbmFtZVBsYWNlaG9sZGVyJyksXG4gICAgICB0eXBlOiBJbnB1dFR5cGUuVEVYVCxcbiAgICAgIG9yZGVyOiAxLFxuICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEyMCldLFxuICAgICAgZXJyb3JzOiB7IHJlcXVpcmVkOiB0aGlzLnQoJ25vTmFtZScpIH0sXG4gICAgICB2YWx1ZTogJycsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBJbnB1dE1ldGFkYXRhO1xuXG4gICAgY29uc3QgZXhwaXJlc0ZpZWxkOiBJbnB1dE1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46ICdhcGlrZXktZXhwaXJlcycsXG4gICAgICBuYW1lOiAnZXhwaXJlc0luRGF5cycsXG4gICAgICBsYWJlbDogdGhpcy50KCdleHBpcmVzTGFiZWwnKSxcbiAgICAgIGhpbnQ6ICcnLFxuICAgICAgcGxhY2Vob2xkZXI6ICcnLFxuICAgICAgdHlwZTogSW5wdXRUeXBlLk5VTUJFUixcbiAgICAgIG9yZGVyOiAzLFxuICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMubWluKDEpXSxcbiAgICAgIGVycm9yczoge30sXG4gICAgICB2YWx1ZTogJycsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBJbnB1dE1ldGFkYXRhO1xuXG4gICAgY29uc3Qgc3VibWl0QnV0dG9uOiBCdXR0b25NZXRhZGF0YSA9IHtcbiAgICAgIHRva2VuOiAnYXBpa2V5LWNyZWF0ZS1zdWJtaXQnLFxuICAgICAgdGV4dDogdGhpcy50KCdjcmVhdGUnKSxcbiAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICB0eXBlOiAnc3VibWl0JyxcbiAgICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgIGV4cGFuZDogJ2Jsb2NrJyxcbiAgICAgIHN0YXRlOiB3b3JraW5nID8gQ29tcG9uZW50U3RhdGVzLldPUktJTkcgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICB9IGFzIEJ1dHRvbk1ldGFkYXRhO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgc3RhdGU6IHdvcmtpbmcgPyBDb21wb25lbnRTdGF0ZXMuV09SS0lORyA6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgICAgc2VjdGlvbnM6IFt7IG5hbWU6ICcnLCBvcmRlcjogMSwgZmllbGRzOiBbbmFtZUZpZWxkLCBleHBpcmVzRmllbGRdIH1dLFxuICAgICAgYWN0aW9uczogc3VibWl0QnV0dG9uLFxuICAgIH07XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKERFRkFVTFRfTkFNRVNQQUNFLCBBUElfS0VZU19NT0RBTF9JMThOKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKHRoaXMuaTE4bk5hbWVzcGFjZSwgQVBJX0tFWVNfTU9EQUxfSTE4Tik7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgdGhpcy5sb2FkQ2F0YWxvZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhcmdhIGVsIGNhdMOhbG9nbyBkZSBwZXJtaXNvcyB5IGxvIGZpbHRyYSBhIGxvIGFzaWduYWJsZSBhIHVuYSBBUEkgS2V5IGRlIGxhXG4gICAqIG9yZzogZGVzY2FydGEgYHNjb3BlOmludGVybmFsYCAoZWwgYmFja2VuZCB5YSBsb3Mgb21pdGUgcGFyYSBuby1zdGFmZikgeSBsb3NcbiAgICogcGVybWlzb3MgZGUgT1RSQVMgYXBwcyAoYGFwcElkICE9PSBhcHBJZCBkZWwgY2F0w6Fsb2dvYCkuIFF1ZWRhbiBsb3MgcGVybWlzb3MgZGVcbiAgICogb3JnICh1c2Vycy9yb2xlcy9yYmFjKSArIGxvcyBkZSBsYSBhcHAgYWN0dWFsLlxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkQ2F0YWxvZygpOiB2b2lkIHtcbiAgICBjb25zdCBvcmdJZCA9IHRoaXMuYWN0aXZlT3JnSWQoKTtcbiAgICBpZiAoIW9yZ0lkKSByZXR1cm47XG4gICAgdGhpcy5jYXRhbG9nLmdldENhdGFsb2cob3JnSWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiByZXMgPT4ge1xuICAgICAgICBjb25zdCBhcHBJZCA9IHJlcy5hcHBJZDtcbiAgICAgICAgY29uc3QgZmlsdGVyZWQgPSAocmVzLnBlcm1pc3Npb25zID8/IFtdKS5maWx0ZXIoXG4gICAgICAgICAgcCA9PiBwLnNjb3BlICE9PSAnaW50ZXJuYWwnICYmIChwLnNjb3BlICE9PSAnYXBwJyB8fCBwLmFwcElkID09PSBhcHBJZClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jYXRhbG9nUGVybWlzc2lvbnMuc2V0KGZpbHRlcmVkKTtcbiAgICAgICAgdGhpcy5hY3Rpb25MYWJlbHMuc2V0KHJlcy5hY3Rpb25MYWJlbHMgPz8ge30pO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgIC8vIFNpbiBjYXTDoWxvZ286IGVsIHNlbGVjdG9yIHF1ZWRhIHZhY8OtbyAoZWwgZm9ybSB2YWxpZGEg4omlMSBwZXJtaXNvKS5cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFjdGl2ZU9yZ0lkKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdSA9IHRoaXMuYXV0aC51c2VyKCkgYXMgeyBhY3RpdmVPcmdJZD86IHN0cmluZzsgYWN0aXZlT3JnPzogc3RyaW5nIH0gfCBudWxsO1xuICAgIHJldHVybiB1Py5hY3RpdmVPcmdJZCA/PyB1Py5hY3RpdmVPcmcgPz8gJyc7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLmFwaUtleXMubGlzdCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBrZXlzID0+IHtcbiAgICAgICAgdGhpcy5rZXlzLnNldChrZXlzKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHRoaXMubG9hZGluZy5zZXQoZmFsc2UpLFxuICAgIH0pO1xuICB9XG5cbiAgb3BlbkNyZWF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmVycm9yTXNnLnNldCgnJyk7XG4gICAgdGhpcy5zZWxlY3RlZFBlcm1zLnNldChbXSk7XG4gICAgdGhpcy5zaG93Q3JlYXRlLnNldCh0cnVlKTtcbiAgfVxuXG4gIG9uQ3JlYXRlU3VibWl0KGV2ZW50OiBGb3JtU3VibWl0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3VibWl0dGluZygpKSByZXR1cm47XG4gICAgdGhpcy5lcnJvck1zZy5zZXQoJycpO1xuXG4gICAgY29uc3QgbmFtZSA9IFN0cmluZyhldmVudC5maWVsZHNbJ25hbWUnXSA/PyAnJykudHJpbSgpO1xuICAgIGNvbnN0IHBlcm1pc3Npb25zID0gdGhpcy5zZWxlY3RlZFBlcm1zKCk7XG4gICAgY29uc3QgZXhwaXJlc1JhdyA9IE51bWJlcihldmVudC5maWVsZHNbJ2V4cGlyZXNJbkRheXMnXSk7XG5cbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgIHRoaXMuZXJyb3JNc2cuc2V0KHRoaXMudCgnbm9OYW1lJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXBlcm1pc3Npb25zLmxlbmd0aCkge1xuICAgICAgdGhpcy5lcnJvck1zZy5zZXQodGhpcy50KCdub1Blcm1zJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3VibWl0dGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5hcGlLZXlzXG4gICAgICAuY3JlYXRlKHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcGVybWlzc2lvbnMsXG4gICAgICAgIGV4cGlyZXNJbkRheXM6IE51bWJlci5pc0Zpbml0ZShleHBpcmVzUmF3KSAmJiBleHBpcmVzUmF3ID4gMCA/IGV4cGlyZXNSYXcgOiB1bmRlZmluZWQsXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy5zdWJtaXR0aW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5zaG93Q3JlYXRlLnNldChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5zZWNyZXQuc2V0KHJlcy5rZXkpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICB0aGlzLnN1Ym1pdHRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLmVycm9yTXNnLnNldChlcnI/LmVycm9yPy5tZXNzYWdlID8/IHRoaXMudCgnZ2VuZXJpY0Vycm9yJykpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICByZXZva2Uoa2V5OiBDbGllbnRBcGlLZXkpOiB2b2lkIHtcbiAgICBpZiAoIWNvbmZpcm0odGhpcy50KCdyZXZva2VDb25maXJtJykpKSByZXR1cm47XG4gICAgdGhpcy5hcGlLZXlzLnJldm9rZShrZXkua2V5SWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoKSA9PiB0aGlzLnJlZnJlc2goKSxcbiAgICAgIGVycm9yOiBlcnIgPT4gdGhpcy5lcnJvck1zZy5zZXQoZXJyPy5lcnJvcj8ubWVzc2FnZSA/PyB0aGlzLnQoJ2dlbmVyaWNFcnJvcicpKSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNvcHkoc2VjcmV0OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoc2VjcmV0KTtcbiAgICAgIHRoaXMuY29waWVkLnNldCh0cnVlKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGNsaXBib2FyZCBubyBkaXNwb25pYmxlIOKAlCBlbCB1c2VyIHB1ZWRlIHNlbGVjY2lvbmFyIGVsIHRleHRvIG1hbnVhbG1lbnRlXG4gICAgfVxuICB9XG5cbiAgZmluaXNoU2VjcmV0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VjcmV0LnNldChudWxsKTtcbiAgICB0aGlzLmNvcGllZC5zZXQoZmFsc2UpO1xuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgZGlzbWlzcygpOiB2b2lkIHtcbiAgICB0aGlzLl9tb2RhbFJlZj8uZGlzbWlzcyhudWxsLCAnY2FuY2VsJyk7XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLmkxOG5OYW1lc3BhY2UpO1xuICB9XG59XG4iXX0=
404
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWtleXMtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcGkta2V5cy1tb2RhbC9hcGkta2V5cy1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWpILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBa0IsZUFBZSxFQUEyQyxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEUsT0FBTyxFQUVMLHdCQUF3QixHQUV6QixNQUFNLGtEQUFrRCxDQUFDO0FBQzFELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRWhILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUU1RCxNQUFNLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDO0FBRWxEOzs7Ozs7R0FNRztBQXlMSCxNQUFNLE9BQU8scUJBQXFCO0lBb0ZoQztRQW5GUSxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEMsWUFBTyxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzNDLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFLbkMsc0JBQXNCO1FBQ2Isa0JBQWEsR0FBRyxpQkFBaUIsQ0FBQztRQUUzQyx5RUFBeUU7UUFDaEUsdUJBQWtCLEdBQUcsTUFBTSxDQUF1QixFQUFFLENBQUMsQ0FBQztRQUMvRCw4REFBOEQ7UUFDckQsaUJBQVksR0FBRyxNQUFNLENBQWlDLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLG9FQUFvRTtRQUMzRCxrQkFBYSxHQUFHLE1BQU0sQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUVyQyxTQUFJLEdBQUcsTUFBTSxDQUFpQixFQUFFLENBQUMsQ0FBQztRQUNsQyxZQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLGVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsZUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixhQUFRLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLFdBQU0sR0FBRyxNQUFNLENBQWdDLElBQUksQ0FBQyxDQUFDO1FBQ3JELFdBQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFaEM7Ozs7V0FJRztRQUNNLGVBQVUsR0FBRyxRQUFRLENBQWUsR0FBRyxFQUFFO1lBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBRWxDLE1BQU0sU0FBUyxHQUFrQjtnQkFDL0IsS0FBSyxFQUFFLGFBQWE7Z0JBQ3BCLElBQUksRUFBRSxNQUFNO2dCQUNaLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztnQkFDMUIsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUM7Z0JBQ3RDLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtnQkFDcEIsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM1RCxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDdEMsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsS0FBSyxFQUFFLGVBQWUsQ0FBQyxPQUFPO2FBQ2QsQ0FBQztZQUVuQixNQUFNLFlBQVksR0FBa0I7Z0JBQ2xDLEtBQUssRUFBRSxnQkFBZ0I7Z0JBQ3ZCLElBQUksRUFBRSxlQUFlO2dCQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7Z0JBQzdCLElBQUksRUFBRSxFQUFFO2dCQUNSLFdBQVcsRUFBRSxFQUFFO2dCQUNmLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTtnQkFDdEIsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0IsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsS0FBSyxFQUFFLGVBQWUsQ0FBQyxPQUFPO2FBQ2QsQ0FBQztZQUVuQixNQUFNLFlBQVksR0FBbUI7Z0JBQ25DLEtBQUssRUFBRSxzQkFBc0I7Z0JBQzdCLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztnQkFDdEIsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsS0FBSyxFQUFFLE9BQU87Z0JBQ2QsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE9BQU87YUFDakQsQ0FBQztZQUVwQixPQUFPO2dCQUNMLElBQUksRUFBRSxFQUFFO2dCQUNSLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPO2dCQUNsRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQztnQkFDckUsT0FBTyxFQUFFLFlBQVk7YUFDdEIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBR0QsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLFdBQVc7UUFDakIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDdkMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNWLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQ3hCLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQzdDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxVQUFVLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUN4RSxDQUFDO2dCQUNGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUM7WUFDaEQsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1YscUVBQXFFO1lBQ3ZFLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVztRQUNqQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBeUQsQ0FBQztRQUNsRixPQUFPLENBQUMsRUFBRSxXQUFXLElBQUksQ0FBQyxFQUFFLFNBQVMsSUFBSSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVPLE9BQU87UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUM1QixJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFCLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1NBQ3JDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFpQjtRQUM5QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFBRSxPQUFPO1FBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXRCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBRXpELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNwQyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU87YUFDVCxNQUFNLENBQUM7WUFDTixJQUFJO1lBQ0osV0FBVztZQUNYLGFBQWEsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUN0RixDQUFDO2FBQ0QsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUNuRSxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFpQjtRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7WUFBRSxPQUFPO1FBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDdkMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDMUIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUMvRSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFjO1FBQ3ZCLElBQUksQ0FBQztZQUNILE1BQU0sU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLDJFQUEyRTtRQUM3RSxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELENBQUMsQ0FBQyxHQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7K0dBOU1VLHFCQUFxQjttR0FBckIscUJBQXFCLGtKQXhLdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVGVCwwb0NBbkdDLFNBQVMsb0dBQ1QsVUFBVSxtRkFDVixVQUFVLDhFQUNWLFNBQVMsb1BBQ1QsVUFBVSx3S0FDVixVQUFVLHlHQUNWLGFBQWEsK0lBQ2IsZ0JBQWdCLDJFQUNoQixhQUFhLHdFQUNiLGNBQWMseUVBQ2QsMkJBQTJCOzs0RkEwS2xCLHFCQUFxQjtrQkF4TGpDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUDt3QkFDUCxTQUFTO3dCQUNULFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixTQUFTO3dCQUNULFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLDJCQUEyQjtxQkFDNUIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUZUO3dEQXdGUSxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIElucHV0LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uQnV0dG9ucywgSW9uQ29udGVudCwgSW9uSGVhZGVyLCBJb25TcGlubmVyLCBJb25Ub29sYmFyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5cbmltcG9ydCB7IEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbk1ldGFkYXRhLCBDb21wb25lbnRTdGF0ZXMsIEZvcm1NZXRhZGF0YSwgRm9ybVN1Ym1pdCwgSW5wdXRNZXRhZGF0YSwgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgQXBpS2V5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwaWtleXMvYXBpLWtleXMuc2VydmljZSc7XG5pbXBvcnQgeyBDbGllbnRBcGlLZXksIENsaWVudEFwaUtleVdpdGhTZWNyZXQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcGlrZXlzL3R5cGVzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgTG9jYWxpemVkTGFiZWwsXG4gIFBlcm1pc3Npb25DYXRhbG9nU2VydmljZSxcbiAgUGVybWlzc2lvblJlc291cmNlLFxufSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvcGVybWlzc2lvbi1jYXRhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3Blcm1pc3Npb24tc2VsZWN0b3IvcGVybWlzc2lvbi1zZWxlY3Rvci5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBBUElfS0VZU19NT0RBTF9JMThOIH0gZnJvbSAnLi9hcGkta2V5cy1tb2RhbC5pMThuJztcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuQXBpS2V5c01vZGFsJztcblxuLyoqXG4gKiBgdmFsLWFwaS1rZXlzLW1vZGFsYCDigJQgZ2VzdGnDs24gZGUgQ2xpZW50IEFQSSBLZXlzIG9yZy1zY29wZWFkYXMgKEFEUi0wMjMgZmFzZSA2KS5cbiAqXG4gKiBMaXN0YSBsYXMga2V5cyBkZSBsYSBvcmcsIHBlcm1pdGUgY3JlYXIgKG1vc3RyYW5kbyBlbCBzZWNyZXRvIFVOQSB2ZXogY29uIGNvcGlhKVxuICogeSByZXZvY2FyLiBQZW5zYWRvIHBhcmEgaGFiaWxpdGFyIGludGVncmFjaW9uZXMgTTJNIGRlbCBpbXBvcnQgZGUgbWllbWJyb3MsIHBlcm9cbiAqIHNpcnZlIGEgY3VhbHF1aWVyIHBlcm1pc28gZGVsIGNhdMOhbG9nby4gSGVhZGVyIGNhbsOzbmljbyAoUmVnbGEgIzUpLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYXBpLWtleXMtbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uQ29udGVudCxcbiAgICBJb25TcGlubmVyLFxuICAgIEZvcm1Db21wb25lbnQsXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFBlcm1pc3Npb25TZWxlY3RvckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWhlYWRlcj5cbiAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cImRpc21pc3MoKVwiPlxuICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdjbG9zZScpIH19PC9zdHJvbmc+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICA8L2lvbi1oZWFkZXI+XG5cbiAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ3RpdGxlJyksIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycgfVwiIC8+XG4gICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ2hpbnQnKSwgc2l6ZTogJ2xhcmdlJywgY29sb3I6ICcnLCBib2xkOiBmYWxzZSB9XCIgLz5cblxuICAgICAgQGlmIChzZWNyZXQoKTsgYXMgcykge1xuICAgICAgICA8IS0tIFNlY3JldG8gcmVjacOpbiBjcmVhZG86IG1vc3RyYXIgVU5BIHZleiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1zZWNyZXRcIj5cbiAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ3NlY3JldFRpdGxlJyksIHNpemU6ICdsYXJnZScsIGNvbG9yOiAnJywgYm9sZDogdHJ1ZSB9XCIgLz5cbiAgICAgICAgICA8cCBjbGFzcz1cImFwaWtleS1zZWNyZXRfX3dhcm5cIj57eyB0KCdzZWNyZXRXYXJuaW5nJykgfX08L3A+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1zZWNyZXRfX2JveFwiPlxuICAgICAgICAgICAgPGNvZGU+e3sgcy5zZWNyZXQgfX08L2NvZGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1hY3Rpb25zXCI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGNvbG9yPVwiZGFya1wiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwiY29weShzLnNlY3JldClcIj5cbiAgICAgICAgICAgICAge3sgY29waWVkKCkgPyB0KCdjb3BpZWQnKSA6IHQoJ2NvcHknKSB9fVxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwiZGFya1wiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwiZmluaXNoU2VjcmV0KClcIj5cbiAgICAgICAgICAgICAge3sgdCgnZG9uZScpIH19XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJkb3RzXCIgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPCEtLSBMaXN0YSAtLT5cbiAgICAgICAgICBAaWYgKGtleXMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIDx2YWwtdGV4dCBbcHJvcHNdPVwieyBjb250ZW50OiB0KCdlbXB0eScpLCBzaXplOiAnbWVkaXVtJywgY29sb3I6ICdkYXJrJywgYm9sZDogZmFsc2UgfVwiIC8+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBpa2V5LWxpc3RcIj5cbiAgICAgICAgICAgICAgQGZvciAoayBvZiBrZXlzKCk7IHRyYWNrIGsua2V5SWQpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBpa2V5LXJvd1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1yb3dfX21haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcGlrZXktcm93X19uYW1lXCI+e3sgay5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwaWtleS1yb3dfX21ldGFcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBrLnBlcm1pc3Npb25zLmxlbmd0aCB9fSB7eyB0KCdwZXJtc0NvdW50JykgfX0gwrcge3sgdCgnbGFzdFVzZWQnKSB9fTpcbiAgICAgICAgICAgICAgICAgICAgICB7eyBrLmxhc3RVc2VkQXQgfHwgdCgnbmV2ZXInKSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwiZGFuZ2VyXCIgc2l6ZT1cInNtYWxsXCIgc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJyZXZva2UoaylcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgdCgncmV2b2tlJykgfX1cbiAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChlcnJvck1zZygpKSB7XG4gICAgICAgICAgICA8cCBjbGFzcz1cImFwaWtleS1lcnJvclwiPnt7IGVycm9yTXNnKCkgfX08L3A+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPCEtLSBDcmVhciDigJQgdmFsLWZvcm0gKG5vbWJyZSArIGV4cGlyYWNpw7NuKSArIHNlbGVjdG9yIGRlIHBlcm1pc29zLiAtLT5cbiAgICAgICAgICBAaWYgKHNob3dDcmVhdGUoKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1jcmVhdGVcIj5cbiAgICAgICAgICAgICAgPHZhbC1wZXJtaXNzaW9uLXNlbGVjdG9yXG4gICAgICAgICAgICAgICAgW2hlYWRlcl09XCJ0KCdwZXJtaXNzaW9uc0xhYmVsJylcIlxuICAgICAgICAgICAgICAgIFtwZXJtaXNzaW9uc109XCJjYXRhbG9nUGVybWlzc2lvbnMoKVwiXG4gICAgICAgICAgICAgICAgW2FjdGlvbkxhYmVsc109XCJhY3Rpb25MYWJlbHMoKVwiXG4gICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cInNlbGVjdGVkUGVybXMoKVwiXG4gICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cInNlbGVjdGVkUGVybXMuc2V0KCRldmVudClcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8dmFsLWZvcm0gW3Byb3BzXT1cImNyZWF0ZUZvcm0oKVwiIChvblN1Ym1pdCk9XCJvbkNyZWF0ZVN1Ym1pdCgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cInNob3dDcmVhdGUuc2V0KGZhbHNlKVwiPlxuICAgICAgICAgICAgICAgIHt7IHQoJ2NhbmNlbCcpIH19XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgIDxpb24tYnV0dG9uIGV4cGFuZD1cImJsb2NrXCIgY29sb3I9XCJwcmltYXJ5XCIgc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJvcGVuQ3JlYXRlKClcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCduZXdLZXknKSB9fVxuICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2lvbi1jb250ZW50PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAvKiBTaGVldCBtb2RhbDogcGFkZGluZyBpbmZlcmlvciBnZW5lcm9zbyBwYXJhIHBvZGVyIHNjcm9sbGVhciBoYXN0YSBlbFxuICAgICAgICAgw7psdGltbyBlbGVtZW50byAoYm90w7NuIGNyZWFyKSBzaW4gcXVlIHF1ZWRlIGJham8gZWwgYm9yZGUvaW5kaWNhZG9yLiAqL1xuICAgICAgaW9uLWNvbnRlbnQge1xuICAgICAgICAtLXBhZGRpbmctYm90dG9tOiA2NHB4O1xuICAgICAgfVxuICAgICAgdmFsLWRpc3BsYXkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgfVxuICAgICAgdmFsLXRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LWxpc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLWlvbi1jb2xvci1saWdodCk7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXJvd19fbWFpbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXJvd19fbmFtZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXJvd19fbWV0YSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLXNoYWRlLCAjNmI2ZTc2KTtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktY3JlYXRlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICBwYWRkaW5nOiA0cHggMCAwIDA7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXBlcm1zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuICAgICAgLmFwaWtleS1lcnJvciB7XG4gICAgICAgIG1hcmdpbjogOHB4IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyLCAjYzAzOTJiKTtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktc2VjcmV0X193YXJuIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci13YXJuaW5nLXNoYWRlLCAjYjg4NjAwKTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMTJweCAwO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1zZWNyZXRfX2JveCB7XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXBpS2V5c01vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhcGlLZXlzID0gaW5qZWN0KEFwaUtleVNlcnZpY2UpO1xuICBwcml2YXRlIGNhdGFsb2cgPSBpbmplY3QoUGVybWlzc2lvbkNhdGFsb2dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcblxuICAvKiogSW55ZWN0YWRvIHBvciBgTW9kYWxTZXJ2aWNlLm9wZW5gLiAqL1xuICBASW5wdXQoKSBfbW9kYWxSZWY/OiB7IGRpc21pc3M6IChkYXRhPzogdW5rbm93biwgcm9sZT86IHN0cmluZykgPT4gdm9pZCB9O1xuXG4gIC8qKiBOYW1lc3BhY2UgaTE4bi4gKi9cbiAgQElucHV0KCkgaTE4bk5hbWVzcGFjZSA9IERFRkFVTFRfTkFNRVNQQUNFO1xuXG4gIC8qKiBQZXJtaXNvcyBkZWwgY2F0w6Fsb2dvIFlBIGZpbHRyYWRvcyAoc2luIGludGVybmFsLCBzaW4gb3RyYXMgYXBwcykuICovXG4gIHJlYWRvbmx5IGNhdGFsb2dQZXJtaXNzaW9ucyA9IHNpZ25hbDxQZXJtaXNzaW9uUmVzb3VyY2VbXT4oW10pO1xuICAvKiogTGFiZWxzIGRlIGFjY2nDs24gKGVzL2VuKSBkZWwgYmFja2VuZCwgcGFyYSBlbCBzZWxlY3Rvci4gKi9cbiAgcmVhZG9ubHkgYWN0aW9uTGFiZWxzID0gc2lnbmFsPFJlY29yZDxzdHJpbmcsIExvY2FsaXplZExhYmVsPj4oe30pO1xuICAvKiogUGVybWlzb3Mgc2VsZWNjaW9uYWRvcyBwYXJhIGxhIG51ZXZhIGtleSAoYHJlc291cmNlOmFjdGlvbmApLiAqL1xuICByZWFkb25seSBzZWxlY3RlZFBlcm1zID0gc2lnbmFsPHN0cmluZ1tdPihbXSk7XG5cbiAgcmVhZG9ubHkga2V5cyA9IHNpZ25hbDxDbGllbnRBcGlLZXlbXT4oW10pO1xuICByZWFkb25seSBsb2FkaW5nID0gc2lnbmFsKHRydWUpO1xuICByZWFkb25seSBzaG93Q3JlYXRlID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgc3VibWl0dGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGVycm9yTXNnID0gc2lnbmFsKCcnKTtcbiAgcmVhZG9ubHkgc2VjcmV0ID0gc2lnbmFsPENsaWVudEFwaUtleVdpdGhTZWNyZXQgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgY29waWVkID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKipcbiAgICogRm9ybU1ldGFkYXRhIGRlbCBmb3JtIGRlIGNyZWFyIGtleSAodmFsLWZvcm0pLiBSZWFjdGl2byBhIGlkaW9tYSArIHBlcm1pc29zXG4gICAqIGRpc3BvbmlibGVzICsgZXN0YWRvIHN1Ym1pdHRpbmcuIFJlZW1wbGF6YSBsb3MgaW9uLWlucHV0L2lvbi1jaGVja2JveCBjcnVkb3NcbiAgICogcG9yIHZhbC1mb3JtIChjb25zaXN0ZW5jaWEgY29uIGVsIHJlc3RvIGRlIG1vZGFsZXMgZGVsIGZhY3RvcnkpLlxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlRm9ybSA9IGNvbXB1dGVkPEZvcm1NZXRhZGF0YT4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgY29uc3Qgd29ya2luZyA9IHRoaXMuc3VibWl0dGluZygpO1xuXG4gICAgY29uc3QgbmFtZUZpZWxkOiBJbnB1dE1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46ICdhcGlrZXktbmFtZScsXG4gICAgICBuYW1lOiAnbmFtZScsXG4gICAgICBsYWJlbDogdGhpcy50KCduYW1lTGFiZWwnKSxcbiAgICAgIGhpbnQ6ICcnLFxuICAgICAgcGxhY2Vob2xkZXI6IHRoaXMudCgnbmFtZVBsYWNlaG9sZGVyJyksXG4gICAgICB0eXBlOiBJbnB1dFR5cGUuVEVYVCxcbiAgICAgIG9yZGVyOiAxLFxuICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEyMCldLFxuICAgICAgZXJyb3JzOiB7IHJlcXVpcmVkOiB0aGlzLnQoJ25vTmFtZScpIH0sXG4gICAgICB2YWx1ZTogJycsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBJbnB1dE1ldGFkYXRhO1xuXG4gICAgY29uc3QgZXhwaXJlc0ZpZWxkOiBJbnB1dE1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46ICdhcGlrZXktZXhwaXJlcycsXG4gICAgICBuYW1lOiAnZXhwaXJlc0luRGF5cycsXG4gICAgICBsYWJlbDogdGhpcy50KCdleHBpcmVzTGFiZWwnKSxcbiAgICAgIGhpbnQ6ICcnLFxuICAgICAgcGxhY2Vob2xkZXI6ICcnLFxuICAgICAgdHlwZTogSW5wdXRUeXBlLk5VTUJFUixcbiAgICAgIG9yZGVyOiAzLFxuICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMubWluKDEpXSxcbiAgICAgIGVycm9yczoge30sXG4gICAgICB2YWx1ZTogJycsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBJbnB1dE1ldGFkYXRhO1xuXG4gICAgY29uc3Qgc3VibWl0QnV0dG9uOiBCdXR0b25NZXRhZGF0YSA9IHtcbiAgICAgIHRva2VuOiAnYXBpa2V5LWNyZWF0ZS1zdWJtaXQnLFxuICAgICAgdGV4dDogdGhpcy50KCdjcmVhdGUnKSxcbiAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICB0eXBlOiAnc3VibWl0JyxcbiAgICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgIGV4cGFuZDogJ2Jsb2NrJyxcbiAgICAgIHN0YXRlOiB3b3JraW5nID8gQ29tcG9uZW50U3RhdGVzLldPUktJTkcgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICB9IGFzIEJ1dHRvbk1ldGFkYXRhO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgc3RhdGU6IHdvcmtpbmcgPyBDb21wb25lbnRTdGF0ZXMuV09SS0lORyA6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgICAgc2VjdGlvbnM6IFt7IG5hbWU6ICcnLCBvcmRlcjogMSwgZmllbGRzOiBbbmFtZUZpZWxkLCBleHBpcmVzRmllbGRdIH1dLFxuICAgICAgYWN0aW9uczogc3VibWl0QnV0dG9uLFxuICAgIH07XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKERFRkFVTFRfTkFNRVNQQUNFLCBBUElfS0VZU19NT0RBTF9JMThOKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKHRoaXMuaTE4bk5hbWVzcGFjZSwgQVBJX0tFWVNfTU9EQUxfSTE4Tik7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgdGhpcy5sb2FkQ2F0YWxvZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhcmdhIGVsIGNhdMOhbG9nbyBkZSBwZXJtaXNvcyB5IGxvIGZpbHRyYSBhIGxvIGFzaWduYWJsZSBhIHVuYSBBUEkgS2V5IGRlIGxhXG4gICAqIG9yZzogZGVzY2FydGEgYHNjb3BlOmludGVybmFsYCAoZWwgYmFja2VuZCB5YSBsb3Mgb21pdGUgcGFyYSBuby1zdGFmZikgeSBsb3NcbiAgICogcGVybWlzb3MgZGUgT1RSQVMgYXBwcyAoYGFwcElkICE9PSBhcHBJZCBkZWwgY2F0w6Fsb2dvYCkuIFF1ZWRhbiBsb3MgcGVybWlzb3MgZGVcbiAgICogb3JnICh1c2Vycy9yb2xlcy9yYmFjKSArIGxvcyBkZSBsYSBhcHAgYWN0dWFsLlxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkQ2F0YWxvZygpOiB2b2lkIHtcbiAgICBjb25zdCBvcmdJZCA9IHRoaXMuYWN0aXZlT3JnSWQoKTtcbiAgICBpZiAoIW9yZ0lkKSByZXR1cm47XG4gICAgdGhpcy5jYXRhbG9nLmdldENhdGFsb2cob3JnSWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiByZXMgPT4ge1xuICAgICAgICBjb25zdCBhcHBJZCA9IHJlcy5hcHBJZDtcbiAgICAgICAgY29uc3QgZmlsdGVyZWQgPSAocmVzLnBlcm1pc3Npb25zID8/IFtdKS5maWx0ZXIoXG4gICAgICAgICAgcCA9PiBwLnNjb3BlICE9PSAnaW50ZXJuYWwnICYmIChwLnNjb3BlICE9PSAnYXBwJyB8fCBwLmFwcElkID09PSBhcHBJZClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jYXRhbG9nUGVybWlzc2lvbnMuc2V0KGZpbHRlcmVkKTtcbiAgICAgICAgdGhpcy5hY3Rpb25MYWJlbHMuc2V0KHJlcy5hY3Rpb25MYWJlbHMgPz8ge30pO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgIC8vIFNpbiBjYXTDoWxvZ286IGVsIHNlbGVjdG9yIHF1ZWRhIHZhY8OtbyAoZWwgZm9ybSB2YWxpZGEg4omlMSBwZXJtaXNvKS5cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFjdGl2ZU9yZ0lkKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdSA9IHRoaXMuYXV0aC51c2VyKCkgYXMgeyBhY3RpdmVPcmdJZD86IHN0cmluZzsgYWN0aXZlT3JnPzogc3RyaW5nIH0gfCBudWxsO1xuICAgIHJldHVybiB1Py5hY3RpdmVPcmdJZCA/PyB1Py5hY3RpdmVPcmcgPz8gJyc7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLmFwaUtleXMubGlzdCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBrZXlzID0+IHtcbiAgICAgICAgdGhpcy5rZXlzLnNldChrZXlzKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHRoaXMubG9hZGluZy5zZXQoZmFsc2UpLFxuICAgIH0pO1xuICB9XG5cbiAgb3BlbkNyZWF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmVycm9yTXNnLnNldCgnJyk7XG4gICAgdGhpcy5zZWxlY3RlZFBlcm1zLnNldChbXSk7XG4gICAgdGhpcy5zaG93Q3JlYXRlLnNldCh0cnVlKTtcbiAgfVxuXG4gIG9uQ3JlYXRlU3VibWl0KGV2ZW50OiBGb3JtU3VibWl0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3VibWl0dGluZygpKSByZXR1cm47XG4gICAgdGhpcy5lcnJvck1zZy5zZXQoJycpO1xuXG4gICAgY29uc3QgbmFtZSA9IFN0cmluZyhldmVudC5maWVsZHNbJ25hbWUnXSA/PyAnJykudHJpbSgpO1xuICAgIGNvbnN0IHBlcm1pc3Npb25zID0gdGhpcy5zZWxlY3RlZFBlcm1zKCk7XG4gICAgY29uc3QgZXhwaXJlc1JhdyA9IE51bWJlcihldmVudC5maWVsZHNbJ2V4cGlyZXNJbkRheXMnXSk7XG5cbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgIHRoaXMuZXJyb3JNc2cuc2V0KHRoaXMudCgnbm9OYW1lJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXBlcm1pc3Npb25zLmxlbmd0aCkge1xuICAgICAgdGhpcy5lcnJvck1zZy5zZXQodGhpcy50KCdub1Blcm1zJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3VibWl0dGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5hcGlLZXlzXG4gICAgICAuY3JlYXRlKHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcGVybWlzc2lvbnMsXG4gICAgICAgIGV4cGlyZXNJbkRheXM6IE51bWJlci5pc0Zpbml0ZShleHBpcmVzUmF3KSAmJiBleHBpcmVzUmF3ID4gMCA/IGV4cGlyZXNSYXcgOiB1bmRlZmluZWQsXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy5zdWJtaXR0aW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5zaG93Q3JlYXRlLnNldChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5zZWNyZXQuc2V0KHJlcy5rZXkpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICB0aGlzLnN1Ym1pdHRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLmVycm9yTXNnLnNldChlcnI/LmVycm9yPy5tZXNzYWdlID8/IHRoaXMudCgnZ2VuZXJpY0Vycm9yJykpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICByZXZva2Uoa2V5OiBDbGllbnRBcGlLZXkpOiB2b2lkIHtcbiAgICBpZiAoIWNvbmZpcm0odGhpcy50KCdyZXZva2VDb25maXJtJykpKSByZXR1cm47XG4gICAgdGhpcy5hcGlLZXlzLnJldm9rZShrZXkua2V5SWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoKSA9PiB0aGlzLnJlZnJlc2goKSxcbiAgICAgIGVycm9yOiBlcnIgPT4gdGhpcy5lcnJvck1zZy5zZXQoZXJyPy5lcnJvcj8ubWVzc2FnZSA/PyB0aGlzLnQoJ2dlbmVyaWNFcnJvcicpKSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNvcHkoc2VjcmV0OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoc2VjcmV0KTtcbiAgICAgIHRoaXMuY29waWVkLnNldCh0cnVlKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGNsaXBib2FyZCBubyBkaXNwb25pYmxlIOKAlCBlbCB1c2VyIHB1ZWRlIHNlbGVjY2lvbmFyIGVsIHRleHRvIG1hbnVhbG1lbnRlXG4gICAgfVxuICB9XG5cbiAgZmluaXNoU2VjcmV0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VjcmV0LnNldChudWxsKTtcbiAgICB0aGlzLmNvcGllZC5zZXQoZmFsc2UpO1xuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgZGlzbWlzcygpOiB2b2lkIHtcbiAgICB0aGlzLl9tb2RhbFJlZj8uZGlzbWlzcyhudWxsLCAnY2FuY2VsJyk7XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLmkxOG5OYW1lc3BhY2UpO1xuICB9XG59XG4iXX0=
@@ -245,7 +245,7 @@ export class ApiKeysViewComponent {
245
245
  }
246
246
  </div>
247
247
  </val-container>
248
- `, isInline: true, styles: [".apikeys{padding:8px 0 24px}.apikeys__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.apikeys__text{flex:1;min-width:0}.apikeys__text val-display{display:block;margin-bottom:4px}.apikeys__cta{flex-shrink:0}.apikeys__list{display:flex;flex-direction:column;gap:10px}.apikey-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--val-border-color, rgba(0, 0, 0, .1))}.apikey-row__main{display:flex;flex-direction:column;gap:4px;min-width:0}.apikey-row__name{font-weight:600;color:var(--ion-color-dark)}.apikey-row__meta{font-size:.78rem;color:var(--ion-color-medium)}.apikey-row__creator{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--ion-color-medium)}.apikey-row__creator-text{min-width:0}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: UserAvatarComponent, selector: "val-user-avatar", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: EmptyStateComponent, selector: "val-empty-state", inputs: ["props"] }, { kind: "component", type: SkeletonLayoutComponent, selector: "val-skeleton-layout", inputs: ["props"] }, { kind: "component", type: ContainerComponent, selector: "val-container", inputs: ["props"] }] }); }
248
+ `, isInline: true, styles: [".apikeys{padding:8px 0 24px}.apikeys__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.apikeys__text{flex:1;min-width:0}.apikeys__text val-display{display:block;margin-bottom:4px}.apikeys__cta{flex-shrink:0}.apikeys__list{display:flex;flex-direction:column;gap:10px}.apikey-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--val-border-color, rgba(0, 0, 0, .1))}.apikey-row__main{display:flex;flex-direction:column;gap:4px;min-width:0}.apikey-row__name{font-weight:600;color:var(--ion-color-dark)}.apikey-row__meta{font-size:.78rem;color:var(--ion-color-dark)}.apikey-row__creator{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--ion-color-dark)}.apikey-row__creator-text{min-width:0}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: UserAvatarComponent, selector: "val-user-avatar", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: EmptyStateComponent, selector: "val-empty-state", inputs: ["props"] }, { kind: "component", type: SkeletonLayoutComponent, selector: "val-skeleton-layout", inputs: ["props"] }, { kind: "component", type: ContainerComponent, selector: "val-container", inputs: ["props"] }] }); }
249
249
  }
250
250
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ApiKeysViewComponent, decorators: [{
251
251
  type: Component,
@@ -312,8 +312,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
312
312
  }
313
313
  </div>
314
314
  </val-container>
315
- `, styles: [".apikeys{padding:8px 0 24px}.apikeys__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.apikeys__text{flex:1;min-width:0}.apikeys__text val-display{display:block;margin-bottom:4px}.apikeys__cta{flex-shrink:0}.apikeys__list{display:flex;flex-direction:column;gap:10px}.apikey-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--val-border-color, rgba(0, 0, 0, .1))}.apikey-row__main{display:flex;flex-direction:column;gap:4px;min-width:0}.apikey-row__name{font-weight:600;color:var(--ion-color-dark)}.apikey-row__meta{font-size:.78rem;color:var(--ion-color-medium)}.apikey-row__creator{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--ion-color-medium)}.apikey-row__creator-text{min-width:0}\n"] }]
315
+ `, styles: [".apikeys{padding:8px 0 24px}.apikeys__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.apikeys__text{flex:1;min-width:0}.apikeys__text val-display{display:block;margin-bottom:4px}.apikeys__cta{flex-shrink:0}.apikeys__list{display:flex;flex-direction:column;gap:10px}.apikey-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--val-border-color, rgba(0, 0, 0, .1))}.apikey-row__main{display:flex;flex-direction:column;gap:4px;min-width:0}.apikey-row__name{font-weight:600;color:var(--ion-color-dark)}.apikey-row__meta{font-size:.78rem;color:var(--ion-color-dark)}.apikey-row__creator{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--ion-color-dark)}.apikey-row__creator-text{min-width:0}\n"] }]
316
316
  }], ctorParameters: () => [], propDecorators: { config: [{
317
317
  type: Input
318
318
  }] } });
319
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWtleXMtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2FwaS1rZXlzLXZpZXcvYXBpLWtleXMtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWpFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRXhGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBa0IsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFD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LElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1RyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLEVBQUUsQ0FBQyxHQUFXO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQXRLVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiwyR0F6SHJCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzRFQseTVCQS9EQyxlQUFlLDBHQUNmLGdCQUFnQiwyRUFFaEIsY0FBYyx5RUFDZCxtQkFBbUIscUdBQ25CLG1CQUFtQiwrRUFDbkIsdUJBQXVCLG1GQUN2QixrQkFBa0I7OzRGQTJIVCxvQkFBb0I7a0JBdEloQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ1AsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixrQkFBa0I7cUJBQ25CLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNEVDt3REFnRlEsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBJbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBGaXJlc3RvcmUsIGRvYywgZ2V0RG9jIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9maXJlc3RvcmUnO1xuXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9jb250YWluZXIvY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVc2VyQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdXNlci1hdmF0YXIvdXNlci1hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9lbXB0eS1zdGF0ZS90eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVFcnJvclN0YXRlUHJvcHMgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvZmFjdG9yeSc7XG5pbXBvcnQgeyBTa2VsZXRvbkxheW91dENvbXBvbmVudCB9IGZyb20gJy4uL3NrZWxldG9uLWxheW91dC9za2VsZXRvbi1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbk1ldGFkYXRhLCBDb21wb25lbnRTdGF0ZXMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwaUtleVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcGlrZXlzL2FwaS1rZXlzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xpZW50QXBpS2V5IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBpa2V5cy90eXBlcyc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24vbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21vZGFsL21vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25EaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsdGVjaEVycm9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vycm9ycy92YWx0ZWNoLWVycm9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgaW50ZXJwcmV0RXJyb3IgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvaW50ZXJwcmV0LWVycm9yJztcbmltcG9ydCB7IGNvbm5lY3RQYWdlUmVmcmVzaCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3BhZ2UtcmVmcmVzaC9wYWdlLXJlZnJlc2guc2VydmljZSc7XG5cbmltcG9ydCB7IEFwaUtleUNyZWF0ZU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vYXBpLWtleS1jcmVhdGUtbW9kYWwvYXBpLWtleS1jcmVhdGUtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEFQSV9LRVlTX1ZJRVdfSTE4TiB9IGZyb20gJy4vYXBpLWtleXMtdmlldy5pMThuJztcbmltcG9ydCB7IEFwaUtleXNWaWV3Q29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IERFRkFVTFRfTkFNRVNQQUNFID0gJ1NldHRpbmdzLkFwaUtleXMnO1xuXG4vKiogS2V5IGVucmlxdWVjaWRhIGNvbiBlbCBwZXJmaWwgcMO6YmxpY28gKGhhbmRsZS9hdmF0YXIvbmFtZSkgZGUgc3UgY3JlYWRvci4gKi9cbmludGVyZmFjZSBBcGlLZXlSb3cgZXh0ZW5kcyBDbGllbnRBcGlLZXkge1xuICBjcmVhdG9yTmFtZT86IHN0cmluZztcbiAgY3JlYXRvckhhbmRsZT86IHN0cmluZztcbiAgY3JlYXRvckF2YXRhcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBgdmFsLWFwaS1rZXlzLXZpZXdgIOKAlCB2aXN0YSBmdWxsLWZlYXR1cmUgZGUgZ2VzdGnDs24gZGUgQ2xpZW50IEFQSSBLZXlzIChBRFItMDIxKS5cbiAqXG4gKiBSZWVtcGxhemEgYWwgYHZhbC1hcGkta2V5cy1tb2RhbGAgY29tbyBwYW50YWxsYSBwcm9waWE6IG9mcmVjZSAqKmNyZWFyKiogYXJyaWJhXG4gKiAoQ1RBIHF1ZSBhYnJlIGB2YWwtYXBpLWtleS1jcmVhdGUtbW9kYWxgKSB5ICoqbGlzdGEqKiBhYmFqbywgY29uIHF1acOpbiBsYSBjcmXDs1xuICogKGF2YXRhciArIGhhbmRsZSwgcmVzdWVsdG8gZGUgYC9wcm9maWxlc2ApIHkgbGEgZmVjaGEgZGUgY3JlYWNpw7NuLiBSZXZvY2FyIGNvblxuICogY29uZmlybWFjacOzbiBkZXN0cnVjdGl2YS4gRXN0YWRvcyBsb2FkaW5nIC8gZXJyb3IgLyBlbXB0eSAoQ2FwYSA0KS5cbiAqXG4gKiBOTyByZW5kZXJpemEgaW9uLWNvbnRlbnQg4oCUIHZpdmUgZGVudHJvIGRlIGB2YWwtcGFnZS13cmFwcGVyYC4gSGVhZGVyIHbDrWFcbiAqIGBOYXZpZ2F0aW9uU2VydmljZS5zZXRCYWNrSGVhZGVyYC4gaTE4biBhdXRvLXJlZ2lzdHJhZG8gYmFqbyBgaTE4bk5hbWVzcGFjZWAuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hcGkta2V5cy12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBEaXNwbGF5Q29tcG9uZW50LFxuICAgIFRleHRDb21wb25lbnQsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gICAgVXNlckF2YXRhckNvbXBvbmVudCxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIFNrZWxldG9uTGF5b3V0Q29tcG9uZW50LFxuICAgIENvbnRhaW5lckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8dmFsLWNvbnRhaW5lciBbcHJvcHNdPVwieyBzaXplOiAnbWQnLCBwYWRkaW5nOiAnbm9uZScgfVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImFwaWtleXNcIj5cbiAgICAgICAgPGhlYWRlciBjbGFzcz1cImFwaWtleXNfX2hlYWRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXlzX190ZXh0XCI+XG4gICAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInsgY29udGVudDogdHQoJ3RpdGxlJyksIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycgfVwiIC8+XG4gICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IHR0KCdzdWJ0aXRsZScpLCBzaXplOiAnbGFyZ2UnLCBjb2xvcjogJ2RhcmsnLCBib2xkOiBmYWxzZSB9XCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8dmFsLWJ1dHRvbiBjbGFzcz1cImFwaWtleXNfX2N0YVwiIFtwcm9wc109XCJuZXdLZXlCdXR0b24oKVwiIChvbkNsaWNrKT1cIm9wZW5DcmVhdGUoKVwiIC8+XG4gICAgICAgIDwvaGVhZGVyPlxuXG4gICAgICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICAgICAgPHZhbC1za2VsZXRvbi1sYXlvdXQgW3Byb3BzXT1cInsgcHJlc2V0OiAnbGlzdCcsIHJvd3M6IDMgfVwiIC8+XG4gICAgICAgIH0gQGVsc2UgaWYgKGVycm9yU3RhdGUoKSkge1xuICAgICAgICAgIDx2YWwtZW1wdHktc3RhdGUgW3Byb3BzXT1cImVycm9yU3RhdGUoKSFcIiAvPlxuICAgICAgICB9IEBlbHNlIGlmIChrZXlzKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgPHZhbC1lbXB0eS1zdGF0ZSBbcHJvcHNdPVwiZW1wdHlTdGF0ZSgpXCIgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleXNfX2xpc3RcIj5cbiAgICAgICAgICAgIEBmb3IgKGsgb2Yga2V5cygpOyB0cmFjayBrLmtleUlkKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktcm93XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1yb3dfX21haW5cIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBpa2V5LXJvd19fbmFtZVwiPnt7IGsubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBpa2V5LXJvd19fbWV0YVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBrLnBlcm1pc3Npb25zLmxlbmd0aCB9fSB7eyB0dCgncGVybXNDb3VudCcpIH19IMK3XG4gICAgICAgICAgICAgICAgICAgIHt7IGsuc3RhdHVzID09PSAncmV2b2tlZCcgPyB0dCgnc3RhdHVzUmV2b2tlZCcpIDogdHQoJ3N0YXR1c0FjdGl2ZScpIH19IMK3IHt7IHR0KCdsYXN0VXNlZCcpIH19OlxuICAgICAgICAgICAgICAgICAgICB7eyBmb3JtYXREYXRlKGsubGFzdFVzZWRBdCkgfHwgdHQoJ25ldmVyJykgfX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBpa2V5LXJvd19fY3JlYXRvclwiPlxuICAgICAgICAgICAgICAgICAgICA8dmFsLXVzZXItYXZhdGFyXG4gICAgICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGsuY3JlYXRvck5hbWUgfHwgay5jcmVhdG9ySGFuZGxlIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXZhdGFyVXJsOiBrLmNyZWF0b3JBdmF0YXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAneHNtYWxsJyxcbiAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcGlrZXktcm93X19jcmVhdG9yLXRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyB0dCgnY3JlYXRlZEJ5JykgfX1cbiAgICAgICAgICAgICAgICAgICAgICB7eyBjcmVhdG9yTGFiZWwoaykgfX1cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZvcm1hdERhdGUoay5jcmVhdGVkQXQpOyBhcyBkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICDCtyB7eyB0dCgnY3JlYXRlZE9uJykgfX0ge3sgZCB9fVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIEBpZiAoay5zdGF0dXMgIT09ICdyZXZva2VkJykge1xuICAgICAgICAgICAgICAgICAgPHZhbC1idXR0b24gW3Byb3BzXT1cInJldm9rZUJ1dHRvbihrKVwiIChvbkNsaWNrKT1cInJldm9rZShrKVwiIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC92YWwtY29udGFpbmVyPlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAvKiBBbmNobyB5IGNyZWNpbWllbnRvIGNvbiBlbCByYWlsIGNvbGFwc2FkbyBsb3MgZGEgdmFsLWNvbnRhaW5lciAoc2l6ZVxuICAgICAgICAgJ21kJyksIG5vIENTUyBsb2NhbDogdmVyIGNvbnRhaW5lci5jb21wb25lbnQuc2Nzcy4gKi9cbiAgICAgIC5hcGlrZXlzIHtcbiAgICAgICAgcGFkZGluZzogOHB4IDAgMjRweDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXlzX19oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICB9XG4gICAgICAuYXBpa2V5c19fdGV4dCB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXlzX190ZXh0IHZhbC1kaXNwbGF5IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXlzX19jdGEge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXlzX19saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS12YWwtYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3dfX21haW4ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3dfX25hbWUge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3dfX21ldGEge1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtKTtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktcm93X19jcmVhdG9yIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0pO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3dfX2NyZWF0b3ItdGV4dCB7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBcGlLZXlzVmlld0NvbXBvbmVudCB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgYXBpS2V5cyA9IGluamVjdChBcGlLZXlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBmaXJlc3RvcmUgPSBpbmplY3QoRmlyZXN0b3JlKTtcbiAgcHJpdmF0ZSBuYXYgPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIG1vZGFsU2VydmljZSA9IGluamVjdChNb2RhbFNlcnZpY2UpO1xuICBwcml2YXRlIHRvYXN0ID0gaW5qZWN0KFRvYXN0U2VydmljZSk7XG4gIHByaXZhdGUgY29uZmlybURpYWxvZyA9IGluamVjdChDb25maXJtYXRpb25EaWFsb2dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG4gIHByaXZhdGUgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgLyoqIENvbmZpZyB2w61hIEBJbnB1dCAob2JqZWN0LWZpcnN0KTsgZmFsbGJhY2sgYWwgcm91dGUgZGF0YSBgYXBpS2V5c0NvbmZpZ2AuICovXG4gIEBJbnB1dCgpIGNvbmZpZz86IEFwaUtleXNWaWV3Q29uZmlnO1xuXG4gIHJlYWRvbmx5IHJlc29sdmVkQ29uZmlnID0gY29tcHV0ZWQ8UmVxdWlyZWQ8QXBpS2V5c1ZpZXdDb25maWc+PigoKSA9PiB7XG4gICAgY29uc3QgZnJvbVJvdXRlID0gKHRoaXMucm91dGU/LnNuYXBzaG90LmRhdGFbJ2FwaUtleXNDb25maWcnXSA/PyB7fSkgYXMgQXBpS2V5c1ZpZXdDb25maWc7XG4gICAgY29uc3QgbWVyZ2VkOiBBcGlLZXlzVmlld0NvbmZpZyA9IHsgLi4uZnJvbVJvdXRlLCAuLi4odGhpcy5jb25maWcgPz8ge30pIH07XG4gICAgcmV0dXJuIHsgaTE4bk5hbWVzcGFjZTogbWVyZ2VkLmkxOG5OYW1lc3BhY2UgPz8gREVGQVVMVF9OQU1FU1BBQ0UgfTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBnZXQgbnMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZENvbmZpZygpLmkxOG5OYW1lc3BhY2U7XG4gIH1cblxuICByZWFkb25seSBrZXlzID0gc2lnbmFsPEFwaUtleVJvd1tdPihbXSk7XG4gIHJlYWRvbmx5IGxvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBsb2FkRXJyb3IgPSBzaWduYWw8dW5rbm93biB8IG51bGw+KG51bGwpO1xuXG4gIHJlYWRvbmx5IGFjdGl2ZU9yZ0lkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHUgPSB0aGlzLmF1dGgudXNlcigpIGFzIHsgYWN0aXZlT3JnSWQ/OiBzdHJpbmc7IGFjdGl2ZU9yZz86IHN0cmluZyB9IHwgbnVsbDtcbiAgICByZXR1cm4gdT8uYWN0aXZlT3JnSWQgPz8gdT8uYWN0aXZlT3JnID8/ICcnO1xuICB9KTtcblxuICByZWFkb25seSBuZXdLZXlCdXR0b24gPSBjb21wdXRlZDxQYXJ0aWFsPEJ1dHRvbk1ldGFkYXRhPj4oKCkgPT4gKHtcbiAgICB0ZXh0OiB0aGlzLnR0KCduZXdLZXknKSxcbiAgICBjb2xvcjogJ2RhcmsnLFxuICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgc2l6ZTogJ3NtYWxsJyxcbiAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gIH0pKTtcblxuICByZWFkb25seSBlcnJvclN0YXRlID0gY29tcHV0ZWQ8RW1wdHlTdGF0ZU1ldGFkYXRhIHwgbnVsbD4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgY29uc3QgZXJyID0gdGhpcy5sb2FkRXJyb3IoKTtcbiAgICBpZiAoIWVycikgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIGNyZWF0ZUVycm9yU3RhdGVQcm9wcyhlcnIsIHtcbiAgICAgIHRpdGxlOiB7IG9mZmxpbmU6IHRoaXMudHQoJ29mZmxpbmVUaXRsZScpLCBlcnJvcjogdGhpcy50dCgnZXJyb3JUaXRsZScpIH0sXG4gICAgICBkZXNjcmlwdGlvbjogeyBvZmZsaW5lOiB0aGlzLnR0KCdvZmZsaW5lSGludCcpLCBlcnJvcjogaW50ZXJwcmV0RXJyb3IoZXJyKS5tZXNzYWdlIH0sXG4gICAgICByZXRyeUxhYmVsOiB0aGlzLnR0KCdyZXRyeScpLFxuICAgICAgb25SZXRyeTogKCkgPT4gdGhpcy5sb2FkKCksXG4gICAgICByZXRyeWluZzogdGhpcy5sb2FkaW5nKCksXG4gICAgfSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGVtcHR5U3RhdGUgPSBjb21wdXRlZDxFbXB0eVN0YXRlTWV0YWRhdGE+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB7IHZhcmlhbnQ6ICdlbXB0eScsIHRpdGxlOiB0aGlzLnR0KCdlbXB0eScpLCBkZXNjcmlwdGlvbjogdGhpcy50dCgnZW1wdHlIaW50JykgfTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHModGhpcy5ucywgQVBJX0tFWVNfVklFV19JMThOKTtcbiAgICB0aGlzLm5hdi5zZXRCYWNrSGVhZGVyKCdwYWdlVGl0bGUnLCB0aGlzLm5zLCB7IHdpdGhNZW51OiB0cnVlIH0pO1xuICAgIHRoaXMubG9hZCgpO1xuICAgIGNvbm5lY3RQYWdlUmVmcmVzaCgoKSA9PiB0aGlzLmxvYWQoKSk7XG4gIH1cblxuICByZXZva2VCdXR0b24oazogQXBpS2V5Um93KTogUGFydGlhbDxCdXR0b25NZXRhZGF0YT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0ZXh0OiB0aGlzLnR0KCdyZXZva2UnKSxcbiAgICAgIGNvbG9yOiAnZGFuZ2VyJyxcbiAgICAgIGZpbGw6ICdjbGVhcicsXG4gICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgICB0b2tlbjogay5rZXlJZCxcbiAgICB9O1xuICB9XG5cbiAgbG9hZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYWN0aXZlT3JnSWQoKSkgcmV0dXJuO1xuICAgIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5sb2FkRXJyb3Iuc2V0KG51bGwpO1xuICAgIHRoaXMuYXBpS2V5cy5saXN0KCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IGFzeW5jIGtleXMgPT4ge1xuICAgICAgICB0aGlzLmtleXMuc2V0KGF3YWl0IHRoaXMuZW5yaWNoV2l0aENyZWF0b3JzKGtleXMpKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgIHRoaXMubG9hZEVycm9yLnNldChlcnIpO1xuICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKiogUmVzdWVsdmUgaGFuZGxlL2F2YXRhci9uYW1lIGRlbCBjcmVhZG9yIChgY3JlYXRlZEJ5YCkgZGVzZGUgYC9wcm9maWxlc2AuICovXG4gIHByaXZhdGUgYXN5bmMgZW5yaWNoV2l0aENyZWF0b3JzKGtleXM6IENsaWVudEFwaUtleVtdKTogUHJvbWlzZTxBcGlLZXlSb3dbXT4ge1xuICAgIGNvbnN0IGlkcyA9IEFycmF5LmZyb20obmV3IFNldChrZXlzLm1hcChrID0+IGsuY3JlYXRlZEJ5KS5maWx0ZXIoQm9vbGVhbikpKTtcbiAgICBjb25zdCBwcm9maWxlcyA9IG5ldyBNYXA8c3RyaW5nLCB7IG5hbWU/OiBzdHJpbmc7IGhhbmRsZT86IHN0cmluZzsgYXZhdGFyPzogc3RyaW5nIH0+KCk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKFxuICAgICAgaWRzLm1hcChhc3luYyBpZCA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3Qgc25hcCA9IGF3YWl0IGdldERvYyhkb2ModGhpcy5maXJlc3RvcmUsIGBwcm9maWxlcy8ke2lkfWApKTtcbiAgICAgICAgICBjb25zdCBwID0gc25hcC5leGlzdHMoKSA/IHNuYXAuZGF0YSgpIDoge307XG4gICAgICAgICAgcHJvZmlsZXMuc2V0KGlkLCB7XG4gICAgICAgICAgICBuYW1lOiBwWyduYW1lJ10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgaGFuZGxlOiBwWydoYW5kbGUnXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgICAgICAgICBhdmF0YXI6IChwWydhdmF0YXJVcmwnXSA/PyBwWydhdmF0YXInXSkgYXMgc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBwZXJmaWwgbm8gYWNjZXNpYmxlIOKGkiBzZSBjYWUgYWwgZmFsbGJhY2sgKHVua25vd25Vc2VyL2NyZWF0ZWRCeSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICAgIHJldHVybiBrZXlzLm1hcChrID0+IHtcbiAgICAgIGNvbnN0IHAgPSBwcm9maWxlcy5nZXQoay5jcmVhdGVkQnkpO1xuICAgICAgcmV0dXJuIHsgLi4uaywgY3JlYXRvck5hbWU6IHA/Lm5hbWUsIGNyZWF0b3JIYW5kbGU6IHA/LmhhbmRsZSwgY3JlYXRvckF2YXRhcjogcD8uYXZhdGFyIH07XG4gICAgfSk7XG4gIH1cblxuICBjcmVhdG9yTGFiZWwoazogQXBpS2V5Um93KTogc3RyaW5nIHtcbiAgICBpZiAoay5jcmVhdG9ySGFuZGxlKSByZXR1cm4gJ0AnICsgay5jcmVhdG9ySGFuZGxlO1xuICAgIGlmIChrLmNyZWF0b3JOYW1lKSByZXR1cm4gay5jcmVhdG9yTmFtZTtcbiAgICByZXR1cm4gdGhpcy50dCgndW5rbm93blVzZXInKTtcbiAgfVxuXG4gIGZvcm1hdERhdGUoaXNvPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWlzbykgcmV0dXJuICcnO1xuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZShpc28pO1xuICAgIGlmIChpc05hTihkLmdldFRpbWUoKSkpIHJldHVybiAnJztcbiAgICByZXR1cm4gZC50b0xvY2FsZURhdGVTdHJpbmcodGhpcy5pMThuLmxhbmcoKSwgeyB5ZWFyOiAnbnVtZXJpYycsIG1vbnRoOiAnc2hvcnQnLCBkYXk6ICdudW1lcmljJyB9KTtcbiAgfVxuXG4gIG9wZW5DcmVhdGUoKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLm1vZGFsU2VydmljZS5vcGVuQWRhcHRpdmUoe1xuICAgICAgY29tcG9uZW50OiBBcGlLZXlDcmVhdGVNb2RhbENvbXBvbmVudCxcbiAgICAgIGNvbXBvbmVudFByb3BzOiB7XG4gICAgICAgIG9uQ3JlYXRlZDogKCkgPT4gdGhpcy5sb2FkKCksXG4gICAgICB9LFxuICAgICAgYmFja2Ryb3BEaXNtaXNzOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcmV2b2tlKGs6IEFwaUtleVJvdyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY29uZmlybURpYWxvZy5jb25maXJtRGVzdHJ1Y3RpdmUoe1xuICAgICAgdGl0bGU6IHRoaXMudHQoJ3Jldm9rZUNvbmZpcm1UaXRsZScpLFxuICAgICAgbWVzc2FnZTogdGhpcy50dCgncmV2b2tlQ29uZmlybU1lc3NhZ2UnKSxcbiAgICAgIGNvbmZpcm1CdXR0b246IHsgdGV4dDogdGhpcy50dCgncmV2b2tlQ29uZmlybU9rJykgfSxcbiAgICAgIGNhbmNlbEJ1dHRvbjogeyB0ZXh0OiB0aGlzLnR0KCdjYW5jZWwnKSB9LFxuICAgIH0pO1xuICAgIGlmICghcmVzdWx0LmNvbmZpcm1lZCkgcmV0dXJuO1xuICAgIHRoaXMuYXBpS2V5cy5yZXZva2Uoay5rZXlJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy50b2FzdC5zaG93KHsgbWVzc2FnZTogdGhpcy50dCgncmV2b2tlU3VjY2VzcycpLCBjb2xvcjogJ2RhcmsnLCBkdXJhdGlvbjogMzAwMCB9KTtcbiAgICAgICAgdGhpcy5sb2FkKCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHsgY29udGV4dDogJ2FwaUtleXMucmV2b2tlJywgZmFsbGJhY2tLZXk6ICdlcnJvclRpdGxlJywgaTE4bk5hbWVzcGFjZTogdGhpcy5ucyB9KTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksIHRoaXMubnMpO1xuICB9XG59XG4iXX0=
319
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWtleXMtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2FwaS1rZXlzLXZpZXcvYXBpLWtleXMtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWpFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRXhGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBa0IsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFD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LElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1RyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLEVBQUUsQ0FBQyxHQUFXO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQXRLVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiwyR0F6SHJCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzRFQscTVCQS9EQyxlQUFlLDBHQUNmLGdCQUFnQiwyRUFFaEIsY0FBYyx5RUFDZCxtQkFBbUIscUdBQ25CLG1CQUFtQiwrRUFDbkIsdUJBQXVCLG1GQUN2QixrQkFBa0I7OzRGQTJIVCxvQkFBb0I7a0JBdEloQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ1AsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixrQkFBa0I7cUJBQ25CLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNEVDt3REFnRlEsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBJbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBGaXJlc3RvcmUsIGRvYywgZ2V0RG9jIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9maXJlc3RvcmUnO1xuXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9jb250YWluZXIvY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVc2VyQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdXNlci1hdmF0YXIvdXNlci1hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9lbXB0eS1zdGF0ZS90eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVFcnJvclN0YXRlUHJvcHMgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvZmFjdG9yeSc7XG5pbXBvcnQgeyBTa2VsZXRvbkxheW91dENvbXBvbmVudCB9IGZyb20gJy4uL3NrZWxldG9uLWxheW91dC9za2VsZXRvbi1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbk1ldGFkYXRhLCBDb21wb25lbnRTdGF0ZXMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwaUtleVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcGlrZXlzL2FwaS1rZXlzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xpZW50QXBpS2V5IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBpa2V5cy90eXBlcyc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24vbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21vZGFsL21vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25EaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsdGVjaEVycm9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vycm9ycy92YWx0ZWNoLWVycm9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgaW50ZXJwcmV0RXJyb3IgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvaW50ZXJwcmV0LWVycm9yJztcbmltcG9ydCB7IGNvbm5lY3RQYWdlUmVmcmVzaCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3BhZ2UtcmVmcmVzaC9wYWdlLXJlZnJlc2guc2VydmljZSc7XG5cbmltcG9ydCB7IEFwaUtleUNyZWF0ZU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vYXBpLWtleS1jcmVhdGUtbW9kYWwvYXBpLWtleS1jcmVhdGUtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEFQSV9LRVlTX1ZJRVdfSTE4TiB9IGZyb20gJy4vYXBpLWtleXMtdmlldy5pMThuJztcbmltcG9ydCB7IEFwaUtleXNWaWV3Q29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IERFRkFVTFRfTkFNRVNQQUNFID0gJ1NldHRpbmdzLkFwaUtleXMnO1xuXG4vKiogS2V5IGVucmlxdWVjaWRhIGNvbiBlbCBwZXJmaWwgcMO6YmxpY28gKGhhbmRsZS9hdmF0YXIvbmFtZSkgZGUgc3UgY3JlYWRvci4gKi9cbmludGVyZmFjZSBBcGlLZXlSb3cgZXh0ZW5kcyBDbGllbnRBcGlLZXkge1xuICBjcmVhdG9yTmFtZT86IHN0cmluZztcbiAgY3JlYXRvckhhbmRsZT86IHN0cmluZztcbiAgY3JlYXRvckF2YXRhcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBgdmFsLWFwaS1rZXlzLXZpZXdgIOKAlCB2aXN0YSBmdWxsLWZlYXR1cmUgZGUgZ2VzdGnDs24gZGUgQ2xpZW50IEFQSSBLZXlzIChBRFItMDIxKS5cbiAqXG4gKiBSZWVtcGxhemEgYWwgYHZhbC1hcGkta2V5cy1tb2RhbGAgY29tbyBwYW50YWxsYSBwcm9waWE6IG9mcmVjZSAqKmNyZWFyKiogYXJyaWJhXG4gKiAoQ1RBIHF1ZSBhYnJlIGB2YWwtYXBpLWtleS1jcmVhdGUtbW9kYWxgKSB5ICoqbGlzdGEqKiBhYmFqbywgY29uIHF1acOpbiBsYSBjcmXDs1xuICogKGF2YXRhciArIGhhbmRsZSwgcmVzdWVsdG8gZGUgYC9wcm9maWxlc2ApIHkgbGEgZmVjaGEgZGUgY3JlYWNpw7NuLiBSZXZvY2FyIGNvblxuICogY29uZmlybWFjacOzbiBkZXN0cnVjdGl2YS4gRXN0YWRvcyBsb2FkaW5nIC8gZXJyb3IgLyBlbXB0eSAoQ2FwYSA0KS5cbiAqXG4gKiBOTyByZW5kZXJpemEgaW9uLWNvbnRlbnQg4oCUIHZpdmUgZGVudHJvIGRlIGB2YWwtcGFnZS13cmFwcGVyYC4gSGVhZGVyIHbDrWFcbiAqIGBOYXZpZ2F0aW9uU2VydmljZS5zZXRCYWNrSGVhZGVyYC4gaTE4biBhdXRvLXJlZ2lzdHJhZG8gYmFqbyBgaTE4bk5hbWVzcGFjZWAuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hcGkta2V5cy12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBEaXNwbGF5Q29tcG9uZW50LFxuICAgIFRleHRDb21wb25lbnQsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gICAgVXNlckF2YXRhckNvbXBvbmVudCxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIFNrZWxldG9uTGF5b3V0Q29tcG9uZW50LFxuICAgIENvbnRhaW5lckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8dmFsLWNvbnRhaW5lciBbcHJvcHNdPVwieyBzaXplOiAnbWQnLCBwYWRkaW5nOiAnbm9uZScgfVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImFwaWtleXNcIj5cbiAgICAgICAgPGhlYWRlciBjbGFzcz1cImFwaWtleXNfX2hlYWRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXlzX190ZXh0XCI+XG4gICAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInsgY29udGVudDogdHQoJ3RpdGxlJyksIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycgfVwiIC8+XG4gICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IHR0KCdzdWJ0aXRsZScpLCBzaXplOiAnbGFyZ2UnLCBjb2xvcjogJ2RhcmsnLCBib2xkOiBmYWxzZSB9XCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8dmFsLWJ1dHRvbiBjbGFzcz1cImFwaWtleXNfX2N0YVwiIFtwcm9wc109XCJuZXdLZXlCdXR0b24oKVwiIChvbkNsaWNrKT1cIm9wZW5DcmVhdGUoKVwiIC8+XG4gICAgICAgIDwvaGVhZGVyPlxuXG4gICAgICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICAgICAgPHZhbC1za2VsZXRvbi1sYXlvdXQgW3Byb3BzXT1cInsgcHJlc2V0OiAnbGlzdCcsIHJvd3M6IDMgfVwiIC8+XG4gICAgICAgIH0gQGVsc2UgaWYgKGVycm9yU3RhdGUoKSkge1xuICAgICAgICAgIDx2YWwtZW1wdHktc3RhdGUgW3Byb3BzXT1cImVycm9yU3RhdGUoKSFcIiAvPlxuICAgICAgICB9IEBlbHNlIGlmIChrZXlzKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgPHZhbC1lbXB0eS1zdGF0ZSBbcHJvcHNdPVwiZW1wdHlTdGF0ZSgpXCIgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleXNfX2xpc3RcIj5cbiAgICAgICAgICAgIEBmb3IgKGsgb2Yga2V5cygpOyB0cmFjayBrLmtleUlkKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktcm93XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1yb3dfX21haW5cIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBpa2V5LXJvd19fbmFtZVwiPnt7IGsubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBpa2V5LXJvd19fbWV0YVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBrLnBlcm1pc3Npb25zLmxlbmd0aCB9fSB7eyB0dCgncGVybXNDb3VudCcpIH19IMK3XG4gICAgICAgICAgICAgICAgICAgIHt7IGsuc3RhdHVzID09PSAncmV2b2tlZCcgPyB0dCgnc3RhdHVzUmV2b2tlZCcpIDogdHQoJ3N0YXR1c0FjdGl2ZScpIH19IMK3IHt7IHR0KCdsYXN0VXNlZCcpIH19OlxuICAgICAgICAgICAgICAgICAgICB7eyBmb3JtYXREYXRlKGsubGFzdFVzZWRBdCkgfHwgdHQoJ25ldmVyJykgfX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBpa2V5LXJvd19fY3JlYXRvclwiPlxuICAgICAgICAgICAgICAgICAgICA8dmFsLXVzZXItYXZhdGFyXG4gICAgICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGsuY3JlYXRvck5hbWUgfHwgay5jcmVhdG9ySGFuZGxlIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXZhdGFyVXJsOiBrLmNyZWF0b3JBdmF0YXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAneHNtYWxsJyxcbiAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcGlrZXktcm93X19jcmVhdG9yLXRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyB0dCgnY3JlYXRlZEJ5JykgfX1cbiAgICAgICAgICAgICAgICAgICAgICB7eyBjcmVhdG9yTGFiZWwoaykgfX1cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZvcm1hdERhdGUoay5jcmVhdGVkQXQpOyBhcyBkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICDCtyB7eyB0dCgnY3JlYXRlZE9uJykgfX0ge3sgZCB9fVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIEBpZiAoay5zdGF0dXMgIT09ICdyZXZva2VkJykge1xuICAgICAgICAgICAgICAgICAgPHZhbC1idXR0b24gW3Byb3BzXT1cInJldm9rZUJ1dHRvbihrKVwiIChvbkNsaWNrKT1cInJldm9rZShrKVwiIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC92YWwtY29udGFpbmVyPlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAvKiBBbmNobyB5IGNyZWNpbWllbnRvIGNvbiBlbCByYWlsIGNvbGFwc2FkbyBsb3MgZGEgdmFsLWNvbnRhaW5lciAoc2l6ZVxuICAgICAgICAgJ21kJyksIG5vIENTUyBsb2NhbDogdmVyIGNvbnRhaW5lci5jb21wb25lbnQuc2Nzcy4gKi9cbiAgICAgIC5hcGlrZXlzIHtcbiAgICAgICAgcGFkZGluZzogOHB4IDAgMjRweDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXlzX19oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICB9XG4gICAgICAuYXBpa2V5c19fdGV4dCB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXlzX190ZXh0IHZhbC1kaXNwbGF5IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXlzX19jdGEge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXlzX19saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS12YWwtYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3dfX21haW4ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3dfX25hbWUge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3dfX21ldGEge1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXJvd19fY3JlYXRvciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXJvd19fY3JlYXRvci10ZXh0IHtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFwaUtleXNWaWV3Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhcGlLZXlzID0gaW5qZWN0KEFwaUtleVNlcnZpY2UpO1xuICBwcml2YXRlIGZpcmVzdG9yZSA9IGluamVjdChGaXJlc3RvcmUpO1xuICBwcml2YXRlIG5hdiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgbW9kYWxTZXJ2aWNlID0gaW5qZWN0KE1vZGFsU2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3QgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjb25maXJtRGlhbG9nID0gaW5qZWN0KENvbmZpcm1hdGlvbkRpYWxvZ1NlcnZpY2UpO1xuICBwcml2YXRlIGVycm9ycyA9IGluamVjdChWYWx0ZWNoRXJyb3JTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAvKiogQ29uZmlnIHbDrWEgQElucHV0IChvYmplY3QtZmlyc3QpOyBmYWxsYmFjayBhbCByb3V0ZSBkYXRhIGBhcGlLZXlzQ29uZmlnYC4gKi9cbiAgQElucHV0KCkgY29uZmlnPzogQXBpS2V5c1ZpZXdDb25maWc7XG5cbiAgcmVhZG9ubHkgcmVzb2x2ZWRDb25maWcgPSBjb21wdXRlZDxSZXF1aXJlZDxBcGlLZXlzVmlld0NvbmZpZz4+KCgpID0+IHtcbiAgICBjb25zdCBmcm9tUm91dGUgPSAodGhpcy5yb3V0ZT8uc25hcHNob3QuZGF0YVsnYXBpS2V5c0NvbmZpZyddID8/IHt9KSBhcyBBcGlLZXlzVmlld0NvbmZpZztcbiAgICBjb25zdCBtZXJnZWQ6IEFwaUtleXNWaWV3Q29uZmlnID0geyAuLi5mcm9tUm91dGUsIC4uLih0aGlzLmNvbmZpZyA/PyB7fSkgfTtcbiAgICByZXR1cm4geyBpMThuTmFtZXNwYWNlOiBtZXJnZWQuaTE4bk5hbWVzcGFjZSA/PyBERUZBVUxUX05BTUVTUEFDRSB9O1xuICB9KTtcblxuICBwcml2YXRlIGdldCBucygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuaTE4bk5hbWVzcGFjZTtcbiAgfVxuXG4gIHJlYWRvbmx5IGtleXMgPSBzaWduYWw8QXBpS2V5Um93W10+KFtdKTtcbiAgcmVhZG9ubHkgbG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGxvYWRFcnJvciA9IHNpZ25hbDx1bmtub3duIHwgbnVsbD4obnVsbCk7XG5cbiAgcmVhZG9ubHkgYWN0aXZlT3JnSWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdSA9IHRoaXMuYXV0aC51c2VyKCkgYXMgeyBhY3RpdmVPcmdJZD86IHN0cmluZzsgYWN0aXZlT3JnPzogc3RyaW5nIH0gfCBudWxsO1xuICAgIHJldHVybiB1Py5hY3RpdmVPcmdJZCA/PyB1Py5hY3RpdmVPcmcgPz8gJyc7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IG5ld0tleUJ1dHRvbiA9IGNvbXB1dGVkPFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+PigoKSA9PiAoe1xuICAgIHRleHQ6IHRoaXMudHQoJ25ld0tleScpLFxuICAgIGNvbG9yOiAnZGFyaycsXG4gICAgZmlsbDogJ3NvbGlkJyxcbiAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICBzaXplOiAnc21hbGwnLFxuICAgIHR5cGU6ICdidXR0b24nLFxuICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IGVycm9yU3RhdGUgPSBjb21wdXRlZDxFbXB0eVN0YXRlTWV0YWRhdGEgfCBudWxsPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBlcnIgPSB0aGlzLmxvYWRFcnJvcigpO1xuICAgIGlmICghZXJyKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gY3JlYXRlRXJyb3JTdGF0ZVByb3BzKGVyciwge1xuICAgICAgdGl0bGU6IHsgb2ZmbGluZTogdGhpcy50dCgnb2ZmbGluZVRpdGxlJyksIGVycm9yOiB0aGlzLnR0KCdlcnJvclRpdGxlJykgfSxcbiAgICAgIGRlc2NyaXB0aW9uOiB7IG9mZmxpbmU6IHRoaXMudHQoJ29mZmxpbmVIaW50JyksIGVycm9yOiBpbnRlcnByZXRFcnJvcihlcnIpLm1lc3NhZ2UgfSxcbiAgICAgIHJldHJ5TGFiZWw6IHRoaXMudHQoJ3JldHJ5JyksXG4gICAgICBvblJldHJ5OiAoKSA9PiB0aGlzLmxvYWQoKSxcbiAgICAgIHJldHJ5aW5nOiB0aGlzLmxvYWRpbmcoKSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgZW1wdHlTdGF0ZSA9IGNvbXB1dGVkPEVtcHR5U3RhdGVNZXRhZGF0YT4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHsgdmFyaWFudDogJ2VtcHR5JywgdGl0bGU6IHRoaXMudHQoJ2VtcHR5JyksIGRlc2NyaXB0aW9uOiB0aGlzLnR0KCdlbXB0eUhpbnQnKSB9O1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyh0aGlzLm5zLCBBUElfS0VZU19WSUVXX0kxOE4pO1xuICAgIHRoaXMubmF2LnNldEJhY2tIZWFkZXIoJ3BhZ2VUaXRsZScsIHRoaXMubnMsIHsgd2l0aE1lbnU6IHRydWUgfSk7XG4gICAgdGhpcy5sb2FkKCk7XG4gICAgY29ubmVjdFBhZ2VSZWZyZXNoKCgpID0+IHRoaXMubG9hZCgpKTtcbiAgfVxuXG4gIHJldm9rZUJ1dHRvbihrOiBBcGlLZXlSb3cpOiBQYXJ0aWFsPEJ1dHRvbk1ldGFkYXRhPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRleHQ6IHRoaXMudHQoJ3Jldm9rZScpLFxuICAgICAgY29sb3I6ICdkYW5nZXInLFxuICAgICAgZmlsbDogJ2NsZWFyJyxcbiAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICAgIHRva2VuOiBrLmtleUlkLFxuICAgIH07XG4gIH1cblxuICBsb2FkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5hY3RpdmVPcmdJZCgpKSByZXR1cm47XG4gICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLmxvYWRFcnJvci5zZXQobnVsbCk7XG4gICAgdGhpcy5hcGlLZXlzLmxpc3QoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogYXN5bmMga2V5cyA9PiB7XG4gICAgICAgIHRoaXMua2V5cy5zZXQoYXdhaXQgdGhpcy5lbnJpY2hXaXRoQ3JlYXRvcnMoa2V5cykpO1xuICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgdGhpcy5sb2FkRXJyb3Iuc2V0KGVycik7XG4gICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBSZXN1ZWx2ZSBoYW5kbGUvYXZhdGFyL25hbWUgZGVsIGNyZWFkb3IgKGBjcmVhdGVkQnlgKSBkZXNkZSBgL3Byb2ZpbGVzYC4gKi9cbiAgcHJpdmF0ZSBhc3luYyBlbnJpY2hXaXRoQ3JlYXRvcnMoa2V5czogQ2xpZW50QXBpS2V5W10pOiBQcm9taXNlPEFwaUtleVJvd1tdPiB7XG4gICAgY29uc3QgaWRzID0gQXJyYXkuZnJvbShuZXcgU2V0KGtleXMubWFwKGsgPT4gay5jcmVhdGVkQnkpLmZpbHRlcihCb29sZWFuKSkpO1xuICAgIGNvbnN0IHByb2ZpbGVzID0gbmV3IE1hcDxzdHJpbmcsIHsgbmFtZT86IHN0cmluZzsgaGFuZGxlPzogc3RyaW5nOyBhdmF0YXI/OiBzdHJpbmcgfT4oKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoXG4gICAgICBpZHMubWFwKGFzeW5jIGlkID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBzbmFwID0gYXdhaXQgZ2V0RG9jKGRvYyh0aGlzLmZpcmVzdG9yZSwgYHByb2ZpbGVzLyR7aWR9YCkpO1xuICAgICAgICAgIGNvbnN0IHAgPSBzbmFwLmV4aXN0cygpID8gc25hcC5kYXRhKCkgOiB7fTtcbiAgICAgICAgICBwcm9maWxlcy5zZXQoaWQsIHtcbiAgICAgICAgICAgIG5hbWU6IHBbJ25hbWUnXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgICAgICAgICBoYW5kbGU6IHBbJ2hhbmRsZSddIGFzIHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGF2YXRhcjogKHBbJ2F2YXRhclVybCddID8/IHBbJ2F2YXRhciddKSBhcyBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIHBlcmZpbCBubyBhY2Nlc2libGUg4oaSIHNlIGNhZSBhbCBmYWxsYmFjayAodW5rbm93blVzZXIvY3JlYXRlZEJ5KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gICAgcmV0dXJuIGtleXMubWFwKGsgPT4ge1xuICAgICAgY29uc3QgcCA9IHByb2ZpbGVzLmdldChrLmNyZWF0ZWRCeSk7XG4gICAgICByZXR1cm4geyAuLi5rLCBjcmVhdG9yTmFtZTogcD8ubmFtZSwgY3JlYXRvckhhbmRsZTogcD8uaGFuZGxlLCBjcmVhdG9yQXZhdGFyOiBwPy5hdmF0YXIgfTtcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0b3JMYWJlbChrOiBBcGlLZXlSb3cpOiBzdHJpbmcge1xuICAgIGlmIChrLmNyZWF0b3JIYW5kbGUpIHJldHVybiAnQCcgKyBrLmNyZWF0b3JIYW5kbGU7XG4gICAgaWYgKGsuY3JlYXRvck5hbWUpIHJldHVybiBrLmNyZWF0b3JOYW1lO1xuICAgIHJldHVybiB0aGlzLnR0KCd1bmtub3duVXNlcicpO1xuICB9XG5cbiAgZm9ybWF0RGF0ZShpc28/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghaXNvKSByZXR1cm4gJyc7XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKGlzbyk7XG4gICAgaWYgKGlzTmFOKGQuZ2V0VGltZSgpKSkgcmV0dXJuICcnO1xuICAgIHJldHVybiBkLnRvTG9jYWxlRGF0ZVN0cmluZyh0aGlzLmkxOG4ubGFuZygpLCB7IHllYXI6ICdudW1lcmljJywgbW9udGg6ICdzaG9ydCcsIGRheTogJ251bWVyaWMnIH0pO1xuICB9XG5cbiAgb3BlbkNyZWF0ZSgpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW5BZGFwdGl2ZSh7XG4gICAgICBjb21wb25lbnQ6IEFwaUtleUNyZWF0ZU1vZGFsQ29tcG9uZW50LFxuICAgICAgY29tcG9uZW50UHJvcHM6IHtcbiAgICAgICAgb25DcmVhdGVkOiAoKSA9PiB0aGlzLmxvYWQoKSxcbiAgICAgIH0sXG4gICAgICBiYWNrZHJvcERpc21pc3M6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyByZXZva2UoazogQXBpS2V5Um93KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jb25maXJtRGlhbG9nLmNvbmZpcm1EZXN0cnVjdGl2ZSh7XG4gICAgICB0aXRsZTogdGhpcy50dCgncmV2b2tlQ29uZmlybVRpdGxlJyksXG4gICAgICBtZXNzYWdlOiB0aGlzLnR0KCdyZXZva2VDb25maXJtTWVzc2FnZScpLFxuICAgICAgY29uZmlybUJ1dHRvbjogeyB0ZXh0OiB0aGlzLnR0KCdyZXZva2VDb25maXJtT2snKSB9LFxuICAgICAgY2FuY2VsQnV0dG9uOiB7IHRleHQ6IHRoaXMudHQoJ2NhbmNlbCcpIH0sXG4gICAgfSk7XG4gICAgaWYgKCFyZXN1bHQuY29uZmlybWVkKSByZXR1cm47XG4gICAgdGhpcy5hcGlLZXlzLnJldm9rZShrLmtleUlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0LnNob3coeyBtZXNzYWdlOiB0aGlzLnR0KCdyZXZva2VTdWNjZXNzJyksIGNvbG9yOiAnZGFyaycsIGR1cmF0aW9uOiAzMDAwIH0pO1xuICAgICAgICB0aGlzLmxvYWQoKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwgeyBjb250ZXh0OiAnYXBpS2V5cy5yZXZva2UnLCBmYWxsYmFja0tleTogJ2Vycm9yVGl0bGUnLCBpMThuTmFtZXNwYWNlOiB0aGlzLm5zIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0dChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5ucyk7XG4gIH1cbn1cbiJdfQ==