imm-element-ui 1.6.4 → 1.6.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/crumb-action/crumb-action.component.mjs +3 -3
- package/esm2022/lib/form/form-field/context-menu.mjs +35 -35
- package/esm2022/lib/form/form-field/field-control.mjs +1 -1
- package/esm2022/lib/form/form-field/field-utils.mjs +1 -1
- package/esm2022/lib/form/form-field/form-field.mjs +135 -135
- package/esm2022/lib/form/form-field/index.mjs +1 -1
- package/esm2022/lib/form/form-field/label.directive.mjs +1 -1
- package/esm2022/lib/form/form-type/autocomplete.type.mjs +151 -151
- package/esm2022/lib/form/form-type/codemirror.type.mjs +1 -1
- package/esm2022/lib/form/form-type/datepicker.type.mjs +177 -177
- package/esm2022/lib/form/form-type/image.type.mjs +211 -211
- package/esm2022/lib/form/form-type/index.mjs +1 -1
- package/esm2022/lib/form/form-type/inputnumber.type.mjs +91 -91
- package/esm2022/lib/form/form-type/inputtext.type.mjs +19 -19
- package/esm2022/lib/form/form-type/multiselect.type.mjs +163 -163
- package/esm2022/lib/form/form-type/radio.type.mjs +77 -77
- package/esm2022/lib/form/form-type/rowselector.type.mjs +25 -25
- package/esm2022/lib/form/form-type/select.type.mjs +133 -133
- package/esm2022/lib/form/form-type/textarea.type.mjs +25 -25
- package/esm2022/lib/form/form-type/treeselect.type.mjs +115 -115
- package/esm2022/lib/form/form-type/upload.type.mjs +131 -131
- package/esm2022/lib/grid/cell-edit/cell-edit-datePicker.compoent.mjs +139 -139
- package/esm2022/lib/grid/cell-render/chip-render.mjs +21 -21
- package/esm2022/lib/grid/cell-render/img-renderer.mjs +25 -25
- package/esm2022/lib/grid/grid/grid.component.mjs +5 -3
- package/esm2022/lib/grid/grid-utils.mjs +1 -1
- package/esm2022/lib/import/import.component.mjs +1 -1
- package/esm2022/lib/loading/loading.component.mjs +3 -3
- package/esm2022/lib/page-form/page-form.component.mjs +6 -3
- package/esm2022/lib/page-grid-list/page-grid-list.component.mjs +3 -3
- package/esm2022/lib/row-selector/row-selector.component.mjs +3 -3
- package/esm2022/lib/search/search/search.component.mjs +3 -3
- package/esm2022/lib/search/search-tip/search-tip.component.mjs +1 -1
- package/esm2022/lib/search/search-utils.mjs +1 -1
- package/esm2022/lib/search/text-panel/text-panel.component.mjs +1 -1
- package/esm2022/lib/service/action.service.mjs +6 -1
- package/esm2022/lib/service/loading.service.mjs +1 -1
- package/esm2022/lib/steps/steps.component.mjs +1 -1
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/imm-element-ui.mjs +1679 -1670
- package/fesm2022/imm-element-ui.mjs.map +1 -1
- package/lib/crumb-action/crumb-action.component.d.ts +1 -1
- package/lib/grid/grid/grid.component.d.ts +1 -1
- package/lib/grid/grid-utils.d.ts +2 -529
- package/lib/service/action.service.d.ts +3 -0
- package/package.json +1 -1
- package/src/lib/crumb-action/crumb-action.component.scss +60 -60
- package/src/lib/grid/grid/grid.component.scss +45 -45
- package/src/lib/loading/loading.component.scss +31 -31
- package/src/lib/page-form/page-form.component.scss +31 -31
- package/src/lib/row-selector/row-selector.component.scss +1 -1
- package/src/lib/search/pop-date/pop-date.component.scss +67 -67
- package/src/lib/search/pop-list/pop-list.component.scss +23 -23
- package/src/lib/search/pop-panel/pop-panel.component.scss +32 -32
- package/src/lib/search/pop-self/pop-self.component.scss +80 -80
- package/src/lib/search/pop-sort/pop-sort.component.scss +49 -49
- package/src/lib/search/pop-tree/pop-tree.component.scss +37 -37
- package/src/lib/search/search/search.component.scss +70 -70
- package/src/lib/search/search-tip/search-tip.component.scss +50 -50
- package/src/lib/search/text-panel/text-panel.component.scss +24 -24
- package/src/lib/styles/styles.scss +232 -232
|
@@ -203,223 +203,223 @@ export class ImageComponent {
|
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
205
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageComponent, deps: [{ token: i1.HttpClient }, { token: i2.ActionService }, { token: i0.Renderer2 }, { token: i3.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
206
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ImageComponent, isStandalone: true, selector: "form-image", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "imageCompRef", first: true, predicate: ["imageComp"], descendants: true, read: ElementRef }], ngImport: i0, template: `<p-fileUpload
|
|
207
|
-
#fu
|
|
208
|
-
auto
|
|
209
|
-
[name]="props.name"
|
|
210
|
-
[url]="props.url"
|
|
211
|
-
[method]="props.method ?? 'post'"
|
|
212
|
-
accept="image/*"
|
|
213
|
-
[withCredentials]="props.withCredentials"
|
|
214
|
-
[maxFileSize]="props.maxFileSize"
|
|
215
|
-
[styleClass]="props.styleClass"
|
|
216
|
-
[previewWidth]="props.previewWidth ?? 50"
|
|
217
|
-
[mode]="props.mode ?? 'advanced'"
|
|
218
|
-
[headers]="props.headers"
|
|
219
|
-
[fileLimit]="props.fileLimit"
|
|
220
|
-
[customUpload]="props.customUpload ?? true"
|
|
221
|
-
[multiple]="props.multiple ?? false"
|
|
222
|
-
(onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
|
|
223
|
-
(onSend)="props.onSend?.(field()!, $event)"
|
|
224
|
-
(onUpload)="props.onUpload?.(field()!, $event)"
|
|
225
|
-
(onError)="props.onError?.(field()!, $event)"
|
|
226
|
-
(onClear)="props.onClear?.(field()!, $event)"
|
|
227
|
-
(onRemove)="props.onRemove?.(field()!, $event)"
|
|
228
|
-
(onSelect)="props.onSelect?.(field()!, $event)"
|
|
229
|
-
(onProgress)="props.onProgress?.(field()!, $event)"
|
|
230
|
-
(uploadHandler)="uploadHandler(field()!, $event, fu)">
|
|
231
|
-
<ng-template
|
|
232
|
-
#header
|
|
233
|
-
let-chooseCallback="chooseCallback">
|
|
234
|
-
<div
|
|
235
|
-
#imageComp
|
|
236
|
-
[class]="'flex justify-center w-full upload-btn' + (field()?.fieldControl?.disabled ? ' upload-disable' : '')"
|
|
237
|
-
(click)="choose($event, chooseCallback)">
|
|
238
|
-
<span
|
|
239
|
-
><span
|
|
240
|
-
style="font-size: 12px; margin-right: 2.5px"
|
|
241
|
-
[class]="'pi' + (loading ? ' pi-spin pi-spinner' : ' pi-upload')"></span
|
|
242
|
-
>{{ (loading ? 'modal.uploading' : 'modal.selectFile') | translate }}</span
|
|
243
|
-
>
|
|
244
|
-
</div>
|
|
245
|
-
</ng-template>
|
|
246
|
-
<ng-template #content>
|
|
247
|
-
@if (imageList.length > 0) {
|
|
248
|
-
@if (!props.imageMode) {
|
|
249
|
-
@for (image of imageList; track image; let index = $index) {
|
|
250
|
-
<div class="flex justify-between items-center file-item">
|
|
251
|
-
<p-image
|
|
252
|
-
[src]="'https://hrimage.myfoodiepet.com//' + image"
|
|
253
|
-
[preview]="true"
|
|
254
|
-
(onShow)="ajustedImage($event)"
|
|
255
|
-
alt="Image">
|
|
256
|
-
<ng-template #indicator>
|
|
257
|
-
<span class="file-name">{{ image }}</span>
|
|
258
|
-
</ng-template>
|
|
259
|
-
<ng-template #image>
|
|
260
|
-
<span class="file-name">{{ image }}</span>
|
|
261
|
-
</ng-template>
|
|
262
|
-
</p-image>
|
|
263
|
-
@if (!field()?.fieldControl?.disabled) {
|
|
264
|
-
<p-button
|
|
265
|
-
icon="pi pi-times"
|
|
266
|
-
severity="danger"
|
|
267
|
-
size="small"
|
|
268
|
-
(onClick)="deleteHandler($event, image, index)"
|
|
269
|
-
[text]="true" />
|
|
270
|
-
}
|
|
271
|
-
</div>
|
|
272
|
-
}
|
|
273
|
-
} @else {
|
|
274
|
-
<div class="flex gap-2 mt-1 flex-wrap">
|
|
275
|
-
@for (image of imageList; track image; let index = $index) {
|
|
276
|
-
<div
|
|
277
|
-
class="border"
|
|
278
|
-
[style]="{ height: imageHeight + 10 + 'px' }">
|
|
279
|
-
<p-image
|
|
280
|
-
[src]="'https://hrimage.myfoodiepet.com//' + image"
|
|
281
|
-
[preview]="true"
|
|
282
|
-
(onShow)="ajustedImage($event)"
|
|
283
|
-
alt="Image">
|
|
284
|
-
<ng-template #indicator>
|
|
285
|
-
@if (!field()?.fieldControl?.disabled) {
|
|
286
|
-
<div [style]="{ position: 'relative', width: imageWidth + 10 + 'px', height: imageHeight + 10 + 'px' }">
|
|
287
|
-
<div
|
|
288
|
-
style="position: absolute; top: 0; right: 0; z-index: 9999; background: red; padding: 1px;"
|
|
289
|
-
(click)="deleteHandler($event, image, index)">
|
|
290
|
-
<i class="pi pi-times text-[12px]"></i>
|
|
291
|
-
</div>
|
|
292
|
-
</div>
|
|
293
|
-
}
|
|
294
|
-
</ng-template>
|
|
295
|
-
<ng-template #image>
|
|
296
|
-
<div class="p-2">
|
|
297
|
-
<img
|
|
298
|
-
[src]="'https://hrimage.myfoodiepet.com//' + image"
|
|
299
|
-
alt="image"
|
|
300
|
-
[style]="{ width: imageWidth + 'px', height: imageHeight + 'px', objectFit: 'cover' }" />
|
|
301
|
-
</div>
|
|
302
|
-
</ng-template>
|
|
303
|
-
</p-image>
|
|
304
|
-
</div>
|
|
305
|
-
}
|
|
306
|
-
</div>
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
</ng-template>
|
|
310
|
-
<ng-template #file> </ng-template>
|
|
206
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ImageComponent, isStandalone: true, selector: "form-image", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "imageCompRef", first: true, predicate: ["imageComp"], descendants: true, read: ElementRef }], ngImport: i0, template: `<p-fileUpload
|
|
207
|
+
#fu
|
|
208
|
+
auto
|
|
209
|
+
[name]="props.name"
|
|
210
|
+
[url]="props.url"
|
|
211
|
+
[method]="props.method ?? 'post'"
|
|
212
|
+
accept="image/*"
|
|
213
|
+
[withCredentials]="props.withCredentials"
|
|
214
|
+
[maxFileSize]="props.maxFileSize"
|
|
215
|
+
[styleClass]="props.styleClass"
|
|
216
|
+
[previewWidth]="props.previewWidth ?? 50"
|
|
217
|
+
[mode]="props.mode ?? 'advanced'"
|
|
218
|
+
[headers]="props.headers"
|
|
219
|
+
[fileLimit]="props.fileLimit"
|
|
220
|
+
[customUpload]="props.customUpload ?? true"
|
|
221
|
+
[multiple]="props.multiple ?? false"
|
|
222
|
+
(onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
|
|
223
|
+
(onSend)="props.onSend?.(field()!, $event)"
|
|
224
|
+
(onUpload)="props.onUpload?.(field()!, $event)"
|
|
225
|
+
(onError)="props.onError?.(field()!, $event)"
|
|
226
|
+
(onClear)="props.onClear?.(field()!, $event)"
|
|
227
|
+
(onRemove)="props.onRemove?.(field()!, $event)"
|
|
228
|
+
(onSelect)="props.onSelect?.(field()!, $event)"
|
|
229
|
+
(onProgress)="props.onProgress?.(field()!, $event)"
|
|
230
|
+
(uploadHandler)="uploadHandler(field()!, $event, fu)">
|
|
231
|
+
<ng-template
|
|
232
|
+
#header
|
|
233
|
+
let-chooseCallback="chooseCallback">
|
|
234
|
+
<div
|
|
235
|
+
#imageComp
|
|
236
|
+
[class]="'flex justify-center w-full upload-btn' + (field()?.fieldControl?.disabled ? ' upload-disable' : '')"
|
|
237
|
+
(click)="choose($event, chooseCallback)">
|
|
238
|
+
<span
|
|
239
|
+
><span
|
|
240
|
+
style="font-size: 12px; margin-right: 2.5px"
|
|
241
|
+
[class]="'pi' + (loading ? ' pi-spin pi-spinner' : ' pi-upload')"></span
|
|
242
|
+
>{{ (loading ? 'modal.uploading' : 'modal.selectFile') | translate }}</span
|
|
243
|
+
>
|
|
244
|
+
</div>
|
|
245
|
+
</ng-template>
|
|
246
|
+
<ng-template #content>
|
|
247
|
+
@if (imageList.length > 0) {
|
|
248
|
+
@if (!props.imageMode) {
|
|
249
|
+
@for (image of imageList; track image; let index = $index) {
|
|
250
|
+
<div class="flex justify-between items-center file-item">
|
|
251
|
+
<p-image
|
|
252
|
+
[src]="'https://hrimage.myfoodiepet.com//' + image"
|
|
253
|
+
[preview]="true"
|
|
254
|
+
(onShow)="ajustedImage($event)"
|
|
255
|
+
alt="Image">
|
|
256
|
+
<ng-template #indicator>
|
|
257
|
+
<span class="file-name">{{ image }}</span>
|
|
258
|
+
</ng-template>
|
|
259
|
+
<ng-template #image>
|
|
260
|
+
<span class="file-name">{{ image }}</span>
|
|
261
|
+
</ng-template>
|
|
262
|
+
</p-image>
|
|
263
|
+
@if (!field()?.fieldControl?.disabled) {
|
|
264
|
+
<p-button
|
|
265
|
+
icon="pi pi-times"
|
|
266
|
+
severity="danger"
|
|
267
|
+
size="small"
|
|
268
|
+
(onClick)="deleteHandler($event, image, index)"
|
|
269
|
+
[text]="true" />
|
|
270
|
+
}
|
|
271
|
+
</div>
|
|
272
|
+
}
|
|
273
|
+
} @else {
|
|
274
|
+
<div class="flex gap-2 mt-1 flex-wrap">
|
|
275
|
+
@for (image of imageList; track image; let index = $index) {
|
|
276
|
+
<div
|
|
277
|
+
class="border"
|
|
278
|
+
[style]="{ height: imageHeight + 10 + 'px' }">
|
|
279
|
+
<p-image
|
|
280
|
+
[src]="'https://hrimage.myfoodiepet.com//' + image"
|
|
281
|
+
[preview]="true"
|
|
282
|
+
(onShow)="ajustedImage($event)"
|
|
283
|
+
alt="Image">
|
|
284
|
+
<ng-template #indicator>
|
|
285
|
+
@if (!field()?.fieldControl?.disabled) {
|
|
286
|
+
<div [style]="{ position: 'relative', width: imageWidth + 10 + 'px', height: imageHeight + 10 + 'px' }">
|
|
287
|
+
<div
|
|
288
|
+
style="position: absolute; top: 0; right: 0; z-index: 9999; background: red; padding: 1px;"
|
|
289
|
+
(click)="deleteHandler($event, image, index)">
|
|
290
|
+
<i class="pi pi-times text-[12px]"></i>
|
|
291
|
+
</div>
|
|
292
|
+
</div>
|
|
293
|
+
}
|
|
294
|
+
</ng-template>
|
|
295
|
+
<ng-template #image>
|
|
296
|
+
<div class="p-2">
|
|
297
|
+
<img
|
|
298
|
+
[src]="'https://hrimage.myfoodiepet.com//' + image"
|
|
299
|
+
alt="image"
|
|
300
|
+
[style]="{ width: imageWidth + 'px', height: imageHeight + 'px', objectFit: 'cover' }" />
|
|
301
|
+
</div>
|
|
302
|
+
</ng-template>
|
|
303
|
+
</p-image>
|
|
304
|
+
</div>
|
|
305
|
+
}
|
|
306
|
+
</div>
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
</ng-template>
|
|
310
|
+
<ng-template #file> </ng-template>
|
|
311
311
|
</p-fileUpload>`, isInline: true, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0 .25rem;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n", ".file-item{border-top:solid 1px #fff}.upload-btn{border:solid 1px transparent}.upload-btn.upload-disable:hover{cursor:default}.upload-btn:not(.upload-disable):hover{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.upload-btn:not(.upload-disable).ng-hovered{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.file-name{font-size:12px;cursor:pointer;color:var(--p-primary-color)!important}:is() .p-image-preview-mask{position:inherit;opacity:1;justify-content:left;color:#334155}:is() p-image .p-image{display:inline-block;color:var(--p-primary-color)!important}\n"], dependencies: [{ kind: "component", type: FileUpload, selector: "p-fileupload, p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "chooseButtonProps", "uploadButtonProps", "cancelButtonProps", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: Image, selector: "p-image", inputs: ["imageClass", "imageStyle", "styleClass", "style", "src", "srcSet", "sizes", "previewImageSrc", "previewImageSrcSet", "previewImageSizes", "alt", "width", "height", "loading", "appendTo", "preview", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide", "onImageError"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
312
312
|
}
|
|
313
313
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageComponent, decorators: [{
|
|
314
314
|
type: Component,
|
|
315
|
-
args: [{ selector: 'form-image', standalone: true, imports: [FileUpload, ButtonModule, Image, ReactiveFormsModule, TranslatePipe], template: `<p-fileUpload
|
|
316
|
-
#fu
|
|
317
|
-
auto
|
|
318
|
-
[name]="props.name"
|
|
319
|
-
[url]="props.url"
|
|
320
|
-
[method]="props.method ?? 'post'"
|
|
321
|
-
accept="image/*"
|
|
322
|
-
[withCredentials]="props.withCredentials"
|
|
323
|
-
[maxFileSize]="props.maxFileSize"
|
|
324
|
-
[styleClass]="props.styleClass"
|
|
325
|
-
[previewWidth]="props.previewWidth ?? 50"
|
|
326
|
-
[mode]="props.mode ?? 'advanced'"
|
|
327
|
-
[headers]="props.headers"
|
|
328
|
-
[fileLimit]="props.fileLimit"
|
|
329
|
-
[customUpload]="props.customUpload ?? true"
|
|
330
|
-
[multiple]="props.multiple ?? false"
|
|
331
|
-
(onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
|
|
332
|
-
(onSend)="props.onSend?.(field()!, $event)"
|
|
333
|
-
(onUpload)="props.onUpload?.(field()!, $event)"
|
|
334
|
-
(onError)="props.onError?.(field()!, $event)"
|
|
335
|
-
(onClear)="props.onClear?.(field()!, $event)"
|
|
336
|
-
(onRemove)="props.onRemove?.(field()!, $event)"
|
|
337
|
-
(onSelect)="props.onSelect?.(field()!, $event)"
|
|
338
|
-
(onProgress)="props.onProgress?.(field()!, $event)"
|
|
339
|
-
(uploadHandler)="uploadHandler(field()!, $event, fu)">
|
|
340
|
-
<ng-template
|
|
341
|
-
#header
|
|
342
|
-
let-chooseCallback="chooseCallback">
|
|
343
|
-
<div
|
|
344
|
-
#imageComp
|
|
345
|
-
[class]="'flex justify-center w-full upload-btn' + (field()?.fieldControl?.disabled ? ' upload-disable' : '')"
|
|
346
|
-
(click)="choose($event, chooseCallback)">
|
|
347
|
-
<span
|
|
348
|
-
><span
|
|
349
|
-
style="font-size: 12px; margin-right: 2.5px"
|
|
350
|
-
[class]="'pi' + (loading ? ' pi-spin pi-spinner' : ' pi-upload')"></span
|
|
351
|
-
>{{ (loading ? 'modal.uploading' : 'modal.selectFile') | translate }}</span
|
|
352
|
-
>
|
|
353
|
-
</div>
|
|
354
|
-
</ng-template>
|
|
355
|
-
<ng-template #content>
|
|
356
|
-
@if (imageList.length > 0) {
|
|
357
|
-
@if (!props.imageMode) {
|
|
358
|
-
@for (image of imageList; track image; let index = $index) {
|
|
359
|
-
<div class="flex justify-between items-center file-item">
|
|
360
|
-
<p-image
|
|
361
|
-
[src]="'https://hrimage.myfoodiepet.com//' + image"
|
|
362
|
-
[preview]="true"
|
|
363
|
-
(onShow)="ajustedImage($event)"
|
|
364
|
-
alt="Image">
|
|
365
|
-
<ng-template #indicator>
|
|
366
|
-
<span class="file-name">{{ image }}</span>
|
|
367
|
-
</ng-template>
|
|
368
|
-
<ng-template #image>
|
|
369
|
-
<span class="file-name">{{ image }}</span>
|
|
370
|
-
</ng-template>
|
|
371
|
-
</p-image>
|
|
372
|
-
@if (!field()?.fieldControl?.disabled) {
|
|
373
|
-
<p-button
|
|
374
|
-
icon="pi pi-times"
|
|
375
|
-
severity="danger"
|
|
376
|
-
size="small"
|
|
377
|
-
(onClick)="deleteHandler($event, image, index)"
|
|
378
|
-
[text]="true" />
|
|
379
|
-
}
|
|
380
|
-
</div>
|
|
381
|
-
}
|
|
382
|
-
} @else {
|
|
383
|
-
<div class="flex gap-2 mt-1 flex-wrap">
|
|
384
|
-
@for (image of imageList; track image; let index = $index) {
|
|
385
|
-
<div
|
|
386
|
-
class="border"
|
|
387
|
-
[style]="{ height: imageHeight + 10 + 'px' }">
|
|
388
|
-
<p-image
|
|
389
|
-
[src]="'https://hrimage.myfoodiepet.com//' + image"
|
|
390
|
-
[preview]="true"
|
|
391
|
-
(onShow)="ajustedImage($event)"
|
|
392
|
-
alt="Image">
|
|
393
|
-
<ng-template #indicator>
|
|
394
|
-
@if (!field()?.fieldControl?.disabled) {
|
|
395
|
-
<div [style]="{ position: 'relative', width: imageWidth + 10 + 'px', height: imageHeight + 10 + 'px' }">
|
|
396
|
-
<div
|
|
397
|
-
style="position: absolute; top: 0; right: 0; z-index: 9999; background: red; padding: 1px;"
|
|
398
|
-
(click)="deleteHandler($event, image, index)">
|
|
399
|
-
<i class="pi pi-times text-[12px]"></i>
|
|
400
|
-
</div>
|
|
401
|
-
</div>
|
|
402
|
-
}
|
|
403
|
-
</ng-template>
|
|
404
|
-
<ng-template #image>
|
|
405
|
-
<div class="p-2">
|
|
406
|
-
<img
|
|
407
|
-
[src]="'https://hrimage.myfoodiepet.com//' + image"
|
|
408
|
-
alt="image"
|
|
409
|
-
[style]="{ width: imageWidth + 'px', height: imageHeight + 'px', objectFit: 'cover' }" />
|
|
410
|
-
</div>
|
|
411
|
-
</ng-template>
|
|
412
|
-
</p-image>
|
|
413
|
-
</div>
|
|
414
|
-
}
|
|
415
|
-
</div>
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
</ng-template>
|
|
419
|
-
<ng-template #file> </ng-template>
|
|
315
|
+
args: [{ selector: 'form-image', standalone: true, imports: [FileUpload, ButtonModule, Image, ReactiveFormsModule, TranslatePipe], template: `<p-fileUpload
|
|
316
|
+
#fu
|
|
317
|
+
auto
|
|
318
|
+
[name]="props.name"
|
|
319
|
+
[url]="props.url"
|
|
320
|
+
[method]="props.method ?? 'post'"
|
|
321
|
+
accept="image/*"
|
|
322
|
+
[withCredentials]="props.withCredentials"
|
|
323
|
+
[maxFileSize]="props.maxFileSize"
|
|
324
|
+
[styleClass]="props.styleClass"
|
|
325
|
+
[previewWidth]="props.previewWidth ?? 50"
|
|
326
|
+
[mode]="props.mode ?? 'advanced'"
|
|
327
|
+
[headers]="props.headers"
|
|
328
|
+
[fileLimit]="props.fileLimit"
|
|
329
|
+
[customUpload]="props.customUpload ?? true"
|
|
330
|
+
[multiple]="props.multiple ?? false"
|
|
331
|
+
(onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
|
|
332
|
+
(onSend)="props.onSend?.(field()!, $event)"
|
|
333
|
+
(onUpload)="props.onUpload?.(field()!, $event)"
|
|
334
|
+
(onError)="props.onError?.(field()!, $event)"
|
|
335
|
+
(onClear)="props.onClear?.(field()!, $event)"
|
|
336
|
+
(onRemove)="props.onRemove?.(field()!, $event)"
|
|
337
|
+
(onSelect)="props.onSelect?.(field()!, $event)"
|
|
338
|
+
(onProgress)="props.onProgress?.(field()!, $event)"
|
|
339
|
+
(uploadHandler)="uploadHandler(field()!, $event, fu)">
|
|
340
|
+
<ng-template
|
|
341
|
+
#header
|
|
342
|
+
let-chooseCallback="chooseCallback">
|
|
343
|
+
<div
|
|
344
|
+
#imageComp
|
|
345
|
+
[class]="'flex justify-center w-full upload-btn' + (field()?.fieldControl?.disabled ? ' upload-disable' : '')"
|
|
346
|
+
(click)="choose($event, chooseCallback)">
|
|
347
|
+
<span
|
|
348
|
+
><span
|
|
349
|
+
style="font-size: 12px; margin-right: 2.5px"
|
|
350
|
+
[class]="'pi' + (loading ? ' pi-spin pi-spinner' : ' pi-upload')"></span
|
|
351
|
+
>{{ (loading ? 'modal.uploading' : 'modal.selectFile') | translate }}</span
|
|
352
|
+
>
|
|
353
|
+
</div>
|
|
354
|
+
</ng-template>
|
|
355
|
+
<ng-template #content>
|
|
356
|
+
@if (imageList.length > 0) {
|
|
357
|
+
@if (!props.imageMode) {
|
|
358
|
+
@for (image of imageList; track image; let index = $index) {
|
|
359
|
+
<div class="flex justify-between items-center file-item">
|
|
360
|
+
<p-image
|
|
361
|
+
[src]="'https://hrimage.myfoodiepet.com//' + image"
|
|
362
|
+
[preview]="true"
|
|
363
|
+
(onShow)="ajustedImage($event)"
|
|
364
|
+
alt="Image">
|
|
365
|
+
<ng-template #indicator>
|
|
366
|
+
<span class="file-name">{{ image }}</span>
|
|
367
|
+
</ng-template>
|
|
368
|
+
<ng-template #image>
|
|
369
|
+
<span class="file-name">{{ image }}</span>
|
|
370
|
+
</ng-template>
|
|
371
|
+
</p-image>
|
|
372
|
+
@if (!field()?.fieldControl?.disabled) {
|
|
373
|
+
<p-button
|
|
374
|
+
icon="pi pi-times"
|
|
375
|
+
severity="danger"
|
|
376
|
+
size="small"
|
|
377
|
+
(onClick)="deleteHandler($event, image, index)"
|
|
378
|
+
[text]="true" />
|
|
379
|
+
}
|
|
380
|
+
</div>
|
|
381
|
+
}
|
|
382
|
+
} @else {
|
|
383
|
+
<div class="flex gap-2 mt-1 flex-wrap">
|
|
384
|
+
@for (image of imageList; track image; let index = $index) {
|
|
385
|
+
<div
|
|
386
|
+
class="border"
|
|
387
|
+
[style]="{ height: imageHeight + 10 + 'px' }">
|
|
388
|
+
<p-image
|
|
389
|
+
[src]="'https://hrimage.myfoodiepet.com//' + image"
|
|
390
|
+
[preview]="true"
|
|
391
|
+
(onShow)="ajustedImage($event)"
|
|
392
|
+
alt="Image">
|
|
393
|
+
<ng-template #indicator>
|
|
394
|
+
@if (!field()?.fieldControl?.disabled) {
|
|
395
|
+
<div [style]="{ position: 'relative', width: imageWidth + 10 + 'px', height: imageHeight + 10 + 'px' }">
|
|
396
|
+
<div
|
|
397
|
+
style="position: absolute; top: 0; right: 0; z-index: 9999; background: red; padding: 1px;"
|
|
398
|
+
(click)="deleteHandler($event, image, index)">
|
|
399
|
+
<i class="pi pi-times text-[12px]"></i>
|
|
400
|
+
</div>
|
|
401
|
+
</div>
|
|
402
|
+
}
|
|
403
|
+
</ng-template>
|
|
404
|
+
<ng-template #image>
|
|
405
|
+
<div class="p-2">
|
|
406
|
+
<img
|
|
407
|
+
[src]="'https://hrimage.myfoodiepet.com//' + image"
|
|
408
|
+
alt="image"
|
|
409
|
+
[style]="{ width: imageWidth + 'px', height: imageHeight + 'px', objectFit: 'cover' }" />
|
|
410
|
+
</div>
|
|
411
|
+
</ng-template>
|
|
412
|
+
</p-image>
|
|
413
|
+
</div>
|
|
414
|
+
}
|
|
415
|
+
</div>
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
</ng-template>
|
|
419
|
+
<ng-template #file> </ng-template>
|
|
420
420
|
</p-fileUpload>`, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0 .25rem;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n", ".file-item{border-top:solid 1px #fff}.upload-btn{border:solid 1px transparent}.upload-btn.upload-disable:hover{cursor:default}.upload-btn:not(.upload-disable):hover{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.upload-btn:not(.upload-disable).ng-hovered{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.file-name{font-size:12px;cursor:pointer;color:var(--p-primary-color)!important}:is() .p-image-preview-mask{position:inherit;opacity:1;justify-content:left;color:#334155}:is() p-image .p-image{display:inline-block;color:var(--p-primary-color)!important}\n"] }]
|
|
421
421
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ActionService }, { type: i0.Renderer2 }, { type: i3.DatePipe }], propDecorators: { imageCompRef: [{
|
|
422
422
|
type: ViewChild,
|
|
423
423
|
args: ['imageComp', { read: ElementRef, static: false }]
|
|
424
424
|
}] } });
|
|
425
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZm9ybS9mb3JtLXR5cGUvaW1hZ2UudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEMsT0FBTyxFQUFzQyxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE9BQU8sRUFBRSxNQUFNLEVBQXdCLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUF5THBELE1BQU0sT0FBTyxjQUFjO0lBVzFCLFlBQ1MsSUFBZ0IsRUFDaEIsTUFBcUIsRUFDckIsUUFBbUIsRUFDbkIsUUFBa0I7UUFIbEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWIzQixVQUFLLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDM0IsVUFBSyxHQUFlLEVBQUUsQ0FBQztRQUN2QixjQUFTLEdBQWEsRUFBRSxDQUFDO1FBQ3pCLGdCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUNwQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFlBQU8sR0FBRyxDQUFD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Q0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFPO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0YsQ0FBQzsrR0F0TlcsY0FBYzttR0FBZCxjQUFjLGdTQUNNLFVBQVUsNkJBN0doQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQXlHTSx3ME1BMUdOLFVBQVUsZzVCQUFFLFlBQVksa2JBQUUsS0FBSyxxV0FBRSxtQkFBbUIsMEJBQUUsYUFBYTs7NEZBNkdqRSxjQUFjO2tCQXhKMUIsU0FBUzsrQkFDQyxZQUFZLGNBQ1YsSUFBSSxXQXlDUCxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyxZQUNwRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQXlHTTswSkFJNkMsWUFBWTtzQkFBeEUsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBlZmZlY3QsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZCB9IGZyb20gJ3ByaW1lbmcvZmlsZXVwbG9hZCc7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQgeyBJbWFnZSB9IGZyb20gJ3ByaW1lbmcvaW1hZ2UnO1xuaW1wb3J0IHsgRm9ybUZpZWxkLCBGaWVsZFByb3BzLCBBdHRyaWJ1dGVFdmVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnQsIEh0dHBIZWFkZXJzLCBIdHRwUmVxdWVzdCwgSHR0cEV2ZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgZmlsdGVyLCBmb3JrSm9pbiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlUHJvcHMgZXh0ZW5kcyBGaWVsZFByb3BzIHtcblx0dXJsPzogc3RyaW5nO1xuXHRtZXRob2Q/OiAncG9zdCcgfCAncHV0Jztcblx0d2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcblx0bWF4RmlsZVNpemU/OiBudW1iZXI7XG5cdHByZXZpZXdXaWR0aD86IG51bWJlcjtcblx0bW9kZT86ICdiYXNpYycgfCAnYWR2YW5jZWQnO1xuXHRoZWFkZXJzPzogYW55O1xuXHRjdXN0b21VcGxvYWQ/OiBib29sZWFuO1xuXHRmaWxlTGltaXQ/OiBudW1iZXI7XG5cdHVwbG9hZFN0eWxlQ2xhc3M/OiBzdHJpbmc7XG5cdGNhbmNlbFN0eWxlQ2xhc3M/OiBzdHJpbmc7XG5cdHJlbW92ZVN0eWxlQ2xhc3M/OiBzdHJpbmc7XG5cdGNob29zZVN0eWxlQ2xhc3M/OiBzdHJpbmc7XG5cdGFkanVzdGFibGU/OiBib29sZWFuO1xuXHRpbWFnZU1vZGU/OiBib29sZWFuO1xuXHRtdWx0aXBsZT86IGJvb2xlYW47XG5cdHdhdGVybWFyaz86IGJvb2xlYW47XG5cdHNpemU/OiAnc21hbGwnIHwgJ2xhcmdlJyB8IHVuZGVmaW5lZDtcblxuXHRvbkJlZm9yZVVwbG9hZD86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvblNlbmQ/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25VcGxvYWQ/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25FcnJvcj86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvbkNsZWFyPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uUmVtb3ZlPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uU2VsZWN0PzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uUHJvZ3Jlc3M/OiBBdHRyaWJ1dGVFdmVudDtcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnZm9ybS1pbWFnZScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHN0eWxlczogYFxuXHRcdC5maWxlLWl0ZW0ge1xuXHRcdFx0Ym9yZGVyLXRvcDogc29saWQgMXB4ICNmZmY7XG5cdFx0fVxuXHRcdC51cGxvYWQtYnRuIHtcblx0XHRcdGJvcmRlcjogc29saWQgMXB4IHRyYW5zcGFyZW50O1xuXHRcdH1cblx0XHQudXBsb2FkLWJ0bi51cGxvYWQtZGlzYWJsZTpob3ZlciB7XG5cdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0fVxuXHRcdC51cGxvYWQtYnRuOm5vdCgudXBsb2FkLWRpc2FibGUpOmhvdmVyIHtcblx0XHRcdGJvcmRlcjogc29saWQgMXB4IHZhcigtLXAtcHJpbWFyeS1jb2xvcik7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1wLXByaW1hcnktNTApO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdH1cblx0XHQudXBsb2FkLWJ0bjpub3QoLnVwbG9hZC1kaXNhYmxlKS5uZy1ob3ZlcmVkIHtcblx0XHRcdGJvcmRlcjogc29saWQgMXB4IHZhcigtLXAtcHJpbWFyeS1jb2xvcik7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1wLXByaW1hcnktNTApO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdH1cblx0XHQuZmlsZS1uYW1lIHtcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdGNvbG9yOiB2YXIoLS1wLXByaW1hcnktY29sb3IpICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHRcdDpob3N0IDo6bmctZGVlcCB7XG5cdFx0XHQucC1pbWFnZS1wcmV2aWV3LW1hc2sge1xuXHRcdFx0XHRwb3NpdGlvbjogaW5oZXJpdDtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBsZWZ0O1xuXHRcdFx0XHRjb2xvcjogIzMzNDE1NTtcblx0XHRcdH1cblx0XHRcdHAtaW1hZ2Uge1xuXHRcdFx0XHQucC1pbWFnZSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRcdGNvbG9yOiB2YXIoLS1wLXByaW1hcnktY29sb3IpICFpbXBvcnRhbnQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdGAsXG5cdGltcG9ydHM6IFtGaWxlVXBsb2FkLCBCdXR0b25Nb2R1bGUsIEltYWdlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBUcmFuc2xhdGVQaXBlXSxcblx0dGVtcGxhdGU6IGA8cC1maWxlVXBsb2FkXG5cdFx0I2Z1XG5cdFx0YXV0b1xuXHRcdFtuYW1lXT1cInByb3BzLm5hbWVcIlxuXHRcdFt1cmxdPVwicHJvcHMudXJsXCJcblx0XHRbbWV0aG9kXT1cInByb3BzLm1ldGhvZCA/PyAncG9zdCdcIlxuXHRcdGFjY2VwdD1cImltYWdlLypcIlxuXHRcdFt3aXRoQ3JlZGVudGlhbHNdPVwicHJvcHMud2l0aENyZWRlbnRpYWxzXCJcblx0XHRbbWF4RmlsZVNpemVdPVwicHJvcHMubWF4RmlsZVNpemVcIlxuXHRcdFtzdHlsZUNsYXNzXT1cInByb3BzLnN0eWxlQ2xhc3NcIlxuXHRcdFtwcmV2aWV3V2lkdGhdPVwicHJvcHMucHJldmlld1dpZHRoID8/IDUwXCJcblx0XHRbbW9kZV09XCJwcm9wcy5tb2RlID8/ICdhZHZhbmNlZCdcIlxuXHRcdFtoZWFkZXJzXT1cInByb3BzLmhlYWRlcnNcIlxuXHRcdFtmaWxlTGltaXRdPVwicHJvcHMuZmlsZUxpbWl0XCJcblx0XHRbY3VzdG9tVXBsb2FkXT1cInByb3BzLmN1c3RvbVVwbG9hZCA/PyB0cnVlXCJcblx0XHRbbXVsdGlwbGVdPVwicHJvcHMubXVsdGlwbGUgPz8gZmFsc2VcIlxuXHRcdChvbkJlZm9yZVVwbG9hZCk9XCJwcm9wcy5vbkJlZm9yZVVwbG9hZD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25TZW5kKT1cInByb3BzLm9uU2VuZD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25VcGxvYWQpPVwicHJvcHMub25VcGxvYWQ/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uRXJyb3IpPVwicHJvcHMub25FcnJvcj8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25DbGVhcik9XCJwcm9wcy5vbkNsZWFyPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvblJlbW92ZSk9XCJwcm9wcy5vblJlbW92ZT8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25TZWxlY3QpPVwicHJvcHMub25TZWxlY3Q/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uUHJvZ3Jlc3MpPVwicHJvcHMub25Qcm9ncmVzcz8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQodXBsb2FkSGFuZGxlcik9XCJ1cGxvYWRIYW5kbGVyKGZpZWxkKCkhLCAkZXZlbnQsIGZ1KVwiPlxuXHRcdDxuZy10ZW1wbGF0ZVxuXHRcdFx0I2hlYWRlclxuXHRcdFx0bGV0LWNob29zZUNhbGxiYWNrPVwiY2hvb3NlQ2FsbGJhY2tcIj5cblx0XHRcdDxkaXZcblx0XHRcdFx0I2ltYWdlQ29tcFxuXHRcdFx0XHRbY2xhc3NdPVwiJ2ZsZXgganVzdGlmeS1jZW50ZXIgdy1mdWxsIHVwbG9hZC1idG4nICsgKGZpZWxkKCk/LmZpZWxkQ29udHJvbD8uZGlzYWJsZWQgPyAnIHVwbG9hZC1kaXNhYmxlJyA6ICcnKVwiXG5cdFx0XHRcdChjbGljayk9XCJjaG9vc2UoJGV2ZW50LCBjaG9vc2VDYWxsYmFjaylcIj5cblx0XHRcdFx0PHNwYW5cblx0XHRcdFx0XHQ+PHNwYW5cblx0XHRcdFx0XHRcdHN0eWxlPVwiZm9udC1zaXplOiAxMnB4OyBtYXJnaW4tcmlnaHQ6IDIuNXB4XCJcblx0XHRcdFx0XHRcdFtjbGFzc109XCIncGknICsgKGxvYWRpbmcgPyAnIHBpLXNwaW4gcGktc3Bpbm5lcicgOiAnIHBpLXVwbG9hZCcpXCI+PC9zcGFuXG5cdFx0XHRcdFx0Pnt7IChsb2FkaW5nID8gJ21vZGFsLnVwbG9hZGluZycgOiAnbW9kYWwuc2VsZWN0RmlsZScpIHwgdHJhbnNsYXRlIH19PC9zcGFuXG5cdFx0XHRcdD5cblx0XHRcdDwvZGl2PlxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PG5nLXRlbXBsYXRlICNjb250ZW50PlxuXHRcdFx0QGlmIChpbWFnZUxpc3QubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRAaWYgKCFwcm9wcy5pbWFnZU1vZGUpIHtcblx0XHRcdFx0XHRAZm9yIChpbWFnZSBvZiBpbWFnZUxpc3Q7IHRyYWNrIGltYWdlOyBsZXQgaW5kZXggPSAkaW5kZXgpIHtcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgZmlsZS1pdGVtXCI+XG5cdFx0XHRcdFx0XHRcdDxwLWltYWdlXG5cdFx0XHRcdFx0XHRcdFx0W3NyY109XCInaHR0cHM6Ly9ocmltYWdlLm15Zm9vZGllcGV0LmNvbS8vJyArIGltYWdlXCJcblx0XHRcdFx0XHRcdFx0XHRbcHJldmlld109XCJ0cnVlXCJcblx0XHRcdFx0XHRcdFx0XHQob25TaG93KT1cImFqdXN0ZWRJbWFnZSgkZXZlbnQpXCJcblx0XHRcdFx0XHRcdFx0XHRhbHQ9XCJJbWFnZVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAjaW5kaWNhdG9yPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyBpbWFnZSB9fTwvc3Bhbj5cblx0XHRcdFx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAjaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGltYWdlIH19PC9zcGFuPlxuXHRcdFx0XHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdFx0XHRcdDwvcC1pbWFnZT5cblx0XHRcdFx0XHRcdFx0QGlmICghZmllbGQoKT8uZmllbGRDb250cm9sPy5kaXNhYmxlZCkge1xuXHRcdFx0XHRcdFx0XHRcdDxwLWJ1dHRvblxuXHRcdFx0XHRcdFx0XHRcdFx0aWNvbj1cInBpIHBpLXRpbWVzXCJcblx0XHRcdFx0XHRcdFx0XHRcdHNldmVyaXR5PVwiZGFuZ2VyXCJcblx0XHRcdFx0XHRcdFx0XHRcdHNpemU9XCJzbWFsbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHQob25DbGljayk9XCJkZWxldGVIYW5kbGVyKCRldmVudCwgaW1hZ2UsIGluZGV4KVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRbdGV4dF09XCJ0cnVlXCIgLz5cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMiBtdC0xIGZsZXgtd3JhcFwiPlxuXHRcdFx0XHRcdFx0QGZvciAoaW1hZ2Ugb2YgaW1hZ2VMaXN0OyB0cmFjayBpbWFnZTsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG5cdFx0XHRcdFx0XHRcdDxkaXZcblx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cImJvcmRlclwiXG5cdFx0XHRcdFx0XHRcdFx0W3N0eWxlXT1cInsgaGVpZ2h0OiBpbWFnZUhlaWdodCArIDEwICsgJ3B4JyB9XCI+XG5cdFx0XHRcdFx0XHRcdFx0PHAtaW1hZ2Vcblx0XHRcdFx0XHRcdFx0XHRcdFtzcmNdPVwiJ2h0dHBzOi8vaHJpbWFnZS5teWZvb2RpZXBldC5jb20vLycgKyBpbWFnZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRbcHJldmlld109XCJ0cnVlXCJcblx0XHRcdFx0XHRcdFx0XHRcdChvblNob3cpPVwiYWp1c3RlZEltYWdlKCRldmVudClcIlxuXHRcdFx0XHRcdFx0XHRcdFx0YWx0PVwiSW1hZ2VcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAjaW5kaWNhdG9yPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRAaWYgKCFmaWVsZCgpPy5maWVsZENvbnRyb2w/LmRpc2FibGVkKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBbc3R5bGVdPVwieyBwb3NpdGlvbjogJ3JlbGF0aXZlJywgd2lkdGg6IGltYWdlV2lkdGggKyAxMCArICdweCcsIGhlaWdodDogaW1hZ2VIZWlnaHQgKyAxMCArICdweCcgfVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyByaWdodDogMDsgei1pbmRleDogOTk5OTsgYmFja2dyb3VuZDogcmVkOyBwYWRkaW5nOiAxcHg7XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cImRlbGV0ZUhhbmRsZXIoJGV2ZW50LCBpbWFnZSwgaW5kZXgpXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktdGltZXMgdGV4dC1bMTJweF1cIj48L2k+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAjaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJwLTJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW1nXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbc3JjXT1cIidodHRwczovL2hyaW1hZ2UubXlmb29kaWVwZXQuY29tLy8nICsgaW1hZ2VcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0YWx0PVwiaW1hZ2VcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3N0eWxlXT1cInsgd2lkdGg6IGltYWdlV2lkdGggKyAncHgnLCBoZWlnaHQ6IGltYWdlSGVpZ2h0ICsgJ3B4Jywgb2JqZWN0Rml0OiAnY292ZXInIH1cIiAvPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdFx0XHRcdFx0PC9wLWltYWdlPlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PG5nLXRlbXBsYXRlICNmaWxlPiA8L25nLXRlbXBsYXRlPlxuXHQ8L3AtZmlsZVVwbG9hZD5gLFxuXHRzdHlsZVVybDogJy4uLy4uL3N0eWxlcy9zdHlsZXMuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlQ29tcG9uZW50IHtcblx0QFZpZXdDaGlsZCgnaW1hZ2VDb21wJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIGltYWdlQ29tcFJlZiE6IEVsZW1lbnRSZWY7XG5cdGZpZWxkID0gaW5wdXQ8Rm9ybUZpZWxkPigpO1xuXHRwcm9wczogSW1hZ2VQcm9wcyA9IHt9O1xuXHRpbWFnZUxpc3Q6IHN0cmluZ1tdID0gW107XG5cdGRlbGV0ZUhvb2tzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xuXHRsb2FkaW5nID0gZmFsc2U7XG5cdGNvdW50ZXIgPSAwO1xuXHRpbWFnZVdpZHRoID0gMDtcblx0aW1hZ2VIZWlnaHQgPSAwO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcblx0XHRwcml2YXRlIGFjdGlvbjogQWN0aW9uU2VydmljZSxcblx0XHRwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG5cdFx0cHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsXG5cdCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5maWVsZCgpKSB7XG5cdFx0XHRcdHRoaXMucHJvcHMgPSB0aGlzLmZpZWxkKCkhLmltYWdlUHJvcHMhO1xuXHRcdFx0XHR0aGlzLmluaXRJbWFnZVNpemUoKTtcblx0XHRcdFx0dGhpcy5oYW5kbGVEaXNhYmxlZCgpO1xuXHRcdFx0XHR0aGlzLmhhbmRsZUhvb2tDaGFuZ2UoKTtcblx0XHRcdFx0dGhpcy5hZnRlclN1Ym1pdCgpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBsYWJlbEFjdGlvbiA9IHRoaXMuYWN0aW9uLmdldEZpZWxkTGFiZWxBY3Rpb24oKTtcblx0XHRcdGlmICghbGFiZWxBY3Rpb24gfHwgbGFiZWxBY3Rpb24/LmtleSAhPSB0aGlzLmZpZWxkKCk/LnV1aWQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ21vdXNlZW50ZXInKSB7XG5cdFx0XHRcdHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5pbWFnZUNvbXBSZWYubmF0aXZlRWxlbWVudCwgJ25nLWhvdmVyZWQnKTtcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VsZWF2ZScpIHtcblx0XHRcdFx0dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmltYWdlQ29tcFJlZi5uYXRpdmVFbGVtZW50LCAnbmctaG92ZXJlZCcpO1xuXHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdjbGljaycpIHtcblx0XHRcdFx0dGhpcy5pbWFnZUNvbXBSZWYubmF0aXZlRWxlbWVudC5jbGljaygpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0Y2hvb3NlKGV2ZW50OiBhbnksIGNhbGxiYWNrOiBhbnkpIHtcblx0XHRpZiAodGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LmRpc2FibGVkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNhbGxiYWNrKCk7XG5cdH1cblxuXHRpbml0SW1hZ2VTaXplKCkge1xuXHRcdGlmICh0aGlzLnByb3BzLnNpemUgIT09ICdzbWFsbCcpIHtcblx0XHRcdHRoaXMuaW1hZ2VXaWR0aCA9IDc1O1xuXHRcdFx0dGhpcy5pbWFnZUhlaWdodCA9IDEwMDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5pbWFnZVdpZHRoID0gMzU7XG5cdFx0XHR0aGlzLmltYWdlSGVpZ2h0ID0gMzU7XG5cdFx0fVxuXHR9XG5cblx0dXBsb2FkSW1hZ2UoZmlsZTogRmlsZSk6IE9ic2VydmFibGU8YW55PiB7XG5cdFx0Y29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcblx0XHRmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcblx0XHRyZXR1cm4gdGhpcy5odHRwXG5cdFx0XHQucmVxdWVzdChcblx0XHRcdFx0bmV3IEh0dHBSZXF1ZXN0KCdQT1NUJywgJ2ltYWdlVXBsb2FkJywgZm9ybURhdGEsIHtcblx0XHRcdFx0XHRyZXBvcnRQcm9ncmVzczogdHJ1ZSxcblx0XHRcdFx0XHR3aXRoQ3JlZGVudGlhbHM6IGZhbHNlLFxuXHRcdFx0XHR9KSxcblx0XHRcdClcblx0XHRcdC5waXBlKGZpbHRlcigocmVzcG9uc2U6IEh0dHBFdmVudDxhbnk+KSA9PiByZXNwb25zZS50eXBlID09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpKTtcblx0fVxuXG5cdGRlbEltYWdlKGltYWdlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdCgnaW1hZ2VEZWxldGUnLCB7IGZpZDogaW1hZ2UgfSk7XG5cdH1cblxuXHR1cGxvYWRIYW5kbGVyKGZpZWxkOiBhbnksIGV2ZW50OiBhbnksIGZ1OiBhbnkpIHtcblx0XHR0aGlzLmluaXRMb2FkaW5nKGV2ZW50LmZpbGVzLmxlbmd0aCk7XG5cdFx0ZXZlbnQuZmlsZXMuZm9yRWFjaChhc3luYyAodjogYW55KSA9PiB7XG5cdFx0XHRpZiAodGhpcy5wcm9wcy53YXRlcm1hcmspIHtcblx0XHRcdFx0bGV0IGJsb2IgPSBhd2FpdCB0aGlzLmFkZFdhdGVybWFyayh2KTtcblx0XHRcdFx0Y29uc3QgbmV3RmlsZSA9IG5ldyBGaWxlKFtibG9iXSwgdi5uYW1lLCB7IHR5cGU6IHYudHlwZSB9KTtcblx0XHRcdFx0dGhpcy51cGxvYWRJbWFnZShuZXdGaWxlKS5zdWJzY3JpYmUoe1xuXHRcdFx0XHRcdG5leHQ6IChyZXNwb25zZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy51cGRhdGVMb2FkaW5nKGZ1KTtcblx0XHRcdFx0XHRcdHRoaXMuaW1hZ2VMaXN0Py5wdXNoKHJlc3BvbnNlLmJvZHkuZmlkKTtcblx0XHRcdFx0XHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5zZXRWYWx1ZSh0aGlzLmltYWdlTGlzdCk7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRlcnJvcjogKGVycm9yKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLmluaXRMb2FkaW5nKDApO1xuXHRcdFx0XHRcdFx0Y29uc29sZS5lcnJvcihlcnJvcik7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0fSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLnVwbG9hZEltYWdlKHYpLnN1YnNjcmliZSh7XG5cdFx0XHRcdFx0bmV4dDogKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZUxvYWRpbmcoZnUpO1xuXHRcdFx0XHRcdFx0dGhpcy5pbWFnZUxpc3Q/LnB1c2gocmVzcG9uc2UuYm9keS5maWQpO1xuXHRcdFx0XHRcdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnNldFZhbHVlKHRoaXMuaW1hZ2VMaXN0KTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGVycm9yOiAoZXJyb3IpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMuaW5pdExvYWRpbmcoMCk7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKGVycm9yKTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdGFkZFdhdGVybWFyayhpbWFnZUZpbGU6IEZpbGUpOiBQcm9taXNlPEJsb2I+IHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0Y29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcblxuXHRcdFx0cmVhZGVyLm9ubG9hZCA9IChldmVudCkgPT4ge1xuXHRcdFx0XHRjb25zdCBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTtcblx0XHRcdFx0aW1nLm9ubG9hZCA9ICgpID0+IHtcblx0XHRcdFx0XHRjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcblx0XHRcdFx0XHRjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKSE7XG5cblx0XHRcdFx0XHQvLyDorr7nva7nlLvluIPlpKflsI/kuLrlm77niYflpKflsI9cblx0XHRcdFx0XHRjYW52YXMud2lkdGggPSBOdW1iZXIoaW1nLndpZHRoKTtcblx0XHRcdFx0XHRjYW52YXMuaGVpZ2h0ID0gTnVtYmVyKGltZy5oZWlnaHQpO1xuXG5cdFx0XHRcdFx0Ly8g57uY5Yi25Y6f5aeL5Zu+54mHXG5cdFx0XHRcdFx0Y3R4LmRyYXdJbWFnZShpbWcsIDAsIDApO1xuXG5cdFx0XHRcdFx0Ly8g5re75Yqg5rC05Y2wXG5cdFx0XHRcdFx0Y3R4LmZvbnQgPSBgaXRhbGljIGJvbGQgMzBweCBDb3VyaWVyYDtcblx0XHRcdFx0XHRjdHguZmlsbFN0eWxlID0gJ3JlZCc7XG5cdFx0XHRcdFx0Y3R4LnRleHRBbGlnbiA9ICdjZW50ZXInO1xuXHRcdFx0XHRcdGN0eC50ZXh0QmFzZWxpbmUgPSAnbWlkZGxlJztcblx0XHRcdFx0XHRjb25zdCBjdXJyZW50VGltZSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKCksICd5eXl5LU1NLWRkIEhIOm1tOnNzJykgfHwgJyc7XG5cdFx0XHRcdFx0Y3R4LmZpbGxUZXh0KGN1cnJlbnRUaW1lLCBjYW52YXMud2lkdGggLyAyLCBjYW52YXMuaGVpZ2h0IC0gNTApO1xuXG5cdFx0XHRcdFx0Ly8g6L2s5o2i5Li6QmxvYlxuXHRcdFx0XHRcdGNhbnZhcy50b0Jsb2IoXG5cdFx0XHRcdFx0XHQoYmxvYikgPT4ge1xuXHRcdFx0XHRcdFx0XHRpZiAoYmxvYikge1xuXHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoYmxvYik7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVqZWN0KG5ldyBFcnJvcignQ2FudmFzIHRvIEJsb2IgY29udmVyc2lvbiBmYWlsZWQnKSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHQnaW1hZ2UvanBlZycsXG5cdFx0XHRcdFx0XHQwLjgsXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fTtcblxuXHRcdFx0XHRpbWcuc3JjID0gZXZlbnQudGFyZ2V0Py5yZXN1bHQgYXMgc3RyaW5nO1xuXHRcdFx0fTtcblxuXHRcdFx0cmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHJlamVjdChlcnJvcik7XG5cdFx0XHRyZWFkZXIucmVhZEFzRGF0YVVSTChpbWFnZUZpbGUpO1xuXHRcdH0pO1xuXHR9XG5cblx0ZGVsZXRlSGFuZGxlcihldmVudDogYW55LCBpbWFnZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSB7XG5cdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0dGhpcy5kZWxldGVIb29rcy5wdXNoKHRoaXMuZGVsSW1hZ2UoaW1hZ2UpKTtcblx0XHR0aGlzLmltYWdlTGlzdCA9IHRoaXMuaW1hZ2VMaXN0Py5maWx0ZXIoKHZhbHVlLCBpKSA9PiBpbmRleCAhPSBpKTtcblx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc2V0VmFsdWUodGhpcy5pbWFnZUxpc3QpO1xuXHR9XG5cblx0YWZ0ZXJTdWJtaXQoKSB7XG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnN1Ym1pdENoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRpZiAoQm9vbGVhbih2YWx1ZSkpIHtcblx0XHRcdFx0dGhpcy5kZWxldGVIb29rcy5mb3JFYWNoKChob29rKSA9PiBob29rLnN1YnNjcmliZSgpKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdGhhbmRsZUhvb2tDaGFuZ2UoKSB7XG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/Lmhvb2tDaGFuZ2Uuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0aWYgKHZhbHVlID09IG51bGwpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5wcm9wcy5vbkhvb2tDaGFuZ2U/Lih0aGlzLmZpZWxkKCkhLCB7IHZhbHVlIH0pO1xuXHRcdFx0dGhpcy5pbWFnZUxpc3QgPSBbLi4udmFsdWVdO1xuXHRcdH0pO1xuXHR9XG5cblx0aGFuZGxlRGlzYWJsZWQoKSB7XG5cdFx0aWYgKHRoaXMucHJvcHM/LmRpc2FibGVkKSB7XG5cdFx0XHR0aGlzLmZpZWxkKCkhLmZpZWxkQ29udHJvbCEuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cdFx0fVxuXHR9XG5cblx0YWp1c3RlZEltYWdlKGV2ZW50OiBhbnkpIHtcblx0XHRpZiAodGhpcy5wcm9wcz8uYWRqdXN0YWJsZSkge1xuXHRcdFx0Ly8g6Kej5Yaz5Zu+54mH5p+l55yL5pe255qE5pON5L2c5oyJ6ZKu77yI5peL6L2s44CB5pS+5aSn44CB57yp5bCP44CB5YWz6Zet77yJ5LiN5Zyo5bGP5bmV5Y+z5LiK6KeS5pi+56S655qE6Zeu6aKYXG5cdFx0XHRsZXQgY2hpbGREaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwLWltYWdlLXRvb2xiYXInKVswXTtcblx0XHRcdGxldCBwYXJlbnREaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblx0XHRcdHBhcmVudERpdi5zdHlsZS53aWR0aCA9ICcxMDB2dyc7XG5cdFx0XHRwYXJlbnREaXYuc3R5bGUuaGVpZ2h0ID0gJzEwMHZoJztcblx0XHRcdHBhcmVudERpdi5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG5cdFx0XHRjaGlsZERpdj8ucGFyZW50Tm9kZT8uaW5zZXJ0QmVmb3JlKHBhcmVudERpdiwgY2hpbGREaXYpO1xuXHRcdFx0cGFyZW50RGl2LmFwcGVuZENoaWxkKGNoaWxkRGl2KTtcblx0XHR9XG5cdH1cblxuXHRpbml0TG9hZGluZyhjb3VudGVyOiBudW1iZXIpIHtcblx0XHR0aGlzLmNvdW50ZXIgPSBjb3VudGVyO1xuXHRcdGlmIChjb3VudGVyID09IDApIHtcblx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLmxvYWRpbmcgPSB0cnVlO1xuXHR9XG5cblx0dXBkYXRlTG9hZGluZyhmdTogYW55KSB7XG5cdFx0dGhpcy5jb3VudGVyLS07XG5cdFx0aWYgKHRoaXMuY291bnRlciA9PT0gMCkge1xuXHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XG5cdFx0XHRmdS5jbGVhcigpO1xuXHRcdH1cblx0fVxufVxuIl19
|
|
425
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZm9ybS9mb3JtLXR5cGUvaW1hZ2UudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEMsT0FBTyxFQUFzQyxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE9BQU8sRUFBRSxNQUFNLEVBQXdCLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUF5THBELE1BQU0sT0FBTyxjQUFjO0lBVzFCLFlBQ1MsSUFBZ0IsRUFDaEIsTUFBcUIsRUFDckIsUUFBbUIsRUFDbkIsUUFBa0I7UUFIbEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWIzQixVQUFLLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDM0IsVUFBSyxHQUFlLEVBQUUsQ0FBQztRQUN2QixjQUFTLEdBQWEsRUFBRSxDQUFDO1FBQ3pCLGdCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUNwQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFlBQU8sR0FBRyxDQUFD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Q0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFPO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0YsQ0FBQzsrR0F0TlcsY0FBYzttR0FBZCxjQUFjLGdTQUNNLFVBQVUsNkJBN0doQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQXlHTSx3ME1BMUdOLFVBQVUsZzVCQUFFLFlBQVksa2JBQUUsS0FBSyxxV0FBRSxtQkFBbUIsMEJBQUUsYUFBYTs7NEZBNkdqRSxjQUFjO2tCQXhKMUIsU0FBUzsrQkFDQyxZQUFZLGNBQ1YsSUFBSSxXQXlDUCxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyxZQUNwRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQXlHTTswSkFJNkMsWUFBWTtzQkFBeEUsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBlZmZlY3QsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWQgfSBmcm9tICdwcmltZW5nL2ZpbGV1cGxvYWQnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IEltYWdlIH0gZnJvbSAncHJpbWVuZy9pbWFnZSc7XHJcbmltcG9ydCB7IEZvcm1GaWVsZCwgRmllbGRQcm9wcywgQXR0cmlidXRlRXZlbnQgfSBmcm9tICcuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnQsIEh0dHBIZWFkZXJzLCBIdHRwUmVxdWVzdCwgSHR0cEV2ZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBmaWx0ZXIsIGZvcmtKb2luLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VQcm9wcyBleHRlbmRzIEZpZWxkUHJvcHMge1xyXG5cdHVybD86IHN0cmluZztcclxuXHRtZXRob2Q/OiAncG9zdCcgfCAncHV0JztcclxuXHR3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xyXG5cdG1heEZpbGVTaXplPzogbnVtYmVyO1xyXG5cdHByZXZpZXdXaWR0aD86IG51bWJlcjtcclxuXHRtb2RlPzogJ2Jhc2ljJyB8ICdhZHZhbmNlZCc7XHJcblx0aGVhZGVycz86IGFueTtcclxuXHRjdXN0b21VcGxvYWQ/OiBib29sZWFuO1xyXG5cdGZpbGVMaW1pdD86IG51bWJlcjtcclxuXHR1cGxvYWRTdHlsZUNsYXNzPzogc3RyaW5nO1xyXG5cdGNhbmNlbFN0eWxlQ2xhc3M/OiBzdHJpbmc7XHJcblx0cmVtb3ZlU3R5bGVDbGFzcz86IHN0cmluZztcclxuXHRjaG9vc2VTdHlsZUNsYXNzPzogc3RyaW5nO1xyXG5cdGFkanVzdGFibGU/OiBib29sZWFuO1xyXG5cdGltYWdlTW9kZT86IGJvb2xlYW47XHJcblx0bXVsdGlwbGU/OiBib29sZWFuO1xyXG5cdHdhdGVybWFyaz86IGJvb2xlYW47XHJcblx0c2l6ZT86ICdzbWFsbCcgfCAnbGFyZ2UnIHwgdW5kZWZpbmVkO1xyXG5cclxuXHRvbkJlZm9yZVVwbG9hZD86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uU2VuZD86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uVXBsb2FkPzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25FcnJvcj86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uQ2xlYXI/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvblJlbW92ZT86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uU2VsZWN0PzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25Qcm9ncmVzcz86IEF0dHJpYnV0ZUV2ZW50O1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2Zvcm0taW1hZ2UnLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c3R5bGVzOiBgXHJcblx0XHQuZmlsZS1pdGVtIHtcclxuXHRcdFx0Ym9yZGVyLXRvcDogc29saWQgMXB4ICNmZmY7XHJcblx0XHR9XHJcblx0XHQudXBsb2FkLWJ0biB7XHJcblx0XHRcdGJvcmRlcjogc29saWQgMXB4IHRyYW5zcGFyZW50O1xyXG5cdFx0fVxyXG5cdFx0LnVwbG9hZC1idG4udXBsb2FkLWRpc2FibGU6aG92ZXIge1xyXG5cdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XHJcblx0XHR9XHJcblx0XHQudXBsb2FkLWJ0bjpub3QoLnVwbG9hZC1kaXNhYmxlKTpob3ZlciB7XHJcblx0XHRcdGJvcmRlcjogc29saWQgMXB4IHZhcigtLXAtcHJpbWFyeS1jb2xvcik7XHJcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLXAtcHJpbWFyeS01MCk7XHJcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdH1cclxuXHRcdC51cGxvYWQtYnRuOm5vdCgudXBsb2FkLWRpc2FibGUpLm5nLWhvdmVyZWQge1xyXG5cdFx0XHRib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1wLXByaW1hcnktY29sb3IpO1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1wLXByaW1hcnktNTApO1xyXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHR9XHJcblx0XHQuZmlsZS1uYW1lIHtcclxuXHRcdFx0Zm9udC1zaXplOiAxMnB4O1xyXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHRcdGNvbG9yOiB2YXIoLS1wLXByaW1hcnktY29sb3IpICFpbXBvcnRhbnQ7XHJcblx0XHR9XHJcblx0XHQ6aG9zdCA6Om5nLWRlZXAge1xyXG5cdFx0XHQucC1pbWFnZS1wcmV2aWV3LW1hc2sge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiBpbmhlcml0O1xyXG5cdFx0XHRcdG9wYWNpdHk6IDE7XHJcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBsZWZ0O1xyXG5cdFx0XHRcdGNvbG9yOiAjMzM0MTU1O1xyXG5cdFx0XHR9XHJcblx0XHRcdHAtaW1hZ2Uge1xyXG5cdFx0XHRcdC5wLWltYWdlIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0XHRcdGNvbG9yOiB2YXIoLS1wLXByaW1hcnktY29sb3IpICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0YCxcclxuXHRpbXBvcnRzOiBbRmlsZVVwbG9hZCwgQnV0dG9uTW9kdWxlLCBJbWFnZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVHJhbnNsYXRlUGlwZV0sXHJcblx0dGVtcGxhdGU6IGA8cC1maWxlVXBsb2FkXHJcblx0XHQjZnVcclxuXHRcdGF1dG9cclxuXHRcdFtuYW1lXT1cInByb3BzLm5hbWVcIlxyXG5cdFx0W3VybF09XCJwcm9wcy51cmxcIlxyXG5cdFx0W21ldGhvZF09XCJwcm9wcy5tZXRob2QgPz8gJ3Bvc3QnXCJcclxuXHRcdGFjY2VwdD1cImltYWdlLypcIlxyXG5cdFx0W3dpdGhDcmVkZW50aWFsc109XCJwcm9wcy53aXRoQ3JlZGVudGlhbHNcIlxyXG5cdFx0W21heEZpbGVTaXplXT1cInByb3BzLm1heEZpbGVTaXplXCJcclxuXHRcdFtzdHlsZUNsYXNzXT1cInByb3BzLnN0eWxlQ2xhc3NcIlxyXG5cdFx0W3ByZXZpZXdXaWR0aF09XCJwcm9wcy5wcmV2aWV3V2lkdGggPz8gNTBcIlxyXG5cdFx0W21vZGVdPVwicHJvcHMubW9kZSA/PyAnYWR2YW5jZWQnXCJcclxuXHRcdFtoZWFkZXJzXT1cInByb3BzLmhlYWRlcnNcIlxyXG5cdFx0W2ZpbGVMaW1pdF09XCJwcm9wcy5maWxlTGltaXRcIlxyXG5cdFx0W2N1c3RvbVVwbG9hZF09XCJwcm9wcy5jdXN0b21VcGxvYWQgPz8gdHJ1ZVwiXHJcblx0XHRbbXVsdGlwbGVdPVwicHJvcHMubXVsdGlwbGUgPz8gZmFsc2VcIlxyXG5cdFx0KG9uQmVmb3JlVXBsb2FkKT1cInByb3BzLm9uQmVmb3JlVXBsb2FkPy4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uU2VuZCk9XCJwcm9wcy5vblNlbmQ/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQob25VcGxvYWQpPVwicHJvcHMub25VcGxvYWQ/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQob25FcnJvcik9XCJwcm9wcy5vbkVycm9yPy4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uQ2xlYXIpPVwicHJvcHMub25DbGVhcj8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvblJlbW92ZSk9XCJwcm9wcy5vblJlbW92ZT8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvblNlbGVjdCk9XCJwcm9wcy5vblNlbGVjdD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvblByb2dyZXNzKT1cInByb3BzLm9uUHJvZ3Jlc3M/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQodXBsb2FkSGFuZGxlcik9XCJ1cGxvYWRIYW5kbGVyKGZpZWxkKCkhLCAkZXZlbnQsIGZ1KVwiPlxyXG5cdFx0PG5nLXRlbXBsYXRlXHJcblx0XHRcdCNoZWFkZXJcclxuXHRcdFx0bGV0LWNob29zZUNhbGxiYWNrPVwiY2hvb3NlQ2FsbGJhY2tcIj5cclxuXHRcdFx0PGRpdlxyXG5cdFx0XHRcdCNpbWFnZUNvbXBcclxuXHRcdFx0XHRbY2xhc3NdPVwiJ2ZsZXgganVzdGlmeS1jZW50ZXIgdy1mdWxsIHVwbG9hZC1idG4nICsgKGZpZWxkKCk/LmZpZWxkQ29udHJvbD8uZGlzYWJsZWQgPyAnIHVwbG9hZC1kaXNhYmxlJyA6ICcnKVwiXHJcblx0XHRcdFx0KGNsaWNrKT1cImNob29zZSgkZXZlbnQsIGNob29zZUNhbGxiYWNrKVwiPlxyXG5cdFx0XHRcdDxzcGFuXHJcblx0XHRcdFx0XHQ+PHNwYW5cclxuXHRcdFx0XHRcdFx0c3R5bGU9XCJmb250LXNpemU6IDEycHg7IG1hcmdpbi1yaWdodDogMi41cHhcIlxyXG5cdFx0XHRcdFx0XHRbY2xhc3NdPVwiJ3BpJyArIChsb2FkaW5nID8gJyBwaS1zcGluIHBpLXNwaW5uZXInIDogJyBwaS11cGxvYWQnKVwiPjwvc3BhblxyXG5cdFx0XHRcdFx0Pnt7IChsb2FkaW5nID8gJ21vZGFsLnVwbG9hZGluZycgOiAnbW9kYWwuc2VsZWN0RmlsZScpIHwgdHJhbnNsYXRlIH19PC9zcGFuXHJcblx0XHRcdFx0PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHQ8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcblx0XHRcdEBpZiAoaW1hZ2VMaXN0Lmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRAaWYgKCFwcm9wcy5pbWFnZU1vZGUpIHtcclxuXHRcdFx0XHRcdEBmb3IgKGltYWdlIG9mIGltYWdlTGlzdDsgdHJhY2sgaW1hZ2U7IGxldCBpbmRleCA9ICRpbmRleCkge1xyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIGZpbGUtaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxwLWltYWdlXHJcblx0XHRcdFx0XHRcdFx0XHRbc3JjXT1cIidodHRwczovL2hyaW1hZ2UubXlmb29kaWVwZXQuY29tLy8nICsgaW1hZ2VcIlxyXG5cdFx0XHRcdFx0XHRcdFx0W3ByZXZpZXddPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRcdFx0XHQob25TaG93KT1cImFqdXN0ZWRJbWFnZSgkZXZlbnQpXCJcclxuXHRcdFx0XHRcdFx0XHRcdGFsdD1cIkltYWdlXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgI2luZGljYXRvcj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyBpbWFnZSB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgI2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGltYWdlIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdFx0XHQ8L3AtaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0QGlmICghZmllbGQoKT8uZmllbGRDb250cm9sPy5kaXNhYmxlZCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0PHAtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRcdGljb249XCJwaSBwaS10aW1lc1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdHNldmVyaXR5PVwiZGFuZ2VyXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0c2l6ZT1cInNtYWxsXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0KG9uQ2xpY2spPVwiZGVsZXRlSGFuZGxlcigkZXZlbnQsIGltYWdlLCBpbmRleClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbdGV4dF09XCJ0cnVlXCIgLz5cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0gQGVsc2Uge1xyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggZ2FwLTIgbXQtMSBmbGV4LXdyYXBcIj5cclxuXHRcdFx0XHRcdFx0QGZvciAoaW1hZ2Ugb2YgaW1hZ2VMaXN0OyB0cmFjayBpbWFnZTsgbGV0IGluZGV4ID0gJGluZGV4KSB7XHJcblx0XHRcdFx0XHRcdFx0PGRpdlxyXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJib3JkZXJcIlxyXG5cdFx0XHRcdFx0XHRcdFx0W3N0eWxlXT1cInsgaGVpZ2h0OiBpbWFnZUhlaWdodCArIDEwICsgJ3B4JyB9XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8cC1pbWFnZVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbc3JjXT1cIidodHRwczovL2hyaW1hZ2UubXlmb29kaWVwZXQuY29tLy8nICsgaW1hZ2VcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbcHJldmlld109XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0KG9uU2hvdyk9XCJhanVzdGVkSW1hZ2UoJGV2ZW50KVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdGFsdD1cIkltYWdlXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAjaW5kaWNhdG9yPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdEBpZiAoIWZpZWxkKCk/LmZpZWxkQ29udHJvbD8uZGlzYWJsZWQpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgW3N0eWxlXT1cInsgcG9zaXRpb246ICdyZWxhdGl2ZScsIHdpZHRoOiBpbWFnZVdpZHRoICsgMTAgKyAncHgnLCBoZWlnaHQ6IGltYWdlSGVpZ2h0ICsgMTAgKyAncHgnIH1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IHJpZ2h0OiAwOyB6LWluZGV4OiA5OTk5OyBiYWNrZ3JvdW5kOiByZWQ7IHBhZGRpbmc6IDFweDtcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJkZWxldGVIYW5kbGVyKCRldmVudCwgaW1hZ2UsIGluZGV4KVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktdGltZXMgdGV4dC1bMTJweF1cIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgI2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJwLTJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWdcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3NyY109XCInaHR0cHM6Ly9ocmltYWdlLm15Zm9vZGllcGV0LmNvbS8vJyArIGltYWdlXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0YWx0PVwiaW1hZ2VcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbc3R5bGVdPVwieyB3aWR0aDogaW1hZ2VXaWR0aCArICdweCcsIGhlaWdodDogaW1hZ2VIZWlnaHQgKyAncHgnLCBvYmplY3RGaXQ6ICdjb3ZlcicgfVwiIC8+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3AtaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdDxuZy10ZW1wbGF0ZSAjZmlsZT4gPC9uZy10ZW1wbGF0ZT5cclxuXHQ8L3AtZmlsZVVwbG9hZD5gLFxyXG5cdHN0eWxlVXJsOiAnLi4vLi4vc3R5bGVzL3N0eWxlcy5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEltYWdlQ29tcG9uZW50IHtcclxuXHRAVmlld0NoaWxkKCdpbWFnZUNvbXAnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgaW1hZ2VDb21wUmVmITogRWxlbWVudFJlZjtcclxuXHRmaWVsZCA9IGlucHV0PEZvcm1GaWVsZD4oKTtcclxuXHRwcm9wczogSW1hZ2VQcm9wcyA9IHt9O1xyXG5cdGltYWdlTGlzdDogc3RyaW5nW10gPSBbXTtcclxuXHRkZWxldGVIb29rczogT2JzZXJ2YWJsZTxhbnk+W10gPSBbXTtcclxuXHRsb2FkaW5nID0gZmFsc2U7XHJcblx0Y291bnRlciA9IDA7XHJcblx0aW1hZ2VXaWR0aCA9IDA7XHJcblx0aW1hZ2VIZWlnaHQgPSAwO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuXHRcdHByaXZhdGUgYWN0aW9uOiBBY3Rpb25TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG5cdFx0cHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsXHJcblx0KSB7XHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5maWVsZCgpKSB7XHJcblx0XHRcdFx0dGhpcy5wcm9wcyA9IHRoaXMuZmllbGQoKSEuaW1hZ2VQcm9wcyE7XHJcblx0XHRcdFx0dGhpcy5pbml0SW1hZ2VTaXplKCk7XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVEaXNhYmxlZCgpO1xyXG5cdFx0XHRcdHRoaXMuaGFuZGxlSG9va0NoYW5nZSgpO1xyXG5cdFx0XHRcdHRoaXMuYWZ0ZXJTdWJtaXQoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRjb25zdCBsYWJlbEFjdGlvbiA9IHRoaXMuYWN0aW9uLmdldEZpZWxkTGFiZWxBY3Rpb24oKTtcclxuXHRcdFx0aWYgKCFsYWJlbEFjdGlvbiB8fCBsYWJlbEFjdGlvbj8ua2V5ICE9IHRoaXMuZmllbGQoKT8udXVpZCkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VlbnRlcicpIHtcclxuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaW1hZ2VDb21wUmVmLm5hdGl2ZUVsZW1lbnQsICduZy1ob3ZlcmVkJyk7XHJcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VsZWF2ZScpIHtcclxuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaW1hZ2VDb21wUmVmLm5hdGl2ZUVsZW1lbnQsICduZy1ob3ZlcmVkJyk7XHJcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnY2xpY2snKSB7XHJcblx0XHRcdFx0dGhpcy5pbWFnZUNvbXBSZWYubmF0aXZlRWxlbWVudC5jbGljaygpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGNob29zZShldmVudDogYW55LCBjYWxsYmFjazogYW55KSB7XHJcblx0XHRpZiAodGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LmRpc2FibGVkKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdGNhbGxiYWNrKCk7XHJcblx0fVxyXG5cclxuXHRpbml0SW1hZ2VTaXplKCkge1xyXG5cdFx0aWYgKHRoaXMucHJvcHMuc2l6ZSAhPT0gJ3NtYWxsJykge1xyXG5cdFx0XHR0aGlzLmltYWdlV2lkdGggPSA3NTtcclxuXHRcdFx0dGhpcy5pbWFnZUhlaWdodCA9IDEwMDtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuaW1hZ2VXaWR0aCA9IDM1O1xyXG5cdFx0XHR0aGlzLmltYWdlSGVpZ2h0ID0gMzU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHR1cGxvYWRJbWFnZShmaWxlOiBGaWxlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcblx0XHRmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBcclxuXHRcdFx0LnJlcXVlc3QoXHJcblx0XHRcdFx0bmV3IEh0dHBSZXF1ZXN0KCdQT1NUJywgJ2ltYWdlVXBsb2FkJywgZm9ybURhdGEsIHtcclxuXHRcdFx0XHRcdHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG5cdFx0XHRcdFx0d2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcclxuXHRcdFx0XHR9KSxcclxuXHRcdFx0KVxyXG5cdFx0XHQucGlwZShmaWx0ZXIoKHJlc3BvbnNlOiBIdHRwRXZlbnQ8YW55PikgPT4gcmVzcG9uc2UudHlwZSA9PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKSk7XHJcblx0fVxyXG5cclxuXHRkZWxJbWFnZShpbWFnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdCgnaW1hZ2VEZWxldGUnLCB7IGZpZDogaW1hZ2UgfSk7XHJcblx0fVxyXG5cclxuXHR1cGxvYWRIYW5kbGVyKGZpZWxkOiBhbnksIGV2ZW50OiBhbnksIGZ1OiBhbnkpIHtcclxuXHRcdHRoaXMuaW5pdExvYWRpbmcoZXZlbnQuZmlsZXMubGVuZ3RoKTtcclxuXHRcdGV2ZW50LmZpbGVzLmZvckVhY2goYXN5bmMgKHY6IGFueSkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5wcm9wcy53YXRlcm1hcmspIHtcclxuXHRcdFx0XHRsZXQgYmxvYiA9IGF3YWl0IHRoaXMuYWRkV2F0ZXJtYXJrKHYpO1xyXG5cdFx0XHRcdGNvbnN0IG5ld0ZpbGUgPSBuZXcgRmlsZShbYmxvYl0sIHYubmFtZSwgeyB0eXBlOiB2LnR5cGUgfSk7XHJcblx0XHRcdFx0dGhpcy51cGxvYWRJbWFnZShuZXdGaWxlKS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRcdFx0bmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMudXBkYXRlTG9hZGluZyhmdSk7XHJcblx0XHRcdFx0XHRcdHRoaXMuaW1hZ2VMaXN0Py5wdXNoKHJlc3BvbnNlLmJvZHkuZmlkKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnNldFZhbHVlKHRoaXMuaW1hZ2VMaXN0KTtcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRlcnJvcjogKGVycm9yKSA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMuaW5pdExvYWRpbmcoMCk7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLnVwbG9hZEltYWdlKHYpLnN1YnNjcmliZSh7XHJcblx0XHRcdFx0XHRuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy51cGRhdGVMb2FkaW5nKGZ1KTtcclxuXHRcdFx0XHRcdFx0dGhpcy5pbWFnZUxpc3Q/LnB1c2gocmVzcG9uc2UuYm9keS5maWQpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc2V0VmFsdWUodGhpcy5pbWFnZUxpc3QpO1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGVycm9yOiAoZXJyb3IpID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy5pbml0TG9hZGluZygwKTtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5lcnJvcihlcnJvcik7XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGFkZFdhdGVybWFyayhpbWFnZUZpbGU6IEZpbGUpOiBQcm9taXNlPEJsb2I+IHtcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcblxyXG5cdFx0XHRyZWFkZXIub25sb2FkID0gKGV2ZW50KSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7XHJcblx0XHRcdFx0aW1nLm9ubG9hZCA9ICgpID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG5cdFx0XHRcdFx0Y29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJykhO1xyXG5cclxuXHRcdFx0XHRcdC8vIOiuvue9rueUu+W4g+Wkp+Wwj+S4uuWbvueJh+Wkp+Wwj1xyXG5cdFx0XHRcdFx0Y2FudmFzLndpZHRoID0gTnVtYmVyKGltZy53aWR0aCk7XHJcblx0XHRcdFx0XHRjYW52YXMuaGVpZ2h0ID0gTnVtYmVyKGltZy5oZWlnaHQpO1xyXG5cclxuXHRcdFx0XHRcdC8vIOe7mOWItuWOn+Wni+WbvueJh1xyXG5cdFx0XHRcdFx0Y3R4LmRyYXdJbWFnZShpbWcsIDAsIDApO1xyXG5cclxuXHRcdFx0XHRcdC8vIOa3u+WKoOawtOWNsFxyXG5cdFx0XHRcdFx0Y3R4LmZvbnQgPSBgaXRhbGljIGJvbGQgMzBweCBDb3VyaWVyYDtcclxuXHRcdFx0XHRcdGN0eC5maWxsU3R5bGUgPSAncmVkJztcclxuXHRcdFx0XHRcdGN0eC50ZXh0QWxpZ24gPSAnY2VudGVyJztcclxuXHRcdFx0XHRcdGN0eC50ZXh0QmFzZWxpbmUgPSAnbWlkZGxlJztcclxuXHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRUaW1lID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0obmV3IERhdGUoKSwgJ3l5eXktTU0tZGQgSEg6bW06c3MnKSB8fCAnJztcclxuXHRcdFx0XHRcdGN0eC5maWxsVGV4dChjdXJyZW50VGltZSwgY2FudmFzLndpZHRoIC8gMiwgY2FudmFzLmhlaWdodCAtIDUwKTtcclxuXHJcblx0XHRcdFx0XHQvLyDovazmjaLkuLpCbG9iXHJcblx0XHRcdFx0XHRjYW52YXMudG9CbG9iKFxyXG5cdFx0XHRcdFx0XHQoYmxvYikgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGlmIChibG9iKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGJsb2IpO1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZWplY3QobmV3IEVycm9yKCdDYW52YXMgdG8gQmxvYiBjb252ZXJzaW9uIGZhaWxlZCcpKTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdCdpbWFnZS9qcGVnJyxcclxuXHRcdFx0XHRcdFx0MC44LFxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHR9O1xyXG5cclxuXHRcdFx0XHRpbWcuc3JjID0gZXZlbnQudGFyZ2V0Py5yZXN1bHQgYXMgc3RyaW5nO1xyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0cmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHJlamVjdChlcnJvcik7XHJcblx0XHRcdHJlYWRlci5yZWFkQXNEYXRhVVJMKGltYWdlRmlsZSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGRlbGV0ZUhhbmRsZXIoZXZlbnQ6IGFueSwgaW1hZ2U6IHN0cmluZywgaW5kZXg6IG51bWJlcikge1xyXG5cdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblx0XHR0aGlzLmRlbGV0ZUhvb2tzLnB1c2godGhpcy5kZWxJbWFnZShpbWFnZSkpO1xyXG5cdFx0dGhpcy5pbWFnZUxpc3QgPSB0aGlzLmltYWdlTGlzdD8uZmlsdGVyKCh2YWx1ZSwgaSkgPT4gaW5kZXggIT0gaSk7XHJcblx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc2V0VmFsdWUodGhpcy5pbWFnZUxpc3QpO1xyXG5cdH1cclxuXHJcblx0YWZ0ZXJTdWJtaXQoKSB7XHJcblx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc3VibWl0Q2hhbmdlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuXHRcdFx0aWYgKEJvb2xlYW4odmFsdWUpKSB7XHJcblx0XHRcdFx0dGhpcy5kZWxldGVIb29rcy5mb3JFYWNoKChob29rKSA9PiBob29rLnN1YnNjcmliZSgpKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRoYW5kbGVIb29rQ2hhbmdlKCkge1xyXG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/Lmhvb2tDaGFuZ2Uuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRpZiAodmFsdWUgPT0gbnVsbCkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLnByb3BzLm9uSG9va0NoYW5nZT8uKHRoaXMuZmllbGQoKSEsIHsgdmFsdWUgfSk7XHJcblx0XHRcdHRoaXMuaW1hZ2VMaXN0ID0gWy4uLnZhbHVlXTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlRGlzYWJsZWQoKSB7XHJcblx0XHRpZiAodGhpcy5wcm9wcz8uZGlzYWJsZWQpIHtcclxuXHRcdFx0dGhpcy5maWVsZCgpIS5maWVsZENvbnRyb2whLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YWp1c3RlZEltYWdlKGV2ZW50OiBhbnkpIHtcclxuXHRcdGlmICh0aGlzLnByb3BzPy5hZGp1c3RhYmxlKSB7XHJcblx0XHRcdC8vIOino+WGs+WbvueJh+afpeeci+aXtueahOaTjeS9nOaMiemSru+8iOaXi+i9rOOAgeaUvuWkp+OAgee8qeWwj+OAgeWFs+mXre+8ieS4jeWcqOWxj+W5leWPs+S4iuinkuaYvuekuueahOmXrumimFxyXG5cdFx0XHRsZXQgY2hpbGREaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwLWltYWdlLXRvb2xiYXInKVswXTtcclxuXHRcdFx0bGV0IHBhcmVudERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG5cdFx0XHRwYXJlbnREaXYuc3R5bGUud2lkdGggPSAnMTAwdncnO1xyXG5cdFx0XHRwYXJlbnREaXYuc3R5bGUuaGVpZ2h0ID0gJzEwMHZoJztcclxuXHRcdFx0cGFyZW50RGl2LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcclxuXHRcdFx0Y2hpbGREaXY/LnBhcmVudE5vZGU/Lmluc2VydEJlZm9yZShwYXJlbnREaXYsIGNoaWxkRGl2KTtcclxuXHRcdFx0cGFyZW50RGl2LmFwcGVuZENoaWxkKGNoaWxkRGl2KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGluaXRMb2FkaW5nKGNvdW50ZXI6IG51bWJlcikge1xyXG5cdFx0dGhpcy5jb3VudGVyID0gY291bnRlcjtcclxuXHRcdGlmIChjb3VudGVyID09IDApIHtcclxuXHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMubG9hZGluZyA9IHRydWU7XHJcblx0fVxyXG5cclxuXHR1cGRhdGVMb2FkaW5nKGZ1OiBhbnkpIHtcclxuXHRcdHRoaXMuY291bnRlci0tO1xyXG5cdFx0aWYgKHRoaXMuY291bnRlciA9PT0gMCkge1xyXG5cdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0ZnUuY2xlYXIoKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './codemirror.type';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2Zvcm0vZm9ybS10eXBlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvZGVtaXJyb3IudHlwZSdcclxuIl19
|