@colijnit/homedecorator 256.1.0 → 256.1.3
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/app/core/model/homedecorator-settings.d.ts +1 -0
- package/app/homedecorator.module.d.ts +2 -1
- package/app/plugins/help/help-dialog/help-dialog.component.scss +10 -1
- package/app/plugins/model-uploader/model-previewer/model-preview.component.d.ts +5 -11
- package/app/plugins/product-catalog/product-catalog/product-catalog.component.d.ts +1 -0
- package/app/plugins/render/service/new-render.service.d.ts +0 -2
- package/app/plugins/render/service/render.service.d.ts +1 -2
- package/assets/hdri/std_env_v2_A.hdr +0 -0
- package/assets/hdri/std_env_v2_B.hdr +0 -0
- package/assets/hdri/std_env_v2_C.hdr +0 -0
- package/assets/hdri/std_env_v2_D.hdr +0 -0
- package/assets/hdri/std_env_v2_E.hdr +46 -0
- package/bundles/colijnit-homedecorator.umd.js +106 -253
- package/bundles/colijnit-homedecorator.umd.js.map +1 -1
- package/esm2015/app/core/model/homedecorator-settings.js +1 -1
- package/esm2015/app/core/service/homedecorator-settings.service.js +4 -1
- package/esm2015/app/homedecorator.module.js +8 -4
- package/esm2015/app/plugins/core3d/service/lights.service.js +6 -5
- package/esm2015/app/plugins/core3d/service/scene.service.js +20 -20
- package/esm2015/app/plugins/help/help-dialog/help-dialog.component.js +1 -1
- package/esm2015/app/plugins/model-uploader/model-previewer/model-preview.component.js +50 -75
- package/esm2015/app/plugins/product-catalog/product-catalog/product-catalog.component.js +23 -15
- package/esm2015/app/plugins/render/render-controls/render-controls.component.js +3 -3
- package/esm2015/app/plugins/render/service/new-render.service.js +1 -1
- package/esm2015/app/plugins/render/service/render.service.js +88 -77
- package/esm2015/app/plugins/room-planner/components/floorplanner/service/floorplan.service.js +2 -2
- package/esm2015/app/plugins/room-planner/components/floorplanner/service/room.service.js +2 -2
- package/esm2015/app/plugins/room-planner/components/texture-picker/texture-picker.component.js +1 -1
- package/esm2015/app/plugins/toolbar/toolbar/toolbar.component.js +7 -7
- package/esm2015/app/shared/category-library/category-library.component.js +1 -1
- package/fesm2015/colijnit-homedecorator.js +206 -202
- package/fesm2015/colijnit-homedecorator.js.map +1 -1
- package/homedecorator-globals.scss +3 -0
- package/package.json +1 -1
|
@@ -19,4 +19,4 @@ export class HomedecoratorSettings {
|
|
|
19
19
|
this.standaloneSceneBackgroundColor = '0x0f0f0f';
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZWRlY29yYXRvci1zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnQvYXBwL2NvcmUvbW9kZWwvaG9tZWRlY29yYXRvci1zZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUU5RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFFdEUsTUFBTSxPQUFPLHFCQUFxQjtJQUFsQztRQU9TLG1CQUFjLEdBQVcsR0FBRyxDQUFDO1FBRzdCLFlBQU8sR0FBUSxTQUFTLENBQUM7UUFDekIsY0FBUyxHQUFZLElBQUksQ0FBQztRQUMxQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLHVCQUFrQixHQUFZLElBQUksQ0FBQztRQUNuQyxzQkFBaUIsR0FBWSxJQUFJLENBQUM7UUFDbEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQWExQixjQUFTLEdBQVcsa0NBQWtDLENBQUM7UUFDdkQsWUFBTyxHQUFpQyxJQUFJLDRCQUE0QixFQUFFLENBQUM7UUFFM0UscUJBQWdCLEdBQXFCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUM1RCx3QkFBbUIsR0FBcUIsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBQy9ELGlCQUFZLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFPaEQseUJBQW9CLEdBQVcsVUFBVSxDQUFDO1FBQzFDLG1DQUE4QixHQUFXLFVBQVUsQ0FBQztJQVU3RCxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0hvbWVkZWNvcmF0b3JTZXR0aW5nc09wdGlvbnN9IGZyb20gJy4vaG9tZWRlY29yYXRvci1zZXR0aW5ncy1vcHRpb25zJztcclxuaW1wb3J0IHtHZXRBcnRpY2xlc0ZvckNhdGFsb2dSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvY29uZmlndXJhdG9yYXBpL2J1aWxkL21vZGVsL2dldC1hcnRpY2xlcy1mb3ItY2F0YWxvZyc7XHJcbmltcG9ydCB7UmVuZGVyUGFyYW1ldGVyc30gZnJvbSAnLi4vLi4vcGx1Z2lucy9yZW5kZXIvbW9kZWwvcmVuZGVyLXBhcmFtZXRlcnMnO1xyXG5pbXBvcnQge0FyUGFyYW1ldGVyc30gZnJvbSAnLi4vLi4vcGx1Z2lucy9jb3JlM2QvbW9kZWwvYXItcGFyYW1ldGVycyc7XHJcblxyXG5leHBvcnQgY2xhc3MgSG9tZWRlY29yYXRvclNldHRpbmdzIHtcclxuXHJcbiAgcHVibGljIHVybDogc3RyaW5nO1xyXG4gIHB1YmxpYyBzY2hlbWE6IHN0cmluZztcclxuICBwdWJsaWMgdmVyc2lvbjogc3RyaW5nO1xyXG4gIHB1YmxpYyBicmFuY2g6IHN0cmluZztcclxuICBwdWJsaWMgY3VycmVuY3k6IG51bWJlcjtcclxuICBwdWJsaWMgY3VycmVuY3lTeW1ib2w6IHN0cmluZyA9ICfigqwnO1xyXG4gIHB1YmxpYyB1c2VybmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBwYXNzd29yZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBzZXNzaW9uOiBhbnkgPSB1bmRlZmluZWQ7XHJcbiAgcHVibGljIHVzZUdyb3VwczogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIHVzZVJlbmRlcnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgdXNlTG9naW5FbmNyeXB0aW9uOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgbG9nb3V0V2hlblJlZnJlc2g6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyB1c2VNYXRjaDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBhc3NldFBhdGg6IHN0cmluZztcclxuICBwdWJsaWMgdGhyZWVEQXNzZXRQYXRoOiBzdHJpbmc7XHJcbiAgcHVibGljIGFzc2V0SW5kZXg6IHN0cmluZztcclxuICBwdWJsaWMgbGlnaHRQcmVzZXRzSW5kZXg6IHN0cmluZztcclxuICBwdWJsaWMgYWRkaXRpb25hbFRyYW5zbGF0aW9uRmlsZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBhcGlVcmw6IHN0cmluZztcclxuICBwdWJsaWMgY2xpZW50OiBzdHJpbmc7XHJcbiAgcHVibGljIHRpbWVvdXRJbk1zOiBudW1iZXI7XHJcbiAgcHVibGljIGxhbmd1YWdlQ29kZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBzZWNvbmRhcnlMb2dvOiBzdHJpbmc7XHJcbiAgcHVibGljIGp3dEVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgcHVibGljIGd0bTogc3RyaW5nO1xyXG4gIHB1YmxpYyBkcmFjb1BhdGg6IHN0cmluZyA9ICdodHRwczovL2NkbjEuY29saWpuLWl0Lm5sL2RyYWNvLyc7XHJcbiAgcHVibGljIG9wdGlvbnM6IEhvbWVkZWNvcmF0b3JTZXR0aW5nc09wdGlvbnMgPSBuZXcgSG9tZWRlY29yYXRvclNldHRpbmdzT3B0aW9ucygpO1xyXG4gIHB1YmxpYyBjYXRhbG9nUGFyYW1ldGVyczogR2V0QXJ0aWNsZXNGb3JDYXRhbG9nUmVxdWVzdDtcclxuICBwdWJsaWMgcmVuZGVyUGFyYW1ldGVyczogUmVuZGVyUGFyYW1ldGVycyA9IG5ldyBSZW5kZXJQYXJhbWV0ZXJzKCk7XHJcbiAgcHVibGljIG5ld1JlbmRlclBhcmFtZXRlcnM6IFJlbmRlclBhcmFtZXRlcnMgPSBuZXcgUmVuZGVyUGFyYW1ldGVycygpO1xyXG4gIHB1YmxpYyBhclBhcmFtZXRlcnM6IEFyUGFyYW1ldGVycyA9IG5ldyBBclBhcmFtZXRlcnMoKTtcclxuICBwdWJsaWMgZmFxVXJsOiBzdHJpbmc7XHJcbiAgcHVibGljIGZlZWRiYWNrVXJsOiBzdHJpbmc7XHJcbiAgcHVibGljIGVudk1hcDogc3RyaW5nO1xyXG4gIHB1YmxpYyBzcHJlYWRzaGVldFNoZWV0S2V5OiBzdHJpbmc7XHJcbiAgcHVibGljIGNhbWVyYUNvbmZpZzogc3RyaW5nO1xyXG4gIHB1YmxpYyBzY2VuZUJhY2tncm91bmQ6IHN0cmluZztcclxuICBwdWJsaWMgc2NlbmVCYWNrZ3JvdW5kQ29sb3I6IHN0cmluZyA9ICcweGZhZmFmYSc7XHJcbiAgcHVibGljIHN0YW5kYWxvbmVTY2VuZUJhY2tncm91bmRDb2xvcjogc3RyaW5nID0gJzB4MGYwZjBmJztcclxuICBwdWJsaWMgYmxlbmRlclJlbmRlclNlcnZpY2U6IGJvb2xlYW47XHJcbiAgcHVibGljIHJlbmRlckFwaUNsaWVudElkOiBzdHJpbmc7XHJcbiAgcHVibGljIHVwbG9hZEVuZHBvaW50OiBzdHJpbmc7XHJcbiAgcHVibGljIHJlbmRlckVuZHBvaW50OiBzdHJpbmc7XHJcbiAgcHVibGljIHByb2R1Y3RSZW5kZXJTY2VuZUFzc2V0SWQ6IHN0cmluZztcclxuICBwdWJsaWMgdXNlcjNETW9kZWxVcGxvYWRFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBzaG93Q29udmVyc2lvbkJ1dHRvbnM6IGJvb2xlYW47XHJcbiAgcHVibGljIHNob3dVcGxvYWREaWFncmFtOiBib29sZWFuO1xyXG4gIHB1YmxpYyBpc0hvbWVEZWNvSHViOiBib29sZWFuO1xyXG59XHJcbiJdfQ==
|
|
@@ -76,6 +76,9 @@ export class HomedecoratorSettingsService {
|
|
|
76
76
|
// set fallback, just to be sure.
|
|
77
77
|
this.settings.productRenderSceneAssetId = 'scene_studio_eevee';
|
|
78
78
|
}
|
|
79
|
+
if (obj.hasOwnProperty('isHomeDecoHub')) {
|
|
80
|
+
this.settings.isHomeDecoHub = obj['isHomeDecoHub'];
|
|
81
|
+
}
|
|
79
82
|
}
|
|
80
83
|
initializeSettings() {
|
|
81
84
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -144,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
144
147
|
providedIn: 'root'
|
|
145
148
|
}]
|
|
146
149
|
}], ctorParameters: function () { return [{ type: i1.JsonUtilsService }, { type: i2.HomedecoratorDictionaryService }, { type: i3.HomedecoratorConnectorAdapterService }]; } });
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZWRlY29yYXRvci1zZXR0aW5ncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudC9hcHAvY29yZS9zZXJ2aWNlL2hvbWVkZWNvcmF0b3Itc2V0dGluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRXRFLE9BQU8sRUFBQyxlQUFlLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDNUQsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDckYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtEQUFrRCxDQUFDOzs7OztBQU8vRSxNQUFNLE9BQU8sNEJBQTRCO0lBbUJ2QyxZQUNVLGlCQUFtQyxFQUNuQyxrQkFBa0QsRUFDbEQsaUJBQXVEO1FBRnZELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDbkMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFnQztRQUNsRCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXNDO1FBUjFELG1CQUFjLEdBQTZCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RFLG9CQUFlLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFFcEQsY0FBUyxHQUEwQixJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFPckUsOEJBQThCO0lBQ2hDLENBQUM7SUF2QkQsSUFBVyxRQUFRLENBQUMsS0FBNEI7UUFDOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBZU0sd0JBQXdCLENBQUMsR0FBUTtRQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQztTQUM3QztRQUNELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUQsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELElBQUksR0FBRyxDQUFDLGdCQUFnQixFQUFFO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDL0Y7UUFDRCxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUU7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3BFO1FBQ0QsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMzQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7Z0JBQ3ZFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxJQUFJLEdBQUcsQ0FBQzthQUNoQztZQUNELElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO1NBQ3pEO1FBQ0QsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDdkQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO2dCQUNuRixJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsSUFBSSxHQUFHLENBQUM7YUFDdEM7U0FDRjtRQUNELElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO1lBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsb0JBQW9CLEdBQUcsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7U0FDbEU7UUFDRCxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsMEJBQTBCLENBQUMsRUFBRTtZQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLHdCQUF3QixHQUFHLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQzFFO1FBQ0QsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLEVBQUU7WUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsR0FBRyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUM1RTthQUFNO1lBQ0wsaUNBQWlDO1lBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMseUJBQXlCLEdBQUcsb0JBQW9CLENBQUM7U0FDaEU7SUFDSCxDQUFDO0lBRVksa0JBQWtCOztZQUM3QixJQUFJLFdBQVcsQ0FBQyxXQUFXLEVBQUU7Z0JBQzNCLHNEQUFzRDtnQkFDdEQsTUFBTSxZQUFZLEdBQVEsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLGdDQUFnQyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUM1RyxJQUFJLFlBQVksRUFBRTtvQkFDaEIsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUNyQzthQUNGO1lBQ0QsTUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxDQUFDO0tBQUE7SUFFWSxVQUFVLENBQUMsUUFBK0I7O1lBQ3JELElBQUksUUFBUSxFQUFFO2dCQUNaLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQy9DO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFO2dCQUM1QixJQUFJO29CQUNGLElBQUksSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDNUYsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7d0JBQ3ZCLElBQUksSUFBSSxHQUFHLENBQUM7cUJBQ2I7b0JBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2lCQUNoQztnQkFBQyxPQUFPLENBQUMsRUFBRTtpQkFDWDthQUNGO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFO2dCQUNsQyxJQUFJLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3JGLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUN2QixJQUFJLElBQUksR0FBRyxDQUFDO2lCQUNiO2dCQUNELElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQzthQUN0QztZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLHdCQUF3QixFQUFFO2dCQUMzQyxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ3ZHLElBQUksYUFBYSxLQUFLLEdBQUcsRUFBRTtvQkFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUM7aUJBQy9DO2FBQ0Y7WUFDRCxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUN0SCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxDQUFDO0tBQUE7SUFFYSxtQkFBbUI7O1lBQy9CLE1BQU0sU0FBUyxHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUQsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2QyxJQUFJLE1BQU0sRUFBRTtnQkFDVixNQUFNLFlBQVksR0FDaEIsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLFVBQVUsTUFBTSxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDL0csSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUkscUJBQXFCLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQztnQkFDekUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLDRCQUE0QixFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDakcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO2FBQy9CO1FBQ0gsQ0FBQztLQUFBOzswSEF6SFUsNEJBQTRCOzhIQUE1Qiw0QkFBNEIsY0FGM0IsTUFBTTs0RkFFUCw0QkFBNEI7a0JBSHhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtIb21lZGVjb3JhdG9yU2V0dGluZ3N9IGZyb20gJy4uL21vZGVsL2hvbWVkZWNvcmF0b3Itc2V0dGluZ3MnO1xyXG5pbXBvcnQge0pzb25VdGlsc1NlcnZpY2V9IGZyb20gJy4vanNvbi11dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge2Vudmlyb25tZW50fSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xyXG5pbXBvcnQge2lzRW1wdHl9IGZyb20gJy4uL3V0aWxzL2Z1bmN0aW9uL2lzLWVtcHR5LmZ1bmN0aW9uJztcclxuaW1wb3J0IHtIb21lZGVjb3JhdG9yU2V0dGluZ3NPcHRpb25zfSBmcm9tICcuLi9tb2RlbC9ob21lZGVjb3JhdG9yLXNldHRpbmdzLW9wdGlvbnMnO1xyXG5pbXBvcnQge0ludGVybmFsUGFyYW19IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vaW50ZXJuYWwtcGFyYW0uZW51bSc7XHJcbmltcG9ydCB7SG9tZWRlY29yYXRvckRpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tICcuL2hvbWVkZWNvcmF0b3ItZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtIb21lZGVjb3JhdG9yQ29ubmVjdG9yQWRhcHRlclNlcnZpY2V9IGZyb20gJy4vaG9tZWRlY29yYXRvci1jb25uZWN0b3ItYWRhcHRlci5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEhvbWVkZWNvcmF0b3JTZXR0aW5nc1NlcnZpY2Uge1xyXG5cclxuICBwdWJsaWMgc2V0IHNldHRpbmdzKHZhbHVlOiBIb21lZGVjb3JhdG9yU2V0dGluZ3MpIHtcclxuICAgIHRoaXMuX3NldHRpbmdzID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNldHRpbmdzKCk6IEhvbWVkZWNvcmF0b3JTZXR0aW5ncyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2V0dGluZ3M7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzUHJpdmF0ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhaXNFbXB0eSh0aGlzLnNldHRpbmdzLnVzZXJuYW1lKSAmJiAhaXNFbXB0eSh0aGlzLnNldHRpbmdzLnBhc3N3b3JkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXR0aW5nc0xvYWRlZDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XHJcbiAgcHVibGljIHNldHRpbmdzQ2hhbmdlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIHByaXZhdGUgX3NldHRpbmdzOiBIb21lZGVjb3JhdG9yU2V0dGluZ3MgPSBuZXcgSG9tZWRlY29yYXRvclNldHRpbmdzKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfanNvblV0aWxzU2VydmljZTogSnNvblV0aWxzU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpY3Rpb25hcnlTZXJ2aWNlOiBIb21lZGVjb3JhdG9yRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jb25uZWN0b3JTZXJ2aWNlOiBIb21lZGVjb3JhdG9yQ29ubmVjdG9yQWRhcHRlclNlcnZpY2VcclxuICApIHtcclxuICAgIC8vIHRoaXMuX2luaXRpYWxpemVTZXR0aW5ncygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNyZWF0ZVNldHRpbmdzRnJvbU9iamVjdChvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnNldHRpbmdzKSB7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MgPSBuZXcgSG9tZWRlY29yYXRvclNldHRpbmdzKCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBvd25PcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zZXR0aW5ncy5vcHRpb25zKTtcclxuICAgIGNvbnN0IG93blJlbmRlclBhcmFtZXRlcnMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnNldHRpbmdzLnJlbmRlclBhcmFtZXRlcnMpO1xyXG4gICAgdGhpcy5zZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuc2V0dGluZ3MsIG9iaik7XHJcbiAgICBpZiAob2JqLnJlbmRlclBhcmFtZXRlcnMpIHtcclxuICAgICAgdGhpcy5zZXR0aW5ncy5yZW5kZXJQYXJhbWV0ZXJzID0gT2JqZWN0LmFzc2lnbih7fSwgb3duUmVuZGVyUGFyYW1ldGVycywgb2JqLnJlbmRlclBhcmFtZXRlcnMpO1xyXG4gICAgfVxyXG4gICAgaWYgKG9iai5vcHRpb25zKSB7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3Mub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIG93bk9wdGlvbnMsIG9iai5vcHRpb25zKTtcclxuICAgIH1cclxuICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoJ2Fzc2V0UGF0aCcpKSB7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MuYXNzZXRQYXRoID0gb2JqWydhc3NldFBhdGgnXTtcclxuICAgICAgaWYgKHRoaXMuc2V0dGluZ3MuYXNzZXRQYXRoW3RoaXMuc2V0dGluZ3MuYXNzZXRQYXRoLmxlbmd0aCAtIDFdICE9PSAnLycpIHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmFzc2V0UGF0aCArPSAnLyc7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZXR0aW5ncy50aHJlZURBc3NldFBhdGggPSB0aGlzLnNldHRpbmdzLmFzc2V0UGF0aDtcclxuICAgIH1cclxuICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoJ3RocmVlREFzc2V0UGF0aCcpKSB7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MudGhyZWVEQXNzZXRQYXRoID0gb2JqWyd0aHJlZURBc3NldFBhdGgnXTtcclxuICAgICAgaWYgKHRoaXMuc2V0dGluZ3MudGhyZWVEQXNzZXRQYXRoW3RoaXMuc2V0dGluZ3MudGhyZWVEQXNzZXRQYXRoLmxlbmd0aCAtIDFdICE9PSAnLycpIHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLnRocmVlREFzc2V0UGF0aCArPSAnLyc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoJ2JsZW5kZXJSZW5kZXJTZXJ2aWNlJykpIHtcclxuICAgICAgdGhpcy5zZXR0aW5ncy5ibGVuZGVyUmVuZGVyU2VydmljZSA9IG9ialsnYmxlbmRlclJlbmRlclNlcnZpY2UnXTtcclxuICAgIH1cclxuICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoJ3VzZXIzRE1vZGVsVXBsb2FkRW5hYmxlZCcpKSB7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MudXNlcjNETW9kZWxVcGxvYWRFbmFibGVkID0gb2JqWyd1c2VyM0RNb2RlbFVwbG9hZEVuYWJsZWQnXTtcclxuICAgIH1cclxuICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoJ3Byb2R1Y3RSZW5kZXJTY2VuZUFzc2V0SWQnKSkge1xyXG4gICAgICB0aGlzLnNldHRpbmdzLnByb2R1Y3RSZW5kZXJTY2VuZUFzc2V0SWQgPSBvYmpbJ3Byb2R1Y3RSZW5kZXJTY2VuZUFzc2V0SWQnXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIHNldCBmYWxsYmFjaywganVzdCB0byBiZSBzdXJlLlxyXG4gICAgICB0aGlzLnNldHRpbmdzLnByb2R1Y3RSZW5kZXJTY2VuZUFzc2V0SWQgPSAnc2NlbmVfc3R1ZGlvX2VldmVlJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBpbml0aWFsaXplU2V0dGluZ3MoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoZW52aXJvbm1lbnQudXNlU2V0dGluZ3MpIHtcclxuICAgICAgLy8gc2VlIGlmIHRoZXJlJ3MgYSBqc29uIGZpbGUgZm9yIGFwcGxpY2F0aW9uIHNldHRpbmdzXHJcbiAgICAgIGNvbnN0IGpzb25TZXR0aW5nczogYW55ID0gYXdhaXQgdGhpcy5fanNvblV0aWxzU2VydmljZS5yZWFkSnNvbkZpbGUoJy4vc2V0dGluZ3MvaW9uZS1jb25uZWN0b3IuanNvbicsIHRydWUpO1xyXG4gICAgICBpZiAoanNvblNldHRpbmdzKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXplKGpzb25TZXR0aW5ncyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGF3YWl0IHRoaXMuX2NoZWNrVXJsUGFyYW1ldGVycygpO1xyXG4gICAgdGhpcy5zZXR0aW5nc0xvYWRlZC5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGluaXRpYWxpemUoc2V0dGluZ3M6IEhvbWVkZWNvcmF0b3JTZXR0aW5ncyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHNldHRpbmdzKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuY3JlYXRlU2V0dGluZ3NGcm9tT2JqZWN0KHNldHRpbmdzKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5zZXR0aW5ncy5hc3NldFBhdGgpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBsZXQgcGF0aCA9IGF3YWl0IHRoaXMuX2Nvbm5lY3RvclNlcnZpY2UuZ2V0SW50ZXJuYWxQYXJhbWV0ZXIoSW50ZXJuYWxQYXJhbS5HZW5lcmFsQXNzZXRVcmwpO1xyXG4gICAgICAgIGlmICghcGF0aC5lbmRzV2l0aCgnLycpKSB7XHJcbiAgICAgICAgICBwYXRoICs9ICcvJztcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5hc3NldFBhdGggPSBwYXRoO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghdGhpcy5zZXR0aW5ncy50aHJlZURBc3NldFBhdGgpIHtcclxuICAgICAgbGV0IHBhdGggPSBhd2FpdCB0aGlzLl9jb25uZWN0b3JTZXJ2aWNlLmdldEludGVybmFsUGFyYW1ldGVyKEludGVybmFsUGFyYW0uQXNzZXRVcmwpO1xyXG4gICAgICBpZiAoIXBhdGguZW5kc1dpdGgoJy8nKSkge1xyXG4gICAgICAgIHBhdGggKz0gJy8nO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MudGhyZWVEQXNzZXRQYXRoID0gcGF0aDtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5zZXR0aW5ncy51c2VyM0RNb2RlbFVwbG9hZEVuYWJsZWQpIHtcclxuICAgICAgY29uc3QgdXBsb2FkU2V0dGluZyA9IGF3YWl0IHRoaXMuX2Nvbm5lY3RvclNlcnZpY2UuZ2V0SW50ZXJuYWxQYXJhbWV0ZXIoSW50ZXJuYWxQYXJhbS5VUExPQURfM0RfTU9ERUwpO1xyXG4gICAgICBpZiAodXBsb2FkU2V0dGluZyA9PT0gJ0onKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy51c2VyM0RNb2RlbFVwbG9hZEVuYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5zZXREaWN0aW9uYXJ5KFxyXG4gICAgICB0aGlzLnNldHRpbmdzLmFzc2V0UGF0aCwgdGhpcy5zZXR0aW5ncy5jbGllbnQsIHRoaXMuc2V0dGluZ3MubGFuZ3VhZ2VDb2RlLCB0aGlzLnNldHRpbmdzLmFkZGl0aW9uYWxUcmFuc2xhdGlvbkZpbGUpO1xyXG4gICAgdGhpcy5zZXR0aW5nc0xvYWRlZC5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfY2hlY2tVcmxQYXJhbWV0ZXJzKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgdXJsUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcclxuICAgIGNvbnN0IGNsaWVudCA9IHVybFBhcmFtcy5nZXQoJ2NsaWVudCcpO1xyXG4gICAgaWYgKGNsaWVudCkge1xyXG4gICAgICBjb25zdCBqc29uU2V0dGluZ3M6IGFueSA9XHJcbiAgICAgICAgYXdhaXQgdGhpcy5fanNvblV0aWxzU2VydmljZS5yZWFkSnNvbkZpbGUodGhpcy5zZXR0aW5ncy5hc3NldFBhdGggKyBgYXNzZXRzLyR7Y2xpZW50fS1zZXR0aW5ncy5qc29uYCwgZmFsc2UpO1xyXG4gICAgICB0aGlzLnNldHRpbmdzID0gT2JqZWN0LmFzc2lnbihuZXcgSG9tZWRlY29yYXRvclNldHRpbmdzKCksIGpzb25TZXR0aW5ncyk7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3Mub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24obmV3IEhvbWVkZWNvcmF0b3JTZXR0aW5nc09wdGlvbnMoKSwgdGhpcy5zZXR0aW5ncy5vcHRpb25zKTtcclxuICAgICAgdGhpcy5zZXR0aW5ncy5jbGllbnQgPSBjbGllbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZWRlY29yYXRvci1zZXR0aW5ncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudC9hcHAvY29yZS9zZXJ2aWNlL2hvbWVkZWNvcmF0b3Itc2V0dGluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRXRFLE9BQU8sRUFBQyxlQUFlLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDNUQsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDckYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtEQUFrRCxDQUFDOzs7OztBQU8vRSxNQUFNLE9BQU8sNEJBQTRCO0lBbUJ2QyxZQUNVLGlCQUFtQyxFQUNuQyxrQkFBa0QsRUFDbEQsaUJBQXVEO1FBRnZELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDbkMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFnQztRQUNsRCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXNDO1FBUjFELG1CQUFjLEdBQTZCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RFLG9CQUFlLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFFcEQsY0FBUyxHQUEwQixJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFPckUsOEJBQThCO0lBQ2hDLENBQUM7SUF2QkQsSUFBVyxRQUFRLENBQUMsS0FBNEI7UUFDOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJ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LENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkMsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsTUFBTSxZQUFZLEdBQ2hCLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxVQUFVLE1BQU0sZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQy9HLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLHFCQUFxQixFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7Z0JBQ3pFLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSw0QkFBNEIsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2pHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQzthQUMvQjtRQUNILENBQUM7S0FBQTs7MEhBN0hVLDRCQUE0Qjs4SEFBNUIsNEJBQTRCLGNBRjNCLE1BQU07NEZBRVAsNEJBQTRCO2tCQUh4QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SG9tZWRlY29yYXRvclNldHRpbmdzfSBmcm9tICcuLi9tb2RlbC9ob21lZGVjb3JhdG9yLXNldHRpbmdzJztcclxuaW1wb3J0IHtKc29uVXRpbHNTZXJ2aWNlfSBmcm9tICcuL2pzb24tdXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0fSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtlbnZpcm9ubWVudH0gZnJvbSAnLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcclxuaW1wb3J0IHtpc0VtcHR5fSBmcm9tICcuLi91dGlscy9mdW5jdGlvbi9pcy1lbXB0eS5mdW5jdGlvbic7XHJcbmltcG9ydCB7SG9tZWRlY29yYXRvclNldHRpbmdzT3B0aW9uc30gZnJvbSAnLi4vbW9kZWwvaG9tZWRlY29yYXRvci1zZXR0aW5ncy1vcHRpb25zJztcclxuaW1wb3J0IHtJbnRlcm5hbFBhcmFtfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL2ludGVybmFsLXBhcmFtLmVudW0nO1xyXG5pbXBvcnQge0hvbWVkZWNvcmF0b3JEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi9ob21lZGVjb3JhdG9yLWRpY3Rpb25hcnkuc2VydmljZSc7XHJcbmltcG9ydCB7SG9tZWRlY29yYXRvckNvbm5lY3RvckFkYXB0ZXJTZXJ2aWNlfSBmcm9tICcuL2hvbWVkZWNvcmF0b3ItY29ubmVjdG9yLWFkYXB0ZXIuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIb21lZGVjb3JhdG9yU2V0dGluZ3NTZXJ2aWNlIHtcclxuXHJcbiAgcHVibGljIHNldCBzZXR0aW5ncyh2YWx1ZTogSG9tZWRlY29yYXRvclNldHRpbmdzKSB7XHJcbiAgICB0aGlzLl9zZXR0aW5ncyA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzZXR0aW5ncygpOiBIb21lZGVjb3JhdG9yU2V0dGluZ3Mge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NldHRpbmdzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc1ByaXZhdGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIWlzRW1wdHkodGhpcy5zZXR0aW5ncy51c2VybmFtZSkgJiYgIWlzRW1wdHkodGhpcy5zZXR0aW5ncy5wYXNzd29yZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0dGluZ3NMb2FkZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG4gIHB1YmxpYyBzZXR0aW5nc0NoYW5nZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBwcml2YXRlIF9zZXR0aW5nczogSG9tZWRlY29yYXRvclNldHRpbmdzID0gbmV3IEhvbWVkZWNvcmF0b3JTZXR0aW5ncygpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2pzb25VdGlsc1NlcnZpY2U6IEpzb25VdGlsc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWN0aW9uYXJ5U2VydmljZTogSG9tZWRlY29yYXRvckRpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY29ubmVjdG9yU2VydmljZTogSG9tZWRlY29yYXRvckNvbm5lY3RvckFkYXB0ZXJTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICAvLyB0aGlzLl9pbml0aWFsaXplU2V0dGluZ3MoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjcmVhdGVTZXR0aW5nc0Zyb21PYmplY3Qob2JqOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zZXR0aW5ncykge1xyXG4gICAgICB0aGlzLnNldHRpbmdzID0gbmV3IEhvbWVkZWNvcmF0b3JTZXR0aW5ncygpO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgb3duT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuc2V0dGluZ3Mub3B0aW9ucyk7XHJcbiAgICBjb25zdCBvd25SZW5kZXJQYXJhbWV0ZXJzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zZXR0aW5ncy5yZW5kZXJQYXJhbWV0ZXJzKTtcclxuICAgIHRoaXMuc2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnNldHRpbmdzLCBvYmopO1xyXG4gICAgaWYgKG9iai5yZW5kZXJQYXJhbWV0ZXJzKSB7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MucmVuZGVyUGFyYW1ldGVycyA9IE9iamVjdC5hc3NpZ24oe30sIG93blJlbmRlclBhcmFtZXRlcnMsIG9iai5yZW5kZXJQYXJhbWV0ZXJzKTtcclxuICAgIH1cclxuICAgIGlmIChvYmoub3B0aW9ucykge1xyXG4gICAgICB0aGlzLnNldHRpbmdzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBvd25PcHRpb25zLCBvYmoub3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KCdhc3NldFBhdGgnKSkge1xyXG4gICAgICB0aGlzLnNldHRpbmdzLmFzc2V0UGF0aCA9IG9ialsnYXNzZXRQYXRoJ107XHJcbiAgICAgIGlmICh0aGlzLnNldHRpbmdzLmFzc2V0UGF0aFt0aGlzLnNldHRpbmdzLmFzc2V0UGF0aC5sZW5ndGggLSAxXSAhPT0gJy8nKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5hc3NldFBhdGggKz0gJy8nO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MudGhyZWVEQXNzZXRQYXRoID0gdGhpcy5zZXR0aW5ncy5hc3NldFBhdGg7XHJcbiAgICB9XHJcbiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KCd0aHJlZURBc3NldFBhdGgnKSkge1xyXG4gICAgICB0aGlzLnNldHRpbmdzLnRocmVlREFzc2V0UGF0aCA9IG9ialsndGhyZWVEQXNzZXRQYXRoJ107XHJcbiAgICAgIGlmICh0aGlzLnNldHRpbmdzLnRocmVlREFzc2V0UGF0aFt0aGlzLnNldHRpbmdzLnRocmVlREFzc2V0UGF0aC5sZW5ndGggLSAxXSAhPT0gJy8nKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy50aHJlZURBc3NldFBhdGggKz0gJy8nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KCdibGVuZGVyUmVuZGVyU2VydmljZScpKSB7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MuYmxlbmRlclJlbmRlclNlcnZpY2UgPSBvYmpbJ2JsZW5kZXJSZW5kZXJTZXJ2aWNlJ107XHJcbiAgICB9XHJcbiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KCd1c2VyM0RNb2RlbFVwbG9hZEVuYWJsZWQnKSkge1xyXG4gICAgICB0aGlzLnNldHRpbmdzLnVzZXIzRE1vZGVsVXBsb2FkRW5hYmxlZCA9IG9ialsndXNlcjNETW9kZWxVcGxvYWRFbmFibGVkJ107XHJcbiAgICB9XHJcbiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KCdwcm9kdWN0UmVuZGVyU2NlbmVBc3NldElkJykpIHtcclxuICAgICAgdGhpcy5zZXR0aW5ncy5wcm9kdWN0UmVuZGVyU2NlbmVBc3NldElkID0gb2JqWydwcm9kdWN0UmVuZGVyU2NlbmVBc3NldElkJ107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBzZXQgZmFsbGJhY2ssIGp1c3QgdG8gYmUgc3VyZS5cclxuICAgICAgdGhpcy5zZXR0aW5ncy5wcm9kdWN0UmVuZGVyU2NlbmVBc3NldElkID0gJ3NjZW5lX3N0dWRpb19lZXZlZSc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eSgnaXNIb21lRGVjb0h1YicpKSB7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MuaXNIb21lRGVjb0h1YiA9IG9ialsnaXNIb21lRGVjb0h1YiddO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGluaXRpYWxpemVTZXR0aW5ncygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmIChlbnZpcm9ubWVudC51c2VTZXR0aW5ncykge1xyXG4gICAgICAvLyBzZWUgaWYgdGhlcmUncyBhIGpzb24gZmlsZSBmb3IgYXBwbGljYXRpb24gc2V0dGluZ3NcclxuICAgICAgY29uc3QganNvblNldHRpbmdzOiBhbnkgPSBhd2FpdCB0aGlzLl9qc29uVXRpbHNTZXJ2aWNlLnJlYWRKc29uRmlsZSgnLi9zZXR0aW5ncy9pb25lLWNvbm5lY3Rvci5qc29uJywgdHJ1ZSk7XHJcbiAgICAgIGlmIChqc29uU2V0dGluZ3MpIHtcclxuICAgICAgICBhd2FpdCB0aGlzLmluaXRpYWxpemUoanNvblNldHRpbmdzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgYXdhaXQgdGhpcy5fY2hlY2tVcmxQYXJhbWV0ZXJzKCk7XHJcbiAgICB0aGlzLnNldHRpbmdzTG9hZGVkLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaW5pdGlhbGl6ZShzZXR0aW5nczogSG9tZWRlY29yYXRvclNldHRpbmdzKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoc2V0dGluZ3MpIHtcclxuICAgICAgYXdhaXQgdGhpcy5jcmVhdGVTZXR0aW5nc0Zyb21PYmplY3Qoc2V0dGluZ3MpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnNldHRpbmdzLmFzc2V0UGF0aCkge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGxldCBwYXRoID0gYXdhaXQgdGhpcy5fY29ubmVjdG9yU2VydmljZS5nZXRJbnRlcm5hbFBhcmFtZXRlcihJbnRlcm5hbFBhcmFtLkdlbmVyYWxBc3NldFVybCk7XHJcbiAgICAgICAgaWYgKCFwYXRoLmVuZHNXaXRoKCcvJykpIHtcclxuICAgICAgICAgIHBhdGggKz0gJy8nO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldHRpbmdzLmFzc2V0UGF0aCA9IHBhdGg7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnNldHRpbmdzLnRocmVlREFzc2V0UGF0aCkge1xyXG4gICAgICBsZXQgcGF0aCA9IGF3YWl0IHRoaXMuX2Nvbm5lY3RvclNlcnZpY2UuZ2V0SW50ZXJuYWxQYXJhbWV0ZXIoSW50ZXJuYWxQYXJhbS5Bc3NldFVybCk7XHJcbiAgICAgIGlmICghcGF0aC5lbmRzV2l0aCgnLycpKSB7XHJcbiAgICAgICAgcGF0aCArPSAnLyc7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZXR0aW5ncy50aHJlZURBc3NldFBhdGggPSBwYXRoO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnNldHRpbmdzLnVzZXIzRE1vZGVsVXBsb2FkRW5hYmxlZCkge1xyXG4gICAgICBjb25zdCB1cGxvYWRTZXR0aW5nID0gYXdhaXQgdGhpcy5fY29ubmVjdG9yU2VydmljZS5nZXRJbnRlcm5hbFBhcmFtZXRlcihJbnRlcm5hbFBhcmFtLlVQTE9BRF8zRF9NT0RFTCk7XHJcbiAgICAgIGlmICh1cGxvYWRTZXR0aW5nID09PSAnSicpIHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLnVzZXIzRE1vZGVsVXBsb2FkRW5hYmxlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGF3YWl0IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLnNldERpY3Rpb25hcnkoXHJcbiAgICAgIHRoaXMuc2V0dGluZ3MuYXNzZXRQYXRoLCB0aGlzLnNldHRpbmdzLmNsaWVudCwgdGhpcy5zZXR0aW5ncy5sYW5ndWFnZUNvZGUsIHRoaXMuc2V0dGluZ3MuYWRkaXRpb25hbFRyYW5zbGF0aW9uRmlsZSk7XHJcbiAgICB0aGlzLnNldHRpbmdzTG9hZGVkLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9jaGVja1VybFBhcmFtZXRlcnMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xyXG4gICAgY29uc3QgY2xpZW50ID0gdXJsUGFyYW1zLmdldCgnY2xpZW50Jyk7XHJcbiAgICBpZiAoY2xpZW50KSB7XHJcbiAgICAgIGNvbnN0IGpzb25TZXR0aW5nczogYW55ID1cclxuICAgICAgICBhd2FpdCB0aGlzLl9qc29uVXRpbHNTZXJ2aWNlLnJlYWRKc29uRmlsZSh0aGlzLnNldHRpbmdzLmFzc2V0UGF0aCArIGBhc3NldHMvJHtjbGllbnR9LXNldHRpbmdzLmpzb25gLCBmYWxzZSk7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKG5ldyBIb21lZGVjb3JhdG9yU2V0dGluZ3MoKSwganNvblNldHRpbmdzKTtcclxuICAgICAgdGhpcy5zZXR0aW5ncy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbihuZXcgSG9tZWRlY29yYXRvclNldHRpbmdzT3B0aW9ucygpLCB0aGlzLnNldHRpbmdzLm9wdGlvbnMpO1xyXG4gICAgICB0aGlzLnNldHRpbmdzLmNsaWVudCA9IGNsaWVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -10,6 +10,7 @@ import { PluginsModule } from './plugins/plugins.module';
|
|
|
10
10
|
import { InfoDialogModule } from './shared/info-dialog/info-dialog.module';
|
|
11
11
|
import { DialogModule } from './shared/dialog/dialog.module';
|
|
12
12
|
import { LightboxModule } from 'ngx-lightbox';
|
|
13
|
+
import { A11yModule } from '@angular/cdk/a11y';
|
|
13
14
|
import * as i0 from "@angular/core";
|
|
14
15
|
export class HomedecoratorModule {
|
|
15
16
|
constructor(_injector) {
|
|
@@ -26,7 +27,8 @@ HomedecoratorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ver
|
|
|
26
27
|
InfoDialogModule,
|
|
27
28
|
PluginsModule,
|
|
28
29
|
DialogModule,
|
|
29
|
-
LightboxModule
|
|
30
|
+
LightboxModule,
|
|
31
|
+
A11yModule], exports: [HomedecoratorComponent] });
|
|
30
32
|
HomedecoratorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HomedecoratorModule, imports: [[
|
|
31
33
|
CommonModule,
|
|
32
34
|
ProgressBarModule,
|
|
@@ -36,7 +38,8 @@ HomedecoratorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
|
|
|
36
38
|
InfoDialogModule,
|
|
37
39
|
PluginsModule,
|
|
38
40
|
DialogModule,
|
|
39
|
-
LightboxModule
|
|
41
|
+
LightboxModule,
|
|
42
|
+
A11yModule
|
|
40
43
|
]] });
|
|
41
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HomedecoratorModule, decorators: [{
|
|
42
45
|
type: NgModule,
|
|
@@ -50,7 +53,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
50
53
|
InfoDialogModule,
|
|
51
54
|
PluginsModule,
|
|
52
55
|
DialogModule,
|
|
53
|
-
LightboxModule
|
|
56
|
+
LightboxModule,
|
|
57
|
+
A11yModule
|
|
54
58
|
],
|
|
55
59
|
declarations: [
|
|
56
60
|
HomedecoratorComponent
|
|
@@ -61,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
61
65
|
bootstrap: [HomedecoratorComponent]
|
|
62
66
|
}]
|
|
63
67
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZWRlY29yYXRvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9ob21lZGVjb3JhdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDNUUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDckYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7O0FBd0I3QyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQW9CLFNBQW1CO1FBQW5CLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDckMsY0FBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzNDLENBQUM7O2lIQUhVLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRmxCLHNCQUFzQixrQkFMaEMsc0JBQXNCLGFBWnRCLFlBQVk7UUFDWixpQkFBaUI7UUFDakIsb0JBQW9CO1FBQ3BCLGNBQWM7UUFDZCxrQkFBa0I7UUFDbEIsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixZQUFZO1FBQ1osY0FBYztRQUNkLFVBQVUsYUFNVixzQkFBc0I7a0hBSWIsbUJBQW1CLFlBcEJyQjtZQUNQLFlBQVk7WUFDWixpQkFBaUI7WUFDakIsb0JBQW9CO1lBQ3BCLGNBQWM7WUFDZCxrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixZQUFZO1lBQ1osY0FBYztZQUNkLFVBQVU7U0FDWDs0RkFTVSxtQkFBbUI7a0JBckIvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsb0JBQW9CO3dCQUNwQixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxVQUFVO3FCQUNYO29CQUNELFlBQVksRUFBRTt3QkFDWixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxzQkFBc0I7cUJBQ3ZCO29CQUNELFNBQVMsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0b3IsIE5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtIb21lZGVjb3JhdG9yQ29tcG9uZW50fSBmcm9tICcuL2hvbWVkZWNvcmF0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHtTZXJ2aWNlTG9jYXRvcn0gZnJvbSAnLi9zZXJ2aWNlL3NlcnZpY2UtbG9jYXRvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7UHJvZ3Jlc3NCYXJNb2R1bGV9IGZyb20gJy4vc2hhcmVkL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIubW9kdWxlJztcclxuaW1wb3J0IHtMb2FkaW5nT3ZlcmxheU1vZHVsZX0gZnJvbSAnLi9zaGFyZWQvbG9hZGluZy1vdmVybGF5L2xvYWRpbmctb3ZlcmxheS5tb2R1bGUnO1xyXG5pbXBvcnQge0hkTG9hZGVyTW9kdWxlfSBmcm9tICcuL3NoYXJlZC9sb2FkZXIvaGQtbG9hZGVyLm1vZHVsZSc7XHJcbmltcG9ydCB7RXhwb3J0RGlhbG9nTW9kdWxlfSBmcm9tICcuL3NoYXJlZC9leHBvcnQtZGlhbG9nL2V4cG9ydC1kaWFsb2cubW9kdWxlJztcclxuaW1wb3J0IHtQbHVnaW5zTW9kdWxlfSBmcm9tICcuL3BsdWdpbnMvcGx1Z2lucy5tb2R1bGUnO1xyXG5pbXBvcnQge0luZm9EaWFsb2dNb2R1bGV9IGZyb20gJy4vc2hhcmVkL2luZm8tZGlhbG9nL2luZm8tZGlhbG9nLm1vZHVsZSc7XHJcbmltcG9ydCB7RGlhbG9nTW9kdWxlfSBmcm9tICcuL3NoYXJlZC9kaWFsb2cvZGlhbG9nLm1vZHVsZSc7XHJcbmltcG9ydCB7TGlnaHRib3hNb2R1bGV9IGZyb20gJ25neC1saWdodGJveCc7XHJcbmltcG9ydCB7QTExeU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUHJvZ3Jlc3NCYXJNb2R1bGUsXHJcbiAgICBMb2FkaW5nT3ZlcmxheU1vZHVsZSxcclxuICAgIEhkTG9hZGVyTW9kdWxlLFxyXG4gICAgRXhwb3J0RGlhbG9nTW9kdWxlLFxyXG4gICAgSW5mb0RpYWxvZ01vZHVsZSxcclxuICAgIFBsdWdpbnNNb2R1bGUsXHJcbiAgICBEaWFsb2dNb2R1bGUsXHJcbiAgICBMaWdodGJveE1vZHVsZSxcclxuICAgIEExMXlNb2R1bGVcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgSG9tZWRlY29yYXRvckNvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgSG9tZWRlY29yYXRvckNvbXBvbmVudFxyXG4gIF0sXHJcbiAgYm9vdHN0cmFwOiBbSG9tZWRlY29yYXRvckNvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEhvbWVkZWNvcmF0b3JNb2R1bGUge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2luamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgU2VydmljZUxvY2F0b3IuaW5qZWN0b3IgPSB0aGlzLl9pbmplY3RvcjtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -73,10 +73,10 @@ export class LightsService {
|
|
|
73
73
|
if (light instanceof AmbientLight || light instanceof HemisphereLight) {
|
|
74
74
|
return;
|
|
75
75
|
}
|
|
76
|
-
const corners = this._floorplanService.getCorners();
|
|
77
|
-
if (!corners || corners.length < 1) {
|
|
78
|
-
|
|
79
|
-
}
|
|
76
|
+
// const corners: Corner[] = this._floorplanService.getCorners();
|
|
77
|
+
// if (!corners || corners.length < 1) {
|
|
78
|
+
// return;
|
|
79
|
+
// }
|
|
80
80
|
const ro = light.userData.rotationOffset;
|
|
81
81
|
const wo = light.userData.wallOffset;
|
|
82
82
|
const fc = this._floorplanService.getCenter();
|
|
@@ -84,6 +84,7 @@ export class LightsService {
|
|
|
84
84
|
const planHalfWidth = isFinite(size.x) ? size.x / 2.0 : 0;
|
|
85
85
|
const planHalfDepth = isFinite(size.z) ? size.z / 2.0 : 0;
|
|
86
86
|
if (wo === 0) { // just use position of light
|
|
87
|
+
this._updateShadowCamera(light);
|
|
87
88
|
return;
|
|
88
89
|
}
|
|
89
90
|
// Reset position & rotation
|
|
@@ -194,4 +195,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
194
195
|
providedIn: 'root'
|
|
195
196
|
}]
|
|
196
197
|
}], ctorParameters: function () { return [{ type: i1.SceneService }, { type: i2.ConfigurationService }, { type: i3.FloorplanService }, { type: i4.ItemService }]; } });
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9wbHVnaW5zL2NvcmUzZC9zZXJ2aWNlL2xpZ2h0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQVMsVUFBVSxFQUFFLFNBQVMsRUFBQyxNQUFNLE9BQU8sQ0FBQztBQUNwRyxPQUFPLEVBQUMsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBSzNDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9FQUFvRSxDQUFDOzs7Ozs7QUFNdEcsTUFBTSxPQUFPLGFBQWE7SUFPeEIsWUFDVSxhQUEyQixFQUMzQixxQkFBMkMsRUFDM0MsaUJBQW1DLEVBQ25DLFlBQXlCO1FBSHpCLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBc0I7UUFDM0Msc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQVQ1QixXQUFNLEdBQVksRUFBRSxDQUFDO1FBQ3JCLGlCQUFZLEdBQTJDLElBQUksT0FBTyxFQUFpQyxDQUFDO1FBRW5HLFVBQUssR0FBbUIsRUFBRSxDQUFDO0lBT2hDLENBQUM7SUFFSixXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNiLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxV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QVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0FtYmllbnRMaWdodCwgRGlyZWN0aW9uYWxMaWdodCwgSGVtaXNwaGVyZUxpZ2h0LCBMaWdodCwgUG9pbnRMaWdodCwgU3BvdExpZ2h0fSBmcm9tICd0aHJlZSc7XHJcbmltcG9ydCB7U3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtTY2VuZVNlcnZpY2V9IGZyb20gJy4vc2NlbmUuc2VydmljZSc7XHJcbmltcG9ydCB7Q29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZS9jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0Zsb29ycGxhblNlcnZpY2V9IGZyb20gJy4uLy4uL3Jvb20tcGxhbm5lci9jb21wb25lbnRzL2Zsb29ycGxhbm5lci9zZXJ2aWNlL2Zsb29ycGxhbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtJdGVtU2VydmljZX0gZnJvbSAnLi9pdGVtLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb25LZXl9IGZyb20gJy4uLy4uLy4uL2NvcmUvZW51bS9jb25maWd1cmF0aW9uLWtleS5lbnVtJztcclxuaW1wb3J0IHtMaWdodENyZWF0ZVNlcnZpY2V9IGZyb20gJy4uLy4uL3RocmVlZHNlbGVjdG9yL3RocmVlZHNlbGVjdG9yL3NlcnZpY2UvbGlnaHQtY3JlYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7Q29ybmVyfSBmcm9tICcuLi9pdGVtcy93YWxsLW9iamVjdHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTGlnaHRzU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gIHB1YmxpYyBsaWdodHM6IExpZ2h0W10gPSBbXTtcclxuICBwdWJsaWMgb25MaWdodEFkZGVkOiBTdWJqZWN0PHtsaWdodDogTGlnaHQsIGluZGV4OiBudW1iZXJ9PiA9IG5ldyBTdWJqZWN0PHtsaWdodDogTGlnaHQsIGluZGV4OiBudW1iZXJ9PigpO1xyXG5cclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvciAoXHJcbiAgICBwcml2YXRlIF9zY2VuZVNlcnZpY2U6IFNjZW5lU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NvbmZpZ3VyYXRpb25TZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2Zsb29ycGxhblNlcnZpY2U6IEZsb29ycGxhblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9pdGVtU2VydmljZTogSXRlbVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICB0aGlzLl9mbG9vcnBsYW5TZXJ2aWNlLnJvb21Mb2FkZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlQWxsT2Zmc2V0cygpKSxcclxuICAgICAgdGhpcy5fZmxvb3JwbGFuU2VydmljZS5yb29tc1VwZGF0ZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlQWxsT2Zmc2V0cygpKSxcclxuICAgICAgdGhpcy5fY29uZmlndXJhdGlvblNlcnZpY2Uub25DaGFuZ2Uuc3Vic2NyaWJlKChjaGFuZ2VkKSA9PiB7XHJcbiAgICAgICAgaWYgKENvbmZpZ3VyYXRpb25LZXkuU2hvd0ludGVyaW9yTGlnaHRzIGluIGNoYW5nZWQpIHtcclxuICAgICAgICAgIHRoaXMuX3Nob3dIaWRlSW50ZXJpb3JMaWdodHMoY2hhbmdlZFtDb25maWd1cmF0aW9uS2V5LlNob3dJbnRlcmlvckxpZ2h0c10pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoQ29uZmlndXJhdGlvbktleS5JbnRlcmlvckxpZ2h0SW50ZW5zaXR5IGluIGNoYW5nZWQpIHtcclxuICAgICAgICAgIHRoaXMuX3VwZGF0ZUludGVyaW9yTGlnaHRzKGNoYW5nZWRbQ29uZmlndXJhdGlvbktleS5JbnRlcmlvckxpZ2h0SW50ZW5zaXR5XSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgICAvLyB0aGlzLl9pbml0TGlnaHRzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY3JlYXRlTGlnaHQ8VCBleHRlbmRzIExpZ2h0Pihtb2RlbENsYXNzOiBhbnkpOiB2b2lkIHtcclxuXHJcbiAgICBjb25zdCBnZXRMaWdodHM6IExpZ2h0Q3JlYXRlU2VydmljZSA9IG5ldyBMaWdodENyZWF0ZVNlcnZpY2UoKTtcclxuICAgIGNvbnN0IGxpZ2h0OiBMaWdodCA9IGdldExpZ2h0cy5jcmVhdGVOZXdMaWdodChtb2RlbENsYXNzKTtcclxuXHJcbiAgICAvLyBjb25zdCBsaWdodDogVCA9IG5ldyBtb2RlbENsYXNzKCk7XHJcbiAgICBsaWdodC5uYW1lID0gYG5ld18ke21vZGVsQ2xhc3MubmFtZX1gO1xyXG4gICAgdGhpcy5fYWRkTGlnaHQobGlnaHQpO1xyXG4gICAgdGhpcy5vbkxpZ2h0QWRkZWQubmV4dCh7bGlnaHQ6IGxpZ2h0LCBpbmRleDogdGhpcy5saWdodHMubGVuZ3RoIC0gMX0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZExpZ2h0KGxpZ2h0OiBMaWdodCk6IHZvaWQge1xyXG4gICAgLy8gaWYgKGxpZ2h0LnJvdGF0aW9uKSB7XHJcbiAgICAvLyAgIHRoaXMudXBkYXRlT2Zmc2V0cyhsaWdodCk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyB0aGlzLmxpZ2h0cy5wdXNoKGxpZ2h0KTtcclxuICAgIHRoaXMuX2FkZExpZ2h0KGxpZ2h0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVMaWdodEJ5SW5kZXgoaWR4OiBudW1iZXIsIHVwZGF0ZUxpZ2h0QXJyYXk6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZW1vdmVMaWdodCh0aGlzLmxpZ2h0c1tpZHhdLCB1cGRhdGVMaWdodEFycmF5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVBbGxMaWdodHMoKSB7XHJcbiAgICBjb25zdCBjdXJyZW50TGlnaHRzOiBMaWdodFtdID0gdGhpcy5saWdodHMuc2xpY2UoKTtcclxuICAgIC8vIHRoaXMubGlnaHRzLmxlbmd0aCA9IDA7XHJcbiAgICBjdXJyZW50TGlnaHRzLmZvckVhY2goY2wgPT4ge1xyXG4gICAgICB0aGlzLl9yZW1vdmVMaWdodChjbCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXBsYWNlTGlnaHQoaWR4OiBudW1iZXIsIGxpZ2h0OiBMaWdodCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZW1vdmVMaWdodEJ5SW5kZXgoaWR4LCBmYWxzZSk7XHJcbiAgICB0aGlzLl9hZGRMaWdodChsaWdodCwgZmFsc2UpO1xyXG4gICAgdGhpcy5saWdodHNbaWR4XSA9IGxpZ2h0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluaXRpYXRlTGlnaHRQcmVzZXQoKSB7XHJcbiAgICAvLyB0aGlzLmxpZ2h0cy5mb3JFYWNoKGwgPT4gdGhpcy5fc2NlbmVTZXJ2aWNlLmFkZE9iamVjdChsKSk7XHJcbiAgICB0aGlzLmxpZ2h0cy5mb3JFYWNoKGwgPT4gdGhpcy51cGRhdGVPZmZzZXRzKGwpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVBbGxPZmZzZXRzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5saWdodHMuZm9yRWFjaChsID0+IHRoaXMudXBkYXRlT2Zmc2V0cyhsKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlT2Zmc2V0cyhsaWdodDogTGlnaHQpIHtcclxuICAgIGlmIChsaWdodCBpbnN0YW5jZW9mIEFtYmllbnRMaWdodCB8fCBsaWdodCBpbnN0YW5jZW9mIEhlbWlzcGhlcmVMaWdodCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb3JuZXJzOiBDb3JuZXJbXSA9IHRoaXMuX2Zsb29ycGxhblNlcnZpY2UuZ2V0Q29ybmVycygpO1xyXG4gICAgaWYgKCFjb3JuZXJzIHx8IGNvcm5lcnMubGVuZ3RoIDwgMSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBybyA9IGxpZ2h0LnVzZXJEYXRhLnJvdGF0aW9uT2Zmc2V0O1xyXG4gICAgY29uc3Qgd28gPSBsaWdodC51c2VyRGF0YS53YWxsT2Zmc2V0O1xyXG4gICAgY29uc3QgZmMgPSB0aGlzLl9mbG9vcnBsYW5TZXJ2aWNlLmdldENlbnRlcigpO1xyXG5cclxuICAgIGNvbnN0IHNpemUgPSB0aGlzLl9mbG9vcnBsYW5TZXJ2aWNlLmdldFNpemUoKTtcclxuICAgIGNvbnN0IHBsYW5IYWxmV2lkdGggPSBpc0Zpbml0ZShzaXplLngpID8gc2l6ZS54IC8gMi4wIDogMDtcclxuICAgIGNvbnN0IHBsYW5IYWxmRGVwdGggPSBpc0Zpbml0ZShzaXplLnopID8gc2l6ZS56IC8gMi4wIDogMDtcclxuXHJcbiAgICBpZiAod28gPT09IDApIHsgLy8ganVzdCB1c2UgcG9zaXRpb24gb2YgbGlnaHRcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFJlc2V0IHBvc2l0aW9uICYgcm90YXRpb25cclxuICAgIGxpZ2h0LnBvc2l0aW9uLnggPSBmYy54O1xyXG4gICAgbGlnaHQucG9zaXRpb24ueiA9IGZjLno7XHJcbiAgICBsaWdodC5yb3RhdGlvbi5zZXQoMCwgMCwgMCk7XHJcblxyXG4gICAgLy8gT2Zmc2V0IHRvIHRoZSBhcHByb3ByaWF0ZSBjb3JuZXIgJiB0cmFuc2xhdGUgaW4gdGhlIG9wcG9zaXRlIGRpcmVjdGlvbiBpbiBlcXVhbCBzdGVwcyBiYXNlZCBvbiB0aGUgcm9vbSBkaW1lbnNpb25zLlxyXG4gICAgaWYgKHJvID4gMzE1KSB7XHJcbiAgICAgIGxpZ2h0LnRyYW5zbGF0ZVooTWF0aC5hYnMocGxhbkhhbGZEZXB0aCArIHdvKSk7XHJcbiAgICAgIGxpZ2h0LnRyYW5zbGF0ZVgoTWF0aC5hYnMocGxhbkhhbGZXaWR0aCArIHdvKSk7XHJcbiAgICAgIGxpZ2h0LnRyYW5zbGF0ZVgoLU1hdGguYWJzKCgoKHBsYW5IYWxmV2lkdGggKiAyKSArICh3byAqIDIpKSAvIDkwKSAqIChybyAtIDMxNSkpKTtcclxuICAgIH0gZWxzZSBpZiAocm8gPiAyMjUpIHtcclxuICAgICAgbGlnaHQudHJhbnNsYXRlWChNYXRoLmFicyhwbGFuSGFsZldpZHRoICsgd28pKTtcclxuICAgICAgbGlnaHQudHJhbnNsYXRlWigtTWF0aC5hYnMocGxhbkhhbGZEZXB0aCArIHdvKSk7XHJcbiAgICAgIGxpZ2h0LnRyYW5zbGF0ZVooTWF0aC5hYnMoKCgocGxhbkhhbGZEZXB0aCAqIDIpICsgKHdvICogMikpIC8gOTApICogKHJvIC0gMjI1KSkpO1xyXG4gICAgfSBlbHNlIGlmIChybyA+IDEzNSkge1xyXG4gICAgICBsaWdodC50cmFuc2xhdGVaKC1NYXRoLmFicyggcGxhbkhhbGZEZXB0aCArIHdvKSk7XHJcbiAgICAgIGxpZ2h0LnRyYW5zbGF0ZVgoLU1hdGguYWJzKHBsYW5IYWxmV2lkdGggKyB3bykpO1xyXG4gICAgICBsaWdodC50cmFuc2xhdGVYKE1hdGguYWJzKCgoKHBsYW5IYWxmV2lkdGggKiAyKSArICh3byAqIDIpKSAvIDkwKSAqIChybyAtIDEzNSkpKTtcclxuICAgIH0gZWxzZSBpZiAocm8gPiA0NSkge1xyXG4gICAgICBsaWdodC50cmFuc2xhdGVYKC1NYXRoLmFicyhwbGFuSGFsZldpZHRoICsgd28pKTtcclxuICAgICAgbGlnaHQudHJhbnNsYXRlWihNYXRoLmFicyhwbGFuSGFsZkRlcHRoICsgd28pKTtcclxuICAgICAgbGlnaHQudHJhbnNsYXRlWigtTWF0aC5hYnMoKCgocGxhbkhhbGZEZXB0aCAqIDIpICsgKHdvICogMikpIC8gOTApICogKHJvIC0gNDUpKSk7XHJcbiAgICB9IGVsc2UgaWYgKHJvID49IDApIHtcclxuICAgICAgbGlnaHQudHJhbnNsYXRlWihNYXRoLmFicyhwbGFuSGFsZkRlcHRoICsgd28pKTtcclxuICAgICAgbGlnaHQudHJhbnNsYXRlWCgtTWF0aC5hYnMoKCgocGxhbkhhbGZXaWR0aCAqIDIpICsgKHdvICogMikpIC8gOTApICogcm8pKTtcclxuICAgIH1cclxuICAgIHRoaXMuX3VwZGF0ZVNoYWRvd0NhbWVyYShsaWdodCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zaG93SGlkZUludGVyaW9yTGlnaHRzKHNob3c6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuX2l0ZW1TZXJ2aWNlLml0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgaXRlbS50cmF2ZXJzZShjID0+IHtcclxuICAgICAgICBpZiAoYy5uYW1lICYmIGMubmFtZS50b0xvd2VyQ2FzZSgpID09PSAnbGlnaHRfYnVsYicpIHtcclxuICAgICAgICAgIGMudHJhdmVyc2UobCA9PiB7XHJcbiAgICAgICAgICAgIGlmIChsIGluc3RhbmNlb2YgUG9pbnRMaWdodCkge1xyXG4gICAgICAgICAgICAgIGwudmlzaWJsZSA9IHNob3c7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3NjZW5lU2VydmljZS5uZWVkc1JlbmRlciA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVJbnRlcmlvckxpZ2h0cyhwb3dlcjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pdGVtU2VydmljZS5pdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGl0ZW0udHJhdmVyc2UoYyA9PiB7XHJcbiAgICAgICAgaWYgKGMubmFtZSAmJiBjLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2xpZ2h0X2J1bGInKSB7XHJcbiAgICAgICAgICBjLnRyYXZlcnNlKGwgPT4ge1xyXG4gICAgICAgICAgICBpZiAobCBpbnN0YW5jZW9mIFBvaW50TGlnaHQpIHtcclxuICAgICAgICAgICAgICBsLnBvd2VyID0gcG93ZXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3NjZW5lU2VydmljZS5uZWVkc1JlbmRlciA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZW1vdmVMaWdodChsaWdodDogTGlnaHQsIHVwZGF0ZUxpZ2h0QXJyYXk6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcbiAgICBjb25zdCBpZHg6IG51bWJlciA9IHRoaXMubGlnaHRzLmluZGV4T2YobGlnaHQpO1xyXG4gICAgaWYgKGxpZ2h0IGluc3RhbmNlb2YgU3BvdExpZ2h0IHx8IGxpZ2h0IGluc3RhbmNlb2YgRGlyZWN0aW9uYWxMaWdodCkge1xyXG4gICAgICB0aGlzLl9zY2VuZVNlcnZpY2UucmVtb3ZlT2JqZWN0KGxpZ2h0LnRhcmdldCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9zY2VuZVNlcnZpY2UucmVtb3ZlT2JqZWN0KGxpZ2h0KTtcclxuXHJcbiAgICBpZiAodXBkYXRlTGlnaHRBcnJheSkge1xyXG4gICAgICB0aGlzLmxpZ2h0cy5zcGxpY2UoaWR4LCAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FkZExpZ2h0KGxpZ2h0OiBMaWdodCwgdXBkYXRlTGlnaHRBcnJheTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NjZW5lU2VydmljZS5hZGRPYmplY3QobGlnaHQpO1xyXG4gICAgaWYgKGxpZ2h0IGluc3RhbmNlb2YgU3BvdExpZ2h0IHx8IGxpZ2h0IGluc3RhbmNlb2YgRGlyZWN0aW9uYWxMaWdodCkge1xyXG4gICAgICB0aGlzLl9zY2VuZVNlcnZpY2UuYWRkT2JqZWN0KGxpZ2h0LnRhcmdldCk7XHJcbiAgICAgIHRoaXMuX3VwZGF0ZVNoYWRvd0NhbWVyYShsaWdodCk7XHJcbiAgICB9XHJcbiAgICBpZiAodXBkYXRlTGlnaHRBcnJheSkge1xyXG4gICAgICB0aGlzLmxpZ2h0cy5wdXNoKGxpZ2h0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZVNoYWRvd0NhbWVyYShsaWdodDogTGlnaHQpIHtcclxuICAgIGNvbnN0IHNpemUgPSB0aGlzLl9mbG9vcnBsYW5TZXJ2aWNlLmdldFNpemUoKTtcclxuXHJcbiAgICBpZiAoc2l6ZS54ID09PSAtSW5maW5pdHkgfHwgc2l6ZS55ID09PSAtSW5maW5pdHkgfHwgc2l6ZS56ID09PSAtSW5maW5pdHkgfHxcclxuICAgICAgc2l6ZS54ID09PSBJbmZpbml0eSB8fCBzaXplLnkgPT09IEluZmluaXR5IHx8IHNpemUueiA9PT0gSW5maW5pdHkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGRXaWR0aCA9IChzaXplLnggKyAzKSAvIDIuMDtcclxuICAgIGNvbnN0IGRIZWlnaHQgPSAoc2l6ZS56ICsgMykgLyAyLjA7XHJcbiAgICBjb25zdCBjZW50ZXIgPSB0aGlzLl9mbG9vcnBsYW5TZXJ2aWNlLmdldENlbnRlcigpO1xyXG5cclxuICAgIGlmIChsaWdodCBpbnN0YW5jZW9mIFNwb3RMaWdodCB8fCBsaWdodCBpbnN0YW5jZW9mIERpcmVjdGlvbmFsTGlnaHQpIHtcclxuICAgICAgaWYgKGxpZ2h0IGluc3RhbmNlb2YgRGlyZWN0aW9uYWxMaWdodCAmJiBsaWdodC51c2VyRGF0YS50b3BEb3duRGlyZWN0aW9uYWwpIHtcclxuICAgICAgICBsaWdodC5wb3NpdGlvbi5zZXQoY2VudGVyLngsIDMsIGNlbnRlci56KTtcclxuICAgICAgICBsaWdodC5zaGFkb3cuY2FtZXJhLmxlZnQgPSAtZFdpZHRoO1xyXG4gICAgICAgIGxpZ2h0LnNoYWRvdy5jYW1lcmEucmlnaHQgPSBkV2lkdGg7XHJcbiAgICAgICAgbGlnaHQuc2hhZG93LmNhbWVyYS50b3AgPSBkSGVpZ2h0O1xyXG4gICAgICAgIGxpZ2h0LnNoYWRvdy5jYW1lcmEuYm90dG9tID0gLWRIZWlnaHQ7XHJcbiAgICAgIH1cclxuICAgICAgbGlnaHQudGFyZ2V0LnBvc2l0aW9uLmNvcHkoY2VudGVyKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9wbHVnaW5zL2NvcmUzZC9zZXJ2aWNlL2xpZ2h0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQVMsVUFBVSxFQUFFLFNBQVMsRUFBQyxNQUFNLE9BQU8sQ0FBQztBQUNwRyxPQUFPLEVBQUMsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBSzNDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9FQUFvRSxDQUFDOzs7Ozs7QUFNdEcsTUFBTSxPQUFPLGFBQWE7SUFPeEIsWUFDVSxhQUEyQixFQUMzQixxQkFBMkMsRUFDM0MsaUJBQW1DLEVBQ25DLFlBQXlCO1FBSHpCLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBc0I7UUFDM0Msc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQVQ1QixXQUFNLEdBQVksRUFBRSxDQUFDO1FBQ3JCLGlCQUFZLEdBQTJDLElBQUksT0FBTyxFQUFpQyxDQUFDO1FBRW5HLFVBQUssR0FBbUIsRUFBRSxDQUFDO0lBT2hDLENBQUM7SUFFSixXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNiLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxV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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QW1iaWVudExpZ2h0LCBEaXJlY3Rpb25hbExpZ2h0LCBIZW1pc3BoZXJlTGlnaHQsIExpZ2h0LCBQb2ludExpZ2h0LCBTcG90TGlnaHR9IGZyb20gJ3RocmVlJztcclxuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1NjZW5lU2VydmljZX0gZnJvbSAnLi9zY2VuZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtDb25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlL2NvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7Rmxvb3JwbGFuU2VydmljZX0gZnJvbSAnLi4vLi4vcm9vbS1wbGFubmVyL2NvbXBvbmVudHMvZmxvb3JwbGFubmVyL3NlcnZpY2UvZmxvb3JwbGFuLnNlcnZpY2UnO1xyXG5pbXBvcnQge0l0ZW1TZXJ2aWNlfSBmcm9tICcuL2l0ZW0uc2VydmljZSc7XHJcbmltcG9ydCB7Q29uZmlndXJhdGlvbktleX0gZnJvbSAnLi4vLi4vLi4vY29yZS9lbnVtL2NvbmZpZ3VyYXRpb24ta2V5LmVudW0nO1xyXG5pbXBvcnQge0xpZ2h0Q3JlYXRlU2VydmljZX0gZnJvbSAnLi4vLi4vdGhyZWVkc2VsZWN0b3IvdGhyZWVkc2VsZWN0b3Ivc2VydmljZS9saWdodC1jcmVhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtDb3JuZXJ9IGZyb20gJy4uL2l0ZW1zL3dhbGwtb2JqZWN0cyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaWdodHNTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgcHVibGljIGxpZ2h0czogTGlnaHRbXSA9IFtdO1xyXG4gIHB1YmxpYyBvbkxpZ2h0QWRkZWQ6IFN1YmplY3Q8e2xpZ2h0OiBMaWdodCwgaW5kZXg6IG51bWJlcn0+ID0gbmV3IFN1YmplY3Q8e2xpZ2h0OiBMaWdodCwgaW5kZXg6IG51bWJlcn0+KCk7XHJcblxyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yIChcclxuICAgIHByaXZhdGUgX3NjZW5lU2VydmljZTogU2NlbmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY29uZmlndXJhdGlvblNlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZmxvb3JwbGFuU2VydmljZTogRmxvb3JwbGFuU2VydmljZSxcclxuICAgIHByaXZhdGUgX2l0ZW1TZXJ2aWNlOiBJdGVtU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMuX2Zsb29ycGxhblNlcnZpY2Uucm9vbUxvYWRlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVBbGxPZmZzZXRzKCkpLFxyXG4gICAgICB0aGlzLl9mbG9vcnBsYW5TZXJ2aWNlLnJvb21zVXBkYXRlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVBbGxPZmZzZXRzKCkpLFxyXG4gICAgICB0aGlzLl9jb25maWd1cmF0aW9uU2VydmljZS5vbkNoYW5nZS5zdWJzY3JpYmUoKGNoYW5nZWQpID0+IHtcclxuICAgICAgICBpZiAoQ29uZmlndXJhdGlvbktleS5TaG93SW50ZXJpb3JMaWdodHMgaW4gY2hhbmdlZCkge1xyXG4gICAgICAgICAgdGhpcy5fc2hvd0hpZGVJbnRlcmlvckxpZ2h0cyhjaGFuZ2VkW0NvbmZpZ3VyYXRpb25LZXkuU2hvd0ludGVyaW9yTGlnaHRzXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChDb25maWd1cmF0aW9uS2V5LkludGVyaW9yTGlnaHRJbnRlbnNpdHkgaW4gY2hhbmdlZCkge1xyXG4gICAgICAgICAgdGhpcy5fdXBkYXRlSW50ZXJpb3JMaWdodHMoY2hhbmdlZFtDb25maWd1cmF0aW9uS2V5LkludGVyaW9yTGlnaHRJbnRlbnNpdHldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICAgIC8vIHRoaXMuX2luaXRMaWdodHMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjcmVhdGVMaWdodDxUIGV4dGVuZHMgTGlnaHQ+KG1vZGVsQ2xhc3M6IGFueSk6IHZvaWQge1xyXG5cclxuICAgIGNvbnN0IGdldExpZ2h0czogTGlnaHRDcmVhdGVTZXJ2aWNlID0gbmV3IExpZ2h0Q3JlYXRlU2VydmljZSgpO1xyXG4gICAgY29uc3QgbGlnaHQ6IExpZ2h0ID0gZ2V0TGlnaHRzLmNyZWF0ZU5ld0xpZ2h0KG1vZGVsQ2xhc3MpO1xyXG5cclxuICAgIC8vIGNvbnN0IGxpZ2h0OiBUID0gbmV3IG1vZGVsQ2xhc3MoKTtcclxuICAgIGxpZ2h0Lm5hbWUgPSBgbmV3XyR7bW9kZWxDbGFzcy5uYW1lfWA7XHJcbiAgICB0aGlzLl9hZGRMaWdodChsaWdodCk7XHJcbiAgICB0aGlzLm9uTGlnaHRBZGRlZC5uZXh0KHtsaWdodDogbGlnaHQsIGluZGV4OiB0aGlzLmxpZ2h0cy5sZW5ndGggLSAxfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkTGlnaHQobGlnaHQ6IExpZ2h0KTogdm9pZCB7XHJcbiAgICAvLyBpZiAobGlnaHQucm90YXRpb24pIHtcclxuICAgIC8vICAgdGhpcy51cGRhdGVPZmZzZXRzKGxpZ2h0KTtcclxuICAgIC8vIH1cclxuICAgIC8vIHRoaXMubGlnaHRzLnB1c2gobGlnaHQpO1xyXG4gICAgdGhpcy5fYWRkTGlnaHQobGlnaHQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbW92ZUxpZ2h0QnlJbmRleChpZHg6IG51bWJlciwgdXBkYXRlTGlnaHRBcnJheTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIHRoaXMuX3JlbW92ZUxpZ2h0KHRoaXMubGlnaHRzW2lkeF0sIHVwZGF0ZUxpZ2h0QXJyYXkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbW92ZUFsbExpZ2h0cygpIHtcclxuICAgIGNvbnN0IGN1cnJlbnRMaWdodHM6IExpZ2h0W10gPSB0aGlzLmxpZ2h0cy5zbGljZSgpO1xyXG4gICAgLy8gdGhpcy5saWdodHMubGVuZ3RoID0gMDtcclxuICAgIGN1cnJlbnRMaWdodHMuZm9yRWFjaChjbCA9PiB7XHJcbiAgICAgIHRoaXMuX3JlbW92ZUxpZ2h0KGNsKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlcGxhY2VMaWdodChpZHg6IG51bWJlciwgbGlnaHQ6IExpZ2h0KTogdm9pZCB7XHJcbiAgICB0aGlzLnJlbW92ZUxpZ2h0QnlJbmRleChpZHgsIGZhbHNlKTtcclxuICAgIHRoaXMuX2FkZExpZ2h0KGxpZ2h0LCBmYWxzZSk7XHJcbiAgICB0aGlzLmxpZ2h0c1tpZHhdID0gbGlnaHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5pdGlhdGVMaWdodFByZXNldCgpIHtcclxuICAgIC8vIHRoaXMubGlnaHRzLmZvckVhY2gobCA9PiB0aGlzLl9zY2VuZVNlcnZpY2UuYWRkT2JqZWN0KGwpKTtcclxuICAgIHRoaXMubGlnaHRzLmZvckVhY2gobCA9PiB0aGlzLnVwZGF0ZU9mZnNldHMobCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZUFsbE9mZnNldHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxpZ2h0cy5mb3JFYWNoKGwgPT4gdGhpcy51cGRhdGVPZmZzZXRzKGwpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVPZmZzZXRzKGxpZ2h0OiBMaWdodCkge1xyXG4gICAgaWYgKGxpZ2h0IGluc3RhbmNlb2YgQW1iaWVudExpZ2h0IHx8IGxpZ2h0IGluc3RhbmNlb2YgSGVtaXNwaGVyZUxpZ2h0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIGNvbnN0IGNvcm5lcnM6IENvcm5lcltdID0gdGhpcy5fZmxvb3JwbGFuU2VydmljZS5nZXRDb3JuZXJzKCk7XHJcbiAgICAvLyBpZiAoIWNvcm5lcnMgfHwgY29ybmVycy5sZW5ndGggPCAxKSB7XHJcbiAgICAvLyAgIHJldHVybjtcclxuICAgIC8vIH1cclxuICAgIGNvbnN0IHJvID0gbGlnaHQudXNlckRhdGEucm90YXRpb25PZmZzZXQ7XHJcbiAgICBjb25zdCB3byA9IGxpZ2h0LnVzZXJEYXRhLndhbGxPZmZzZXQ7XHJcbiAgICBjb25zdCBmYyA9IHRoaXMuX2Zsb29ycGxhblNlcnZpY2UuZ2V0Q2VudGVyKCk7XHJcblxyXG4gICAgY29uc3Qgc2l6ZSA9IHRoaXMuX2Zsb29ycGxhblNlcnZpY2UuZ2V0U2l6ZSgpO1xyXG4gICAgY29uc3QgcGxhbkhhbGZXaWR0aCA9IGlzRmluaXRlKHNpemUueCkgPyBzaXplLnggLyAyLjAgOiAwO1xyXG4gICAgY29uc3QgcGxhbkhhbGZEZXB0aCA9IGlzRmluaXRlKHNpemUueikgPyBzaXplLnogLyAyLjAgOiAwO1xyXG5cclxuICAgIGlmICh3byA9PT0gMCkgeyAvLyBqdXN0IHVzZSBwb3NpdGlvbiBvZiBsaWdodFxyXG4gICAgICB0aGlzLl91cGRhdGVTaGFkb3dDYW1lcmEobGlnaHQpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmVzZXQgcG9zaXRpb24gJiByb3RhdGlvblxyXG4gICAgbGlnaHQucG9zaXRpb24ueCA9IGZjLng7XHJcbiAgICBsaWdodC5wb3NpdGlvbi56ID0gZmMuejtcclxuICAgIGxpZ2h0LnJvdGF0aW9uLnNldCgwLCAwLCAwKTtcclxuXHJcbiAgICAvLyBPZmZzZXQgdG8gdGhlIGFwcHJvcHJpYXRlIGNvcm5lciAmIHRyYW5zbGF0ZSBpbiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uIGluIGVxdWFsIHN0ZXBzIGJhc2VkIG9uIHRoZSByb29tIGRpbWVuc2lvbnMuXHJcbiAgICBpZiAocm8gPiAzMTUpIHtcclxuICAgICAgbGlnaHQudHJhbnNsYXRlWihNYXRoLmFicyhwbGFuSGFsZkRlcHRoICsgd28pKTtcclxuICAgICAgbGlnaHQudHJhbnNsYXRlWChNYXRoLmFicyhwbGFuSGFsZldpZHRoICsgd28pKTtcclxuICAgICAgbGlnaHQudHJhbnNsYXRlWCgtTWF0aC5hYnMoKCgocGxhbkhhbGZXaWR0aCAqIDIpICsgKHdvICogMikpIC8gOTApICogKHJvIC0gMzE1KSkpO1xyXG4gICAgfSBlbHNlIGlmIChybyA+IDIyNSkge1xyXG4gICAgICBsaWdodC50cmFuc2xhdGVYKE1hdGguYWJzKHBsYW5IYWxmV2lkdGggKyB3bykpO1xyXG4gICAgICBsaWdodC50cmFuc2xhdGVaKC1NYXRoLmFicyhwbGFuSGFsZkRlcHRoICsgd28pKTtcclxuICAgICAgbGlnaHQudHJhbnNsYXRlWihNYXRoLmFicygoKChwbGFuSGFsZkRlcHRoICogMikgKyAod28gKiAyKSkgLyA5MCkgKiAocm8gLSAyMjUpKSk7XHJcbiAgICB9IGVsc2UgaWYgKHJvID4gMTM1KSB7XHJcbiAgICAgIGxpZ2h0LnRyYW5zbGF0ZVooLU1hdGguYWJzKCBwbGFuSGFsZkRlcHRoICsgd28pKTtcclxuICAgICAgbGlnaHQudHJhbnNsYXRlWCgtTWF0aC5hYnMocGxhbkhhbGZXaWR0aCArIHdvKSk7XHJcbiAgICAgIGxpZ2h0LnRyYW5zbGF0ZVgoTWF0aC5hYnMoKCgocGxhbkhhbGZXaWR0aCAqIDIpICsgKHdvICogMikpIC8gOTApICogKHJvIC0gMTM1KSkpO1xyXG4gICAgfSBlbHNlIGlmIChybyA+IDQ1KSB7XHJcbiAgICAgIGxpZ2h0LnRyYW5zbGF0ZVgoLU1hdGguYWJzKHBsYW5IYWxmV2lkdGggKyB3bykpO1xyXG4gICAgICBsaWdodC50cmFuc2xhdGVaKE1hdGguYWJzKHBsYW5IYWxmRGVwdGggKyB3bykpO1xyXG4gICAgICBsaWdodC50cmFuc2xhdGVaKC1NYXRoLmFicygoKChwbGFuSGFsZkRlcHRoICogMikgKyAod28gKiAyKSkgLyA5MCkgKiAocm8gLSA0NSkpKTtcclxuICAgIH0gZWxzZSBpZiAocm8gPj0gMCkge1xyXG4gICAgICBsaWdodC50cmFuc2xhdGVaKE1hdGguYWJzKHBsYW5IYWxmRGVwdGggKyB3bykpO1xyXG4gICAgICBsaWdodC50cmFuc2xhdGVYKC1NYXRoLmFicygoKChwbGFuSGFsZldpZHRoICogMikgKyAod28gKiAyKSkgLyA5MCkgKiBybykpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fdXBkYXRlU2hhZG93Q2FtZXJhKGxpZ2h0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Nob3dIaWRlSW50ZXJpb3JMaWdodHMoc2hvdzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5faXRlbVNlcnZpY2UuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICBpdGVtLnRyYXZlcnNlKGMgPT4ge1xyXG4gICAgICAgIGlmIChjLm5hbWUgJiYgYy5uYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdsaWdodF9idWxiJykge1xyXG4gICAgICAgICAgYy50cmF2ZXJzZShsID0+IHtcclxuICAgICAgICAgICAgaWYgKGwgaW5zdGFuY2VvZiBQb2ludExpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgbC52aXNpYmxlID0gc2hvdztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fc2NlbmVTZXJ2aWNlLm5lZWRzUmVuZGVyID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZUludGVyaW9yTGlnaHRzKHBvd2VyOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX2l0ZW1TZXJ2aWNlLml0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgaXRlbS50cmF2ZXJzZShjID0+IHtcclxuICAgICAgICBpZiAoYy5uYW1lICYmIGMubmFtZS50b0xvd2VyQ2FzZSgpID09PSAnbGlnaHRfYnVsYicpIHtcclxuICAgICAgICAgIGMudHJhdmVyc2UobCA9PiB7XHJcbiAgICAgICAgICAgIGlmIChsIGluc3RhbmNlb2YgUG9pbnRMaWdodCkge1xyXG4gICAgICAgICAgICAgIGwucG93ZXIgPSBwb3dlcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fc2NlbmVTZXJ2aWNlLm5lZWRzUmVuZGVyID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlbW92ZUxpZ2h0KGxpZ2h0OiBMaWdodCwgdXBkYXRlTGlnaHRBcnJheTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIGNvbnN0IGlkeDogbnVtYmVyID0gdGhpcy5saWdodHMuaW5kZXhPZihsaWdodCk7XHJcbiAgICBpZiAobGlnaHQgaW5zdGFuY2VvZiBTcG90TGlnaHQgfHwgbGlnaHQgaW5zdGFuY2VvZiBEaXJlY3Rpb25hbExpZ2h0KSB7XHJcbiAgICAgIHRoaXMuX3NjZW5lU2VydmljZS5yZW1vdmVPYmplY3QobGlnaHQudGFyZ2V0KTtcclxuICAgIH1cclxuICAgIHRoaXMuX3NjZW5lU2VydmljZS5yZW1vdmVPYmplY3QobGlnaHQpO1xyXG5cclxuICAgIGlmICh1cGRhdGVMaWdodEFycmF5KSB7XHJcbiAgICAgIHRoaXMubGlnaHRzLnNwbGljZShpZHgsIDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYWRkTGlnaHQobGlnaHQ6IExpZ2h0LCB1cGRhdGVMaWdodEFycmF5OiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2NlbmVTZXJ2aWNlLmFkZE9iamVjdChsaWdodCk7XHJcbiAgICBpZiAobGlnaHQgaW5zdGFuY2VvZiBTcG90TGlnaHQgfHwgbGlnaHQgaW5zdGFuY2VvZiBEaXJlY3Rpb25hbExpZ2h0KSB7XHJcbiAgICAgIHRoaXMuX3NjZW5lU2VydmljZS5hZGRPYmplY3QobGlnaHQudGFyZ2V0KTtcclxuICAgICAgdGhpcy5fdXBkYXRlU2hhZG93Q2FtZXJhKGxpZ2h0KTtcclxuICAgIH1cclxuICAgIGlmICh1cGRhdGVMaWdodEFycmF5KSB7XHJcbiAgICAgIHRoaXMubGlnaHRzLnB1c2gobGlnaHQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlU2hhZG93Q2FtZXJhKGxpZ2h0OiBMaWdodCkge1xyXG4gICAgY29uc3Qgc2l6ZSA9IHRoaXMuX2Zsb29ycGxhblNlcnZpY2UuZ2V0U2l6ZSgpO1xyXG5cclxuICAgIGlmIChzaXplLnggPT09IC1JbmZpbml0eSB8fCBzaXplLnkgPT09IC1JbmZpbml0eSB8fCBzaXplLnogPT09IC1JbmZpbml0eSB8fFxyXG4gICAgICBzaXplLnggPT09IEluZmluaXR5IHx8IHNpemUueSA9PT0gSW5maW5pdHkgfHwgc2l6ZS56ID09PSBJbmZpbml0eSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZFdpZHRoID0gKHNpemUueCArIDMpIC8gMi4wO1xyXG4gICAgY29uc3QgZEhlaWdodCA9IChzaXplLnogKyAzKSAvIDIuMDtcclxuICAgIGNvbnN0IGNlbnRlciA9IHRoaXMuX2Zsb29ycGxhblNlcnZpY2UuZ2V0Q2VudGVyKCk7XHJcblxyXG4gICAgaWYgKGxpZ2h0IGluc3RhbmNlb2YgU3BvdExpZ2h0IHx8IGxpZ2h0IGluc3RhbmNlb2YgRGlyZWN0aW9uYWxMaWdodCkge1xyXG4gICAgICBpZiAobGlnaHQgaW5zdGFuY2VvZiBEaXJlY3Rpb25hbExpZ2h0ICYmIGxpZ2h0LnVzZXJEYXRhLnRvcERvd25EaXJlY3Rpb25hbCkge1xyXG4gICAgICAgIGxpZ2h0LnBvc2l0aW9uLnNldChjZW50ZXIueCwgMywgY2VudGVyLnopO1xyXG4gICAgICAgIGxpZ2h0LnNoYWRvdy5jYW1lcmEubGVmdCA9IC1kV2lkdGg7XHJcbiAgICAgICAgbGlnaHQuc2hhZG93LmNhbWVyYS5yaWdodCA9IGRXaWR0aDtcclxuICAgICAgICBsaWdodC5zaGFkb3cuY2FtZXJhLnRvcCA9IGRIZWlnaHQ7XHJcbiAgICAgICAgbGlnaHQuc2hhZG93LmNhbWVyYS5ib3R0b20gPSAtZEhlaWdodDtcclxuICAgICAgfVxyXG4gICAgICBsaWdodC50YXJnZXQucG9zaXRpb24uY29weShjZW50ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -321,29 +321,29 @@ export class SceneService {
|
|
|
321
321
|
this._numberOfSamplesRendered = Math.floor(this.pathTracer.samples);
|
|
322
322
|
}
|
|
323
323
|
else {
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
}
|
|
332
|
-
else {
|
|
333
|
-
this.onBeforeRender.next({ renderer: this.renderer, scene: this.scene });
|
|
334
|
-
if (!this._settingsService.settings.options.aaEnabled && !this._settingsService.settings.options.aoEnabled) {
|
|
335
|
-
// this.renderer.render(this.scene, this._cameraService.camera);
|
|
336
|
-
this._outlineService.render();
|
|
324
|
+
if (this._needsRender || this.arMode || this._viewModeService.isVRViewActive() || this._outlineService.needsRender) {
|
|
325
|
+
this.renderer.clear();
|
|
326
|
+
if (this._arMode && frame) {
|
|
327
|
+
this._arService.handleFrame(frame);
|
|
328
|
+
}
|
|
329
|
+
else if (this._viewModeService.isVRViewActive()) {
|
|
330
|
+
this._vrService.render();
|
|
337
331
|
}
|
|
338
332
|
else {
|
|
339
|
-
this.
|
|
340
|
-
|
|
333
|
+
this.onBeforeRender.next({ renderer: this.renderer, scene: this.scene });
|
|
334
|
+
if (!this._settingsService.settings.options.aaEnabled && !this._settingsService.settings.options.aoEnabled) {
|
|
335
|
+
// this.renderer.render(this.scene, this._cameraService.camera);
|
|
336
|
+
this._outlineService.render();
|
|
337
|
+
}
|
|
338
|
+
else {
|
|
339
|
+
this._postProcessing.render();
|
|
340
|
+
// this._outlineService.render();
|
|
341
|
+
}
|
|
341
342
|
}
|
|
343
|
+
this.onAfterRender.next({ renderer: this.renderer, scene: this.scene });
|
|
344
|
+
this._outlineService.needsRender = false;
|
|
345
|
+
this.needsRender = false;
|
|
342
346
|
}
|
|
343
|
-
this.onAfterRender.next({ renderer: this.renderer, scene: this.scene });
|
|
344
|
-
this._outlineService.needsRender = false;
|
|
345
|
-
this.needsRender = false;
|
|
346
|
-
// }
|
|
347
347
|
}
|
|
348
348
|
}
|
|
349
349
|
_animate() {
|
|
@@ -390,4 +390,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
390
390
|
providedIn: 'root'
|
|
391
391
|
}]
|
|
392
392
|
}], ctorParameters: function () { return [{ type: i1.CameraService }, { type: i2.ConfigurationService }, { type: i3.XrService }, { type: i4.VrService }, { type: i5.ArService }, { type: i6.MessageBusService }, { type: i7.ViewModeService }, { type: i8.OutlineService }, { type: i9.HomedecoratorSettingsService }, { type: i10.PostProcessingService }, { type: i11.SsrService }]; } });
|
|
393
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnQvYXBwL3BsdWdpbnMvY29yZTNkL3NlcnZpY2Uvc2NlbmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFDTCxLQUFLLEVBQ0wsYUFBYSxFQUViLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxjQUFjLEVBQ2QsYUFBYSxFQUdiLGFBQWEsRUFDZCxNQUFNLE9BQU8sQ0FBQztBQUNmLE9BQU8sRUFBQyxlQUFlLEVBQUUsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sS0FBSyxLQUFLLE1BQU0sbUJBQW1CLENBQUM7QUFVM0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDckYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDbEYsK0RBQStEO0FBQy9ELDZEQUE2RDtBQUM3RCxtRkFBbUY7QUFDbkYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHFEQUFxRCxDQUFDOzs7Ozs7Ozs7Ozs7O0FBUTFGLE1BQU0sT0FBTyxZQUFZO0lBa0N2QixZQUNVLGNBQTZCLEVBQzdCLHFCQUEyQyxFQUMzQyxVQUFxQixFQUNy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Q1AsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUQsQ0FBQzs7MEdBeFlVLFlBQVk7OEdBQVosWUFBWSxjQUZYLE1BQU07NEZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29sb3IsXHJcbiAgTm9Ub25lTWFwcGluZyxcclxuICBPYmplY3QzRCxcclxuICBPcnRob2dyYXBoaWNDYW1lcmEsXHJcbiAgUENGU29mdFNoYWRvd01hcCxcclxuICBQZXJzcGVjdGl2ZUNhbWVyYSxcclxuICBTY2VuZSxcclxuICBTUkdCQ29sb3JTcGFjZSxcclxuICBUZXh0dXJlTG9hZGVyLFxyXG4gIFZlY3RvcjIsXHJcbiAgVmVjdG9yMyxcclxuICBXZWJHTFJlbmRlcmVyXHJcbn0gZnJvbSAndGhyZWUnO1xyXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgVFdFRU4gZnJvbSAnQHR3ZWVuanMvdHdlZW4uanMnO1xyXG5pbXBvcnQge0NhbWVyYVNlcnZpY2V9IGZyb20gJy4vY2FtZXJhLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2UvY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtYclNlcnZpY2V9IGZyb20gJy4veHIuc2VydmljZSc7XHJcbmltcG9ydCB7VnJTZXJ2aWNlfSBmcm9tICcuL3ZyLnNlcnZpY2UnO1xyXG5pbXBvcnQge0FyU2VydmljZX0gZnJvbSAnLi9hci5zZXJ2aWNlJztcclxuaW1wb3J0IHtNZXNzYWdlQnVzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlL21lc3NhZ2UtYnVzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1ZpZXdNb2RlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlL3ZpZXctbW9kZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtPdXRsaW5lU2VydmljZX0gZnJvbSAnLi9vdXRsaW5lLnNlcnZpY2UnO1xyXG5pbXBvcnQge0hvbWVkZWNvcmF0b3JTZXR0aW5nc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZS9ob21lZGVjb3JhdG9yLXNldHRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1ZpZXdNb2RlfSBmcm9tICcuLi8uLi8uLi9jb3JlL2VudW0vdmlldy1tb2RlLmVudW0nO1xyXG5pbXBvcnQge01lc3NhZ2VUeXBlfSBmcm9tICcuLi8uLi8uLi9jb3JlL2VudW0vbWVzc2FnZS10eXBlLmVudW0nO1xyXG5pbXBvcnQge0ZpbGVVdGlsc30gZnJvbSAnLi4vLi4vLi4vY29yZS91dGlscy9maWxlLnV0aWxzJztcclxuaW1wb3J0IHtVdGlsc30gZnJvbSAnLi4vY29yZS91dGlscyc7XHJcbmltcG9ydCB7U2NlbmUzRFV0aWx9IGZyb20gJy4uLy4uL3RocmVlZHNlbGVjdG9yL3RocmVlZHNlbGVjdG9yL3V0aWxzL3NjZW5lLTNkLnV0aWxzJztcclxuaW1wb3J0IHtSZWxhdGl2ZVBvc2l0aW9uVXRpbHN9IGZyb20gJy4uLy4uLy4uL2NvcmUvdXRpbHMvcmVsYXRpdmUtcG9zaXRpb24udXRpbHMnO1xyXG4vLyBpbXBvcnQgV2ViR1BVIGZyb20gJ3RocmVlL2V4YW1wbGVzL2pzbS9jYXBhYmlsaXRpZXMvV2ViR1BVJztcclxuLy8gaW1wb3J0IFdlYkdMIGZyb20gJ3RocmVlL2V4YW1wbGVzL2pzbS9jYXBhYmlsaXRpZXMvV2ViR0wnO1xyXG4vLyBpbXBvcnQgV2ViR1BVUmVuZGVyZXIgZnJvbSAndGhyZWUvZXhhbXBsZXMvanNtL3JlbmRlcmVycy93ZWJncHUvV2ViR1BVUmVuZGVyZXInO1xyXG5pbXBvcnQge1dlYkdMUGF0aFRyYWNlcn0gZnJvbSAndGhyZWUtZ3B1LXBhdGh0cmFjZXInO1xyXG5pbXBvcnQge1BhcmFsbGVsTWVzaEJWSFdvcmtlcn0gZnJvbSAndGhyZWUtbWVzaC1idmgvc3JjL3dvcmtlcnMvUGFyYWxsZWxNZXNoQlZIV29ya2VyLmpzJztcclxuaW1wb3J0IHtQb3N0UHJvY2Vzc2luZ1NlcnZpY2V9IGZyb20gJy4vcG9zdC1wcm9jZXNzaW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQge1NzclNlcnZpY2V9IGZyb20gJy4vc3NyLnNlcnZpY2UnO1xyXG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tICcuLi8uLi8uLi9jb3JlL3V0aWxzL29iamVjdC51dGlscyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTY2VuZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwdWJsaWMgc2V0IG5lZWRzUmVuZGVyKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9uZWVkc1JlbmRlciA9IHZhbHVlO1xyXG4gICAgaWYgKHRoaXMucGF0aFRyYWNlcikge1xyXG4gICAgICB0aGlzLnBhdGhUcmFjZXIudXBkYXRlQ2FtZXJhKCk7XHJcbiAgICAgIHRoaXMucGF0aFRyYWNlci51cGRhdGVMaWdodHMoKTtcclxuICAgICAgdGhpcy5wYXRoVHJhY2VyLnVwZGF0ZU1hdGVyaWFscygpO1xyXG4gICAgICB0aGlzLnBhdGhUcmFjZXIudXBkYXRlRW52aXJvbm1lbnQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuX251bWJlck9mU2FtcGxlc1JlbmRlcmVkID0gMDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbmVlZHNSZW5kZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbmVlZHNSZW5kZXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2NlbmU6IFNjZW5lO1xyXG4gIHB1YmxpYyByZW5kZXJlcjogV2ViR0xSZW5kZXJlci8qIHwgV2ViR1BVUmVuZGVyZXIqLztcclxuICBwdWJsaWMgcGF0aFRyYWNlcjogV2ViR0xQYXRoVHJhY2VyO1xyXG5cclxuICBwdWJsaWMgb25CZWZvcmVSZW5kZXI6IFN1YmplY3Q8eyByZW5kZXJlcjogV2ViR0xSZW5kZXJlciwgc2NlbmU6IFNjZW5lIH0+ID0gbmV3IFN1YmplY3Q8eyByZW5kZXJlcjogV2ViR0xSZW5kZXJlciwgc2NlbmU6IFNjZW5lIH0+KCk7XHJcbiAgcHVibGljIG9uQWZ0ZXJSZW5kZXI6IFN1YmplY3Q8eyByZW5kZXJlcjogV2ViR0xSZW5kZXJlciwgc2NlbmU6IFNjZW5lIH0+ID0gbmV3IFN1YmplY3Q8eyByZW5kZXJlcjogV2ViR0xSZW5kZXJlciwgc2NlbmU6IFNjZW5lIH0+KCk7XHJcbiAgcHVibGljIHNjZW5lSW5pdGlhbGl6ZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG4gIHB1YmxpYyByZW5kZXJpbmdUaHJvdWdoUG9zdFByb2Nlc3NpbmdQaXBlbGluZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIHdlYkdMMkF2YWlsYWJsZTogYm9vbGVhbjtcclxuICBwdWJsaWMgZG9tRWxlbWVudDogSFRNTEVsZW1lbnQ7XHJcblxyXG4gIHByaXZhdGUgX25lZWRzUmVuZGVyOiBib29sZWFuO1xyXG4gIHByaXZhdGUgX2FyTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgcHJpdmF0ZSBfbWF4UmVuZGVyU2FtcGxlczogbnVtYmVyO1xyXG4gIHByaXZhdGUgX251bWJlck9mU2FtcGxlc1JlbmRlcmVkOiBudW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfY2FtZXJhU2VydmljZTogQ2FtZXJhU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NvbmZpZ3VyYXRpb25TZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3hyU2VydmljZTogWHJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdnJTZXJ2aWNlOiBWclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9hclNlcnZpY2U6IEFyU2VydmljZSxcclxuICAgIHByaXZhdGUgX21lc3NhZ2VCdXNTZXJ2aWNlOiBNZXNzYWdlQnVzU2VydmljZSxcclxuICAgIHByaXZhdGUgX3ZpZXdNb2RlU2VydmljZTogVmlld01vZGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfb3V0bGluZVNlcnZpY2U6IE91dGxpbmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2V0dGluZ3NTZXJ2aWNlOiBIb21lZGVjb3JhdG9yU2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcG9zdFByb2Nlc3Npbmc6IFBvc3RQcm9jZXNzaW5nU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NzclNlcnZpY2U6IFNzclNlcnZpY2VcclxuICApIHtcclxuICAgIHdpbmRvdy5vbmJlZm9yZXVubG9hZCA9ICgpID0+IHRoaXMubmdPbkRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kb21FbGVtZW50ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTY2VuZSgpOiBTY2VuZSB7XHJcbiAgICByZXR1cm4gdGhpcy5hck1vZGUgPyB0aGlzLl9hclNlcnZpY2Uuc2NlbmUgOiB0aGlzLnNjZW5lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBhck1vZGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2FyTW9kZSA9IHZhbHVlO1xyXG4gICAgaWYgKHRoaXMuX2FyTW9kZSkge1xyXG4gICAgICB0aGlzLl9hclNlcnZpY2UuaW5pdCh0aGlzLnJlbmRlcmVyIGFzIFdlYkdMUmVuZGVyZXIpO1xyXG4gICAgICB0aGlzLl92aWV3TW9kZVNlcnZpY2Uudmlld01vZGUgPSBWaWV3TW9kZS5BUjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYXJNb2RlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FyTW9kZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBpbml0KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmRvbUVsZW1lbnQgPSBlbGVtZW50O1xyXG4gICAgdGhpcy5faW5pdFNjZW5lKCk7XHJcbiAgICB0aGlzLl9pbml0UmVuZGVyZXIoKTtcclxuICAgIHRoaXMuX2luaXRDYW1lcmEoKTtcclxuICAgIHRoaXMuX2luaXRPdXRsaW5lKCk7XHJcbiAgICB0aGlzLl9pbml0UG9zdFByb2Nlc3NpbmcoKTtcclxuICAgIHRoaXMuX2FuaW1hdGUoKTtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy5fY2FtZXJhU2VydmljZS5jYW1lcmFNb3ZlbWVudENoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLm5lZWRzUmVuZGVyID0gdHJ1ZTtcclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuX21lc3NhZ2VCdXNTZXJ2aWNlLnN1YnNjcmliZShNZXNzYWdlVHlwZS5UYWtlU2NyZWVuc2hvdCwgYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLl92aWV3TW9kZVNlcnZpY2UuaXMzZFZpZXdBY3RpdmUoKSB8fCB0aGlzLl92aWV3TW9kZVNlcnZpY2UuaXNUb3BWaWV3QWN0aXZlKCkpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVuZGVyKHRoaXMuc2NlbmUsIHRoaXMuX2NhbWVyYVNlcnZpY2UuY2FtZXJhKTtcclxuICAgICAgICAgIGNvbnN0IGRhdGFVcmwgPSB0aGlzLnJlbmRlcmVyLmRvbUVsZW1lbnQudG9EYXRhVVJMKCdpbWFnZS9qcGVnJyk7XHJcbiAgICAgICAgICBGaWxlVXRpbHMuRG93bmxvYWRGcm9tRGF0YVVyaShkYXRhVXJsLCBgTXlSb29tcGxhbiR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfS5qcGVnYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5fYXJTZXJ2aWNlLnNob3VsZEFkZE9iamVjdFRvU2NlbmUuc3Vic2NyaWJlKChvYmplY3QpID0+IHtcclxuICAgICAgICB0aGlzLmFyTW9kZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuYWRkT2JqZWN0KG9iamVjdCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLl92aWV3TW9kZVNlcnZpY2Uudmlld01vZGVDaGFuZ2VkLnN1YnNjcmliZSgobW9kZSkgPT4ge1xyXG4gICAgICAgIC8vIGlmICh0aGlzLl9pczNETW9kZShtb2RlKSkge1xyXG4gICAgICAgIC8vICAgdGhpcy5fYW5pbWF0ZSgpO1xyXG4gICAgICAgIC8vIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gICB0aGlzLl9wYXVzZUFuaW1hdGlvbigpO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICBpZiAobW9kZSA9PT0gVmlld01vZGUuVlIpIHtcclxuICAgICAgICAgIHRoaXMuX3ZyU2VydmljZS5pbml0KHRoaXMuc2NlbmUsIHRoaXMucmVuZGVyZXIgYXMgV2ViR0xSZW5kZXJlcik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX3ZyU2VydmljZS5lbmRTZXNzaW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzTG9hZGVkLnN1YnNjcmliZSgobG9hZGVkOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKGxvYWRlZCkge1xyXG4gICAgICAgICAgdGhpcy5faW5pdFBhdGhUcmFjZXIoKTtcclxuICAgICAgICAgIHRoaXMuX21heFJlbmRlclNhbXBsZXMgPSB0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy5tYXhSZW5kZXJTYW1wbGVzO1xyXG4gICAgICAgICAgdGhpcy5fc3NyU2VydmljZS5lbmFibGVkID0gdGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLm9wdGlvbnMuc3NyRW5hYmxlZDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIC8vIHRoaXMuX3hyU2VydmljZS5zZXNzaW9uU3RhcnRlZC5zdWJzY3JpYmUoKG1vZGU6IFhyTW9kZSkgPT4ge1xyXG4gICAgICAvLyAgIGlmIChtb2RlID09PSBYck1vZGUuQXJNb2RlKSB7XHJcbiAgICAgIC8vICAgICB0aGlzLl9hbmltYXRlQXIoKTtcclxuICAgICAgLy8gICB9XHJcbiAgICAgIC8vIH0pXHJcbiAgICApO1xyXG4gICAgdGhpcy5feHJTZXJ2aWNlLmluaXQodGhpcy5yZW5kZXJlciBhcyBXZWJHTFJlbmRlcmVyLCB0aGlzLnNjZW5lLCB0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYSk7XHJcbiAgICAvLyBjb25zdCBoZHJpUGF0aDogc3RyaW5nID0gJy9hc3NldHMvaGRyaS9UU1N0dWRpbzNQb2ludC5oZHInO1xyXG4gICAgLy8gYXdhaXQgT2JqZWN0VXRpbHMuTG9hZEhEUkkoaGRyaVBhdGgsIHRoaXMuc2NlbmUpO1xyXG4gICAgdGhpcy5zY2VuZUluaXRpYWxpemVkLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkT2JqZWN0KG9iajogT2JqZWN0M0QsIGZvcmNlUmVuZGVyOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2FyTW9kZSkge1xyXG4gICAgICB0aGlzLl9hclNlcnZpY2UuYWRkT2JqZWN0VG9BUlNjZW5lKG9iaik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNjZW5lLmFkZChvYmopO1xyXG4gICAgICB0aGlzLnVwZGF0ZVBhdGhUcmFjZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZm9yY2VSZW5kZXIpIHtcclxuICAgICAgdGhpcy5uZWVkc1JlbmRlciA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVtb3ZlT2JqZWN0KG9iajogT2JqZWN0M0QsIGZvcmNlUmVuZGVyOiBib29sZWFuID0gdHJ1ZSwgY2xlYW5VcDogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIHRoaXMuc2NlbmUucmVtb3ZlKG9iaik7XHJcbiAgICBpZiAoZm9yY2VSZW5kZXIpIHtcclxuICAgICAgdGhpcy5uZWVkc1JlbmRlciA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoY2xlYW5VcCkge1xyXG4gICAgICBVdGlscy5EaXNwb3NlT2JqZWN0KG9iaik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlUGF0aFRyYWNlcigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy5wYXRoVHJhY2VyICYmIHRoaXMucGF0aFRyYWNlcikge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHRoaXMucGF0aFRyYWNlci5zZXRTY2VuZSh0aGlzLnNjZW5lLCB0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYSk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcG9zaXRpb25JblNjZW5lVG9TY3JlZW4ocG9zOiBWZWN0b3IzKTogVmVjdG9yMiB7XHJcbiAgICByZXR1cm4gU2NlbmUzRFV0aWwuQ29udmVydDNEUG9pbnRUb1NjcmVlblBvaW50KFxyXG4gICAgICBwb3MsIHRoaXMuX2NhbWVyYVNlcnZpY2UuY2FtZXJhLCB0aGlzLmRvbUVsZW1lbnQuY2xpZW50V2lkdGgsIHRoaXMuZG9tRWxlbWVudC5jbGllbnRIZWlnaHQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbmRlcmVyUHJvcHNDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNjZW5lLnRyYXZlcnNlKChub2RlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCFub2RlLmlzTWVzaCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShub2RlLm1hdGVyaWFsKSkge1xyXG4gICAgICAgIG5vZGUubWF0ZXJpYWwuZm9yRWFjaChmdW5jdGlvbiAobWF0ZXJpYWwpIHtcclxuICAgICAgICAgIG1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBub2RlLm1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLm5lZWRzUmVuZGVyID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjcmVhdGVSZW5kZXJXaXRoT3J0aG9ncmFwaGljQ2FtZXJhKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBhc3BlY3Q6IG51bWJlciA9IHdpbmRvdy5pbm5lcldpZHRoIC8gd2luZG93LmlubmVySGVpZ2h0O1xyXG4gICAgY29uc3QgZnJ1c3R1bVNpemU6IG51bWJlciA9IDEwO1xyXG4gICAgY29uc3Qgb3J0aG9ncmFwaGljQ2FtZXJhOiBPcnRob2dyYXBoaWNDYW1lcmEgPSBuZXcgT3J0aG9ncmFwaGljQ2FtZXJhKFxyXG4gICAgICBmcnVzdHVtU2l6ZSAqIGFzcGVjdCAvIC0yLFxyXG4gICAgICBmcnVzdHVtU2l6ZSAqIGFzcGVjdCAvIDIsXHJcbiAgICAgIGZydXN0dW1TaXplIC8gMixcclxuICAgICAgZnJ1c3R1bVNpemUgLyAtMixcclxuICAgICAgMC4xLFxyXG4gICAgICAxMDBcclxuICAgICk7XHJcbiAgICBvcnRob2dyYXBoaWNDYW1lcmEucG9zaXRpb24uc2V0KDAsIDMsIC0yKTtcclxuICAgIG9ydGhvZ3JhcGhpY0NhbWVyYS5sb29rQXQoMCwgMCwgLTIpO1xyXG4gICAgb3J0aG9ncmFwaGljQ2FtZXJhLm5hbWUgPSAnb3J0aG9ncmFwaGljY2FtZXJhJztcclxuICAgIHRoaXMuc2NlbmUuYWRkKG9ydGhvZ3JhcGhpY0NhbWVyYSk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbmRlcih0aGlzLnNjZW5lLCBvcnRob2dyYXBoaWNDYW1lcmEpO1xyXG4gICAgY29uc3QgcmVuZGVyOiBzdHJpbmcgPSB0aGlzLnJlbmRlcmVyLmRvbUVsZW1lbnQudG9EYXRhVVJMKCdpbWFnZS9qcGVnJyk7XHJcbiAgICB0aGlzLnNjZW5lLmdldE9iamVjdEJ5TmFtZSgnb3J0aG9ncmFwaGljY2FtZXJhJykucmVtb3ZlKCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbmRlcih0aGlzLnNjZW5lLCB0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYSk7XHJcbiAgICByZXR1cm4gcmVuZGVyO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaW5pdFNjZW5lKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zY2VuZSA9IG5ldyBTY2VuZSgpO1xyXG4gICAgdGhpcy5fc2V0U2NlbmVCYWNrZ3JvdW5kKCk7XHJcbiAgICAvLyBjb25zdCBib3gxZ2VvID0gbmV3IEJveEdlb21ldHJ5KDEsIDEsIDEpO1xyXG4gICAgLy8gY29uc3QgYm94MSA9IG5ldyBNZXNoKGJveDFnZW8sIG5ldyBNZXNoUGhvbmdNYXRlcmlhbCh7Y29sb3I6ICdncmVlbid9KSk7XHJcbiAgICAvLyBib3gxLnBvc2l0aW9uLnNldCgtMC41LCAwLjcsIC0wLjUpO1xyXG4gICAgLy8gYm94MS5jYXN0U2hhZG93ID0gdHJ1ZTtcclxuICAgIC8vIGJveDEucmVjZWl2ZVNoYWRvdyA9IHRydWU7XHJcbiAgICAvLyB0aGlzLnNjZW5lLmFkZChib3gxKTtcclxuICAgIC8vIGNvbnN0IGJveDJnZW8gPSBuZXcgQm94R2VvbWV0cnkoMC42LCAwLjYsIDAuNik7XHJcbiAgICAvLyBjb25zdCBib3gyID0gbmV3IE1lc2goYm94MmdlbywgbmV3IE1lc2hQaG9uZ01hdGVyaWFsKHtjb2xvcjogJ3JlZCd9KSk7XHJcbiAgICAvLyBib3gyLnBvc2l0aW9uLnNldCgwLjUsIDEuNSwgMC41KTtcclxuICAgIC8vIGJveDIuY2FzdFNoYWRvdyA9IHRydWU7XHJcbiAgICAvLyBib3gyLnJlY2VpdmVTaGFkb3cgPSB0cnVlO1xyXG4gICAgLy8gdGhpcy5zY2VuZS5hZGQoYm94Mik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pbml0Q2FtZXJhKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY2FtZXJhU2VydmljZS5pbml0KHRoaXMuZG9tRWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pbml0T3V0bGluZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX291dGxpbmVTZXJ2aWNlLmluaXQodGhpcy5yZW5kZXJlciBhcyBXZWJHTFJlbmRlcmVyLCB0aGlzLnNjZW5lLCB0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYSxcclxuICAgICAgdGhpcy5kb21FbGVtZW50LmNsaWVudFdpZHRoICogd2luZG93LmRldmljZVBpeGVsUmF0aW8sXHJcbiAgICAgIHRoaXMuZG9tRWxlbWVudC5jbGllbnRIZWlnaHQgKiB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pbml0UG9zdFByb2Nlc3NpbmcoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wb3N0UHJvY2Vzc2luZy5pbml0KHRoaXMucmVuZGVyZXIgYXMgV2ViR0xSZW5kZXJlciwgdGhpcy5zY2VuZSwgdGhpcy5fY2FtZXJhU2VydmljZS5jYW1lcmEsXHJcbiAgICAgIHRoaXMuZG9tRWxlbWVudC5jbGllbnRXaWR0aCAqIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvLFxyXG4gICAgICB0aGlzLmRvbUVsZW1lbnQuY2xpZW50SGVpZ2h0ICogd2luZG93LmRldmljZVBpeGVsUmF0aW8pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaW5pdFBhdGhUcmFjZXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLm9wdGlvbnMucGF0aFRyYWNlcikge1xyXG4gICAgICB0aGlzLnBhdGhUcmFjZXIgPSBuZXcgV2ViR0xQYXRoVHJhY2VyKHRoaXMucmVuZGVyZXIgYXMgV2ViR0xSZW5kZXJlcik7XHJcbiAgICAgIHRoaXMucGF0aFRyYWNlci5zZXRCVkhXb3JrZXIobmV3IFBhcmFsbGVsTWVzaEJWSFdvcmtlcigpKTtcclxuICAgICAgdGhpcy5wYXRoVHJhY2VyLmZpbHRlckdsb3NzeUZhY3RvciA9IDE7XHJcbiAgICAgIHRoaXMucGF0aFRyYWNlci50aWxlcy5zZXQoMywgMyk7XHJcbiAgICAgIHRoaXMucGF0aFRyYWNlci5tdWx0aXBsZUltcG9ydGFuY2VTYW1wbGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMucGF0aFRyYWNlci50cmFuc21pc3NpdmVCb3VuY2VzID0gMTA7XHJcbiAgICAgIHRoaXMucGF0aFRyYWNlci5yZW5kZXJTY2FsZSA9IDE7XHJcbiAgICAgIHRoaXMucGF0aFRyYWNlci5zZXRTY2VuZSh0aGlzLnNjZW5lLCB0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYSk7XHJcbiAgICAgIHRoaXMucGF0aFRyYWNlci5lbmFibGVQYXRoVHJhY2luZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9pbml0UmVuZGVyZXIoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBpZiAoV2ViR1BVLmlzQXZhaWxhYmxlKCkgPT09IGZhbHNlICYmIFdlYkdMLmlzV2ViR0wyQXZhaWxhYmxlKCkgPT09IGZhbHNlKSB7XHJcbiAgICAvLyAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoIFdlYkdQVS5nZXRFcnJvck1lc3NhZ2UoKSApO1xyXG4gICAgLy8gICB0aHJvdyBuZXcgRXJyb3IoJ05vIFdlYkdQVSBvciBXZWJHTDIgc3VwcG9ydCcpO1xyXG4gICAgLy8gfVxyXG4gICAgY29uc3QgY2FudmFzRWxlbWVudDogSFRNTENhbnZhc0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcclxuICAgIGNvbnN0IGNvbnRleHQ6IGFueSA9IGNhbnZhc0VsZW1lbnQuZ2V0Q29udGV4dCgnd2ViZ2wyJyk7XHJcbiAgICB0aGlzLndlYkdMMkF2YWlsYWJsZSA9IGNvbnRleHQgIT09IHVuZGVmaW5lZDtcclxuICAgIC8vIHRoaXMucmVuZGVyZXIgPSBuZXcgV2ViR1BVUmVuZGVyZXIoeyBhbHBoYTogdHJ1ZSwgYW50aWFsaWFzOiB0cnVlIH0pO1xyXG4gICAgLy8gdGhpcy5yZW5kZXJlciA9XHJcbiAgICAvLyAgIG5ldyBXZWJHTFJlbmRlcmVyKHtcclxuICAgIC8vICAgICBjYW52YXM6IGNhbnZhc0VsZW1lbnQsXHJcbiAgICAvLyAgICAgY29udGV4dDogY29udGV4dCxcclxuICAgIC8vICAgICBhbHBoYTogdHJ1ZSxcclxuICAgIC8vICAgICBhbnRpYWxpYXM6IHRydWUsXHJcbiAgICAvLyAgICAgcHJlc2VydmVEcmF3aW5nQnVmZmVyOiB0cnVlLFxyXG4gICAgLy8gICAgIHByZW11bHRpcGxpZWRBbHBoYTogZmFsc2UvKixcclxuICAgIC8vICAgICBsb2dhcml0aG1pY0RlcHRoQnVmZmVyOiB0cnVlKi9cclxuICAgIC8vICAgfSk7XHJcbiAgICAvLyB0aGlzLnJlbmRlcmVyID0gbmV3IFdlYkdMUmVuZGVyZXIoe2FscGhhOiB0cnVlLCBhbnRpYWxpYXM6IGZhbHNlLCBwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6IHRydWUsIHByZW11bHRpcGxpZWRBbHBoYTogdHJ1ZX0pO1xyXG4gICAgdGhpcy5yZW5kZXJlciA9IG5ldyBXZWJHTFJlbmRlcmVyKHtcclxuLypcclxuICAgICAgcHJlY2lzaW9uOiAnaGlnaHAnLFxyXG4gICAgICBwb3dlclByZWZlcmVuY2U6ICdoaWdoLXBlcmZvcm1hbmNlJyxcclxuKi9cclxuLypcclxuICAgICAgYW50aWFsaWFzOiB0cnVlLFxyXG4qL1xyXG4vKlxyXG4gICAgICBzdGVuY2lsOiBmYWxzZSxcclxuICAgICAgZGVwdGg6IGZhbHNlXHJcbiovXHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVuZGVyZXIub3V0cHV0Q29sb3JTcGFjZSA9IFNSR0JDb2xvclNwYWNlO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hdXRvQ2xlYXIgPSB0cnVlO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRQaXhlbFJhdGlvKHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvKTtcclxuICAgIHRoaXMucmVuZGVyZXIudG9uZU1hcHBpbmcgPSBOb1RvbmVNYXBwaW5nOyAvLyBBQ0VTRmlsbWljVG9uZU1hcHBpbmc7IC8vIExpbmVhclRvbmVNYXBwaW5nO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zaGFkb3dNYXAuZW5hYmxlZCA9IHRydWU7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNoYWRvd01hcC50eXBlID0gUENGU29mdFNoYWRvd01hcDtcclxuICAgIHRoaXMuZG9tRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnJlbmRlcmVyLmRvbUVsZW1lbnQpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5kb21FbGVtZW50LnNldEF0dHJpYnV0ZSgnaWQnLCAndGhyZWVkX2NhbnZhcycpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVzaXplUmVuZGVyZXJUb0Rpc3BsYXlTaXplKCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTaXplKHRoaXMuZG9tRWxlbWVudC5jbGllbnRXaWR0aCwgdGhpcy5kb21FbGVtZW50LmNsaWVudEhlaWdodCwgdHJ1ZSk7XHJcbiAgICB0aGlzLl9vdXRsaW5lU2VydmljZS5zZXRTaXplKHRoaXMuZG9tRWxlbWVudC5jbGllbnRXaWR0aCwgdGhpcy5kb21FbGVtZW50LmNsaWVudEhlaWdodCk7XHJcbiAgICB0aGlzLl9wb3N0UHJvY2Vzc2luZy5zZXRTaXplKHRoaXMuZG9tRWxlbWVudC5jbGllbnRXaWR0aCwgdGhpcy5kb21FbGVtZW50LmNsaWVudEhlaWdodCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVXaW5kb3dTaXplKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVzaXplUmVuZGVyZXJUb0Rpc3BsYXlTaXplKCk7XHJcbiAgICBSZWxhdGl2ZVBvc2l0aW9uVXRpbHMuU2V0QXBwbGljYXRpb25PZmZzZXQodGhpcy5kb21FbGVtZW50KTtcclxuICAgIGlmICh0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYSBpbnN0YW5jZW9mIFBlcnNwZWN0aXZlQ2FtZXJhKSB7XHJcbiAgICAgIGNvbnN0IGFzcGVjdCA9IHRoaXMuZG9tRWxlbWVudC5jbGllbnRXaWR0aCAvIHRoaXMuZG9tRWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgIHRoaXMuX2NhbWVyYVNlcnZpY2UucmVhbEFzcGVjdFJhdGlvID0gYXNwZWN0O1xyXG4gICAgICB0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYS5hc3BlY3QgPSBhc3BlY3Q7XHJcbiAgICAgICh0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYSBhcyBQZXJzcGVjdGl2ZUNhbWVyYSkudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5uZWVkc1JlbmRlciA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jaGVja0NhbnZhc1Jlc2l6ZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRvbUVsZW1lbnQuY2xpZW50V2lkdGggIT09IHRoaXMucmVuZGVyZXIuZG9tRWxlbWVudC53aWR0aCB8fFxyXG4gICAgICB0aGlzLmRvbUVsZW1lbnQuY2xpZW50SGVpZ2h0ICE9PSB0aGlzLnJlbmRlcmVyLmRvbUVsZW1lbnQuaGVpZ2h0KSB7XHJcbiAgICAgIHRoaXMuX3VwZGF0ZVdpbmRvd1NpemUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlbmRlcih0LCBmcmFtZSkge1xyXG4gICAgaWYgKCF0aGlzLnJlbmRlcmVyLnhyLmVuYWJsZWQpIHtcclxuICAgICAgVFdFRU4udXBkYXRlKCk7XHJcbiAgICAgIHRoaXMuX2NoZWNrQ2FudmFzUmVzaXplKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLm9wdGlvbnMucGF0aFRyYWNlciAmJiB0aGlzLnBhdGhUcmFjZXIpIHtcclxuICAgICAgaWYgKHRoaXMuX251bWJlck9mU2FtcGxlc1JlbmRlcmVkID49IHRoaXMuX21heFJlbmRlclNhbXBsZXMpIHtcclxuICAgICAgICB0aGlzLnBhdGhUcmFjZXIuZW5hYmxlUGF0aFRyYWNpbmcgPSBmYWxzZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnBhdGhUcmFjZXIuZW5hYmxlUGF0aFRyYWNpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuY2xlYXIoKTtcclxuICAgICAgICB0aGlzLnBhdGhUcmFjZXIucmVuZGVyU2FtcGxlKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fbnVtYmVyT2ZTYW1wbGVzUmVuZGVyZWQgPSBNYXRoLmZsb29yKHRoaXMucGF0aFRyYWNlci5zYW1wbGVzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIGlmICh0aGlzLl9uZWVkc1JlbmRlciB8fCB0aGlzLmFyTW9kZSB8fCB0aGlzLl92aWV3TW9kZVNlcnZpY2UuaXNWUlZpZXdBY3RpdmUoKSB8fCB0aGlzLl9vdXRsaW5lU2VydmljZS5uZWVkc1JlbmRlcikge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuY2xlYXIoKTtcclxuICAgICAgICBpZiAodGhpcy5fYXJNb2RlICYmIGZyYW1lKSB7XHJcbiAgICAgICAgICB0aGlzLl9hclNlcnZpY2UuaGFuZGxlRnJhbWUoZnJhbWUpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fdmlld01vZGVTZXJ2aWNlLmlzVlJWaWV3QWN0aXZlKCkpIHtcclxuICAgICAgICAgIHRoaXMuX3ZyU2VydmljZS5yZW5kZXIoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5vbkJlZm9yZVJlbmRlci5uZXh0KHtyZW5kZXJlcjogdGhpcy5yZW5kZXJlciBhcyBXZWJHTFJlbmRlcmVyLCBzY2VuZTogdGhpcy5zY2VuZX0pO1xyXG4gICAgICAgICAgaWYgKCF0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy5hYUVuYWJsZWQgJiYgIXRoaXMuX3NldHRpbmdzU2VydmljZS5zZXR0aW5ncy5vcHRpb25zLmFvRW5hYmxlZCkge1xyXG4gICAgICAgICAgICAvLyB0aGlzLnJlbmRlcmVyLnJlbmRlcih0aGlzLnNjZW5lLCB0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYSk7XHJcbiAgICAgICAgICAgIHRoaXMuX291dGxpbmVTZXJ2aWNlLnJlbmRlcigpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fcG9zdFByb2Nlc3NpbmcucmVuZGVyKCk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuX291dGxpbmVTZXJ2aWNlLnJlbmRlcigpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm9uQWZ0ZXJSZW5kZXIubmV4dCh7cmVuZGVyZXI6IHRoaXMucmVuZGVyZXIgYXMgV2ViR0xSZW5kZXJlciwgc2NlbmU6IHRoaXMuc2NlbmV9KTtcclxuICAgICAgICB0aGlzLl9vdXRsaW5lU2VydmljZS5uZWVkc1JlbmRlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubmVlZHNSZW5kZXIgPSBmYWxzZTtcclxuICAgICAgLy8gfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYW5pbWF0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMubmVlZHNSZW5kZXIgPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QW5pbWF0aW9uTG9vcCgodGltZXN0YW1wLCBmcmFtZSkgPT4gdGhpcy5fcmVuZGVyKHRpbWVzdGFtcCwgZnJhbWUpKTtcclxuICAgIH0sIDIwMCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wYXVzZUFuaW1hdGlvbigpOiB2b2lkIHtcclxuICAgIHRoaXMubmVlZHNSZW5kZXIgPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QW5pbWF0aW9uTG9vcChudWxsKTtcclxuICAgIH0sIDIwMCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pczNETW9kZShtb2RlOiBWaWV3TW9kZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIG1vZGUgIT09IFZpZXdNb2RlLkZsb29yUGxhbjJEO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0U2NlbmVCYWNrZ3JvdW5kKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICB0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3NMb2FkZWQuc3Vic2NyaWJlKChsb2FkZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgIGlmIChsb2FkZWQgJiYgdGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLnNjZW5lQmFja2dyb3VuZCkge1xyXG4gICAgICAgICAgICB0aGlzLnNjZW5lLmJhY2tncm91bmQgPSBuZXcgVGV4dHVyZUxvYWRlcigpLmxvYWQodGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLnNjZW5lQmFja2dyb3VuZCwgKG1hdGVyaWFsKSA9PiB7XHJcbiAgICAgICAgICAgICAgbWF0ZXJpYWwuY29sb3JTcGFjZSA9IFNSR0JDb2xvclNwYWNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAobG9hZGVkICYmIHRoaXMuX3NldHRpbmdzU2VydmljZS5zZXR0aW5ncy5zY2VuZUJhY2tncm91bmRDb2xvcikge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2NlbmUuYmFja2dyb3VuZCA9IG5ldyBDb2xvcihwYXJzZUludCh0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2NlbmVCYWNrZ3JvdW5kQ29sb3IsIDApKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICApKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTY2VuZUNhbnZhc0ltYWdlKCk6IHN0cmluZyB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbmRlcih0aGlzLnNjZW5lLCB0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYSk7XHJcbiAgICByZXR1cm4gdGhpcy5yZW5kZXJlci5kb21FbGVtZW50LnRvRGF0YVVSTCgnaW1hZ2UvanBlZycpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
393
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnQvYXBwL3BsdWdpbnMvY29yZTNkL3NlcnZpY2Uvc2NlbmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFDTCxLQUFLLEVBQ0wsYUFBYSxFQUViLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxjQUFjLEVBQ2QsYUFBYSxFQUdiLGFBQWEsRUFDZCxNQUFNLE9BQU8sQ0FBQztBQUNmLE9BQU8sRUFBQyxlQUFlLEVBQUUsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sS0FBSyxLQUFLLE1BQU0sbUJBQW1CLENBQUM7QUFVM0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDckYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDbEYsK0RBQStEO0FBQy9ELDZEQUE2RDtBQUM3RCxtRkFBbUY7QUFDbkYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHFEQUFxRCxDQUFDOzs7Ozs7Ozs7Ozs7O0FBUTFGLE1BQU0sT0FBTyxZQUFZO0lBa0N2QixZQUNVLGNBQTZCLEVBQzdCLHFCQUEyQyxFQUMzQyxVQUFxQixFQUNyQixVQUFxQixFQUNyQixVQUFxQixFQUNyQixrQkFBcUMsRUFDckMsZ0JBQWlDLEVBQ2pDLGVBQStCLEVBQy9CLGdCQUE4QyxFQUM5QyxlQUFzQyxFQUN0QyxXQUF1QjtRQVZ2QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBQzNDLGVBQVUsR0FBVixVQUFVLENBQVc7UUFDckIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUFXO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUE4QjtRQUM5QyxvQkFBZSxHQUFmLGVBQWUsQ0FBdUI7UUFDdEMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUF4QjFCLG1CQUFjLEdBQXVELElBQUksT0FBTyxFQUE2QyxDQUFDO1FBQzlILGtCQUFhLEdBQXVELElBQUksT0FBTyxFQUE2QyxDQUFDO1FBQzdILHFCQUFnQixHQUE2QixJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RSwyQ0FBc0MsR0FBWSxJQUFJLENBQUM7UUFLdEQsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixVQUFLLEdBQW1CLEVBQUUsQ0FBQztRQWlCakMsTUFBTSxDQUFDLGNBQWMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQTlDRCxJQUFXLFdBQVcsQ0FBQyxLQUFjO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDckM7UUFDRCxJQUFJLENBQUMsd0JBQXdCLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFtQ0QsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFXLE1BQU0sQ0FBQyxLQUFjO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBeUIsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQztTQUM5QztJQUNILENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVZLElBQUksQ0FBQyxPQUFvQjs7WUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDYixJQUFJLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3ZELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQzFCLENBQUMsQ0FBQyxFQUNGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxHQUFTLEVBQUU7Z0JBQ3ZFLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsRUFBRTtvQkFDckYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUM3RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ2pFLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsYUFBYSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztpQkFDdEY7WUFDSCxDQUFDLENBQUEsQ0FBQyxFQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQzFELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxFQUNGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3ZELDhCQUE4QjtnQkFDOUIscUJBQXFCO2dCQUNyQixXQUFXO2dCQUNYLDRCQUE0QjtnQkFDNUIsSUFBSTtnQkFDSixJQUFJLElBQUksS0FBSyxRQUFRLENBQUMsRUFBRSxFQUFFO29CQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUF5QixDQUFDLENBQUM7aUJBQ2xFO3FCQUFNO29CQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7aUJBQzlCO1lBQ0gsQ0FBQyxDQUFDLEVBQ0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFlLEVBQUUsRUFBRTtnQkFDakUsSUFBSSxNQUFNLEVBQUU7b0JBQ1YsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUN2QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2pGLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztpQkFDOUU7WUFDSCxDQUFDLENBQUM7WUFDRiwrREFBK0Q7WUFDL0Qsa0NBQWtDO1lBQ2xDLHlCQUF5QjtZQUN6QixNQUFNO1lBQ04sS0FBSzthQUNOLENBQUM7WUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBeUIsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0YsOERBQThEO1lBQzlELG9EQUFvRDtZQUNwRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUM7S0FBQTtJQUVNLFNBQVMsQ0FBQyxHQUFhLEVBQUUsY0FBdUIsSUFBSTtRQUN6RCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QzthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7U0FDekI7UUFFRCxJQUFJLFdBQVcsRUFBRTtZQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVNLFlBQVksQ0FBQyxHQUFhLEVBQUUsY0FBdUIsSUFBSSxFQUFFLFVBQW1CLElBQUk7UUFDckYsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxXQUFXLEVBQUU7WUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztTQUN6QjtRQUNELElBQUksT0FBTyxFQUFFO1lBQ1gsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN4RSxJQUFJO2dCQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNsRTtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbEI7U0FDRjtJQUNILENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxHQUFZO1FBQ3pDLE9BQU8sV0FBVyxDQUFDLDJCQUEyQixDQUM1QyxHQUFHLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2hCLE9BQU87YUFDUjtZQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsUUFBUTtvQkFDdEMsUUFBUSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7Z0JBQzlCLENBQUMsQ0FBQyxDQUFDO2FBQ0o7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ2xDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRU0sa0NBQWtDO1FBQ3ZDLE1BQU0sTUFBTSxHQUFXLE1BQU0sQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUM5RCxNQUFNLFdBQVcsR0FBVyxFQUFFLENBQUM7UUFDL0IsTUFBTSxrQkFBa0IsR0FBdUIsSUFBSSxrQkFBa0IsQ0FDbkUsV0FBVyxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFDekIsV0FBVyxHQUFHLE1BQU0sR0FBRyxDQUFDLEVBQ3hCLFdBQVcsR0FBRyxDQUFDLEVBQ2YsV0FBVyxHQUFHLENBQUMsQ0FBQyxFQUNoQixHQUFHLEVBQ0gsR0FBRyxDQUNKLENBQUM7UUFDRixrQkFBa0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLGtCQUFrQixDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQztRQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUNyRCxNQUFNLE1BQU0sR0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxRCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLDRDQUE0QztRQUM1QywyRUFBMkU7UUFDM0Usc0NBQXNDO1FBQ3RDLDBCQUEwQjtRQUMxQiw2QkFBNkI7UUFDN0Isd0JBQXdCO1FBQ3hCLGtEQUFrRDtRQUNsRCx5RUFBeUU7UUFDekUsb0NBQW9DO1FBQ3BDLDBCQUEwQjtRQUMxQiw2QkFBNkI7UUFDN0Isd0JBQXdCO0lBQzFCLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBeUIsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUM5RixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLEVBQ3JELElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQXlCLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFDOUYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUNyRCxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRTtZQUNyRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxRQUF5QixDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQztZQUNsRCxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUVhLGFBQWE7O1lBQ3pCLCtFQUErRTtZQUMvRSwyREFBMkQ7WUFDM0Qsb0RBQW9EO1lBQ3BELElBQUk7WUFDSixNQUFNLGFBQWEsR0FBc0IsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxRSxNQUFNLE9BQU8sR0FBUSxhQUFhLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxLQUFLLFNBQVMsQ0FBQztZQUM3Qyx3RUFBd0U7WUFDeEUsa0JBQWtCO1lBQ2xCLHdCQUF3QjtZQUN4Qiw2QkFBNkI7WUFDN0Isd0JBQXdCO1lBQ3hCLG1CQUFtQjtZQUNuQix1QkFBdUI7WUFDdkIsbUNBQW1DO1lBQ25DLG1DQUFtQztZQUNuQyxxQ0FBcUM7WUFDckMsUUFBUTtZQUNSLDZIQUE2SDtZQUM3SCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksYUFBYSxDQUFDO1lBQ3RDOzs7Y0FHRTtZQUNGOztjQUVFO1lBQ0Y7OztjQUdFO2FBQ0csQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsR0FBRyxjQUFjLENBQUM7WUFDaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQyxDQUFDLCtDQUErQztZQUMxRixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxnQkFBZ0IsQ0FBQztZQUNoRCxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDL0QsQ0FBQztLQUFBO0lBRU8sNEJBQTRCO1FBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1FBQ3BDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1RCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxZQUFZLGlCQUFpQixFQUFFO1lBQzNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO1lBQzFFLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQztZQUM3QyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQzFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBNEIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQzVFO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUs7WUFDaEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQ2xFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVPLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSztRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFO1lBQzdCLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN4RSxJQUFJLElBQUksQ0FBQyx3QkFBd0IsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzNELElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO2FBQzNDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ2hDO1lBQ0QsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNyRTthQUFNO1lBQ0osSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFO2dCQUNuSCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN0QixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFO29CQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDcEM7cUJBQU0sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLEVBQUU7b0JBQ2pELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQzFCO3FCQUFNO29CQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUF5QixFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQztvQkFDeEYsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTt3QkFDMUcsZ0VBQWdFO3dCQUNoRSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO3FCQUMvQjt5QkFBTTt3QkFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUM5QixpQ0FBaUM7cUJBQ2xDO2lCQUNGO2dCQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUF5QixFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQztnQkFDdkYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2dCQUN6QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQzthQUMxQjtTQUNGO0lBQ0gsQ0FBQztJQUVPLFFBQVE7UUFDZCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdkYsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVPLFNBQVMsQ0FBQyxJQUFjO1FBQzlCLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxXQUFXLENBQUM7SUFDdkMsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDYixJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQWUsRUFBRSxFQUFFO1lBQy9ELElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFO2dCQUM1RCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFO29CQUM1RyxRQUFRLENBQUMsVUFBVSxHQUFHLGNBQWMsQ0FBQztnQkFDdkMsQ0FBQyxDQUFDLENBQUM7YUFDSjtpQkFBTSxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLG9CQUFvQixFQUFFO2dCQUN4RSxJQUFJO29CQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3JHO2dCQUFDLE9BQU8sQ0FBQyxFQUFFO2lCQUNYO2FBQ0Y7UUFDSCxDQUFDLENBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUQsQ0FBQzs7MEdBeFlVLFlBQVk7OEdBQVosWUFBWSxjQUZYLE1BQU07NEZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29sb3IsXHJcbiAgTm9Ub25lTWFwcGluZyxcclxuICBPYmplY3QzRCxcclxuICBPcnRob2dyYXBoaWNDYW1lcmEsXHJcbiAgUENGU29mdFNoYWRvd01hcCxcclxuICBQZXJzcGVjdGl2ZUNhbWVyYSxcclxuICBTY2VuZSxcclxuICBTUkdCQ29sb3JTcGFjZSxcclxuICBUZXh0dXJlTG9hZGVyLFxyXG4gIFZlY3RvcjIsXHJcbiAgVmVjdG9yMyxcclxuICBXZWJHTFJlbmRlcmVyXHJcbn0gZnJvbSAndGhyZWUnO1xyXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgVFdFRU4gZnJvbSAnQHR3ZWVuanMvdHdlZW4uanMnO1xyXG5pbXBvcnQge0NhbWVyYVNlcnZpY2V9IGZyb20gJy4vY2FtZXJhLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2UvY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtYclNlcnZpY2V9IGZyb20gJy4veHIuc2VydmljZSc7XHJcbmltcG9ydCB7VnJTZXJ2aWNlfSBmcm9tICcuL3ZyLnNlcnZpY2UnO1xyXG5pbXBvcnQge0FyU2VydmljZX0gZnJvbSAnLi9hci5zZXJ2aWNlJztcclxuaW1wb3J0IHtNZXNzYWdlQnVzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlL21lc3NhZ2UtYnVzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1ZpZXdNb2RlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlL3ZpZXctbW9kZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtPdXRsaW5lU2VydmljZX0gZnJvbSAnLi9vdXRsaW5lLnNlcnZpY2UnO1xyXG5pbXBvcnQge0hvbWVkZWNvcmF0b3JTZXR0aW5nc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZS9ob21lZGVjb3JhdG9yLXNldHRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1ZpZXdNb2RlfSBmcm9tICcuLi8uLi8uLi9jb3JlL2VudW0vdmlldy1tb2RlLmVudW0nO1xyXG5pbXBvcnQge01lc3NhZ2VUeXBlfSBmcm9tICcuLi8uLi8uLi9jb3JlL2VudW0vbWVzc2FnZS10eXBlLmVudW0nO1xyXG5pbXBvcnQge0ZpbGVVdGlsc30gZnJvbSAnLi4vLi4vLi4vY29yZS91dGlscy9maWxlLnV0aWxzJztcclxuaW1wb3J0IHtVdGlsc30gZnJvbSAnLi4vY29yZS91dGlscyc7XHJcbmltcG9ydCB7U2NlbmUzRFV0aWx9IGZyb20gJy4uLy4uL3RocmVlZHNlbGVjdG9yL3RocmVlZHNlbGVjdG9yL3V0aWxzL3NjZW5lLTNkLnV0aWxzJztcclxuaW1wb3J0IHtSZWxhdGl2ZVBvc2l0aW9uVXRpbHN9IGZyb20gJy4uLy4uLy4uL2NvcmUvdXRpbHMvcmVsYXRpdmUtcG9zaXRpb24udXRpbHMnO1xyXG4vLyBpbXBvcnQgV2ViR1BVIGZyb20gJ3RocmVlL2V4YW1wbGVzL2pzbS9jYXBhYmlsaXRpZXMvV2ViR1BVJztcclxuLy8gaW1wb3J0IFdlYkdMIGZyb20gJ3RocmVlL2V4YW1wbGVzL2pzbS9jYXBhYmlsaXRpZXMvV2ViR0wnO1xyXG4vLyBpbXBvcnQgV2ViR1BVUmVuZGVyZXIgZnJvbSAndGhyZWUvZXhhbXBsZXMvanNtL3JlbmRlcmVycy93ZWJncHUvV2ViR1BVUmVuZGVyZXInO1xyXG5pbXBvcnQge1dlYkdMUGF0aFRyYWNlcn0gZnJvbSAndGhyZWUtZ3B1LXBhdGh0cmFjZXInO1xyXG5pbXBvcnQge1BhcmFsbGVsTWVzaEJWSFdvcmtlcn0gZnJvbSAndGhyZWUtbWVzaC1idmgvc3JjL3dvcmtlcnMvUGFyYWxsZWxNZXNoQlZIV29ya2VyLmpzJztcclxuaW1wb3J0IHtQb3N0UHJvY2Vzc2luZ1NlcnZpY2V9IGZyb20gJy4vcG9zdC1wcm9jZXNzaW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQge1NzclNlcnZpY2V9IGZyb20gJy4vc3NyLnNlcnZpY2UnO1xyXG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tICcuLi8uLi8uLi9jb3JlL3V0aWxzL29iamVjdC51dGlscyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTY2VuZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwdWJsaWMgc2V0IG5lZWRzUmVuZGVyKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9uZWVkc1JlbmRlciA9IHZhbHVlO1xyXG4gICAgaWYgKHRoaXMucGF0aFRyYWNlcikge1xyXG4gICAgICB0aGlzLnBhdGhUcmFjZXIudXBkYXRlQ2FtZXJhKCk7XHJcbiAgICAgIHRoaXMucGF0aFRyYWNlci51cGRhdGVMaWdodHMoKTtcclxuICAgICAgdGhpcy5wYXRoVHJhY2VyLnVwZGF0ZU1hdGVyaWFscygpO1xyXG4gICAgICB0aGlzLnBhdGhUcmFjZXIudXBkYXRlRW52aXJvbm1lbnQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuX251bWJlck9mU2FtcGxlc1JlbmRlcmVkID0gMDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbmVlZHNSZW5kZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbmVlZHNSZW5kZXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2NlbmU6IFNjZW5lO1xyXG4gIHB1YmxpYyByZW5kZXJlcjogV2ViR0xSZW5kZXJlci8qIHwgV2ViR1BVUmVuZGVyZXIqLztcclxuICBwdWJsaWMgcGF0aFRyYWNlcjogV2ViR0xQYXRoVHJhY2VyO1xyXG5cclxuICBwdWJsaWMgb25CZWZvcmVSZW5kZXI6IFN1YmplY3Q8eyByZW5kZXJlcjogV2ViR0xSZW5kZXJlciwgc2NlbmU6IFNjZW5lIH0+ID0gbmV3IFN1YmplY3Q8eyByZW5kZXJlcjogV2ViR0xSZW5kZXJlciwgc2NlbmU6IFNjZW5lIH0+KCk7XHJcbiAgcHVibGljIG9uQWZ0ZXJSZW5kZXI6IFN1YmplY3Q8eyByZW5kZXJlcjogV2ViR0xSZW5kZXJlciwgc2NlbmU6IFNjZW5lIH0+ID0gbmV3IFN1YmplY3Q8eyByZW5kZXJlcjogV2ViR0xSZW5kZXJlciwgc2NlbmU6IFNjZW5lIH0+KCk7XHJcbiAgcHVibGljIHNjZW5lSW5pdGlhbGl6ZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG4gIHB1YmxpYyByZW5kZXJpbmdUaHJvdWdoUG9zdFByb2Nlc3NpbmdQaXBlbGluZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIHdlYkdMMkF2YWlsYWJsZTogYm9vbGVhbjtcclxuICBwdWJsaWMgZG9tRWxlbWVudDogSFRNTEVsZW1lbnQ7XHJcblxyXG4gIHByaXZhdGUgX25lZWRzUmVuZGVyOiBib29sZWFuO1xyXG4gIHByaXZhdGUgX2FyTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgcHJpdmF0ZSBfbWF4UmVuZGVyU2FtcGxlczogbnVtYmVyO1xyXG4gIHByaXZhdGUgX251bWJlck9mU2FtcGxlc1JlbmRlcmVkOiBudW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfY2FtZXJhU2VydmljZTogQ2FtZXJhU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NvbmZpZ3VyYXRpb25TZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3hyU2VydmljZTogWHJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdnJTZXJ2aWNlOiBWclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9hclNlcnZpY2U6IEFyU2VydmljZSxcclxuICAgIHByaXZhdGUgX21lc3NhZ2VCdXNTZXJ2aWNlOiBNZXNzYWdlQnVzU2VydmljZSxcclxuICAgIHByaXZhdGUgX3ZpZXdNb2RlU2VydmljZTogVmlld01vZGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfb3V0bGluZVNlcnZpY2U6IE91dGxpbmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2V0dGluZ3NTZXJ2aWNlOiBIb21lZGVjb3JhdG9yU2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcG9zdFByb2Nlc3Npbmc6IFBvc3RQcm9jZXNzaW5nU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NzclNlcnZpY2U6IFNzclNlcnZpY2VcclxuICApIHtcclxuICAgIHdpbmRvdy5vbmJlZm9yZXVubG9hZCA9ICgpID0+IHRoaXMubmdPbkRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kb21FbGVtZW50ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTY2VuZSgpOiBTY2VuZSB7XHJcbiAgICByZXR1cm4gdGhpcy5hck1vZGUgPyB0aGlzLl9hclNlcnZpY2Uuc2NlbmUgOiB0aGlzLnNjZW5lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBhck1vZGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2FyTW9kZSA9IHZhbHVlO1xyXG4gICAgaWYgKHRoaXMuX2FyTW9kZSkge1xyXG4gICAgICB0aGlzLl9hclNlcnZpY2UuaW5pdCh0aGlzLnJlbmRlcmVyIGFzIFdlYkdMUmVuZGVyZXIpO1xyXG4gICAgICB0aGlzLl92aWV3TW9kZVNlcnZpY2Uudmlld01vZGUgPSBWaWV3TW9kZS5BUjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYXJNb2RlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FyTW9kZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBpbml0KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmRvbUVsZW1lbnQgPSBlbGVtZW50O1xyXG4gICAgdGhpcy5faW5pdFNjZW5lKCk7XHJcbiAgICB0aGlzLl9pbml0UmVuZGVyZXIoKTtcclxuICAgIHRoaXMuX2luaXRDYW1lcmEoKTtcclxuICAgIHRoaXMuX2luaXRPdXRsaW5lKCk7XHJcbiAgICB0aGlzLl9pbml0UG9zdFByb2Nlc3NpbmcoKTtcclxuICAgIHRoaXMuX2FuaW1hdGUoKTtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy5fY2FtZXJhU2VydmljZS5jYW1lcmFNb3ZlbWVudENoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLm5lZWRzUmVuZGVyID0gdHJ1ZTtcclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuX21lc3NhZ2VCdXNTZXJ2aWNlLnN1YnNjcmliZShNZXNzYWdlVHlwZS5UYWtlU2NyZWVuc2hvdCwgYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLl92aWV3TW9kZVNlcnZpY2UuaXMzZFZpZXdBY3RpdmUoKSB8fCB0aGlzLl92aWV3TW9kZVNlcnZpY2UuaXNUb3BWaWV3QWN0aXZlKCkpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVuZGVyKHRoaXMuc2NlbmUsIHRoaXMuX2NhbWVyYVNlcnZpY2UuY2FtZXJhKTtcclxuICAgICAgICAgIGNvbnN0IGRhdGFVcmwgPSB0aGlzLnJlbmRlcmVyLmRvbUVsZW1lbnQudG9EYXRhVVJMKCdpbWFnZS9qcGVnJyk7XHJcbiAgICAgICAgICBGaWxlVXRpbHMuRG93bmxvYWRGcm9tRGF0YVVyaShkYXRhVXJsLCBgTXlSb29tcGxhbiR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfS5qcGVnYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5fYXJTZXJ2aWNlLnNob3VsZEFkZE9iamVjdFRvU2NlbmUuc3Vic2NyaWJlKChvYmplY3QpID0+IHtcclxuICAgICAgICB0aGlzLmFyTW9kZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuYWRkT2JqZWN0KG9iamVjdCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLl92aWV3TW9kZVNlcnZpY2Uudmlld01vZGVDaGFuZ2VkLnN1YnNjcmliZSgobW9kZSkgPT4ge1xyXG4gICAgICAgIC8vIGlmICh0aGlzLl9pczNETW9kZShtb2RlKSkge1xyXG4gICAgICAgIC8vICAgdGhpcy5fYW5pbWF0ZSgpO1xyXG4gICAgICAgIC8vIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gICB0aGlzLl9wYXVzZUFuaW1hdGlvbigpO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICBpZiAobW9kZSA9PT0gVmlld01vZGUuVlIpIHtcclxuICAgICAgICAgIHRoaXMuX3ZyU2VydmljZS5pbml0KHRoaXMuc2NlbmUsIHRoaXMucmVuZGVyZXIgYXMgV2ViR0xSZW5kZXJlcik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX3ZyU2VydmljZS5lbmRTZXNzaW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzTG9hZGVkLnN1YnNjcmliZSgobG9hZGVkOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKGxvYWRlZCkge1xyXG4gICAgICAgICAgdGhpcy5faW5pdFBhdGhUcmFjZXIoKTtcclxuICAgICAgICAgIHRoaXMuX21heFJlbmRlclNhbXBsZXMgPSB0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy5tYXhSZW5kZXJTYW1wbGVzO1xyXG4gICAgICAgICAgdGhpcy5fc3NyU2VydmljZS5lbmFibGVkID0gdGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLm9wdGlvbnMuc3NyRW5hYmxlZDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIC8vIHRoaXMuX3hyU2VydmljZS5zZXNzaW9uU3RhcnRlZC5zdWJzY3JpYmUoKG1vZGU6IFhyTW9kZSkgPT4ge1xyXG4gICAgICAvLyAgIGlmIChtb2RlID09PSBYck1vZGUuQXJNb2RlKSB7XHJcbiAgICAgIC8vICAgICB0aGlzLl9hbmltYXRlQXIoKTtcclxuICAgICAgLy8gICB9XHJcbiAgICAgIC8vIH0pXHJcbiAgICApO1xyXG4gICAgdGhpcy5feHJTZXJ2aWNlLmluaXQodGhpcy5yZW5kZXJlciBhcyBXZWJHTFJlbmRlcmVyLCB0aGlzLnNjZW5lLCB0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYSk7XHJcbiAgICAvLyBjb25zdCBoZHJpUGF0aDogc3RyaW5nID0gJy9hc3NldHMvaGRyaS9UU1N0dWRpbzNQb2ludC5oZHInO1xyXG4gICAgLy8gYXdhaXQgT2JqZWN0VXRpbHMuTG9hZEhEUkkoaGRyaVBhdGgsIHRoaXMuc2NlbmUpO1xyXG4gICAgdGhpcy5zY2VuZUluaXRpYWxpemVkLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkT2JqZWN0KG9iajogT2JqZWN0M0QsIGZvcmNlUmVuZGVyOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2FyTW9kZSkge1xyXG4gICAgICB0aGlzLl9hclNlcnZpY2UuYWRkT2JqZWN0VG9BUlNjZW5lKG9iaik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNjZW5lLmFkZChvYmopO1xyXG4gICAgICB0aGlzLnVwZGF0ZVBhdGhUcmFjZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZm9yY2VSZW5kZXIpIHtcclxuICAgICAgdGhpcy5uZWVkc1JlbmRlciA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVtb3ZlT2JqZWN0KG9iajogT2JqZWN0M0QsIGZvcmNlUmVuZGVyOiBib29sZWFuID0gdHJ1ZSwgY2xlYW5VcDogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIHRoaXMuc2NlbmUucmVtb3ZlKG9iaik7XHJcbiAgICBpZiAoZm9yY2VSZW5kZXIpIHtcclxuICAgICAgdGhpcy5uZWVkc1JlbmRlciA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoY2xlYW5VcCkge1xyXG4gICAgICBVdGlscy5EaXNwb3NlT2JqZWN0KG9iaik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlUGF0aFRyYWNlcigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy5wYXRoVHJhY2VyICYmIHRoaXMucGF0aFRyYWNlcikge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHRoaXMucGF0aFRyYWNlci5zZXRTY2VuZSh0aGlzLnNjZW5lLCB0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYSk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcG9zaXRpb25JblNjZW5lVG9TY3JlZW4ocG9zOiBWZWN0b3IzKTogVmVjdG9yMiB7XHJcbiAgICByZXR1cm4gU2NlbmUzRFV0aWwuQ29udmVydDNEUG9pbnRUb1NjcmVlblBvaW50KFxyXG4gICAgICBwb3MsIHRoaXMuX2NhbWVyYVNlcnZpY2UuY2FtZXJhLCB0aGlzLmRvbUVsZW1lbnQuY2xpZW50V2lkdGgsIHRoaXMuZG9tRWxlbWVudC5jbGllbnRIZWlnaHQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbmRlcmVyUHJvcHNDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNjZW5lLnRyYXZlcnNlKChub2RlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCFub2RlLmlzTWVzaCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShub2RlLm1hdGVyaWFsKSkge1xyXG4gICAgICAgIG5vZGUubWF0ZXJpYWwuZm9yRWFjaChmdW5jdGlvbiAobWF0ZXJpYWwpIHtcclxuICAgICAgICAgIG1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBub2RlLm1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLm5lZWRzUmVuZGVyID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjcmVhdGVSZW5kZXJXaXRoT3J0aG9ncmFwaGljQ2FtZXJhKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBhc3BlY3Q6IG51bWJlciA9IHdpbmRvdy5pbm5lcldpZHRoIC8gd2luZG93LmlubmVySGVpZ2h0O1xyXG4gICAgY29uc3QgZnJ1c3R1bVNpemU6IG51bWJlciA9IDEwO1xyXG4gICAgY29uc3Qgb3J0aG9ncmFwaGljQ2FtZXJhOiBPcnRob2dyYXBoaWNDYW1lcmEgPSBuZXcgT3J0aG9ncmFwaGljQ2FtZXJhKFxyXG4gICAgICBmcnVzdHVtU2l6ZSAqIGFzcGVjdCAvIC0yLFxyXG4gICAgICBmcnVzdHVtU2l6ZSAqIGFzcGVjdCAvIDIsXHJcbiAgICAgIGZydXN0dW1TaXplIC8gMixcclxuICAgICAgZnJ1c3R1bVNpemUgLyAtMixcclxuICAgICAgMC4xLFxyXG4gICAgICAxMDBcclxuICAgICk7XHJcbiAgICBvcnRob2dyYXBoaWNDYW1lcmEucG9zaXRpb24uc2V0KDAsIDMsIC0yKTtcclxuICAgIG9ydGhvZ3JhcGhpY0NhbWVyYS5sb29rQXQoMCwgMCwgLTIpO1xyXG4gICAgb3J0aG9ncmFwaGljQ2FtZXJhLm5hbWUgPSAnb3J0aG9ncmFwaGljY2FtZXJhJztcclxuICAgIHRoaXMuc2NlbmUuYWRkKG9ydGhvZ3JhcGhpY0NhbWVyYSk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbmRlcih0aGlzLnNjZW5lLCBvcnRob2dyYXBoaWNDYW1lcmEpO1xyXG4gICAgY29uc3QgcmVuZGVyOiBzdHJpbmcgPSB0aGlzLnJlbmRlcmVyLmRvbUVsZW1lbnQudG9EYXRhVVJMKCdpbWFnZS9qcGVnJyk7XHJcbiAgICB0aGlzLnNjZW5lLmdldE9iamVjdEJ5TmFtZSgnb3J0aG9ncmFwaGljY2FtZXJhJykucmVtb3ZlKCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbmRlcih0aGlzLnNjZW5lLCB0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYSk7XHJcbiAgICByZXR1cm4gcmVuZGVyO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaW5pdFNjZW5lKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zY2VuZSA9IG5ldyBTY2VuZSgpO1xyXG4gICAgdGhpcy5fc2V0U2NlbmVCYWNrZ3JvdW5kKCk7XHJcbiAgICAvLyBjb25zdCBib3gxZ2VvID0gbmV3IEJveEdlb21ldHJ5KDEsIDEsIDEpO1xyXG4gICAgLy8gY29uc3QgYm94MSA9IG5ldyBNZXNoKGJveDFnZW8sIG5ldyBNZXNoUGhvbmdNYXRlcmlhbCh7Y29sb3I6ICdncmVlbid9KSk7XHJcbiAgICAvLyBib3gxLnBvc2l0aW9uLnNldCgtMC41LCAwLjcsIC0wLjUpO1xyXG4gICAgLy8gYm94MS5jYXN0U2hhZG93ID0gdHJ1ZTtcclxuICAgIC8vIGJveDEucmVjZWl2ZVNoYWRvdyA9IHRydWU7XHJcbiAgICAvLyB0aGlzLnNjZW5lLmFkZChib3gxKTtcclxuICAgIC8vIGNvbnN0IGJveDJnZW8gPSBuZXcgQm94R2VvbWV0cnkoMC42LCAwLjYsIDAuNik7XHJcbiAgICAvLyBjb25zdCBib3gyID0gbmV3IE1lc2goYm94MmdlbywgbmV3IE1lc2hQaG9uZ01hdGVyaWFsKHtjb2xvcjogJ3JlZCd9KSk7XHJcbiAgICAvLyBib3gyLnBvc2l0aW9uLnNldCgwLjUsIDEuNSwgMC41KTtcclxuICAgIC8vIGJveDIuY2FzdFNoYWRvdyA9IHRydWU7XHJcbiAgICAvLyBib3gyLnJlY2VpdmVTaGFkb3cgPSB0cnVlO1xyXG4gICAgLy8gdGhpcy5zY2VuZS5hZGQoYm94Mik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pbml0Q2FtZXJhKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY2FtZXJhU2VydmljZS5pbml0KHRoaXMuZG9tRWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pbml0T3V0bGluZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX291dGxpbmVTZXJ2aWNlLmluaXQodGhpcy5yZW5kZXJlciBhcyBXZWJHTFJlbmRlcmVyLCB0aGlzLnNjZW5lLCB0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYSxcclxuICAgICAgdGhpcy5kb21FbGVtZW50LmNsaWVudFdpZHRoICogd2luZG93LmRldmljZVBpeGVsUmF0aW8sXHJcbiAgICAgIHRoaXMuZG9tRWxlbWVudC5jbGllbnRIZWlnaHQgKiB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pbml0UG9zdFByb2Nlc3NpbmcoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wb3N0UHJvY2Vzc2luZy5pbml0KHRoaXMucmVuZGVyZXIgYXMgV2ViR0xSZW5kZXJlciwgdGhpcy5zY2VuZSwgdGhpcy5fY2FtZXJhU2VydmljZS5jYW1lcmEsXHJcbiAgICAgIHRoaXMuZG9tRWxlbWVudC5jbGllbnRXaWR0aCAqIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvLFxyXG4gICAgICB0aGlzLmRvbUVsZW1lbnQuY2xpZW50SGVpZ2h0ICogd2luZG93LmRldmljZVBpeGVsUmF0aW8pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaW5pdFBhdGhUcmFjZXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLm9wdGlvbnMucGF0aFRyYWNlcikge1xyXG4gICAgICB0aGlzLnBhdGhUcmFjZXIgPSBuZXcgV2ViR0xQYXRoVHJhY2VyKHRoaXMucmVuZGVyZXIgYXMgV2ViR0xSZW5kZXJlcik7XHJcbiAgICAgIHRoaXMucGF0aFRyYWNlci5zZXRCVkhXb3JrZXIobmV3IFBhcmFsbGVsTWVzaEJWSFdvcmtlcigpKTtcclxuICAgICAgdGhpcy5wYXRoVHJhY2VyLmZpbHRlckdsb3NzeUZhY3RvciA9IDE7XHJcbiAgICAgIHRoaXMucGF0aFRyYWNlci50aWxlcy5zZXQoMywgMyk7XHJcbiAgICAgIHRoaXMucGF0aFRyYWNlci5tdWx0aXBsZUltcG9ydGFuY2VTYW1wbGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMucGF0aFRyYWNlci50cmFuc21pc3NpdmVCb3VuY2VzID0gMTA7XHJcbiAgICAgIHRoaXMucGF0aFRyYWNlci5yZW5kZXJTY2FsZSA9IDE7XHJcbiAgICAgIHRoaXMucGF0aFRyYWNlci5zZXRTY2VuZSh0aGlzLnNjZW5lLCB0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYSk7XHJcbiAgICAgIHRoaXMucGF0aFRyYWNlci5lbmFibGVQYXRoVHJhY2luZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9pbml0UmVuZGVyZXIoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBpZiAoV2ViR1BVLmlzQXZhaWxhYmxlKCkgPT09IGZhbHNlICYmIFdlYkdMLmlzV2ViR0wyQXZhaWxhYmxlKCkgPT09IGZhbHNlKSB7XHJcbiAgICAvLyAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoIFdlYkdQVS5nZXRFcnJvck1lc3NhZ2UoKSApO1xyXG4gICAgLy8gICB0aHJvdyBuZXcgRXJyb3IoJ05vIFdlYkdQVSBvciBXZWJHTDIgc3VwcG9ydCcpO1xyXG4gICAgLy8gfVxyXG4gICAgY29uc3QgY2FudmFzRWxlbWVudDogSFRNTENhbnZhc0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcclxuICAgIGNvbnN0IGNvbnRleHQ6IGFueSA9IGNhbnZhc0VsZW1lbnQuZ2V0Q29udGV4dCgnd2ViZ2wyJyk7XHJcbiAgICB0aGlzLndlYkdMMkF2YWlsYWJsZSA9IGNvbnRleHQgIT09IHVuZGVmaW5lZDtcclxuICAgIC8vIHRoaXMucmVuZGVyZXIgPSBuZXcgV2ViR1BVUmVuZGVyZXIoeyBhbHBoYTogdHJ1ZSwgYW50aWFsaWFzOiB0cnVlIH0pO1xyXG4gICAgLy8gdGhpcy5yZW5kZXJlciA9XHJcbiAgICAvLyAgIG5ldyBXZWJHTFJlbmRlcmVyKHtcclxuICAgIC8vICAgICBjYW52YXM6IGNhbnZhc0VsZW1lbnQsXHJcbiAgICAvLyAgICAgY29udGV4dDogY29udGV4dCxcclxuICAgIC8vICAgICBhbHBoYTogdHJ1ZSxcclxuICAgIC8vICAgICBhbnRpYWxpYXM6IHRydWUsXHJcbiAgICAvLyAgICAgcHJlc2VydmVEcmF3aW5nQnVmZmVyOiB0cnVlLFxyXG4gICAgLy8gICAgIHByZW11bHRpcGxpZWRBbHBoYTogZmFsc2UvKixcclxuICAgIC8vICAgICBsb2dhcml0aG1pY0RlcHRoQnVmZmVyOiB0cnVlKi9cclxuICAgIC8vICAgfSk7XHJcbiAgICAvLyB0aGlzLnJlbmRlcmVyID0gbmV3IFdlYkdMUmVuZGVyZXIoe2FscGhhOiB0cnVlLCBhbnRpYWxpYXM6IGZhbHNlLCBwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6IHRydWUsIHByZW11bHRpcGxpZWRBbHBoYTogdHJ1ZX0pO1xyXG4gICAgdGhpcy5yZW5kZXJlciA9IG5ldyBXZWJHTFJlbmRlcmVyKHtcclxuLypcclxuICAgICAgcHJlY2lzaW9uOiAnaGlnaHAnLFxyXG4gICAgICBwb3dlclByZWZlcmVuY2U6ICdoaWdoLXBlcmZvcm1hbmNlJyxcclxuKi9cclxuLypcclxuICAgICAgYW50aWFsaWFzOiB0cnVlLFxyXG4qL1xyXG4vKlxyXG4gICAgICBzdGVuY2lsOiBmYWxzZSxcclxuICAgICAgZGVwdGg6IGZhbHNlXHJcbiovXHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVuZGVyZXIub3V0cHV0Q29sb3JTcGFjZSA9IFNSR0JDb2xvclNwYWNlO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hdXRvQ2xlYXIgPSB0cnVlO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRQaXhlbFJhdGlvKHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvKTtcclxuICAgIHRoaXMucmVuZGVyZXIudG9uZU1hcHBpbmcgPSBOb1RvbmVNYXBwaW5nOyAvLyBBQ0VTRmlsbWljVG9uZU1hcHBpbmc7IC8vIExpbmVhclRvbmVNYXBwaW5nO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zaGFkb3dNYXAuZW5hYmxlZCA9IHRydWU7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNoYWRvd01hcC50eXBlID0gUENGU29mdFNoYWRvd01hcDtcclxuICAgIHRoaXMuZG9tRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnJlbmRlcmVyLmRvbUVsZW1lbnQpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5kb21FbGVtZW50LnNldEF0dHJpYnV0ZSgnaWQnLCAndGhyZWVkX2NhbnZhcycpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVzaXplUmVuZGVyZXJUb0Rpc3BsYXlTaXplKCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTaXplKHRoaXMuZG9tRWxlbWVudC5jbGllbnRXaWR0aCwgdGhpcy5kb21FbGVtZW50LmNsaWVudEhlaWdodCwgdHJ1ZSk7XHJcbiAgICB0aGlzLl9vdXRsaW5lU2VydmljZS5zZXRTaXplKHRoaXMuZG9tRWxlbWVudC5jbGllbnRXaWR0aCwgdGhpcy5kb21FbGVtZW50LmNsaWVudEhlaWdodCk7XHJcbiAgICB0aGlzLl9wb3N0UHJvY2Vzc2luZy5zZXRTaXplKHRoaXMuZG9tRWxlbWVudC5jbGllbnRXaWR0aCwgdGhpcy5kb21FbGVtZW50LmNsaWVudEhlaWdodCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVXaW5kb3dTaXplKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVzaXplUmVuZGVyZXJUb0Rpc3BsYXlTaXplKCk7XHJcbiAgICBSZWxhdGl2ZVBvc2l0aW9uVXRpbHMuU2V0QXBwbGljYXRpb25PZmZzZXQodGhpcy5kb21FbGVtZW50KTtcclxuICAgIGlmICh0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYSBpbnN0YW5jZW9mIFBlcnNwZWN0aXZlQ2FtZXJhKSB7XHJcbiAgICAgIGNvbnN0IGFzcGVjdCA9IHRoaXMuZG9tRWxlbWVudC5jbGllbnRXaWR0aCAvIHRoaXMuZG9tRWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgIHRoaXMuX2NhbWVyYVNlcnZpY2UucmVhbEFzcGVjdFJhdGlvID0gYXNwZWN0O1xyXG4gICAgICB0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYS5hc3BlY3QgPSBhc3BlY3Q7XHJcbiAgICAgICh0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYSBhcyBQZXJzcGVjdGl2ZUNhbWVyYSkudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5uZWVkc1JlbmRlciA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jaGVja0NhbnZhc1Jlc2l6ZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRvbUVsZW1lbnQuY2xpZW50V2lkdGggIT09IHRoaXMucmVuZGVyZXIuZG9tRWxlbWVudC53aWR0aCB8fFxyXG4gICAgICB0aGlzLmRvbUVsZW1lbnQuY2xpZW50SGVpZ2h0ICE9PSB0aGlzLnJlbmRlcmVyLmRvbUVsZW1lbnQuaGVpZ2h0KSB7XHJcbiAgICAgIHRoaXMuX3VwZGF0ZVdpbmRvd1NpemUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlbmRlcih0LCBmcmFtZSkge1xyXG4gICAgaWYgKCF0aGlzLnJlbmRlcmVyLnhyLmVuYWJsZWQpIHtcclxuICAgICAgVFdFRU4udXBkYXRlKCk7XHJcbiAgICAgIHRoaXMuX2NoZWNrQ2FudmFzUmVzaXplKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLm9wdGlvbnMucGF0aFRyYWNlciAmJiB0aGlzLnBhdGhUcmFjZXIpIHtcclxuICAgICAgaWYgKHRoaXMuX251bWJlck9mU2FtcGxlc1JlbmRlcmVkID49IHRoaXMuX21heFJlbmRlclNhbXBsZXMpIHtcclxuICAgICAgICB0aGlzLnBhdGhUcmFjZXIuZW5hYmxlUGF0aFRyYWNpbmcgPSBmYWxzZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnBhdGhUcmFjZXIuZW5hYmxlUGF0aFRyYWNpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuY2xlYXIoKTtcclxuICAgICAgICB0aGlzLnBhdGhUcmFjZXIucmVuZGVyU2FtcGxlKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fbnVtYmVyT2ZTYW1wbGVzUmVuZGVyZWQgPSBNYXRoLmZsb29yKHRoaXMucGF0aFRyYWNlci5zYW1wbGVzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICBpZiAodGhpcy5fbmVlZHNSZW5kZXIgfHwgdGhpcy5hck1vZGUgfHwgdGhpcy5fdmlld01vZGVTZXJ2aWNlLmlzVlJWaWV3QWN0aXZlKCkgfHwgdGhpcy5fb3V0bGluZVNlcnZpY2UubmVlZHNSZW5kZXIpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmNsZWFyKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuX2FyTW9kZSAmJiBmcmFtZSkge1xyXG4gICAgICAgICAgdGhpcy5fYXJTZXJ2aWNlLmhhbmRsZUZyYW1lKGZyYW1lKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3ZpZXdNb2RlU2VydmljZS5pc1ZSVmlld0FjdGl2ZSgpKSB7XHJcbiAgICAgICAgICB0aGlzLl92clNlcnZpY2UucmVuZGVyKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMub25CZWZvcmVSZW5kZXIubmV4dCh7cmVuZGVyZXI6IHRoaXMucmVuZGVyZXIgYXMgV2ViR0xSZW5kZXJlciwgc2NlbmU6IHRoaXMuc2NlbmV9KTtcclxuICAgICAgICAgIGlmICghdGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLm9wdGlvbnMuYWFFbmFibGVkICYmICF0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy5hb0VuYWJsZWQpIHtcclxuICAgICAgICAgICAgLy8gdGhpcy5yZW5kZXJlci5yZW5kZXIodGhpcy5zY2VuZSwgdGhpcy5fY2FtZXJhU2VydmljZS5jYW1lcmEpO1xyXG4gICAgICAgICAgICB0aGlzLl9vdXRsaW5lU2VydmljZS5yZW5kZXIoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3Bvc3RQcm9jZXNzaW5nLnJlbmRlcigpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLl9vdXRsaW5lU2VydmljZS5yZW5kZXIoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5vbkFmdGVyUmVuZGVyLm5leHQoe3JlbmRlcmVyOiB0aGlzLnJlbmRlcmVyIGFzIFdlYkdMUmVuZGVyZXIsIHNjZW5lOiB0aGlzLnNjZW5lfSk7XHJcbiAgICAgICAgdGhpcy5fb3V0bGluZVNlcnZpY2UubmVlZHNSZW5kZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5lZWRzUmVuZGVyID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FuaW1hdGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLm5lZWRzUmVuZGVyID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEFuaW1hdGlvbkxvb3AoKHRpbWVzdGFtcCwgZnJhbWUpID0+IHRoaXMuX3JlbmRlcih0aW1lc3RhbXAsIGZyYW1lKSk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcGF1c2VBbmltYXRpb24oKTogdm9pZCB7XHJcbiAgICB0aGlzLm5lZWRzUmVuZGVyID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEFuaW1hdGlvbkxvb3AobnVsbCk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaXMzRE1vZGUobW9kZTogVmlld01vZGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBtb2RlICE9PSBWaWV3TW9kZS5GbG9vclBsYW4yRDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldFNjZW5lQmFja2dyb3VuZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzTG9hZGVkLnN1YnNjcmliZSgobG9hZGVkOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICBpZiAobG9hZGVkICYmIHRoaXMuX3NldHRpbmdzU2VydmljZS5zZXR0aW5ncy5zY2VuZUJhY2tncm91bmQpIHtcclxuICAgICAgICAgICAgdGhpcy5zY2VuZS5iYWNrZ3JvdW5kID0gbmV3IFRleHR1cmVMb2FkZXIoKS5sb2FkKHRoaXMuX3NldHRpbmdzU2VydmljZS5zZXR0aW5ncy5zY2VuZUJhY2tncm91bmQsIChtYXRlcmlhbCkgPT4ge1xyXG4gICAgICAgICAgICAgIG1hdGVyaWFsLmNvbG9yU3BhY2UgPSBTUkdCQ29sb3JTcGFjZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGxvYWRlZCAmJiB0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2NlbmVCYWNrZ3JvdW5kQ29sb3IpIHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICB0aGlzLnNjZW5lLmJhY2tncm91bmQgPSBuZXcgQ29sb3IocGFyc2VJbnQodGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLnNjZW5lQmFja2dyb3VuZENvbG9yLCAwKSk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U2NlbmVDYW52YXNJbWFnZSgpOiBzdHJpbmcge1xyXG4gICAgdGhpcy5yZW5kZXJlci5yZW5kZXIodGhpcy5zY2VuZSwgdGhpcy5fY2FtZXJhU2VydmljZS5jYW1lcmEpO1xyXG4gICAgcmV0dXJuIHRoaXMucmVuZGVyZXIuZG9tRWxlbWVudC50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -57,7 +57,7 @@ HelpDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
57
57
|
</mat-grid-tile>
|
|
58
58
|
</mat-grid-list>
|
|
59
59
|
</div>
|
|
60
|
-
`, isInline: true, styles: [".mat-headline{text-align:center;line-height:1;margin:0 0 16px}.help-button{height:100%;width:100
|
|
60
|
+
`, isInline: true, styles: [".mat-headline{text-align:center;line-height:1;margin:0 0 16px}.help-button{height:100%;width:100%;pointer-events:all}.help-button ::ng-deep .mat-button-wrapper{display:flex;flex-direction:column;white-space:normal}.help-button ::ng-deep .mat-button-wrapper>*{max-width:100%;max-height:100%}.help-button ::ng-deep .mat-button-wrapper .help-image-label{font-size:12px;line-height:1.5;min-height:36px;margin-top:10px}.help-image{display:block;max-width:100%;max-height:100%}\n"], components: [{ type: i5.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { type: i5.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }], directives: [{ type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "uppercase": i6.UpperCasePipe, "localize": i7.LocalizePipe } });
|
|
61
61
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HelpDialogComponent, decorators: [{
|
|
62
62
|
type: Component,
|
|
63
63
|
args: [{
|