valtech-components 2.0.717 → 2.0.719

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.
@@ -96,39 +96,48 @@ export class LinksAccordionComponent {
96
96
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: LinksAccordionComponent, isStandalone: true, selector: "val-links-accordion", inputs: { props: "props" }, outputs: { navigate: "navigate" }, viewQueries: [{ propertyName: "accordionGroup", first: true, predicate: ["accordionGroup"], descendants: true }], ngImport: i0, template: `
97
97
  <div class="links-accordion">
98
98
  <ion-accordion-group #accordionGroup>
99
- <ion-accordion
100
- *ngFor="let section of props.sections; let i = index"
101
- [value]="getSectionValue(section, i)"
102
- [toggleIcon]="section.links?.length ? 'chevron-down-outline' : ''"
103
- [readonly]="!section.links?.length"
104
- >
99
+ <ng-container *ngFor="let section of props.sections; let i = index">
100
+ <!-- Direct-link section: route + no children -->
105
101
  <ion-item
106
- slot="header"
102
+ *ngIf="section.route && !section.links?.length"
103
+ class="direct-link"
107
104
  color="light"
108
105
  [ngStyle]="{ background: props.backgroundColor || 'var(--ion-background-color)' }"
109
- (click)="section.route ? onLinkClick(section.route, $event) : null"
110
- [button]="!!section.route"
106
+ (click)="onLinkClick(section.route!, $event)"
107
+ button
111
108
  lines="none"
112
109
  >
113
110
  <ion-label class="accordion-label">{{ getSectionTitle(section) }}</ion-label>
114
111
  </ion-item>
115
- <div
116
- slot="content"
117
- [ngStyle]="{ background: props.backgroundColor || 'var(--ion-background-color)' }"
112
+
113
+ <!-- Accordion section: has children -->
114
+ <ion-accordion
118
115
  *ngIf="section.links?.length"
116
+ [value]="getSectionValue(section, i)"
117
+ toggleIcon="chevron-down-outline"
119
118
  >
120
- <ion-list lines="none">
121
- <ion-item
122
- *ngFor="let link of section.links"
123
- [ngStyle]="{ background: props.backgroundColor || 'var(--ion-background-color)' }"
124
- (click)="onLinkClick(link.route, $event)"
125
- button
126
- >
127
- <ion-label class="accordion-item-label">{{ getLinkText(link) }}</ion-label>
128
- </ion-item>
129
- </ion-list>
130
- </div>
131
- </ion-accordion>
119
+ <ion-item
120
+ slot="header"
121
+ color="light"
122
+ [ngStyle]="{ background: props.backgroundColor || 'var(--ion-background-color)' }"
123
+ lines="none"
124
+ >
125
+ <ion-label class="accordion-label">{{ getSectionTitle(section) }}</ion-label>
126
+ </ion-item>
127
+ <div slot="content" [ngStyle]="{ background: props.backgroundColor || 'var(--ion-background-color)' }">
128
+ <ion-list lines="none">
129
+ <ion-item
130
+ *ngFor="let link of section.links"
131
+ [ngStyle]="{ background: props.backgroundColor || 'var(--ion-background-color)' }"
132
+ (click)="onLinkClick(link.route, $event)"
133
+ button
134
+ >
135
+ <ion-label class="accordion-item-label">{{ getLinkText(link) }}</ion-label>
136
+ </ion-item>
137
+ </ion-list>
138
+ </div>
139
+ </ion-accordion>
140
+ </ng-container>
132
141
  </ion-accordion-group>
133
142
  </div>
134
143
  `, isInline: true, styles: [".links-accordion .accordion-label{font-size:1.3rem}.links-accordion .accordion-item-label{font-size:1.1rem}.links-accordion ion-item{--background: var(--ion-color-light-tint)}.links-accordion ion-accordion{background:transparent}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IonAccordionGroup, selector: "ion-accordion-group", inputs: ["animated", "disabled", "expand", "mode", "multiple", "readonly", "value"] }, { kind: "component", type: IonAccordion, selector: "ion-accordion", inputs: ["disabled", "mode", "readonly", "toggleIcon", "toggleIconSlot", "value"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }] }); }
@@ -138,39 +147,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
138
147
  args: [{ selector: 'val-links-accordion', standalone: true, imports: [CommonModule, IonAccordionGroup, IonAccordion, IonItem, IonLabel, IonList], template: `
139
148
  <div class="links-accordion">
140
149
  <ion-accordion-group #accordionGroup>
141
- <ion-accordion
142
- *ngFor="let section of props.sections; let i = index"
143
- [value]="getSectionValue(section, i)"
144
- [toggleIcon]="section.links?.length ? 'chevron-down-outline' : ''"
145
- [readonly]="!section.links?.length"
146
- >
150
+ <ng-container *ngFor="let section of props.sections; let i = index">
151
+ <!-- Direct-link section: route + no children -->
147
152
  <ion-item
148
- slot="header"
153
+ *ngIf="section.route && !section.links?.length"
154
+ class="direct-link"
149
155
  color="light"
150
156
  [ngStyle]="{ background: props.backgroundColor || 'var(--ion-background-color)' }"
151
- (click)="section.route ? onLinkClick(section.route, $event) : null"
152
- [button]="!!section.route"
157
+ (click)="onLinkClick(section.route!, $event)"
158
+ button
153
159
  lines="none"
154
160
  >
155
161
  <ion-label class="accordion-label">{{ getSectionTitle(section) }}</ion-label>
156
162
  </ion-item>
157
- <div
158
- slot="content"
159
- [ngStyle]="{ background: props.backgroundColor || 'var(--ion-background-color)' }"
163
+
164
+ <!-- Accordion section: has children -->
165
+ <ion-accordion
160
166
  *ngIf="section.links?.length"
167
+ [value]="getSectionValue(section, i)"
168
+ toggleIcon="chevron-down-outline"
161
169
  >
162
- <ion-list lines="none">
163
- <ion-item
164
- *ngFor="let link of section.links"
165
- [ngStyle]="{ background: props.backgroundColor || 'var(--ion-background-color)' }"
166
- (click)="onLinkClick(link.route, $event)"
167
- button
168
- >
169
- <ion-label class="accordion-item-label">{{ getLinkText(link) }}</ion-label>
170
- </ion-item>
171
- </ion-list>
172
- </div>
173
- </ion-accordion>
170
+ <ion-item
171
+ slot="header"
172
+ color="light"
173
+ [ngStyle]="{ background: props.backgroundColor || 'var(--ion-background-color)' }"
174
+ lines="none"
175
+ >
176
+ <ion-label class="accordion-label">{{ getSectionTitle(section) }}</ion-label>
177
+ </ion-item>
178
+ <div slot="content" [ngStyle]="{ background: props.backgroundColor || 'var(--ion-background-color)' }">
179
+ <ion-list lines="none">
180
+ <ion-item
181
+ *ngFor="let link of section.links"
182
+ [ngStyle]="{ background: props.backgroundColor || 'var(--ion-background-color)' }"
183
+ (click)="onLinkClick(link.route, $event)"
184
+ button
185
+ >
186
+ <ion-label class="accordion-item-label">{{ getLinkText(link) }}</ion-label>
187
+ </ion-item>
188
+ </ion-list>
189
+ </div>
190
+ </ion-accordion>
191
+ </ng-container>
174
192
  </ion-accordion-group>
175
193
  </div>
176
194
  `, styles: [".links-accordion .accordion-label{font-size:1.3rem}.links-accordion .accordion-item-label{font-size:1.1rem}.links-accordion ion-item{--background: var(--ion-color-light-tint)}.links-accordion ion-accordion{background:transparent}\n"] }]
@@ -182,4 +200,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
182
200
  type: ViewChild,
183
201
  args: ['accordionGroup']
184
202
  }] } });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua3MtYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGlua3MtYWNjb3JkaW9uL2xpbmtzLWFjY29yZGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFrQixNQUFNLDJCQUEyQixDQUFDO0FBQ3hILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFHckQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUE4Q0gsTUFBTSxPQUFPLHVCQUF1QjtJQW9CbEMsWUFDVSxNQUFjLEVBQ2QsUUFBd0I7UUFEeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBckIxQixTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRW5DOztXQUVHO1FBQ00sVUFBSyxHQUEyQjtZQUN2QyxRQUFRLEVBQUUsRUFBRTtZQUNaLGVBQWUsRUFBRSw2QkFBNkI7WUFDOUMsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixxQkFBcUIsRUFBRSxJQUFJO1NBQzVCLENBQUM7UUFFRjs7V0FFRztRQUNPLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO0lBTy9DLENBQUM7SUFFSjs7T0FFRztJQUNILGVBQWUsQ0FBQyxPQUE4QixFQUFFLEtBQWE7UUFDM0QsT0FBTyxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksV0FBVyxLQUFLLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlLENBQUMsT0FBOEI7UUFDNUMsSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVyxDQUFDLElBQXdCO1FBQ2xDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzdDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBZSxFQUFFLEtBQWE7UUFDOUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBRUQsb0NBQW9DO1FBQ3BDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUN4QyxDQUFDO1FBRUQsd0JBQXdCO1FBQ3hCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUMxQyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDOUIsQ0FBQztRQUVELGFBQWE7UUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQixXQUFXO1FBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzsrR0EzRVUsdUJBQXVCO21HQUF2Qix1QkFBdUIsZ1FBekN4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQ1QsZ1RBdkNTLFlBQVkscVZBQUUsaUJBQWlCLHFKQUFFLFlBQVksNklBQUUsT0FBTywwTkFBRSxRQUFRLDZGQUFFLE9BQU87OzRGQTBDeEUsdUJBQXVCO2tCQTdDbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxZQUMxRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQ1Q7d0dBU1EsS0FBSztzQkFBYixLQUFLO2dCQVVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBRXNCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkFjY29yZGlvbiwgSW9uQWNjb3JkaW9uR3JvdXAsIElvbkl0ZW0sIElvbkxhYmVsLCBJb25MaXN0LCBNZW51Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IExpbmtzQWNjb3JkaW9uTGluaywgTGlua3NBY2NvcmRpb25NZXRhZGF0YSwgTGlua3NBY2NvcmRpb25TZWN0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogdmFsLWxpbmtzLWFjY29yZGlvblxuICpcbiAqIEEgaGllcmFyY2hpY2FsIG5hdmlnYXRpb24gY29tcG9uZW50IHVzaW5nIElvbmljIGFjY29yZGlvbnMuXG4gKiBTdXBwb3J0cyBzZWN0aW9ucyB3aXRoIG9wdGlvbmFsIHN1Yi1saW5rcyBhbmQgYXV0b21hdGljIG1lbnUgY2xvc2luZy5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC1saW5rcy1hY2NvcmRpb25cbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBzZWN0aW9uczogW1xuICogICAgICAgeyB0aXRsZTogJ0hvbWUnLCByb3V0ZTogWycvJ10gfSxcbiAqICAgICAgIHsgdGl0bGU6ICdQcm9kdWN0cycsIGxpbmtzOiBbXG4gKiAgICAgICAgIHsgdGV4dDogJ0NhdGFsb2cnLCByb3V0ZTogWycvcHJvZHVjdHMnXSB9LFxuICogICAgICAgICB7IHRleHQ6ICdOZXcgQXJyaXZhbHMnLCByb3V0ZTogWycvcHJvZHVjdHMnLCAnbmV3J10gfVxuICogICAgICAgXX1cbiAqICAgICBdXG4gKiAgIH1cIlxuICogICAobmF2aWdhdGUpPVwib25OYXZpZ2F0ZSgkZXZlbnQpXCJcbiAqID48L3ZhbC1saW5rcy1hY2NvcmRpb24+XG4gKlxuICogQGlucHV0IHByb3BzIC0gQWNjb3JkaW9uIGNvbmZpZ3VyYXRpb25cbiAqIEBvdXRwdXQgbmF2aWdhdGUgLSBFbWl0cyByb3V0ZSB3aGVuIGEgbGluayBpcyBjbGlja2VkXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1saW5rcy1hY2NvcmRpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25BY2NvcmRpb25Hcm91cCwgSW9uQWNjb3JkaW9uLCBJb25JdGVtLCBJb25MYWJlbCwgSW9uTGlzdF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImxpbmtzLWFjY29yZGlvblwiPlxuICAgICAgPGlvbi1hY2NvcmRpb24tZ3JvdXAgI2FjY29yZGlvbkdyb3VwPlxuICAgICAgICA8aW9uLWFjY29yZGlvblxuICAgICAgICAgICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIHByb3BzLnNlY3Rpb25zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICBbdmFsdWVdPVwiZ2V0U2VjdGlvblZhbHVlKHNlY3Rpb24sIGkpXCJcbiAgICAgICAgICBbdG9nZ2xlSWNvbl09XCJzZWN0aW9uLmxpbmtzPy5sZW5ndGggPyAnY2hldnJvbi1kb3duLW91dGxpbmUnIDogJydcIlxuICAgICAgICAgIFtyZWFkb25seV09XCIhc2VjdGlvbi5saW5rcz8ubGVuZ3RoXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpb24taXRlbVxuICAgICAgICAgICAgc2xvdD1cImhlYWRlclwiXG4gICAgICAgICAgICBjb2xvcj1cImxpZ2h0XCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgYmFja2dyb3VuZDogcHJvcHMuYmFja2dyb3VuZENvbG9yIHx8ICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlY3Rpb24ucm91dGUgPyBvbkxpbmtDbGljayhzZWN0aW9uLnJvdXRlLCAkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICBbYnV0dG9uXT1cIiEhc2VjdGlvbi5yb3V0ZVwiXG4gICAgICAgICAgICBsaW5lcz1cIm5vbmVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJhY2NvcmRpb24tbGFiZWxcIj57eyBnZXRTZWN0aW9uVGl0bGUoc2VjdGlvbikgfX08L2lvbi1sYWJlbD5cbiAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIHNsb3Q9XCJjb250ZW50XCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgYmFja2dyb3VuZDogcHJvcHMuYmFja2dyb3VuZENvbG9yIHx8ICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknIH1cIlxuICAgICAgICAgICAgKm5nSWY9XCJzZWN0aW9uLmxpbmtzPy5sZW5ndGhcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpb24tbGlzdCBsaW5lcz1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgPGlvbi1pdGVtXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGxpbmsgb2Ygc2VjdGlvbi5saW5rc1wiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBiYWNrZ3JvdW5kOiBwcm9wcy5iYWNrZ3JvdW5kQ29sb3IgfHwgJ3ZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yKScgfVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTGlua0NsaWNrKGxpbmsucm91dGUsICRldmVudClcIlxuICAgICAgICAgICAgICAgIGJ1dHRvblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cImFjY29yZGlvbi1pdGVtLWxhYmVsXCI+e3sgZ2V0TGlua1RleHQobGluaykgfX08L2lvbi1sYWJlbD5cbiAgICAgICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgICAgIDwvaW9uLWxpc3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvaW9uLWFjY29yZGlvbj5cbiAgICAgIDwvaW9uLWFjY29yZGlvbi1ncm91cD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vbGlua3MtYWNjb3JkaW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIExpbmtzQWNjb3JkaW9uQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblxuICAvKipcbiAgICogQWNjb3JkaW9uIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogTGlua3NBY2NvcmRpb25NZXRhZGF0YSA9IHtcbiAgICBzZWN0aW9uczogW10sXG4gICAgYmFja2dyb3VuZENvbG9yOiAndmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IpJyxcbiAgICBjbG9zZU1lbnVPbkNsaWNrOiB0cnVlLFxuICAgIGNsb3NlQWNjb3JkaW9uT25DbGljazogdHJ1ZSxcbiAgfTtcblxuICAvKipcbiAgICogRW1pdHMgdGhlIHJvdXRlIHdoZW4gYSBsaW5rIGlzIGNsaWNrZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgbmF2aWdhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2FjY29yZGlvbkdyb3VwJykgYWNjb3JkaW9uR3JvdXAhOiBJb25BY2NvcmRpb25Hcm91cDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgbWVudUN0cmw6IE1lbnVDb250cm9sbGVyXG4gICkge31cblxuICAvKipcbiAgICogR2V0cyBhIHVuaXF1ZSB2YWx1ZSBmb3IgdGhlIGFjY29yZGlvbiBzZWN0aW9uLlxuICAgKi9cbiAgZ2V0U2VjdGlvblZhbHVlKHNlY3Rpb246IExpbmtzQWNjb3JkaW9uU2VjdGlvbiwgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNlY3Rpb24udGl0bGVLZXkgfHwgc2VjdGlvbi50aXRsZSB8fCBgc2VjdGlvbi0ke2luZGV4fWA7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgc2VjdGlvbiB0aXRsZSwgc3VwcG9ydGluZyBpMThuIHZpYSB0aXRsZUtleS5cbiAgICovXG4gIGdldFNlY3Rpb25UaXRsZShzZWN0aW9uOiBMaW5rc0FjY29yZGlvblNlY3Rpb24pOiBzdHJpbmcge1xuICAgIGlmIChzZWN0aW9uLnRpdGxlS2V5ICYmIHRoaXMucHJvcHMuaTE4bk5hbWVzcGFjZSkge1xuICAgICAgcmV0dXJuIHRoaXMuaTE4bi50KHNlY3Rpb24udGl0bGVLZXksIHRoaXMucHJvcHMuaTE4bk5hbWVzcGFjZSk7XG4gICAgfVxuICAgIHJldHVybiBzZWN0aW9uLnRpdGxlIHx8ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGxpbmsgdGV4dCwgc3VwcG9ydGluZyBpMThuIHZpYSB0ZXh0S2V5LlxuICAgKi9cbiAgZ2V0TGlua1RleHQobGluazogTGlua3NBY2NvcmRpb25MaW5rKTogc3RyaW5nIHtcbiAgICBpZiAobGluay50ZXh0S2V5ICYmIHRoaXMucHJvcHMuaTE4bk5hbWVzcGFjZSkge1xuICAgICAgcmV0dXJuIHRoaXMuaTE4bi50KGxpbmsudGV4dEtleSwgdGhpcy5wcm9wcy5pMThuTmFtZXNwYWNlKTtcbiAgICB9XG4gICAgcmV0dXJuIGxpbmsudGV4dCB8fCAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIGxpbmsgY2xpY2sgLSBjbG9zZXMgYWNjb3JkaW9uL21lbnUgYW5kIG5hdmlnYXRlcy5cbiAgICovXG4gIGFzeW5jIG9uTGlua0NsaWNrKHJvdXRlOiBzdHJpbmdbXSwgZXZlbnQ/OiBFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgLy8gQ2xvc2UgYWNjb3JkaW9uIGJlZm9yZSBuYXZpZ2F0aW5nXG4gICAgaWYgKHRoaXMucHJvcHMuY2xvc2VBY2NvcmRpb25PbkNsaWNrICE9PSBmYWxzZSAmJiB0aGlzLmFjY29yZGlvbkdyb3VwKSB7XG4gICAgICB0aGlzLmFjY29yZGlvbkdyb3VwLnZhbHVlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIENsb3NlIG1lbnUgaWYgZW5hYmxlZFxuICAgIGlmICh0aGlzLnByb3BzLmNsb3NlTWVudU9uQ2xpY2sgIT09IGZhbHNlKSB7XG4gICAgICBhd2FpdCB0aGlzLm1lbnVDdHJsLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgLy8gRW1pdCBldmVudFxuICAgIHRoaXMubmF2aWdhdGUuZW1pdChyb3V0ZSk7XG5cbiAgICAvLyBOYXZpZ2F0ZVxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHJvdXRlKTtcbiAgfVxufVxuIl19
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua3MtYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGlua3MtYWNjb3JkaW9uL2xpbmtzLWFjY29yZGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFrQixNQUFNLDJCQUEyQixDQUFDO0FBQ3hILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFHckQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUF1REgsTUFBTSxPQUFPLHVCQUF1QjtJQW9CbEMsWUFDVSxNQUFjLEVBQ2QsUUFBd0I7UUFEeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBckIxQixTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRW5DOztXQUVHO1FBQ00sVUFBSyxHQUEyQjtZQUN2QyxRQUFRLEVBQUUsRUFBRTtZQUNaLGVBQWUsRUFBRSw2QkFBNkI7WUFDOUMsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixxQkFBcUIsRUFBRSxJQUFJO1NBQzVCLENBQUM7UUFFRjs7V0FFRztRQUNPLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO0lBTy9DLENBQUM7SUFFSjs7T0FFRztJQUNILGVBQWUsQ0FBQyxPQUE4QixFQUFFLEtBQWE7UUFDM0QsT0FBTyxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksV0FBVyxLQUFLLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlLENBQUMsT0FBOEI7UUFDNUMsSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVyxDQUFDLElBQXdCO1FBQ2xDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzdDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBZSxFQUFFLEtBQWE7UUFDOUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBRUQsb0NBQW9DO1FBQ3BDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUN4QyxDQUFDO1FBRUQsd0JBQXdCO1FBQ3hCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUMxQyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDOUIsQ0FBQztRQUVELGFBQWE7UUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQixXQUFXO1FBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzsrR0EzRVUsdUJBQXVCO21HQUF2Qix1QkFBdUIsZ1FBbER4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1QsZ1RBaERTLFlBQVkscVZBQUUsaUJBQWlCLHFKQUFFLFlBQVksNklBQUUsT0FBTywwTkFBRSxRQUFRLDZGQUFFLE9BQU87OzRGQW1EeEUsdUJBQXVCO2tCQXREbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxZQUMxRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1Q7d0dBU1EsS0FBSztzQkFBYixLQUFLO2dCQVVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBRXNCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkFjY29yZGlvbiwgSW9uQWNjb3JkaW9uR3JvdXAsIElvbkl0ZW0sIElvbkxhYmVsLCBJb25MaXN0LCBNZW51Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IExpbmtzQWNjb3JkaW9uTGluaywgTGlua3NBY2NvcmRpb25NZXRhZGF0YSwgTGlua3NBY2NvcmRpb25TZWN0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogdmFsLWxpbmtzLWFjY29yZGlvblxuICpcbiAqIEEgaGllcmFyY2hpY2FsIG5hdmlnYXRpb24gY29tcG9uZW50IHVzaW5nIElvbmljIGFjY29yZGlvbnMuXG4gKiBTdXBwb3J0cyBzZWN0aW9ucyB3aXRoIG9wdGlvbmFsIHN1Yi1saW5rcyBhbmQgYXV0b21hdGljIG1lbnUgY2xvc2luZy5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC1saW5rcy1hY2NvcmRpb25cbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBzZWN0aW9uczogW1xuICogICAgICAgeyB0aXRsZTogJ0hvbWUnLCByb3V0ZTogWycvJ10gfSxcbiAqICAgICAgIHsgdGl0bGU6ICdQcm9kdWN0cycsIGxpbmtzOiBbXG4gKiAgICAgICAgIHsgdGV4dDogJ0NhdGFsb2cnLCByb3V0ZTogWycvcHJvZHVjdHMnXSB9LFxuICogICAgICAgICB7IHRleHQ6ICdOZXcgQXJyaXZhbHMnLCByb3V0ZTogWycvcHJvZHVjdHMnLCAnbmV3J10gfVxuICogICAgICAgXX1cbiAqICAgICBdXG4gKiAgIH1cIlxuICogICAobmF2aWdhdGUpPVwib25OYXZpZ2F0ZSgkZXZlbnQpXCJcbiAqID48L3ZhbC1saW5rcy1hY2NvcmRpb24+XG4gKlxuICogQGlucHV0IHByb3BzIC0gQWNjb3JkaW9uIGNvbmZpZ3VyYXRpb25cbiAqIEBvdXRwdXQgbmF2aWdhdGUgLSBFbWl0cyByb3V0ZSB3aGVuIGEgbGluayBpcyBjbGlja2VkXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1saW5rcy1hY2NvcmRpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25BY2NvcmRpb25Hcm91cCwgSW9uQWNjb3JkaW9uLCBJb25JdGVtLCBJb25MYWJlbCwgSW9uTGlzdF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImxpbmtzLWFjY29yZGlvblwiPlxuICAgICAgPGlvbi1hY2NvcmRpb24tZ3JvdXAgI2FjY29yZGlvbkdyb3VwPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIHByb3BzLnNlY3Rpb25zOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgPCEtLSBEaXJlY3QtbGluayBzZWN0aW9uOiByb3V0ZSArIG5vIGNoaWxkcmVuIC0tPlxuICAgICAgICAgIDxpb24taXRlbVxuICAgICAgICAgICAgKm5nSWY9XCJzZWN0aW9uLnJvdXRlICYmICFzZWN0aW9uLmxpbmtzPy5sZW5ndGhcIlxuICAgICAgICAgICAgY2xhc3M9XCJkaXJlY3QtbGlua1wiXG4gICAgICAgICAgICBjb2xvcj1cImxpZ2h0XCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgYmFja2dyb3VuZDogcHJvcHMuYmFja2dyb3VuZENvbG9yIHx8ICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uTGlua0NsaWNrKHNlY3Rpb24ucm91dGUhLCAkZXZlbnQpXCJcbiAgICAgICAgICAgIGJ1dHRvblxuICAgICAgICAgICAgbGluZXM9XCJub25lXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwiYWNjb3JkaW9uLWxhYmVsXCI+e3sgZ2V0U2VjdGlvblRpdGxlKHNlY3Rpb24pIH19PC9pb24tbGFiZWw+XG4gICAgICAgICAgPC9pb24taXRlbT5cblxuICAgICAgICAgIDwhLS0gQWNjb3JkaW9uIHNlY3Rpb246IGhhcyBjaGlsZHJlbiAtLT5cbiAgICAgICAgICA8aW9uLWFjY29yZGlvblxuICAgICAgICAgICAgKm5nSWY9XCJzZWN0aW9uLmxpbmtzPy5sZW5ndGhcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImdldFNlY3Rpb25WYWx1ZShzZWN0aW9uLCBpKVwiXG4gICAgICAgICAgICB0b2dnbGVJY29uPVwiY2hldnJvbi1kb3duLW91dGxpbmVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpb24taXRlbVxuICAgICAgICAgICAgICBzbG90PVwiaGVhZGVyXCJcbiAgICAgICAgICAgICAgY29sb3I9XCJsaWdodFwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgYmFja2dyb3VuZDogcHJvcHMuYmFja2dyb3VuZENvbG9yIHx8ICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknIH1cIlxuICAgICAgICAgICAgICBsaW5lcz1cIm5vbmVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwiYWNjb3JkaW9uLWxhYmVsXCI+e3sgZ2V0U2VjdGlvblRpdGxlKHNlY3Rpb24pIH19PC9pb24tbGFiZWw+XG4gICAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICAgICAgPGRpdiBzbG90PVwiY29udGVudFwiIFtuZ1N0eWxlXT1cInsgYmFja2dyb3VuZDogcHJvcHMuYmFja2dyb3VuZENvbG9yIHx8ICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknIH1cIj5cbiAgICAgICAgICAgICAgPGlvbi1saXN0IGxpbmVzPVwibm9uZVwiPlxuICAgICAgICAgICAgICAgIDxpb24taXRlbVxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGxpbmsgb2Ygc2VjdGlvbi5saW5rc1wiXG4gICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGJhY2tncm91bmQ6IHByb3BzLmJhY2tncm91bmRDb2xvciB8fCAndmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IpJyB9XCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkxpbmtDbGljayhsaW5rLnJvdXRlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIGJ1dHRvblxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJhY2NvcmRpb24taXRlbS1sYWJlbFwiPnt7IGdldExpbmtUZXh0KGxpbmspIH19PC9pb24tbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgICAgICAgPC9pb24tbGlzdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvaW9uLWFjY29yZGlvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2lvbi1hY2NvcmRpb24tZ3JvdXA+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2xpbmtzLWFjY29yZGlvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBMaW5rc0FjY29yZGlvbkNvbXBvbmVudCB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIEFjY29yZGlvbiBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IExpbmtzQWNjb3JkaW9uTWV0YWRhdGEgPSB7XG4gICAgc2VjdGlvbnM6IFtdLFxuICAgIGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yKScsXG4gICAgY2xvc2VNZW51T25DbGljazogdHJ1ZSxcbiAgICBjbG9zZUFjY29yZGlvbk9uQ2xpY2s6IHRydWUsXG4gIH07XG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSByb3V0ZSB3aGVuIGEgbGluayBpcyBjbGlja2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIG5hdmlnYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcblxuICBAVmlld0NoaWxkKCdhY2NvcmRpb25Hcm91cCcpIGFjY29yZGlvbkdyb3VwITogSW9uQWNjb3JkaW9uR3JvdXA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIG1lbnVDdHJsOiBNZW51Q29udHJvbGxlclxuICApIHt9XG5cbiAgLyoqXG4gICAqIEdldHMgYSB1bmlxdWUgdmFsdWUgZm9yIHRoZSBhY2NvcmRpb24gc2VjdGlvbi5cbiAgICovXG4gIGdldFNlY3Rpb25WYWx1ZShzZWN0aW9uOiBMaW5rc0FjY29yZGlvblNlY3Rpb24sIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBzZWN0aW9uLnRpdGxlS2V5IHx8IHNlY3Rpb24udGl0bGUgfHwgYHNlY3Rpb24tJHtpbmRleH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHNlY3Rpb24gdGl0bGUsIHN1cHBvcnRpbmcgaTE4biB2aWEgdGl0bGVLZXkuXG4gICAqL1xuICBnZXRTZWN0aW9uVGl0bGUoc2VjdGlvbjogTGlua3NBY2NvcmRpb25TZWN0aW9uKTogc3RyaW5nIHtcbiAgICBpZiAoc2VjdGlvbi50aXRsZUtleSAmJiB0aGlzLnByb3BzLmkxOG5OYW1lc3BhY2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmkxOG4udChzZWN0aW9uLnRpdGxlS2V5LCB0aGlzLnByb3BzLmkxOG5OYW1lc3BhY2UpO1xuICAgIH1cbiAgICByZXR1cm4gc2VjdGlvbi50aXRsZSB8fCAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBsaW5rIHRleHQsIHN1cHBvcnRpbmcgaTE4biB2aWEgdGV4dEtleS5cbiAgICovXG4gIGdldExpbmtUZXh0KGxpbms6IExpbmtzQWNjb3JkaW9uTGluayk6IHN0cmluZyB7XG4gICAgaWYgKGxpbmsudGV4dEtleSAmJiB0aGlzLnByb3BzLmkxOG5OYW1lc3BhY2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmkxOG4udChsaW5rLnRleHRLZXksIHRoaXMucHJvcHMuaTE4bk5hbWVzcGFjZSk7XG4gICAgfVxuICAgIHJldHVybiBsaW5rLnRleHQgfHwgJyc7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBsaW5rIGNsaWNrIC0gY2xvc2VzIGFjY29yZGlvbi9tZW51IGFuZCBuYXZpZ2F0ZXMuXG4gICAqL1xuICBhc3luYyBvbkxpbmtDbGljayhyb3V0ZTogc3RyaW5nW10sIGV2ZW50PzogRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIC8vIENsb3NlIGFjY29yZGlvbiBiZWZvcmUgbmF2aWdhdGluZ1xuICAgIGlmICh0aGlzLnByb3BzLmNsb3NlQWNjb3JkaW9uT25DbGljayAhPT0gZmFsc2UgJiYgdGhpcy5hY2NvcmRpb25Hcm91cCkge1xuICAgICAgdGhpcy5hY2NvcmRpb25Hcm91cC52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBDbG9zZSBtZW51IGlmIGVuYWJsZWRcbiAgICBpZiAodGhpcy5wcm9wcy5jbG9zZU1lbnVPbkNsaWNrICE9PSBmYWxzZSkge1xuICAgICAgYXdhaXQgdGhpcy5tZW51Q3RybC5jbG9zZSgpO1xuICAgIH1cblxuICAgIC8vIEVtaXQgZXZlbnRcbiAgICB0aGlzLm5hdmlnYXRlLmVtaXQocm91dGUpO1xuXG4gICAgLy8gTmF2aWdhdGVcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShyb3V0ZSk7XG4gIH1cbn1cbiJdfQ==