@cleavelandprice/ngx-lib 3.11.0 → 3.11.2
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/active-directory/gui/components/user-chooser/user-chooser.component.d.ts +4 -6
- package/active-directory/gui/components/user-form-field/user-form-field.component.d.ts +2 -4
- package/active-directory/services/active-directory.service.d.ts +1 -4
- package/authentication/object/services/authentication.service.d.ts +2 -4
- package/authentication/token/gui/components/login/login.component.d.ts +0 -2
- package/authentication/token/gui/components/login-form/login-form.component.d.ts +4 -4
- package/authentication/token/gui/services/authentication.service.d.ts +2 -3
- package/authentication/token/services/authentication.service.d.ts +1 -1
- package/dialog/components/choice/choice.component.d.ts +1 -2
- package/dialog/components/confirmation/confirmation.component.d.ts +1 -2
- package/dialog/components/input/input.component.d.ts +1 -2
- package/dialog/components/message/message.component.d.ts +1 -2
- package/esm2022/active-directory/gui/components/user-chooser/user-chooser.component.mjs +30 -28
- package/esm2022/active-directory/gui/components/user-form-field/user-form-field.component.mjs +28 -26
- package/esm2022/active-directory/services/active-directory.service.mjs +29 -34
- package/esm2022/authentication/object/services/authentication.service.mjs +20 -18
- package/esm2022/authentication/token/gui/components/login/login.component.mjs +13 -12
- package/esm2022/authentication/token/gui/components/login-form/login-form.component.mjs +21 -20
- package/esm2022/authentication/token/gui/services/authentication.service.mjs +9 -7
- package/esm2022/authentication/token/services/authentication.service.mjs +12 -8
- package/esm2022/dialog/components/choice/choice.component.mjs +12 -14
- package/esm2022/dialog/components/confirmation/confirmation.component.mjs +12 -14
- package/esm2022/dialog/components/input/input.component.mjs +12 -14
- package/esm2022/dialog/components/message/message.component.mjs +12 -14
- package/esm2022/lib/services/app-path-config.service.mjs +9 -12
- package/esm2022/quill/components/editor/editor.component.mjs +2 -2
- package/esm2022/quill/components/raw/raw.component.mjs +6 -9
- package/esm2022/sharepoint/components/employee-photo/employee-photo.component.mjs +10 -10
- package/esm2022/sharepoint/pipes/employee-photo-url.pipe.mjs +8 -8
- package/esm2022/sharepoint/services/sharepoint.service.mjs +41 -40
- package/esm2022/upload/components/upload/upload.component.mjs +13 -11
- package/esm2022/upload/components/upload-dialog/upload-dialog.component.mjs +16 -14
- package/esm2022/upload/services/upload.service.mjs +10 -13
- package/esm2022/url-utilities/pipes/safe-resource-url.pipe.mjs +7 -7
- package/esm2022/url-utilities/pipes/safe-url.pipe.mjs +7 -7
- package/fesm2022/cleavelandprice-ngx-lib-active-directory-gui.mjs +44 -41
- package/fesm2022/cleavelandprice-ngx-lib-active-directory-gui.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-active-directory.mjs +28 -32
- package/fesm2022/cleavelandprice-ngx-lib-active-directory.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-authentication-object.mjs +19 -16
- package/fesm2022/cleavelandprice-ngx-lib-authentication-object.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-authentication-token-gui.mjs +33 -29
- package/fesm2022/cleavelandprice-ngx-lib-authentication-token-gui.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-authentication-token.mjs +11 -7
- package/fesm2022/cleavelandprice-ngx-lib-authentication-token.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-dialog.mjs +32 -36
- package/fesm2022/cleavelandprice-ngx-lib-dialog.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-quill.mjs +5 -8
- package/fesm2022/cleavelandprice-ngx-lib-quill.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs +50 -48
- package/fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-upload.mjs +30 -29
- package/fesm2022/cleavelandprice-ngx-lib-upload.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-url-utilities.mjs +10 -10
- package/fesm2022/cleavelandprice-ngx-lib-url-utilities.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib.mjs +8 -10
- package/fesm2022/cleavelandprice-ngx-lib.mjs.map +1 -1
- package/lib/services/app-path-config.service.d.ts +2 -4
- package/package.json +7 -7
- package/quill/components/editor/editor.component.d.ts +1 -1
- package/quill/components/raw/raw.component.d.ts +0 -1
- package/sharepoint/components/employee-photo/employee-photo.component.d.ts +1 -2
- package/sharepoint/pipes/employee-photo-url.pipe.d.ts +0 -2
- package/sharepoint/services/sharepoint.service.d.ts +3 -5
- package/upload/components/upload/upload.component.d.ts +1 -2
- package/upload/components/upload-dialog/upload-dialog.component.d.ts +1 -2
- package/upload/services/upload.service.d.ts +2 -4
- package/url-utilities/pipes/safe-resource-url.pipe.d.ts +1 -2
- package/url-utilities/pipes/safe-url.pipe.d.ts +1 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, EventEmitter, Inject, Input, Output, ViewChild
|
|
1
|
+
import { Component, EventEmitter, forwardRef, Inject, Input, Optional, Output, ViewChild } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
3
3
|
//import { FormGroup } from '@angular/forms';
|
|
4
4
|
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
@@ -293,4 +293,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
293
293
|
}], onSelectionChanged: [{
|
|
294
294
|
type: Output
|
|
295
295
|
}] } });
|
|
296
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsL3NyYy9jb21wb25lbnRzL2VkaXRvci9lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvcXVpbGwvc3JjL2NvbXBvbmVudHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQXVCLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsNkNBQTZDO0FBQzdDLE9BQU8sRUFBMkIsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEYsMkZBQTJGO0FBRTNGLE9BQU8sRUFBMkYsb0JBQW9CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFMUkseUJBQXlCO0FBRXpCLHdDQUF3QztBQUN4Qyw0QkFBNEI7QUFFNUIscUZBQXFGO0FBQ3JGLHNEQUFzRDtBQUN0RCxxREFBcUQ7QUFFckQsK0dBQStHO0FBQy9HLHNEQUFzRDtBQUV0RCxZQUFZO0FBRVosT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7QUFZcEQsTUFBTSxPQUFPLGVBQWU7SUE4QzFCLFlBQVk7SUFFWixZQUF5RCxJQUFnQixFQUN6QyxTQUF3QztJQUM1RCx5REFBeUQ7SUFDakQsTUFBaUI7UUFIb0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUN6Qyxj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O3NCQUFmLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBPcHRpb25hbCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbi8vaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuLy9pbXBvcnQgeyBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLCBVc2VyIH0gZnJvbSAnQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnknO1xyXG5cclxuaW1wb3J0IHsgQ29udGVudENoYW5nZSwgQmx1ciwgRm9jdXMsIEVkaXRvckNoYW5nZUNvbnRlbnQsIEVkaXRvckNoYW5nZVNlbGVjdGlvbiwgU2VsZWN0aW9uQ2hhbmdlLCBRdWlsbEVkaXRvckNvbXBvbmVudCB9IGZyb20gJ25neC1xdWlsbCc7XHJcblxyXG4vL2ltcG9ydCAncXVpbGwtbWVudGlvbic7XHJcblxyXG4vLyNyZWdpb24gTW92ZWQgdG8gY2xpZW50IHJlc3BvbnNpYmlsaXR5XHJcbi8vaW1wb3J0IFF1aWxsIGZyb20gJ3F1aWxsJztcclxuXHJcbi8vIFRoaXMgZG9lc24ndCB3b3JrIHdoZW4gZG9uZSBmcm9tIHRoZSBsaWJyYXJ5IC0gaXQgbXVzdCBiZSBkb25lIGZyb20gdGhlIGNsaWVudCBhcHBcclxuLy9pbXBvcnQgSW1hZ2VSZXNpemUgZnJvbSAncXVpbGwtaW1hZ2UtcmVzaXplLW1vZHVsZSc7XHJcbi8vUXVpbGwucmVnaXN0ZXIoJ21vZHVsZXMvaW1hZ2VSZXNpemUnLCBJbWFnZVJlc2l6ZSk7XHJcblxyXG4vLyBUcmVhdGluZyBJbWFnZURyb3AgdGhlIHNhbWUgd2F5IGFzIEltYWdlUmVzaXplLCBldmVuIHRob3VnaCBpdCBkb2Vzbid0IGhhdmUgdGhlIHNhbWUgcHJvYmxlbSBkZXNjcmliZWQgYWJvdmVcclxuLy9pbXBvcnQgeyBJbWFnZURyb3AgfSBmcm9tICdxdWlsbC1pbWFnZS1kcm9wLW1vZHVsZSc7XHJcblxyXG4vLyNlbmRyZWdpb25cclxuXHJcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVsL2NvbmZpZyc7XHJcbmltcG9ydCB7IERpYWxvZ0RhdGEgfSBmcm9tICcuLi8uLi9tb2RlbC9kaWFsb2ctZGF0YSc7XHJcbmltcG9ydCB7IFJhd0NvbXBvbmVudCB9IGZyb20gJy4uL3Jhdy9yYXcuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3BxdWlsbC1lZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VkaXRvci5jb21wb25lbnQuY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFZGl0b3JDb21wb25lbnQpLFxyXG4gICAgbXVsdGk6IHRydWVcclxuICB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQFZpZXdDaGlsZChRdWlsbEVkaXRvckNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIGVkaXRvcjogUXVpbGxFZGl0b3JDb21wb25lbnQgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8vI3JlZ2lvbiBDb250cm9sVmFsdWVBY2Nlc3NvciBzdHVmZlxyXG4gIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzUwNjE4MDUwL2hvdy10by1jcmVhdGUtY3VzdG9tLWlucHV0LWNvbXBvbmVudC13aXRoLW5nbW9kZWwtd29ya2luZy1pbi1hbmd1bGFyLTZcclxuICB2YWx1ZTogYW55OyAvLyBzdHJpbmdcclxuICBvbkNoYW5nZTogKF86IGFueSkgPT4gdm9pZCA9IChfOiBhbnkpID0+IHt9OyAvLyBJbnZva2VkIHdoZW4gdGhlIG1vZGVsIGhhcyBiZWVuIGNoYW5nZWRcclxuICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTsgLy8gSW52b2tlZCB3aGVuIHRoZSBtb2RlbCBoYXMgYmVlbiB0b3VjaGVkXHJcbiAgLy8jZW5kcmVnaW9uXHJcbiAgXHJcbiAgQElucHV0KCkgY29uZmlnOiBDb25maWcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAvL0BJbnB1dCgpIHVzZXJzOiBVc2VyW10gfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8vI3JlZ2lvbiBUaGVzZSBjYW4gYmUgcGFzc2VkIGluIGFzIEBJbnB1dCgpLCBvciB1c2UgdmFsdWVzIGZyb20gY29uZmlnXHJcbiAgQElucHV0KCkgZm9ybWF0ITogJ29iamVjdCcgfCAnaHRtbCcgfCAndGV4dCcgfCAnanNvbic7XHJcbiAgQElucHV0KCkgaGVpZ2h0ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHdpZHRoITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZ1bGxzY3JlZW5IZWlnaHQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZnVsbHNjcmVlbldpZHRoITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZ1bGxzY3JlZW5Nb2RlITogJ2V4cGFuZCcgfCAncG9wb3V0JztcclxuXHJcbiAgQElucHV0KCkgZW5hYmxlVG9vbHRpcHM6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgZnVsbHNjcmVlbjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBhcHBseVJlYWRvbmx5U3R5bGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc2hvd1Rvb2xiYXI6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc2hvd0JvcmRlcjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLy8jcmVnaW9uIE9wdGlvbmFsIFF1aWxsIG1vZHVsZXNcclxuICBASW5wdXQoKSBpbWFnZVJlc2l6ZU1vZHVsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBpbWFnZURyb3BNb2R1bGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgLy9ASW5wdXQoKSBtZW50aW9uTW9kdWxlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHN5bnRheE1vZHVsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAvLyNlbmRyZWdpb25cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgQE91dHB1dCgpIGZ1bGxzY3JlZW5DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAvLyNyZWdpb24gUGFzc3Rocm91Z2ggZXZlbnRzXHJcbiAgQE91dHB1dCgpIG9uQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Qmx1cj4oKTtcclxuICBAT3V0cHV0KCkgb25Db250ZW50Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29udGVudENoYW5nZT4oKTtcclxuICBAT3V0cHV0KCkgb25FZGl0b3JDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxFZGl0b3JDaGFuZ2VDb250ZW50IHwgRWRpdG9yQ2hhbmdlU2VsZWN0aW9uPigpO1xyXG4gIEBPdXRwdXQoKSBvbkVkaXRvckNyZWF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzPigpO1xyXG4gIEBPdXRwdXQoKSBvblNlbGVjdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGlvbkNoYW5nZT4oKTtcclxuICAvLyNlbmRyZWdpb25cclxuICBcclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBkYXRhOiBEaWFsb2dEYXRhLFxyXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RWRpdG9yQ29tcG9uZW50PixcclxuICAgICAgICAgICAgICAvL3ByaXZhdGUgYWN0aXZlRGlyZWN0b3J5U2VydmljZTogQWN0aXZlRGlyZWN0b3J5U2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nKSB7ICBcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0aWFsaXplKCk7XHJcbiAgICBcclxuICAgIC8qaWYgKCF0aGlzLnVzZXJzKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlRGlyZWN0b3J5U2VydmljZS5nZXRVc2VycygpLnN1YnNjcmliZSh1c2VycyA9PlxyXG4gICAgICAgIHRoaXMudXNlcnMgPSB1c2Vyc1xyXG4gICAgICApO1xyXG4gICAgfSovXHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb25maWcgPSB0aGlzLmNvbmZpZyA/PyB0aGlzLmRhdGE/LmNvbmZpZyA/PyBuZXcgQ29uZmlnKCk7XHJcblxyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUgPz8gdGhpcy5kYXRhPy52YWx1ZTtcclxuXHJcbiAgICAvLyBNb3ZlZCB0byBjbGllbnQgcmVzcG9uc2liaWxpdHlcclxuICAgIC8qaWYgKHRoaXMuaW1hZ2VEcm9wTW9kdWxlKSB7XHJcbiAgICAgIFF1aWxsLnJlZ2lzdGVyKCdtb2R1bGVzL2ltYWdlRHJvcCcsIEltYWdlRHJvcCk7XHJcbiAgICB9Ki9cclxuXHJcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy5wbGFjZWhvbGRlciA/PyB0aGlzLmRhdGE/LnBsYWNlaG9sZGVyO1xyXG4gICAgLy90aGlzLnVzZXJzID0gdGhpcy51c2VycyA/PyB0aGlzLmRhdGE/LnVzZXJzO1xyXG5cclxuICAgIHRoaXMuaW1hZ2VEcm9wTW9kdWxlID0gdGhpcy5pbWFnZURyb3BNb2R1bGUgPz8gdGhpcy5kYXRhPy5pbWFnZURyb3BNb2R1bGUgPz8gdGhpcy5jb25maWcuaW1hZ2VEcm9wTW9kdWxlO1xyXG4gICAgdGhpcy5pbWFnZVJlc2l6ZU1vZHVsZSA9IHRoaXMuaW1hZ2VSZXNpemVNb2R1bGUgPz8gdGhpcy5kYXRhPy5pbWFnZVJlc2l6ZU1vZHVsZSA/PyB0aGlzLmNvbmZpZy5pbWFnZVJlc2l6ZU1vZHVsZTtcclxuICAgIHRoaXMuc3ludGF4TW9kdWxlID0gdGhpcy5zeW50YXhNb2R1bGUgPz8gdGhpcy5kYXRhPy5zeW50YXhNb2R1bGUgPz8gdGhpcy5jb25maWcuc3ludGF4TW9kdWxlO1xyXG5cclxuICAgIHRoaXMuZm9ybWF0ID0gdGhpcy5mb3JtYXQgPz8gdGhpcy5kYXRhPy5mb3JtYXQgPz8gdGhpcy5jb25maWcuZm9ybWF0O1xyXG4gICAgdGhpcy5oZWlnaHQgPSB0aGlzLmhlaWdodCA/PyB0aGlzLmRhdGE/LmhlaWdodCA/PyB0aGlzLmNvbmZpZy5oZWlnaHQ7XHJcbiAgICB0aGlzLndpZHRoID0gdGhpcy53aWR0aCA/PyB0aGlzLmRhdGE/LndpZHRoID8/IHRoaXMuY29uZmlnLndpZHRoO1xyXG4gICAgdGhpcy5mdWxsc2NyZWVuSGVpZ2h0ID0gdGhpcy5mdWxsc2NyZWVuSGVpZ2h0ID8/IHRoaXMuZGF0YT8ubWF4SGVpZ2h0ID8/IHRoaXMuY29uZmlnLmZ1bGxzY3JlZW5IZWlnaHQ7XHJcbiAgICB0aGlzLmZ1bGxzY3JlZW5XaWR0aCA9IHRoaXMuZnVsbHNjcmVlbldpZHRoID8/IHRoaXMuZGF0YT8ubWF4V2lkdGggPz8gdGhpcy5jb25maWcuZnVsbHNjcmVlbldpZHRoO1xyXG4gICAgdGhpcy5mdWxsc2NyZWVuTW9kZSA9IHRoaXMuZnVsbHNjcmVlbk1vZGUgPz8gdGhpcy5kYXRhPy5mdWxsc2NyZWVuTW9kZSA/PyB0aGlzLmNvbmZpZy5mdWxsc2NyZWVuTW9kZTtcclxuXHJcbiAgICB0aGlzLmVuYWJsZVRvb2x0aXBzID0gdGhpcy5lbmFibGVUb29sdGlwcyAhPT0gdW5kZWZpbmVkID9cclxuICAgICAgdGhpcy5lbmFibGVUb29sdGlwcyA6XHJcbiAgICAgIHRoaXMuZGF0YT8uZW5hYmxlVG9vbHRpcHMgPz8gdGhpcy5jb25maWcuZW5hYmxlVG9vbHRpcHM7XHJcblxyXG4gICAgdGhpcy5mdWxsc2NyZWVuID0gdGhpcy5mdWxsc2NyZWVuICE9PSB1bmRlZmluZWQgP1xyXG4gICAgICB0aGlzLmZ1bGxzY3JlZW4gOlxyXG4gICAgICB0aGlzLmRhdGE/LmZ1bGxzY3JlZW4gPz8gdGhpcy5jb25maWcuZnVsbHNjcmVlbjtcclxuXHJcbiAgICB0aGlzLnJlYWRvbmx5ID0gdGhpcy5yZWFkb25seSAhPT0gdW5kZWZpbmVkID9cclxuICAgICAgdGhpcy5yZWFkb25seSA6XHJcbiAgICAgIHRoaXMuZGF0YT8ucmVhZG9ubHkgPz8gdGhpcy5jb25maWcucmVhZG9ubHk7XHJcblxyXG4gICAgdGhpcy5hcHBseVJlYWRvbmx5U3R5bGUgPSB0aGlzLmFwcGx5UmVhZG9ubHlTdHlsZSAhPT0gdW5kZWZpbmVkID9cclxuICAgICAgdGhpcy5hcHBseVJlYWRvbmx5U3R5bGUgOlxyXG4gICAgICB0aGlzLmRhdGE/LmFwcGx5UmVhZG9ubHlTdHlsZSA/PyB0aGlzLmNvbmZpZy5hcHBseVJlYWRvbmx5U3R5bGU7XHJcblxyXG4gICAgdGhpcy5zaG93VG9vbGJhciA9IHRoaXMuc2hvd1Rvb2xiYXIgIT09IHVuZGVmaW5lZCA/XHJcbiAgICAgIHRoaXMuc2hvd1Rvb2xiYXIgOlxyXG4gICAgICB0aGlzLmRhdGE/LnNob3dUb29sYmFyID8/IHRoaXMuY29uZmlnLnNob3dUb29sYmFyO1xyXG5cclxuICAgIHRoaXMuc2hvd0JvcmRlciA9IHRoaXMuc2hvd0JvcmRlciAhPT0gdW5kZWZpbmVkID9cclxuICAgICAgdGhpcy5zaG93Qm9yZGVyIDpcclxuICAgICAgdGhpcy5kYXRhPy5zaG93Qm9yZGVyID8/IHRoaXMuY29uZmlnLnNob3dCb3JkZXI7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVGdWxsc2NyZWVuKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZnVsbHNjcmVlbk1vZGUgPT09ICdleHBhbmQnKSB7XHJcbiAgICAgICAgdGhpcy5mdWxsc2NyZWVuID0gIXRoaXMuZnVsbHNjcmVlbjtcclxuICAgICAgICB0aGlzLmZ1bGxzY3JlZW5DaGFuZ2VkLmVtaXQodGhpcy5mdWxsc2NyZWVuKTtcclxuICAgICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmZ1bGxzY3JlZW4pIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLnZhbHVlKTtcclxuICAgICAgICAgIHRoaXMuZnVsbHNjcmVlbkNoYW5nZWQuZW1pdChmYWxzZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgZGF0YTogRGlhbG9nRGF0YSA9IHtcclxuXHJcbiAgICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcclxuICAgICAgICAgIGNvbmZpZzogdGhpcy5jb25maWcsXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5wbGFjZWhvbGRlcixcclxuICAgICAgICAgIGZvcm1hdDogdGhpcy5mb3JtYXQsXHJcbiAgICAgICAgICBoZWlnaHQ6IHRoaXMuZnVsbHNjcmVlbkhlaWdodCxcclxuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgICAgICBtYXhIZWlnaHQ6IHRoaXMuZnVsbHNjcmVlbkhlaWdodCxcclxuICAgICAgICAgIG1heFdpZHRoOiAnMTAwJScsXHJcbiAgICAgICAgICBlbmFibGVUb29sdGlwczogdGhpcy5lbmFibGVUb29sdGlwcyEsXHJcbiAgICAgICAgICBmdWxsc2NyZWVuOiB0cnVlLFxyXG4gICAgICAgICAgZnVsbHNjcmVlbk1vZGU6IHRoaXMuZnVsbHNjcmVlbk1vZGUsXHJcbiAgICAgICAgICByZWFkb25seTogdGhpcy5yZWFkb25seSEsXHJcbiAgICAgICAgICBhcHBseVJlYWRvbmx5U3R5bGU6IHRoaXMuYXBwbHlSZWFkb25seVN0eWxlISxcclxuICAgICAgICAgIHNob3dUb29sYmFyOiB0aGlzLnNob3dUb29sYmFyISxcclxuICAgICAgICAgIHNob3dCb3JkZXI6IHRoaXMuc2hvd0JvcmRlciEsXHJcbiAgICAgICAgICBpbWFnZVJlc2l6ZU1vZHVsZTogdGhpcy5pbWFnZVJlc2l6ZU1vZHVsZSEsXHJcbiAgICAgICAgICBpbWFnZURyb3BNb2R1bGU6IHRoaXMuaW1hZ2VEcm9wTW9kdWxlISxcclxuICAgICAgICAgIHN5bnRheE1vZHVsZTogdGhpcy5zeW50YXhNb2R1bGUhXHJcbiAgICAgICAgICAvL3VzZXJzOiB0aGlzLnVzZXJzXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5kaWFsb2cub3BlbihFZGl0b3JDb21wb25lbnQsIHtcclxuICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgICAgIHdpZHRoOiB0aGlzLmZ1bGxzY3JlZW5XaWR0aCxcclxuICAgICAgICAgIGhlaWdodDogdGhpcy5mdWxsc2NyZWVuSGVpZ2h0LFxyXG4gICAgICAgICAgZGF0YVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgIHRoaXMudXBkYXRlQ2hhbmdlcygpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmZ1bGxzY3JlZW5DaGFuZ2VkLmVtaXQodHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJhd0VkaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZy5vcGVuKFJhd0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB0aGlzLnZhbHVlLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgIGhlaWdodDogJzkwJScsXHJcbiAgICAgIHdpZHRoOiAnMTAwJSdcclxuICAgIH0pXHJcbiAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgIGlmICh2YWx1ZSA9PT0gJ19fRE8hIU5PVCEhVVBEQVRFX18nKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRvb2x0aXAodmFsOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZW5hYmxlVG9vbHRpcHMgPyB2YWwgOiAnJztcclxuICB9XHJcblxyXG4gIGdldCBtb2R1bGVzKCkge1xyXG4gICAgLy9pZiAoIXRoaXMudXNlcnMpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxyXG5cclxuICAgIGNvbnN0IG1vZHVsZXMgPSB7IH07XHJcblxyXG4gICAgaWYgKCF0aGlzLnNob3dUb29sYmFyKSB7XHJcbiAgICAgIG1vZHVsZXNbJ3Rvb2xiYXInXSA9IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmltYWdlUmVzaXplTW9kdWxlKSB7XHJcbiAgICAgIG1vZHVsZXNbJ2ltYWdlUmVzaXplJ10gPSB7fTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pbWFnZURyb3BNb2R1bGUpIHtcclxuICAgICAgbW9kdWxlc1snaW1hZ2VEcm9wJ10gPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnN5bnRheE1vZHVsZSkge1xyXG4gICAgICBtb2R1bGVzWydzeW50YXgnXSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyppZiAodGhpcy5tZW50aW9uTW9kdWxlKSB7XHJcbiAgICAgIG1vZHVsZXNbJ21lbnRpb24nXSA9IHtcclxuICAgICAgICBhbGxvd2VkQ2hhcnM6IC9eW0EtWmEtelxcc8OFw4TDlsOlw6TDtl0qJC8sXHJcblxyXG4gICAgICAgIG9uU2VsZWN0OiAoaXRlbTogRE9NU3RyaW5nTWFwLCBpbnNlcnRJdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yIS5xdWlsbEVkaXRvclxyXG4gICAgICAgICAgaW5zZXJ0SXRlbShpdGVtKVxyXG4gICAgICAgICAgLy8gbmVjZXNzYXJ5IGJlY2F1c2UgcXVpbGwtbWVudGlvbiB0cmlnZ2VycyBjaGFuZ2VzIGFzICdhcGknIGluc3RlYWQgb2YgJ3VzZXInXHJcbiAgICAgICAgICBlZGl0b3IuaW5zZXJ0VGV4dChlZGl0b3IuZ2V0TGVuZ3RoKCkgLSAxLCAnJywgJ3VzZXInKVxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNvdXJjZTogKHNlYXJjaFRlcm06IHN0cmluZywgcmVuZGVyTGlzdDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoc2VhcmNoVGVybS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmVuZGVyTGlzdCh0aGlzLnVzZXJzPy5tYXAodSA9PiAoeyB2YWx1ZTogYCR7dS5kaXNwbGF5TmFtZX0gKCR7dS5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpfSlgIH0pKSwgc2VhcmNoVGVybSlcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXM6IGFueVtdID0gW11cclxuXHJcbiAgICAgICAgICAgIHRoaXMudXNlcnMhLmZvckVhY2goKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgZW50cnkuZGlzcGxheU5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSkgIT09IC0xIHx8XHJcbiAgICAgICAgICAgICAgICBlbnRyeS5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKSAhPT0gLTFcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgbWF0Y2hlcy5wdXNoKHsgdmFsdWU6IGAke2VudHJ5LmRpc3BsYXlOYW1lfSAoJHtlbnRyeS5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpfSlgIH0pXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgcmVuZGVyTGlzdChtYXRjaGVzLCBzZWFyY2hUZXJtKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH0qL1xyXG5cclxuICAgIHJldHVybiBtb2R1bGVzO1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIENvbnRyb2xWYWx1ZUFjY2Vzc29yIG1ldGhvZHNcclxuICAvLyBNZXRob2QgdGhhdCBpcyBpbnZva2VkIG9uIGFuIHVwZGF0ZSBvZiBhIG1vZGVsLlxyXG4gIHVwZGF0ZUNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIENvbnRyb2xWYWx1ZUFjY2Vzc29yIE92ZXJyaWRlc1xyXG5cclxuICAvLyBXcml0ZXMgYSBuZXcgaXRlbSB0byB0aGUgZWxlbWVudC5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICB0aGlzLnVwZGF0ZUNoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8vIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGJlIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sJ3MgdmFsdWUgY2hhbmdlcyBpbiB0aGUgVUkuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIC8vIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGJlIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIHJlY2VpdmVzIGEgYmx1ciBldmVudC5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jZW5kcmVnaW9uXHJcbn0iLCI8bmctY29udGFpbmVyPlxuICA8Zm9ybT5cbiAgICA8cXVpbGwtZWRpdG9yIG5hbWU9XCJlZGl0b3JcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVDaGFuZ2VzKClcIlxuXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW2Zvcm1hdF09XCJmb3JtYXRcIlxuICAgICAgW3N0eWxlLmhlaWdodF09XCJmdWxsc2NyZWVuID8gZnVsbHNjcmVlbkhlaWdodCA6IGhlaWdodFwiXG4gICAgICBbc3R5bGUud2lkdGhdPVwiZnVsbHNjcmVlbiA/IGZ1bGxzY3JlZW5XaWR0aCA6IHdpZHRoXCJcbiAgICAgIFtyZWFkT25seV09XCJyZWFkb25seVwiXG4gICAgICBbY2xhc3MucmVhZG9ubHldPVwicmVhZG9ubHkgJiYgYXBwbHlSZWFkb25seVN0eWxlXCJcbiAgICAgIFtjbGFzcy5uby10b29sYmFyXT1cIiFzaG93VG9vbGJhclwiXG4gICAgICBbY2xhc3Mubm8tYm9yZGVyXT1cIiFzaG93Qm9yZGVyXCJcbiAgICAgIFttb2R1bGVzXT1cIm1vZHVsZXNcIlxuXG4gICAgICAob25CbHVyKT1cIm9uQmx1ci5lbWl0KCRldmVudClcIlxuICAgICAgKG9uQ29udGVudENoYW5nZWQpPVwib25Db250ZW50Q2hhbmdlZC5lbWl0KCRldmVudClcIlxuICAgICAgKG9uRWRpdG9yQ2hhbmdlZCk9XCJvbkVkaXRvckNoYW5nZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgIChvbkVkaXRvckNyZWF0ZWQpPVwib25FZGl0b3JDcmVhdGVkLmVtaXQoKVwiXG4gICAgICAob25Gb2N1cyk9XCJvbkZvY3VzLmVtaXQoJGV2ZW50KVwiXG4gICAgICAob25TZWxlY3Rpb25DaGFuZ2VkKT1cIm9uU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KCRldmVudClcIj5cblxuICAgICAgQGlmIChzaG93VG9vbGJhcikge1xuICAgICAgICA8ZGl2IHF1aWxsLWVkaXRvci10b29sYmFyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidG9vbGJhclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZWRpdG9yU2l6ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L3F1aWxsLWVkaXRvcj5cbiAgPC9mb3JtPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjdG9vbGJhcj5cbiAgPGRpdj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvbnRTdHlsZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYmxvY2tTdHlsZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGluZ1N0eWxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0U3R5bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNjcmlwdFN0eWxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpbmRlbnRTdHlsZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicnRsXCI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb250U2l6ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sb3JcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFsaWduXCI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjbGVhblwiPjwvbmctY29udGFpbmVyPlxuICAgIDxudC1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9ybXVsYVwiPjwvbnQtY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibWVkaWFcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ZvbnRTdHlsZT5cbiAgQGlmIChjb25maWchLnNob3dGb250U3R5bGUoKSkge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgQGlmIChjb25maWchLmJ1dHRvbnMuYm9sZCkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtYm9sZFwiICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuYm9sZClcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnIS5idXR0b25zLml0YWxpYykge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaXRhbGljXCIgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLml0YWxpYylcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnIS5idXR0b25zLnVuZGVybGluZSkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtdW5kZXJsaW5lXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLnVuZGVybGluZSlcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnIS5idXR0b25zLnN0cmlrZSkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtc3RyaWtlXCIgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLnN0cmlrZSlcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYmxvY2tTdHlsZT5cbiAgQGlmIChjb25maWchLnNob3dCbG9ja1N0eWxlKCkpIHtcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgIEBpZiAoY29uZmlnIS5idXR0b25zLmJsb2NrcXVvdGUpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWJsb2NrcXVvdGVcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuYmxvY2txdW90ZSlcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnIS5idXR0b25zLmNvZGVibG9jaykge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtY29kZS1ibG9ja1wiICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuY29kZWJsb2NrKVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNoZWFkaW5nU3R5bGU+XG4gIEBpZiAoY29uZmlnIS5zaG93UXVpY2tIZWFkaW5nU3R5bGUoKSkge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgQGlmIChjb25maWchLmJ1dHRvbnMuaDEpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWhlYWRlclwiIHZhbHVlPVwiMVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5oMSlcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnIS5idXR0b25zLmgyKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1oZWFkZXJcIiB2YWx1ZT1cIjJcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuaDIpXCI+PC9idXR0b24+XG4gICAgICB9XG4gICAgPC9zcGFuPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xpc3RTdHlsZT5cbiAgQGlmIChjb25maWchLnNob3dMaXN0U3R5bGUoKSkge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgQGlmIChjb25maWchLmJ1dHRvbnMub3JkZXJlZCkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlzdFwiIHZhbHVlPVwib3JkZXJlZFwiICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMub3JkZXJlZClcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnIS5idXR0b25zLmJ1bGxldGVkKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1saXN0XCIgdmFsdWU9XCJidWxsZXRcIiAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmJ1bGxldGVkKVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzY3JpcHRTdHlsZT5cbiAgQGlmIChjb25maWchLnNob3dTY3JpcHRTdHlsZSgpKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICBAaWYgKGNvbmZpZyEuYnV0dG9ucy5zdWJTY3JpcHQpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXNjcmlwdFwiIHZhbHVlPVwic3ViXCIgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuc3ViU2NyaXB0KVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWchLmJ1dHRvbnMuc3VwZXJTY3JpcHQpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXNjcmlwdFwiIHZhbHVlPVwic3VwZXJcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuc3VwZXJTY3JpcHQpXCI+PC9idXR0b24+XG4gICAgICB9XG4gICAgPC9zcGFuPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2luZGVudFN0eWxlPlxuICBAaWYgKGNvbmZpZyEuc2hvd0luZGVudFN0eWxlKCkpIHtcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgIEBpZiAoY29uZmlnIS5idXR0b25zLmRlY3JlYXNlSW5kZW50KSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbmRlbnRcIiB2YWx1ZT1cIi0xXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmRlY3JlYXNlSW5kZW50KVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWchLmJ1dHRvbnMuaW5jcmVhc2VJbmRlbnQpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWluZGVudFwiIHZhbHVlPVwiKzFcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuaW5jcmVhc2VJbmRlbnQpXCI+PC9idXR0b24+XG4gICAgICB9XG4gICAgPC9zcGFuPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3J0bD5cbiAgQGlmIChjb25maWchLmJ1dHRvbnMucnRsKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwicWwtZGlyZWN0aW9uXCIgdmFsdWU9XCJydGxcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMucnRsKVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb250U2l6ZT5cbiAgQGlmIChjb25maWchLmJ1dHRvbnMuZm9udFNpemUpIHtcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuZm9udFNpemUpXCI+XG4gICAgICA8c2VsZWN0IGNsYXNzPVwicWwtc2l6ZVwiPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwic21hbGxcIj48L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD48L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImxhcmdlXCI+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJodWdlXCI+PC9vcHRpb24+XG4gICAgICA8L3NlbGVjdD5cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGluZz5cbiAgQGlmIChjb25maWchLmJ1dHRvbnMuaGVhZGluZ1N0eWxlKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmhlYWRpbmdTdHlsZSlcIj5cbiAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1oZWFkZXJcIj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjFcIj48L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjJcIj48L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjNcIj48L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjRcIj48L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjVcIj48L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjZcIj48L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD1cInNlbGVjdGVkXCI+PC9vcHRpb24+XG4gICAgICA8L3NlbGVjdD5cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY29sb3I+XG4gIEBpZiAoY29uZmlnIS5idXR0b25zLmNvbG9yKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmNvbG9yKVwiPlxuICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWNvbG9yXCI+PC9zZWxlY3Q+XG4gICAgICA8c2VsZWN0IGNsYXNzPVwicWwtYmFja2dyb3VuZFwiPjwvc2VsZWN0PlxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb250PlxuICBAaWYgKGNvbmZpZyEuYnV0dG9ucy5mb250KSB7XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmZvbnQpXCI+XG4gICAgICA8c2VsZWN0IGNsYXNzPVwicWwtZm9udFwiPlxuICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwic2VyaWZcIj48L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1vbm9zcGFjZVwiPjwvb3B0aW9uPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgPC9zcGFuPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2FsaWduPlxuICBAaWYgKGNvbmZpZyEuYnV0dG9ucy5hbGlnbikge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5hbGlnbilcIj5cbiAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1hbGlnblwiPlxuICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiY2VudGVyXCI+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJyaWdodFwiPjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwianVzdGlmeVwiPjwvb3B0aW9uPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgPC9zcGFuPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NsZWFuPlxuICBAaWYgKGNvbmZpZyEuYnV0dG9ucy5jbGVhbikge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5jbGVhbilcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1jbGVhblwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtZWRpYT5cbiAgQGlmIChjb25maWchLnNob3dNZWRpYSgpKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICBAaWYgKGNvbmZpZyEuYnV0dG9ucy5saW5rKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1saW5rXCIgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5saW5rKVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWchLmJ1dHRvbnMuaW1hZ2UpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWltYWdlXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmltYWdlKVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWchLmJ1dHRvbnMudmlkZW8pIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXZpZGVvXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLnZpZGVvKVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlZGl0b3JTaXplPlxuICA8ZGl2PlxuICAgIEBpZiAoY29uZmlnIS5idXR0b25zLnJhd0VkaXRvcikge1xuICAgICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgIDxidXR0b24gaWQ9XCJyYXdkb2dcIlxuICAgICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5yYXdFZGl0b3IpXCI+XG4gICAgICAgICAgPG1hdC1pY29uIChjbGljayk9XCJyYXdFZGl0KClcIj5cbiAgICAgICAgICAgIGNvZGVcbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvc3Bhbj5cbiAgICB9XG5cbiAgICBAaWYgKGNvbmZpZyEuYnV0dG9ucy5lZGl0b3JTaXplKSB7XG4gICAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgPGJ1dHRvbiBpZD1cImZ1bGxzY3JlZW5cIlxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoZnVsbHNjcmVlbiA/XG4gICAgICAgICAgICAgICAgICAgIChmdWxsc2NyZWVuTW9kZSA9PT0gJ2V4cGFuZCcgPyBjb25maWchLnRvb2x0aXBzLm1pbmltaXplIDogY29uZmlnIS50b29sdGlwcy5wb3BpbikgOlxuICAgICAgICAgICAgICAgICAgICAoZnVsbHNjcmVlbk1vZGUgPT09ICdleHBhbmQnID8gY29uZmlnIS50b29sdGlwcy5tYXhpbWl6ZSA6IGNvbmZpZyEudG9vbHRpcHMucG9wb3V0KSlcIj5cbiAgICAgICAgICA8bWF0LWljb24gKGNsaWNrKT1cInRvZ2dsZUZ1bGxzY3JlZW4oKVwiPlxuICAgICAgICAgICAge3sgZnVsbHNjcmVlbiA/XG4gICAgICAgICAgICAoZnVsbHNjcmVlbk1vZGUgPT09ICdleHBhbmQnID8gY29uZmlnIS5pY29ucy5taW5pbWl6ZSA6IGNvbmZpZyEuaWNvbnMucG9waW4pIDpcbiAgICAgICAgICAgIChmdWxsc2NyZWVuTW9kZSA9PT0gJ2V4cGFuZCcgPyBjb25maWchLmljb25zLm1heGltaXplIDogY29uZmlnIS5pY29ucy5wb3BvdXQpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9zcGFuPlxuICAgIH1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Zvcm11bGE+XG4gIEBpZiAoY29uZmlnIS5idXR0b25zLmZvcm11bGEpIHtcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuZm9ybXVsYSlcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1mb3JtdWxhXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuICB9XG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
296
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsL3NyYy9jb21wb25lbnRzL2VkaXRvci9lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvcXVpbGwvc3JjL2NvbXBvbmVudHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsNkNBQTZDO0FBQzdDLE9BQU8sRUFBMkIsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEYsMkZBQTJGO0FBRTNGLE9BQU8sRUFBMEUsb0JBQW9CLEVBQW1CLE1BQU0sV0FBVyxDQUFDO0FBRTFJLHlCQUF5QjtBQUV6Qix3Q0FBd0M7QUFDeEMsNEJBQTRCO0FBRTVCLHFGQUFxRjtBQUNyRixzREFBc0Q7QUFDdEQscURBQXFEO0FBRXJELCtHQUErRztBQUMvRyxzREFBc0Q7QUFFdEQsWUFBWTtBQUVaLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7O0FBWXBELE1BQU0sT0FBTyxlQUFlO0lBOEMxQixZQUFZO0lBRVosWUFBeUQsSUFBZ0IsRUFDekMsU0FBd0M7SUFDNUQseURBQXlEO0lBQ2pELE1BQWlCO1FBSG9CLFNBQUksR0FBSixJQUFJLENBQVk7UUFDekMs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TTtzQkFBZixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbi8vaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuLy9pbXBvcnQgeyBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLCBVc2VyIH0gZnJvbSAnQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnknO1xyXG5cclxuaW1wb3J0IHsgQmx1ciwgQ29udGVudENoYW5nZSwgRWRpdG9yQ2hhbmdlQ29udGVudCwgRWRpdG9yQ2hhbmdlU2VsZWN0aW9uLCBGb2N1cywgUXVpbGxFZGl0b3JDb21wb25lbnQsIFNlbGVjdGlvbkNoYW5nZSB9IGZyb20gJ25neC1xdWlsbCc7XHJcblxyXG4vL2ltcG9ydCAncXVpbGwtbWVudGlvbic7XHJcblxyXG4vLyNyZWdpb24gTW92ZWQgdG8gY2xpZW50IHJlc3BvbnNpYmlsaXR5XHJcbi8vaW1wb3J0IFF1aWxsIGZyb20gJ3F1aWxsJztcclxuXHJcbi8vIFRoaXMgZG9lc24ndCB3b3JrIHdoZW4gZG9uZSBmcm9tIHRoZSBsaWJyYXJ5IC0gaXQgbXVzdCBiZSBkb25lIGZyb20gdGhlIGNsaWVudCBhcHBcclxuLy9pbXBvcnQgSW1hZ2VSZXNpemUgZnJvbSAncXVpbGwtaW1hZ2UtcmVzaXplLW1vZHVsZSc7XHJcbi8vUXVpbGwucmVnaXN0ZXIoJ21vZHVsZXMvaW1hZ2VSZXNpemUnLCBJbWFnZVJlc2l6ZSk7XHJcblxyXG4vLyBUcmVhdGluZyBJbWFnZURyb3AgdGhlIHNhbWUgd2F5IGFzIEltYWdlUmVzaXplLCBldmVuIHRob3VnaCBpdCBkb2Vzbid0IGhhdmUgdGhlIHNhbWUgcHJvYmxlbSBkZXNjcmliZWQgYWJvdmVcclxuLy9pbXBvcnQgeyBJbWFnZURyb3AgfSBmcm9tICdxdWlsbC1pbWFnZS1kcm9wLW1vZHVsZSc7XHJcblxyXG4vLyNlbmRyZWdpb25cclxuXHJcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVsL2NvbmZpZyc7XHJcbmltcG9ydCB7IERpYWxvZ0RhdGEgfSBmcm9tICcuLi8uLi9tb2RlbC9kaWFsb2ctZGF0YSc7XHJcbmltcG9ydCB7IFJhd0NvbXBvbmVudCB9IGZyb20gJy4uL3Jhdy9yYXcuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3BxdWlsbC1lZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VkaXRvci5jb21wb25lbnQuY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFZGl0b3JDb21wb25lbnQpLFxyXG4gICAgbXVsdGk6IHRydWVcclxuICB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQFZpZXdDaGlsZChRdWlsbEVkaXRvckNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIGVkaXRvcjogUXVpbGxFZGl0b3JDb21wb25lbnQgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8vI3JlZ2lvbiBDb250cm9sVmFsdWVBY2Nlc3NvciBzdHVmZlxyXG4gIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzUwNjE4MDUwL2hvdy10by1jcmVhdGUtY3VzdG9tLWlucHV0LWNvbXBvbmVudC13aXRoLW5nbW9kZWwtd29ya2luZy1pbi1hbmd1bGFyLTZcclxuICB2YWx1ZTogYW55OyAvLyBzdHJpbmdcclxuICBvbkNoYW5nZTogKF86IGFueSkgPT4gdm9pZCA9IChfOiBhbnkpID0+IHt9OyAvLyBJbnZva2VkIHdoZW4gdGhlIG1vZGVsIGhhcyBiZWVuIGNoYW5nZWRcclxuICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTsgLy8gSW52b2tlZCB3aGVuIHRoZSBtb2RlbCBoYXMgYmVlbiB0b3VjaGVkXHJcbiAgLy8jZW5kcmVnaW9uXHJcbiAgXHJcbiAgQElucHV0KCkgY29uZmlnOiBDb25maWcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAvL0BJbnB1dCgpIHVzZXJzOiBVc2VyW10gfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8vI3JlZ2lvbiBUaGVzZSBjYW4gYmUgcGFzc2VkIGluIGFzIEBJbnB1dCgpLCBvciB1c2UgdmFsdWVzIGZyb20gY29uZmlnXHJcbiAgQElucHV0KCkgZm9ybWF0ITogJ29iamVjdCcgfCAnaHRtbCcgfCAndGV4dCcgfCAnanNvbic7XHJcbiAgQElucHV0KCkgaGVpZ2h0ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHdpZHRoITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZ1bGxzY3JlZW5IZWlnaHQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZnVsbHNjcmVlbldpZHRoITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZ1bGxzY3JlZW5Nb2RlITogJ2V4cGFuZCcgfCAncG9wb3V0JztcclxuXHJcbiAgQElucHV0KCkgZW5hYmxlVG9vbHRpcHM6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgZnVsbHNjcmVlbjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBhcHBseVJlYWRvbmx5U3R5bGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc2hvd1Rvb2xiYXI6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc2hvd0JvcmRlcjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLy8jcmVnaW9uIE9wdGlvbmFsIFF1aWxsIG1vZHVsZXNcclxuICBASW5wdXQoKSBpbWFnZVJlc2l6ZU1vZHVsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBpbWFnZURyb3BNb2R1bGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgLy9ASW5wdXQoKSBtZW50aW9uTW9kdWxlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHN5bnRheE1vZHVsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAvLyNlbmRyZWdpb25cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgQE91dHB1dCgpIGZ1bGxzY3JlZW5DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAvLyNyZWdpb24gUGFzc3Rocm91Z2ggZXZlbnRzXHJcbiAgQE91dHB1dCgpIG9uQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Qmx1cj4oKTtcclxuICBAT3V0cHV0KCkgb25Db250ZW50Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29udGVudENoYW5nZT4oKTtcclxuICBAT3V0cHV0KCkgb25FZGl0b3JDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxFZGl0b3JDaGFuZ2VDb250ZW50IHwgRWRpdG9yQ2hhbmdlU2VsZWN0aW9uPigpO1xyXG4gIEBPdXRwdXQoKSBvbkVkaXRvckNyZWF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzPigpO1xyXG4gIEBPdXRwdXQoKSBvblNlbGVjdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGlvbkNoYW5nZT4oKTtcclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgZGF0YTogRGlhbG9nRGF0YSxcclxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEVkaXRvckNvbXBvbmVudD4sXHJcbiAgICAgICAgICAgICAgLy9wcml2YXRlIGFjdGl2ZURpcmVjdG9yeVNlcnZpY2U6IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZykgeyAgXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xyXG4gICAgXHJcbiAgICAvKmlmICghdGhpcy51c2Vycykge1xyXG4gICAgICB0aGlzLmFjdGl2ZURpcmVjdG9yeVNlcnZpY2UuZ2V0VXNlcnMoKS5zdWJzY3JpYmUodXNlcnMgPT5cclxuICAgICAgICB0aGlzLnVzZXJzID0gdXNlcnNcclxuICAgICAgKTtcclxuICAgIH0qL1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uZmlnID0gdGhpcy5jb25maWcgPz8gdGhpcy5kYXRhPy5jb25maWcgPz8gbmV3IENvbmZpZygpO1xyXG5cclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlID8/IHRoaXMuZGF0YT8udmFsdWU7XHJcblxyXG4gICAgLy8gTW92ZWQgdG8gY2xpZW50IHJlc3BvbnNpYmlsaXR5XHJcbiAgICAvKmlmICh0aGlzLmltYWdlRHJvcE1vZHVsZSkge1xyXG4gICAgICBRdWlsbC5yZWdpc3RlcignbW9kdWxlcy9pbWFnZURyb3AnLCBJbWFnZURyb3ApO1xyXG4gICAgfSovXHJcblxyXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXIgPz8gdGhpcy5kYXRhPy5wbGFjZWhvbGRlcjtcclxuICAgIC8vdGhpcy51c2VycyA9IHRoaXMudXNlcnMgPz8gdGhpcy5kYXRhPy51c2VycztcclxuXHJcbiAgICB0aGlzLmltYWdlRHJvcE1vZHVsZSA9IHRoaXMuaW1hZ2VEcm9wTW9kdWxlID8/IHRoaXMuZGF0YT8uaW1hZ2VEcm9wTW9kdWxlID8/IHRoaXMuY29uZmlnLmltYWdlRHJvcE1vZHVsZTtcclxuICAgIHRoaXMuaW1hZ2VSZXNpemVNb2R1bGUgPSB0aGlzLmltYWdlUmVzaXplTW9kdWxlID8/IHRoaXMuZGF0YT8uaW1hZ2VSZXNpemVNb2R1bGUgPz8gdGhpcy5jb25maWcuaW1hZ2VSZXNpemVNb2R1bGU7XHJcbiAgICB0aGlzLnN5bnRheE1vZHVsZSA9IHRoaXMuc3ludGF4TW9kdWxlID8/IHRoaXMuZGF0YT8uc3ludGF4TW9kdWxlID8/IHRoaXMuY29uZmlnLnN5bnRheE1vZHVsZTtcclxuXHJcbiAgICB0aGlzLmZvcm1hdCA9IHRoaXMuZm9ybWF0ID8/IHRoaXMuZGF0YT8uZm9ybWF0ID8/IHRoaXMuY29uZmlnLmZvcm1hdDtcclxuICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy5oZWlnaHQgPz8gdGhpcy5kYXRhPy5oZWlnaHQgPz8gdGhpcy5jb25maWcuaGVpZ2h0O1xyXG4gICAgdGhpcy53aWR0aCA9IHRoaXMud2lkdGggPz8gdGhpcy5kYXRhPy53aWR0aCA/PyB0aGlzLmNvbmZpZy53aWR0aDtcclxuICAgIHRoaXMuZnVsbHNjcmVlbkhlaWdodCA9IHRoaXMuZnVsbHNjcmVlbkhlaWdodCA/PyB0aGlzLmRhdGE/Lm1heEhlaWdodCA/PyB0aGlzLmNvbmZpZy5mdWxsc2NyZWVuSGVpZ2h0O1xyXG4gICAgdGhpcy5mdWxsc2NyZWVuV2lkdGggPSB0aGlzLmZ1bGxzY3JlZW5XaWR0aCA/PyB0aGlzLmRhdGE/Lm1heFdpZHRoID8/IHRoaXMuY29uZmlnLmZ1bGxzY3JlZW5XaWR0aDtcclxuICAgIHRoaXMuZnVsbHNjcmVlbk1vZGUgPSB0aGlzLmZ1bGxzY3JlZW5Nb2RlID8/IHRoaXMuZGF0YT8uZnVsbHNjcmVlbk1vZGUgPz8gdGhpcy5jb25maWcuZnVsbHNjcmVlbk1vZGU7XHJcblxyXG4gICAgdGhpcy5lbmFibGVUb29sdGlwcyA9IHRoaXMuZW5hYmxlVG9vbHRpcHMgIT09IHVuZGVmaW5lZCA/XHJcbiAgICAgIHRoaXMuZW5hYmxlVG9vbHRpcHMgOlxyXG4gICAgICB0aGlzLmRhdGE/LmVuYWJsZVRvb2x0aXBzID8/IHRoaXMuY29uZmlnLmVuYWJsZVRvb2x0aXBzO1xyXG5cclxuICAgIHRoaXMuZnVsbHNjcmVlbiA9IHRoaXMuZnVsbHNjcmVlbiAhPT0gdW5kZWZpbmVkID9cclxuICAgICAgdGhpcy5mdWxsc2NyZWVuIDpcclxuICAgICAgdGhpcy5kYXRhPy5mdWxsc2NyZWVuID8/IHRoaXMuY29uZmlnLmZ1bGxzY3JlZW47XHJcblxyXG4gICAgdGhpcy5yZWFkb25seSA9IHRoaXMucmVhZG9ubHkgIT09IHVuZGVmaW5lZCA/XHJcbiAgICAgIHRoaXMucmVhZG9ubHkgOlxyXG4gICAgICB0aGlzLmRhdGE/LnJlYWRvbmx5ID8/IHRoaXMuY29uZmlnLnJlYWRvbmx5O1xyXG5cclxuICAgIHRoaXMuYXBwbHlSZWFkb25seVN0eWxlID0gdGhpcy5hcHBseVJlYWRvbmx5U3R5bGUgIT09IHVuZGVmaW5lZCA/XHJcbiAgICAgIHRoaXMuYXBwbHlSZWFkb25seVN0eWxlIDpcclxuICAgICAgdGhpcy5kYXRhPy5hcHBseVJlYWRvbmx5U3R5bGUgPz8gdGhpcy5jb25maWcuYXBwbHlSZWFkb25seVN0eWxlO1xyXG5cclxuICAgIHRoaXMuc2hvd1Rvb2xiYXIgPSB0aGlzLnNob3dUb29sYmFyICE9PSB1bmRlZmluZWQgP1xyXG4gICAgICB0aGlzLnNob3dUb29sYmFyIDpcclxuICAgICAgdGhpcy5kYXRhPy5zaG93VG9vbGJhciA/PyB0aGlzLmNvbmZpZy5zaG93VG9vbGJhcjtcclxuXHJcbiAgICB0aGlzLnNob3dCb3JkZXIgPSB0aGlzLnNob3dCb3JkZXIgIT09IHVuZGVmaW5lZCA/XHJcbiAgICAgIHRoaXMuc2hvd0JvcmRlciA6XHJcbiAgICAgIHRoaXMuZGF0YT8uc2hvd0JvcmRlciA/PyB0aGlzLmNvbmZpZy5zaG93Qm9yZGVyO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlRnVsbHNjcmVlbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZ1bGxzY3JlZW5Nb2RlID09PSAnZXhwYW5kJykge1xyXG4gICAgICAgIHRoaXMuZnVsbHNjcmVlbiA9ICF0aGlzLmZ1bGxzY3JlZW47XHJcbiAgICAgICAgdGhpcy5mdWxsc2NyZWVuQ2hhbmdlZC5lbWl0KHRoaXMuZnVsbHNjcmVlbik7XHJcbiAgICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5mdWxsc2NyZWVuKSB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgICB0aGlzLmZ1bGxzY3JlZW5DaGFuZ2VkLmVtaXQoZmFsc2UpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGRhdGE6IERpYWxvZ0RhdGEgPSB7XHJcblxyXG4gICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXHJcbiAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMucGxhY2Vob2xkZXIsXHJcbiAgICAgICAgICBmb3JtYXQ6IHRoaXMuZm9ybWF0LFxyXG4gICAgICAgICAgaGVpZ2h0OiB0aGlzLmZ1bGxzY3JlZW5IZWlnaHQsXHJcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICAgICAgbWF4SGVpZ2h0OiB0aGlzLmZ1bGxzY3JlZW5IZWlnaHQsXHJcbiAgICAgICAgICBtYXhXaWR0aDogJzEwMCUnLFxyXG4gICAgICAgICAgZW5hYmxlVG9vbHRpcHM6IHRoaXMuZW5hYmxlVG9vbHRpcHMhLFxyXG4gICAgICAgICAgZnVsbHNjcmVlbjogdHJ1ZSxcclxuICAgICAgICAgIGZ1bGxzY3JlZW5Nb2RlOiB0aGlzLmZ1bGxzY3JlZW5Nb2RlLFxyXG4gICAgICAgICAgcmVhZG9ubHk6IHRoaXMucmVhZG9ubHkhLFxyXG4gICAgICAgICAgYXBwbHlSZWFkb25seVN0eWxlOiB0aGlzLmFwcGx5UmVhZG9ubHlTdHlsZSEsXHJcbiAgICAgICAgICBzaG93VG9vbGJhcjogdGhpcy5zaG93VG9vbGJhciEsXHJcbiAgICAgICAgICBzaG93Qm9yZGVyOiB0aGlzLnNob3dCb3JkZXIhLFxyXG4gICAgICAgICAgaW1hZ2VSZXNpemVNb2R1bGU6IHRoaXMuaW1hZ2VSZXNpemVNb2R1bGUhLFxyXG4gICAgICAgICAgaW1hZ2VEcm9wTW9kdWxlOiB0aGlzLmltYWdlRHJvcE1vZHVsZSEsXHJcbiAgICAgICAgICBzeW50YXhNb2R1bGU6IHRoaXMuc3ludGF4TW9kdWxlIVxyXG4gICAgICAgICAgLy91c2VyczogdGhpcy51c2Vyc1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuZGlhbG9nLm9wZW4oRWRpdG9yQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgICB3aWR0aDogdGhpcy5mdWxsc2NyZWVuV2lkdGgsXHJcbiAgICAgICAgICBoZWlnaHQ6IHRoaXMuZnVsbHNjcmVlbkhlaWdodCxcclxuICAgICAgICAgIGRhdGFcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5mdWxsc2NyZWVuQ2hhbmdlZC5lbWl0KHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByYXdFZGl0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2cub3BlbihSYXdDb21wb25lbnQsIHtcclxuICAgICAgZGF0YTogdGhpcy52YWx1ZSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBoZWlnaHQ6ICc5MCUnLFxyXG4gICAgICB3aWR0aDogJzEwMCUnXHJcbiAgICB9KVxyXG4gICAgLmFmdGVyQ2xvc2VkKClcclxuICAgIC5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICBpZiAodmFsdWUgPT09ICdfX0RPISFOT1QhIVVQREFURV9fJykge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB0b29sdGlwKHZhbDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVuYWJsZVRvb2x0aXBzID8gdmFsIDogJyc7XHJcbiAgfVxyXG5cclxuICBnZXQgbW9kdWxlcygpIHtcclxuICAgIC8vaWYgKCF0aGlzLnVzZXJzKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cclxuXHJcbiAgICBjb25zdCBtb2R1bGVzID0geyB9O1xyXG5cclxuICAgIGlmICghdGhpcy5zaG93VG9vbGJhcikge1xyXG4gICAgICBtb2R1bGVzWyd0b29sYmFyJ10gPSBbXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pbWFnZVJlc2l6ZU1vZHVsZSkge1xyXG4gICAgICBtb2R1bGVzWydpbWFnZVJlc2l6ZSddID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaW1hZ2VEcm9wTW9kdWxlKSB7XHJcbiAgICAgIG1vZHVsZXNbJ2ltYWdlRHJvcCddID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zeW50YXhNb2R1bGUpIHtcclxuICAgICAgbW9kdWxlc1snc3ludGF4J10gPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qaWYgKHRoaXMubWVudGlvbk1vZHVsZSkge1xyXG4gICAgICBtb2R1bGVzWydtZW50aW9uJ10gPSB7XHJcbiAgICAgICAgYWxsb3dlZENoYXJzOiAvXltBLVphLXpcXHPDhcOEw5bDpcOkw7ZdKiQvLFxyXG5cclxuICAgICAgICBvblNlbGVjdDogKGl0ZW06IERPTVN0cmluZ01hcCwgaW5zZXJ0SXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvciEucXVpbGxFZGl0b3JcclxuICAgICAgICAgIGluc2VydEl0ZW0oaXRlbSlcclxuICAgICAgICAgIC8vIG5lY2Vzc2FyeSBiZWNhdXNlIHF1aWxsLW1lbnRpb24gdHJpZ2dlcnMgY2hhbmdlcyBhcyAnYXBpJyBpbnN0ZWFkIG9mICd1c2VyJ1xyXG4gICAgICAgICAgZWRpdG9yLmluc2VydFRleHQoZWRpdG9yLmdldExlbmd0aCgpIC0gMSwgJycsICd1c2VyJylcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzb3VyY2U6IChzZWFyY2hUZXJtOiBzdHJpbmcsIHJlbmRlckxpc3Q6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHNlYXJjaFRlcm0ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJlbmRlckxpc3QodGhpcy51c2Vycz8ubWFwKHUgPT4gKHsgdmFsdWU6IGAke3UuZGlzcGxheU5hbWV9ICgke3Uuc0FNQWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKX0pYCB9KSksIHNlYXJjaFRlcm0pXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBtYXRjaGVzOiBhbnlbXSA9IFtdXHJcblxyXG4gICAgICAgICAgICB0aGlzLnVzZXJzIS5mb3JFYWNoKChlbnRyeSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIGVudHJ5LmRpc3BsYXlOYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkpICE9PSAtMSB8fFxyXG4gICAgICAgICAgICAgICAgZW50cnkuc0FNQWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSkgIT09IC0xXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIG1hdGNoZXMucHVzaCh7IHZhbHVlOiBgJHtlbnRyeS5kaXNwbGF5TmFtZX0gKCR7ZW50cnkuc0FNQWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKX0pYCB9KVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICAgIHJlbmRlckxpc3QobWF0Y2hlcywgc2VhcmNoVGVybSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9Ki9cclxuXHJcbiAgICByZXR1cm4gbW9kdWxlcztcclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBDb250cm9sVmFsdWVBY2Nlc3NvciBtZXRob2RzXHJcbiAgLy8gTWV0aG9kIHRoYXQgaXMgaW52b2tlZCBvbiBhbiB1cGRhdGUgb2YgYSBtb2RlbC5cclxuICB1cGRhdGVDaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBDb250cm9sVmFsdWVBY2Nlc3NvciBPdmVycmlkZXNcclxuXHJcbiAgLy8gV3JpdGVzIGEgbmV3IGl0ZW0gdG8gdGhlIGVsZW1lbnQuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgdGhpcy51cGRhdGVDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICAvLyBSZWdpc3RlcnMgYSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IHNob3VsZCBiZSBjYWxsZWQgd2hlbiB0aGUgY29udHJvbCdzIHZhbHVlIGNoYW5nZXMgaW4gdGhlIFVJLlxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICAvLyBSZWdpc3RlcnMgYSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IHNob3VsZCBiZSBjYWxsZWQgd2hlbiB0aGUgY29udHJvbCByZWNlaXZlcyBhIGJsdXIgZXZlbnQuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG59IiwiPG5nLWNvbnRhaW5lcj5cbiAgPGZvcm0+XG4gICAgPHF1aWxsLWVkaXRvciBuYW1lPVwiZWRpdG9yXCJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlQ2hhbmdlcygpXCJcblxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIFtmb3JtYXRdPVwiZm9ybWF0XCJcbiAgICAgIFtzdHlsZS5oZWlnaHRdPVwiZnVsbHNjcmVlbiA/IGZ1bGxzY3JlZW5IZWlnaHQgOiBoZWlnaHRcIlxuICAgICAgW3N0eWxlLndpZHRoXT1cImZ1bGxzY3JlZW4gPyBmdWxsc2NyZWVuV2lkdGggOiB3aWR0aFwiXG4gICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW2NsYXNzLnJlYWRvbmx5XT1cInJlYWRvbmx5ICYmIGFwcGx5UmVhZG9ubHlTdHlsZVwiXG4gICAgICBbY2xhc3Mubm8tdG9vbGJhcl09XCIhc2hvd1Rvb2xiYXJcIlxuICAgICAgW2NsYXNzLm5vLWJvcmRlcl09XCIhc2hvd0JvcmRlclwiXG4gICAgICBbbW9kdWxlc109XCJtb2R1bGVzXCJcblxuICAgICAgKG9uQmx1cik9XCJvbkJsdXIuZW1pdCgkZXZlbnQpXCJcbiAgICAgIChvbkNvbnRlbnRDaGFuZ2VkKT1cIm9uQ29udGVudENoYW5nZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgIChvbkVkaXRvckNoYW5nZWQpPVwib25FZGl0b3JDaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAob25FZGl0b3JDcmVhdGVkKT1cIm9uRWRpdG9yQ3JlYXRlZC5lbWl0KClcIlxuICAgICAgKG9uRm9jdXMpPVwib25Gb2N1cy5lbWl0KCRldmVudClcIlxuICAgICAgKG9uU2VsZWN0aW9uQ2hhbmdlZCk9XCJvblNlbGVjdGlvbkNoYW5nZWQuZW1pdCgkZXZlbnQpXCI+XG5cbiAgICAgIEBpZiAoc2hvd1Rvb2xiYXIpIHtcbiAgICAgICAgPGRpdiBxdWlsbC1lZGl0b3ItdG9vbGJhcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRvb2xiYXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVkaXRvclNpemVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9xdWlsbC1lZGl0b3I+XG4gIDwvZm9ybT5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3Rvb2xiYXI+XG4gIDxkaXY+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb250U3R5bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJsb2NrU3R5bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRpbmdTdHlsZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibGlzdFN0eWxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzY3JpcHRTdHlsZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW5kZW50U3R5bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJ0bFwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9udFNpemVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRpbmdcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb250XCI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJhbGlnblwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2xlYW5cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bnQtY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvcm11bGFcIj48L250LWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1lZGlhXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb250U3R5bGU+XG4gIEBpZiAoY29uZmlnIS5zaG93Rm9udFN0eWxlKCkpIHtcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgIEBpZiAoY29uZmlnIS5idXR0b25zLmJvbGQpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWJvbGRcIiAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmJvbGQpXCI+PC9idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZyEuYnV0dG9ucy5pdGFsaWMpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWl0YWxpY1wiICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5pdGFsaWMpXCI+PC9idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZyEuYnV0dG9ucy51bmRlcmxpbmUpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXVuZGVybGluZVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy51bmRlcmxpbmUpXCI+PC9idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZyEuYnV0dG9ucy5zdHJpa2UpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXN0cmlrZVwiICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5zdHJpa2UpXCI+PC9idXR0b24+XG4gICAgICB9XG4gICAgPC9zcGFuPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Jsb2NrU3R5bGU+XG4gIEBpZiAoY29uZmlnIS5zaG93QmxvY2tTdHlsZSgpKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICBAaWYgKGNvbmZpZyEuYnV0dG9ucy5ibG9ja3F1b3RlKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1ibG9ja3F1b3RlXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmJsb2NrcXVvdGUpXCI+PC9idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZyEuYnV0dG9ucy5jb2RlYmxvY2spIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWNvZGUtYmxvY2tcIiAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmNvZGVibG9jaylcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGluZ1N0eWxlPlxuICBAaWYgKGNvbmZpZyEuc2hvd1F1aWNrSGVhZGluZ1N0eWxlKCkpIHtcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgIEBpZiAoY29uZmlnIS5idXR0b25zLmgxKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1oZWFkZXJcIiB2YWx1ZT1cIjFcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuaDEpXCI+PC9idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZyEuYnV0dG9ucy5oMikge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaGVhZGVyXCIgdmFsdWU9XCIyXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmgyKVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsaXN0U3R5bGU+XG4gIEBpZiAoY29uZmlnIS5zaG93TGlzdFN0eWxlKCkpIHtcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgIEBpZiAoY29uZmlnIS5idXR0b25zLm9yZGVyZWQpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWxpc3RcIiB2YWx1ZT1cIm9yZGVyZWRcIiAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLm9yZGVyZWQpXCI+PC9idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZyEuYnV0dG9ucy5idWxsZXRlZCkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlzdFwiIHZhbHVlPVwiYnVsbGV0XCIgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5idWxsZXRlZClcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2NyaXB0U3R5bGU+XG4gIEBpZiAoY29uZmlnIS5zaG93U2NyaXB0U3R5bGUoKSkge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgQGlmIChjb25maWchLmJ1dHRvbnMuc3ViU2NyaXB0KSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1zY3JpcHRcIiB2YWx1ZT1cInN1YlwiICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLnN1YlNjcmlwdClcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnIS5idXR0b25zLnN1cGVyU2NyaXB0KSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1zY3JpcHRcIiB2YWx1ZT1cInN1cGVyXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLnN1cGVyU2NyaXB0KVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbmRlbnRTdHlsZT5cbiAgQGlmIChjb25maWchLnNob3dJbmRlbnRTdHlsZSgpKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICBAaWYgKGNvbmZpZyEuYnV0dG9ucy5kZWNyZWFzZUluZGVudCkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaW5kZW50XCIgdmFsdWU9XCItMVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5kZWNyZWFzZUluZGVudClcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnIS5idXR0b25zLmluY3JlYXNlSW5kZW50KSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbmRlbnRcIiB2YWx1ZT1cIisxXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmluY3JlYXNlSW5kZW50KVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNydGw+XG4gIEBpZiAoY29uZmlnIS5idXR0b25zLnJ0bCkge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWRpcmVjdGlvblwiIHZhbHVlPVwicnRsXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLnJ0bClcIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZm9udFNpemU+XG4gIEBpZiAoY29uZmlnIS5idXR0b25zLmZvbnRTaXplKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmZvbnRTaXplKVwiPlxuICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLXNpemVcIj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNtYWxsXCI+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJsYXJnZVwiPjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiaHVnZVwiPjwvb3B0aW9uPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgPC9zcGFuPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2hlYWRpbmc+XG4gIEBpZiAoY29uZmlnIS5idXR0b25zLmhlYWRpbmdTdHlsZSkge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5oZWFkaW5nU3R5bGUpXCI+XG4gICAgICA8c2VsZWN0IGNsYXNzPVwicWwtaGVhZGVyXCI+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCIxXCI+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCIyXCI+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCIzXCI+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCI0XCI+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCI1XCI+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCI2XCI+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiPjwvb3B0aW9uPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgPC9zcGFuPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbG9yPlxuICBAaWYgKGNvbmZpZyEuYnV0dG9ucy5jb2xvcikge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5jb2xvcilcIj5cbiAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1jb2xvclwiPjwvc2VsZWN0PlxuICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWJhY2tncm91bmRcIj48L3NlbGVjdD5cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZm9udD5cbiAgQGlmIChjb25maWchLmJ1dHRvbnMuZm9udCkge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5mb250KVwiPlxuICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWZvbnRcIj5cbiAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD48L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNlcmlmXCI+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJtb25vc3BhY2VcIj48L29wdGlvbj5cbiAgICAgIDwvc2VsZWN0PlxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNhbGlnbj5cbiAgQGlmIChjb25maWchLmJ1dHRvbnMuYWxpZ24pIHtcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuYWxpZ24pXCI+XG4gICAgICA8c2VsZWN0IGNsYXNzPVwicWwtYWxpZ25cIj5cbiAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD48L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImNlbnRlclwiPjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwicmlnaHRcIj48L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImp1c3RpZnlcIj48L29wdGlvbj5cbiAgICAgIDwvc2VsZWN0PlxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjbGVhbj5cbiAgQGlmIChjb25maWchLmJ1dHRvbnMuY2xlYW4pIHtcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuY2xlYW4pXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwicWwtY2xlYW5cIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbWVkaWE+XG4gIEBpZiAoY29uZmlnIS5zaG93TWVkaWEoKSkge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgQGlmIChjb25maWchLmJ1dHRvbnMubGluaykge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlua1wiICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMubGluaylcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnIS5idXR0b25zLmltYWdlKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbWFnZVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5pbWFnZSlcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnIS5idXR0b25zLnZpZGVvKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC12aWRlb1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy52aWRlbylcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZWRpdG9yU2l6ZT5cbiAgPGRpdj5cbiAgICBAaWYgKGNvbmZpZyEuYnV0dG9ucy5yYXdFZGl0b3IpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICA8YnV0dG9uIGlkPVwicmF3ZG9nXCJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMucmF3RWRpdG9yKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwicmF3RWRpdCgpXCI+XG4gICAgICAgICAgICBjb2RlXG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L3NwYW4+XG4gICAgfVxuXG4gICAgQGlmIChjb25maWchLmJ1dHRvbnMuZWRpdG9yU2l6ZSkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgIDxidXR0b24gaWQ9XCJmdWxsc2NyZWVuXCJcbiAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGZ1bGxzY3JlZW4gP1xuICAgICAgICAgICAgICAgICAgICAoZnVsbHNjcmVlbk1vZGUgPT09ICdleHBhbmQnID8gY29uZmlnIS50b29sdGlwcy5taW5pbWl6ZSA6IGNvbmZpZyEudG9vbHRpcHMucG9waW4pIDpcbiAgICAgICAgICAgICAgICAgICAgKGZ1bGxzY3JlZW5Nb2RlID09PSAnZXhwYW5kJyA/IGNvbmZpZyEudG9vbHRpcHMubWF4aW1pemUgOiBjb25maWchLnRvb2x0aXBzLnBvcG91dCkpXCI+XG4gICAgICAgICAgPG1hdC1pY29uIChjbGljayk9XCJ0b2dnbGVGdWxsc2NyZWVuKClcIj5cbiAgICAgICAgICAgIHt7IGZ1bGxzY3JlZW4gP1xuICAgICAgICAgICAgKGZ1bGxzY3JlZW5Nb2RlID09PSAnZXhwYW5kJyA/IGNvbmZpZyEuaWNvbnMubWluaW1pemUgOiBjb25maWchLmljb25zLnBvcGluKSA6XG4gICAgICAgICAgICAoZnVsbHNjcmVlbk1vZGUgPT09ICdleHBhbmQnID8gY29uZmlnIS5pY29ucy5tYXhpbWl6ZSA6IGNvbmZpZyEuaWNvbnMucG9wb3V0KVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvc3Bhbj5cbiAgICB9XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb3JtdWxhPlxuICBAaWYgKGNvbmZpZyEuYnV0dG9ucy5mb3JtdWxhKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmZvcm11bGEpXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwicWwtZm9ybXVsYVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component,
|
|
1
|
+
import { Component, inject } from '@angular/core';
|
|
2
2
|
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/forms";
|
|
@@ -8,17 +8,14 @@ import * as i4 from "@angular/material/form-field";
|
|
|
8
8
|
import * as i5 from "@angular/material/icon";
|
|
9
9
|
import * as i6 from "@angular/material/input";
|
|
10
10
|
export class RawComponent {
|
|
11
|
-
constructor(
|
|
12
|
-
this.data =
|
|
11
|
+
constructor() {
|
|
12
|
+
this.data = inject(MAT_DIALOG_DATA);
|
|
13
13
|
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: RawComponent, deps: [
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: RawComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
15
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: RawComponent, selector: "cpquill-raw", ngImport: i0, template: "<mat-dialog-content>\n <form>\n <mat-form-field appearance=\"outline\">\n <textarea matInput [(ngModel)]=\"data\" name=\"data\"></textarea>\n </mat-form-field>\n </form>\n</mat-dialog-content>\n\n<mat-dialog-actions>\n <button mat-raised-button color=\"warn\" mat-dialog-close=\"__DO!!NOT!!UPDATE__\">\n <mat-icon>cancel</mat-icon>\n <span>Cancel</span>\n </button>\n\n <button mat-raised-button color=\"primary\" [mat-dialog-close]=\"data\">\n <mat-icon>done</mat-icon>\n <span>Accept</span>\n </button>\n</mat-dialog-actions>", styles: ["mat-dialog-content{height:95%;max-height:initial!important}form{width:100%}mat-form-field{width:100%}textarea{height:70vh}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] }); }
|
|
16
16
|
}
|
|
17
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: RawComponent, decorators: [{
|
|
18
18
|
type: Component,
|
|
19
19
|
args: [{ selector: 'cpquill-raw', template: "<mat-dialog-content>\n <form>\n <mat-form-field appearance=\"outline\">\n <textarea matInput [(ngModel)]=\"data\" name=\"data\"></textarea>\n </mat-form-field>\n </form>\n</mat-dialog-content>\n\n<mat-dialog-actions>\n <button mat-raised-button color=\"warn\" mat-dialog-close=\"__DO!!NOT!!UPDATE__\">\n <mat-icon>cancel</mat-icon>\n <span>Cancel</span>\n </button>\n\n <button mat-raised-button color=\"primary\" [mat-dialog-close]=\"data\">\n <mat-icon>done</mat-icon>\n <span>Accept</span>\n </button>\n</mat-dialog-actions>", styles: ["mat-dialog-content{height:95%;max-height:initial!important}form{width:100%}mat-form-field{width:100%}textarea{height:70vh}\n"] }]
|
|
20
|
-
}]
|
|
21
|
-
|
|
22
|
-
args: [MAT_DIALOG_DATA]
|
|
23
|
-
}] }] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsL3NyYy9jb21wb25lbnRzL3Jhdy9yYXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvcXVpbGwvc3JjL2NvbXBvbmVudHMvcmF3L3Jhdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7O0FBTzNELE1BQU0sT0FBTyxZQUFZO0lBRXZCLFlBQTRDLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO0lBQUksQ0FBQzs4R0FGbEQsWUFBWSxrQkFFSCxlQUFlO2tHQUZ4QixZQUFZLG1EQ1J6Qix3bEJBa0JxQjs7MkZEVlIsWUFBWTtrQkFMeEIsU0FBUzsrQkFDRSxhQUFhOzswQkFNVixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3BxdWlsbC1yYXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmF3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmF3LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSYXdDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogc3RyaW5nKSB7IH1cbn0iLCI8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxmb3JtPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBbKG5nTW9kZWwpXT1cImRhdGFcIiBuYW1lPVwiZGF0YVwiPjwvdGV4dGFyZWE+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9mb3JtPlxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbjxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cIndhcm5cIiBtYXQtZGlhbG9nLWNsb3NlPVwiX19ETyEhTk9UISFVUERBVEVfX1wiPlxuICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4+Q2FuY2VsPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJkYXRhXCI+XG4gICAgICAgIDxtYXQtaWNvbj5kb25lPC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4+QWNjZXB0PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+Il19
|
|
20
|
+
}] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsL3NyYy9jb21wb25lbnRzL3Jhdy9yYXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvcXVpbGwvc3JjL2NvbXBvbmVudHMvcmF3L3Jhdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7O0FBTzNELE1BQU0sT0FBTyxZQUFZO0lBTHpCO1FBTVMsU0FBSSxHQUFHLE1BQU0sQ0FBUyxlQUFlLENBQUMsQ0FBQztLQUMvQzs4R0FGWSxZQUFZO2tHQUFaLFlBQVksbURDUnpCLHdsQkFrQnFCOzsyRkRWUixZQUFZO2tCQUx4QixTQUFTOytCQUNFLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3BxdWlsbC1yYXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmF3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmF3LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSYXdDb21wb25lbnQge1xuICBwdWJsaWMgZGF0YSA9IGluamVjdDxzdHJpbmc+KE1BVF9ESUFMT0dfREFUQSk7XG59IiwiPG1hdC1kaWFsb2ctY29udGVudD5cbiAgICA8Zm9ybT5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICA8dGV4dGFyZWEgbWF0SW5wdXQgWyhuZ01vZGVsKV09XCJkYXRhXCIgbmFtZT1cImRhdGFcIj48L3RleHRhcmVhPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZm9ybT5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48bWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJ3YXJuXCIgbWF0LWRpYWxvZy1jbG9zZT1cIl9fRE8hIU5PVCEhVVBEQVRFX19cIj5cbiAgICAgICAgPG1hdC1pY29uPmNhbmNlbDwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuPkNhbmNlbDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW21hdC1kaWFsb2ctY2xvc2VdPVwiZGF0YVwiPlxuICAgICAgICA8bWF0LWljb24+ZG9uZTwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuPkFjY2VwdDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPiJdfQ==
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
1
|
+
import { Component, inject, Input } from '@angular/core';
|
|
2
|
+
import { ActiveDirectoryService } from '@cleavelandprice/ngx-lib/active-directory';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@
|
|
4
|
-
import * as i2 from "
|
|
5
|
-
import * as i3 from "../../pipes/employee-photo-url.pipe";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "../../pipes/employee-photo-url.pipe";
|
|
6
6
|
export class EmployeePhotoComponent {
|
|
7
|
-
constructor(
|
|
8
|
-
this.activeDirectoryService =
|
|
7
|
+
constructor() {
|
|
8
|
+
this.activeDirectoryService = inject(ActiveDirectoryService);
|
|
9
9
|
this.size = "2em";
|
|
10
10
|
this.notRound = false;
|
|
11
11
|
}
|
|
@@ -17,13 +17,13 @@ export class EmployeePhotoComponent {
|
|
|
17
17
|
.subscribe(user => this.employee = user);
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: EmployeePhotoComponent, deps: [
|
|
21
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: EmployeePhotoComponent, selector: "employee-photo", inputs: { employee: "employee", accountName: "accountName", employeePhotos: "employeePhotos", size: "size", notRound: "notRound" }, ngImport: i0, template: "@if (employee) {\n @if ((employee | employeePhotoUrl:employeePhotos | async)) {\n <img\n [src]=\"employee | employeePhotoUrl:employeePhotos | async\"\n [style.width]=\"size\"\n [style.height]=\"size\"\n [style.border-radius]=\"notRound ? 'default' : '100%'\">\n }\n}", styles: [""], dependencies: [{ kind: "pipe", type:
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: EmployeePhotoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: EmployeePhotoComponent, selector: "employee-photo", inputs: { employee: "employee", accountName: "accountName", employeePhotos: "employeePhotos", size: "size", notRound: "notRound" }, ngImport: i0, template: "@if (employee) {\n @if ((employee | employeePhotoUrl:employeePhotos | async)) {\n <img\n [src]=\"employee | employeePhotoUrl:employeePhotos | async\"\n [style.width]=\"size\"\n [style.height]=\"size\"\n [style.border-radius]=\"notRound ? 'default' : '100%'\">\n }\n}", styles: [""], dependencies: [{ kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.EmployeePhotoUrlPipe, name: "employeePhotoUrl" }] }); }
|
|
22
22
|
}
|
|
23
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: EmployeePhotoComponent, decorators: [{
|
|
24
24
|
type: Component,
|
|
25
25
|
args: [{ selector: 'employee-photo', template: "@if (employee) {\n @if ((employee | employeePhotoUrl:employeePhotos | async)) {\n <img\n [src]=\"employee | employeePhotoUrl:employeePhotos | async\"\n [style.width]=\"size\"\n [style.height]=\"size\"\n [style.border-radius]=\"notRound ? 'default' : '100%'\">\n }\n}" }]
|
|
26
|
-
}],
|
|
26
|
+
}], propDecorators: { employee: [{
|
|
27
27
|
type: Input
|
|
28
28
|
}], accountName: [{
|
|
29
29
|
type: Input
|
|
@@ -34,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
34
34
|
}], notRound: [{
|
|
35
35
|
type: Input
|
|
36
36
|
}] } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtcGhvdG8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvc2hhcmVwb2ludC9zcmMvY29tcG9uZW50cy9lbXBsb3llZS1waG90by9lbXBsb3llZS1waG90by5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9zaGFyZXBvaW50L3NyYy9jb21wb25lbnRzL2VtcGxveWVlLXBob3RvL2VtcGxveWVlLXBob3RvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQXVCLE1BQU0sMkNBQTJDLENBQUM7Ozs7QUFReEcsTUFBTSxPQUFPLHNCQUFzQjtJQUxuQztRQU1VLDJCQUFzQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBT3ZELFNBQUksR0FBRyxLQUFLLENBQUM7UUFDYixhQUFRLEdBQUcsS0FBSyxDQUFDO0tBVTNCO0lBUkMsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN2QywrREFBK0Q7WUFDL0QsOERBQThEO1lBQzlELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztpQkFDbEQsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM3QyxDQUFDO0lBQ0gsQ0FBQzs4R0FsQlUsc0JBQXNCO2tHQUF0QixzQkFBc0IsMExDVG5DLHFTQVFDOzsyRkRDWSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsZ0JBQWdCOzhCQU9qQixRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLCBDbGVhdmVsYW5kUHJpY2VVc2VyIH0gZnJvbSAnQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnknO1xuaW1wb3J0IHsgUGhvdG9JdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWwvcGhvdG8taXRlbSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VtcGxveWVlLXBob3RvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VtcGxveWVlLXBob3RvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW1wbG95ZWUtcGhvdG8uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEVtcGxveWVlUGhvdG9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIGFjdGl2ZURpcmVjdG9yeVNlcnZpY2UgPSBpbmplY3QoQWN0aXZlRGlyZWN0b3J5U2VydmljZSk7XG5cbiAgQElucHV0KCkgZW1wbG95ZWU6IENsZWF2ZWxhbmRQcmljZVVzZXIgfCB1bmRlZmluZWQ7XG4gIC8vIE9yLi4uXG4gIEBJbnB1dCgpIGFjY291bnROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgQElucHV0KCkgZW1wbG95ZWVQaG90b3M/OiBQaG90b0l0ZW1bXTtcbiAgQElucHV0KCkgc2l6ZSA9IFwiMmVtXCI7XG4gIEBJbnB1dCgpIG5vdFJvdW5kID0gZmFsc2U7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWNjb3VudE5hbWUgJiYgIXRoaXMuZW1wbG95ZWUpIHtcbiAgICAgIC8vIERldmVsb3BlciBwYXNzZWQgaW4gYW4gYWNjb3VudCBuYW1lIGluc3RlYWQgb2YgYSB1c2VyIG9iamVjdFxuICAgICAgLy8gV2UgbmVlZCB0byBkbyB0aGUgd29yayBvZiBnZXR0aW5nIHRoZSB1c2VyIG9iamVjdCBvdXJzZWx2ZXNcbiAgICAgIHRoaXMuYWN0aXZlRGlyZWN0b3J5U2VydmljZS5nZXRVc2VyKHRoaXMuYWNjb3VudE5hbWUpXG4gICAgICAgIC5zdWJzY3JpYmUodXNlciA9PiB0aGlzLmVtcGxveWVlID0gdXNlcik7XG4gICAgfVxuICB9XG59IiwiQGlmIChlbXBsb3llZSkge1xuICBAaWYgKChlbXBsb3llZSB8IGVtcGxveWVlUGhvdG9Vcmw6ZW1wbG95ZWVQaG90b3MgfCBhc3luYykpIHtcbiAgICA8aW1nXG4gICAgICBbc3JjXT1cImVtcGxveWVlIHwgZW1wbG95ZWVQaG90b1VybDplbXBsb3llZVBob3RvcyB8IGFzeW5jXCJcbiAgICAgIFtzdHlsZS53aWR0aF09XCJzaXplXCJcbiAgICAgIFtzdHlsZS5oZWlnaHRdPVwic2l6ZVwiXG4gICAgICBbc3R5bGUuYm9yZGVyLXJhZGl1c109XCJub3RSb3VuZCA/ICdkZWZhdWx0JyA6ICcxMDAlJ1wiPlxuICB9XG59Il19
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import {
|
|
1
|
+
import { inject, Pipe } from '@angular/core';
|
|
2
|
+
import { map, of } from 'rxjs';
|
|
3
|
+
import { SharePointService } from '../services/sharepoint.service';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../services/sharepoint.service";
|
|
5
5
|
export class EmployeePhotoUrlPipe {
|
|
6
|
-
constructor(
|
|
7
|
-
this.sharePointService =
|
|
6
|
+
constructor() {
|
|
7
|
+
this.sharePointService = inject(SharePointService);
|
|
8
8
|
}
|
|
9
9
|
transform(user, userPhotos) {
|
|
10
10
|
const observable$ = userPhotos ? of(userPhotos) : this.sharePointService.getPhotos();
|
|
@@ -26,7 +26,7 @@ export class EmployeePhotoUrlPipe {
|
|
|
26
26
|
|
|
27
27
|
return photo ? photo.encodedAbsUrl : null;*/
|
|
28
28
|
}
|
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: EmployeePhotoUrlPipe, deps: [
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: EmployeePhotoUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
30
30
|
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: EmployeePhotoUrlPipe, name: "employeePhotoUrl" }); }
|
|
31
31
|
}
|
|
32
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: EmployeePhotoUrlPipe, decorators: [{
|
|
@@ -34,5 +34,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
34
34
|
args: [{
|
|
35
35
|
name: 'employeePhotoUrl'
|
|
36
36
|
}]
|
|
37
|
-
}]
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
}] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtcGhvdG8tdXJsLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9zaGFyZXBvaW50L3NyYy9waXBlcy9lbXBsb3llZS1waG90by11cmwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFNUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBS25FLE1BQU0sT0FBTyxvQkFBb0I7SUFIakM7UUFJVSxzQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQTZCdkQ7SUEzQkMsU0FBUyxDQUFDLElBQXlCLEVBQUUsVUFBd0I7UUFDM0QsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVyRixPQUFPLFdBQVc7YUFDZixJQUFJLENBQ0gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNoQix3REFBd0Q7UUFDeEQsQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUMzRixDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hGLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FDMUUsRUFBRSxhQUFhLENBQ2pCLENBQ0YsQ0FBQztRQUVKOzs7Ozs7Ozs7O29EQVU0QztJQUM5QyxDQUFDOzhHQTdCVSxvQkFBb0I7NEdBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFIaEMsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsa0JBQWtCO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xlYXZlbGFuZFByaWNlVXNlciB9IGZyb20gJ0BjbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5JztcbmltcG9ydCB7IG1hcCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBob3RvSXRlbSB9IGZyb20gJy4uL21vZGVsL3Bob3RvLWl0ZW0nO1xuaW1wb3J0IHsgU2hhcmVQb2ludFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zaGFyZXBvaW50LnNlcnZpY2UnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdlbXBsb3llZVBob3RvVXJsJ1xufSlcbmV4cG9ydCBjbGFzcyBFbXBsb3llZVBob3RvVXJsUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcml2YXRlIHNoYXJlUG9pbnRTZXJ2aWNlID0gaW5qZWN0KFNoYXJlUG9pbnRTZXJ2aWNlKTtcblxuICB0cmFuc2Zvcm0odXNlcjogQ2xlYXZlbGFuZFByaWNlVXNlciwgdXNlclBob3Rvcz86IFBob3RvSXRlbVtdKTogYW55IHtcbiAgICBjb25zdCBvYnNlcnZhYmxlJCA9IHVzZXJQaG90b3MgPyBvZih1c2VyUGhvdG9zKSA6IHRoaXMuc2hhcmVQb2ludFNlcnZpY2UuZ2V0UGhvdG9zKCk7XG5cbiAgICByZXR1cm4gb2JzZXJ2YWJsZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocGhvdG9zID0+XG4gICAgICAgICAgcGhvdG9zLmZpbmQocGljID0+XG4gICAgICAgICAgICAvLyBUcnkgdG8gbWF0Y2ggYnkgZW1wbG95ZWVOdW1iZXIsIGFjY291bnROYW1lLCBvciB0aXRsZVxuICAgICAgICAgICAgKHBpYy5lbXBsb3llZU51bWJlciAmJiB1c2VyLmVtcGxveWVlTnVtYmVyICYmICtwaWMuZW1wbG95ZWVOdW1iZXIgPT09ICt1c2VyLmVtcGxveWVlTnVtYmVyKSB8fFxuICAgICAgICAgICAgKHBpYy5hY2NvdW50TmFtZSAmJiBwaWMuYWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKSA9PT0gdXNlci5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpKSB8fFxuICAgICAgICAgICAgKHBpYy50aXRsZSAmJiBwaWMudGl0bGUudG9Mb3dlckNhc2UoKSA9PT0gdXNlci5kaXNwbGF5TmFtZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICk/LmVuY29kZWRBYnNVcmxcbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgIC8qY29uc3QgcGhvdG8gPSBwaG90b3NcbiAgICAgIC5maW5kKHBpYyA9PlxuICAgICAgICAocGljLmVtcGxveWVlTnVtYmVyICYmIHVzZXIuZW1wbG95ZWVOdW1iZXIgJiYgK3BpYy5lbXBsb3llZU51bWJlciA9PT0gK3VzZXIuZW1wbG95ZWVOdW1iZXIpIHx8XG4gICAgICAgIChwaWMuYWNjb3VudE5hbWUgJiYgcGljLmFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkgPT09IHVzZXIuc0FNQWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKSkgfHxcbiAgICAgICAgKHBpYy50aXRsZSAmJiBwaWMudGl0bGUudG9Mb3dlckNhc2UoKSA9PT0gdXNlci5kaXNwbGF5TmFtZS50b0xvd2VyQ2FzZSgpKSk7XG5cbiAgICBpZiAoIXBob3RvKSB7XG4gICAgICBjb25zb2xlLmxvZyhgTm8gcGhvdG8gbWF0Y2ggZm9yICR7dXNlci5kaXNwbGF5TmFtZX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGhvdG8gPyBwaG90by5lbmNvZGVkQWJzVXJsIDogbnVsbDsqL1xuICB9XG59Il19
|
|
@@ -1,36 +1,37 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { inject, Injectable } from '@angular/core';
|
|
3
3
|
import { DateTime } from 'luxon';
|
|
4
|
+
import { of } from 'rxjs';
|
|
4
5
|
import { ServiceConfig } from '../model/service-config';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../model/service-config";
|
|
7
|
-
import * as i2 from "@angular/common/http";
|
|
8
7
|
export class SharePointService {
|
|
9
8
|
//#region Utilities
|
|
10
9
|
cacheExpired(cache) {
|
|
11
10
|
if (!cache) {
|
|
12
11
|
return true;
|
|
13
12
|
}
|
|
14
|
-
const lifeMinutes = this.config
|
|
13
|
+
const lifeMinutes = this.config?.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;
|
|
15
14
|
const expiration = cache.lastUpdate.plus({ minutes: lifeMinutes });
|
|
16
15
|
return DateTime.now() > expiration;
|
|
17
16
|
}
|
|
18
17
|
//#endregion
|
|
19
18
|
//#region Initialization
|
|
20
|
-
constructor(
|
|
21
|
-
|
|
22
|
-
this.
|
|
19
|
+
constructor() {
|
|
20
|
+
//#region Services
|
|
21
|
+
this.config = inject(ServiceConfig, { optional: true }) ?? new ServiceConfig();
|
|
22
|
+
this.http = inject(HttpClient);
|
|
23
23
|
this.defaultCacheLifeMinutes = 720;
|
|
24
|
-
this.config = this.config ?? new ServiceConfig();
|
|
25
24
|
this.configureCaching();
|
|
26
25
|
this.configureLogging();
|
|
27
26
|
}
|
|
28
27
|
configureCaching() {
|
|
29
28
|
// If caching config is missing entirely, give it a default
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
if (this.config) {
|
|
30
|
+
this.config.caching = this.config?.caching ?? {
|
|
31
|
+
enabled: false,
|
|
32
|
+
lifeMinutes: this.defaultCacheLifeMinutes
|
|
33
|
+
};
|
|
34
|
+
}
|
|
34
35
|
this.cache = {
|
|
35
36
|
photos: undefined,
|
|
36
37
|
users: undefined
|
|
@@ -38,29 +39,31 @@ export class SharePointService {
|
|
|
38
39
|
}
|
|
39
40
|
configureLogging() {
|
|
40
41
|
// If logging config is missing entirely, give it a default
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
if (this.config) {
|
|
43
|
+
this.config.logging = this.config.logging ?? {
|
|
44
|
+
dataCached: false,
|
|
45
|
+
cachedDataReturned: false,
|
|
46
|
+
freshDataReturned: false,
|
|
47
|
+
cacheCleared: false
|
|
48
|
+
};
|
|
49
|
+
}
|
|
47
50
|
}
|
|
48
51
|
//#endregion
|
|
49
52
|
getListItems(request) {
|
|
50
|
-
const apiUrl = this.config
|
|
51
|
-
const endpoint = this.config
|
|
53
|
+
const apiUrl = this.config?.apiUrl;
|
|
54
|
+
const endpoint = this.config?.listItemsEndpoint;
|
|
52
55
|
return this.http.post(`${apiUrl}${endpoint}`, request);
|
|
53
56
|
}
|
|
54
57
|
getPhotos() {
|
|
55
58
|
const request = {
|
|
56
|
-
username: this.config
|
|
57
|
-
password: this.config
|
|
58
|
-
site: this.config
|
|
59
|
-
list: this.config
|
|
60
|
-
additionalPropertiesToRetrieve: this.config
|
|
59
|
+
username: this.config?.username,
|
|
60
|
+
password: this.config?.password,
|
|
61
|
+
site: this.config?.photos.site,
|
|
62
|
+
list: this.config?.photos.list,
|
|
63
|
+
additionalPropertiesToRetrieve: this.config?.photos.additionalPropertiesToRetrieve
|
|
61
64
|
};
|
|
62
65
|
const observable$ = this.getListItems(request);
|
|
63
|
-
if (this.config
|
|
66
|
+
if (this.config?.caching?.enabled) {
|
|
64
67
|
if (this.cacheExpired(this.cache?.photos)) {
|
|
65
68
|
// Get the data and cache it
|
|
66
69
|
observable$.subscribe(data => {
|
|
@@ -68,7 +71,7 @@ export class SharePointService {
|
|
|
68
71
|
data,
|
|
69
72
|
lastUpdate: DateTime.now()
|
|
70
73
|
};
|
|
71
|
-
if (this.config
|
|
74
|
+
if (this.config?.logging?.dataCached) {
|
|
72
75
|
const lifeMinutes = this.config.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;
|
|
73
76
|
console.log(`Photos cached for ${lifeMinutes} minutes`);
|
|
74
77
|
}
|
|
@@ -83,14 +86,14 @@ export class SharePointService {
|
|
|
83
86
|
}
|
|
84
87
|
}
|
|
85
88
|
// Cache is either disabled or expired, return data from API
|
|
86
|
-
if (this.config
|
|
89
|
+
if (this.config?.logging?.freshDataReturned) {
|
|
87
90
|
console.log('Returning fresh photos');
|
|
88
91
|
}
|
|
89
92
|
return observable$;
|
|
90
93
|
}
|
|
91
94
|
getUsers(request, id) {
|
|
92
|
-
const apiUrl = this.config
|
|
93
|
-
const endpoint = this.config
|
|
95
|
+
const apiUrl = this.config?.apiUrl;
|
|
96
|
+
const endpoint = this.config?.usersEndpoint;
|
|
94
97
|
const observable$ = this.http.post(`${apiUrl}${endpoint}/${id ?? ''}`, request);
|
|
95
98
|
//#region Single user
|
|
96
99
|
if (id) {
|
|
@@ -98,7 +101,7 @@ export class SharePointService {
|
|
|
98
101
|
}
|
|
99
102
|
//#endregion
|
|
100
103
|
//#region Multiple users
|
|
101
|
-
if (this.config
|
|
104
|
+
if (this.config?.caching?.enabled) {
|
|
102
105
|
if (this.cacheExpired(this.cache.users)) {
|
|
103
106
|
// Get the data and cache it
|
|
104
107
|
observable$.subscribe(data => {
|
|
@@ -106,7 +109,7 @@ export class SharePointService {
|
|
|
106
109
|
data: data,
|
|
107
110
|
lastUpdate: DateTime.now()
|
|
108
111
|
};
|
|
109
|
-
if (this.config
|
|
112
|
+
if (this.config?.logging?.dataCached) {
|
|
110
113
|
const lifeMinutes = this.config.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;
|
|
111
114
|
console.log(`Users cached for ${lifeMinutes} minutes`);
|
|
112
115
|
}
|
|
@@ -121,7 +124,7 @@ export class SharePointService {
|
|
|
121
124
|
}
|
|
122
125
|
}
|
|
123
126
|
// Cache is either disabled or expired, return data from API
|
|
124
|
-
if (this.config
|
|
127
|
+
if (this.config?.logging?.freshDataReturned) {
|
|
125
128
|
console.log('Returning fresh users');
|
|
126
129
|
}
|
|
127
130
|
return observable$;
|
|
@@ -129,11 +132,11 @@ export class SharePointService {
|
|
|
129
132
|
}
|
|
130
133
|
clearCache() {
|
|
131
134
|
this.cache = undefined;
|
|
132
|
-
if (this.config
|
|
135
|
+
if (this.config?.logging?.cacheCleared) {
|
|
133
136
|
console.log('Cache cleared');
|
|
134
137
|
}
|
|
135
138
|
}
|
|
136
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SharePointService, deps: [
|
|
139
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SharePointService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
137
140
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SharePointService, providedIn: 'root' }); }
|
|
138
141
|
}
|
|
139
142
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SharePointService, decorators: [{
|
|
@@ -141,7 +144,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
141
144
|
args: [{
|
|
142
145
|
providedIn: 'root'
|
|
143
146
|
}]
|
|
144
|
-
}], ctorParameters: () => [
|
|
145
|
-
type: Optional
|
|
146
|
-
}] }, { type: i2.HttpClient }] });
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVwb2ludC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvc2hhcmVwb2ludC9zcmMvc2VydmljZXMvc2hhcmVwb2ludC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQU1qQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7QUFPeEQsTUFBTSxPQUFPLGlCQUFpQjtJQVE1QixtQkFBbUI7SUFDWCxZQUFZLENBQUksS0FBcUI7UUFDM0MsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsV0FBVyxJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztRQUNyRixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUMsQ0FBQyxDQUFDO1FBRWxFLE9BQU8sUUFBUSxDQUFDLEdBQUcsRUFBRSxHQUFHLFVBQVUsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsWUFBWTtJQUVaLHdCQUF3QjtJQUN0QixZQUFnQyxNQUFxQixFQUNuQyxJQUFnQjtRQURGLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDbkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQWpCNUIsNEJBQXVCLEdBQUcsR0FBRyxDQUFDO1FBbUJ4QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxh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bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gJ2x1eG9uJztcclxuXHJcbmltcG9ydCB7IENhY2hlT2JqZWN0IH0gZnJvbSAnLi4vbW9kZWwvY2FjaGUtb2JqZWN0JztcclxuaW1wb3J0IHsgTGlzdEl0ZW0gfSBmcm9tICcuLi9tb2RlbC9saXN0LWl0ZW0nO1xyXG5pbXBvcnQgeyBMaXN0SXRlbXNSZXF1ZXN0IH0gZnJvbSAnLi4vbW9kZWwvbGlzdC1pdGVtcy1yZXF1ZXN0JztcclxuaW1wb3J0IHsgUGhvdG9JdGVtIH0gZnJvbSAnLi4vbW9kZWwvcGhvdG8taXRlbSc7XHJcbmltcG9ydCB7IFNlcnZpY2VDb25maWcgfSBmcm9tICcuLi9tb2RlbC9zZXJ2aWNlLWNvbmZpZyc7XHJcbmltcG9ydCB7IFVzZXJSZXF1ZXN0IH0gZnJvbSAnLi4vbW9kZWwvdXNlci1yZXF1ZXN0JztcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL21vZGVsL3VzZXInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hhcmVQb2ludFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgY2FjaGU6IHtcclxuICAgIHVzZXJzOiBDYWNoZU9iamVjdDxVc2VyPiB8IHVuZGVmaW5lZCxcclxuICAgIHBob3RvczogQ2FjaGVPYmplY3Q8UGhvdG9JdGVtPiB8IHVuZGVmaW5lZFxyXG4gIH0gfCB1bmRlZmluZWQ7XHJcblxyXG4gIHByaXZhdGUgZGVmYXVsdENhY2hlTGlmZU1pbnV0ZXMgPSA3MjA7XHJcblxyXG4gIC8vI3JlZ2lvbiBVdGlsaXRpZXNcclxuICBwcml2YXRlIGNhY2hlRXhwaXJlZDxUPihjYWNoZTogQ2FjaGVPYmplY3Q8VD4pOiBib29sZWFuIHtcclxuICAgIGlmICghY2FjaGUpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbGlmZU1pbnV0ZXMgPSB0aGlzLmNvbmZpZy5jYWNoaW5nPy5saWZlTWludXRlcyA/PyB0aGlzLmRlZmF1bHRDYWNoZUxpZmVNaW51dGVzO1xyXG4gICAgY29uc3QgZXhwaXJhdGlvbiA9IGNhY2hlLmxhc3RVcGRhdGUucGx1cyh7IG1pbnV0ZXM6IGxpZmVNaW51dGVzfSk7XHJcblxyXG4gICAgcmV0dXJuIERhdGVUaW1lLm5vdygpID4gZXhwaXJhdGlvbjtcclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBJbml0aWFsaXphdGlvblxyXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb25maWc6IFNlcnZpY2VDb25maWcsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcgPSB0aGlzLmNvbmZpZyA/PyBuZXcgU2VydmljZUNvbmZpZygpO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ3VyZUNhY2hpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlndXJlTG9nZ2luZygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb25maWd1cmVDYWNoaW5nKCk6IHZvaWQge1xyXG4gICAgLy8gSWYgY2FjaGluZyBjb25maWcgaXMgbWlzc2luZyBlbnRpcmVseSwgZ2l2ZSBpdCBhIGRlZmF1bHRcclxuICAgIHRoaXMuY29uZmlnLmNhY2hpbmcgPSB0aGlzLmNvbmZpZy5jYWNoaW5nID8/IHtcclxuICAgICAgZW5hYmxlZDogZmFsc2UsXHJcbiAgICAgIGxpZmVNaW51dGVzOiB0aGlzLmRlZmF1bHRDYWNoZUxpZmVNaW51dGVzXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuY2FjaGUgPSB7XHJcbiAgICAgIHBob3RvczogdW5kZWZpbmVkLFxyXG4gICAgICB1c2VyczogdW5kZWZpbmVkXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb25maWd1cmVMb2dnaW5nKCk6IHZvaWQge1xyXG4gICAgLy8gSWYgbG9nZ2luZyBjb25maWcgaXMgbWlzc2luZyBlbnRpcmVseSwgZ2l2ZSBpdCBhIGRlZmF1bHRcclxuICAgIHRoaXMuY29uZmlnLmxvZ2dpbmcgPSB0aGlzLmNvbmZpZy5sb2dnaW5nID8/IHtcclxuICAgICAgZGF0YUNhY2hlZDogZmFsc2UsXHJcbiAgICAgIGNhY2hlZERhdGFSZXR1cm5lZDogZmFsc2UsXHJcbiAgICAgIGZyZXNoRGF0YVJldHVybmVkOiBmYWxzZSxcclxuICAgICAgY2FjaGVDbGVhcmVkOiBmYWxzZVxyXG4gICAgfVxyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgZ2V0TGlzdEl0ZW1zKHJlcXVlc3Q6IExpc3RJdGVtc1JlcXVlc3QpOiBPYnNlcnZhYmxlPExpc3RJdGVtW10+IHtcclxuICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuY29uZmlnLmFwaVVybDtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gdGhpcy5jb25maWcubGlzdEl0ZW1zRW5kcG9pbnQ7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PExpc3RJdGVtW10+KGAke2FwaVVybH0ke2VuZHBvaW50fWAsIHJlcXVlc3QpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGhvdG9zKCk6IE9ic2VydmFibGU8UGhvdG9JdGVtW10+IHtcclxuICAgIGNvbnN0IHJlcXVlc3Q6IExpc3RJdGVtc1JlcXVlc3QgPSB7XHJcbiAgICAgIHVzZXJuYW1lOiB0aGlzLmNvbmZpZy51c2VybmFtZSxcclxuICAgICAgcGFzc3dvcmQ6IHRoaXMuY29uZmlnLnBhc3N3b3JkLFxyXG4gICAgICBzaXRlOiB0aGlzLmNvbmZpZy5waG90b3Muc2l0ZSxcclxuICAgICAgbGlzdDogdGhpcy5jb25maWcucGhvdG9zLmxpc3QsXHJcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzVG9SZXRyaWV2ZTogdGhpcy5jb25maWcucGhvdG9zLmFkZGl0aW9uYWxQcm9wZXJ0aWVzVG9SZXRyaWV2ZVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBvYnNlcnZhYmxlJCA9IHRoaXMuZ2V0TGlzdEl0ZW1zKHJlcXVlc3QpIGFzIE9ic2VydmFibGU8UGhvdG9JdGVtW10+O1xyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZy5jYWNoaW5nPy5lbmFibGVkKSB7XHJcbiAgICAgIGlmICh0aGlzLmNhY2hlRXhwaXJlZDxQaG90b0l0ZW0+KHRoaXMuY2FjaGU/LnBob3RvcyEpKSB7XHJcbiAgICAgICAgLy8gR2V0IHRoZSBkYXRhIGFuZCBjYWNoZSBpdFxyXG4gICAgICAgIG9ic2VydmFibGUkLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgICAgIHRoaXMuY2FjaGUhLnBob3RvcyA9IHtcclxuICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgbGFzdFVwZGF0ZTogRGF0ZVRpbWUubm93KClcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuY29uZmlnLmxvZ2dpbmc/LmRhdGFDYWNoZWQpIHtcclxuICAgICAgICAgICAgY29uc3QgbGlmZU1pbnV0ZXMgPSB0aGlzLmNvbmZpZy5jYWNoaW5nPy5saWZlTWludXRlcyA/PyB0aGlzLmRlZmF1bHRDYWNoZUxpZmVNaW51dGVzO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgUGhvdG9zIGNhY2hlZCBmb3IgJHtsaWZlTWludXRlc30gbWludXRlc2ApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIENhY2hlIGV4aXN0cyBhbmQgaGFzbid0IGV4cGlyZWQgeWV0XHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmxvZ2dpbmc/LmNhY2hlZERhdGFSZXR1cm5lZCkge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ1JldHVybmluZyBjYWNoZWQgcGhvdG9zJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb2YodGhpcy5jYWNoZSEucGhvdG9zIS5kYXRhKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIENhY2hlIGlzIGVpdGhlciBkaXNhYmxlZCBvciBleHBpcmVkLCByZXR1cm4gZGF0YSBmcm9tIEFQSVxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmxvZ2dpbmc/LmZyZXNoRGF0YVJldHVybmVkKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdSZXR1cm5pbmcgZnJlc2ggcGhvdG9zJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9ic2VydmFibGUkO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlcnMocmVxdWVzdDogVXNlclJlcXVlc3QsIGlkPzogbnVtYmVyKTogT2JzZXJ2YWJsZTxVc2VyIHwgVXNlcltdPiB7XHJcbiAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmNvbmZpZy5hcGlVcmw7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IHRoaXMuY29uZmlnLnVzZXJzRW5kcG9pbnQ7XHJcbiAgICBcclxuICAgIGNvbnN0IG9ic2VydmFibGUkID0gdGhpcy5odHRwLnBvc3Q8VXNlciB8IFVzZXJbXT4oYCR7YXBpVXJsfSR7ZW5kcG9pbnR9LyR7aWQgPz8gJyd9YCwgcmVxdWVzdCk7XHJcblxyXG4gICAgLy8jcmVnaW9uIFNpbmdsZSB1c2VyXHJcbiAgICBpZiAoaWQpIHtcclxuICAgICAgcmV0dXJuIG9ic2VydmFibGUkO1xyXG4gICAgfVxyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIE11bHRpcGxlIHVzZXJzXHJcbiAgICBpZiAodGhpcy5jb25maWcuY2FjaGluZz8uZW5hYmxlZCkge1xyXG4gICAgICBpZiAodGhpcy5jYWNoZUV4cGlyZWQ8VXNlcj4odGhpcy5jYWNoZSEudXNlcnMhKSkge1xyXG4gICAgICAgIC8vIEdldCB0aGUgZGF0YSBhbmQgY2FjaGUgaXRcclxuICAgICAgICBvYnNlcnZhYmxlJC5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNhY2hlIS51c2VycyA9IHtcclxuICAgICAgICAgICAgZGF0YTogZGF0YSBhcyBVc2VyW10sXHJcbiAgICAgICAgICAgIGxhc3RVcGRhdGU6IERhdGVUaW1lLm5vdygpXHJcbiAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy5sb2dnaW5nPy5kYXRhQ2FjaGVkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxpZmVNaW51dGVzID0gdGhpcy5jb25maWcuY2FjaGluZz8ubGlmZU1pbnV0ZXMgPz8gdGhpcy5kZWZhdWx0Q2FjaGVMaWZlTWludXRlcztcclxuICAgICAgICAgICAgY29uc29sZS5sb2coYFVzZXJzIGNhY2hlZCBmb3IgJHtsaWZlTWludXRlc30gbWludXRlc2ApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIENhY2hlIGV4aXN0cyBhbmQgaGFzbid0IGV4cGlyZWQgeWV0XHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmxvZ2dpbmc/LmNhY2hlZERhdGFSZXR1cm5lZCkge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ1JldHVybmluZyBjYWNoZWQgdXNlcnMnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvZih0aGlzLmNhY2hlIS51c2VycyEuZGF0YSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBDYWNoZSBpcyBlaXRoZXIgZGlzYWJsZWQgb3IgZXhwaXJlZCwgcmV0dXJuIGRhdGEgZnJvbSBBUElcclxuICAgIGlmICh0aGlzLmNvbmZpZy5sb2dnaW5nPy5mcmVzaERhdGFSZXR1cm5lZCkge1xyXG4gICAgICBjb25zb2xlLmxvZygnUmV0dXJuaW5nIGZyZXNoIHVzZXJzJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9ic2VydmFibGUkO1xyXG4gICAgLy8jZW5kcmVnaW9uXHJcbiAgfVxyXG5cclxuICBjbGVhckNhY2hlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jYWNoZSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICBpZiAodGhpcy5jb25maWcubG9nZ2luZz8uY2FjaGVDbGVhcmVkKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdDYWNoZSBjbGVhcmVkJyk7XHJcbiAgICB9XHJcbiAgfVxyXG59Il19
|
|
147
|
+
}], ctorParameters: () => [] });
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVwb2ludC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvc2hhcmVwb2ludC9zcmMvc2VydmljZXMvc2hhcmVwb2ludC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2pDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFNdEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQU94RCxNQUFNLE9BQU8saUJBQWlCO0lBYTVCLG1CQUFtQjtJQUNYLFlBQVksQ0FBSSxLQUFxQjtRQUMzQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxXQUFXLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDO1FBQ3RGLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUM7UUFFbEUsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxZQUFZO0lBRVosd0JBQXdCO0lBQ3hCO1FBMUJBLGtCQUFrQjtRQUNWLFdBQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUMxRSxTQUFJLEdB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QUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQ2FjaGVPYmplY3QgfSBmcm9tICcuLi9tb2RlbC9jYWNoZS1vYmplY3QnO1xyXG5pbXBvcnQgeyBMaXN0SXRlbSB9IGZyb20gJy4uL21vZGVsL2xpc3QtaXRlbSc7XHJcbmltcG9ydCB7IExpc3RJdGVtc1JlcXVlc3QgfSBmcm9tICcuLi9tb2RlbC9saXN0LWl0ZW1zLXJlcXVlc3QnO1xyXG5pbXBvcnQgeyBQaG90b0l0ZW0gfSBmcm9tICcuLi9tb2RlbC9waG90by1pdGVtJztcclxuaW1wb3J0IHsgU2VydmljZUNvbmZpZyB9IGZyb20gJy4uL21vZGVsL3NlcnZpY2UtY29uZmlnJztcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL21vZGVsL3VzZXInO1xyXG5pbXBvcnQgeyBVc2VyUmVxdWVzdCB9IGZyb20gJy4uL21vZGVsL3VzZXItcmVxdWVzdCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaGFyZVBvaW50U2VydmljZSB7XHJcbiAgLy8jcmVnaW9uIFNlcnZpY2VzXHJcbiAgcHJpdmF0ZSBjb25maWcgPSBpbmplY3QoU2VydmljZUNvbmZpZywgeyBvcHRpb25hbDogdHJ1ZSB9KSA/PyBuZXcgU2VydmljZUNvbmZpZygpO1xyXG4gIHByaXZhdGUgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgcHJpdmF0ZSBjYWNoZToge1xyXG4gICAgdXNlcnM6IENhY2hlT2JqZWN0PFVzZXI+IHwgdW5kZWZpbmVkLFxyXG4gICAgcGhvdG9zOiBDYWNoZU9iamVjdDxQaG90b0l0ZW0+IHwgdW5kZWZpbmVkXHJcbiAgfSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJpdmF0ZSBkZWZhdWx0Q2FjaGVMaWZlTWludXRlcyA9IDcyMDtcclxuXHJcbiAgLy8jcmVnaW9uIFV0aWxpdGllc1xyXG4gIHByaXZhdGUgY2FjaGVFeHBpcmVkPFQ+KGNhY2hlOiBDYWNoZU9iamVjdDxUPik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFjYWNoZSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsaWZlTWludXRlcyA9IHRoaXMuY29uZmlnPy5jYWNoaW5nPy5saWZlTWludXRlcyA/PyB0aGlzLmRlZmF1bHRDYWNoZUxpZmVNaW51dGVzO1xyXG4gICAgY29uc3QgZXhwaXJhdGlvbiA9IGNhY2hlLmxhc3RVcGRhdGUucGx1cyh7IG1pbnV0ZXM6IGxpZmVNaW51dGVzfSk7XHJcblxyXG4gICAgcmV0dXJuIERhdGVUaW1lLm5vdygpID4gZXhwaXJhdGlvbjtcclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBJbml0aWFsaXphdGlvblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5jb25maWd1cmVDYWNoaW5nKCk7XHJcbiAgICB0aGlzLmNvbmZpZ3VyZUxvZ2dpbmcoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29uZmlndXJlQ2FjaGluZygpOiB2b2lkIHtcclxuICAgIC8vIElmIGNhY2hpbmcgY29uZmlnIGlzIG1pc3NpbmcgZW50aXJlbHksIGdpdmUgaXQgYSBkZWZhdWx0XHJcbiAgICBpZiAodGhpcy5jb25maWcpIHtcclxuICAgICAgdGhpcy5jb25maWcuY2FjaGluZyA9IHRoaXMuY29uZmlnPy5jYWNoaW5nID8/IHtcclxuICAgICAgICBlbmFibGVkOiBmYWxzZSxcclxuICAgICAgICBsaWZlTWludXRlczogdGhpcy5kZWZhdWx0Q2FjaGVMaWZlTWludXRlc1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2FjaGUgPSB7XHJcbiAgICAgIHBob3RvczogdW5kZWZpbmVkLFxyXG4gICAgICB1c2VyczogdW5kZWZpbmVkXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb25maWd1cmVMb2dnaW5nKCk6IHZvaWQge1xyXG4gICAgLy8gSWYgbG9nZ2luZyBjb25maWcgaXMgbWlzc2luZyBlbnRpcmVseSwgZ2l2ZSBpdCBhIGRlZmF1bHRcclxuICAgIGlmICh0aGlzLmNvbmZpZykge1xyXG4gICAgICB0aGlzLmNvbmZpZy5sb2dnaW5nID0gdGhpcy5jb25maWcubG9nZ2luZyA/PyB7XHJcbiAgICAgICAgZGF0YUNhY2hlZDogZmFsc2UsXHJcbiAgICAgICAgY2FjaGVkRGF0YVJldHVybmVkOiBmYWxzZSxcclxuICAgICAgICBmcmVzaERhdGFSZXR1cm5lZDogZmFsc2UsXHJcbiAgICAgICAgY2FjaGVDbGVhcmVkOiBmYWxzZVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICBnZXRMaXN0SXRlbXMocmVxdWVzdDogTGlzdEl0ZW1zUmVxdWVzdCk6IE9ic2VydmFibGU8TGlzdEl0ZW1bXT4ge1xyXG4gICAgY29uc3QgYXBpVXJsID0gdGhpcy5jb25maWc/LmFwaVVybDtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gdGhpcy5jb25maWc/Lmxpc3RJdGVtc0VuZHBvaW50O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxMaXN0SXRlbVtdPihgJHthcGlVcmx9JHtlbmRwb2ludH1gLCByZXF1ZXN0KTtcclxuICB9XHJcblxyXG4gIGdldFBob3RvcygpOiBPYnNlcnZhYmxlPFBob3RvSXRlbVtdPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0OiBMaXN0SXRlbXNSZXF1ZXN0ID0ge1xyXG4gICAgICB1c2VybmFtZTogdGhpcy5jb25maWc/LnVzZXJuYW1lLFxyXG4gICAgICBwYXNzd29yZDogdGhpcy5jb25maWc/LnBhc3N3b3JkLFxyXG4gICAgICBzaXRlOiB0aGlzLmNvbmZpZz8ucGhvdG9zLnNpdGUsXHJcbiAgICAgIGxpc3Q6IHRoaXMuY29uZmlnPy5waG90b3MubGlzdCxcclxuICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXNUb1JldHJpZXZlOiB0aGlzLmNvbmZpZz8ucGhvdG9zLmFkZGl0aW9uYWxQcm9wZXJ0aWVzVG9SZXRyaWV2ZVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBvYnNlcnZhYmxlJCA9IHRoaXMuZ2V0TGlzdEl0ZW1zKHJlcXVlc3QpIGFzIE9ic2VydmFibGU8UGhvdG9JdGVtW10+O1xyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZz8uY2FjaGluZz8uZW5hYmxlZCkge1xyXG4gICAgICBpZiAodGhpcy5jYWNoZUV4cGlyZWQ8UGhvdG9JdGVtPih0aGlzLmNhY2hlPy5waG90b3MhKSkge1xyXG4gICAgICAgIC8vIEdldCB0aGUgZGF0YSBhbmQgY2FjaGUgaXRcclxuICAgICAgICBvYnNlcnZhYmxlJC5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNhY2hlIS5waG90b3MgPSB7XHJcbiAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgIGxhc3RVcGRhdGU6IERhdGVUaW1lLm5vdygpXHJcbiAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLmNvbmZpZz8ubG9nZ2luZz8uZGF0YUNhY2hlZCkge1xyXG4gICAgICAgICAgICBjb25zdCBsaWZlTWludXRlcyA9IHRoaXMuY29uZmlnLmNhY2hpbmc/LmxpZmVNaW51dGVzID8/IHRoaXMuZGVmYXVsdENhY2hlTGlmZU1pbnV0ZXM7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBQaG90b3MgY2FjaGVkIGZvciAke2xpZmVNaW51dGVzfSBtaW51dGVzYCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gQ2FjaGUgZXhpc3RzIGFuZCBoYXNuJ3QgZXhwaXJlZCB5ZXRcclxuICAgICAgICBpZiAodGhpcy5jb25maWcubG9nZ2luZz8uY2FjaGVkRGF0YVJldHVybmVkKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnUmV0dXJuaW5nIGNhY2hlZCBwaG90b3MnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvZih0aGlzLmNhY2hlIS5waG90b3MhLmRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2FjaGUgaXMgZWl0aGVyIGRpc2FibGVkIG9yIGV4cGlyZWQsIHJldHVybiBkYXRhIGZyb20gQVBJXHJcbiAgICBpZiAodGhpcy5jb25maWc/LmxvZ2dpbmc/LmZyZXNoRGF0YVJldHVybmVkKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdSZXR1cm5pbmcgZnJlc2ggcGhvdG9zJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9ic2VydmFibGUkO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlcnMocmVxdWVzdDogVXNlclJlcXVlc3QsIGlkPzogbnVtYmVyKTogT2JzZXJ2YWJsZTxVc2VyIHwgVXNlcltdPiB7XHJcbiAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmNvbmZpZz8uYXBpVXJsO1xyXG4gICAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmNvbmZpZz8udXNlcnNFbmRwb2ludDtcclxuICAgIFxyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZSQgPSB0aGlzLmh0dHAucG9zdDxVc2VyIHwgVXNlcltdPihgJHthcGlVcmx9JHtlbmRwb2ludH0vJHtpZCA/PyAnJ31gLCByZXF1ZXN0KTtcclxuXHJcbiAgICAvLyNyZWdpb24gU2luZ2xlIHVzZXJcclxuICAgIGlmIChpZCkge1xyXG4gICAgICByZXR1cm4gb2JzZXJ2YWJsZSQ7XHJcbiAgICB9XHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNyZWdpb24gTXVsdGlwbGUgdXNlcnNcclxuICAgIGlmICh0aGlzLmNvbmZpZz8uY2FjaGluZz8uZW5hYmxlZCkge1xyXG4gICAgICBpZiAodGhpcy5jYWNoZUV4cGlyZWQ8VXNlcj4odGhpcy5jYWNoZSEudXNlcnMhKSkge1xyXG4gICAgICAgIC8vIEdldCB0aGUgZGF0YSBhbmQgY2FjaGUgaXRcclxuICAgICAgICBvYnNlcnZhYmxlJC5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNhY2hlIS51c2VycyA9IHtcclxuICAgICAgICAgICAgZGF0YTogZGF0YSBhcyBVc2VyW10sXHJcbiAgICAgICAgICAgIGxhc3RVcGRhdGU6IERhdGVUaW1lLm5vdygpXHJcbiAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLmNvbmZpZz8ubG9nZ2luZz8uZGF0YUNhY2hlZCkge1xyXG4gICAgICAgICAgICBjb25zdCBsaWZlTWludXRlcyA9IHRoaXMuY29uZmlnLmNhY2hpbmc/LmxpZmVNaW51dGVzID8/IHRoaXMuZGVmYXVsdENhY2hlTGlmZU1pbnV0ZXM7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBVc2VycyBjYWNoZWQgZm9yICR7bGlmZU1pbnV0ZXN9IG1pbnV0ZXNgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBDYWNoZSBleGlzdHMgYW5kIGhhc24ndCBleHBpcmVkIHlldFxyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5sb2dnaW5nPy5jYWNoZWREYXRhUmV0dXJuZWQpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdSZXR1cm5pbmcgY2FjaGVkIHVzZXJzJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb2YodGhpcy5jYWNoZSEudXNlcnMhLmRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2FjaGUgaXMgZWl0aGVyIGRpc2FibGVkIG9yIGV4cGlyZWQsIHJldHVybiBkYXRhIGZyb20gQVBJXHJcbiAgICBpZiAodGhpcy5jb25maWc/LmxvZ2dpbmc/LmZyZXNoRGF0YVJldHVybmVkKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdSZXR1cm5pbmcgZnJlc2ggdXNlcnMnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb2JzZXJ2YWJsZSQ7XHJcbiAgICAvLyNlbmRyZWdpb25cclxuICB9XHJcblxyXG4gIGNsZWFyQ2FjaGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhY2hlID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZz8ubG9nZ2luZz8uY2FjaGVDbGVhcmVkKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdDYWNoZSBjbGVhcmVkJyk7XHJcbiAgICB9XHJcbiAgfVxyXG59Il19
|