@fundamental-ngx/core 0.39.1-rc.21 → 0.39.1-rc.22
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/dialog/base/dialog-config-base.class.d.ts +2 -0
- package/esm2020/dialog/base/dialog-config-base.class.mjs +3 -1
- package/esm2020/dialog/dialog-body/dialog-body.component.mjs +3 -3
- package/esm2020/icon/icon.component.mjs +1 -1
- package/esm2020/object-status/object-status.component.mjs +1 -1
- package/esm2020/select/select.component.mjs +1 -1
- package/esm2020/splitter/splitter-pane-container/splitter-pane-container.component.mjs +9 -3
- package/esm2020/theming/theming.service.mjs +11 -4
- package/fesm2015/fundamental-ngx-core-dialog.mjs +4 -2
- package/fesm2015/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-icon.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-object-status.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-splitter.mjs +8 -2
- package/fesm2015/fundamental-ngx-core-splitter.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-theming.mjs +10 -3
- package/fesm2015/fundamental-ngx-core-theming.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-dialog.mjs +4 -2
- package/fesm2020/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-icon.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-object-status.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-splitter.mjs +8 -2
- package/fesm2020/fundamental-ngx-core-splitter.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-theming.mjs +10 -3
- package/fesm2020/fundamental-ngx-core-theming.mjs.map +1 -1
- package/fundamental-ngx-core-v0.39.1-rc.22.tgz +0 -0
- package/object-status/object-status.component.d.ts +1 -1
- package/package.json +3 -3
- package/schematics/add-dependencies/index.js +4 -4
- package/select/select.component.d.ts +1 -1
- package/splitter/splitter-pane-container/splitter-pane-container.component.d.ts +5 -1
- package/theming/theming.service.d.ts +12 -6
- package/fundamental-ngx-core-v0.39.1-rc.21.tgz +0 -0
|
@@ -52,6 +52,8 @@ export declare class DialogConfigBase<T> implements DynamicComponentConfig {
|
|
|
52
52
|
verticalPadding?: boolean;
|
|
53
53
|
/** Whether the dialog should have horizontal padding. */
|
|
54
54
|
horizontalPadding?: boolean;
|
|
55
|
+
/** Whether to completely disable dialog body paddings. */
|
|
56
|
+
disablePaddings?: boolean;
|
|
55
57
|
/** Workaround for IE11, as `flex-grow: 1` on dialog body won't work when 'min-height' for dialog set
|
|
56
58
|
* There is another way to get dialog of wanted height by setting `min-height` for dialog body.
|
|
57
59
|
*/
|
|
@@ -17,6 +17,8 @@ export class DialogConfigBase {
|
|
|
17
17
|
this.verticalPadding = true;
|
|
18
18
|
/** Whether the dialog should have horizontal padding. */
|
|
19
19
|
this.horizontalPadding = true;
|
|
20
|
+
/** Whether to completely disable dialog body paddings. */
|
|
21
|
+
this.disablePaddings = false;
|
|
20
22
|
/** Whether the dialog should have responsive horizontal padding changing with Dialogs window width.
|
|
21
23
|
* max-width: 599px - .fd-dialog__content--s
|
|
22
24
|
* min-width: 600px and max-width: 1023px - .fd-dialog__content--m
|
|
@@ -28,4 +30,4 @@ export class DialogConfigBase {
|
|
|
28
30
|
this.closeOnNavigation = true;
|
|
29
31
|
}
|
|
30
32
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbmZpZy1iYXNlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGlhbG9nL2Jhc2UvZGlhbG9nLWNvbmZpZy1iYXNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJEQUEyRDtBQU8zRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQTdCO1FBeUJJLGtEQUFrRDtRQUNsRCxjQUFTLEdBQWEsS0FBSyxDQUFDO1FBVzVCLGlEQUFpRDtRQUNqRCxnQkFBVyxHQUFhLElBQUksQ0FBQztRQUU3QixtR0FBbUc7UUFDbkcsMkJBQXNCLEdBQWEsS0FBSyxDQUFDO1FBV3pDLHNEQUFzRDtRQUN0RCxvQkFBZSxHQUFhLElBQUksQ0FBQztRQUVqQyxrREFBa0Q7UUFDbEQsaUJBQVksR0FBYSxJQUFJLENBQUM7UUFFOUIsNEZBQTRGO1FBQzVGLGNBQVMsR0FBMEIsTUFBTSxDQUFDO1FBVzFDLHVEQUF1RDtRQUN2RCxvQkFBZSxHQUFhLElBQUksQ0FBQztRQUVqQyx5REFBeUQ7UUFDekQsc0JBQWlCLEdBQWEsSUFBSSxDQUFDO1FBRW5DLDBEQUEwRDtRQUMxRCxvQkFBZSxHQUFhLEtBQUssQ0FBQztRQU9sQzs7Ozs7YUFLSztRQUNMLHNCQUFpQixHQUFhLEtBQUssQ0FBQztRQUVwQyw4REFBOEQ7UUFDOUQsc0JBQWlCLEdBQWEsSUFBSSxDQUFDO0lBQ3ZDLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbmZlcnJhYmxlLXR5cGVzICovXG5cbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnRDb25maWcgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcblxuaW1wb3J0IHsgRGlhbG9nUG9zaXRpb24gfSBmcm9tICcuLi91dGlscy9kaWFsb2ctcG9zaXRpb24uY2xhc3MnO1xuXG5leHBvcnQgY2xhc3MgRGlhbG9nQ29uZmlnQmFzZTxUPiBpbXBsZW1lbnRzIER5bmFtaWNDb21wb25lbnRDb25maWcge1xuICAgIC8qKiBJZCBmb3IgdGhlIGRpYWxvZyBjb21wb25lbnQuIElmIG9taXR0ZWQsIGEgdW5pcXVlIG9uZSBpcyBnZW5lcmF0ZWQuICovXG4gICAgaWQ/OiBzdHJpbmc7XG5cbiAgICAvKiogV2lkdGggb2YgdGhlIGRpYWxvZy4gKi9cbiAgICB3aWR0aD86IHN0cmluZztcblxuICAgIC8qKiBIZWlnaHQgb2YgdGhlIGRpYWxvZy4gKi9cbiAgICBoZWlnaHQ/OiBzdHJpbmc7XG5cbiAgICAvKiogTWluaW11bSB3aWR0aCBvZiB0aGUgZGlhbG9nLiAqL1xuICAgIG1pbldpZHRoPzogc3RyaW5nO1xuXG4gICAgLyoqIE1pbmltdW0gaGVpZ2h0IG9mIHRoZSBkaWFsb2cuICovXG4gICAgbWluSGVpZ2h0Pzogc3RyaW5nO1xuXG4gICAgLyoqIE1heGltdW0gd2lkdGggb2YgdGhlIGRpYWxvZy4gKi9cbiAgICBtYXhXaWR0aD86IHN0cmluZztcblxuICAgIC8qKiBNYXhpbXVtIGhlaWdodCBvZiB0aGUgZGlhbG9nLiAqL1xuICAgIG1heEhlaWdodD86IHN0cmluZztcblxuICAgIC8qKiBQb3NpdGlvbiBvZiB0aGUgZGlhbG9nLiAqL1xuICAgIHBvc2l0aW9uPzogRGlhbG9nUG9zaXRpb247XG5cbiAgICAvKiogQXJpYSBNb2RhbCBmb3IgdGhlIGRpYWxvZyBjb21wb25lbnQgZWxlbWVudCAqL1xuICAgIGFyaWFNb2RhbD86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBBcmlhIGxhYmVsIGZvciB0aGUgZGlhbG9nIGNvbXBvbmVudCBlbGVtZW50LiAqL1xuICAgIGFyaWFMYWJlbD86IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogSWQgb2YgdGhlIGVsZW1lbnQgdGhhdCBsYWJlbHMgdGhlIGRpYWxvZy4gKi9cbiAgICBhcmlhTGFiZWxsZWRCeT86IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogSWQgb2YgdGhlIGVsZW1lbnQgdGhhdCBkZXNjcmliZXMgdGhlIGRpYWxvZy4gKi9cbiAgICBhcmlhRGVzY3JpYmVkQnk/OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGRpYWxvZyBzaG91bGQgaGF2ZSBhIGJhY2tkcm9wLiAqL1xuICAgIGhhc0JhY2tkcm9wPzogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogV2hldGhlciBjbGlja2luZyBvbiB0aGUgYmFja2Ryb3Agc2hvdWxkIGNsb3NlIHRoZSBkaWFsb2cuIE9ubHkgd29ya3MgaWYgaGFzQmFja2Ryb3AgaXMgdHJ1ZS4gKi9cbiAgICBiYWNrZHJvcENsaWNrQ2xvc2VhYmxlPzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIEdsb2JhbCBjbGFzc2VzIHRvIGFwcGx5IHRvIHRoZSBiYWNrZHJvcC4gKi9cbiAgICBiYWNrZHJvcENsYXNzPzogc3RyaW5nO1xuXG4gICAgLyoqIENsYXNzZXMgdG8gYXBwbHkgdG8gdGhlIGBmZC1kaWFsb2ctY29udGFpbmVyYCAgKi9cbiAgICBjb250YWluZXJDbGFzcz86IHN0cmluZztcblxuICAgIC8qKiBHbG9iYWwgY2xhc3NlcyB0byBhcHBseSB0byB0aGUgZGlhbG9nIHBhbmVsLiAqL1xuICAgIGRpYWxvZ1BhbmVsQ2xhc3M/OiBzdHJpbmc7XG5cbiAgICAvKiogV2hldGhlciB0aGUgZXNjYXBlIGtleSBzaG91bGQgY2xvc2UgdGhlIGRpYWxvZy4gKi9cbiAgICBlc2NLZXlDbG9zZWFibGU/OiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBkaWFsb2cgc2hvdWxkIGJlIGZvY3VzIHRyYXBwZWQuICovXG4gICAgZm9jdXNUcmFwcGVkPzogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogVGhlIGNvbnRhaW5lciB0aGF0IHRoZSBkaWFsb2cgaXMgYXBwZW5kZWQgdG8uIEJ5IGRlZmF1bHQsIGl0IGlzIGFwcGVuZGVkIHRvIHRoZSBib2R5LiAqL1xuICAgIGNvbnRhaW5lcj86IEhUTUxFbGVtZW50IHwgJ2JvZHknID0gJ2JvZHknO1xuXG4gICAgLyoqIERhdGEgdG8gcGFzcyBhbG9uZyB0byB0aGUgY29udGVudCB0aHJvdWdoIHRoZSBEaWFsb2dSZWYuICovXG4gICAgZGF0YT86IFQ7XG5cbiAgICAvKiogV2hldGhlciB0aGUgZGlhbG9nIHNob3VsZCBiZSBkaXNwbGF5ZWQgaW4gbW9iaWxlIG1vZGUuICovXG4gICAgbW9iaWxlPzogYm9vbGVhbjtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBkaWFsb2cgaW4gbW9iaWxlIG1vZGUgc2hvdWxkIGhhdmUgb3V0ZXIgc3BhY2UuICovXG4gICAgbW9iaWxlT3V0ZXJTcGFjaW5nPzogYm9vbGVhbjtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBkaWFsb2cgc2hvdWxkIGhhdmUgdmVydGljYWwgcGFkZGluZy4gKi9cbiAgICB2ZXJ0aWNhbFBhZGRpbmc/OiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBkaWFsb2cgc2hvdWxkIGhhdmUgaG9yaXpvbnRhbCBwYWRkaW5nLiAqL1xuICAgIGhvcml6b250YWxQYWRkaW5nPzogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogV2hldGhlciB0byBjb21wbGV0ZWx5IGRpc2FibGUgZGlhbG9nIGJvZHkgcGFkZGluZ3MuICovXG4gICAgZGlzYWJsZVBhZGRpbmdzPzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIFdvcmthcm91bmQgZm9yIElFMTEsIGFzIGBmbGV4LWdyb3c6IDFgIG9uIGRpYWxvZyBib2R5IHdvbid0IHdvcmsgd2hlbiAnbWluLWhlaWdodCcgZm9yIGRpYWxvZyBzZXRcbiAgICAgKiBUaGVyZSBpcyBhbm90aGVyIHdheSB0byBnZXQgZGlhbG9nIG9mIHdhbnRlZCBoZWlnaHQgYnkgc2V0dGluZyBgbWluLWhlaWdodGAgZm9yIGRpYWxvZyBib2R5LlxuICAgICAqL1xuICAgIGJvZHlNaW5IZWlnaHQ/OiBzdHJpbmc7XG5cbiAgICAvKiogV2hldGhlciB0aGUgZGlhbG9nIHNob3VsZCBoYXZlIHJlc3BvbnNpdmUgaG9yaXpvbnRhbCBwYWRkaW5nIGNoYW5naW5nIHdpdGggRGlhbG9ncyB3aW5kb3cgd2lkdGguXG4gICAgICogbWF4LXdpZHRoOiA1OTlweCAgICAgICAgICAgICAgICAgICAgICAgICAtIC5mZC1kaWFsb2dfX2NvbnRlbnQtLXNcbiAgICAgKiBtaW4td2lkdGg6IDYwMHB4IGFuZCBtYXgtd2lkdGg6IDEwMjNweCAgIC0gLmZkLWRpYWxvZ19fY29udGVudC0tbVxuICAgICAqIG1pbi13aWR0aDogMTAyNHB4IGFuZCBtYXgtd2lkdGg6IDE0MzlweCAgLSAuZmQtZGlhbG9nX19jb250ZW50LS1sXG4gICAgICogbWluLXdpZHRoOiAxNDQwcHggICAgICAgICAgICAgICAgICAgICAgICAtIC5mZC1kaWFsb2dfX2NvbnRlbnQtLXhsXG4gICAgICogKi9cbiAgICByZXNwb25zaXZlUGFkZGluZz86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRvIGNsb3NlIHRoZSBkaWFsb2cgb24gcm91dGVyIG5hdmlnYXRpb24gc3RhcnQuICovXG4gICAgY2xvc2VPbk5hdmlnYXRpb24/OiBib29sZWFuID0gdHJ1ZTtcbn1cbiJdfQ==
|
|
@@ -33,7 +33,7 @@ export class DialogBodyComponent {
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
DialogBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: DialogBodyComponent, deps: [{ token: i0.ElementRef }, { token: i1.DialogConfig, optional: true }, { token: i2.DialogRef, optional: true }, { token: ScrollbarDirective }], target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
-
DialogBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: DialogBodyComponent, selector: "fd-dialog-body", host: { properties: { "class.fd-dialog__body": "true", "class.fd-dialog__body--no-vertical-padding": "!dialogConfig.verticalPadding", "class.fd-dialog__body--no-horizontal-padding": "!dialogConfig.horizontalPadding", "style.min-height": "dialogConfig.bodyMinHeight", "style.padding": "\"1rem\"" } }, providers: [
|
|
36
|
+
DialogBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: DialogBodyComponent, selector: "fd-dialog-body", host: { properties: { "class.fd-dialog__body": "true", "class.fd-dialog__body--no-vertical-padding": "!dialogConfig.verticalPadding", "class.fd-dialog__body--no-horizontal-padding": "!dialogConfig.horizontalPadding", "style.min-height": "dialogConfig.bodyMinHeight", "style.padding": "dialogConfig.disablePaddings ? 0 : \"1rem\"" } }, providers: [
|
|
37
37
|
{
|
|
38
38
|
provide: FD_DIALOG_BODY_COMPONENT,
|
|
39
39
|
useExisting: DialogBodyComponent
|
|
@@ -46,7 +46,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
|
|
|
46
46
|
'[class.fd-dialog__body--no-vertical-padding]': '!dialogConfig.verticalPadding',
|
|
47
47
|
'[class.fd-dialog__body--no-horizontal-padding]': '!dialogConfig.horizontalPadding',
|
|
48
48
|
'[style.min-height]': 'dialogConfig.bodyMinHeight',
|
|
49
|
-
'[style.padding]': '"1rem"'
|
|
49
|
+
'[style.padding]': 'dialogConfig.disablePaddings ? 0 : "1rem"'
|
|
50
50
|
}, providers: [
|
|
51
51
|
{
|
|
52
52
|
provide: FD_DIALOG_BODY_COMPONENT,
|
|
@@ -61,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
|
|
|
61
61
|
type: Inject,
|
|
62
62
|
args: [ScrollbarDirective]
|
|
63
63
|
}] }]; } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWJvZHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGlhbG9nL2RpYWxvZy1ib2R5L2RpYWxvZy1ib2R5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpYWxvZy9kaWFsb2ctYm9keS9kaWFsb2ctYm9keS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7O0FBRXJFOzs7Ozs7OztHQVFHO0FBbUJILE1BQU0sT0FBTyxtQkFBbUI7SUFDNUIsY0FBYztJQUNkLFlBQ1ksTUFBa0IsRUFDUCxZQUEwQixFQUMxQixTQUFvQixFQUNILG1CQUF1QztRQUhuRSxXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQ1AsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNILHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFFM0UsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUN0RCxDQUFDO0lBRUQsY0FBYztJQUNkLFVBQVU7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQzs7Z0hBZFEsbUJBQW1CLGlJQU1oQixrQkFBa0I7b0dBTnJCLG1CQUFtQix3WEFSakI7UUFDUDtZQUNJLE9BQU8sRUFBRSx3QkFBd0I7WUFDakMsV0FBVyxFQUFFLG1CQUFtQjtTQUNuQztLQUNKLGtGQy9CTCx5TEFJQTsyRkQ4QmEsbUJBQW1CO2tCQWxCL0IsU0FBUzsrQkFDSSxnQkFBZ0IsUUFFcEI7d0JBQ0YseUJBQXlCLEVBQUUsTUFBTTt3QkFDakMsOENBQThDLEVBQUUsK0JBQStCO3dCQUMvRSxnREFBZ0QsRUFBRSxpQ0FBaUM7d0JBQ25GLG9CQUFvQixFQUFFLDRCQUE0Qjt3QkFDbEQsaUJBQWlCLEVBQUUsMkNBQTJDO3FCQUNqRSxhQUNVO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSx3QkFBd0I7NEJBQ2pDLFdBQVcscUJBQXFCO3lCQUNuQztxQkFDSixrQkFDZSxDQUFDLGtCQUFrQixDQUFDOzswQkFNL0IsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZEX0RJQUxPR19CT0RZX0NPTVBPTkVOVCB9IGZyb20gJy4uL3Rva2Vucyc7XG5cbmltcG9ydCB7IERpYWxvZ0NvbmZpZyB9IGZyb20gJy4uL3V0aWxzL2RpYWxvZy1jb25maWcuY2xhc3MnO1xuaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnLi4vdXRpbHMvZGlhbG9nLXJlZi5jbGFzcyc7XG5pbXBvcnQgeyBTY3JvbGxiYXJEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2Nyb2xsYmFyJztcblxuLyoqXG4gKiBBcHBsaWVzIGZ1bmRhbWVudGFsIGxheW91dCBhbmQgc3R5bGluZyB0byB0aGUgY29udGVudHMgb2YgYSBkaWFsb2cgYm9keS5cbiAqXG4gKiBgYGBodG1sXG4gKiA8ZmQtZGlhbG9nLWJvZHk+XG4gKiAgICAgPCEtLSBDb250ZW50IC0tPlxuICogPC9mZC1kaWFsb2ctYm9keT5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLWRpYWxvZy1ib2R5JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2RpYWxvZy1ib2R5LmNvbXBvbmVudC5odG1sJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MuZmQtZGlhbG9nX19ib2R5XSc6ICd0cnVlJyxcbiAgICAgICAgJ1tjbGFzcy5mZC1kaWFsb2dfX2JvZHktLW5vLXZlcnRpY2FsLXBhZGRpbmddJzogJyFkaWFsb2dDb25maWcudmVydGljYWxQYWRkaW5nJyxcbiAgICAgICAgJ1tjbGFzcy5mZC1kaWFsb2dfX2JvZHktLW5vLWhvcml6b250YWwtcGFkZGluZ10nOiAnIWRpYWxvZ0NvbmZpZy5ob3Jpem9udGFsUGFkZGluZycsXG4gICAgICAgICdbc3R5bGUubWluLWhlaWdodF0nOiAnZGlhbG9nQ29uZmlnLmJvZHlNaW5IZWlnaHQnLFxuICAgICAgICAnW3N0eWxlLnBhZGRpbmddJzogJ2RpYWxvZ0NvbmZpZy5kaXNhYmxlUGFkZGluZ3MgPyAwIDogXCIxcmVtXCInXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRfRElBTE9HX0JPRFlfQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IERpYWxvZ0JvZHlDb21wb25lbnRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtTY3JvbGxiYXJEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ0JvZHlDb21wb25lbnQge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2VsUmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZGlhbG9nQ29uZmlnOiBEaWFsb2dDb25maWcsXG4gICAgICAgIEBPcHRpb25hbCgpIHB1YmxpYyBkaWFsb2dSZWY6IERpYWxvZ1JlZixcbiAgICAgICAgQEluamVjdChTY3JvbGxiYXJEaXJlY3RpdmUpIHByaXZhdGUgX3Njcm9sbGJhckRpcmVjdGl2ZTogU2Nyb2xsYmFyRGlyZWN0aXZlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuX3Njcm9sbGJhckRpcmVjdGl2ZS5vdmVycmlkZVRhYmluZGV4ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBlbGVtZW50UmVmKCk6IEVsZW1lbnRSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbFJlZjtcbiAgICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48ZGl2IGNsYXNzPVwiZmQtZGlhbG9nX19sb2FkZXJcIiAqbmdJZj1cImRpYWxvZ1JlZi5vbkxvYWRpbmcgfCBhc3luY1wiPlxuICAgIDxmZC1idXN5LWluZGljYXRvciBbbG9hZGluZ109XCJ0cnVlXCIgc2l6ZT1cImxcIj48L2ZkLWJ1c3ktaW5kaWNhdG9yPlxuPC9kaXY+XG4iXX0=
|
|
@@ -91,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
|
|
|
91
91
|
type: HostBinding,
|
|
92
92
|
args: ['class.fd-list__navigation-item-icon']
|
|
93
93
|
}], buildComponentCssClass: [] } });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9pY29uL2ljb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFHTCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBbUIsTUFBTSw0QkFBNEIsQ0FBQztBQUU1RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBSTdDLE1BQU0sZ0JBQWdCLEdBQUcsVUFBVSxDQUFDO0FBQ3BDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQztBQUN6QixNQUFNLCtCQUErQixHQUFHLDJCQUEyQixDQUFDO0FBRXBFOzs7Ozs7R0FNRztBQWlCSCxNQUFNLE9BQU8sYUFBYTtJQTBCdEIsY0FBYztJQUNkLFlBQW9CLFdBQXVCO1FBQXZCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBckIzQzs7O1dBR0c7UUFFSCxTQUFJLEdBQWEsV0FBVyxDQUFDO1FBVzdCLDhEQUE4RDtRQUU5RCx3QkFBbUIsR0FBRyxLQUFLLENBQUM7SUFHa0IsQ0FBQztJQUUvQyxjQUFjO0lBQ2QsUUFBUTtRQUNKLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVztRQUNQLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7OztPQUlHO0lBRUgsc0JBQXNCO1FBQ2xCLE9BQU87WUFDSCxJQUFJLENBQUMsS0FBSztZQUNWLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsZ0JBQWdCLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25GLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUcsZ0JBQWdCLElBQUksVUFBVSxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNyRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssMkJBQTJCO2dCQUNuRCxDQUFDLENBQUMsR0FBRyxnQkFBZ0IsSUFBSSwrQkFBK0IsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUN6RSxDQUFDLENBQUMsRUFBRTtTQUNYLENBQUM7SUFDTixDQUFDO0lBRUQsY0FBYztJQUNkLFVBQVU7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQzs7MEdBM0RRLGFBQWE7OEZBQWIsYUFBYSw4UkFUWDtRQUNQO1lBQ0ksT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsYUFBYTtTQUM3QjtLQUNKLCtDQVZTLEVBQUU7QUEwRFo7SUFBQyxhQUFhOzs7OzJEQVViOzJGQXREUSxhQUFhO2tCQWhCekIsU0FBUzsrQkFDSSxTQUFTLFlBQ1QsRUFBRSxRQUVOO3dCQUNGLElBQUksRUFBRSxjQUFjO3FCQUN2QixhQUNVO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsZUFBZTt5QkFDN0I7cUJBQ0osaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTtpR0FNdEMsS0FBSztzQkFBYixLQUFLO2dCQU9OLElBQUk7c0JBREgsS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBTU4sU0FBUztzQkFGUixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGlCQUFpQjtnQkFLOUIsbUJBQW1CO3NCQURsQixXQUFXO3VCQUFDLHFDQUFxQztnQkFzQmxELHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFwcGx5Q3NzQ2xhc3MsIENzc0NsYXNzQnVpbGRlciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRkRfSUNPTl9DT01QT05FTlQgfSBmcm9tICcuL3Rva2Vucyc7XG5cbmV4cG9ydCB0eXBlIEljb25Gb250ID0gJ1NBUC1pY29ucycgfCAnQnVzaW5lc3NTdWl0ZUluQXBwU3ltYm9scycgfCAnU0FQLWljb25zLVROVCc7XG5cbmNvbnN0IFNBUF9JQ09OU19QUkVGSVggPSAnc2FwLWljb24nO1xuY29uc3QgVE5UX1BSRUZJWCA9ICdUTlQnO1xuY29uc3QgQnVzaW5lc3NTdWl0ZUluQXBwU3ltYm9sX1BSRUZJWCA9ICdidXNpbmVzc1N1aXRlSW5BcHBTeW1ib2xzJztcblxuLyoqXG4gKiBUaGUgY29tcG9uZW50IHRoYXQgcmVwcmVzZW50cyBhbiBpY29uLlxuICpcbiAqIGBgYGh0bWxcbiAqIDxmZC1pY29uIGZvbnQ9XCJTQVAtaWNvbnMtVE5UXCIgZ2x5cGg9XCJleGNlcHRpb25zXCI+PC9mZC1pY29uPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtaWNvbicsXG4gICAgdGVtcGxhdGU6IGBgLFxuICAgIHN0eWxlVXJsczogWycuL2ljb24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIHJvbGU6ICdwcmVzZW50YXRpb24nXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRfSUNPTl9DT01QT05FTlQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogSWNvbkNvbXBvbmVudFxuICAgICAgICB9XG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEljb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgQ3NzQ2xhc3NCdWlsZGVyIHtcbiAgICAvKiogVGhlIGljb24gbmFtZSB0byBkaXNwbGF5LiBTZWUgdGhlIGljb24gcGFnZSBmb3IgdGhlIGxpc3Qgb2YgaWNvbnNcbiAgICAgKiBoZXJlOiBodHRwczovL3NhcC5naXRodWIuaW8vZnVuZGFtZW50YWwtbmd4L2ljb25cbiAgICAgKiAqL1xuICAgIEBJbnB1dCgpIGdseXBoOiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaWNvbiBmb250XG4gICAgICogT3B0aW9ucyBpbmNsdWRlOiAnU0FQLWljb25zJywgJ0J1c2luZXNzU3VpdGVJbkFwcFN5bWJvbHMnIGFuZCAnU0FQLWljb25zLVROVCdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZvbnQ6IEljb25Gb250ID0gJ1NBUC1pY29ucyc7XG5cbiAgICAvKiogdXNlcidzIGN1c3RvbSBjbGFzc2VzICovXG4gICAgQElucHV0KClcbiAgICBjbGFzczogc3RyaW5nO1xuXG4gICAgLyoqIEFyaWEtbGFiZWwgZm9yIEljb24uICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbCcpXG4gICAgYXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFdoZXRoZXIgb3Igbm90IHRoaXMgaWNvbiBpcyBmb3IgYSBsaXN0IG5hdmlnYXRpb24gaXRlbS4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX25hdmlnYXRpb24taXRlbS1pY29uJylcbiAgICBfbmF2aWdhdGlvbkl0ZW1JY29uID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIENzc0NsYXNzQnVpbGRlciBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb25cbiAgICAgKiBmdW5jdGlvbiBtdXN0IHJldHVybiBzaW5nbGUgc3RyaW5nXG4gICAgICogZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIG9yZGVyIHdoaWNoIGNzcyBjbGFzc2VzIGFyZSBhcHBsaWVkXG4gICAgICovXG4gICAgQGFwcGx5Q3NzQ2xhc3NcbiAgICBidWlsZENvbXBvbmVudENzc0NsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRoaXMuY2xhc3MsXG4gICAgICAgICAgICB0aGlzLmdseXBoICYmIHRoaXMuZm9udCA9PT0gJ1NBUC1pY29ucycgPyBgJHtTQVBfSUNPTlNfUFJFRklYfS0tJHt0aGlzLmdseXBofWAgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuZ2x5cGggJiYgdGhpcy5mb250ID09PSAnU0FQLWljb25zLVROVCcgPyBgJHtTQVBfSUNPTlNfUFJFRklYfS0ke1ROVF9QUkVGSVh9LS0ke3RoaXMuZ2x5cGh9YCA6ICcnLFxuICAgICAgICAgICAgdGhpcy5nbHlwaCAmJiB0aGlzLmZvbnQgPT09ICdCdXNpbmVzc1N1aXRlSW5BcHBTeW1ib2xzJ1xuICAgICAgICAgICAgICAgID8gYCR7U0FQX0lDT05TX1BSRUZJWH0tJHtCdXNpbmVzc1N1aXRlSW5BcHBTeW1ib2xfUFJFRklYfS0tJHt0aGlzLmdseXBofWBcbiAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBlbGVtZW50UmVmKCk6IEVsZW1lbnRSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -116,4 +116,4 @@ export const buildObjectStatusCssClasses = (data) => [
|
|
|
116
116
|
data.clickable ? 'fd-object-status--link' : '',
|
|
117
117
|
data.class || ''
|
|
118
118
|
];
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXN0YXR1cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9vYmplY3Qtc3RhdHVzL29iamVjdC1zdGF0dXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLGlCQUFpQixFQUVwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUE2QyxNQUFNLDRCQUE0QixDQUFDO0FBQ3RHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7OztBQW1DdEQsTUFBTSxPQUFPLHFCQUFxQjtJQW1EOUIsY0FBYztJQUNkLFlBQW9CLFdBQXVCO1FBQXZCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBaEIzQyw4Q0FBOEM7UUFFOUMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQiw2Q0FBNkM7UUFFN0MsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixvREFBb0Q7UUFFcEQsVUFBSyxHQUFHLEtBQUssQ0FBQztJQU1nQyxDQUFDO0lBRS9DLGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGNBQWM7SUFDZCxRQUFRO1FBQ0osSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7O09BSUc7SUFFSCxzQkFBc0I7UUFDbEIsT0FBTywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsY0FBYztJQUNkLFVBQVU7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQzs7a0hBN0VRLHFCQUFxQjtzR0FBckIscUJBQXFCLGdVQVZuQjtRQUNQO1lBQ0ksT0FBTyxFQUFFLDBCQUEwQjtZQUNuQyxXQUFXLEVBQUUscUJBQXFCO1NBQ3JDO0tBQ0osK0NBdkJTOzs7Ozs7Ozs7Ozs7OztLQWNUO0FBbUZEO0lBQUMsYUFBYTs7OzttRUFHYjsyRkF4RVEscUJBQXFCO2tCQS9CakMsU0FBUzsrQkFFSSxvQkFBb0IsWUFDcEI7Ozs7Ozs7Ozs7Ozs7O0tBY1QsaUJBRWMsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsMEJBQTBCOzRCQUNuQyxXQUFXLHVCQUF1Qjt5QkFDckM7cUJBQ0osUUFDSzt3QkFDRixpQkFBaUIsRUFBRSxvQkFBb0I7cUJBQzFDO2lHQUtELEtBQUs7c0JBREosS0FBSztnQkFTTixNQUFNO3NCQURMLEtBQUs7Z0JBT04sS0FBSztzQkFESixLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFPTixjQUFjO3NCQURiLEtBQUs7Z0JBUU4sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQXlCTixzQkFBc0I7QUFtQjFCLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLENBQUMsSUFBc0IsRUFBWSxFQUFFLENBQUM7SUFDN0Usa0JBQWtCO0lBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxFQUFFO0lBQ2pELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxFQUFFO0lBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDckQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtJQUNsRixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsRUFBRTtJQUM5QyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7Q0FDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFwcGx5Q3NzQ2xhc3MsIENzc0NsYXNzQnVpbGRlciwgTnVsbGFibGVPYmplY3QsIE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRkRfT0JKRUNUX1NUQVRVU19DT01QT05FTlQgfSBmcm9tICcuL3Rva2Vucyc7XG5cbmV4cG9ydCB0eXBlIE9iamVjdFN0YXR1cyA9ICduZWdhdGl2ZScgfCAnY3JpdGljYWwnIHwgJ3Bvc2l0aXZlJyB8ICdpbmZvcm1hdGl2ZScgfCAnbmV1dHJhbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmQtb2JqZWN0LXN0YXR1c10nLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxmZC1pY29uXG4gICAgICAgICAgICAqbmdJZj1cImdseXBoXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmQtb2JqZWN0LXN0YXR1c19faWNvblwiXG4gICAgICAgICAgICBbZ2x5cGhdPVwiZ2x5cGhcIlxuICAgICAgICAgICAgW2F0dHIucm9sZV09XCJnbHlwaEFyaWFMYWJlbCA/ICdwcmVzZW50YXRpb24nIDogJydcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJnbHlwaEFyaWFMYWJlbFwiXG4gICAgICAgID5cbiAgICAgICAgPC9mZC1pY29uPlxuXG4gICAgICAgIDxzcGFuICpuZ0lmPVwibGFiZWxcIiBjbGFzcz1cImZkLW9iamVjdC1zdGF0dXNfX3RleHRcIiBbY2xhc3NdPVwiX3RleHRDbGFzc1wiPnt7IGxhYmVsIH19PC9zcGFuPlxuXG4gICAgICAgIDwhLS0gREVQUkVDQVRFRCAtIFJlbW92ZSBpbiB2MC4yMy4wIC0tPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgYCxcbiAgICBzdHlsZVVybHM6IFsnLi9vYmplY3Qtc3RhdHVzLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRfT0JKRUNUX1NUQVRVU19DT01QT05FTlQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogT2JqZWN0U3RhdHVzQ29tcG9uZW50XG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLnRhYmluZGV4XSc6ICdjbGlja2FibGUgPyAwIDogLTEnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RTdGF0dXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgQ3NzQ2xhc3NCdWlsZGVyIHtcbiAgICAvKiogVXNlcidzIGN1c3RvbSBjbGFzc2VzICovXG4gICAgQElucHV0KClcbiAgICBjbGFzczogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHN0YXR1cyByZXByZXNlbnRlZCBieSB0aGUgT2JqZWN0IFN0YXR1cy5cbiAgICAgKiBDYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6ICduZWdhdGl2ZScgfCAnY3JpdGljYWwnIHwgJ3Bvc2l0aXZlJyB8ICdpbmZvcm1hdGl2ZSdcbiAgICAgKiBGb3IgZGVmYXVsdCBPYmplY3QgU3RhdHVzIG9taXQgdGhpcyBwcm9wZXJ0eVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhdHVzOiBOdWxsYWJsZTxPYmplY3RTdGF0dXM+
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXN0YXR1cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9vYmplY3Qtc3RhdHVzL29iamVjdC1zdGF0dXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLGlCQUFpQixFQUVwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUE2QyxNQUFNLDRCQUE0QixDQUFDO0FBQ3RHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7OztBQW1DdEQsTUFBTSxPQUFPLHFCQUFxQjtJQW1EOUIsY0FBYztJQUNkLFlBQW9CLFdBQXVCO1FBQXZCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBaEIzQyw4Q0FBOEM7UUFFOUMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQiw2Q0FBNkM7UUFFN0MsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixvREFBb0Q7UUFFcEQsVUFBSyxHQUFHLEtBQUssQ0FBQztJQU1nQyxDQUFDO0lBRS9DLGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGNBQWM7SUFDZCxRQUFRO1FBQ0osSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7O09BSUc7SUFFSCxzQkFBc0I7UUFDbEIsT0FBTywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsY0FBYztJQUNkLFVBQVU7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQzs7a0hBN0VRLHFCQUFxQjtzR0FBckIscUJBQXFCLGdVQVZuQjtRQUNQO1lBQ0ksT0FBTyxFQUFFLDBCQUEwQjtZQUNuQyxXQUFXLEVBQUUscUJBQXFCO1NBQ3JDO0tBQ0osK0NBdkJTOzs7Ozs7Ozs7Ozs7OztLQWNUO0FBbUZEO0lBQUMsYUFBYTs7OzttRUFHYjsyRkF4RVEscUJBQXFCO2tCQS9CakMsU0FBUzsrQkFFSSxvQkFBb0IsWUFDcEI7Ozs7Ozs7Ozs7Ozs7O0tBY1QsaUJBRWMsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsMEJBQTBCOzRCQUNuQyxXQUFXLHVCQUF1Qjt5QkFDckM7cUJBQ0osUUFDSzt3QkFDRixpQkFBaUIsRUFBRSxvQkFBb0I7cUJBQzFDO2lHQUtELEtBQUs7c0JBREosS0FBSztnQkFTTixNQUFNO3NCQURMLEtBQUs7Z0JBT04sS0FBSztzQkFESixLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFPTixjQUFjO3NCQURiLEtBQUs7Z0JBUU4sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQXlCTixzQkFBc0I7QUFtQjFCLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLENBQUMsSUFBc0IsRUFBWSxFQUFFLENBQUM7SUFDN0Usa0JBQWtCO0lBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxFQUFFO0lBQ2pELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxFQUFFO0lBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDckQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtJQUNsRixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsRUFBRTtJQUM5QyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7Q0FDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFwcGx5Q3NzQ2xhc3MsIENzc0NsYXNzQnVpbGRlciwgTnVsbGFibGVPYmplY3QsIE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRkRfT0JKRUNUX1NUQVRVU19DT01QT05FTlQgfSBmcm9tICcuL3Rva2Vucyc7XG5cbmV4cG9ydCB0eXBlIE9iamVjdFN0YXR1cyA9ICduZWdhdGl2ZScgfCAnY3JpdGljYWwnIHwgJ3Bvc2l0aXZlJyB8ICdpbmZvcm1hdGl2ZScgfCAnbmV1dHJhbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmQtb2JqZWN0LXN0YXR1c10nLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxmZC1pY29uXG4gICAgICAgICAgICAqbmdJZj1cImdseXBoXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmQtb2JqZWN0LXN0YXR1c19faWNvblwiXG4gICAgICAgICAgICBbZ2x5cGhdPVwiZ2x5cGhcIlxuICAgICAgICAgICAgW2F0dHIucm9sZV09XCJnbHlwaEFyaWFMYWJlbCA/ICdwcmVzZW50YXRpb24nIDogJydcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJnbHlwaEFyaWFMYWJlbFwiXG4gICAgICAgID5cbiAgICAgICAgPC9mZC1pY29uPlxuXG4gICAgICAgIDxzcGFuICpuZ0lmPVwibGFiZWxcIiBjbGFzcz1cImZkLW9iamVjdC1zdGF0dXNfX3RleHRcIiBbY2xhc3NdPVwiX3RleHRDbGFzc1wiPnt7IGxhYmVsIH19PC9zcGFuPlxuXG4gICAgICAgIDwhLS0gREVQUkVDQVRFRCAtIFJlbW92ZSBpbiB2MC4yMy4wIC0tPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgYCxcbiAgICBzdHlsZVVybHM6IFsnLi9vYmplY3Qtc3RhdHVzLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRfT0JKRUNUX1NUQVRVU19DT01QT05FTlQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogT2JqZWN0U3RhdHVzQ29tcG9uZW50XG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLnRhYmluZGV4XSc6ICdjbGlja2FibGUgPyAwIDogLTEnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RTdGF0dXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgQ3NzQ2xhc3NCdWlsZGVyIHtcbiAgICAvKiogVXNlcidzIGN1c3RvbSBjbGFzc2VzICovXG4gICAgQElucHV0KClcbiAgICBjbGFzczogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHN0YXR1cyByZXByZXNlbnRlZCBieSB0aGUgT2JqZWN0IFN0YXR1cy5cbiAgICAgKiBDYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6ICduZWdhdGl2ZScgfCAnY3JpdGljYWwnIHwgJ3Bvc2l0aXZlJyB8ICdpbmZvcm1hdGl2ZSdcbiAgICAgKiBGb3IgZGVmYXVsdCBPYmplY3QgU3RhdHVzIG9taXQgdGhpcyBwcm9wZXJ0eVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhdHVzOiBOdWxsYWJsZTxPYmplY3RTdGF0dXM+O1xuXG4gICAgLyoqXG4gICAgICogR2x5cGggKGljb24pIG9mIHRoZSBPYmplY3QgU3RhdHVzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGg6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogRGVmaW5lIHRoZSB0ZXh0IGNvbnRlbnQgb2YgdGhlIE9iamVjdCBTdGF0dXMgKi9cbiAgICBASW5wdXQoKVxuICAgIGxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogTGFiZWwgYXBwbGllZCB0byBnbHlwaCBlbGVtZW50LCBzaG91bGQgYmUgdXNlZCB3aGVuIHRoZXJlIGlzIG5vIHRleHQgaW5jbHVkZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdseXBoQXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBBIG51bWJlciByZXByZXNlbnRpbmcgdGhlIGluZGljYXRpb24gY29sb3IuXG4gICAgICogT3B0aW9uIGluY2x1ZGVzIG51bWJlcnMgZnJvbSAxIHRvIDhcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGluZGljYXRpb25Db2xvcjogTnVsbGFibGU8bnVtYmVyPjtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBPYmplY3QgU3RhdHVzIGlzIGNsaWNrYWJsZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNsaWNrYWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIE9iamVjdCBTdGF0dXMgaXMgaW52ZXJ0ZWQuICovXG4gICAgQElucHV0KClcbiAgICBpbnZlcnRlZCA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIE9iamVjdCBTdGF0dXMgaXMgaW4gTGFyZ2UgRGVzaWduLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGFyZ2UgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3RleHRDbGFzczogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBDc3NDbGFzc0J1aWxkZXIgaW50ZXJmYWNlIGltcGxlbWVudGF0aW9uXG4gICAgICogZnVuY3Rpb24gbXVzdCByZXR1cm4gc2luZ2xlIHN0cmluZ1xuICAgICAqIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBvcmRlciB3aGljaCBjc3MgY2xhc3NlcyBhcmUgYXBwbGllZFxuICAgICAqL1xuICAgIEBhcHBseUNzc0NsYXNzXG4gICAgYnVpbGRDb21wb25lbnRDc3NDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBidWlsZE9iamVjdFN0YXR1c0Nzc0NsYXNzZXModGhpcyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBlbGVtZW50UmVmKCk6IEVsZW1lbnRSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmO1xuICAgIH1cbn1cblxudHlwZSBPYmplY3RTdGF0dXNEYXRhID0gTnVsbGFibGVPYmplY3Q8e1xuICAgIHN0YXR1czogT2JqZWN0U3RhdHVzO1xuICAgIGludmVydGVkOiBib29sZWFuO1xuICAgIGxhcmdlOiBib29sZWFuO1xuICAgIGluZGljYXRpb25Db2xvcjogbnVtYmVyO1xuICAgIGNsaWNrYWJsZTogYm9vbGVhbjtcbiAgICBjbGFzczogc3RyaW5nO1xufT47XG5cbmV4cG9ydCBjb25zdCBidWlsZE9iamVjdFN0YXR1c0Nzc0NsYXNzZXMgPSAoZGF0YTogT2JqZWN0U3RhdHVzRGF0YSk6IHN0cmluZ1tdID0+IFtcbiAgICAnZmQtb2JqZWN0LXN0YXR1cycsXG4gICAgZGF0YS5pbnZlcnRlZCA/ICdmZC1vYmplY3Qtc3RhdHVzLS1pbnZlcnRlZCcgOiAnJyxcbiAgICBkYXRhLmxhcmdlID8gJ2ZkLW9iamVjdC1zdGF0dXMtLWxhcmdlJyA6ICcnLFxuICAgIGRhdGEuc3RhdHVzID8gYGZkLW9iamVjdC1zdGF0dXMtLSR7ZGF0YS5zdGF0dXN9YCA6ICcnLFxuICAgIGRhdGEuaW5kaWNhdGlvbkNvbG9yID8gYGZkLW9iamVjdC1zdGF0dXMtLWluZGljYXRpb24tJHtkYXRhLmluZGljYXRpb25Db2xvcn1gIDogJycsXG4gICAgZGF0YS5jbGlja2FibGUgPyAnZmQtb2JqZWN0LXN0YXR1cy0tbGluaycgOiAnJyxcbiAgICBkYXRhLmNsYXNzIHx8ICcnXG5dO1xuIl19
|
|
@@ -649,4 +649,4 @@ export class DeprecatedSelectCSSClasses {
|
|
|
649
649
|
};
|
|
650
650
|
}
|
|
651
651
|
}
|
|
652
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUNMLFNBQVMsRUFJVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEVBRUosV0FBVyxFQUNYLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFjLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE9BQU8sRUFBK0IsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdkgsT0FBTyxFQUFtQix1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBbUIsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVB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dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFxRTlDLG9CQUFvQjtzQkFEbkIsWUFBWTt1QkFBQyxlQUFlO2dCQStEekIsV0FBVztzQkFEZCxLQUFLO2dCQWtGTixNQUFNO3NCQURMLFlBQVk7dUJBQUMsT0FBTztnQkFpTnJCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0FBa0l2QyxNQUFNLE9BQU8sMEJBQTBCO0lBQXZDO1FBQ0ksY0FBYztRQUNkLFlBQU8sR0FBRyx5SUFBeUksQ0FBQztRQUVwSixjQUFjO1FBQ2QsZ0JBQVcsR0FBRztZQUNWLElBQUksRUFBRSxxRUFBcUU7WUFDM0UsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQztTQUM1QixDQUFDO0lBQ04sQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIGlzRGV2TW9kZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNlbGYsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMaXZlQW5ub3VuY2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQ2RrQ29ubmVjdGVkT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IGRlZmVyLCBtZXJnZSwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBQb3BvdmVyRmlsbE1vZGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2hhcmVkJztcbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLCBLZXlVdGlsLCBNb2R1bGVEZXByZWNhdGlvbiwgTnVsbGFibGUsIFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBNb2JpbGVNb2RlQ29uZmlnIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21vYmlsZS1tb2RlJztcbmltcG9ydCB7IEZvcm1JdGVtQ29udHJvbCwgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2wgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5cbmltcG9ydCB7IFNFTEVDVF9DT01QT05FTlQsIFNlbGVjdEludGVyZmFjZSB9IGZyb20gJy4vc2VsZWN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZWxlY3RLZXlNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vc2VsZWN0LWtleS1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmRPcHRpb25TZWxlY3Rpb25DaGFuZ2UsIE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vb3B0aW9uL29wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0TW9iaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QtbW9iaWxlL3NlbGVjdC1tb2JpbGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdE1vYmlsZU1vZHVsZSB9IGZyb20gJy4vc2VsZWN0LW1vYmlsZS9zZWxlY3QtbW9iaWxlLm1vZHVsZSc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU9ic2VydmVyLCBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBFU0NBUEUgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgRm9ybVN0YXRlcyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcblxubGV0IHNlbGVjdFVuaXF1ZUlkID0gMDtcblxuLyoqIEBkZXByZWNhdGVkIHVzZSBgaW1wb3J0IHsgRm9ybVN0YXRlcyB9IGZyb20gXCJAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtc1wiYCBpbnN0ZWFkICovXG5leHBvcnQgdHlwZSBTZWxlY3RDb250cm9sU3RhdGUgPSBGb3JtU3RhdGVzO1xuXG5jb25zdCBTRUxFQ1RfSEVBREVSX0lERU5USUZJRVIgPSAnLmZkLWxpc3RfX2dyb3VwLWhlYWRlcic7XG5cbmV4cG9ydCBjb25zdCBTRUxFQ1RfUEFORUxfTUFYX0hFSUdIVCA9IDI1MDtcblxuLyoqIFRoZSBoZWlnaHQgb2YgdGhlIHNlbGVjdCBpdGVtcyBpbiBgcmVtYCB1bml0cy4gKi9cbmV4cG9ydCBjb25zdCBTRUxFQ1RfSVRFTV9IRUlHSFRfRU0gPSA0O1xuXG4vKipcbiAqIFNlbGVjdCBjb21wb25lbnQgaW50ZW5kZWQgdG8gbWltaWNcbiAqIHRoZSBiZWhhdmlvdXIgb2YgdGhlIG5hdGl2ZSBzZWxlY3QgZWxlbWVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1zZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLXNlbGVjdCcsXG4gICAgICAgICdbY2xhc3MuZmQtc2VsZWN0LS1pbmxpbmVdJzogJ2lubGluZScsXG4gICAgICAgICdbY2xhc3MuZmQtc2VsZWN0LS1jb21wYWN0XSc6ICdfY29udGVudERlbnNpdHlPYnNlcnZlci5pc0NvbXBhY3QnLFxuICAgICAgICAvLyBAZGVwcmVjYXRlZCBsZWF2aW5nIGNsYXNzIGZkLXNlbGVjdC1jdXN0b20tY2xhc3MgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgICAgICdbY2xhc3MuZmQtc2VsZWN0LWN1c3RvbS1jbGFzc10nOiAnaW5saW5lJyxcbiAgICAgICAgLy8gQGRlcHJlY2F0ZWQgbGVhdmluZyBjbGFzcyBmZC1zZWxlY3QtY3VzdG9tLWNsYXNzLS1tb2JpbGUgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgICAgICdbY2xhc3MuZmQtc2VsZWN0LWN1c3RvbS1jbGFzcy0tbW9iaWxlXSc6ICdtb2JpbGUnXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogU0VMRUNUX0NPTVBPTkVOVCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBTZWxlY3RDb21wb25lbnRcbiAgICAgICAgfSxcbiAgICAgICAgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2woU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgICAgU2VsZWN0S2V5TWFuYWdlclNlcnZpY2UsXG4gICAgICAgIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMoKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50PFQgPSBhbnk+XG4gICAgaW1wbGVtZW50c1xuICAgICAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICAgICAgU2VsZWN0SW50ZXJmYWNlLFxuICAgICAgICBPbkluaXQsXG4gICAgICAgIEFmdGVyVmlld0luaXQsXG4gICAgICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgICAgIE9uQ2hhbmdlcyxcbiAgICAgICAgT25EZXN0cm95LFxuICAgICAgICBGb3JtSXRlbUNvbnRyb2xcbntcbiAgICAvKiogSWQgb2YgdGhlIGNvbnRyb2wuICovXG4gICAgQElucHV0KClcbiAgICBjb250cm9sSWQgPSBgZmQtc2VsZWN0LSR7c2VsZWN0VW5pcXVlSWQrK31gO1xuXG4gICAgLyoqIEhvbGRzIHRoZSBjb250cm9sIHN0YXRlIG9mIHNlbGVjdCAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhdGU6IE51bGxhYmxlPEZvcm1TdGF0ZXM+O1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHNlbGVjdCBjb21wb25lbnQgc2hvdWxkIGJlIGRpc3BsYXllZCBpbiBtb2JpbGUgbW9kZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIG1vYmlsZSA9IGZhbHNlO1xuXG4gICAgLyoqIEhvbGRzIHRoZSBtZXNzYWdlIHdpdGggcmVzcGVjdCB0byBzdGF0ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhdGVNZXNzYWdlOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHNlbGVjdCBjb21wb25lbnQgaXMgZGlzYWJsZWQuICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqIElmIGl0IGlzIG1hbmRhdG9yeSBmaWVsZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVxdWlyZWQgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBzZWxlY3QgY29tcG9uZW50IGlzIHJlYWRvbmx5LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVhZG9ubHkgPSBmYWxzZTtcblxuICAgIC8qKiBQbGFjZWhvbGRlciBmb3IgdGhlIHNlbGVjdC4gQXBwZWFycyBpbiB0aGUgdHJpZ2dlcmJveCBpZiBubyBvcHRpb24gaXMgc2VsZWN0ZWQuICovXG4gICAgQElucHV0KClcbiAgICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gICAgLyoqIFZhbHVlIG9mIHRoZSBzZWxlY3QgY29udHJvbC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZShuZXdWYWx1ZTogYW55KSB7XG4gICAgICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5faW50ZXJuYWxWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2ludGVybmFsVmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ludGVybmFsVmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBkZXByZWNhdGVkXG4gICAgICogaXQgaXMgaGFuZGxlZCBpbnRlcm5hbGx5IGJ5IGNvbnRyb2xUZW1wbGF0ZSAhPSBudWxsfHVuZGVmaW5lZCBpc1xuICAgICAqIEVxdWFsIGFzIGV4dGVuZGVkQm9keVRlbXBsYXRlIGFzIHRydWUuXG4gICAgICogV2hldGhlciBvcHRpb24gY29tcG9uZW50cyBjb250YWluIG1vcmUgdGhhbiBiYXNpYyB0ZXh0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZXh0ZW5kZWRCb2R5VGVtcGxhdGUgPSBmYWxzZTtcblxuICAgIC8qKiBNYXggaGVpZ2h0IG9mIHRoZSBwb3BvdmVyLiBBbnkgb3ZlcmZsb3dpbmcgZWxlbWVudHMgd2lsbCBiZSBhY2Nlc3NpYmxlIHRocm91Z2ggc2Nyb2xsaW5nLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWF4SGVpZ2h0OiBzdHJpbmc7XG5cbiAgICAvKiogR2x5cGggdG8gYWRkIGljb24gaW4gdGhlIHNlbGVjdCBjb21wb25lbnQuICovXG4gICAgQElucHV0KClcbiAgICBnbHlwaCA9ICdzbGltLWFycm93LWRvd24nO1xuXG4gICAgLyoqIFdoZXRoZXIgY2xvc2UgdGhlIHBvcG92ZXIgb24gb3V0c2lkZSBjbGljay4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlT25PdXRzaWRlQ2xpY2sgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogUHJlc2V0IG9wdGlvbnMgZm9yIHRoZSBTZWxlY3QgYm9keSB3aWR0aCwgd2hhdGV2ZXIgaXMgY2hvc2VuLCB0aGUgYm9keSBoYXMgYSA2MDBweCBsaW1pdC5cbiAgICAgKiAqIGBhdC1sZWFzdGAgd2lsbCBhcHBseSBhIG1pbmltdW0gd2lkdGggdG8gdGhlIGJvZHkgZXF1aXZhbGVudCB0byB0aGUgd2lkdGggb2YgdGhlIGNvbnRyb2wuIC0gRGVmYXVsdFxuICAgICAqICogYGVxdWFsYCB3aWxsIGFwcGx5IGEgd2lkdGggdG8gdGhlIGJvZHkgZXF1aXZhbGVudCB0byB0aGUgd2lkdGggb2YgdGhlIGNvbnRyb2wuXG4gICAgICogKiAnZml0LWNvbnRlbnQnIHdpbGwgYXBwbHkgd2lkdGggbmVlZGVkIHRvIHByb3Blcmx5IGRpc3BsYXkgaXRlbXMgaW5zaWRlLCBpbmRlcGVuZGVudCBvZiBjb250cm9sLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsbENvbnRyb2xNb2RlOiBQb3BvdmVyRmlsbE1vZGUgPSAnYXQtbGVhc3QnO1xuXG4gICAgLyoqIEN1c3RvbSB0ZW1wbGF0ZSB1c2VkIHRvIGJ1aWxkIGNvbnRyb2wgYm9keS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbnRyb2xUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBUaGUgZWxlbWVudCB0byB3aGljaCB0aGUgcG9wb3ZlciBzaG91bGQgYmUgYXBwZW5kZWQuICovXG4gICAgQElucHV0KClcbiAgICBhcHBlbmRUbzogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIElmIHRoZSBvcHRpb24gc2hvdWxkIGJlIHVuc2VsZWN0ZWQgYW5kIHZhbHVlIGNoYW5nZWQgdG8gdW5kZWZpbmVkLCB3aGVuIHRoZSBjdXJyZW50IHZhbHVlIGlzXG4gICAgICogbm90IHByZXNlbnRlZCBpbiBvcHRpb24gYXJyYXkuIFN3aXRjaGluZyBpdCBvZmYgY2FuIGJlIGhhbmR5LCB3aGVuIHRoZXJlIGlzIHNvbWUgZGVsYXkgYmV0d2VlbiBwcm92aWRpbmdcbiAgICAgKiBwb3NzaWJsZSBvcHRpb25zIGFuZCBjaG9zZW4gdmFsdWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB1bnNlbGVjdE1pc3NpbmdPcHRpb24gPSB0cnVlO1xuXG4gICAgLyoqIFRpbWUgdG8gd2FpdCBpbiBtaWxsaXNlY29uZHMgYWZ0ZXIgdGhlIGxhc3Qga2V5ZG93biBiZWZvcmUgZm9jdXNpbmcgb3Igc2VsZWN0aW5nIG9wdGlvbiBiYXNlZCBvbiBhbHBoYW51bWVyaWMga2V5cy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWwgPSAyNTA7XG5cbiAgICAvKiogQmluZHMgdG8gY29udHJvbCBhcmlhLWxhYmVsbGVkQnkgYXR0cmlidXRlICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWxsZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBTZXRzIGNvbnRyb2wgYXJpYS1sYWJlbCBhdHRyaWJ1dGUgdmFsdWUgKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBTZWxlY3QgSW5wdXQgTW9iaWxlIENvbmZpZ3VyYXRpb24gKi9cbiAgICBASW5wdXQoKVxuICAgIG1vYmlsZUNvbmZpZzogTW9iaWxlTW9kZUNvbmZpZyA9IHsgaGFzQ2xvc2VCdXR0b246IHRydWUgfTtcblxuICAgIC8qKiBTaG91bGQgc2VsZWN0IGJlIGlubGluZWQuICovXG4gICAgQElucHV0KClcbiAgICBpbmxpbmUgPSB0cnVlO1xuXG4gICAgLyoqIEFkZGl0aW9uYWwgY2xhc3NuYW1lIGZvciB0aGUgc2VsZWN0IGNvbnRyb2wgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdENvbnRyb2xDbGFzczogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBBZGRpdGlvbmFsIGNsYXNzbmFtZSBmb3IgdGhlIHNlbGVjdCBkcm9wZG93biBidXR0b24gZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdERyb3Bkb3duQnV0dG9uQ2xhc3M6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBwb3BvdmVyIG9wZW4gc3RhdGUgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBpc09wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNlbGVjdGVkIHZhbHVlIG9mIHRoZSBzZWxlY3QgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihPcHRpb25Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBfb3B0aW9uczogUXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ3NlbGVjdENvbnRyb2wnKVxuICAgIF9jb250cm9sRWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICAvKiogUmVmZXJlbmNlIHRvIGVsZW1lbnQgY29udGFpbmluZyBsaXN0IG9mIG9wdGlvbnMgKi9cbiAgICBAVmlld0NoaWxkKCdzZWxlY3RPcHRpb25zTGlzdFRlbXBsYXRlJylcbiAgICBzZWxlY3RPcHRpb25zTGlzdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBSZWZlcmVuY2UgdG8gcm9vdCBlbGVtZW50IGZvciB0aGUgbW9iaWxlIG1vZGUgZGlhbG9nICovXG4gICAgQFZpZXdDaGlsZCgnZGlhbG9nQ29udGFpbmVyJylcbiAgICBfZGlhbG9nQ29udGFpbmVyRWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIE92ZXJsYXkgcGFuZSBjb250YWluaW5nIHRoZSBvcHRpb25zLlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKENka0Nvbm5lY3RlZE92ZXJsYXkpXG4gICAgX292ZXJsYXlEaXI6IENka0Nvbm5lY3RlZE92ZXJsYXk7XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIFJlZmVyZW50IHRvIHRoZSBvcHRpb247cyBjb250YWluZXJcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdvcHRpb25QYW5lbCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIF9vcHRpb25QYW5lbDogRWxlbWVudFJlZjtcblxuICAgIC8qKiBXaGV0aGVyIHBvcG92ZXIgaXMgb3BlbmVkXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9pc09wZW4gPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3RhYkluZGV4OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9saXZlQW5ub3VuY2VyOiBMaXZlQW5ub3VuY2VyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaW50ZXJuYWxWYWx1ZTogYW55O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2FsY3VsYXRlZE1heEhlaWdodDogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcnRsID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZWxlY3Rpb25Nb2RlbDogU2VsZWN0aW9uTW9kZWw8T3B0aW9uQ29tcG9uZW50PjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBUcmlnZ2VycyB3aGVuIGNvbXBvbmVudCBpcyBkZXN0cm95ZWRcbiAgICAgKi9cbiAgICByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfc2VsZWN0Q29udHJvbENsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbdGhpcy5zdGF0ZSA/IGBpcy0ke3RoaXMuc3RhdGV9YCA6ICcnLCB0aGlzLnNlbGVjdENvbnRyb2xDbGFzc11cbiAgICAgICAgICAgIC5maWx0ZXIoKGNsYXNzTmFtZSkgPT4gISFjbGFzc05hbWUpXG4gICAgICAgICAgICAuam9pbignICcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDb21iaW5lZCBzdHJlYW0gb2YgYWxsIG9mIHRoZSBjaGlsZCBvcHRpb25zJyBjaGFuZ2UgZXZlbnRzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IF9vcHRpb25TZWxlY3Rpb25DaGFuZ2VzOiBPYnNlcnZhYmxlPEZkT3B0aW9uU2VsZWN0aW9uQ2hhbmdlPiA9IGRlZmVyKCgpID0+IHtcbiAgICAgICAgY29uc3QgX29wdGlvbnMgPSB0aGlzLl9vcHRpb25zO1xuXG4gICAgICAgIHJldHVybiBfb3B0aW9ucz8uY2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKF9vcHRpb25zKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiBtZXJnZSguLi5fb3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLnNlbGVjdGlvbkNoYW5nZSkpKVxuICAgICAgICApO1xuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jb250cm9sRWxlbUZvbnRTaXplID0gMDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFN0b3JlZCBjYWxjdWxhdGVkIG1heEhlaWdodCBmcm9tIE9wdGlvbiBQYW5lbFxuICAgICAqL1xuICAgIHByaXZhdGUgX21heEhlaWdodDogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICAgIF9yZXNpemVTY3JvbGxIYW5kbGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91cGRhdGVDYWxjdWxhdGVkSGVpZ2h0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuX3RhYkluZGV4ID0gdGhpcy5kaXNhYmxlZCA/IC0xIDogMDtcbiAgICB9XG5cbiAgICAvKiogU2VsZWN0ZWQgb3B0aW9uLiAqL1xuICAgIGdldCBzZWxlY3RlZCgpOiBPcHRpb25Db21wb25lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWRbMF07XG4gICAgfVxuXG4gICAgLyoqIFJldHJpZXZlcyBzZWxlY3RlZCB2YWx1ZSBpZiBhbnkuICovXG4gICAgZ2V0IHRyaWdnZXJWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBlbXB0eVZhbHVlID0gJyAnO1xuICAgICAgICBpZiAodGhpcy5fc2VsZWN0aW9uTW9kZWwuaXNFbXB0eSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlciB8fCBlbXB0eVZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkLnZpZXdWYWx1ZSB8fCB0aGlzLnBsYWNlaG9sZGVyIHx8IGVtcHR5VmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIGVxdWFsIHRvIGNsb3NlXG4gICAgICogVGVsbHMgdGhlIE9wdGlvbkxpc3QgaWYgaXQncyBjbG9zYWJsZSBieSBzaW1wbHkgc2VsZWN0aW5nIHRoZSBpdGVtIGVpdGhlciB3aXRoIENMSUNLIHwgU1BBQ0UgfCBFTlRFUi5cbiAgICAgKiBXaGVuIHdlIGFyZSBpbiBtb2JpbGUgbW9kZSAobW9iaWxlPXRydWUpIGFuZCBoYXZlIHdlIGhhdmUgZW5hYmxlZCBjb25maXJtYXRpb24gYnV0dG9ucyB0aGVuIHdlXG4gICAgICogZG9udCBjbG9zZSBvcHRpb24gbGlzdC4gV2UgY2xvc2Ugb25seSBhZnRlciB3ZSBoaXQgY29uZmlybSBidXR0b24uXG4gICAgICovXG4gICAgZ2V0IGNhbkNsb3NlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISh0aGlzLm1vYmlsZSAmJiB0aGlzLm1vYmlsZUNvbmZpZy5hcHByb3ZlQnV0dG9uVGV4dCk7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgY29udHJvbCBjYW4gYmUgaW50ZXJhY3RlZCB3aXRoICovXG4gICAgZ2V0IGlzSW50ZXJhY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgd2UgY2FuIGVtaXQgYSB2YWx1ZS4gVGhleSBhcmUgMyBkaWZmZXJlbnQgcGF0aHMgd2hlcmUgd2UgY2FuIGVtaXQgdmFsdWU6XG4gICAgICogIC0gV2UgYXJlIG5vdCBpbiBtb2JpbGUgbW9kZSBbbW9iaWxlXT1mYWxzZVxuICAgICAqICAtIFdlIGFyZSBpbiBtb2JpbGUgbW9kZSBbbW9iaWxlXT10cnVlIGFuZCBtb2JpbGUgZGlhbG9nIGFzIGp1c3QgY2xvc2UgWCBidXR0b24gdG8gZGlzbWlzcyBpdFxuICAgICAqICAtIFdlIGFyZSBpbiBtb2JpbGUgbW9kZSBbbW9iaWxlXT10cnVlIGFuZCBtb2JpbGUgZGlhbG9nIGhhcyBBcHByb3ZlQnV0dG9uIGF2YWlsYWJsZSBhbmRcbiAgICAgKiAgZGlhbG9nIGlzIGNsb3NlZC4gKG1lYW5pbmcgd2UgYWxyZWFkeSBjbGlja2VkIHRoaXMgYnV0dG9uKVxuICAgICAqL1xuICAgIGdldCBjYW5FbWl0VmFsdWVDaGFuZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhdGhpcy5tb2JpbGUgfHxcbiAgICAgICAgICAgICh0aGlzLm1vYmlsZSAmJlxuICAgICAgICAgICAgICAgIC8vIEFwcHJvdmUgKyBDYW5jZWxcbiAgICAgICAgICAgICAgICAhIXRoaXMubW9iaWxlQ29uZmlnLmFwcHJvdmVCdXR0b25UZXh0ICYmXG4gICAgICAgICAgICAgICAgIXRoaXMuX2lzT3BlbikgfHxcbiAgICAgICAgICAgIC8vIENsb3NlQnV0dG9uLiBFbWl0cyB3aGVuIHlvdSBjbGljayBvbiB0aGUgb3B0aW9uIGl0ZW1cbiAgICAgICAgICAgICghIXRoaXMubW9iaWxlQ29uZmlnLmhhc0Nsb3NlQnV0dG9uICYmICEhdGhpcy5tb2JpbGVDb25maWcuYXBwcm92ZUJ1dHRvblRleHQgPT09IGZhbHNlKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NvbXBhcmVXaXRoID0gKG8xOiBhbnksIG8yOiBhbnkpOiBib29sZWFuID0+IG8xID09PSBvMjtcblxuICAgIC8qKiBGdW5jdGlvbiB0byBjb21wYXJlIHRoZSBvcHRpb24gdmFsdWVzIHdpdGggdGhlIHNlbGVjdGVkIHZhbHVlcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb21wYXJlV2l0aChmbjogKG8xOiBhbnksIG8yOiBhbnkpID0+IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ2NvbXBhcmVXaXRoYCBtdXN0IGJlIGEgZnVuY3Rpb24uJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY29tcGFyZVdpdGggPSBmbjtcbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbk1vZGVsKSB7XG4gICAgICAgICAgICAvLyBBIGRpZmZlcmVudCBjb21wYXJhdG9yIG1lYW5zIHRoZSBzZWxlY3Rpb24gY291bGQgY2hhbmdlLlxuICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZVNlbGVjdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBjb21wYXJlV2l0aCgpOiAobzE6IGFueSwgbzI6IGFueSkgPT4gYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb21wYXJlV2l0aDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9jdXNlZCB8fCB0aGlzLl9pc09wZW47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgY2FsY3VsYXRlZE1heEhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWF4SGVpZ2h0IHx8IHRoaXMuX2NhbGN1bGF0ZWRNYXhIZWlnaHQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEF0dHJpYnV0ZSgndGFiaW5kZXgnKSBfdGFiSW5kZXg6IHN0cmluZyxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBfcnRsU2VydmljZTogUnRsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfa2V5TWFuYWdlclNlcnZpY2U6IFNlbGVjdEtleU1hbmFnZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgX2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlOiBEeW5hbWljQ29tcG9uZW50U2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwcml2YXRlIHJlYWRvbmx5IG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHJlYWRvbmx5IF9jb250ZW50RGVuc2l0eU9ic2VydmVyOiBDb250ZW50RGVuc2l0eU9ic2VydmVyXG4gICAgKSB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdGFiSW5kZXggPSBwYXJzZUludChfdGFiSW5kZXgsIDEwKSB8fCAwO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVDb21tb25CZWhhdmlvcigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyU2VydmljZS5faW5pdEtleU1hbmFnZXIoKTtcbiAgICAgICAgdGhpcy5fc2V0dXBNb2JpbGVNb2RlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlZ2lzdGVyRXZlbnRzQWZ0ZXJDb250ZW50SW5pdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlc1sndHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCddICYmIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyKSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyU2VydmljZS5fa2V5TWFuYWdlci53aXRoVHlwZUFoZWFkKHRoaXMudHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCk7XG4gICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlc1snZGlzYWJsZWQnXSkge1xuICAgICAgICAgICAgdGhpcy5fdGFiSW5kZXggPSB0aGlzLmRpc2FibGVkID8gLTEgOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9jbGVhbnVwQ29tbW9uQmVoYXZpb3IoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7fTtcblxuICAgIC8qKiBUb2dnbGVzIHRoZSBvcGVuIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXNPcGVuID8gdGhpcy5jbG9zZSgpIDogdGhpcy5vcGVuKCk7XG4gICAgfVxuXG4gICAgLyoqIE9wZW5zIHRoZSBzZWxlY3QgcG9wb3ZlciBib2R5LiAqL1xuICAgIG9wZW4oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZG9ubHkgfHwgIXRoaXMuX29wdGlvbnMgfHwgIXRoaXMuX2dldEl0ZW1Db3VudCgpIHx8IHRoaXMuX2lzT3Blbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzT3BlbiA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5fY29udHJvbEVsZW1Gb250U2l6ZSA9IHBhcnNlSW50KFxuICAgICAgICAgICAgZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9jb250cm9sRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5mb250U2l6ZSB8fCAnMCcsXG4gICAgICAgICAgICAxMFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24obnVsbCk7XG4gICAgICAgIHRoaXMuX2hpZ2hsaWdodENvcnJlY3RPcHRpb24oKTtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG5cbiAgICAgICAgdGhpcy5pc09wZW5DaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNsb3NlKGZvcmNlQ2xvc2U6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5faXNPcGVuICYmIChmb3JjZUNsb3NlIHx8IHRoaXMuY2xvc2UpKSB7XG4gICAgICAgICAgICB0aGlzLl9pc09wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5faXNSdGwoKSA/ICdydGwnIDogJ2x0cicpO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuXG4gICAgICAgICAgICB0aGlzLmlzT3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBGb2N1c2VzIHNlbGVjdCBjb250cm9sLiAqL1xuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICAodGhpcy5fY29udHJvbEVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEJsdXJzIHNlbGVjdCBjb250cm9sLiAqL1xuICAgIGJsdXIoKTogdm9pZCB7XG4gICAgICAgICh0aGlzLl9jb250cm9sRWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuYmx1cigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBmcm9tIENvbnRyb2xWYWx1ZSBBY2Nlc3NvciAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fb3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5fc2V0U2VsZWN0aW9uQnlWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZXRTZWxlY3Rpb25CeVZhbHVlKHZhbHVlOiBhbnkgfCBhbnlbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xuICAgICAgICBjb25zdCBjb3JyZXNwb25kaW5nT3B0aW9uID0gdGhpcy5fc2VsZWN0VmFsdWUodmFsdWUpO1xuXG4gICAgICAgIC8vIFNoaWZ0IGZvY3VzIHRvIHRoZSBhY3RpdmUgaXRlbS4gTm90ZSB0aGF0IHdlIHNob3VsZG4ndCBkbyB0aGlzIGluIG11bHRpcGxlXG4gICAgICAgIC8vIG1vZGUsIGJlY2F1c2Ugd2UgZG9uJ3Qga25vdyB3aGF0IG9wdGlvbiB0aGUgdXNlciBpbnRlcmFjdGVkIHdpdGggbGFzdC5cbiAgICAgICAgaWYgKGNvcnJlc3BvbmRpbmdPcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oY29ycmVzcG9uZGluZ09wdGlvbik7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX2lzT3Blbikge1xuICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIHJlc2V0IHRoZSBoaWdobGlnaHRlZCBvcHRpb24uIE5vdGUgdGhhdCB3ZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyB3aGlsZVxuICAgICAgICAgICAgLy8gY2xvc2VkLCBiZWNhdXNlIGRvaW5nIGl0IHdoaWxlIG9wZW4gY2FuIHNoaWZ0IHRoZSB1c2VyJ3MgZm9jdXMgdW5uZWNlc3NhcmlseS5cbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oLTEpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2VsZWN0VmFsdWUodmFsdWU6IGFueSk6IE9wdGlvbkNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGNvcnJlc3BvbmRpbmdPcHRpb24gPSB0aGlzLl9vcHRpb25zLmZpbmQoKG9wdGlvbjogT3B0aW9uQ29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIC8vIFRyZWF0IG51bGwgYXMgYSBzcGVjaWFsIHJlc2V0IHZhbHVlLlxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udmFsdWUgIT0gbnVsbCAmJiB0aGlzLl9jb21wYXJlV2l0aChvcHRpb24udmFsdWUsIHZhbHVlKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE5vdGlmeSBkZXZlbG9wZXJzIG9mIGVycm9ycyBpbiB0aGVpciBjb21wYXJhdG9yLlxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjb3JyZXNwb25kaW5nT3B0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3QoY29ycmVzcG9uZGluZ09wdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29ycmVzcG9uZGluZ09wdGlvbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9wb3BvdmVyT3BlbkNoYW5nZUhhbmRsZShpc09wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaXNPcGVuID8gdGhpcy5vcGVuKCkgOiB0aGlzLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gUmV0dXJucyBfa2V5TWFuYWdlclNlcnZpY2UuICovXG4gICAgX2dldEtleVNlcnZpY2UoKTogU2VsZWN0S2V5TWFuYWdlclNlcnZpY2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5fa2V5TWFuYWdlclNlcnZpY2U7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgICB0aGlzLl90YWJJbmRleCA9IC0xO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2hpZ2hsaWdodENvcnJlY3RPcHRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9rZXlNYW5hZ2VyU2VydmljZS5fa2V5TWFuYWdlciAmJiB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5pc0VtcHR5KCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyLnNldEZpcnN0SXRlbUFjdGl2ZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyICYmICF0aGlzLl9zZWxlY3Rpb25Nb2RlbC5pc0VtcHR5KCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0odGhpcy5zZWxlY3RlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jbGVhbnVwQ29tbW9uQmVoYXZpb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaW5pdGlhbGl6ZVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgLy8gRGVmZXIgc2V0dGluZyB0aGUgdmFsdWUgaW4gb3JkZXIgdG8gYXZvaWQgdGhlIFwiRXhwcmVzc2lvblxuICAgICAgICAvLyBoYXMgY2hhbmdlZCBhZnRlciBpdCB3YXMgY2hlY2tlZFwiIGVycm9ycyBmcm9tIEFuZ3VsYXIuXG4gICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc2V0U2VsZWN0aW9uQnlWYWx1ZSh0aGlzLm5nQ29udHJvbCA/IHRoaXMubmdDb250cm9sLnZhbHVlIDogdGhpcy5faW50ZXJuYWxWYWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4cG9zZSBleHBvc2Ugb3V0c2lkZSBvZiB0aGlzIG1peGluIHRvIGdpdmUgY29tcG9uZW50IGFiaWxpdHlcbiAgICAgKiB0byB1cGRhdGUgY2FsdWNsYXRlZE1heEhlaWdodCBpZiBuZWVkZWRcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX3VwZGF0ZUNhbGN1bGF0ZWRIZWlnaHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NhbGN1bGF0ZWRNYXhIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjQ1O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2dldE9wdGlvblNjcm9sbFBvc2l0aW9uKG9wdGlvbkluZGV4OiBudW1iZXIsIGl0ZW1IZWlnaHQ6IG51bWJlciwgY3VycmVudFNjcm9sbFBvc2l0aW9uOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBvcHRpb25IZWlnaHQgPSB0aGlzLl9vcHRpb25zLmdldChvcHRpb25JbmRleCk/Ll9nZXRIdG1sRWxlbWVudCgpLm9mZnNldEhlaWdodCB8fCBpdGVtSGVpZ2h0O1xuICAgICAgICBjb25zdCBvcHRpb25PZmZzZXQgPSBvcHRpb25JbmRleCAqIG9wdGlvbkhlaWdodDtcbiAgICAgICAgaWYgKG9wdGlvbk9mZnNldCA8IGN1cnJlbnRTY3JvbGxQb3NpdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbk9mZnNldDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25PZmZzZXQgKyBvcHRpb25IZWlnaHQgPiBjdXJyZW50U2Nyb2xsUG9zaXRpb24gKyBTRUxFQ1RfUEFORUxfTUFYX0hFSUdIVCkge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgubWF4KDAsIG9wdGlvbk9mZnNldCAtIFNFTEVDVF9QQU5FTF9NQVhfSEVJR0hUICsgb3B0aW9uSGVpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3VycmVudFNjcm9sbFBvc2l0aW9uO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2dldEl0ZW1IZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgLy8gYWxzbyBpbmNsdWRlIGJvcmRlciB3aXRoIGRlZmF1bHQgdmFsdWUgMS5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRyb2xFbGVtRm9udFNpemUgKiBTRUxFQ1RfSVRFTV9IRUlHSFRfRU0gKyAxO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2luaXRpYWxpemVDb21tb25CZWhhdmlvcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwgPSBuZXcgU2VsZWN0aW9uTW9kZWw8T3B0aW9uQ29tcG9uZW50PihmYWxzZSk7XG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9jb21wb25lbnQgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMuX3VwZGF0ZUNhbGN1bGF0ZWRIZWlnaHQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pc1J0bCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuX3J0bFNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgICAgIHRoaXMuX3J0bFNlcnZpY2UucnRsLnN1YnNjcmliZSgocnRsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3J0bCA9IHJ0bDtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcnRsID09PSB0cnVlID8gdHJ1ZSA6IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3JlZ2lzdGVyRXZlbnRzQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwuY2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgZXZlbnQuYWRkZWQuZm9yRWFjaCgob3B0aW9uKSA9PiBvcHRpb24uX3NlbGVjdCgpKTtcbiAgICAgICAgICAgIGV2ZW50LnJlbW92ZWQuZm9yRWFjaCgob3B0aW9uKSA9PiBvcHRpb24uX2Rlc2VsZWN0KCkpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9vcHRpb25zLmNoYW5nZXMucGlwZShzdGFydFdpdGgobnVsbCksIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Jlc2V0T3B0aW9ucygpO1xuICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZVNlbGVjdGlvbigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIF9oYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgdGhpcy5faXNPcGVuXG4gICAgICAgICAgICAgICAgPyB0aGlzLl9rZXlNYW5hZ2VyU2VydmljZS5faGFuZGxlT3BlbktleWRvd24oZXZlbnQpXG4gICAgICAgICAgICAgICAgOiB0aGlzLl9rZXlNYW5hZ2VyU2VydmljZS5faGFuZGxlQ2xvc2VkS2V5ZG93bihldmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBFU0NBUEUpKSB7XG4gICAgICAgICAgICB0aGlzLl9jb250cm9sRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9nZXRBcmlhQWN0aXZlRGVzY2VuZGFudCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzT3BlbiAmJiB0aGlzLl9rZXlNYW5hZ2VyU2VydmljZS5fa2V5TWFuYWdlciAmJiB0aGlzLl9rZXlNYW5hZ2VyU2VydmljZS5fa2V5TWFuYWdlci5hY3RpdmVJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIuYWN0aXZlSXRlbS5pZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vbkZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vbkJsdXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZvY3VzZWQgPSBmYWxzZTtcblxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMuX2lzT3Blbikge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZXNldE9wdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNoYW5nZWRPckRlc3Ryb3llZCA9IG1lcmdlKHRoaXMuX29wdGlvbnMuY2hhbmdlcywgdGhpcy5fZGVzdHJveSk7XG5cbiAgICAgICAgdGhpcy5fb3B0aW9uU2VsZWN0aW9uQ2hhbmdlcy5waXBlKHRha2VVbnRpbChjaGFuZ2VkT3JEZXN0cm95ZWQpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9vblNlbGVjdChldmVudC5zb3VyY2UsIGV2ZW50LmlzVXNlcklucHV0KTtcblxuICAgICAgICAgICAgaWYgKGV2ZW50LmlzVXNlcklucHV0ICYmIHRoaXMuX2lzT3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gTGlzdGVuIHRvIGNoYW5nZXMgaW4gdGhlIGludGVybmFsIHN0YXRlIG9mIHRoZSBfb3B0aW9ucyBhbmQgcmVhY3QgYWNjb3JkaW5nbHkuXG4gICAgICAgIC8vIEhhbmRsZXMgY2FzZXMgbGlrZSB0aGUgbGFiZWxzIG9mIHRoZSBzZWxlY3RlZCBfb3B0aW9ucyBjaGFuZ2luZy5cbiAgICAgICAgbWVyZ2UoLi4udGhpcy5fb3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLl9zdGF0ZUNoYW5nZXMpKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKGNoYW5nZWRPckRlc3Ryb3llZCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBJbnZva2VkIHdoZW4gYW4gb3B0aW9uIGlzIGNsaWNrZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfb25TZWxlY3Qob3B0aW9uOiBPcHRpb25Db21wb25lbnQsIGlzVXNlcklucHV0OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHdhc1NlbGVjdGVkID0gdGhpcy5fc2VsZWN0aW9uTW9kZWwuaXNTZWxlY3RlZChvcHRpb24pO1xuICAgICAgICBpZiAoKG9wdGlvbi52YWx1ZSA9PT0gbnVsbCB8fCBvcHRpb24udmFsdWUgPT09IHVuZGVmaW5lZCkgJiYgdGhpcy51bnNlbGVjdE1pc3NpbmdPcHRpb24pIHtcbiAgICAgICAgICAgIG9wdGlvbi5fZGVzZWxlY3QoKTtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICAgICAgICB0aGlzLl9lbWl0U2VsZWN0Q2hhbmdlKG9wdGlvbi52YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAod2FzU2VsZWN0ZWQgIT09IG9wdGlvbi5zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIG9wdGlvbi5zZWxlY3RlZCA/IHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdChvcHRpb24pIDogdGhpcy5fc2VsZWN0aW9uTW9kZWwuZGVzZWxlY3Qob3B0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1VzZXJJbnB1dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0ob3B0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh3YXNTZWxlY3RlZCAhPT0gdGhpcy5fc2VsZWN0aW9uTW9kZWwuaXNTZWxlY3RlZChvcHRpb24pIHx8IHRoaXMubW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0U2VsZWN0Q2hhbmdlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2VtaXRTZWxlY3RDaGFuZ2UoZGVmYXVsdFZhbD86IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jYW5FbWl0VmFsdWVDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2ludGVybmFsVmFsdWUgPVxuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkICYmIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLmxlbmd0aCAhPT0gMFxuICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLnNlbGVjdGVkIGFzIE9wdGlvbkNvbXBvbmVudCkudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiBkZWZhdWx0VmFsO1xuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuX2ludGVybmFsVmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLl9pbnRlcm5hbFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRJdGVtQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuX29wdGlvblBhbmVsICYmIHRoaXMuX2hlYWRlckVsZW1lbnRzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnMubGVuZ3RoICsgdGhpcy5faGVhZGVyRWxlbWVudHMoKS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnMubGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaGVhZGVyRWxlbWVudHMoKTogTm9kZUxpc3RPZjxFbGVtZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25QYW5lbD8ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFNFTEVDVF9IRUFERVJfSURFTlRJRklFUik7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGFzeW5jIF9zZXR1cE1vYmlsZU1vZGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghdGhpcy5tb2JpbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogU0VMRUNUX0NPTVBPTkVOVCwgdXNlVmFsdWU6IHRoaXMgfV0sXG4gICAgICAgICAgICBwYXJlbnQ6IHRoaXMuX2luamVjdG9yXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGF3YWl0IHRoaXMuX2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlLmNyZWF0ZUR5bmFtaWNNb2R1bGUoXG4gICAgICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbnNMaXN0VGVtcGxhdGUsXG4gICAgICAgICAgICBTZWxlY3RNb2JpbGVNb2R1bGUsXG4gICAgICAgICAgICBTZWxlY3RNb2JpbGVDb21wb25lbnQsXG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgaW5qZWN0b3JcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEZXByZWNhdGVkU2VsZWN0Q1NTQ2xhc3NlcyBpbXBsZW1lbnRzIE1vZHVsZURlcHJlY2F0aW9uIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG1lc3NhZ2UgPSBgU2VsZWN0IENTUyBjbGFzc2VzIGZkLXNlbGVjdC0tY29tcGFjdCwgZmQtc2VsZWN0LS1jb21wYWN0LS1tb2JpbGUsIGZkLXBvcG92ZXItY3VzdG9tLXNlbGVjdC1ib2R5LCBmZC1wb3BvdmVyLWN1c3RvbS1saXN0IGFyZSBkZXByZWNhdGVkYDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgYWx0ZXJuYXRpdmUgPSB7XG4gICAgICAgIG5hbWU6ICdJbnNwZWN0IHRoZSBlbGVtZW50cyBvZiB0aGUgU2VsZWN0IGNvbXBvbmVudCB0byBzZWUgdGhlIG5ldyBjbGFzc2VzJyxcbiAgICAgICAgbGluazogWycvY29yZScsICdzZWxlY3QnXVxuICAgIH07XG59XG4iLCI8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9iaWxlID8gbW9iaWxlVGVtcGxhdGUgOiBkZXNrdG9wVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNkZXNrdG9wVGVtcGxhdGU+XG4gICAgPCEtLSBAZGVwcmVjYXRlZCBsZWF2aW5nIGNsYXNzIGZkLXBvcG92ZXItY3VzdG9tLWxpc3QgdG8gc3VwcG9ydCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS0tPlxuICAgIDxmZC1wb3BvdmVyXG4gICAgICAgIGFkZGl0aW9uYWxCb2R5Q2xhc3M9XCJmZC1zZWxlY3QtZHJvcGRvd24gZmQtcG9wb3Zlci1jdXN0b20tbGlzdFwiXG4gICAgICAgIFtpc09wZW5dPVwiX2lzT3BlblwiXG4gICAgICAgIFt0cmlnZ2Vyc109XCJbXVwiXG4gICAgICAgIFtmb2N1c1RyYXBwZWRdPVwidHJ1ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiXG4gICAgICAgIFthcHBlbmRUb109XCJhcHBlbmRUb1wiXG4gICAgICAgIFtjbG9zZU9uRXNjYXBlS2V5XT1cInRydWVcIlxuICAgICAgICBbZmlsbENvbnRyb2xNb2RlXT1cImZpbGxDb250cm9sTW9kZVwiXG4gICAgICAgIFttYXhXaWR0aF09XCI2MDBcIlxuICAgICAgICBbY2xvc2VPbk91dHNpZGVDbGlja109XCJjbG9zZU9uT3V0c2lkZUNsaWNrXCJcbiAgICAgICAgKGlzT3BlbkNoYW5nZSk9XCJfcG9wb3Zlck9wZW5DaGFuZ2VIYW5kbGUoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxlY3RJbnB1dENvbnRyb2xUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cblxuICAgICAgICA8IS0tIEBkZXByZWNhdGVkIGxlYXZpbmcgY2xhc3MgZmQtcG9wb3Zlci1jdXN0b20tc2VsZWN0LWJvZHkgdG8gc3VwcG9ydCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS0tPlxuICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5IGNsYXNzPVwiZmQtcG9wb3Zlci1jdXN0b20tc2VsZWN0LWJvZHlcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VsZWN0T3B0aW9uc0xpc3RUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cbiAgICA8L2ZkLXBvcG92ZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NlbGVjdElucHV0Q29udHJvbFRlbXBsYXRlPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmZC1zZWxlY3RfX2NvbnRyb2xcIlxuICAgICAgICByb2xlPVwibGlzdFwiXG4gICAgICAgICNzZWxlY3RDb250cm9sXG4gICAgICAgIFtjbGFzc109XCJfc2VsZWN0Q29udHJvbENsYXNzXCJcbiAgICAgICAgW2NsYXNzLmlzLWFjdGl2ZV09XCJfaXNPcGVuXCJcbiAgICAgICAgW2NsYXNzLmlzLWV4cGFuZGVkXT1cIl9pc09wZW5cIlxuICAgICAgICBbY2xhc3MuaXMtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbY2xhc3MuaXMtcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICBbYXR0ci50YWJpbmRleF09XCJfdGFiSW5kZXhcIlxuICAgICAgICBbYXR0ci5pZF09XCJjb250cm9sSWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWFjdGl2ZV09XCJfaXNPcGVuXCJcbiAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJzZWxlY3RlZCA/IHNlbGVjdGVkLnNlbGVjdGVkIDogbnVsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiX2lzT3BlblwiXG4gICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImNvbnRyb2xJZCArICctbGlzdC1ib3gnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCIhKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZClcIlxuICAgICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwidHJpZ2dlclZhbHVlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwgfHwgKCdwbGF0Zm9ybVNlbGVjdC5zZWxlY3RPcHRpb25MYWJlbCcgfCBmZFRyYW5zbGF0ZSlcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICBbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdPVwiX2dldEFyaWFBY3RpdmVEZXNjZW5kYW50KClcIlxuICAgICAgICAoZm9jdXMpPVwiX29uRm9jdXMoKVwiXG4gICAgICAgIChibHVyKT1cIl9vbkJsdXIoKVwiXG4gICAgPlxuICAgICAgICA8ZGl2IHJvbGU9XCJsaXN0aXRlbVwiIGNsYXNzPVwiZmQtc2VsZWN0X190ZXh0LWNvbnRlbnRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRyaWdnZXJWYWx1ZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRyb2xUZW1wbGF0ZSA/IGNvbnRyb2xUZW1wbGF0ZSA6IGRlZmF1bHRTZWxlY3RDb250ZW50XCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHRyaWdnZXJWYWx1ZSwgc2VsZWN0ZWQ6IHNlbGVjdGVkIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFNlbGVjdENvbnRlbnQ+XG4gICAgICAgICAgICAgICAge3sgdHJpZ2dlclZhbHVlIH19XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmQtYnV0dG9uLS10cmFuc3BhcmVudCBmZC1zZWxlY3RfX2J1dHRvbiB7eyBzZWxlY3REcm9wZG93bkJ1dHRvbkNsYXNzIH19XCJcbiAgICAgICAgICAgICpuZ0lmPVwiIXJlYWRvbmx5XCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICBbZ2x5cGhdPVwiZ2x5cGhcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NlbGVjdE9wdGlvbnNMaXN0VGVtcGxhdGU+XG4gICAgPHVsXG4gICAgICAgICNvcHRpb25QYW5lbFxuICAgICAgICBmZC1saXN0XG4gICAgICAgIGNsYXNzPVwiZmQtc2VsZWN0LW9wdGlvbnNcIlxuICAgICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBbbW9iaWxlTW9kZV09XCJtb2JpbGVcIlxuICAgICAgICBbZHJvcGRvd25Nb2RlXT1cInRydWVcIlxuICAgICAgICBbaGFzTWVzc2FnZV09XCIhIXN0YXRlTWVzc2FnZVwiXG4gICAgICAgIFthdHRyLmlkXT1cImNvbnRyb2xJZCArICctbGlzdC1ib3gnXCJcbiAgICAgICAgW3N0eWxlLm1heC1oZWlnaHRdPVwibWF4SGVpZ2h0IHx8IGNhbGN1bGF0ZWRNYXhIZWlnaHQgKyAncHgnXCJcbiAgICAgICAgW2F0dHIudG9vbHRpcF09XCJ0cmlnZ2VyVmFsdWVcIlxuICAgID5cbiAgICAgICAgPGxpXG4gICAgICAgICAgICAqbmdJZj1cInN0YXRlTWVzc2FnZVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInN0YXRlTWVzc2FnZVwiXG4gICAgICAgICAgICBmZC1saXN0LW1lc3NhZ2VcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgICBbdHlwZV09XCJzdGF0ZSB8fCAnZGVmYXVsdCdcIlxuICAgICAgICAgICAgW2lubmVySHRtbF09XCJzdGF0ZU1lc3NhZ2VcIlxuICAgICAgICA+PC9saT5cblxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC91bD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbW9iaWxlVGVtcGxhdGU+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxlY3RJbnB1dENvbnRyb2xUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPGRpdiAjZGlhbG9nQ29udGFpbmVyPjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
652
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUNMLFNBQVMsRUFJVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEVBRUosV0FBVyxFQUNYLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFjLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE9BQU8sRUFBK0IsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdkgsT0FBTyxFQUFtQix1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBbUIsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVB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dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFxRTlDLG9CQUFvQjtzQkFEbkIsWUFBWTt1QkFBQyxlQUFlO2dCQStEekIsV0FBVztzQkFEZCxLQUFLO2dCQWtGTixNQUFNO3NCQURMLFlBQVk7dUJBQUMsT0FBTztnQkFpTnJCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0FBa0l2QyxNQUFNLE9BQU8sMEJBQTBCO0lBQXZDO1FBQ0ksY0FBYztRQUNkLFlBQU8sR0FBRyx5SUFBeUksQ0FBQztRQUVwSixjQUFjO1FBQ2QsZ0JBQVcsR0FBRztZQUNWLElBQUksRUFBRSxxRUFBcUU7WUFDM0UsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQztTQUM1QixDQUFDO0lBQ04sQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIGlzRGV2TW9kZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNlbGYsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMaXZlQW5ub3VuY2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQ2RrQ29ubmVjdGVkT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IGRlZmVyLCBtZXJnZSwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBQb3BvdmVyRmlsbE1vZGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2hhcmVkJztcbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLCBLZXlVdGlsLCBNb2R1bGVEZXByZWNhdGlvbiwgTnVsbGFibGUsIFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBNb2JpbGVNb2RlQ29uZmlnIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21vYmlsZS1tb2RlJztcbmltcG9ydCB7IEZvcm1JdGVtQ29udHJvbCwgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2wgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5cbmltcG9ydCB7IFNFTEVDVF9DT01QT05FTlQsIFNlbGVjdEludGVyZmFjZSB9IGZyb20gJy4vc2VsZWN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZWxlY3RLZXlNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vc2VsZWN0LWtleS1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmRPcHRpb25TZWxlY3Rpb25DaGFuZ2UsIE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vb3B0aW9uL29wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0TW9iaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QtbW9iaWxlL3NlbGVjdC1tb2JpbGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdE1vYmlsZU1vZHVsZSB9IGZyb20gJy4vc2VsZWN0LW1vYmlsZS9zZWxlY3QtbW9iaWxlLm1vZHVsZSc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU9ic2VydmVyLCBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBFU0NBUEUgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgRm9ybVN0YXRlcyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcblxubGV0IHNlbGVjdFVuaXF1ZUlkID0gMDtcblxuLyoqIEBkZXByZWNhdGVkIHVzZSBgaW1wb3J0IHsgRm9ybVN0YXRlcyB9IGZyb20gXCJAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtc1wiYCBpbnN0ZWFkICovXG5leHBvcnQgdHlwZSBTZWxlY3RDb250cm9sU3RhdGUgPSBGb3JtU3RhdGVzO1xuXG5jb25zdCBTRUxFQ1RfSEVBREVSX0lERU5USUZJRVIgPSAnLmZkLWxpc3RfX2dyb3VwLWhlYWRlcic7XG5cbmV4cG9ydCBjb25zdCBTRUxFQ1RfUEFORUxfTUFYX0hFSUdIVCA9IDI1MDtcblxuLyoqIFRoZSBoZWlnaHQgb2YgdGhlIHNlbGVjdCBpdGVtcyBpbiBgcmVtYCB1bml0cy4gKi9cbmV4cG9ydCBjb25zdCBTRUxFQ1RfSVRFTV9IRUlHSFRfRU0gPSA0O1xuXG4vKipcbiAqIFNlbGVjdCBjb21wb25lbnQgaW50ZW5kZWQgdG8gbWltaWNcbiAqIHRoZSBiZWhhdmlvdXIgb2YgdGhlIG5hdGl2ZSBzZWxlY3QgZWxlbWVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1zZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLXNlbGVjdCcsXG4gICAgICAgICdbY2xhc3MuZmQtc2VsZWN0LS1pbmxpbmVdJzogJ2lubGluZScsXG4gICAgICAgICdbY2xhc3MuZmQtc2VsZWN0LS1jb21wYWN0XSc6ICdfY29udGVudERlbnNpdHlPYnNlcnZlci5pc0NvbXBhY3QnLFxuICAgICAgICAvLyBAZGVwcmVjYXRlZCBsZWF2aW5nIGNsYXNzIGZkLXNlbGVjdC1jdXN0b20tY2xhc3MgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgICAgICdbY2xhc3MuZmQtc2VsZWN0LWN1c3RvbS1jbGFzc10nOiAnaW5saW5lJyxcbiAgICAgICAgLy8gQGRlcHJlY2F0ZWQgbGVhdmluZyBjbGFzcyBmZC1zZWxlY3QtY3VzdG9tLWNsYXNzLS1tb2JpbGUgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgICAgICdbY2xhc3MuZmQtc2VsZWN0LWN1c3RvbS1jbGFzcy0tbW9iaWxlXSc6ICdtb2JpbGUnXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogU0VMRUNUX0NPTVBPTkVOVCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBTZWxlY3RDb21wb25lbnRcbiAgICAgICAgfSxcbiAgICAgICAgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2woU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgICAgU2VsZWN0S2V5TWFuYWdlclNlcnZpY2UsXG4gICAgICAgIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMoKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50PFQgPSBhbnk+XG4gICAgaW1wbGVtZW50c1xuICAgICAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICAgICAgU2VsZWN0SW50ZXJmYWNlLFxuICAgICAgICBPbkluaXQsXG4gICAgICAgIEFmdGVyVmlld0luaXQsXG4gICAgICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgICAgIE9uQ2hhbmdlcyxcbiAgICAgICAgT25EZXN0cm95LFxuICAgICAgICBGb3JtSXRlbUNvbnRyb2xcbntcbiAgICAvKiogSWQgb2YgdGhlIGNvbnRyb2wuICovXG4gICAgQElucHV0KClcbiAgICBjb250cm9sSWQgPSBgZmQtc2VsZWN0LSR7c2VsZWN0VW5pcXVlSWQrK31gO1xuXG4gICAgLyoqIEhvbGRzIHRoZSBjb250cm9sIHN0YXRlIG9mIHNlbGVjdCAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhdGU6IE51bGxhYmxlPEZvcm1TdGF0ZXM+O1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHNlbGVjdCBjb21wb25lbnQgc2hvdWxkIGJlIGRpc3BsYXllZCBpbiBtb2JpbGUgbW9kZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIG1vYmlsZSA9IGZhbHNlO1xuXG4gICAgLyoqIEhvbGRzIHRoZSBtZXNzYWdlIHdpdGggcmVzcGVjdCB0byBzdGF0ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhdGVNZXNzYWdlOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHNlbGVjdCBjb21wb25lbnQgaXMgZGlzYWJsZWQuICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqIElmIGl0IGlzIG1hbmRhdG9yeSBmaWVsZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVxdWlyZWQgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBzZWxlY3QgY29tcG9uZW50IGlzIHJlYWRvbmx5LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVhZG9ubHkgPSBmYWxzZTtcblxuICAgIC8qKiBQbGFjZWhvbGRlciBmb3IgdGhlIHNlbGVjdC4gQXBwZWFycyBpbiB0aGUgdHJpZ2dlcmJveCBpZiBubyBvcHRpb24gaXMgc2VsZWN0ZWQuICovXG4gICAgQElucHV0KClcbiAgICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gICAgLyoqIFZhbHVlIG9mIHRoZSBzZWxlY3QgY29udHJvbC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZShuZXdWYWx1ZTogYW55KSB7XG4gICAgICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5faW50ZXJuYWxWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2ludGVybmFsVmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ludGVybmFsVmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBkZXByZWNhdGVkXG4gICAgICogaXQgaXMgaGFuZGxlZCBpbnRlcm5hbGx5IGJ5IGNvbnRyb2xUZW1wbGF0ZSAhPSBudWxsfHVuZGVmaW5lZCBpc1xuICAgICAqIEVxdWFsIGFzIGV4dGVuZGVkQm9keVRlbXBsYXRlIGFzIHRydWUuXG4gICAgICogV2hldGhlciBvcHRpb24gY29tcG9uZW50cyBjb250YWluIG1vcmUgdGhhbiBiYXNpYyB0ZXh0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZXh0ZW5kZWRCb2R5VGVtcGxhdGUgPSBmYWxzZTtcblxuICAgIC8qKiBNYXggaGVpZ2h0IG9mIHRoZSBwb3BvdmVyLiBBbnkgb3ZlcmZsb3dpbmcgZWxlbWVudHMgd2lsbCBiZSBhY2Nlc3NpYmxlIHRocm91Z2ggc2Nyb2xsaW5nLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWF4SGVpZ2h0OiBzdHJpbmc7XG5cbiAgICAvKiogR2x5cGggdG8gYWRkIGljb24gaW4gdGhlIHNlbGVjdCBjb21wb25lbnQuICovXG4gICAgQElucHV0KClcbiAgICBnbHlwaCA9ICdzbGltLWFycm93LWRvd24nO1xuXG4gICAgLyoqIFdoZXRoZXIgY2xvc2UgdGhlIHBvcG92ZXIgb24gb3V0c2lkZSBjbGljay4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlT25PdXRzaWRlQ2xpY2sgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogUHJlc2V0IG9wdGlvbnMgZm9yIHRoZSBTZWxlY3QgYm9keSB3aWR0aCwgd2hhdGV2ZXIgaXMgY2hvc2VuLCB0aGUgYm9keSBoYXMgYSA2MDBweCBsaW1pdC5cbiAgICAgKiAqIGBhdC1sZWFzdGAgd2lsbCBhcHBseSBhIG1pbmltdW0gd2lkdGggdG8gdGhlIGJvZHkgZXF1aXZhbGVudCB0byB0aGUgd2lkdGggb2YgdGhlIGNvbnRyb2wuIC0gRGVmYXVsdFxuICAgICAqICogYGVxdWFsYCB3aWxsIGFwcGx5IGEgd2lkdGggdG8gdGhlIGJvZHkgZXF1aXZhbGVudCB0byB0aGUgd2lkdGggb2YgdGhlIGNvbnRyb2wuXG4gICAgICogKiAnZml0LWNvbnRlbnQnIHdpbGwgYXBwbHkgd2lkdGggbmVlZGVkIHRvIHByb3Blcmx5IGRpc3BsYXkgaXRlbXMgaW5zaWRlLCBpbmRlcGVuZGVudCBvZiBjb250cm9sLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsbENvbnRyb2xNb2RlOiBQb3BvdmVyRmlsbE1vZGUgPSAnYXQtbGVhc3QnO1xuXG4gICAgLyoqIEN1c3RvbSB0ZW1wbGF0ZSB1c2VkIHRvIGJ1aWxkIGNvbnRyb2wgYm9keS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbnRyb2xUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIC8qKiBUaGUgZWxlbWVudCB0byB3aGljaCB0aGUgcG9wb3ZlciBzaG91bGQgYmUgYXBwZW5kZWQuICovXG4gICAgQElucHV0KClcbiAgICBhcHBlbmRUbzogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIElmIHRoZSBvcHRpb24gc2hvdWxkIGJlIHVuc2VsZWN0ZWQgYW5kIHZhbHVlIGNoYW5nZWQgdG8gdW5kZWZpbmVkLCB3aGVuIHRoZSBjdXJyZW50IHZhbHVlIGlzXG4gICAgICogbm90IHByZXNlbnRlZCBpbiBvcHRpb24gYXJyYXkuIFN3aXRjaGluZyBpdCBvZmYgY2FuIGJlIGhhbmR5LCB3aGVuIHRoZXJlIGlzIHNvbWUgZGVsYXkgYmV0d2VlbiBwcm92aWRpbmdcbiAgICAgKiBwb3NzaWJsZSBvcHRpb25zIGFuZCBjaG9zZW4gdmFsdWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB1bnNlbGVjdE1pc3NpbmdPcHRpb24gPSB0cnVlO1xuXG4gICAgLyoqIFRpbWUgdG8gd2FpdCBpbiBtaWxsaXNlY29uZHMgYWZ0ZXIgdGhlIGxhc3Qga2V5ZG93biBiZWZvcmUgZm9jdXNpbmcgb3Igc2VsZWN0aW5nIG9wdGlvbiBiYXNlZCBvbiBhbHBoYW51bWVyaWMga2V5cy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWwgPSAyNTA7XG5cbiAgICAvKiogQmluZHMgdG8gY29udHJvbCBhcmlhLWxhYmVsbGVkQnkgYXR0cmlidXRlICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWxsZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBTZXRzIGNvbnRyb2wgYXJpYS1sYWJlbCBhdHRyaWJ1dGUgdmFsdWUgKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBTZWxlY3QgSW5wdXQgTW9iaWxlIENvbmZpZ3VyYXRpb24gKi9cbiAgICBASW5wdXQoKVxuICAgIG1vYmlsZUNvbmZpZzogTW9iaWxlTW9kZUNvbmZpZyA9IHsgaGFzQ2xvc2VCdXR0b246IHRydWUgfTtcblxuICAgIC8qKiBTaG91bGQgc2VsZWN0IGJlIGlubGluZWQuICovXG4gICAgQElucHV0KClcbiAgICBpbmxpbmUgPSB0cnVlO1xuXG4gICAgLyoqIEFkZGl0aW9uYWwgY2xhc3NuYW1lIGZvciB0aGUgc2VsZWN0IGNvbnRyb2wgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdENvbnRyb2xDbGFzczogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBBZGRpdGlvbmFsIGNsYXNzbmFtZSBmb3IgdGhlIHNlbGVjdCBkcm9wZG93biBidXR0b24gZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdERyb3Bkb3duQnV0dG9uQ2xhc3M6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBwb3BvdmVyIG9wZW4gc3RhdGUgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBpc09wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNlbGVjdGVkIHZhbHVlIG9mIHRoZSBzZWxlY3QgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihPcHRpb25Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBfb3B0aW9uczogUXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ3NlbGVjdENvbnRyb2wnKVxuICAgIF9jb250cm9sRWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICAvKiogUmVmZXJlbmNlIHRvIGVsZW1lbnQgY29udGFpbmluZyBsaXN0IG9mIG9wdGlvbnMgKi9cbiAgICBAVmlld0NoaWxkKCdzZWxlY3RPcHRpb25zTGlzdFRlbXBsYXRlJylcbiAgICBzZWxlY3RPcHRpb25zTGlzdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBSZWZlcmVuY2UgdG8gcm9vdCBlbGVtZW50IGZvciB0aGUgbW9iaWxlIG1vZGUgZGlhbG9nICovXG4gICAgQFZpZXdDaGlsZCgnZGlhbG9nQ29udGFpbmVyJylcbiAgICBfZGlhbG9nQ29udGFpbmVyRWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIE92ZXJsYXkgcGFuZSBjb250YWluaW5nIHRoZSBvcHRpb25zLlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKENka0Nvbm5lY3RlZE92ZXJsYXkpXG4gICAgX292ZXJsYXlEaXI6IENka0Nvbm5lY3RlZE92ZXJsYXk7XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIFJlZmVyZW50IHRvIHRoZSBvcHRpb247cyBjb250YWluZXJcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdvcHRpb25QYW5lbCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIF9vcHRpb25QYW5lbDogRWxlbWVudFJlZjtcblxuICAgIC8qKiBXaGV0aGVyIHBvcG92ZXIgaXMgb3BlbmVkXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9pc09wZW4gPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3RhYkluZGV4OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9saXZlQW5ub3VuY2VyOiBMaXZlQW5ub3VuY2VyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaW50ZXJuYWxWYWx1ZTogYW55O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2FsY3VsYXRlZE1heEhlaWdodDogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcnRsID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZWxlY3Rpb25Nb2RlbDogU2VsZWN0aW9uTW9kZWw8T3B0aW9uQ29tcG9uZW50PjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBUcmlnZ2VycyB3aGVuIGNvbXBvbmVudCBpcyBkZXN0cm95ZWRcbiAgICAgKi9cbiAgICByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfc2VsZWN0Q29udHJvbENsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbdGhpcy5zdGF0ZSA/IGBpcy0ke3RoaXMuc3RhdGV9YCA6ICcnLCB0aGlzLnNlbGVjdENvbnRyb2xDbGFzc11cbiAgICAgICAgICAgIC5maWx0ZXIoKGNsYXNzTmFtZSkgPT4gISFjbGFzc05hbWUpXG4gICAgICAgICAgICAuam9pbignICcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDb21iaW5lZCBzdHJlYW0gb2YgYWxsIG9mIHRoZSBjaGlsZCBvcHRpb25zJyBjaGFuZ2UgZXZlbnRzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IF9vcHRpb25TZWxlY3Rpb25DaGFuZ2VzOiBPYnNlcnZhYmxlPEZkT3B0aW9uU2VsZWN0aW9uQ2hhbmdlPiA9IGRlZmVyKCgpID0+IHtcbiAgICAgICAgY29uc3QgX29wdGlvbnMgPSB0aGlzLl9vcHRpb25zO1xuXG4gICAgICAgIHJldHVybiBfb3B0aW9ucz8uY2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKF9vcHRpb25zKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiBtZXJnZSguLi5fb3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLnNlbGVjdGlvbkNoYW5nZSkpKVxuICAgICAgICApO1xuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jb250cm9sRWxlbUZvbnRTaXplID0gMDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFN0b3JlZCBjYWxjdWxhdGVkIG1heEhlaWdodCBmcm9tIE9wdGlvbiBQYW5lbFxuICAgICAqL1xuICAgIHByaXZhdGUgX21heEhlaWdodDogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICAgIF9yZXNpemVTY3JvbGxIYW5kbGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91cGRhdGVDYWxjdWxhdGVkSGVpZ2h0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuX3RhYkluZGV4ID0gdGhpcy5kaXNhYmxlZCA/IC0xIDogMDtcbiAgICB9XG5cbiAgICAvKiogU2VsZWN0ZWQgb3B0aW9uLiAqL1xuICAgIGdldCBzZWxlY3RlZCgpOiBPcHRpb25Db21wb25lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWRbMF07XG4gICAgfVxuXG4gICAgLyoqIFJldHJpZXZlcyBzZWxlY3RlZCB2YWx1ZSBpZiBhbnkuICovXG4gICAgZ2V0IHRyaWdnZXJWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBlbXB0eVZhbHVlID0gJyAnO1xuICAgICAgICBpZiAodGhpcy5fc2VsZWN0aW9uTW9kZWwuaXNFbXB0eSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlciB8fCBlbXB0eVZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkLnZpZXdWYWx1ZSB8fCB0aGlzLnBsYWNlaG9sZGVyIHx8IGVtcHR5VmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIGVxdWFsIHRvIGNsb3NlXG4gICAgICogVGVsbHMgdGhlIE9wdGlvbkxpc3QgaWYgaXQncyBjbG9zYWJsZSBieSBzaW1wbHkgc2VsZWN0aW5nIHRoZSBpdGVtIGVpdGhlciB3aXRoIENMSUNLIHwgU1BBQ0UgfCBFTlRFUi5cbiAgICAgKiBXaGVuIHdlIGFyZSBpbiBtb2JpbGUgbW9kZSAobW9iaWxlPXRydWUpIGFuZCBoYXZlIHdlIGhhdmUgZW5hYmxlZCBjb25maXJtYXRpb24gYnV0dG9ucyB0aGVuIHdlXG4gICAgICogZG9udCBjbG9zZSBvcHRpb24gbGlzdC4gV2UgY2xvc2Ugb25seSBhZnRlciB3ZSBoaXQgY29uZmlybSBidXR0b24uXG4gICAgICovXG4gICAgZ2V0IGNhbkNsb3NlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISh0aGlzLm1vYmlsZSAmJiB0aGlzLm1vYmlsZUNvbmZpZy5hcHByb3ZlQnV0dG9uVGV4dCk7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgY29udHJvbCBjYW4gYmUgaW50ZXJhY3RlZCB3aXRoICovXG4gICAgZ2V0IGlzSW50ZXJhY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgd2UgY2FuIGVtaXQgYSB2YWx1ZS4gVGhleSBhcmUgMyBkaWZmZXJlbnQgcGF0aHMgd2hlcmUgd2UgY2FuIGVtaXQgdmFsdWU6XG4gICAgICogIC0gV2UgYXJlIG5vdCBpbiBtb2JpbGUgbW9kZSBbbW9iaWxlXT1mYWxzZVxuICAgICAqICAtIFdlIGFyZSBpbiBtb2JpbGUgbW9kZSBbbW9iaWxlXT10cnVlIGFuZCBtb2JpbGUgZGlhbG9nIGFzIGp1c3QgY2xvc2UgWCBidXR0b24gdG8gZGlzbWlzcyBpdFxuICAgICAqICAtIFdlIGFyZSBpbiBtb2JpbGUgbW9kZSBbbW9iaWxlXT10cnVlIGFuZCBtb2JpbGUgZGlhbG9nIGhhcyBBcHByb3ZlQnV0dG9uIGF2YWlsYWJsZSBhbmRcbiAgICAgKiAgZGlhbG9nIGlzIGNsb3NlZC4gKG1lYW5pbmcgd2UgYWxyZWFkeSBjbGlja2VkIHRoaXMgYnV0dG9uKVxuICAgICAqL1xuICAgIGdldCBjYW5FbWl0VmFsdWVDaGFuZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhdGhpcy5tb2JpbGUgfHxcbiAgICAgICAgICAgICh0aGlzLm1vYmlsZSAmJlxuICAgICAgICAgICAgICAgIC8vIEFwcHJvdmUgKyBDYW5jZWxcbiAgICAgICAgICAgICAgICAhIXRoaXMubW9iaWxlQ29uZmlnLmFwcHJvdmVCdXR0b25UZXh0ICYmXG4gICAgICAgICAgICAgICAgIXRoaXMuX2lzT3BlbikgfHxcbiAgICAgICAgICAgIC8vIENsb3NlQnV0dG9uLiBFbWl0cyB3aGVuIHlvdSBjbGljayBvbiB0aGUgb3B0aW9uIGl0ZW1cbiAgICAgICAgICAgICghIXRoaXMubW9iaWxlQ29uZmlnLmhhc0Nsb3NlQnV0dG9uICYmICEhdGhpcy5tb2JpbGVDb25maWcuYXBwcm92ZUJ1dHRvblRleHQgPT09IGZhbHNlKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NvbXBhcmVXaXRoID0gKG8xOiBhbnksIG8yOiBhbnkpOiBib29sZWFuID0+IG8xID09PSBvMjtcblxuICAgIC8qKiBGdW5jdGlvbiB0byBjb21wYXJlIHRoZSBvcHRpb24gdmFsdWVzIHdpdGggdGhlIHNlbGVjdGVkIHZhbHVlcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb21wYXJlV2l0aChmbjogKG8xOiBhbnksIG8yOiBhbnkpID0+IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ2NvbXBhcmVXaXRoYCBtdXN0IGJlIGEgZnVuY3Rpb24uJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY29tcGFyZVdpdGggPSBmbjtcbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbk1vZGVsKSB7XG4gICAgICAgICAgICAvLyBBIGRpZmZlcmVudCBjb21wYXJhdG9yIG1lYW5zIHRoZSBzZWxlY3Rpb24gY291bGQgY2hhbmdlLlxuICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZVNlbGVjdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBjb21wYXJlV2l0aCgpOiAobzE6IGFueSwgbzI6IGFueSkgPT4gYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb21wYXJlV2l0aDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9jdXNlZCB8fCB0aGlzLl9pc09wZW47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgY2FsY3VsYXRlZE1heEhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWF4SGVpZ2h0IHx8IHRoaXMuX2NhbGN1bGF0ZWRNYXhIZWlnaHQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEF0dHJpYnV0ZSgndGFiaW5kZXgnKSBfdGFiSW5kZXg6IHN0cmluZyxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBfcnRsU2VydmljZTogUnRsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfa2V5TWFuYWdlclNlcnZpY2U6IFNlbGVjdEtleU1hbmFnZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgX2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlOiBEeW5hbWljQ29tcG9uZW50U2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwcml2YXRlIHJlYWRvbmx5IG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHJlYWRvbmx5IF9jb250ZW50RGVuc2l0eU9ic2VydmVyOiBDb250ZW50RGVuc2l0eU9ic2VydmVyXG4gICAgKSB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdGFiSW5kZXggPSBwYXJzZUludChfdGFiSW5kZXgsIDEwKSB8fCAwO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVDb21tb25CZWhhdmlvcigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyU2VydmljZS5faW5pdEtleU1hbmFnZXIoKTtcbiAgICAgICAgdGhpcy5fc2V0dXBNb2JpbGVNb2RlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlZ2lzdGVyRXZlbnRzQWZ0ZXJDb250ZW50SW5pdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlc1sndHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCddICYmIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyKSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyU2VydmljZS5fa2V5TWFuYWdlci53aXRoVHlwZUFoZWFkKHRoaXMudHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCk7XG4gICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlc1snZGlzYWJsZWQnXSkge1xuICAgICAgICAgICAgdGhpcy5fdGFiSW5kZXggPSB0aGlzLmRpc2FibGVkID8gLTEgOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9jbGVhbnVwQ29tbW9uQmVoYXZpb3IoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7fTtcblxuICAgIC8qKiBUb2dnbGVzIHRoZSBvcGVuIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXNPcGVuID8gdGhpcy5jbG9zZSgpIDogdGhpcy5vcGVuKCk7XG4gICAgfVxuXG4gICAgLyoqIE9wZW5zIHRoZSBzZWxlY3QgcG9wb3ZlciBib2R5LiAqL1xuICAgIG9wZW4oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZG9ubHkgfHwgIXRoaXMuX29wdGlvbnMgfHwgIXRoaXMuX2dldEl0ZW1Db3VudCgpIHx8IHRoaXMuX2lzT3Blbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzT3BlbiA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5fY29udHJvbEVsZW1Gb250U2l6ZSA9IHBhcnNlSW50KFxuICAgICAgICAgICAgZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9jb250cm9sRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5mb250U2l6ZSB8fCAnMCcsXG4gICAgICAgICAgICAxMFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24obnVsbCk7XG4gICAgICAgIHRoaXMuX2hpZ2hsaWdodENvcnJlY3RPcHRpb24oKTtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG5cbiAgICAgICAgdGhpcy5pc09wZW5DaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNsb3NlKGZvcmNlQ2xvc2U6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5faXNPcGVuICYmIChmb3JjZUNsb3NlIHx8IHRoaXMuY2xvc2UpKSB7XG4gICAgICAgICAgICB0aGlzLl9pc09wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5faXNSdGwoKSA/ICdydGwnIDogJ2x0cicpO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuXG4gICAgICAgICAgICB0aGlzLmlzT3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBGb2N1c2VzIHNlbGVjdCBjb250cm9sLiAqL1xuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICAodGhpcy5fY29udHJvbEVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEJsdXJzIHNlbGVjdCBjb250cm9sLiAqL1xuICAgIGJsdXIoKTogdm9pZCB7XG4gICAgICAgICh0aGlzLl9jb250cm9sRWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuYmx1cigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBmcm9tIENvbnRyb2xWYWx1ZSBBY2Nlc3NvciAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fb3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5fc2V0U2VsZWN0aW9uQnlWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZXRTZWxlY3Rpb25CeVZhbHVlKHZhbHVlOiBhbnkgfCBhbnlbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xuICAgICAgICBjb25zdCBjb3JyZXNwb25kaW5nT3B0aW9uID0gdGhpcy5fc2VsZWN0VmFsdWUodmFsdWUpO1xuXG4gICAgICAgIC8vIFNoaWZ0IGZvY3VzIHRvIHRoZSBhY3RpdmUgaXRlbS4gTm90ZSB0aGF0IHdlIHNob3VsZG4ndCBkbyB0aGlzIGluIG11bHRpcGxlXG4gICAgICAgIC8vIG1vZGUsIGJlY2F1c2Ugd2UgZG9uJ3Qga25vdyB3aGF0IG9wdGlvbiB0aGUgdXNlciBpbnRlcmFjdGVkIHdpdGggbGFzdC5cbiAgICAgICAgaWYgKGNvcnJlc3BvbmRpbmdPcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oY29ycmVzcG9uZGluZ09wdGlvbik7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX2lzT3Blbikge1xuICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIHJlc2V0IHRoZSBoaWdobGlnaHRlZCBvcHRpb24uIE5vdGUgdGhhdCB3ZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyB3aGlsZVxuICAgICAgICAgICAgLy8gY2xvc2VkLCBiZWNhdXNlIGRvaW5nIGl0IHdoaWxlIG9wZW4gY2FuIHNoaWZ0IHRoZSB1c2VyJ3MgZm9jdXMgdW5uZWNlc3NhcmlseS5cbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oLTEpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2VsZWN0VmFsdWUodmFsdWU6IGFueSk6IE9wdGlvbkNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGNvcnJlc3BvbmRpbmdPcHRpb24gPSB0aGlzLl9vcHRpb25zLmZpbmQoKG9wdGlvbjogT3B0aW9uQ29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIC8vIFRyZWF0IG51bGwgYXMgYSBzcGVjaWFsIHJlc2V0IHZhbHVlLlxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udmFsdWUgIT0gbnVsbCAmJiB0aGlzLl9jb21wYXJlV2l0aChvcHRpb24udmFsdWUsIHZhbHVlKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE5vdGlmeSBkZXZlbG9wZXJzIG9mIGVycm9ycyBpbiB0aGVpciBjb21wYXJhdG9yLlxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjb3JyZXNwb25kaW5nT3B0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3QoY29ycmVzcG9uZGluZ09wdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29ycmVzcG9uZGluZ09wdGlvbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9wb3BvdmVyT3BlbkNoYW5nZUhhbmRsZShpc09wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaXNPcGVuID8gdGhpcy5vcGVuKCkgOiB0aGlzLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gUmV0dXJucyBfa2V5TWFuYWdlclNlcnZpY2UuICovXG4gICAgX2dldEtleVNlcnZpY2UoKTogU2VsZWN0S2V5TWFuYWdlclNlcnZpY2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5fa2V5TWFuYWdlclNlcnZpY2U7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgICB0aGlzLl90YWJJbmRleCA9IC0xO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2hpZ2hsaWdodENvcnJlY3RPcHRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9rZXlNYW5hZ2VyU2VydmljZS5fa2V5TWFuYWdlciAmJiB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5pc0VtcHR5KCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyLnNldEZpcnN0SXRlbUFjdGl2ZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyICYmICF0aGlzLl9zZWxlY3Rpb25Nb2RlbC5pc0VtcHR5KCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0odGhpcy5zZWxlY3RlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jbGVhbnVwQ29tbW9uQmVoYXZpb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaW5pdGlhbGl6ZVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgLy8gRGVmZXIgc2V0dGluZyB0aGUgdmFsdWUgaW4gb3JkZXIgdG8gYXZvaWQgdGhlIFwiRXhwcmVzc2lvblxuICAgICAgICAvLyBoYXMgY2hhbmdlZCBhZnRlciBpdCB3YXMgY2hlY2tlZFwiIGVycm9ycyBmcm9tIEFuZ3VsYXIuXG4gICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc2V0U2VsZWN0aW9uQnlWYWx1ZSh0aGlzLm5nQ29udHJvbCA/IHRoaXMubmdDb250cm9sLnZhbHVlIDogdGhpcy5faW50ZXJuYWxWYWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4cG9zZSBleHBvc2Ugb3V0c2lkZSBvZiB0aGlzIG1peGluIHRvIGdpdmUgY29tcG9uZW50IGFiaWxpdHlcbiAgICAgKiB0byB1cGRhdGUgY2FsdWNsYXRlZE1heEhlaWdodCBpZiBuZWVkZWRcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX3VwZGF0ZUNhbGN1bGF0ZWRIZWlnaHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NhbGN1bGF0ZWRNYXhIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjQ1O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2dldE9wdGlvblNjcm9sbFBvc2l0aW9uKG9wdGlvbkluZGV4OiBudW1iZXIsIGl0ZW1IZWlnaHQ6IG51bWJlciwgY3VycmVudFNjcm9sbFBvc2l0aW9uOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBvcHRpb25IZWlnaHQgPSB0aGlzLl9vcHRpb25zLmdldChvcHRpb25JbmRleCk/Ll9nZXRIdG1sRWxlbWVudCgpLm9mZnNldEhlaWdodCB8fCBpdGVtSGVpZ2h0O1xuICAgICAgICBjb25zdCBvcHRpb25PZmZzZXQgPSBvcHRpb25JbmRleCAqIG9wdGlvbkhlaWdodDtcbiAgICAgICAgaWYgKG9wdGlvbk9mZnNldCA8IGN1cnJlbnRTY3JvbGxQb3NpdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbk9mZnNldDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25PZmZzZXQgKyBvcHRpb25IZWlnaHQgPiBjdXJyZW50U2Nyb2xsUG9zaXRpb24gKyBTRUxFQ1RfUEFORUxfTUFYX0hFSUdIVCkge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgubWF4KDAsIG9wdGlvbk9mZnNldCAtIFNFTEVDVF9QQU5FTF9NQVhfSEVJR0hUICsgb3B0aW9uSGVpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3VycmVudFNjcm9sbFBvc2l0aW9uO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2dldEl0ZW1IZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgLy8gYWxzbyBpbmNsdWRlIGJvcmRlciB3aXRoIGRlZmF1bHQgdmFsdWUgMS5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRyb2xFbGVtRm9udFNpemUgKiBTRUxFQ1RfSVRFTV9IRUlHSFRfRU0gKyAxO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2luaXRpYWxpemVDb21tb25CZWhhdmlvcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwgPSBuZXcgU2VsZWN0aW9uTW9kZWw8T3B0aW9uQ29tcG9uZW50PihmYWxzZSk7XG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9jb21wb25lbnQgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMuX3VwZGF0ZUNhbGN1bGF0ZWRIZWlnaHQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pc1J0bCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuX3J0bFNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgICAgIHRoaXMuX3J0bFNlcnZpY2UucnRsLnN1YnNjcmliZSgocnRsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3J0bCA9IHJ0bDtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcnRsID09PSB0cnVlID8gdHJ1ZSA6IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3JlZ2lzdGVyRXZlbnRzQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwuY2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgZXZlbnQuYWRkZWQuZm9yRWFjaCgob3B0aW9uKSA9PiBvcHRpb24uX3NlbGVjdCgpKTtcbiAgICAgICAgICAgIGV2ZW50LnJlbW92ZWQuZm9yRWFjaCgob3B0aW9uKSA9PiBvcHRpb24uX2Rlc2VsZWN0KCkpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9vcHRpb25zLmNoYW5nZXMucGlwZShzdGFydFdpdGgobnVsbCksIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Jlc2V0T3B0aW9ucygpO1xuICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZVNlbGVjdGlvbigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIF9oYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgdGhpcy5faXNPcGVuXG4gICAgICAgICAgICAgICAgPyB0aGlzLl9rZXlNYW5hZ2VyU2VydmljZS5faGFuZGxlT3BlbktleWRvd24oZXZlbnQpXG4gICAgICAgICAgICAgICAgOiB0aGlzLl9rZXlNYW5hZ2VyU2VydmljZS5faGFuZGxlQ2xvc2VkS2V5ZG93bihldmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBFU0NBUEUpKSB7XG4gICAgICAgICAgICB0aGlzLl9jb250cm9sRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9nZXRBcmlhQWN0aXZlRGVzY2VuZGFudCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzT3BlbiAmJiB0aGlzLl9rZXlNYW5hZ2VyU2VydmljZS5fa2V5TWFuYWdlciAmJiB0aGlzLl9rZXlNYW5hZ2VyU2VydmljZS5fa2V5TWFuYWdlci5hY3RpdmVJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIuYWN0aXZlSXRlbS5pZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vbkZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vbkJsdXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZvY3VzZWQgPSBmYWxzZTtcblxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMuX2lzT3Blbikge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZXNldE9wdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNoYW5nZWRPckRlc3Ryb3llZCA9IG1lcmdlKHRoaXMuX29wdGlvbnMuY2hhbmdlcywgdGhpcy5fZGVzdHJveSk7XG5cbiAgICAgICAgdGhpcy5fb3B0aW9uU2VsZWN0aW9uQ2hhbmdlcy5waXBlKHRha2VVbnRpbChjaGFuZ2VkT3JEZXN0cm95ZWQpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9vblNlbGVjdChldmVudC5zb3VyY2UsIGV2ZW50LmlzVXNlcklucHV0KTtcblxuICAgICAgICAgICAgaWYgKGV2ZW50LmlzVXNlcklucHV0ICYmIHRoaXMuX2lzT3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gTGlzdGVuIHRvIGNoYW5nZXMgaW4gdGhlIGludGVybmFsIHN0YXRlIG9mIHRoZSBfb3B0aW9ucyBhbmQgcmVhY3QgYWNjb3JkaW5nbHkuXG4gICAgICAgIC8vIEhhbmRsZXMgY2FzZXMgbGlrZSB0aGUgbGFiZWxzIG9mIHRoZSBzZWxlY3RlZCBfb3B0aW9ucyBjaGFuZ2luZy5cbiAgICAgICAgbWVyZ2UoLi4udGhpcy5fb3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLl9zdGF0ZUNoYW5nZXMpKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKGNoYW5nZWRPckRlc3Ryb3llZCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBJbnZva2VkIHdoZW4gYW4gb3B0aW9uIGlzIGNsaWNrZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfb25TZWxlY3Qob3B0aW9uOiBPcHRpb25Db21wb25lbnQsIGlzVXNlcklucHV0OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHdhc1NlbGVjdGVkID0gdGhpcy5fc2VsZWN0aW9uTW9kZWwuaXNTZWxlY3RlZChvcHRpb24pO1xuICAgICAgICBpZiAoKG9wdGlvbi52YWx1ZSA9PT0gbnVsbCB8fCBvcHRpb24udmFsdWUgPT09IHVuZGVmaW5lZCkgJiYgdGhpcy51bnNlbGVjdE1pc3NpbmdPcHRpb24pIHtcbiAgICAgICAgICAgIG9wdGlvbi5fZGVzZWxlY3QoKTtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICAgICAgICB0aGlzLl9lbWl0U2VsZWN0Q2hhbmdlKG9wdGlvbi52YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAod2FzU2VsZWN0ZWQgIT09IG9wdGlvbi5zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIG9wdGlvbi5zZWxlY3RlZCA/IHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdChvcHRpb24pIDogdGhpcy5fc2VsZWN0aW9uTW9kZWwuZGVzZWxlY3Qob3B0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1VzZXJJbnB1dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0ob3B0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh3YXNTZWxlY3RlZCAhPT0gdGhpcy5fc2VsZWN0aW9uTW9kZWwuaXNTZWxlY3RlZChvcHRpb24pIHx8IHRoaXMubW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0U2VsZWN0Q2hhbmdlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2VtaXRTZWxlY3RDaGFuZ2UoZGVmYXVsdFZhbD86IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jYW5FbWl0VmFsdWVDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2ludGVybmFsVmFsdWUgPVxuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkICYmIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLmxlbmd0aCAhPT0gMFxuICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLnNlbGVjdGVkIGFzIE9wdGlvbkNvbXBvbmVudCkudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiBkZWZhdWx0VmFsO1xuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuX2ludGVybmFsVmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLl9pbnRlcm5hbFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRJdGVtQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuX29wdGlvblBhbmVsICYmIHRoaXMuX2hlYWRlckVsZW1lbnRzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnMubGVuZ3RoICsgdGhpcy5faGVhZGVyRWxlbWVudHMoKS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnMubGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaGVhZGVyRWxlbWVudHMoKTogTm9kZUxpc3RPZjxFbGVtZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25QYW5lbD8ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFNFTEVDVF9IRUFERVJfSURFTlRJRklFUik7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGFzeW5jIF9zZXR1cE1vYmlsZU1vZGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghdGhpcy5tb2JpbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogU0VMRUNUX0NPTVBPTkVOVCwgdXNlVmFsdWU6IHRoaXMgfV0sXG4gICAgICAgICAgICBwYXJlbnQ6IHRoaXMuX2luamVjdG9yXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGF3YWl0IHRoaXMuX2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlLmNyZWF0ZUR5bmFtaWNNb2R1bGUoXG4gICAgICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbnNMaXN0VGVtcGxhdGUsXG4gICAgICAgICAgICBTZWxlY3RNb2JpbGVNb2R1bGUsXG4gICAgICAgICAgICBTZWxlY3RNb2JpbGVDb21wb25lbnQsXG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgaW5qZWN0b3JcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEZXByZWNhdGVkU2VsZWN0Q1NTQ2xhc3NlcyBpbXBsZW1lbnRzIE1vZHVsZURlcHJlY2F0aW9uIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG1lc3NhZ2UgPSBgU2VsZWN0IENTUyBjbGFzc2VzIGZkLXNlbGVjdC0tY29tcGFjdCwgZmQtc2VsZWN0LS1jb21wYWN0LS1tb2JpbGUsIGZkLXBvcG92ZXItY3VzdG9tLXNlbGVjdC1ib2R5LCBmZC1wb3BvdmVyLWN1c3RvbS1saXN0IGFyZSBkZXByZWNhdGVkYDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgYWx0ZXJuYXRpdmUgPSB7XG4gICAgICAgIG5hbWU6ICdJbnNwZWN0IHRoZSBlbGVtZW50cyBvZiB0aGUgU2VsZWN0IGNvbXBvbmVudCB0byBzZWUgdGhlIG5ldyBjbGFzc2VzJyxcbiAgICAgICAgbGluazogWycvY29yZScsICdzZWxlY3QnXVxuICAgIH07XG59XG4iLCI8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9iaWxlID8gbW9iaWxlVGVtcGxhdGUgOiBkZXNrdG9wVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNkZXNrdG9wVGVtcGxhdGU+XG4gICAgPCEtLSBAZGVwcmVjYXRlZCBsZWF2aW5nIGNsYXNzIGZkLXBvcG92ZXItY3VzdG9tLWxpc3QgdG8gc3VwcG9ydCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS0tPlxuICAgIDxmZC1wb3BvdmVyXG4gICAgICAgIGFkZGl0aW9uYWxCb2R5Q2xhc3M9XCJmZC1zZWxlY3QtZHJvcGRvd24gZmQtcG9wb3Zlci1jdXN0b20tbGlzdFwiXG4gICAgICAgIFtpc09wZW5dPVwiX2lzT3BlblwiXG4gICAgICAgIFt0cmlnZ2Vyc109XCJbXVwiXG4gICAgICAgIFtmb2N1c1RyYXBwZWRdPVwidHJ1ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiXG4gICAgICAgIFthcHBlbmRUb109XCJhcHBlbmRUb1wiXG4gICAgICAgIFtjbG9zZU9uRXNjYXBlS2V5XT1cInRydWVcIlxuICAgICAgICBbZmlsbENvbnRyb2xNb2RlXT1cImZpbGxDb250cm9sTW9kZVwiXG4gICAgICAgIFttYXhXaWR0aF09XCI2MDBcIlxuICAgICAgICBbY2xvc2VPbk91dHNpZGVDbGlja109XCJjbG9zZU9uT3V0c2lkZUNsaWNrXCJcbiAgICAgICAgKGlzT3BlbkNoYW5nZSk9XCJfcG9wb3Zlck9wZW5DaGFuZ2VIYW5kbGUoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxlY3RJbnB1dENvbnRyb2xUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cblxuICAgICAgICA8IS0tIEBkZXByZWNhdGVkIGxlYXZpbmcgY2xhc3MgZmQtcG9wb3Zlci1jdXN0b20tc2VsZWN0LWJvZHkgdG8gc3VwcG9ydCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS0tPlxuICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5IGNsYXNzPVwiZmQtcG9wb3Zlci1jdXN0b20tc2VsZWN0LWJvZHlcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VsZWN0T3B0aW9uc0xpc3RUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cbiAgICA8L2ZkLXBvcG92ZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NlbGVjdElucHV0Q29udHJvbFRlbXBsYXRlPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmZC1zZWxlY3RfX2NvbnRyb2xcIlxuICAgICAgICByb2xlPVwibGlzdFwiXG4gICAgICAgICNzZWxlY3RDb250cm9sXG4gICAgICAgIFtjbGFzc109XCJfc2VsZWN0Q29udHJvbENsYXNzXCJcbiAgICAgICAgW2NsYXNzLmlzLWFjdGl2ZV09XCJfaXNPcGVuXCJcbiAgICAgICAgW2NsYXNzLmlzLWV4cGFuZGVkXT1cIl9pc09wZW5cIlxuICAgICAgICBbY2xhc3MuaXMtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbY2xhc3MuaXMtcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICBbYXR0ci50YWJpbmRleF09XCJfdGFiSW5kZXhcIlxuICAgICAgICBbYXR0ci5pZF09XCJjb250cm9sSWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWFjdGl2ZV09XCJfaXNPcGVuXCJcbiAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJzZWxlY3RlZCA/IHNlbGVjdGVkLnNlbGVjdGVkIDogbnVsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiX2lzT3BlblwiXG4gICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImNvbnRyb2xJZCArICctbGlzdC1ib3gnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCIhKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZClcIlxuICAgICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwidHJpZ2dlclZhbHVlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwgfHwgKCdwbGF0Zm9ybVNlbGVjdC5zZWxlY3RPcHRpb25MYWJlbCcgfCBmZFRyYW5zbGF0ZSlcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICBbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdPVwiX2dldEFyaWFBY3RpdmVEZXNjZW5kYW50KClcIlxuICAgICAgICAoZm9jdXMpPVwiX29uRm9jdXMoKVwiXG4gICAgICAgIChibHVyKT1cIl9vbkJsdXIoKVwiXG4gICAgPlxuICAgICAgICA8ZGl2IHJvbGU9XCJsaXN0aXRlbVwiIGNsYXNzPVwiZmQtc2VsZWN0X190ZXh0LWNvbnRlbnRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRyaWdnZXJWYWx1ZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRyb2xUZW1wbGF0ZSA/IGNvbnRyb2xUZW1wbGF0ZSA6IGRlZmF1bHRTZWxlY3RDb250ZW50XCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHRyaWdnZXJWYWx1ZSwgc2VsZWN0ZWQ6IHNlbGVjdGVkIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFNlbGVjdENvbnRlbnQ+XG4gICAgICAgICAgICAgICAge3sgdHJpZ2dlclZhbHVlIH19XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmQtYnV0dG9uLS10cmFuc3BhcmVudCBmZC1zZWxlY3RfX2J1dHRvbiB7eyBzZWxlY3REcm9wZG93bkJ1dHRvbkNsYXNzIH19XCJcbiAgICAgICAgICAgICpuZ0lmPVwiIXJlYWRvbmx5XCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICBbZ2x5cGhdPVwiZ2x5cGhcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NlbGVjdE9wdGlvbnNMaXN0VGVtcGxhdGU+XG4gICAgPHVsXG4gICAgICAgICNvcHRpb25QYW5lbFxuICAgICAgICBmZC1saXN0XG4gICAgICAgIGNsYXNzPVwiZmQtc2VsZWN0LW9wdGlvbnNcIlxuICAgICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBbbW9iaWxlTW9kZV09XCJtb2JpbGVcIlxuICAgICAgICBbZHJvcGRvd25Nb2RlXT1cInRydWVcIlxuICAgICAgICBbaGFzTWVzc2FnZV09XCIhIXN0YXRlTWVzc2FnZVwiXG4gICAgICAgIFthdHRyLmlkXT1cImNvbnRyb2xJZCArICctbGlzdC1ib3gnXCJcbiAgICAgICAgW3N0eWxlLm1heC1oZWlnaHRdPVwibWF4SGVpZ2h0IHx8IGNhbGN1bGF0ZWRNYXhIZWlnaHQgKyAncHgnXCJcbiAgICAgICAgW2F0dHIudG9vbHRpcF09XCJ0cmlnZ2VyVmFsdWVcIlxuICAgID5cbiAgICAgICAgPGxpXG4gICAgICAgICAgICAqbmdJZj1cInN0YXRlTWVzc2FnZVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInN0YXRlTWVzc2FnZVwiXG4gICAgICAgICAgICBmZC1saXN0LW1lc3NhZ2VcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgICBbdHlwZV09XCJzdGF0ZSB8fCAnZGVmYXVsdCdcIlxuICAgICAgICAgICAgW2lubmVySHRtbF09XCJzdGF0ZU1lc3NhZ2VcIlxuICAgICAgICA+PC9saT5cblxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC91bD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbW9iaWxlVGVtcGxhdGU+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxlY3RJbnB1dENvbnRyb2xUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPGRpdiAjZGlhbG9nQ29udGFpbmVyPjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|