@bizdoc/core 1.17.12 → 1.17.13
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.
- package/assets/system/priority.svg +14 -17
- package/bizdoc-core.d.ts.map +1 -0
- package/esm2020/lib/admin/architecture/designer.component.mjs +2 -1
- package/esm2020/lib/admin/architecture/icon-picker.component.mjs +3 -3
- package/esm2020/lib/admin/core/ace.input.mjs +8 -5
- package/esm2020/lib/admin/core/color-picker.input.mjs +3 -3
- package/esm2020/lib/admin/core/localized-string.component.mjs +9 -17
- package/esm2020/lib/compose/new-menu.component.mjs +24 -6
- package/esm2020/lib/core/models.mjs +1 -1
- package/esm2020/lib/cube/chart/chart.component.mjs +2 -2
- package/esm2020/lib/cube/explore/explore-items.component.mjs +6 -3
- package/esm2020/lib/reports/report-viewer.component.mjs +3 -3
- package/fesm2015/bizdoc-core.mjs +45 -32
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +45 -30
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/admin/admin-dismiss.service.d.ts.map +1 -0
- package/lib/admin/admin-menu.component.d.ts.map +1 -0
- package/lib/admin/architecture/cube-axes-filter.component.d.ts.map +1 -0
- package/lib/admin/architecture/declarations.d.ts.map +1 -0
- package/lib/admin/architecture/designer-element.component.d.ts.map +1 -0
- package/lib/admin/architecture/designer-privileges.component.d.ts.map +1 -0
- package/lib/admin/architecture/designer.base.d.ts.map +1 -0
- package/lib/admin/architecture/designer.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/action.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/analysis-view.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/analysis-widget.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/anomaly-rule.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/attribute.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/box-form.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/configuration-datasource.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/control.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/cube-index-utility.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/cube-view.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/cube.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/documents-report.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/documents-widget.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/explore-view.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/feedback-widget.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/folder.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/form-invite.dialog.d.ts.map +1 -0
- package/lib/admin/architecture/elements/form.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/guide.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/matrix-view.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/node.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/parallel-view.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/performance-report.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/performance-widget.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/pivot-view.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/policy.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/report.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/return-to-role-action.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/role.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/rule.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/state.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/sum-view.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/tasks-report.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/type.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/usage-report.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/utility.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/view.component.d.ts.map +1 -0
- package/lib/admin/architecture/elements/widget.component.d.ts.map +1 -0
- package/lib/admin/architecture/icon-picker.component.d.ts.map +1 -0
- package/lib/admin/core/ace.input.d.ts +5 -2
- package/lib/admin/core/ace.input.d.ts.map +1 -0
- package/lib/admin/core/color-picker.input.d.ts.map +1 -0
- package/lib/admin/core/localized-string.component.d.ts +3 -4
- package/lib/admin/core/localized-string.component.d.ts.map +1 -0
- package/lib/admin/core/search.input.d.ts.map +1 -0
- package/lib/admin/diff/configuration-diff.component.d.ts.map +1 -0
- package/lib/admin/document-trace/document-trace.component.d.ts.map +1 -0
- package/lib/admin/document-trace/reassign.dialog.d.ts.map +1 -0
- package/lib/admin/document-trace/timeline.d.ts.map +1 -0
- package/lib/admin/document-trace/trace-element.component.d.ts.map +1 -0
- package/lib/admin/form/designer/box-designer.component.d.ts.map +1 -0
- package/lib/admin/form/designer/declarations.d.ts.map +1 -0
- package/lib/admin/form/designer/properties.component.d.ts.map +1 -0
- package/lib/admin/form/designer/section.component.d.ts.map +1 -0
- package/lib/admin/form/designer/settings.component.d.ts.map +1 -0
- package/lib/admin/form/form.resolve.service.d.ts.map +1 -0
- package/lib/admin/form/workflow/node-ref.d.ts.map +1 -0
- package/lib/admin/form/workflow/node.component.d.ts.map +1 -0
- package/lib/admin/form/workflow/role-node.component.d.ts.map +1 -0
- package/lib/admin/form/workflow/workflow.component.d.ts.map +1 -0
- package/lib/admin/indices/manage-cube-index.component.d.ts.map +1 -0
- package/lib/admin/patterns/patterns.component.d.ts.map +1 -0
- package/lib/admin/permissions/permissions.component.d.ts.map +1 -0
- package/lib/admin/positions/positions-popup.component.d.ts.map +1 -0
- package/lib/admin/positions/positions.component.d.ts.map +1 -0
- package/lib/admin/profiler/outofoffice.component.d.ts.map +1 -0
- package/lib/admin/profiler/profiler.component.d.ts.map +1 -0
- package/lib/admin/system.service.d.ts.map +1 -0
- package/lib/admin/utility-ref.d.ts.map +1 -0
- package/lib/admin/utility-wrapper.component.d.ts.map +1 -0
- package/lib/admin/utility.pane.component.d.ts.map +1 -0
- package/lib/app.component.d.ts.map +1 -0
- package/lib/bizdoc.module.d.ts.map +1 -0
- package/lib/browse/browse-items.component.d.ts.map +1 -0
- package/lib/browse/browse.mobile.component.d.ts.map +1 -0
- package/lib/browse/browse.pane.component.d.ts.map +1 -0
- package/lib/browse/expanded-item/expanded-item.component.d.ts.map +1 -0
- package/lib/browse/filter/filter.component.d.ts.map +1 -0
- package/lib/browse/folders-menu.component.d.ts.map +1 -0
- package/lib/chat/chat-info.d.ts.map +1 -0
- package/lib/chat/chat.mobile.component.d.ts.map +1 -0
- package/lib/chat/chat.service.d.ts.map +1 -0
- package/lib/chat/contacts.component.d.ts.map +1 -0
- package/lib/chat/contacts.pane.component.d.ts.map +1 -0
- package/lib/chat/conversation.component.d.ts.map +1 -0
- package/lib/chat/conversation.pane.component.d.ts.map +1 -0
- package/lib/compose/action/action-picker.component.d.ts.map +1 -0
- package/lib/compose/action/action-ref.d.ts.map +1 -0
- package/lib/compose/action/action.base.d.ts.map +1 -0
- package/lib/compose/action/action.dialog.d.ts.map +1 -0
- package/lib/compose/action/action.pane.dialog.exp.d.ts.map +1 -0
- package/lib/compose/action/assign-action.component.d.ts.map +1 -0
- package/lib/compose/action/moveto-action.component.d.ts.map +1 -0
- package/lib/compose/action/return-action.component.d.ts.map +1 -0
- package/lib/compose/attachments/attachments.component.d.ts.map +1 -0
- package/lib/compose/attachments/preview/attachment-preview.component.d.ts.map +1 -0
- package/lib/compose/attachments/progress-button.directive.d.ts.map +1 -0
- package/lib/compose/box/box.component.d.ts.map +1 -0
- package/lib/compose/box/control.component.d.ts.map +1 -0
- package/lib/compose/box/row.component.d.ts.map +1 -0
- package/lib/compose/can-deactivate-changes.service.d.ts.map +1 -0
- package/lib/compose/comments/comment.component.d.ts.map +1 -0
- package/lib/compose/comments/comments.component.d.ts.map +1 -0
- package/lib/compose/comments/comments.pane.component.d.ts.map +1 -0
- package/lib/compose/comments/edit-comment.component.d.ts.map +1 -0
- package/lib/compose/comments/edits.component.d.ts.map +1 -0
- package/lib/compose/comments/quick-comment.component.exp.d.ts.map +1 -0
- package/lib/compose/comments/votes.component.d.ts.map +1 -0
- package/lib/compose/compose-resolve.service.d.ts.map +1 -0
- package/lib/compose/compose.mobile.component.d.ts.map +1 -0
- package/lib/compose/compose.pane.component.d.ts.map +1 -0
- package/lib/compose/copy/copy.dialog.d.ts.map +1 -0
- package/lib/compose/dismiss.service.d.ts.map +1 -0
- package/lib/compose/document-resolver.service.d.ts.map +1 -0
- package/lib/compose/document.component.d.ts.map +1 -0
- package/lib/compose/document.mobile.component.d.ts.map +1 -0
- package/lib/compose/document.pane.component.d.ts.map +1 -0
- package/lib/compose/events/events.component.d.ts.map +1 -0
- package/lib/compose/form-ref.d.ts.map +1 -0
- package/lib/compose/form-selector/form-selector.sheet.d.ts.map +1 -0
- package/lib/compose/form.component.d.ts.map +1 -0
- package/lib/compose/new-menu.component.d.ts +7 -1
- package/lib/compose/new-menu.component.d.ts.map +1 -0
- package/lib/compose/privilage.directive.d.ts.map +1 -0
- package/lib/compose/recipient-resolver.service.d.ts.map +1 -0
- package/lib/compose/state.component.d.ts.map +1 -0
- package/lib/compose/tag/tags.component.d.ts.map +1 -0
- package/lib/compose/trace/flow.component.d.ts.map +1 -0
- package/lib/compose/trace/people.component.d.ts.map +1 -0
- package/lib/compose/trace/trace.base.d.ts.map +1 -0
- package/lib/compose/trace/trace.component.d.ts.map +1 -0
- package/lib/compose/trace/trace.pane.component.d.ts.map +1 -0
- package/lib/compose/version-compare/version-compare.component.d.ts.map +1 -0
- package/lib/compose/version-compare/version-compare.directive.d.ts.map +1 -0
- package/lib/compose/version-compare/version.pane.component.d.ts.map +1 -0
- package/lib/core/NgComponentOutlet.d.ts.map +1 -0
- package/lib/core/account.service.d.ts.map +1 -0
- package/lib/core/animated-icon/animated-icon.directive.d.ts.map +1 -0
- package/lib/core/animations.d.ts.map +1 -0
- package/lib/core/authentication.d.ts.map +1 -0
- package/lib/core/avatar/avatar.component.d.ts.map +1 -0
- package/lib/core/base.d.ts.map +1 -0
- package/lib/core/checkbox.d.ts.map +1 -0
- package/lib/core/colors.d.ts.map +1 -0
- package/lib/core/component-factory-resolver.d.ts.map +1 -0
- package/lib/core/configuration.d.ts.map +1 -0
- package/lib/core/datasource.service.d.ts.map +1 -0
- package/lib/core/decorators.d.ts.map +1 -0
- package/lib/core/fields/address.designer.d.ts.map +1 -0
- package/lib/core/fields/address.field.d.ts.map +1 -0
- package/lib/core/fields/autocomplete.field.d.ts.map +1 -0
- package/lib/core/fields/checkbox.designer.d.ts.map +1 -0
- package/lib/core/fields/checkbox.field.d.ts.map +1 -0
- package/lib/core/fields/checklist.designer.d.ts.map +1 -0
- package/lib/core/fields/checklist.field.d.ts.map +1 -0
- package/lib/core/fields/date-range.designer.d.ts.map +1 -0
- package/lib/core/fields/date-range.field.d.ts.map +1 -0
- package/lib/core/fields/date.designer.d.ts.map +1 -0
- package/lib/core/fields/date.field.d.ts.map +1 -0
- package/lib/core/fields/expression.field.d.ts.map +1 -0
- package/lib/core/fields/file.designer.d.ts.map +1 -0
- package/lib/core/fields/file.field.d.ts.map +1 -0
- package/lib/core/fields/html.designer.d.ts.map +1 -0
- package/lib/core/fields/html.field.d.ts.map +1 -0
- package/lib/core/fields/input.designer.d.ts.map +1 -0
- package/lib/core/fields/input.field.d.ts.map +1 -0
- package/lib/core/fields/localized-string.field.d.ts.map +1 -0
- package/lib/core/fields/numeric.designer.d.ts.map +1 -0
- package/lib/core/fields/numeric.field.d.ts.map +1 -0
- package/lib/core/fields/options.base.d.ts.map +1 -0
- package/lib/core/fields/options.component.d.ts.map +1 -0
- package/lib/core/fields/radio-button.designer.d.ts.map +1 -0
- package/lib/core/fields/radio-button.field.d.ts.map +1 -0
- package/lib/core/fields/select.designer.d.ts.map +1 -0
- package/lib/core/fields/select.field.d.ts.map +1 -0
- package/lib/core/fields/signature.designer.d.ts.map +1 -0
- package/lib/core/fields/signature.field.d.ts.map +1 -0
- package/lib/core/fields/switch.field.d.ts.map +1 -0
- package/lib/core/fields/textarea.designer.d.ts.map +1 -0
- package/lib/core/fields/textarea.field.d.ts.map +1 -0
- package/lib/core/fields/time.designer.d.ts.map +1 -0
- package/lib/core/fields/time.field.d.ts.map +1 -0
- package/lib/core/fields/timespan.field.d.ts.map +1 -0
- package/lib/core/fields/yesno.designer.d.ts.map +1 -0
- package/lib/core/fields/yesno.field.d.ts.map +1 -0
- package/lib/core/firebase.service.d.ts.map +1 -0
- package/lib/core/functions.d.ts.map +1 -0
- package/lib/core/guide/guide.component.d.ts.map +1 -0
- package/lib/core/guide/guide.service.d.ts.map +1 -0
- package/lib/core/guide/help-tip.component.d.ts.map +1 -0
- package/lib/core/http.interceptor.d.ts.map +1 -0
- package/lib/core/hub.service.d.ts.map +1 -0
- package/lib/core/identity/identity.component.d.ts.map +1 -0
- package/lib/core/info/attachment-info.service.d.ts.map +1 -0
- package/lib/core/info/document-info.service.d.ts.map +1 -0
- package/lib/core/info/location-info.component.d.ts.map +1 -0
- package/lib/core/info/map-info.d.ts.map +1 -0
- package/lib/core/inputs/address.input.d.ts.map +1 -0
- package/lib/core/inputs/auto-complete.input.d.ts.map +1 -0
- package/lib/core/inputs/combination-picker-body.d.ts.map +1 -0
- package/lib/core/inputs/combination-picker.d.ts.map +1 -0
- package/lib/core/inputs/combination-pool.d.ts.map +1 -0
- package/lib/core/inputs/file.input.d.ts.map +1 -0
- package/lib/core/inputs/select.input.d.ts.map +1 -0
- package/lib/core/inputs/signature.input.d.ts.map +1 -0
- package/lib/core/inputs/time-picker.d.ts.map +1 -0
- package/lib/core/inputs/timespan.input.d.ts.map +1 -0
- package/lib/core/layout.component.d.ts.map +1 -0
- package/lib/core/lottie-animation.d.ts.map +1 -0
- package/lib/core/mailbox.service.d.ts.map +1 -0
- package/lib/core/models.d.ts +0 -3
- package/lib/core/models.d.ts.map +1 -0
- package/lib/core/none.component.d.ts.map +1 -0
- package/lib/core/pipes/action.pipe.d.ts.map +1 -0
- package/lib/core/pipes/calendar.pipe.d.ts.map +1 -0
- package/lib/core/pipes/date-format.pipe.d.ts.map +1 -0
- package/lib/core/pipes/daterange.pipe.d.ts.map +1 -0
- package/lib/core/pipes/difference.pipe.d.ts.map +1 -0
- package/lib/core/pipes/duration-format.pipe.d.ts.map +1 -0
- package/lib/core/pipes/duration.pipe.d.ts.map +1 -0
- package/lib/core/pipes/form.pipe.d.ts.map +1 -0
- package/lib/core/pipes/join.pipe.d.ts.map +1 -0
- package/lib/core/pipes/localized-string.pipe.d.ts.map +1 -0
- package/lib/core/pipes/role.pipe.d.ts.map +1 -0
- package/lib/core/pipes/sanitize-html.pipe.d.ts.map +1 -0
- package/lib/core/pipes/sort.pipe.d.ts.map +1 -0
- package/lib/core/pipes/state.pipe.d.ts.map +1 -0
- package/lib/core/pipes/time-ago.pipe.d.ts.map +1 -0
- package/lib/core/pipes/translate.pipe.d.ts.map +1 -0
- package/lib/core/pipes/type-value.pipe.d.ts.map +1 -0
- package/lib/core/pipes/user-name.pipe.d.ts.map +1 -0
- package/lib/core/popup/popup-ref.d.ts.map +1 -0
- package/lib/core/popup/popup.component.d.ts.map +1 -0
- package/lib/core/popup/popup.service.d.ts.map +1 -0
- package/lib/core/popup/tooltip.directive.d.ts.map +1 -0
- package/lib/core/prompt/ask/ask.dialog.d.ts.map +1 -0
- package/lib/core/prompt/mask/mask.component.d.ts.map +1 -0
- package/lib/core/prompt.service.d.ts.map +1 -0
- package/lib/core/router.d.ts.map +1 -0
- package/lib/core/save-changes.dialog.d.ts.map +1 -0
- package/lib/core/session.service.d.ts.map +1 -0
- package/lib/core/slots/pane-ref.d.ts.map +1 -0
- package/lib/core/slots/router.directive.d.ts.map +1 -0
- package/lib/core/slots/router.service.d.ts.map +1 -0
- package/lib/core/slots/slots.component.d.ts.map +1 -0
- package/lib/core/tagging/documents.component.d.ts.map +1 -0
- package/lib/core/tagging/edit-input.component.d.ts.map +1 -0
- package/lib/core/tagging/emoji.component.d.ts.map +1 -0
- package/lib/core/tagging/tagging-item.directive.d.ts.map +1 -0
- package/lib/core/tagging/tagging.component-base.d.ts.map +1 -0
- package/lib/core/tagging/tagging.directive.d.ts.map +1 -0
- package/lib/core/tagging/tagging.pipe.d.ts.map +1 -0
- package/lib/core/tagging/users.component.d.ts.map +1 -0
- package/lib/core/translate.service.d.ts.map +1 -0
- package/lib/core/translations.d.ts.map +1 -0
- package/lib/core/window-title.service.d.ts.map +1 -0
- package/lib/cube/accum/accum.component.d.ts.map +1 -0
- package/lib/cube/chart/chart.component.d.ts.map +1 -0
- package/lib/cube/cube-info.service.d.ts.map +1 -0
- package/lib/cube/cube-menu.component.d.ts.map +1 -0
- package/lib/cube/cube-view.component.d.ts.map +1 -0
- package/lib/cube/cube.service.d.ts.map +1 -0
- package/lib/cube/declarations.d.ts.map +1 -0
- package/lib/cube/explore/document-item.component.d.ts.map +1 -0
- package/lib/cube/explore/explore-item.component.d.ts.map +1 -0
- package/lib/cube/explore/explore-items.component.d.ts.map +1 -0
- package/lib/cube/explore/explore.pane.component.d.ts.map +1 -0
- package/lib/cube/explore/item-resolver.service.d.ts.map +1 -0
- package/lib/cube/explore/item.pane.component.d.ts.map +1 -0
- package/lib/cube/filter/filter-tags.component.exp.d.ts.map +1 -0
- package/lib/cube/filter/filter.component.d.ts.map +1 -0
- package/lib/cube/grid/grid.component.d.ts.map +1 -0
- package/lib/cube/grid/spreadsheet.component.d.ts.map +1 -0
- package/lib/cube/matrix/matrix.base.d.ts.map +1 -0
- package/lib/cube/matrix/matrix.mobile.component.d.ts.map +1 -0
- package/lib/cube/matrix/matrix.pane.component.d.ts.map +1 -0
- package/lib/cube/matrix/popup.component.d.ts.map +1 -0
- package/lib/cube/matrix/table.component.d.ts.map +1 -0
- package/lib/cube/parallel/item.d.ts.map +1 -0
- package/lib/cube/parallel/parallel.component.d.ts.map +1 -0
- package/lib/cube/pivot/pivot.component.d.ts.map +1 -0
- package/lib/cube/sum/sum.component.d.ts.map +1 -0
- package/lib/cube/view-base.d.ts.map +1 -0
- package/lib/cube/view.mobile.component.d.ts.map +1 -0
- package/lib/cube/view.pane.component.d.ts.map +1 -0
- package/lib/dashboard/actions/actions.widget.d.ts.map +1 -0
- package/lib/dashboard/cube/accum-cube.widget.d.ts.map +1 -0
- package/lib/dashboard/cube/compare.widget.d.ts.map +1 -0
- package/lib/dashboard/cube/cube-analysis.base.d.ts.map +1 -0
- package/lib/dashboard/cube/cube-analysis.widget.d.ts.map +1 -0
- package/lib/dashboard/cube/cube-chart.widget.d.ts.map +1 -0
- package/lib/dashboard/cube/document-state.widget.d.ts.map +1 -0
- package/lib/dashboard/cube/documents.widget.d.ts.map +1 -0
- package/lib/dashboard/cube/filter/filter.component.d.ts.map +1 -0
- package/lib/dashboard/dashboard.component.d.ts.map +1 -0
- package/lib/dashboard/dashboard.pane.component.d.ts.map +1 -0
- package/lib/dashboard/recents/recents.widget.d.ts.map +1 -0
- package/lib/dashboard/score/activity.widget.d.ts.map +1 -0
- package/lib/dashboard/score/compare-groups.widget.d.ts.map +1 -0
- package/lib/dashboard/score/peers-performance.widget.d.ts.map +1 -0
- package/lib/dashboard/score/pending-results.widget.d.ts.map +1 -0
- package/lib/dashboard/score/personal-score.widget.d.ts.map +1 -0
- package/lib/dashboard/widget-item.component.d.ts.map +1 -0
- package/lib/dashboard/widget-ref.d.ts.map +1 -0
- package/lib/designer.module.d.ts.map +1 -0
- package/lib/desktop.module.d.ts.map +1 -0
- package/lib/home/about/about.dialog.d.ts.map +1 -0
- package/lib/home/home-base.component.d.ts.map +1 -0
- package/lib/home/home.desktop.component.d.ts.map +1 -0
- package/lib/home/home.mobile.component.d.ts.map +1 -0
- package/lib/home/notifications/notifications.component.d.ts.map +1 -0
- package/lib/home/options/options.component.d.ts.map +1 -0
- package/lib/home/outofoffice/outofoffice.component.d.ts.map +1 -0
- package/lib/home/sign/sign.component.d.ts.map +1 -0
- package/lib/home/tools.component.d.ts.map +1 -0
- package/lib/impersonate/impersonate.component.d.ts.map +1 -0
- package/lib/mobile.module.d.ts.map +1 -0
- package/lib/modules/chart.module.d.ts.map +1 -0
- package/lib/modules/circular-gauge.module.d.ts.map +1 -0
- package/lib/modules/date.adapter.d.ts.map +1 -0
- package/lib/modules/datepicker.intl.d.ts.map +1 -0
- package/lib/modules/dayjs.module.d.ts.map +1 -0
- package/lib/modules/diagram.module.d.ts.map +1 -0
- package/lib/modules/gantt.module.d.ts.map +1 -0
- package/lib/modules/grid.module.d.ts.map +1 -0
- package/lib/modules/material.module.d.ts.map +1 -0
- package/lib/modules/paginator.intl.d.ts.map +1 -0
- package/lib/modules/pivot.module.d.ts.map +1 -0
- package/lib/modules/schedule.module.d.ts.map +1 -0
- package/lib/modules/spreadsheet.module.d.ts.map +1 -0
- package/lib/modules/stepper.intl.d.ts.map +1 -0
- package/lib/modules/texteditor.module.d.ts.map +1 -0
- package/lib/notifications/filter.component.d.ts.map +1 -0
- package/lib/notifications/notifications-table.component.d.ts.map +1 -0
- package/lib/notifications/notifications.component-base.d.ts.map +1 -0
- package/lib/notifications/notifications.mobile.component.d.ts.map +1 -0
- package/lib/notifications/notifications.pane.component.d.ts.map +1 -0
- package/lib/notifications/notifications.service.d.ts.map +1 -0
- package/lib/notifications/types/commented.notification.d.ts.map +1 -0
- package/lib/notifications/types/cube-anomaly.notification.d.ts.map +1 -0
- package/lib/notifications/types/escalated.notification.d.ts.map +1 -0
- package/lib/notifications/types/invite.notification.d.ts.map +1 -0
- package/lib/notifications/types/liked.notification.d.ts.map +1 -0
- package/lib/notifications/types/long-running-task.notification.d.ts.map +1 -0
- package/lib/notifications/types/notification-base.d.ts.map +1 -0
- package/lib/notifications/types/nudge.notification.d.ts.map +1 -0
- package/lib/notifications/types/state-changed.notification.d.ts.map +1 -0
- package/lib/notifications/types/tagged.notification.d.ts.map +1 -0
- package/lib/notifications/types/text.notification.d.ts.map +1 -0
- package/lib/notifications/types/upcoming-event.notification.d.ts.map +1 -0
- package/lib/options/options.component.d.ts.map +1 -0
- package/lib/options/options.service.d.ts.map +1 -0
- package/lib/reports/arguments-component.d.ts.map +1 -0
- package/lib/reports/cube/documents.component.d.ts.map +1 -0
- package/lib/reports/cube/grid-documents.component.d.ts.map +1 -0
- package/lib/reports/cube/role-performance.component.d.ts.map +1 -0
- package/lib/reports/cube/table-documents.component.d.ts.map +1 -0
- package/lib/reports/cube/usage-args.component.d.ts.map +1 -0
- package/lib/reports/cube/usage-base.d.ts.map +1 -0
- package/lib/reports/cube/usage-chart.component.d.ts.map +1 -0
- package/lib/reports/cube/usage-pivot.component.d.ts.map +1 -0
- package/lib/reports/cube/usage.component.d.ts.map +1 -0
- package/lib/reports/report-ref.d.ts.map +1 -0
- package/lib/reports/report-viewer.component.d.ts.map +1 -0
- package/lib/reports/report.mobile.component.d.ts.map +1 -0
- package/lib/reports/report.pane.component.d.ts.map +1 -0
- package/lib/reports/reports-menu.component.d.ts.map +1 -0
- package/lib/reports/substitution/substitution.component.d.ts.map +1 -0
- package/lib/reports/table/table-view.component.d.ts.map +1 -0
- package/lib/reports/tasks/tasks.component.d.ts.map +1 -0
- package/lib/routes.desktop.d.ts.map +1 -0
- package/lib/routes.mobile.d.ts.map +1 -0
- package/lib/scheduler/schedule.component.d.ts.map +1 -0
- package/lib/scheduler/scheduler.mobile.component.d.ts.map +1 -0
- package/lib/scheduler/scheduler.pane.component.d.ts.map +1 -0
- package/lib/search/cube.component.d.ts.map +1 -0
- package/lib/search/declarations.d.ts.map +1 -0
- package/lib/search/document.component.d.ts.map +1 -0
- package/lib/search/guide.component.d.ts.map +1 -0
- package/lib/search/path.component.d.ts.map +1 -0
- package/lib/search/search.service.d.ts.map +1 -0
- package/lib/shared.module.d.ts.map +1 -0
- package/lib/system.module.d.ts.map +1 -0
- package/lib/views/cube/chart.component.d.ts.map +1 -0
- package/lib/views/cube/cube-base.d.ts.map +1 -0
- package/lib/views/cube/explore.component.d.ts.map +1 -0
- package/lib/views/cube/matrix.component.d.ts.map +1 -0
- package/lib/views/cube/parallel.component.d.ts.map +1 -0
- package/lib/views/cube/pivot.component.d.ts.map +1 -0
- package/lib/views/cube/sum.component.d.ts.map +1 -0
- package/lib/views/cube/view.component.d.ts.map +1 -0
- package/lib/views/document-view-ref.d.ts.map +1 -0
- package/lib/views/timeline/timeline.component.exp.d.ts.map +1 -0
- package/lib/views/view-item.component.d.ts.map +1 -0
- package/lib/views/views.component.d.ts.map +1 -0
- package/lib/views/views.mobile.component.d.ts.map +1 -0
- package/lib/views/views.pane.component.d.ts.map +1 -0
- package/package.json +1 -1
- package/public-api.d.ts.map +1 -0
@@ -1,19 +1,16 @@
|
|
1
|
-
|
2
|
-
<
|
1
|
+
<svg fill="none" viewBox="0 0 191 49" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<defs></defs>
|
3
3
|
<g>
|
4
|
-
<path d="M
|
5
|
-
<
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
<path d="M 212.882 72.662 L 212.882 73.272 L 211.674 73.272 L 211.674 76.676 L 210.927 76.676 L 210.927 73.272 L 209.717 73.272 L 209.717 72.662 L 212.882 72.662 Z" fill="#000"/>
|
16
|
-
<path d="M 215.401 75.194 C 215.429 75.258 215.456 75.322 215.48 75.388 C 215.51 75.322 215.534 75.253 215.564 75.19 C 215.589 75.124 215.618 75.066 215.65 75.004 L 216.84 72.781 C 216.855 72.752 216.868 72.73 216.884 72.717 C 216.901 72.697 216.921 72.685 216.939 72.678 C 216.956 72.669 216.98 72.668 217.003 72.665 C 217.023 72.663 217.057 72.662 217.089 72.662 L 217.653 72.662 L 217.653 76.676 L 216.994 76.676 L 216.994 74.082 C 216.994 74.033 216.995 73.98 216.999 73.926 C 217.002 73.866 217.005 73.809 217.011 73.751 L 215.799 76.026 C 215.77 76.075 215.734 76.117 215.689 76.146 C 215.646 76.175 215.594 76.187 215.534 76.187 L 215.433 76.187 C 215.373 76.187 215.319 76.175 215.275 76.146 C 215.233 76.117 215.195 76.075 215.165 76.026 L 213.941 73.742 C 213.947 73.803 213.95 73.861 213.953 73.92 C 213.957 73.978 213.958 74.032 213.958 74.082 L 213.958 76.676 L 213.299 76.676 L 213.299 72.662 L 213.866 72.662 C 213.899 72.662 213.924 72.663 213.95 72.665 C 213.974 72.668 213.992 72.669 214.015 72.678 C 214.035 72.685 214.052 72.697 214.067 72.717 C 214.089 72.73 214.103 72.752 214.116 72.781 L 215.314 75.009 C 215.348 75.068 215.375 75.133 215.401 75.194 Z" fill="#000"/>
|
17
|
-
</g>
|
4
|
+
<path d="M 147.532 5.608 L 143.426 5.608 L 143.426 9.957 L 147.532 9.957 L 147.532 5.608 Z" fill="#00aeef"></path>
|
5
|
+
<path d="M 32.518 11.513 C 32.518 10.375 32.207 10.012 31.221 9.961 L 29.047 9.804 L 29.047 5.609 L 37.803 5.609 L 37.803 9.493 C 38.995 6.903 41.74 4.831 45.157 4.831 C 46.87 4.831 48.424 5.142 50.132 5.97 L 50.132 13.69 L 45.315 14.052 L 45.315 11.669 C 45.315 11.048 45.212 10.582 44.796 10.375 C 44.328 10.167 43.964 10.115 43.397 10.115 C 40.599 10.115 38.682 12.344 38.682 15.349 L 38.682 27.366 L 43.192 27.571 L 43.192 31.665 L 29.304 31.665 L 29.304 27.73 L 31.016 27.571 C 32.001 27.468 32.518 27.159 32.518 25.864 L 32.518 11.513 Z" fill="#2C3539" style=""></path>
|
6
|
+
<path d="M 85.253 18.767 C 85.253 12.966 83.858 9.391 79.714 9.391 C 75.617 9.391 73.961 12.913 73.961 17.887 C 73.961 22.703 74.634 27.881 79.609 27.881 C 83.649 27.881 85.253 24.156 85.253 18.767 Z M 80.023 4.831 C 83.858 4.831 91.573 6.02 91.573 17.938 C 91.573 27.881 86.031 32.442 79.194 32.442 C 72.251 32.442 67.693 27.988 67.693 18.609 C 67.693 7.837 74.688 4.831 80.023 4.831 Z" fill="#2C3539" style=""></path>
|
7
|
+
<path d="M 97.327 11.513 C 97.327 10.375 97.019 10.012 96.034 9.961 L 93.856 9.804 L 93.856 5.609 L 102.614 5.609 L 102.614 9.493 C 103.803 6.903 106.55 4.831 109.971 4.831 C 111.678 4.831 113.233 5.142 114.942 5.97 L 114.942 13.69 L 110.125 14.052 L 110.125 11.669 C 110.125 11.048 110.022 10.582 109.606 10.375 C 109.14 10.167 108.779 10.115 108.209 10.115 C 105.409 10.115 103.494 12.344 103.494 15.349 L 103.494 27.366 L 107.999 27.571 L 107.999 31.665 L 94.117 31.665 L 94.117 27.73 L 95.826 27.571 C 96.81 27.468 97.327 27.159 97.327 25.864 L 97.327 11.513 Z" fill="#2C3539" style=""></path>
|
8
|
+
<path d="M 171.8 26.747 C 169.987 29.335 166.83 30.786 163.406 30.786 C 158.227 30.786 155.378 27.936 155.378 21.822 L 155.378 11.412 C 155.378 10.321 154.962 10.013 154.085 9.958 L 152.423 9.856 L 152.423 5.608 L 161.54 5.608 L 161.54 20.476 C 161.54 23.635 162.058 26.019 165.375 26.019 C 169.004 26.019 170.92 23.582 170.92 20.892 L 170.92 11.513 C 170.92 10.375 170.606 9.958 169.621 9.958 L 167.966 9.856 L 167.966 5.608 L 177.081 5.608 L 177.081 30.682 C 177.081 39.231 172.784 42.752 165.062 42.752 C 161.8 42.752 157.503 42.131 155.328 41.044 L 155.328 35.629 L 160.247 35.213 L 160.247 35.913 C 160.247 36.897 160.505 37.417 161.441 37.778 C 162.423 38.142 163.565 38.297 165.118 38.297 C 169.883 38.297 171.8 35.396 171.8 30.682 L 171.8 26.747 Z" fill="#2C3539" style=""></path>
|
9
|
+
<path d="M 127.455 27.365 L 127.455 5.609 L 118.182 5.609 L 118.182 9.907 L 119.994 10.012 C 120.977 10.012 121.292 10.374 121.292 11.512 L 121.319 31.665 L 130.406 31.665 L 130.406 27.521 L 127.455 27.365 Z" fill="#2C3539" style=""></path>
|
10
|
+
<path d="M 62.644 27.365 L 62.644 5.609 L 53.373 5.609 L 53.373 9.907 L 55.183 10.012 C 56.17 10.012 56.481 10.374 56.481 11.512 L 56.453 31.665 L 65.598 31.665 L 65.598 27.521 L 62.644 27.365 Z" fill="#2C3539" style=""></path>
|
11
|
+
<path d="M 148.955 26.588 C 148.13 27.108 146.832 27.676 145.437 27.676 C 143.308 27.676 142.065 26.746 142.065 23.582 L 142.065 0.118 L 138.7 0.118 C 137.612 3.069 136.37 5.868 132.742 6.177 L 132.226 9.958 L 135.904 9.958 L 135.904 23.79 C 135.904 27.416 135.85 32.39 143.928 32.39 C 146.366 32.39 148.955 31.665 150.512 30.579 L 148.955 26.588 Z" fill="#2C3539" style=""></path>
|
12
|
+
<path d="M 14.116 27.522 C 12.77 27.522 10.905 27.108 9.559 26.226 L 9.559 14.312 C 9.559 11.93 11.837 9.855 14.791 9.855 C 17.535 9.855 20.026 11.619 20.026 18.507 C 20.026 23.012 18.521 27.522 14.116 27.522 Z M 17.073 4.831 C 12.668 4.831 9.82 7.214 8.887 8.975 L 8.887 5.61 L 0.131 5.61 L 0.131 9.803 L 2.309 9.958 C 3.291 9.958 3.6 10.375 3.6 11.513 L 3.565 42.39 L 13.752 42.39 L 13.752 38.297 L 9.559 38.088 L 9.559 30.94 C 10.905 31.768 13.08 32.442 15.101 32.442 C 21.942 32.442 26.446 27.522 26.446 17.99 C 26.446 8.718 22.822 4.831 17.073 4.831 Z" fill="#2C3539" style=""></path>
|
13
|
+
<path d="M 182.666 27.597 L 182.666 28.207 L 181.458 28.207 L 181.458 31.611 L 180.711 31.611 L 180.711 28.207 L 179.501 28.207 L 179.501 27.597 L 182.666 27.597 Z" fill="#2C3539" style=""></path>
|
14
|
+
<path d="M 185.185 30.129 C 185.213 30.193 185.24 30.257 185.264 30.323 C 185.294 30.257 185.318 30.188 185.348 30.125 C 185.373 30.059 185.402 30.001 185.434 29.939 L 186.624 27.716 C 186.639 27.687 186.652 27.665 186.668 27.652 C 186.685 27.632 186.705 27.62 186.723 27.613 C 186.74 27.604 186.764 27.603 186.787 27.6 C 186.807 27.598 186.841 27.597 186.873 27.597 L 187.437 27.597 L 187.437 31.611 L 186.778 31.611 L 186.778 29.017 C 186.778 28.968 186.779 28.915 186.783 28.861 C 186.786 28.801 186.789 28.744 186.795 28.686 L 185.583 30.961 C 185.554 31.01 185.518 31.052 185.473 31.081 C 185.43 31.11 185.378 31.122 185.318 31.122 L 185.217 31.122 C 185.157 31.122 185.103 31.11 185.059 31.081 C 185.017 31.052 184.979 31.01 184.949 30.961 L 183.725 28.677 C 183.731 28.738 183.734 28.796 183.737 28.855 C 183.741 28.913 183.742 28.967 183.742 29.017 L 183.742 31.611 L 183.083 31.611 L 183.083 27.597 L 183.65 27.597 C 183.683 27.597 183.708 27.598 183.734 27.6 C 183.758 27.603 183.776 27.604 183.799 27.613 C 183.819 27.62 183.836 27.632 183.851 27.652 C 183.873 27.665 183.887 27.687 183.9 27.716 L 185.098 29.944 C 185.132 30.003 185.159 30.068 185.185 30.129 Z" fill="#2C3539" style=""></path>
|
18
15
|
</g>
|
19
|
-
</svg>
|
16
|
+
</svg>
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"bizdoc-core.d.ts","sourceRoot":"","sources":["../../libraries/core/src/bizdoc-core.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,cAAc,CAAC"}
|
@@ -262,6 +262,7 @@ let ConfigurationDesignerComponent = class ConfigurationDesignerComponent {
|
|
262
262
|
return elements.map(e => {
|
263
263
|
const element = { ...e };
|
264
264
|
delete element.injector;
|
265
|
+
delete element.arguments;
|
265
266
|
return cleanup(element);
|
266
267
|
});
|
267
268
|
}
|
@@ -283,4 +284,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
283
284
|
type: HostListener,
|
284
285
|
args: ['keydown', ['$event']]
|
285
286
|
}] } });
|
286
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9hcmNoaXRlY3R1cmUvZGVzaWduZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9hcmNoaXRlY3R1cmUvZGVzaWduZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRELE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFNL0MsT0FBTyxFQUE2QyxXQUFXLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYyxNQUFNLGdCQUFnQixDQUFDO0FBRXhILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxt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Q0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUM7UUFDckIsR0FBRztZQUNELENBQUMsRUFBRSxDQUFDO1lBQ0osSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDbkgsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7U0FDeEgsUUFDTSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEVBQUU7UUFDekUsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDekQsT0FBTyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FB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LENBQUM7SUFDRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RLLE1BQU0sS0FBSyxHQUFHO1lBQ1osT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDdkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbkIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDdkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbkIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDckIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDdkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbkIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDekIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDckIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbkIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFDM0IsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbkIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDdkIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDekIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUM7U0FDOUIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQ3RCLEtBQVksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDL0IsS0FBSyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN6SCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3RDLENBQUMsRUFBRSxHQUFHLEVBQUU7WUFDTixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsU0FBUyxLQUFLLENBQUMsUUFBd0I7WUFDckMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUN0QixNQUFNLE9BQU8sR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQztnQkFDeEIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsU0FBUyxLQUFLLENBQUMsR0FBRyxVQUE0QjtZQUM1QyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDMUQsQ0FBQztJQUNILENBQUM7OzJIQW5QVSw4QkFBOEI7K0dBQTlCLDhCQUE4Qix3SkMzQzNDLHVoR0FpREEsKzZJRFZjLENBQUMsYUFBYSxDQUFDO0FBSWhCLDhCQUE4QjtJQUQxQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsK0JBQStCLEVBQUUsQ0FBQztHQUN6Qyw4QkFBOEIsQ0FvUDFDO1NBcFBZLDhCQUE4QjsyRkFBOUIsOEJBQThCO2tCQVAxQyxTQUFTO2lDQUdJLENBQUMsYUFBYSxDQUFDLFFBQ3JCLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTttUUE4RXZCLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9kcmFnLWRyb3BcIjtcclxuaW1wb3J0IHsgRVNDQVBFLCBTUEFDRSB9IGZyb20gXCJAYW5ndWxhci9jZGsva2V5Y29kZXNcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWF0TWVudVRyaWdnZXIgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xyXG5pbXBvcnQgeyBpdGVtQW5pbWF0aW9uIH0gZnJvbSBcIi4uLy4uL2NvcmUvYW5pbWF0aW9uc1wiO1xyXG5pbXBvcnQgeyBVdGlsaXR5Q29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvcmUvYmFzZVwiO1xyXG5pbXBvcnQgeyBPcGVuUG9saWN5IH0gZnJvbSBcIi4uLy4uL2NvcmUvY29uZmlndXJhdGlvblwiO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tIFwiLi4vLi4vY29yZS9kZWNvcmF0b3JzXCI7XHJcbmltcG9ydCB7IGNsZWFudXAgfSBmcm9tIFwiLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2xvdHMvcm91dGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFV0aWxpdHlSZWYgfSBmcm9tIFwiLi4vdXRpbGl0eS1yZWZcIjtcclxuaW1wb3J0IHsgRWxlbWVudE1vZGVsLCBEZXNpZ25lck1vZGVsLCBUZW1wbGF0ZUluZm8sIHByb2dyYW1OYW1lLCBEZXNpZ25lclJlZiwgY2xvbmUsIERlc2lnbk1vZGUgfSBmcm9tIFwiLi9kZWNsYXJhdGlvbnNcIjtcclxuaW1wb3J0IHsgRGVzaWduZXJUeXBlRWxlbWVudENvbXBvbmVudCB9IGZyb20gXCIuL2Rlc2lnbmVyLmJhc2VcIjtcclxuaW1wb3J0IHsgQWN0aW9uRGVzaWduZXJDb21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9hY3Rpb24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEF0dHJpYnV0ZURlc2lnbkNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL2F0dHJpYnV0ZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ29udHJvbERlc2lnbkNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL2NvbnRyb2wuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEN1YmVEZXNpZ25Db21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9jdWJlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBGb2xkZXJEZXNpZ25Db21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9mb2xkZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEZvcm1EZXNpZ25Db21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9mb3JtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBHdWlkZURlc2lnbkNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL2d1aWRlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBOb2RlRGVzaWduZXJDb21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9ub2RlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQb2xpY3lEZXNpZ25Db21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9wb2xpY3kuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFJlcG9ydERlc2lnbmVyQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvcmVwb3J0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBSb2xlRGVzaWduQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvcm9sZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUnVsZURlc2lnbkNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL3J1bGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFN0YXRlRGVzaWduQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvc3RhdGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFR5cGVEZXNpZ25Db21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy90eXBlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBVdGlsaXR5RGVzaWduQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvdXRpbGl0eS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVmlld0Rlc2lnbkNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL3ZpZXcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFdpZGdldERlc2lnbkNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL3dpZGdldC5jb21wb25lbnRcIjtcclxuY29uc3QgQ0hBUkFDVEVSID0gL1tcXHddfFNwYWNlYmFyLztcclxuLyoqICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnZGVzaWduZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydkZXNpZ25lci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtpdGVtQW5pbWF0aW9uXSxcclxuICBob3N0OiB7IHRhYmluZGV4OiAnMCcgfVxyXG59KVxyXG5AQml6RG9jKHsgc2VsZWN0b3I6ICdiaXpkb2MtY29uZmlndXJhdGlvbi1kZXNpZ25lcicgfSlcclxuZXhwb3J0IGNsYXNzIENvbmZpZ3VyYXRpb25EZXNpZ25lckNvbXBvbmVudCBpbXBsZW1lbnRzIFV0aWxpdHlDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgc2VhcmNoQnk6IHN0cmluZztcclxuICBsb2FkaW5nID0gdHJ1ZTtcclxuICBzYXZpbmcgPSBmYWxzZTtcclxuICBkaXJ0eSA9IGZhbHNlO1xyXG4gIHNlY3Rpb25zOiBTZWN0aW9uW107XHJcbiAgbW9kZWw6IERlc2lnbmVyTW9kZWw7XHJcbiAgcHJpdmF0ZSBfdHlwaW5nVGltZXI6IGFueTtcclxuICBwcml2YXRlIF9jbGVhclRpbWVyOiBhbnk7XHJcbiAgcHJpdmF0ZSBfc2VjdGlvbnM6IFNlY3Rpb25bXTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3BhbmVzOiBQYW5lc1JvdXRlcixcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3BzOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9lbGVtZW50OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PixcclxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgX3JlZjogVXRpbGl0eVJlZjxib29sZWFuLCBEZXNpZ25lck1vZGVsLCBEZXNpZ25lck1vZGVsPikgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZWYucG9wdWxhdGUoKS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSByO1xyXG4gICAgICB0aGlzLnNlY3Rpb25zID0gdGhpcy5fc2VjdGlvbnMgPSBbXHJcbiAgICAgICAgeyBlbGVtZW50czogci5mb3JtcywgdHlwZTogJ0Zvcm1zJywgY29tcDogRm9ybURlc2lnbkNvbXBvbmVudCwgdGVtcGxhdGVzOiByLnRGb3JtcyB9LFxyXG4gICAgICAgIHsgZWxlbWVudHM6IHIuYWN0aW9ucywgdHlwZTogJ0FjdGlvbnMnLCBjb21wOiBBY3Rpb25EZXNpZ25lckNvbXBvbmVudCwgdGVtcGxhdGVzOiByLnRBY3Rpb25zIH0sXHJcbiAgICAgICAgeyBlbGVtZW50czogci5yZXBvcnRzLCB0eXBlOiAnUmVwb3J0cycsIGNvbXA6IFJlcG9ydERlc2lnbmVyQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IHIudFJlcG9ydHMgfSxcclxuICAgICAgICB7IGVsZW1lbnRzOiByLndpZGdldHMsIHR5cGU6ICdXaWRnZXRzJywgY29tcDogV2lkZ2V0RGVzaWduQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IHIudFdpZGdldHMgfSxcclxuICAgICAgICB7IGVsZW1lbnRzOiByLnZpZXdzLCB0eXBlOiAnVmlld3MnLCBjb21wOiBWaWV3RGVzaWduQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IHIudFZpZXdzIH0sXHJcbiAgICAgICAgeyBlbGVtZW50czogci5ndWlkZXMsIHR5cGU6ICdHdWlkZXMnLCBjb21wOiBHdWlkZURlc2lnbkNvbXBvbmVudCwgdGVtcGxhdGVzOiBbeyB0aXRsZTogdGhpcy5fdHJhbnNsYXRlLmdldCgnR3VpZGUnKSB9XSB9LFxyXG4gICAgICAgIHsgZWxlbWVudHM6IHIuY3ViZXMsIHR5cGU6ICdDdWJlcycsIGNvbXA6IEN1YmVEZXNpZ25Db21wb25lbnQsIHRlbXBsYXRlczogci50Q3ViZXMgfSxcclxuICAgICAgICB7IGVsZW1lbnRzOiByLmZvbGRlcnMsIHR5cGU6ICdGb2xkZXJzJywgY29tcDogRm9sZGVyRGVzaWduQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IFt7IHRpdGxlOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdGb2xkZXInKSB9XSB9LFxyXG4gICAgICAgIHsgZWxlbWVudHM6IHIucm9sZXMsIHR5cGU6ICdSb2xlcycsIGNvbXA6IFJvbGVEZXNpZ25Db21wb25lbnQsIHRlbXBsYXRlczogW3sgdGl0bGU6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1JvbGUnKSB9XSB9LFxyXG4gICAgICAgIHsgZWxlbWVudHM6IHIuc3RhdGVzLCB0eXBlOiAnU3RhdGVzJywgY29tcDogU3RhdGVEZXNpZ25Db21wb25lbnQsIHRlbXBsYXRlczogW3sgdGl0bGU6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1N0YXRlJykgfV0gfSxcclxuICAgICAgICB7IGVsZW1lbnRzOiByLnV0aWxpdGllcywgdHlwZTogJ1Rvb2xzJywgY29tcDogVXRpbGl0eURlc2lnbkNvbXBvbmVudCwgdGVtcGxhdGVzOiByLnRVdGlsaXRpZXMgfSxcclxuICAgICAgICB7IGVsZW1lbnRzOiByLnR5cGVzLCB0eXBlOiAnVHlwZXMnLCBjb21wOiBUeXBlRGVzaWduQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IHIudFR5cGVzIH0sXHJcbiAgICAgICAgeyBlbGVtZW50czogci5ub2RlcywgdHlwZTogJ05vZGVzJywgY29tcDogTm9kZURlc2lnbmVyQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IHIudE5vZGVzIH0sXHJcbiAgICAgICAgeyBlbGVtZW50czogci5hdHRyaWJ1dGVzLCB0eXBlOiAnQXR0cmlidXRlcycsIGNvbXA6IEF0dHJpYnV0ZURlc2lnbkNvbXBvbmVudCwgdGVtcGxhdGVzOiByLnRBdHRyaWJ1dGVzIH0sXHJcbiAgICAgICAgeyBlbGVtZW50czogci5wb2xpY2llcywgdHlwZTogJ1BvbGljaWVzJywgY29tcDogUG9saWN5RGVzaWduQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IHIudFBvbGljaWVzIH0sXHJcbiAgICAgICAgeyBlbGVtZW50czogci5jb250cm9scywgdHlwZTogJ0NvbnRyb2xzJywgY29tcDogQ29udHJvbERlc2lnbkNvbXBvbmVudCwgdGVtcGxhdGVzOiBbXSB9LFxyXG4gICAgICAgIHsgZWxlbWVudHM6IHIucnVsZXMsIHR5cGU6ICdSdWxlcycsIGNvbXA6IFJ1bGVEZXNpZ25Db21wb25lbnQsIHRlbXBsYXRlczogci50UnVsZXMgfSxcclxuICAgICAgXTtcclxuICAgICAgdGhpcy5zZWN0aW9ucy5mb3JFYWNoKHMgPT5cclxuICAgICAgICBzLmVsZW1lbnRzLmZvckVhY2goZSA9PiB7XHJcbiAgICAgICAgICBpZiAoIWUub3B0aW9ucykgZS5vcHRpb25zID0ge307XHJcblxyXG4gICAgICAgICAgZS5pbmplY3RvciA9IHRoaXMuX2NyZWF0ZUluamVjdG9yKGUsICd3aWRnZXQnKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gICAgLy8gdHlwaW5nIGtleWRvd24gbGlzdGVuZXJcclxuICAgIHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gIH1cclxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxFbGVtZW50TW9kZWxbXT4pIHtcclxuICAgIGNvbnN0IHJhbmdlID0gZXZlbnQuY29udGFpbmVyLmRhdGEuc2xpY2UoXHJcbiAgICAgIE1hdGgubWluKGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCksXHJcbiAgICAgIE1hdGgubWF4KGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleClcclxuICAgICksIGZpbGUgPSByYW5nZVswXS5jb25maWd1cmF0aW9uRmlsZTtcclxuICAgIGlmXHJcbiAgICAgIC8vIGFjcm9zcyBmaWxlc1xyXG4gICAgICAocmFuZ2Uuc2xpY2UoMSkuc29tZShlID0+IGUuY29uZmlndXJhdGlvbkZpbGUgIT09IGZpbGUpKSB7XHJcbiAgICAgIC8vIHN0YXJ0IG9yZGluYWxcclxuICAgICAgbGV0IGkgPSBldmVudC5jb250YWluZXIuZGF0YVtldmVudC5jdXJyZW50SW5kZXhdLm9yZGluYWwgfHwgLTE7XHJcbiAgICAgIC8vIHNldCBvcmRpbmFsIHRvIGl0ZW1zIGluIHJhbmdlXHJcbiAgICAgIHJhbmdlLmZvckVhY2goZSA9PiBlLm9yZGluYWwgPSBpKyspO1xyXG4gICAgICAvLyBpbmNyZWFzZSBvdGhlciBoaWdoZXIgdGhhbiBsYXN0IGluIHJhbmdlXHJcbiAgICAgIGV2ZW50LmNvbnRhaW5lci5kYXRhLmZpbHRlcihlID0+IGUub3JkaW5hbCAmJiBlLm9yZGluYWwgPiBpKS5mb3JFYWNoKGUgPT4gZS5vcmRpbmFsICs9IDEpO1xyXG4gICAgfSBlbHNlIC8vIG5hdGl2ZSBvcmRlciBpbiBjb2xsZWN0aW9uXHJcbiAgICAgIHJhbmdlLmZvckVhY2goZSA9PiBlLm9yZGluYWwgPSBudWxsKTtcclxuICAgIG1vdmVJdGVtSW5BcnJheShldmVudC5jb250YWluZXIuZGF0YSwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3RybC1zIHNhdmUsIHNlYXJjaFxyXG4gICAqIEBwYXJhbSBldmVudFxyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5jdHJsS2V5ICYmIChldmVudC53aGljaCA9PT0gODMgfHwgZXZlbnQud2hpY2ggPT09IDExNSkpIHtcclxuICAgICAgdGhpcy5kaXJ0eSAmJiB0aGlzLnNhdmUoKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VhcmNoQnkgJiYgZXZlbnQud2hpY2ggPT09IEVTQ0FQRSkgdGhpcy5jbGVhclNlYXJjaCgpO1xyXG4gICAgZWxzZSBpZiAoZXZlbnQuY29kZS5zdGFydHNXaXRoKCdLZXknKSB8fCBldmVudC53aGljaCA9PSBTUEFDRSkge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fdHlwaW5nVGltZXIpO1xyXG4gICAgICAvL2NsZWFyVGltZW91dCh0aGlzLl9jbGVhclRpbWVyKTtcclxuICAgICAgdGhpcy5zZWFyY2hCeSA9IHRoaXMuc2VhcmNoQnkgPyB0aGlzLnNlYXJjaEJ5ICsgZXZlbnQua2V5IDogZXZlbnQua2V5O1xyXG4gICAgICB0aGlzLl90eXBpbmdUaW1lciA9IHNldFRpbWVvdXQoKCkgPT5cclxuICAgICAgICB0aGlzLnNlY3Rpb25zID0gdGhpcy5fc2VhcmNoKHRoaXMuc2VhcmNoQnkpLCAxNTApO1xyXG4gICAgfVxyXG4gIH1cclxuICBjbGVhclNlYXJjaCgpIHtcclxuICAgIHRoaXMuc2VhcmNoQnkgPSBudWxsO1xyXG4gICAgdGhpcy5zZWN0aW9ucyA9IHRoaXMuX3NlY3Rpb25zO1xyXG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX3R5cGluZ1RpbWVyKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfc2VhcmNoKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHNlY3Rpb25zOiBTZWN0aW9uW10gPSBbXTtcclxuICAgIHRoaXMuX3NlY3Rpb25zLmZvckVhY2gocyA9PiB7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnRzID0gcy5lbGVtZW50cy5cclxuICAgICAgICBmaWx0ZXIoZSA9PiAoZS50aXRsZSB8fCBlLm5hbWUpLnRvTG93ZXJDYXNlKCkuXHJcbiAgICAgICAgICBpbmRleE9mKHZhbHVlKSA+IC0xKTtcclxuICAgICAgaWYgKGVsZW1lbnRzLmxlbmd0aCkge1xyXG4gICAgICAgIGNvbnN0IHsgY29tcCwgdGVtcGxhdGVzLCB0eXBlIH0gPSBzO1xyXG4gICAgICAgIHNlY3Rpb25zLnB1c2goeyBlbGVtZW50cywgY29tcCwgdGVtcGxhdGVzLCB0eXBlIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIC8vdGhpcy5fY2xlYXJUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZWFyY2hCeSA9IG51bGwsIDUwMDApO1xyXG4gICAgcmV0dXJuIHNlY3Rpb25zO1xyXG4gIH1cclxuICBwcml2YXRlIF9pbnNlcnQoc2VjdGlvbjogU2VjdGlvbiwgZWxlbWVudDogRWxlbWVudE1vZGVsLCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBsZXQgaSA9IGVsZW1lbnQubmFtZS5sYXN0SW5kZXhPZignXycpLFxyXG4gICAgICBqID0gZWxlbWVudC50aXRsZS5sYXN0SW5kZXhPZignICcpLFxyXG4gICAgICBuID0gMCwgbmFtZSwgdGl0bGU7XHJcbiAgICBkbyB7XHJcbiAgICAgIG4rKztcclxuICAgICAgbmFtZSA9IChpIDwgMCB8fCBpc05hTihwYXJzZUludChlbGVtZW50Lm5hbWUuc3Vic3RyKGkgKyAxKSkpID8gZWxlbWVudC5uYW1lIDogZWxlbWVudC5uYW1lLnN1YnN0cigwLCBpKSkgKyAnXycgKyBuO1xyXG4gICAgICB0aXRsZSA9IChqIDwgMCB8fCBpc05hTihwYXJzZUludChlbGVtZW50LnRpdGxlLnN1YnN0cihqICsgMSkpKSA/IGVsZW1lbnQudGl0bGUgOiBlbGVtZW50LnRpdGxlLnN1YnN0cigwLCBqKSkgKyAnICcgKyBuO1xyXG4gICAgfVxyXG4gICAgd2hpbGUgKHNlY3Rpb24uZWxlbWVudHMuZmluZChlID0+IGUubmFtZSA9PT0gbmFtZSB8fCBlLnRpdGxlID09PSB0aXRsZSkpO1xyXG4gICAgZWxlbWVudC5uYW1lID0gbmFtZSwgZWxlbWVudC50aXRsZSA9IHRpdGxlO1xyXG5cclxuICAgIGNvbnN0IGluamVjdG9yID0gdGhpcy5fY3JlYXRlSW5qZWN0b3IoZWxlbWVudCwgJ3dpZGdldCcpO1xyXG4gICAgZWxlbWVudC5pbmplY3RvciA9IGluamVjdG9yO1xyXG4gICAgdGhpcy5fb3BlbihlbGVtZW50LCBzZWN0aW9uLCAnYWRkJykudGhlbigoKSA9PlxyXG4gICAgICBzZWN0aW9uLmVsZW1lbnRzLnNwbGljZShpbmRleCArIDEsIDAsIGVsZW1lbnQpXHJcbiAgICApO1xyXG4gIH1cclxuICBwcml2YXRlIF9vcGVuKGVsZW1lbnQ6IEVsZW1lbnRNb2RlbCxcclxuICAgIHNlY3Rpb246IFNlY3Rpb24sXHJcbiAgICBtb2RlOiBEZXNpZ25Nb2RlLCB0aXRsZT86IHN0cmluZykge1xyXG4gICAgbGV0IGVjbG9uZSA9IHsgLi4uZWxlbWVudCB9O1xyXG4gICAgZGVsZXRlIGVjbG9uZS5pbmplY3RvcjtcclxuICAgIGVjbG9uZSA9IGNsb25lKGVjbG9uZSk7IC8vIGRlZXBcclxuICAgIGNvbnN0IGluamVjdG9yID0gdGhpcy5fY3JlYXRlSW5qZWN0b3IoZWNsb25lLCBtb2RlKTtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PlxyXG4gICAgICB0aGlzLl9wYW5lcy5uYXZpZ2F0ZTxEZXNpZ25lclR5cGVFbGVtZW50Q29tcG9uZW50PihzZWN0aW9uLmNvbXAsIHtcclxuICAgICAgICBwb2xpY3k6IG1vZGUgPT09ICdhZGQnID8gT3BlblBvbGljeS5EaWFsb2cgfCBPcGVuUG9saWN5LlN0cmV0Y2ggOlxyXG4gICAgICAgICAgT3BlblBvbGljeS5UYWIgfCBPcGVuUG9saWN5LlRvZ2dsZSB8IE9wZW5Qb2xpY3kuRGVmZXIsXHJcbiAgICAgIGdyb3VwOiB0aGlzLl90cmFuc2xhdGUuZ2V0KHNlY3Rpb24udHlwZSksXHJcbiAgICAgIC8vdGl0bGUsXHJcbiAgICAgIGluamVjdG9yOiBpbmplY3RvclxyXG4gICAgfSkudGhlbihwYW5lID0+IHtcclxuICAgICAgcGFuZS5pbnN0YW5jZS5kZXNpZ25lci5vblNhdmUuc3Vic2NyaWJlKGVsID0+IHtcclxuICAgICAgICBpZiAoZWwpIHtcclxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oZWxlbWVudCwgZWwpO1xyXG4gICAgICAgICAgdGhpcy5kaXJ0eSA9IHRydWU7XHJcbiAgICAgICAgICByZXNvbHZlKGVsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSByZWplY3QoKTtcclxuICAgICAgICBwYW5lLmNsb3NlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBwYW5lLmNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2NyZWF0ZUluamVjdG9yKGVsZW1lbnQ6IEVsZW1lbnRNb2RlbDxhbnk+LCBtb2RlOiBEZXNpZ25Nb2RlKSB7XHJcbiAgICBjb25zdCByZWYgPSBuZXcgRGVzaWduZXJSZWYodGhpcy5tb2RlbCwgZWxlbWVudCwgbW9kZSk7XHJcblxyXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoW3tcclxuICAgICAgcHJvdmlkZTogRGVzaWduZXJSZWYsIHVzZVZhbHVlOiByZWZcclxuICAgIH1dLCB0aGlzLl9pbmplY3Rvcik7XHJcbiAgICByZXR1cm4gaW5qZWN0b3I7XHJcbiAgfVxyXG4gIGFkZChzZWN0aW9uOiBTZWN0aW9uLCBtZW51OiBNYXRNZW51VHJpZ2dlciwgZXZ0OiBFdmVudCkge1xyXG4gICAgaWYgKHNlY3Rpb24udGVtcGxhdGVzLmxlbmd0aCA+IDEpXHJcbiAgICAgIG1lbnUub3Blbk1lbnUoKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmNyZWF0ZShzZWN0aW9uLCBzZWN0aW9uLnRlbXBsYXRlc1swXSk7XHJcbiAgICB9XHJcbiAgICBldnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcbiAgY3JlYXRlKHNlY3Rpb246IFNlY3Rpb24sIHRlbXBsYXRlOiBUZW1wbGF0ZUluZm8pIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB7XHJcbiAgICAgIC4uLnRlbXBsYXRlLFxyXG4gICAgICBuYW1lOiBwcm9ncmFtTmFtZSh0ZW1wbGF0ZS5rZXkgfHwgdGVtcGxhdGUudGl0bGUpLFxyXG4gICAgICBkcmFmdDogdHJ1ZSxcclxuICAgICAgb3B0aW9uczoge31cclxuICAgIH0gYXMgRWxlbWVudE1vZGVsO1xyXG4gICAgdGhpcy5faW5zZXJ0KHNlY3Rpb24sIGVsZW1lbnQsIHNlY3Rpb24uZWxlbWVudHMubGVuZ3RoKTtcclxuICB9XHJcbiAgcmVtb3ZlKHNlY3Rpb246IFNlY3Rpb24sIGVsZW1lbnQ6IEVsZW1lbnRNb2RlbCkge1xyXG4gICAgc2VjdGlvbi5lbGVtZW50cy5yZW1vdmUoZWxlbWVudCk7XHJcbiAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuICB9XHJcbiAgY29weShzZWN0aW9uOiBTZWN0aW9uLCBlbGVtZW50OiBFbGVtZW50TW9kZWwpIHtcclxuICAgIGxldCBlY2xvbmUgPSB7XHJcbiAgICAgIC4uLmVsZW1lbnQsXHJcbiAgICAgIGNvcHlPZjogZWxlbWVudC5uYW1lLFxyXG4gICAgICBkcmFmdDogdHJ1ZVxyXG4gICAgfTtcclxuICAgIGRlbGV0ZSBlY2xvbmUuaW5qZWN0b3I7XHJcbiAgICBkZWxldGUgZWNsb25lLnJlc291cmNlVHlwZTtcclxuICAgIGVjbG9uZSA9IGNsb25lKGVjbG9uZSk7IC8vIGRlZXBcclxuICAgIHRoaXMuX2luc2VydChzZWN0aW9uLCBlY2xvbmUsIHNlY3Rpb24uZWxlbWVudHMuaW5kZXhPZihlbGVtZW50KSk7XHJcbiAgfVxyXG4gIGVkaXQoZWxlbWVudDogRWxlbWVudE1vZGVsLCBzZWN0aW9uOiBTZWN0aW9uKSB7XHJcbiAgICB0aGlzLl9vcGVuKGVsZW1lbnQsIHNlY3Rpb24sICdlZGl0Jyk7XHJcbiAgfVxyXG4gIHRvZ2dsZURpc2FibGVkKGVsZW1lbnQ6IEVsZW1lbnRNb2RlbCkge1xyXG4gICAgZWxlbWVudC5kaXNhYmxlZCA9ICFlbGVtZW50LmRpc2FibGVkO1xyXG4gICAgdGhpcy5kaXJ0eSA9IHRydWU7XHJcbiAgfVxyXG4gIHNhdmUoKSB7XHJcbiAgICB0aGlzLnNhdmluZyA9IHRydWU7XHJcbiAgICBjb25zdCB7IGNvbnRyb2xzLCBhdHRyaWJ1dGVzLCBwb2xpY2llcywgYWN0aW9ucywgY3ViZXMsIGZvbGRlcnMsIGZvcm1zLCBndWlkZXMsIHJlcG9ydHMsIHJvbGVzLCBydWxlcywgc3RhdGVzLCB0eXBlcywgdXRpbGl0aWVzLCB2aWV3cywgd2lkZ2V0cywgbm9kZXMgfSA9IHRoaXMubW9kZWw7XHJcbiAgICBjb25zdCBtb2RlbCA9IHtcclxuICAgICAgYWN0aW9uczogc3RyaXAoYWN0aW9ucyksXHJcbiAgICAgIGN1YmVzOiBzdHJpcChjdWJlcyksXHJcbiAgICAgIGZvbGRlcnM6IHN0cmlwKGZvbGRlcnMpLFxyXG4gICAgICBmb3Jtczogc3RyaXAoZm9ybXMpLFxyXG4gICAgICBndWlkZXM6IHN0cmlwKGd1aWRlcyksXHJcbiAgICAgIHJlcG9ydHM6IHN0cmlwKHJlcG9ydHMpLFxyXG4gICAgICByb2xlczogc3RyaXAocm9sZXMpLFxyXG4gICAgICBydWxlczogc3RyaXAocnVsZXMpLFxyXG4gICAgICBwb2xpY2llczogc3RyaXAocG9saWNpZXMpLFxyXG4gICAgICBzdGF0ZXM6IHN0cmlwKHN0YXRlcyksXHJcbiAgICAgIHR5cGVzOiBzdHJpcCh0eXBlcyksXHJcbiAgICAgIHV0aWxpdGllczogc3RyaXAodXRpbGl0aWVzKSxcclxuICAgICAgdmlld3M6IHN0cmlwKHZpZXdzKSxcclxuICAgICAgbm9kZXM6IHN0cmlwKG5vZGVzKSxcclxuICAgICAgd2lkZ2V0czogc3RyaXAod2lkZ2V0cyksXHJcbiAgICAgIGNvbnRyb2xzOiBzdHJpcChjb250cm9scyksXHJcbiAgICAgIGF0dHJpYnV0ZXM6IHN0cmlwKGF0dHJpYnV0ZXMpXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlZi5leGVjdXRlKFxyXG4gICAgICBtb2RlbCBhcyBhbnkpLnRvUHJvbWlzZSgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3BzLnRvYXN0KCdDaGFuZ2VzU2F2ZWQnKTtcclxuICAgICAgICBhcHBseShwb2xpY2llcywgYWN0aW9ucywgY3ViZXMsIGZvbGRlcnMsIGZvcm1zLCBndWlkZXMsIHJlcG9ydHMsIHJvbGVzLCBydWxlcywgc3RhdGVzLCB0eXBlcywgdXRpbGl0aWVzLCB2aWV3cywgd2lkZ2V0cyk7XHJcbiAgICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmRpcnR5ID0gZmFsc2VcclxuICAgICAgICB0aGlzLl9zZXNzaW9uLnJlZnJlc2goKS5zdWJzY3JpYmUoKTtcclxuICAgICAgfSwgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3BzLmVycm9yKCk7XHJcbiAgICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZVxyXG4gICAgICB9KTtcclxuICAgIGZ1bmN0aW9uIHN0cmlwKGVsZW1lbnRzOiBFbGVtZW50TW9kZWxbXSkge1xyXG4gICAgICByZXR1cm4gZWxlbWVudHMubWFwKGUgPT4ge1xyXG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB7IC4uLmUgfTtcclxuICAgICAgICBkZWxldGUgZWxlbWVudC5pbmplY3RvcjtcclxuICAgICAgICByZXR1cm4gY2xlYW51cChlbGVtZW50KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBhcHBseSguLi5jb2xsZWN0aW9uOiBFbGVtZW50TW9kZWxbXVtdKSB7XHJcbiAgICAgIGNvbGxlY3Rpb24uZm9yRWFjaChzID0+IHMuZm9yRWFjaChlID0+IGRlbGV0ZSBlLmRyYWZ0KSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBTZWN0aW9uIHtcclxuICBjb21wOiBDb21wb25lbnRUeXBlPGFueT47XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIGVsZW1lbnRzOiBFbGVtZW50TW9kZWxbXTtcclxuICB0ZW1wbGF0ZXM6IFRlbXBsYXRlSW5mb1tdO1xyXG59XHJcbiIsIjxtYXQtdG9vbGJhcj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwic2F2ZSgpXCIgW2Rpc2FibGVkXT1cIiFkaXJ0eSB8fCBsb2FkaW5nIHx8IHNhdmluZ1wiIFtiaXpkb2NUb29sdGlwXT1cIidTYXZlJ3x0cmFuc2xhdGVcIj48bWF0LWljb24+c2F2ZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJjbGVhclNlYXJjaCgpXCIgW2Rpc2FibGVkXT1cIiFzZWFyY2hCeVwiIFtiaXpkb2NUb29sdGlwXT1cIidDbGVhcid8dHJhbnNsYXRlXCI+PG1hdC1pY29uPnNlYXJjaF9vZmY8L21hdC1pY29uPjwvYnV0dG9uPlxyXG48L21hdC10b29sYmFyPlxyXG48bWF0LXByb2dyZXNzLWJhciBbbW9kZV09XCJsb2FkaW5nID8gJ2J1ZmZlcicgOiAnaW5kZXRlcm1pbmF0ZSdcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJsb2FkaW5nID8gJ3Zpc2libGUnOidoaWRkZW4nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxyXG48Yml6ZG9jLW5vbmUgKm5nSWY9XCJsb2FkaW5nXCIgdGl0bGU9XCJTZXR0aW5nVGhpbmdzVXBcIiBbc3VidGl0bGVdPVwiUGxlYXNlV2FpdFwiIGljb249XCJhcmNoaXRlY3R1cmVcIj48L2JpemRvYy1ub25lPlxyXG48c2VjdGlvbiAqbmdGb3I9XCJsZXQgcyBvZiBzZWN0aW9uc1wiPlxyXG4gIDxoMiBjbGFzcz1cIm1hdC10aXRsZVwiPnt7cy50eXBlIHwgdHJhbnNsYXRlfX08L2gyPlxyXG4gIDwhLS08aHIgLz4tLT5cclxuICA8ZGl2IGNsYXNzPVwiZWxlbWVudHNcIiBjZGtEcm9wTGlzdCBjZGtEcm9wTGlzdE9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiIFtjZGtEcm9wTGlzdERhdGFdPVwicy5lbGVtZW50c1wiIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XHJcbiAgICA8bWF0LWNhcmQgKm5nRm9yPVwibGV0IGUgb2Ygcy5lbGVtZW50c1wiIFtjbGFzcy5kaXNhYmxlZF09XCJlLmRpc2FibGVkXCIgY2RrRHJhZyBjZGtEcmFnUm9vdEVsZW1lbnQ9XCIubWF0LWNhcmQtdGl0bGVcIj5cclxuICAgICAgPCEtLSBAaXRlbS0tPlxyXG4gICAgICA8bWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAge3tlLnRpdGxlfGxvY2FsaXplZFN0cmluZ319XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgIDxtYXQtaWNvbiBbYml6ZG9jVG9vbHRpcF09XCJlLmhlbHBcIiBbYml6ZG9jVG9vbHRpcER1cmF0aW9uXT1cIjYwMDBcIiAqbmdJZj1cImUuaGVscFwiPmhlbHBfb3V0bGluZTwvbWF0LWljb24+XHJcbiAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgIDxtYXQtY2FyZC1zdWJ0aXRsZT5cclxuICAgICAgICB7e2UubmFtZX19XHJcbiAgICAgIDwvbWF0LWNhcmQtc3VidGl0bGU+XHJcbiAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwicy5jb21wOyBpbmplY3RvcjogZS5pbmplY3RvclwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxtYXQtY2FyZC1hY3Rpb25zIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImNvcHkocywgZSlcIiAqbmdJZj1cIiFlLmNvcHlPZlwiIFtiaXpkb2NUb29sdGlwXT1cIidDb3B5J3x0cmFuc2xhdGVcIj48bWF0LWljb24+ZmlsZV9jb3B5PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVtb3ZlKHMsIGUpXCIgKm5nSWY9XCJlLmRyYWZ0IHx8IGUuZW1wdHlcIiBbYml6ZG9jVG9vbHRpcF09XCInRGlzY2FyZCd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZURpc2FibGVkKGUpXCIgW2JpemRvY1Rvb2x0aXBdPVwiKGUuZGlzYWJsZWQgPyAnRW5hYmxlJyA6ICdEaXNhYmxlJyl8dHJhbnNsYXRlXCI+PG1hdC1pY29uPnt7ZS5kaXNhYmxlZCA/ICd2aXNpYmlsaXR5JyA6ICd2aXNpYmlsaXR5X29mZid9fTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJlZGl0KGUsIHMpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1NldHRpbmdzJ3x0cmFuc2xhdGVcIj48bWF0LWljb24+c2V0dGluZ3M8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XHJcbiAgICA8L21hdC1jYXJkPlxyXG4gICAgPGRpdiBjbGFzcz1cImFkZC1lbGVtZW50XCIgbWF0UmlwcGxlIChjbGljayk9XCJhZGQocywgbWVudVRyaWdnZXIsICRldmVudClcIiAqbmdJZj1cInMudGVtcGxhdGVzPy5sZW5ndGhcIj5cclxuICAgICAgPHNwYW4gW21hdE1lbnVUcmlnZ2VyRm9yXT1cInRlbXBsYXRlTWVudVwiICNtZW51VHJpZ2dlcj1cIm1hdE1lbnVUcmlnZ2VyXCI+PC9zcGFuPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbj48bWF0LWljb24gW2JpemRvY1Rvb2x0aXBdPVwiJ05ldyd8dHJhbnNsYXRlXCIgZGlzYWJsZVJpcHBsZT1cInRydWVcIj5hZGQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8bWF0LW1lbnUgI3RlbXBsYXRlTWVudT5cclxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IHQgb2Ygcy50ZW1wbGF0ZXNcIiAoY2xpY2spPVwiY3JlYXRlKHMsIHQpXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInQuZmFtaWx5XCI+XHJcbiAgICAgICAgICAgIHt7dC5mYW1pbHl9fVxyXG4gICAgICAgICAgICAmbmJzcDstJm5ic3A7XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAge3t0LnRpdGxlfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9tYXQtbWVudT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L3NlY3Rpb24+XHJcbiJdfQ==
|
287
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9hcmNoaXRlY3R1cmUvZGVzaWduZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9hcmNoaXRlY3R1cmUvZGVzaWduZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRELE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFNL0MsT0FBTyxFQUE2QyxXQUFXLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYyxNQUFNLGdCQUFnQixDQUFDO0FBRXhILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxt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Q0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUM7UUFDckIsR0FBRztZQUNELENBQUMsRUFBRSxDQUFDO1lBQ0osSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDbkgsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7U0FDeEgsUUFDTSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEVBQUU7UUFDekUsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDekQsT0FBTyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FB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LENBQUM7SUFDRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RLLE1BQU0sS0FBSyxHQUFHO1lBQ1osT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDdkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbkIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDdkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbkIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDckIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDdkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbkIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDekIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDckIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbkIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFDM0IsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbkIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDdkIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDekIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUM7U0FDOUIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQ3RCLEtBQVksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDL0IsS0FBSyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN6SCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3RDLENBQUMsRUFBRSxHQUFHLEVBQUU7WUFDTixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsU0FBUyxLQUFLLENBQUMsUUFBd0I7WUFDckMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUN0QixNQUFNLE9BQU8sR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQztnQkFDeEIsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDO2dCQUN6QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxTQUFTLEtBQUssQ0FBQyxHQUFHLFVBQTRCO1lBQzVDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMxRCxDQUFDO0lBQ0gsQ0FBQzs7MkhBcFBVLDhCQUE4QjsrR0FBOUIsOEJBQThCLHdKQzNDM0MsdWhHQWlEQSwrNklEVmMsQ0FBQyxhQUFhLENBQUM7QUFJaEIsOEJBQThCO0lBRDFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSwrQkFBK0IsRUFBRSxDQUFDO0dBQ3pDLDhCQUE4QixDQXFQMUM7U0FyUFksOEJBQThCOzJGQUE5Qiw4QkFBOEI7a0JBUDFDLFNBQVM7aUNBR0ksQ0FBQyxhQUFhLENBQUMsUUFDckIsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO21RQThFdkIsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2RyYWctZHJvcFwiO1xyXG5pbXBvcnQgeyBFU0NBUEUsIFNQQUNFIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9rZXljb2Rlc1wiO1xyXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdG9yLCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNYXRNZW51VHJpZ2dlciB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XHJcbmltcG9ydCB7IGl0ZW1BbmltYXRpb24gfSBmcm9tIFwiLi4vLi4vY29yZS9hbmltYXRpb25zXCI7XHJcbmltcG9ydCB7IFV0aWxpdHlDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29yZS9iYXNlXCI7XHJcbmltcG9ydCB7IE9wZW5Qb2xpY3kgfSBmcm9tIFwiLi4vLi4vY29yZS9jb25maWd1cmF0aW9uXCI7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gXCIuLi8uLi9jb3JlL2RlY29yYXRvcnNcIjtcclxuaW1wb3J0IHsgY2xlYW51cCB9IGZyb20gXCIuLi8uLi9jb3JlL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUGFuZXNSb3V0ZXIgfSBmcm9tIFwiLi4vLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVXRpbGl0eVJlZiB9IGZyb20gXCIuLi91dGlsaXR5LXJlZlwiO1xyXG5pbXBvcnQgeyBFbGVtZW50TW9kZWwsIERlc2lnbmVyTW9kZWwsIFRlbXBsYXRlSW5mbywgcHJvZ3JhbU5hbWUsIERlc2lnbmVyUmVmLCBjbG9uZSwgRGVzaWduTW9kZSB9IGZyb20gXCIuL2RlY2xhcmF0aW9uc1wiO1xyXG5pbXBvcnQgeyBEZXNpZ25lclR5cGVFbGVtZW50Q29tcG9uZW50IH0gZnJvbSBcIi4vZGVzaWduZXIuYmFzZVwiO1xyXG5pbXBvcnQgeyBBY3Rpb25EZXNpZ25lckNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL2FjdGlvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQXR0cmlidXRlRGVzaWduQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvYXR0cmlidXRlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDb250cm9sRGVzaWduQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvY29udHJvbC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ3ViZURlc2lnbkNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL2N1YmUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEZvbGRlckRlc2lnbkNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL2ZvbGRlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRm9ybURlc2lnbkNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL2Zvcm0uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEd1aWRlRGVzaWduQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvZ3VpZGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IE5vZGVEZXNpZ25lckNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL25vZGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFBvbGljeURlc2lnbkNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL3BvbGljeS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUmVwb3J0RGVzaWduZXJDb21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9yZXBvcnQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFJvbGVEZXNpZ25Db21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9yb2xlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBSdWxlRGVzaWduQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvcnVsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU3RhdGVEZXNpZ25Db21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9zdGF0ZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVHlwZURlc2lnbkNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL3R5cGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFV0aWxpdHlEZXNpZ25Db21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy91dGlsaXR5LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBWaWV3RGVzaWduQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvdmlldy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgV2lkZ2V0RGVzaWduQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvd2lkZ2V0LmNvbXBvbmVudFwiO1xyXG5jb25zdCBDSEFSQUNURVIgPSAvW1xcd118U3BhY2ViYXIvO1xyXG4vKiogKi9cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICdkZXNpZ25lci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ2Rlc2lnbmVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW2l0ZW1BbmltYXRpb25dLFxyXG4gIGhvc3Q6IHsgdGFiaW5kZXg6ICcwJyB9XHJcbn0pXHJcbkBCaXpEb2MoeyBzZWxlY3RvcjogJ2JpemRvYy1jb25maWd1cmF0aW9uLWRlc2lnbmVyJyB9KVxyXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvbkRlc2lnbmVyQ29tcG9uZW50IGltcGxlbWVudHMgVXRpbGl0eUNvbXBvbmVudCwgT25Jbml0IHtcclxuICBzZWFyY2hCeTogc3RyaW5nO1xyXG4gIGxvYWRpbmcgPSB0cnVlO1xyXG4gIHNhdmluZyA9IGZhbHNlO1xyXG4gIGRpcnR5ID0gZmFsc2U7XHJcbiAgc2VjdGlvbnM6IFNlY3Rpb25bXTtcclxuICBtb2RlbDogRGVzaWduZXJNb2RlbDtcclxuICBwcml2YXRlIF90eXBpbmdUaW1lcjogYW55O1xyXG4gIHByaXZhdGUgX2NsZWFyVGltZXI6IGFueTtcclxuICBwcml2YXRlIF9zZWN0aW9uczogU2VjdGlvbltdO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfcGFuZXM6IFBhbmVzUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcHM6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+LFxyXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBfcmVmOiBVdGlsaXR5UmVmPGJvb2xlYW4sIERlc2lnbmVyTW9kZWwsIERlc2lnbmVyTW9kZWw+KSB7IH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3JlZi5wb3B1bGF0ZSgpLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgdGhpcy5tb2RlbCA9IHI7XHJcbiAgICAgIHRoaXMuc2VjdGlvbnMgPSB0aGlzLl9zZWN0aW9ucyA9IFtcclxuICAgICAgICB7IGVsZW1lbnRzOiByLmZvcm1zLCB0eXBlOiAnRm9ybXMnLCBjb21wOiBGb3JtRGVzaWduQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IHIudEZvcm1zIH0sXHJcbiAgICAgICAgeyBlbGVtZW50czogci5hY3Rpb25zLCB0eXBlOiAnQWN0aW9ucycsIGNvbXA6IEFjdGlvbkRlc2lnbmVyQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IHIudEFjdGlvbnMgfSxcclxuICAgICAgICB7IGVsZW1lbnRzOiByLnJlcG9ydHMsIHR5cGU6ICdSZXBvcnRzJywgY29tcDogUmVwb3J0RGVzaWduZXJDb21wb25lbnQsIHRlbXBsYXRlczogci50UmVwb3J0cyB9LFxyXG4gICAgICAgIHsgZWxlbWVudHM6IHIud2lkZ2V0cywgdHlwZTogJ1dpZGdldHMnLCBjb21wOiBXaWRnZXREZXNpZ25Db21wb25lbnQsIHRlbXBsYXRlczogci50V2lkZ2V0cyB9LFxyXG4gICAgICAgIHsgZWxlbWVudHM6IHIudmlld3MsIHR5cGU6ICdWaWV3cycsIGNvbXA6IFZpZXdEZXNpZ25Db21wb25lbnQsIHRlbXBsYXRlczogci50Vmlld3MgfSxcclxuICAgICAgICB7IGVsZW1lbnRzOiByLmd1aWRlcywgdHlwZTogJ0d1aWRlcycsIGNvbXA6IEd1aWRlRGVzaWduQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IFt7IHRpdGxlOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdHdWlkZScpIH1dIH0sXHJcbiAgICAgICAgeyBlbGVtZW50czogci5jdWJlcywgdHlwZTogJ0N1YmVzJywgY29tcDogQ3ViZURlc2lnbkNvbXBvbmVudCwgdGVtcGxhdGVzOiByLnRDdWJlcyB9LFxyXG4gICAgICAgIHsgZWxlbWVudHM6IHIuZm9sZGVycywgdHlwZTogJ0ZvbGRlcnMnLCBjb21wOiBGb2xkZXJEZXNpZ25Db21wb25lbnQsIHRlbXBsYXRlczogW3sgdGl0bGU6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0ZvbGRlcicpIH1dIH0sXHJcbiAgICAgICAgeyBlbGVtZW50czogci5yb2xlcywgdHlwZTogJ1JvbGVzJywgY29tcDogUm9sZURlc2lnbkNvbXBvbmVudCwgdGVtcGxhdGVzOiBbeyB0aXRsZTogdGhpcy5fdHJhbnNsYXRlLmdldCgnUm9sZScpIH1dIH0sXHJcbiAgICAgICAgeyBlbGVtZW50czogci5zdGF0ZXMsIHR5cGU6ICdTdGF0ZXMnLCBjb21wOiBTdGF0ZURlc2lnbkNvbXBvbmVudCwgdGVtcGxhdGVzOiBbeyB0aXRsZTogdGhpcy5fdHJhbnNsYXRlLmdldCgnU3RhdGUnKSB9XSB9LFxyXG4gICAgICAgIHsgZWxlbWVudHM6IHIudXRpbGl0aWVzLCB0eXBlOiAnVG9vbHMnLCBjb21wOiBVdGlsaXR5RGVzaWduQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IHIudFV0aWxpdGllcyB9LFxyXG4gICAgICAgIHsgZWxlbWVudHM6IHIudHlwZXMsIHR5cGU6ICdUeXBlcycsIGNvbXA6IFR5cGVEZXNpZ25Db21wb25lbnQsIHRlbXBsYXRlczogci50VHlwZXMgfSxcclxuICAgICAgICB7IGVsZW1lbnRzOiByLm5vZGVzLCB0eXBlOiAnTm9kZXMnLCBjb21wOiBOb2RlRGVzaWduZXJDb21wb25lbnQsIHRlbXBsYXRlczogci50Tm9kZXMgfSxcclxuICAgICAgICB7IGVsZW1lbnRzOiByLmF0dHJpYnV0ZXMsIHR5cGU6ICdBdHRyaWJ1dGVzJywgY29tcDogQXR0cmlidXRlRGVzaWduQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IHIudEF0dHJpYnV0ZXMgfSxcclxuICAgICAgICB7IGVsZW1lbnRzOiByLnBvbGljaWVzLCB0eXBlOiAnUG9saWNpZXMnLCBjb21wOiBQb2xpY3lEZXNpZ25Db21wb25lbnQsIHRlbXBsYXRlczogci50UG9saWNpZXMgfSxcclxuICAgICAgICB7IGVsZW1lbnRzOiByLmNvbnRyb2xzLCB0eXBlOiAnQ29udHJvbHMnLCBjb21wOiBDb250cm9sRGVzaWduQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IFtdIH0sXHJcbiAgICAgICAgeyBlbGVtZW50czogci5ydWxlcywgdHlwZTogJ1J1bGVzJywgY29tcDogUnVsZURlc2lnbkNvbXBvbmVudCwgdGVtcGxhdGVzOiByLnRSdWxlcyB9LFxyXG4gICAgICBdO1xyXG4gICAgICB0aGlzLnNlY3Rpb25zLmZvckVhY2gocyA9PlxyXG4gICAgICAgIHMuZWxlbWVudHMuZm9yRWFjaChlID0+IHtcclxuICAgICAgICAgIGlmICghZS5vcHRpb25zKSBlLm9wdGlvbnMgPSB7fTtcclxuXHJcbiAgICAgICAgICBlLmluamVjdG9yID0gdGhpcy5fY3JlYXRlSW5qZWN0b3IoZSwgJ3dpZGdldCcpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgICAvLyB0eXBpbmcga2V5ZG93biBsaXN0ZW5lclxyXG4gICAgdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgfVxyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPEVsZW1lbnRNb2RlbFtdPikge1xyXG4gICAgY29uc3QgcmFuZ2UgPSBldmVudC5jb250YWluZXIuZGF0YS5zbGljZShcclxuICAgICAgTWF0aC5taW4oZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KSxcclxuICAgICAgTWF0aC5tYXgoZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KVxyXG4gICAgKSwgZmlsZSA9IHJhbmdlWzBdLmNvbmZpZ3VyYXRpb25GaWxlO1xyXG4gICAgaWZcclxuICAgICAgLy8gYWNyb3NzIGZpbGVzXHJcbiAgICAgIChyYW5nZS5zbGljZSgxKS5zb21lKGUgPT4gZS5jb25maWd1cmF0aW9uRmlsZSAhPT0gZmlsZSkpIHtcclxuICAgICAgLy8gc3RhcnQgb3JkaW5hbFxyXG4gICAgICBsZXQgaSA9IGV2ZW50LmNvbnRhaW5lci5kYXRhW2V2ZW50LmN1cnJlbnRJbmRleF0ub3JkaW5hbCB8fCAtMTtcclxuICAgICAgLy8gc2V0IG9yZGluYWwgdG8gaXRlbXMgaW4gcmFuZ2VcclxuICAgICAgcmFuZ2UuZm9yRWFjaChlID0+IGUub3JkaW5hbCA9IGkrKyk7XHJcbiAgICAgIC8vIGluY3JlYXNlIG90aGVyIGhpZ2hlciB0aGFuIGxhc3QgaW4gcmFuZ2VcclxuICAgICAgZXZlbnQuY29udGFpbmVyLmRhdGEuZmlsdGVyKGUgPT4gZS5vcmRpbmFsICYmIGUub3JkaW5hbCA+IGkpLmZvckVhY2goZSA9PiBlLm9yZGluYWwgKz0gMSk7XHJcbiAgICB9IGVsc2UgLy8gbmF0aXZlIG9yZGVyIGluIGNvbGxlY3Rpb25cclxuICAgICAgcmFuZ2UuZm9yRWFjaChlID0+IGUub3JkaW5hbCA9IG51bGwpO1xyXG4gICAgbW92ZUl0ZW1JbkFycmF5KGV2ZW50LmNvbnRhaW5lci5kYXRhLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDdHJsLXMgc2F2ZSwgc2VhcmNoXHJcbiAgICogQHBhcmFtIGV2ZW50XHJcbiAgICovXHJcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmN0cmxLZXkgJiYgKGV2ZW50LndoaWNoID09PSA4MyB8fCBldmVudC53aGljaCA9PT0gMTE1KSkge1xyXG4gICAgICB0aGlzLmRpcnR5ICYmIHRoaXMuc2F2ZSgpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zZWFyY2hCeSAmJiBldmVudC53aGljaCA9PT0gRVNDQVBFKSB0aGlzLmNsZWFyU2VhcmNoKCk7XHJcbiAgICBlbHNlIGlmIChldmVudC5jb2RlLnN0YXJ0c1dpdGgoJ0tleScpIHx8IGV2ZW50LndoaWNoID09IFNQQUNFKSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl90eXBpbmdUaW1lcik7XHJcbiAgICAgIC8vY2xlYXJUaW1lb3V0KHRoaXMuX2NsZWFyVGltZXIpO1xyXG4gICAgICB0aGlzLnNlYXJjaEJ5ID0gdGhpcy5zZWFyY2hCeSA/IHRoaXMuc2VhcmNoQnkgKyBldmVudC5rZXkgOiBldmVudC5rZXk7XHJcbiAgICAgIHRoaXMuX3R5cGluZ1RpbWVyID0gc2V0VGltZW91dCgoKSA9PlxyXG4gICAgICAgIHRoaXMuc2VjdGlvbnMgPSB0aGlzLl9zZWFyY2godGhpcy5zZWFyY2hCeSksIDE1MCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNsZWFyU2VhcmNoKCkge1xyXG4gICAgdGhpcy5zZWFyY2hCeSA9IG51bGw7XHJcbiAgICB0aGlzLnNlY3Rpb25zID0gdGhpcy5fc2VjdGlvbnM7XHJcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fdHlwaW5nVGltZXIpO1xyXG4gIH1cclxuICBwcml2YXRlIF9zZWFyY2godmFsdWU6IHN0cmluZykge1xyXG4gICAgY29uc3Qgc2VjdGlvbnM6IFNlY3Rpb25bXSA9IFtdO1xyXG4gICAgdGhpcy5fc2VjdGlvbnMuZm9yRWFjaChzID0+IHtcclxuICAgICAgY29uc3QgZWxlbWVudHMgPSBzLmVsZW1lbnRzLlxyXG4gICAgICAgIGZpbHRlcihlID0+IChlLnRpdGxlIHx8IGUubmFtZSkudG9Mb3dlckNhc2UoKS5cclxuICAgICAgICAgIGluZGV4T2YodmFsdWUpID4gLTEpO1xyXG4gICAgICBpZiAoZWxlbWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc3QgeyBjb21wLCB0ZW1wbGF0ZXMsIHR5cGUgfSA9IHM7XHJcbiAgICAgICAgc2VjdGlvbnMucHVzaCh7IGVsZW1lbnRzLCBjb21wLCB0ZW1wbGF0ZXMsIHR5cGUgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgLy90aGlzLl9jbGVhclRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlYXJjaEJ5ID0gbnVsbCwgNTAwMCk7XHJcbiAgICByZXR1cm4gc2VjdGlvbnM7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2luc2VydChzZWN0aW9uOiBTZWN0aW9uLCBlbGVtZW50OiBFbGVtZW50TW9kZWwsIGluZGV4OiBudW1iZXIpIHtcclxuICAgIGxldCBpID0gZWxlbWVudC5uYW1lLmxhc3RJbmRleE9mKCdfJyksXHJcbiAgICAgIGogPSBlbGVtZW50LnRpdGxlLmxhc3RJbmRleE9mKCcgJyksXHJcbiAgICAgIG4gPSAwLCBuYW1lLCB0aXRsZTtcclxuICAgIGRvIHtcclxuICAgICAgbisrO1xyXG4gICAgICBuYW1lID0gKGkgPCAwIHx8IGlzTmFOKHBhcnNlSW50KGVsZW1lbnQubmFtZS5zdWJzdHIoaSArIDEpKSkgPyBlbGVtZW50Lm5hbWUgOiBlbGVtZW50Lm5hbWUuc3Vic3RyKDAsIGkpKSArICdfJyArIG47XHJcbiAgICAgIHRpdGxlID0gKGogPCAwIHx8IGlzTmFOKHBhcnNlSW50KGVsZW1lbnQudGl0bGUuc3Vic3RyKGogKyAxKSkpID8gZWxlbWVudC50aXRsZSA6IGVsZW1lbnQudGl0bGUuc3Vic3RyKDAsIGopKSArICcgJyArIG47XHJcbiAgICB9XHJcbiAgICB3aGlsZSAoc2VjdGlvbi5lbGVtZW50cy5maW5kKGUgPT4gZS5uYW1lID09PSBuYW1lIHx8IGUudGl0bGUgPT09IHRpdGxlKSk7XHJcbiAgICBlbGVtZW50Lm5hbWUgPSBuYW1lLCBlbGVtZW50LnRpdGxlID0gdGl0bGU7XHJcblxyXG4gICAgY29uc3QgaW5qZWN0b3IgPSB0aGlzLl9jcmVhdGVJbmplY3RvcihlbGVtZW50LCAnd2lkZ2V0Jyk7XHJcbiAgICBlbGVtZW50LmluamVjdG9yID0gaW5qZWN0b3I7XHJcbiAgICB0aGlzLl9vcGVuKGVsZW1lbnQsIHNlY3Rpb24sICdhZGQnKS50aGVuKCgpID0+XHJcbiAgICAgIHNlY3Rpb24uZWxlbWVudHMuc3BsaWNlKGluZGV4ICsgMSwgMCwgZWxlbWVudClcclxuICAgICk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX29wZW4oZWxlbWVudDogRWxlbWVudE1vZGVsLFxyXG4gICAgc2VjdGlvbjogU2VjdGlvbixcclxuICAgIG1vZGU6IERlc2lnbk1vZGUsIHRpdGxlPzogc3RyaW5nKSB7XHJcbiAgICBsZXQgZWNsb25lID0geyAuLi5lbGVtZW50IH07XHJcbiAgICBkZWxldGUgZWNsb25lLmluamVjdG9yO1xyXG4gICAgZWNsb25lID0gY2xvbmUoZWNsb25lKTsgLy8gZGVlcFxyXG4gICAgY29uc3QgaW5qZWN0b3IgPSB0aGlzLl9jcmVhdGVJbmplY3RvcihlY2xvbmUsIG1vZGUpO1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+XHJcbiAgICAgIHRoaXMuX3BhbmVzLm5hdmlnYXRlPERlc2lnbmVyVHlwZUVsZW1lbnRDb21wb25lbnQ+KHNlY3Rpb24uY29tcCwge1xyXG4gICAgICAgIHBvbGljeTogbW9kZSA9PT0gJ2FkZCcgPyBPcGVuUG9saWN5LkRpYWxvZyB8IE9wZW5Qb2xpY3kuU3RyZXRjaCA6XHJcbiAgICAgICAgICBPcGVuUG9saWN5LlRhYiB8IE9wZW5Qb2xpY3kuVG9nZ2xlIHwgT3BlblBvbGljeS5EZWZlcixcclxuICAgICAgZ3JvdXA6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoc2VjdGlvbi50eXBlKSxcclxuICAgICAgLy90aXRsZSxcclxuICAgICAgaW5qZWN0b3I6IGluamVjdG9yXHJcbiAgICB9KS50aGVuKHBhbmUgPT4ge1xyXG4gICAgICBwYW5lLmluc3RhbmNlLmRlc2lnbmVyLm9uU2F2ZS5zdWJzY3JpYmUoZWwgPT4ge1xyXG4gICAgICAgIGlmIChlbCkge1xyXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihlbGVtZW50LCBlbCk7XHJcbiAgICAgICAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuICAgICAgICAgIHJlc29sdmUoZWwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHJlamVjdCgpO1xyXG4gICAgICAgIHBhbmUuY2xvc2UoKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHBhbmUuY2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpKTtcclxuICAgIH0pKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY3JlYXRlSW5qZWN0b3IoZWxlbWVudDogRWxlbWVudE1vZGVsPGFueT4sIG1vZGU6IERlc2lnbk1vZGUpIHtcclxuICAgIGNvbnN0IHJlZiA9IG5ldyBEZXNpZ25lclJlZih0aGlzLm1vZGVsLCBlbGVtZW50LCBtb2RlKTtcclxuXHJcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZShbe1xyXG4gICAgICBwcm92aWRlOiBEZXNpZ25lclJlZiwgdXNlVmFsdWU6IHJlZlxyXG4gICAgfV0sIHRoaXMuX2luamVjdG9yKTtcclxuICAgIHJldHVybiBpbmplY3RvcjtcclxuICB9XHJcbiAgYWRkKHNlY3Rpb246IFNlY3Rpb24sIG1lbnU6IE1hdE1lbnVUcmlnZ2VyLCBldnQ6IEV2ZW50KSB7XHJcbiAgICBpZiAoc2VjdGlvbi50ZW1wbGF0ZXMubGVuZ3RoID4gMSlcclxuICAgICAgbWVudS5vcGVuTWVudSgpO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuY3JlYXRlKHNlY3Rpb24sIHNlY3Rpb24udGVtcGxhdGVzWzBdKTtcclxuICAgIH1cclxuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuICBjcmVhdGUoc2VjdGlvbjogU2VjdGlvbiwgdGVtcGxhdGU6IFRlbXBsYXRlSW5mbykge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHtcclxuICAgICAgLi4udGVtcGxhdGUsXHJcbiAgICAgIG5hbWU6IHByb2dyYW1OYW1lKHRlbXBsYXRlLmtleSB8fCB0ZW1wbGF0ZS50aXRsZSksXHJcbiAgICAgIGRyYWZ0OiB0cnVlLFxyXG4gICAgICBvcHRpb25zOiB7fVxyXG4gICAgfSBhcyBFbGVtZW50TW9kZWw7XHJcbiAgICB0aGlzLl9pbnNlcnQoc2VjdGlvbiwgZWxlbWVudCwgc2VjdGlvbi5lbGVtZW50cy5sZW5ndGgpO1xyXG4gIH1cclxuICByZW1vdmUoc2VjdGlvbjogU2VjdGlvbiwgZWxlbWVudDogRWxlbWVudE1vZGVsKSB7XHJcbiAgICBzZWN0aW9uLmVsZW1lbnRzLnJlbW92ZShlbGVtZW50KTtcclxuICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG4gIH1cclxuICBjb3B5KHNlY3Rpb246IFNlY3Rpb24sIGVsZW1lbnQ6IEVsZW1lbnRNb2RlbCkge1xyXG4gICAgbGV0IGVjbG9uZSA9IHtcclxuICAgICAgLi4uZWxlbWVudCxcclxuICAgICAgY29weU9mOiBlbGVtZW50Lm5hbWUsXHJcbiAgICAgIGRyYWZ0OiB0cnVlXHJcbiAgICB9O1xyXG4gICAgZGVsZXRlIGVjbG9uZS5pbmplY3RvcjtcclxuICAgIGRlbGV0ZSBlY2xvbmUucmVzb3VyY2VUeXBlO1xyXG4gICAgZWNsb25lID0gY2xvbmUoZWNsb25lKTsgLy8gZGVlcFxyXG4gICAgdGhpcy5faW5zZXJ0KHNlY3Rpb24sIGVjbG9uZSwgc2VjdGlvbi5lbGVtZW50cy5pbmRleE9mKGVsZW1lbnQpKTtcclxuICB9XHJcbiAgZWRpdChlbGVtZW50OiBFbGVtZW50TW9kZWwsIHNlY3Rpb246IFNlY3Rpb24pIHtcclxuICAgIHRoaXMuX29wZW4oZWxlbWVudCwgc2VjdGlvbiwgJ2VkaXQnKTtcclxuICB9XHJcbiAgdG9nZ2xlRGlzYWJsZWQoZWxlbWVudDogRWxlbWVudE1vZGVsKSB7XHJcbiAgICBlbGVtZW50LmRpc2FibGVkID0gIWVsZW1lbnQuZGlzYWJsZWQ7XHJcbiAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuICB9XHJcbiAgc2F2ZSgpIHtcclxuICAgIHRoaXMuc2F2aW5nID0gdHJ1ZTtcclxuICAgIGNvbnN0IHsgY29udHJvbHMsIGF0dHJpYnV0ZXMsIHBvbGljaWVzLCBhY3Rpb25zLCBjdWJlcywgZm9sZGVycywgZm9ybXMsIGd1aWRlcywgcmVwb3J0cywgcm9sZXMsIHJ1bGVzLCBzdGF0ZXMsIHR5cGVzLCB1dGlsaXRpZXMsIHZpZXdzLCB3aWRnZXRzLCBub2RlcyB9ID0gdGhpcy5tb2RlbDtcclxuICAgIGNvbnN0IG1vZGVsID0ge1xyXG4gICAgICBhY3Rpb25zOiBzdHJpcChhY3Rpb25zKSxcclxuICAgICAgY3ViZXM6IHN0cmlwKGN1YmVzKSxcclxuICAgICAgZm9sZGVyczogc3RyaXAoZm9sZGVycyksXHJcbiAgICAgIGZvcm1zOiBzdHJpcChmb3JtcyksXHJcbiAgICAgIGd1aWRlczogc3RyaXAoZ3VpZGVzKSxcclxuICAgICAgcmVwb3J0czogc3RyaXAocmVwb3J0cyksXHJcbiAgICAgIHJvbGVzOiBzdHJpcChyb2xlcyksXHJcbiAgICAgIHJ1bGVzOiBzdHJpcChydWxlcyksXHJcbiAgICAgIHBvbGljaWVzOiBzdHJpcChwb2xpY2llcyksXHJcbiAgICAgIHN0YXRlczogc3RyaXAoc3RhdGVzKSxcclxuICAgICAgdHlwZXM6IHN0cmlwKHR5cGVzKSxcclxuICAgICAgdXRpbGl0aWVzOiBzdHJpcCh1dGlsaXRpZXMpLFxyXG4gICAgICB2aWV3czogc3RyaXAodmlld3MpLFxyXG4gICAgICBub2Rlczogc3RyaXAobm9kZXMpLFxyXG4gICAgICB3aWRnZXRzOiBzdHJpcCh3aWRnZXRzKSxcclxuICAgICAgY29udHJvbHM6IHN0cmlwKGNvbnRyb2xzKSxcclxuICAgICAgYXR0cmlidXRlczogc3RyaXAoYXR0cmlidXRlcylcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5fcmVmLmV4ZWN1dGUoXHJcbiAgICAgIG1vZGVsIGFzIGFueSkudG9Qcm9taXNlKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fcHMudG9hc3QoJ0NoYW5nZXNTYXZlZCcpO1xyXG4gICAgICAgIGFwcGx5KHBvbGljaWVzLCBhY3Rpb25zLCBjdWJlcywgZm9sZGVycywgZm9ybXMsIGd1aWRlcywgcmVwb3J0cywgcm9sZXMsIHJ1bGVzLCBzdGF0ZXMsIHR5cGVzLCB1dGlsaXRpZXMsIHZpZXdzLCB3aWRnZXRzKTtcclxuICAgICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZGlydHkgPSBmYWxzZVxyXG4gICAgICAgIHRoaXMuX3Nlc3Npb24ucmVmcmVzaCgpLnN1YnNjcmliZSgpO1xyXG4gICAgICB9LCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fcHMuZXJyb3IoKTtcclxuICAgICAgICB0aGlzLnNhdmluZyA9IGZhbHNlXHJcbiAgICAgIH0pO1xyXG4gICAgZnVuY3Rpb24gc3RyaXAoZWxlbWVudHM6IEVsZW1lbnRNb2RlbFtdKSB7XHJcbiAgICAgIHJldHVybiBlbGVtZW50cy5tYXAoZSA9PiB7XHJcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHsgLi4uZSB9O1xyXG4gICAgICAgIGRlbGV0ZSBlbGVtZW50LmluamVjdG9yO1xyXG4gICAgICAgIGRlbGV0ZSBlbGVtZW50LmFyZ3VtZW50cztcclxuICAgICAgICByZXR1cm4gY2xlYW51cChlbGVtZW50KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBhcHBseSguLi5jb2xsZWN0aW9uOiBFbGVtZW50TW9kZWxbXVtdKSB7XHJcbiAgICAgIGNvbGxlY3Rpb24uZm9yRWFjaChzID0+IHMuZm9yRWFjaChlID0+IGRlbGV0ZSBlLmRyYWZ0KSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBTZWN0aW9uIHtcclxuICBjb21wOiBDb21wb25lbnRUeXBlPGFueT47XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIGVsZW1lbnRzOiBFbGVtZW50TW9kZWxbXTtcclxuICB0ZW1wbGF0ZXM6IFRlbXBsYXRlSW5mb1tdO1xyXG59XHJcbiIsIjxtYXQtdG9vbGJhcj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwic2F2ZSgpXCIgW2Rpc2FibGVkXT1cIiFkaXJ0eSB8fCBsb2FkaW5nIHx8IHNhdmluZ1wiIFtiaXpkb2NUb29sdGlwXT1cIidTYXZlJ3x0cmFuc2xhdGVcIj48bWF0LWljb24+c2F2ZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJjbGVhclNlYXJjaCgpXCIgW2Rpc2FibGVkXT1cIiFzZWFyY2hCeVwiIFtiaXpkb2NUb29sdGlwXT1cIidDbGVhcid8dHJhbnNsYXRlXCI+PG1hdC1pY29uPnNlYXJjaF9vZmY8L21hdC1pY29uPjwvYnV0dG9uPlxyXG48L21hdC10b29sYmFyPlxyXG48bWF0LXByb2dyZXNzLWJhciBbbW9kZV09XCJsb2FkaW5nID8gJ2J1ZmZlcicgOiAnaW5kZXRlcm1pbmF0ZSdcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJsb2FkaW5nID8gJ3Zpc2libGUnOidoaWRkZW4nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxyXG48Yml6ZG9jLW5vbmUgKm5nSWY9XCJsb2FkaW5nXCIgdGl0bGU9XCJTZXR0aW5nVGhpbmdzVXBcIiBbc3VidGl0bGVdPVwiUGxlYXNlV2FpdFwiIGljb249XCJhcmNoaXRlY3R1cmVcIj48L2JpemRvYy1ub25lPlxyXG48c2VjdGlvbiAqbmdGb3I9XCJsZXQgcyBvZiBzZWN0aW9uc1wiPlxyXG4gIDxoMiBjbGFzcz1cIm1hdC10aXRsZVwiPnt7cy50eXBlIHwgdHJhbnNsYXRlfX08L2gyPlxyXG4gIDwhLS08aHIgLz4tLT5cclxuICA8ZGl2IGNsYXNzPVwiZWxlbWVudHNcIiBjZGtEcm9wTGlzdCBjZGtEcm9wTGlzdE9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiIFtjZGtEcm9wTGlzdERhdGFdPVwicy5lbGVtZW50c1wiIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XHJcbiAgICA8bWF0LWNhcmQgKm5nRm9yPVwibGV0IGUgb2Ygcy5lbGVtZW50c1wiIFtjbGFzcy5kaXNhYmxlZF09XCJlLmRpc2FibGVkXCIgY2RrRHJhZyBjZGtEcmFnUm9vdEVsZW1lbnQ9XCIubWF0LWNhcmQtdGl0bGVcIj5cclxuICAgICAgPCEtLSBAaXRlbS0tPlxyXG4gICAgICA8bWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAge3tlLnRpdGxlfGxvY2FsaXplZFN0cmluZ319XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgIDxtYXQtaWNvbiBbYml6ZG9jVG9vbHRpcF09XCJlLmhlbHBcIiBbYml6ZG9jVG9vbHRpcER1cmF0aW9uXT1cIjYwMDBcIiAqbmdJZj1cImUuaGVscFwiPmhlbHBfb3V0bGluZTwvbWF0LWljb24+XHJcbiAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgIDxtYXQtY2FyZC1zdWJ0aXRsZT5cclxuICAgICAgICB7e2UubmFtZX19XHJcbiAgICAgIDwvbWF0LWNhcmQtc3VidGl0bGU+XHJcbiAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwicy5jb21wOyBpbmplY3RvcjogZS5pbmplY3RvclwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxtYXQtY2FyZC1hY3Rpb25zIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImNvcHkocywgZSlcIiAqbmdJZj1cIiFlLmNvcHlPZlwiIFtiaXpkb2NUb29sdGlwXT1cIidDb3B5J3x0cmFuc2xhdGVcIj48bWF0LWljb24+ZmlsZV9jb3B5PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVtb3ZlKHMsIGUpXCIgKm5nSWY9XCJlLmRyYWZ0IHx8IGUuZW1wdHlcIiBbYml6ZG9jVG9vbHRpcF09XCInRGlzY2FyZCd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZURpc2FibGVkKGUpXCIgW2JpemRvY1Rvb2x0aXBdPVwiKGUuZGlzYWJsZWQgPyAnRW5hYmxlJyA6ICdEaXNhYmxlJyl8dHJhbnNsYXRlXCI+PG1hdC1pY29uPnt7ZS5kaXNhYmxlZCA/ICd2aXNpYmlsaXR5JyA6ICd2aXNpYmlsaXR5X29mZid9fTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJlZGl0KGUsIHMpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1NldHRpbmdzJ3x0cmFuc2xhdGVcIj48bWF0LWljb24+c2V0dGluZ3M8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XHJcbiAgICA8L21hdC1jYXJkPlxyXG4gICAgPGRpdiBjbGFzcz1cImFkZC1lbGVtZW50XCIgbWF0UmlwcGxlIChjbGljayk9XCJhZGQocywgbWVudVRyaWdnZXIsICRldmVudClcIiAqbmdJZj1cInMudGVtcGxhdGVzPy5sZW5ndGhcIj5cclxuICAgICAgPHNwYW4gW21hdE1lbnVUcmlnZ2VyRm9yXT1cInRlbXBsYXRlTWVudVwiICNtZW51VHJpZ2dlcj1cIm1hdE1lbnVUcmlnZ2VyXCI+PC9zcGFuPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbj48bWF0LWljb24gW2JpemRvY1Rvb2x0aXBdPVwiJ05ldyd8dHJhbnNsYXRlXCIgZGlzYWJsZVJpcHBsZT1cInRydWVcIj5hZGQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8bWF0LW1lbnUgI3RlbXBsYXRlTWVudT5cclxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IHQgb2Ygcy50ZW1wbGF0ZXNcIiAoY2xpY2spPVwiY3JlYXRlKHMsIHQpXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInQuZmFtaWx5XCI+XHJcbiAgICAgICAgICAgIHt7dC5mYW1pbHl9fVxyXG4gICAgICAgICAgICAmbmJzcDstJm5ic3A7XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAge3t0LnRpdGxlfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9tYXQtbWVudT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L3NlY3Rpb24+XHJcbiJdfQ==
|