@simpleangularcontrols/sac-bootstrap3 10.0.0-rc.19 → 10.0.0-rc.20
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/bundles/simpleangularcontrols-sac-bootstrap3.umd.js +1 -1
- package/bundles/simpleangularcontrols-sac-bootstrap3.umd.js.map +1 -1
- package/bundles/simpleangularcontrols-sac-bootstrap3.umd.min.js +1 -1
- package/bundles/simpleangularcontrols-sac-bootstrap3.umd.min.js.map +1 -1
- package/esm2015/controls/treeview/treeview.js +2 -2
- package/esm2015/controls/treeview/treeview.module.ngfactory.js +1 -1
- package/fesm2015/simpleangularcontrols-sac-bootstrap3.js +1 -1
- package/fesm2015/simpleangularcontrols-sac-bootstrap3.js.map +1 -1
- package/package.json +2 -2
- package/simpleangularcontrols-sac-bootstrap3-10.0.0-rc.20.tgz +0 -0
- package/simpleangularcontrols-sac-bootstrap3.metadata.json +1 -1
- package/simpleangularcontrols-sac-bootstrap3-10.0.0-rc.19.tgz +0 -0
|
@@ -19,7 +19,7 @@ export class SacTreeviewComponent extends SacTreeviewCommon {
|
|
|
19
19
|
SacTreeviewComponent.decorators = [
|
|
20
20
|
{ type: Component, args: [{
|
|
21
21
|
selector: 'sac-treeview',
|
|
22
|
-
template: "<div\r\n class=\"row mb-3\"\r\n [class.g-0]=\"disablelabel\"\r\n [class.has-error]=\"invalid && (dirty || touched)\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{ name }}label\"\r\n for=\"{{ name }}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n [class.required]=\"isrequired\">\r\n <span class=\"text\">{{ label }}</span>\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n [class.has-error]=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n <div [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <div [style.width.%]=\"helptextmode === 'tooltip' && helptext && disablelabel ? '100' : null\">\r\n <table\r\n class=\"table table-hover table-condensed\"\r\n id=\"{{ name }}\"\r\n style=\"table-layout: fixed\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [class.border]=\"invalid && (dirty || touched)\"\r\n [class.border-danger]=\"invalid && (dirty || touched)\">\r\n <tbody>\r\n <ng-container *ngFor=\"let node of data\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"treeItem\"\r\n [ngTemplateOutletContext]=\"{ node: node, deep: 0 }\">\r\n </ng-template>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"help-block\">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n\r\n <p\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\">\r\n {{ helptext }}\r\n </p>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\r\n class=\"form-control-static\"\r\n style=\"margin-left: 5px\">\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px; margin-right: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template\r\n #treeItem\r\n let-node=\"node\"\r\n let-deep=\"deep\">\r\n <tr
|
|
22
|
+
template: "<div\r\n class=\"row mb-3\"\r\n [class.g-0]=\"disablelabel\"\r\n [class.has-error]=\"invalid && (dirty || touched)\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{ name }}label\"\r\n for=\"{{ name }}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n [class.required]=\"isrequired\">\r\n <span class=\"text\">{{ label }}</span>\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n [class.has-error]=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n <div [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <div [style.width.%]=\"helptextmode === 'tooltip' && helptext && disablelabel ? '100' : null\">\r\n <table\r\n class=\"table table-hover table-condensed\"\r\n id=\"{{ name }}\"\r\n style=\"table-layout: fixed\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [class.border]=\"invalid && (dirty || touched)\"\r\n [class.border-danger]=\"invalid && (dirty || touched)\">\r\n <tbody>\r\n <ng-container *ngFor=\"let node of data\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"treeItem\"\r\n [ngTemplateOutletContext]=\"{ node: node, deep: 0, path: '', textpath: '' }\">\r\n </ng-template>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"help-block\">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n\r\n <p\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\">\r\n {{ helptext }}\r\n </p>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\r\n class=\"form-control-static\"\r\n style=\"margin-left: 5px\">\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px; margin-right: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template\r\n #treeItem\r\n let-node=\"node\"\r\n let-deep=\"deep\"\r\n let-path=\"path\"\r\n let-textpath=\"textpath\">\r\n <tr\r\n [class.active]=\"isSelectedState(node)\"\r\n attr.data-path=\"{{ path }}/{{ getStringField(node, attrid) }}\"\r\n attr.data-textpath=\"{{ textpath }}/{{ getStringField(node, attrlabel) }}\">\r\n <td>\r\n <div\r\n class=\"py-1 px-2 d-flex align-items-center\"\r\n style=\"display: flex; flex-direction: row; cursor: pointer; align-items: center\"\r\n (mouseenter)=\"setHoverState(node, true)\"\r\n (mouseleave)=\"setHoverState(node, false)\">\r\n <div\r\n style=\"margin-right: 15px\"\r\n *ngFor=\"let i of count(deep)\">\r\n </div>\r\n\r\n <div\r\n (click)=\"onNodeClicked(node)\"\r\n *ngIf=\"expandedstate === 'true' || expandedstate === true\"\r\n style=\"margin-right: 15px\"\r\n [ngClass]=\"!hasChildren(node) ? iconFolderEmpty : !isExpandedState(node) ? iconFolderCollabsed : isExpandedState(node) ? iconFolderOpen : ''\">\r\n </div>\r\n\r\n <div\r\n (click)=\"onNodeClicked(node)\"\r\n *ngIf=\"attricon && getStringField(node, attricon)\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"templateicon || defaultTemplateIcon\"\r\n [ngTemplateOutletContext]=\"{ node: node }\">\r\n </ng-template>\r\n </div>\r\n\r\n <div\r\n (click)=\"onNodeClicked(node)\"\r\n style=\"padding-top: 7px; padding-bottom: 7px; flex-grow: 1\"\r\n [style.max-width.%]=\"enableellipsis ? '100' : null\"\r\n [style.overflow]=\"enableellipsis ? 'hidden' : null\"\r\n [style.text-overflow]=\"enableellipsis ? 'ellipsis' : null\"\r\n [style.white-space]=\"enableellipsis ? 'nowrap' : null\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"templatelabel || defaultTemplateLabel\"\r\n [ngTemplateOutletContext]=\"{ node: node, label: getStringField(node, attrlabel) }\">\r\n </ng-template>\r\n </div>\r\n\r\n <div\r\n (click)=\"setSelectedState(node)\"\r\n style=\"flex-shrink: 0\"\r\n *ngIf=\"!isDisabledState(node) && (showactionalways || isSelectedState(node) || isHoverState(node))\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"templateaction || defaultTemplateAction\"\r\n [ngTemplateOutletContext]=\"{ node: node, actionhandler: onActionClicked.bind(this) }\">\r\n </ng-template>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"isExpandedState(node)\">\r\n <ng-template\r\n *ngFor=\"let child of getChildren(node)\"\r\n [ngTemplateOutlet]=\"treeItem\"\r\n [ngTemplateOutletContext]=\"{\r\n node: child,\r\n deep: deep + 1,\r\n path: path + '/' + getStringField(node, attrid),\r\n textpath: textpath + '/' + getStringField(node, attrlabel)\r\n }\">\r\n </ng-template>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template\r\n #defaultTemplateLabel\r\n let-label=\"label\"\r\n let-node=\"node\">\r\n <span [title]=\"label\">\r\n {{ label }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template\r\n #defaultTemplateIcon\r\n let-node=\"node\">\r\n <div\r\n style=\"margin-right: 15px\"\r\n [ngClass]=\"getStringField(node, attricon)\">\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template\r\n #defaultTemplateAction\r\n let-node=\"node\"\r\n let-actionhandler=\"actionhandler\">\r\n <a\r\n class=\"btn btn-link text-secondary\"\r\n (click)=\"actionhandler({ action: 'default', node: node })\">\r\n <i [class]=\"iconAction\"></i>\r\n </a>\r\n</ng-template>\r\n",
|
|
23
23
|
providers: [
|
|
24
24
|
{
|
|
25
25
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -38,4 +38,4 @@ SacTreeviewComponent.ctorParameters = () => [
|
|
|
38
38
|
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
39
39
|
{ type: Injector }
|
|
40
40
|
];
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXAzL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3RyZWV2aWV3L3RyZWV2aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUV0RTs7R0FFRztBQWlCSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsaUJBQWlCO0lBQ3ZELHVCQUF1QjtJQUV2Qjs7OztPQUlHO0lBQ0gsWUFBZ0MsVUFBa0MsRUFBRSxRQUFrQjtRQUNsRixLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OztZQTFCSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLHdpUEFBOEI7Z0JBQzlCLFNBQVMsRUFBRTtvQkFDUDt3QkFDSSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixLQUFLLEVBQUUsSUFBSTt3QkFDWCxXQUFXLEVBQUUsb0JBQW9CO3FCQUNwQztvQkFDRDt3QkFDSSxPQUFPLEVBQUUsYUFBYTt3QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzt3QkFDbkQsS0FBSyxFQUFFLElBQUk7cUJBQ2Q7aUJBQ0o7YUFDSjs7O1lBdkJRLHNCQUFzQix1QkFnQ2QsSUFBSSxZQUFJLFFBQVE7WUEvQlAsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3QsIEluamVjdG9yLCBPcHRpb25hbCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2FjVHJlZXZpZXdDb21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xyXG5cclxuLyoqXHJcbiAqIFRyZWV2aWV3IENvbXBvbW5lbnRcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzYWMtdHJlZXZpZXcnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RyZWV2aWV3Lmh0bWwnLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBTYWNUcmVldmlld0NvbXBvbmVudCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2FjVHJlZXZpZXdDb21wb25lbnQpLFxyXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhY1RyZWV2aWV3Q29tcG9uZW50IGV4dGVuZHMgU2FjVHJlZXZpZXdDb21tb24ge1xyXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdG9yXHJcbiAgICAgKiBAcGFyYW0gZm9ybUxheW91dCBTYWNGb3JtTGF5b3V0IHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXHJcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgQ29tcG9uZW50IEluamVjdG9yXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKEBIb3N0KCkgQE9wdGlvbmFsKCkgZm9ybUxheW91dDogU2FjRm9ybUxheW91dERpcmVjdGl2ZSwgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgc3VwZXIoZm9ybUxheW91dCwgaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcbn1cclxuIl19
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
|
|
5
5
|
* tslint:disable
|
|
6
6
|
*/
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcubW9kdWxlLm5nZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDMvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdHJlZXZpZXcvdHJlZXZpZXcubW9kdWxlLm5nZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBpMSBmcm9tICcuL3RyZWV2aWV3Lm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMiBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0ICogYXMgaTMgZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwJztcbmltcG9ydCAqIGFzIGk0IGZyb20gJy4uL2xheW91dC9mb3JtbGF5b3V0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgKiBhcyBpNSBmcm9tICcuLi9jb250ZXh0bWVudS9jb250ZXh0bWVudSc7XG5pbXBvcnQgKiBhcyBpNiBmcm9tICcuLi9jb250ZXh0bWVudS9jb250ZXh0bWVudWl0ZW1idXR0b24nO1xuaW1wb3J0ICogYXMgaTcgZnJvbSAnLi4vY29udGV4dG1lbnUvY29udGV4dG1lbnVpdGVtc3BsaXR0ZXInO1xuaW1wb3J0ICogYXMgaTggZnJvbSAnLi4vY29udGV4dG1lbnUvY29udGV4dG1lbnVhbmNob3InO1xuaW1wb3J0ICogYXMgaTkgZnJvbSAnLi90cmVldmlldyc7XG5pbXBvcnQgKiBhcyBpMTAgZnJvbSAnLi4vbGF5b3V0L3RvY29udHJvbGhlaWdodC5waXBlJztcbmltcG9ydCAqIGFzIGkxMSBmcm9tICcuLi9sYXlvdXQvdG9jb250cm9sd2lkdGhjc3MucGlwZSc7XG5pbXBvcnQgKiBhcyBpMTIgZnJvbSAnLi4vbGF5b3V0L3RvbGFiZWxoZWlnaHQucGlwZSc7XG5pbXBvcnQgKiBhcyBpMTMgZnJvbSAnLi4vbGF5b3V0L3RvbGFiZWx3aWR0aGNzcy5waXBlJztcbmltcG9ydCAqIGFzIGkxNCBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAubW9kdWxlJztcbmltcG9ydCAqIGFzIGkxNSBmcm9tICcuLi9sYXlvdXQvbGF5b3V0Lm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTYgZnJvbSAnLi4vY29udGV4dG1lbnUvY29udGV4dG1lbnUubW9kdWxlJztcbmV4cG9ydCBjb25zdCBTQUNCb290c3RyYXAzVHJlZXZpZXdNb2R1bGVOZ0ZhY3Rvcnk6aTAuTmdNb2R1bGVGYWN0b3J5PGkxLlNBQ0Jvb3RzdHJhcDNUcmVldmlld01vZHVsZT4gPSAobnVsbCBhcyBhbnkpO1xudmFyIF9kZWNsMF8wOmkyLk5nQ2xhc3MgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTppMi5OZ0NvbXBvbmVudE91dGxldCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yOmkyLk5nRm9yT2Y8YW55LGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzppMi5OZ0lmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDppMi5OZ1RlbXBsYXRlT3V0bGV0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU6aTIuTmdTdHlsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82OmkyLk5nU3dpdGNoID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc6aTIuTmdTd2l0Y2hDYXNlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg6aTIuTmdTd2l0Y2hEZWZhdWx0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk6aTIuTmdQbHVyYWwgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA6aTIuTmdQbHVyYWxDYXNlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExOmkzLlNhY1Rvb2x0aXBDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTI6aTQuU2FjRm9ybUxheW91dERpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzppNS5TYWNDb250ZXh0bWVudUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDppNi5TYWNDb250ZXh0bWVudUl0ZW1CdXR0b25Db21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTU6aTcuU2FjQ29udGV4dG1lbnVJdGVtU3BsaXR0ZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTY6aTguU2FjQ29udGV4dG1lbnVBbmNob3JEaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTc6aTkuU2FjVHJlZXZpZXdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTg6aTIuQXN5bmNQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE5OmkyLlVwcGVyQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjA6aTIuTG93ZXJDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMTppMi5Kc29uUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMjppMi5TbGljZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjM6aTIuRGVjaW1hbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjQ6aTIuUGVyY2VudFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjU6aTIuVGl0bGVDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNjppMi5DdXJyZW5jeVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjc6aTIuRGF0ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjg6aTIuSTE4blBsdXJhbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjk6aTIuSTE4blNlbGVjdFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzA6aTIuS2V5VmFsdWVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMxOmkxMC5TYWNUb0NvbnRyb2xIZWlnaHRQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMyOmkxMS5TYWNUb0NvbnRyb2xXaWR0aENzc1BpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzM6aTEyLlNhY1RvTGFiZWxIZWlnaHRQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM0OmkxMy5TYWNUb0xhYmVsV2lkdGhDc3NQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM1OmkyLkNvbW1vbk1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNjppMTQuU0FDQm9vdHN0cmFwM1Rvb2x0aXBNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzc6aTE1LlNBQ0Jvb3RzdHJhcDNMYXlvdXRNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzg6aTE2LlNBQ0Jvb3RzdHJhcDNDb250ZXh0bWVudU1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zOTppMC5UZW1wbGF0ZVJlZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQwOmkwLkVsZW1lbnRSZWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xuZnVuY3Rpb24gX1ZpZXdfU2FjVHJlZXZpZXdDb21wb25lbnRfSG9zdF8xXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1RyZWV2aWV3Q29tcG9uZW50XzFfMigpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzE3LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMTcuaXNBZGFwdGl2ZUxhYmVsKSAmJiAoKF9kZWNsMF8xNy5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE3LmhlbHB0ZXh0KSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTcuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzE3LkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF8yO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNUcmVldmlld0NvbXBvbmVudF8xXzEoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzE3LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMTcuaXNBZGFwdGl2ZUxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdjb2wteHMtMTIgY29udHJvbC1sYWJlbCc7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBbKChfZGVjbDBfMTcuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF8zNC50cmFuc2Zvcm0oX2RlY2wwXzE3LmxhYmVsU2l6ZXMpOiAnc3Itb25seScpXTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMTcubmFtZSwnbGFiZWwnKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMTcubmFtZSwnJyk7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTcuaXNyZXF1aXJlZDtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8xNy5sYWJlbDtcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgY3VyclZhbF82OmFueSA9ICgoX2RlY2wwXzE3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTcuaGVscHRleHQpO1xuICAgIGN1cnJWYWxfNjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVHJlZXZpZXdDb21wb25lbnRfMV80KCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNUcmVldmlld0NvbXBvbmVudF8xXzMoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IHtub2RlOl9hbnksZGVlcDowfTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzM5O1xuICBjdXJyVmFsXzE7XG59XG5mdW5jdGlvbiBfVmlld19TYWNUcmVldmlld0NvbXBvbmVudF8xXzUoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzE3LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8xNy5pbnZhbGlkKSAmJiAoX2RlY2wwXzE3LmRpcnR5IHx8IF9kZWNsMF8xNy50b3VjaGVkKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTgudHJhbnNmb3JtKF9kZWNsMF8xNy5HZXRFcnJvck1lc3NhZ2UoKSk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNUcmVldmlld0NvbXBvbmVudF8xXzYoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzE3LmhlbHB0ZXh0bW9kZSA9PT0gJ3RleHQnKSAmJiBfZGVjbDBfMTcuaGVscHRleHQpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE3LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVHJlZXZpZXdDb21wb25lbnRfMV84KCk6dm9pZCB7XG4gIGlmICgoKCgoX2RlY2wwXzE3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTcuaGVscHRleHQpICYmIF9kZWNsMF8xNy5kaXNhYmxlbGFiZWwpICYmICgoX2RlY2wwXzE3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTcuaGVscHRleHQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xNy5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IHRydWU7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMTcuSGVscHRleHRUb29sdGlwSWNvbjtcbiAgICBjdXJyVmFsXzI7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1RyZWV2aWV3Q29tcG9uZW50XzFfNygpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzE3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTcuaGVscHRleHQpICYmIF9kZWNsMF8xNy5kaXNhYmxlbGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMTcuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNy5oZWxwdGV4dCk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNUcmVldmlld0NvbXBvbmVudF8xXzEwKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNUcmVldmlld0NvbXBvbmVudF8xXzExKCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8xNy5leHBhbmRlZHN0YXRlID09PSAndHJ1ZScpIHx8IChfZGVjbDBfMTcuZXhwYW5kZWRzdGF0ZSA9PT0gdHJ1ZSkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKCFfZGVjbDBfMTcuaGFzQ2hpbGRyZW4oX2FueSk/IF9kZWNsMF8xNy5pY29uRm9sZGVyRW1wdHk6ICghX2RlY2wwXzE3LmlzRXhwYW5kZWRTdGF0ZShfYW55KT8gX2RlY2wwXzE3Lmljb25Gb2xkZXJDb2xsYWJzZWQ6IChfZGVjbDBfMTcuaXNFeHBhbmRlZFN0YXRlKF9hbnkpPyBfZGVjbDBfMTcuaWNvbkZvbGRlck9wZW46ICcnKSkpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBwZF8xOmFueSA9ICgoPGFueT5fZGVjbDBfMTcub25Ob2RlQ2xpY2tlZChfYW55KSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVHJlZXZpZXdDb21wb25lbnRfMV8xMygpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8xNy5hdHRyaWNvbiAmJiBfZGVjbDBfMTcuZ2V0U3RyaW5nRmllbGQoX2FueSxfZGVjbDBfMTcuYXR0cmljb24pKSkgeyB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpOyB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNUcmVldmlld0NvbXBvbmVudF8xXzEyKCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzE3LmF0dHJpY29uICYmIF9kZWNsMF8xNy5nZXRTdHJpbmdGaWVsZChfYW55LF9kZWNsMF8xNy5hdHRyaWNvbikpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0ge25vZGU6X2FueX07XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoX2RlY2wwXzE3LnRlbXBsYXRlaWNvbiB8fCBfZGVjbDBfMzkpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBwZF8yOmFueSA9ICgoPGFueT5fZGVjbDBfMTcub25Ob2RlQ2xpY2tlZChfYW55KSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVHJlZXZpZXdDb21wb25lbnRfMV8xNCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVHJlZXZpZXdDb21wb25lbnRfMV8xNigpOnZvaWQge1xuICBpZiAoKCFfZGVjbDBfMTcuaXNEaXNhYmxlZFN0YXRlKF9hbnkpICYmICgoX2RlY2wwXzE3LnNob3dhY3Rpb25hbHdheXMgfHwgX2RlY2wwXzE3LmlzU2VsZWN0ZWRTdGF0ZShfYW55KSkgfHwgX2RlY2wwXzE3LmlzSG92ZXJTdGF0ZShfYW55KSkpKSB7IHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7IH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1RyZWV2aWV3Q29tcG9uZW50XzFfMTUoKTp2b2lkIHtcbiAgaWYgKCghX2RlY2wwXzE3LmlzRGlzYWJsZWRTdGF0ZShfYW55KSAmJiAoKF9kZWNsMF8xNy5zaG93YWN0aW9uYWx3YXlzIHx8IF9kZWNsMF8xNy5pc1NlbGVjdGVkU3RhdGUoX2FueSkpIHx8IF9kZWNsMF8xNy5pc0hvdmVyU3RhdGUoX2FueSkpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IHtub2RlOl9hbnksYWN0aW9uaGFuZGxlcjpfZGVjbDBfMTcub25BY3Rpb25DbGlja2VkLmJpbmQoX2RlY2wwXzE3KX07XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoX2RlY2wwXzE3LnRlbXBsYXRlYWN0aW9uIHx8IF9kZWNsMF8zOSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IHBkXzI6YW55ID0gKCg8YW55Pl9kZWNsMF8xNy5zZXRTZWxlY3RlZFN0YXRlKF9hbnkpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNUcmVldmlld0NvbXBvbmVudF8xXzE5KCk6dm9pZCB7XG4gIGlmIChfZGVjbDBfMTcuaXNFeHBhbmRlZFN0YXRlKF9hbnkpKSB7IHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7IH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1RyZWV2aWV3Q29tcG9uZW50XzFfMTgoKTp2b2lkIHtcbiAgaWYgKF9kZWNsMF8xNy5pc0V4cGFuZGVkU3RhdGUoX2FueSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSB7bm9kZTpfYW55LGRlZXA6KF9hbnkgKyAxKX07XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMzk7XG4gICAgY3VyclZhbF8xO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNUcmVldmlld0NvbXBvbmVudF8xXzE3KCk6dm9pZCB7XG4gIGlmIChfZGVjbDBfMTcuaXNFeHBhbmRlZFN0YXRlKF9hbnkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE3LmdldENoaWxkcmVuKF9hbnkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVHJlZXZpZXdDb21wb25lbnRfMV85KCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTcuaXNTZWxlY3RlZFN0YXRlKF9hbnkpO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMTcuY291bnQoX2FueSk7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9ICgoX2RlY2wwXzE3LmV4cGFuZGVkc3RhdGUgPT09ICd0cnVlJykgfHwgKF9kZWNsMF8xNy5leHBhbmRlZHN0YXRlID09PSB0cnVlKSk7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IChfZGVjbDBfMTcuYXR0cmljb24gJiYgX2RlY2wwXzE3LmdldFN0cmluZ0ZpZWxkKF9hbnksX2RlY2wwXzE3LmF0dHJpY29uKSk7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IChfZGVjbDBfMTcuZW5hYmxlZWxsaXBzaXM/ICcxMDAnOiBudWxsKTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKF9kZWNsMF8xNy5lbmFibGVlbGxpcHNpcz8gJ2hpZGRlbic6IG51bGwpO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAoX2RlY2wwXzE3LmVuYWJsZWVsbGlwc2lzPyAnZWxsaXBzaXMnOiBudWxsKTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKF9kZWNsMF8xNy5lbmFibGVlbGxpcHNpcz8gJ25vd3JhcCc6IG51bGwpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSB7bm9kZTpfYW55LGxhYmVsOl9kZWNsMF8xNy5nZXRTdHJpbmdGaWVsZChfYW55LF9kZWNsMF8xNy5hdHRybGFiZWwpfTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gKF9kZWNsMF8xNy50ZW1wbGF0ZWxhYmVsIHx8IF9kZWNsMF8zOSk7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSAoIV9kZWNsMF8xNy5pc0Rpc2FibGVkU3RhdGUoX2FueSkgJiYgKChfZGVjbDBfMTcuc2hvd2FjdGlvbmFsd2F5cyB8fCBfZGVjbDBfMTcuaXNTZWxlY3RlZFN0YXRlKF9hbnkpKSB8fCBfZGVjbDBfMTcuaXNIb3ZlclN0YXRlKF9hbnkpKSk7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gX2RlY2wwXzE3LmlzRXhwYW5kZWRTdGF0ZShfYW55KTtcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgcGRfMTI6YW55ID0gKCg8YW55Pl9kZWNsMF8xNy5zZXRIb3ZlclN0YXRlKF9hbnksdHJ1ZSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzEzOmFueSA9ICgoPGFueT5fZGVjbDBfMTcuc2V0SG92ZXJTdGF0ZShfYW55LGZhbHNlKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTQ6YW55ID0gKCg8YW55Pl9kZWNsMF8xNy5vbk5vZGVDbGlja2VkKF9hbnkpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVHJlZXZpZXdDb21wb25lbnRfMV8yMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2FueTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2FueTtcbiAgY3VyclZhbF8xO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVHJlZXZpZXdDb21wb25lbnRfMV8yMSgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE3LmdldFN0cmluZ0ZpZWxkKF9hbnksX2RlY2wwXzE3LmF0dHJpY29uKTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVHJlZXZpZXdDb21wb25lbnRfMV8yMigpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE3Lmljb25BY3Rpb247XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgcGRfMTphbnkgPSAoKDxhbnk+X2FueSh7YWN0aW9uOidkZWZhdWx0Jyxub2RlOl9hbnl9KSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1RyZWV2aWV3Q29tcG9uZW50XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE3LmRpc2FibGVsYWJlbDtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKF9kZWNsMF8xNy5pbnZhbGlkICYmIChfZGVjbDBfMTcuZGlydHkgfHwgX2RlY2wwXzE3LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKChfZGVjbDBfMTcuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8xNy5pc0FkYXB0aXZlTGFiZWwpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAnY29sLXhzLTEyJztcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gWygoX2RlY2wwXzE3LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfMzIudHJhbnNmb3JtKF9kZWNsMF8xNy5sYWJlbFNpemVzKTogJycpXTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKChfZGVjbDBfMTcuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzE3LmludmFsaWQpICYmIChfZGVjbDBfMTcuZGlydHkgfHwgX2RlY2wwXzE3LnRvdWNoZWQpKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKCgoKF9kZWNsMF8xNy5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE3LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMTcuZGlzYWJsZWxhYmVsKT8gJ2ZsZXgnOiBudWxsKTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKCgoKF9kZWNsMF8xNy5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE3LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMTcuZGlzYWJsZWxhYmVsKT8gJzEwMCc6IG51bGwpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzE3Lm5hbWUsJycpO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSAoX2RlY2wwXzE3LmludmFsaWQgJiYgKF9kZWNsMF8xNy5kaXJ0eSB8fCBfZGVjbDBfMTcudG91Y2hlZCkpO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gKF9kZWNsMF8xNy5pbnZhbGlkICYmIChfZGVjbDBfMTcuZGlydHkgfHwgX2RlY2wwXzE3LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8xMDtcbiAgY29uc3QgY3VyclZhbF8xMTphbnkgPSAoX2RlY2wwXzE3LmludmFsaWQgJiYgKF9kZWNsMF8xNy5kaXJ0eSB8fCBfZGVjbDBfMTcudG91Y2hlZCkpO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9IF9kZWNsMF8xNy5kYXRhO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9ICgoX2RlY2wwXzE3LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8xNy5pbnZhbGlkKSAmJiAoX2RlY2wwXzE3LmRpcnR5IHx8IF9kZWNsMF8xNy50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTM7XG4gIGNvbnN0IGN1cnJWYWxfMTQ6YW55ID0gKChfZGVjbDBfMTcuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8xNy5oZWxwdGV4dCk7XG4gIGN1cnJWYWxfMTQ7XG4gIGNvbnN0IGN1cnJWYWxfMTU6YW55ID0gKCgoX2RlY2wwXzE3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTcuaGVscHRleHQpICYmIF9kZWNsMF8xNy5kaXNhYmxlbGFiZWwpO1xuICBjdXJyVmFsXzE1O1xufVxuIl19
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcubW9kdWxlLm5nZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDMvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdHJlZXZpZXcvdHJlZXZpZXcubW9kdWxlLm5nZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBpMSBmcm9tICcuL3RyZWV2aWV3Lm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMiBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0ICogYXMgaTMgZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwJztcbmltcG9ydCAqIGFzIGk0IGZyb20gJy4uL2xheW91dC9mb3JtbGF5b3V0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgKiBhcyBpNSBmcm9tICcuLi9jb250ZXh0bWVudS9jb250ZXh0bWVudSc7XG5pbXBvcnQgKiBhcyBpNiBmcm9tICcuLi9jb250ZXh0bWVudS9jb250ZXh0bWVudWl0ZW1idXR0b24nO1xuaW1wb3J0ICogYXMgaTcgZnJvbSAnLi4vY29udGV4dG1lbnUvY29udGV4dG1lbnVpdGVtc3BsaXR0ZXInO1xuaW1wb3J0ICogYXMgaTggZnJvbSAnLi4vY29udGV4dG1lbnUvY29udGV4dG1lbnVhbmNob3InO1xuaW1wb3J0ICogYXMgaTkgZnJvbSAnLi90cmVldmlldyc7XG5pbXBvcnQgKiBhcyBpMTAgZnJvbSAnLi4vbGF5b3V0L3RvY29udHJvbGhlaWdodC5waXBlJztcbmltcG9ydCAqIGFzIGkxMSBmcm9tICcuLi9sYXlvdXQvdG9jb250cm9sd2lkdGhjc3MucGlwZSc7XG5pbXBvcnQgKiBhcyBpMTIgZnJvbSAnLi4vbGF5b3V0L3RvbGFiZWxoZWlnaHQucGlwZSc7XG5pbXBvcnQgKiBhcyBpMTMgZnJvbSAnLi4vbGF5b3V0L3RvbGFiZWx3aWR0aGNzcy5waXBlJztcbmltcG9ydCAqIGFzIGkxNCBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAubW9kdWxlJztcbmltcG9ydCAqIGFzIGkxNSBmcm9tICcuLi9sYXlvdXQvbGF5b3V0Lm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTYgZnJvbSAnLi4vY29udGV4dG1lbnUvY29udGV4dG1lbnUubW9kdWxlJztcbmV4cG9ydCBjb25zdCBTQUNCb290c3RyYXAzVHJlZXZpZXdNb2R1bGVOZ0ZhY3Rvcnk6aTAuTmdNb2R1bGVGYWN0b3J5PGkxLlNBQ0Jvb3RzdHJhcDNUcmVldmlld01vZHVsZT4gPSAobnVsbCBhcyBhbnkpO1xudmFyIF9kZWNsMF8wOmkyLk5nQ2xhc3MgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTppMi5OZ0NvbXBvbmVudE91dGxldCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yOmkyLk5nRm9yT2Y8YW55LGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzppMi5OZ0lmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDppMi5OZ1RlbXBsYXRlT3V0bGV0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU6aTIuTmdTdHlsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82OmkyLk5nU3dpdGNoID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc6aTIuTmdTd2l0Y2hDYXNlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg6aTIuTmdTd2l0Y2hEZWZhdWx0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk6aTIuTmdQbHVyYWwgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA6aTIuTmdQbHVyYWxDYXNlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExOmkzLlNhY1Rvb2x0aXBDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTI6aTQuU2FjRm9ybUxheW91dERpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzppNS5TYWNDb250ZXh0bWVudUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDppNi5TYWNDb250ZXh0bWVudUl0ZW1CdXR0b25Db21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTU6aTcuU2FjQ29udGV4dG1lbnVJdGVtU3BsaXR0ZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTY6aTguU2FjQ29udGV4dG1lbnVBbmNob3JEaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTc6aTkuU2FjVHJlZXZpZXdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTg6aTIuQXN5bmNQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE5OmkyLlVwcGVyQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjA6aTIuTG93ZXJDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMTppMi5Kc29uUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMjppMi5TbGljZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjM6aTIuRGVjaW1hbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjQ6aTIuUGVyY2VudFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjU6aTIuVGl0bGVDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNjppMi5DdXJyZW5jeVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjc6aTIuRGF0ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjg6aTIuSTE4blBsdXJhbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjk6aTIuSTE4blNlbGVjdFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzA6aTIuS2V5VmFsdWVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMxOmkxMC5TYWNUb0NvbnRyb2xIZWlnaHRQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMyOmkxMS5TYWNUb0NvbnRyb2xXaWR0aENzc1BpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzM6aTEyLlNhY1RvTGFiZWxIZWlnaHRQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM0OmkxMy5TYWNUb0xhYmVsV2lkdGhDc3NQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM1OmkyLkNvbW1vbk1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNjppMTQuU0FDQm9vdHN0cmFwM1Rvb2x0aXBNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzc6aTE1LlNBQ0Jvb3RzdHJhcDNMYXlvdXRNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzg6aTE2LlNBQ0Jvb3RzdHJhcDNDb250ZXh0bWVudU1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zOTppMC5UZW1wbGF0ZVJlZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQwOmkwLkVsZW1lbnRSZWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xuZnVuY3Rpb24gX1ZpZXdfU2FjVHJlZXZpZXdDb21wb25lbnRfSG9zdF8xXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1RyZWV2aWV3Q29tcG9uZW50XzFfMigpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzE3LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMTcuaXNBZGFwdGl2ZUxhYmVsKSAmJiAoKF9kZWNsMF8xNy5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE3LmhlbHB0ZXh0KSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTcuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzE3LkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF8yO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNUcmVldmlld0NvbXBvbmVudF8xXzEoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzE3LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMTcuaXNBZGFwdGl2ZUxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdjb2wteHMtMTIgY29udHJvbC1sYWJlbCc7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBbKChfZGVjbDBfMTcuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF8zNC50cmFuc2Zvcm0oX2RlY2wwXzE3LmxhYmVsU2l6ZXMpOiAnc3Itb25seScpXTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMTcubmFtZSwnbGFiZWwnKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMTcubmFtZSwnJyk7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTcuaXNyZXF1aXJlZDtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8xNy5sYWJlbDtcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgY3VyclZhbF82OmFueSA9ICgoX2RlY2wwXzE3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTcuaGVscHRleHQpO1xuICAgIGN1cnJWYWxfNjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVHJlZXZpZXdDb21wb25lbnRfMV80KCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNUcmVldmlld0NvbXBvbmVudF8xXzMoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IHtub2RlOl9hbnksZGVlcDowLHBhdGg6JycsdGV4dHBhdGg6Jyd9O1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMzk7XG4gIGN1cnJWYWxfMTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1RyZWV2aWV3Q29tcG9uZW50XzFfNSgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMTcuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzE3LmludmFsaWQpICYmIChfZGVjbDBfMTcuZGlydHkgfHwgX2RlY2wwXzE3LnRvdWNoZWQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xOC50cmFuc2Zvcm0oX2RlY2wwXzE3LkdldEVycm9yTWVzc2FnZSgpKTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1RyZWV2aWV3Q29tcG9uZW50XzFfNigpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMTcuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8xNy5oZWxwdGV4dCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTcuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNUcmVldmlld0NvbXBvbmVudF8xXzgoKTp2b2lkIHtcbiAgaWYgKCgoKChfZGVjbDBfMTcuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNy5oZWxwdGV4dCkgJiYgX2RlY2wwXzE3LmRpc2FibGVsYWJlbCkgJiYgKChfZGVjbDBfMTcuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNy5oZWxwdGV4dCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE3LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xNy5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfMjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVHJlZXZpZXdDb21wb25lbnRfMV83KCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMTcuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNy5oZWxwdGV4dCkgJiYgX2RlY2wwXzE3LmRpc2FibGVsYWJlbCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKF9kZWNsMF8xNy5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE3LmhlbHB0ZXh0KTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1RyZWV2aWV3Q29tcG9uZW50XzFfMTAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1RyZWV2aWV3Q29tcG9uZW50XzFfMTEoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzE3LmV4cGFuZGVkc3RhdGUgPT09ICd0cnVlJykgfHwgKF9kZWNsMF8xNy5leHBhbmRlZHN0YXRlID09PSB0cnVlKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoIV9kZWNsMF8xNy5oYXNDaGlsZHJlbihfYW55KT8gX2RlY2wwXzE3Lmljb25Gb2xkZXJFbXB0eTogKCFfZGVjbDBfMTcuaXNFeHBhbmRlZFN0YXRlKF9hbnkpPyBfZGVjbDBfMTcuaWNvbkZvbGRlckNvbGxhYnNlZDogKF9kZWNsMF8xNy5pc0V4cGFuZGVkU3RhdGUoX2FueSk/IF9kZWNsMF8xNy5pY29uRm9sZGVyT3BlbjogJycpKSk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IHBkXzE6YW55ID0gKCg8YW55Pl9kZWNsMF8xNy5vbk5vZGVDbGlja2VkKF9hbnkpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNUcmVldmlld0NvbXBvbmVudF8xXzEzKCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzE3LmF0dHJpY29uICYmIF9kZWNsMF8xNy5nZXRTdHJpbmdGaWVsZChfYW55LF9kZWNsMF8xNy5hdHRyaWNvbikpKSB7IHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7IH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1RyZWV2aWV3Q29tcG9uZW50XzFfMTIoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMTcuYXR0cmljb24gJiYgX2RlY2wwXzE3LmdldFN0cmluZ0ZpZWxkKF9hbnksX2RlY2wwXzE3LmF0dHJpY29uKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSB7bm9kZTpfYW55fTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMTcudGVtcGxhdGVpY29uIHx8IF9kZWNsMF8zOSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IHBkXzI6YW55ID0gKCg8YW55Pl9kZWNsMF8xNy5vbk5vZGVDbGlja2VkKF9hbnkpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNUcmVldmlld0NvbXBvbmVudF8xXzE0KCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNUcmVldmlld0NvbXBvbmVudF8xXzE2KCk6dm9pZCB7XG4gIGlmICgoIV9kZWNsMF8xNy5pc0Rpc2FibGVkU3RhdGUoX2FueSkgJiYgKChfZGVjbDBfMTcuc2hvd2FjdGlvbmFsd2F5cyB8fCBfZGVjbDBfMTcuaXNTZWxlY3RlZFN0YXRlKF9hbnkpKSB8fCBfZGVjbDBfMTcuaXNIb3ZlclN0YXRlKF9hbnkpKSkpIHsgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTsgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVHJlZXZpZXdDb21wb25lbnRfMV8xNSgpOnZvaWQge1xuICBpZiAoKCFfZGVjbDBfMTcuaXNEaXNhYmxlZFN0YXRlKF9hbnkpICYmICgoX2RlY2wwXzE3LnNob3dhY3Rpb25hbHdheXMgfHwgX2RlY2wwXzE3LmlzU2VsZWN0ZWRTdGF0ZShfYW55KSkgfHwgX2RlY2wwXzE3LmlzSG92ZXJTdGF0ZShfYW55KSkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0ge25vZGU6X2FueSxhY3Rpb25oYW5kbGVyOl9kZWNsMF8xNy5vbkFjdGlvbkNsaWNrZWQuYmluZChfZGVjbDBfMTcpfTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMTcudGVtcGxhdGVhY3Rpb24gfHwgX2RlY2wwXzM5KTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgcGRfMjphbnkgPSAoKDxhbnk+X2RlY2wwXzE3LnNldFNlbGVjdGVkU3RhdGUoX2FueSkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1RyZWV2aWV3Q29tcG9uZW50XzFfMTkoKTp2b2lkIHtcbiAgaWYgKF9kZWNsMF8xNy5pc0V4cGFuZGVkU3RhdGUoX2FueSkpIHsgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTsgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVHJlZXZpZXdDb21wb25lbnRfMV8xOCgpOnZvaWQge1xuICBpZiAoX2RlY2wwXzE3LmlzRXhwYW5kZWRTdGF0ZShfYW55KSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IHtub2RlOl9hbnksZGVlcDooX2FueSArIDEpLHBhdGg6KChfYW55ICsgJy8nKSArIF9kZWNsMF8xNy5nZXRTdHJpbmdGaWVsZChfYW55LFxuICAgICAgICBfZGVjbDBfMTcuYXR0cmlkKSksdGV4dHBhdGg6KChfYW55ICsgJy8nKSArIF9kZWNsMF8xNy5nZXRTdHJpbmdGaWVsZChfYW55LFxuICAgICAgICBfZGVjbDBfMTcuYXR0cmxhYmVsKSl9O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzM5O1xuICAgIGN1cnJWYWxfMTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVHJlZXZpZXdDb21wb25lbnRfMV8xNygpOnZvaWQge1xuICBpZiAoX2RlY2wwXzE3LmlzRXhwYW5kZWRTdGF0ZShfYW55KSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xNy5nZXRDaGlsZHJlbihfYW55KTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1RyZWV2aWV3Q29tcG9uZW50XzFfOSgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE3LmlzU2VsZWN0ZWRTdGF0ZShfYW55KTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgyLCcnLF9hbnksJy8nLF9kZWNsMF8xNy5nZXRTdHJpbmdGaWVsZChfYW55LFxuICAgICAgX2RlY2wwXzE3LmF0dHJpZCksJycpO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDIsJycsX2FueSwnLycsX2RlY2wwXzE3LmdldFN0cmluZ0ZpZWxkKF9hbnksXG4gICAgICBfZGVjbDBfMTcuYXR0cmxhYmVsKSwnJyk7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8xNy5jb3VudChfYW55KTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gKChfZGVjbDBfMTcuZXhwYW5kZWRzdGF0ZSA9PT0gJ3RydWUnKSB8fCAoX2RlY2wwXzE3LmV4cGFuZGVkc3RhdGUgPT09IHRydWUpKTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKF9kZWNsMF8xNy5hdHRyaWNvbiAmJiBfZGVjbDBfMTcuZ2V0U3RyaW5nRmllbGQoX2FueSxfZGVjbDBfMTcuYXR0cmljb24pKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKF9kZWNsMF8xNy5lbmFibGVlbGxpcHNpcz8gJzEwMCc6IG51bGwpO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoX2RlY2wwXzE3LmVuYWJsZWVsbGlwc2lzPyAnaGlkZGVuJzogbnVsbCk7XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IChfZGVjbDBfMTcuZW5hYmxlZWxsaXBzaXM/ICdlbGxpcHNpcyc6IG51bGwpO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSAoX2RlY2wwXzE3LmVuYWJsZWVsbGlwc2lzPyAnbm93cmFwJzogbnVsbCk7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSB7bm9kZTpfYW55LGxhYmVsOl9kZWNsMF8xNy5nZXRTdHJpbmdGaWVsZChfYW55LF9kZWNsMF8xNy5hdHRybGFiZWwpfTtcbiAgY3VyclZhbF8xMDtcbiAgY29uc3QgY3VyclZhbF8xMTphbnkgPSAoX2RlY2wwXzE3LnRlbXBsYXRlbGFiZWwgfHwgX2RlY2wwXzM5KTtcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSAoIV9kZWNsMF8xNy5pc0Rpc2FibGVkU3RhdGUoX2FueSkgJiYgKChfZGVjbDBfMTcuc2hvd2FjdGlvbmFsd2F5cyB8fCBfZGVjbDBfMTcuaXNTZWxlY3RlZFN0YXRlKF9hbnkpKSB8fCBfZGVjbDBfMTcuaXNIb3ZlclN0YXRlKF9hbnkpKSk7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gX2RlY2wwXzE3LmlzRXhwYW5kZWRTdGF0ZShfYW55KTtcbiAgY3VyclZhbF8xMztcbiAgY29uc3QgcGRfMTQ6YW55ID0gKCg8YW55Pl9kZWNsMF8xNy5zZXRIb3ZlclN0YXRlKF9hbnksdHJ1ZSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE1OmFueSA9ICgoPGFueT5fZGVjbDBfMTcuc2V0SG92ZXJTdGF0ZShfYW55LGZhbHNlKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTY6YW55ID0gKCg8YW55Pl9kZWNsMF8xNy5vbk5vZGVDbGlja2VkKF9hbnkpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVHJlZXZpZXdDb21wb25lbnRfMV8yMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2FueTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2FueTtcbiAgY3VyclZhbF8xO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVHJlZXZpZXdDb21wb25lbnRfMV8yMSgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE3LmdldFN0cmluZ0ZpZWxkKF9hbnksX2RlY2wwXzE3LmF0dHJpY29uKTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVHJlZXZpZXdDb21wb25lbnRfMV8yMigpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE3Lmljb25BY3Rpb247XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgcGRfMTphbnkgPSAoKDxhbnk+X2FueSh7YWN0aW9uOidkZWZhdWx0Jyxub2RlOl9hbnl9KSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1RyZWV2aWV3Q29tcG9uZW50XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE3LmRpc2FibGVsYWJlbDtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKF9kZWNsMF8xNy5pbnZhbGlkICYmIChfZGVjbDBfMTcuZGlydHkgfHwgX2RlY2wwXzE3LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKChfZGVjbDBfMTcuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8xNy5pc0FkYXB0aXZlTGFiZWwpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAnY29sLXhzLTEyJztcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gWygoX2RlY2wwXzE3LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfMzIudHJhbnNmb3JtKF9kZWNsMF8xNy5sYWJlbFNpemVzKTogJycpXTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKChfZGVjbDBfMTcuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzE3LmludmFsaWQpICYmIChfZGVjbDBfMTcuZGlydHkgfHwgX2RlY2wwXzE3LnRvdWNoZWQpKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKCgoKF9kZWNsMF8xNy5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE3LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMTcuZGlzYWJsZWxhYmVsKT8gJ2ZsZXgnOiBudWxsKTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKCgoKF9kZWNsMF8xNy5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE3LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMTcuZGlzYWJsZWxhYmVsKT8gJzEwMCc6IG51bGwpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzE3Lm5hbWUsJycpO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSAoX2RlY2wwXzE3LmludmFsaWQgJiYgKF9kZWNsMF8xNy5kaXJ0eSB8fCBfZGVjbDBfMTcudG91Y2hlZCkpO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gKF9kZWNsMF8xNy5pbnZhbGlkICYmIChfZGVjbDBfMTcuZGlydHkgfHwgX2RlY2wwXzE3LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8xMDtcbiAgY29uc3QgY3VyclZhbF8xMTphbnkgPSAoX2RlY2wwXzE3LmludmFsaWQgJiYgKF9kZWNsMF8xNy5kaXJ0eSB8fCBfZGVjbDBfMTcudG91Y2hlZCkpO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9IF9kZWNsMF8xNy5kYXRhO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9ICgoX2RlY2wwXzE3LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8xNy5pbnZhbGlkKSAmJiAoX2RlY2wwXzE3LmRpcnR5IHx8IF9kZWNsMF8xNy50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTM7XG4gIGNvbnN0IGN1cnJWYWxfMTQ6YW55ID0gKChfZGVjbDBfMTcuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8xNy5oZWxwdGV4dCk7XG4gIGN1cnJWYWxfMTQ7XG4gIGNvbnN0IGN1cnJWYWxfMTU6YW55ID0gKCgoX2RlY2wwXzE3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTcuaGVscHRleHQpICYmIF9kZWNsMF8xNy5kaXNhYmxlbGFiZWwpO1xuICBjdXJyVmFsXzE1O1xufVxuIl19
|
|
@@ -1702,7 +1702,7 @@ class SacTreeviewComponent extends SacTreeviewCommon {
|
|
|
1702
1702
|
SacTreeviewComponent.decorators = [
|
|
1703
1703
|
{ type: Component, args: [{
|
|
1704
1704
|
selector: 'sac-treeview',
|
|
1705
|
-
template: "<div\r\n class=\"row mb-3\"\r\n [class.g-0]=\"disablelabel\"\r\n [class.has-error]=\"invalid && (dirty || touched)\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{ name }}label\"\r\n for=\"{{ name }}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n [class.required]=\"isrequired\">\r\n <span class=\"text\">{{ label }}</span>\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n [class.has-error]=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n <div [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <div [style.width.%]=\"helptextmode === 'tooltip' && helptext && disablelabel ? '100' : null\">\r\n <table\r\n class=\"table table-hover table-condensed\"\r\n id=\"{{ name }}\"\r\n style=\"table-layout: fixed\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [class.border]=\"invalid && (dirty || touched)\"\r\n [class.border-danger]=\"invalid && (dirty || touched)\">\r\n <tbody>\r\n <ng-container *ngFor=\"let node of data\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"treeItem\"\r\n [ngTemplateOutletContext]=\"{ node: node, deep: 0 }\">\r\n </ng-template>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"help-block\">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n\r\n <p\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\">\r\n {{ helptext }}\r\n </p>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\r\n class=\"form-control-static\"\r\n style=\"margin-left: 5px\">\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px; margin-right: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template\r\n #treeItem\r\n let-node=\"node\"\r\n let-deep=\"deep\">\r\n <tr
|
|
1705
|
+
template: "<div\r\n class=\"row mb-3\"\r\n [class.g-0]=\"disablelabel\"\r\n [class.has-error]=\"invalid && (dirty || touched)\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{ name }}label\"\r\n for=\"{{ name }}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n [class.required]=\"isrequired\">\r\n <span class=\"text\">{{ label }}</span>\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n [class.has-error]=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n <div [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <div [style.width.%]=\"helptextmode === 'tooltip' && helptext && disablelabel ? '100' : null\">\r\n <table\r\n class=\"table table-hover table-condensed\"\r\n id=\"{{ name }}\"\r\n style=\"table-layout: fixed\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [class.border]=\"invalid && (dirty || touched)\"\r\n [class.border-danger]=\"invalid && (dirty || touched)\">\r\n <tbody>\r\n <ng-container *ngFor=\"let node of data\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"treeItem\"\r\n [ngTemplateOutletContext]=\"{ node: node, deep: 0, path: '', textpath: '' }\">\r\n </ng-template>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"help-block\">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n\r\n <p\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\">\r\n {{ helptext }}\r\n </p>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\r\n class=\"form-control-static\"\r\n style=\"margin-left: 5px\">\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px; margin-right: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template\r\n #treeItem\r\n let-node=\"node\"\r\n let-deep=\"deep\"\r\n let-path=\"path\"\r\n let-textpath=\"textpath\">\r\n <tr\r\n [class.active]=\"isSelectedState(node)\"\r\n attr.data-path=\"{{ path }}/{{ getStringField(node, attrid) }}\"\r\n attr.data-textpath=\"{{ textpath }}/{{ getStringField(node, attrlabel) }}\">\r\n <td>\r\n <div\r\n class=\"py-1 px-2 d-flex align-items-center\"\r\n style=\"display: flex; flex-direction: row; cursor: pointer; align-items: center\"\r\n (mouseenter)=\"setHoverState(node, true)\"\r\n (mouseleave)=\"setHoverState(node, false)\">\r\n <div\r\n style=\"margin-right: 15px\"\r\n *ngFor=\"let i of count(deep)\">\r\n </div>\r\n\r\n <div\r\n (click)=\"onNodeClicked(node)\"\r\n *ngIf=\"expandedstate === 'true' || expandedstate === true\"\r\n style=\"margin-right: 15px\"\r\n [ngClass]=\"!hasChildren(node) ? iconFolderEmpty : !isExpandedState(node) ? iconFolderCollabsed : isExpandedState(node) ? iconFolderOpen : ''\">\r\n </div>\r\n\r\n <div\r\n (click)=\"onNodeClicked(node)\"\r\n *ngIf=\"attricon && getStringField(node, attricon)\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"templateicon || defaultTemplateIcon\"\r\n [ngTemplateOutletContext]=\"{ node: node }\">\r\n </ng-template>\r\n </div>\r\n\r\n <div\r\n (click)=\"onNodeClicked(node)\"\r\n style=\"padding-top: 7px; padding-bottom: 7px; flex-grow: 1\"\r\n [style.max-width.%]=\"enableellipsis ? '100' : null\"\r\n [style.overflow]=\"enableellipsis ? 'hidden' : null\"\r\n [style.text-overflow]=\"enableellipsis ? 'ellipsis' : null\"\r\n [style.white-space]=\"enableellipsis ? 'nowrap' : null\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"templatelabel || defaultTemplateLabel\"\r\n [ngTemplateOutletContext]=\"{ node: node, label: getStringField(node, attrlabel) }\">\r\n </ng-template>\r\n </div>\r\n\r\n <div\r\n (click)=\"setSelectedState(node)\"\r\n style=\"flex-shrink: 0\"\r\n *ngIf=\"!isDisabledState(node) && (showactionalways || isSelectedState(node) || isHoverState(node))\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"templateaction || defaultTemplateAction\"\r\n [ngTemplateOutletContext]=\"{ node: node, actionhandler: onActionClicked.bind(this) }\">\r\n </ng-template>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"isExpandedState(node)\">\r\n <ng-template\r\n *ngFor=\"let child of getChildren(node)\"\r\n [ngTemplateOutlet]=\"treeItem\"\r\n [ngTemplateOutletContext]=\"{\r\n node: child,\r\n deep: deep + 1,\r\n path: path + '/' + getStringField(node, attrid),\r\n textpath: textpath + '/' + getStringField(node, attrlabel)\r\n }\">\r\n </ng-template>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template\r\n #defaultTemplateLabel\r\n let-label=\"label\"\r\n let-node=\"node\">\r\n <span [title]=\"label\">\r\n {{ label }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template\r\n #defaultTemplateIcon\r\n let-node=\"node\">\r\n <div\r\n style=\"margin-right: 15px\"\r\n [ngClass]=\"getStringField(node, attricon)\">\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template\r\n #defaultTemplateAction\r\n let-node=\"node\"\r\n let-actionhandler=\"actionhandler\">\r\n <a\r\n class=\"btn btn-link text-secondary\"\r\n (click)=\"actionhandler({ action: 'default', node: node })\">\r\n <i [class]=\"iconAction\"></i>\r\n </a>\r\n</ng-template>\r\n",
|
|
1706
1706
|
providers: [
|
|
1707
1707
|
{
|
|
1708
1708
|
provide: NG_VALUE_ACCESSOR,
|