nuxeo-development-framework 1.9.6 → 1.9.8
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/bundles/nuxeo-development-framework.umd.js +699 -692
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/Core/adapters/adapter.service.js +4 -4
- package/esm2015/lib/Core/core.module.js +5 -5
- package/esm2015/lib/Core/services/callApi/call-api.service.js +4 -4
- package/esm2015/lib/Core/services/extension/component-register.service.js +4 -4
- package/esm2015/lib/Core/services/extension/extension-loader.service.js +4 -4
- package/esm2015/lib/Core/services/extension/extension.service.js +4 -4
- package/esm2015/lib/Core/services/initialization/initialization.service.js +4 -4
- package/esm2015/lib/Core/services/localStorag/local-storag.service.js +4 -4
- package/esm2015/lib/Core/services/nuxeo/nuxeo.service.js +4 -4
- package/esm2015/lib/Core/services/roles/roles.service.js +4 -4
- package/esm2015/lib/Core/services/translation/translate-loader.service.js +4 -4
- package/esm2015/lib/Core/services/translation/translation.service.js +4 -4
- package/esm2015/lib/Core/services/user/user-preferences.service.js +4 -4
- package/esm2015/lib/Core/utilities/moment-date-adapter.js +4 -4
- package/esm2015/lib/Core/utilities/utility.service.js +4 -4
- package/esm2015/lib/components/activity/activity/activity.component.js +4 -4
- package/esm2015/lib/components/activity/activity.module.js +5 -5
- package/esm2015/lib/components/avatar/avatar/avatar.component.js +4 -4
- package/esm2015/lib/components/avatar/avatar.module.js +5 -5
- package/esm2015/lib/components/card/card.component.js +5 -5
- package/esm2015/lib/components/card/card.module.js +5 -5
- package/esm2015/lib/components/comments/comments.module.js +5 -5
- package/esm2015/lib/components/comments/components/comment-item/comment-item.component.js +4 -4
- package/esm2015/lib/components/comments/components/comments-dashlet/comments-dashlet.component.js +4 -4
- package/esm2015/lib/components/comments/components/comments-list/comments-list.component.js +4 -4
- package/esm2015/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.js +4 -4
- package/esm2015/lib/components/comments/services/comment-api.service.js +4 -4
- package/esm2015/lib/components/confirm-caller/confirm-caller.dialog.js +4 -4
- package/esm2015/lib/components/confirm-caller/confirm-caller.module.js +5 -5
- package/esm2015/lib/components/confirm-caller/confirm-dialog/confirm-dialog.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-reply/correspondence-relation-reply.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/components/versions/versions.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/correspondence-relation.module.js +5 -5
- package/esm2015/lib/components/correspondence-relation/services/correspondence-realation.service.js +4 -4
- package/esm2015/lib/components/correspondence-relation/services/viewer-files.service.js +4 -4
- package/esm2015/lib/components/create-entity/create-entity/create-entity.component.js +4 -4
- package/esm2015/lib/components/create-entity/create-entity.module.js +5 -5
- package/esm2015/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.js +4 -4
- package/esm2015/lib/components/cts-tags/cts-tags.module.js +5 -5
- package/esm2015/lib/components/cts-tags/services/tags-api.service.js +4 -4
- package/esm2015/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.js +4 -4
- package/esm2015/lib/components/custom-toastr/custom-toastr.module.js +5 -5
- package/esm2015/lib/components/custom-toastr/services/custom-toastr.service.js +4 -4
- package/esm2015/lib/components/documents/components/attachments-list/attachments-list.component.js +4 -4
- package/esm2015/lib/components/documents/components/attachments-page-provider/attachments-page-provider.component.js +4 -4
- package/esm2015/lib/components/documents/components/document-list/documents-list.component.js +4 -4
- package/esm2015/lib/components/documents/components/document-scan/document-scan.component.js +4 -4
- package/esm2015/lib/components/documents/components/document-scan/document-scan.service.js +4 -4
- package/esm2015/lib/components/documents/components/document-upload/document-upload.component.js +4 -4
- package/esm2015/lib/components/documents/components/documents/documents.component.js +4 -4
- package/esm2015/lib/components/documents/documents.module.js +5 -5
- package/esm2015/lib/components/documents/services/document-templates.service.js +4 -4
- package/esm2015/lib/components/documents/services/documents.service.js +4 -4
- package/esm2015/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.js +4 -4
- package/esm2015/lib/components/dynamic-chart/dynamic-chart.module.js +5 -5
- package/esm2015/lib/components/dynamic-chart/dynamic-single-chart/dynamic-single-chart.component.js +4 -4
- package/esm2015/lib/components/dynamic-chart/services/chart-data.service.js +4 -4
- package/esm2015/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.js +6 -5
- package/esm2015/lib/components/dynamic-filter/dynamic-filter.module.js +7 -6
- package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form/dynamic-form.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form/fields.adapter.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form/form-builder.service.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-boolitem/dynamic-form-boolitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-builder/dynamic-form-builder.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-checkbox-item/dynamic-form-checkbox-item.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/owlDateTimeIntl.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-api.service.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-field/dynamic-form-field.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-item-dispatcher/dynamic-form-item-dispatcher.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-mapitem/dynamic-form-mapitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-options/dynamic-form-options.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-tag/dynamic-form-select-tag.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-user-filter/dynamic-form-select-user-filter.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/services/user-api.service.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-selectitem/dynamic-form-selectitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-viewer/dynamic-form-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/directives/dynamic-form-content-proxy.directive.js +4 -4
- package/esm2015/lib/components/dynamic-form/dynamic-form.module.js +5 -5
- package/esm2015/lib/components/dynamic-form/services/card-item-types.service.js +4 -4
- package/esm2015/lib/components/dynamic-form/services/dynamic-form-update.service.js +4 -4
- package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +4 -4
- package/esm2015/lib/components/dynamic-search/dynamic-search.module.js +5 -5
- package/esm2015/lib/components/dynamic-table/dynamic-table/dynamic-table.component.js +4 -4
- package/esm2015/lib/components/dynamic-table/dynamic-table.module.js +5 -5
- package/esm2015/lib/components/dynamic-table/services/dynamic-table.service.js +4 -4
- package/esm2015/lib/components/dynamic-view/boolean-viewer/boolean-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/custom-document-viewer/custom-document-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/custom-pp-viewer/custom-pp-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/cutome-voc-viewer/cutome-voc-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/data-viewer/data-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/date-viewer/date-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/department-viewer/department-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/dropdown-viewer/dropdown-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/dynamic-view.module.js +5 -5
- package/esm2015/lib/components/dynamic-view/dynamic-viewe.service.js +4 -4
- package/esm2015/lib/components/dynamic-view/list-viewer/list-viewer.component.js +4 -4
- package/esm2015/lib/components/filter/filter/filter.component.js +4 -4
- package/esm2015/lib/components/filter/filter.module.js +5 -5
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/provide-parent-form.directive.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module.js +5 -5
- package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-formatter.service.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-helper.service.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/utils/CustomNgbDateParserFormatter.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/utils/IslamicI18n.js +4 -4
- package/esm2015/lib/components/latest-activity/components/activity-line/activity-line.component.js +4 -4
- package/esm2015/lib/components/latest-activity/components/latest-activity/latest-activity.component.js +4 -4
- package/esm2015/lib/components/latest-activity/components/single-activity/single-activity.component.js +4 -4
- package/esm2015/lib/components/latest-activity/latest-activity.module.js +5 -5
- package/esm2015/lib/components/latest-activity/services/activity-log.service.js +4 -4
- package/esm2015/lib/components/notifications/components/notification-item/notification-item.component.js +4 -4
- package/esm2015/lib/components/notifications/components/notification-options/notification-options.component.js +4 -4
- package/esm2015/lib/components/notifications/components/notification-toast/notification-toast.component.js +4 -4
- package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +4 -4
- package/esm2015/lib/components/notifications/components/notifications-list/notifications-list.component.js +4 -4
- package/esm2015/lib/components/notifications/notifications.module.js +5 -5
- package/esm2015/lib/components/notifications/notifications.service.js +4 -4
- package/esm2015/lib/components/pagination/pagination/pagination.component.js +4 -4
- package/esm2015/lib/components/pagination/pagination.module.js +5 -5
- package/esm2015/lib/components/pdf-tron/pdf-tron.module.js +5 -5
- package/esm2015/lib/components/pdf-tron/pdftron/pdftron.component.js +4 -4
- package/esm2015/lib/components/pdf-tron/pdftron/pdftron.service.js +4 -4
- package/esm2015/lib/components/select/select/select.component.js +4 -4
- package/esm2015/lib/components/select/select.module.js +5 -5
- package/esm2015/lib/components/table/dynamic-column/dynamic-column.component.js +4 -4
- package/esm2015/lib/components/table/table/table.component.js +4 -4
- package/esm2015/lib/components/table/table.module.js +5 -5
- package/esm2015/lib/components/users-card/users-card.component.js +4 -4
- package/esm2015/lib/components/users-card/users-card.module.js +5 -5
- package/esm2015/lib/components/viewer-log/components/viewer-log/viewer-log.component.js +4 -4
- package/esm2015/lib/components/viewer-log/viewer-log.module.js +5 -5
- package/esm2015/lib/components/vocabulary/services/vocabulary-api.service.js +4 -4
- package/esm2015/lib/components/vocabulary/vocabulary/vocabulary.component.js +4 -4
- package/esm2015/lib/components/vocabulary/vocabulary.module.js +5 -5
- package/esm2015/lib/configuration/app-config.service.js +4 -4
- package/esm2015/lib/directive/app-has-role/app-has-role.directive.js +4 -4
- package/esm2015/lib/directive/clickOutSide/click-outside.directive.js +4 -4
- package/esm2015/lib/directive/directive.module.js +5 -5
- package/esm2015/lib/directive/permissions/evaluators.service.js +4 -4
- package/esm2015/lib/directive/permissions/permissions.directive.js +4 -4
- package/esm2015/lib/directive/rtl/set-dir-rtl.directive.js +4 -4
- package/esm2015/lib/directive/rtl/set-rtl.directive.js +4 -4
- package/esm2015/lib/nuxeo-development-framework.component.js +4 -4
- package/esm2015/lib/nuxeo-development-framework.module.js +5 -5
- package/esm2015/lib/nuxeo-development-framework.service.js +4 -4
- package/esm2015/lib/pipes/file-size.pipe.js +4 -4
- package/esm2015/lib/pipes/hijri-date.pipe.js +4 -4
- package/esm2015/lib/pipes/localized-date.pipe.js +4 -4
- package/esm2015/lib/pipes/multi-value.pipe.js +4 -4
- package/esm2015/lib/pipes/pipes.module.js +5 -5
- package/esm2015/lib/pipes/secure-html.pipe.js +4 -4
- package/esm2015/lib/pipes/secure.pipe.js +4 -4
- package/esm2015/lib/pipes/time-ago.pipe.js +4 -4
- package/esm2015/lib/shared/components/button/button.component.js +4 -4
- package/esm2015/lib/shared/components/item-list/item-list.component.js +4 -4
- package/esm2015/lib/shared/components/no-data/no-data.component.js +4 -4
- package/esm2015/lib/shared/components/read-more/read-more.component.js +4 -4
- package/esm2015/lib/shared/components/search-autocomplete/search-autocomplete.component.js +4 -4
- package/esm2015/lib/shared/components/spinner/spinner.component.js +4 -4
- package/esm2015/lib/shared/components/user-card/user-card.component.js +4 -4
- package/esm2015/lib/shared/libraryShared.module.js +5 -5
- package/fesm2015/nuxeo-development-framework.js +597 -597
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/card/card.component.d.ts +1 -1
- package/lib/components/dynamic-filter/dynamic-filter.module.d.ts +2 -1
- package/package.json +1 -1
|
@@ -269,12 +269,12 @@ export class NotificationsService {
|
|
|
269
269
|
}));
|
|
270
270
|
}
|
|
271
271
|
}
|
|
272
|
-
NotificationsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
273
|
-
NotificationsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
274
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
272
|
+
NotificationsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NotificationsService, deps: [{ token: i1.HttpClient }, { token: i2.Router }, { token: i3.NuxeoService }, { token: i4.KeycloakService }, { token: i5.TranslationService }, { token: "environment" }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
273
|
+
NotificationsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NotificationsService });
|
|
274
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NotificationsService, decorators: [{
|
|
275
275
|
type: Injectable
|
|
276
276
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.Router }, { type: i3.NuxeoService }, { type: i4.KeycloakService }, { type: i5.TranslationService }, { type: undefined, decorators: [{
|
|
277
277
|
type: Inject,
|
|
278
278
|
args: ["environment"]
|
|
279
279
|
}] }]; } });
|
|
280
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFFeEMsT0FBTyxLQUFLLEtBQUssTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztBQUl6QyxNQUFNLE9BQU8sb0JBQW9CO0lBd0IvQixZQUNVLElBQWdCLEVBQ2pCLE1BQWMsRUFDZCxZQUEwQixFQUN6QixRQUF5QixFQUN6QixrQkFBc0MsRUFDZixXQUFXO1FBTGxDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDakIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDZixnQkFBVyxHQUFYLFdBQVcsQ0FBQTtRQTdCNUMsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUVsQixxQkFBZ0IsR0FBUSxJQUFJLENBQUM7UUFDN0IscUJBQWdCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekQsV0FBTSxHQUF1QixJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRCx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUlOLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBSXBCLHdCQUFtQixHQUFHLENBQUMsQ0FBQztRQUloQyxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsWUFBTyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN4RCxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBVWQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRTtZQUNuQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUE1QkQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBdUJELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQzFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1gsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztZQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25CLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0Qsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFDRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxFQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQzVCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQ3ZELENBQUMsQ0FBQyxDQUFDO1lBQ1AsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ25CLEtBQUssRUFBRSxJQUFJO1lBQ1gsSUFBSSxFQUFFLGVBQWU7WUFDckIsTUFBTSxFQUFFLElBQUk7WUFDWixJQUFJLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUU7U0FDckQsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxhQUFrQixFQUFFLEVBQUU7WUFDekIsSUFBSSxhQUFhLENBQUMsS0FBSyxFQUFFO2dCQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEUsT0FBTyxhQUFhLENBQUM7YUFDdEI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sRUFBRSxDQUFDO2FBQ1g7UUFDSCxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDekIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUNELFVBQVU7UUFDUixJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFlBQVksQ0FBQyxZQUFZLEVBQUUsTUFBTSxHQUFHLEtBQUs7UUFDdkMsTUFBTSxJQUFJLEdBQ1IsWUFBWSxDQUFDLE1BQU0sS0FBSyxTQUFTO1lBQ2pDLFlBQVksQ0FBQyxNQUFNLEtBQUssS0FBSztZQUM3QixNQUFNLENBQUM7UUFDVCxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2hELFlBQVksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO2dCQUM3QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2xELFlBQVksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsWUFBWTtRQUM3QixJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDeEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3pDLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxZQUFZLENBQUMsRUFBRSxFQUFFO29CQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ3JDLE9BQU87aUJBQ1I7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLFdBQVcsR0FBRyxFQUFFO1FBQ3ZDLE1BQU0sUUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLGlDQUFpQyxNQUFNLEVBQUUsQ0FBQztRQUM1RixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUFNLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDO2FBQ2hFLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDYixVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDO1lBQzdDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDO1NBQ3JDLENBQUMsQ0FBQyxFQUNILFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ3BELGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFDaEIsUUFBUSxFQUFFLENBQ1gsQ0FBQztJQUNOLENBQUM7SUFDRCxVQUFVLENBQUMsTUFBTSxFQUFFLFdBQVcsR0FBRyxFQUFFO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLHNDQUFzQyxNQUFNLEVBQUUsQ0FBQztRQUNqRyxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUFNLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQzthQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBQ0QsZUFBZSxDQUFDLE1BQU0sRUFBRSxXQUFXLEdBQUcsRUFBRTtRQUN0QyxNQUFNLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSx3Q0FBd0MsTUFBTSxFQUFFLENBQUM7UUFDbkcsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBTSxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUM7YUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELGFBQWEsQ0FBQyxNQUFNLEVBQUUsV0FBVyxHQUFHLEVBQUU7UUFDcEMsTUFBTSxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEseUNBQXlDLE1BQU0sRUFBRSxDQUFDO1FBQ3BHLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDO2FBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCxlQUFlLENBQUMsTUFBTSxFQUFFLFdBQVcsR0FBRyxFQUFFO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLDJDQUEyQyxNQUFNLEVBQUUsQ0FBQztRQUN0RyxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUFNLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQzthQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsWUFBWSxDQUFDLGNBQWMsRUFBRSxXQUFXLEdBQUcsRUFBRTtRQUMzQyxNQUFNLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSx3Q0FBd0MsY0FBYyxFQUFFLENBQUM7UUFDM0csT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBTSxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUM7YUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELGNBQWMsQ0FBQyxjQUFjLEVBQUUsV0FBVyxHQUFHLEVBQUU7UUFDN0MsTUFBTSxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsMENBQTBDLGNBQWMsRUFBRSxDQUFDO1FBQzdHLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDO2FBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxjQUFjLEVBQUUsV0FBVyxHQUFHLEVBQUU7UUFDbkQsTUFBTSxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsNkJBQTZCLGNBQWMsRUFBRSxDQUFDO1FBQ2hHLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixNQUFNLENBQU0sUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDO2FBQzlDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUNPLFdBQVcsQ0FBSSxTQUFTLEdBQUcsV0FBVyxFQUFFLE1BQVU7UUFDeEQsT0FBTyxDQUFDLEtBQVUsRUFBaUIsRUFBRTtZQUNuQyx3REFBd0Q7WUFDeEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtZQUUvQyw4REFBOEQ7WUFDOUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsWUFBWSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUVyRCx5REFBeUQ7WUFDekQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDaEMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDekMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO2dCQUN4QyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7YUFDbkM7WUFFRCxPQUFPLEVBQUUsQ0FBQyxNQUFXLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUM7SUFDSixDQUFDO0lBQ0ssT0FBTzs7WUFDWCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7YUFDM0M7WUFDRCwyRkFBMkY7WUFDM0YsSUFBSSxHQUFHLENBQUM7WUFDUixHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsa0JBQWtCLENBQUMsQ0FBQyxLQUFLO1lBQ2hFLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0QyxNQUFNLE9BQU8sR0FBRztnQkFDZCx3QkFBd0I7Z0JBQ3hCLHlCQUF5QjtnQkFDekIsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFO2FBQzNDLENBQUM7WUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO2dCQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO29CQUNyQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO29CQUNqQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDO0tBQUE7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDMUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO2FBQzFCO1lBQ0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztTQUNuQzthQUFNLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ3hCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FDMUMsMEJBQTBCLEVBQzFCLENBQUMsSUFBSSxFQUFFLEVBQUU7d0JBQ1AsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUMxQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO3dCQUNwQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUMzQyxDQUFDLENBQ0YsQ0FBQztpQkFDSDtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUMvQjtRQUNELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVc7YUFDMUIsU0FBUyxDQUFDLHFCQUFxQixFQUFFO1lBQ2hDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUU7U0FDckUsQ0FBQzthQUNELE1BQU0sQ0FBQztZQUNOLGNBQWMsRUFBRSxNQUFNO1lBQ3RCLGVBQWUsRUFBRSwrQ0FBK0M7WUFDaEUsT0FBTyxFQUNMLDJFQUEyRTtZQUM3RSxJQUFJLEVBQUUsSUFBSTtZQUNWLFFBQVEsRUFBRSxFQUFFO1lBQ1osT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDO1NBQ3JCLENBQUM7YUFDRCxLQUFLLENBQUMsc0NBQXNDLENBQUM7YUFDN0MsT0FBTyxFQUFFLENBQ2IsQ0FBQyxJQUFJLENBQ0osVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQixNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOztpSEE5UlUsb0JBQW9CLCtKQThCckIsYUFBYTtxSEE5Qlosb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVU7OzBCQStCTixNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBLZXljbG9ha1NlcnZpY2UgfSBmcm9tIFwia2V5Y2xvYWstYW5ndWxhclwiO1xyXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBvZiwgUmVwbGF5U3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgcHVibGlzaFJlcGxheSwgcmVmQ291bnQgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0ICogYXMgU29ja0pTIGZyb20gXCJzb2NranMtY2xpZW50XCI7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gXCIuLi8uLi9Db3JlL3NlcnZpY2VzL251eGVvL251eGVvLnNlcnZpY2VcIjtcclxuaW1wb3J0ICogYXMgU3RvbXAgZnJvbSBcIndlYnN0b21wLWNsaWVudFwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vQ29yZS9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGlvbi5zZXJ2aWNlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25zU2VydmljZSB7XHJcbiAgc3RvbXBDbGllbnQgPSBudWxsO1xyXG4gIHN1YnNjcmliZXIgPSBudWxsO1xyXG4gIGNvbm5lY3Rpb246IFByb21pc2U8YW55PjtcclxuICBjb25uZWN0ZWRQcm9taXNlOiBhbnkgPSBudWxsO1xyXG4gIGxpc3RlbmVyT2JzZXJ2ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHVwZGF0ZTogUmVwbGF5U3ViamVjdDxhbnk+ID0gbmV3IFJlcGxheVN1YmplY3QoMSk7XHJcbiAgYWxyZWFkeUNvbm5lY3RlZE9uY2UgPSBmYWxzZTtcclxuICBwYWdlU2l6ZSA9IDE1O1xyXG5cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3RvbXAuU3Vic2NyaXB0aW9uO1xyXG5cclxuICBwcml2YXRlIF9ub3RpZmljYXRpb25zID0gW107XHJcbiAgZ2V0IG5vdGlmaWNhdGlvbnMoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9ub3RpZmljYXRpb25zO1xyXG4gIH1cclxuICBwcml2YXRlIF9ub3RpZmljYXRpb25zQ291bnQgPSAwO1xyXG4gIGdldCBub3RpZmljYXRpb25zQ291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9ub3RpZmljYXRpb25zQ291bnQ7XHJcbiAgfVxyXG4gIGJhc2UgPSBcIlwiO1xyXG4gIHByb2ZpbGUgPSB7IGlkOiB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyLmlkIH07XHJcbiAgc3lzdGVtTGFuZyA9IFwiXCI7XHJcbiAgbGFuZ0NoYW5nZWQ6IGJvb2xlYW47XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwdWJsaWMgbnV4ZW9TZXJ2aWNlOiBOdXhlb1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGtleWNsb2FrOiBLZXljbG9ha1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gICAgQEluamVjdChcImVudmlyb25tZW50XCIpIHByaXZhdGUgZW52aXJvbm1lbnRcclxuICApIHtcclxuICAgIGlmICh0aGlzLnByb2ZpbGUuaWQpIHtcclxuICAgICAgdGhpcy5nZXRDb3VudCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0KCk7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS5pc0FyYWJpYy5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICB0aGlzLnJlc2V0Tm90aWZpY2F0aW9ucygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldENvdW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZG9Db3VudE5ldyh0aGlzLnByb2ZpbGUuaWQpLnBpcGUoXHJcbiAgICAgIG1hcCgoZGF0YSkgPT4ge1xyXG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnNDb3VudCA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy51cGRhdGUubmV4dCgpO1xyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgcmVzZXQoKSB7XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gW107XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zQ291bnQgPSAwO1xyXG4gIH1cclxuICByZXNldE5vdGlmaWNhdGlvbnMoKSB7XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gW107XHJcbiAgfVxyXG4gIGZldGNoTm90aWZpY2F0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLmdldE5vdGlmaWNhdGlvbnModGhpcy5wcm9maWxlLmlkLCB7XHJcbiAgICAgIHBhZ2U6XHJcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucy5sZW5ndGggPiAwXHJcbiAgICAgICAgICA/IE1hdGguY2VpbCh0aGlzLl9ub3RpZmljYXRpb25zLmxlbmd0aCAvIHRoaXMucGFnZVNpemUpXHJcbiAgICAgICAgICA6IDAsXHJcbiAgICAgIHNpemU6IHRoaXMucGFnZVNpemUsXHJcbiAgICAgIHBhZ2VkOiB0cnVlLFxyXG4gICAgICBzb3J0OiBcInNlbmREYXRlLGRlc2NcIixcclxuICAgICAgc29ydGVkOiB0cnVlLFxyXG4gICAgICBsYW5nOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS51c2VyTGFuZy50b1VwcGVyQ2FzZSgpLFxyXG4gICAgfSkucGlwZShcclxuICAgICAgbWFwKChub3RpZmljYXRpb25zOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAobm90aWZpY2F0aW9ucy5pdGVtcykge1xyXG4gICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucyA9IHRoaXMuX25vdGlmaWNhdGlvbnMuY29uY2F0KG5vdGlmaWNhdGlvbnMuaXRlbXMpO1xyXG4gICAgICAgICAgcmV0dXJuIG5vdGlmaWNhdGlvbnM7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMgPSBbXTtcclxuICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gW107XHJcbiAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgcmVzZXRDb3VudCgpIHtcclxuICAgIHRoaXMuX25vdGlmaWNhdGlvbnNDb3VudCA9IDA7XHJcbiAgfVxyXG4gIG1hcmtBbGxBc1JlYWQoKSB7XHJcbiAgICB0aGlzLmRvTWFya0FsbEFzUmVhZCh0aGlzLnByb2ZpbGUuaWQpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMuZm9yRWFjaCgoaXRlbSkgPT4gKGl0ZW0uc3RhdHVzID0gXCJSRUFEXCIpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICB1cGRhdGVTdGF0dXMobm90aWZpY2F0aW9uLCBvbk9wZW4gPSBmYWxzZSkge1xyXG4gICAgY29uc3QgYm9vbCA9XHJcbiAgICAgIG5vdGlmaWNhdGlvbi5zdGF0dXMgPT09IFwiVU5fUkVBRFwiIHx8XHJcbiAgICAgIG5vdGlmaWNhdGlvbi5zdGF0dXMgPT09IFwiTkVXXCIgfHxcclxuICAgICAgb25PcGVuO1xyXG4gICAgaWYgKGJvb2wpIHtcclxuICAgICAgdGhpcy5kb01hcmtBc1JlYWQobm90aWZpY2F0aW9uLmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIG5vdGlmaWNhdGlvbi5zdGF0dXMgPSBcIlJFQURcIjtcclxuICAgICAgICB0aGlzLmdldENvdW50KCkuc3Vic2NyaWJlKCgpID0+IHt9KTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRvTWFya0FzVW5yZWFkKG5vdGlmaWNhdGlvbi5pZCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBub3RpZmljYXRpb24uc3RhdHVzID0gXCJVTl9SRUFEXCI7XHJcbiAgICAgICAgdGhpcy5nZXRDb3VudCgpLnN1YnNjcmliZSgoKSA9PiB7fSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBkZWxldGVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uKSB7XHJcbiAgICB0aGlzLmRvRGVsZXRlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5pZCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucy5maWx0ZXIoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0uaWQgPT09IG5vdGlmaWNhdGlvbi5pZCkge1xyXG4gICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMudXBkYXRlLm5leHQoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBnZXROb3RpZmljYXRpb25zKHVzZXJJZCwgcXVlcnlQYXJhbXMgPSB7fSkge1xyXG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHt0aGlzLmVudmlyb25tZW50Lm5vdGlmaWNhdGlvbnN9L2FwaS9zeXN0ZW0tbm90aWZpY2F0aW9ucy9hbGwvJHt1c2VySWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnk+KGVuZHBvaW50LCB7IG9ic2VydmU6IFwicmVzcG9uc2VcIiwgcGFyYW1zOiBxdWVyeVBhcmFtcyB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3ApID0+ICh7XHJcbiAgICAgICAgICB0b3RhbENvdW50OiByZXNwLmhlYWRlcnMuZ2V0KFwieC10b3RhbC1jb3VudFwiKSxcclxuICAgICAgICAgIGl0ZW1zOiByZXNwLmJvZHkubWFwKChpdGVtKSA9PiBpdGVtKSxcclxuICAgICAgICB9KSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKFwiZ2V0Tm90aWZpY2F0aW9uc1wiLCBbXSkpLFxyXG4gICAgICAgIHB1Ymxpc2hSZXBsYXkoMSksXHJcbiAgICAgICAgcmVmQ291bnQoKVxyXG4gICAgICApO1xyXG4gIH1cclxuICBkb0NvdW50TmV3KHVzZXJJZCwgcXVlcnlQYXJhbXMgPSB7fSkge1xyXG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHt0aGlzLmVudmlyb25tZW50Lm5vdGlmaWNhdGlvbnN9L2FwaS9zeXN0ZW0tbm90aWZpY2F0aW9ucy9jb3VudE5ldy8ke3VzZXJJZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueT4oZW5kcG9pbnQsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcyB9KVxyXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoXCJjb3VudE5ld1wiLCBbXSkpKTtcclxuICB9XHJcbiAgZG9SZXNldENvdW50TmV3KHVzZXJJZCwgcXVlcnlQYXJhbXMgPSB7fSkge1xyXG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHt0aGlzLmVudmlyb25tZW50Lm5vdGlmaWNhdGlvbnN9L2FwaS9zeXN0ZW0tbm90aWZpY2F0aW9ucy9yZXNldENvdW50LyR7dXNlcklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wdXQ8YW55PihlbmRwb2ludCwgeyBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihcInJlc2V0Q291bnROZXdcIiwgW10pKSk7XHJcbiAgfVxyXG4gIGRvQ291bnRVbnJlYWQodXNlcklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL2NvdW50VW5SZWFkLyR7dXNlcklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55PihlbmRwb2ludCwgeyBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihcImNvdW50VW5yZWFkXCIsIFtdKSkpO1xyXG4gIH1cclxuICBkb01hcmtBbGxBc1JlYWQodXNlcklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL21hcmtBbGxBc1JlYWQvJHt1c2VySWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnB1dDxhbnk+KGVuZHBvaW50LCB7IHBhcmFtczogcXVlcnlQYXJhbXMgfSlcclxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKFwibWFya0FsbEFzUmVhZFwiLCBbXSkpKTtcclxuICB9XHJcbiAgZG9NYXJrQXNSZWFkKG5vdGlmaWNhdGlvbklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL21hcmtBc1JlYWQvJHtub3RpZmljYXRpb25JZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucHV0PGFueT4oZW5kcG9pbnQsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcyB9KVxyXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoXCJtYXJrQXNSZWFkXCIsIFtdKSkpO1xyXG4gIH1cclxuICBkb01hcmtBc1VucmVhZChub3RpZmljYXRpb25JZCwgcXVlcnlQYXJhbXMgPSB7fSkge1xyXG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHt0aGlzLmVudmlyb25tZW50Lm5vdGlmaWNhdGlvbnN9L2FwaS9zeXN0ZW0tbm90aWZpY2F0aW9ucy9tYXJrQXNVblJlYWQvJHtub3RpZmljYXRpb25JZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucHV0PGFueT4oZW5kcG9pbnQsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcyB9KVxyXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoXCJtYXJrQXNVbnJlYWRcIiwgW10pKSk7XHJcbiAgfVxyXG4gIGRvRGVsZXRlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zLyR7bm90aWZpY2F0aW9uSWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmRlbGV0ZTxhbnk+KGVuZHBvaW50LCB7IHBhcmFtczogcXVlcnlQYXJhbXMgfSlcclxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKFwiZGVsZXRlTm90aWZpY2F0aW9uXCIsIFtdKSkpO1xyXG4gIH1cclxuICBwcml2YXRlIGhhbmRsZUVycm9yPFQ+KG9wZXJhdGlvbiA9IFwib3BlcmF0aW9uXCIsIHJlc3VsdD86IFQpIHtcclxuICAgIHJldHVybiAoZXJyb3I6IGFueSk6IE9ic2VydmFibGU8VD4gPT4ge1xyXG4gICAgICAvLyBUT0RPOiBzZW5kIHRoZSBlcnJvciB0byByZW1vdGUgbG9nZ2luZyBpbmZyYXN0cnVjdHVyZVxyXG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTsgLy8gbG9nIHRvIGNvbnNvbGUgaW5zdGVhZFxyXG5cclxuICAgICAgLy8gVE9ETzogYmV0dGVyIGpvYiBvZiB0cmFuc2Zvcm1pbmcgZXJyb3IgZm9yIHVzZXIgY29uc3VtcHRpb25cclxuICAgICAgY29uc29sZS5sb2coYCR7b3BlcmF0aW9ufSBmYWlsZWQ6ICR7ZXJyb3IubWVzc2FnZX1gKTtcclxuXHJcbiAgICAgIC8vIExldCB0aGUgYXBwIGtlZXAgcnVubmluZyBieSByZXR1cm5pbmcgYW4gZW1wdHkgcmVzdWx0LlxyXG4gICAgICByZXN1bHRbXCJzdGF0dXNcIl0gPSBlcnJvci5zdGF0dXM7XHJcbiAgICAgIGlmIChlcnJvci5lcnJvci5oYXNPd25Qcm9wZXJ0eShcIm1lc3NhZ2VcIikpIHtcclxuICAgICAgICByZXN1bHRbXCJtZXNzYWdlXCJdID0gZXJyb3IuZXJyb3IubWVzc2FnZTtcclxuICAgICAgICByZXN1bHRbXCJ0eXBlXCJdID0gZXJyb3IuZXJyb3IudHlwZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIG9mKHJlc3VsdCBhcyBUKTtcclxuICAgIH07XHJcbiAgfVxyXG4gIGFzeW5jIGNvbm5lY3QoKSB7XHJcbiAgICBpZiAodGhpcy5jb25uZWN0ZWRQcm9taXNlID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuY29ubmVjdGlvbiA9IHRoaXMuY3JlYXRlQ29ubmVjdGlvbigpO1xyXG4gICAgfVxyXG4gICAgLy8gYnVpbGRpbmcgYWJzb2x1dGUgcGF0aCBzbyB0aGF0IHdlYnNvY2tldCBkb2Vzbid0IGZhaWwgd2hlbiBkZXBsb3lpbmcgd2l0aCBhIGNvbnRleHQgcGF0aFxyXG4gICAgbGV0IHVybDtcclxuICAgIHVybCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vd2Vic29ja2V0L2VraGFhYDsgLy91cmxcclxuICAgIGNvbnN0IHNvY2tldCA9IG5ldyBTb2NrSlModXJsKTtcclxuICAgIHRoaXMuc3RvbXBDbGllbnQgPSBTdG9tcC5vdmVyKHNvY2tldCk7XHJcbiAgICBjb25zdCBoZWFkZXJzID0ge1xyXG4gICAgICAvLyBVcGdyYWRlOiAnd2Vic29ja2V0JyxcclxuICAgICAgLy8gQ29ubmVjdGlvbjogJ1VwZ3JhZGUnLFxyXG4gICAgICB0b2tlbjogYCR7YXdhaXQgdGhpcy5rZXljbG9hay5nZXRUb2tlbigpfWAsXHJcbiAgICB9O1xyXG4gICAgaWYgKCF0aGlzLmFscmVhZHlDb25uZWN0ZWRPbmNlKSB7XHJcbiAgICAgIHRoaXMuc3RvbXBDbGllbnQuY29ubmVjdChoZWFkZXJzLCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hbHJlYWR5Q29ubmVjdGVkT25jZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRQcm9taXNlKFwic3VjY2Vzc1wiKTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RlZFByb21pc2UgPSBudWxsO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRpc2Nvbm5lY3QoKSB7XHJcbiAgICBpZiAodGhpcy5zdG9tcENsaWVudCAhPT0gbnVsbCAmJiB0aGlzLmFscmVhZHlDb25uZWN0ZWRPbmNlKSB7XHJcbiAgICAgIHRoaXMuc3RvbXBDbGllbnQuZGlzY29ubmVjdCgpO1xyXG4gICAgICB0aGlzLnN0b21wQ2xpZW50ID0gbnVsbDtcclxuICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hbHJlYWR5Q29ubmVjdGVkT25jZSA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbm5lY3RlZFByb21pc2UpIHtcclxuICAgICAgdGhpcy5jb25uZWN0aW9uLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGlzY29ubmVjdCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN1YnNjcmliZSgpIHtcclxuICAgIGlmICh0aGlzLmNvbm5lY3Rpb24pIHtcclxuICAgICAgdGhpcy5jb25uZWN0aW9uLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnN0b21wQ2xpZW50KSB7XHJcbiAgICAgICAgICB0aGlzLnN1YnNjcmliZXIgPSB0aGlzLnN0b21wQ2xpZW50LnN1YnNjcmliZShcclxuICAgICAgICAgICAgXCIvdXNlci90b3BpYy9ub3RpZmljYXRpb25cIixcclxuICAgICAgICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBub3RpZmljYXRpb24gPSBKU09OLnBhcnNlKGRhdGEuYm9keSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucy51bnNoaWZ0KG5vdGlmaWNhdGlvbik7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRDb3VudCgpLnN1YnNjcmliZSgoKSA9PiB7fSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5saXN0ZW5lck9ic2VydmVyLmVtaXQobm90aWZpY2F0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdW5zdWJzY3JpYmUoKSB7XHJcbiAgICBpZiAodGhpcy5zdWJzY3JpYmVyICE9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaWJlci51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUNvbm5lY3Rpb24oKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiAodGhpcy5jb25uZWN0ZWRQcm9taXNlID0gcmVzb2x2ZSkpO1xyXG4gIH1cclxuXHJcbiAgdGVzdE5vdGlmaWNhdGlvbigpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbihcIlN5c3RlbS5Ob3RpZmljYXRpb25cIiwge1xyXG4gICAgICAgICAgdXJsOiBgJHt0aGlzLmVudmlyb25tZW50Lm51eGVvfSR7dGhpcy5lbnZpcm9ubWVudC5jdXN0b21BdXRvbWF0aW9ufWAsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAucGFyYW1zKHtcclxuICAgICAgICAgIGFwcGxpY2F0aW9uS2V5OiBcImN0c25cIixcclxuICAgICAgICAgIG5vdGlmaWNhdGlvbktleTogXCJOb3RpZmljYXRpb25XaGVuT3V0Z29pbmdDb3JyZXNwb25kbmVjZUFwcHJvdmVcIixcclxuICAgICAgICAgIGFwaURhdGE6XHJcbiAgICAgICAgICAgICd7XCJpZFwiOiBcImE3ZWQ2MjllLWM4ZWEtNGU4NC04YjgzLTMyOTAwOTUxNTg3OFwiLFwic2NoZW1hXCI6IFwiQ29ycmVzcG9uZGVuY2VcIn0nLFxyXG4gICAgICAgICAgZGF0YTogXCJ7fVwiLFxyXG4gICAgICAgICAgZ3JvdXBzSWQ6IFtdLFxyXG4gICAgICAgICAgdXNlcnNJZDogW1wiY3RzX3NlY1wiXSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5pbnB1dChcImE3ZWQ2MjllLWM4ZWEtNGU4NC04YjgzLTMyOTAwOTUxNTg3OFwiKVxyXG4gICAgICAgIC5leGVjdXRlKClcclxuICAgICkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
280
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFFeEMsT0FBTyxLQUFLLEtBQUssTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztBQUl6QyxNQUFNLE9BQU8sb0JBQW9CO0lBd0IvQixZQUNVLElBQWdCLEVBQ2pCLE1BQWMsRUFDZCxZQUEwQixFQUN6QixRQUF5QixFQUN6QixrQkFBc0MsRUFDZixXQUFXO1FBTGxDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDakIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDZixnQkFBVyxHQUFYLFdBQVcsQ0FBQTtRQTdCNUMsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUVsQixxQkFBZ0IsR0FBUSxJQUFJLENBQUM7UUFDN0IscUJBQWdCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekQsV0FBTSxHQUF1QixJQUFJLGFBQWEsQ0FB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LElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVc7YUFDMUIsU0FBUyxDQUFDLHFCQUFxQixFQUFFO1lBQ2hDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUU7U0FDckUsQ0FBQzthQUNELE1BQU0sQ0FBQztZQUNOLGNBQWMsRUFBRSxNQUFNO1lBQ3RCLGVBQWUsRUFBRSwrQ0FBK0M7WUFDaEUsT0FBTyxFQUNMLDJFQUEyRTtZQUM3RSxJQUFJLEVBQUUsSUFBSTtZQUNWLFFBQVEsRUFBRSxFQUFFO1lBQ1osT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDO1NBQ3JCLENBQUM7YUFDRCxLQUFLLENBQUMsc0NBQXNDLENBQUM7YUFDN0MsT0FBTyxFQUFFLENBQ2IsQ0FBQyxJQUFJLENBQ0osVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQixNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOztrSEE5UlUsb0JBQW9CLCtKQThCckIsYUFBYTtzSEE5Qlosb0JBQW9COzRGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVU7OzBCQStCTixNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBLZXljbG9ha1NlcnZpY2UgfSBmcm9tIFwia2V5Y2xvYWstYW5ndWxhclwiO1xyXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBvZiwgUmVwbGF5U3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgcHVibGlzaFJlcGxheSwgcmVmQ291bnQgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0ICogYXMgU29ja0pTIGZyb20gXCJzb2NranMtY2xpZW50XCI7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gXCIuLi8uLi9Db3JlL3NlcnZpY2VzL251eGVvL251eGVvLnNlcnZpY2VcIjtcclxuaW1wb3J0ICogYXMgU3RvbXAgZnJvbSBcIndlYnN0b21wLWNsaWVudFwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vQ29yZS9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGlvbi5zZXJ2aWNlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25zU2VydmljZSB7XHJcbiAgc3RvbXBDbGllbnQgPSBudWxsO1xyXG4gIHN1YnNjcmliZXIgPSBudWxsO1xyXG4gIGNvbm5lY3Rpb246IFByb21pc2U8YW55PjtcclxuICBjb25uZWN0ZWRQcm9taXNlOiBhbnkgPSBudWxsO1xyXG4gIGxpc3RlbmVyT2JzZXJ2ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHVwZGF0ZTogUmVwbGF5U3ViamVjdDxhbnk+ID0gbmV3IFJlcGxheVN1YmplY3QoMSk7XHJcbiAgYWxyZWFkeUNvbm5lY3RlZE9uY2UgPSBmYWxzZTtcclxuICBwYWdlU2l6ZSA9IDE1O1xyXG5cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3RvbXAuU3Vic2NyaXB0aW9uO1xyXG5cclxuICBwcml2YXRlIF9ub3RpZmljYXRpb25zID0gW107XHJcbiAgZ2V0IG5vdGlmaWNhdGlvbnMoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9ub3RpZmljYXRpb25zO1xyXG4gIH1cclxuICBwcml2YXRlIF9ub3RpZmljYXRpb25zQ291bnQgPSAwO1xyXG4gIGdldCBub3RpZmljYXRpb25zQ291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9ub3RpZmljYXRpb25zQ291bnQ7XHJcbiAgfVxyXG4gIGJhc2UgPSBcIlwiO1xyXG4gIHByb2ZpbGUgPSB7IGlkOiB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyLmlkIH07XHJcbiAgc3lzdGVtTGFuZyA9IFwiXCI7XHJcbiAgbGFuZ0NoYW5nZWQ6IGJvb2xlYW47XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwdWJsaWMgbnV4ZW9TZXJ2aWNlOiBOdXhlb1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGtleWNsb2FrOiBLZXljbG9ha1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gICAgQEluamVjdChcImVudmlyb25tZW50XCIpIHByaXZhdGUgZW52aXJvbm1lbnRcclxuICApIHtcclxuICAgIGlmICh0aGlzLnByb2ZpbGUuaWQpIHtcclxuICAgICAgdGhpcy5nZXRDb3VudCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0KCk7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS5pc0FyYWJpYy5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICB0aGlzLnJlc2V0Tm90aWZpY2F0aW9ucygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldENvdW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZG9Db3VudE5ldyh0aGlzLnByb2ZpbGUuaWQpLnBpcGUoXHJcbiAgICAgIG1hcCgoZGF0YSkgPT4ge1xyXG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnNDb3VudCA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy51cGRhdGUubmV4dCgpO1xyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgcmVzZXQoKSB7XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gW107XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zQ291bnQgPSAwO1xyXG4gIH1cclxuICByZXNldE5vdGlmaWNhdGlvbnMoKSB7XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gW107XHJcbiAgfVxyXG4gIGZldGNoTm90aWZpY2F0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLmdldE5vdGlmaWNhdGlvbnModGhpcy5wcm9maWxlLmlkLCB7XHJcbiAgICAgIHBhZ2U6XHJcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucy5sZW5ndGggPiAwXHJcbiAgICAgICAgICA/IE1hdGguY2VpbCh0aGlzLl9ub3RpZmljYXRpb25zLmxlbmd0aCAvIHRoaXMucGFnZVNpemUpXHJcbiAgICAgICAgICA6IDAsXHJcbiAgICAgIHNpemU6IHRoaXMucGFnZVNpemUsXHJcbiAgICAgIHBhZ2VkOiB0cnVlLFxyXG4gICAgICBzb3J0OiBcInNlbmREYXRlLGRlc2NcIixcclxuICAgICAgc29ydGVkOiB0cnVlLFxyXG4gICAgICBsYW5nOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS51c2VyTGFuZy50b1VwcGVyQ2FzZSgpLFxyXG4gICAgfSkucGlwZShcclxuICAgICAgbWFwKChub3RpZmljYXRpb25zOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAobm90aWZpY2F0aW9ucy5pdGVtcykge1xyXG4gICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucyA9IHRoaXMuX25vdGlmaWNhdGlvbnMuY29uY2F0KG5vdGlmaWNhdGlvbnMuaXRlbXMpO1xyXG4gICAgICAgICAgcmV0dXJuIG5vdGlmaWNhdGlvbnM7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMgPSBbXTtcclxuICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gW107XHJcbiAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgcmVzZXRDb3VudCgpIHtcclxuICAgIHRoaXMuX25vdGlmaWNhdGlvbnNDb3VudCA9IDA7XHJcbiAgfVxyXG4gIG1hcmtBbGxBc1JlYWQoKSB7XHJcbiAgICB0aGlzLmRvTWFya0FsbEFzUmVhZCh0aGlzLnByb2ZpbGUuaWQpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMuZm9yRWFjaCgoaXRlbSkgPT4gKGl0ZW0uc3RhdHVzID0gXCJSRUFEXCIpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICB1cGRhdGVTdGF0dXMobm90aWZpY2F0aW9uLCBvbk9wZW4gPSBmYWxzZSkge1xyXG4gICAgY29uc3QgYm9vbCA9XHJcbiAgICAgIG5vdGlmaWNhdGlvbi5zdGF0dXMgPT09IFwiVU5fUkVBRFwiIHx8XHJcbiAgICAgIG5vdGlmaWNhdGlvbi5zdGF0dXMgPT09IFwiTkVXXCIgfHxcclxuICAgICAgb25PcGVuO1xyXG4gICAgaWYgKGJvb2wpIHtcclxuICAgICAgdGhpcy5kb01hcmtBc1JlYWQobm90aWZpY2F0aW9uLmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIG5vdGlmaWNhdGlvbi5zdGF0dXMgPSBcIlJFQURcIjtcclxuICAgICAgICB0aGlzLmdldENvdW50KCkuc3Vic2NyaWJlKCgpID0+IHt9KTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRvTWFya0FzVW5yZWFkKG5vdGlmaWNhdGlvbi5pZCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBub3RpZmljYXRpb24uc3RhdHVzID0gXCJVTl9SRUFEXCI7XHJcbiAgICAgICAgdGhpcy5nZXRDb3VudCgpLnN1YnNjcmliZSgoKSA9PiB7fSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBkZWxldGVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uKSB7XHJcbiAgICB0aGlzLmRvRGVsZXRlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5pZCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucy5maWx0ZXIoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0uaWQgPT09IG5vdGlmaWNhdGlvbi5pZCkge1xyXG4gICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMudXBkYXRlLm5leHQoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBnZXROb3RpZmljYXRpb25zKHVzZXJJZCwgcXVlcnlQYXJhbXMgPSB7fSkge1xyXG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHt0aGlzLmVudmlyb25tZW50Lm5vdGlmaWNhdGlvbnN9L2FwaS9zeXN0ZW0tbm90aWZpY2F0aW9ucy9hbGwvJHt1c2VySWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnk+KGVuZHBvaW50LCB7IG9ic2VydmU6IFwicmVzcG9uc2VcIiwgcGFyYW1zOiBxdWVyeVBhcmFtcyB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3ApID0+ICh7XHJcbiAgICAgICAgICB0b3RhbENvdW50OiByZXNwLmhlYWRlcnMuZ2V0KFwieC10b3RhbC1jb3VudFwiKSxcclxuICAgICAgICAgIGl0ZW1zOiByZXNwLmJvZHkubWFwKChpdGVtKSA9PiBpdGVtKSxcclxuICAgICAgICB9KSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKFwiZ2V0Tm90aWZpY2F0aW9uc1wiLCBbXSkpLFxyXG4gICAgICAgIHB1Ymxpc2hSZXBsYXkoMSksXHJcbiAgICAgICAgcmVmQ291bnQoKVxyXG4gICAgICApO1xyXG4gIH1cclxuICBkb0NvdW50TmV3KHVzZXJJZCwgcXVlcnlQYXJhbXMgPSB7fSkge1xyXG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHt0aGlzLmVudmlyb25tZW50Lm5vdGlmaWNhdGlvbnN9L2FwaS9zeXN0ZW0tbm90aWZpY2F0aW9ucy9jb3VudE5ldy8ke3VzZXJJZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueT4oZW5kcG9pbnQsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcyB9KVxyXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoXCJjb3VudE5ld1wiLCBbXSkpKTtcclxuICB9XHJcbiAgZG9SZXNldENvdW50TmV3KHVzZXJJZCwgcXVlcnlQYXJhbXMgPSB7fSkge1xyXG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHt0aGlzLmVudmlyb25tZW50Lm5vdGlmaWNhdGlvbnN9L2FwaS9zeXN0ZW0tbm90aWZpY2F0aW9ucy9yZXNldENvdW50LyR7dXNlcklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wdXQ8YW55PihlbmRwb2ludCwgeyBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihcInJlc2V0Q291bnROZXdcIiwgW10pKSk7XHJcbiAgfVxyXG4gIGRvQ291bnRVbnJlYWQodXNlcklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL2NvdW50VW5SZWFkLyR7dXNlcklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55PihlbmRwb2ludCwgeyBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihcImNvdW50VW5yZWFkXCIsIFtdKSkpO1xyXG4gIH1cclxuICBkb01hcmtBbGxBc1JlYWQodXNlcklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL21hcmtBbGxBc1JlYWQvJHt1c2VySWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnB1dDxhbnk+KGVuZHBvaW50LCB7IHBhcmFtczogcXVlcnlQYXJhbXMgfSlcclxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKFwibWFya0FsbEFzUmVhZFwiLCBbXSkpKTtcclxuICB9XHJcbiAgZG9NYXJrQXNSZWFkKG5vdGlmaWNhdGlvbklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL21hcmtBc1JlYWQvJHtub3RpZmljYXRpb25JZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucHV0PGFueT4oZW5kcG9pbnQsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcyB9KVxyXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoXCJtYXJrQXNSZWFkXCIsIFtdKSkpO1xyXG4gIH1cclxuICBkb01hcmtBc1VucmVhZChub3RpZmljYXRpb25JZCwgcXVlcnlQYXJhbXMgPSB7fSkge1xyXG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHt0aGlzLmVudmlyb25tZW50Lm5vdGlmaWNhdGlvbnN9L2FwaS9zeXN0ZW0tbm90aWZpY2F0aW9ucy9tYXJrQXNVblJlYWQvJHtub3RpZmljYXRpb25JZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucHV0PGFueT4oZW5kcG9pbnQsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcyB9KVxyXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoXCJtYXJrQXNVbnJlYWRcIiwgW10pKSk7XHJcbiAgfVxyXG4gIGRvRGVsZXRlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zLyR7bm90aWZpY2F0aW9uSWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmRlbGV0ZTxhbnk+KGVuZHBvaW50LCB7IHBhcmFtczogcXVlcnlQYXJhbXMgfSlcclxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKFwiZGVsZXRlTm90aWZpY2F0aW9uXCIsIFtdKSkpO1xyXG4gIH1cclxuICBwcml2YXRlIGhhbmRsZUVycm9yPFQ+KG9wZXJhdGlvbiA9IFwib3BlcmF0aW9uXCIsIHJlc3VsdD86IFQpIHtcclxuICAgIHJldHVybiAoZXJyb3I6IGFueSk6IE9ic2VydmFibGU8VD4gPT4ge1xyXG4gICAgICAvLyBUT0RPOiBzZW5kIHRoZSBlcnJvciB0byByZW1vdGUgbG9nZ2luZyBpbmZyYXN0cnVjdHVyZVxyXG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTsgLy8gbG9nIHRvIGNvbnNvbGUgaW5zdGVhZFxyXG5cclxuICAgICAgLy8gVE9ETzogYmV0dGVyIGpvYiBvZiB0cmFuc2Zvcm1pbmcgZXJyb3IgZm9yIHVzZXIgY29uc3VtcHRpb25cclxuICAgICAgY29uc29sZS5sb2coYCR7b3BlcmF0aW9ufSBmYWlsZWQ6ICR7ZXJyb3IubWVzc2FnZX1gKTtcclxuXHJcbiAgICAgIC8vIExldCB0aGUgYXBwIGtlZXAgcnVubmluZyBieSByZXR1cm5pbmcgYW4gZW1wdHkgcmVzdWx0LlxyXG4gICAgICByZXN1bHRbXCJzdGF0dXNcIl0gPSBlcnJvci5zdGF0dXM7XHJcbiAgICAgIGlmIChlcnJvci5lcnJvci5oYXNPd25Qcm9wZXJ0eShcIm1lc3NhZ2VcIikpIHtcclxuICAgICAgICByZXN1bHRbXCJtZXNzYWdlXCJdID0gZXJyb3IuZXJyb3IubWVzc2FnZTtcclxuICAgICAgICByZXN1bHRbXCJ0eXBlXCJdID0gZXJyb3IuZXJyb3IudHlwZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIG9mKHJlc3VsdCBhcyBUKTtcclxuICAgIH07XHJcbiAgfVxyXG4gIGFzeW5jIGNvbm5lY3QoKSB7XHJcbiAgICBpZiAodGhpcy5jb25uZWN0ZWRQcm9taXNlID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuY29ubmVjdGlvbiA9IHRoaXMuY3JlYXRlQ29ubmVjdGlvbigpO1xyXG4gICAgfVxyXG4gICAgLy8gYnVpbGRpbmcgYWJzb2x1dGUgcGF0aCBzbyB0aGF0IHdlYnNvY2tldCBkb2Vzbid0IGZhaWwgd2hlbiBkZXBsb3lpbmcgd2l0aCBhIGNvbnRleHQgcGF0aFxyXG4gICAgbGV0IHVybDtcclxuICAgIHVybCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vd2Vic29ja2V0L2VraGFhYDsgLy91cmxcclxuICAgIGNvbnN0IHNvY2tldCA9IG5ldyBTb2NrSlModXJsKTtcclxuICAgIHRoaXMuc3RvbXBDbGllbnQgPSBTdG9tcC5vdmVyKHNvY2tldCk7XHJcbiAgICBjb25zdCBoZWFkZXJzID0ge1xyXG4gICAgICAvLyBVcGdyYWRlOiAnd2Vic29ja2V0JyxcclxuICAgICAgLy8gQ29ubmVjdGlvbjogJ1VwZ3JhZGUnLFxyXG4gICAgICB0b2tlbjogYCR7YXdhaXQgdGhpcy5rZXljbG9hay5nZXRUb2tlbigpfWAsXHJcbiAgICB9O1xyXG4gICAgaWYgKCF0aGlzLmFscmVhZHlDb25uZWN0ZWRPbmNlKSB7XHJcbiAgICAgIHRoaXMuc3RvbXBDbGllbnQuY29ubmVjdChoZWFkZXJzLCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hbHJlYWR5Q29ubmVjdGVkT25jZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRQcm9taXNlKFwic3VjY2Vzc1wiKTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RlZFByb21pc2UgPSBudWxsO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRpc2Nvbm5lY3QoKSB7XHJcbiAgICBpZiAodGhpcy5zdG9tcENsaWVudCAhPT0gbnVsbCAmJiB0aGlzLmFscmVhZHlDb25uZWN0ZWRPbmNlKSB7XHJcbiAgICAgIHRoaXMuc3RvbXBDbGllbnQuZGlzY29ubmVjdCgpO1xyXG4gICAgICB0aGlzLnN0b21wQ2xpZW50ID0gbnVsbDtcclxuICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hbHJlYWR5Q29ubmVjdGVkT25jZSA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbm5lY3RlZFByb21pc2UpIHtcclxuICAgICAgdGhpcy5jb25uZWN0aW9uLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGlzY29ubmVjdCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN1YnNjcmliZSgpIHtcclxuICAgIGlmICh0aGlzLmNvbm5lY3Rpb24pIHtcclxuICAgICAgdGhpcy5jb25uZWN0aW9uLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnN0b21wQ2xpZW50KSB7XHJcbiAgICAgICAgICB0aGlzLnN1YnNjcmliZXIgPSB0aGlzLnN0b21wQ2xpZW50LnN1YnNjcmliZShcclxuICAgICAgICAgICAgXCIvdXNlci90b3BpYy9ub3RpZmljYXRpb25cIixcclxuICAgICAgICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBub3RpZmljYXRpb24gPSBKU09OLnBhcnNlKGRhdGEuYm9keSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucy51bnNoaWZ0KG5vdGlmaWNhdGlvbik7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRDb3VudCgpLnN1YnNjcmliZSgoKSA9PiB7fSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5saXN0ZW5lck9ic2VydmVyLmVtaXQobm90aWZpY2F0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdW5zdWJzY3JpYmUoKSB7XHJcbiAgICBpZiAodGhpcy5zdWJzY3JpYmVyICE9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaWJlci51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUNvbm5lY3Rpb24oKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiAodGhpcy5jb25uZWN0ZWRQcm9taXNlID0gcmVzb2x2ZSkpO1xyXG4gIH1cclxuXHJcbiAgdGVzdE5vdGlmaWNhdGlvbigpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbihcIlN5c3RlbS5Ob3RpZmljYXRpb25cIiwge1xyXG4gICAgICAgICAgdXJsOiBgJHt0aGlzLmVudmlyb25tZW50Lm51eGVvfSR7dGhpcy5lbnZpcm9ubWVudC5jdXN0b21BdXRvbWF0aW9ufWAsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAucGFyYW1zKHtcclxuICAgICAgICAgIGFwcGxpY2F0aW9uS2V5OiBcImN0c25cIixcclxuICAgICAgICAgIG5vdGlmaWNhdGlvbktleTogXCJOb3RpZmljYXRpb25XaGVuT3V0Z29pbmdDb3JyZXNwb25kbmVjZUFwcHJvdmVcIixcclxuICAgICAgICAgIGFwaURhdGE6XHJcbiAgICAgICAgICAgICd7XCJpZFwiOiBcImE3ZWQ2MjllLWM4ZWEtNGU4NC04YjgzLTMyOTAwOTUxNTg3OFwiLFwic2NoZW1hXCI6IFwiQ29ycmVzcG9uZGVuY2VcIn0nLFxyXG4gICAgICAgICAgZGF0YTogXCJ7fVwiLFxyXG4gICAgICAgICAgZ3JvdXBzSWQ6IFtdLFxyXG4gICAgICAgICAgdXNlcnNJZDogW1wiY3RzX3NlY1wiXSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5pbnB1dChcImE3ZWQ2MjllLWM4ZWEtNGU4NC04YjgzLTMyOTAwOTUxNTg3OFwiKVxyXG4gICAgICAgIC5leGVjdXRlKClcclxuICAgICkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -102,9 +102,9 @@ export class PaginationComponent {
|
|
|
102
102
|
return pages;
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
|
-
PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
106
|
-
PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
107
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
105
|
+
PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
106
|
+
PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: PaginationComponent, selector: "cts-pagination", inputs: { size: "size", count: "count", page: "page" }, outputs: { change: "change" }, ngImport: i0, template: "<ul class=\"pagination\" SetRtl *ngIf=\"pages.length > 1\">\r\n <li class=\"rotat-icon\" [class.disabled]=\"!canPrevious()\">\r\n <a\r\n role=\"button\"\r\n aria-label=\"go to previous page\"\r\n href=\"javascript:void(0)\"\r\n (click)=\"prevPage()\"\r\n >\r\n <i class=\"bi bi-caret-left\"></i>\r\n </a>\r\n </li>\r\n <li\r\n role=\"button\"\r\n [attr.aria-label]=\"'page ' + pg.number\"\r\n class=\"pages\"\r\n *ngFor=\"let pg of pages\"\r\n [class.active]=\"pg.number === page\"\r\n >\r\n <a href=\"javascript:void(0)\" (click)=\"selectPage(pg.number)\">\r\n {{ pg.text }}\r\n </a>\r\n </li>\r\n <li class=\"rotat-icon\" [class.disabled]=\"!canNext()\">\r\n <a\r\n role=\"button\"\r\n aria-label=\"go to next page\"\r\n href=\"javascript:void(0)\"\r\n (click)=\"nextPage()\"\r\n >\r\n <i class=\"bi bi-caret-right\"></i>\r\n </a>\r\n </li>\r\n</ul>\r\n", styles: [".pagination{padding:0;margin:0;display:inline-block;list-style:none}.pagination li{padding:0;margin:0;display:inline-block;list-style:none}.pagination li a{height:22px;min-width:24px;line-height:22px;padding:0 6px;border-radius:5px;margin:6px 3px;text-align:center;vertical-align:top;color:#0000008a;text-decoration:none;vertical-align:bottom}.pagination li a i{font-size:20px;line-height:20px;padding:0 3px}.pagination li.disabled a{color:#00000042!important;background-color:transparent!important;cursor:not-allowed}.pagination li.active{background-color:#9e9e9e33;font-weight:bold}.pagination.rtl .rotat-icon{transform:rotate(180deg)}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.SetRtlDirective, selector: "[SetRtl]" }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
108
108
|
type: Component,
|
|
109
109
|
args: [{
|
|
110
110
|
selector: 'cts-pagination',
|
|
@@ -120,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
120
120
|
}], change: [{
|
|
121
121
|
type: Output
|
|
122
122
|
}] } });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUUvRTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQU1ILE1BQU0sT0FBTyxtQkFBbUI7SUFFOUI7UUF5Q0EseUJBQXlCO1FBQ2YsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXpELFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDbkIsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUNsQixVQUFLLEdBQVcsQ0FBQyxDQUFDO0lBOUNGLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsSUFDSSxJQUFJLENBQUMsR0FBVztRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsSUFDSSxLQUFLLENBQUMsR0FBVztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztR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QUFDO2FBQzNCO1NBQ0Y7UUFFRCxLQUFLLElBQUksR0FBRyxHQUFHLFNBQVMsRUFBRSxHQUFHLElBQUksT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQy9DLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ1QsTUFBTSxFQUFFLEdBQUc7Z0JBQ1gsSUFBSSxFQUFnQixHQUFJO2FBQ3pCLENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztpSEEzR1UsbUJBQW1CO3FHQUFuQixtQkFBbUIsNklDdEJoQyw4N0JBaUNBOzRGRFhhLG1CQUFtQjtrQkFML0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixXQUFXLEVBQUUsNkJBQTZCO29CQUMxQyxTQUFTLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztpQkFDM0M7MEVBVUssSUFBSTtzQkFEUCxLQUFLO2dCQVlGLEtBQUs7c0JBRFIsS0FBSztnQkFXRixJQUFJO3NCQURQLEtBQUs7Z0JBZUksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIHlvdSBjYW4gdXNlIHRoaXMgY29tcG9uZW50IGZvciBhbnkgcGFnaW5hdGlvblxyXG4gKlxyXG4gKiAhW1NjcmVlbnNob3QtMV0oLi4vc2NyZWVuc2hvdHMvcGFnaW5hdGlvbi5wbmcpXHJcbiAqIEB0aXRsZVxyXG4gKiBQYWdpbmF0aW9uXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIDxjdHMtcGFnaW5hdGlvblxyXG4gKiAgICBbcGFnZV09XCJwYWdlTnVtYmVyXCJcclxuICogICAgKGNoYW5nZSk9XCJQYWdpbmF0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gKiAgICBbc2l6ZV09XCJQYWdlU2l6ZVwiXHJcbiAqICAgIFtjb3VudF09XCJ0b3RhbFJlY29yZHNcIj5cclxuICogPC9jdHMtcGFnaW5hdGlvbj5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3RzLXBhZ2luYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIC8qKiBQYWdlIFNpemUgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBzaXplKHZhbDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9zaXplID0gdmFsO1xyXG4gICAgdGhpcy5wYWdlcyA9IHRoaXMuY2FsY1BhZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgc2l6ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NpemU7XHJcbiAgfVxyXG5cclxuICAvKiogVG90YWwgcmVjb3JkcyBjb3VudCAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGNvdW50KHZhbDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9jb3VudCA9IHZhbDtcclxuICAgIHRoaXMucGFnZXMgPSB0aGlzLmNhbGNQYWdlcygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fY291bnQ7XHJcbiAgfVxyXG4gLyoqIFBhZ2UgTnVtYmVyICovXHJcbiAgQElucHV0KClcclxuICBzZXQgcGFnZSh2YWw6IG51bWJlcikge1xyXG4gICAgdGhpcy5fcGFnZSA9IHZhbDtcclxuICAgIHRoaXMucGFnZXMgPSB0aGlzLmNhbGNQYWdlcygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBhZ2UoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9wYWdlO1xyXG4gIH1cclxuIC8qKiBQYWdlcyBDb3VudCAqL1xyXG4gIGdldCB0b3RhbFBhZ2VzKCk6IG51bWJlciB7XHJcbiAgICBjb25zdCBjb3VudCA9IHRoaXMuc2l6ZSA8IDEgPyAxIDogTWF0aC5jZWlsKHRoaXMuY291bnQgLyB0aGlzLnNpemUpO1xyXG4gICAgcmV0dXJuIE1hdGgubWF4KGNvdW50IHx8IDAsIDEpO1xyXG4gIH1cclxuICAvKiogUGFnZSBjaGFuZ2VkIGV2ZW50ICovXHJcbiAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIF9jb3VudDogbnVtYmVyID0gMDtcclxuICBfcGFnZTogbnVtYmVyID0gMTtcclxuICBfc2l6ZTogbnVtYmVyID0gMDtcclxuICBwYWdlczogYW55O1xyXG5cclxuICBjYW5QcmV2aW91cygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnBhZ2UgPiAxO1xyXG4gIH1cclxuXHJcbiAgY2FuTmV4dCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnBhZ2UgPCB0aGlzLnRvdGFsUGFnZXM7XHJcbiAgfVxyXG5cclxuICBwcmV2UGFnZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0UGFnZSh0aGlzLnBhZ2UgLSAxKTtcclxuICB9XHJcblxyXG4gIG5leHRQYWdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RQYWdlKHRoaXMucGFnZSArIDEpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0UGFnZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmIChwYWdlID4gMCAmJiBwYWdlIDw9IHRoaXMudG90YWxQYWdlcyAmJiBwYWdlICE9PSB0aGlzLnBhZ2UpIHtcclxuICAgICAgdGhpcy5wYWdlID0gcGFnZTtcclxuXHJcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQoXHJcbiAgICAgICAgcGFnZVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FsY1BhZ2VzKHBhZ2U/OiBudW1iZXIpOiBhbnlbXSB7XHJcbiAgICBjb25zdCBwYWdlcyA9IFtdO1xyXG4gICAgbGV0IHN0YXJ0UGFnZSA9IDE7XHJcbiAgICBsZXQgZW5kUGFnZSA9IHRoaXMudG90YWxQYWdlcztcclxuICAgIGNvbnN0IG1heFNpemUgPSA1O1xyXG4gICAgY29uc3QgaXNNYXhTaXplZCA9IG1heFNpemUgPCB0aGlzLnRvdGFsUGFnZXM7XHJcblxyXG4gICAgcGFnZSA9IHBhZ2UgfHwgdGhpcy5wYWdlO1xyXG5cclxuICAgIGlmIChpc01heFNpemVkKSB7XHJcbiAgICAgIHN0YXJ0UGFnZSA9IHBhZ2UgLSBNYXRoLmZsb29yKG1heFNpemUgLyAyKTtcclxuICAgICAgZW5kUGFnZSA9IHBhZ2UgKyBNYXRoLmZsb29yKG1heFNpemUgLyAyKTtcclxuXHJcbiAgICAgIGlmIChzdGFydFBhZ2UgPCAxKSB7XHJcbiAgICAgICAgc3RhcnRQYWdlID0gMTtcclxuICAgICAgICBlbmRQYWdlID0gTWF0aC5taW4oc3RhcnRQYWdlICsgbWF4U2l6ZSAtIDEsIHRoaXMudG90YWxQYWdlcyk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZW5kUGFnZSA+IHRoaXMudG90YWxQYWdlcykge1xyXG4gICAgICAgIHN0YXJ0UGFnZSA9IE1hdGgubWF4KHRoaXMudG90YWxQYWdlcyAtIG1heFNpemUgKyAxLCAxKTtcclxuICAgICAgICBlbmRQYWdlID0gdGhpcy50b3RhbFBhZ2VzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChsZXQgbnVtID0gc3RhcnRQYWdlOyBudW0gPD0gZW5kUGFnZTsgbnVtKyspIHtcclxuICAgICAgcGFnZXMucHVzaCh7XHJcbiAgICAgICAgbnVtYmVyOiBudW0sXHJcbiAgICAgICAgdGV4dDogPHN0cmluZz4oPGFueT5udW0pXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwYWdlcztcclxuICB9XHJcbn1cclxuIiwiPHVsIGNsYXNzPVwicGFnaW5hdGlvblwiIFNldFJ0bCAqbmdJZj1cInBhZ2VzLmxlbmd0aCA+IDFcIj5cclxuICA8bGkgY2xhc3M9XCJyb3RhdC1pY29uXCIgW2NsYXNzLmRpc2FibGVkXT1cIiFjYW5QcmV2aW91cygpXCI+XHJcbiAgICA8YVxyXG4gICAgICByb2xlPVwiYnV0dG9uXCJcclxuICAgICAgYXJpYS1sYWJlbD1cImdvIHRvIHByZXZpb3VzIHBhZ2VcIlxyXG4gICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcclxuICAgICAgKGNsaWNrKT1cInByZXZQYWdlKClcIlxyXG4gICAgPlxyXG4gICAgICA8aSBjbGFzcz1cImJpIGJpLWNhcmV0LWxlZnRcIj48L2k+XHJcbiAgICA8L2E+XHJcbiAgPC9saT5cclxuICA8bGlcclxuICAgIHJvbGU9XCJidXR0b25cIlxyXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGFnZSAnICsgcGcubnVtYmVyXCJcclxuICAgIGNsYXNzPVwicGFnZXNcIlxyXG4gICAgKm5nRm9yPVwibGV0IHBnIG9mIHBhZ2VzXCJcclxuICAgIFtjbGFzcy5hY3RpdmVdPVwicGcubnVtYmVyID09PSBwYWdlXCJcclxuICA+XHJcbiAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cInNlbGVjdFBhZ2UocGcubnVtYmVyKVwiPlxyXG4gICAgICB7eyBwZy50ZXh0IH19XHJcbiAgICA8L2E+XHJcbiAgPC9saT5cclxuICA8bGkgY2xhc3M9XCJyb3RhdC1pY29uXCIgW2NsYXNzLmRpc2FibGVkXT1cIiFjYW5OZXh0KClcIj5cclxuICAgIDxhXHJcbiAgICAgIHJvbGU9XCJidXR0b25cIlxyXG4gICAgICBhcmlhLWxhYmVsPVwiZ28gdG8gbmV4dCBwYWdlXCJcclxuICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXHJcbiAgICAgIChjbGljayk9XCJuZXh0UGFnZSgpXCJcclxuICAgID5cclxuICAgICAgPGkgY2xhc3M9XCJiaSBiaS1jYXJldC1yaWdodFwiPjwvaT5cclxuICAgIDwvYT5cclxuICA8L2xpPlxyXG48L3VsPlxyXG4iXX0=
|
|
@@ -9,14 +9,14 @@ import * as i0 from "@angular/core";
|
|
|
9
9
|
*/
|
|
10
10
|
export class PaginationModule {
|
|
11
11
|
}
|
|
12
|
-
PaginationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
13
|
-
PaginationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.
|
|
12
|
+
PaginationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
13
|
+
PaginationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PaginationModule, declarations: [PaginationComponent], imports: [CommonModule,
|
|
14
14
|
DirectiveModule], exports: [PaginationComponent] });
|
|
15
|
-
PaginationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.
|
|
15
|
+
PaginationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PaginationModule, imports: [[
|
|
16
16
|
CommonModule,
|
|
17
17
|
DirectiveModule
|
|
18
18
|
]] });
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PaginationModule, decorators: [{
|
|
20
20
|
type: NgModule,
|
|
21
21
|
args: [{
|
|
22
22
|
declarations: [PaginationComponent],
|
|
@@ -29,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
29
29
|
]
|
|
30
30
|
}]
|
|
31
31
|
}] });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUduRTs7O0dBR0c7QUFXSCxNQUFNLE9BQU8sZ0JBQWdCOzs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBVFosbUJBQW1CLGFBRWhDLFlBQVk7UUFDWixlQUFlLGFBR2YsbUJBQW1COytHQUdWLGdCQUFnQixZQVJsQjtZQUNQLFlBQVk7WUFDWixlQUFlO1NBQ2hCOzRGQUtVLGdCQUFnQjtrQkFWNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDbkMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFDO3dCQUNOLG1CQUFtQjtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlyZWN0aXZlTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2RpcmVjdGl2ZS5tb2R1bGUnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBAdGl0bGVcclxuICogUGFnaW5hdGlvbiBNb2R1bGVcclxuICovXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbUGFnaW5hdGlvbkNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRGlyZWN0aXZlTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOltcclxuICAgIFBhZ2luYXRpb25Db21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uTW9kdWxlIHsgfVxyXG4iXX0=
|
|
@@ -4,12 +4,12 @@ import { PdftronComponent } from './pdftron/pdftron.component';
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class PdfTronModule {
|
|
6
6
|
}
|
|
7
|
-
PdfTronModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
8
|
-
PdfTronModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.
|
|
9
|
-
PdfTronModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.
|
|
7
|
+
PdfTronModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PdfTronModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
PdfTronModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PdfTronModule, declarations: [PdftronComponent], imports: [CommonModule], exports: [PdftronComponent] });
|
|
9
|
+
PdfTronModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PdfTronModule, imports: [[
|
|
10
10
|
CommonModule
|
|
11
11
|
]] });
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PdfTronModule, decorators: [{
|
|
13
13
|
type: NgModule,
|
|
14
14
|
args: [{
|
|
15
15
|
declarations: [PdftronComponent],
|
|
@@ -21,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
21
21
|
]
|
|
22
22
|
}]
|
|
23
23
|
}] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXRyb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9wZGYtdHJvbi9wZGYtdHJvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBYS9ELE1BQU0sT0FBTyxhQUFhOzsyR0FBYixhQUFhOzRHQUFiLGFBQWEsaUJBUlQsZ0JBQWdCLGFBRTdCLFlBQVksYUFHWixnQkFBZ0I7NEdBR1AsYUFBYSxZQVBmO1lBQ1AsWUFBWTtTQUNiOzRGQUtVLGFBQWE7a0JBVHpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2hDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBQzt3QkFDTixnQkFBZ0I7cUJBQ2pCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUGRmdHJvbkNvbXBvbmVudCB9IGZyb20gJy4vcGRmdHJvbi9wZGZ0cm9uLmNvbXBvbmVudCc7XHJcblxyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbUGRmdHJvbkNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOltcclxuICAgIFBkZnRyb25Db21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZGZUcm9uTW9kdWxlIHsgfVxyXG4iXX0=
|
|
@@ -385,9 +385,9 @@ export class PdftronComponent {
|
|
|
385
385
|
this.transelationSubscrition ? this.transelationSubscrition.unsubscribe() : null;
|
|
386
386
|
}
|
|
387
387
|
}
|
|
388
|
-
PdftronComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
389
|
-
PdftronComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
390
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
388
|
+
PdftronComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PdftronComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.PdftronService }, { token: i2.NuxeoService }, { token: APP_BASE_HREF }, { token: i3.SecurePipe }, { token: i4.TranslationService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Component });
|
|
389
|
+
PdftronComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: PdftronComponent, selector: "app-pdftron", inputs: { editMode: "editMode", actionClicked: "actionClicked", fileTitle: "fileTitle", docId: "docId", DOCUMENT_TYPE: "DOCUMENT_TYPE", fileData: "fileData", fitMode: "fitMode", authHeader: "authHeader", fileURL: "fileURL", correspondance: "correspondance", secrecyProperty: "secrecyProperty", editingType: "editingType", userSignatures: "userSignatures", useOutsideAnotations: "useOutsideAnotations", importedAnotations: "importedAnotations" }, outputs: { onAddingAnotation: "onAddingAnotation", events: "events", SignatureEvent: "SignatureEvent" }, providers: [SecurePipe], viewQueries: [{ propertyName: "viewerRef", first: true, predicate: ["fileViewer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #fileViewer style=\"width: 100%; height: 100%;\"></div>\r\n", styles: [""] });
|
|
390
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PdftronComponent, decorators: [{
|
|
391
391
|
type: Component,
|
|
392
392
|
args: [{
|
|
393
393
|
selector: 'app-pdftron',
|
|
@@ -441,4 +441,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
441
441
|
}], SignatureEvent: [{
|
|
442
442
|
type: Output
|
|
443
443
|
}] } });
|
|
444
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmdHJvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL3BkZnRyb24vcGRmdHJvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL3BkZnRyb24vcGRmdHJvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sU0FBMkIsTUFBTSxvQkFBb0IsQ0FBQztBQUc3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFLeEQ7Ozs7Ozs7Ozs7OztHQVlHO0FBT0gsTUFBTSxPQUFPLGdCQUFnQjtJQTRDM0IsWUFDUyxHQUFzQixFQUNyQixjQUE4QixFQUM5QixLQUFtQixFQUNJLFFBQWdCLEVBQ3ZDLFVBQXNCLEVBQ3RCLGtCQUF1QyxFQUNoQixXQUFXO1FBTm5DLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3JCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ0ksYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUN2QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBcUI7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQUE7UUE1Q25DLGtCQUFhLEdBQUcsS0FBSyxDQUFDLENB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c0JBRE4sS0FBSztnQkFHTixjQUFjO3NCQURiLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBRVAsTUFBTTtzQkFETCxNQUFNO2dCQUVHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgV2ViVmlld2VyLCB7IENvcmVDb250cm9scyB9IGZyb20gJ0BwZGZ0cm9uL3dlYnZpZXdlcic7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZSc7XHJcbmltcG9ydCB7IFBkZnRyb25TZXJ2aWNlIH0gZnJvbSAnLi9wZGZ0cm9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBUFBfQkFTRV9IUkVGIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgU2VjdXJlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL3NlY3VyZS5waXBlJztcclxuaW1wb3J0IHsgVGhyb3dTdG10IH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9Db3JlL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbi8qKlxyXG4gKiBBIHJldXNhYmxlIGZpbGUgdmlld2VyIGJhc2VkIG9uIFBERlRyb24gTGlicmFyeVxyXG4gKiBAdGl0bGVcclxuICogUERGVHJvbiBWaWV3ZXJcclxuICogQGV4YW1wbGVcclxuICogPGFwcC1wZGZ0cm9uXHJcbiAqICAgW2ZpbGVEYXRhXT1cImZpbGVEYXRhXCJcclxuICogICBbZWRpdE1vZGVdPVwiZmFsc2VcIlxyXG4gKiAgIFtkb2NJZF09XCJmaWxlSWRcIlxyXG4gKiAgIFtmaWxlVGl0bGVdPVwiZmlsZS50aXRsZVwiXHJcbiAqID5cclxuICogPC9hcHAtcGRmdHJvbj5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXBkZnRyb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wZGZ0cm9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wZGZ0cm9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbU2VjdXJlUGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZGZ0cm9uQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcclxuICBAVmlld0NoaWxkKCdmaWxlVmlld2VyJykgdmlld2VyUmVmOiBFbGVtZW50UmVmO1xyXG4gIHdlYlZpZXdlckluc3RhbmNlO1xyXG4gIC8qKiBEaXNhYmxlL0VuYWJsZSBBbm5vdGF0aW9uICovXHJcbiAgQElucHV0KClcclxuICBlZGl0TW9kZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBhY3Rpb25DbGlja2VkID0gZmFsc2U7IC8vIHVzZWQgdG8ga25vdyBpZiB0aGVyZSBpcyBhY3Rpb24gY2xpY2tlZCBvdXRzaWRlIHRvIHN0YXJ0IGVkaXQgbW9kZSBvciBub3RcclxuICBpc0RvY3VtZW50TG9hZGluZzogYm9vbGVhbjtcclxuICBpc0ZldGNoaW5nOiBib29sZWFuO1xyXG4gIC8qKiBEb2N1bWVudCB0aXRsZSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgZmlsZVRpdGxlOiBzdHJpbmc7XHJcbiAgLyoqIERvY3VtZW50IElEICovXHJcbiAgQElucHV0KClcclxuICBkb2NJZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgRE9DVU1FTlRfVFlQRSA9ICdhcHBsaWNhdGlvbi9wZGYnO1xyXG4gIEBJbnB1dCgpXHJcbiAgZmlsZURhdGE7XHJcbiAgQElucHV0KClcclxuICBmaXRNb2RlOiAnRml0V2lkdGgnIHwgJ0ZpdFBhZ2UnIHwgJ1pvb20nID0gJ0ZpdFdpZHRoJztcclxuICBASW5wdXQoKVxyXG4gIGF1dGhIZWFkZXI6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIGZpbGVVUkw6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIGNvcnJlc3BvbmRhbmNlO1xyXG5cclxuICBASW5wdXQoKSBzZWNyZWN5UHJvcGVydHk7IC8vIHVzZWQgdG8gYWRkIHdhdGVybWFyayBhY29yZGluZyBjZXJ0YWluIHNlY3JlY3kgbGV2ZWxcclxuICBASW5wdXQoKSBlZGl0aW5nVHlwZTtcclxuICBASW5wdXQoKSB1c2VyU2lnbmF0dXJlcztcclxuXHJcbiAgQElucHV0KCkgdXNlT3V0c2lkZUFub3RhdGlvbnMgPSBmYWxzZTsgLy8gZmxhZ2UgdG8gaW5kaWNhdCBpZiB1c2luZyBvdXQgc2lkZSBhbm90YXRpb25zIG9yIG5vdFxyXG4gIEBJbnB1dCgpIGltcG9ydGVkQW5vdGF0aW9ucyA7IC8vIGltcG9ydGVkIGFub3RhdGlvbnMgZnJvbSBvdXRzaWRlXHJcbiAgQE91dHB1dCgpIG9uQWRkaW5nQW5vdGF0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpOyAvLyB1c2VkIHRvIGV4cG9ydCBhbGwgYW5vdGF0aW9ucyB0byBvdXRzaWRlXHJcbiAgQE91dHB1dCgpXHJcbiAgZXZlbnRzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBTaWduYXR1cmVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTsgLy8gdXNlZCB0byBleHBvcnQgc2lnbmF0dXJlIHRvIG91dHNpZGVcclxuICBmaXJzdFRpbWVMb2FkID0gdHJ1ZTsgLy9mbGFnZSB0byBjb250cm9sIGltcG9ydGluZyBzaWduYXR1cmVzIGluIHRoZSBmaXJzdCB0aW1lIGxvYWQgb25seVxyXG4gIGZpcnN0U2lnbmF0dXJlTG9hZCA9IHRydWU7IC8vIGZsYWdlIHRvIHBhc3MgZmlyc3QgbG9hZCBvZiBpbXBvcnRlZCBzaWduYXR1cmVzIHdpdGhvdXQgZW1pdHRpbmcgdGhlIGV2ZW50IFxyXG4gIG5ld1NpZ25DcmVhdGlvbiA9IGZhbHNlOyAvLyBmbGFnZSB0byBpbmRpY2F0ZSBzaWduYXR1cmUgY3JlYXRpb24gaXMgY3JlYXRlZCBvciBjaG9vc2VkIGZyb20gc3RvcmVkIG9uZXNcclxuICB0cmFuc2VsYXRpb25TdWJzY3JpdGlvbiA6IFN1YnNjcmlwdGlvbjtcclxuICBpc0FyYWJpYztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBwZGZ0cm9uU2VydmljZTogUGRmdHJvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG51eGVvOiBOdXhlb1NlcnZpY2UsXHJcbiAgICBASW5qZWN0KEFQUF9CQVNFX0hSRUYpIHByaXZhdGUgYmFzZUhyZWY6IHN0cmluZyxcclxuICAgIHByaXZhdGUgc2VjdXJlUGlwZTogU2VjdXJlUGlwZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlIDogVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50XHJcbiAgKSB7IH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnRyYW5zZWxhdGlvblN1YnNjcml0aW9uID0gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UuaXNBcmFiaWMuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuaXNBcmFiaWMgPSByZXMgO1xyXG4gICAgfSlcclxuICAgfVxyXG5cclxuICBhc3luYyBuZ0FmdGVyVmlld0luaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5maWxlVGl0bGUuZW5kc1dpdGgoJy5wcHQnKSkge1xyXG4gICAgICB0aGlzLkRPQ1VNRU5UX1RZUEUgPSAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmZpbGVUaXRsZS5lbmRzV2l0aCgnLnBwdHgnKSkge1xyXG4gICAgICB0aGlzLkRPQ1VNRU5UX1RZUEUgPVxyXG4gICAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy5maWxlVGl0bGUuZW5kc1dpdGgoJy5kb2MnKSkge1xyXG4gICAgICB0aGlzLkRPQ1VNRU5UX1RZUEUgPSAnYXBwbGljYXRpb24vbXN3b3JkJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy5maWxlVGl0bGUuZW5kc1dpdGgoJy5kb2N4JykpIHtcclxuICAgICAgdGhpcy5ET0NVTUVOVF9UWVBFID1cclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnO1xyXG4gICAgfVxyXG4gICAgV2ViVmlld2VyKFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogdGhpcy5iYXNlSHJlZiArICcvYXNzZXRzL3BkZnRyb25zJyxcclxuICAgICAgICBmb3JjZUNsaWVudFNpZGVJbml0OiB0cnVlLFxyXG4gICAgICAgIHN0cmVhbWluZzogdHJ1ZSxcclxuICAgICAgICBsaWNlbnNlS2V5OiB0aGlzLmVudmlyb25tZW50LnBkZnRyb25MaWNlbmNlS2V5LFxyXG4gICAgICAgIGFubm90YXRpb25Vc2VyOiB0aGlzLm51eGVvLm51eGVvQ2xpZW50LnVzZXIucHJvcGVydGllcy5maXJzdE5hbWUgKyAnICcgKyB0aGlzLm51eGVvLm51eGVvQ2xpZW50LnVzZXIucHJvcGVydGllcy5sYXN0TmFtZSxcclxuICAgICAgICBkaXNhYmxlZEVsZW1lbnRzOiBbJ2Rvd25sb2FkQnV0dG9uJywgJ3ByaW50QnV0dG9uJ10sXHJcblxyXG4gICAgICB9LFxyXG4gICAgICB0aGlzLnZpZXdlclJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICApLnRoZW4oYXN5bmMgKGluc3RhbmNlKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNBcmFiaWMgPyBpbnN0YW5jZS5zZXRMYW5ndWFnZSgnYXInKSA6IGluc3RhbmNlLnNldExhbmd1YWdlKCdlbicpIDtcclxuICAgICAgdGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZSA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UgPSBpbnN0YW5jZTtcclxuICAgICAgXHJcbiAgICAgIHRoaXMuYWRkUHJpbnRCdXR0b24oKTtcclxuICAgICAgdGhpcy5hZGREb3dubG9hZEJ1dHRvbigpO1xyXG4gICAgICB0aGlzLmltcG9ydFNpZ25hdHVyZSgpO1xyXG4gICAgICB0aGlzLmV4cG9ydGluZ1NpZ25hdHVyZSgpO1xyXG4gICAgICB0aGlzLmRlbGV0ZUFubm90YXRpb24oKTtcclxuICAgICAgdGhpcy5leHBvcnRpbmdTYXZlZFNpZ25hdHVyZSgpO1xyXG4gICAgICBpZih0aGlzLnVzZU91dHNpZGVBbm90YXRpb25zKXtcclxuICAgICAgICB0aGlzLmltcG9ydEFub3RhdGlvbnNGcm9tT3V0c2lkZSgpO1xyXG4gICAgICAgIHRoaXMuZXhwb3J0QW5vdGF0aW9uc1RvT3V0c2lkZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubG9hZERvY3VtZW50KCk7XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbXBvcnRBbm90YXRpb25zRnJvbU91dHNpZGUoKXtcclxuICAgIGNvbnN0IGRvY3VtZW50Vmlld2VyID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXI7XHJcblxyXG4gICAgZG9jdW1lbnRWaWV3ZXIub24oJ2RvY3VtZW50TG9hZGVkJywgKCkgPT4ge1xyXG4gICAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLmFubm90TWFuYWdlci5pbXBvcnRBbm5vdGF0aW9ucyh0aGlzLmltcG9ydGVkQW5vdGF0aW9ucylcclxuICAgIH0pXHJcbiAgICAvLyAudGhlbihhbm5vdGF0aW9ucyA9PiB7XHJcbiAgICAvLyAgIGFubm90YXRpb25zLmZvckVhY2goYW5ub3RhdGlvbiA9PiB7XHJcbiAgICAvLyAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIucmVkcmF3QW5ub3RhdGlvbihhbm5vdGF0aW9uKTtcclxuICAgIC8vICAgfSk7XHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIC8vIGV4Y3RyYWN0IGFsbCBhbm90YXRpb25zIG9uIHRoZSBmaWxlIGFuZCBzZW5kIGl0IG91dCBzaWRlIHRvIGJlIHNhdmVkIGFuZCBsZWF2ZSB0aGUgZmlsZSBhcyBpdCBpcyB3aXRob3V0IGFueSBhbm90YXRpb25zIG9uIGl0XHJcbiAgZXhwb3J0QW5vdGF0aW9uc1RvT3V0c2lkZSgpe1xyXG4gICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIub24oJ2Fubm90YXRpb25DaGFuZ2VkJywgKGFubm90YXRpb25zLCBhY3Rpb24sIHsgaW1wb3J0ZWQgfSkgPT4ge1xyXG4gICAgICBpZiAoaW1wb3J0ZWQpIHJldHVybjtcclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuZXhwb3J0QW5ub3RhdGlvbnMoKS50aGVuKGV4Y3RyYWN0ZWRBbm90YXRpb25zID0+IHtcclxuICAgICAgICB0aGlzLm9uQWRkaW5nQW5vdGF0aW9uLmVtaXQoZXhjdHJhY3RlZEFub3RhdGlvbnMpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaW1wb3J0U2lnbmF0dXJlKCkge1xyXG4gICAgY29uc3QgZG9jdW1lbnRWaWV3ZXIgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlcjtcclxuICAgIGNvbnN0IHNpZ25hdHVyZVRvb2wgPSBkb2N1bWVudFZpZXdlci5nZXRUb29sKCdBbm5vdGF0aW9uQ3JlYXRlU2lnbmF0dXJlJyk7XHJcblxyXG4gICAgZG9jdW1lbnRWaWV3ZXIub24oJ2RvY3VtZW50TG9hZGVkJywgKCkgPT4ge1xyXG4gICAgICBpZih0aGlzLmZpcnN0VGltZUxvYWQpe1xyXG4gICAgICAgIHNpZ25hdHVyZVRvb2wuaW1wb3J0U2lnbmF0dXJlcyhbLi4udGhpcy51c2VyU2lnbmF0dXJlc10pO1xyXG4gICAgICAgIHRoaXMuZmlyc3RUaW1lTG9hZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBcclxuICBleHBvcnRpbmdTYXZlZFNpZ25hdHVyZSgpIHtcclxuICAgIGNvbnN0IGRvY3VtZW50Vmlld2VyID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXI7XHJcbiAgICBjb25zdCBTaWduYXR1cmVDcmVhdGVUb29sID0gZG9jdW1lbnRWaWV3ZXIuZ2V0VG9vbCgnQW5ub3RhdGlvbkNyZWF0ZVNpZ25hdHVyZScpXHJcbiAgICBTaWduYXR1cmVDcmVhdGVUb29sLm9uKCdzaWduYXR1cmVTYXZlZCcsIChhbm5vdGF0aW9uKSA9PiB7XHJcbiAgICAgIGlmKCF0aGlzLmZpcnN0U2lnbmF0dXJlTG9hZCl7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3NpZ25hdHVyZSBzYXZlZCB0cmlnZXJlZCcpO1xyXG4gICAgICAgIHRoaXMubmV3U2lnbkNyZWF0aW9uID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZpcnN0U2lnbmF0dXJlTG9hZCA9IGZhbHNlO1xyXG4gICAgfSk7O1xyXG4gIH1cclxuICBcclxuICBleHBvcnRpbmdTaWduYXR1cmUoKSB7XHJcbiAgICBjb25zdCBkb2N1bWVudFZpZXdlciA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyO1xyXG4gICAgY29uc3QgU2lnbmF0dXJlQ3JlYXRlVG9vbCA9IGRvY3VtZW50Vmlld2VyLmdldFRvb2woJ0Fubm90YXRpb25DcmVhdGVTaWduYXR1cmUnKVxyXG4gICAgU2lnbmF0dXJlQ3JlYXRlVG9vbC5vbignYW5ub3RhdGlvbkFkZGVkJywgKGFubm90YXRpb24pID0+IHtcclxuICAgICAgaWYgKGFubm90YXRpb24gJiYgdGhpcy5uZXdTaWduQ3JlYXRpb24pIHtcclxuICAgICAgICB0aGlzLm5ld1NpZ25DcmVhdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZXh0cmFjdEFub3RhdGlvbihhbm5vdGF0aW9uICwgZG9jdW1lbnRWaWV3ZXIpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGFubm90YXRpb24pXHJcbiAgICAgIH1cclxuICAgIH0pOztcclxuICB9XHJcblxyXG4gIGV4dHJhY3RBbm90YXRpb24oYW5ub3RhdGlvbiAsIGRvY3VtZW50Vmlld2VyKXtcclxuICAgIGlmKGFubm90YXRpb25bJ2ltYWdlJ10pe1xyXG4gICAgICAvLyBjb252ZXJ0IGJhc2U2NCBzaWduYXR1cmUgaW50byBmaWxlIGFuZCBlbWl0IGl0IHRvIG91dCBzaWRlIFxyXG4gICAgICBsZXQgYmFzZTY0SW1nID0gYW5ub3RhdGlvblsnaW1hZ2UnXVsnY3VycmVudFNyYyddO1xyXG4gICAgICB2YXIgYXJyID0gYmFzZTY0SW1nLnNwbGl0KCcsJyksXHJcbiAgICAgIG1pbWUgPSBhcnJbMF0ubWF0Y2goLzooLio/KTsvKVsxXSxcclxuICAgICAgYnN0ciA9IGF0b2IoYXJyWzFdKSwgXHJcbiAgICAgIG4gPSBic3RyLmxlbmd0aCwgXHJcbiAgICAgIHU4YXJyID0gbmV3IFVpbnQ4QXJyYXkobik7XHJcbiAgICAgIHdoaWxlKG4tLSl7XHJcbiAgICAgICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbmFtZSA9IG1pbWUucmVwbGFjZSgnLycgLCAnLicpXHJcbiAgICAgIGxldCBteUZpbGUgPSBuZXcgRmlsZShbdThhcnJdLCAnbXlTaWduYXR1cmUucG5nJywge3R5cGU6bWltZX0pO1xyXG4gICAgICB0aGlzLlNpZ25hdHVyZUV2ZW50LmVtaXQoeyBkYXRhOiBteUZpbGUsIGV2ZW50TmFtZTogJ2V4cG9ydCcgfSk7XHJcblxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuZXh0cmFjdEFubm90YXRpb25TaWduYXR1cmUoYW5ub3RhdGlvbiAsIGRvY3VtZW50Vmlld2VyKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgZXh0cmFjdEFubm90YXRpb25TaWduYXR1cmUoYW5ub3RhdGlvbiwgZG9jVmlld2VyKSB7XHJcbiAgICAvLyBDcmVhdGUgYSBuZXcgQ2FudmFzIHRvIGRyYXcgdGhlIEFubm90YXRpb24gb25cclxuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG4gICAgLy8gUmVmZXJlbmNlIHRoZSBhbm5vdGF0aW9uIGZyb20gdGhlIERvY3VtZW50XHJcbiAgICBjb25zdCBwYWdlTWF0cml4ID0gZG9jVmlld2VyLmdldERvY3VtZW50KCkuZ2V0UGFnZU1hdHJpeChhbm5vdGF0aW9uLlBhZ2VOdW1iZXIpO1xyXG4gICAgLy8gU2V0IHRoZSBoZWlnaHQgJiB3aWR0aCBvZiB0aGUgY2FudmFzIHRvIG1hdGNoIHRoZSBhbm5vdGF0aW9uXHJcbiAgICBjYW52YXMuaGVpZ2h0ID0gYW5ub3RhdGlvbi5IZWlnaHQ7XHJcbiAgICBjYW52YXMud2lkdGggPSBhbm5vdGF0aW9uLldpZHRoO1xyXG4gICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAvLyBUcmFuc2xhdGUgdGhlIEFubm90YXRpb24gdG8gdGhlIHRvcCBUb3AgTGVmdCBDb3JuZXIgb2YgdGhlIENhbnZhcyBpZSAoMCwgMClcclxuICAgIGN0eC50cmFuc2xhdGUoLWFubm90YXRpb24uWCwgLWFubm90YXRpb24uWSk7XHJcbiAgICAvLyBEcmF3IHRoZSBBbm5vdGF0aW9uIG9udG8gdGhlIENhbnZhc1xyXG4gICAgYW5ub3RhdGlvbi5kcmF3KGN0eCwgcGFnZU1hdHJpeCk7XHJcbiAgICAvLyBDb252ZXJ0IHRoZSBDYW52YXMgdG8gYSBCbG9iIE9iamVjdCBmb3IgVXBsb2FkXHJcbiAgICBjYW52YXMudG9CbG9iKChibG9iKSA9PiB7XHJcbiAgICAgIC8vIENhbGwgeW91ciBCbG9iIFN0b3JhZ2UgVXBsb2FkIEZ1bmN0aW9uXHJcbiAgICAgIGxldCBuYW1lID0gYmxvYi50eXBlLnJlcGxhY2UoJy8nICwgJy4nKVxyXG4gICAgICBsZXQgbXlGaWxlID0gbmV3IEZpbGUoW2Jsb2JdLCBuYW1lKTtcclxuICAgICAgdGhpcy5TaWduYXR1cmVFdmVudC5lbWl0KHsgZGF0YTogbXlGaWxlLCBldmVudE5hbWU6ICdleHBvcnQnIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVBbm5vdGF0aW9uKCkge1xyXG4gICAgY29uc3QgZG9jdW1lbnRWaWV3ZXIgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlcjtcclxuICAgIGNvbnN0IFNpZ25hdHVyZUNyZWF0ZVRvb2wgPSBkb2N1bWVudFZpZXdlci5nZXRUb29sKCdBbm5vdGF0aW9uQ3JlYXRlU2lnbmF0dXJlJyk7XHJcbiAgICBTaWduYXR1cmVDcmVhdGVUb29sLm9uKCdzaWduYXR1cmVEZWxldGVkJywgKGFubm90YXRpb24sIGluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCd0aGVyZSB3ZXJlIGFubm90YXRpb25zIGRlbGV0ZWQnKTtcclxuICAgICAgdGhpcy51c2VyU2lnbmF0dXJlcy5zcGxpY2UoaW5kZXggLCAxKTtcclxuICAgICAgdGhpcy5TaWduYXR1cmVFdmVudC5lbWl0KHsgZGF0YTogeyBzaWduYXR1cmU6IGFubm90YXRpb24sIGluZGV4OiBpbmRleCB9LCBldmVudE5hbWU6ICdkZWxldGUnIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGREb3dubG9hZEJ1dHRvbigpIHtcclxuICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2Uuc2V0SGVhZGVySXRlbXMoKGhlYWRlcikgPT4ge1xyXG4gICAgICBoZWFkZXIucHVzaCh7XHJcbiAgICAgICAgdHlwZTogJ2FjdGlvbkJ1dHRvbicsXHJcbiAgICAgICAgaW1nOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIGNsYXNzPVwiYmkgYmktZmlsZS1lYXJtYXJrLWFycm93LWRvd25cIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+IDxwYXRoIGQ9XCJNOC41IDYuNWEuNS41IDAgMCAwLTEgMHYzLjc5M0w2LjM1NCA5LjE0NmEuNS41IDAgMSAwLS43MDguNzA4bDIgMmEuNS41IDAgMCAwIC43MDggMGwyLTJhLjUuNSAwIDAgMC0uNzA4LS43MDhMOC41IDEwLjI5M1Y2LjV6XCIvPiA8cGF0aCBkPVwiTTE0IDE0VjQuNUw5LjUgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJ6TTkuNSAzQTEuNSAxLjUgMCAwIDAgMTEgNC41aDJWMTRhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xaDUuNXYyelwiLz48L3N2Zz4nLFxyXG4gICAgICAgIHRpdGxlOiB0aGlzLmlzQXJhYmljID8gJ9iq2YbYstmK2YQnIDogJ0Rvd25sb2FkJyxcclxuICAgICAgICBvbkNsaWNrOiBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB7IERvY3VtZW50Vmlld2VyLCBBbm5vdGF0aW9uTWFuYWdlciwgU2F2ZU9wdGlvbnMgfSA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuQ29yZUNvbnRyb2xzO1xyXG4gICAgICAgICAgLy8gY29uc3QgeGZkZlN0cmluZyA9IGF3YWl0IEFubm90YXRpb25NYW5hZ2VyLmV4cG9ydEFubm90YXRpb25zKCk7XHJcbiAgICAgICAgICBjb25zdCBzYXZlT3B0aW9ucyA9IFNhdmVPcHRpb25zO1xyXG4gICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgZmlsZW5hbWU6IHRoaXMuY29ycmVzcG9uZGFuY2UudGl0bGUgPyB0aGlzLmNvcnJlc3BvbmRhbmNlLnRpdGxlIDogJ215RG9jdW1lbnQucGRmJyxcclxuICAgICAgICAgICAgLy8geGZkZlN0cmluZyxcclxuICAgICAgICAgICAgZmxhZ3M6IHNhdmVPcHRpb25zLkxJTkVBUklaRUQsXHJcbiAgICAgICAgICAgIGRvd25sb2FkVHlwZTogJ3BkZidcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgdGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZS5kb3dubG9hZFBkZihvcHRpb25zKTtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzLm5leHQoJ2Rvd25sb2FkJyk7XHJcbiAgICAgICAgICAvLyBsZXQgdXJsID0gdGhpcy5jb3JyZXNwb25kYW5jZS5wcm9wZXJ0aWVzLmNvbnRlbnQuZGF0YTtcclxuICAgICAgICAgIC8vIGxldCBmaWxlTmFtZSA9IHRoaXMuY29ycmVzcG9uZGFuY2UucHJvcGVydGllcy5jb250ZW50Lm5hbWU7XHJcbiAgICAgICAgICAvLyBpZiAodXJsICYmIGZpbGVOYW1lKSB7XHJcbiAgICAgICAgICAvLyAgIGxldCBzYWZlVXJsID0gdGhpcy5zZWN1cmVQaXBlLnRyYW5zZm9ybSh1cmwpO1xyXG4gICAgICAgICAgLy8gICBzYWZlVXJsLnN1YnNjcmliZSgodXJsOiBhbnkpID0+IHtcclxuICAgICAgICAgIC8vICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgLy8gICAgIGxpbmsuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgICAgICAgIC8vICAgICBsaW5rLmhyZWYgPSB1cmwuY2hhbmdpbmdUaGlzQnJlYWtzQXBwbGljYXRpb25TZWN1cml0eTtcclxuICAgICAgICAgIC8vICAgICBsaW5rLmRvd25sb2FkID0gZmlsZU5hbWU7XHJcbiAgICAgICAgICAvLyAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgICAgICAgIC8vICAgICBsaW5rLmNsaWNrKCk7XHJcbiAgICAgICAgICAvLyAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuICAgICAgICAgIC8vICAgICB0aGlzLmV2ZW50cy5uZXh0KCdkb3dubG9hZCcpO1xyXG4gICAgICAgICAgLy8gICB9KTtcclxuICAgICAgICAgIC8vIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkUHJpbnRCdXR0b24oKSB7XHJcbiAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLnNldEhlYWRlckl0ZW1zKChoZWFkZXIpID0+IHtcclxuICAgICAgaGVhZGVyLnB1c2goe1xyXG4gICAgICAgIHR5cGU6ICdhY3Rpb25CdXR0b24nLFxyXG4gICAgICAgIGltZzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2FiYjBjNDt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmljb24gLSBoZWFkZXIgLSBwcmludCAtIGxpbmU8L3RpdGxlPjxwYXRoIGNsYXNzPVwiY2xzLTFcIiBkPVwiTTIwLDZIMThWMkg2VjZINEEyLDIsMCwwLDAsMiw4djlhMiwyLDAsMCwwLDIsMkg2djNIMThWMTloMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDIwLDZaTTgsNGg4VjZIOFptOCwxNkg4VjE2aDhabTQtM0gxOFYxNEg2djNINFY4SDIwWm0tNC03aDJ2MkgxNlptLTMsMGgydjJIMTNaXCI+PC9wYXRoPjwvc3ZnPicsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMuaXNBcmFiaWMgPyBcIti32KjYp9i52KlcIiA6ICdQcmludCcsXHJcbiAgICAgICAgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZS5wcmludCgpO1xyXG4gICAgICAgICAgdGhpcy5ldmVudHMubmV4dCgncHJpbnQnKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkV2F0ZXJtYXJrKCkge1xyXG4gICAgY29uc3QgdXNlcmluZm8gPSB0aGlzLm51eGVvLm51eGVvQ2xpZW50LnVzZXIucHJvcGVydGllcztcclxuICAgIHRoaXMucGRmdHJvblNlcnZpY2UuYWRkV2F0ZXJtYXJrKFxyXG4gICAgICBgJHt1c2VyaW5mby51c2VybmFtZX0gICAgYFxyXG4gICAgICAvLyBgJHt1c2VyaW5mby5maXJzdE5hbWV9ICR7XHJcbiAgICAgIC8vICAgdXNlcmluZm8ubGFzdE5hbWVcclxuICAgICAgLy8gfSBgXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbG9hZERvY3VtZW50KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLndlYlZpZXdlckluc3RhbmNlIHx8ICghdGhpcy5maWxlRGF0YSAmJiAhdGhpcy5maWxlVVJMKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IGRvY1ZpZXdlciwgYW5ub3RNYW5hZ2VyLCBBbm5vdGF0aW9ucyB9ID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZTtcclxuICAgIGRvY1ZpZXdlci5vbignZG9jdW1lbnRMb2FkZWQnLCAoKSA9PiB7XHJcbiAgICAgIGxldCBmaXRNb2RlID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5GaXRNb2RlLkZpdFdpZHRoO1xyXG4gICAgICBpZiAodGhpcy5maXRNb2RlID09PSAnRml0UGFnZScpIHtcclxuICAgICAgICBmaXRNb2RlID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5GaXRNb2RlLkZpdFBhZ2U7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5maXRNb2RlID09PSAnWm9vbScpIHtcclxuICAgICAgICBmaXRNb2RlID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5GaXRNb2RlLlpvb207XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5zZXRGaXRNb2RlKGZpdE1vZGUpO1xyXG4gICAgfSk7XHJcbiAgICBpZiAoIXRoaXMuZWRpdE1vZGUpIHtcclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuc2V0UmVhZE9ubHkodHJ1ZSk7XHJcbiAgICAgIC8vIGluc3RhbmNlLmVuYWJsZVRvb2xzKFtdKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpbGVVUkwgJiYgdGhpcy5maWxlVVJMLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLmxvYWREb2N1bWVudCh0aGlzLmZpbGVVUkwsIHtcclxuICAgICAgICB4b2RzdHJlYW1pbmc6dHJ1ZSxcclxuICAgICAgICBjdXN0b21IZWFkZXJzOiB7XHJcbiAgICAgICAgICBBdXRob3JpemF0aW9uOiB0aGlzLmF1dGhIZWFkZXIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5sb2FkRG9jdW1lbnQoXHJcbiAgICAgICAgbmV3IEJsb2IoW25ldyBVaW50OEFycmF5KHRoaXMuZmlsZURhdGEpXSwgeyB0eXBlOiB0aGlzLkRPQ1VNRU5UX1RZUEUgfSksXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZmlsZW5hbWU6IHRoaXMuZmlsZVRpdGxlLFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzRmV0Y2hpbmcgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLmNvcnJlc3BvbmRhbmNlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgLy8gaWYgd2UgbmVlZCB0byBjaGVjayBvbiBzZWNyZWN5IGxldmVsIGZvciBhZGRpbmcgd2F0ZXIgbWFyayBvciBub3QgXHJcbiAgICAgIGlmICh0aGlzLmVudmlyb25tZW50LmVuYWJsZVZpZXdlcldhdGVyTWFyayAmJiB0aGlzLnNlY3JlY3lQcm9wZXJ0eSkge1xyXG4gICAgICAgIC8vIGNoZWNrIGZvciBzZWNyZWN5IGxldmVsIGJlZm9yIGFkZGluZyB3YXRlcm1hcmtcclxuICAgICAgICBpZiAodGhpcy5jb3JyZXNwb25kYW5jZS5wcm9wZXJ0aWVzW3RoaXMuc2VjcmVjeVByb3BlcnR5XSAmJiB0aGlzLmNvcnJlc3BvbmRhbmNlLnByb3BlcnRpZXNbdGhpcy5zZWNyZWN5UHJvcGVydHldICE9PSAnTm9ybWFsJykge1xyXG4gICAgICAgICAgdGhpcy5hZGRXYXRlcm1hcmsoKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmICh0aGlzLmVudmlyb25tZW50LmVuYWJsZVZpZXdlcldhdGVyTWFyayAmJiAhdGhpcy5zZWNyZWN5UHJvcGVydHkpIHtcclxuICAgICAgICB0aGlzLmFkZFdhdGVybWFyaygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBleHBvcnRBc0Jsb2IoKTogUHJvbWlzZTxCbG9iPiB7XHJcbiAgICBjb25zdCBkb2MgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlci5nZXREb2N1bWVudCgpO1xyXG4gICAgY29uc3QgeGZkZlN0cmluZyA9XHJcbiAgICAgIGF3YWl0IHRoaXMud2ViVmlld2VySW5zdGFuY2UuYW5ub3RNYW5hZ2VyLmV4cG9ydEFubm90YXRpb25zKCk7XHJcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgZG9jLmdldEZpbGVEYXRhKHtcclxuICAgICAgLy8gc2F2ZXMgdGhlIGRvY3VtZW50IHdpdGggYW5ub3RhdGlvbnMgaW4gaXRcclxuICAgICAgeGZkZlN0cmluZyxcclxuICAgIH0pO1xyXG4gICAgY29uc3QgYXJyID0gbmV3IFVpbnQ4QXJyYXkoZGF0YSk7XHJcbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2Fycl0sIHsgdHlwZTogdGhpcy5ET0NVTUVOVF9UWVBFIH0pO1xyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShibG9iKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUVkaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuYWN0aW9uQ2xpY2tlZCkge1xyXG4gICAgICAvLyBhY3Rpb24gY2xpY2tlZCBpcyBub3QgY2xpY2tlZCB0aGVuIG5vIHVwZGF0ZSBtb2RlIG9wZW5lZFxyXG4gICAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRpc2FibGVFbGVtZW50cyhbXHJcbiAgICAgICAgJ3Rvb2xiYXJHcm91cC1TaGFwZXMnLFxyXG4gICAgICAgICd0b29sYmFyR3JvdXAtRWRpdCcsXHJcbiAgICAgICAgJ3Rvb2xiYXJHcm91cC1JbnNlcnQnLFxyXG4gICAgICAgICd0b29sYmFyR3JvdXAtQW5ub3RhdGUnLFxyXG4gICAgICBdKTtcclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuc2V0UmVhZE9ubHkodHJ1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBlZGl0IG1vZGUgb3BlbmVkIGFuZCBtdXN0IGJlIHdoZW4gYWN0aW9uIGlzIGNsaWNrZWRcclxuICAgICAgaWYgKHRoaXMuZWRpdGluZ1R5cGUpIHtcclxuICAgICAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRpc2FibGVFbGVtZW50cyhbXHJcbiAgICAgICAgICAndG9vbGJhckdyb3VwLVNoYXBlcycsXHJcbiAgICAgICAgICAndG9vbGJhckdyb3VwLUVkaXQnLFxyXG4gICAgICAgICAgJ3Rvb2xiYXJHcm91cC1JbnNlcnQnLFxyXG4gICAgICAgICAgJ3Rvb2xiYXJHcm91cC1Bbm5vdGF0ZScsXHJcbiAgICAgICAgXSk7XHJcbiAgICAgICAgbGV0IGdyb3VwIDtcclxuICAgICAgICBpZih0aGlzLmVkaXRpbmdUeXBlID09PSAnc2lnbkRvYycpe1xyXG4gICAgICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5lbmFibGVFbGVtZW50cyhbXHJcbiAgICAgICAgICAgICd0b29sYmFyR3JvdXAtSW5zZXJ0J1xyXG4gICAgICAgICAgXSk7XHJcblxyXG4gICAgICAgIH1lbHNlIGlmKHRoaXMuZWRpdGluZ1R5cGUgPT09ICdhbm5vdGF0ZScpe1xyXG4gICAgICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5lbmFibGVFbGVtZW50cyhbXHJcbiAgICAgICAgICAgICd0b29sYmFyR3JvdXAtU2hhcGVzJyxcclxuICAgICAgICAgICAgJ3Rvb2xiYXJHcm91cC1FZGl0JyxcclxuICAgICAgICAgICAgJ3Rvb2xiYXJHcm91cC1Bbm5vdGF0ZScsXHJcbiAgICAgICAgICBdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5lbmFibGVFbGVtZW50cyhbXHJcbiAgICAgICAgICAndG9vbGJhckdyb3VwLVNoYXBlcycsXHJcbiAgICAgICAgICAndG9vbGJhckdyb3VwLUVkaXQnLFxyXG4gICAgICAgICAgJ3Rvb2xiYXJHcm91cC1JbnNlcnQnLFxyXG4gICAgICAgICAgJ3Rvb2xiYXJHcm91cC1Bbm5vdGF0ZScsXHJcbiAgICAgICAgXSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuc2V0UmVhZE9ubHkoZmFsc2UpO1xyXG4gICAgICAvLyB0aGlzLndlYlZpZXdlckluc3RhbmNlLnNldFRvb2xiYXJHcm91cCgndG9vbGJhckdyb3VwLUFubm90YXRlJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy53ZWJWaWV3ZXJJbnN0YW5jZSkge1xyXG4gICAgICB0aGlzLnRvZ2dsZUVkaXQoKTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGNoYW5nZXMudXJsRmlsZUNvbnRlbnQgJiZcclxuICAgICAgICBjaGFuZ2VzLnVybEZpbGVDb250ZW50LnByZXZpb3VzVmFsdWUgJiZcclxuICAgICAgICBjaGFuZ2VzLnVybEZpbGVDb250ZW50LnByZXZpb3VzVmFsdWUgIT09XHJcbiAgICAgICAgY2hhbmdlcy51cmxGaWxlQ29udGVudC5jdXJyZW50VmFsdWVcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5uZ09uRGVzdHJveSgpO1xyXG4gICAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBkZlRyb25FdmVudChldmVudCkge1xyXG4gICAgaWYgKHRoaXNbZXZlbnQuYWN0aW9uXSkge1xyXG4gICAgICAvLyBtZXRob2QgZXhpc3RzIGluIHRoZSBjb21wb25lbnRcclxuICAgICAgLy8gIHRoaXNbZXZlbnQuYWN0aW9uXShldmVudC5wYXJhbXMpOyAvLyBjYWxsIGl0XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLndlYlZpZXdlckluc3RhbmNlKSB7XHJcbiAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UuY2xvc2VEb2N1bWVudCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdkb2N1bWVudCBjbG9zZWQhJyk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnBkZnRyb25TZXJ2aWNlLmluc3RhbmNlID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRyYW5zZWxhdGlvblN1YnNjcml0aW9uID8gdGhpcy50cmFuc2VsYXRpb25TdWJzY3JpdGlvbi51bnN1YnNjcmliZSgpIDogbnVsbDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAjZmlsZVZpZXdlciBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7XCI+PC9kaXY+XHJcbiJdfQ==
|
|
444
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmdHJvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL3BkZnRyb24vcGRmdHJvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL3BkZnRyb24vcGRmdHJvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sU0FBMkIsTUFBTSxvQkFBb0IsQ0FBQztBQUc3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFLeEQ7Ozs7Ozs7Ozs7OztHQVlHO0FBT0gsTUFBTSxPQUFPLGdCQUFnQjtJQTRDM0IsWUFDUyxHQUFzQixFQUNyQixjQUE4QixFQUM5QixLQUFtQixFQUNJLFFBQWdCLEVBQ3ZDLFVBQXNCLEVBQ3RCLGtCQUF1QyxFQUNoQixXQUFXO1FBTm5DLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3JCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ0ksYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUN2QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBcUI7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQUE7UUE1Q25DLGtCQUFhLEdBQUcsS0FBSyxDQUFDLENB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c0JBRE4sS0FBSztnQkFHTixjQUFjO3NCQURiLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBRVAsTUFBTTtzQkFETCxNQUFNO2dCQUVHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgV2ViVmlld2VyLCB7IENvcmVDb250cm9scyB9IGZyb20gJ0BwZGZ0cm9uL3dlYnZpZXdlcic7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZSc7XHJcbmltcG9ydCB7IFBkZnRyb25TZXJ2aWNlIH0gZnJvbSAnLi9wZGZ0cm9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBUFBfQkFTRV9IUkVGIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgU2VjdXJlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL3NlY3VyZS5waXBlJztcclxuaW1wb3J0IHsgVGhyb3dTdG10IH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9Db3JlL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbi8qKlxyXG4gKiBBIHJldXNhYmxlIGZpbGUgdmlld2VyIGJhc2VkIG9uIFBERlRyb24gTGlicmFyeVxyXG4gKiBAdGl0bGVcclxuICogUERGVHJvbiBWaWV3ZXJcclxuICogQGV4YW1wbGVcclxuICogPGFwcC1wZGZ0cm9uXHJcbiAqICAgW2ZpbGVEYXRhXT1cImZpbGVEYXRhXCJcclxuICogICBbZWRpdE1vZGVdPVwiZmFsc2VcIlxyXG4gKiAgIFtkb2NJZF09XCJmaWxlSWRcIlxyXG4gKiAgIFtmaWxlVGl0bGVdPVwiZmlsZS50aXRsZVwiXHJcbiAqID5cclxuICogPC9hcHAtcGRmdHJvbj5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXBkZnRyb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wZGZ0cm9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wZGZ0cm9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbU2VjdXJlUGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZGZ0cm9uQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcclxuICBAVmlld0NoaWxkKCdmaWxlVmlld2VyJykgdmlld2VyUmVmOiBFbGVtZW50UmVmO1xyXG4gIHdlYlZpZXdlckluc3RhbmNlO1xyXG4gIC8qKiBEaXNhYmxlL0VuYWJsZSBBbm5vdGF0aW9uICovXHJcbiAgQElucHV0KClcclxuICBlZGl0TW9kZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBhY3Rpb25DbGlja2VkID0gZmFsc2U7IC8vIHVzZWQgdG8ga25vdyBpZiB0aGVyZSBpcyBhY3Rpb24gY2xpY2tlZCBvdXRzaWRlIHRvIHN0YXJ0IGVkaXQgbW9kZSBvciBub3RcclxuICBpc0RvY3VtZW50TG9hZGluZzogYm9vbGVhbjtcclxuICBpc0ZldGNoaW5nOiBib29sZWFuO1xyXG4gIC8qKiBEb2N1bWVudCB0aXRsZSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgZmlsZVRpdGxlOiBzdHJpbmc7XHJcbiAgLyoqIERvY3VtZW50IElEICovXHJcbiAgQElucHV0KClcclxuICBkb2NJZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgRE9DVU1FTlRfVFlQRSA9ICdhcHBsaWNhdGlvbi9wZGYnO1xyXG4gIEBJbnB1dCgpXHJcbiAgZmlsZURhdGE7XHJcbiAgQElucHV0KClcclxuICBmaXRNb2RlOiAnRml0V2lkdGgnIHwgJ0ZpdFBhZ2UnIHwgJ1pvb20nID0gJ0ZpdFdpZHRoJztcclxuICBASW5wdXQoKVxyXG4gIGF1dGhIZWFkZXI6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIGZpbGVVUkw6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIGNvcnJlc3BvbmRhbmNlO1xyXG5cclxuICBASW5wdXQoKSBzZWNyZWN5UHJvcGVydHk7IC8vIHVzZWQgdG8gYWRkIHdhdGVybWFyayBhY29yZGluZyBjZXJ0YWluIHNlY3JlY3kgbGV2ZWxcclxuICBASW5wdXQoKSBlZGl0aW5nVHlwZTtcclxuICBASW5wdXQoKSB1c2VyU2lnbmF0dXJlcztcclxuXHJcbiAgQElucHV0KCkgdXNlT3V0c2lkZUFub3RhdGlvbnMgPSBmYWxzZTsgLy8gZmxhZ2UgdG8gaW5kaWNhdCBpZiB1c2luZyBvdXQgc2lkZSBhbm90YXRpb25zIG9yIG5vdFxyXG4gIEBJbnB1dCgpIGltcG9ydGVkQW5vdGF0aW9ucyA7IC8vIGltcG9ydGVkIGFub3RhdGlvbnMgZnJvbSBvdXRzaWRlXHJcbiAgQE91dHB1dCgpIG9uQWRkaW5nQW5vdGF0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpOyAvLyB1c2VkIHRvIGV4cG9ydCBhbGwgYW5vdGF0aW9ucyB0byBvdXRzaWRlXHJcbiAgQE91dHB1dCgpXHJcbiAgZXZlbnRzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBTaWduYXR1cmVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTsgLy8gdXNlZCB0byBleHBvcnQgc2lnbmF0dXJlIHRvIG91dHNpZGVcclxuICBmaXJzdFRpbWVMb2FkID0gdHJ1ZTsgLy9mbGFnZSB0byBjb250cm9sIGltcG9ydGluZyBzaWduYXR1cmVzIGluIHRoZSBmaXJzdCB0aW1lIGxvYWQgb25seVxyXG4gIGZpcnN0U2lnbmF0dXJlTG9hZCA9IHRydWU7IC8vIGZsYWdlIHRvIHBhc3MgZmlyc3QgbG9hZCBvZiBpbXBvcnRlZCBzaWduYXR1cmVzIHdpdGhvdXQgZW1pdHRpbmcgdGhlIGV2ZW50IFxyXG4gIG5ld1NpZ25DcmVhdGlvbiA9IGZhbHNlOyAvLyBmbGFnZSB0byBpbmRpY2F0ZSBzaWduYXR1cmUgY3JlYXRpb24gaXMgY3JlYXRlZCBvciBjaG9vc2VkIGZyb20gc3RvcmVkIG9uZXNcclxuICB0cmFuc2VsYXRpb25TdWJzY3JpdGlvbiA6IFN1YnNjcmlwdGlvbjtcclxuICBpc0FyYWJpYztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBwZGZ0cm9uU2VydmljZTogUGRmdHJvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG51eGVvOiBOdXhlb1NlcnZpY2UsXHJcbiAgICBASW5qZWN0KEFQUF9CQVNFX0hSRUYpIHByaXZhdGUgYmFzZUhyZWY6IHN0cmluZyxcclxuICAgIHByaXZhdGUgc2VjdXJlUGlwZTogU2VjdXJlUGlwZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlIDogVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50XHJcbiAgKSB7IH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnRyYW5zZWxhdGlvblN1YnNjcml0aW9uID0gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UuaXNBcmFiaWMuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuaXNBcmFiaWMgPSByZXMgO1xyXG4gICAgfSlcclxuICAgfVxyXG5cclxuICBhc3luYyBuZ0FmdGVyVmlld0luaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5maWxlVGl0bGUuZW5kc1dpdGgoJy5wcHQnKSkge1xyXG4gICAgICB0aGlzLkRPQ1VNRU5UX1RZUEUgPSAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmZpbGVUaXRsZS5lbmRzV2l0aCgnLnBwdHgnKSkge1xyXG4gICAgICB0aGlzLkRPQ1VNRU5UX1RZUEUgPVxyXG4gICAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy5maWxlVGl0bGUuZW5kc1dpdGgoJy5kb2MnKSkge1xyXG4gICAgICB0aGlzLkRPQ1VNRU5UX1RZUEUgPSAnYXBwbGljYXRpb24vbXN3b3JkJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy5maWxlVGl0bGUuZW5kc1dpdGgoJy5kb2N4JykpIHtcclxuICAgICAgdGhpcy5ET0NVTUVOVF9UWVBFID1cclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnO1xyXG4gICAgfVxyXG4gICAgV2ViVmlld2VyKFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogdGhpcy5iYXNlSHJlZiArICcvYXNzZXRzL3BkZnRyb25zJyxcclxuICAgICAgICBmb3JjZUNsaWVudFNpZGVJbml0OiB0cnVlLFxyXG4gICAgICAgIHN0cmVhbWluZzogdHJ1ZSxcclxuICAgICAgICBsaWNlbnNlS2V5OiB0aGlzLmVudmlyb25tZW50LnBkZnRyb25MaWNlbmNlS2V5LFxyXG4gICAgICAgIGFubm90YXRpb25Vc2VyOiB0aGlzLm51eGVvLm51eGVvQ2xpZW50LnVzZXIucHJvcGVydGllcy5maXJzdE5hbWUgKyAnICcgKyB0aGlzLm51eGVvLm51eGVvQ2xpZW50LnVzZXIucHJvcGVydGllcy5sYXN0TmFtZSxcclxuICAgICAgICBkaXNhYmxlZEVsZW1lbnRzOiBbJ2Rvd25sb2FkQnV0dG9uJywgJ3ByaW50QnV0dG9uJ10sXHJcblxyXG4gICAgICB9LFxyXG4gICAgICB0aGlzLnZpZXdlclJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICApLnRoZW4oYXN5bmMgKGluc3RhbmNlKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNBcmFiaWMgPyBpbnN0YW5jZS5zZXRMYW5ndWFnZSgnYXInKSA6IGluc3RhbmNlLnNldExhbmd1YWdlKCdlbicpIDtcclxuICAgICAgdGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZSA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UgPSBpbnN0YW5jZTtcclxuICAgICAgXHJcbiAgICAgIHRoaXMuYWRkUHJpbnRCdXR0b24oKTtcclxuICAgICAgdGhpcy5hZGREb3dubG9hZEJ1dHRvbigpO1xyXG4gICAgICB0aGlzLmltcG9ydFNpZ25hdHVyZSgpO1xyXG4gICAgICB0aGlzLmV4cG9ydGluZ1NpZ25hdHVyZSgpO1xyXG4gICAgICB0aGlzLmRlbGV0ZUFubm90YXRpb24oKTtcclxuICAgICAgdGhpcy5leHBvcnRpbmdTYXZlZFNpZ25hdHVyZSgpO1xyXG4gICAgICBpZih0aGlzLnVzZU91dHNpZGVBbm90YXRpb25zKXtcclxuICAgICAgICB0aGlzLmltcG9ydEFub3RhdGlvbnNGcm9tT3V0c2lkZSgpO1xyXG4gICAgICAgIHRoaXMuZXhwb3J0QW5vdGF0aW9uc1RvT3V0c2lkZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubG9hZERvY3VtZW50KCk7XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbXBvcnRBbm90YXRpb25zRnJvbU91dHNpZGUoKXtcclxuICAgIGNvbnN0IGRvY3VtZW50Vmlld2VyID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXI7XHJcblxyXG4gICAgZG9jdW1lbnRWaWV3ZXIub24oJ2RvY3VtZW50TG9hZGVkJywgKCkgPT4ge1xyXG4gICAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLmFubm90TWFuYWdlci5pbXBvcnRBbm5vdGF0aW9ucyh0aGlzLmltcG9ydGVkQW5vdGF0aW9ucylcclxuICAgIH0pXHJcbiAgICAvLyAudGhlbihhbm5vdGF0aW9ucyA9PiB7XHJcbiAgICAvLyAgIGFubm90YXRpb25zLmZvckVhY2goYW5ub3RhdGlvbiA9PiB7XHJcbiAgICAvLyAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIucmVkcmF3QW5ub3RhdGlvbihhbm5vdGF0aW9uKTtcclxuICAgIC8vICAgfSk7XHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIC8vIGV4Y3RyYWN0IGFsbCBhbm90YXRpb25zIG9uIHRoZSBmaWxlIGFuZCBzZW5kIGl0IG91dCBzaWRlIHRvIGJlIHNhdmVkIGFuZCBsZWF2ZSB0aGUgZmlsZSBhcyBpdCBpcyB3aXRob3V0IGFueSBhbm90YXRpb25zIG9uIGl0XHJcbiAgZXhwb3J0QW5vdGF0aW9uc1RvT3V0c2lkZSgpe1xyXG4gICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIub24oJ2Fubm90YXRpb25DaGFuZ2VkJywgKGFubm90YXRpb25zLCBhY3Rpb24sIHsgaW1wb3J0ZWQgfSkgPT4ge1xyXG4gICAgICBpZiAoaW1wb3J0ZWQpIHJldHVybjtcclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuZXhwb3J0QW5ub3RhdGlvbnMoKS50aGVuKGV4Y3RyYWN0ZWRBbm90YXRpb25zID0+IHtcclxuICAgICAgICB0aGlzLm9uQWRkaW5nQW5vdGF0aW9uLmVtaXQoZXhjdHJhY3RlZEFub3RhdGlvbnMpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaW1wb3J0U2lnbmF0dXJlKCkge1xyXG4gICAgY29uc3QgZG9jdW1lbnRWaWV3ZXIgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlcjtcclxuICAgIGNvbnN0IHNpZ25hdHVyZVRvb2wgPSBkb2N1bWVudFZpZXdlci5nZXRUb29sKCdBbm5vdGF0aW9uQ3JlYXRlU2lnbmF0dXJlJyk7XHJcblxyXG4gICAgZG9jdW1lbnRWaWV3ZXIub24oJ2RvY3VtZW50TG9hZGVkJywgKCkgPT4ge1xyXG4gICAgICBpZih0aGlzLmZpcnN0VGltZUxvYWQpe1xyXG4gICAgICAgIHNpZ25hdHVyZVRvb2wuaW1wb3J0U2lnbmF0dXJlcyhbLi4udGhpcy51c2VyU2lnbmF0dXJlc10pO1xyXG4gICAgICAgIHRoaXMuZmlyc3RUaW1lTG9hZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBcclxuICBleHBvcnRpbmdTYXZlZFNpZ25hdHVyZSgpIHtcclxuICAgIGNvbnN0IGRvY3VtZW50Vmlld2VyID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXI7XHJcbiAgICBjb25zdCBTaWduYXR1cmVDcmVhdGVUb29sID0gZG9jdW1lbnRWaWV3ZXIuZ2V0VG9vbCgnQW5ub3RhdGlvbkNyZWF0ZVNpZ25hdHVyZScpXHJcbiAgICBTaWduYXR1cmVDcmVhdGVUb29sLm9uKCdzaWduYXR1cmVTYXZlZCcsIChhbm5vdGF0aW9uKSA9PiB7XHJcbiAgICAgIGlmKCF0aGlzLmZpcnN0U2lnbmF0dXJlTG9hZCl7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3NpZ25hdHVyZSBzYXZlZCB0cmlnZXJlZCcpO1xyXG4gICAgICAgIHRoaXMubmV3U2lnbkNyZWF0aW9uID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZpcnN0U2lnbmF0dXJlTG9hZCA9IGZhbHNlO1xyXG4gICAgfSk7O1xyXG4gIH1cclxuICBcclxuICBleHBvcnRpbmdTaWduYXR1cmUoKSB7XHJcbiAgICBjb25zdCBkb2N1bWVudFZpZXdlciA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyO1xyXG4gICAgY29uc3QgU2lnbmF0dXJlQ3JlYXRlVG9vbCA9IGRvY3VtZW50Vmlld2VyLmdldFRvb2woJ0Fubm90YXRpb25DcmVhdGVTaWduYXR1cmUnKVxyXG4gICAgU2lnbmF0dXJlQ3JlYXRlVG9vbC5vbignYW5ub3RhdGlvbkFkZGVkJywgKGFubm90YXRpb24pID0+IHtcclxuICAgICAgaWYgKGFubm90YXRpb24gJiYgdGhpcy5uZXdTaWduQ3JlYXRpb24pIHtcclxuICAgICAgICB0aGlzLm5ld1NpZ25DcmVhdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZXh0cmFjdEFub3RhdGlvbihhbm5vdGF0aW9uICwgZG9jdW1lbnRWaWV3ZXIpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGFubm90YXRpb24pXHJcbiAgICAgIH1cclxuICAgIH0pOztcclxuICB9XHJcblxyXG4gIGV4dHJhY3RBbm90YXRpb24oYW5ub3RhdGlvbiAsIGRvY3VtZW50Vmlld2VyKXtcclxuICAgIGlmKGFubm90YXRpb25bJ2ltYWdlJ10pe1xyXG4gICAgICAvLyBjb252ZXJ0IGJhc2U2NCBzaWduYXR1cmUgaW50byBmaWxlIGFuZCBlbWl0IGl0IHRvIG91dCBzaWRlIFxyXG4gICAgICBsZXQgYmFzZTY0SW1nID0gYW5ub3RhdGlvblsnaW1hZ2UnXVsnY3VycmVudFNyYyddO1xyXG4gICAgICB2YXIgYXJyID0gYmFzZTY0SW1nLnNwbGl0KCcsJyksXHJcbiAgICAgIG1pbWUgPSBhcnJbMF0ubWF0Y2goLzooLio/KTsvKVsxXSxcclxuICAgICAgYnN0ciA9IGF0b2IoYXJyWzFdKSwgXHJcbiAgICAgIG4gPSBic3RyLmxlbmd0aCwgXHJcbiAgICAgIHU4YXJyID0gbmV3IFVpbnQ4QXJyYXkobik7XHJcbiAgICAgIHdoaWxlKG4tLSl7XHJcbiAgICAgICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbmFtZSA9IG1pbWUucmVwbGFjZSgnLycgLCAnLicpXHJcbiAgICAgIGxldCBteUZpbGUgPSBuZXcgRmlsZShbdThhcnJdLCAnbXlTaWduYXR1cmUucG5nJywge3R5cGU6bWltZX0pO1xyXG4gICAgICB0aGlzLlNpZ25hdHVyZUV2ZW50LmVtaXQoeyBkYXRhOiBteUZpbGUsIGV2ZW50TmFtZTogJ2V4cG9ydCcgfSk7XHJcblxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuZXh0cmFjdEFubm90YXRpb25TaWduYXR1cmUoYW5ub3RhdGlvbiAsIGRvY3VtZW50Vmlld2VyKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgZXh0cmFjdEFubm90YXRpb25TaWduYXR1cmUoYW5ub3RhdGlvbiwgZG9jVmlld2VyKSB7XHJcbiAgICAvLyBDcmVhdGUgYSBuZXcgQ2FudmFzIHRvIGRyYXcgdGhlIEFubm90YXRpb24gb25cclxuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG4gICAgLy8gUmVmZXJlbmNlIHRoZSBhbm5vdGF0aW9uIGZyb20gdGhlIERvY3VtZW50XHJcbiAgICBjb25zdCBwYWdlTWF0cml4ID0gZG9jVmlld2VyLmdldERvY3VtZW50KCkuZ2V0UGFnZU1hdHJpeChhbm5vdGF0aW9uLlBhZ2VOdW1iZXIpO1xyXG4gICAgLy8gU2V0IHRoZSBoZWlnaHQgJiB3aWR0aCBvZiB0aGUgY2FudmFzIHRvIG1hdGNoIHRoZSBhbm5vdGF0aW9uXHJcbiAgICBjYW52YXMuaGVpZ2h0ID0gYW5ub3RhdGlvbi5IZWlnaHQ7XHJcbiAgICBjYW52YXMud2lkdGggPSBhbm5vdGF0aW9uLldpZHRoO1xyXG4gICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAvLyBUcmFuc2xhdGUgdGhlIEFubm90YXRpb24gdG8gdGhlIHRvcCBUb3AgTGVmdCBDb3JuZXIgb2YgdGhlIENhbnZhcyBpZSAoMCwgMClcclxuICAgIGN0eC50cmFuc2xhdGUoLWFubm90YXRpb24uWCwgLWFubm90YXRpb24uWSk7XHJcbiAgICAvLyBEcmF3IHRoZSBBbm5vdGF0aW9uIG9udG8gdGhlIENhbnZhc1xyXG4gICAgYW5ub3RhdGlvbi5kcmF3KGN0eCwgcGFnZU1hdHJpeCk7XHJcbiAgICAvLyBDb252ZXJ0IHRoZSBDYW52YXMgdG8gYSBCbG9iIE9iamVjdCBmb3IgVXBsb2FkXHJcbiAgICBjYW52YXMudG9CbG9iKChibG9iKSA9PiB7XHJcbiAgICAgIC8vIENhbGwgeW91ciBCbG9iIFN0b3JhZ2UgVXBsb2FkIEZ1bmN0aW9uXHJcbiAgICAgIGxldCBuYW1lID0gYmxvYi50eXBlLnJlcGxhY2UoJy8nICwgJy4nKVxyXG4gICAgICBsZXQgbXlGaWxlID0gbmV3IEZpbGUoW2Jsb2JdLCBuYW1lKTtcclxuICAgICAgdGhpcy5TaWduYXR1cmVFdmVudC5lbWl0KHsgZGF0YTogbXlGaWxlLCBldmVudE5hbWU6ICdleHBvcnQnIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVBbm5vdGF0aW9uKCkge1xyXG4gICAgY29uc3QgZG9jdW1lbnRWaWV3ZXIgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlcjtcclxuICAgIGNvbnN0IFNpZ25hdHVyZUNyZWF0ZVRvb2wgPSBkb2N1bWVudFZpZXdlci5nZXRUb29sKCdBbm5vdGF0aW9uQ3JlYXRlU2lnbmF0dXJlJyk7XHJcbiAgICBTaWduYXR1cmVDcmVhdGVUb29sLm9uKCdzaWduYXR1cmVEZWxldGVkJywgKGFubm90YXRpb24sIGluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCd0aGVyZSB3ZXJlIGFubm90YXRpb25zIGRlbGV0ZWQnKTtcclxuICAgICAgdGhpcy51c2VyU2lnbmF0dXJlcy5zcGxpY2UoaW5kZXggLCAxKTtcclxuICAgICAgdGhpcy5TaWduYXR1cmVFdmVudC5lbWl0KHsgZGF0YTogeyBzaWduYXR1cmU6IGFubm90YXRpb24sIGluZGV4OiBpbmRleCB9LCBldmVudE5hbWU6ICdkZWxldGUnIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGREb3dubG9hZEJ1dHRvbigpIHtcclxuICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2Uuc2V0SGVhZGVySXRlbXMoKGhlYWRlcikgPT4ge1xyXG4gICAgICBoZWFkZXIucHVzaCh7XHJcbiAgICAgICAgdHlwZTogJ2FjdGlvbkJ1dHRvbicsXHJcbiAgICAgICAgaW1nOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIGNsYXNzPVwiYmkgYmktZmlsZS1lYXJtYXJrLWFycm93LWRvd25cIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+IDxwYXRoIGQ9XCJNOC41IDYuNWEuNS41IDAgMCAwLTEgMHYzLjc5M0w2LjM1NCA5LjE0NmEuNS41IDAgMSAwLS43MDguNzA4bDIgMmEuNS41IDAgMCAwIC43MDggMGwyLTJhLjUuNSAwIDAgMC0uNzA4LS43MDhMOC41IDEwLjI5M1Y2LjV6XCIvPiA8cGF0aCBkPVwiTTE0IDE0VjQuNUw5LjUgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJ6TTkuNSAzQTEuNSAxLjUgMCAwIDAgMTEgNC41aDJWMTRhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xaDUuNXYyelwiLz48L3N2Zz4nLFxyXG4gICAgICAgIHRpdGxlOiB0aGlzLmlzQXJhYmljID8gJ9iq2YbYstmK2YQnIDogJ0Rvd25sb2FkJyxcclxuICAgICAgICBvbkNsaWNrOiBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB7IERvY3VtZW50Vmlld2VyLCBBbm5vdGF0aW9uTWFuYWdlciwgU2F2ZU9wdGlvbnMgfSA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuQ29yZUNvbnRyb2xzO1xyXG4gICAgICAgICAgLy8gY29uc3QgeGZkZlN0cmluZyA9IGF3YWl0IEFubm90YXRpb25NYW5hZ2VyLmV4cG9ydEFubm90YXRpb25zKCk7XHJcbiAgICAgICAgICBjb25zdCBzYXZlT3B0aW9ucyA9IFNhdmVPcHRpb25zO1xyXG4gICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgZmlsZW5hbWU6IHRoaXMuY29ycmVzcG9uZGFuY2UudGl0bGUgPyB0aGlzLmNvcnJlc3BvbmRhbmNlLnRpdGxlIDogJ215RG9jdW1lbnQucGRmJyxcclxuICAgICAgICAgICAgLy8geGZkZlN0cmluZyxcclxuICAgICAgICAgICAgZmxhZ3M6IHNhdmVPcHRpb25zLkxJTkVBUklaRUQsXHJcbiAgICAgICAgICAgIGRvd25sb2FkVHlwZTogJ3BkZidcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgdGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZS5kb3dubG9hZFBkZihvcHRpb25zKTtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzLm5leHQoJ2Rvd25sb2FkJyk7XHJcbiAgICAgICAgICAvLyBsZXQgdXJsID0gdGhpcy5jb3JyZXNwb25kYW5jZS5wcm9wZXJ0aWVzLmNvbnRlbnQuZGF0YTtcclxuICAgICAgICAgIC8vIGxldCBmaWxlTmFtZSA9IHRoaXMuY29ycmVzcG9uZGFuY2UucHJvcGVydGllcy5jb250ZW50Lm5hbWU7XHJcbiAgICAgICAgICAvLyBpZiAodXJsICYmIGZpbGVOYW1lKSB7XHJcbiAgICAgICAgICAvLyAgIGxldCBzYWZlVXJsID0gdGhpcy5zZWN1cmVQaXBlLnRyYW5zZm9ybSh1cmwpO1xyXG4gICAgICAgICAgLy8gICBzYWZlVXJsLnN1YnNjcmliZSgodXJsOiBhbnkpID0+IHtcclxuICAgICAgICAgIC8vICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgLy8gICAgIGxpbmsuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgICAgICAgIC8vICAgICBsaW5rLmhyZWYgPSB1cmwuY2hhbmdpbmdUaGlzQnJlYWtzQXBwbGljYXRpb25TZWN1cml0eTtcclxuICAgICAgICAgIC8vICAgICBsaW5rLmRvd25sb2FkID0gZmlsZU5hbWU7XHJcbiAgICAgICAgICAvLyAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgICAgICAgIC8vICAgICBsaW5rLmNsaWNrKCk7XHJcbiAgICAgICAgICAvLyAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuICAgICAgICAgIC8vICAgICB0aGlzLmV2ZW50cy5uZXh0KCdkb3dubG9hZCcpO1xyXG4gICAgICAgICAgLy8gICB9KTtcclxuICAgICAgICAgIC8vIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkUHJpbnRCdXR0b24oKSB7XHJcbiAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLnNldEhlYWRlckl0ZW1zKChoZWFkZXIpID0+IHtcclxuICAgICAgaGVhZGVyLnB1c2goe1xyXG4gICAgICAgIHR5cGU6ICdhY3Rpb25CdXR0b24nLFxyXG4gICAgICAgIGltZzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2FiYjBjNDt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmljb24gLSBoZWFkZXIgLSBwcmludCAtIGxpbmU8L3RpdGxlPjxwYXRoIGNsYXNzPVwiY2xzLTFcIiBkPVwiTTIwLDZIMThWMkg2VjZINEEyLDIsMCwwLDAsMiw4djlhMiwyLDAsMCwwLDIsMkg2djNIMThWMTloMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDIwLDZaTTgsNGg4VjZIOFptOCwxNkg4VjE2aDhabTQtM0gxOFYxNEg2djNINFY4SDIwWm0tNC03aDJ2MkgxNlptLTMsMGgydjJIMTNaXCI+PC9wYXRoPjwvc3ZnPicsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMuaXNBcmFiaWMgPyBcIti32KjYp9i52KlcIiA6ICdQcmludCcsXHJcbiAgICAgICAgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZS5wcmludCgpO1xyXG4gICAgICAgICAgdGhpcy5ldmVudHMubmV4dCgncHJpbnQnKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkV2F0ZXJtYXJrKCkge1xyXG4gICAgY29uc3QgdXNlcmluZm8gPSB0aGlzLm51eGVvLm51eGVvQ2xpZW50LnVzZXIucHJvcGVydGllcztcclxuICAgIHRoaXMucGRmdHJvblNlcnZpY2UuYWRkV2F0ZXJtYXJrKFxyXG4gICAgICBgJHt1c2VyaW5mby51c2VybmFtZX0gICAgYFxyXG4gICAgICAvLyBgJHt1c2VyaW5mby5maXJzdE5hbWV9ICR7XHJcbiAgICAgIC8vICAgdXNlcmluZm8ubGFzdE5hbWVcclxuICAgICAgLy8gfSBgXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbG9hZERvY3VtZW50KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLndlYlZpZXdlckluc3RhbmNlIHx8ICghdGhpcy5maWxlRGF0YSAmJiAhdGhpcy5maWxlVVJMKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IGRvY1ZpZXdlciwgYW5ub3RNYW5hZ2VyLCBBbm5vdGF0aW9ucyB9ID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZTtcclxuICAgIGRvY1ZpZXdlci5vbignZG9jdW1lbnRMb2FkZWQnLCAoKSA9PiB7XHJcbiAgICAgIGxldCBmaXRNb2RlID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5GaXRNb2RlLkZpdFdpZHRoO1xyXG4gICAgICBpZiAodGhpcy5maXRNb2RlID09PSAnRml0UGFnZScpIHtcclxuICAgICAgICBmaXRNb2RlID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5GaXRNb2RlLkZpdFBhZ2U7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5maXRNb2RlID09PSAnWm9vbScpIHtcclxuICAgICAgICBmaXRNb2RlID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5GaXRNb2RlLlpvb207XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5zZXRGaXRNb2RlKGZpdE1vZGUpO1xyXG4gICAgfSk7XHJcbiAgICBpZiAoIXRoaXMuZWRpdE1vZGUpIHtcclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuc2V0UmVhZE9ubHkodHJ1ZSk7XHJcbiAgICAgIC8vIGluc3RhbmNlLmVuYWJsZVRvb2xzKFtdKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpbGVVUkwgJiYgdGhpcy5maWxlVVJMLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLmxvYWREb2N1bWVudCh0aGlzLmZpbGVVUkwsIHtcclxuICAgICAgICB4b2RzdHJlYW1pbmc6dHJ1ZSxcclxuICAgICAgICBjdXN0b21IZWFkZXJzOiB7XHJcbiAgICAgICAgICBBdXRob3JpemF0aW9uOiB0aGlzLmF1dGhIZWFkZXIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5sb2FkRG9jdW1lbnQoXHJcbiAgICAgICAgbmV3IEJsb2IoW25ldyBVaW50OEFycmF5KHRoaXMuZmlsZURhdGEpXSwgeyB0eXBlOiB0aGlzLkRPQ1VNRU5UX1RZUEUgfSksXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZmlsZW5hbWU6IHRoaXMuZmlsZVRpdGxlLFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzRmV0Y2hpbmcgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLmNvcnJlc3BvbmRhbmNlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgLy8gaWYgd2UgbmVlZCB0byBjaGVjayBvbiBzZWNyZWN5IGxldmVsIGZvciBhZGRpbmcgd2F0ZXIgbWFyayBvciBub3QgXHJcbiAgICAgIGlmICh0aGlzLmVudmlyb25tZW50LmVuYWJsZVZpZXdlcldhdGVyTWFyayAmJiB0aGlzLnNlY3JlY3lQcm9wZXJ0eSkge1xyXG4gICAgICAgIC8vIGNoZWNrIGZvciBzZWNyZWN5IGxldmVsIGJlZm9yIGFkZGluZyB3YXRlcm1hcmtcclxuICAgICAgICBpZiAodGhpcy5jb3JyZXNwb25kYW5jZS5wcm9wZXJ0aWVzW3RoaXMuc2VjcmVjeVByb3BlcnR5XSAmJiB0aGlzLmNvcnJlc3BvbmRhbmNlLnByb3BlcnRpZXNbdGhpcy5zZWNyZWN5UHJvcGVydHldICE9PSAnTm9ybWFsJykge1xyXG4gICAgICAgICAgdGhpcy5hZGRXYXRlcm1hcmsoKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmICh0aGlzLmVudmlyb25tZW50LmVuYWJsZVZpZXdlcldhdGVyTWFyayAmJiAhdGhpcy5zZWNyZWN5UHJvcGVydHkpIHtcclxuICAgICAgICB0aGlzLmFkZFdhdGVybWFyaygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBleHBvcnRBc0Jsb2IoKTogUHJvbWlzZTxCbG9iPiB7XHJcbiAgICBjb25zdCBkb2MgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlci5nZXREb2N1bWVudCgpO1xyXG4gICAgY29uc3QgeGZkZlN0cmluZyA9XHJcbiAgICAgIGF3YWl0IHRoaXMud2ViVmlld2VySW5zdGFuY2UuYW5ub3RNYW5hZ2VyLmV4cG9ydEFubm90YXRpb25zKCk7XHJcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgZG9jLmdldEZpbGVEYXRhKHtcclxuICAgICAgLy8gc2F2ZXMgdGhlIGRvY3VtZW50IHdpdGggYW5ub3RhdGlvbnMgaW4gaXRcclxuICAgICAgeGZkZlN0cmluZyxcclxuICAgIH0pO1xyXG4gICAgY29uc3QgYXJyID0gbmV3IFVpbnQ4QXJyYXkoZGF0YSk7XHJcbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2Fycl0sIHsgdHlwZTogdGhpcy5ET0NVTUVOVF9UWVBFIH0pO1xyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShibG9iKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUVkaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuYWN0aW9uQ2xpY2tlZCkge1xyXG4gICAgICAvLyBhY3Rpb24gY2xpY2tlZCBpcyBub3QgY2xpY2tlZCB0aGVuIG5vIHVwZGF0ZSBtb2RlIG9wZW5lZFxyXG4gICAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRpc2FibGVFbGVtZW50cyhbXHJcbiAgICAgICAgJ3Rvb2xiYXJHcm91cC1TaGFwZXMnLFxyXG4gICAgICAgICd0b29sYmFyR3JvdXAtRWRpdCcsXHJcbiAgICAgICAgJ3Rvb2xiYXJHcm91cC1JbnNlcnQnLFxyXG4gICAgICAgICd0b29sYmFyR3JvdXAtQW5ub3RhdGUnLFxyXG4gICAgICBdKTtcclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuc2V0UmVhZE9ubHkodHJ1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBlZGl0IG1vZGUgb3BlbmVkIGFuZCBtdXN0IGJlIHdoZW4gYWN0aW9uIGlzIGNsaWNrZWRcclxuICAgICAgaWYgKHRoaXMuZWRpdGluZ1R5cGUpIHtcclxuICAgICAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRpc2FibGVFbGVtZW50cyhbXHJcbiAgICAgICAgICAndG9vbGJhckdyb3VwLVNoYXBlcycsXHJcbiAgICAgICAgICAndG9vbGJhckdyb3VwLUVkaXQnLFxyXG4gICAgICAgICAgJ3Rvb2xiYXJHcm91cC1JbnNlcnQnLFxyXG4gICAgICAgICAgJ3Rvb2xiYXJHcm91cC1Bbm5vdGF0ZScsXHJcbiAgICAgICAgXSk7XHJcbiAgICAgICAgbGV0IGdyb3VwIDtcclxuICAgICAgICBpZih0aGlzLmVkaXRpbmdUeXBlID09PSAnc2lnbkRvYycpe1xyXG4gICAgICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5lbmFibGVFbGVtZW50cyhbXHJcbiAgICAgICAgICAgICd0b29sYmFyR3JvdXAtSW5zZXJ0J1xyXG4gICAgICAgICAgXSk7XHJcblxyXG4gICAgICAgIH1lbHNlIGlmKHRoaXMuZWRpdGluZ1R5cGUgPT09ICdhbm5vdGF0ZScpe1xyXG4gICAgICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5lbmFibGVFbGVtZW50cyhbXHJcbiAgICAgICAgICAgICd0b29sYmFyR3JvdXAtU2hhcGVzJyxcclxuICAgICAgICAgICAgJ3Rvb2xiYXJHcm91cC1FZGl0JyxcclxuICAgICAgICAgICAgJ3Rvb2xiYXJHcm91cC1Bbm5vdGF0ZScsXHJcbiAgICAgICAgICBdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5lbmFibGVFbGVtZW50cyhbXHJcbiAgICAgICAgICAndG9vbGJhckdyb3VwLVNoYXBlcycsXHJcbiAgICAgICAgICAndG9vbGJhckdyb3VwLUVkaXQnLFxyXG4gICAgICAgICAgJ3Rvb2xiYXJHcm91cC1JbnNlcnQnLFxyXG4gICAgICAgICAgJ3Rvb2xiYXJHcm91cC1Bbm5vdGF0ZScsXHJcbiAgICAgICAgXSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuc2V0UmVhZE9ubHkoZmFsc2UpO1xyXG4gICAgICAvLyB0aGlzLndlYlZpZXdlckluc3RhbmNlLnNldFRvb2xiYXJHcm91cCgndG9vbGJhckdyb3VwLUFubm90YXRlJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy53ZWJWaWV3ZXJJbnN0YW5jZSkge1xyXG4gICAgICB0aGlzLnRvZ2dsZUVkaXQoKTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGNoYW5nZXMudXJsRmlsZUNvbnRlbnQgJiZcclxuICAgICAgICBjaGFuZ2VzLnVybEZpbGVDb250ZW50LnByZXZpb3VzVmFsdWUgJiZcclxuICAgICAgICBjaGFuZ2VzLnVybEZpbGVDb250ZW50LnByZXZpb3VzVmFsdWUgIT09XHJcbiAgICAgICAgY2hhbmdlcy51cmxGaWxlQ29udGVudC5jdXJyZW50VmFsdWVcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5uZ09uRGVzdHJveSgpO1xyXG4gICAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBkZlRyb25FdmVudChldmVudCkge1xyXG4gICAgaWYgKHRoaXNbZXZlbnQuYWN0aW9uXSkge1xyXG4gICAgICAvLyBtZXRob2QgZXhpc3RzIGluIHRoZSBjb21wb25lbnRcclxuICAgICAgLy8gIHRoaXNbZXZlbnQuYWN0aW9uXShldmVudC5wYXJhbXMpOyAvLyBjYWxsIGl0XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLndlYlZpZXdlckluc3RhbmNlKSB7XHJcbiAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UuY2xvc2VEb2N1bWVudCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdkb2N1bWVudCBjbG9zZWQhJyk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnBkZnRyb25TZXJ2aWNlLmluc3RhbmNlID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRyYW5zZWxhdGlvblN1YnNjcml0aW9uID8gdGhpcy50cmFuc2VsYXRpb25TdWJzY3JpdGlvbi51bnN1YnNjcmliZSgpIDogbnVsbDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAjZmlsZVZpZXdlciBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7XCI+PC9kaXY+XHJcbiJdfQ==
|
|
@@ -176,12 +176,12 @@ export class PdftronService {
|
|
|
176
176
|
this.instance.docViewer.updateView();
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
|
-
PdftronService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
180
|
-
PdftronService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
181
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
179
|
+
PdftronService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PdftronService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
180
|
+
PdftronService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PdftronService, providedIn: "root" });
|
|
181
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PdftronService, decorators: [{
|
|
182
182
|
type: Injectable,
|
|
183
183
|
args: [{
|
|
184
184
|
providedIn: "root",
|
|
185
185
|
}]
|
|
186
186
|
}], ctorParameters: function () { return []; } });
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmdHJvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9wZGYtdHJvbi9wZGZ0cm9uL3BkZnRyb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTXpELE1BQU0sT0FBTyxjQUFjO0lBTXpCO1FBTEEsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUVsQixnQkFBVyxHQUFVLEVBQUUsQ0FBQztRQUN4Qix5QkFBb0IsR0FBVSxFQUFFLENBQUM7UUFDakMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDViw2QkFBNkI7O1lBQ2pDLEtBQUssSUFBSSxVQUFVLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDdkMsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7YUFDNUI7UUFDSCxDQUFDO0tBQUE7SUFFRCx5QkFBeUI7UUFDdkIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBQ0ssbUNBQW1DOztZQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN6RSxDQUFDO0tBQUE7SUFFRCwwQkFBMEI7UUFDeEIsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3pELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLGFBQWEs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VUFBVSxHQUFHLFNBQVMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO29CQUNuRSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDbEUsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO3dCQUNYLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDaEIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQzt3QkFDckMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO3FCQUNmO2dCQUNILENBQUM7YUFDRixDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdkMsQ0FBQzs7MkdBakxVLGNBQWM7K0dBQWQsY0FBYyxjQUZiLE1BQU07MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBvYnNlcnZhYmxlLCBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFBkZnRyb25TZXJ2aWNlIHtcclxuICBtb2RlOiBTdHJpbmcgPSBcIlwiO1xyXG4gIGluc3RhbmNlO1xyXG4gIHN0YW1wQW5ub3RzOiBhbnlbXSA9IFtdO1xyXG4gIHNpZ25hdHVyZUFubm90YXRpb25zOiBhbnlbXSA9IFtdO1xyXG4gIHBkZlRyb25TdHJlYW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG4gIGFzeW5jIGRpc2FibGVRckNvZGVNb2RpZnliZWZvcmVzYXZlKCkge1xyXG4gICAgZm9yIChsZXQgc3RhbXBBbm5vdCBvZiB0aGlzLnN0YW1wQW5ub3RzKSB7XHJcbiAgICAgIHN0YW1wQW5ub3QuUmVhZE9ubHkgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJTaWduYXR1cmVBbm5vdGF0aW9ucygpIHtcclxuICAgIHRoaXMuc2lnbmF0dXJlQW5ub3RhdGlvbnMgPSBbXTtcclxuICB9XHJcbiAgYXN5bmMgcmVtb3ZlU2lnbmF0dXJlQW5ub3RhaW9uc2JlZm9yZXNhdmUoKSB7XHJcbiAgICB0aGlzLmluc3RhbmNlLmFubm90TWFuYWdlci5vZmYoXCJhbm5vdGF0aW9uQ2hhbmdlZFwiKTtcclxuICAgIHRoaXMuaW5zdGFuY2UuYW5ub3RNYW5hZ2VyLmRlbGV0ZUFubm90YXRpb24odGhpcy5zaWduYXR1cmVBbm5vdGF0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBnZXRTaWduYXR1cmVBbm5vdGFpb25zSW5mbygpIHtcclxuICAgIGxldCBzaWduYXR1cmVJbmZvID0gdGhpcy5zaWduYXR1cmVBbm5vdGF0aW9ucy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgbGV0IFBhZ2VIZWlnaHQgPSB0aGlzLmluc3RhbmNlLmRvY1ZpZXdlci5nZXRQYWdlSGVpZ2h0KGl0ZW0uUGFnZU51bWJlcik7XHJcbiAgICAgIGxldCBQYWdlV2lkdGggPSB0aGlzLmluc3RhbmNlLmRvY1ZpZXdlci5nZXRQYWdlV2lkdGgoaXRlbS5QYWdlTnVtYmVyKTtcclxuICAgICAgbGV0IHlDb25zdCA9IHRoaXMubW9kaWZ5U2lnbmF0dXJlQW5ub3RhaW9uSGVpZ2h0QW5kV2lkdGgoXHJcbiAgICAgICAgUGFnZUhlaWdodCxcclxuICAgICAgICBQYWdlV2lkdGhcclxuICAgICAgKS55O1xyXG4gICAgICAvLyBsZXQgeENvbnN0ID0gdGhpcy5tb2RpZnlTaWduYXR1cmVBbm5vdGFpb25IZWlnaHRBbmRXaWR0aChcclxuICAgICAgLy8gICBQYWdlSGVpZ2h0LFxyXG4gICAgICAvLyAgIFBhZ2VXaWR0aFxyXG4gICAgICAvLyApLng7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgcGFnZW5vOiBpdGVtLlBhZ2VOdW1iZXIsXHJcbiAgICAgICAgLy94OiBpdGVtLlggKyB4Q29uc3QsXHJcbiAgICAgICAgeDogaXRlbS5YLFxyXG4gICAgICAgIHk6IGl0ZW0uWSArIHlDb25zdCxcclxuICAgICAgICBoZWlnaHQ6IGl0ZW0uZ2V0SGVpZ2h0KCksXHJcbiAgICAgICAgd2lkdGg6IGl0ZW0uZ2V0V2lkdGgoKSxcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHNpZ25hdHVyZUluZm87XHJcbiAgfVxyXG4gIG1vZGlmeVNpZ25hdHVyZUFubm90YWlvbkhlaWdodEFuZFdpZHRoKFBhZ2VIZWlnaHQsIFBhZ2VXaWR0aCkge1xyXG4gICAgY29uc3Qgc3RhbmRhcmRIZWlnaHQgPSA4NDI7XHJcbiAgICBjb25zdCBzdGFuZGFyZFdpZHRoID0gNTk1O1xyXG4gICAgbGV0IHk6IG51bWJlciA9IDA7XHJcbiAgICBsZXQgeDogbnVtYmVyID0gMDtcclxuICAgIC8vaGVpZ2h0XHJcbiAgICBpZiAoc3RhbmRhcmRIZWlnaHQgPiBQYWdlSGVpZ2h0IHx8IHN0YW5kYXJkSGVpZ2h0IDwgUGFnZUhlaWdodCkge1xyXG4gICAgICB5ID0gc3RhbmRhcmRIZWlnaHQgLSBQYWdlSGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgLy8gd2lkaHRcclxuICAgIGlmIChzdGFuZGFyZFdpZHRoID4gUGFnZVdpZHRoIHx8IHN0YW5kYXJkV2lkdGggPCBQYWdlV2lkdGgpIHtcclxuICAgICAgeCA9IHN0YW5kYXJkV2lkdGggLSBQYWdlV2lkdGg7XHJcbiAgICB9XHJcbiAgICByZXR1cm4geyB5LCB4IH07XHJcbiAgfVxyXG4gIGFkZFNpZ25hdHVyZShiYXNlNjQpIHtcclxuICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XHJcbiAgICAgIGxldCBjdXJyZW50UGFnZSA9IHRoaXMuaW5zdGFuY2UuZG9jVmlld2VyLmdldEN1cnJlbnRQYWdlKCk7XHJcblxyXG4gICAgICB0aGlzLmluc3RhbmNlLmFubm90TWFuYWdlci5zZXRSZWFkT25seShmYWxzZSk7XHJcbiAgICAgIHRoaXMuaW5zdGFuY2UuZGlzYWJsZUVsZW1lbnRzKFtcclxuICAgICAgICBcInRvb2xiYXJHcm91cC1TaGFwZXNcIixcclxuICAgICAgICBcInRvb2xiYXJHcm91cC1FZGl0XCIsXHJcbiAgICAgICAgXCJ0b29sYmFyR3JvdXAtSW5zZXJ0XCIsXHJcbiAgICAgICAgXCJ0b29sYmFyR3JvdXAtQW5ub3RhdGVcIixcclxuICAgICAgXSk7XHJcbiAgICAgIGNvbnN0IHNpZ25hdHVyZUFubm90ID0gbmV3IHRoaXMuaW5zdGFuY2UuQW5ub3RhdGlvbnMuU3RhbXBBbm5vdGF0aW9uKCk7XHJcbiAgICAgIHNpZ25hdHVyZUFubm90LlBhZ2VOdW1iZXIgPSBjdXJyZW50UGFnZTtcclxuICAgICAgc2lnbmF0dXJlQW5ub3QuWCA9IDEwMDtcclxuICAgICAgc2lnbmF0dXJlQW5ub3QuWSA9IDI1MDtcclxuICAgICAgc2lnbmF0dXJlQW5ub3QuV2lkdGggPSAxNDA7XHJcbiAgICAgIHNpZ25hdHVyZUFubm90LkhlaWdodCA9IDYwO1xyXG4gICAgICBjb25zdCBrZWVwQXNTVkcgPSBmYWxzZTtcclxuICAgICAgc2lnbmF0dXJlQW5ub3Quc2V0SW1hZ2VEYXRhKGJhc2U2NCwga2VlcEFzU1ZHKTtcclxuICAgICAgc2lnbmF0dXJlQW5ub3QuQXV0aG9yID0gdGhpcy5pbnN0YW5jZS5hbm5vdE1hbmFnZXIuZ2V0Q3VycmVudFVzZXIoKTtcclxuXHJcbiAgICAgIHRoaXMuaW5zdGFuY2UuYW5ub3RNYW5hZ2VyLmFkZEFubm90YXRpb24oc2lnbmF0dXJlQW5ub3QpO1xyXG4gICAgICB0aGlzLmluc3RhbmNlLmFubm90TWFuYWdlci5yZWRyYXdBbm5vdGF0aW9uKHNpZ25hdHVyZUFubm90KTtcclxuICAgICAgdGhpcy5wZGZUcm9uU3RyZWFtLm5leHQoeyBhY3Rpb246IFwiYWRkU3RhbXBcIiwgcGFyYW1zOiB7IGJhc2U2NCB9IH0pO1xyXG5cclxuICAgICAgdGhpcy5zaWduYXR1cmVBbm5vdGF0aW9ucy5wdXNoKHNpZ25hdHVyZUFubm90KTtcclxuICAgICAgdGhpcy5pbnN0YW5jZS5hbm5vdE1hbmFnZXIub24oXHJcbiAgICAgICAgXCJhbm5vdGF0aW9uQ2hhbmdlZFwiLFxyXG4gICAgICAgIChhbm5vdGF0aW9ucywgYWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICBpZiAoYWN0aW9uID09PSBcIm1vZGlmeVwiKSB7XHJcbiAgICAgICAgICAgIGFubm90YXRpb25zLmZvckVhY2goKGNoYW5nZWRhbm5vdCkgPT4ge1xyXG4gICAgICAgICAgICAgIC8vIHRoaXMuc2lnbmF0dXJlQW5ub3RhdGlvbnMuZm9yRWFjaChmdW5jdGlvbihpdGVtLGkpIHtcclxuICAgICAgICAgICAgICAvLyAgIGlmIChpdGVtLklkID09IGNoYW5nZWRhbm5vdC5JZCkgaXRlbSA9IGNoYW5nZWRhbm5vdDtcclxuICAgICAgICAgICAgICAvLyB9KTtcclxuICAgICAgICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnNpZ25hdHVyZUFubm90YXRpb25zXHJcbiAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLklkKVxyXG4gICAgICAgICAgICAgICAgLmluZGV4T2YoY2hhbmdlZGFubm90LklkKTtcclxuICAgICAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zaWduYXR1cmVBbm5vdGF0aW9uc1tpbmRleF0gPSBjaGFuZ2VkYW5ub3Q7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uID09PSBcImRlbGV0ZVwiKSB7XHJcbiAgICAgICAgICAgIGFubm90YXRpb25zLmZvckVhY2goKGNoYW5nZWRhbm5vdCkgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMuc2lnbmF0dXJlQW5ub3RhdGlvbnNcclxuICAgICAgICAgICAgICAgIC5tYXAoKGl0ZW0pID0+IGl0ZW0uSWQpXHJcbiAgICAgICAgICAgICAgICAuaW5kZXhPZihjaGFuZ2VkYW5ub3QuSWQpO1xyXG4gICAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNpZ25hdHVyZUFubm90YXRpb25zLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiTm8gcGRmVHJvbiBpbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICB9XHJcbiAgYWRkU3RhbXAodXJsKSB7XHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZSkge1xyXG4gICAgICB0aGlzLmluc3RhbmNlLmFubm90TWFuYWdlci5zZXRSZWFkT25seShmYWxzZSk7XHJcbiAgICAgIHRoaXMuaW5zdGFuY2UuZGlzYWJsZUVsZW1lbnRzKFtcclxuICAgICAgICBcInRvb2xiYXJHcm91cC1TaGFwZXNcIixcclxuICAgICAgICBcInRvb2xiYXJHcm91cC1FZGl0XCIsXHJcbiAgICAgICAgXCJ0b29sYmFyR3JvdXAtSW5zZXJ0XCIsXHJcbiAgICAgICAgXCJ0b29sYmFyR3JvdXAtQW5ub3RhdGVcIixcclxuICAgICAgXSk7XHJcbiAgICAgIHRoaXMucGRmVHJvblN0cmVhbS5uZXh0KHsgYWN0aW9uOiBcImFkZFN0YW1wXCIsIHBhcmFtczogeyB1cmwgfSB9KTtcclxuICAgICAgbGV0IHN0YW1wQW5ub3QgPSBuZXcgdGhpcy5pbnN0YW5jZS5Bbm5vdGF0aW9ucy5TdGFtcEFubm90YXRpb24oKTtcclxuICAgICAgbGV0IHJvdGF0aW9uID0gdGhpcy5pbnN0YW5jZS5kb2NWaWV3ZXIuZ2V0Q29tcGxldGVSb3RhdGlvbih0aGlzLmluc3RhbmNlLmRvY1ZpZXdlci5nZXRDdXJyZW50UGFnZSgpKTtcclxuICAgICAgc3RhbXBBbm5vdC5QYWdlTnVtYmVyID0gMTtcclxuICAgICAgc3RhbXBBbm5vdC5YID0gMDtcclxuICAgICAgc3RhbXBBbm5vdC5ZID0gMDtcclxuICAgICAgc3RhbXBBbm5vdC5XaWR0aCA9IDE1MDtcclxuICAgICAgc3RhbXBBbm5vdC5IZWlnaHQgPSA3ODtcclxuICAgICAgY29uc3Qga2VlcEFzU1ZHID0gZmFsc2U7XHJcbiAgICAgIGlmIChyb3RhdGlvbiA9PSAxKSB7XHJcbiAgICAgICAgc3RhbXBBbm5vdC5Sb3RhdGlvbiA9IDkwO1xyXG4gICAgICAgIHN0YW1wQW5ub3QuV2lkdGggPSA3ODtcclxuICAgICAgICBzdGFtcEFubm90LkhlaWdodCA9IDE1MDtcclxuICAgICAgfVxyXG4gICAgICBzdGFtcEFubm90LlJlYWRPbmx5ID0gZmFsc2U7XHJcbiAgICAgIHN0YW1wQW5ub3Quc2V0SW1hZ2VEYXRhKHVybCwga2VlcEFzU1ZHKTtcclxuICAgICAgc3RhbXBBbm5vdC5BdXRob3IgPSB0aGlzLmluc3RhbmNlLmFubm90TWFuYWdlci5nZXRDdXJyZW50VXNlcigpO1xyXG4gICAgICB0aGlzLmluc3RhbmNlLmFubm90TWFuYWdlci5hZGRBbm5vdGF0aW9uKHN0YW1wQW5ub3QpO1xyXG4gICAgICB0aGlzLmluc3RhbmNlLmFubm90TWFuYWdlci5yZWRyYXdBbm5vdGF0aW9uKHN0YW1wQW5ub3QpO1xyXG4gICAgICB0aGlzLnN0YW1wQW5ub3RzLnB1c2goc3RhbXBBbm5vdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiTm8gcGRmVHJvbiBpbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICB9XHJcbiAgYWRkV2F0ZXJtYXJrKHRleHQpIHtcclxuICAgIHRleHQgPSBuZXcgQXJyYXkoMTAwICogMikuam9pbih0ZXh0ICsgXCIgXCIpOyAvLyBudW1iZXIgb2YgbGluZXNcclxuICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XHJcbiAgICAgIHRoaXMuaW5zdGFuY2UuZG9jVmlld2VyLnNldFdhdGVybWFyayh7XHJcbiAgICAgICAgY3VzdG9tOiAoY3R4LCBwYWdlTnVtYmVyLCBwYWdlV2lkdGgsIHBhZ2VIZWlnaHQpID0+IHtcclxuICAgICAgICAgIC8vIGN0eCBpcyBhbiBpbnN0YW5jZSBvZiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRcclxuICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBcIiNkOWRjZTJcIjtcclxuICAgICAgICAgIGN0eC5mb250ID0gXCIxNnB0IEFyaWFsXCI7XHJcbiAgICAgICAgICBjdHguZ2xvYmFsQWxwaGEgPSAwLjM7XHJcbiAgICAgICAgICBsZXQgdHh0SGVpZ2h0ID0gNTA7XHJcbiAgICAgICAgICBjb25zdCBsaW5lTnVtYmVyID0gcGFnZVdpZHRoID4gcGFnZUhlaWdodCA/IHBhZ2VXaWR0aCA6IHBhZ2VIZWlnaHQ7XHJcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IE1hdGguY2VpbCgobGluZU51bWJlciAqIDEuNSkgLyB0eHRIZWlnaHQpOyBpKyspIHtcclxuICAgICAgICAgICAgY3R4LnNhdmUoKTtcclxuICAgICAgICAgICAgY3R4LnJvdGF0ZSgtNDUpO1xyXG4gICAgICAgICAgICBjdHguZmlsbFRleHQodGV4dCwgMCwgaSAqIHR4dEhlaWdodCk7XHJcbiAgICAgICAgICAgIGN0eC5yZXN0b3JlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiTm8gcGRmVHJvbiBpbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZVdhdGVybWFyaygpIHtcclxuICAgIHRoaXMuaW5zdGFuY2UuZG9jVmlld2VyLnNldFdhdGVybWFyayh7fSk7XHJcbiAgICB0aGlzLmluc3RhbmNlLmRvY1ZpZXdlci5yZWZyZXNoQWxsKCk7XHJcbiAgICB0aGlzLmluc3RhbmNlLmRvY1ZpZXdlci51cGRhdGVWaWV3KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmdHJvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9wZGYtdHJvbi9wZGZ0cm9uL3BkZnRyb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTXpELE1BQU0sT0FBTyxjQUFjO0lBTXpCO1FBTEEsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUVsQixnQkFBVyxHQUFVLEVBQUUsQ0FBQztRQUN4Qix5QkFBb0IsR0FBVSxFQUFFLENBQUM7UUFDakMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDViw2QkFBNkI7O1lBQ2pDLEtBQUssSUFBSSxVQUFVLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDdkMsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7YUFDNUI7UUFDSCxDQUFDO0tBQUE7SUFFRCx5QkFBeUI7UUFDdkIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBQ0ssbUNBQW1DOztZQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN6RSxDQUFDO0tBQUE7SUFFRCwwQkFBMEI7UUFDeEIsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3pELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLGFBQWEs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VUFBVSxHQUFHLFNBQVMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO29CQUNuRSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDbEUsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO3dCQUNYLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDaEIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQzt3QkFDckMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO3FCQUNmO2dCQUNILENBQUM7YUFDRixDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdkMsQ0FBQzs7NEdBakxVLGNBQWM7Z0hBQWQsY0FBYyxjQUZiLE1BQU07NEZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBvYnNlcnZhYmxlLCBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFBkZnRyb25TZXJ2aWNlIHtcclxuICBtb2RlOiBTdHJpbmcgPSBcIlwiO1xyXG4gIGluc3RhbmNlO1xyXG4gIHN0YW1wQW5ub3RzOiBhbnlbXSA9IFtdO1xyXG4gIHNpZ25hdHVyZUFubm90YXRpb25zOiBhbnlbXSA9IFtdO1xyXG4gIHBkZlRyb25TdHJlYW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG4gIGFzeW5jIGRpc2FibGVRckNvZGVNb2RpZnliZWZvcmVzYXZlKCkge1xyXG4gICAgZm9yIChsZXQgc3RhbXBBbm5vdCBvZiB0aGlzLnN0YW1wQW5ub3RzKSB7XHJcbiAgICAgIHN0YW1wQW5ub3QuUmVhZE9ubHkgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJTaWduYXR1cmVBbm5vdGF0aW9ucygpIHtcclxuICAgIHRoaXMuc2lnbmF0dXJlQW5ub3RhdGlvbnMgPSBbXTtcclxuICB9XHJcbiAgYXN5bmMgcmVtb3ZlU2lnbmF0dXJlQW5ub3RhaW9uc2JlZm9yZXNhdmUoKSB7XHJcbiAgICB0aGlzLmluc3RhbmNlLmFubm90TWFuYWdlci5vZmYoXCJhbm5vdGF0aW9uQ2hhbmdlZFwiKTtcclxuICAgIHRoaXMuaW5zdGFuY2UuYW5ub3RNYW5hZ2VyLmRlbGV0ZUFubm90YXRpb24odGhpcy5zaWduYXR1cmVBbm5vdGF0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBnZXRTaWduYXR1cmVBbm5vdGFpb25zSW5mbygpIHtcclxuICAgIGxldCBzaWduYXR1cmVJbmZvID0gdGhpcy5zaWduYXR1cmVBbm5vdGF0aW9ucy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgbGV0IFBhZ2VIZWlnaHQgPSB0aGlzLmluc3RhbmNlLmRvY1ZpZXdlci5nZXRQYWdlSGVpZ2h0KGl0ZW0uUGFnZU51bWJlcik7XHJcbiAgICAgIGxldCBQYWdlV2lkdGggPSB0aGlzLmluc3RhbmNlLmRvY1ZpZXdlci5nZXRQYWdlV2lkdGgoaXRlbS5QYWdlTnVtYmVyKTtcclxuICAgICAgbGV0IHlDb25zdCA9IHRoaXMubW9kaWZ5U2lnbmF0dXJlQW5ub3RhaW9uSGVpZ2h0QW5kV2lkdGgoXHJcbiAgICAgICAgUGFnZUhlaWdodCxcclxuICAgICAgICBQYWdlV2lkdGhcclxuICAgICAgKS55O1xyXG4gICAgICAvLyBsZXQgeENvbnN0ID0gdGhpcy5tb2RpZnlTaWduYXR1cmVBbm5vdGFpb25IZWlnaHRBbmRXaWR0aChcclxuICAgICAgLy8gICBQYWdlSGVpZ2h0LFxyXG4gICAgICAvLyAgIFBhZ2VXaWR0aFxyXG4gICAgICAvLyApLng7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgcGFnZW5vOiBpdGVtLlBhZ2VOdW1iZXIsXHJcbiAgICAgICAgLy94OiBpdGVtLlggKyB4Q29uc3QsXHJcbiAgICAgICAgeDogaXRlbS5YLFxyXG4gICAgICAgIHk6IGl0ZW0uWSArIHlDb25zdCxcclxuICAgICAgICBoZWlnaHQ6IGl0ZW0uZ2V0SGVpZ2h0KCksXHJcbiAgICAgICAgd2lkdGg6IGl0ZW0uZ2V0V2lkdGgoKSxcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHNpZ25hdHVyZUluZm87XHJcbiAgfVxyXG4gIG1vZGlmeVNpZ25hdHVyZUFubm90YWlvbkhlaWdodEFuZFdpZHRoKFBhZ2VIZWlnaHQsIFBhZ2VXaWR0aCkge1xyXG4gICAgY29uc3Qgc3RhbmRhcmRIZWlnaHQgPSA4NDI7XHJcbiAgICBjb25zdCBzdGFuZGFyZFdpZHRoID0gNTk1O1xyXG4gICAgbGV0IHk6IG51bWJlciA9IDA7XHJcbiAgICBsZXQgeDogbnVtYmVyID0gMDtcclxuICAgIC8vaGVpZ2h0XHJcbiAgICBpZiAoc3RhbmRhcmRIZWlnaHQgPiBQYWdlSGVpZ2h0IHx8IHN0YW5kYXJkSGVpZ2h0IDwgUGFnZUhlaWdodCkge1xyXG4gICAgICB5ID0gc3RhbmRhcmRIZWlnaHQgLSBQYWdlSGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgLy8gd2lkaHRcclxuICAgIGlmIChzdGFuZGFyZFdpZHRoID4gUGFnZVdpZHRoIHx8IHN0YW5kYXJkV2lkdGggPCBQYWdlV2lkdGgpIHtcclxuICAgICAgeCA9IHN0YW5kYXJkV2lkdGggLSBQYWdlV2lkdGg7XHJcbiAgICB9XHJcbiAgICByZXR1cm4geyB5LCB4IH07XHJcbiAgfVxyXG4gIGFkZFNpZ25hdHVyZShiYXNlNjQpIHtcclxuICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XHJcbiAgICAgIGxldCBjdXJyZW50UGFnZSA9IHRoaXMuaW5zdGFuY2UuZG9jVmlld2VyLmdldEN1cnJlbnRQYWdlKCk7XHJcblxyXG4gICAgICB0aGlzLmluc3RhbmNlLmFubm90TWFuYWdlci5zZXRSZWFkT25seShmYWxzZSk7XHJcbiAgICAgIHRoaXMuaW5zdGFuY2UuZGlzYWJsZUVsZW1lbnRzKFtcclxuICAgICAgICBcInRvb2xiYXJHcm91cC1TaGFwZXNcIixcclxuICAgICAgICBcInRvb2xiYXJHcm91cC1FZGl0XCIsXHJcbiAgICAgICAgXCJ0b29sYmFyR3JvdXAtSW5zZXJ0XCIsXHJcbiAgICAgICAgXCJ0b29sYmFyR3JvdXAtQW5ub3RhdGVcIixcclxuICAgICAgXSk7XHJcbiAgICAgIGNvbnN0IHNpZ25hdHVyZUFubm90ID0gbmV3IHRoaXMuaW5zdGFuY2UuQW5ub3RhdGlvbnMuU3RhbXBBbm5vdGF0aW9uKCk7XHJcbiAgICAgIHNpZ25hdHVyZUFubm90LlBhZ2VOdW1iZXIgPSBjdXJyZW50UGFnZTtcclxuICAgICAgc2lnbmF0dXJlQW5ub3QuWCA9IDEwMDtcclxuICAgICAgc2lnbmF0dXJlQW5ub3QuWSA9IDI1MDtcclxuICAgICAgc2lnbmF0dXJlQW5ub3QuV2lkdGggPSAxNDA7XHJcbiAgICAgIHNpZ25hdHVyZUFubm90LkhlaWdodCA9IDYwO1xyXG4gICAgICBjb25zdCBrZWVwQXNTVkcgPSBmYWxzZTtcclxuICAgICAgc2lnbmF0dXJlQW5ub3Quc2V0SW1hZ2VEYXRhKGJhc2U2NCwga2VlcEFzU1ZHKTtcclxuICAgICAgc2lnbmF0dXJlQW5ub3QuQXV0aG9yID0gdGhpcy5pbnN0YW5jZS5hbm5vdE1hbmFnZXIuZ2V0Q3VycmVudFVzZXIoKTtcclxuXHJcbiAgICAgIHRoaXMuaW5zdGFuY2UuYW5ub3RNYW5hZ2VyLmFkZEFubm90YXRpb24oc2lnbmF0dXJlQW5ub3QpO1xyXG4gICAgICB0aGlzLmluc3RhbmNlLmFubm90TWFuYWdlci5yZWRyYXdBbm5vdGF0aW9uKHNpZ25hdHVyZUFubm90KTtcclxuICAgICAgdGhpcy5wZGZUcm9uU3RyZWFtLm5leHQoeyBhY3Rpb246IFwiYWRkU3RhbXBcIiwgcGFyYW1zOiB7IGJhc2U2NCB9IH0pO1xyXG5cclxuICAgICAgdGhpcy5zaWduYXR1cmVBbm5vdGF0aW9ucy5wdXNoKHNpZ25hdHVyZUFubm90KTtcclxuICAgICAgdGhpcy5pbnN0YW5jZS5hbm5vdE1hbmFnZXIub24oXHJcbiAgICAgICAgXCJhbm5vdGF0aW9uQ2hhbmdlZFwiLFxyXG4gICAgICAgIChhbm5vdGF0aW9ucywgYWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICBpZiAoYWN0aW9uID09PSBcIm1vZGlmeVwiKSB7XHJcbiAgICAgICAgICAgIGFubm90YXRpb25zLmZvckVhY2goKGNoYW5nZWRhbm5vdCkgPT4ge1xyXG4gICAgICAgICAgICAgIC8vIHRoaXMuc2lnbmF0dXJlQW5ub3RhdGlvbnMuZm9yRWFjaChmdW5jdGlvbihpdGVtLGkpIHtcclxuICAgICAgICAgICAgICAvLyAgIGlmIChpdGVtLklkID09IGNoYW5nZWRhbm5vdC5JZCkgaXRlbSA9IGNoYW5nZWRhbm5vdDtcclxuICAgICAgICAgICAgICAvLyB9KTtcclxuICAgICAgICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnNpZ25hdHVyZUFubm90YXRpb25zXHJcbiAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLklkKVxyXG4gICAgICAgICAgICAgICAgLmluZGV4T2YoY2hhbmdlZGFubm90LklkKTtcclxuICAgICAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zaWduYXR1cmVBbm5vdGF0aW9uc1tpbmRleF0gPSBjaGFuZ2VkYW5ub3Q7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uID09PSBcImRlbGV0ZVwiKSB7XHJcbiAgICAgICAgICAgIGFubm90YXRpb25zLmZvckVhY2goKGNoYW5nZWRhbm5vdCkgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMuc2lnbmF0dXJlQW5ub3RhdGlvbnNcclxuICAgICAgICAgICAgICAgIC5tYXAoKGl0ZW0pID0+IGl0ZW0uSWQpXHJcbiAgICAgICAgICAgICAgICAuaW5kZXhPZihjaGFuZ2VkYW5ub3QuSWQpO1xyXG4gICAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNpZ25hdHVyZUFubm90YXRpb25zLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiTm8gcGRmVHJvbiBpbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICB9XHJcbiAgYWRkU3RhbXAodXJsKSB7XHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZSkge1xyXG4gICAgICB0aGlzLmluc3RhbmNlLmFubm90TWFuYWdlci5zZXRSZWFkT25seShmYWxzZSk7XHJcbiAgICAgIHRoaXMuaW5zdGFuY2UuZGlzYWJsZUVsZW1lbnRzKFtcclxuICAgICAgICBcInRvb2xiYXJHcm91cC1TaGFwZXNcIixcclxuICAgICAgICBcInRvb2xiYXJHcm91cC1FZGl0XCIsXHJcbiAgICAgICAgXCJ0b29sYmFyR3JvdXAtSW5zZXJ0XCIsXHJcbiAgICAgICAgXCJ0b29sYmFyR3JvdXAtQW5ub3RhdGVcIixcclxuICAgICAgXSk7XHJcbiAgICAgIHRoaXMucGRmVHJvblN0cmVhbS5uZXh0KHsgYWN0aW9uOiBcImFkZFN0YW1wXCIsIHBhcmFtczogeyB1cmwgfSB9KTtcclxuICAgICAgbGV0IHN0YW1wQW5ub3QgPSBuZXcgdGhpcy5pbnN0YW5jZS5Bbm5vdGF0aW9ucy5TdGFtcEFubm90YXRpb24oKTtcclxuICAgICAgbGV0IHJvdGF0aW9uID0gdGhpcy5pbnN0YW5jZS5kb2NWaWV3ZXIuZ2V0Q29tcGxldGVSb3RhdGlvbih0aGlzLmluc3RhbmNlLmRvY1ZpZXdlci5nZXRDdXJyZW50UGFnZSgpKTtcclxuICAgICAgc3RhbXBBbm5vdC5QYWdlTnVtYmVyID0gMTtcclxuICAgICAgc3RhbXBBbm5vdC5YID0gMDtcclxuICAgICAgc3RhbXBBbm5vdC5ZID0gMDtcclxuICAgICAgc3RhbXBBbm5vdC5XaWR0aCA9IDE1MDtcclxuICAgICAgc3RhbXBBbm5vdC5IZWlnaHQgPSA3ODtcclxuICAgICAgY29uc3Qga2VlcEFzU1ZHID0gZmFsc2U7XHJcbiAgICAgIGlmIChyb3RhdGlvbiA9PSAxKSB7XHJcbiAgICAgICAgc3RhbXBBbm5vdC5Sb3RhdGlvbiA9IDkwO1xyXG4gICAgICAgIHN0YW1wQW5ub3QuV2lkdGggPSA3ODtcclxuICAgICAgICBzdGFtcEFubm90LkhlaWdodCA9IDE1MDtcclxuICAgICAgfVxyXG4gICAgICBzdGFtcEFubm90LlJlYWRPbmx5ID0gZmFsc2U7XHJcbiAgICAgIHN0YW1wQW5ub3Quc2V0SW1hZ2VEYXRhKHVybCwga2VlcEFzU1ZHKTtcclxuICAgICAgc3RhbXBBbm5vdC5BdXRob3IgPSB0aGlzLmluc3RhbmNlLmFubm90TWFuYWdlci5nZXRDdXJyZW50VXNlcigpO1xyXG4gICAgICB0aGlzLmluc3RhbmNlLmFubm90TWFuYWdlci5hZGRBbm5vdGF0aW9uKHN0YW1wQW5ub3QpO1xyXG4gICAgICB0aGlzLmluc3RhbmNlLmFubm90TWFuYWdlci5yZWRyYXdBbm5vdGF0aW9uKHN0YW1wQW5ub3QpO1xyXG4gICAgICB0aGlzLnN0YW1wQW5ub3RzLnB1c2goc3RhbXBBbm5vdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiTm8gcGRmVHJvbiBpbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICB9XHJcbiAgYWRkV2F0ZXJtYXJrKHRleHQpIHtcclxuICAgIHRleHQgPSBuZXcgQXJyYXkoMTAwICogMikuam9pbih0ZXh0ICsgXCIgXCIpOyAvLyBudW1iZXIgb2YgbGluZXNcclxuICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XHJcbiAgICAgIHRoaXMuaW5zdGFuY2UuZG9jVmlld2VyLnNldFdhdGVybWFyayh7XHJcbiAgICAgICAgY3VzdG9tOiAoY3R4LCBwYWdlTnVtYmVyLCBwYWdlV2lkdGgsIHBhZ2VIZWlnaHQpID0+IHtcclxuICAgICAgICAgIC8vIGN0eCBpcyBhbiBpbnN0YW5jZSBvZiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRcclxuICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBcIiNkOWRjZTJcIjtcclxuICAgICAgICAgIGN0eC5mb250ID0gXCIxNnB0IEFyaWFsXCI7XHJcbiAgICAgICAgICBjdHguZ2xvYmFsQWxwaGEgPSAwLjM7XHJcbiAgICAgICAgICBsZXQgdHh0SGVpZ2h0ID0gNTA7XHJcbiAgICAgICAgICBjb25zdCBsaW5lTnVtYmVyID0gcGFnZVdpZHRoID4gcGFnZUhlaWdodCA/IHBhZ2VXaWR0aCA6IHBhZ2VIZWlnaHQ7XHJcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IE1hdGguY2VpbCgobGluZU51bWJlciAqIDEuNSkgLyB0eHRIZWlnaHQpOyBpKyspIHtcclxuICAgICAgICAgICAgY3R4LnNhdmUoKTtcclxuICAgICAgICAgICAgY3R4LnJvdGF0ZSgtNDUpO1xyXG4gICAgICAgICAgICBjdHguZmlsbFRleHQodGV4dCwgMCwgaSAqIHR4dEhlaWdodCk7XHJcbiAgICAgICAgICAgIGN0eC5yZXN0b3JlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiTm8gcGRmVHJvbiBpbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZVdhdGVybWFyaygpIHtcclxuICAgIHRoaXMuaW5zdGFuY2UuZG9jVmlld2VyLnNldFdhdGVybWFyayh7fSk7XHJcbiAgICB0aGlzLmluc3RhbmNlLmRvY1ZpZXdlci5yZWZyZXNoQWxsKCk7XHJcbiAgICB0aGlzLmluc3RhbmNlLmRvY1ZpZXdlci51cGRhdGVWaWV3KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|