@ieeesa-npm/dashboard 0.0.5 → 0.0.6
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/esm2022/lib/assets/constants.json +1 -0
- package/esm2022/lib/components/event-group-card/event-group-card.component.mjs +3 -3
- package/esm2022/lib/components/upcoming-meetings-events/upcoming-meetings-events.component.mjs +3 -3
- package/esm2022/lib/components/your-groups/your-groups.component.mjs +3 -3
- package/fesm2022/ieeesa-npm-dashboard.mjs +7 -6
- package/fesm2022/ieeesa-npm-dashboard.mjs.map +1 -1
- package/lib/components/member-level-badge/member-level-badge.component.d.ts +1 -0
- package/lib/dashboard.component.d.ts +2 -1
- package/package.json +1 -1
- package/esm2022/lib/utils/attendance-action.util.mjs +0 -53
- package/lib/utils/attendance-action.util.d.ts +0 -38
package/esm2022/lib/components/upcoming-meetings-events/upcoming-meetings-events.component.mjs
CHANGED
|
@@ -275,7 +275,7 @@ export class UpcomingMeetingsEventsComponent {
|
|
|
275
275
|
this.navigateToMeeting.emit(request);
|
|
276
276
|
}
|
|
277
277
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UpcomingMeetingsEventsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
278
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UpcomingMeetingsEventsComponent, isStandalone: true, selector: "ieeesa-upcoming-meetings-events", inputs: { events: "events", sectionState: "sectionState", permissions: "permissions", attendanceStates: "attendanceStates", inFlightMeetingIds: "inFlightMeetingIds", isMobileView: "isMobileView", expanded: "expanded" }, outputs: { viewAll: "viewAll", viewEvent: "viewEvent", openMeeting: "openMeeting", logAttendance: "logAttendance", leaveMeeting: "leaveMeeting", meetingPageChange: "meetingPageChange", loadEventMeetings: "loadEventMeetings", navigateToMeeting: "navigateToMeeting", expandedChange: "expandedChange" }, ngImport: i0, template: "<section\r\n class=\"ieeesa-upcoming-meetings-events\"\r\n [class.ieeesa-upcoming-meetings-events--mobile]=\"isMobileView\"\r\n>\r\n <header class=\"ieeesa-upcoming-meetings-events__header\">\r\n <!-- Section title (Req 5.1). -->\r\n <div class=\"ieeesa-upcoming-meetings-events__heading\">\r\n <h2 class=\"ieeesa-upcoming-meetings-events__title\">\r\n {{ constants.upcomingSection.title }}\r\n </h2>\r\n </div>\r\n\r\n <!-- View All link + Expand/Collapse toggle (Req 5.1, 5.2, 5.3, 5.4, 14.3). -->\r\n <div class=\"ieeesa-upcoming-meetings-events__actions\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-upcoming-meetings-events__view-all\"\r\n [attr.aria-label]=\"constants.upcomingSection.ariaLabel.viewAll\"\r\n (click)=\"onViewAll()\"\r\n >\r\n {{ constants.upcomingSection.viewAllLabel }}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-upcoming-meetings-events__toggle\"\r\n [attr.aria-expanded]=\"isExpanded\"\r\n [attr.aria-label]=\"constants.upcomingSection.ariaLabel.toggle\"\r\n (click)=\"onToggleExpanded()\"\r\n >\r\n <span>{{ isExpanded ? constants.upcomingSection.collapseLabel : constants.upcomingSection.expandLabel }}</span>\r\n <i\r\n class=\"fa-solid\"\r\n [ngClass]=\"isExpanded ? 'fa-chevron-up' : 'fa-chevron-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </button>\r\n </div>\r\n </header>\r\n\r\n <!-- Collapsed summary: events / meetings / open-for-attendance counts.\r\n The open-for-attendance segment is green bold per Figma. -->\r\n <p\r\n *ngIf=\"!isExpanded && sectionState === sectionStates.LOADED\"\r\n class=\"ieeesa-upcoming-meetings-events__summary\"\r\n >\r\n {{ eventCount }} events · {{ totalMeetingCount }} meetings ·\r\n <span class=\"ieeesa-upcoming-meetings-events__summary-open\">\r\n {{ totalOpenForAttendanceCount }} open for attendance\r\n </span>\r\n </p>\r\n\r\n <!-- Card list, shown only while expanded (Req 5.4). -->\r\n <div *ngIf=\"isExpanded\" class=\"ieeesa-upcoming-meetings-events__body\">\r\n <!-- Loader region (Req 13.1). -->\r\n <div\r\n *ngIf=\"sectionState === sectionStates.LOADING\"\r\n class=\"ieeesa-upcoming-meetings-events__loader\"\r\n >\r\n <ieeesa-loader></ieeesa-loader>\r\n </div>\r\n\r\n <!-- Content region: one card per event preserving input order (Req 5.5, 5.6, 13.2). -->\r\n <div\r\n *ngIf=\"sectionState === sectionStates.LOADED\"\r\n class=\"ieeesa-upcoming-meetings-events__cards\"\r\n >\r\n <ieeesa-event-group-card\r\n *ngFor=\"let event of pagedEvents; trackBy: trackByEventId\"\r\n [event]=\"event\"\r\n [permissions]=\"permissions\"\r\n [attendanceStates]=\"attendanceStates\"\r\n [inFlightMeetingIds]=\"inFlightMeetingIds\"\r\n [isMobileView]=\"isMobileView\"\r\n (viewEvent)=\"onViewEvent($event)\"\r\n (openMeeting)=\"onOpenMeeting($event)\"\r\n (logAttendance)=\"onLogAttendance($event)\"\r\n (leaveMeeting)=\"onLeaveMeeting($event)\"\r\n (pageChange)=\"onMeetingPageChange(event.eventId, $event)\"\r\n (loadMeetings)=\"onLoadEventMeetings(event.eventId, $event)\"\r\n (navigateToMeeting)=\"onNavigateToMeeting($event)\"\r\n ></ieeesa-event-group-card>\r\n\r\n <!-- Section-level paginator: 5 events/meetings per page (Req 3.x, design). -->\r\n <div\r\n *ngIf=\"totalItems > sectionPageSize\"\r\n class=\"ieeesa-upcoming-meetings-events__paginator\"\r\n >\r\n <span class=\"ieeesa-upcoming-meetings-events__paginator-range\">\r\n {{ sectionRangeLabel }}\r\n </span>\r\n <mat-paginator\r\n class=\"ieeesa-upcoming-meetings-events__paginator-control\"\r\n [pageIndex]=\"sectionPageIndex\"\r\n [pageSize]=\"sectionPageSize\"\r\n [length]=\"totalItems\"\r\n [hidePageSize]=\"true\"\r\n (page)=\"onSectionPageChange($event)\"\r\n ></mat-paginator>\r\n </div>\r\n </div>\r\n\r\n <!-- Empty-state region (Req 13.3). -->\r\n <p\r\n *ngIf=\"sectionState === sectionStates.EMPTY\"\r\n class=\"ieeesa-upcoming-meetings-events__empty\"\r\n >\r\n {{ constants.upcomingSection.emptyMessage }}\r\n </p>\r\n\r\n <!-- Error region (Req 13.5). -->\r\n <p\r\n *ngIf=\"sectionState === sectionStates.ERROR\"\r\n class=\"ieeesa-upcoming-meetings-events__error\"\r\n role=\"alert\"\r\n >\r\n {{ constants.upcomingSection.errorMessage }}\r\n </p>\r\n </div>\r\n</section>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-upcoming-meetings-events{display:flex;flex-direction:column;gap:16px;background-color:#fff;border-radius:12px;box-shadow:0 1px 2px #0003;border:1px solid #e2e8f0;padding:20px 24px}.ieeesa-upcoming-meetings-events__header{display:flex;align-items:center;justify-content:space-between;gap:16px}.ieeesa-upcoming-meetings-events__heading{display:flex;min-width:0}.ieeesa-upcoming-meetings-events__title{margin:0;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#0f172a}.ieeesa-upcoming-meetings-events__actions{display:flex;align-items:center;gap:16px}.ieeesa-upcoming-meetings-events__view-all{flex-shrink:0;background:none;border:none;padding:0;cursor:pointer;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#00629b}.ieeesa-upcoming-meetings-events__view-all:hover{text-decoration:underline}.ieeesa-upcoming-meetings-events__toggle{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid #dbe2eb;border-radius:8px;background-color:#fff;cursor:pointer;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#00629b}.ieeesa-upcoming-meetings-events__toggle:hover{border-color:#00629b}.ieeesa-upcoming-meetings-events__toggle i{font-size:.75rem}.ieeesa-upcoming-meetings-events__summary{margin:0;font-size:.875rem;color:#939094}.ieeesa-upcoming-meetings-events__summary-open{font-family:Calibri Bold;font-weight:700;color:#15803d}.ieeesa-upcoming-meetings-events__body{display:flex;flex-direction:column}.ieeesa-upcoming-meetings-events__loader{display:flex;align-items:center;justify-content:center;padding:24px}.ieeesa-upcoming-meetings-events__cards{display:flex;flex-direction:column;gap:16px}.ieeesa-upcoming-meetings-events__paginator{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;padding-top:8px}.ieeesa-upcoming-meetings-events__paginator-range{font-size:.8125rem;color:#939094}.ieeesa-upcoming-meetings-events__empty,.ieeesa-upcoming-meetings-events__error{margin:0;padding:16px;font-size:.875rem;color:#939094}.ieeesa-upcoming-meetings-events__error{color:#ba0c2f}.ieeesa-upcoming-meetings-events--mobile .ieeesa-upcoming-meetings-events__header{flex-wrap:wrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i2.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: LoaderComponent, selector: "ieeesa-loader", inputs: ["diameter"] }, { kind: "component", type: EventGroupCardComponent, selector: "ieeesa-event-group-card", inputs: ["event", "permissions", "attendanceStates", "inFlightMeetingIds", "isMobileView"], outputs: ["viewEvent", "openMeeting", "logAttendance", "leaveMeeting", "pageChange", "loadMeetings", "navigateToMeeting"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
278
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UpcomingMeetingsEventsComponent, isStandalone: true, selector: "ieeesa-upcoming-meetings-events", inputs: { events: "events", sectionState: "sectionState", permissions: "permissions", attendanceStates: "attendanceStates", inFlightMeetingIds: "inFlightMeetingIds", isMobileView: "isMobileView", expanded: "expanded" }, outputs: { viewAll: "viewAll", viewEvent: "viewEvent", openMeeting: "openMeeting", logAttendance: "logAttendance", leaveMeeting: "leaveMeeting", meetingPageChange: "meetingPageChange", loadEventMeetings: "loadEventMeetings", navigateToMeeting: "navigateToMeeting", expandedChange: "expandedChange" }, ngImport: i0, template: "<section\r\n class=\"ieeesa-upcoming-meetings-events\"\r\n [class.ieeesa-upcoming-meetings-events--mobile]=\"isMobileView\"\r\n>\r\n <header class=\"ieeesa-upcoming-meetings-events__header\">\r\n <!-- Section title (Req 5.1). -->\r\n <div class=\"ieeesa-upcoming-meetings-events__heading\">\r\n <h2 class=\"ieeesa-upcoming-meetings-events__title\">\r\n {{ constants.upcomingSection.title }}\r\n </h2>\r\n </div>\r\n\r\n <!-- View All link + Expand/Collapse toggle (Req 5.1, 5.2, 5.3, 5.4, 14.3). -->\r\n <div class=\"ieeesa-upcoming-meetings-events__actions\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-upcoming-meetings-events__view-all\"\r\n [attr.aria-label]=\"constants.upcomingSection.ariaLabel.viewAll\"\r\n (click)=\"onViewAll()\"\r\n >\r\n {{ constants.upcomingSection.viewAllLabel }}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-upcoming-meetings-events__toggle\"\r\n [attr.aria-expanded]=\"isExpanded\"\r\n [attr.aria-label]=\"constants.upcomingSection.ariaLabel.toggle\"\r\n (click)=\"onToggleExpanded()\"\r\n >\r\n <span>{{ isExpanded ? constants.upcomingSection.collapseLabel : constants.upcomingSection.expandLabel }}</span>\r\n <i\r\n class=\"fa-solid\"\r\n [ngClass]=\"isExpanded ? 'fa-chevron-up' : 'fa-chevron-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </button>\r\n </div>\r\n </header>\r\n\r\n <!-- Collapsed summary: events / meetings / open-for-attendance counts.\r\n The open-for-attendance segment is green bold per Figma. -->\r\n <p\r\n *ngIf=\"!isExpanded && sectionState === sectionStates.LOADED\"\r\n class=\"ieeesa-upcoming-meetings-events__summary\"\r\n >\r\n {{ eventCount }} events · {{ totalMeetingCount }} meetings ·\r\n <span class=\"ieeesa-upcoming-meetings-events__summary-open\">\r\n {{ totalOpenForAttendanceCount }} open for attendance\r\n </span>\r\n </p>\r\n\r\n <!-- Card list, shown only while expanded (Req 5.4). -->\r\n <div *ngIf=\"isExpanded\" class=\"ieeesa-upcoming-meetings-events__body\">\r\n <!-- Loader region (Req 13.1). -->\r\n <div\r\n *ngIf=\"sectionState === sectionStates.LOADING\"\r\n class=\"ieeesa-upcoming-meetings-events__loader\"\r\n >\r\n <ieeesa-loader></ieeesa-loader>\r\n </div>\r\n\r\n <!-- Content region: one card per event preserving input order (Req 5.5, 5.6, 13.2). -->\r\n <div\r\n *ngIf=\"sectionState === sectionStates.LOADED\"\r\n class=\"ieeesa-upcoming-meetings-events__cards\"\r\n >\r\n <ieeesa-event-group-card\r\n *ngFor=\"let event of pagedEvents; trackBy: trackByEventId\"\r\n [event]=\"event\"\r\n [permissions]=\"permissions\"\r\n [attendanceStates]=\"attendanceStates\"\r\n [inFlightMeetingIds]=\"inFlightMeetingIds\"\r\n [isMobileView]=\"isMobileView\"\r\n (viewEvent)=\"onViewEvent($event)\"\r\n (openMeeting)=\"onOpenMeeting($event)\"\r\n (logAttendance)=\"onLogAttendance($event)\"\r\n (leaveMeeting)=\"onLeaveMeeting($event)\"\r\n (pageChange)=\"onMeetingPageChange(event.eventId, $event)\"\r\n (loadMeetings)=\"onLoadEventMeetings(event.eventId, $event)\"\r\n (navigateToMeeting)=\"onNavigateToMeeting($event)\"\r\n ></ieeesa-event-group-card>\r\n\r\n <!-- Section-level paginator: 5 events/meetings per page (Req 3.x, design). -->\r\n <div\r\n *ngIf=\"totalItems > sectionPageSize\"\r\n class=\"ieeesa-upcoming-meetings-events__paginator\"\r\n >\r\n <span class=\"ieeesa-upcoming-meetings-events__paginator-range\">\r\n {{ sectionRangeLabel }}\r\n </span>\r\n <mat-paginator\r\n class=\"ieeesa-upcoming-meetings-events__paginator-control\"\r\n [pageIndex]=\"sectionPageIndex\"\r\n [pageSize]=\"sectionPageSize\"\r\n [length]=\"totalItems\"\r\n [hidePageSize]=\"true\"\r\n (page)=\"onSectionPageChange($event)\"\r\n ></mat-paginator>\r\n </div>\r\n </div>\r\n\r\n <!-- Empty-state region (Req 13.3). -->\r\n <p\r\n *ngIf=\"sectionState === sectionStates.EMPTY\"\r\n class=\"ieeesa-upcoming-meetings-events__empty\"\r\n >\r\n {{ constants.upcomingSection.emptyMessage }}\r\n </p>\r\n\r\n <!-- Error region (Req 13.5). -->\r\n <p\r\n *ngIf=\"sectionState === sectionStates.ERROR\"\r\n class=\"ieeesa-upcoming-meetings-events__error\"\r\n role=\"alert\"\r\n >\r\n {{ constants.upcomingSection.errorMessage }}\r\n </p>\r\n </div>\r\n</section>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-upcoming-meetings-events{display:flex;flex-direction:column;background-color:#fff;border-radius:12px;box-shadow:0 1px 2px #0003;border:1px solid #e2e8f0;padding:20px 24px}.ieeesa-upcoming-meetings-events__header{display:flex;align-items:center;justify-content:space-between;gap:16px}.ieeesa-upcoming-meetings-events__heading{display:flex;min-width:0}.ieeesa-upcoming-meetings-events__title{margin:0;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#0f172a}.ieeesa-upcoming-meetings-events__actions{display:flex;align-items:center;gap:16px}.ieeesa-upcoming-meetings-events__view-all{flex-shrink:0;background:none;border:none;padding:0;cursor:pointer;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#00629b}.ieeesa-upcoming-meetings-events__view-all:hover{text-decoration:underline}.ieeesa-upcoming-meetings-events__toggle{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid #dbe2eb;border-radius:8px;background-color:#fff;cursor:pointer;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#00629b}.ieeesa-upcoming-meetings-events__toggle:hover{border-color:#00629b}.ieeesa-upcoming-meetings-events__toggle i{font-size:.75rem}.ieeesa-upcoming-meetings-events__summary{margin:0;font-family:Calibri Regular;font-size:14px;color:#64748b;font-weight:400}.ieeesa-upcoming-meetings-events__summary-open{font-family:Calibri Bold;font-weight:700;color:#15803d}.ieeesa-upcoming-meetings-events__body{display:flex;flex-direction:column}.ieeesa-upcoming-meetings-events__loader{display:flex;align-items:center;justify-content:center;padding:24px}.ieeesa-upcoming-meetings-events__cards{display:flex;flex-direction:column;margin-top:16px}.ieeesa-upcoming-meetings-events__paginator{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;padding-top:8px}.ieeesa-upcoming-meetings-events__paginator-range{font-size:.8125rem;color:#939094}.ieeesa-upcoming-meetings-events__empty,.ieeesa-upcoming-meetings-events__error{margin:0;padding:16px;font-size:.875rem;color:#939094}.ieeesa-upcoming-meetings-events__error{color:#ba0c2f}.ieeesa-upcoming-meetings-events--mobile .ieeesa-upcoming-meetings-events__header{flex-wrap:wrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i2.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: LoaderComponent, selector: "ieeesa-loader", inputs: ["diameter"] }, { kind: "component", type: EventGroupCardComponent, selector: "ieeesa-event-group-card", inputs: ["event", "permissions", "attendanceStates", "inFlightMeetingIds", "isMobileView"], outputs: ["viewEvent", "openMeeting", "logAttendance", "leaveMeeting", "pageChange", "loadMeetings", "navigateToMeeting"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
279
279
|
}
|
|
280
280
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UpcomingMeetingsEventsComponent, decorators: [{
|
|
281
281
|
type: Component,
|
|
@@ -284,7 +284,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
284
284
|
MatPaginatorModule,
|
|
285
285
|
LoaderComponent,
|
|
286
286
|
EventGroupCardComponent,
|
|
287
|
-
], encapsulation: ViewEncapsulation.None, template: "<section\r\n class=\"ieeesa-upcoming-meetings-events\"\r\n [class.ieeesa-upcoming-meetings-events--mobile]=\"isMobileView\"\r\n>\r\n <header class=\"ieeesa-upcoming-meetings-events__header\">\r\n <!-- Section title (Req 5.1). -->\r\n <div class=\"ieeesa-upcoming-meetings-events__heading\">\r\n <h2 class=\"ieeesa-upcoming-meetings-events__title\">\r\n {{ constants.upcomingSection.title }}\r\n </h2>\r\n </div>\r\n\r\n <!-- View All link + Expand/Collapse toggle (Req 5.1, 5.2, 5.3, 5.4, 14.3). -->\r\n <div class=\"ieeesa-upcoming-meetings-events__actions\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-upcoming-meetings-events__view-all\"\r\n [attr.aria-label]=\"constants.upcomingSection.ariaLabel.viewAll\"\r\n (click)=\"onViewAll()\"\r\n >\r\n {{ constants.upcomingSection.viewAllLabel }}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-upcoming-meetings-events__toggle\"\r\n [attr.aria-expanded]=\"isExpanded\"\r\n [attr.aria-label]=\"constants.upcomingSection.ariaLabel.toggle\"\r\n (click)=\"onToggleExpanded()\"\r\n >\r\n <span>{{ isExpanded ? constants.upcomingSection.collapseLabel : constants.upcomingSection.expandLabel }}</span>\r\n <i\r\n class=\"fa-solid\"\r\n [ngClass]=\"isExpanded ? 'fa-chevron-up' : 'fa-chevron-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </button>\r\n </div>\r\n </header>\r\n\r\n <!-- Collapsed summary: events / meetings / open-for-attendance counts.\r\n The open-for-attendance segment is green bold per Figma. -->\r\n <p\r\n *ngIf=\"!isExpanded && sectionState === sectionStates.LOADED\"\r\n class=\"ieeesa-upcoming-meetings-events__summary\"\r\n >\r\n {{ eventCount }} events · {{ totalMeetingCount }} meetings ·\r\n <span class=\"ieeesa-upcoming-meetings-events__summary-open\">\r\n {{ totalOpenForAttendanceCount }} open for attendance\r\n </span>\r\n </p>\r\n\r\n <!-- Card list, shown only while expanded (Req 5.4). -->\r\n <div *ngIf=\"isExpanded\" class=\"ieeesa-upcoming-meetings-events__body\">\r\n <!-- Loader region (Req 13.1). -->\r\n <div\r\n *ngIf=\"sectionState === sectionStates.LOADING\"\r\n class=\"ieeesa-upcoming-meetings-events__loader\"\r\n >\r\n <ieeesa-loader></ieeesa-loader>\r\n </div>\r\n\r\n <!-- Content region: one card per event preserving input order (Req 5.5, 5.6, 13.2). -->\r\n <div\r\n *ngIf=\"sectionState === sectionStates.LOADED\"\r\n class=\"ieeesa-upcoming-meetings-events__cards\"\r\n >\r\n <ieeesa-event-group-card\r\n *ngFor=\"let event of pagedEvents; trackBy: trackByEventId\"\r\n [event]=\"event\"\r\n [permissions]=\"permissions\"\r\n [attendanceStates]=\"attendanceStates\"\r\n [inFlightMeetingIds]=\"inFlightMeetingIds\"\r\n [isMobileView]=\"isMobileView\"\r\n (viewEvent)=\"onViewEvent($event)\"\r\n (openMeeting)=\"onOpenMeeting($event)\"\r\n (logAttendance)=\"onLogAttendance($event)\"\r\n (leaveMeeting)=\"onLeaveMeeting($event)\"\r\n (pageChange)=\"onMeetingPageChange(event.eventId, $event)\"\r\n (loadMeetings)=\"onLoadEventMeetings(event.eventId, $event)\"\r\n (navigateToMeeting)=\"onNavigateToMeeting($event)\"\r\n ></ieeesa-event-group-card>\r\n\r\n <!-- Section-level paginator: 5 events/meetings per page (Req 3.x, design). -->\r\n <div\r\n *ngIf=\"totalItems > sectionPageSize\"\r\n class=\"ieeesa-upcoming-meetings-events__paginator\"\r\n >\r\n <span class=\"ieeesa-upcoming-meetings-events__paginator-range\">\r\n {{ sectionRangeLabel }}\r\n </span>\r\n <mat-paginator\r\n class=\"ieeesa-upcoming-meetings-events__paginator-control\"\r\n [pageIndex]=\"sectionPageIndex\"\r\n [pageSize]=\"sectionPageSize\"\r\n [length]=\"totalItems\"\r\n [hidePageSize]=\"true\"\r\n (page)=\"onSectionPageChange($event)\"\r\n ></mat-paginator>\r\n </div>\r\n </div>\r\n\r\n <!-- Empty-state region (Req 13.3). -->\r\n <p\r\n *ngIf=\"sectionState === sectionStates.EMPTY\"\r\n class=\"ieeesa-upcoming-meetings-events__empty\"\r\n >\r\n {{ constants.upcomingSection.emptyMessage }}\r\n </p>\r\n\r\n <!-- Error region (Req 13.5). -->\r\n <p\r\n *ngIf=\"sectionState === sectionStates.ERROR\"\r\n class=\"ieeesa-upcoming-meetings-events__error\"\r\n role=\"alert\"\r\n >\r\n {{ constants.upcomingSection.errorMessage }}\r\n </p>\r\n </div>\r\n</section>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-upcoming-meetings-events{display:flex;flex-direction:column;gap:16px;background-color:#fff;border-radius:12px;box-shadow:0 1px 2px #0003;border:1px solid #e2e8f0;padding:20px 24px}.ieeesa-upcoming-meetings-events__header{display:flex;align-items:center;justify-content:space-between;gap:16px}.ieeesa-upcoming-meetings-events__heading{display:flex;min-width:0}.ieeesa-upcoming-meetings-events__title{margin:0;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#0f172a}.ieeesa-upcoming-meetings-events__actions{display:flex;align-items:center;gap:16px}.ieeesa-upcoming-meetings-events__view-all{flex-shrink:0;background:none;border:none;padding:0;cursor:pointer;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#00629b}.ieeesa-upcoming-meetings-events__view-all:hover{text-decoration:underline}.ieeesa-upcoming-meetings-events__toggle{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid #dbe2eb;border-radius:8px;background-color:#fff;cursor:pointer;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#00629b}.ieeesa-upcoming-meetings-events__toggle:hover{border-color:#00629b}.ieeesa-upcoming-meetings-events__toggle i{font-size:.75rem}.ieeesa-upcoming-meetings-events__summary{margin:0;font-size:.875rem;color:#939094}.ieeesa-upcoming-meetings-events__summary-open{font-family:Calibri Bold;font-weight:700;color:#15803d}.ieeesa-upcoming-meetings-events__body{display:flex;flex-direction:column}.ieeesa-upcoming-meetings-events__loader{display:flex;align-items:center;justify-content:center;padding:24px}.ieeesa-upcoming-meetings-events__cards{display:flex;flex-direction:column;gap:16px}.ieeesa-upcoming-meetings-events__paginator{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;padding-top:8px}.ieeesa-upcoming-meetings-events__paginator-range{font-size:.8125rem;color:#939094}.ieeesa-upcoming-meetings-events__empty,.ieeesa-upcoming-meetings-events__error{margin:0;padding:16px;font-size:.875rem;color:#939094}.ieeesa-upcoming-meetings-events__error{color:#ba0c2f}.ieeesa-upcoming-meetings-events--mobile .ieeesa-upcoming-meetings-events__header{flex-wrap:wrap}\n"] }]
|
|
287
|
+
], encapsulation: ViewEncapsulation.None, template: "<section\r\n class=\"ieeesa-upcoming-meetings-events\"\r\n [class.ieeesa-upcoming-meetings-events--mobile]=\"isMobileView\"\r\n>\r\n <header class=\"ieeesa-upcoming-meetings-events__header\">\r\n <!-- Section title (Req 5.1). -->\r\n <div class=\"ieeesa-upcoming-meetings-events__heading\">\r\n <h2 class=\"ieeesa-upcoming-meetings-events__title\">\r\n {{ constants.upcomingSection.title }}\r\n </h2>\r\n </div>\r\n\r\n <!-- View All link + Expand/Collapse toggle (Req 5.1, 5.2, 5.3, 5.4, 14.3). -->\r\n <div class=\"ieeesa-upcoming-meetings-events__actions\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-upcoming-meetings-events__view-all\"\r\n [attr.aria-label]=\"constants.upcomingSection.ariaLabel.viewAll\"\r\n (click)=\"onViewAll()\"\r\n >\r\n {{ constants.upcomingSection.viewAllLabel }}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-upcoming-meetings-events__toggle\"\r\n [attr.aria-expanded]=\"isExpanded\"\r\n [attr.aria-label]=\"constants.upcomingSection.ariaLabel.toggle\"\r\n (click)=\"onToggleExpanded()\"\r\n >\r\n <span>{{ isExpanded ? constants.upcomingSection.collapseLabel : constants.upcomingSection.expandLabel }}</span>\r\n <i\r\n class=\"fa-solid\"\r\n [ngClass]=\"isExpanded ? 'fa-chevron-up' : 'fa-chevron-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </button>\r\n </div>\r\n </header>\r\n\r\n <!-- Collapsed summary: events / meetings / open-for-attendance counts.\r\n The open-for-attendance segment is green bold per Figma. -->\r\n <p\r\n *ngIf=\"!isExpanded && sectionState === sectionStates.LOADED\"\r\n class=\"ieeesa-upcoming-meetings-events__summary\"\r\n >\r\n {{ eventCount }} events · {{ totalMeetingCount }} meetings ·\r\n <span class=\"ieeesa-upcoming-meetings-events__summary-open\">\r\n {{ totalOpenForAttendanceCount }} open for attendance\r\n </span>\r\n </p>\r\n\r\n <!-- Card list, shown only while expanded (Req 5.4). -->\r\n <div *ngIf=\"isExpanded\" class=\"ieeesa-upcoming-meetings-events__body\">\r\n <!-- Loader region (Req 13.1). -->\r\n <div\r\n *ngIf=\"sectionState === sectionStates.LOADING\"\r\n class=\"ieeesa-upcoming-meetings-events__loader\"\r\n >\r\n <ieeesa-loader></ieeesa-loader>\r\n </div>\r\n\r\n <!-- Content region: one card per event preserving input order (Req 5.5, 5.6, 13.2). -->\r\n <div\r\n *ngIf=\"sectionState === sectionStates.LOADED\"\r\n class=\"ieeesa-upcoming-meetings-events__cards\"\r\n >\r\n <ieeesa-event-group-card\r\n *ngFor=\"let event of pagedEvents; trackBy: trackByEventId\"\r\n [event]=\"event\"\r\n [permissions]=\"permissions\"\r\n [attendanceStates]=\"attendanceStates\"\r\n [inFlightMeetingIds]=\"inFlightMeetingIds\"\r\n [isMobileView]=\"isMobileView\"\r\n (viewEvent)=\"onViewEvent($event)\"\r\n (openMeeting)=\"onOpenMeeting($event)\"\r\n (logAttendance)=\"onLogAttendance($event)\"\r\n (leaveMeeting)=\"onLeaveMeeting($event)\"\r\n (pageChange)=\"onMeetingPageChange(event.eventId, $event)\"\r\n (loadMeetings)=\"onLoadEventMeetings(event.eventId, $event)\"\r\n (navigateToMeeting)=\"onNavigateToMeeting($event)\"\r\n ></ieeesa-event-group-card>\r\n\r\n <!-- Section-level paginator: 5 events/meetings per page (Req 3.x, design). -->\r\n <div\r\n *ngIf=\"totalItems > sectionPageSize\"\r\n class=\"ieeesa-upcoming-meetings-events__paginator\"\r\n >\r\n <span class=\"ieeesa-upcoming-meetings-events__paginator-range\">\r\n {{ sectionRangeLabel }}\r\n </span>\r\n <mat-paginator\r\n class=\"ieeesa-upcoming-meetings-events__paginator-control\"\r\n [pageIndex]=\"sectionPageIndex\"\r\n [pageSize]=\"sectionPageSize\"\r\n [length]=\"totalItems\"\r\n [hidePageSize]=\"true\"\r\n (page)=\"onSectionPageChange($event)\"\r\n ></mat-paginator>\r\n </div>\r\n </div>\r\n\r\n <!-- Empty-state region (Req 13.3). -->\r\n <p\r\n *ngIf=\"sectionState === sectionStates.EMPTY\"\r\n class=\"ieeesa-upcoming-meetings-events__empty\"\r\n >\r\n {{ constants.upcomingSection.emptyMessage }}\r\n </p>\r\n\r\n <!-- Error region (Req 13.5). -->\r\n <p\r\n *ngIf=\"sectionState === sectionStates.ERROR\"\r\n class=\"ieeesa-upcoming-meetings-events__error\"\r\n role=\"alert\"\r\n >\r\n {{ constants.upcomingSection.errorMessage }}\r\n </p>\r\n </div>\r\n</section>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-upcoming-meetings-events{display:flex;flex-direction:column;background-color:#fff;border-radius:12px;box-shadow:0 1px 2px #0003;border:1px solid #e2e8f0;padding:20px 24px}.ieeesa-upcoming-meetings-events__header{display:flex;align-items:center;justify-content:space-between;gap:16px}.ieeesa-upcoming-meetings-events__heading{display:flex;min-width:0}.ieeesa-upcoming-meetings-events__title{margin:0;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#0f172a}.ieeesa-upcoming-meetings-events__actions{display:flex;align-items:center;gap:16px}.ieeesa-upcoming-meetings-events__view-all{flex-shrink:0;background:none;border:none;padding:0;cursor:pointer;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#00629b}.ieeesa-upcoming-meetings-events__view-all:hover{text-decoration:underline}.ieeesa-upcoming-meetings-events__toggle{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid #dbe2eb;border-radius:8px;background-color:#fff;cursor:pointer;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#00629b}.ieeesa-upcoming-meetings-events__toggle:hover{border-color:#00629b}.ieeesa-upcoming-meetings-events__toggle i{font-size:.75rem}.ieeesa-upcoming-meetings-events__summary{margin:0;font-family:Calibri Regular;font-size:14px;color:#64748b;font-weight:400}.ieeesa-upcoming-meetings-events__summary-open{font-family:Calibri Bold;font-weight:700;color:#15803d}.ieeesa-upcoming-meetings-events__body{display:flex;flex-direction:column}.ieeesa-upcoming-meetings-events__loader{display:flex;align-items:center;justify-content:center;padding:24px}.ieeesa-upcoming-meetings-events__cards{display:flex;flex-direction:column;margin-top:16px}.ieeesa-upcoming-meetings-events__paginator{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;padding-top:8px}.ieeesa-upcoming-meetings-events__paginator-range{font-size:.8125rem;color:#939094}.ieeesa-upcoming-meetings-events__empty,.ieeesa-upcoming-meetings-events__error{margin:0;padding:16px;font-size:.875rem;color:#939094}.ieeesa-upcoming-meetings-events__error{color:#ba0c2f}.ieeesa-upcoming-meetings-events--mobile .ieeesa-upcoming-meetings-events__header{flex-wrap:wrap}\n"] }]
|
|
288
288
|
}], propDecorators: { events: [{
|
|
289
289
|
type: Input
|
|
290
290
|
}], sectionState: [{
|
|
@@ -318,4 +318,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
318
318
|
}], expandedChange: [{
|
|
319
319
|
type: Output
|
|
320
320
|
}] } });
|
|
321
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBjb21pbmctbWVldGluZ3MtZXZlbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC9zcmMvbGliL2NvbXBvbmVudHMvdXBjb21pbmctbWVldGluZ3MtZXZlbnRzL3VwY29taW5nLW1lZXRpbmdzLWV2ZW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9jb21wb25lbnRzL3VwY29taW5nLW1lZXRpbmdzLWV2ZW50cy91cGNvbWluZy1tZWV0aW5ncy1ldmVudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxrQkFBa0IsR0FFbkIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFbkYsT0FBTyxFQUVMLGdCQUFnQixHQUNqQixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sS0FBSyxXQUFXLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFFM0Q7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQWVILE1BQU0sT0FBTywrQkFBK0I7SUFkNUM7UUFlRSx5REFBeUQ7UUFDekQsOERBQThEO1FBQzlELGNBQVMsR0FBUSxXQUFXLENBQUM7UUFFN0Isc0VBQXNFO1FBQzdELGtCQUFhLEdBQUcscUJBQXFCLENBQUM7UUFF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QyxTQUFTOytCQUVFLGlDQUFpQyxjQUMvQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsdUJBQXVCO3FCQUN4QixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJOzhCQVc1QixNQUFNO3NCQUFkLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQU1HLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHSSxPQUFPO3NCQUFoQixNQUFNO2dCQUdHLFNBQVM7c0JBQWxCLE1BQU07Z0JBR0csV0FBVztzQkFBcEIsTUFBTTtnQkFHRyxhQUFhO3NCQUF0QixNQUFNO2dCQUdHLFlBQVk7c0JBQXJCLE1BQU07Z0JBR0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUdHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFPRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBd0lILFFBQVE7c0JBRFgsS0FBSztnQkFlSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBNYXRQYWdpbmF0b3JNb2R1bGUsXHJcbiAgUGFnZUV2ZW50LFxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCB7IEF0dGVuZGFuY2VBY3Rpb25QZXJtaXNzaW9ucyB9IGZyb20gJy4uLy4uL21vZGVscy9hdHRlbmRhbmNlLWFjdGlvbi1wZXJtaXNzaW9ucy5tb2RlbCc7XHJcbmltcG9ydCB7IEF0dGVuZGFuY2VTdGF0ZSB9IGZyb20gJy4uLy4uL21vZGVscy9hdHRlbmRhbmNlLXN0YXRlLm1vZGVsJztcclxuaW1wb3J0IHsgRGFzaGJvYXJkU2VjdGlvblN0YXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Rhc2hib2FyZC1zZWN0aW9uLXN0YXRlLm1vZGVsJztcclxuaW1wb3J0IHsgUGFnZUNoYW5nZSB9IGZyb20gJy4uLy4uL21vZGVscy9wYWdlLWNoYW5nZS5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgVXBjb21pbmdFdmVudCxcclxuICBVcGNvbWluZ0l0ZW1LaW5kLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy91cGNvbWluZy1ldmVudC5tb2RlbCc7XHJcbmltcG9ydCB7IEV2ZW50R3JvdXBDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vZXZlbnQtZ3JvdXAtY2FyZC9ldmVudC1ncm91cC1jYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCAqIGFzIHNjcmVlblRleHRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcblxyXG4vKipcclxuICogVXBjb21pbmdfTWVldGluZ3NfRXZlbnRzIHJlbmRlcnMgdGhlIFwiVXBjb21pbmcgTWVldGluZ3MgJiBFdmVudHNcIiBkYXNoYm9hcmRcclxuICogc2VjdGlvbjogYSBzZWN0aW9uIHRpdGxlIGFuZCBcIlZpZXcgQWxsXCIgbGluaywgYSBjb2xsYXBzZS9leHBhbmQgdG9nZ2xlIHRoYXRcclxuICogc3RhcnRzIGV4cGFuZGVkLCBhbmQgb25lIHtAbGluayBFdmVudEdyb3VwQ2FyZENvbXBvbmVudH0gcGVyIHVwY29taW5nIGV2ZW50LlxyXG4gKlxyXG4gKiBUaGUgc2VjdGlvbiBpcyBkcml2ZW4gYnkgaXRzIGBzZWN0aW9uU3RhdGVgIGlucHV0OiBpdCBzaG93cyB0aGUgTG9hZGVyIHdoaWxlXHJcbiAqIGBMT0FESU5HYCwgdGhlIGV2ZW50LWdyb3VwIGNhcmRzIHdoaWxlIGBMT0FERURgLCB0aGUgZW1wdHktc3RhdGUgbWVzc2FnZSB3aGlsZVxyXG4gKiBgRU1QVFlgLCBhbmQgdGhlIGVycm9yIG1lc3NhZ2Ugd2hpbGUgYEVSUk9SYCDigJQgdGhlIGZvdXIgcmVnaW9ucyBhcmUgbXV0dWFsbHlcclxuICogZXhjbHVzaXZlIChSZXEgMTMuMSwgMTMuMiwgMTMuMywgMTMuNSkuIFRoZSBjb21wb25lbnQgaXMgcHVyZWx5XHJcbiAqIHByZXNlbnRhdGlvbmFsOiBcIlZpZXcgQWxsXCIgZW1pdHMgYHZpZXdBbGxgIChSZXEgNS4xLCA1LjIpLCB0aGUgY29sbGFwc2UgdG9nZ2xlXHJcbiAqIGZsaXBzIGBpc0V4cGFuZGVkYCBhbmQgdGhlIGNhcmQtbGlzdCB2aXNpYmlsaXR5IHdoaWxlIGV4cG9zaW5nXHJcbiAqIGBbYXR0ci5hcmlhLWV4cGFuZGVkXWAgKFJlcSA1LjMsIDUuNCwgMTQuMyksIGFuZCBlYWNoIGNhcmQgaXMgcmVuZGVyZWQgdmlhXHJcbiAqIGAqbmdGb3JgIHdpdGgge0BsaW5rIHRyYWNrQnlFdmVudElkfSB0byBwcmVzZXJ2ZSBpbnB1dCBvcmRlciAoUmVxIDUuNSwgNS42LFxyXG4gKiAxNC40KS4gQ2FyZCBvdXRwdXRzIChgdmlld0V2ZW50YC9gb3Blbk1lZXRpbmdgL2Bsb2dBdHRlbmRhbmNlYC9gbGVhdmVNZWV0aW5nYClcclxuICogYXJlIGJ1YmJsZWQgdXB3YXJkIHVuY2hhbmdlZCwgYW5kIGVhY2ggY2FyZCdzIGBwYWdlQ2hhbmdlYCBpcyBtYXBwZWQgdG9cclxuICogYG1lZXRpbmdQYWdlQ2hhbmdlYCB0YWdnZWQgd2l0aCB0aGUgb3JpZ2luYXRpbmcgZXZlbnQgaWQgKFJlcSA2LjkpLlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50cycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXHJcbiAgICBMb2FkZXJDb21wb25lbnQsXHJcbiAgICBFdmVudEdyb3VwQ2FyZENvbXBvbmVudCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGNvbWluZy1tZWV0aW5ncy1ldmVudHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VwY29taW5nLW1lZXRpbmdzLWV2ZW50cy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50IHtcclxuICAvKiogVXNlci1mYWNpbmcgc3RyaW5ncyBzb3VyY2VkIGZyb20gYGNvbnN0YW50cy5qc29uYC4gKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gc2NyZWVuVGV4dHM7XHJcblxyXG4gIC8qKiBFbnVtIHJlZmVyZW5jZSBmb3IgdGVtcGxhdGUgY29tcGFyaXNvbnMgYWdhaW5zdCBgc2VjdGlvblN0YXRlYC4gKi9cclxuICByZWFkb25seSBzZWN0aW9uU3RhdGVzID0gRGFzaGJvYXJkU2VjdGlvblN0YXRlO1xyXG5cclxuICAvKiogVGhlIHVwY29taW5nIGV2ZW50cyByZW5kZXJlZCBhcyBldmVudC1ncm91cCBjYXJkcyAoUmVxIDUuNSwgNS42KS4gKi9cclxuICBASW5wdXQoKSBldmVudHM6IFVwY29taW5nRXZlbnRbXSA9IFtdO1xyXG5cclxuICAvKiogVGhlIGxvYWQvZW1wdHkvZXJyb3Igc3RhdHVzIGRyaXZpbmcgdGhlIHNlY3Rpb24ncyBtdXR1YWxseSBleGNsdXNpdmUgcmVnaW9ucy4gKi9cclxuICBASW5wdXQoKSBzZWN0aW9uU3RhdGU6IERhc2hib2FyZFNlY3Rpb25TdGF0ZSA9IERhc2hib2FyZFNlY3Rpb25TdGF0ZS5MT0FESU5HO1xyXG5cclxuICAvKiogSG9zdCBwZXJtaXNzaW9ucyBnYXRpbmcgdGhlIHBlci1yb3cgbG9nLWF0dGVuZGFuY2UgLyBsZWF2ZS1tZWV0aW5nIGJ1dHRvbnMuICovXHJcbiAgQElucHV0KCkgcGVybWlzc2lvbnM6IEF0dGVuZGFuY2VBY3Rpb25QZXJtaXNzaW9ucyA9IHtcclxuICAgIGNhbkxvZ0F0dGVuZGFuY2U6IGZhbHNlLFxyXG4gICAgY2FuTGVhdmVNZWV0aW5nOiBmYWxzZSxcclxuICB9O1xyXG5cclxuICAvKiogTWFwIG9mIG1lZXRpbmcgaWQgdG8gY3VycmVudCBhdHRlbmRhbmNlIHN0YXRlLCBwYXNzZWQgZG93biB0byBlYWNoIGNhcmQuICovXHJcbiAgQElucHV0KCkgYXR0ZW5kYW5jZVN0YXRlczogUmVjb3JkPHN0cmluZywgQXR0ZW5kYW5jZVN0YXRlPiA9IHt9O1xyXG5cclxuICAvKiogU2V0IG9mIG1lZXRpbmcgaWRzIHdpdGggYW4gYXR0ZW5kYW5jZSBhY3Rpb24gYXdhaXRpbmcgcmVzb2x1dGlvbi4gKi9cclxuICBASW5wdXQoKSBpbkZsaWdodE1lZXRpbmdJZHM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIGhvc3QgaGFzIGRldGVybWluZWQgdGhlIHZpZXdwb3J0IGlzIGF0L2JlbG93IHRoZSBtb2JpbGUgYnJlYWtwb2ludC4gKi9cclxuICBASW5wdXQoKSBpc01vYmlsZVZpZXcgPSBmYWxzZTtcclxuXHJcbiAgLyoqIEVtaXRzIHdoZW4gdGhlIFwiVmlldyBBbGxcIiBsaW5rIGlzIGFjdGl2YXRlZCAoUmVxIDUuMikuICovXHJcbiAgQE91dHB1dCgpIHZpZXdBbGwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIC8qKiBCdWJibGVzIHRoZSBldmVudCBpZCB3aGVuIGEgY2FyZCdzIFwiVmlldyBFdmVudFwiIGJ1dHRvbiBpcyBhY3RpdmF0ZWQgKFJlcSA2LjQpLiAqL1xyXG4gIEBPdXRwdXQoKSB2aWV3RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqIEJ1YmJsZXMgdGhlIG1lZXRpbmcgaWQgd2hlbiBhIGNhcmQncyBtZWV0aW5nLW5hbWUgbGluayBpcyBhY3RpdmF0ZWQgKFJlcSA3LjQpLiAqL1xyXG4gIEBPdXRwdXQoKSBvcGVuTWVldGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAvKiogQnViYmxlcyB0aGUgbWVldGluZyBpZCB3aGVuIGEgY2FyZCByZXF1ZXN0cyBsb2dnaW5nIGF0dGVuZGFuY2UgKFJlcSA3LjcpLiAqL1xyXG4gIEBPdXRwdXQoKSBsb2dBdHRlbmRhbmNlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKiBCdWJibGVzIHRoZSBtZWV0aW5nIGlkIHdoZW4gYSBjYXJkIHJlcXVlc3RzIGxlYXZpbmcgdGhlIG1lZXRpbmcgKFJlcSA3LjgpLiAqL1xyXG4gIEBPdXRwdXQoKSBsZWF2ZU1lZXRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqIEVtaXRzIHRoZSByZXF1ZXN0ZWQgcGFnZSB0YWdnZWQgd2l0aCBpdHMgZXZlbnQgaWQgd2hlbiBhIGNhcmQgcGFnaW5hdGVzIChSZXEgNi45KS4gKi9cclxuICBAT3V0cHV0KCkgbWVldGluZ1BhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZXZlbnRJZDogc3RyaW5nIH0gJiBQYWdlQ2hhbmdlPigpO1xyXG5cclxuICAvKiogRW1pdHMgdGhlIGV2ZW50IGlkICsgb25lLWJhc2VkIHBhZ2UgKyBzaXplIHRvIGxhemlseSBsb2FkIGFuIGV2ZW50J3MgY2hpbGQgbWVldGluZ3MuICovXHJcbiAgQE91dHB1dCgpIGxvYWRFdmVudE1lZXRpbmdzID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBldmVudElkOiBzdHJpbmc7XHJcbiAgICBwYWdlOiBudW1iZXI7XHJcbiAgICBzaXplOiBudW1iZXI7XHJcbiAgfT4oKTtcclxuXHJcbiAgLyoqIEJ1YmJsZXMgYSBuYXZpZ2F0ZS10by1tZWV0aW5nIHJlcXVlc3QgKGV2ZW50SWQgKyBtZWV0aW5nSWQgWysgbG9nQXR0ZW5kYW5jZV0pIGZvciB0aGUgaG9zdCB0byByb3V0ZS4gKi9cclxuICBAT3V0cHV0KCkgbmF2aWdhdGVUb01lZXRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIGV2ZW50SWQ6IHN0cmluZztcclxuICAgIG1lZXRpbmdJZDogc3RyaW5nO1xyXG4gICAgbG9nQXR0ZW5kYW5jZT86IGJvb2xlYW47XHJcbiAgICBsZWF2ZU1lZXRpbmc/OiBib29sZWFuO1xyXG4gIH0+KCk7XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRoZSBzZWN0aW9uJ3MgY2FyZCBsaXN0IGlzIGN1cnJlbnRseSBleHBhbmRlZDsgc3RhcnRzIGNvbGxhcHNlZC4gKi9cclxuICBpc0V4cGFuZGVkID0gZmFsc2U7XHJcblxyXG4gIC8qKiBTZWN0aW9uLWxldmVsIHBhZ2Ugc2l6ZSDigJQgNSBldmVudHMvbWVldGluZ3MgcGVyIHBhZ2UgcGVyIHRoZSBkZXNpZ24uICovXHJcbiAgcmVhZG9ubHkgc2VjdGlvblBhZ2VTaXplID0gNTtcclxuXHJcbiAgLyoqIFRoZSBjdXJyZW50IHplcm8tYmFzZWQgcGFnZSBpbmRleCBvZiB0aGUgc2VjdGlvbiBsaXN0LiAqL1xyXG4gIHNlY3Rpb25QYWdlSW5kZXggPSAwO1xyXG5cclxuICAvKiogVGhlIHRvdGFsIG51bWJlciBvZiBldmVudHMvbWVldGluZ3MgaW4gdGhlIHNlY3Rpb24gKHBhZ2luYXRvciBsZW5ndGgpLiAqL1xyXG4gIGdldCB0b3RhbEl0ZW1zKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5ldmVudHM/Lmxlbmd0aCA/PyAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHNsaWNlIG9mIGV2ZW50cy9tZWV0aW5ncyBmb3IgdGhlIGN1cnJlbnQgc2VjdGlvbiBwYWdlICg1IHBlciBwYWdlKSxcclxuICAgKiB1c2VkIGJ5IHRoZSBjYXJkIGAqbmdGb3JgLlxyXG4gICAqIEByZXR1cm4ge1VwY29taW5nRXZlbnRbXX0gVGhlIGV2ZW50cyBvbiB0aGUgY3VycmVudCBwYWdlLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0IHBhZ2VkRXZlbnRzKCk6IFVwY29taW5nRXZlbnRbXSB7XHJcbiAgICBjb25zdCBzdGFydCA9IHRoaXMuc2VjdGlvblBhZ2VJbmRleCAqIHRoaXMuc2VjdGlvblBhZ2VTaXplO1xyXG4gICAgcmV0dXJuICh0aGlzLmV2ZW50cyA/PyBbXSkuc2xpY2Uoc3RhcnQsIHN0YXJ0ICsgdGhpcy5zZWN0aW9uUGFnZVNpemUpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSBvbmUtYmFzZWQgaW5kZXggb2YgdGhlIGZpcnN0IGl0ZW0gc2hvd24gb24gdGhlIGN1cnJlbnQgcGFnZS4gKi9cclxuICBnZXQgc2VjdGlvblJhbmdlU3RhcnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnRvdGFsSXRlbXMgPT09IDBcclxuICAgICAgPyAwXHJcbiAgICAgIDogdGhpcy5zZWN0aW9uUGFnZUluZGV4ICogdGhpcy5zZWN0aW9uUGFnZVNpemUgKyAxO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSBvbmUtYmFzZWQgaW5kZXggb2YgdGhlIGxhc3QgaXRlbSBzaG93biBvbiB0aGUgY3VycmVudCBwYWdlLiAqL1xyXG4gIGdldCBzZWN0aW9uUmFuZ2VFbmQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBNYXRoLm1pbihcclxuICAgICAgKHRoaXMuc2VjdGlvblBhZ2VJbmRleCArIDEpICogdGhpcy5zZWN0aW9uUGFnZVNpemUsXHJcbiAgICAgIHRoaXMudG90YWxJdGVtc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBzZWN0aW9uIHBhZ2luYXRvciByYW5nZSBsYWJlbCAoZS5nLiBcIjEtNSBvZiAyMCBNZWV0aW5ncyAmIEV2ZW50c1wiKVxyXG4gICAqIGJ1aWx0IGZyb20gdGhlIGBjb25zdGFudHMuanNvbmAgdGVtcGxhdGUuXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgZm9ybWF0dGVkIHJhbmdlIGxhYmVsLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0IHNlY3Rpb25SYW5nZUxhYmVsKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB0ZW1wbGF0ZSA9XHJcbiAgICAgIHRoaXMuY29uc3RhbnRzPy51cGNvbWluZ1NlY3Rpb24/LnBhZ2luYXRvcj8ucmFuZ2VUZW1wbGF0ZSA/P1xyXG4gICAgICAne3N0YXJ0fS17ZW5kfSBvZiB7dG90YWx9IE1lZXRpbmdzICYgRXZlbnRzJztcclxuICAgIHJldHVybiB0ZW1wbGF0ZVxyXG4gICAgICAucmVwbGFjZSgne3N0YXJ0fScsIGAke3RoaXMuc2VjdGlvblJhbmdlU3RhcnR9YClcclxuICAgICAgLnJlcGxhY2UoJ3tlbmR9JywgYCR7dGhpcy5zZWN0aW9uUmFuZ2VFbmR9YClcclxuICAgICAgLnJlcGxhY2UoJ3t0b3RhbH0nLCBgJHt0aGlzLnRvdGFsSXRlbXN9YCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBzZWN0aW9uIHBhZ2luYXRvciBjaGFuZ2UsIHVwZGF0aW5nIHRoZSBjdXJyZW50IHNlY3Rpb24gcGFnZS5cclxuICAgKiBAcGFyYW0ge1BhZ2VFdmVudH0gZXZlbnQgLSBUaGUgTWF0ZXJpYWwgcGFnaW5hdG9yIHBhZ2UgZXZlbnQuXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2VjdGlvblBhZ2VDaGFuZ2UoZXZlbnQ6IFBhZ2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWN0aW9uUGFnZUluZGV4ID0gZXZlbnQucGFnZUluZGV4O1xyXG4gIH1cclxuXHJcbiAgLyoqIE51bWJlciBvZiBFVkVOVCByb3dzIGluIHRoZSBsaXN0IChmb3IgdGhlIGNvbGxhcHNlZCBzdW1tYXJ5KS4gKi9cclxuICBnZXQgZXZlbnRDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuICh0aGlzLmV2ZW50cyA/PyBbXSkuZmlsdGVyKFxyXG4gICAgICAoZW50cnkpID0+IGVudHJ5LmtpbmQgPT09IFVwY29taW5nSXRlbUtpbmQuRVZFTlRcclxuICAgICkubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVG90YWwgbnVtYmVyIG9mIG1lZXRpbmdzIGFjcm9zcyB0aGUgbGlzdDogZWFjaCBldmVudCdzIGBtZWV0aW5nQ291bnRgIHBsdXNcclxuICAgKiBvbmUgcGVyIHN0YW5kYWxvbmUgbWVldGluZyAoZm9yIHRoZSBjb2xsYXBzZWQgc3VtbWFyeSkuXHJcbiAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgdG90YWwgbWVldGluZyBjb3VudC5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCB0b3RhbE1lZXRpbmdDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuICh0aGlzLmV2ZW50cyA/PyBbXSkucmVkdWNlKCh0b3RhbCwgZW50cnkpID0+IHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICB0b3RhbCArXHJcbiAgICAgICAgKGVudHJ5LmtpbmQgPT09IFVwY29taW5nSXRlbUtpbmQuRVZFTlRcclxuICAgICAgICAgID8gZW50cnkubWVldGluZ0NvdW50ID8/IDBcclxuICAgICAgICAgIDogMSlcclxuICAgICAgKTtcclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVG90YWwgbnVtYmVyIG9mIG1lZXRpbmdzIG9wZW4gZm9yIGF0dGVuZGFuY2UgYWNyb3NzIHRoZSBsaXN0IChmb3IgdGhlXHJcbiAgICogY29sbGFwc2VkIHN1bW1hcnkpOiBlYWNoIGV2ZW50J3Mgb3BlbiBjb3VudCBwbHVzIGFueSBzdGFuZGFsb25lIG1lZXRpbmcgdGhhdFxyXG4gICAqIGlzIGF0dGVuZGFuY2UtZWxpZ2libGUuXHJcbiAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgdG90YWwgb3Blbi1mb3ItYXR0ZW5kYW5jZSBjb3VudC5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCB0b3RhbE9wZW5Gb3JBdHRlbmRhbmNlQ291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiAodGhpcy5ldmVudHMgPz8gW10pLnJlZHVjZSgodG90YWwsIGVudHJ5KSA9PiB7XHJcbiAgICAgIGlmIChlbnRyeS5raW5kID09PSBVcGNvbWluZ0l0ZW1LaW5kLkVWRU5UKSB7XHJcbiAgICAgICAgcmV0dXJuIHRvdGFsICsgKGVudHJ5Lm9wZW5Gb3JBdHRlbmRhbmNlQ291bnQgPz8gMCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRvdGFsICsgKGVudHJ5LmF0dGVuZGFuY2VTdGF0ZSA/IDEgOiAwKTtcclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGNvbGxhcHNlZCBzdW1tYXJ5IGxpbmUgKGUuZy4gXCIzIGV2ZW50cyDCtyA1MCBtZWV0aW5ncyDCtyAyMSBvcGVuIGZvclxyXG4gICAqIGF0dGVuZGFuY2VcIikgYnVpbHQgZnJvbSB0aGUgYGNvbnN0YW50cy5qc29uYCB0ZW1wbGF0ZSBhbmQgdGhlIGNvdW50cy5cclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBmb3JtYXR0ZWQgY29sbGFwc2VkIHN1bW1hcnkuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXQgY29sbGFwc2VkU3VtbWFyeSgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdGVtcGxhdGUgPVxyXG4gICAgICB0aGlzLmNvbnN0YW50cz8udXBjb21pbmdTZWN0aW9uPy5jb2xsYXBzZWRTdW1tYXJ5VGVtcGxhdGUgPz9cclxuICAgICAgJ3tldmVudHN9IGV2ZW50cyBcXHUwMGI3IHttZWV0aW5nc30gbWVldGluZ3MgXFx1MDBiNyB7b3Blbn0gb3BlbiBmb3IgYXR0ZW5kYW5jZSc7XHJcbiAgICByZXR1cm4gdGVtcGxhdGVcclxuICAgICAgLnJlcGxhY2UoJ3tldmVudHN9JywgYCR7dGhpcy5ldmVudENvdW50fWApXHJcbiAgICAgIC5yZXBsYWNlKCd7bWVldGluZ3N9JywgYCR7dGhpcy50b3RhbE1lZXRpbmdDb3VudH1gKVxyXG4gICAgICAucmVwbGFjZSgne29wZW59JywgYCR7dGhpcy50b3RhbE9wZW5Gb3JBdHRlbmRhbmNlQ291bnR9YCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBbGxvd3MgdGhlIGhvc3QvY29udGFpbmVyIHRvIG9wZW4gb3IgY2xvc2UgdGhlIHNlY3Rpb24gKGUuZy4gYSBcIkp1bXAgdG9cIlxyXG4gICAqIHNob3J0Y3V0IG9wZW5zIGl0KS4gV3JpdGluZyB0aGUgaW5wdXQgbWlycm9ycyB0aGUgdmFsdWUgb250byB0aGUgaW50ZXJuYWxcclxuICAgKiBleHBhbmQgc3RhdGUgd2hpbGUgbGVhdmluZyB0aGUgdXNlcidzIG93biB0b2dnbGUgZnJlZSB0byBjaGFuZ2UgaXQgYWZ0ZXIuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBleHBhbmRlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pc0V4cGFuZGVkID0gISF2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IGV4cGFuZGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNFeHBhbmRlZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSBuZXcgZXhwYW5kZWQgc3RhdGUgd2hlbmV2ZXIgdGhlIHVzZXIgdG9nZ2xlcyB0aGUgc2VjdGlvbiwgc28gYVxyXG4gICAqIHR3by13YXkgYFsoZXhwYW5kZWQpXWAgYmluZGluZyBrZWVwcyB0aGUgaG9zdCdzIGZsYWcgaW4gc3luYyAob3RoZXJ3aXNlIGFcclxuICAgKiBob3N0LW9wZW5lZCBzZWN0aW9uIHRoZSB1c2VyIHRoZW4gY29sbGFwc2VzIGxlYXZlcyB0aGUgaG9zdCBmbGFnIHN0YWxlLFxyXG4gICAqIG1ha2luZyBhIHJlcGVhdCBcIkp1bXAgdG9cIiBhIG5vLW9wKS5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBleHBhbmRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogYHRyYWNrQnlgIGZvciB0aGUgZXZlbnQtZ3JvdXAtY2FyZCBgKm5nRm9yYCwga2V5ZWQgYnkgdGhlIHN0YWJsZSBldmVudCBpZCBzb1xyXG4gICAqIEFuZ3VsYXIgcmVuZGVycyBleGFjdGx5IG9uZSBjYXJkIHBlciBldmVudCBpbiBpbnB1dCBvcmRlciAoUmVxIDUuNSwgNS42LCAxNC40KS5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXggLSBUaGUgaXRlcmF0aW9uIGluZGV4IChmYWxsYmFjayBrZXkpLlxyXG4gICAqIEBwYXJhbSB7VXBjb21pbmdFdmVudH0gZXZlbnQgLSBUaGUgZXZlbnQgZm9yIHRoaXMgY2FyZC5cclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBzdGFibGUgdHJhY2sga2V5IChldmVudCBpZCkuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5RXZlbnRJZChpbmRleDogbnVtYmVyLCBldmVudDogVXBjb21pbmdFdmVudCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZXZlbnQ/LmV2ZW50SWQgPz8gYCR7aW5kZXh9YDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvZ2dsZXMgdGhlIHNlY3Rpb24ncyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGUsIGludmVydGluZyB0aGUgY2FyZC1saXN0XHJcbiAgICogdmlzaWJpbGl0eSBhbmQgdGhlIGV4cG9zZWQgYGFyaWEtZXhwYW5kZWRgIHZhbHVlIChSZXEgNS40LCAxNC4zKS5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uVG9nZ2xlRXhwYW5kZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRXhwYW5kZWQgPSAhdGhpcy5pc0V4cGFuZGVkO1xyXG4gICAgdGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KHRoaXMuaXNFeHBhbmRlZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBcIlZpZXcgQWxsXCIgbGluaywgZW1pdHRpbmcgdGhlIGB2aWV3QWxsYCBpbnRlbnQgdG8gdGhlIGhvc3QgKFJlcSA1LjIpLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25WaWV3QWxsKCk6IHZvaWQge1xyXG4gICAgdGhpcy52aWV3QWxsLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1YmJsZXMgYSBjYXJkJ3MgXCJWaWV3IEV2ZW50XCIgYWN0aXZhdGlvbiB1cHdhcmQgKFJlcSA2LjQpLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudElkIC0gVGhlIGV2ZW50IGlkIGVtaXR0ZWQgYnkgdGhlIGNhcmQuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBvblZpZXdFdmVudChldmVudElkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMudmlld0V2ZW50LmVtaXQoZXZlbnRJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWJibGVzIGEgY2FyZCdzIG1lZXRpbmctbmFtZSBsaW5rIGFjdGl2YXRpb24gdXB3YXJkIChSZXEgNy40KS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVldGluZ0lkIC0gVGhlIG1lZXRpbmcgaWQgZW1pdHRlZCBieSB0aGUgY2FyZC5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uT3Blbk1lZXRpbmcobWVldGluZ0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMub3Blbk1lZXRpbmcuZW1pdChtZWV0aW5nSWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQnViYmxlcyBhIGNhcmQncyBsb2ctYXR0ZW5kYW5jZSByZXF1ZXN0IHVwd2FyZCAoUmVxIDcuNykuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1lZXRpbmdJZCAtIFRoZSBtZWV0aW5nIGlkIGVtaXR0ZWQgYnkgdGhlIGNhcmQuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBvbkxvZ0F0dGVuZGFuY2UobWVldGluZ0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMubG9nQXR0ZW5kYW5jZS5lbWl0KG1lZXRpbmdJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWJibGVzIGEgY2FyZCdzIGxlYXZlLW1lZXRpbmcgcmVxdWVzdCB1cHdhcmQgKFJlcSA3LjgpLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZWV0aW5nSWQgLSBUaGUgbWVldGluZyBpZCBlbWl0dGVkIGJ5IHRoZSBjYXJkLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25MZWF2ZU1lZXRpbmcobWVldGluZ0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMubGVhdmVNZWV0aW5nLmVtaXQobWVldGluZ0lkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1hcHMgYSBjYXJkJ3MgYHBhZ2VDaGFuZ2VgIGludG8gYSBgbWVldGluZ1BhZ2VDaGFuZ2VgIHRhZ2dlZCB3aXRoIHRoZVxyXG4gICAqIG9yaWdpbmF0aW5nIGV2ZW50IGlkIHNvIHRoZSBob3N0IGNhbiBwYWdlIHRoZSBjb3JyZWN0IGV2ZW50IChSZXEgNi45KS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRJZCAtIFRoZSBpZCBvZiB0aGUgZXZlbnQgd2hvc2UgY2FyZCBwYWdpbmF0ZWQuXHJcbiAgICogQHBhcmFtIHtQYWdlQ2hhbmdlfSBwYWdlIC0gVGhlIHJlcXVlc3RlZCBwYWdlIGZyb20gdGhlIGNhcmQgcGFnaW5hdG9yLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25NZWV0aW5nUGFnZUNoYW5nZShldmVudElkOiBzdHJpbmcsIHBhZ2U6IFBhZ2VDaGFuZ2UpOiB2b2lkIHtcclxuICAgIHRoaXMubWVldGluZ1BhZ2VDaGFuZ2UuZW1pdCh7IGV2ZW50SWQsIC4uLnBhZ2UgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWJibGVzIGEgY2FyZCdzIGxhenkgY2hpbGQtbWVldGluZyBsb2FkIHJlcXVlc3QgdXB3YXJkLCB0YWdnZWQgd2l0aCB0aGVcclxuICAgKiBvcmlnaW5hdGluZyBldmVudCBpZCBzbyB0aGUgY29udGFpbmVyIGNhbiBmZXRjaCB0aGF0IGV2ZW50J3MgbWVldGluZ3MuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50SWQgLSBUaGUgZXZlbnQgd2hvc2UgbWVldGluZ3MgdG8gbG9hZC5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gcGFnZSAtIFRoZSBvbmUtYmFzZWQgcGFnZSByZXF1ZXN0ZWQgYnkgdGhlIGNhcmQuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBvbkxvYWRFdmVudE1lZXRpbmdzKGV2ZW50SWQ6IHN0cmluZywgcmVxdWVzdDogeyBwYWdlOiBudW1iZXI7IHNpemU6IG51bWJlciB9KTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRFdmVudE1lZXRpbmdzLmVtaXQoeyBldmVudElkLCBwYWdlOiByZXF1ZXN0LnBhZ2UsIHNpemU6IHJlcXVlc3Quc2l6ZSB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1YmJsZXMgYSBjYXJkJ3MgbmF2aWdhdGUtdG8tbWVldGluZyByZXF1ZXN0IHVwd2FyZCB1bmNoYW5nZWQuXHJcbiAgICogQHBhcmFtIHt7IGV2ZW50SWQ6IHN0cmluZzsgbWVldGluZ0lkOiBzdHJpbmcgfX0gcmVxdWVzdCAtIFRoZSBtZWV0aW5nIGlkZW50aXR5LlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25OYXZpZ2F0ZVRvTWVldGluZyhyZXF1ZXN0OiB7XHJcbiAgICBldmVudElkOiBzdHJpbmc7XHJcbiAgICBtZWV0aW5nSWQ6IHN0cmluZztcclxuICAgIGxvZ0F0dGVuZGFuY2U/OiBib29sZWFuO1xyXG4gICAgbGVhdmVNZWV0aW5nPzogYm9vbGVhbjtcclxuICB9KTogdm9pZCB7XHJcbiAgICB0aGlzLm5hdmlnYXRlVG9NZWV0aW5nLmVtaXQocmVxdWVzdCk7XHJcbiAgfVxyXG59XHJcbiIsIjxzZWN0aW9uXHJcbiAgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzXCJcclxuICBbY2xhc3MuaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50cy0tbW9iaWxlXT1cImlzTW9iaWxlVmlld1wiXHJcbj5cclxuICA8aGVhZGVyIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19faGVhZGVyXCI+XHJcbiAgICA8IS0tIFNlY3Rpb24gdGl0bGUgKFJlcSA1LjEpLiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzX19oZWFkaW5nXCI+XHJcbiAgICAgIDxoMiBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX3RpdGxlXCI+XHJcbiAgICAgICAge3sgY29uc3RhbnRzLnVwY29taW5nU2VjdGlvbi50aXRsZSB9fVxyXG4gICAgICA8L2gyPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBWaWV3IEFsbCBsaW5rICsgRXhwYW5kL0NvbGxhcHNlIHRvZ2dsZSAoUmVxIDUuMSwgNS4yLCA1LjMsIDUuNCwgMTQuMykuIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX2FjdGlvbnNcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fdmlldy1hbGxcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzLnVwY29taW5nU2VjdGlvbi5hcmlhTGFiZWwudmlld0FsbFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uVmlld0FsbCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGNvbnN0YW50cy51cGNvbWluZ1NlY3Rpb24udmlld0FsbExhYmVsIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fdG9nZ2xlXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzRXhwYW5kZWRcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzLnVwY29taW5nU2VjdGlvbi5hcmlhTGFiZWwudG9nZ2xlXCJcclxuICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVFeHBhbmRlZCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuPnt7IGlzRXhwYW5kZWQgPyBjb25zdGFudHMudXBjb21pbmdTZWN0aW9uLmNvbGxhcHNlTGFiZWwgOiBjb25zdGFudHMudXBjb21pbmdTZWN0aW9uLmV4cGFuZExhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgIDxpXHJcbiAgICAgICAgICBjbGFzcz1cImZhLXNvbGlkXCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cImlzRXhwYW5kZWQgPyAnZmEtY2hldnJvbi11cCcgOiAnZmEtY2hldnJvbi1kb3duJ1wiXHJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgID48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9oZWFkZXI+XHJcblxyXG4gIDwhLS0gQ29sbGFwc2VkIHN1bW1hcnk6IGV2ZW50cyAvIG1lZXRpbmdzIC8gb3Blbi1mb3ItYXR0ZW5kYW5jZSBjb3VudHMuXHJcbiAgICAgICBUaGUgb3Blbi1mb3ItYXR0ZW5kYW5jZSBzZWdtZW50IGlzIGdyZWVuIGJvbGQgcGVyIEZpZ21hLiAtLT5cclxuICA8cFxyXG4gICAgKm5nSWY9XCIhaXNFeHBhbmRlZCAmJiBzZWN0aW9uU3RhdGUgPT09IHNlY3Rpb25TdGF0ZXMuTE9BREVEXCJcclxuICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fc3VtbWFyeVwiXHJcbiAgPlxyXG4gICAge3sgZXZlbnRDb3VudCB9fSBldmVudHMgJm1pZGRvdDsge3sgdG90YWxNZWV0aW5nQ291bnQgfX0gbWVldGluZ3MgJm1pZGRvdDtcclxuICAgIDxzcGFuIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fc3VtbWFyeS1vcGVuXCI+XHJcbiAgICAgIHt7IHRvdGFsT3BlbkZvckF0dGVuZGFuY2VDb3VudCB9fSBvcGVuIGZvciBhdHRlbmRhbmNlXHJcbiAgICA8L3NwYW4+XHJcbiAgPC9wPlxyXG5cclxuICA8IS0tIENhcmQgbGlzdCwgc2hvd24gb25seSB3aGlsZSBleHBhbmRlZCAoUmVxIDUuNCkuIC0tPlxyXG4gIDxkaXYgKm5nSWY9XCJpc0V4cGFuZGVkXCIgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzX19ib2R5XCI+XHJcbiAgICA8IS0tIExvYWRlciByZWdpb24gKFJlcSAxMy4xKS4gLS0+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwic2VjdGlvblN0YXRlID09PSBzZWN0aW9uU3RhdGVzLkxPQURJTkdcIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX2xvYWRlclwiXHJcbiAgICA+XHJcbiAgICAgIDxpZWVlc2EtbG9hZGVyPjwvaWVlZXNhLWxvYWRlcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gQ29udGVudCByZWdpb246IG9uZSBjYXJkIHBlciBldmVudCBwcmVzZXJ2aW5nIGlucHV0IG9yZGVyIChSZXEgNS41LCA1LjYsIDEzLjIpLiAtLT5cclxuICAgIDxkaXZcclxuICAgICAgKm5nSWY9XCJzZWN0aW9uU3RhdGUgPT09IHNlY3Rpb25TdGF0ZXMuTE9BREVEXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzX19jYXJkc1wiXHJcbiAgICA+XHJcbiAgICAgIDxpZWVlc2EtZXZlbnQtZ3JvdXAtY2FyZFxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBldmVudCBvZiBwYWdlZEV2ZW50czsgdHJhY2tCeTogdHJhY2tCeUV2ZW50SWRcIlxyXG4gICAgICAgIFtldmVudF09XCJldmVudFwiXHJcbiAgICAgICAgW3Blcm1pc3Npb25zXT1cInBlcm1pc3Npb25zXCJcclxuICAgICAgICBbYXR0ZW5kYW5jZVN0YXRlc109XCJhdHRlbmRhbmNlU3RhdGVzXCJcclxuICAgICAgICBbaW5GbGlnaHRNZWV0aW5nSWRzXT1cImluRmxpZ2h0TWVldGluZ0lkc1wiXHJcbiAgICAgICAgW2lzTW9iaWxlVmlld109XCJpc01vYmlsZVZpZXdcIlxyXG4gICAgICAgICh2aWV3RXZlbnQpPVwib25WaWV3RXZlbnQoJGV2ZW50KVwiXHJcbiAgICAgICAgKG9wZW5NZWV0aW5nKT1cIm9uT3Blbk1lZXRpbmcoJGV2ZW50KVwiXHJcbiAgICAgICAgKGxvZ0F0dGVuZGFuY2UpPVwib25Mb2dBdHRlbmRhbmNlKCRldmVudClcIlxyXG4gICAgICAgIChsZWF2ZU1lZXRpbmcpPVwib25MZWF2ZU1lZXRpbmcoJGV2ZW50KVwiXHJcbiAgICAgICAgKHBhZ2VDaGFuZ2UpPVwib25NZWV0aW5nUGFnZUNoYW5nZShldmVudC5ldmVudElkLCAkZXZlbnQpXCJcclxuICAgICAgICAobG9hZE1lZXRpbmdzKT1cIm9uTG9hZEV2ZW50TWVldGluZ3MoZXZlbnQuZXZlbnRJZCwgJGV2ZW50KVwiXHJcbiAgICAgICAgKG5hdmlnYXRlVG9NZWV0aW5nKT1cIm9uTmF2aWdhdGVUb01lZXRpbmcoJGV2ZW50KVwiXHJcbiAgICAgID48L2llZWVzYS1ldmVudC1ncm91cC1jYXJkPlxyXG5cclxuICAgICAgPCEtLSBTZWN0aW9uLWxldmVsIHBhZ2luYXRvcjogNSBldmVudHMvbWVldGluZ3MgcGVyIHBhZ2UgKFJlcSAzLngsIGRlc2lnbikuIC0tPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJ0b3RhbEl0ZW1zID4gc2VjdGlvblBhZ2VTaXplXCJcclxuICAgICAgICBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX3BhZ2luYXRvclwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX3BhZ2luYXRvci1yYW5nZVwiPlxyXG4gICAgICAgICAge3sgc2VjdGlvblJhbmdlTGFiZWwgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPG1hdC1wYWdpbmF0b3JcclxuICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fcGFnaW5hdG9yLWNvbnRyb2xcIlxyXG4gICAgICAgICAgW3BhZ2VJbmRleF09XCJzZWN0aW9uUGFnZUluZGV4XCJcclxuICAgICAgICAgIFtwYWdlU2l6ZV09XCJzZWN0aW9uUGFnZVNpemVcIlxyXG4gICAgICAgICAgW2xlbmd0aF09XCJ0b3RhbEl0ZW1zXCJcclxuICAgICAgICAgIFtoaWRlUGFnZVNpemVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAocGFnZSk9XCJvblNlY3Rpb25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgID48L21hdC1wYWdpbmF0b3I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBFbXB0eS1zdGF0ZSByZWdpb24gKFJlcSAxMy4zKS4gLS0+XHJcbiAgICA8cFxyXG4gICAgICAqbmdJZj1cInNlY3Rpb25TdGF0ZSA9PT0gc2VjdGlvblN0YXRlcy5FTVBUWVwiXHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fZW1wdHlcIlxyXG4gICAgPlxyXG4gICAgICB7eyBjb25zdGFudHMudXBjb21pbmdTZWN0aW9uLmVtcHR5TWVzc2FnZSB9fVxyXG4gICAgPC9wPlxyXG5cclxuICAgIDwhLS0gRXJyb3IgcmVnaW9uIChSZXEgMTMuNSkuIC0tPlxyXG4gICAgPHBcclxuICAgICAgKm5nSWY9XCJzZWN0aW9uU3RhdGUgPT09IHNlY3Rpb25TdGF0ZXMuRVJST1JcIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX2Vycm9yXCJcclxuICAgICAgcm9sZT1cImFsZXJ0XCJcclxuICAgID5cclxuICAgICAge3sgY29uc3RhbnRzLnVwY29taW5nU2VjdGlvbi5lcnJvck1lc3NhZ2UgfX1cclxuICAgIDwvcD5cclxuICA8L2Rpdj5cclxuPC9zZWN0aW9uPlxyXG4iXX0=
|
|
321
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBjb21pbmctbWVldGluZ3MtZXZlbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC9zcmMvbGliL2NvbXBvbmVudHMvdXBjb21pbmctbWVldGluZ3MtZXZlbnRzL3VwY29taW5nLW1lZXRpbmdzLWV2ZW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9jb21wb25lbnRzL3VwY29taW5nLW1lZXRpbmdzLWV2ZW50cy91cGNvbWluZy1tZWV0aW5ncy1ldmVudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxrQkFBa0IsR0FFbkIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFbkYsT0FBTyxFQUVMLGdCQUFnQixHQUNqQixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sS0FBSyxXQUFXLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFFM0Q7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQWVILE1BQU0sT0FBTywrQkFBK0I7SUFkNUM7UUFlRSx5REFBeUQ7UUFDekQsOERBQThEO1FBQzlELGNBQVMsR0FBUSxXQUFXLENBQUM7UUFFN0Isc0VBQXNFO1FBQzdELGtCQUFhLEdBQUcscUJBQXFCLENBQUM7UUFF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QyxTQUFTOytCQUVFLGlDQUFpQyxjQUMvQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsdUJBQXVCO3FCQUN4QixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJOzhCQVc1QixNQUFNO3NCQUFkLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQU1HLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHSSxPQUFPO3NCQUFoQixNQUFNO2dCQUdHLFNBQVM7c0JBQWxCLE1BQU07Z0JBR0csV0FBVztzQkFBcEIsTUFBTTtnQkFHRyxhQUFhO3NCQUF0QixNQUFNO2dCQUdHLFlBQVk7c0JBQXJCLE1BQU07Z0JBR0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUdHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFPRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBd0lILFFBQVE7c0JBRFgsS0FBSztnQkFlSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBNYXRQYWdpbmF0b3JNb2R1bGUsXHJcbiAgUGFnZUV2ZW50LFxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCB7IEF0dGVuZGFuY2VBY3Rpb25QZXJtaXNzaW9ucyB9IGZyb20gJy4uLy4uL21vZGVscy9hdHRlbmRhbmNlLWFjdGlvbi1wZXJtaXNzaW9ucy5tb2RlbCc7XHJcbmltcG9ydCB7IEF0dGVuZGFuY2VTdGF0ZSB9IGZyb20gJy4uLy4uL21vZGVscy9hdHRlbmRhbmNlLXN0YXRlLm1vZGVsJztcclxuaW1wb3J0IHsgRGFzaGJvYXJkU2VjdGlvblN0YXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Rhc2hib2FyZC1zZWN0aW9uLXN0YXRlLm1vZGVsJztcclxuaW1wb3J0IHsgUGFnZUNoYW5nZSB9IGZyb20gJy4uLy4uL21vZGVscy9wYWdlLWNoYW5nZS5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgVXBjb21pbmdFdmVudCxcclxuICBVcGNvbWluZ0l0ZW1LaW5kLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy91cGNvbWluZy1ldmVudC5tb2RlbCc7XHJcbmltcG9ydCB7IEV2ZW50R3JvdXBDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vZXZlbnQtZ3JvdXAtY2FyZC9ldmVudC1ncm91cC1jYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCAqIGFzIHNjcmVlblRleHRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcblxyXG4vKipcclxuICogVXBjb21pbmdfTWVldGluZ3NfRXZlbnRzIHJlbmRlcnMgdGhlIFwiVXBjb21pbmcgTWVldGluZ3MgJiBFdmVudHNcIiBkYXNoYm9hcmRcclxuICogc2VjdGlvbjogYSBzZWN0aW9uIHRpdGxlIGFuZCBcIlZpZXcgQWxsXCIgbGluaywgYSBjb2xsYXBzZS9leHBhbmQgdG9nZ2xlIHRoYXRcclxuICogc3RhcnRzIGV4cGFuZGVkLCBhbmQgb25lIHtAbGluayBFdmVudEdyb3VwQ2FyZENvbXBvbmVudH0gcGVyIHVwY29taW5nIGV2ZW50LlxyXG4gKlxyXG4gKiBUaGUgc2VjdGlvbiBpcyBkcml2ZW4gYnkgaXRzIGBzZWN0aW9uU3RhdGVgIGlucHV0OiBpdCBzaG93cyB0aGUgTG9hZGVyIHdoaWxlXHJcbiAqIGBMT0FESU5HYCwgdGhlIGV2ZW50LWdyb3VwIGNhcmRzIHdoaWxlIGBMT0FERURgLCB0aGUgZW1wdHktc3RhdGUgbWVzc2FnZSB3aGlsZVxyXG4gKiBgRU1QVFlgLCBhbmQgdGhlIGVycm9yIG1lc3NhZ2Ugd2hpbGUgYEVSUk9SYCDigJQgdGhlIGZvdXIgcmVnaW9ucyBhcmUgbXV0dWFsbHlcclxuICogZXhjbHVzaXZlIChSZXEgMTMuMSwgMTMuMiwgMTMuMywgMTMuNSkuIFRoZSBjb21wb25lbnQgaXMgcHVyZWx5XHJcbiAqIHByZXNlbnRhdGlvbmFsOiBcIlZpZXcgQWxsXCIgZW1pdHMgYHZpZXdBbGxgIChSZXEgNS4xLCA1LjIpLCB0aGUgY29sbGFwc2UgdG9nZ2xlXHJcbiAqIGZsaXBzIGBpc0V4cGFuZGVkYCBhbmQgdGhlIGNhcmQtbGlzdCB2aXNpYmlsaXR5IHdoaWxlIGV4cG9zaW5nXHJcbiAqIGBbYXR0ci5hcmlhLWV4cGFuZGVkXWAgKFJlcSA1LjMsIDUuNCwgMTQuMyksIGFuZCBlYWNoIGNhcmQgaXMgcmVuZGVyZWQgdmlhXHJcbiAqIGAqbmdGb3JgIHdpdGgge0BsaW5rIHRyYWNrQnlFdmVudElkfSB0byBwcmVzZXJ2ZSBpbnB1dCBvcmRlciAoUmVxIDUuNSwgNS42LFxyXG4gKiAxNC40KS4gQ2FyZCBvdXRwdXRzIChgdmlld0V2ZW50YC9gb3Blbk1lZXRpbmdgL2Bsb2dBdHRlbmRhbmNlYC9gbGVhdmVNZWV0aW5nYClcclxuICogYXJlIGJ1YmJsZWQgdXB3YXJkIHVuY2hhbmdlZCwgYW5kIGVhY2ggY2FyZCdzIGBwYWdlQ2hhbmdlYCBpcyBtYXBwZWQgdG9cclxuICogYG1lZXRpbmdQYWdlQ2hhbmdlYCB0YWdnZWQgd2l0aCB0aGUgb3JpZ2luYXRpbmcgZXZlbnQgaWQgKFJlcSA2LjkpLlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50cycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXHJcbiAgICBMb2FkZXJDb21wb25lbnQsXHJcbiAgICBFdmVudEdyb3VwQ2FyZENvbXBvbmVudCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGNvbWluZy1tZWV0aW5ncy1ldmVudHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VwY29taW5nLW1lZXRpbmdzLWV2ZW50cy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50IHtcclxuICAvKiogVXNlci1mYWNpbmcgc3RyaW5ncyBzb3VyY2VkIGZyb20gYGNvbnN0YW50cy5qc29uYC4gKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gc2NyZWVuVGV4dHM7XHJcblxyXG4gIC8qKiBFbnVtIHJlZmVyZW5jZSBmb3IgdGVtcGxhdGUgY29tcGFyaXNvbnMgYWdhaW5zdCBgc2VjdGlvblN0YXRlYC4gKi9cclxuICByZWFkb25seSBzZWN0aW9uU3RhdGVzID0gRGFzaGJvYXJkU2VjdGlvblN0YXRlO1xyXG5cclxuICAvKiogVGhlIHVwY29taW5nIGV2ZW50cyByZW5kZXJlZCBhcyBldmVudC1ncm91cCBjYXJkcyAoUmVxIDUuNSwgNS42KS4gKi9cclxuICBASW5wdXQoKSBldmVudHM6IFVwY29taW5nRXZlbnRbXSA9IFtdO1xyXG5cclxuICAvKiogVGhlIGxvYWQvZW1wdHkvZXJyb3Igc3RhdHVzIGRyaXZpbmcgdGhlIHNlY3Rpb24ncyBtdXR1YWxseSBleGNsdXNpdmUgcmVnaW9ucy4gKi9cclxuICBASW5wdXQoKSBzZWN0aW9uU3RhdGU6IERhc2hib2FyZFNlY3Rpb25TdGF0ZSA9IERhc2hib2FyZFNlY3Rpb25TdGF0ZS5MT0FESU5HO1xyXG5cclxuICAvKiogSG9zdCBwZXJtaXNzaW9ucyBnYXRpbmcgdGhlIHBlci1yb3cgbG9nLWF0dGVuZGFuY2UgLyBsZWF2ZS1tZWV0aW5nIGJ1dHRvbnMuICovXHJcbiAgQElucHV0KCkgcGVybWlzc2lvbnM6IEF0dGVuZGFuY2VBY3Rpb25QZXJtaXNzaW9ucyA9IHtcclxuICAgIGNhbkxvZ0F0dGVuZGFuY2U6IGZhbHNlLFxyXG4gICAgY2FuTGVhdmVNZWV0aW5nOiBmYWxzZSxcclxuICB9O1xyXG5cclxuICAvKiogTWFwIG9mIG1lZXRpbmcgaWQgdG8gY3VycmVudCBhdHRlbmRhbmNlIHN0YXRlLCBwYXNzZWQgZG93biB0byBlYWNoIGNhcmQuICovXHJcbiAgQElucHV0KCkgYXR0ZW5kYW5jZVN0YXRlczogUmVjb3JkPHN0cmluZywgQXR0ZW5kYW5jZVN0YXRlPiA9IHt9O1xyXG5cclxuICAvKiogU2V0IG9mIG1lZXRpbmcgaWRzIHdpdGggYW4gYXR0ZW5kYW5jZSBhY3Rpb24gYXdhaXRpbmcgcmVzb2x1dGlvbi4gKi9cclxuICBASW5wdXQoKSBpbkZsaWdodE1lZXRpbmdJZHM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIGhvc3QgaGFzIGRldGVybWluZWQgdGhlIHZpZXdwb3J0IGlzIGF0L2JlbG93IHRoZSBtb2JpbGUgYnJlYWtwb2ludC4gKi9cclxuICBASW5wdXQoKSBpc01vYmlsZVZpZXcgPSBmYWxzZTtcclxuXHJcbiAgLyoqIEVtaXRzIHdoZW4gdGhlIFwiVmlldyBBbGxcIiBsaW5rIGlzIGFjdGl2YXRlZCAoUmVxIDUuMikuICovXHJcbiAgQE91dHB1dCgpIHZpZXdBbGwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIC8qKiBCdWJibGVzIHRoZSBldmVudCBpZCB3aGVuIGEgY2FyZCdzIFwiVmlldyBFdmVudFwiIGJ1dHRvbiBpcyBhY3RpdmF0ZWQgKFJlcSA2LjQpLiAqL1xyXG4gIEBPdXRwdXQoKSB2aWV3RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqIEJ1YmJsZXMgdGhlIG1lZXRpbmcgaWQgd2hlbiBhIGNhcmQncyBtZWV0aW5nLW5hbWUgbGluayBpcyBhY3RpdmF0ZWQgKFJlcSA3LjQpLiAqL1xyXG4gIEBPdXRwdXQoKSBvcGVuTWVldGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAvKiogQnViYmxlcyB0aGUgbWVldGluZyBpZCB3aGVuIGEgY2FyZCByZXF1ZXN0cyBsb2dnaW5nIGF0dGVuZGFuY2UgKFJlcSA3LjcpLiAqL1xyXG4gIEBPdXRwdXQoKSBsb2dBdHRlbmRhbmNlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKiBCdWJibGVzIHRoZSBtZWV0aW5nIGlkIHdoZW4gYSBjYXJkIHJlcXVlc3RzIGxlYXZpbmcgdGhlIG1lZXRpbmcgKFJlcSA3LjgpLiAqL1xyXG4gIEBPdXRwdXQoKSBsZWF2ZU1lZXRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqIEVtaXRzIHRoZSByZXF1ZXN0ZWQgcGFnZSB0YWdnZWQgd2l0aCBpdHMgZXZlbnQgaWQgd2hlbiBhIGNhcmQgcGFnaW5hdGVzIChSZXEgNi45KS4gKi9cclxuICBAT3V0cHV0KCkgbWVldGluZ1BhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZXZlbnRJZDogc3RyaW5nIH0gJiBQYWdlQ2hhbmdlPigpO1xyXG5cclxuICAvKiogRW1pdHMgdGhlIGV2ZW50IGlkICsgb25lLWJhc2VkIHBhZ2UgKyBzaXplIHRvIGxhemlseSBsb2FkIGFuIGV2ZW50J3MgY2hpbGQgbWVldGluZ3MuICovXHJcbiAgQE91dHB1dCgpIGxvYWRFdmVudE1lZXRpbmdzID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBldmVudElkOiBzdHJpbmc7XHJcbiAgICBwYWdlOiBudW1iZXI7XHJcbiAgICBzaXplOiBudW1iZXI7XHJcbiAgfT4oKTtcclxuXHJcbiAgLyoqIEJ1YmJsZXMgYSBuYXZpZ2F0ZS10by1tZWV0aW5nIHJlcXVlc3QgKGV2ZW50SWQgKyBtZWV0aW5nSWQgWysgbG9nQXR0ZW5kYW5jZV0pIGZvciB0aGUgaG9zdCB0byByb3V0ZS4gKi9cclxuICBAT3V0cHV0KCkgbmF2aWdhdGVUb01lZXRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIGV2ZW50SWQ6IHN0cmluZztcclxuICAgIG1lZXRpbmdJZDogc3RyaW5nO1xyXG4gICAgbG9nQXR0ZW5kYW5jZT86IGJvb2xlYW47XHJcbiAgICBsZWF2ZU1lZXRpbmc/OiBib29sZWFuO1xyXG4gIH0+KCk7XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRoZSBzZWN0aW9uJ3MgY2FyZCBsaXN0IGlzIGN1cnJlbnRseSBleHBhbmRlZDsgc3RhcnRzIGNvbGxhcHNlZC4gKi9cclxuICBpc0V4cGFuZGVkID0gZmFsc2U7XHJcblxyXG4gIC8qKiBTZWN0aW9uLWxldmVsIHBhZ2Ugc2l6ZSDigJQgNSBldmVudHMvbWVldGluZ3MgcGVyIHBhZ2UgcGVyIHRoZSBkZXNpZ24uICovXHJcbiAgcmVhZG9ubHkgc2VjdGlvblBhZ2VTaXplID0gNTtcclxuXHJcbiAgLyoqIFRoZSBjdXJyZW50IHplcm8tYmFzZWQgcGFnZSBpbmRleCBvZiB0aGUgc2VjdGlvbiBsaXN0LiAqL1xyXG4gIHNlY3Rpb25QYWdlSW5kZXggPSAwO1xyXG5cclxuICAvKiogVGhlIHRvdGFsIG51bWJlciBvZiBldmVudHMvbWVldGluZ3MgaW4gdGhlIHNlY3Rpb24gKHBhZ2luYXRvciBsZW5ndGgpLiAqL1xyXG4gIGdldCB0b3RhbEl0ZW1zKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5ldmVudHM/Lmxlbmd0aCA/PyAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHNsaWNlIG9mIGV2ZW50cy9tZWV0aW5ncyBmb3IgdGhlIGN1cnJlbnQgc2VjdGlvbiBwYWdlICg1IHBlciBwYWdlKSxcclxuICAgKiB1c2VkIGJ5IHRoZSBjYXJkIGAqbmdGb3JgLlxyXG4gICAqIEByZXR1cm4ge1VwY29taW5nRXZlbnRbXX0gVGhlIGV2ZW50cyBvbiB0aGUgY3VycmVudCBwYWdlLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0IHBhZ2VkRXZlbnRzKCk6IFVwY29taW5nRXZlbnRbXSB7XHJcbiAgICBjb25zdCBzdGFydCA9IHRoaXMuc2VjdGlvblBhZ2VJbmRleCAqIHRoaXMuc2VjdGlvblBhZ2VTaXplO1xyXG4gICAgcmV0dXJuICh0aGlzLmV2ZW50cyA/PyBbXSkuc2xpY2Uoc3RhcnQsIHN0YXJ0ICsgdGhpcy5zZWN0aW9uUGFnZVNpemUpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSBvbmUtYmFzZWQgaW5kZXggb2YgdGhlIGZpcnN0IGl0ZW0gc2hvd24gb24gdGhlIGN1cnJlbnQgcGFnZS4gKi9cclxuICBnZXQgc2VjdGlvblJhbmdlU3RhcnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnRvdGFsSXRlbXMgPT09IDBcclxuICAgICAgPyAwXHJcbiAgICAgIDogdGhpcy5zZWN0aW9uUGFnZUluZGV4ICogdGhpcy5zZWN0aW9uUGFnZVNpemUgKyAxO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSBvbmUtYmFzZWQgaW5kZXggb2YgdGhlIGxhc3QgaXRlbSBzaG93biBvbiB0aGUgY3VycmVudCBwYWdlLiAqL1xyXG4gIGdldCBzZWN0aW9uUmFuZ2VFbmQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBNYXRoLm1pbihcclxuICAgICAgKHRoaXMuc2VjdGlvblBhZ2VJbmRleCArIDEpICogdGhpcy5zZWN0aW9uUGFnZVNpemUsXHJcbiAgICAgIHRoaXMudG90YWxJdGVtc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBzZWN0aW9uIHBhZ2luYXRvciByYW5nZSBsYWJlbCAoZS5nLiBcIjEtNSBvZiAyMCBNZWV0aW5ncyAmIEV2ZW50c1wiKVxyXG4gICAqIGJ1aWx0IGZyb20gdGhlIGBjb25zdGFudHMuanNvbmAgdGVtcGxhdGUuXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgZm9ybWF0dGVkIHJhbmdlIGxhYmVsLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0IHNlY3Rpb25SYW5nZUxhYmVsKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB0ZW1wbGF0ZSA9XHJcbiAgICAgIHRoaXMuY29uc3RhbnRzPy51cGNvbWluZ1NlY3Rpb24/LnBhZ2luYXRvcj8ucmFuZ2VUZW1wbGF0ZSA/P1xyXG4gICAgICAne3N0YXJ0fS17ZW5kfSBvZiB7dG90YWx9IE1lZXRpbmdzICYgRXZlbnRzJztcclxuICAgIHJldHVybiB0ZW1wbGF0ZVxyXG4gICAgICAucmVwbGFjZSgne3N0YXJ0fScsIGAke3RoaXMuc2VjdGlvblJhbmdlU3RhcnR9YClcclxuICAgICAgLnJlcGxhY2UoJ3tlbmR9JywgYCR7dGhpcy5zZWN0aW9uUmFuZ2VFbmR9YClcclxuICAgICAgLnJlcGxhY2UoJ3t0b3RhbH0nLCBgJHt0aGlzLnRvdGFsSXRlbXN9YCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBzZWN0aW9uIHBhZ2luYXRvciBjaGFuZ2UsIHVwZGF0aW5nIHRoZSBjdXJyZW50IHNlY3Rpb24gcGFnZS5cclxuICAgKiBAcGFyYW0ge1BhZ2VFdmVudH0gZXZlbnQgLSBUaGUgTWF0ZXJpYWwgcGFnaW5hdG9yIHBhZ2UgZXZlbnQuXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2VjdGlvblBhZ2VDaGFuZ2UoZXZlbnQ6IFBhZ2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWN0aW9uUGFnZUluZGV4ID0gZXZlbnQucGFnZUluZGV4O1xyXG4gIH1cclxuXHJcbiAgLyoqIE51bWJlciBvZiBFVkVOVCByb3dzIGluIHRoZSBsaXN0IChmb3IgdGhlIGNvbGxhcHNlZCBzdW1tYXJ5KS4gKi9cclxuICBnZXQgZXZlbnRDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuICh0aGlzLmV2ZW50cyA/PyBbXSkuZmlsdGVyKFxyXG4gICAgICAoZW50cnkpID0+IGVudHJ5LmtpbmQgPT09IFVwY29taW5nSXRlbUtpbmQuRVZFTlRcclxuICAgICkubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVG90YWwgbnVtYmVyIG9mIG1lZXRpbmdzIGFjcm9zcyB0aGUgbGlzdDogZWFjaCBldmVudCdzIGBtZWV0aW5nQ291bnRgIHBsdXNcclxuICAgKiBvbmUgcGVyIHN0YW5kYWxvbmUgbWVldGluZyAoZm9yIHRoZSBjb2xsYXBzZWQgc3VtbWFyeSkuXHJcbiAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgdG90YWwgbWVldGluZyBjb3VudC5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCB0b3RhbE1lZXRpbmdDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuICh0aGlzLmV2ZW50cyA/PyBbXSkucmVkdWNlKCh0b3RhbCwgZW50cnkpID0+IHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICB0b3RhbCArXHJcbiAgICAgICAgKGVudHJ5LmtpbmQgPT09IFVwY29taW5nSXRlbUtpbmQuRVZFTlRcclxuICAgICAgICAgID8gZW50cnkubWVldGluZ0NvdW50ID8/IDBcclxuICAgICAgICAgIDogMSlcclxuICAgICAgKTtcclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVG90YWwgbnVtYmVyIG9mIG1lZXRpbmdzIG9wZW4gZm9yIGF0dGVuZGFuY2UgYWNyb3NzIHRoZSBsaXN0IChmb3IgdGhlXHJcbiAgICogY29sbGFwc2VkIHN1bW1hcnkpOiBlYWNoIGV2ZW50J3Mgb3BlbiBjb3VudCBwbHVzIGFueSBzdGFuZGFsb25lIG1lZXRpbmcgdGhhdFxyXG4gICAqIGlzIGF0dGVuZGFuY2UtZWxpZ2libGUuXHJcbiAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgdG90YWwgb3Blbi1mb3ItYXR0ZW5kYW5jZSBjb3VudC5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCB0b3RhbE9wZW5Gb3JBdHRlbmRhbmNlQ291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiAodGhpcy5ldmVudHMgPz8gW10pLnJlZHVjZSgodG90YWwsIGVudHJ5KSA9PiB7XHJcbiAgICAgIGlmIChlbnRyeS5raW5kID09PSBVcGNvbWluZ0l0ZW1LaW5kLkVWRU5UKSB7XHJcbiAgICAgICAgcmV0dXJuIHRvdGFsICsgKGVudHJ5Lm9wZW5Gb3JBdHRlbmRhbmNlQ291bnQgPz8gMCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRvdGFsICsgKGVudHJ5LmF0dGVuZGFuY2VTdGF0ZSA/IDEgOiAwKTtcclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGNvbGxhcHNlZCBzdW1tYXJ5IGxpbmUgKGUuZy4gXCIzIGV2ZW50cyDCtyA1MCBtZWV0aW5ncyDCtyAyMSBvcGVuIGZvclxyXG4gICAqIGF0dGVuZGFuY2VcIikgYnVpbHQgZnJvbSB0aGUgYGNvbnN0YW50cy5qc29uYCB0ZW1wbGF0ZSBhbmQgdGhlIGNvdW50cy5cclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBmb3JtYXR0ZWQgY29sbGFwc2VkIHN1bW1hcnkuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXQgY29sbGFwc2VkU3VtbWFyeSgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdGVtcGxhdGUgPVxyXG4gICAgICB0aGlzLmNvbnN0YW50cz8udXBjb21pbmdTZWN0aW9uPy5jb2xsYXBzZWRTdW1tYXJ5VGVtcGxhdGUgPz9cclxuICAgICAgJ3tldmVudHN9IGV2ZW50cyBcXHUwMGI3IHttZWV0aW5nc30gbWVldGluZ3MgXFx1MDBiNyB7b3Blbn0gb3BlbiBmb3IgYXR0ZW5kYW5jZSc7XHJcbiAgICByZXR1cm4gdGVtcGxhdGVcclxuICAgICAgLnJlcGxhY2UoJ3tldmVudHN9JywgYCR7dGhpcy5ldmVudENvdW50fWApXHJcbiAgICAgIC5yZXBsYWNlKCd7bWVldGluZ3N9JywgYCR7dGhpcy50b3RhbE1lZXRpbmdDb3VudH1gKVxyXG4gICAgICAucmVwbGFjZSgne29wZW59JywgYCR7dGhpcy50b3RhbE9wZW5Gb3JBdHRlbmRhbmNlQ291bnR9YCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBbGxvd3MgdGhlIGhvc3QvY29udGFpbmVyIHRvIG9wZW4gb3IgY2xvc2UgdGhlIHNlY3Rpb24gKGUuZy4gYSBcIkp1bXAgdG9cIlxyXG4gICAqIHNob3J0Y3V0IG9wZW5zIGl0KS4gV3JpdGluZyB0aGUgaW5wdXQgbWlycm9ycyB0aGUgdmFsdWUgb250byB0aGUgaW50ZXJuYWxcclxuICAgKiBleHBhbmQgc3RhdGUgd2hpbGUgbGVhdmluZyB0aGUgdXNlcidzIG93biB0b2dnbGUgZnJlZSB0byBjaGFuZ2UgaXQgYWZ0ZXIuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBleHBhbmRlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pc0V4cGFuZGVkID0gISF2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IGV4cGFuZGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNFeHBhbmRlZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSBuZXcgZXhwYW5kZWQgc3RhdGUgd2hlbmV2ZXIgdGhlIHVzZXIgdG9nZ2xlcyB0aGUgc2VjdGlvbiwgc28gYVxyXG4gICAqIHR3by13YXkgYFsoZXhwYW5kZWQpXWAgYmluZGluZyBrZWVwcyB0aGUgaG9zdCdzIGZsYWcgaW4gc3luYyAob3RoZXJ3aXNlIGFcclxuICAgKiBob3N0LW9wZW5lZCBzZWN0aW9uIHRoZSB1c2VyIHRoZW4gY29sbGFwc2VzIGxlYXZlcyB0aGUgaG9zdCBmbGFnIHN0YWxlLFxyXG4gICAqIG1ha2luZyBhIHJlcGVhdCBcIkp1bXAgdG9cIiBhIG5vLW9wKS5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBleHBhbmRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogYHRyYWNrQnlgIGZvciB0aGUgZXZlbnQtZ3JvdXAtY2FyZCBgKm5nRm9yYCwga2V5ZWQgYnkgdGhlIHN0YWJsZSBldmVudCBpZCBzb1xyXG4gICAqIEFuZ3VsYXIgcmVuZGVycyBleGFjdGx5IG9uZSBjYXJkIHBlciBldmVudCBpbiBpbnB1dCBvcmRlciAoUmVxIDUuNSwgNS42LCAxNC40KS5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXggLSBUaGUgaXRlcmF0aW9uIGluZGV4IChmYWxsYmFjayBrZXkpLlxyXG4gICAqIEBwYXJhbSB7VXBjb21pbmdFdmVudH0gZXZlbnQgLSBUaGUgZXZlbnQgZm9yIHRoaXMgY2FyZC5cclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBzdGFibGUgdHJhY2sga2V5IChldmVudCBpZCkuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5RXZlbnRJZChpbmRleDogbnVtYmVyLCBldmVudDogVXBjb21pbmdFdmVudCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZXZlbnQ/LmV2ZW50SWQgPz8gYCR7aW5kZXh9YDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvZ2dsZXMgdGhlIHNlY3Rpb24ncyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGUsIGludmVydGluZyB0aGUgY2FyZC1saXN0XHJcbiAgICogdmlzaWJpbGl0eSBhbmQgdGhlIGV4cG9zZWQgYGFyaWEtZXhwYW5kZWRgIHZhbHVlIChSZXEgNS40LCAxNC4zKS5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uVG9nZ2xlRXhwYW5kZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRXhwYW5kZWQgPSAhdGhpcy5pc0V4cGFuZGVkO1xyXG4gICAgdGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KHRoaXMuaXNFeHBhbmRlZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBcIlZpZXcgQWxsXCIgbGluaywgZW1pdHRpbmcgdGhlIGB2aWV3QWxsYCBpbnRlbnQgdG8gdGhlIGhvc3QgKFJlcSA1LjIpLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25WaWV3QWxsKCk6IHZvaWQge1xyXG4gICAgdGhpcy52aWV3QWxsLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1YmJsZXMgYSBjYXJkJ3MgXCJWaWV3IEV2ZW50XCIgYWN0aXZhdGlvbiB1cHdhcmQgKFJlcSA2LjQpLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudElkIC0gVGhlIGV2ZW50IGlkIGVtaXR0ZWQgYnkgdGhlIGNhcmQuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBvblZpZXdFdmVudChldmVudElkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMudmlld0V2ZW50LmVtaXQoZXZlbnRJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWJibGVzIGEgY2FyZCdzIG1lZXRpbmctbmFtZSBsaW5rIGFjdGl2YXRpb24gdXB3YXJkIChSZXEgNy40KS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVldGluZ0lkIC0gVGhlIG1lZXRpbmcgaWQgZW1pdHRlZCBieSB0aGUgY2FyZC5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uT3Blbk1lZXRpbmcobWVldGluZ0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMub3Blbk1lZXRpbmcuZW1pdChtZWV0aW5nSWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQnViYmxlcyBhIGNhcmQncyBsb2ctYXR0ZW5kYW5jZSByZXF1ZXN0IHVwd2FyZCAoUmVxIDcuNykuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1lZXRpbmdJZCAtIFRoZSBtZWV0aW5nIGlkIGVtaXR0ZWQgYnkgdGhlIGNhcmQuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBvbkxvZ0F0dGVuZGFuY2UobWVldGluZ0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMubG9nQXR0ZW5kYW5jZS5lbWl0KG1lZXRpbmdJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWJibGVzIGEgY2FyZCdzIGxlYXZlLW1lZXRpbmcgcmVxdWVzdCB1cHdhcmQgKFJlcSA3LjgpLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZWV0aW5nSWQgLSBUaGUgbWVldGluZyBpZCBlbWl0dGVkIGJ5IHRoZSBjYXJkLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25MZWF2ZU1lZXRpbmcobWVldGluZ0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMubGVhdmVNZWV0aW5nLmVtaXQobWVldGluZ0lkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1hcHMgYSBjYXJkJ3MgYHBhZ2VDaGFuZ2VgIGludG8gYSBgbWVldGluZ1BhZ2VDaGFuZ2VgIHRhZ2dlZCB3aXRoIHRoZVxyXG4gICAqIG9yaWdpbmF0aW5nIGV2ZW50IGlkIHNvIHRoZSBob3N0IGNhbiBwYWdlIHRoZSBjb3JyZWN0IGV2ZW50IChSZXEgNi45KS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRJZCAtIFRoZSBpZCBvZiB0aGUgZXZlbnQgd2hvc2UgY2FyZCBwYWdpbmF0ZWQuXHJcbiAgICogQHBhcmFtIHtQYWdlQ2hhbmdlfSBwYWdlIC0gVGhlIHJlcXVlc3RlZCBwYWdlIGZyb20gdGhlIGNhcmQgcGFnaW5hdG9yLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25NZWV0aW5nUGFnZUNoYW5nZShldmVudElkOiBzdHJpbmcsIHBhZ2U6IFBhZ2VDaGFuZ2UpOiB2b2lkIHtcclxuICAgIHRoaXMubWVldGluZ1BhZ2VDaGFuZ2UuZW1pdCh7IGV2ZW50SWQsIC4uLnBhZ2UgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWJibGVzIGEgY2FyZCdzIGxhenkgY2hpbGQtbWVldGluZyBsb2FkIHJlcXVlc3QgdXB3YXJkLCB0YWdnZWQgd2l0aCB0aGVcclxuICAgKiBvcmlnaW5hdGluZyBldmVudCBpZCBzbyB0aGUgY29udGFpbmVyIGNhbiBmZXRjaCB0aGF0IGV2ZW50J3MgbWVldGluZ3MuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50SWQgLSBUaGUgZXZlbnQgd2hvc2UgbWVldGluZ3MgdG8gbG9hZC5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gcGFnZSAtIFRoZSBvbmUtYmFzZWQgcGFnZSByZXF1ZXN0ZWQgYnkgdGhlIGNhcmQuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBvbkxvYWRFdmVudE1lZXRpbmdzKGV2ZW50SWQ6IHN0cmluZywgcmVxdWVzdDogeyBwYWdlOiBudW1iZXI7IHNpemU6IG51bWJlciB9KTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRFdmVudE1lZXRpbmdzLmVtaXQoeyBldmVudElkLCBwYWdlOiByZXF1ZXN0LnBhZ2UsIHNpemU6IHJlcXVlc3Quc2l6ZSB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1YmJsZXMgYSBjYXJkJ3MgbmF2aWdhdGUtdG8tbWVldGluZyByZXF1ZXN0IHVwd2FyZCB1bmNoYW5nZWQuXHJcbiAgICogQHBhcmFtIHt7IGV2ZW50SWQ6IHN0cmluZzsgbWVldGluZ0lkOiBzdHJpbmcgfX0gcmVxdWVzdCAtIFRoZSBtZWV0aW5nIGlkZW50aXR5LlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25OYXZpZ2F0ZVRvTWVldGluZyhyZXF1ZXN0OiB7XHJcbiAgICBldmVudElkOiBzdHJpbmc7XHJcbiAgICBtZWV0aW5nSWQ6IHN0cmluZztcclxuICAgIGxvZ0F0dGVuZGFuY2U/OiBib29sZWFuO1xyXG4gICAgbGVhdmVNZWV0aW5nPzogYm9vbGVhbjtcclxuICB9KTogdm9pZCB7XHJcbiAgICB0aGlzLm5hdmlnYXRlVG9NZWV0aW5nLmVtaXQocmVxdWVzdCk7XHJcbiAgfVxyXG59XHJcbiIsIjxzZWN0aW9uXHJcbiAgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzXCJcclxuICBbY2xhc3MuaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50cy0tbW9iaWxlXT1cImlzTW9iaWxlVmlld1wiXHJcbj5cclxuICA8aGVhZGVyIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19faGVhZGVyXCI+XHJcbiAgICA8IS0tIFNlY3Rpb24gdGl0bGUgKFJlcSA1LjEpLiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzX19oZWFkaW5nXCI+XHJcbiAgICAgIDxoMiBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX3RpdGxlXCI+XHJcbiAgICAgICAge3sgY29uc3RhbnRzLnVwY29taW5nU2VjdGlvbi50aXRsZSB9fVxyXG4gICAgICA8L2gyPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBWaWV3IEFsbCBsaW5rICsgRXhwYW5kL0NvbGxhcHNlIHRvZ2dsZSAoUmVxIDUuMSwgNS4yLCA1LjMsIDUuNCwgMTQuMykuIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX2FjdGlvbnNcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fdmlldy1hbGxcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzLnVwY29taW5nU2VjdGlvbi5hcmlhTGFiZWwudmlld0FsbFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uVmlld0FsbCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGNvbnN0YW50cy51cGNvbWluZ1NlY3Rpb24udmlld0FsbExhYmVsIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fdG9nZ2xlXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzRXhwYW5kZWRcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzLnVwY29taW5nU2VjdGlvbi5hcmlhTGFiZWwudG9nZ2xlXCJcclxuICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVFeHBhbmRlZCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuPnt7IGlzRXhwYW5kZWQgPyBjb25zdGFudHMudXBjb21pbmdTZWN0aW9uLmNvbGxhcHNlTGFiZWwgOiBjb25zdGFudHMudXBjb21pbmdTZWN0aW9uLmV4cGFuZExhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgIDxpXHJcbiAgICAgICAgICBjbGFzcz1cImZhLXNvbGlkXCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cImlzRXhwYW5kZWQgPyAnZmEtY2hldnJvbi11cCcgOiAnZmEtY2hldnJvbi1kb3duJ1wiXHJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgID48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9oZWFkZXI+XHJcblxyXG4gIDwhLS0gQ29sbGFwc2VkIHN1bW1hcnk6IGV2ZW50cyAvIG1lZXRpbmdzIC8gb3Blbi1mb3ItYXR0ZW5kYW5jZSBjb3VudHMuXHJcbiAgICAgICBUaGUgb3Blbi1mb3ItYXR0ZW5kYW5jZSBzZWdtZW50IGlzIGdyZWVuIGJvbGQgcGVyIEZpZ21hLiAtLT5cclxuICA8cFxyXG4gICAgKm5nSWY9XCIhaXNFeHBhbmRlZCAmJiBzZWN0aW9uU3RhdGUgPT09IHNlY3Rpb25TdGF0ZXMuTE9BREVEXCJcclxuICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fc3VtbWFyeVwiXHJcbiAgPlxyXG4gICAge3sgZXZlbnRDb3VudCB9fSBldmVudHMgJm1pZGRvdDsge3sgdG90YWxNZWV0aW5nQ291bnQgfX0gbWVldGluZ3MgJm1pZGRvdDtcclxuICAgIDxzcGFuIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fc3VtbWFyeS1vcGVuXCI+XHJcbiAgICAgIHt7IHRvdGFsT3BlbkZvckF0dGVuZGFuY2VDb3VudCB9fSBvcGVuIGZvciBhdHRlbmRhbmNlXHJcbiAgICA8L3NwYW4+XHJcbiAgPC9wPlxyXG5cclxuICA8IS0tIENhcmQgbGlzdCwgc2hvd24gb25seSB3aGlsZSBleHBhbmRlZCAoUmVxIDUuNCkuIC0tPlxyXG4gIDxkaXYgKm5nSWY9XCJpc0V4cGFuZGVkXCIgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzX19ib2R5XCI+XHJcbiAgICA8IS0tIExvYWRlciByZWdpb24gKFJlcSAxMy4xKS4gLS0+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwic2VjdGlvblN0YXRlID09PSBzZWN0aW9uU3RhdGVzLkxPQURJTkdcIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX2xvYWRlclwiXHJcbiAgICA+XHJcbiAgICAgIDxpZWVlc2EtbG9hZGVyPjwvaWVlZXNhLWxvYWRlcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gQ29udGVudCByZWdpb246IG9uZSBjYXJkIHBlciBldmVudCBwcmVzZXJ2aW5nIGlucHV0IG9yZGVyIChSZXEgNS41LCA1LjYsIDEzLjIpLiAtLT5cclxuICAgIDxkaXZcclxuICAgICAgKm5nSWY9XCJzZWN0aW9uU3RhdGUgPT09IHNlY3Rpb25TdGF0ZXMuTE9BREVEXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzX19jYXJkc1wiXHJcbiAgICA+XHJcbiAgICAgIDxpZWVlc2EtZXZlbnQtZ3JvdXAtY2FyZFxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBldmVudCBvZiBwYWdlZEV2ZW50czsgdHJhY2tCeTogdHJhY2tCeUV2ZW50SWRcIlxyXG4gICAgICAgIFtldmVudF09XCJldmVudFwiXHJcbiAgICAgICAgW3Blcm1pc3Npb25zXT1cInBlcm1pc3Npb25zXCJcclxuICAgICAgICBbYXR0ZW5kYW5jZVN0YXRlc109XCJhdHRlbmRhbmNlU3RhdGVzXCJcclxuICAgICAgICBbaW5GbGlnaHRNZWV0aW5nSWRzXT1cImluRmxpZ2h0TWVldGluZ0lkc1wiXHJcbiAgICAgICAgW2lzTW9iaWxlVmlld109XCJpc01vYmlsZVZpZXdcIlxyXG4gICAgICAgICh2aWV3RXZlbnQpPVwib25WaWV3RXZlbnQoJGV2ZW50KVwiXHJcbiAgICAgICAgKG9wZW5NZWV0aW5nKT1cIm9uT3Blbk1lZXRpbmcoJGV2ZW50KVwiXHJcbiAgICAgICAgKGxvZ0F0dGVuZGFuY2UpPVwib25Mb2dBdHRlbmRhbmNlKCRldmVudClcIlxyXG4gICAgICAgIChsZWF2ZU1lZXRpbmcpPVwib25MZWF2ZU1lZXRpbmcoJGV2ZW50KVwiXHJcbiAgICAgICAgKHBhZ2VDaGFuZ2UpPVwib25NZWV0aW5nUGFnZUNoYW5nZShldmVudC5ldmVudElkLCAkZXZlbnQpXCJcclxuICAgICAgICAobG9hZE1lZXRpbmdzKT1cIm9uTG9hZEV2ZW50TWVldGluZ3MoZXZlbnQuZXZlbnRJZCwgJGV2ZW50KVwiXHJcbiAgICAgICAgKG5hdmlnYXRlVG9NZWV0aW5nKT1cIm9uTmF2aWdhdGVUb01lZXRpbmcoJGV2ZW50KVwiXHJcbiAgICAgID48L2llZWVzYS1ldmVudC1ncm91cC1jYXJkPlxyXG5cclxuICAgICAgPCEtLSBTZWN0aW9uLWxldmVsIHBhZ2luYXRvcjogNSBldmVudHMvbWVldGluZ3MgcGVyIHBhZ2UgKFJlcSAzLngsIGRlc2lnbikuIC0tPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJ0b3RhbEl0ZW1zID4gc2VjdGlvblBhZ2VTaXplXCJcclxuICAgICAgICBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX3BhZ2luYXRvclwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX3BhZ2luYXRvci1yYW5nZVwiPlxyXG4gICAgICAgICAge3sgc2VjdGlvblJhbmdlTGFiZWwgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPG1hdC1wYWdpbmF0b3JcclxuICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fcGFnaW5hdG9yLWNvbnRyb2xcIlxyXG4gICAgICAgICAgW3BhZ2VJbmRleF09XCJzZWN0aW9uUGFnZUluZGV4XCJcclxuICAgICAgICAgIFtwYWdlU2l6ZV09XCJzZWN0aW9uUGFnZVNpemVcIlxyXG4gICAgICAgICAgW2xlbmd0aF09XCJ0b3RhbEl0ZW1zXCJcclxuICAgICAgICAgIFtoaWRlUGFnZVNpemVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAocGFnZSk9XCJvblNlY3Rpb25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgID48L21hdC1wYWdpbmF0b3I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBFbXB0eS1zdGF0ZSByZWdpb24gKFJlcSAxMy4zKS4gLS0+XHJcbiAgICA8cFxyXG4gICAgICAqbmdJZj1cInNlY3Rpb25TdGF0ZSA9PT0gc2VjdGlvblN0YXRlcy5FTVBUWVwiXHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fZW1wdHlcIlxyXG4gICAgPlxyXG4gICAgICB7eyBjb25zdGFudHMudXBjb21pbmdTZWN0aW9uLmVtcHR5TWVzc2FnZSB9fVxyXG4gICAgPC9wPlxyXG5cclxuICAgIDwhLS0gRXJyb3IgcmVnaW9uIChSZXEgMTMuNSkuIC0tPlxyXG4gICAgPHBcclxuICAgICAgKm5nSWY9XCJzZWN0aW9uU3RhdGUgPT09IHNlY3Rpb25TdGF0ZXMuRVJST1JcIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX2Vycm9yXCJcclxuICAgICAgcm9sZT1cImFsZXJ0XCJcclxuICAgID5cclxuICAgICAge3sgY29uc3RhbnRzLnVwY29taW5nU2VjdGlvbi5lcnJvck1lc3NhZ2UgfX1cclxuICAgIDwvcD5cclxuICA8L2Rpdj5cclxuPC9zZWN0aW9uPlxyXG4iXX0=
|