@sumaris-net/ngx-components 18.17.6 → 18.17.7-rc2
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/doc/changelog.md +3 -3
- package/esm2022/src/app/admin/users/users-select.modal.mjs +1 -1
- package/esm2022/src/app/admin/users/users.mjs +1 -1
- package/esm2022/src/app/core/about/about.modal.mjs +1 -1
- package/esm2022/src/app/core/account/account.page.mjs +1 -1
- package/esm2022/src/app/core/account/new-token.form.mjs +1 -1
- package/esm2022/src/app/core/account/new-token.modal.mjs +1 -1
- package/esm2022/src/app/core/account/password/change-password.form.mjs +1 -1
- package/esm2022/src/app/core/account/password/change-password.page.mjs +1 -1
- package/esm2022/src/app/core/account/token.table.mjs +1 -1
- package/esm2022/src/app/core/auth/auth.form.mjs +1 -1
- package/esm2022/src/app/core/auth/auth.modal.mjs +1 -1
- package/esm2022/src/app/core/auth/reset-password.modal.mjs +1 -1
- package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +1 -1
- package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +1 -1
- package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +1 -1
- package/esm2022/src/app/core/form/list/list.form.mjs +1 -1
- package/esm2022/src/app/core/form/properties/properties.form.mjs +1 -1
- package/esm2022/src/app/core/form/properties/properties.table.mjs +1 -1
- package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +1 -1
- package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +1 -1
- package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +1 -1
- package/esm2022/src/app/core/form/username/username.form.mjs +1 -1
- package/esm2022/src/app/core/home/home.mjs +1 -1
- package/esm2022/src/app/core/icon/icon.component.mjs +1 -1
- package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +1 -1
- package/esm2022/src/app/core/menu/menu.component.mjs +1 -1
- package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +1 -1
- package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +1 -1
- package/esm2022/src/app/core/menu/testing/menu.testing.mjs +1 -1
- package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +1 -1
- package/esm2022/src/app/core/peer/select-peer.modal.mjs +1 -1
- package/esm2022/src/app/core/register/register-confirm.page.mjs +1 -1
- package/esm2022/src/app/core/register/register.form.mjs +1 -1
- package/esm2022/src/app/core/register/register.modal.mjs +1 -1
- package/esm2022/src/app/core/services/local-settings.service.mjs +33 -33
- package/esm2022/src/app/core/services/model/config.model.mjs +1 -1
- package/esm2022/src/app/core/services/pipes/account.pipes.mjs +1 -1
- package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +1 -1
- package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +1 -1
- package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +1 -1
- package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +1 -1
- package/esm2022/src/app/core/settings/settings.page.mjs +1 -1
- package/esm2022/src/app/core/table/column/actions-column.component.mjs +1 -1
- package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +1 -1
- package/esm2022/src/app/core/table/column/row-field.component.mjs +1 -1
- package/esm2022/src/app/core/table/table-select-columns.component.mjs +1 -1
- package/esm2022/src/app/core/table/table.pipes.mjs +1 -1
- package/esm2022/src/app/core/table/table.utils.mjs +1 -1
- package/esm2022/src/app/core/table/testing/table.testing.mjs +1 -1
- package/esm2022/src/app/core/table/testing/table2.testing.mjs +1 -1
- package/esm2022/src/app/shared/audio/audio.testing.mjs +1 -1
- package/esm2022/src/app/shared/debug/debug.component.mjs +1 -1
- package/esm2022/src/app/shared/directives/autofocus.directive.mjs +1 -1
- package/esm2022/src/app/shared/directives/autoresize.directive.mjs +1 -1
- package/esm2022/src/app/shared/directives/autotitle.directive.mjs +1 -1
- package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +1 -1
- package/esm2022/src/app/shared/directives/ng-var.directive.mjs +1 -1
- package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +1 -1
- package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +1 -1
- package/esm2022/src/app/shared/directives/throttled-click.directive.mjs +1 -1
- package/esm2022/src/app/shared/form/field.component.mjs +1 -1
- package/esm2022/src/app/shared/form/loading-spinner.mjs +11 -11
- package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +1 -1
- package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +3 -3
- package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +1 -1
- package/esm2022/src/app/shared/markdown/markdown.component.mjs +17 -17
- package/esm2022/src/app/shared/markdown/markdown.directive.mjs +1 -1
- package/esm2022/src/app/shared/markdown/markdown.modal.mjs +1 -1
- package/esm2022/src/app/shared/markdown/markdown.service.mjs +1 -1
- package/esm2022/src/app/shared/markdown/testing/markdown.test.mjs +1 -1
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +1 -1
- package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +1 -1
- package/esm2022/src/app/shared/material/badge/badge.directive.mjs +1 -1
- package/esm2022/src/app/shared/material/badge/badge.test.mjs +3 -3
- package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +1 -1
- package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +1 -1
- package/esm2022/src/app/shared/material/chips/material.chips.mjs +1 -1
- package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +1 -1
- package/esm2022/src/app/shared/material/datetime/material.date.mjs +1 -1
- package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +1 -1
- package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +3 -3
- package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +1 -1
- package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +1 -1
- package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +1 -1
- package/esm2022/src/app/shared/material/duration/material.duration.mjs +1 -1
- package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +1 -1
- package/esm2022/src/app/shared/material/latlong/material.latlong-input.mjs +1 -1
- package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +1 -1
- package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +1 -1
- package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +1 -1
- package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +1 -1
- package/esm2022/src/app/shared/material/test/test-component.mjs +43 -43
- package/esm2022/src/app/shared/material/testing/common.test.mjs +1 -1
- package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +1 -1
- package/esm2022/src/app/shared/material/text/text-form.component.mjs +1 -1
- package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +1 -1
- package/esm2022/src/app/shared/named-filter/testing/named-filter-selector.testing.mjs +1 -1
- package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/badge.pipes.mjs +1 -1
- package/esm2022/src/app/shared/pipes/colors.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/dates.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/display-with.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/duration.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/form.pipes.mjs +1 -1
- package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/html.pipes.mjs +1 -1
- package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/maps.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/math.pipes.mjs +1 -1
- package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/observable.pipes.mjs +1 -1
- package/esm2022/src/app/shared/pipes/property.pipes.mjs +1 -1
- package/esm2022/src/app/shared/pipes/selection.pipes.mjs +1 -1
- package/esm2022/src/app/shared/pipes/string.pipes.mjs +1 -1
- package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/types.pipes.mjs +1 -1
- package/esm2022/src/app/shared/pipes/url.pipes.mjs +1 -1
- package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +1 -1
- package/esm2022/src/app/shared/testing/maskito.test.mjs +1 -1
- package/esm2022/src/app/shared/testing/observable.test.mjs +1 -1
- package/esm2022/src/app/shared/testing/tests.page.mjs +1 -1
- package/esm2022/src/app/shared/toast/toast.testing.mjs +1 -1
- package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +1 -1
- package/esm2022/src/app/shared/toolbar/toolbar.mjs +1 -1
- package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +1 -1
- package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +1 -1
- package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +1 -1
- package/esm2022/src/app/social/feed/feed.component.mjs +3 -3
- package/esm2022/src/app/social/feed/feed.directive.mjs +1 -1
- package/esm2022/src/app/social/feed/feed.page.mjs +1 -1
- package/esm2022/src/app/social/feed/testing/feed.testing.mjs +1 -1
- package/esm2022/src/app/social/job/progression/job-progression.component.mjs +1 -1
- package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +1 -1
- package/esm2022/src/app/social/job/progression/job-progression.list.mjs +1 -1
- package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +1 -1
- package/esm2022/src/app/social/message/message.form.mjs +1 -1
- package/esm2022/src/app/social/message/message.modal.mjs +1 -1
- package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +1 -1
- package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +1 -1
- package/esm2022/src/app/social/user-event/notification/user-event-notification.modal.mjs +1 -1
- package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +1 -1
- package/fesm2022/sumaris-net.ngx-components.mjs +108 -108
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/core/services/local-settings.service.d.ts +1 -0
- package/src/app/shared/inputs.d.ts +1 -1
- package/src/theme/_ngx-components.scss +1009 -1009
|
@@ -259,11 +259,11 @@ export class FeedsComponent {
|
|
|
259
259
|
}
|
|
260
260
|
}
|
|
261
261
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FeedsComponent, deps: [{ token: i1.LocalSettingsService }, { token: ENVIRONMENT }, { token: APP_FEED_SERVICE, optional: true }, { token: i2.AccountService }, { token: i3.AlertController }], target: i0.ɵɵFactoryTarget.Component });
|
|
262
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FeedsComponent, selector: "app-feed", inputs: { debug: "debug", mobile: "mobile", showHeader: "showHeader", showReadMoreButton: "showReadMoreButton", headerColor: "headerColor", cardColor: "cardColor", shape: "shape", class: "class", itemId: "itemId", filterItem: "filterItem", feeds: "feeds", urls: "urls", maxAgeInMonths: "maxAgeInMonths", maxContentLength: "maxContentLength" }, outputs: { editItem: "editItem", deleteItem: "deleteItem" }, host: { properties: { "class": "this.hostClass" } }, providers: [RxState], viewQueries: [{ propertyName: "modal", first: true, predicate: ["modal"], descendants: true }], ngImport: i0, template: "<!-- debug -->\n@if (debug) {\n <app-debug [title]=\"'Feed'\">\n <p>\n hasFeeds?: {{ hasFeeds$ | async }}\n <br />\n urls: {{ urls$ | async | json }}\n <br />\n shape: {{ shape }}\n </p>\n </app-debug>\n}\n\n@let feeds = feeds$ | async;\n@let userId = userId$ | async;\n\n@if (feeds | isNotEmptyArray) {\n <!-- top header -->\n @if (showHeader && (feeds | arrayFirst); as feed) {\n <ion-item lines=\"none\" [color]=\"headerColor\" class=\"feed-header shape-{{ shape }}\">\n <ion-icon slot=\"start\" name=\"megaphone\"></ion-icon>\n <ion-label>\n <b>{{ feed.title || ('SOCIAL.FEED.NEWS' | translate) }}</b>\n </ion-label>\n <ion-button slot=\"end\" fill=\"clear\" (click)=\"openFeedHome()\" shape=\"\">\n <ion-label translate>SOCIAL.FEED.SHOW_ALL_FEED</ion-label>\n <ion-icon slot=\"end\" name=\"chevron-forward-outline\"></ion-icon>\n </ion-button>\n </ion-item>\n }\n\n <div class=\"feed-content shape-{{ shape }} ion-no-padding\" [class.has-header]=\"showHeader\">\n <!-- feeds -->\n @for (feed of feeds; track feed.feed_url; let firstFeed = $first; let lastFeed = $last) {\n <!-- items -->\n @for (item of feed.items | arrayFilter: filterItem; track item.id; let firstItem = $first; let lastItem = $last) {\n <ion-card\n [class.first]=\"firstFeed && firstItem\"\n [class.last]=\"lastFeed && lastItem\"\n [color]=\"cardColor !== 'light-transparent' ? cardColor : undefined\"\n class=\"feed-item-card\"\n >\n <ion-card-header>\n <ion-card-subtitle style=\"vertical-align: middle\">\n <!-- Authors -->\n @for (author of item.authors || feed.authors; track author) {\n @if (author.name || author.avatar) {\n <ion-chip (click)=\"openUrl(author.url)\" tappable>\n @if (author.avatar) {\n <ion-avatar>\n <ion-img [src]=\"author.avatar\" [alt]=\"author.name\"></ion-img>\n </ion-avatar>\n }\n @if (author.name) {\n <ion-label class=\"author\">{{ author.name }}</ion-label>\n }\n </ion-chip>\n }\n }\n <ion-note class=\"ion-float-end\">\n <small>{{ item.date_published | dateFromNow }}</small>\n </ion-note>\n </ion-card-subtitle>\n\n <!-- title -->\n <ion-card-title (click)=\"openFeedItem(item, feed)\" tappable>{{ item?.title }}</ion-card-title>\n\n <!-- tags -->\n @let tags = item | map: getTags;\n @if (tags | isNotEmptyArray) {\n <ion-text class=\"tags\">\n @for (tag of tags; track tag; let last = $last) {\n <a (click)=\"openTag(feed, tag)\" tappable>\n <ion-text>#{{ tag }}</ion-text>\n </a>\n @if (!last) {\n \n }\n }\n </ion-text>\n }\n </ion-card-header>\n\n <!-- Feed content -->\n <ion-card-content>\n <ion-text [feed]=\"item.url || feed.feed_url\">\n @if (item.content_html) {\n <p [innerHTML]=\"item.content_html\"></p>\n } @else if (item.content_text) {\n <p>\n <markdown [data]=\"item.content_text\" emoji></markdown>\n </p>\n }\n </ion-text>\n </ion-card-content>\n\n @let editable = canEditItem(item, userId, feed);\n @if (editable || showReadMoreButton) {\n @if (editable) {\n\n <!-- Delete button (visible hover)-->\n <button\n mat-icon-button\n (click)=\"onDeleteItem($event, item)\"\n class=\"visible-hover ion-float-start\"\n [title]=\"'COMMON.BTN_DELETE' | translate\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n <!-- Edit button (visible hover) -->\n <ion-button\n (click)=\"onEditItem($event, item)\"\n class=\"visible-hover ion-float-start\" fill=\"clear\"\n >\n <mat-icon slot=\"start\">edit</mat-icon>\n<!-- <ion-icon name=\"pencil\" slot=\"start\"></ion-icon>-->\n <ion-label translate>COMMON.BTN_EDIT</ion-label>\n </ion-button>\n }\n @if (showReadMoreButton) {\n <ion-button (click)=\"openFeedItem(item, feed)\" class=\"ion-float-end\" fill=\"clear\">\n <ion-label>{{ (item.truncated ? 'SOCIAL.FEED.READ_MORE' : 'COMMON.BTN_SHOW') | translate }}</ion-label>\n <ion-icon slot=\"end\" name=\"chevron-forward-outline\"></ion-icon>\n </ion-button>\n }\n }\n </ion-card>\n }\n }\n </div>\n}\n\n<!-- Details modal -->\n<ion-modal #modal [showBackdrop]=\"false\"\n class=\"stack-modal\" [class.modal-large]=\"!mobile\">\n <ng-template>\n <ion-header>\n <ion-toolbar color=\"secondary\">\n <ion-title>{{ 'SOCIAL.FEED.NEWS' | translate }}</ion-title>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"modal.dismiss()\">\n <ion-icon slot=\"icon-only\" name=\"close\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n <ion-content>\n <div class=\"ion-padding\">\n <app-feed\n [urls]=\"urls\"\n [showHeader]=\"false\"\n [showReadMoreButton]=\"false\"\n [maxContentLength]=\"-1\"\n [maxAgeInMonths]=\"-1\"\n [itemId]=\"modalItemId\"\n cardColor=\"light\"\n [debug]=\"debug\"\n ></app-feed>\n </div>\n </ion-content>\n </ng-template>\n</ion-modal>\n", styles: [":host{display:block;height:calc(100% - 10px);max-height:fit-content;overflow:hidden;--feed-header-height: 48px;-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px rgba(0,0,0,.14),0 1px 5px rgba(0,0,0,.12);-webkit-margin-start:10px;margin-inline-start:10px;-webkit-margin-end:10px;margin-inline-end:10px;margin-top:0;margin-bottom:10px;--feed-border-radius: 4px;border-radius:var(--feed-border-radius);--ion-card-background: rgba(var(--ion-background-color-rgb), .6)}:host.shape-round{--feed-border-radius: 12px}ion-button{text-transform:unset;--color: rgba(var(--ion-color-contrast-rgb), .7)}ion-item.feed-header{height:var(--feed-header-height);margin:0;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-radius:var(--feed-border-radius) var(--feed-border-radius) 0 0}ion-item.feed-header ion-icon[slot=start]{-webkit-margin-end:8px;margin-inline-end:8px}.feed-content{height:auto;overflow-y:auto;--margin-bottom: 8px}.feed-content.has-header{height:calc(100% - var(--feed-header-height, 0))}.feed-content ion-card.feed-item-card{--top-radius: 4px;--bottom-radius: 4px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);margin:0 0 var(--margin-bottom) 0;border-radius:var(--top-radius) var(--top-radius) var(--bottom-radius) var(--bottom-radius);--ion-card-color-contrast-rgb: var(--ion-color-contrast-rgb, var(--ion-color-dark-rgb, 0, 0, 0));--color: rgba(var(--ion-card-color-contrast-rgb), .87)}.feed-content ion-card.feed-item-card.first{--top-radius: 0}.feed-content ion-card.feed-item-card.last{--margin-bottom: 0;--bottom-radius: 0}.feed-content ion-card.feed-item-card ion-card-header ion-card-title{--color: rgba(var(--ion-card-color-contrast-rgb), .87)}.feed-content ion-card.feed-item-card ion-card-header ion-card-subtitle ion-chip{--background: transparent;--border-color: transparent;--border-width: 0}.feed-content ion-card.feed-item-card ion-card-header ion-card-subtitle ion-chip ion-avatar{--color: rgba(var(--ion-card-color-contrast-rgb), .6);border:1px solid var(--color)}.feed-content ion-card.feed-item-card ion-card-header ion-card-subtitle ion-chip ion-label{--color: rgba(var(--ion-card-color-contrast-rgb), .8);color:var(--color)}.feed-content ion-card.feed-item-card ion-card-header ion-card-subtitle ion-note{--color: rgba(var(--ion-card-color-contrast-rgb), .6);color:var(--color)}.feed-content ion-card.feed-item-card ion-card-header .tags{display:inline}.feed-content ion-card.feed-item-card ion-card-header .tags a{color:rgba(var(--ion-card-color-contrast-rgb),.6)!important}.feed-content ion-card.feed-item-card ion-card-content ion-text ::ng-deep img{max-width:100%;height:auto!important}.feed-content ion-card.feed-item-card .visible-hover{opacity:0;transition:opacity .2s ease-in-out}.feed-content ion-card.feed-item-card:hover .visible-hover{opacity:1}\n"], dependencies: [{ kind: "component", type: i3.IonAvatar, selector: "ion-avatar" }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i3.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonChip, selector: "ion-chip", inputs: ["color", "disabled", "mode", "outline"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonNote, selector: "ion-note", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i3.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonModal, selector: "ion-modal" }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.MarkdownComponent, selector: "markdown, [markdown]", inputs: ["data", "src", "disableSanitizer", "inline", "clipboard", "clipboardButtonComponent", "clipboardButtonTemplate", "emoji", "katex", "katexOptions", "mermaid", "mermaidOptions", "lineHighlight", "line", "lineOffset", "lineNumbers", "start", "commandLine", "filterOutput", "host", "prompt", "output", "user"], outputs: ["error", "load", "ready"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.DebugComponent, selector: "app-debug", inputs: ["titlePrefix", "title", "enable", "expanded"] }, { kind: "directive", type: i9.MarkdownDirective, selector: "markdown,[markdown]" }, { kind: "component", type: FeedsComponent, selector: "app-feed", inputs: ["debug", "mobile", "showHeader", "showReadMoreButton", "headerColor", "cardColor", "shape", "class", "itemId", "filterItem", "feeds", "urls", "maxAgeInMonths", "maxContentLength"], outputs: ["editItem", "deleteItem"] }, { kind: "directive", type: i10.FeedDirective, selector: "feed,[feed]", inputs: ["feed"] }, { kind: "pipe", type: i11.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.JsonPipe, name: "json" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i12.DateFromNowPipe, name: "dateFromNow" }, { kind: "pipe", type: i13.NotEmptyArrayPipe, name: "isNotEmptyArray" }, { kind: "pipe", type: i13.ArrayFirstPipe, name: "arrayFirst" }, { kind: "pipe", type: i13.ArrayFilterPipe, name: "arrayFilter" }, { kind: "pipe", type: i14.MapPipe, name: "map" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
262
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FeedsComponent, selector: "app-feed", inputs: { debug: "debug", mobile: "mobile", showHeader: "showHeader", showReadMoreButton: "showReadMoreButton", headerColor: "headerColor", cardColor: "cardColor", shape: "shape", class: "class", itemId: "itemId", filterItem: "filterItem", feeds: "feeds", urls: "urls", maxAgeInMonths: "maxAgeInMonths", maxContentLength: "maxContentLength" }, outputs: { editItem: "editItem", deleteItem: "deleteItem" }, host: { properties: { "class": "this.hostClass" } }, providers: [RxState], viewQueries: [{ propertyName: "modal", first: true, predicate: ["modal"], descendants: true }], ngImport: i0, template: "<!-- debug -->\n@if (debug) {\n <app-debug [title]=\"'Feed'\">\n <p>\n hasFeeds?: {{ hasFeeds$ | async }}\n <br />\n urls: {{ urls$ | async | json }}\n <br />\n shape: {{ shape }}\n </p>\n </app-debug>\n}\n\n@let feeds = feeds$ | async;\n@let userId = userId$ | async;\n\n@if (feeds | isNotEmptyArray) {\n <!-- top header -->\n @if (showHeader && (feeds | arrayFirst); as feed) {\n <ion-item lines=\"none\" [color]=\"headerColor\" class=\"feed-header shape-{{ shape }}\">\n <ion-icon slot=\"start\" name=\"megaphone\"></ion-icon>\n <ion-label>\n <b>{{ feed.title || ('SOCIAL.FEED.NEWS' | translate) }}</b>\n </ion-label>\n <ion-button slot=\"end\" fill=\"clear\" (click)=\"openFeedHome()\" shape=\"\">\n <ion-label translate>SOCIAL.FEED.SHOW_ALL_FEED</ion-label>\n <ion-icon slot=\"end\" name=\"chevron-forward-outline\"></ion-icon>\n </ion-button>\n </ion-item>\n }\n\n <div class=\"feed-content shape-{{ shape }} ion-no-padding\" [class.has-header]=\"showHeader\">\n <!-- feeds -->\n @for (feed of feeds; track feed.feed_url; let firstFeed = $first; let lastFeed = $last) {\n <!-- items -->\n @for (item of feed.items | arrayFilter: filterItem; track item.id; let firstItem = $first; let lastItem = $last) {\n <ion-card\n [class.first]=\"firstFeed && firstItem\"\n [class.last]=\"lastFeed && lastItem\"\n [color]=\"cardColor !== 'light-transparent' ? cardColor : undefined\"\n class=\"feed-item-card\"\n >\n <ion-card-header>\n <ion-card-subtitle style=\"vertical-align: middle\">\n <!-- Authors -->\n @for (author of item.authors || feed.authors; track author) {\n @if (author.name || author.avatar) {\n <ion-chip (click)=\"openUrl(author.url)\" tappable>\n @if (author.avatar) {\n <ion-avatar>\n <ion-img [src]=\"author.avatar\" [alt]=\"author.name\"></ion-img>\n </ion-avatar>\n }\n @if (author.name) {\n <ion-label class=\"author\">{{ author.name }}</ion-label>\n }\n </ion-chip>\n }\n }\n <ion-note class=\"ion-float-end\">\n <small>{{ item.date_published | dateFromNow }}</small>\n </ion-note>\n </ion-card-subtitle>\n\n <!-- title -->\n <ion-card-title (click)=\"openFeedItem(item, feed)\" tappable>{{ item?.title }}</ion-card-title>\n\n <!-- tags -->\n @let tags = item | map: getTags;\n @if (tags | isNotEmptyArray) {\n <ion-text class=\"tags\">\n @for (tag of tags; track tag; let last = $last) {\n <a (click)=\"openTag(feed, tag)\" tappable>\n <ion-text>#{{ tag }}</ion-text>\n </a>\n @if (!last) {\n \n }\n }\n </ion-text>\n }\n </ion-card-header>\n\n <!-- Feed content -->\n <ion-card-content>\n <ion-text [feed]=\"item.url || feed.feed_url\">\n @if (item.content_html) {\n <p [innerHTML]=\"item.content_html\"></p>\n } @else if (item.content_text) {\n <p>\n <markdown [data]=\"item.content_text\" emoji></markdown>\n </p>\n }\n </ion-text>\n </ion-card-content>\n\n @let editable = canEditItem(item, userId, feed);\n @if (editable || showReadMoreButton) {\n @if (editable) {\n\n <!-- Delete button (visible hover)-->\n <button\n mat-icon-button\n (click)=\"onDeleteItem($event, item)\"\n class=\"visible-hover ion-float-start\"\n [title]=\"'COMMON.BTN_DELETE' | translate\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n <!-- Edit button (visible hover) -->\n <ion-button\n (click)=\"onEditItem($event, item)\"\n class=\"visible-hover ion-float-start\" fill=\"clear\"\n >\n <mat-icon slot=\"start\">edit</mat-icon>\n<!-- <ion-icon name=\"pencil\" slot=\"start\"></ion-icon>-->\n <ion-label translate>COMMON.BTN_EDIT</ion-label>\n </ion-button>\n }\n @if (showReadMoreButton) {\n <ion-button (click)=\"openFeedItem(item, feed)\" class=\"ion-float-end\" fill=\"clear\">\n <ion-label>{{ (item.truncated ? 'SOCIAL.FEED.READ_MORE' : 'COMMON.BTN_SHOW') | translate }}</ion-label>\n <ion-icon slot=\"end\" name=\"chevron-forward-outline\"></ion-icon>\n </ion-button>\n }\n }\n </ion-card>\n }\n }\n </div>\n}\n\n<!-- Details modal -->\n<ion-modal #modal [showBackdrop]=\"false\"\n class=\"stack-modal\" [class.modal-large]=\"!mobile\">\n <ng-template>\n <ion-header>\n <ion-toolbar color=\"secondary\">\n <ion-title>{{ 'SOCIAL.FEED.NEWS' | translate }}</ion-title>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"modal.dismiss()\">\n <ion-icon slot=\"icon-only\" name=\"close\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n <ion-content>\n <div class=\"ion-padding\">\n <app-feed\n [urls]=\"urls\"\n [showHeader]=\"false\"\n [showReadMoreButton]=\"false\"\n [maxContentLength]=\"-1\"\n [maxAgeInMonths]=\"-1\"\n [itemId]=\"modalItemId\"\n cardColor=\"light\"\n [debug]=\"debug\"\n ></app-feed>\n </div>\n </ion-content>\n </ng-template>\n</ion-modal>\n", styles: [":host{display:block;height:calc(100% - 10px);max-height:fit-content;overflow:hidden;--feed-header-height: 48px;-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;-webkit-margin-start:10px;margin-inline-start:10px;-webkit-margin-end:10px;margin-inline-end:10px;margin-top:0;margin-bottom:10px;--feed-border-radius: 4px;border-radius:var(--feed-border-radius);--ion-card-background: rgba(var(--ion-background-color-rgb), .6)}:host.shape-round{--feed-border-radius: 12px}ion-button{text-transform:unset;--color: rgba(var(--ion-color-contrast-rgb), .7)}ion-item.feed-header{height:var(--feed-header-height);margin:0;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-radius:var(--feed-border-radius) var(--feed-border-radius) 0 0}ion-item.feed-header ion-icon[slot=start]{-webkit-margin-end:8px;margin-inline-end:8px}.feed-content{height:auto;overflow-y:auto;--margin-bottom: 8px}.feed-content.has-header{height:calc(100% - var(--feed-header-height, 0))}.feed-content ion-card.feed-item-card{--top-radius: 4px;--bottom-radius: 4px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);margin:0 0 var(--margin-bottom) 0;border-radius:var(--top-radius) var(--top-radius) var(--bottom-radius) var(--bottom-radius);--ion-card-color-contrast-rgb: var(--ion-color-contrast-rgb, var(--ion-color-dark-rgb, 0, 0, 0));--color: rgba(var(--ion-card-color-contrast-rgb), .87)}.feed-content ion-card.feed-item-card.first{--top-radius: 0}.feed-content ion-card.feed-item-card.last{--margin-bottom: 0;--bottom-radius: 0}.feed-content ion-card.feed-item-card ion-card-header ion-card-title{--color: rgba(var(--ion-card-color-contrast-rgb), .87)}.feed-content ion-card.feed-item-card ion-card-header ion-card-subtitle ion-chip{--background: transparent;--border-color: transparent;--border-width: 0}.feed-content ion-card.feed-item-card ion-card-header ion-card-subtitle ion-chip ion-avatar{--color: rgba(var(--ion-card-color-contrast-rgb), .6);border:1px solid var(--color)}.feed-content ion-card.feed-item-card ion-card-header ion-card-subtitle ion-chip ion-label{--color: rgba(var(--ion-card-color-contrast-rgb), .8);color:var(--color)}.feed-content ion-card.feed-item-card ion-card-header ion-card-subtitle ion-note{--color: rgba(var(--ion-card-color-contrast-rgb), .6);color:var(--color)}.feed-content ion-card.feed-item-card ion-card-header .tags{display:inline}.feed-content ion-card.feed-item-card ion-card-header .tags a{color:rgba(var(--ion-card-color-contrast-rgb),.6)!important}.feed-content ion-card.feed-item-card ion-card-content ion-text ::ng-deep img{max-width:100%;height:auto!important}.feed-content ion-card.feed-item-card .visible-hover{opacity:0;transition:opacity .2s ease-in-out}.feed-content ion-card.feed-item-card:hover .visible-hover{opacity:1}\n"], dependencies: [{ kind: "component", type: i3.IonAvatar, selector: "ion-avatar" }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i3.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonChip, selector: "ion-chip", inputs: ["color", "disabled", "mode", "outline"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonNote, selector: "ion-note", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i3.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonModal, selector: "ion-modal" }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.MarkdownComponent, selector: "markdown, [markdown]", inputs: ["data", "src", "disableSanitizer", "inline", "clipboard", "clipboardButtonComponent", "clipboardButtonTemplate", "emoji", "katex", "katexOptions", "mermaid", "mermaidOptions", "lineHighlight", "line", "lineOffset", "lineNumbers", "start", "commandLine", "filterOutput", "host", "prompt", "output", "user"], outputs: ["error", "load", "ready"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.DebugComponent, selector: "app-debug", inputs: ["titlePrefix", "title", "enable", "expanded"] }, { kind: "directive", type: i9.MarkdownDirective, selector: "markdown,[markdown]" }, { kind: "component", type: FeedsComponent, selector: "app-feed", inputs: ["debug", "mobile", "showHeader", "showReadMoreButton", "headerColor", "cardColor", "shape", "class", "itemId", "filterItem", "feeds", "urls", "maxAgeInMonths", "maxContentLength"], outputs: ["editItem", "deleteItem"] }, { kind: "directive", type: i10.FeedDirective, selector: "feed,[feed]", inputs: ["feed"] }, { kind: "pipe", type: i11.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.JsonPipe, name: "json" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i12.DateFromNowPipe, name: "dateFromNow" }, { kind: "pipe", type: i13.NotEmptyArrayPipe, name: "isNotEmptyArray" }, { kind: "pipe", type: i13.ArrayFirstPipe, name: "arrayFirst" }, { kind: "pipe", type: i13.ArrayFilterPipe, name: "arrayFilter" }, { kind: "pipe", type: i14.MapPipe, name: "map" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
263
263
|
}
|
|
264
264
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FeedsComponent, decorators: [{
|
|
265
265
|
type: Component,
|
|
266
|
-
args: [{ selector: 'app-feed', providers: [RxState], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- debug -->\n@if (debug) {\n <app-debug [title]=\"'Feed'\">\n <p>\n hasFeeds?: {{ hasFeeds$ | async }}\n <br />\n urls: {{ urls$ | async | json }}\n <br />\n shape: {{ shape }}\n </p>\n </app-debug>\n}\n\n@let feeds = feeds$ | async;\n@let userId = userId$ | async;\n\n@if (feeds | isNotEmptyArray) {\n <!-- top header -->\n @if (showHeader && (feeds | arrayFirst); as feed) {\n <ion-item lines=\"none\" [color]=\"headerColor\" class=\"feed-header shape-{{ shape }}\">\n <ion-icon slot=\"start\" name=\"megaphone\"></ion-icon>\n <ion-label>\n <b>{{ feed.title || ('SOCIAL.FEED.NEWS' | translate) }}</b>\n </ion-label>\n <ion-button slot=\"end\" fill=\"clear\" (click)=\"openFeedHome()\" shape=\"\">\n <ion-label translate>SOCIAL.FEED.SHOW_ALL_FEED</ion-label>\n <ion-icon slot=\"end\" name=\"chevron-forward-outline\"></ion-icon>\n </ion-button>\n </ion-item>\n }\n\n <div class=\"feed-content shape-{{ shape }} ion-no-padding\" [class.has-header]=\"showHeader\">\n <!-- feeds -->\n @for (feed of feeds; track feed.feed_url; let firstFeed = $first; let lastFeed = $last) {\n <!-- items -->\n @for (item of feed.items | arrayFilter: filterItem; track item.id; let firstItem = $first; let lastItem = $last) {\n <ion-card\n [class.first]=\"firstFeed && firstItem\"\n [class.last]=\"lastFeed && lastItem\"\n [color]=\"cardColor !== 'light-transparent' ? cardColor : undefined\"\n class=\"feed-item-card\"\n >\n <ion-card-header>\n <ion-card-subtitle style=\"vertical-align: middle\">\n <!-- Authors -->\n @for (author of item.authors || feed.authors; track author) {\n @if (author.name || author.avatar) {\n <ion-chip (click)=\"openUrl(author.url)\" tappable>\n @if (author.avatar) {\n <ion-avatar>\n <ion-img [src]=\"author.avatar\" [alt]=\"author.name\"></ion-img>\n </ion-avatar>\n }\n @if (author.name) {\n <ion-label class=\"author\">{{ author.name }}</ion-label>\n }\n </ion-chip>\n }\n }\n <ion-note class=\"ion-float-end\">\n <small>{{ item.date_published | dateFromNow }}</small>\n </ion-note>\n </ion-card-subtitle>\n\n <!-- title -->\n <ion-card-title (click)=\"openFeedItem(item, feed)\" tappable>{{ item?.title }}</ion-card-title>\n\n <!-- tags -->\n @let tags = item | map: getTags;\n @if (tags | isNotEmptyArray) {\n <ion-text class=\"tags\">\n @for (tag of tags; track tag; let last = $last) {\n <a (click)=\"openTag(feed, tag)\" tappable>\n <ion-text>#{{ tag }}</ion-text>\n </a>\n @if (!last) {\n \n }\n }\n </ion-text>\n }\n </ion-card-header>\n\n <!-- Feed content -->\n <ion-card-content>\n <ion-text [feed]=\"item.url || feed.feed_url\">\n @if (item.content_html) {\n <p [innerHTML]=\"item.content_html\"></p>\n } @else if (item.content_text) {\n <p>\n <markdown [data]=\"item.content_text\" emoji></markdown>\n </p>\n }\n </ion-text>\n </ion-card-content>\n\n @let editable = canEditItem(item, userId, feed);\n @if (editable || showReadMoreButton) {\n @if (editable) {\n\n <!-- Delete button (visible hover)-->\n <button\n mat-icon-button\n (click)=\"onDeleteItem($event, item)\"\n class=\"visible-hover ion-float-start\"\n [title]=\"'COMMON.BTN_DELETE' | translate\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n <!-- Edit button (visible hover) -->\n <ion-button\n (click)=\"onEditItem($event, item)\"\n class=\"visible-hover ion-float-start\" fill=\"clear\"\n >\n <mat-icon slot=\"start\">edit</mat-icon>\n<!-- <ion-icon name=\"pencil\" slot=\"start\"></ion-icon>-->\n <ion-label translate>COMMON.BTN_EDIT</ion-label>\n </ion-button>\n }\n @if (showReadMoreButton) {\n <ion-button (click)=\"openFeedItem(item, feed)\" class=\"ion-float-end\" fill=\"clear\">\n <ion-label>{{ (item.truncated ? 'SOCIAL.FEED.READ_MORE' : 'COMMON.BTN_SHOW') | translate }}</ion-label>\n <ion-icon slot=\"end\" name=\"chevron-forward-outline\"></ion-icon>\n </ion-button>\n }\n }\n </ion-card>\n }\n }\n </div>\n}\n\n<!-- Details modal -->\n<ion-modal #modal [showBackdrop]=\"false\"\n class=\"stack-modal\" [class.modal-large]=\"!mobile\">\n <ng-template>\n <ion-header>\n <ion-toolbar color=\"secondary\">\n <ion-title>{{ 'SOCIAL.FEED.NEWS' | translate }}</ion-title>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"modal.dismiss()\">\n <ion-icon slot=\"icon-only\" name=\"close\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n <ion-content>\n <div class=\"ion-padding\">\n <app-feed\n [urls]=\"urls\"\n [showHeader]=\"false\"\n [showReadMoreButton]=\"false\"\n [maxContentLength]=\"-1\"\n [maxAgeInMonths]=\"-1\"\n [itemId]=\"modalItemId\"\n cardColor=\"light\"\n [debug]=\"debug\"\n ></app-feed>\n </div>\n </ion-content>\n </ng-template>\n</ion-modal>\n", styles: [":host{display:block;height:calc(100% - 10px);max-height:fit-content;overflow:hidden;--feed-header-height: 48px;-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 3px 1px -2px
|
|
266
|
+
args: [{ selector: 'app-feed', providers: [RxState], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- debug -->\n@if (debug) {\n <app-debug [title]=\"'Feed'\">\n <p>\n hasFeeds?: {{ hasFeeds$ | async }}\n <br />\n urls: {{ urls$ | async | json }}\n <br />\n shape: {{ shape }}\n </p>\n </app-debug>\n}\n\n@let feeds = feeds$ | async;\n@let userId = userId$ | async;\n\n@if (feeds | isNotEmptyArray) {\n <!-- top header -->\n @if (showHeader && (feeds | arrayFirst); as feed) {\n <ion-item lines=\"none\" [color]=\"headerColor\" class=\"feed-header shape-{{ shape }}\">\n <ion-icon slot=\"start\" name=\"megaphone\"></ion-icon>\n <ion-label>\n <b>{{ feed.title || ('SOCIAL.FEED.NEWS' | translate) }}</b>\n </ion-label>\n <ion-button slot=\"end\" fill=\"clear\" (click)=\"openFeedHome()\" shape=\"\">\n <ion-label translate>SOCIAL.FEED.SHOW_ALL_FEED</ion-label>\n <ion-icon slot=\"end\" name=\"chevron-forward-outline\"></ion-icon>\n </ion-button>\n </ion-item>\n }\n\n <div class=\"feed-content shape-{{ shape }} ion-no-padding\" [class.has-header]=\"showHeader\">\n <!-- feeds -->\n @for (feed of feeds; track feed.feed_url; let firstFeed = $first; let lastFeed = $last) {\n <!-- items -->\n @for (item of feed.items | arrayFilter: filterItem; track item.id; let firstItem = $first; let lastItem = $last) {\n <ion-card\n [class.first]=\"firstFeed && firstItem\"\n [class.last]=\"lastFeed && lastItem\"\n [color]=\"cardColor !== 'light-transparent' ? cardColor : undefined\"\n class=\"feed-item-card\"\n >\n <ion-card-header>\n <ion-card-subtitle style=\"vertical-align: middle\">\n <!-- Authors -->\n @for (author of item.authors || feed.authors; track author) {\n @if (author.name || author.avatar) {\n <ion-chip (click)=\"openUrl(author.url)\" tappable>\n @if (author.avatar) {\n <ion-avatar>\n <ion-img [src]=\"author.avatar\" [alt]=\"author.name\"></ion-img>\n </ion-avatar>\n }\n @if (author.name) {\n <ion-label class=\"author\">{{ author.name }}</ion-label>\n }\n </ion-chip>\n }\n }\n <ion-note class=\"ion-float-end\">\n <small>{{ item.date_published | dateFromNow }}</small>\n </ion-note>\n </ion-card-subtitle>\n\n <!-- title -->\n <ion-card-title (click)=\"openFeedItem(item, feed)\" tappable>{{ item?.title }}</ion-card-title>\n\n <!-- tags -->\n @let tags = item | map: getTags;\n @if (tags | isNotEmptyArray) {\n <ion-text class=\"tags\">\n @for (tag of tags; track tag; let last = $last) {\n <a (click)=\"openTag(feed, tag)\" tappable>\n <ion-text>#{{ tag }}</ion-text>\n </a>\n @if (!last) {\n \n }\n }\n </ion-text>\n }\n </ion-card-header>\n\n <!-- Feed content -->\n <ion-card-content>\n <ion-text [feed]=\"item.url || feed.feed_url\">\n @if (item.content_html) {\n <p [innerHTML]=\"item.content_html\"></p>\n } @else if (item.content_text) {\n <p>\n <markdown [data]=\"item.content_text\" emoji></markdown>\n </p>\n }\n </ion-text>\n </ion-card-content>\n\n @let editable = canEditItem(item, userId, feed);\n @if (editable || showReadMoreButton) {\n @if (editable) {\n\n <!-- Delete button (visible hover)-->\n <button\n mat-icon-button\n (click)=\"onDeleteItem($event, item)\"\n class=\"visible-hover ion-float-start\"\n [title]=\"'COMMON.BTN_DELETE' | translate\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n <!-- Edit button (visible hover) -->\n <ion-button\n (click)=\"onEditItem($event, item)\"\n class=\"visible-hover ion-float-start\" fill=\"clear\"\n >\n <mat-icon slot=\"start\">edit</mat-icon>\n<!-- <ion-icon name=\"pencil\" slot=\"start\"></ion-icon>-->\n <ion-label translate>COMMON.BTN_EDIT</ion-label>\n </ion-button>\n }\n @if (showReadMoreButton) {\n <ion-button (click)=\"openFeedItem(item, feed)\" class=\"ion-float-end\" fill=\"clear\">\n <ion-label>{{ (item.truncated ? 'SOCIAL.FEED.READ_MORE' : 'COMMON.BTN_SHOW') | translate }}</ion-label>\n <ion-icon slot=\"end\" name=\"chevron-forward-outline\"></ion-icon>\n </ion-button>\n }\n }\n </ion-card>\n }\n }\n </div>\n}\n\n<!-- Details modal -->\n<ion-modal #modal [showBackdrop]=\"false\"\n class=\"stack-modal\" [class.modal-large]=\"!mobile\">\n <ng-template>\n <ion-header>\n <ion-toolbar color=\"secondary\">\n <ion-title>{{ 'SOCIAL.FEED.NEWS' | translate }}</ion-title>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"modal.dismiss()\">\n <ion-icon slot=\"icon-only\" name=\"close\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n <ion-content>\n <div class=\"ion-padding\">\n <app-feed\n [urls]=\"urls\"\n [showHeader]=\"false\"\n [showReadMoreButton]=\"false\"\n [maxContentLength]=\"-1\"\n [maxAgeInMonths]=\"-1\"\n [itemId]=\"modalItemId\"\n cardColor=\"light\"\n [debug]=\"debug\"\n ></app-feed>\n </div>\n </ion-content>\n </ng-template>\n</ion-modal>\n", styles: [":host{display:block;height:calc(100% - 10px);max-height:fit-content;overflow:hidden;--feed-header-height: 48px;-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;-webkit-margin-start:10px;margin-inline-start:10px;-webkit-margin-end:10px;margin-inline-end:10px;margin-top:0;margin-bottom:10px;--feed-border-radius: 4px;border-radius:var(--feed-border-radius);--ion-card-background: rgba(var(--ion-background-color-rgb), .6)}:host.shape-round{--feed-border-radius: 12px}ion-button{text-transform:unset;--color: rgba(var(--ion-color-contrast-rgb), .7)}ion-item.feed-header{height:var(--feed-header-height);margin:0;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-radius:var(--feed-border-radius) var(--feed-border-radius) 0 0}ion-item.feed-header ion-icon[slot=start]{-webkit-margin-end:8px;margin-inline-end:8px}.feed-content{height:auto;overflow-y:auto;--margin-bottom: 8px}.feed-content.has-header{height:calc(100% - var(--feed-header-height, 0))}.feed-content ion-card.feed-item-card{--top-radius: 4px;--bottom-radius: 4px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);margin:0 0 var(--margin-bottom) 0;border-radius:var(--top-radius) var(--top-radius) var(--bottom-radius) var(--bottom-radius);--ion-card-color-contrast-rgb: var(--ion-color-contrast-rgb, var(--ion-color-dark-rgb, 0, 0, 0));--color: rgba(var(--ion-card-color-contrast-rgb), .87)}.feed-content ion-card.feed-item-card.first{--top-radius: 0}.feed-content ion-card.feed-item-card.last{--margin-bottom: 0;--bottom-radius: 0}.feed-content ion-card.feed-item-card ion-card-header ion-card-title{--color: rgba(var(--ion-card-color-contrast-rgb), .87)}.feed-content ion-card.feed-item-card ion-card-header ion-card-subtitle ion-chip{--background: transparent;--border-color: transparent;--border-width: 0}.feed-content ion-card.feed-item-card ion-card-header ion-card-subtitle ion-chip ion-avatar{--color: rgba(var(--ion-card-color-contrast-rgb), .6);border:1px solid var(--color)}.feed-content ion-card.feed-item-card ion-card-header ion-card-subtitle ion-chip ion-label{--color: rgba(var(--ion-card-color-contrast-rgb), .8);color:var(--color)}.feed-content ion-card.feed-item-card ion-card-header ion-card-subtitle ion-note{--color: rgba(var(--ion-card-color-contrast-rgb), .6);color:var(--color)}.feed-content ion-card.feed-item-card ion-card-header .tags{display:inline}.feed-content ion-card.feed-item-card ion-card-header .tags a{color:rgba(var(--ion-card-color-contrast-rgb),.6)!important}.feed-content ion-card.feed-item-card ion-card-content ion-text ::ng-deep img{max-width:100%;height:auto!important}.feed-content ion-card.feed-item-card .visible-hover{opacity:0;transition:opacity .2s ease-in-out}.feed-content ion-card.feed-item-card:hover .visible-hover{opacity:1}\n"] }]
|
|
267
267
|
}], ctorParameters: () => [{ type: i1.LocalSettingsService }, { type: i15.Environment, decorators: [{
|
|
268
268
|
type: Inject,
|
|
269
269
|
args: [ENVIRONMENT]
|
|
@@ -311,4 +311,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
311
311
|
type: ViewChild,
|
|
312
312
|
args: ['modal']
|
|
313
313
|
}] } });
|
|
314
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9mZWVkL2ZlZWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zb2NpYWwvZmVlZC9mZWVkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRSxPQUFPLEVBQTBCLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQWUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFbkYsT0FBTyxFQUFFLGdCQUFnQixFQUFnQixNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFJdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFP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Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFFTSxLQUFLO3NCQUFqQixLQUFLO2dCQVFPLElBQUk7c0JBQWhCLEtBQUs7Z0JBWU8sY0FBYztzQkFBMUIsS0FBSztnQkFRTyxnQkFBZ0I7c0JBQTVCLEtBQUs7Z0JBYUYsU0FBUztzQkFEWixXQUFXO3VCQUFDLE9BQU87Z0JBV0EsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0LFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJ4U3RhdGUgfSBmcm9tICdAcngtYW5ndWxhci9zdGF0ZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgYXJyYXlEaXN0aW5jdCwgaXNOaWwsIGlzTm90RW1wdHlBcnJheSB9IGZyb20gJy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgSnNvbkZlZWQsIEpzb25GZWVkSXRlbSwgSnNvbkZlZWRVdGlscyB9IGZyb20gJy4vZmVlZC5tb2RlbCc7XG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFBsYXRmb3JtU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvcGxhdGZvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudCwgRU5WSVJPTk1FTlQgfSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQuY2xhc3MnO1xuaW1wb3J0IHsgQXBwQ29sb3JzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3R5cGVzJztcbmltcG9ydCB7IEFQUF9GRUVEX1NFUlZJQ0UsIElGZWVkU2VydmljZSB9IGZyb20gJy4vZmVlZC5zZXJ2aWNlJztcbmltcG9ydCB7IE5ldHdvcmtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9uZXR3b3JrLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXJsVXRpbHMgfSBmcm9tICcuLi8uLi9zaGFyZWQvZmlsZS91cmwudXRpbHMnO1xuaW1wb3J0IHsgQWxlcnRDb250cm9sbGVyLCBJb25Nb2RhbCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IExvY2FsU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9sb2NhbC1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9hY2NvdW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFsZXJ0cyB9IGZyb20gJy4uLy4uL3NoYXJlZC9hbGVydHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZlZWRTdGF0ZTxUPiB7XG4gIHBlZXJVcmw6IHN0cmluZztcbiAgdXNlcklkOiBudW1iZXI7XG4gIG1heEFnZUluTW9udGhzOiBudW1iZXI7XG4gIG1heENvbnRlbnRMZW5ndGg6IG51bWJlcjtcbiAgdXJsczogc3RyaW5nW107XG4gIGZlZWRzOiBUW107XG4gIGhhc0ZlZWRzOiBib29sZWFuO1xuICBsb2NhbGU6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgRmlsdGVySXRlbUZ1bmN0aW9uID0gKGl0ZW06IEpzb25GZWVkSXRlbSkgPT4gYm9vbGVhbjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZlZWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmVlZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZlZWQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbUnhTdGF0ZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGZWVkc0NvbXBvbmVudDxUIGV4dGVuZHMgSnNvbkZlZWQgPSBKc29uRmVlZCwgUyBleHRlbmRzIEZlZWRTdGF0ZTxUPiA9IEZlZWRTdGF0ZTxUPj4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCBfc3RhdGUgPSBuZXcgUnhTdGF0ZTxTPigpO1xuICBwcm90ZWN0ZWQgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcGxhdGZvcm0gPSBpbmplY3QoUGxhdGZvcm1TZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIG5ldHdvcmtTZXJ2aWNlID0gaW5qZWN0KE5ldHdvcmtTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcm90ZWN0ZWQgdmVyc2lvbjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgbW9kYWxJdGVtSWQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIG9uUmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGZlZWRzJCA9IHRoaXMuX3N0YXRlLnNlbGVjdCgnZmVlZHMnKTtcbiAgdXJscyQgPSB0aGlzLl9zdGF0ZS5zZWxlY3QoJ3VybHMnKTtcbiAgaGFzRmVlZHMkID0gdGhpcy5fc3RhdGUuc2VsZWN0KCdoYXNGZWVkcycpO1xuICB1c2VySWQkID0gdGhpcy5fc3RhdGUuc2VsZWN0KCd1c2VySWQnKTtcblxuICBASW5wdXQoKSBkZWJ1ZyA9IGZhbHNlO1xuICBASW5wdXQoKSBtb2JpbGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNob3dIZWFkZXIgPSB0cnVlO1xuICBASW5wdXQoKSBzaG93UmVhZE1vcmVCdXR0b24gPSB0cnVlO1xuICBASW5wdXQoKSBoZWFkZXJDb2xvcjogQXBwQ29sb3JzID0gJ3NlY29uZGFyeSc7XG4gIEBJbnB1dCgpIGNhcmRDb2xvcjogQXBwQ29sb3JzIHwgJ2xpZ2h0LXRyYW5zcGFyZW50JyA9ICdsaWdodC10cmFuc3BhcmVudCc7XG4gIEBJbnB1dCgpIHNoYXBlOiAncm91bmQnIHwgJ2xlZ2FjeScgPSAnbGVnYWN5JztcbiAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBpdGVtSWQ6IHN0cmluZztcbiAgQElucHV0KCkgZmlsdGVySXRlbTogRmlsdGVySXRlbUZ1bmN0aW9uO1xuXG4gIEBPdXRwdXQoKSBlZGl0SXRlbSA9IG5ldyBFdmVudEVtaXR0ZXI8SnNvbkZlZWRJdGVtPigpO1xuICBAT3V0cHV0KCkgZGVsZXRlSXRlbSA9IG5ldyBFdmVudEVtaXR0ZXI8SnNvbkZlZWRJdGVtPigpO1xuXG4gIEBJbnB1dCgpIHNldCBmZWVkcyh2YWx1ZTogVFtdKSB7XG4gICAgdGhpcy5fc3RhdGUuc2V0KCdmZWVkcycsICgpID0+IHZhbHVlKTtcbiAgfVxuXG4gIGdldCBmZWVkcygpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGUuZ2V0KCdmZWVkcycpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHVybHModmFsdWU6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5fc3RhdGUuc2V0KCd1cmxzJywgKCkgPT4gdmFsdWUpO1xuICB9XG5cbiAgZ2V0IHVybHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlLmdldCgndXJscycpO1xuICB9XG5cbiAgZ2V0IGhhc0ZlZWRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZS5nZXQoJ2hhc0ZlZWRzJyk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgbWF4QWdlSW5Nb250aHModmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX3N0YXRlLnNldCgnbWF4QWdlSW5Nb250aHMnLCAoKSA9PiB2YWx1ZSk7XG4gIH1cblxuICBnZXQgbWF4QWdlSW5Nb250aHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlLmdldCgnbWF4QWdlSW5Nb250aHMnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBtYXhDb250ZW50TGVuZ3RoKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9zdGF0ZS5zZXQoJ21heENvbnRlbnRMZW5ndGgnLCAoKSA9PiB2YWx1ZSk7XG4gIH1cblxuICBnZXQgbWF4Q29udGVudExlbmd0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGUuZ2V0KCdtYXhDb250ZW50TGVuZ3RoJyk7XG4gIH1cblxuICBnZXQgcGVlclVybCgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGUuZ2V0KCdwZWVyVXJsJyk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNsYXNzZXMgPSBbdGhpcy5jbGFzc107XG5cbiAgICBpZiAodGhpcy5zaGFwZSkge1xuICAgICAgY2xhc3Nlcy5wdXNoKGBzaGFwZS0ke3RoaXMuc2hhcGV9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsYXNzZXMuZmlsdGVyKChjbHMpID0+IGNscykuam9pbignICcpO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnbW9kYWwnKSBtb2RhbDogSW9uTW9kYWw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2V0dGluZ3M6IExvY2FsU2V0dGluZ3NTZXJ2aWNlLFxuICAgIEBJbmplY3QoRU5WSVJPTk1FTlQpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBUFBfRkVFRF9TRVJWSUNFKSBwdWJsaWMgZmVlZFNlcnZpY2U6IElGZWVkU2VydmljZTxUPixcbiAgICBwcm90ZWN0ZWQgYWNjb3VudFNlcnZpY2U6IEFjY291bnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBhbGVydEN0cmw6IEFsZXJ0Q29udHJvbGxlclxuICApIHtcbiAgICB0aGlzLm1vYmlsZSA9IHNldHRpbmdzLm1vYmlsZTtcbiAgICB0aGlzLl9zdGF0ZS5jb25uZWN0KCdsb2NhbGUnLCBzZXR0aW5ncy5sb2NhbGUkKTtcbiAgICB0aGlzLl9zdGF0ZS5jb25uZWN0KCdoYXNGZWVkcycsIHRoaXMuZmVlZHMkLnBpcGUobWFwKGlzTm90RW1wdHlBcnJheSkpKTtcbiAgICB0aGlzLl9zdGF0ZS5jb25uZWN0KCd1c2VySWQnLCB0aGlzLmFjY291bnRTZXJ2aWNlLnBlcnNvbiQucGlwZShtYXAoKHBlcnNvbikgPT4gcGVyc29uPy5pZCkpKTtcbiAgICB0aGlzLl9zdGF0ZS5jb25uZWN0KCdwZWVyVXJsJywgdGhpcy5uZXR3b3JrU2VydmljZS5wZWVyJC5waXBlKG1hcCgocGVlcikgPT4gcGVlcj8udXJsKSkpO1xuXG4gICAgaWYgKHRoaXMuZmVlZFNlcnZpY2UpIHtcbiAgICAgIHRoaXMuX3N0YXRlLmNvbm5lY3QoXG4gICAgICAgICdmZWVkcycsXG4gICAgICAgIG1lcmdlKFxuICAgICAgICAgIHRoaXMub25SZWZyZXNoLnBpcGUobWFwKCgpID0+ICh7IC4uLnRoaXMuX3N0YXRlLmdldCgpLCBjYWNoZTogZmFsc2UgfSkpKSxcbiAgICAgICAgICB0aGlzLl9zdGF0ZVxuICAgICAgICAgICAgLnNlbGVjdChbJ3VybHMnLCAnbWF4QWdlSW5Nb250aHMnLCAnbWF4Q29udGVudExlbmd0aCcsICdsb2NhbGUnXSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgoeyB1cmxzLCBtYXhBZ2VJbk1vbnRocywgbWF4Q29udGVudExlbmd0aCwgbG9jYWxlIH0pID0+ICh7IHVybHMsIG1heEFnZUluTW9udGhzLCBtYXhDb250ZW50TGVuZ3RoLCBsb2NhbGUsIGNhY2hlOiB0cnVlIH0pKSlcbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcCgoeyB1cmxzLCBtYXhBZ2VJbk1vbnRocywgbWF4Q29udGVudExlbmd0aCwgbG9jYWxlLCBjYWNoZSB9KSA9PlxuICAgICAgICAgICAgdGhpcy5mZWVkU2VydmljZS53YXRjaEFsbCh7XG4gICAgICAgICAgICAgIHVybHM6IHVybHMsXG4gICAgICAgICAgICAgIG1heEFnZUluTW9udGhzLFxuICAgICAgICAgICAgICBtYXhDb250ZW50TGVuZ3RoLFxuICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgIGNhY2hlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApLFxuICAgICAgICAgIG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpXG5cbiAgICAgICAgICAvLyBERUJVR1xuICAgICAgICAgIC8vdGFwKChmZWVkcykgPT4gY29uc29sZS5kZWJ1ZygnW2ZlZWQtY29tcG9uZW50XSBmZWVkcycsIGZlZWRzKSlcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVybHMgPSB0aGlzLnVybHMgPz8gbnVsbDsgLy8gU2hvdWxkIHNldCB0aGUgdXJscywgaW4gb3JkZXIgdG8gdHJpZ2dlciB0aGUgc2VsZWN0IGluIGNvbnN0cnVjdG9yXG4gICAgdGhpcy5tYXhBZ2VJbk1vbnRocyA9IHRoaXMubWF4QWdlSW5Nb250aHMgPz8gdGhpcy5lbnZpcm9ubWVudC5mZWVkPy5tYXhBZ2VJbk1vbnRocyA/PyAtMTtcbiAgICB0aGlzLm1heENvbnRlbnRMZW5ndGggPSB0aGlzLm1heENvbnRlbnRMZW5ndGggPz8gdGhpcy5lbnZpcm9ubWVudC5mZWVkPy5tYXhDb250ZW50TGVuZ3RoID8/IC0xO1xuXG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5maWx0ZXJJdGVtID0gdGhpcy5maWx0ZXJJdGVtID8/ICgoaXRlbSkgPT4gIXNlbGYuaXRlbUlkIHx8IGl0ZW0uaWQgPT09IHNlbGYuaXRlbUlkKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3N0YXRlLm5nT25EZXN0cm95KCk7XG4gIH1cblxuICBhc3luYyBvcGVuRmVlZEhvbWUoZmVlZD86IFQpIHtcbiAgICBpZiAoIWZlZWQpIHtcbiAgICAgIC8vIFJlZHVjZSBmZWVkIGJ5IGhvbWUgdXJsIChrZWVwIG9uZSBmZWVkIGJ5IGhvbWUgdXJsKVxuICAgICAgY29uc3QgaG9tZVVybHMgPSBbXTtcbiAgICAgIGNvbnN0IGZlZWRzID0gdGhpcy5mZWVkcz8ucmVkdWNlKChyZXMsIGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5nZXRGZWVkSG9tZVVybChpdGVtKTtcbiAgICAgICAgaWYgKCF1cmwgfHwgaG9tZVVybHMuaW5jbHVkZXModXJsKSkgcmV0dXJuIHJlcztcbiAgICAgICAgcmV0dXJuIHJlcy5jb25jYXQoaXRlbSk7XG4gICAgICB9LCBbXSk7XG5cbiAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsXG4gICAgICBpZiAoaXNOb3RFbXB0eUFycmF5KGZlZWRzKSkge1xuICAgICAgICBmZWVkcy5mb3JFYWNoKChmKSA9PiB0aGlzLm9wZW5GZWVkSG9tZShmKSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdXJsID0gdGhpcy5nZXRGZWVkSG9tZVVybChmZWVkKTtcbiAgICBpZiAoIXVybCkgcmV0dXJuO1xuXG4gICAgLy8gRmVlZCBjb21lcyBmcm9tIHRoZSBjdXJyZW50IHBvZDpcbiAgICBpZiAodXJsLnN0YXJ0c1dpdGgodGhpcy5uZXR3b3JrU2VydmljZS5wZWVyPy51cmwpIHx8IFVybFV0aWxzLmlzSW50ZXJuYWxVcmwodXJsKSkge1xuICAgICAgYXdhaXQgdGhpcy5tb2RhbC5wcmVzZW50KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMub3BlblVybCh1cmwpO1xuICB9XG5cbiAgYXN5bmMgb3BlbkZlZWRJdGVtKGZlZWRJdGVtOiBKc29uRmVlZEl0ZW0sIGZlZWQ/OiBUKSB7XG4gICAgY29uc3QgdXJsID0gZmVlZEl0ZW0/LnVybCA/PyBmZWVkPy5mZWVkX3VybDtcbiAgICBpZiAoIXVybCB8fCAhdGhpcy5zaG93UmVhZE1vcmVCdXR0b24pIHJldHVybjtcblxuICAgIC8vIEZlZWQgY29tZXMgZnJvbSB0aGUgY3VycmVudCBwb2Q6XG4gICAgaWYgKHVybC5zdGFydHNXaXRoKHRoaXMubmV0d29ya1NlcnZpY2UucGVlcj8udXJsKSB8fCBVcmxVdGlscy5pc0ludGVybmFsVXJsKHVybCkpIHtcbiAgICAgIHRoaXMubW9kYWxJdGVtSWQgPSBmZWVkSXRlbS5pZDtcbiAgICAgIGF3YWl0IHRoaXMubW9kYWwucHJlc2VudCgpO1xuICAgICAgYXdhaXQgdGhpcy5tb2RhbC5vbkRpZERpc21pc3MoKTtcblxuICAgICAgLy8gUmVzZXQgaXRlbSBpZFxuICAgICAgdGhpcy5tb2RhbEl0ZW1JZCA9IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmaXhlZFVybCA9IEpzb25GZWVkVXRpbHMucmVtb3ZlSnNvbkV4dGVuc2lvbih1cmwpO1xuICAgIHJldHVybiB0aGlzLnBsYXRmb3JtLm9wZW4oZml4ZWRVcmwpO1xuICB9XG5cbiAgb3BlblVybCh1cmw6IHN0cmluZykge1xuICAgIGlmICghdXJsKSByZXR1cm47XG4gICAgY29uc3QgZml4ZWRVcmwgPSBKc29uRmVlZFV0aWxzLnJlbW92ZUpzb25FeHRlbnNpb24odXJsKTtcbiAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybS5vcGVuKGZpeGVkVXJsKTtcbiAgfVxuXG4gIG9wZW5UYWcoZmVlZDogVCwgdGFnOiBzdHJpbmcpIHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmZlZWRTZXJ2aWNlLmdldFRhZ1VybChmZWVkLCB0YWcpO1xuICAgIHJldHVybiB0aGlzLm9wZW5VcmwodXJsKTtcbiAgfVxuXG4gIGdldFRhZ3MoZmVlZE9ySXRlbT86IFQgfCBUWydpdGVtcyddWzBdKSB7XG4gICAgaWYgKEpzb25GZWVkVXRpbHMuaXNKc29uRmVlZChmZWVkT3JJdGVtKSkge1xuICAgICAgcmV0dXJuIGFycmF5RGlzdGluY3QoXG4gICAgICAgIChmZWVkT3JJdGVtLml0ZW1zIHx8IFtdKVxuICAgICAgICAgIC5tYXAoKGl0ZW0pID0+IGl0ZW0udGFncylcbiAgICAgICAgICAuZmlsdGVyKGlzTm90RW1wdHlBcnJheSlcbiAgICAgICAgICAuZmxhdCgpXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoSnNvbkZlZWRVdGlscy5pc0pzb25GZWVkSXRlbShmZWVkT3JJdGVtKSkge1xuICAgICAgcmV0dXJuIGFycmF5RGlzdGluY3QoKGZlZWRPckl0ZW0udGFncyB8fCBbXSkuZmxhdCgpKTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEZlZWRIb21lVXJsKGZlZWQ6IFQpIHtcbiAgICByZXR1cm4gZmVlZC5ob21lX3BhZ2VfdXJsID8/IEpzb25GZWVkVXRpbHMucmVtb3ZlSnNvbkV4dGVuc2lvbihmZWVkLmZlZWRfdXJsKSA/PyB0aGlzLmZlZWRTZXJ2aWNlLmdldEhvbWVVcmwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGUgY3VycmVudCB1c2VyIGlzIHRoZSBhdXRob3Igb2YgdGhlIGZlZWQgaXRlbVxuICAgKi9cbiAgY2FuRWRpdEl0ZW0gPSAoaXRlbTogSnNvbkZlZWRJdGVtLCB1c2VySWQ6IG51bWJlciwgZmVlZD86IFQpID0+IHtcbiAgICBpZiAoIWl0ZW0gfHwgaXNOaWwodXNlcklkKSkgcmV0dXJuIGZhbHNlOyAvLyBObyBpdGVtLCBvciB1c2VyIG5vdCBjb25uZWN0ZWRcblxuICAgIC8vIERFQlVHXG4gICAgLy9jb25zb2xlLmRlYnVnKCdbZmVlZC1jb21wb25lbnRdIGNhbkVkaXRJdGVtLi4uJyk7XG5cbiAgICAvLyBDaGVjayBmZWVkIFVSTCBwb2ludCBvbiB0aGUgY3VycmVudCBwZWVyICgvYXBpL2ZlZWQvIC4uLilcbiAgICBpZiAoIWl0ZW0udXJsPy5zdGFydHNXaXRoKHRoaXMucGVlclVybCkpIHJldHVybiBmYWxzZTtcblxuICAgIC8vIENoZWNrIGl0ZW0gYXV0aG9ycyBmaXJzdFxuICAgIGxldCBpc0F1dGhvciA9IGZhbHNlO1xuICAgIGlmIChpc05vdEVtcHR5QXJyYXkoaXRlbS5hdXRob3JzKSkge1xuICAgICAgaXNBdXRob3IgPSBpdGVtLmF1dGhvcnMuc29tZSgoYXV0aG9yKSA9PiArYXV0aG9yLmlkID09PSB1c2VySWQpO1xuICAgIH1cbiAgICAvLyBDaGVjayBmZWVkIGF1dGhvcnNcbiAgICBpZiAoIWlzQXV0aG9yICYmIGlzTm90RW1wdHlBcnJheShmZWVkPy5hdXRob3JzKSkge1xuICAgICAgaXNBdXRob3IgPSBmZWVkLmF1dGhvcnMuc29tZSgoYXV0aG9yKSA9PiArYXV0aG9yLmlkID09PSB1c2VySWQpO1xuICAgIH1cblxuICAgIHJldHVybiBpc0F1dGhvciB8fCB0aGlzLmFjY291bnRTZXJ2aWNlLmlzQWRtaW4oKTtcbiAgfTtcblxuICAvKipcbiAgICogSGFuZGxlIGVkaXQgaXRlbSBhY3Rpb25cbiAgICovXG4gIGFzeW5jIG9uRWRpdEl0ZW0oZXZlbnQ6IEV2ZW50LCBpdGVtOiBKc29uRmVlZEl0ZW0pIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5lZGl0SXRlbS5vYnNlcnZlZCkge1xuICAgICAgdGhpcy5lZGl0SXRlbS5lbWl0KGl0ZW0pO1xuICAgIH1cblxuICAgIGNvbnN0IGRvbmUgPSBhd2FpdCB0aGlzLmZlZWRTZXJ2aWNlPy5vcGVuRWRpdE1vZGFsKGV2ZW50LCBpdGVtKTtcbiAgICBpZiAoZG9uZSkge1xuICAgICAgLy8gZm9yY2UgYSByZWZyZXNoIG9mIHRoZSBmZWVkc1xuICAgICAgdGhpcy5vblJlZnJlc2guZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgZGVsZXRlIGl0ZW0gYWN0aW9uXG4gICAqL1xuICBhc3luYyBvbkRlbGV0ZUl0ZW0oZXZlbnQ6IEV2ZW50LCBpdGVtOiBKc29uRmVlZEl0ZW0pIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICAvLyBBc2sgZm9yIGNvbmZpcm1hdGlvbiBiZWZvcmUgZGVsZXRpb25cbiAgICBjb25zdCBjb25maXJtZWQgPSBhd2FpdCBBbGVydHMuYXNrQWN0aW9uQ29uZmlybWF0aW9uKHRoaXMuYWxlcnRDdHJsLCB0aGlzLnRyYW5zbGF0ZSwgdHJ1ZSwgZXZlbnQpO1xuICAgIGlmIChjb25maXJtZWQgIT09IHRydWUpIHtcbiAgICAgIHJldHVybjsgLy8gVXNlciBjYW5jZWxsZWQgb3IgZGlzbWlzc2VkXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGVsZXRlSXRlbS5vYnNlcnZlZCkge1xuICAgICAgdGhpcy5kZWxldGVJdGVtLmVtaXQoaXRlbSk7XG4gICAgfVxuXG4gICAgY29uc3QgZG9uZSA9IGF3YWl0IHRoaXMuZmVlZFNlcnZpY2U/LmRlbGV0ZUl0ZW0oaXRlbSk7XG4gICAgaWYgKGRvbmUpIHtcbiAgICAgIC8vIGZvcmNlIGEgcmVmcmVzaCBvZiB0aGUgZmVlZHNcbiAgICAgIHRoaXMub25SZWZyZXNoLmVtaXQoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjwhLS0gZGVidWcgLS0+XG5AaWYgKGRlYnVnKSB7XG4gIDxhcHAtZGVidWcgW3RpdGxlXT1cIidGZWVkJ1wiPlxuICAgIDxwPlxuICAgICAgaGFzRmVlZHM/OiB7eyBoYXNGZWVkcyQgfCBhc3luYyB9fVxuICAgICAgPGJyIC8+XG4gICAgICB1cmxzOiB7eyB1cmxzJCB8IGFzeW5jIHwganNvbiB9fVxuICAgICAgPGJyIC8+XG4gICAgICBzaGFwZToge3sgc2hhcGUgfX1cbiAgICA8L3A+XG4gIDwvYXBwLWRlYnVnPlxufVxuXG5AbGV0IGZlZWRzID0gZmVlZHMkIHwgYXN5bmM7XG5AbGV0IHVzZXJJZCA9IHVzZXJJZCQgfCBhc3luYztcblxuQGlmIChmZWVkcyB8IGlzTm90RW1wdHlBcnJheSkge1xuICA8IS0tIHRvcCBoZWFkZXIgLS0+XG4gIEBpZiAoc2hvd0hlYWRlciAmJiAoZmVlZHMgfCBhcnJheUZpcnN0KTsgYXMgZmVlZCkge1xuICAgIDxpb24taXRlbSBsaW5lcz1cIm5vbmVcIiBbY29sb3JdPVwiaGVhZGVyQ29sb3JcIiBjbGFzcz1cImZlZWQtaGVhZGVyIHNoYXBlLXt7IHNoYXBlIH19XCI+XG4gICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgbmFtZT1cIm1lZ2FwaG9uZVwiPjwvaW9uLWljb24+XG4gICAgICA8aW9uLWxhYmVsPlxuICAgICAgICA8Yj57eyBmZWVkLnRpdGxlIHx8ICgnU09DSUFMLkZFRUQuTkVXUycgfCB0cmFuc2xhdGUpIH19PC9iPlxuICAgICAgPC9pb24tbGFiZWw+XG4gICAgICA8aW9uLWJ1dHRvbiBzbG90PVwiZW5kXCIgZmlsbD1cImNsZWFyXCIgKGNsaWNrKT1cIm9wZW5GZWVkSG9tZSgpXCIgc2hhcGU9XCJcIj5cbiAgICAgICAgPGlvbi1sYWJlbCB0cmFuc2xhdGU+U09DSUFMLkZFRUQuU0hPV19BTExfRkVFRDwvaW9uLWxhYmVsPlxuICAgICAgICA8aW9uLWljb24gc2xvdD1cImVuZFwiIG5hbWU9XCJjaGV2cm9uLWZvcndhcmQtb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24taXRlbT5cbiAgfVxuXG4gIDxkaXYgY2xhc3M9XCJmZWVkLWNvbnRlbnQgc2hhcGUte3sgc2hhcGUgfX0gaW9uLW5vLXBhZGRpbmdcIiBbY2xhc3MuaGFzLWhlYWRlcl09XCJzaG93SGVhZGVyXCI+XG4gICAgPCEtLSBmZWVkcyAtLT5cbiAgICBAZm9yIChmZWVkIG9mIGZlZWRzOyB0cmFjayBmZWVkLmZlZWRfdXJsOyBsZXQgZmlyc3RGZWVkID0gJGZpcnN0OyBsZXQgbGFzdEZlZWQgPSAkbGFzdCkge1xuICAgICAgPCEtLSBpdGVtcyAtLT5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgZmVlZC5pdGVtcyB8IGFycmF5RmlsdGVyOiBmaWx0ZXJJdGVtOyB0cmFjayBpdGVtLmlkOyBsZXQgZmlyc3RJdGVtID0gJGZpcnN0OyBsZXQgbGFzdEl0ZW0gPSAkbGFzdCkge1xuICAgICAgICA8aW9uLWNhcmRcbiAgICAgICAgICBbY2xhc3MuZmlyc3RdPVwiZmlyc3RGZWVkICYmIGZpcnN0SXRlbVwiXG4gICAgICAgICAgW2NsYXNzLmxhc3RdPVwibGFzdEZlZWQgJiYgbGFzdEl0ZW1cIlxuICAgICAgICAgIFtjb2xvcl09XCJjYXJkQ29sb3IgIT09ICdsaWdodC10cmFuc3BhcmVudCcgPyBjYXJkQ29sb3IgOiB1bmRlZmluZWRcIlxuICAgICAgICAgIGNsYXNzPVwiZmVlZC1pdGVtLWNhcmRcIlxuICAgICAgICA+XG4gICAgICAgICAgPGlvbi1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgIDxpb24tY2FyZC1zdWJ0aXRsZSBzdHlsZT1cInZlcnRpY2FsLWFsaWduOiBtaWRkbGVcIj5cbiAgICAgICAgICAgICAgPCEtLSBBdXRob3JzIC0tPlxuICAgICAgICAgICAgICBAZm9yIChhdXRob3Igb2YgaXRlbS5hdXRob3JzIHx8IGZlZWQuYXV0aG9yczsgdHJhY2sgYXV0aG9yKSB7XG4gICAgICAgICAgICAgICAgQGlmIChhdXRob3IubmFtZSB8fCBhdXRob3IuYXZhdGFyKSB7XG4gICAgICAgICAgICAgICAgICA8aW9uLWNoaXAgKGNsaWNrKT1cIm9wZW5VcmwoYXV0aG9yLnVybClcIiB0YXBwYWJsZT5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChhdXRob3IuYXZhdGFyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1hdmF0YXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWltZyBbc3JjXT1cImF1dGhvci5hdmF0YXJcIiBbYWx0XT1cImF1dGhvci5uYW1lXCI+PC9pb24taW1nPlxuICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWF2YXRhcj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKGF1dGhvci5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cImF1dGhvclwiPnt7IGF1dGhvci5uYW1lIH19PC9pb24tbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvaW9uLWNoaXA+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxpb24tbm90ZSBjbGFzcz1cImlvbi1mbG9hdC1lbmRcIj5cbiAgICAgICAgICAgICAgICA8c21hbGw+e3sgaXRlbS5kYXRlX3B1Ymxpc2hlZCB8IGRhdGVGcm9tTm93IH19PC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9pb24tbm90ZT5cbiAgICAgICAgICAgIDwvaW9uLWNhcmQtc3VidGl0bGU+XG5cbiAgICAgICAgICAgIDwhLS0gdGl0bGUgLS0+XG4gICAgICAgICAgICA8aW9uLWNhcmQtdGl0bGUgKGNsaWNrKT1cIm9wZW5GZWVkSXRlbShpdGVtLCBmZWVkKVwiIHRhcHBhYmxlPnt7IGl0ZW0/LnRpdGxlIH19PC9pb24tY2FyZC10aXRsZT5cblxuICAgICAgICAgICAgPCEtLSB0YWdzIC0tPlxuICAgICAgICAgICAgQGxldCB0YWdzID0gaXRlbSB8IG1hcDogZ2V0VGFncztcbiAgICAgICAgICAgIEBpZiAodGFncyB8IGlzTm90RW1wdHlBcnJheSkge1xuICAgICAgICAgICAgICA8aW9uLXRleHQgY2xhc3M9XCJ0YWdzXCI+XG4gICAgICAgICAgICAgICAgQGZvciAodGFnIG9mIHRhZ3M7IHRyYWNrIHRhZzsgbGV0IGxhc3QgPSAkbGFzdCkge1xuICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cIm9wZW5UYWcoZmVlZCwgdGFnKVwiIHRhcHBhYmxlPlxuICAgICAgICAgICAgICAgICAgICA8aW9uLXRleHQ+I3t7IHRhZyB9fTwvaW9uLXRleHQ+XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICBAaWYgKCFsYXN0KSB7XG4gICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9pb24tdGV4dD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cblxuICAgICAgICAgIDwhLS0gRmVlZCBjb250ZW50IC0tPlxuICAgICAgICAgIDxpb24tY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgPGlvbi10ZXh0IFtmZWVkXT1cIml0ZW0udXJsIHx8IGZlZWQuZmVlZF91cmxcIj5cbiAgICAgICAgICAgICAgQGlmIChpdGVtLmNvbnRlbnRfaHRtbCkge1xuICAgICAgICAgICAgICAgIDxwIFtpbm5lckhUTUxdPVwiaXRlbS5jb250ZW50X2h0bWxcIj48L3A+XG4gICAgICAgICAgICAgIH0gQGVsc2UgaWYgKGl0ZW0uY29udGVudF90ZXh0KSB7XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICA8bWFya2Rvd24gW2RhdGFdPVwiaXRlbS5jb250ZW50X3RleHRcIiBlbW9qaT48L21hcmtkb3duPlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9pb24tdGV4dD5cbiAgICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG5cbiAgICAgICAgICBAbGV0IGVkaXRhYmxlID0gY2FuRWRpdEl0ZW0oaXRlbSwgdXNlcklkLCBmZWVkKTtcbiAgICAgICAgICBAaWYgKGVkaXRhYmxlIHx8IHNob3dSZWFkTW9yZUJ1dHRvbikge1xuICAgICAgICAgICAgQGlmIChlZGl0YWJsZSkge1xuXG4gICAgICAgICAgICAgIDwhLS0gRGVsZXRlIGJ1dHRvbiAodmlzaWJsZSBob3ZlciktLT5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRlbGV0ZUl0ZW0oJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ2aXNpYmxlLWhvdmVyIGlvbi1mbG9hdC1zdGFydFwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIidDT01NT04uQlROX0RFTEVURScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8IS0tIEVkaXQgYnV0dG9uICh2aXNpYmxlIGhvdmVyKSAtLT5cbiAgICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25FZGl0SXRlbSgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInZpc2libGUtaG92ZXIgaW9uLWZsb2F0LXN0YXJ0XCIgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBzbG90PVwic3RhcnRcIj5lZGl0PC9tYXQtaWNvbj5cbjwhLS0gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJwZW5jaWxcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPi0tPlxuICAgICAgICAgICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPkNPTU1PTi5CVE5fRURJVDwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHNob3dSZWFkTW9yZUJ1dHRvbikge1xuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiAgKGNsaWNrKT1cIm9wZW5GZWVkSXRlbShpdGVtLCBmZWVkKVwiIGNsYXNzPVwiaW9uLWZsb2F0LWVuZFwiIGZpbGw9XCJjbGVhclwiPlxuICAgICAgICAgICAgICAgIDxpb24tbGFiZWw+e3sgKGl0ZW0udHJ1bmNhdGVkID8gJ1NPQ0lBTC5GRUVELlJFQURfTU9SRScgOiAnQ09NTU9OLkJUTl9TSE9XJykgfCB0cmFuc2xhdGUgfX08L2lvbi1sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImVuZFwiIG5hbWU9XCJjaGV2cm9uLWZvcndhcmQtb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvaW9uLWNhcmQ+XG4gICAgICB9XG4gICAgfVxuICA8L2Rpdj5cbn1cblxuPCEtLSBEZXRhaWxzIG1vZGFsIC0tPlxuPGlvbi1tb2RhbCAjbW9kYWwgW3Nob3dCYWNrZHJvcF09XCJmYWxzZVwiXG4gICAgICAgICAgIGNsYXNzPVwic3RhY2stbW9kYWxcIiBbY2xhc3MubW9kYWwtbGFyZ2VdPVwiIW1vYmlsZVwiPlxuICA8bmctdGVtcGxhdGU+XG4gICAgPGlvbi1oZWFkZXI+XG4gICAgICA8aW9uLXRvb2xiYXIgY29sb3I9XCJzZWNvbmRhcnlcIj5cbiAgICAgICAgPGlvbi10aXRsZT57eyAnU09DSUFMLkZFRUQuTkVXUycgfCB0cmFuc2xhdGUgfX08L2lvbi10aXRsZT5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjbG9zZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICA8L2lvbi1oZWFkZXI+XG4gICAgPGlvbi1jb250ZW50PlxuICAgICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gICAgICAgIDxhcHAtZmVlZFxuICAgICAgICAgIFt1cmxzXT1cInVybHNcIlxuICAgICAgICAgIFtzaG93SGVhZGVyXT1cImZhbHNlXCJcbiAgICAgICAgICBbc2hvd1JlYWRNb3JlQnV0dG9uXT1cImZhbHNlXCJcbiAgICAgICAgICBbbWF4Q29udGVudExlbmd0aF09XCItMVwiXG4gICAgICAgICAgW21heEFnZUluTW9udGhzXT1cIi0xXCJcbiAgICAgICAgICBbaXRlbUlkXT1cIm1vZGFsSXRlbUlkXCJcbiAgICAgICAgICBjYXJkQ29sb3I9XCJsaWdodFwiXG4gICAgICAgICAgW2RlYnVnXT1cImRlYnVnXCJcbiAgICAgICAgPjwvYXBwLWZlZWQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2lvbi1jb250ZW50PlxuICA8L25nLXRlbXBsYXRlPlxuPC9pb24tbW9kYWw+XG4iXX0=
|
|
314
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9mZWVkL2ZlZWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zb2NpYWwvZmVlZC9mZWVkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRSxPQUFPLEVBQTBCLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQWUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFbkYsT0FBTyxFQUFFLGdCQUFnQixFQUFnQixNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFJdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFP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Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFFTSxLQUFLO3NCQUFqQixLQUFLO2dCQVFPLElBQUk7c0JBQWhCLEtBQUs7Z0JBWU8sY0FBYztzQkFBMUIsS0FBSztnQkFRTyxnQkFBZ0I7c0JBQTVCLEtBQUs7Z0JBYUYsU0FBUztzQkFEWixXQUFXO3VCQUFDLE9BQU87Z0JBV0EsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEluamVjdCxcclxuICBpbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPcHRpb25hbCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSeFN0YXRlIH0gZnJvbSAnQHJ4LWFuZ3VsYXIvc3RhdGUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGFycmF5RGlzdGluY3QsIGlzTmlsLCBpc05vdEVtcHR5QXJyYXkgfSBmcm9tICcuLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgSnNvbkZlZWQsIEpzb25GZWVkSXRlbSwgSnNvbkZlZWRVdGlscyB9IGZyb20gJy4vZmVlZC5tb2RlbCc7XHJcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBQbGF0Zm9ybVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL3BsYXRmb3JtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCwgRU5WSVJPTk1FTlQgfSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQuY2xhc3MnO1xyXG5pbXBvcnQgeyBBcHBDb2xvcnMgfSBmcm9tICcuLi8uLi9zaGFyZWQvdHlwZXMnO1xyXG5pbXBvcnQgeyBBUFBfRkVFRF9TRVJWSUNFLCBJRmVlZFNlcnZpY2UgfSBmcm9tICcuL2ZlZWQuc2VydmljZSc7XHJcbmltcG9ydCB7IE5ldHdvcmtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9uZXR3b3JrLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVcmxVdGlscyB9IGZyb20gJy4uLy4uL3NoYXJlZC9maWxlL3VybC51dGlscyc7XHJcbmltcG9ydCB7IEFsZXJ0Q29udHJvbGxlciwgSW9uTW9kYWwgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IExvY2FsU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9sb2NhbC1zZXR0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2FjY291bnQuc2VydmljZSc7XHJcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFsZXJ0cyB9IGZyb20gJy4uLy4uL3NoYXJlZC9hbGVydHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGZWVkU3RhdGU8VD4ge1xyXG4gIHBlZXJVcmw6IHN0cmluZztcclxuICB1c2VySWQ6IG51bWJlcjtcclxuICBtYXhBZ2VJbk1vbnRoczogbnVtYmVyO1xyXG4gIG1heENvbnRlbnRMZW5ndGg6IG51bWJlcjtcclxuICB1cmxzOiBzdHJpbmdbXTtcclxuICBmZWVkczogVFtdO1xyXG4gIGhhc0ZlZWRzOiBib29sZWFuO1xyXG4gIGxvY2FsZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBGaWx0ZXJJdGVtRnVuY3Rpb24gPSAoaXRlbTogSnNvbkZlZWRJdGVtKSA9PiBib29sZWFuO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZmVlZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZlZWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZlZWQuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtSeFN0YXRlXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZlZWRzQ29tcG9uZW50PFQgZXh0ZW5kcyBKc29uRmVlZCA9IEpzb25GZWVkLCBTIGV4dGVuZHMgRmVlZFN0YXRlPFQ+ID0gRmVlZFN0YXRlPFQ+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcm90ZWN0ZWQgX3N0YXRlID0gbmV3IFJ4U3RhdGU8Uz4oKTtcclxuICBwcm90ZWN0ZWQgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xyXG4gIHByb3RlY3RlZCBwbGF0Zm9ybSA9IGluamVjdChQbGF0Zm9ybVNlcnZpY2UpO1xyXG4gIHByb3RlY3RlZCBuZXR3b3JrU2VydmljZSA9IGluamVjdChOZXR3b3JrU2VydmljZSk7XHJcbiAgcHJvdGVjdGVkIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG4gIHByb3RlY3RlZCB2ZXJzaW9uOiBzdHJpbmc7XHJcbiAgcHJvdGVjdGVkIG1vZGFsSXRlbUlkOiBzdHJpbmc7XHJcbiAgcHJvdGVjdGVkIG9uUmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBmZWVkcyQgPSB0aGlzLl9zdGF0ZS5zZWxlY3QoJ2ZlZWRzJyk7XHJcbiAgdXJscyQgPSB0aGlzLl9zdGF0ZS5zZWxlY3QoJ3VybHMnKTtcclxuICBoYXNGZWVkcyQgPSB0aGlzLl9zdGF0ZS5zZWxlY3QoJ2hhc0ZlZWRzJyk7XHJcbiAgdXNlcklkJCA9IHRoaXMuX3N0YXRlLnNlbGVjdCgndXNlcklkJyk7XHJcblxyXG4gIEBJbnB1dCgpIGRlYnVnID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbW9iaWxlOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNob3dIZWFkZXIgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dSZWFkTW9yZUJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgaGVhZGVyQ29sb3I6IEFwcENvbG9ycyA9ICdzZWNvbmRhcnknO1xyXG4gIEBJbnB1dCgpIGNhcmRDb2xvcjogQXBwQ29sb3JzIHwgJ2xpZ2h0LXRyYW5zcGFyZW50JyA9ICdsaWdodC10cmFuc3BhcmVudCc7XHJcbiAgQElucHV0KCkgc2hhcGU6ICdyb3VuZCcgfCAnbGVnYWN5JyA9ICdsZWdhY3knO1xyXG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBpdGVtSWQ6IHN0cmluZztcclxuICBASW5wdXQoKSBmaWx0ZXJJdGVtOiBGaWx0ZXJJdGVtRnVuY3Rpb247XHJcblxyXG4gIEBPdXRwdXQoKSBlZGl0SXRlbSA9IG5ldyBFdmVudEVtaXR0ZXI8SnNvbkZlZWRJdGVtPigpO1xyXG4gIEBPdXRwdXQoKSBkZWxldGVJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxKc29uRmVlZEl0ZW0+KCk7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBmZWVkcyh2YWx1ZTogVFtdKSB7XHJcbiAgICB0aGlzLl9zdGF0ZS5zZXQoJ2ZlZWRzJywgKCkgPT4gdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZlZWRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlLmdldCgnZmVlZHMnKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCB1cmxzKHZhbHVlOiBzdHJpbmdbXSkge1xyXG4gICAgdGhpcy5fc3RhdGUuc2V0KCd1cmxzJywgKCkgPT4gdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHVybHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3RhdGUuZ2V0KCd1cmxzJyk7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzRmVlZHMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3RhdGUuZ2V0KCdoYXNGZWVkcycpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IG1heEFnZUluTW9udGhzKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3N0YXRlLnNldCgnbWF4QWdlSW5Nb250aHMnLCAoKSA9PiB2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgbWF4QWdlSW5Nb250aHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3RhdGUuZ2V0KCdtYXhBZ2VJbk1vbnRocycpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IG1heENvbnRlbnRMZW5ndGgodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5fc3RhdGUuc2V0KCdtYXhDb250ZW50TGVuZ3RoJywgKCkgPT4gdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1heENvbnRlbnRMZW5ndGgoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3RhdGUuZ2V0KCdtYXhDb250ZW50TGVuZ3RoJyk7XHJcbiAgfVxyXG5cclxuICBnZXQgcGVlclVybCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9zdGF0ZS5nZXQoJ3BlZXJVcmwnKTtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxyXG4gIGdldCBob3N0Q2xhc3MoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGNsYXNzZXMgPSBbdGhpcy5jbGFzc107XHJcblxyXG4gICAgaWYgKHRoaXMuc2hhcGUpIHtcclxuICAgICAgY2xhc3Nlcy5wdXNoKGBzaGFwZS0ke3RoaXMuc2hhcGV9YCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNsYXNzZXMuZmlsdGVyKChjbHMpID0+IGNscykuam9pbignICcpO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgnbW9kYWwnKSBtb2RhbDogSW9uTW9kYWw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgc2V0dGluZ3M6IExvY2FsU2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgQEluamVjdChFTlZJUk9OTUVOVCkgcHJvdGVjdGVkIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX0ZFRURfU0VSVklDRSkgcHVibGljIGZlZWRTZXJ2aWNlOiBJRmVlZFNlcnZpY2U8VD4sXHJcbiAgICBwcm90ZWN0ZWQgYWNjb3VudFNlcnZpY2U6IEFjY291bnRTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGFsZXJ0Q3RybDogQWxlcnRDb250cm9sbGVyXHJcbiAgKSB7XHJcbiAgICB0aGlzLm1vYmlsZSA9IHNldHRpbmdzLm1vYmlsZTtcclxuICAgIHRoaXMuX3N0YXRlLmNvbm5lY3QoJ2xvY2FsZScsIHNldHRpbmdzLmxvY2FsZSQpO1xyXG4gICAgdGhpcy5fc3RhdGUuY29ubmVjdCgnaGFzRmVlZHMnLCB0aGlzLmZlZWRzJC5waXBlKG1hcChpc05vdEVtcHR5QXJyYXkpKSk7XHJcbiAgICB0aGlzLl9zdGF0ZS5jb25uZWN0KCd1c2VySWQnLCB0aGlzLmFjY291bnRTZXJ2aWNlLnBlcnNvbiQucGlwZShtYXAoKHBlcnNvbikgPT4gcGVyc29uPy5pZCkpKTtcclxuICAgIHRoaXMuX3N0YXRlLmNvbm5lY3QoJ3BlZXJVcmwnLCB0aGlzLm5ldHdvcmtTZXJ2aWNlLnBlZXIkLnBpcGUobWFwKChwZWVyKSA9PiBwZWVyPy51cmwpKSk7XHJcblxyXG4gICAgaWYgKHRoaXMuZmVlZFNlcnZpY2UpIHtcclxuICAgICAgdGhpcy5fc3RhdGUuY29ubmVjdChcclxuICAgICAgICAnZmVlZHMnLFxyXG4gICAgICAgIG1lcmdlKFxyXG4gICAgICAgICAgdGhpcy5vblJlZnJlc2gucGlwZShtYXAoKCkgPT4gKHsgLi4udGhpcy5fc3RhdGUuZ2V0KCksIGNhY2hlOiBmYWxzZSB9KSkpLFxyXG4gICAgICAgICAgdGhpcy5fc3RhdGVcclxuICAgICAgICAgICAgLnNlbGVjdChbJ3VybHMnLCAnbWF4QWdlSW5Nb250aHMnLCAnbWF4Q29udGVudExlbmd0aCcsICdsb2NhbGUnXSlcclxuICAgICAgICAgICAgLnBpcGUobWFwKCh7IHVybHMsIG1heEFnZUluTW9udGhzLCBtYXhDb250ZW50TGVuZ3RoLCBsb2NhbGUgfSkgPT4gKHsgdXJscywgbWF4QWdlSW5Nb250aHMsIG1heENvbnRlbnRMZW5ndGgsIGxvY2FsZSwgY2FjaGU6IHRydWUgfSkpKVxyXG4gICAgICAgICkucGlwZShcclxuICAgICAgICAgIHN3aXRjaE1hcCgoeyB1cmxzLCBtYXhBZ2VJbk1vbnRocywgbWF4Q29udGVudExlbmd0aCwgbG9jYWxlLCBjYWNoZSB9KSA9PlxyXG4gICAgICAgICAgICB0aGlzLmZlZWRTZXJ2aWNlLndhdGNoQWxsKHtcclxuICAgICAgICAgICAgICB1cmxzOiB1cmxzLFxyXG4gICAgICAgICAgICAgIG1heEFnZUluTW9udGhzLFxyXG4gICAgICAgICAgICAgIG1heENvbnRlbnRMZW5ndGgsXHJcbiAgICAgICAgICAgICAgbG9jYWxlLFxyXG4gICAgICAgICAgICAgIGNhY2hlLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKSxcclxuICAgICAgICAgIG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpXHJcblxyXG4gICAgICAgICAgLy8gREVCVUdcclxuICAgICAgICAgIC8vdGFwKChmZWVkcykgPT4gY29uc29sZS5kZWJ1ZygnW2ZlZWQtY29tcG9uZW50XSBmZWVkcycsIGZlZWRzKSlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMudXJscyA9IHRoaXMudXJscyA/PyBudWxsOyAvLyBTaG91bGQgc2V0IHRoZSB1cmxzLCBpbiBvcmRlciB0byB0cmlnZ2VyIHRoZSBzZWxlY3QgaW4gY29uc3RydWN0b3JcclxuICAgIHRoaXMubWF4QWdlSW5Nb250aHMgPSB0aGlzLm1heEFnZUluTW9udGhzID8/IHRoaXMuZW52aXJvbm1lbnQuZmVlZD8ubWF4QWdlSW5Nb250aHMgPz8gLTE7XHJcbiAgICB0aGlzLm1heENvbnRlbnRMZW5ndGggPSB0aGlzLm1heENvbnRlbnRMZW5ndGggPz8gdGhpcy5lbnZpcm9ubWVudC5mZWVkPy5tYXhDb250ZW50TGVuZ3RoID8/IC0xO1xyXG5cclxuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgdGhpcy5maWx0ZXJJdGVtID0gdGhpcy5maWx0ZXJJdGVtID8/ICgoaXRlbSkgPT4gIXNlbGYuaXRlbUlkIHx8IGl0ZW0uaWQgPT09IHNlbGYuaXRlbUlkKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fc3RhdGUubmdPbkRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG9wZW5GZWVkSG9tZShmZWVkPzogVCkge1xyXG4gICAgaWYgKCFmZWVkKSB7XHJcbiAgICAgIC8vIFJlZHVjZSBmZWVkIGJ5IGhvbWUgdXJsIChrZWVwIG9uZSBmZWVkIGJ5IGhvbWUgdXJsKVxyXG4gICAgICBjb25zdCBob21lVXJscyA9IFtdO1xyXG4gICAgICBjb25zdCBmZWVkcyA9IHRoaXMuZmVlZHM/LnJlZHVjZSgocmVzLCBpdGVtKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5nZXRGZWVkSG9tZVVybChpdGVtKTtcclxuICAgICAgICBpZiAoIXVybCB8fCBob21lVXJscy5pbmNsdWRlcyh1cmwpKSByZXR1cm4gcmVzO1xyXG4gICAgICAgIHJldHVybiByZXMuY29uY2F0KGl0ZW0pO1xyXG4gICAgICB9LCBbXSk7XHJcblxyXG4gICAgICAvLyBSZWN1cnNpdmUgY2FsbFxyXG4gICAgICBpZiAoaXNOb3RFbXB0eUFycmF5KGZlZWRzKSkge1xyXG4gICAgICAgIGZlZWRzLmZvckVhY2goKGYpID0+IHRoaXMub3BlbkZlZWRIb21lKGYpKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdXJsID0gdGhpcy5nZXRGZWVkSG9tZVVybChmZWVkKTtcclxuICAgIGlmICghdXJsKSByZXR1cm47XHJcblxyXG4gICAgLy8gRmVlZCBjb21lcyBmcm9tIHRoZSBjdXJyZW50IHBvZDpcclxuICAgIGlmICh1cmwuc3RhcnRzV2l0aCh0aGlzLm5ldHdvcmtTZXJ2aWNlLnBlZXI/LnVybCkgfHwgVXJsVXRpbHMuaXNJbnRlcm5hbFVybCh1cmwpKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMubW9kYWwucHJlc2VudCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMub3BlblVybCh1cmwpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgb3BlbkZlZWRJdGVtKGZlZWRJdGVtOiBKc29uRmVlZEl0ZW0sIGZlZWQ/OiBUKSB7XHJcbiAgICBjb25zdCB1cmwgPSBmZWVkSXRlbT8udXJsID8/IGZlZWQ/LmZlZWRfdXJsO1xyXG4gICAgaWYgKCF1cmwgfHwgIXRoaXMuc2hvd1JlYWRNb3JlQnV0dG9uKSByZXR1cm47XHJcblxyXG4gICAgLy8gRmVlZCBjb21lcyBmcm9tIHRoZSBjdXJyZW50IHBvZDpcclxuICAgIGlmICh1cmwuc3RhcnRzV2l0aCh0aGlzLm5ldHdvcmtTZXJ2aWNlLnBlZXI/LnVybCkgfHwgVXJsVXRpbHMuaXNJbnRlcm5hbFVybCh1cmwpKSB7XHJcbiAgICAgIHRoaXMubW9kYWxJdGVtSWQgPSBmZWVkSXRlbS5pZDtcclxuICAgICAgYXdhaXQgdGhpcy5tb2RhbC5wcmVzZW50KCk7XHJcbiAgICAgIGF3YWl0IHRoaXMubW9kYWwub25EaWREaXNtaXNzKCk7XHJcblxyXG4gICAgICAvLyBSZXNldCBpdGVtIGlkXHJcbiAgICAgIHRoaXMubW9kYWxJdGVtSWQgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmaXhlZFVybCA9IEpzb25GZWVkVXRpbHMucmVtb3ZlSnNvbkV4dGVuc2lvbih1cmwpO1xyXG4gICAgcmV0dXJuIHRoaXMucGxhdGZvcm0ub3BlbihmaXhlZFVybCk7XHJcbiAgfVxyXG5cclxuICBvcGVuVXJsKHVybDogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXVybCkgcmV0dXJuO1xyXG4gICAgY29uc3QgZml4ZWRVcmwgPSBKc29uRmVlZFV0aWxzLnJlbW92ZUpzb25FeHRlbnNpb24odXJsKTtcclxuICAgIHJldHVybiB0aGlzLnBsYXRmb3JtLm9wZW4oZml4ZWRVcmwpO1xyXG4gIH1cclxuXHJcbiAgb3BlblRhZyhmZWVkOiBULCB0YWc6IHN0cmluZykge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5mZWVkU2VydmljZS5nZXRUYWdVcmwoZmVlZCwgdGFnKTtcclxuICAgIHJldHVybiB0aGlzLm9wZW5VcmwodXJsKTtcclxuICB9XHJcblxyXG4gIGdldFRhZ3MoZmVlZE9ySXRlbT86IFQgfCBUWydpdGVtcyddWzBdKSB7XHJcbiAgICBpZiAoSnNvbkZlZWRVdGlscy5pc0pzb25GZWVkKGZlZWRPckl0ZW0pKSB7XHJcbiAgICAgIHJldHVybiBhcnJheURpc3RpbmN0KFxyXG4gICAgICAgIChmZWVkT3JJdGVtLml0ZW1zIHx8IFtdKVxyXG4gICAgICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbS50YWdzKVxyXG4gICAgICAgICAgLmZpbHRlcihpc05vdEVtcHR5QXJyYXkpXHJcbiAgICAgICAgICAuZmxhdCgpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAoSnNvbkZlZWRVdGlscy5pc0pzb25GZWVkSXRlbShmZWVkT3JJdGVtKSkge1xyXG4gICAgICByZXR1cm4gYXJyYXlEaXN0aW5jdCgoZmVlZE9ySXRlbS50YWdzIHx8IFtdKS5mbGF0KCkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldEZlZWRIb21lVXJsKGZlZWQ6IFQpIHtcclxuICAgIHJldHVybiBmZWVkLmhvbWVfcGFnZV91cmwgPz8gSnNvbkZlZWRVdGlscy5yZW1vdmVKc29uRXh0ZW5zaW9uKGZlZWQuZmVlZF91cmwpID8/IHRoaXMuZmVlZFNlcnZpY2UuZ2V0SG9tZVVybCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgdGhlIGN1cnJlbnQgdXNlciBpcyB0aGUgYXV0aG9yIG9mIHRoZSBmZWVkIGl0ZW1cclxuICAgKi9cclxuICBjYW5FZGl0SXRlbSA9IChpdGVtOiBKc29uRmVlZEl0ZW0sIHVzZXJJZDogbnVtYmVyLCBmZWVkPzogVCkgPT4ge1xyXG4gICAgaWYgKCFpdGVtIHx8IGlzTmlsKHVzZXJJZCkpIHJldHVybiBmYWxzZTsgLy8gTm8gaXRlbSwgb3IgdXNlciBub3QgY29ubmVjdGVkXHJcblxyXG4gICAgLy8gREVCVUdcclxuICAgIC8vY29uc29sZS5kZWJ1ZygnW2ZlZWQtY29tcG9uZW50XSBjYW5FZGl0SXRlbS4uLicpO1xyXG5cclxuICAgIC8vIENoZWNrIGZlZWQgVVJMIHBvaW50IG9uIHRoZSBjdXJyZW50IHBlZXIgKC9hcGkvZmVlZC8gLi4uKVxyXG4gICAgaWYgKCFpdGVtLnVybD8uc3RhcnRzV2l0aCh0aGlzLnBlZXJVcmwpKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgLy8gQ2hlY2sgaXRlbSBhdXRob3JzIGZpcnN0XHJcbiAgICBsZXQgaXNBdXRob3IgPSBmYWxzZTtcclxuICAgIGlmIChpc05vdEVtcHR5QXJyYXkoaXRlbS5hdXRob3JzKSkge1xyXG4gICAgICBpc0F1dGhvciA9IGl0ZW0uYXV0aG9ycy5zb21lKChhdXRob3IpID0+ICthdXRob3IuaWQgPT09IHVzZXJJZCk7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBmZWVkIGF1dGhvcnNcclxuICAgIGlmICghaXNBdXRob3IgJiYgaXNOb3RFbXB0eUFycmF5KGZlZWQ/LmF1dGhvcnMpKSB7XHJcbiAgICAgIGlzQXV0aG9yID0gZmVlZC5hdXRob3JzLnNvbWUoKGF1dGhvcikgPT4gK2F1dGhvci5pZCA9PT0gdXNlcklkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaXNBdXRob3IgfHwgdGhpcy5hY2NvdW50U2VydmljZS5pc0FkbWluKCk7XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlIGVkaXQgaXRlbSBhY3Rpb25cclxuICAgKi9cclxuICBhc3luYyBvbkVkaXRJdGVtKGV2ZW50OiBFdmVudCwgaXRlbTogSnNvbkZlZWRJdGVtKSB7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZWRpdEl0ZW0ub2JzZXJ2ZWQpIHtcclxuICAgICAgdGhpcy5lZGl0SXRlbS5lbWl0KGl0ZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGRvbmUgPSBhd2FpdCB0aGlzLmZlZWRTZXJ2aWNlPy5vcGVuRWRpdE1vZGFsKGV2ZW50LCBpdGVtKTtcclxuICAgIGlmIChkb25lKSB7XHJcbiAgICAgIC8vIGZvcmNlIGEgcmVmcmVzaCBvZiB0aGUgZmVlZHNcclxuICAgICAgdGhpcy5vblJlZnJlc2guZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlIGRlbGV0ZSBpdGVtIGFjdGlvblxyXG4gICAqL1xyXG4gIGFzeW5jIG9uRGVsZXRlSXRlbShldmVudDogRXZlbnQsIGl0ZW06IEpzb25GZWVkSXRlbSkge1xyXG4gICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEFzayBmb3IgY29uZmlybWF0aW9uIGJlZm9yZSBkZWxldGlvblxyXG4gICAgY29uc3QgY29uZmlybWVkID0gYXdhaXQgQWxlcnRzLmFza0FjdGlvbkNvbmZpcm1hdGlvbih0aGlzLmFsZXJ0Q3RybCwgdGhpcy50cmFuc2xhdGUsIHRydWUsIGV2ZW50KTtcclxuICAgIGlmIChjb25maXJtZWQgIT09IHRydWUpIHtcclxuICAgICAgcmV0dXJuOyAvLyBVc2VyIGNhbmNlbGxlZCBvciBkaXNtaXNzZWRcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kZWxldGVJdGVtLm9ic2VydmVkKSB7XHJcbiAgICAgIHRoaXMuZGVsZXRlSXRlbS5lbWl0KGl0ZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGRvbmUgPSBhd2FpdCB0aGlzLmZlZWRTZXJ2aWNlPy5kZWxldGVJdGVtKGl0ZW0pO1xyXG4gICAgaWYgKGRvbmUpIHtcclxuICAgICAgLy8gZm9yY2UgYSByZWZyZXNoIG9mIHRoZSBmZWVkc1xyXG4gICAgICB0aGlzLm9uUmVmcmVzaC5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gZGVidWcgLS0+XG5AaWYgKGRlYnVnKSB7XG4gIDxhcHAtZGVidWcgW3RpdGxlXT1cIidGZWVkJ1wiPlxuICAgIDxwPlxuICAgICAgaGFzRmVlZHM/OiB7eyBoYXNGZWVkcyQgfCBhc3luYyB9fVxuICAgICAgPGJyIC8+XG4gICAgICB1cmxzOiB7eyB1cmxzJCB8IGFzeW5jIHwganNvbiB9fVxuICAgICAgPGJyIC8+XG4gICAgICBzaGFwZToge3sgc2hhcGUgfX1cbiAgICA8L3A+XG4gIDwvYXBwLWRlYnVnPlxufVxuXG5AbGV0IGZlZWRzID0gZmVlZHMkIHwgYXN5bmM7XG5AbGV0IHVzZXJJZCA9IHVzZXJJZCQgfCBhc3luYztcblxuQGlmIChmZWVkcyB8IGlzTm90RW1wdHlBcnJheSkge1xuICA8IS0tIHRvcCBoZWFkZXIgLS0+XG4gIEBpZiAoc2hvd0hlYWRlciAmJiAoZmVlZHMgfCBhcnJheUZpcnN0KTsgYXMgZmVlZCkge1xuICAgIDxpb24taXRlbSBsaW5lcz1cIm5vbmVcIiBbY29sb3JdPVwiaGVhZGVyQ29sb3JcIiBjbGFzcz1cImZlZWQtaGVhZGVyIHNoYXBlLXt7IHNoYXBlIH19XCI+XG4gICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgbmFtZT1cIm1lZ2FwaG9uZVwiPjwvaW9uLWljb24+XG4gICAgICA8aW9uLWxhYmVsPlxuICAgICAgICA8Yj57eyBmZWVkLnRpdGxlIHx8ICgnU09DSUFMLkZFRUQuTkVXUycgfCB0cmFuc2xhdGUpIH19PC9iPlxuICAgICAgPC9pb24tbGFiZWw+XG4gICAgICA8aW9uLWJ1dHRvbiBzbG90PVwiZW5kXCIgZmlsbD1cImNsZWFyXCIgKGNsaWNrKT1cIm9wZW5GZWVkSG9tZSgpXCIgc2hhcGU9XCJcIj5cbiAgICAgICAgPGlvbi1sYWJlbCB0cmFuc2xhdGU+U09DSUFMLkZFRUQuU0hPV19BTExfRkVFRDwvaW9uLWxhYmVsPlxuICAgICAgICA8aW9uLWljb24gc2xvdD1cImVuZFwiIG5hbWU9XCJjaGV2cm9uLWZvcndhcmQtb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24taXRlbT5cbiAgfVxuXG4gIDxkaXYgY2xhc3M9XCJmZWVkLWNvbnRlbnQgc2hhcGUte3sgc2hhcGUgfX0gaW9uLW5vLXBhZGRpbmdcIiBbY2xhc3MuaGFzLWhlYWRlcl09XCJzaG93SGVhZGVyXCI+XG4gICAgPCEtLSBmZWVkcyAtLT5cbiAgICBAZm9yIChmZWVkIG9mIGZlZWRzOyB0cmFjayBmZWVkLmZlZWRfdXJsOyBsZXQgZmlyc3RGZWVkID0gJGZpcnN0OyBsZXQgbGFzdEZlZWQgPSAkbGFzdCkge1xuICAgICAgPCEtLSBpdGVtcyAtLT5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgZmVlZC5pdGVtcyB8IGFycmF5RmlsdGVyOiBmaWx0ZXJJdGVtOyB0cmFjayBpdGVtLmlkOyBsZXQgZmlyc3RJdGVtID0gJGZpcnN0OyBsZXQgbGFzdEl0ZW0gPSAkbGFzdCkge1xuICAgICAgICA8aW9uLWNhcmRcbiAgICAgICAgICBbY2xhc3MuZmlyc3RdPVwiZmlyc3RGZWVkICYmIGZpcnN0SXRlbVwiXG4gICAgICAgICAgW2NsYXNzLmxhc3RdPVwibGFzdEZlZWQgJiYgbGFzdEl0ZW1cIlxuICAgICAgICAgIFtjb2xvcl09XCJjYXJkQ29sb3IgIT09ICdsaWdodC10cmFuc3BhcmVudCcgPyBjYXJkQ29sb3IgOiB1bmRlZmluZWRcIlxuICAgICAgICAgIGNsYXNzPVwiZmVlZC1pdGVtLWNhcmRcIlxuICAgICAgICA+XG4gICAgICAgICAgPGlvbi1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgIDxpb24tY2FyZC1zdWJ0aXRsZSBzdHlsZT1cInZlcnRpY2FsLWFsaWduOiBtaWRkbGVcIj5cbiAgICAgICAgICAgICAgPCEtLSBBdXRob3JzIC0tPlxuICAgICAgICAgICAgICBAZm9yIChhdXRob3Igb2YgaXRlbS5hdXRob3JzIHx8IGZlZWQuYXV0aG9yczsgdHJhY2sgYXV0aG9yKSB7XG4gICAgICAgICAgICAgICAgQGlmIChhdXRob3IubmFtZSB8fCBhdXRob3IuYXZhdGFyKSB7XG4gICAgICAgICAgICAgICAgICA8aW9uLWNoaXAgKGNsaWNrKT1cIm9wZW5VcmwoYXV0aG9yLnVybClcIiB0YXBwYWJsZT5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChhdXRob3IuYXZhdGFyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1hdmF0YXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWltZyBbc3JjXT1cImF1dGhvci5hdmF0YXJcIiBbYWx0XT1cImF1dGhvci5uYW1lXCI+PC9pb24taW1nPlxuICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWF2YXRhcj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKGF1dGhvci5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cImF1dGhvclwiPnt7IGF1dGhvci5uYW1lIH19PC9pb24tbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvaW9uLWNoaXA+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxpb24tbm90ZSBjbGFzcz1cImlvbi1mbG9hdC1lbmRcIj5cbiAgICAgICAgICAgICAgICA8c21hbGw+e3sgaXRlbS5kYXRlX3B1Ymxpc2hlZCB8IGRhdGVGcm9tTm93IH19PC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9pb24tbm90ZT5cbiAgICAgICAgICAgIDwvaW9uLWNhcmQtc3VidGl0bGU+XG5cbiAgICAgICAgICAgIDwhLS0gdGl0bGUgLS0+XG4gICAgICAgICAgICA8aW9uLWNhcmQtdGl0bGUgKGNsaWNrKT1cIm9wZW5GZWVkSXRlbShpdGVtLCBmZWVkKVwiIHRhcHBhYmxlPnt7IGl0ZW0/LnRpdGxlIH19PC9pb24tY2FyZC10aXRsZT5cblxuICAgICAgICAgICAgPCEtLSB0YWdzIC0tPlxuICAgICAgICAgICAgQGxldCB0YWdzID0gaXRlbSB8IG1hcDogZ2V0VGFncztcbiAgICAgICAgICAgIEBpZiAodGFncyB8IGlzTm90RW1wdHlBcnJheSkge1xuICAgICAgICAgICAgICA8aW9uLXRleHQgY2xhc3M9XCJ0YWdzXCI+XG4gICAgICAgICAgICAgICAgQGZvciAodGFnIG9mIHRhZ3M7IHRyYWNrIHRhZzsgbGV0IGxhc3QgPSAkbGFzdCkge1xuICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cIm9wZW5UYWcoZmVlZCwgdGFnKVwiIHRhcHBhYmxlPlxuICAgICAgICAgICAgICAgICAgICA8aW9uLXRleHQ+I3t7IHRhZyB9fTwvaW9uLXRleHQ+XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICBAaWYgKCFsYXN0KSB7XG4gICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9pb24tdGV4dD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cblxuICAgICAgICAgIDwhLS0gRmVlZCBjb250ZW50IC0tPlxuICAgICAgICAgIDxpb24tY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgPGlvbi10ZXh0IFtmZWVkXT1cIml0ZW0udXJsIHx8IGZlZWQuZmVlZF91cmxcIj5cbiAgICAgICAgICAgICAgQGlmIChpdGVtLmNvbnRlbnRfaHRtbCkge1xuICAgICAgICAgICAgICAgIDxwIFtpbm5lckhUTUxdPVwiaXRlbS5jb250ZW50X2h0bWxcIj48L3A+XG4gICAgICAgICAgICAgIH0gQGVsc2UgaWYgKGl0ZW0uY29udGVudF90ZXh0KSB7XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICA8bWFya2Rvd24gW2RhdGFdPVwiaXRlbS5jb250ZW50X3RleHRcIiBlbW9qaT48L21hcmtkb3duPlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9pb24tdGV4dD5cbiAgICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG5cbiAgICAgICAgICBAbGV0IGVkaXRhYmxlID0gY2FuRWRpdEl0ZW0oaXRlbSwgdXNlcklkLCBmZWVkKTtcbiAgICAgICAgICBAaWYgKGVkaXRhYmxlIHx8IHNob3dSZWFkTW9yZUJ1dHRvbikge1xuICAgICAgICAgICAgQGlmIChlZGl0YWJsZSkge1xuXG4gICAgICAgICAgICAgIDwhLS0gRGVsZXRlIGJ1dHRvbiAodmlzaWJsZSBob3ZlciktLT5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRlbGV0ZUl0ZW0oJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ2aXNpYmxlLWhvdmVyIGlvbi1mbG9hdC1zdGFydFwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIidDT01NT04uQlROX0RFTEVURScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8IS0tIEVkaXQgYnV0dG9uICh2aXNpYmxlIGhvdmVyKSAtLT5cbiAgICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25FZGl0SXRlbSgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInZpc2libGUtaG92ZXIgaW9uLWZsb2F0LXN0YXJ0XCIgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBzbG90PVwic3RhcnRcIj5lZGl0PC9tYXQtaWNvbj5cbjwhLS0gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJwZW5jaWxcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPi0tPlxuICAgICAgICAgICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPkNPTU1PTi5CVE5fRURJVDwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHNob3dSZWFkTW9yZUJ1dHRvbikge1xuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiAgKGNsaWNrKT1cIm9wZW5GZWVkSXRlbShpdGVtLCBmZWVkKVwiIGNsYXNzPVwiaW9uLWZsb2F0LWVuZFwiIGZpbGw9XCJjbGVhclwiPlxuICAgICAgICAgICAgICAgIDxpb24tbGFiZWw+e3sgKGl0ZW0udHJ1bmNhdGVkID8gJ1NPQ0lBTC5GRUVELlJFQURfTU9SRScgOiAnQ09NTU9OLkJUTl9TSE9XJykgfCB0cmFuc2xhdGUgfX08L2lvbi1sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImVuZFwiIG5hbWU9XCJjaGV2cm9uLWZvcndhcmQtb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvaW9uLWNhcmQ+XG4gICAgICB9XG4gICAgfVxuICA8L2Rpdj5cbn1cblxuPCEtLSBEZXRhaWxzIG1vZGFsIC0tPlxuPGlvbi1tb2RhbCAjbW9kYWwgW3Nob3dCYWNrZHJvcF09XCJmYWxzZVwiXG4gICAgICAgICAgIGNsYXNzPVwic3RhY2stbW9kYWxcIiBbY2xhc3MubW9kYWwtbGFyZ2VdPVwiIW1vYmlsZVwiPlxuICA8bmctdGVtcGxhdGU+XG4gICAgPGlvbi1oZWFkZXI+XG4gICAgICA8aW9uLXRvb2xiYXIgY29sb3I9XCJzZWNvbmRhcnlcIj5cbiAgICAgICAgPGlvbi10aXRsZT57eyAnU09DSUFMLkZFRUQuTkVXUycgfCB0cmFuc2xhdGUgfX08L2lvbi10aXRsZT5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjbG9zZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICA8L2lvbi1oZWFkZXI+XG4gICAgPGlvbi1jb250ZW50PlxuICAgICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gICAgICAgIDxhcHAtZmVlZFxuICAgICAgICAgIFt1cmxzXT1cInVybHNcIlxuICAgICAgICAgIFtzaG93SGVhZGVyXT1cImZhbHNlXCJcbiAgICAgICAgICBbc2hvd1JlYWRNb3JlQnV0dG9uXT1cImZhbHNlXCJcbiAgICAgICAgICBbbWF4Q29udGVudExlbmd0aF09XCItMVwiXG4gICAgICAgICAgW21heEFnZUluTW9udGhzXT1cIi0xXCJcbiAgICAgICAgICBbaXRlbUlkXT1cIm1vZGFsSXRlbUlkXCJcbiAgICAgICAgICBjYXJkQ29sb3I9XCJsaWdodFwiXG4gICAgICAgICAgW2RlYnVnXT1cImRlYnVnXCJcbiAgICAgICAgPjwvYXBwLWZlZWQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2lvbi1jb250ZW50PlxuICA8L25nLXRlbXBsYXRlPlxuPC9pb24tbW9kYWw+XG4iXX0=
|
|
@@ -148,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
148
148
|
type: Input,
|
|
149
149
|
args: [{ alias: 'feed', required: true }]
|
|
150
150
|
}] } });
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9mZWVkL2ZlZWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUs3QyxNQUFNLE9BQU8sYUFBYTtJQW9CSjtJQW5CWixhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNuQyxRQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25DLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzVDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QixLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRS9CLFFBQVEsQ0FBUztJQUNqQixRQUFRLENBQVM7SUFFekIsSUFBOEMsT0FBTyxDQUFDLEtBQWE7UUFDakUsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLElBQUksYUFBYSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELFlBQW9CLE9BQWdDO1FBQWhDLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQ2xELFFBQVE7UUFDUiw0REFBNEQ7SUFDOUQsQ0FBQztJQUVNLGVBQWU7UUFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQ3JELHlCQUF5QjtRQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRVMsaUJBQWlCLENBQUMsYUFBMEI7UUFDcEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDckIsUUFBUTtZQUNSLG1FQUFtRTtZQUNuRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUMsQ0FBQyxDQUFDO1FBRUgsUUFBUTtRQUNSLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDLENBQUM7UUFFdEYsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVTLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBWSxFQUFFLGdCQUE2QjtRQUMvRCxPQUFPLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRW5FLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLFlBQVksaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekYsT0FBTyxDQUFDLElBQUksQ0FBQyxtRUFBbUUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEcsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBMkIsQ0FBQztRQUVsRCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFNUMsV0FBVztRQUNYLElBQUksSUFBSSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUN2RCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNoRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RELElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDaEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUVELGdEQUFnRDtRQUNoRCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2xELDRDQUE0QztZQUM1QyxJQUFJLEdBQUcsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUVELHVDQUF1QztRQUN2QyxJQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzlFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0MsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUM5QixnQkFBZ0I7WUFDaEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBRUQsd0NBQXdDO1FBQ3hDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGNBQWMsQ0FBQyxnQkFBNkIsRUFBRSxRQUFnQjtRQUM1RCxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9EQUFvRCxDQUFDLENBQUM7WUFDbkUsT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLCtDQUErQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBRTFFLHlEQUF5RDtRQUN6RCxNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRXJFLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsd0NBQXdDO1lBQ3hDLHVFQUF1RTtZQUN2RSxhQUFhLENBQUMsY0FBYyxDQUFDO2dCQUMzQixRQUFRLEVBQUUsUUFBUSxFQUFFLDRCQUE0QjtnQkFDaEQsS0FBSyxFQUFFLE9BQU8sRUFBRSx1REFBdUQ7YUFDeEUsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxRQUFRLHlCQUF5QixDQUFDLENBQUM7UUFDbkYsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxDQUFDLEdBQVc7UUFDdEIsSUFBSSxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqRCxPQUFPLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNwQixHQUFHLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLElBQUksUUFBUSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkcsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUNwQyxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7d0dBckpVLGFBQWE7NEZBQWIsYUFBYTs7NEZBQWIsYUFBYTtrQkFIekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtpQkFDeEI7K0VBWStDLE9BQU87c0JBQXBELEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFVybFV0aWxzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2ZpbGUvdXJsLnV0aWxzJztcbmltcG9ydCB7IExvY2F0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaXNOb3ROaWxPckJsYW5rIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgUGxhdGZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9wbGF0Zm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7IEpzb25GZWVkVXRpbHMgfSBmcm9tICcuL2ZlZWQubW9kZWwnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdmZWVkLFtmZWVkXScsXG59KVxuZXhwb3J0IGNsYXNzIEZlZWREaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgcGxhdGZvcm0gPSBpbmplY3QoUGxhdGZvcm1TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBsb2NhdGlvblN0cmF0ZWd5ID0gaW5qZWN0KExvY2F0aW9uU3RyYXRlZ3kpO1xuICBwcml2YXRlIG5hdkNvbnRyb2xsZXIgPSBpbmplY3QoTmF2Q29udHJvbGxlcik7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuXG4gIHByaXZhdGUgX2ZlZWRVcmw6IHN0cmluZztcbiAgcHJpdmF0ZSBfYmFzZVVybDogc3RyaW5nO1xuXG4gIEBJbnB1dCh7IGFsaWFzOiAnZmVlZCcsIHJlcXVpcmVkOiB0cnVlIH0pIHNldCBmZWVkVXJsKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9mZWVkVXJsID0gdmFsdWU7XG4gICAgdGhpcy5fYmFzZVVybCA9IHZhbHVlICYmIEpzb25GZWVkVXRpbHMucmVtb3ZlSnNvbkV4dGVuc2lvbih2YWx1ZSk7XG4gIH1cblxuICBnZXQgZmVlZFVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9mZWVkVXJsO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgIC8vIERFQlVHXG4gICAgLy9jb25zb2xlLmRlYnVnKCdbZmVlZC1kaXJlY3RpdmVdIENyZWF0aW5nIGZlZWQgZGlyZWN0aXZlJyk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnNvbGUuZGVidWcoJ1tmZWVkLWRpcmVjdGl2ZV0gUHJvY2Vzc2luZyBhbmNob3JzJyk7XG4gICAgLy8gTGlzdGVuaW5nIGNsaWNrIGV2ZW50c1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQodGhpcy5saXN0ZW5DbGlja0V2ZW50cyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbGlzdGVuQ2xpY2tFdmVudHMobmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQpOiBTdWJzY3JpcHRpb24ge1xuICAgIGNvbnNvbGUuZGVidWcoJ1tmZWVkLWRpcmVjdGl2ZV0gU3RhcnQgbGlzdGVuaW5nIGNsaWNrIGV2ZW50cy4uLicpO1xuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICBjb25zdCBsaXN0ZW5lciA9IChldmVudDogRXZlbnQpID0+IHRoaXMuY2xpY2soZXZlbnQsIG5hdGl2ZUVsZW1lbnQpO1xuICAgIGNvbnN0IGxpbmtzID0gbmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhJyk7XG4gICAgbGlua3MuZm9yRWFjaCgobGluaykgPT4ge1xuICAgICAgLy8gREVCVUdcbiAgICAgIC8vY29uc29sZS5kZWJ1ZygnW2ZlZWQtZGlyZWN0aXZlXSBBZGRpbmcgY2xpY2sgbGlzdGVuZXIgdG8nLCBsaW5rKTtcbiAgICAgIGxpbmsuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBsaXN0ZW5lcik7XG4gICAgICBzdWJzY3JpcHRpb24uYWRkKCgpID0+IGxpbmsucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBsaXN0ZW5lcikpO1xuICAgIH0pO1xuXG4gICAgLy8gREVCVUdcbiAgICBzdWJzY3JpcHRpb24uYWRkKCgpID0+IGNvbnNvbGUuZGVidWcoJ1tmZWVkLWRpcmVjdGl2ZV0gU3RvcCBsaXN0ZW5pbmcgY2xpY2sgZXZlbnRzJykpO1xuXG4gICAgcmV0dXJuIHN1YnNjcmlwdGlvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjbGljayhldmVudDogRXZlbnQsIGNvbnRhaW5lckVsZW1lbnQ6IEhUTUxFbGVtZW50KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc29sZS5kZWJ1ZygnW2ZlZWQtZGlyZWN0aXZlXSBQcm9jZXNzaW5nIGNsaWNrIGV2ZW50Li4uJywgZXZlbnQpO1xuXG4gICAgaWYgKCEoZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgSFRNTEFuY2hvckVsZW1lbnQpICYmICEoZXZlbnQudGFyZ2V0Py5bJ3RhZ05hbWUnXSA9PT0gJ0EnKSkge1xuICAgICAgY29uc29sZS53YXJuKCdbZmVlZC1kaXJlY3RpdmVdIEludmFsaWQgY2xpY2sgZXZlbnQgdGFyZ2V0LiBTaG91bGQgYW4gYW5jaG9yIDxhPicsIGV2ZW50LnRhcmdldCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MQW5jaG9yRWxlbWVudDtcblxuICAgIGxldCBocmVmID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKTtcbiAgICBjb25zdCBmcmFnbWVudCA9IFVybFV0aWxzLmdldEZyYWdtZW50KGhyZWYpO1xuXG4gICAgLy8gRnJhZ21lbnRcbiAgICBpZiAoaHJlZj8uc3RhcnRzV2l0aCgnIycpICYmIGlzTm90TmlsT3JCbGFuayhmcmFnbWVudCkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnNjcm9sbFRvQW5jaG9yKGNvbnRhaW5lckVsZW1lbnQsIGZyYWdtZW50KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHJvdXRlckxpbmsgPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgncm91dGVyTGluaycpO1xuICAgIGlmIChpc05vdE5pbE9yQmxhbmsocm91dGVyTGluaykpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICByZXR1cm4gdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlRm9yd2FyZChyb3V0ZXJMaW5rKTtcbiAgICB9XG5cbiAgICAvLyBSZXNvbHZlIHJlbGF0aXZlIFVSTCwgaWYgYmFzZVVybCBoYXMgYmVlbiBzZXRcbiAgICBpZiAodGhpcy5fYmFzZVVybCAmJiBVcmxVdGlscy5pc1JlbGF0aXZlVXJsKGhyZWYpKSB7XG4gICAgICAvLyBSZXNvbHZlIFVSTCwgdGhlbiBvcGVuIHVzaW5nIHRoZSBwbGF0Zm9ybVxuICAgICAgaHJlZiA9IFVybFV0aWxzLnJlc29sdmVSZWxhdGl2ZVVybCh0aGlzLl9iYXNlVXJsLCBocmVmKTtcbiAgICB9XG5cbiAgICAvLyBSZXNvbHZlIGludGVybmFsIFVSTCBhcyBhbiBhcHAgcm91dGVcbiAgICBpZiAoVXJsVXRpbHMuaXNJbnRlcm5hbFVybChocmVmKSkge1xuICAgICAgY29uc3Qgcm91dGVQYXRoID0gdGhpcy5ub3JtYWxpemVVcmwoaHJlZi5zdGFydHNXaXRoKCcvJykgPyBocmVmIDogYC8ke2hyZWZ9YCk7XG4gICAgICBjb25zdCB1cmxUcmVlID0gdGhpcy5nZXRVcmxUcmVlKHJvdXRlUGF0aCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVkID0gZmFsc2U7XG4gICAgICAvLyBPcGVuaW5nIHJvdXRlXG4gICAgICByZXR1cm4gdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlRm9yd2FyZCh1cmxUcmVlKTtcbiAgICB9XG5cbiAgICAvLyBFeHRlcm5hbCBVUkw6IG9wZW4gdXNpbmcgdGhlIHBsYXRmb3JtXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBhd2FpdCB0aGlzLnBsYXRmb3JtLm9wZW4oaHJlZik7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzY3JvbGxUb0FuY2hvcihjb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudCwgYW5jaG9ySWQ6IHN0cmluZykge1xuICAgIGlmICghY29udGFpbmVyRWxlbWVudCB8fCAhYW5jaG9ySWQpIHtcbiAgICAgIGNvbnNvbGUud2FybihcIk1pc3NpbmcgJ2NvbnRhaW5lckVsZW1lbnQnIG9yICdmcmFnbWVudCcgYXJndW1lbnQuXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnNvbGUuZGVidWcoJ1tmZWVkLWRpcmVjdGl2ZS1hbmNob3JdIFNjcm9sbGluZyB0byBhbmNob3IgIycgKyBhbmNob3JJZCk7XG5cbiAgICAvLyBGaW5kIHRoZSB0YXJnZXQgZWxlbWVudCB3aXRoIHRoZSBzcGVjaWZpZWQgZnJhZ21lbnQgSURcbiAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gY29udGFpbmVyRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAjJHthbmNob3JJZH1gKTtcblxuICAgIGlmICh0YXJnZXRFbGVtZW50KSB7XG4gICAgICAvLyBTY3JvbGwgc21vb3RobHkgdG8gdGhlIHRhcmdldCBlbGVtZW50XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHJ4LWFuZ3VsYXIvcHJlZmVyLW5vLWxheW91dC1zZW5zaXRpdmUtYXBpc1xuICAgICAgdGFyZ2V0RWxlbWVudC5zY3JvbGxJbnRvVmlldyh7XG4gICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJywgLy8gU21vb3RoIHNjcm9sbGluZyBiZWhhdmlvclxuICAgICAgICBibG9jazogJ3N0YXJ0JywgLy8gQWxpZ24gdGhlIHRhcmdldCBlbGVtZW50IHRvIHRoZSB0b3Agb2YgdGhlIGNvbnRhaW5lclxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybihgTm8gZWxlbWVudCBmb3VuZCB3aXRoIHRoZSBJRCBcIiR7YW5jaG9ySWR9XCIgaW5zaWRlIHRoZSBjb250YWluZXIuYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSBhIHJlbGF0aXZlIFVSTCB0byBpdHMgYWJzb2x1dGUgcmVwcmVzZW50YXRpb24gYWNjb3JkaW5nIHRvIGN1cnJlbnQgcm91dGVyIHN0YXRlLlxuICAgKiBAcGFyYW0gdXJsIFJlbGF0aXZlIFVSTCBwYXRoLlxuICAgKiBAcmV0dXJuIEFic29sdXRlIFVSTCBiYXNlZCBvbiB0aGUgY3VycmVudCByb3V0ZS5cbiAgICovXG4gIG5vcm1hbGl6ZVVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKFVybFV0aWxzLmlzRXh0ZXJuYWxVcmwodXJsKSkge1xuICAgICAgcmV0dXJuIHVybDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2Jhc2VVcmwgJiYgVXJsVXRpbHMuaXNSZWxhdGl2ZVVybCh1cmwpKSB7XG4gICAgICByZXR1cm4gVXJsVXRpbHMucmVzb2x2ZVJlbGF0aXZlVXJsKHRoaXMuX2Jhc2VVcmwsIHVybCk7XG4gICAgfVxuXG4gICAgY29uc3QgdXJsVHJlZSA9IHRoaXMuZ2V0VXJsVHJlZSh1cmwpO1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRVcmwgPSB0aGlzLnJvdXRlci5zZXJpYWxpemVVcmwodXJsVHJlZSk7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRpb25TdHJhdGVneS5wcmVwYXJlRXh0ZXJuYWxVcmwoc2VyaWFsaXplZFVybCk7XG4gIH1cblxuICBnZXRVcmxUcmVlKHVybDogc3RyaW5nKTogVXJsVHJlZSB7XG4gICAgdXJsID0gVXJsVXRpbHMubm9ybWFsaXplVXJsKHVybCk7XG4gICAgY29uc3QgdXJsUGF0aCA9IFVybFV0aWxzLnN0cmlwRnJhZ21lbnRBbmRRdWVyeSh1cmwpIHx8IFVybFV0aWxzLnN0cmlwRnJhZ21lbnRBbmRRdWVyeSh0aGlzLnJvdXRlci51cmwpO1xuICAgIGNvbnN0IHBhcnNlZFVybCA9IHRoaXMucm91dGVyLnBhcnNlVXJsKHVybCk7XG4gICAgY29uc3QgZnJhZ21lbnQgPSBwYXJzZWRVcmwuZnJhZ21lbnQ7XG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSBwYXJzZWRVcmwucXVlcnlQYXJhbXM7XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoW3VybFBhdGhdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUsIGZyYWdtZW50LCBxdWVyeVBhcmFtcyB9KTtcbiAgfVxufVxuIl19
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9mZWVkL2ZlZWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUs3QyxNQUFNLE9BQU8sYUFBYTtJQW9CSjtJQW5CWixhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNuQyxRQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25DLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzVDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QixLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRS9CLFFBQVEsQ0FBUztJQUNqQixRQUFRLENBQVM7SUFFekIsSUFBOEMsT0FBTyxDQUFDLEtBQWE7UUFDakUs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QU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNwQixHQUFHLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLElBQUksUUFBUSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkcsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUNwQyxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7d0dBckpVLGFBQWE7NEZBQWIsYUFBYTs7NEZBQWIsYUFBYTtrQkFIekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtpQkFDeEI7K0VBWStDLE9BQU87c0JBQXBELEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFVybFV0aWxzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2ZpbGUvdXJsLnV0aWxzJztcclxuaW1wb3J0IHsgTG9jYXRpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IGlzTm90TmlsT3JCbGFuayB9IGZyb20gJy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBQbGF0Zm9ybVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL3BsYXRmb3JtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBKc29uRmVlZFV0aWxzIH0gZnJvbSAnLi9mZWVkLm1vZGVsJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnZmVlZCxbZmVlZF0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmVlZERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIHByaXZhdGUgcGxhdGZvcm0gPSBpbmplY3QoUGxhdGZvcm1TZXJ2aWNlKTtcclxuICBwcml2YXRlIGxvY2F0aW9uU3RyYXRlZ3kgPSBpbmplY3QoTG9jYXRpb25TdHJhdGVneSk7XHJcbiAgcHJpdmF0ZSBuYXZDb250cm9sbGVyID0gaW5qZWN0KE5hdkNvbnRyb2xsZXIpO1xyXG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcbiAgcHJpdmF0ZSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XHJcblxyXG4gIHByaXZhdGUgX2ZlZWRVcmw6IHN0cmluZztcclxuICBwcml2YXRlIF9iYXNlVXJsOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCh7IGFsaWFzOiAnZmVlZCcsIHJlcXVpcmVkOiB0cnVlIH0pIHNldCBmZWVkVXJsKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2ZlZWRVcmwgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2Jhc2VVcmwgPSB2YWx1ZSAmJiBKc29uRmVlZFV0aWxzLnJlbW92ZUpzb25FeHRlbnNpb24odmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZlZWRVcmwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9mZWVkVXJsO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xyXG4gICAgLy8gREVCVUdcclxuICAgIC8vY29uc29sZS5kZWJ1ZygnW2ZlZWQtZGlyZWN0aXZlXSBDcmVhdGluZyBmZWVkIGRpcmVjdGl2ZScpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIGNvbnNvbGUuZGVidWcoJ1tmZWVkLWRpcmVjdGl2ZV0gUHJvY2Vzc2luZyBhbmNob3JzJyk7XHJcbiAgICAvLyBMaXN0ZW5pbmcgY2xpY2sgZXZlbnRzXHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHRoaXMubGlzdGVuQ2xpY2tFdmVudHModGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgbGlzdGVuQ2xpY2tFdmVudHMobmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQpOiBTdWJzY3JpcHRpb24ge1xyXG4gICAgY29uc29sZS5kZWJ1ZygnW2ZlZWQtZGlyZWN0aXZlXSBTdGFydCBsaXN0ZW5pbmcgY2xpY2sgZXZlbnRzLi4uJyk7XHJcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgICBjb25zdCBsaXN0ZW5lciA9IChldmVudDogRXZlbnQpID0+IHRoaXMuY2xpY2soZXZlbnQsIG5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgY29uc3QgbGlua3MgPSBuYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2EnKTtcclxuICAgIGxpbmtzLmZvckVhY2goKGxpbmspID0+IHtcclxuICAgICAgLy8gREVCVUdcclxuICAgICAgLy9jb25zb2xlLmRlYnVnKCdbZmVlZC1kaXJlY3RpdmVdIEFkZGluZyBjbGljayBsaXN0ZW5lciB0bycsIGxpbmspO1xyXG4gICAgICBsaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgbGlzdGVuZXIpO1xyXG4gICAgICBzdWJzY3JpcHRpb24uYWRkKCgpID0+IGxpbmsucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBsaXN0ZW5lcikpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gREVCVUdcclxuICAgIHN1YnNjcmlwdGlvbi5hZGQoKCkgPT4gY29uc29sZS5kZWJ1ZygnW2ZlZWQtZGlyZWN0aXZlXSBTdG9wIGxpc3RlbmluZyBjbGljayBldmVudHMnKSk7XHJcblxyXG4gICAgcmV0dXJuIHN1YnNjcmlwdGlvbjtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyBjbGljayhldmVudDogRXZlbnQsIGNvbnRhaW5lckVsZW1lbnQ6IEhUTUxFbGVtZW50KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBjb25zb2xlLmRlYnVnKCdbZmVlZC1kaXJlY3RpdmVdIFByb2Nlc3NpbmcgY2xpY2sgZXZlbnQuLi4nLCBldmVudCk7XHJcblxyXG4gICAgaWYgKCEoZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgSFRNTEFuY2hvckVsZW1lbnQpICYmICEoZXZlbnQudGFyZ2V0Py5bJ3RhZ05hbWUnXSA9PT0gJ0EnKSkge1xyXG4gICAgICBjb25zb2xlLndhcm4oJ1tmZWVkLWRpcmVjdGl2ZV0gSW52YWxpZCBjbGljayBldmVudCB0YXJnZXQuIFNob3VsZCBhbiBhbmNob3IgPGE+JywgZXZlbnQudGFyZ2V0KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTEFuY2hvckVsZW1lbnQ7XHJcblxyXG4gICAgbGV0IGhyZWYgPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgnaHJlZicpO1xyXG4gICAgY29uc3QgZnJhZ21lbnQgPSBVcmxVdGlscy5nZXRGcmFnbWVudChocmVmKTtcclxuXHJcbiAgICAvLyBGcmFnbWVudFxyXG4gICAgaWYgKGhyZWY/LnN0YXJ0c1dpdGgoJyMnKSAmJiBpc05vdE5pbE9yQmxhbmsoZnJhZ21lbnQpKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuc2Nyb2xsVG9BbmNob3IoY29udGFpbmVyRWxlbWVudCwgZnJhZ21lbnQpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByb3V0ZXJMaW5rID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3JvdXRlckxpbmsnKTtcclxuICAgIGlmIChpc05vdE5pbE9yQmxhbmsocm91dGVyTGluaykpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgcmV0dXJuIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZUZvcndhcmQocm91dGVyTGluayk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmVzb2x2ZSByZWxhdGl2ZSBVUkwsIGlmIGJhc2VVcmwgaGFzIGJlZW4gc2V0XHJcbiAgICBpZiAodGhpcy5fYmFzZVVybCAmJiBVcmxVdGlscy5pc1JlbGF0aXZlVXJsKGhyZWYpKSB7XHJcbiAgICAgIC8vIFJlc29sdmUgVVJMLCB0aGVuIG9wZW4gdXNpbmcgdGhlIHBsYXRmb3JtXHJcbiAgICAgIGhyZWYgPSBVcmxVdGlscy5yZXNvbHZlUmVsYXRpdmVVcmwodGhpcy5fYmFzZVVybCwgaHJlZik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmVzb2x2ZSBpbnRlcm5hbCBVUkwgYXMgYW4gYXBwIHJvdXRlXHJcbiAgICBpZiAoVXJsVXRpbHMuaXNJbnRlcm5hbFVybChocmVmKSkge1xyXG4gICAgICBjb25zdCByb3V0ZVBhdGggPSB0aGlzLm5vcm1hbGl6ZVVybChocmVmLnN0YXJ0c1dpdGgoJy8nKSA/IGhyZWYgOiBgLyR7aHJlZn1gKTtcclxuICAgICAgY29uc3QgdXJsVHJlZSA9IHRoaXMuZ2V0VXJsVHJlZShyb3V0ZVBhdGgpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZWQgPSBmYWxzZTtcclxuICAgICAgLy8gT3BlbmluZyByb3V0ZVxyXG4gICAgICByZXR1cm4gdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlRm9yd2FyZCh1cmxUcmVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBFeHRlcm5hbCBVUkw6IG9wZW4gdXNpbmcgdGhlIHBsYXRmb3JtXHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgYXdhaXQgdGhpcy5wbGF0Zm9ybS5vcGVuKGhyZWYpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBzY3JvbGxUb0FuY2hvcihjb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudCwgYW5jaG9ySWQ6IHN0cmluZykge1xyXG4gICAgaWYgKCFjb250YWluZXJFbGVtZW50IHx8ICFhbmNob3JJZCkge1xyXG4gICAgICBjb25zb2xlLndhcm4oXCJNaXNzaW5nICdjb250YWluZXJFbGVtZW50JyBvciAnZnJhZ21lbnQnIGFyZ3VtZW50LlwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnNvbGUuZGVidWcoJ1tmZWVkLWRpcmVjdGl2ZS1hbmNob3JdIFNjcm9sbGluZyB0byBhbmNob3IgIycgKyBhbmNob3JJZCk7XHJcblxyXG4gICAgLy8gRmluZCB0aGUgdGFyZ2V0IGVsZW1lbnQgd2l0aCB0aGUgc3BlY2lmaWVkIGZyYWdtZW50IElEXHJcbiAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gY29udGFpbmVyRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAjJHthbmNob3JJZH1gKTtcclxuXHJcbiAgICBpZiAodGFyZ2V0RWxlbWVudCkge1xyXG4gICAgICAvLyBTY3JvbGwgc21vb3RobHkgdG8gdGhlIHRhcmdldCBlbGVtZW50XHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAcngtYW5ndWxhci9wcmVmZXItbm8tbGF5b3V0LXNlbnNpdGl2ZS1hcGlzXHJcbiAgICAgIHRhcmdldEVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoe1xyXG4gICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJywgLy8gU21vb3RoIHNjcm9sbGluZyBiZWhhdmlvclxyXG4gICAgICAgIGJsb2NrOiAnc3RhcnQnLCAvLyBBbGlnbiB0aGUgdGFyZ2V0IGVsZW1lbnQgdG8gdGhlIHRvcCBvZiB0aGUgY29udGFpbmVyXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS53YXJuKGBObyBlbGVtZW50IGZvdW5kIHdpdGggdGhlIElEIFwiJHthbmNob3JJZH1cIiBpbnNpZGUgdGhlIGNvbnRhaW5lci5gKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyYW5zZm9ybSBhIHJlbGF0aXZlIFVSTCB0byBpdHMgYWJzb2x1dGUgcmVwcmVzZW50YXRpb24gYWNjb3JkaW5nIHRvIGN1cnJlbnQgcm91dGVyIHN0YXRlLlxyXG4gICAqIEBwYXJhbSB1cmwgUmVsYXRpdmUgVVJMIHBhdGguXHJcbiAgICogQHJldHVybiBBYnNvbHV0ZSBVUkwgYmFzZWQgb24gdGhlIGN1cnJlbnQgcm91dGUuXHJcbiAgICovXHJcbiAgbm9ybWFsaXplVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmIChVcmxVdGlscy5pc0V4dGVybmFsVXJsKHVybCkpIHtcclxuICAgICAgcmV0dXJuIHVybDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9iYXNlVXJsICYmIFVybFV0aWxzLmlzUmVsYXRpdmVVcmwodXJsKSkge1xyXG4gICAgICByZXR1cm4gVXJsVXRpbHMucmVzb2x2ZVJlbGF0aXZlVXJsKHRoaXMuX2Jhc2VVcmwsIHVybCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdXJsVHJlZSA9IHRoaXMuZ2V0VXJsVHJlZSh1cmwpO1xyXG4gICAgY29uc3Qgc2VyaWFsaXplZFVybCA9IHRoaXMucm91dGVyLnNlcmlhbGl6ZVVybCh1cmxUcmVlKTtcclxuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uU3RyYXRlZ3kucHJlcGFyZUV4dGVybmFsVXJsKHNlcmlhbGl6ZWRVcmwpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXJsVHJlZSh1cmw6IHN0cmluZyk6IFVybFRyZWUge1xyXG4gICAgdXJsID0gVXJsVXRpbHMubm9ybWFsaXplVXJsKHVybCk7XHJcbiAgICBjb25zdCB1cmxQYXRoID0gVXJsVXRpbHMuc3RyaXBGcmFnbWVudEFuZFF1ZXJ5KHVybCkgfHwgVXJsVXRpbHMuc3RyaXBGcmFnbWVudEFuZFF1ZXJ5KHRoaXMucm91dGVyLnVybCk7XHJcbiAgICBjb25zdCBwYXJzZWRVcmwgPSB0aGlzLnJvdXRlci5wYXJzZVVybCh1cmwpO1xyXG4gICAgY29uc3QgZnJhZ21lbnQgPSBwYXJzZWRVcmwuZnJhZ21lbnQ7XHJcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHBhcnNlZFVybC5xdWVyeVBhcmFtcztcclxuICAgIHJldHVybiB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFt1cmxQYXRoXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLCBmcmFnbWVudCwgcXVlcnlQYXJhbXMgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -64,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
64
64
|
}], feedItemId: [{
|
|
65
65
|
type: Input
|
|
66
66
|
}] } });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC5wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zb2NpYWwvZmVlZC9mZWVkLnBhZ2UudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9mZWVkL2ZlZWQucGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQWUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFbkYsT0FBTyxFQUFFLGdCQUFnQixFQUFnQixNQUFNLGdCQUFnQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQU9oRCxNQUFNLE9BQU8sUUFBUTtJQVVQO0lBQ0E7SUFDbUM7SUFDSjtJQVpqQyxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUNyQyxjQUFjLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsS0FBSyxDQUFVO0lBRWYsS0FBSyxHQUFHLGtCQUFrQixDQUFDO0lBQzNCLFFBQVEsQ0FBVztJQUNuQixVQUFVLENBQVM7SUFFNUIsWUFDWSxRQUE4QixFQUM5QixFQUFxQixFQUNjLFdBQTRCLEVBQ2hDLFdBQXdCO1FBSHZELGFBQVEsR0FBUixRQUFRLENBQXNCO1FBQzlCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ2MsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQ2hDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBRWpFLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUTtRQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsTUFBTSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZILE9BQU8sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQzt3R0E3QlUsUUFBUSx1RkFZRyxnQkFBZ0IsNkJBQ2hCLFdBQVc7NEZBYnRCLFFBQVEsaUpDYnJCLDJtQkF3QkE7OzRGRFhhLFFBQVE7a0JBTHBCLFNBQVM7K0JBQ0UsZUFBZSxtQkFFUix1QkFBdUIsQ0FBQyxNQUFNOzswQkFjNUMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUNuQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFdBQVc7eUNBVnhCLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCwgRU5WSVJPTk1FTlQgfSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQuY2xhc3MnO1xyXG5pbXBvcnQgeyBMb2NhbFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbG9jYWwtc2V0dGluZ3Muc2VydmljZSc7XHJcbmltcG9ydCB7IEFQUF9GRUVEX1NFUlZJQ0UsIElGZWVkU2VydmljZSB9IGZyb20gJy4vZmVlZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSnNvbkZlZWQgfSBmcm9tICcuL2ZlZWQubW9kZWwnO1xyXG5pbXBvcnQgeyBmaXJzdE5vdE5pbFByb21pc2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvb2JzZXJ2YWJsZXMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZlZWQtcGFnZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZlZWQucGFnZS5odG1sJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZlZWRQYWdlPFQgZXh0ZW5kcyBKc29uRmVlZCA9IEpzb25GZWVkPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcm90ZWN0ZWQgZGVzdHJveVN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByb3RlY3RlZCBsb2FkaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XHJcbiAgQElucHV0KCkgZGVidWc6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpIHRpdGxlID0gJ1NPQ0lBTC5GRUVELk5FV1MnO1xyXG4gIEBJbnB1dCgpIGZlZWRVcmxzOiBzdHJpbmdbXTtcclxuICBASW5wdXQoKSBmZWVkSXRlbUlkOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHNldHRpbmdzOiBMb2NhbFNldHRpbmdzU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFQUF9GRUVEX1NFUlZJQ0UpIHB1YmxpYyBmZWVkU2VydmljZTogSUZlZWRTZXJ2aWNlPFQ+LFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChFTlZJUk9OTUVOVCkgcHJpdmF0ZSBlbnZpcm9ubWVudDogRW52aXJvbm1lbnRcclxuICApIHtcclxuICAgIHRoaXMuZGVidWcgPSAhZW52aXJvbm1lbnQ/LnByb2R1Y3Rpb247XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZmVlZFNlcnZpY2UucmVhZHkoKTtcclxuICAgIHRoaXMuZmVlZFVybHMgPSB0aGlzLmZlZWRVcmxzID8/IChhd2FpdCBmaXJzdE5vdE5pbFByb21pc2UodGhpcy5mZWVkU2VydmljZS5mZWVkVXJscyQsIHsgc3RvcDogdGhpcy5kZXN0cm95U3ViamVjdCB9KSk7XHJcbiAgICBjb25zb2xlLmRlYnVnKCdbZmVlZC1wYWdlXSBGZWVkIFVSTHM6JywgdGhpcy5mZWVkVXJscyk7XHJcbiAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xyXG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5kZXN0cm95U3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3lTdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxpb24taGVhZGVyPlxuICA8aW9uLXRvb2xiYXIgY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiPlxuICAgICAgPGlvbi1iYWNrLWJ1dHRvbj48L2lvbi1iYWNrLWJ1dHRvbj5cbiAgICA8L2lvbi1idXR0b25zPlxuXG4gICAgPGlvbi10aXRsZT57eyB0aXRsZSB8IHRyYW5zbGF0ZSB9fTwvaW9uLXRpdGxlPlxuICA8L2lvbi10b29sYmFyPlxuPC9pb24taGVhZGVyPlxuXG48aW9uLWNvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgIEBpZiAobG9hZGluZ1N1YmplY3QgfCBhc3luYykge1xuICAgICAgPGlvbi1zcGlubmVyPjwvaW9uLXNwaW5uZXI+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8YXBwLWZlZWQgW3Nob3dIZWFkZXJdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtzaG93UmVhZE1vcmVCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFt1cmxzXT1cImZlZWRVcmxzXCJcbiAgICAgICAgICAgICAgICBjYXJkQ29sb3I9XCJsaWdodFwiXG4gICAgICAgICAgICAgICAgW2RlYnVnXT1cImRlYnVnXCJcbiAgICAgID48L2FwcC1mZWVkPlxuICAgIH1cbiAgPC9kaXY+XG48L2lvbi1jb250ZW50PlxuIl19
|
|
@@ -63,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
63
63
|
type: Inject,
|
|
64
64
|
args: [ENVIRONMENT]
|
|
65
65
|
}] }] });
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC50ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zb2NpYWwvZmVlZC90ZXN0aW5nL2ZlZWQudGVzdGluZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL2ZlZWQvdGVzdGluZy9mZWVkLnRlc3RpbmcuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBZSxXQUFXLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7Ozs7Ozs7QUFVdEYsTUFBTSxPQUFPLGVBQWU7SUEwQmQ7SUFDQTtJQUMrQjtJQTNCakMsaUJBQWlCLEdBQWE7UUFDdEMsc0ZBQXNGO1FBQ3RGLCtFQUErRTtLQUNoRixDQUFDO0lBQ1EsZUFBZSxHQUF3QztRQUMvRCxtQkFBbUI7UUFDbkIsUUFBUTtRQUNSLFNBQVM7UUFDVCxXQUFXO1FBQ1gsVUFBVTtRQUNWLFFBQVE7UUFDUixPQUFPO1FBQ1AsUUFBUTtRQUNSLE1BQU07UUFDTixhQUFhO0tBQ2QsQ0FBQztJQUNRLGVBQWUsR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUV0QyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2QsUUFBUSxDQUFXO0lBQ25CLEtBQUssR0FBdUIsUUFBUSxDQUFDO0lBQ3JDLFdBQVcsR0FBb0MsV0FBVyxDQUFDO0lBQzNELFNBQVMsR0FBb0MsT0FBTyxDQUFDO0lBRS9ELFlBQ1ksUUFBOEIsRUFDOUIsRUFBcUIsRUFDVSxXQUF3QjtRQUZ2RCxhQUFRLEdBQVIsUUFBUSxDQUFzQjtRQUM5QixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBRWpFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVTLEtBQUssQ0FBQyxRQUF1QjtRQUNyQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYSxJQUFJLElBQUksQ0FBQztRQUMxRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQzVELHNGQUFzRjtZQUN0RiwrRUFBK0U7U0FDaEYsQ0FBQztRQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQzt3R0F6Q1UsZUFBZSx1RkE0QkosV0FBVzs0RkE1QnRCLGVBQWUscURDWDVCLDIwRUF3RUE7OzRGRDdEYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLGVBQWUsbUJBRVIsdUJBQXVCLENBQUMsTUFBTTs7MEJBOEI1QyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCwgRU5WSVJPTk1FTlQgfSBmcm9tICcuLi8uLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQuY2xhc3MnO1xyXG5pbXBvcnQgeyBMb2NhbFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvbG9jYWwtc2V0dGluZ3Muc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsU2V0dGluZ3MgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL3NldHRpbmdzLm1vZGVsJztcclxuaW1wb3J0IHsgQXBwQ29sb3JzIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3R5cGVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZlZWQtdGVzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZlZWQudGVzdGluZy5odG1sJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZlZWRUZXN0aW5nUGFnZSB7XHJcbiAgcHJvdGVjdGVkIGF2YWlsYWJsZUZlZWRVcmxzOiBzdHJpbmdbXSA9IFtcclxuICAgICdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZHVuaXRlci9jZXNpdW0vbWFzdGVyL2RvYy9mZWVkLzEuMS9mZWVkLWZyLUZSLmpzb24nLFxyXG4gICAgJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9kdW5pdGVyL2Nlc2l1bS9tYXN0ZXIvZG9jL2ZlZWQvZmVlZC1mci5qc29uJyxcclxuICBdO1xyXG4gIHByb3RlY3RlZCBhdmFpbGFibGVDb2xvcnM6IChBcHBDb2xvcnMgfCAnbGlnaHQtdHJhbnNwYXJlbnQnKVtdID0gW1xyXG4gICAgJ2xpZ2h0LXRyYW5zcGFyZW50JyxcclxuICAgICdhY2NlbnQnLFxyXG4gICAgJ3ByaW1hcnknLFxyXG4gICAgJ3NlY29uZGFyeScsXHJcbiAgICAndGVydGlhcnknLFxyXG4gICAgJ2RhbmdlcicsXHJcbiAgICAnbGlnaHQnLFxyXG4gICAgJ21lZGl1bScsXHJcbiAgICAnZGFyaycsXHJcbiAgICAndHJhbnNwYXJlbnQnLFxyXG4gIF07XHJcbiAgcHJvdGVjdGVkIGF2YWlsYWJsZVNoYXBlcyA9IFsncm91bmQnLCAnbGVnYWN5J107XHJcblxyXG4gIHByb3RlY3RlZCBkZWJ1ZyA9IGZhbHNlO1xyXG4gIHByb3RlY3RlZCBmZWVkVXJsczogc3RyaW5nW107XHJcbiAgcHJvdGVjdGVkIHNoYXBlOiAncm91bmQnIHwgJ2xlZ2FjeScgPSAnbGVnYWN5JztcclxuICBwcm90ZWN0ZWQgaGVhZGVyQ29sb3I6IEFwcENvbG9ycyB8ICdsaWdodC10cmFuc3BhcmVudCcgPSAnc2Vjb25kYXJ5JztcclxuICBwcm90ZWN0ZWQgY2FyZENvbG9yOiBBcHBDb2xvcnMgfCAnbGlnaHQtdHJhbnNwYXJlbnQnID0gJ2xpZ2h0JztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgc2V0dGluZ3M6IExvY2FsU2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRU5WSVJPTk1FTlQpIHByaXZhdGUgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50XHJcbiAgKSB7XHJcbiAgICB0aGlzLnNldHRpbmdzLnJlYWR5KCkudGhlbigoc2V0dGluZ3MpID0+IHRoaXMuc3RhcnQoc2V0dGluZ3MpKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzdGFydChzZXR0aW5nczogTG9jYWxTZXR0aW5ncykge1xyXG4gICAgY29uc3QgbG9jYWxlID0gc2V0dGluZ3MubG9jYWxlIHx8IHRoaXMuZW52aXJvbm1lbnQ/LmRlZmF1bHRMb2NhbGUgfHwgJ2ZyJztcclxuICAgIHRoaXMuZmVlZFVybHMgPSB0aGlzLmVudmlyb25tZW50Py5mZWVkPy5qc29uRmVlZD8uW2xvY2FsZV0gfHwgW1xyXG4gICAgICAnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2R1bml0ZXIvY2VzaXVtL21hc3Rlci9kb2MvZmVlZC8xLjEvZmVlZC1mci1GUi5qc29uJyxcclxuICAgICAgJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9kdW5pdGVyL2Nlc2l1bS9tYXN0ZXIvZG9jL2ZlZWQvZmVlZC1mci5qc29uJyxcclxuICAgIF07XHJcbiAgICBjb25zb2xlLmRlYnVnKCdbZmVlZC10ZXN0aW5nXSBGZWVkIFVSTHM6JywgdGhpcy5mZWVkVXJscyk7XHJcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxufVxyXG4iLCI8aW9uLWhlYWRlcj5cbiAgPGlvbi10b29sYmFyIGNvbG9yPVwicHJpbWFyeVwiPlxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIj5cbiAgICAgIDxpb24tYmFjay1idXR0b24+PC9pb24tYmFjay1idXR0b24+XG4gICAgPC9pb24tYnV0dG9ucz5cblxuICAgIDxpb24tdGl0bGU+RmVlZCB0ZXN0IHBhZ2U8L2lvbi10aXRsZT5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cblxuPGlvbi1jb250ZW50PlxuICA8aW9uLWdyaWQgY2xhc3M9XCJmb3JtLWNvbnRhaW5lciBpb24tcGFkZGluZy10b3BcIj5cbiAgICA8aW9uLXJvdz5cbiAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgW3N1YnNjcmlwdFNpemluZ109XCInZHluYW1pYydcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsPkZlZWQgVVJMKHMpPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPG1hdC1zZWxlY3QgWyh2YWx1ZSldPVwiZmVlZFVybHNcIiBtdWx0aXBsZT5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBmZWVkVXJsIG9mIGF2YWlsYWJsZUZlZWRVcmxzXCIgW3ZhbHVlXT1cImZlZWRVcmxcIj5cbiAgICAgICAgICAgICAge3sgZmVlZFVybCB9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24+KFVzZSBlbnZpcm9ubWVudCk8L21hdC1vcHRpb24+XG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9pb24tY29sPlxuICAgIDwvaW9uLXJvdz5cbiAgICA8aW9uLXJvdz5cbiAgICAgIDxpb24tY29sIHNpemU9XCIzXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBbc3Vic2NyaXB0U2l6aW5nXT1cIidkeW5hbWljJ1wiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+SGVhZGVyIGNvbG9yPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPG1hdC1zZWxlY3QgWyh2YWx1ZSldPVwiaGVhZGVyQ29sb3JcIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBjb2xvciBvZiBhdmFpbGFibGVDb2xvcnNcIiBbdmFsdWVdPVwiY29sb3JcIj5cbiAgICAgICAgICAgICAge3sgY29sb3IgfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgICA8aW9uLWNvbCBzaXplPVwiM1wiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgW3N1YnNjcmlwdFNpemluZ109XCInZHluYW1pYydcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsPkNhcmQgY29sb3I8L21hdC1sYWJlbD5cbiAgICAgICAgICA8bWF0LXNlbGVjdCBbKHZhbHVlKV09XCJjYXJkQ29sb3JcIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBjb2xvciBvZiBhdmFpbGFibGVDb2xvcnNcIiBbdmFsdWVdPVwiY29sb3JcIj5cbiAgICAgICAgICAgICAge3sgY29sb3IgfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgICA8aW9uLWNvbCBzaXplPVwiM1wiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgW3N1YnNjcmlwdFNpemluZ109XCInZHluYW1pYydcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsPlNoYXBlPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPG1hdC1zZWxlY3QgWyh2YWx1ZSldPVwic2hhcGVcIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzaGFwZSBvZiBhdmFpbGFibGVTaGFwZXNcIiBbdmFsdWVdPVwic2hhcGVcIj5cbiAgICAgICAgICAgICAge3sgc2hhcGUgfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgICA8aW9uLWNvbCBzaXplPVwiM1wiPlxuICAgICAgICA8bWF0LWNoZWNrYm94IChjaGFuZ2UpPVwiZGVidWcgPSAkZXZlbnQuY2hlY2tlZFwiIFtjaGVja2VkXT1cImRlYnVnXCI+RGVidWcgPzwvbWF0LWNoZWNrYm94PlxuICAgICAgPC9pb24tY29sPlxuICAgIDwvaW9uLXJvdz5cbiAgPC9pb24tZ3JpZD5cblxuICA8ZGl2IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICA8YXBwLWZlZWRcbiAgICAgIFt1cmxzXT1cImZlZWRVcmxzXCJcbiAgICAgIFtoZWFkZXJDb2xvcl09XCJoZWFkZXJDb2xvclwiXG4gICAgICBbY2FyZENvbG9yXT1cImNhcmRDb2xvclwiXG4gICAgICBbc2hhcGVdPVwic2hhcGVcIlxuICAgICAgW2RlYnVnXT1cImRlYnVnXCJcbiAgICA+PC9hcHAtZmVlZD5cbiAgPC9kaXY+XG48L2lvbi1jb250ZW50PlxuIl19
|
|
@@ -35,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
35
35
|
}], jobProgression$: [{
|
|
36
36
|
type: Input
|
|
37
37
|
}] } });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLXByb2dyZXNzaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL2pvYi9wcm9ncmVzc2lvbi9qb2ItcHJvZ3Jlc3Npb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zb2NpYWwvam9iL3Byb2dyZXNzaW9uL2pvYi1wcm9ncmVzc2lvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFN0YsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFlckMsTUFBTSxPQUFPLHVCQUF3QixTQUFRLE9BQTRCO0lBQzlELFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDaEIsZUFBZSxDQUE2QjtJQUVyRCxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QixLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU1QjtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5SCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkgsQ0FBQztJQUVELFdBQVc7UUFDVCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEIsQ0FBQzt3R0F0QlUsdUJBQXVCOzRGQUF2Qix1QkFBdUIsa0tDbkJwQyxnaUJBbUJBOzs0RkRBYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0UsK0JBQStCLG1CQUd4Qix1QkFBdUIsQ0FBQyxNQUFNO3dEQUd0QyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSm9iUHJvZ3Jlc3Npb24gfSBmcm9tICcuL2pvYi1wcm9ncmVzc2lvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFJ4U3RhdGUgfSBmcm9tICdAcngtYW5ndWxhci9zdGF0ZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBKb2JQcm9ncmVzc2lvblN0YXRlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgbWVzc2FnZTogc3RyaW5nO1xyXG4gIHZhbHVlOiBudW1iZXI7XHJcbiAgdHlwZTogJ2RldGVybWluYXRlJyB8ICdpbmRldGVybWluYXRlJztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtam9iLXByb2dyZXNzaW9uLWNvbXBvbmVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2pvYi1wcm9ncmVzc2lvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vam9iLXByb2dyZXNzaW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBKb2JQcm9ncmVzc2lvbkNvbXBvbmVudCBleHRlbmRzIFJ4U3RhdGU8Sm9iUHJvZ3Jlc3Npb25TdGF0ZT4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgc2hvd05hbWUgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGpvYlByb2dyZXNzaW9uJDogT2JzZXJ2YWJsZTxKb2JQcm9ncmVzc2lvbj47XHJcblxyXG4gIG5hbWUkID0gdGhpcy5zZWxlY3QoJ25hbWUnKTtcclxuICBtZXNzYWdlJCA9IHRoaXMuc2VsZWN0KCdtZXNzYWdlJyk7XHJcbiAgdmFsdWUkID0gdGhpcy5zZWxlY3QoJ3ZhbHVlJyk7XHJcbiAgdHlwZSQgPSB0aGlzLnNlbGVjdCgndHlwZScpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY29ubmVjdCgnbmFtZScsIHRoaXMuam9iUHJvZ3Jlc3Npb24kLnBpcGUobWFwKCh2YWx1ZSkgPT4gdmFsdWUubmFtZSkpKTtcclxuICAgIHRoaXMuY29ubmVjdCgnbWVzc2FnZScsIHRoaXMuam9iUHJvZ3Jlc3Npb24kLnBpcGUobWFwKCh2YWx1ZSkgPT4gdmFsdWUubWVzc2FnZSkpKTtcclxuICAgIHRoaXMuY29ubmVjdCgndmFsdWUnLCB0aGlzLmpvYlByb2dyZXNzaW9uJC5waXBlKG1hcCgodmFsdWUpID0+ICh2YWx1ZS50b3RhbCA+IDAgPyB2YWx1ZS5jdXJyZW50IC8gdmFsdWUudG90YWwgOiB1bmRlZmluZWQpKSkpO1xyXG4gICAgdGhpcy5jb25uZWN0KCd0eXBlJywgdGhpcy5qb2JQcm9ncmVzc2lvbiQucGlwZShtYXAoKHZhbHVlKSA9PiAodmFsdWUudG90YWwgPiAwID8gJ2RldGVybWluYXRlJyA6ICdpbmRldGVybWluYXRlJykpKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxpb24taXRlbSBjbGFzcz1cImlvbi1pdGVtLWpvYi1wcm9ncmVzc2lvblwiPlxuICA8aW9uLWdyaWQgY2xhc3M9XCJpb24tbm8tbWFyZ2luXCI+XG4gICAgPGlvbi1yb3cgKm5nSWY9XCJzaG93TmFtZVwiIGNsYXNzPVwibmFtZVwiPlxuICAgICAgPGlvbi1jb2w+XG4gICAgICAgIHt7IG5hbWUkIHwgcHVzaCB9fVxuICAgICAgPC9pb24tY29sPlxuICAgIDwvaW9uLXJvdz5cbiAgICA8aW9uLXJvdyBjbGFzcz1cIm1lc3NhZ2VcIj5cbiAgICAgIDxpb24tY29sPlxuICAgICAgICB7eyBtZXNzYWdlJCB8IHB1c2ggfX1cbiAgICAgIDwvaW9uLWNvbD5cbiAgICA8L2lvbi1yb3c+XG4gICAgPGlvbi1yb3cgY2xhc3M9XCJwcm9ncmVzcy1iYXJcIj5cbiAgICAgIDxpb24tY29sPlxuICAgICAgICA8aW9uLXByb2dyZXNzLWJhciBbdmFsdWVdPVwidmFsdWUkIHwgcHVzaFwiIFt0eXBlXT1cInR5cGUkIHwgcHVzaFwiPjwvaW9uLXByb2dyZXNzLWJhcj5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICA8L2lvbi1yb3c+XG4gIDwvaW9uLWdyaWQ+XG48L2lvbi1pdGVtPlxuIl19
|