imm-element-ui 2.6.9 → 2.7.1

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.
@@ -21,6 +21,12 @@ export class UploadRenderer {
21
21
  this.fileList = this.toFileList(params.value);
22
22
  return true;
23
23
  }
24
+ choose(callback) {
25
+ if (this.isDisabled() || this.loading) {
26
+ return;
27
+ }
28
+ callback();
29
+ }
24
30
  uploadHandler(event, fu) {
25
31
  const files = Array.from(event.files || []);
26
32
  if (!files.length || this.isDisabled()) {
@@ -119,32 +125,33 @@ export class UploadRenderer {
119
125
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploadRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
120
126
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UploadRenderer, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
121
127
  <div class="upload-renderer">
122
- <p-fileUpload
123
- #fu
124
- auto
125
- mode="basic"
126
- [name]="uploadParams.name || 'file'"
127
- [multiple]="uploadParams.multiple ?? true"
128
- [accept]="uploadParams.accept"
129
- [maxFileSize]="uploadParams.maxFileSize"
130
- [fileLimit]="uploadParams.fileLimit"
131
- [withCredentials]="uploadParams.withCredentials ?? false"
132
- [customUpload]="true"
133
- [disabled]="isDisabled() || loading"
134
- mode="advanced"
135
- [styleClass]="'upload-renderer-choose'"
136
- (uploadHandler)="uploadHandler($event, fu)">
137
- <ng-template
138
- #header
139
- let-chooseCallback="chooseCallback">
140
- <p-button
141
- icon="pi pi-cloud-upload"
142
- [text]="true"
143
- size="small"
144
- [disabled]="isDisabled() || loading"
145
- (onClick)="chooseCallback()" />
146
- </ng-template>
147
- </p-fileUpload>
128
+ @if (!isDisabled()) {
129
+ <p-fileUpload
130
+ #fu
131
+ auto
132
+ mode="advanced"
133
+ [name]="uploadParams.name || 'file'"
134
+ [multiple]="uploadParams.multiple ?? true"
135
+ [accept]="uploadParams.accept"
136
+ [maxFileSize]="uploadParams.maxFileSize"
137
+ [fileLimit]="uploadParams.fileLimit"
138
+ [withCredentials]="uploadParams.withCredentials ?? false"
139
+ [customUpload]="true"
140
+ [disabled]="loading"
141
+ [styleClass]="'upload-renderer-choose'"
142
+ (uploadHandler)="uploadHandler($event, fu)">
143
+ <ng-template
144
+ #header
145
+ let-chooseCallback="chooseCallback">
146
+ <p-button
147
+ icon="pi pi-cloud-upload"
148
+ [text]="true"
149
+ size="small"
150
+ [disabled]="loading"
151
+ (onClick)="choose(chooseCallback)" />
152
+ </ng-template>
153
+ </p-fileUpload>
154
+ }
148
155
 
149
156
  <div class="upload-renderer-files">
150
157
  @for (file of fileList; track index; let index = $index) {
@@ -157,13 +164,15 @@ export class UploadRenderer {
157
164
  (click)="$event.stopPropagation()"
158
165
  >{{ file }}</a
159
166
  >
160
- <p-button
161
- icon="pi pi-times"
162
- severity="danger"
163
- size="small"
164
- [text]="true"
165
- [disabled]="isDisabled() || loading"
166
- (onClick)="deleteHandler(file, index)" />
167
+ @if (!isDisabled()) {
168
+ <p-button
169
+ icon="pi pi-times"
170
+ severity="danger"
171
+ size="small"
172
+ [text]="true"
173
+ [disabled]="loading"
174
+ (onClick)="deleteHandler(file, index)" />
175
+ }
167
176
  </div>
168
177
  }
169
178
  </div>
@@ -174,32 +183,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
174
183
  type: Component,
175
184
  args: [{ standalone: true, imports: [ButtonModule, FileUpload], template: `
176
185
  <div class="upload-renderer">
177
- <p-fileUpload
178
- #fu
179
- auto
180
- mode="basic"
181
- [name]="uploadParams.name || 'file'"
182
- [multiple]="uploadParams.multiple ?? true"
183
- [accept]="uploadParams.accept"
184
- [maxFileSize]="uploadParams.maxFileSize"
185
- [fileLimit]="uploadParams.fileLimit"
186
- [withCredentials]="uploadParams.withCredentials ?? false"
187
- [customUpload]="true"
188
- [disabled]="isDisabled() || loading"
189
- mode="advanced"
190
- [styleClass]="'upload-renderer-choose'"
191
- (uploadHandler)="uploadHandler($event, fu)">
192
- <ng-template
193
- #header
194
- let-chooseCallback="chooseCallback">
195
- <p-button
196
- icon="pi pi-cloud-upload"
197
- [text]="true"
198
- size="small"
199
- [disabled]="isDisabled() || loading"
200
- (onClick)="chooseCallback()" />
201
- </ng-template>
202
- </p-fileUpload>
186
+ @if (!isDisabled()) {
187
+ <p-fileUpload
188
+ #fu
189
+ auto
190
+ mode="advanced"
191
+ [name]="uploadParams.name || 'file'"
192
+ [multiple]="uploadParams.multiple ?? true"
193
+ [accept]="uploadParams.accept"
194
+ [maxFileSize]="uploadParams.maxFileSize"
195
+ [fileLimit]="uploadParams.fileLimit"
196
+ [withCredentials]="uploadParams.withCredentials ?? false"
197
+ [customUpload]="true"
198
+ [disabled]="loading"
199
+ [styleClass]="'upload-renderer-choose'"
200
+ (uploadHandler)="uploadHandler($event, fu)">
201
+ <ng-template
202
+ #header
203
+ let-chooseCallback="chooseCallback">
204
+ <p-button
205
+ icon="pi pi-cloud-upload"
206
+ [text]="true"
207
+ size="small"
208
+ [disabled]="loading"
209
+ (onClick)="choose(chooseCallback)" />
210
+ </ng-template>
211
+ </p-fileUpload>
212
+ }
203
213
 
204
214
  <div class="upload-renderer-files">
205
215
  @for (file of fileList; track index; let index = $index) {
@@ -212,17 +222,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
212
222
  (click)="$event.stopPropagation()"
213
223
  >{{ file }}</a
214
224
  >
215
- <p-button
216
- icon="pi pi-times"
217
- severity="danger"
218
- size="small"
219
- [text]="true"
220
- [disabled]="isDisabled() || loading"
221
- (onClick)="deleteHandler(file, index)" />
225
+ @if (!isDisabled()) {
226
+ <p-button
227
+ icon="pi pi-times"
228
+ severity="danger"
229
+ size="small"
230
+ [text]="true"
231
+ [disabled]="loading"
232
+ (onClick)="deleteHandler(file, index)" />
233
+ }
222
234
  </div>
223
235
  }
224
236
  </div>
225
237
  </div>
226
238
  `, styles: [".upload-renderer{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;width:100%;min-width:0;padding:2px 0}:host ::ng-deep .upload-renderer-choose{display:inline-flex;align-items:center;width:28px;height:28px;border:0;background:transparent}:host ::ng-deep .upload-renderer-choose .p-fileupload-header{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:0;background:transparent}:host ::ng-deep .upload-renderer-choose .p-fileupload-content{display:none;padding:0;border:0}:host ::ng-deep .upload-renderer-choose .p-button,:host ::ng-deep .upload-renderer-choose p-button{width:28px;height:28px;padding:0}:host ::ng-deep .upload-renderer-choose .p-button-label{display:none}.upload-renderer-files{display:flex;flex-direction:column;align-items:stretch;gap:2px;width:100%;min-width:0;overflow:hidden}.upload-renderer-file{display:flex;align-items:center;justify-content:space-between;gap:4px;min-width:0;width:100%}.upload-renderer-file-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--p-primary-color);text-decoration:none}.upload-renderer-file-name:hover{text-decoration:underline}\n"] }]
227
239
  }] });
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLXJlbmRlcmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9ncmlkL2NlbGwtcmVuZGVyL3VwbG9hZC1yZW5kZXJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFhLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUl6RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7QUErSXBELE1BQU0sT0FBTyxjQUFjO0lBaEkzQjtRQWlJUyxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWxDLGlCQUFZLEdBQXlCLEVBQUUsQ0FBQztRQUN4QyxhQUFRLEdBQWEsRUFBRSxDQUFDO1FBQ3hCLFlBQU8sR0FBRyxLQUFLLENBQUM7S0F1SGhCO0lBckhBLE1BQU0sQ0FBQyxNQUEyQjtRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBMkI7UUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFRCxhQUFhLENBQUMs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QU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDOUYsQ0FBQztJQUVPLE9BQU8sQ0FBQyxLQUFlO1FBQzlCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QixDQUFDOytHQTNIVyxjQUFjO21HQUFkLGNBQWMsd0VBN0hoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbURULDB2Q0FwRFMsWUFBWSxrYkFBRSxVQUFVOzs0RkE4SHRCLGNBQWM7a0JBaEkxQixTQUFTO2lDQUNHLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsWUFDekI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1EVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnQsIEh0dHBFdmVudFR5cGUsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHR5cGUgeyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHR5cGUgeyBJQ2VsbFJlbmRlcmVyUGFyYW1zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgR3JpZENvbXBvbmVudCB9IGZyb20gJy4uL2dyaWQvZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgRmlsZVVwbG9hZCB9IGZyb20gJ3ByaW1lbmcvZmlsZXVwbG9hZCc7XG5pbXBvcnQgeyBmaWx0ZXIsIGZvcmtKb2luLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkUmVuZGVyZXJQYXJhbXMge1xuXHR1cmw/OiBzdHJpbmc7XG5cdGRlbGV0ZVVybD86IHN0cmluZztcblx0ZG93bmxvYWRCYXNlVXJsPzogc3RyaW5nO1xuXHRtdWx0aXBsZT86IGJvb2xlYW47XG5cdGFjY2VwdD86IHN0cmluZztcblx0bWF4RmlsZVNpemU/OiBudW1iZXI7XG5cdGZpbGVMaW1pdD86IG51bWJlcjtcblx0bmFtZT86IHN0cmluZztcblx0d2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcblx0ZGlzYWJsZWQ/OiBib29sZWFuIHwgKChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpID0+IGJvb2xlYW4pO1xufVxuXG5AQ29tcG9uZW50KHtcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW0J1dHRvbk1vZHVsZSwgRmlsZVVwbG9hZF0sXG5cdHRlbXBsYXRlOiBgXG5cdFx0PGRpdiBjbGFzcz1cInVwbG9hZC1yZW5kZXJlclwiPlxuXHRcdFx0PHAtZmlsZVVwbG9hZFxuXHRcdFx0XHQjZnVcblx0XHRcdFx0YXV0b1xuXHRcdFx0XHRtb2RlPVwiYmFzaWNcIlxuXHRcdFx0XHRbbmFtZV09XCJ1cGxvYWRQYXJhbXMubmFtZSB8fCAnZmlsZSdcIlxuXHRcdFx0XHRbbXVsdGlwbGVdPVwidXBsb2FkUGFyYW1zLm11bHRpcGxlID8/IHRydWVcIlxuXHRcdFx0XHRbYWNjZXB0XT1cInVwbG9hZFBhcmFtcy5hY2NlcHRcIlxuXHRcdFx0XHRbbWF4RmlsZVNpemVdPVwidXBsb2FkUGFyYW1zLm1heEZpbGVTaXplXCJcblx0XHRcdFx0W2ZpbGVMaW1pdF09XCJ1cGxvYWRQYXJhbXMuZmlsZUxpbWl0XCJcblx0XHRcdFx0W3dpdGhDcmVkZW50aWFsc109XCJ1cGxvYWRQYXJhbXMud2l0aENyZWRlbnRpYWxzID8/IGZhbHNlXCJcblx0XHRcdFx0W2N1c3RvbVVwbG9hZF09XCJ0cnVlXCJcblx0XHRcdFx0W2Rpc2FibGVkXT1cImlzRGlzYWJsZWQoKSB8fCBsb2FkaW5nXCJcblx0XHRcdFx0bW9kZT1cImFkdmFuY2VkXCJcblx0XHRcdFx0W3N0eWxlQ2xhc3NdPVwiJ3VwbG9hZC1yZW5kZXJlci1jaG9vc2UnXCJcblx0XHRcdFx0KHVwbG9hZEhhbmRsZXIpPVwidXBsb2FkSGFuZGxlcigkZXZlbnQsIGZ1KVwiPlxuXHRcdFx0XHQ8bmctdGVtcGxhdGVcblx0XHRcdFx0XHQjaGVhZGVyXG5cdFx0XHRcdFx0bGV0LWNob29zZUNhbGxiYWNrPVwiY2hvb3NlQ2FsbGJhY2tcIj5cblx0XHRcdFx0XHQ8cC1idXR0b25cblx0XHRcdFx0XHRcdGljb249XCJwaSBwaS1jbG91ZC11cGxvYWRcIlxuXHRcdFx0XHRcdFx0W3RleHRdPVwidHJ1ZVwiXG5cdFx0XHRcdFx0XHRzaXplPVwic21hbGxcIlxuXHRcdFx0XHRcdFx0W2Rpc2FibGVkXT1cImlzRGlzYWJsZWQoKSB8fCBsb2FkaW5nXCJcblx0XHRcdFx0XHRcdChvbkNsaWNrKT1cImNob29zZUNhbGxiYWNrKClcIiAvPlxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdFx0PC9wLWZpbGVVcGxvYWQ+XG5cblx0XHRcdDxkaXYgY2xhc3M9XCJ1cGxvYWQtcmVuZGVyZXItZmlsZXNcIj5cblx0XHRcdFx0QGZvciAoZmlsZSBvZiBmaWxlTGlzdDsgdHJhY2sgaW5kZXg7IGxldCBpbmRleCA9ICRpbmRleCkge1xuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ1cGxvYWQtcmVuZGVyZXItZmlsZVwiPlxuXHRcdFx0XHRcdFx0PGFcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJ1cGxvYWQtcmVuZGVyZXItZmlsZS1uYW1lXCJcblx0XHRcdFx0XHRcdFx0W2hyZWZdPVwiZ2V0RG93bmxvYWRVcmwoZmlsZSlcIlxuXHRcdFx0XHRcdFx0XHRbZG93bmxvYWRdPVwiZmlsZVwiXG5cdFx0XHRcdFx0XHRcdHRhcmdldD1cIl9ibGFua1wiXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuXHRcdFx0XHRcdFx0XHQ+e3sgZmlsZSB9fTwvYVxuXHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0PHAtYnV0dG9uXG5cdFx0XHRcdFx0XHRcdGljb249XCJwaSBwaS10aW1lc1wiXG5cdFx0XHRcdFx0XHRcdHNldmVyaXR5PVwiZGFuZ2VyXCJcblx0XHRcdFx0XHRcdFx0c2l6ZT1cInNtYWxsXCJcblx0XHRcdFx0XHRcdFx0W3RleHRdPVwidHJ1ZVwiXG5cdFx0XHRcdFx0XHRcdFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkKCkgfHwgbG9hZGluZ1wiXG5cdFx0XHRcdFx0XHRcdChvbkNsaWNrKT1cImRlbGV0ZUhhbmRsZXIoZmlsZSwgaW5kZXgpXCIgLz5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0fVxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdGAsXG5cdHN0eWxlczogYFxuXHRcdC51cGxvYWQtcmVuZGVyZXIge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0Z2FwOiAycHg7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdG1pbi13aWR0aDogMDtcblx0XHRcdHBhZGRpbmc6IDJweCAwO1xuXHRcdH1cblx0XHQ6aG9zdCA6Om5nLWRlZXAgLnVwbG9hZC1yZW5kZXJlci1jaG9vc2Uge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0d2lkdGg6IDI4cHg7XG5cdFx0XHRoZWlnaHQ6IDI4cHg7XG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHR9XG5cdFx0Omhvc3QgOjpuZy1kZWVwIC51cGxvYWQtcmVuZGVyZXItY2hvb3NlIC5wLWZpbGV1cGxvYWQtaGVhZGVyIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHR3aWR0aDogMjhweDtcblx0XHRcdGhlaWdodDogMjhweDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHR9XG5cdFx0Omhvc3QgOjpuZy1kZWVwIC51cGxvYWQtcmVuZGVyZXItY2hvb3NlIC5wLWZpbGV1cGxvYWQtY29udGVudCB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdGJvcmRlcjogMDtcblx0XHR9XG5cdFx0Omhvc3QgOjpuZy1kZWVwIC51cGxvYWQtcmVuZGVyZXItY2hvb3NlIC5wLWJ1dHRvbixcblx0XHQ6aG9zdCA6Om5nLWRlZXAgLnVwbG9hZC1yZW5kZXJlci1jaG9vc2UgcC1idXR0b24ge1xuXHRcdFx0d2lkdGg6IDI4cHg7XG5cdFx0XHRoZWlnaHQ6IDI4cHg7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cblx0XHQ6aG9zdCA6Om5nLWRlZXAgLnVwbG9hZC1yZW5kZXJlci1jaG9vc2UgLnAtYnV0dG9uLWxhYmVsIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHRcdC51cGxvYWQtcmVuZGVyZXItZmlsZXMge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0XHRhbGlnbi1pdGVtczogc3RyZXRjaDtcblx0XHRcdGdhcDogMnB4O1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRtaW4td2lkdGg6IDA7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdH1cblx0XHQudXBsb2FkLXJlbmRlcmVyLWZpbGUge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0XHRnYXA6IDRweDtcblx0XHRcdG1pbi13aWR0aDogMDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0XHQudXBsb2FkLXJlbmRlcmVyLWZpbGUtbmFtZSB7XG5cdFx0XHRtaW4td2lkdGg6IDA7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0Y29sb3I6IHZhcigtLXAtcHJpbWFyeS1jb2xvcik7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0fVxuXHRcdC51cGxvYWQtcmVuZGVyZXItZmlsZS1uYW1lOmhvdmVyIHtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdH1cblx0YCxcbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkUmVuZGVyZXIgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAge1xuXHRwcml2YXRlIGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cdHBhcmFtcyE6IElDZWxsUmVuZGVyZXJQYXJhbXM7XG5cdHVwbG9hZFBhcmFtczogVXBsb2FkUmVuZGVyZXJQYXJhbXMgPSB7fTtcblx0ZmlsZUxpc3Q6IHN0cmluZ1tdID0gW107XG5cdGxvYWRpbmcgPSBmYWxzZTtcblxuXHRhZ0luaXQocGFyYW1zOiBJQ2VsbFJlbmRlcmVyUGFyYW1zKTogdm9pZCB7XG5cdFx0dGhpcy5yZWZyZXNoKHBhcmFtcyk7XG5cdH1cblxuXHRyZWZyZXNoKHBhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtcyk6IGJvb2xlYW4ge1xuXHRcdHRoaXMucGFyYW1zID0gcGFyYW1zO1xuXHRcdHRoaXMudXBsb2FkUGFyYW1zID0gdGhpcy5yZXNvbHZlVXBsb2FkUGFyYW1zKHBhcmFtcyk7XG5cdFx0dGhpcy5maWxlTGlzdCA9IHRoaXMudG9GaWxlTGlzdChwYXJhbXMudmFsdWUpO1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0dXBsb2FkSGFuZGxlcihldmVudDogYW55LCBmdTogYW55KSB7XG5cdFx0Y29uc3QgZmlsZXMgPSBBcnJheS5mcm9tKGV2ZW50LmZpbGVzIHx8IFtdKSBhcyBGaWxlW107XG5cdFx0aWYgKCFmaWxlcy5sZW5ndGggfHwgdGhpcy5pc0Rpc2FibGVkKCkpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgdXBsb2FkUmVxdWVzdHM6IE9ic2VydmFibGU8YW55PltdID0gZmlsZXMubWFwKChmaWxlKSA9PiB0aGlzLnVwbG9hZEZpbGUoZmlsZSkpO1xuXHRcdHRoaXMubG9hZGluZyA9IHRydWU7XG5cdFx0Zm9ya0pvaW4odXBsb2FkUmVxdWVzdHMpLnN1YnNjcmliZSh7XG5cdFx0XHRuZXh0OiAocmVzcG9uc2VzKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHVwbG9hZGVkRmlsZXMgPSByZXNwb25zZXMubWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZS5ib2R5Py5maWxlTmFtZSkuZmlsdGVyKEJvb2xlYW4pO1xuXHRcdFx0XHR0aGlzLmZpbGVMaXN0ID0gWy4uLnRoaXMuZmlsZUxpc3QsIC4uLnVwbG9hZGVkRmlsZXNdO1xuXHRcdFx0XHR0aGlzLmNvbW1pdFZhbHVlKCk7XG5cdFx0XHRcdGZ1LmNsZWFyKCk7XG5cdFx0XHR9LFxuXHRcdFx0ZXJyb3I6ICgpID0+IHtcblx0XHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XG5cdFx0XHRcdGZ1LmNsZWFyKCk7XG5cdFx0XHR9LFxuXHRcdH0pO1xuXHR9XG5cblx0ZGVsZXRlSGFuZGxlcihmaWxlOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpIHtcblx0XHRpZiAodGhpcy5pc0Rpc2FibGVkKCkgfHwgdGhpcy5sb2FkaW5nKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHRoaXMubG9hZGluZyA9IHRydWU7XG5cdFx0dGhpcy5kZWxGaWxlKGZpbGUpLnN1YnNjcmliZSh7XG5cdFx0XHRuZXh0OiAoKSA9PiB7XG5cdFx0XHRcdHRoaXMuZmlsZUxpc3QgPSB0aGlzLmZpbGVMaXN0LmZpbHRlcigoXywgZmlsZUluZGV4KSA9PiBmaWxlSW5kZXggIT09IGluZGV4KTtcblx0XHRcdFx0dGhpcy5jb21taXRWYWx1ZSgpO1xuXHRcdFx0fSxcblx0XHRcdGVycm9yOiAoKSA9PiB7XG5cdFx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlO1xuXHRcdFx0fSxcblx0XHR9KTtcblx0fVxuXG5cdGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG5cdFx0aWYgKHR5cGVvZiB0aGlzLnVwbG9hZFBhcmFtcy5kaXNhYmxlZCA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0cmV0dXJuIHRoaXMudXBsb2FkUGFyYW1zLmRpc2FibGVkKHRoaXMucGFyYW1zKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMudXBsb2FkUGFyYW1zLmRpc2FibGVkICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHJldHVybiB0aGlzLnVwbG9hZFBhcmFtcy5kaXNhYmxlZDtcblx0XHR9XG5cdFx0cmV0dXJuIEJvb2xlYW4odGhpcy5wYXJhbXMuY29udGV4dD8uZ3JpZERpc2FibGVkPy4oKSk7XG5cdH1cblxuXHRnZXREb3dubG9hZFVybChmaWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGNvbnN0IGJhc2VVcmwgPSB0aGlzLnVwbG9hZFBhcmFtcy5kb3dubG9hZEJhc2VVcmwgPz8gJ2h0dHBzOi8vZmlsZS1maWxlci5teWZvb2RpZXBldC5jb20vJztcblx0XHRyZXR1cm4gYCR7YmFzZVVybC5lbmRzV2l0aCgnLycpID8gYmFzZVVybCA6IGAke2Jhc2VVcmx9L2B9JHtmaWxlfWA7XG5cdH1cblxuXHRwcml2YXRlIHVwbG9hZEZpbGUoZmlsZTogRmlsZSk6IE9ic2VydmFibGU8YW55PiB7XG5cdFx0Y29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcblx0XHRmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcblx0XHRyZXR1cm4gdGhpcy5odHRwXG5cdFx0XHQucmVxdWVzdChcblx0XHRcdFx0bmV3IEh0dHBSZXF1ZXN0KCdQT1NUJywgdGhpcy51cGxvYWRQYXJhbXMudXJsID8/ICdmaWxlclVwbG9hZCcsIGZvcm1EYXRhLCB7XG5cdFx0XHRcdFx0cmVwb3J0UHJvZ3Jlc3M6IHRydWUsXG5cdFx0XHRcdFx0d2l0aENyZWRlbnRpYWxzOiB0aGlzLnVwbG9hZFBhcmFtcy53aXRoQ3JlZGVudGlhbHMgPz8gZmFsc2UsXG5cdFx0XHRcdH0pLFxuXHRcdFx0KVxuXHRcdFx0LnBpcGUoZmlsdGVyKChyZXNwb25zZTogSHR0cEV2ZW50PGFueT4pID0+IHJlc3BvbnNlLnR5cGUgPT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSkpO1xuXHR9XG5cblx0cHJpdmF0ZSBkZWxGaWxlKGZpbGU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMudXBsb2FkUGFyYW1zLmRlbGV0ZVVybCA/PyAnZmlsZXJEZWxldGUnLCB7IGZpbGVOYW1lOiBmaWxlIH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBjb21taXRWYWx1ZSgpIHtcblx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcblx0XHRjb25zdCBmaWVsZCA9IHRoaXMucGFyYW1zLmNvbERlZj8uZmllbGQ7XG5cdFx0aWYgKCFmaWVsZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBvbGRWYWx1ZSA9IHRoaXMucGFyYW1zLmRhdGE/LltmaWVsZF07XG5cdFx0Y29uc3QgbmV3VmFsdWUgPSB0aGlzLnRvVmFsdWUodGhpcy5maWxlTGlzdCk7XG5cdFx0Y29uc3QgZ3JpZDogR3JpZENvbXBvbmVudCB8IHVuZGVmaW5lZCA9IHRoaXMucGFyYW1zLmNvbnRleHQ/LmdyaWQ/LigpO1xuXHRcdHRoaXMucGFyYW1zLmRhdGFbZmllbGRdID0gbmV3VmFsdWU7XG5cdFx0Z3JpZD8uY2VsbFZhbHVlQ2hhbmdlZCh7XG5cdFx0XHRjb2xEZWY6IHRoaXMucGFyYW1zLmNvbERlZixcblx0XHRcdG9sZFZhbHVlLFxuXHRcdFx0bmV3VmFsdWUsXG5cdFx0XHRyb3dJbmRleDogdGhpcy5wYXJhbXMubm9kZS5yb3dJbmRleCxcblx0XHRcdGRhdGE6IHRoaXMucGFyYW1zLmRhdGEsXG5cdFx0fSBhcyBhbnkpO1xuXHRcdHNldFRpbWVvdXQoKCkgPT4gdGhpcy5wYXJhbXMuYXBpLnJlc2V0Um93SGVpZ2h0cygpKTtcblx0fVxuXG5cdHByaXZhdGUgcmVzb2x2ZVVwbG9hZFBhcmFtcyhwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpOiBVcGxvYWRSZW5kZXJlclBhcmFtcyB7XG5cdFx0aWYgKHR5cGVvZiBwYXJhbXMuY29sRGVmPy5jZWxsUmVuZGVyZXJQYXJhbXMgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdHJldHVybiBwYXJhbXMuY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcyhwYXJhbXMpIHx8IHt9O1xuXHRcdH1cblx0XHRyZXR1cm4gcGFyYW1zLmNvbERlZj8uY2VsbFJlbmRlcmVyUGFyYW1zIHx8IHt9O1xuXHR9XG5cblx0cHJpdmF0ZSB0b0ZpbGVMaXN0KHZhbHVlOiBhbnkpOiBzdHJpbmdbXSB7XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdFx0XHRyZXR1cm4gdmFsdWUuZmlsdGVyKEJvb2xlYW4pO1xuXHRcdH1cblx0XHRyZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5sZW5ndGggPiAwID8gdmFsdWUuc3BsaXQoJzsnKS5maWx0ZXIoQm9vbGVhbikgOiBbXTtcblx0fVxuXG5cdHByaXZhdGUgdG9WYWx1ZShmaWxlczogc3RyaW5nW10pOiBzdHJpbmcge1xuXHRcdHJldHVybiBmaWxlcy5qb2luKCc7Jyk7XG5cdH1cbn1cbiJdfQ==
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLXJlbmRlcmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9ncmlkL2NlbGwtcmVuZGVyL3VwbG9hZC1yZW5kZXJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFhLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUl6RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7QUFrSnBELE1BQU0sT0FBTyxjQUFjO0lBbkkzQjtRQW9JUyxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWxDLGlCQUFZLEdBQXlCLEVBQUUsQ0FBQztRQUN4QyxhQUFRLEdBQWEsRUFBRSxDQUFDO1FBQ3hCLFlBQU8sR0FBRyxLQUFLLENBQUM7S0E4SGhCO0lBNUhBLE1BQU0sQ0FBQyxNQUEyQjtRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBMkI7UUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQUMs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UUFDOUIsQ0FBQztRQUNELE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzlGLENBQUM7SUFFTyxPQUFPLENBQUMsS0FBZTtRQUM5QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEIsQ0FBQzsrR0FsSVcsY0FBYzttR0FBZCxjQUFjLHdFQWhJaEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXNEVCwwdkNBdkRTLFlBQVksa2JBQUUsVUFBVTs7NEZBaUl0QixjQUFjO2tCQW5JMUIsU0FBUztpQ0FDRyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLFlBQ3pCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFzRFQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEV2ZW50LCBIdHRwRXZlbnRUeXBlLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB0eXBlIHsgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB0eXBlIHsgSUNlbGxSZW5kZXJlclBhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7IEdyaWRDb21wb25lbnQgfSBmcm9tICcuLi9ncmlkL2dyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7IEZpbGVVcGxvYWQgfSBmcm9tICdwcmltZW5nL2ZpbGV1cGxvYWQnO1xuaW1wb3J0IHsgZmlsdGVyLCBmb3JrSm9pbiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZFJlbmRlcmVyUGFyYW1zIHtcblx0dXJsPzogc3RyaW5nO1xuXHRkZWxldGVVcmw/OiBzdHJpbmc7XG5cdGRvd25sb2FkQmFzZVVybD86IHN0cmluZztcblx0bXVsdGlwbGU/OiBib29sZWFuO1xuXHRhY2NlcHQ/OiBzdHJpbmc7XG5cdG1heEZpbGVTaXplPzogbnVtYmVyO1xuXHRmaWxlTGltaXQ/OiBudW1iZXI7XG5cdG5hbWU/OiBzdHJpbmc7XG5cdHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG5cdGRpc2FibGVkPzogYm9vbGVhbiB8ICgocGFyYW1zOiBJQ2VsbFJlbmRlcmVyUGFyYW1zKSA9PiBib29sZWFuKTtcbn1cblxuQENvbXBvbmVudCh7XG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtCdXR0b25Nb2R1bGUsIEZpbGVVcGxvYWRdLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxkaXYgY2xhc3M9XCJ1cGxvYWQtcmVuZGVyZXJcIj5cblx0XHRcdEBpZiAoIWlzRGlzYWJsZWQoKSkge1xuXHRcdFx0XHQ8cC1maWxlVXBsb2FkXG5cdFx0XHRcdFx0I2Z1XG5cdFx0XHRcdFx0YXV0b1xuXHRcdFx0XHRcdG1vZGU9XCJhZHZhbmNlZFwiXG5cdFx0XHRcdFx0W25hbWVdPVwidXBsb2FkUGFyYW1zLm5hbWUgfHwgJ2ZpbGUnXCJcblx0XHRcdFx0XHRbbXVsdGlwbGVdPVwidXBsb2FkUGFyYW1zLm11bHRpcGxlID8/IHRydWVcIlxuXHRcdFx0XHRcdFthY2NlcHRdPVwidXBsb2FkUGFyYW1zLmFjY2VwdFwiXG5cdFx0XHRcdFx0W21heEZpbGVTaXplXT1cInVwbG9hZFBhcmFtcy5tYXhGaWxlU2l6ZVwiXG5cdFx0XHRcdFx0W2ZpbGVMaW1pdF09XCJ1cGxvYWRQYXJhbXMuZmlsZUxpbWl0XCJcblx0XHRcdFx0XHRbd2l0aENyZWRlbnRpYWxzXT1cInVwbG9hZFBhcmFtcy53aXRoQ3JlZGVudGlhbHMgPz8gZmFsc2VcIlxuXHRcdFx0XHRcdFtjdXN0b21VcGxvYWRdPVwidHJ1ZVwiXG5cdFx0XHRcdFx0W2Rpc2FibGVkXT1cImxvYWRpbmdcIlxuXHRcdFx0XHRcdFtzdHlsZUNsYXNzXT1cIid1cGxvYWQtcmVuZGVyZXItY2hvb3NlJ1wiXG5cdFx0XHRcdFx0KHVwbG9hZEhhbmRsZXIpPVwidXBsb2FkSGFuZGxlcigkZXZlbnQsIGZ1KVwiPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZVxuXHRcdFx0XHRcdFx0I2hlYWRlclxuXHRcdFx0XHRcdFx0bGV0LWNob29zZUNhbGxiYWNrPVwiY2hvb3NlQ2FsbGJhY2tcIj5cblx0XHRcdFx0XHRcdDxwLWJ1dHRvblxuXHRcdFx0XHRcdFx0XHRpY29uPVwicGkgcGktY2xvdWQtdXBsb2FkXCJcblx0XHRcdFx0XHRcdFx0W3RleHRdPVwidHJ1ZVwiXG5cdFx0XHRcdFx0XHRcdHNpemU9XCJzbWFsbFwiXG5cdFx0XHRcdFx0XHRcdFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcblx0XHRcdFx0XHRcdFx0KG9uQ2xpY2spPVwiY2hvb3NlKGNob29zZUNhbGxiYWNrKVwiIC8+XG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0PC9wLWZpbGVVcGxvYWQ+XG5cdFx0XHR9XG5cblx0XHRcdDxkaXYgY2xhc3M9XCJ1cGxvYWQtcmVuZGVyZXItZmlsZXNcIj5cblx0XHRcdFx0QGZvciAoZmlsZSBvZiBmaWxlTGlzdDsgdHJhY2sgaW5kZXg7IGxldCBpbmRleCA9ICRpbmRleCkge1xuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ1cGxvYWQtcmVuZGVyZXItZmlsZVwiPlxuXHRcdFx0XHRcdFx0PGFcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJ1cGxvYWQtcmVuZGVyZXItZmlsZS1uYW1lXCJcblx0XHRcdFx0XHRcdFx0W2hyZWZdPVwiZ2V0RG93bmxvYWRVcmwoZmlsZSlcIlxuXHRcdFx0XHRcdFx0XHRbZG93bmxvYWRdPVwiZmlsZVwiXG5cdFx0XHRcdFx0XHRcdHRhcmdldD1cIl9ibGFua1wiXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuXHRcdFx0XHRcdFx0XHQ+e3sgZmlsZSB9fTwvYVxuXHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0QGlmICghaXNEaXNhYmxlZCgpKSB7XG5cdFx0XHRcdFx0XHRcdDxwLWJ1dHRvblxuXHRcdFx0XHRcdFx0XHRcdGljb249XCJwaSBwaS10aW1lc1wiXG5cdFx0XHRcdFx0XHRcdFx0c2V2ZXJpdHk9XCJkYW5nZXJcIlxuXHRcdFx0XHRcdFx0XHRcdHNpemU9XCJzbWFsbFwiXG5cdFx0XHRcdFx0XHRcdFx0W3RleHRdPVwidHJ1ZVwiXG5cdFx0XHRcdFx0XHRcdFx0W2Rpc2FibGVkXT1cImxvYWRpbmdcIlxuXHRcdFx0XHRcdFx0XHRcdChvbkNsaWNrKT1cImRlbGV0ZUhhbmRsZXIoZmlsZSwgaW5kZXgpXCIgLz5cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0fVxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdGAsXG5cdHN0eWxlczogYFxuXHRcdC51cGxvYWQtcmVuZGVyZXIge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0Z2FwOiAycHg7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdG1pbi13aWR0aDogMDtcblx0XHRcdHBhZGRpbmc6IDJweCAwO1xuXHRcdH1cblx0XHQ6aG9zdCA6Om5nLWRlZXAgLnVwbG9hZC1yZW5kZXJlci1jaG9vc2Uge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0d2lkdGg6IDI4cHg7XG5cdFx0XHRoZWlnaHQ6IDI4cHg7XG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHR9XG5cdFx0Omhvc3QgOjpuZy1kZWVwIC51cGxvYWQtcmVuZGVyZXItY2hvb3NlIC5wLWZpbGV1cGxvYWQtaGVhZGVyIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHR3aWR0aDogMjhweDtcblx0XHRcdGhlaWdodDogMjhweDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHR9XG5cdFx0Omhvc3QgOjpuZy1kZWVwIC51cGxvYWQtcmVuZGVyZXItY2hvb3NlIC5wLWZpbGV1cGxvYWQtY29udGVudCB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdGJvcmRlcjogMDtcblx0XHR9XG5cdFx0Omhvc3QgOjpuZy1kZWVwIC51cGxvYWQtcmVuZGVyZXItY2hvb3NlIC5wLWJ1dHRvbixcblx0XHQ6aG9zdCA6Om5nLWRlZXAgLnVwbG9hZC1yZW5kZXJlci1jaG9vc2UgcC1idXR0b24ge1xuXHRcdFx0d2lkdGg6IDI4cHg7XG5cdFx0XHRoZWlnaHQ6IDI4cHg7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cblx0XHQ6aG9zdCA6Om5nLWRlZXAgLnVwbG9hZC1yZW5kZXJlci1jaG9vc2UgLnAtYnV0dG9uLWxhYmVsIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHRcdC51cGxvYWQtcmVuZGVyZXItZmlsZXMge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0XHRhbGlnbi1pdGVtczogc3RyZXRjaDtcblx0XHRcdGdhcDogMnB4O1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRtaW4td2lkdGg6IDA7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdH1cblx0XHQudXBsb2FkLXJlbmRlcmVyLWZpbGUge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0XHRnYXA6IDRweDtcblx0XHRcdG1pbi13aWR0aDogMDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0XHQudXBsb2FkLXJlbmRlcmVyLWZpbGUtbmFtZSB7XG5cdFx0XHRtaW4td2lkdGg6IDA7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0Y29sb3I6IHZhcigtLXAtcHJpbWFyeS1jb2xvcik7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0fVxuXHRcdC51cGxvYWQtcmVuZGVyZXItZmlsZS1uYW1lOmhvdmVyIHtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdH1cblx0YCxcbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkUmVuZGVyZXIgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAge1xuXHRwcml2YXRlIGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cdHBhcmFtcyE6IElDZWxsUmVuZGVyZXJQYXJhbXM7XG5cdHVwbG9hZFBhcmFtczogVXBsb2FkUmVuZGVyZXJQYXJhbXMgPSB7fTtcblx0ZmlsZUxpc3Q6IHN0cmluZ1tdID0gW107XG5cdGxvYWRpbmcgPSBmYWxzZTtcblxuXHRhZ0luaXQocGFyYW1zOiBJQ2VsbFJlbmRlcmVyUGFyYW1zKTogdm9pZCB7XG5cdFx0dGhpcy5yZWZyZXNoKHBhcmFtcyk7XG5cdH1cblxuXHRyZWZyZXNoKHBhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtcyk6IGJvb2xlYW4ge1xuXHRcdHRoaXMucGFyYW1zID0gcGFyYW1zO1xuXHRcdHRoaXMudXBsb2FkUGFyYW1zID0gdGhpcy5yZXNvbHZlVXBsb2FkUGFyYW1zKHBhcmFtcyk7XG5cdFx0dGhpcy5maWxlTGlzdCA9IHRoaXMudG9GaWxlTGlzdChwYXJhbXMudmFsdWUpO1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0Y2hvb3NlKGNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XG5cdFx0aWYgKHRoaXMuaXNEaXNhYmxlZCgpIHx8IHRoaXMubG9hZGluZykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjYWxsYmFjaygpO1xuXHR9XG5cblx0dXBsb2FkSGFuZGxlcihldmVudDogYW55LCBmdTogYW55KSB7XG5cdFx0Y29uc3QgZmlsZXMgPSBBcnJheS5mcm9tKGV2ZW50LmZpbGVzIHx8IFtdKSBhcyBGaWxlW107XG5cdFx0aWYgKCFmaWxlcy5sZW5ndGggfHwgdGhpcy5pc0Rpc2FibGVkKCkpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgdXBsb2FkUmVxdWVzdHM6IE9ic2VydmFibGU8YW55PltdID0gZmlsZXMubWFwKChmaWxlKSA9PiB0aGlzLnVwbG9hZEZpbGUoZmlsZSkpO1xuXHRcdHRoaXMubG9hZGluZyA9IHRydWU7XG5cdFx0Zm9ya0pvaW4odXBsb2FkUmVxdWVzdHMpLnN1YnNjcmliZSh7XG5cdFx0XHRuZXh0OiAocmVzcG9uc2VzKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHVwbG9hZGVkRmlsZXMgPSByZXNwb25zZXMubWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZS5ib2R5Py5maWxlTmFtZSkuZmlsdGVyKEJvb2xlYW4pO1xuXHRcdFx0XHR0aGlzLmZpbGVMaXN0ID0gWy4uLnRoaXMuZmlsZUxpc3QsIC4uLnVwbG9hZGVkRmlsZXNdO1xuXHRcdFx0XHR0aGlzLmNvbW1pdFZhbHVlKCk7XG5cdFx0XHRcdGZ1LmNsZWFyKCk7XG5cdFx0XHR9LFxuXHRcdFx0ZXJyb3I6ICgpID0+IHtcblx0XHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XG5cdFx0XHRcdGZ1LmNsZWFyKCk7XG5cdFx0XHR9LFxuXHRcdH0pO1xuXHR9XG5cblx0ZGVsZXRlSGFuZGxlcihmaWxlOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpIHtcblx0XHRpZiAodGhpcy5pc0Rpc2FibGVkKCkgfHwgdGhpcy5sb2FkaW5nKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHRoaXMubG9hZGluZyA9IHRydWU7XG5cdFx0dGhpcy5kZWxGaWxlKGZpbGUpLnN1YnNjcmliZSh7XG5cdFx0XHRuZXh0OiAoKSA9PiB7XG5cdFx0XHRcdHRoaXMuZmlsZUxpc3QgPSB0aGlzLmZpbGVMaXN0LmZpbHRlcigoXywgZmlsZUluZGV4KSA9PiBmaWxlSW5kZXggIT09IGluZGV4KTtcblx0XHRcdFx0dGhpcy5jb21taXRWYWx1ZSgpO1xuXHRcdFx0fSxcblx0XHRcdGVycm9yOiAoKSA9PiB7XG5cdFx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlO1xuXHRcdFx0fSxcblx0XHR9KTtcblx0fVxuXG5cdGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG5cdFx0aWYgKHR5cGVvZiB0aGlzLnVwbG9hZFBhcmFtcy5kaXNhYmxlZCA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0cmV0dXJuIHRoaXMudXBsb2FkUGFyYW1zLmRpc2FibGVkKHRoaXMucGFyYW1zKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMudXBsb2FkUGFyYW1zLmRpc2FibGVkICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHJldHVybiB0aGlzLnVwbG9hZFBhcmFtcy5kaXNhYmxlZDtcblx0XHR9XG5cdFx0cmV0dXJuIEJvb2xlYW4odGhpcy5wYXJhbXMuY29udGV4dD8uZ3JpZERpc2FibGVkPy4oKSk7XG5cdH1cblxuXHRnZXREb3dubG9hZFVybChmaWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGNvbnN0IGJhc2VVcmwgPSB0aGlzLnVwbG9hZFBhcmFtcy5kb3dubG9hZEJhc2VVcmwgPz8gJ2h0dHBzOi8vZmlsZS1maWxlci5teWZvb2RpZXBldC5jb20vJztcblx0XHRyZXR1cm4gYCR7YmFzZVVybC5lbmRzV2l0aCgnLycpID8gYmFzZVVybCA6IGAke2Jhc2VVcmx9L2B9JHtmaWxlfWA7XG5cdH1cblxuXHRwcml2YXRlIHVwbG9hZEZpbGUoZmlsZTogRmlsZSk6IE9ic2VydmFibGU8YW55PiB7XG5cdFx0Y29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcblx0XHRmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcblx0XHRyZXR1cm4gdGhpcy5odHRwXG5cdFx0XHQucmVxdWVzdChcblx0XHRcdFx0bmV3IEh0dHBSZXF1ZXN0KCdQT1NUJywgdGhpcy51cGxvYWRQYXJhbXMudXJsID8/ICdmaWxlclVwbG9hZCcsIGZvcm1EYXRhLCB7XG5cdFx0XHRcdFx0cmVwb3J0UHJvZ3Jlc3M6IHRydWUsXG5cdFx0XHRcdFx0d2l0aENyZWRlbnRpYWxzOiB0aGlzLnVwbG9hZFBhcmFtcy53aXRoQ3JlZGVudGlhbHMgPz8gZmFsc2UsXG5cdFx0XHRcdH0pLFxuXHRcdFx0KVxuXHRcdFx0LnBpcGUoZmlsdGVyKChyZXNwb25zZTogSHR0cEV2ZW50PGFueT4pID0+IHJlc3BvbnNlLnR5cGUgPT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSkpO1xuXHR9XG5cblx0cHJpdmF0ZSBkZWxGaWxlKGZpbGU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMudXBsb2FkUGFyYW1zLmRlbGV0ZVVybCA/PyAnZmlsZXJEZWxldGUnLCB7IGZpbGVOYW1lOiBmaWxlIH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBjb21taXRWYWx1ZSgpIHtcblx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcblx0XHRjb25zdCBmaWVsZCA9IHRoaXMucGFyYW1zLmNvbERlZj8uZmllbGQ7XG5cdFx0aWYgKCFmaWVsZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBvbGRWYWx1ZSA9IHRoaXMucGFyYW1zLmRhdGE/LltmaWVsZF07XG5cdFx0Y29uc3QgbmV3VmFsdWUgPSB0aGlzLnRvVmFsdWUodGhpcy5maWxlTGlzdCk7XG5cdFx0Y29uc3QgZ3JpZDogR3JpZENvbXBvbmVudCB8IHVuZGVmaW5lZCA9IHRoaXMucGFyYW1zLmNvbnRleHQ/LmdyaWQ/LigpO1xuXHRcdHRoaXMucGFyYW1zLmRhdGFbZmllbGRdID0gbmV3VmFsdWU7XG5cdFx0Z3JpZD8uY2VsbFZhbHVlQ2hhbmdlZCh7XG5cdFx0XHRjb2xEZWY6IHRoaXMucGFyYW1zLmNvbERlZixcblx0XHRcdG9sZFZhbHVlLFxuXHRcdFx0bmV3VmFsdWUsXG5cdFx0XHRyb3dJbmRleDogdGhpcy5wYXJhbXMubm9kZS5yb3dJbmRleCxcblx0XHRcdGRhdGE6IHRoaXMucGFyYW1zLmRhdGEsXG5cdFx0fSBhcyBhbnkpO1xuXHRcdHNldFRpbWVvdXQoKCkgPT4gdGhpcy5wYXJhbXMuYXBpLnJlc2V0Um93SGVpZ2h0cygpKTtcblx0fVxuXG5cdHByaXZhdGUgcmVzb2x2ZVVwbG9hZFBhcmFtcyhwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpOiBVcGxvYWRSZW5kZXJlclBhcmFtcyB7XG5cdFx0aWYgKHR5cGVvZiBwYXJhbXMuY29sRGVmPy5jZWxsUmVuZGVyZXJQYXJhbXMgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdHJldHVybiBwYXJhbXMuY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcyhwYXJhbXMpIHx8IHt9O1xuXHRcdH1cblx0XHRyZXR1cm4gcGFyYW1zLmNvbERlZj8uY2VsbFJlbmRlcmVyUGFyYW1zIHx8IHt9O1xuXHR9XG5cblx0cHJpdmF0ZSB0b0ZpbGVMaXN0KHZhbHVlOiBhbnkpOiBzdHJpbmdbXSB7XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdFx0XHRyZXR1cm4gdmFsdWUuZmlsdGVyKEJvb2xlYW4pO1xuXHRcdH1cblx0XHRyZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5sZW5ndGggPiAwID8gdmFsdWUuc3BsaXQoJzsnKS5maWx0ZXIoQm9vbGVhbikgOiBbXTtcblx0fVxuXG5cdHByaXZhdGUgdG9WYWx1ZShmaWxlczogc3RyaW5nW10pOiBzdHJpbmcge1xuXHRcdHJldHVybiBmaWxlcy5qb2luKCc7Jyk7XG5cdH1cbn1cbiJdfQ==