@eo-sdk/client 11.14.30 → 11.14.31
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.
|
@@ -11,10 +11,10 @@ export class AboutStateComponent {
|
|
|
11
11
|
this.config = config;
|
|
12
12
|
this.titleService = titleService;
|
|
13
13
|
this.translate = translate;
|
|
14
|
-
this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/styles", "version": "31.3.2", "license": "MIT" }, { "name": "@angular/animations", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/cdk", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/common", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/compiler", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/core", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/forms", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/router", "version": "18.1.0", "license": "MIT" }, { "name": "@carbon/charts-angular", "version": "1.16.3", "license": "Apache-2.0" }, { "name": "@eo-sdk/core", "version": "11.14.
|
|
14
|
+
this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/styles", "version": "31.3.2", "license": "MIT" }, { "name": "@angular/animations", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/cdk", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/common", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/compiler", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/core", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/forms", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/router", "version": "18.1.0", "license": "MIT" }, { "name": "@carbon/charts-angular", "version": "1.16.3", "license": "Apache-2.0" }, { "name": "@eo-sdk/core", "version": "11.14.30", "license": "MIT" }, { "name": "@ngneat/until-destroy", "version": "10.0.0", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "18.0.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "15.0.0", "license": "SEE LICENSE IN LICENSE" }, { "name": "@yuuvis/components", "version": "18.1.23", "license": "MIT" }, { "name": "@yuuvis/widget-grid", "version": "18.0.0", "license": "MIT" }, { "name": "core-js", "version": "2.6.12", "license": "MIT" }, { "name": "fast-xml-parser", "version": "5.4.1", "license": "MIT" }, { "name": "file-saver", "version": "2.0.5", "license": "MIT" }, { "name": "font-awesome", "version": "4.7.0", "license": "(OFL-1.1 AND MIT)" }, { "name": "karma-coverage-istanbul-reporter", "version": "3.0.3", "license": "MIT" }, { "name": "lodash-es", "version": "4.17.21", "license": "MIT" }, { "name": "moment", "version": "2.30.1", "license": "MIT" }, { "name": "ngx-toastr", "version": "19.0.0", "license": "MIT" }, { "name": "rxjs", "version": "7.8.1", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.6.3", "license": "0BSD" }, { "name": "zone.js", "version": "0.14.7", "license": "MIT" }];
|
|
15
15
|
this.ctrl = {
|
|
16
16
|
componentName: 'yuuvis® RAD client',
|
|
17
|
-
componentVersion: '11.14.
|
|
17
|
+
componentVersion: '11.14.31',
|
|
18
18
|
productName: '',
|
|
19
19
|
productVersion: ''
|
|
20
20
|
};
|
|
@@ -83,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
83
83
|
type: Component,
|
|
84
84
|
args: [{ selector: 'eo-about-state', template: "<div class=\"eo-about-state\">\n\n <div class=\"about\">\n <div class=\"header\" [style.background-image]=\"backgroundImage\">\n <img [src]=\"headerLogo\"/>\n </div>\n\n <div class=\"body\">\n <div class=\"claim\" translate>eo.help.about.claim</div>\n\n <div class=\"wrap\">\n <table>\n <tbody>\n <tr>\n <th translate>eo.help.about.component.label</th>\n <td>{{ctrl.componentName}}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.component.version.label</th>\n <td>{{ctrl.componentVersion}}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.product.label</th>\n <td>{{ ctrl.productName }}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.product.version.label</th>\n <td>{{ ctrl.productVersion }}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.producer.label</th>\n <td translate>eo.help.about.producer.text</td>\n </tr>\n </tbody>\n </table>\n </div>\n\n\n <h2 translate>eo.help.license.title</h2>\n <p translate>eo.help.license.intro</p>\n <div class=\"showLic\" (click)=\"licenseShow = !licenseShow\">\n <span class=\"toggle\"><span translate>eo.help.license.title</span><span class=\"toggle-indicator\">{{licenseShow ? '-' : '+'}}</span></span></div>\n <div class=\"licenses\" *ngIf=\"licenseShow\">\n <div class=\"lib\" *ngFor=\"let lib of __libraries__; trackBy: trackByFn\">\n <div class=\"name\">{{lib.name}}</div>\n <div class=\"lic\">\n <a href=\"{{licenses[lib.license].url}}\" target=\"_blank\" *ngIf=\"licenses[lib.license].url\">{{licenses[lib.license].label}}</a>\n <span *ngIf=\"!licenses[lib.license].url\">{{licenses[lib.license].label}}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n</div>\n", styles: [":host{--about-header-height: 300px;position:absolute;inset:0;display:flex;flex-flow:row;justify-content:center;overflow-y:auto}.eo-about-state{box-sizing:border-box;width:800px;display:flex;flex-flow:column}@media screen and (max-width: 832px){.eo-about-state{margin:0;min-width:inherit;width:100%}}.eo-about-state .about{box-shadow:0 2px 5px #0003;background:var(--panel-background);margin:var(--app-pane-padding)}.eo-about-state .about .header{position:relative;height:var(--about-header-height);background-size:cover}.eo-about-state .about .header:after{content:\"\";position:absolute;inset:0;background-color:rgba(var(--color-accent-rgb),.8)}.eo-about-state .about .header img{right:8%;bottom:18%;position:absolute;z-index:20;width:40%}.eo-about-state .about .body{padding:var(--app-pane-padding)}.eo-about-state .about .body .claim{padding:var(--app-pane-padding) 0}.eo-about-state .about .body h2{margin:1.5em 0 0;color:var(--text-color-caption);font-weight:var(--font-weight-light);font-size:var(--font-title)}.eo-about-state .about .body .wrap{display:flex;flex-flow:row wrap}.eo-about-state .about .body ul.links{color:var(--color-accent);list-style-type:none}.eo-about-state .about .body ul.links li{padding:2px 0}.eo-about-state .about .body ul.links a{text-decoration:none;color:var(--color-accent)}.eo-about-state .about .body ul.links a:hover{text-decoration:underline}.eo-about-state .about .body table{margin:var(--app-pane-padding);padding:calc(var(--app-pane-padding) / 4) 0;background-color:rgba(var(--color-black-rgb),.06);border-radius:2px}.eo-about-state .about .body table th{display:flex;flex-flow:column;align-items:flex-start;justify-content:center;font-size:var(--font-hint);color:var(--text-color-caption)}.eo-about-state .about .body table th,.eo-about-state .about .body table td{padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 2)}.eo-about-state .about .body .showLic span.toggle{color:var(--color-accent);display:inline-block;padding:0 4px 2px;border-radius:4px;border:1px solid var(--color-accent);cursor:pointer}.eo-about-state .about .body .showLic .toggle-indicator{padding:0 4px}.eo-about-state .about .body .licenses{padding-top:var(--app-pane-padding)}.eo-about-state .about .body .licenses .lib{display:flex;flex-flow:row nowrap;padding:calc(var(--app-pane-padding) / 4);border-top:1px solid var(--list-item-border-color)}.eo-about-state .about .body .licenses .lib .name{flex:1 1 auto}.eo-about-state .about .body .licenses .lib .lic{flex:0 0 auto;font-size:var(--font-hint);color:var(--text-color-caption)}.eo-about-state .about .body .licenses .lib .lic a{text-decoration:none;border-radius:2px;border:1px solid var(--color-accent);color:var(--color-accent);display:inline-block;padding:2px 4px;background-color:rgba(var(--color-black-rgb),.06);line-height:1em}\n"] }]
|
|
85
85
|
}], ctorParameters: () => [{ type: i1.BackendService }, { type: i1.UserService }, { type: i1.Config }, { type: i2.PageTitleService }, { type: i1.TranslateService }] });
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJvdXQtc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvYWJvdXQtc3RhdGUvYWJvdXQtc3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvYWJvdXQtc3RhdGUvYWJvdXQtc3RhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBU3hDLE1BQU0sT0FBTyxtQkFBbUI7SUFzRDlCLFlBQW9CLE9BQXVCLEVBQVUsV0FBd0IsRUFBVSxNQUFjLEVBQVUsWUFBOEIsRUFBUyxTQUEyQjtRQUE3SixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQUFTLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBakRqTCxrQkFBYSxHQUFHLENBQUMsRUFBQyxNQUFNLEVBQUMsNEJBQTRCLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsMENBQTBDLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMseUJBQXlCLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsK0JBQStCLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsMkJBQTJCLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMscUJBQXFCLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLG1CQUFtQixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGVBQWUsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxnQkFBZ0IsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQywyQkFBMkIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxtQ0FBbUMsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxpQkFBaUIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyx3QkFBd0IsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxZQUFZLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsdUJBQXVCLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsd0JBQXdCLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMscUJBQXFCLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsd0JBQXdCLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxvQkFBb0IsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxxQkFBcUIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsWUFBWSxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxtQkFBbUIsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGtDQUFrQyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFdBQVcsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsWUFBWSxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxZQUFZLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxP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OzhHQTlFVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixzRENUaEMsbzhEQXVEQTs7MkZEOUNhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1VzZXJTZXJ2aWNlLCBDb25maWcsIEJhY2tlbmRTZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtQYWdlVGl0bGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS90aXRsZS9wYWdlLXRpdGxlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1hYm91dC1zdGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hYm91dC1zdGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Fib3V0LXN0YXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWJvdXRTdGF0ZUNvbXBvbmVudCB7XG5cbiAgYmFja2dyb3VuZEltYWdlOiBzdHJpbmc7XG4gIGhlYWRlckxvZ286IHN0cmluZztcbiAgbGljZW5zZVNob3c6IGJvb2xlYW47XG4gIF9fbGlicmFyaWVzX18gPSBbe1wibmFtZVwiOlwiQGFnLWdyaWQtY29tbXVuaXR5L2FuZ3VsYXJcIixcInZlcnNpb25cIjpcIjMxLjMuMlwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhZy1ncmlkLWNvbW11bml0eS9jbGllbnQtc2lkZS1yb3ctbW9kZWxcIixcInZlcnNpb25cIjpcIjMxLjMuMlwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhZy1ncmlkLWNvbW11bml0eS9jb3JlXCIsXCJ2ZXJzaW9uXCI6XCIzMS4zLjJcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYWctZ3JpZC1jb21tdW5pdHkvY3N2LWV4cG9ydFwiLFwidmVyc2lvblwiOlwiMzEuMy4yXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFnLWdyaWQtY29tbXVuaXR5L3N0eWxlc1wiLFwidmVyc2lvblwiOlwiMzEuMy4yXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiLFwidmVyc2lvblwiOlwiMTguMS4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvY2RrXCIsXCJ2ZXJzaW9uXCI6XCIxOC4xLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYW5ndWxhci9jb21tb25cIixcInZlcnNpb25cIjpcIjE4LjEuMFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhbmd1bGFyL2NvbXBpbGVyXCIsXCJ2ZXJzaW9uXCI6XCIxOC4xLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYW5ndWxhci9jb3JlXCIsXCJ2ZXJzaW9uXCI6XCIxOC4xLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYW5ndWxhci9mb3Jtc1wiLFwidmVyc2lvblwiOlwiMTguMS4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiLFwidmVyc2lvblwiOlwiMTguMS4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci1keW5hbWljXCIsXCJ2ZXJzaW9uXCI6XCIxOC4xLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYW5ndWxhci9yb3V0ZXJcIixcInZlcnNpb25cIjpcIjE4LjEuMFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBjYXJib24vY2hhcnRzLWFuZ3VsYXJcIixcInZlcnNpb25cIjpcIjEuMTYuM1wiLFwibGljZW5zZVwiOlwiQXBhY2hlLTIuMFwifSx7XCJuYW1lXCI6XCJAZW8tc2RrL2NvcmVcIixcInZlcnNpb25cIjpcIjExLjE0LjI5XCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQG5nbmVhdC91bnRpbC1kZXN0cm95XCIsXCJ2ZXJzaW9uXCI6XCIxMC4wLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAbmd4LXB3YS9sb2NhbC1zdG9yYWdlXCIsXCJ2ZXJzaW9uXCI6XCIxOC4wLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCIsXCJ2ZXJzaW9uXCI6XCIxNS4wLjBcIixcImxpY2Vuc2VcIjpcIlNFRSBMSUNFTlNFIElOIExJQ0VOU0VcIn0se1wibmFtZVwiOlwiQHl1dXZpcy9jb21wb25lbnRzXCIsXCJ2ZXJzaW9uXCI6XCIxOC4xLjIzXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQHl1dXZpcy93aWRnZXQtZ3JpZFwiLFwidmVyc2lvblwiOlwiMTguMC4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiY29yZS1qc1wiLFwidmVyc2lvblwiOlwiMi42LjEyXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiZmFzdC14bWwtcGFyc2VyXCIsXCJ2ZXJzaW9uXCI6XCI1LjQuMVwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcImZpbGUtc2F2ZXJcIixcInZlcnNpb25cIjpcIjIuMC41XCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiZm9udC1hd2Vzb21lXCIsXCJ2ZXJzaW9uXCI6XCI0LjcuMFwiLFwibGljZW5zZVwiOlwiKE9GTC0xLjEgQU5EIE1JVClcIn0se1wibmFtZVwiOlwia2FybWEtY292ZXJhZ2UtaXN0YW5idWwtcmVwb3J0ZXJcIixcInZlcnNpb25cIjpcIjMuMC4zXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwibG9kYXNoLWVzXCIsXCJ2ZXJzaW9uXCI6XCI0LjE3LjIxXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwibW9tZW50XCIsXCJ2ZXJzaW9uXCI6XCIyLjMwLjFcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJuZ3gtdG9hc3RyXCIsXCJ2ZXJzaW9uXCI6XCIxOS4wLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJyeGpzXCIsXCJ2ZXJzaW9uXCI6XCI3LjguMVwiLFwibGljZW5zZVwiOlwiQXBhY2hlLTIuMFwifSx7XCJuYW1lXCI6XCJ0c2xpYlwiLFwidmVyc2lvblwiOlwiMi42LjNcIixcImxpY2Vuc2VcIjpcIjBCU0RcIn0se1wibmFtZVwiOlwiem9uZS5qc1wiLFwidmVyc2lvblwiOlwiMC4xNC43XCIsXCJsaWNlbnNlXCI6XCJNSVRcIn1dO1xuICB1c2VyTGFuZzogc3RyaW5nO1xuXG4gIGN0cmwgPSB7XG4gICAgY29tcG9uZW50TmFtZTogJ3l1dXZpc8KuIFJBRCBjbGllbnQnLFxuICAgIGNvbXBvbmVudFZlcnNpb246ICcxMS4xNC4zMCcsXG4gICAgcHJvZHVjdE5hbWU6ICcnLFxuICAgIHByb2R1Y3RWZXJzaW9uOiAnJ1xuICB9O1xuXG4gIGxpY2Vuc2VzID0ge1xuICAgICdNSVQnOiB7XG4gICAgICAnbGFiZWwnOiAnTUlUJyxcbiAgICAgICd1cmwnOiAnaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCdcbiAgICB9LFxuICAgICdBcGFjaGUtMi4wJzoge1xuICAgICAgJ2xhYmVsJzogJ0FwYWNoZSAyLjAnLFxuICAgICAgJ3VybCc6ICdodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAnXG4gICAgfSxcbiAgICAnQlNELTMtQ2xhdXNlLUNsZWFyJzoge1xuICAgICAgJ2xhYmVsJzogJ0JTRCAzLUNsYXVzZScsXG4gICAgICAndXJsJzogJ2h0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UnXG4gICAgfSxcbiAgICAnQ0MwLTEuMCc6IHtcbiAgICAgICdsYWJlbCc6ICdDQzAgMS4wJyxcbiAgICAgICd1cmwnOiAnaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8nXG4gICAgfSxcbiAgICAnKE9GTC0xLjEgQU5EIE1JVCknOiB7XG4gICAgICAnbGFiZWwnOiAnTUlUJyxcbiAgICAgICd1cmwnOiAnaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCdcbiAgICB9LFxuICAgICdTSUxPRkwtMS4xJzoge1xuICAgICAgJ2xhYmVsJzogJ1NJTCBPcGVuIEZvbnQgTGljZW5zZSAxLjEnLFxuICAgICAgJ3VybCc6ICdodHRwOi8vc2NyaXB0cy5zaWwub3JnL09GTF93ZWInXG4gICAgfSxcbiAgICAnQ29tbWVyY2lhbCc6IHtcbiAgICAgICdsYWJlbCc6ICdDb21tZXJjaWFsJ1xuICAgIH0sXG4gICAgJ2FnLWdyaWQnOiB7XG4gICAgICAnbGFiZWwnOiAnYWctR3JpZC1FbnRlcnByaXNlIFNvZnR3YXJlIExpY2VuY2UgQWdyZWVtZW50IFZlcnNpb24gMS43JyxcbiAgICAgICd1cmwnOiAnaHR0cHM6Ly9naXRodWIuY29tL2Nlb2x0ZXIvYWctZ3JpZC1lbnRlcnByaXNlL2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWQnXG4gICAgfSxcbiAgICAnMEJTRCc6IHtcbiAgICAgICdsYWJlbCc6ICdaZXJvLUNsYXVzZSBCU0QnLFxuICAgICAgJ3VybCc6ICdodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvMEJTRCdcbiAgICB9XG4gIH07XG5cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLCBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSwgcHJpdmF0ZSBjb25maWc6IENvbmZpZywgcHJpdmF0ZSB0aXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2UsIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRCYXNlVGl0bGUodGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2lkZWJhci5oZWxwLmFib3V0LnRvb2x0aXAnKSk7XG4gICAgdGhpcy5fX2xpYnJhcmllc19fID0gdGhpcy5fX2xpYnJhcmllc19fLmZpbHRlcihsaWIgPT4gdGhpcy5saWNlbnNlc1tsaWIubGljZW5zZV0pO1xuICAgIHRoaXMuZ2V0VXNlckxhbmcoKTtcbiAgICB0aGlzLmJhY2tncm91bmRJbWFnZSA9IGB1cmwoJHt0aGlzLmNvbmZpZy5nZXREYXNoYm9hcmRCYWNrZ3JvdW5kSW1hZ2UoKX0pYDtcbiAgICB0aGlzLmhlYWRlckxvZ28gPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ2Fib3V0LmhlYWRlckxvZ28nKTtcbiAgICBpZiAoIXRoaXMuaGVhZGVyTG9nbykge1xuICAgICAgdGhpcy5oZWFkZXJMb2dvID0gdGhpcy5jb25maWcuZ2V0UmF3KCdhcHBMb2dvJyk7XG4gICAgfVxuXG4gICAgdGhpcy5iYWNrZW5kLmdldEpzb24oJy9zeXN0ZW0vaW5mbycpLnN1YnNjcmliZShpbmZvID0+IHtcbiAgICAgIHRoaXMuY3RybC5wcm9kdWN0TmFtZSA9IGluZm8ucHJvZHVjdC5uYW1lO1xuICAgICAgdGhpcy5jdHJsLnByb2R1Y3RWZXJzaW9uID0gaW5mby5wcm9kdWN0LnByb2R1Y3R2ZXJzaW9uO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0VXNlckxhbmcoKSB7XG4gICAgdGhpcy51c2VyU2VydmljZVxuICAgICAgLnVzZXIkXG4gICAgICAuc3Vic2NyaWJlKGRhdGEgPT4gdGhpcy51c2VyTGFuZyA9IGRhdGEudXNlclNldHRpbmdzLmNsaWVudGxvY2FsZSk7XG4gIH1cblxuICB0cmFja0J5Rm4oaW5kZXgsIGl0ZW0pOiBudW1iZXIge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVvLWFib3V0LXN0YXRlXCI+XG5cbiAgPGRpdiBjbGFzcz1cImFib3V0XCI+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlclwiIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cImJhY2tncm91bmRJbWFnZVwiPlxuICAgICAgPGltZyBbc3JjXT1cImhlYWRlckxvZ29cIi8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYm9keVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNsYWltXCIgdHJhbnNsYXRlPmVvLmhlbHAuYWJvdXQuY2xhaW08L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cIndyYXBcIj5cbiAgICAgICAgPHRhYmxlPlxuICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggdHJhbnNsYXRlPmVvLmhlbHAuYWJvdXQuY29tcG9uZW50LmxhYmVsPC90aD5cbiAgICAgICAgICAgIDx0ZD57e2N0cmwuY29tcG9uZW50TmFtZX19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCB0cmFuc2xhdGU+ZW8uaGVscC5hYm91dC5jb21wb25lbnQudmVyc2lvbi5sYWJlbDwvdGg+XG4gICAgICAgICAgICA8dGQ+e3tjdHJsLmNvbXBvbmVudFZlcnNpb259fTwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggdHJhbnNsYXRlPmVvLmhlbHAuYWJvdXQucHJvZHVjdC5sYWJlbDwvdGg+XG4gICAgICAgICAgICA8dGQ+e3sgY3RybC5wcm9kdWN0TmFtZSB9fTwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggdHJhbnNsYXRlPmVvLmhlbHAuYWJvdXQucHJvZHVjdC52ZXJzaW9uLmxhYmVsPC90aD5cbiAgICAgICAgICAgIDx0ZD57eyBjdHJsLnByb2R1Y3RWZXJzaW9uIH19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCB0cmFuc2xhdGU+ZW8uaGVscC5hYm91dC5wcm9kdWNlci5sYWJlbDwvdGg+XG4gICAgICAgICAgICA8dGQgdHJhbnNsYXRlPmVvLmhlbHAuYWJvdXQucHJvZHVjZXIudGV4dDwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgPC9kaXY+XG5cblxuICAgICAgPGgyIHRyYW5zbGF0ZT5lby5oZWxwLmxpY2Vuc2UudGl0bGU8L2gyPlxuICAgICAgPHAgdHJhbnNsYXRlPmVvLmhlbHAubGljZW5zZS5pbnRybzwvcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJzaG93TGljXCIgKGNsaWNrKT1cImxpY2Vuc2VTaG93ID0gIWxpY2Vuc2VTaG93XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidG9nZ2xlXCI+PHNwYW4gdHJhbnNsYXRlPmVvLmhlbHAubGljZW5zZS50aXRsZTwvc3Bhbj48c3BhbiBjbGFzcz1cInRvZ2dsZS1pbmRpY2F0b3JcIj57e2xpY2Vuc2VTaG93ID8gJy0nIDogJysnfX08L3NwYW4+PC9zcGFuPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpY2Vuc2VzXCIgKm5nSWY9XCJsaWNlbnNlU2hvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGliXCIgKm5nRm9yPVwibGV0IGxpYiBvZiBfX2xpYnJhcmllc19fOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPnt7bGliLm5hbWV9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaWNcIj5cbiAgICAgICAgICAgIDxhIGhyZWY9XCJ7e2xpY2Vuc2VzW2xpYi5saWNlbnNlXS51cmx9fVwiIHRhcmdldD1cIl9ibGFua1wiICpuZ0lmPVwibGljZW5zZXNbbGliLmxpY2Vuc2VdLnVybFwiPnt7bGljZW5zZXNbbGliLmxpY2Vuc2VdLmxhYmVsfX08L2E+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFsaWNlbnNlc1tsaWIubGljZW5zZV0udXJsXCI+e3tsaWNlbnNlc1tsaWIubGljZW5zZV0ubGFiZWx9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuIl19
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJvdXQtc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvYWJvdXQtc3RhdGUvYWJvdXQtc3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvYWJvdXQtc3RhdGUvYWJvdXQtc3RhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBU3hDLE1BQU0sT0FBTyxtQkFBbUI7SUFzRDlCLFlBQW9CLE9BQXVCLEVBQVUsV0FBd0IsRUFBVSxNQUFjLEVBQVUsWUFBOEIsRUFBUyxTQUEyQjtRQUE3SixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQUFTLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBakRqTCxrQkFBYSxHQUFHLENBQUMsRUFBQyxNQUFNLEVBQUMsNEJBQTRCLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsMENBQTBDLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMseUJBQXlCLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsK0JBQStCLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsMkJBQTJCLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMscUJBQXFCLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLG1CQUFtQixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGVBQWUsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxnQkFBZ0IsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQywyQkFBMkIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxtQ0FBbUMsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxpQkFBaUIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyx3QkFBd0IsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxZQUFZLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsdUJBQXVCLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsd0JBQXdCLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMscUJBQXFCLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsd0JBQXdCLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxvQkFBb0IsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxxQkFBcUIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsWUFBWSxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxtQkFBbUIsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGtDQUFrQyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFdBQVcsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsWUFBWSxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxZQUFZLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxP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OzhHQTlFVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixzRENUaEMsbzhEQXVEQTs7MkZEOUNhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1VzZXJTZXJ2aWNlLCBDb25maWcsIEJhY2tlbmRTZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtQYWdlVGl0bGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS90aXRsZS9wYWdlLXRpdGxlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1hYm91dC1zdGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hYm91dC1zdGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Fib3V0LXN0YXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWJvdXRTdGF0ZUNvbXBvbmVudCB7XG5cbiAgYmFja2dyb3VuZEltYWdlOiBzdHJpbmc7XG4gIGhlYWRlckxvZ286IHN0cmluZztcbiAgbGljZW5zZVNob3c6IGJvb2xlYW47XG4gIF9fbGlicmFyaWVzX18gPSBbe1wibmFtZVwiOlwiQGFnLWdyaWQtY29tbXVuaXR5L2FuZ3VsYXJcIixcInZlcnNpb25cIjpcIjMxLjMuMlwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhZy1ncmlkLWNvbW11bml0eS9jbGllbnQtc2lkZS1yb3ctbW9kZWxcIixcInZlcnNpb25cIjpcIjMxLjMuMlwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhZy1ncmlkLWNvbW11bml0eS9jb3JlXCIsXCJ2ZXJzaW9uXCI6XCIzMS4zLjJcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYWctZ3JpZC1jb21tdW5pdHkvY3N2LWV4cG9ydFwiLFwidmVyc2lvblwiOlwiMzEuMy4yXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFnLWdyaWQtY29tbXVuaXR5L3N0eWxlc1wiLFwidmVyc2lvblwiOlwiMzEuMy4yXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiLFwidmVyc2lvblwiOlwiMTguMS4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvY2RrXCIsXCJ2ZXJzaW9uXCI6XCIxOC4xLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYW5ndWxhci9jb21tb25cIixcInZlcnNpb25cIjpcIjE4LjEuMFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhbmd1bGFyL2NvbXBpbGVyXCIsXCJ2ZXJzaW9uXCI6XCIxOC4xLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYW5ndWxhci9jb3JlXCIsXCJ2ZXJzaW9uXCI6XCIxOC4xLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYW5ndWxhci9mb3Jtc1wiLFwidmVyc2lvblwiOlwiMTguMS4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiLFwidmVyc2lvblwiOlwiMTguMS4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci1keW5hbWljXCIsXCJ2ZXJzaW9uXCI6XCIxOC4xLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYW5ndWxhci9yb3V0ZXJcIixcInZlcnNpb25cIjpcIjE4LjEuMFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBjYXJib24vY2hhcnRzLWFuZ3VsYXJcIixcInZlcnNpb25cIjpcIjEuMTYuM1wiLFwibGljZW5zZVwiOlwiQXBhY2hlLTIuMFwifSx7XCJuYW1lXCI6XCJAZW8tc2RrL2NvcmVcIixcInZlcnNpb25cIjpcIjExLjE0LjMwXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQG5nbmVhdC91bnRpbC1kZXN0cm95XCIsXCJ2ZXJzaW9uXCI6XCIxMC4wLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAbmd4LXB3YS9sb2NhbC1zdG9yYWdlXCIsXCJ2ZXJzaW9uXCI6XCIxOC4wLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCIsXCJ2ZXJzaW9uXCI6XCIxNS4wLjBcIixcImxpY2Vuc2VcIjpcIlNFRSBMSUNFTlNFIElOIExJQ0VOU0VcIn0se1wibmFtZVwiOlwiQHl1dXZpcy9jb21wb25lbnRzXCIsXCJ2ZXJzaW9uXCI6XCIxOC4xLjIzXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQHl1dXZpcy93aWRnZXQtZ3JpZFwiLFwidmVyc2lvblwiOlwiMTguMC4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiY29yZS1qc1wiLFwidmVyc2lvblwiOlwiMi42LjEyXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiZmFzdC14bWwtcGFyc2VyXCIsXCJ2ZXJzaW9uXCI6XCI1LjQuMVwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcImZpbGUtc2F2ZXJcIixcInZlcnNpb25cIjpcIjIuMC41XCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiZm9udC1hd2Vzb21lXCIsXCJ2ZXJzaW9uXCI6XCI0LjcuMFwiLFwibGljZW5zZVwiOlwiKE9GTC0xLjEgQU5EIE1JVClcIn0se1wibmFtZVwiOlwia2FybWEtY292ZXJhZ2UtaXN0YW5idWwtcmVwb3J0ZXJcIixcInZlcnNpb25cIjpcIjMuMC4zXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwibG9kYXNoLWVzXCIsXCJ2ZXJzaW9uXCI6XCI0LjE3LjIxXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwibW9tZW50XCIsXCJ2ZXJzaW9uXCI6XCIyLjMwLjFcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJuZ3gtdG9hc3RyXCIsXCJ2ZXJzaW9uXCI6XCIxOS4wLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJyeGpzXCIsXCJ2ZXJzaW9uXCI6XCI3LjguMVwiLFwibGljZW5zZVwiOlwiQXBhY2hlLTIuMFwifSx7XCJuYW1lXCI6XCJ0c2xpYlwiLFwidmVyc2lvblwiOlwiMi42LjNcIixcImxpY2Vuc2VcIjpcIjBCU0RcIn0se1wibmFtZVwiOlwiem9uZS5qc1wiLFwidmVyc2lvblwiOlwiMC4xNC43XCIsXCJsaWNlbnNlXCI6XCJNSVRcIn1dO1xuICB1c2VyTGFuZzogc3RyaW5nO1xuXG4gIGN0cmwgPSB7XG4gICAgY29tcG9uZW50TmFtZTogJ3l1dXZpc8KuIFJBRCBjbGllbnQnLFxuICAgIGNvbXBvbmVudFZlcnNpb246ICcxMS4xNC4zMScsXG4gICAgcHJvZHVjdE5hbWU6ICcnLFxuICAgIHByb2R1Y3RWZXJzaW9uOiAnJ1xuICB9O1xuXG4gIGxpY2Vuc2VzID0ge1xuICAgICdNSVQnOiB7XG4gICAgICAnbGFiZWwnOiAnTUlUJyxcbiAgICAgICd1cmwnOiAnaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCdcbiAgICB9LFxuICAgICdBcGFjaGUtMi4wJzoge1xuICAgICAgJ2xhYmVsJzogJ0FwYWNoZSAyLjAnLFxuICAgICAgJ3VybCc6ICdodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAnXG4gICAgfSxcbiAgICAnQlNELTMtQ2xhdXNlLUNsZWFyJzoge1xuICAgICAgJ2xhYmVsJzogJ0JTRCAzLUNsYXVzZScsXG4gICAgICAndXJsJzogJ2h0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UnXG4gICAgfSxcbiAgICAnQ0MwLTEuMCc6IHtcbiAgICAgICdsYWJlbCc6ICdDQzAgMS4wJyxcbiAgICAgICd1cmwnOiAnaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8nXG4gICAgfSxcbiAgICAnKE9GTC0xLjEgQU5EIE1JVCknOiB7XG4gICAgICAnbGFiZWwnOiAnTUlUJyxcbiAgICAgICd1cmwnOiAnaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCdcbiAgICB9LFxuICAgICdTSUxPRkwtMS4xJzoge1xuICAgICAgJ2xhYmVsJzogJ1NJTCBPcGVuIEZvbnQgTGljZW5zZSAxLjEnLFxuICAgICAgJ3VybCc6ICdodHRwOi8vc2NyaXB0cy5zaWwub3JnL09GTF93ZWInXG4gICAgfSxcbiAgICAnQ29tbWVyY2lhbCc6IHtcbiAgICAgICdsYWJlbCc6ICdDb21tZXJjaWFsJ1xuICAgIH0sXG4gICAgJ2FnLWdyaWQnOiB7XG4gICAgICAnbGFiZWwnOiAnYWctR3JpZC1FbnRlcnByaXNlIFNvZnR3YXJlIExpY2VuY2UgQWdyZWVtZW50IFZlcnNpb24gMS43JyxcbiAgICAgICd1cmwnOiAnaHR0cHM6Ly9naXRodWIuY29tL2Nlb2x0ZXIvYWctZ3JpZC1lbnRlcnByaXNlL2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWQnXG4gICAgfSxcbiAgICAnMEJTRCc6IHtcbiAgICAgICdsYWJlbCc6ICdaZXJvLUNsYXVzZSBCU0QnLFxuICAgICAgJ3VybCc6ICdodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvMEJTRCdcbiAgICB9XG4gIH07XG5cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLCBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSwgcHJpdmF0ZSBjb25maWc6IENvbmZpZywgcHJpdmF0ZSB0aXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2UsIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRCYXNlVGl0bGUodGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2lkZWJhci5oZWxwLmFib3V0LnRvb2x0aXAnKSk7XG4gICAgdGhpcy5fX2xpYnJhcmllc19fID0gdGhpcy5fX2xpYnJhcmllc19fLmZpbHRlcihsaWIgPT4gdGhpcy5saWNlbnNlc1tsaWIubGljZW5zZV0pO1xuICAgIHRoaXMuZ2V0VXNlckxhbmcoKTtcbiAgICB0aGlzLmJhY2tncm91bmRJbWFnZSA9IGB1cmwoJHt0aGlzLmNvbmZpZy5nZXREYXNoYm9hcmRCYWNrZ3JvdW5kSW1hZ2UoKX0pYDtcbiAgICB0aGlzLmhlYWRlckxvZ28gPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ2Fib3V0LmhlYWRlckxvZ28nKTtcbiAgICBpZiAoIXRoaXMuaGVhZGVyTG9nbykge1xuICAgICAgdGhpcy5oZWFkZXJMb2dvID0gdGhpcy5jb25maWcuZ2V0UmF3KCdhcHBMb2dvJyk7XG4gICAgfVxuXG4gICAgdGhpcy5iYWNrZW5kLmdldEpzb24oJy9zeXN0ZW0vaW5mbycpLnN1YnNjcmliZShpbmZvID0+IHtcbiAgICAgIHRoaXMuY3RybC5wcm9kdWN0TmFtZSA9IGluZm8ucHJvZHVjdC5uYW1lO1xuICAgICAgdGhpcy5jdHJsLnByb2R1Y3RWZXJzaW9uID0gaW5mby5wcm9kdWN0LnByb2R1Y3R2ZXJzaW9uO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0VXNlckxhbmcoKSB7XG4gICAgdGhpcy51c2VyU2VydmljZVxuICAgICAgLnVzZXIkXG4gICAgICAuc3Vic2NyaWJlKGRhdGEgPT4gdGhpcy51c2VyTGFuZyA9IGRhdGEudXNlclNldHRpbmdzLmNsaWVudGxvY2FsZSk7XG4gIH1cblxuICB0cmFja0J5Rm4oaW5kZXgsIGl0ZW0pOiBudW1iZXIge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVvLWFib3V0LXN0YXRlXCI+XG5cbiAgPGRpdiBjbGFzcz1cImFib3V0XCI+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlclwiIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cImJhY2tncm91bmRJbWFnZVwiPlxuICAgICAgPGltZyBbc3JjXT1cImhlYWRlckxvZ29cIi8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYm9keVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNsYWltXCIgdHJhbnNsYXRlPmVvLmhlbHAuYWJvdXQuY2xhaW08L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cIndyYXBcIj5cbiAgICAgICAgPHRhYmxlPlxuICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggdHJhbnNsYXRlPmVvLmhlbHAuYWJvdXQuY29tcG9uZW50LmxhYmVsPC90aD5cbiAgICAgICAgICAgIDx0ZD57e2N0cmwuY29tcG9uZW50TmFtZX19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCB0cmFuc2xhdGU+ZW8uaGVscC5hYm91dC5jb21wb25lbnQudmVyc2lvbi5sYWJlbDwvdGg+XG4gICAgICAgICAgICA8dGQ+e3tjdHJsLmNvbXBvbmVudFZlcnNpb259fTwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggdHJhbnNsYXRlPmVvLmhlbHAuYWJvdXQucHJvZHVjdC5sYWJlbDwvdGg+XG4gICAgICAgICAgICA8dGQ+e3sgY3RybC5wcm9kdWN0TmFtZSB9fTwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggdHJhbnNsYXRlPmVvLmhlbHAuYWJvdXQucHJvZHVjdC52ZXJzaW9uLmxhYmVsPC90aD5cbiAgICAgICAgICAgIDx0ZD57eyBjdHJsLnByb2R1Y3RWZXJzaW9uIH19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCB0cmFuc2xhdGU+ZW8uaGVscC5hYm91dC5wcm9kdWNlci5sYWJlbDwvdGg+XG4gICAgICAgICAgICA8dGQgdHJhbnNsYXRlPmVvLmhlbHAuYWJvdXQucHJvZHVjZXIudGV4dDwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgPC9kaXY+XG5cblxuICAgICAgPGgyIHRyYW5zbGF0ZT5lby5oZWxwLmxpY2Vuc2UudGl0bGU8L2gyPlxuICAgICAgPHAgdHJhbnNsYXRlPmVvLmhlbHAubGljZW5zZS5pbnRybzwvcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJzaG93TGljXCIgKGNsaWNrKT1cImxpY2Vuc2VTaG93ID0gIWxpY2Vuc2VTaG93XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidG9nZ2xlXCI+PHNwYW4gdHJhbnNsYXRlPmVvLmhlbHAubGljZW5zZS50aXRsZTwvc3Bhbj48c3BhbiBjbGFzcz1cInRvZ2dsZS1pbmRpY2F0b3JcIj57e2xpY2Vuc2VTaG93ID8gJy0nIDogJysnfX08L3NwYW4+PC9zcGFuPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpY2Vuc2VzXCIgKm5nSWY9XCJsaWNlbnNlU2hvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGliXCIgKm5nRm9yPVwibGV0IGxpYiBvZiBfX2xpYnJhcmllc19fOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPnt7bGliLm5hbWV9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaWNcIj5cbiAgICAgICAgICAgIDxhIGhyZWY9XCJ7e2xpY2Vuc2VzW2xpYi5saWNlbnNlXS51cmx9fVwiIHRhcmdldD1cIl9ibGFua1wiICpuZ0lmPVwibGljZW5zZXNbbGliLmxpY2Vuc2VdLnVybFwiPnt7bGljZW5zZXNbbGliLmxpY2Vuc2VdLmxhYmVsfX08L2E+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFsaWNlbnNlc1tsaWIubGljZW5zZV0udXJsXCI+e3tsaWNlbnNlc1tsaWIubGljZW5zZV0ubGFiZWx9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuIl19
|
|
@@ -176,8 +176,8 @@ export class DynamicListComponent {
|
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
178
|
else {
|
|
179
|
-
node[this.valueField] = value;
|
|
180
|
-
node['value'] = value;
|
|
179
|
+
node[this.valueField] = this.value;
|
|
180
|
+
node['value'] = this.value;
|
|
181
181
|
}
|
|
182
182
|
this.selectedNodes = node;
|
|
183
183
|
}
|
|
@@ -614,7 +614,7 @@ export class DynamicListComponent {
|
|
|
614
614
|
if (this.filterFunction && !this.filterFunction(acNodeData)) {
|
|
615
615
|
return false;
|
|
616
616
|
}
|
|
617
|
-
if (this.situation === 'SEARCH' && this.selectedNodes?.some((node) => {
|
|
617
|
+
if (this.situation === 'SEARCH' && Array.isArray(this.selectedNodes) && this.selectedNodes?.some((node) => {
|
|
618
618
|
const nodeValue = node.value || node?.data?.[this.valueField];
|
|
619
619
|
return acNodeData && nodeValue && acNodeValue === nodeValue;
|
|
620
620
|
})) {
|
|
@@ -710,4 +710,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
710
710
|
}], autocompleteUrl: [{
|
|
711
711
|
type: Input
|
|
712
712
|
}] } });
|
|
713
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2Zvcm0tZWxlbWVudHMvZHluYW1pYy1saXN0L2R5bmFtaWMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2R5bmFtaWMtbGlzdC9keW5hbWljLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQVUsS0FBSyxFQUFFLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBSUwsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDZCxNQUFNLGdCQUFnQixDQUFDO0FBR3hCLE9BQU8sRUFBNEMsVUFBVSxFQUFnQixVQUFVLEVBQUUsWUFBWSxFQUFRLE1BQU0sY0FBYyxDQUFDO0FBQ2xJLE9BQU8sRUFBQyxZQUFZLEVBQWMsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQXFCckUsTUFBTSxPQUFPLG9CQUFvQjtJQStDL0IsbUNBQW1DO0lBQ25DLFlBQW9CLGtCQUFzQyxFQUFVLG1CQUF3QyxFQUFVLHVCQUFnRCxFQUFVLFlBQTBCO1FBQXRMLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFBVSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQVUsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBckNqTSxtQkFBYyxHQUFFLEtBQUssQ0FBQztRQUN0QixvQkFBZSxHQUFFLEtBQUssQ0FBQztRQUdoQyx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDM0IsZ0NBQTJCLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLHlCQUFvQixHQUFXLElBQUks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cUJBQ0Y7MExBSTBCLGlCQUFpQjtzQkFBM0MsU0FBUzt1QkFBQyxjQUFjO2dCQUNKLGtCQUFrQjtzQkFBdEMsU0FBUzt1QkFBQyxRQUFRO2dCQUVWLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBK0RGLGNBQWM7c0JBRGpCLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQVFuQixVQUFVO3NCQURiLEtBQUs7dUJBQUMsWUFBWTtnQkFRZixlQUFlO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIGZvcndhcmRSZWYsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIFZhbGlkYXRvcixcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIE5HX1ZBTElEQVRPUlNcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtBdXRvQ29tcGxldGV9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHtUcmVlTm9kZX0gZnJvbSAnLi4vLi4vdHJlZS90cmVlLmNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBBdXRvY29tcGxldGVSZXNwb25zZSwgRW5haW9FdmVudCwgRXZlbnRTZXJ2aWNlLCBSYW5nZVZhbHVlLCBTZWFyY2hGaWx0ZXIsIFV0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge09iamVjdEZvcm1IZWxwZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQge0R5bmFtaWNMaXN0U2VydmljZX0gZnJvbSAnLi9keW5hbWljLWxpc3Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWR5bmFtaWMtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEeW5hbWljTGlzdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IER5bmFtaWNMaXN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKCdhdXRvY29tcGxldGUnKSBhdXRvQ29tcGxldGVJbnB1dDogQXV0b0NvbXBsZXRlO1xuICBAVmlld0NoaWxkKCdidXR0b24nKSBhdXRvQ29tcGxldGVCdXR0b247XG5cbiAgQElucHV0KCkgc2l0dWF0aW9uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG11bHRpc2VsZWN0OiBib29sZWFuO1xuICBASW5wdXQoKSBwaWNrZXJUaXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjtcbiAgQElucHV0KCkgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGZvcm1FbGVtZW50Q2hhbmdlczogT2JzZXJ2YWJsZTxhbnk+O1xuICBASW5wdXQoKSBpc1RhYmxlRWxlbWVudD0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzRmlsdGVyRWxlbWVudD0gZmFsc2U7XG4gIEBJbnB1dCgpIG1heExlbmd0aDogbnVtYmVyO1xuXG4gIGhhc0F1dG9jb21wbGV0ZVVybCA9IGZhbHNlO1xuICBoYXNBdXRvY29tcGxldGVWYWx1ZXNDYWNoZWQgPSBmYWxzZTtcbiAgYXV0b2NvbXBsZXRlVXJsVmFsdWU6IHN0cmluZyA9IG51bGw7XG4gIGlzQXV0b2NvbXBsZXRlTG9hZGluZyA9IGZhbHNlO1xuICB2YWx1ZUZpZWxkID0gJ3ZhbHVlJztcbiAgc3ViRW50cmllc0ZpZWxkID0gJ2VudHJpZXMnO1xuICBwcm9qZWN0c0VudHJpZXNGaWVsZCA9ICdwcm9qZWN0cyc7XG4gIGRlc2NyaXB0aW9uRmllbGQgPSAnZGVzY3JpcHRpb24nO1xuICB0aXRsZSA9ICd0aXRsZSc7XG4gIGRpc3BsYXkgPSBmYWxzZTtcbiAgdmFsdWU7XG4gIHRyZWU6IFRyZWVOb2RlW107XG4gIGF1dG9jb21wbGV0ZVJlcztcbiAgYXV0b2NvbXBsZXRlVmFsdWVzOiBUcmVlTm9kZVtdID0gW107XG4gIHByZXZpb3VzU2VhcmNoVmFsdWUgPSBcIlwiO1xuICBoYXNGb3JtRWxlbWVudENoYW5nZWQgPSBmYWxzZTtcbiAgaXNTZWFyY2ggPSBmYWxzZTtcbiAgaXNQcm9wYWdhdGluZ0NoYW5nZSA9IGZhbHNlO1xuICBwcml2YXRlIGluaXRpYWxWYWx1ZU9uRm9jdXM6IGFueSA9IG51bGw7XG5cbiAgcHVibGljIGF2YWlsYWJsZVNlYXJjaE9wdGlvbnMgPSBbXG4gICAge2xhYmVsOiBSYW5nZVZhbHVlLmdldE9wZXJhdG9yTGFiZWwoU2VhcmNoRmlsdGVyLk9QRVJBVE9SLkVRVUFMKSwgdmFsdWU6IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5JTn0sXG4gICAge2xhYmVsOiBSYW5nZVZhbHVlLmdldE9wZXJhdG9yTGFiZWwoU2VhcmNoRmlsdGVyLk9QRVJBVE9SLlVTRV9OT1QpLCB2YWx1ZTogU2VhcmNoRmlsdGVyLk9QRVJBVE9SLlVTRV9OT1QsIGFjdHVhbE9wZXJhdG9yOiBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuSU59LFxuICBdO1xuXG4gIHB1YmxpYyBzZWFyY2hPcHRpb24gPSB0aGlzLmF2YWlsYWJsZVNlYXJjaE9wdGlvbnNbMF0udmFsdWU7XG4gIHByaXZhdGUgYXV0b2NvbXBsZXRlU2VhcmNoVmFsdWUkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwcml2YXRlIF9zZWxlY3RlZE5vZGVzOiBhbnk7XG4gIHByaXZhdGUgaXNWYWxpZCA9IHRydWU7XG4gIHByaXZhdGUgZm9ybUVsZW1lbnRDaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgX2xpc3Q6IGFueTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGR5bmFtaWNMaXN0U2VydmljZTogRHluYW1pY0xpc3RTZXJ2aWNlLCBwcml2YXRlIGxvY2FsU3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsIHByaXZhdGUgb2JqZWN0Rm9ybUhlbHBlclNlcnZpY2U6IE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlLCBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlKSB7XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgbmV3IHNlYXJjaCB2YWx1ZSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgcHJldmlvdXMgc2VhcmNoIHZhbHVlIGFuZCB0aGUgY3VycmVudCB2YWx1ZS5cbiAgICB0aGlzLmF1dG9jb21wbGV0ZVNlYXJjaFZhbHVlJC5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKDMwMClcbiAgICApLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHRoaXMucHJldmlvdXNTZWFyY2hWYWx1ZSAmJiB2YWx1ZSAhPT0gdGhpcy52YWx1ZSkge1xuICAgICAgICB0aGlzLnByZXZpb3VzU2VhcmNoVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5mZXRjaEF1dG9jb21wbGV0ZURhdGEodmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBsYXRlc3QgZm9ybSBlbGVtZW50IGNoYW5nZXMgb2JzZXJ2YWJsZSBhbmQgIHRoZSBmbGFnIGluZGljYXRpbmcgdGhhdCB0aGUgZm9ybSBlbGVtZW50IGhhcyBjaGFuZ2VkLlxuICAgIHRoaXMub2JqZWN0Rm9ybUhlbHBlclNlcnZpY2UubGF0ZXN0Rm9ybUVsZW1lbnRDaGFuZ2VzJFxuICAgICAgLnN1YnNjcmliZShsYXRlc3RDaGFuZ2VzID0+IHtcbiAgICAgICAgdGhpcy5oYXNGb3JtRWxlbWVudENoYW5nZWQgPSB0cnVlO1xuICAgICAgfSk7XG4gIH1cblxuICBnZXQgbGlzdCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbGlzdDtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZE5vZGVzKCkge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZE5vZGVzO1xuICB9XG5cbiAgQElucHV0KCdmaWx0ZXJGdW5jdGlvbicpXG4gIHNldCBmaWx0ZXJGdW5jdGlvbihmdW5jOiBGdW5jdGlvbikge1xuICAgIGlmICh0aGlzLl9saXN0KSB7XG4gICAgICB0aGlzLmJ1aWxkVHJlZSgpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnbGlzdE9iamVjdCcpXG4gIHNldCBsaXN0T2JqZWN0KGxvOiBBdXRvY29tcGxldGVSZXNwb25zZSkge1xuICAgIGlmIChsbykge1xuICAgICAgdGhpcy5wcm9jZXNzTGlzdE9iamVjdChsbyk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGF1dG9jb21wbGV0ZVVybCh1cmw6IHN0cmluZykge1xuICAgIGlmICh1cmwpIHtcbiAgICAgIHRoaXMuaGFzQXV0b2NvbXBsZXRlVXJsID0gdHJ1ZTtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlVXJsVmFsdWUgPSB1cmw7XG4gICAgfVxuICB9XG5cbiAgc2V0IHNlbGVjdGVkTm9kZXMobjogYW55KSB7XG4gICAgaWYgKG4gJiYgIUFycmF5LmlzQXJyYXkobikpIHtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlRm4oblsodGhpcy5fbGlzdD8uY29uZmlnPy50aXRsZSA/IHRoaXMuX2xpc3QuY29uZmlnLnRpdGxlIDogdGhpcy5fbGlzdD8uY29uZmlnPy52YWx1ZUZpZWxkKSB8fCAndmFsdWUnXSB8fCAobi50aXRsZSA/IG4udGl0bGUgOiBuLm5hbWUpKTtcbiAgICB9XG4gICAgdGhpcy5fc2VsZWN0ZWROb2RlcyA9IHN0cnVjdHVyZWRDbG9uZShuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIGF1dG9jb21wbGV0ZSBkYXRhIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBzZWFyY2ggdmFsdWUuXG4gICAqXG4gICAqIElmIHRoZSBhdXRvY29tcGxldGUgdmFsdWVzIGFyZSBjYWNoZWQgYW5kIHRoZXJlIGlzIG5vIHNlYXJjaCB2YWx1ZSBvciBmb3JtIGVsZW1lbnQgY2hhbmdlLFxuICAgKiBpdCByZXRyaWV2ZXMgdGhlIGNhY2hlZCB2YWx1ZXMgZnJvbSBsb2NhbCBzdG9yYWdlLiBPdGhlcndpc2UsIGl0IG1ha2VzIGFuIEhUVFAgcmVxdWVzdCB0byBmZXRjaFxuICAgKiB0aGUgYXV0b2NvbXBsZXRlIGRhdGEuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbc2VhcmNoVmFsdWU9bnVsbF0gLSBUaGUgc2VhcmNoIHZhbHVlIHVzZWQgdG8gZmlsdGVyIHRoZSBhdXRvY29tcGxldGUgcmVzdWx0cy5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBmZXRjaEF1dG9jb21wbGV0ZURhdGEoc2VhcmNoVmFsdWU6IHN0cmluZyA9IG51bGwpOiB2b2lkIHtcbiAgICBsZXQgYXV0b2NvbXBlbHRlTGlzdFZhbHVlczogQXV0b2NvbXBsZXRlUmVzcG9uc2UgPSB7fSBhcyBBdXRvY29tcGxldGVSZXNwb25zZTtcbiAgICBsZXQgdXJsID0gdGhpcy5hdXRvY29tcGxldGVVcmxWYWx1ZTtcbiAgICBpZiAodGhpcy5oYXNBdXRvY29tcGxldGVWYWx1ZXNDYWNoZWQpIHtcbiAgICAgIGF1dG9jb21wZWx0ZUxpc3RWYWx1ZXMgPSB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgnYXV0b2NvbXBsZXRlXycgKyB0aGlzLmZvcm1Db250cm9sTmFtZSk7XG4gICAgICB0aGlzLnByb2Nlc3NMaXN0T2JqZWN0KGF1dG9jb21wZWx0ZUxpc3RWYWx1ZXMpO1xuICAgICAgaWYgKHNlYXJjaFZhbHVlKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyQXV0b2NvbXBsZXRlUmVzdWx0cyhzZWFyY2hWYWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNBdXRvY29tcGxldGVMb2FkaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBwYXJhbXMgPSB7fTtcblxuICAgICAgaWYgKHNlYXJjaFZhbHVlKSB7XG4gICAgICAgIHBhcmFtc1sncXVlcnknXSA9IHNlYXJjaFZhbHVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5zaXR1YXRpb24pIHtcbiAgICAgICAgcGFyYW1zWydzaXR1YXRpb24nXSA9IFN0cmluZyh0aGlzLnNpdHVhdGlvbikudG9Mb3dlckNhc2UoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5keW5hbWljTGlzdFNlcnZpY2UuZ2V0QXV0b2NvbXBsZXRlRGF0YSh1cmwsIHBhcmFtcykuc3Vic2NyaWJlKChkYXRhOiBBdXRvY29tcGxldGVSZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLmlzQXV0b2NvbXBsZXRlTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICBpZiAoIXNlYXJjaFZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5oYXNBdXRvY29tcGxldGVWYWx1ZXNDYWNoZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5zZXRJdGVtKCdhdXRvY29tcGxldGVfJyArIHRoaXMuZm9ybUNvbnRyb2xOYW1lLCBkYXRhKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByb2Nlc3NMaXN0T2JqZWN0KGRhdGEpO1xuICAgICAgICBpZiAoc2VhcmNoVmFsdWUpIHtcbiAgICAgICAgICB0aGlzLmZpbHRlckF1dG9jb21wbGV0ZVJlc3VsdHMoc2VhcmNoVmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGFzRm9ybUVsZW1lbnRDaGFuZ2VkID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmlzUHJvcGFnYXRpbmdDaGFuZ2UgPSB0cnVlO1xuXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlPy52YWx1ZSB8fCB2YWx1ZSB8fCBudWxsO1xuICAgIGNvbnN0IHZhbHVlcyA9ICF0aGlzLnZhbHVlIHx8IEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgPyB0aGlzLnZhbHVlIHx8IFtdIDogW3RoaXMudmFsdWVdO1xuXG4gICAgaWYgKHZhbHVlICYmIHZhbHVlLm9wZXJhdG9yKSB7XG4gICAgICBjb25zdCBvcGVyYXRvciA9IHZhbHVlPy51c2VOb3QgPyBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuVVNFX05PVCA6IHZhbHVlLm9wZXJhdG9yO1xuICAgICAgY29uc3QgbWF0Y2ggPSB0aGlzLmF2YWlsYWJsZVNlYXJjaE9wdGlvbnMuZmluZCgobykgPT4gby52YWx1ZSA9PT0gb3BlcmF0b3IpO1xuICAgICAgdGhpcy5zZWFyY2hPcHRpb24gPSBtYXRjaCA/IG1hdGNoLnZhbHVlIDogdGhpcy5hdmFpbGFibGVTZWFyY2hPcHRpb25zWzBdLnZhbHVlO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodGhpcy5tdWx0aXNlbGVjdCAmJiAhdGhpcy5oYXNBdXRvY29tcGxldGVVcmwpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGVzID0gW107XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBudWxsO1xuICAgICAgfVxuICAgICAgdGhpcy5sYXN0VmFsaWRTZWxlY3RlZE5vZGVzID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGVzID0gdmFsdWVzLm1hcCh2ID0+IHtcbiAgICAgICAgICBsZXQgbm9kZSA9IHt9O1xuICAgICAgICAgIG5vZGVbdGhpcy52YWx1ZUZpZWxkXSA9IHY7XG4gICAgICAgICAgbm9kZVsndmFsdWUnXSA9IHY7XG4gICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IG5vZGUgPSB7fTtcbiAgICAgICAgaWYgKHRoaXMudGl0bGUgJiYgdGhpcy5fbGlzdCAmJiB0aGlzLmlzU2VhcmNoKSB7XG4gICAgICAgICAgY29uc3QgbGlzdEVudHJpZXMgPSB0aGlzLl9saXN0Py5lbnRyaWVzLmZpbmQoZW50cnkgPT4gZW50cnk/Lm1vZGVscz8uc29tZShtb2RlbCA9PiBtb2RlbC5uYW1lID09PSB2YWx1ZSkpO1xuICAgICAgICAgIGlmIChsaXN0RW50cmllcykge1xuICAgICAgICAgICAgbm9kZSA9IGxpc3RFbnRyaWVzLm1vZGVscz8uZmluZChtb2RlbCA9PiBtb2RlbC5uYW1lID09PSB2YWx1ZSkgfHwge307XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5vZGVbdGhpcy52YWx1ZUZpZWxkXSA9IHZhbHVlO1xuICAgICAgICAgIG5vZGVbJ3ZhbHVlJ10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBub2RlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnN0b3JlTGFzdFZhbGlkU2VsZWN0aW9uKCk7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9kZXMgPSAhdGhpcy5zZWxlY3RlZE5vZGVzIHx8IEFycmF5LmlzQXJyYXkodGhpcy5zZWxlY3RlZE5vZGVzKSA/IHRoaXMuc2VsZWN0ZWROb2RlcyB8fCBbXSA6IFt0aGlzLnNlbGVjdGVkTm9kZXNdO1xuXG4gICAgaWYgKHRoaXMuX2xpc3QgJiYgKG5vZGVzLmxlbmd0aCAhPT0gdmFsdWVzLmxlbmd0aCB8fCBub2Rlcy5zb21lKChuLCBpKSA9PiBuW3RoaXMudGl0bGUgPyB0aGlzLnRpdGxlIDogdGhpcy52YWx1ZUZpZWxkXSAhPT0gdmFsdWVzW2ldKSkpIHtcbiAgICAgIHRoaXMuYnVpbGRUcmVlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5pc1Byb3BhZ2F0aW5nQ2hhbmdlID0gZmFsc2U7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZSh0cnVlKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gIH1cblxuICBvbkF1dG9Db21wbGV0ZVNlbGVjdChub2RlPyk6IHZvaWQge1xuICAgIGNvbnN0IHdhc0ludmFsaWQgPSAhdGhpcy5pc1ZhbGlkO1xuICAgIHRoaXMuaXNWYWxpZCA9IHRydWU7XG4gICAgdGhpcy5zdG9yZUxhc3RWYWxpZFNlbGVjdGlvbigpO1xuICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZSh3YXNJbnZhbGlkKTtcbiAgICBpZiAodGhpcy5oYXNBdXRvY29tcGxldGVVcmwpIHtcbiAgICAgIHRoaXMuZmV0Y2hBdXRvY29tcGxldGVEYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgb25BdXRvQ29tcGxldGVVbnNlbGVjdChub2RlPyk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IHRoaXMuc2VsZWN0ZWROb2Rlcy5maWx0ZXIoKHNOb2RlKSA9PiBzTm9kZS52YWx1ZSAhPT0gbm9kZS52YWx1ZSk7XG4gICAgdGhpcy5zZXRGb3JtQ29udHJvbFZhbHVlKCk7XG4gIH1cblxuICAvLyBQcmV2ZW50IGF1dG9jb21wbGV0ZSBmcm9tIGxvc2luZyB2YWx1ZXMgd2hlbiB1c2VyIGNsaWNrcyBpbi9vdXRcbiAgcHJpdmF0ZSB1c2VySW50ZW50aW9uYWxseUNsZWFyZWRWYWx1ZSA9IGZhbHNlO1xuICBwcml2YXRlIGhhc0ZvY3VzZWRJbnB1dCA9IGZhbHNlO1xuICBwcml2YXRlIGhhc1VzZXJJbnB1dCA9IGZhbHNlO1xuICBwcml2YXRlIGlucHV0RmllbGRWYWx1ZSA9ICcnO1xuXG4gIG9uQXV0b2NvbXBsZXRlTW9kZWxDaGFuZ2UobmV3VmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGlmICghbmV3VmFsdWUgfHwgKEFycmF5LmlzQXJyYXkobmV3VmFsdWUpICYmIG5ld1ZhbHVlLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkTm9kZXMgJiYgdGhpcy5pbnB1dEZpZWxkVmFsdWUgPT09ICcnKSB7XG4gICAgICAgIHRoaXMudXNlckludGVudGlvbmFsbHlDbGVhcmVkVmFsdWUgPSB0cnVlO1xuICAgICAgICB0aGlzLmxhc3RWYWxpZFNlbGVjdGVkTm9kZXMgPSBudWxsO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBudWxsO1xuICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgICAgdGhpcy5zZXRGb3JtQ29udHJvbFZhbHVlKHRydWUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXNlckludGVudGlvbmFsbHlDbGVhcmVkVmFsdWUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBSZXN0b3JlIHNlbGVjdGlvbiBpZiBhdXRvY29tcGxldGUgYWNjaWRlbnRhbGx5IGNsZWFycyBpdFxuICAgIGlmICghdGhpcy5pc1NlYXJjaCAmJiAhdGhpcy51c2VySW50ZW50aW9uYWxseUNsZWFyZWRWYWx1ZSAmJlxuICAgICAgKCghbmV3VmFsdWUgfHwgKEFycmF5LmlzQXJyYXkobmV3VmFsdWUpICYmIG5ld1ZhbHVlLmxlbmd0aCA9PT0gMCkpICYmIHRoaXMubGFzdFZhbGlkU2VsZWN0ZWROb2RlcykpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5sYXN0VmFsaWRTZWxlY3RlZE5vZGVzKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub25UcmVlU2VsZWN0aW9uQ2hhbmdlZChuZXdWYWx1ZSk7XG4gIH1cblxuICBvbkF1dG9jb21wbGV0ZUZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuaGFzRm9jdXNlZElucHV0ID0gdHJ1ZTtcbiAgICB0aGlzLmhhc1VzZXJJbnB1dCA9IGZhbHNlO1xuICAgIHRoaXMudXNlckludGVudGlvbmFsbHlDbGVhcmVkVmFsdWUgPSBmYWxzZTtcblxuICAgIC8vIFN0b3JlIGluaXRpYWwgdmFsdWUgdG8gZGV0ZWN0IGFjdHVhbCBjaGFuZ2VzIGxhdGVyXG4gICAgaWYgKHRoaXMudmFsdWUgIT09IG51bGwgJiYgdGhpcy52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmluaXRpYWxWYWx1ZU9uRm9jdXMgPSB0aGlzLnZhbHVlID8gc3RydWN0dXJlZENsb25lKHRoaXMudmFsdWUpIDogdGhpcy52YWx1ZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWROb2Rlcykge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5zZWxlY3RlZE5vZGVzKSkge1xuICAgICAgICB0aGlzLmluaXRpYWxWYWx1ZU9uRm9jdXMgPSB0aGlzLnNlbGVjdGVkTm9kZXMubWFwKG5vZGUgPT4gbm9kZVt0aGlzLnZhbHVlRmllbGRdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbFZhbHVlT25Gb2N1cyA9IHRoaXMuc2VsZWN0ZWROb2Rlc1t0aGlzLnZhbHVlRmllbGRdIHx8IHRoaXMuc2VsZWN0ZWROb2Rlcy52YWx1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbml0aWFsVmFsdWVPbkZvY3VzID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBvbkF1dG9jb21wbGV0ZUlucHV0KGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmhhc1VzZXJJbnB1dCA9IHRydWU7XG4gICAgY29uc3QgbmV3SW5wdXRWYWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZSB8fCAnJztcblxuICAgIGlmIChuZXdJbnB1dFZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudXNlckludGVudGlvbmFsbHlDbGVhcmVkVmFsdWUgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKG5ld0lucHV0VmFsdWUgPT09ICcnICYmIHRoaXMuc2VsZWN0ZWROb2Rlcykge1xuICAgICAgdGhpcy51c2VySW50ZW50aW9uYWxseUNsZWFyZWRWYWx1ZSA9IHRydWU7XG4gICAgfVxuXG4gICAgdGhpcy5pbnB1dEZpZWxkVmFsdWUgPSBuZXdJbnB1dFZhbHVlO1xuICB9XG5cbiAgb25BdXRvY29tcGxldGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKChldmVudC5rZXkgPT09ICdEZWxldGUnIHx8IGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScpKSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZE5vZGVzICYmICh0aGlzLmlucHV0RmllbGRWYWx1ZSA9PT0gJycgfHwgdGhpcy5pbnB1dEZpZWxkVmFsdWUubGVuZ3RoIDw9IDEpKSB7XG4gICAgICAgIHRoaXMudXNlckludGVudGlvbmFsbHlDbGVhcmVkVmFsdWUgPSB0cnVlO1xuICAgICAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUodHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25BdXRvY29tcGxldGVCbHVyKCk6IHZvaWQge1xuICAgIC8vIFNraXAgZm9ybSB1cGRhdGVzIGlmIHVzZXIganVzdCBjbGlja2VkIGluL291dCB3aXRob3V0IGNoYW5nZXNcbiAgICBpZiAoIXRoaXMuaGFzVXNlcklucHV0ICYmICF0aGlzLnVzZXJJbnRlbnRpb25hbGx5Q2xlYXJlZFZhbHVlKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XG4gICAgICB0aGlzLnJlc2V0VHJhY2tpbmdGbGFncygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlucHV0RmllbGRWYWx1ZSA9PT0gJycgJiYgdGhpcy5zZWxlY3RlZE5vZGVzICYmIHRoaXMuaGFzVXNlcklucHV0KSB7XG4gICAgICB0aGlzLnVzZXJJbnRlbnRpb25hbGx5Q2xlYXJlZFZhbHVlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBsZXQgc2hvdWxkUHJvcGFnYXRlQ2hhbmdlID0gZmFsc2U7XG4gICAgbGV0IGZpbmFsVmFsdWUgPSB0aGlzLnZhbHVlO1xuXG4gICAgaWYgKHRoaXMudXNlckludGVudGlvbmFsbHlDbGVhcmVkVmFsdWUpIHtcbiAgICAgIC8vIENoZWNrIGlmIHRoZXJlIHdhcyBhY3R1YWxseSBhIHZhbHVlIHRvIGNsZWFyXG4gICAgICBjb25zdCBoYWRWYWx1ZUJlZm9yZSA9ICh0aGlzLmluaXRpYWxWYWx1ZU9uRm9jdXMgIT09IG51bGwgJiYgdGhpcy5pbml0aWFsVmFsdWVPbkZvY3VzICE9PSB1bmRlZmluZWQpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuc2VsZWN0ZWROb2RlcyAhPT0gbnVsbCAmJiB0aGlzLnNlbGVjdGVkTm9kZXMgIT09IHVuZGVmaW5lZCk7XG5cbiAgICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IG51bGw7XG4gICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMubGFzdFZhbGlkU2VsZWN0ZWROb2RlcyA9IG51bGw7XG4gICAgICBmaW5hbFZhbHVlID0gbnVsbDtcblxuICAgICAgaWYgKGhhZFZhbHVlQmVmb3JlKSB7XG4gICAgICAgIHNob3VsZFByb3BhZ2F0ZUNoYW5nZSA9IHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENoZWNrIGlmIHJlc3RvcmF0aW9uIGlzIG5lZWRlZCAoYWNjaWRlbnRhbCBjbGVhcmluZylcbiAgICAgIGNvbnN0IG5lZWRzUmVzdG9yYXRpb24gPSAoIXRoaXMuc2VsZWN0ZWROb2RlcyB8fCAoQXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGVkTm9kZXMpICYmIHRoaXMuc2VsZWN0ZWROb2Rlcy5sZW5ndGggPT09IDApKVxuICAgICAgICAmJiB0aGlzLmxhc3RWYWxpZFNlbGVjdGVkTm9kZXM7XG5cbiAgICAgIGlmIChuZWVkc1Jlc3RvcmF0aW9uKSB7XG4gICAgICAgIHRoaXMucmVzdG9yZVNlbGVjdGlvbklmTmVlZGVkKCk7XG4gICAgICAgIGZpbmFsVmFsdWUgPSB0aGlzLnNlbGVjdGVkTm9kZXMgJiYgdGhpcy5zZWxlY3RlZE5vZGVzLmRhdGEgPyB0aGlzLnNlbGVjdGVkTm9kZXMuZGF0YVt0aGlzLnZhbHVlRmllbGRdIDpcbiAgICAgICAgICAodGhpcy5zZWxlY3RlZE5vZGVzID8gdGhpcy5zZWxlY3RlZE5vZGVzW3RoaXMudmFsdWVGaWVsZF0gOiBudWxsKTtcblxuICAgICAgICBpZiAoIXRoaXMudmFsdWVzQXJlRXF1YWwoZmluYWxWYWx1ZSwgdGhpcy5pbml0aWFsVmFsdWVPbkZvY3VzKSkge1xuICAgICAgICAgIHNob3VsZFByb3BhZ2F0ZUNoYW5nZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XG5cbiAgICBpZiAoc2hvdWxkUHJvcGFnYXRlQ2hhbmdlKSB7XG4gICAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUodHJ1ZSk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXNldFRyYWNraW5nRmxhZ3MoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRUcmFja2luZ0ZsYWdzKCk6IHZvaWQge1xuICAgIHRoaXMuaGFzRm9jdXNlZElucHV0ID0gZmFsc2U7XG4gICAgdGhpcy5oYXNVc2VySW5wdXQgPSBmYWxzZTtcbiAgICB0aGlzLnVzZXJJbnRlbnRpb25hbGx5Q2xlYXJlZFZhbHVlID0gZmFsc2U7XG4gICAgdGhpcy5pbnB1dEZpZWxkVmFsdWUgPSAnJztcbiAgICB0aGlzLmluaXRpYWxWYWx1ZU9uRm9jdXMgPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWx1ZXNBcmVFcXVhbCh2YWx1ZTE6IGFueSwgdmFsdWUyOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAodmFsdWUxID09PSB2YWx1ZTIpIHJldHVybiB0cnVlO1xuICAgIGlmICh2YWx1ZTEgPT09IG51bGwgfHwgdmFsdWUyID09PSBudWxsKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHZhbHVlMSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlMiA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZTEpICYmIEFycmF5LmlzQXJyYXkodmFsdWUyKSkge1xuICAgICAgaWYgKHZhbHVlMS5sZW5ndGggIT09IHZhbHVlMi5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICAgIHJldHVybiB2YWx1ZTEuZXZlcnkoKHZhbCwgaW5kZXgpID0+IHZhbCA9PT0gdmFsdWUyW2luZGV4XSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZTEgPT09ICdvYmplY3QnICYmIHR5cGVvZiB2YWx1ZTIgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAodmFsdWUxLm9wZXJhdG9yICE9PSB2YWx1ZTIub3BlcmF0b3IpIHJldHVybiBmYWxzZTtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlMS52YWx1ZSkgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZTIudmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlc0FyZUVxdWFsKHZhbHVlMS52YWx1ZSwgdmFsdWUyLnZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTEudmFsdWUgPT09IHZhbHVlMi52YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKGV2dCk6IHZvaWQge1xuICAgIGlmIChldnQgIT09IHVuZGVmaW5lZCAmJiBldnQgIT09IG51bGwpIHtcbiAgICAgIGlmICghdGhpcy5tdWx0aXNlbGVjdCkge1xuICAgICAgICB0aGlzLmRpc3BsYXkgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHdhc0ludmFsaWQgPSAhdGhpcy5pc1ZhbGlkO1xuICAgICAgdGhpcy5pc1ZhbGlkID0gdHJ1ZTtcbiAgICAgIHRoaXMuc3RvcmVMYXN0VmFsaWRTZWxlY3Rpb24oKTtcbiAgICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZSh3YXNJbnZhbGlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZXN0b3JlU2VsZWN0aW9uSWZOZWVkZWQoKTtcbiAgICB9XG4gIH1cblxuICBvbkF1dG9jb21wbGV0ZUNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMudXNlckludGVudGlvbmFsbHlDbGVhcmVkVmFsdWUgPSB0cnVlO1xuICAgIHRoaXMubGFzdFZhbGlkU2VsZWN0ZWROb2RlcyA9IG51bGw7XG4gICAgdGhpcy5zZWxlY3RlZE5vZGVzID0gbnVsbDtcbiAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGxhc3RWYWxpZFNlbGVjdGVkTm9kZXM6IGFueSA9IG51bGw7XG5cbiAgcHJpdmF0ZSBzdG9yZUxhc3RWYWxpZFNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZE5vZGVzKSB7XG4gICAgICB0aGlzLmxhc3RWYWxpZFNlbGVjdGVkTm9kZXMgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5zZWxlY3RlZE5vZGVzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc3RvcmVTZWxlY3Rpb25JZk5lZWRlZCgpOiB2b2lkIHtcbiAgICBpZiAoKCF0aGlzLnNlbGVjdGVkTm9kZXMgfHwgKEFycmF5LmlzQXJyYXkodGhpcy5zZWxlY3RlZE5vZGVzKSAmJiB0aGlzLnNlbGVjdGVkTm9kZXMubGVuZ3RoID09PSAwKSlcbiAgICAgICYmIHRoaXMubGFzdFZhbGlkU2VsZWN0ZWROb2RlcyAmJiAhdGhpcy51c2VySW50ZW50aW9uYWxseUNsZWFyZWRWYWx1ZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZE5vZGVzID0gc3RydWN0dXJlZENsb25lKHRoaXMubGFzdFZhbGlkU2VsZWN0ZWROb2Rlcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtYWludGFpblNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZE5vZGVzICYmIHRoaXMudmFsdWUpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5hdXRvQ29tcGxldGVJbnB1dCAmJiB0aGlzLnNlbGVjdGVkTm9kZXMpIHtcbiAgICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZUlucHV0LndyaXRlVmFsdWUodGhpcy5zZWxlY3RlZE5vZGVzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9ICgpID0+IHsgfTtcblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgYXV0b2NvbXBsZXRlIGZ1bmN0aW9uYWxpdHkgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHNlYXJjaCB0ZXJtLlxuICAgKlxuICAgKiBJZiBgaGFzQXV0b2NvbXBsZXRlVXJsYCBpcyB0cnVlLCBpdCB0cmlnZ2VycyBhbiBhdXRvY29tcGxldGUgc2VhcmNoIHZpYSBhbiBvYnNlcnZhYmxlLlxuICAgKiBPdGhlcndpc2UsIGl0IGZpbHRlcnMgdGhlIGF1dG9jb21wbGV0ZSByZXN1bHRzIGxvY2FsbHkuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXJtIC0gVGhlIHNlYXJjaCB0ZXJtIHVzZWQgZm9yIGF1dG9jb21wbGV0ZS5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBhdXRvY29tcGxldGVGbih0ZXJtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGVybSkge1xuICAgICAgdGhpcy5oYXNBdXRvY29tcGxldGVVcmxcbiAgICAgICAgPyB0aGlzLmF1dG9jb21wbGV0ZVNlYXJjaFZhbHVlJC5uZXh0KHRlcm0pXG4gICAgICAgIDogdGhpcy5maWx0ZXJBdXRvY29tcGxldGVSZXN1bHRzKHRlcm0pO1xuICAgIH1cbiAgfVxuXG4gIHNob3dEaWFsb2coZXZlbnQ/LCBkaXNwbGF5ID0gdHJ1ZSk6IHZvaWQge1xuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjbGljaycgJiYgZXZlbnQuZGV0YWlsID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuaGFzQXV0b2NvbXBsZXRlVXJsICYmICF0aGlzLmhhc0F1dG9jb21wbGV0ZVZhbHVlc0NhY2hlZCkge1xuICAgICAgICB0aGlzLmZldGNoQXV0b2NvbXBsZXRlRGF0YSgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmRpc3BsYXkgPSAhIWRpc3BsYXk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaXR1YXRpb24gPT09ICdTRUFSQ0gnKSB7XG4gICAgICB0aGlzLm11bHRpc2VsZWN0ID0gIXRoaXMuaXNUYWJsZUVsZW1lbnQ7XG4gICAgICB0aGlzLmlzU2VhcmNoID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLmV2ZW50U2VydmljZS5vbihFbmFpb0V2ZW50LkNMSUVOVF9MT0NBTEVfQ0hBTkdFRCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVzZXRDYWNoZWRWYWx1ZXMoKTtcbiAgICB9KTtcbiAgICB0aGlzLmV2ZW50U2VydmljZS5vbihFbmFpb0V2ZW50LlNDSEVNQV9MT0NBTEVfQ0hBTkdFRCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVzZXRDYWNoZWRWYWx1ZXMoKTtcbiAgICB9KTtcblxuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGM6IFVudHlwZWRGb3JtQ29udHJvbCk6IHtba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBib29sZWFuIHwge3ZhbGlkOiBib29sZWFufX0ge1xuICAgIHJldHVybiAodGhpcy5pc1ZhbGlkICYmICghdGhpcy52YWx1ZSB8fCAhdGhpcy5tYXhMZW5ndGggfHwgIXRoaXMudmFsdWUubGVuZ3RoIHx8IHRoaXMudmFsdWUubGVuZ3RoIDw9IHRoaXMubWF4TGVuZ3RoKSkgPyBudWxsIDoge1xuICAgICAgZHluYW1pY2xpc3Q6IHtcbiAgICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIC4uLih0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUubGVuZ3RoID4gdGhpcy5tYXhMZW5ndGggPyB7bWF4bGVuZ3RoOiB7dmFsaWQ6IGZhbHNlfX0gOiB7fSlcbiAgICB9O1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oJ2F1dG9jb21wbGV0ZV8nICsgdGhpcy5mb3JtQ29udHJvbE5hbWUpO1xuICAgIGlmICh0aGlzLmZvcm1FbGVtZW50Q2hhbmdlc1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5mb3JtRWxlbWVudENoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHJvY2Vzc2VzIHRoZSBnaXZlbiBsaXN0IG9iamVjdCBhbmQgdXBkYXRlcyB0aGUgY29tcG9uZW50J3Mgc3RhdGUgYWNjb3JkaW5nbHkuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIHVwZGF0ZXMgdGhlIGludGVybmFsIGxpc3QsIHNlbGVjdGVkIG5vZGVzLCBhbmQgdmFyaW91cyBjb25maWd1cmF0aW9uIGZpZWxkc1xuICAgKiBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgbGlzdCBvYmplY3QuIEl0IGFsc28gdHJpZ2dlcnMgdGhlIGJ1aWxkaW5nIG9mIHRoZSB0cmVlIHN0cnVjdHVyZS5cbiAgICpcbiAgICogQHBhcmFtIHtBdXRvY29tcGxldGVSZXNwb25zZX0gbGlzdE9iamVjdCAtIFRoZSBsaXN0IG9iamVjdCBjb250YWluaW5nIGNvbmZpZ3VyYXRpb24gYW5kIGRhdGEuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHByb2Nlc3NMaXN0T2JqZWN0KGxpc3RPYmplY3Q6IEF1dG9jb21wbGV0ZVJlc3BvbnNlKTogdm9pZCB7XG4gICAgdGhpcy5fbGlzdCA9IGxpc3RPYmplY3Q7XG4gICAgaWYgKGxpc3RPYmplY3QuY29uZmlnICYmIGxpc3RPYmplY3QuY29uZmlnLnZhbHVlRmllbGQpIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkTm9kZXMpIHtcbiAgICAgICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSB0aGlzLnNlbGVjdGVkTm9kZXMubWFwKHNuID0+IHtcbiAgICAgICAgICAgIHNuW2xpc3RPYmplY3QuY29uZmlnLnZhbHVlRmllbGRdID0gc25bdGhpcy52YWx1ZUZpZWxkXTtcbiAgICAgICAgICAgIHNuWyd2YWx1ZSddID0gc25bdGhpcy52YWx1ZUZpZWxkXTtcbiAgICAgICAgICAgIHJldHVybiBzbjtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXNbbGlzdE9iamVjdC5jb25maWcudmFsdWVGaWVsZF0gPSB0aGlzLnNlbGVjdGVkTm9kZXNbdGhpcy52YWx1ZUZpZWxkXTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXNbJ3ZhbHVlJ10gPSB0aGlzLnNlbGVjdGVkTm9kZXNbdGhpcy52YWx1ZUZpZWxkXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy52YWx1ZUZpZWxkID0gbGlzdE9iamVjdC5jb25maWcudmFsdWVGaWVsZDtcbiAgICAgIHRoaXMudGl0bGUgPSBsaXN0T2JqZWN0LmNvbmZpZy50aXRsZTtcbiAgICB9XG4gICAgaWYgKGxpc3RPYmplY3QuY29uZmlnICYmIGxpc3RPYmplY3QuY29uZmlnLmRlc2NyaXB0aW9uRmllbGQpIHtcbiAgICAgIHRoaXMuZGVzY3JpcHRpb25GaWVsZCA9IGxpc3RPYmplY3QuY29uZmlnLmRlc2NyaXB0aW9uRmllbGQ7XG4gICAgfVxuICAgIGlmIChsaXN0T2JqZWN0LmNvbmZpZyAmJiBsaXN0T2JqZWN0LmNvbmZpZy5zdWJFbnRyaWVzRmllbGQpIHtcbiAgICAgIHRoaXMuc3ViRW50cmllc0ZpZWxkID0gbGlzdE9iamVjdC5jb25maWcuc3ViRW50cmllc0ZpZWxkO1xuICAgIH1cbiAgICB0aGlzLmJ1aWxkVHJlZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgYW5kIHByb3BhZ2F0ZXMgdGhlIGZvcm0gY29udHJvbHMgdmFsdWUgYmFzZWQgb24gdGhlIGNvbXBvbmVudHMgaW5uZXIgdmFsdWVzLiBQcm9wYWdhdGVzIG9ubHkgd2hlbiB0aGUgdmFsdWUgaGFzIGNoYW5nZWQuXG4gICAqIEBwYXJhbSBmb3JjZVByb3BhZ2F0aW9uIC0gZm9yY2VzIHByb3BhZ2F0aW9uIGV2ZW4gaWYgdGhlIHZhbHVlIGhhc24ndCBiZWVuIGNoYW5nZWRcbiAgICovXG4gIHByaXZhdGUgc2V0Rm9ybUNvbnRyb2xWYWx1ZShmb3JjZVByb3BhZ2F0aW9uPzogYm9vbGVhbikge1xuICAgIHRoaXMuaXNQcm9wYWdhdGluZ0NoYW5nZSA9IHRydWU7XG5cbiAgICBsZXQgdjtcbiAgICBsZXQgY2hhbmdlZDogYm9vbGVhbjtcblxuICAgIGlmICh0aGlzLm11bHRpc2VsZWN0ICYmIEFycmF5LmlzQXJyYXkodGhpcy5zZWxlY3RlZE5vZGVzKSkge1xuICAgICAgdiA9IHRoaXMuc2VsZWN0ZWROb2RlcyA/IHRoaXMuc2VsZWN0ZWROb2Rlcz8ubWFwKChub2RlKSA9PiBub2RlW3RoaXMudmFsdWVGaWVsZF0pIDogW107XG4gICAgICBjaGFuZ2VkID0gIXRoaXMudmFsdWUgfHwgISh2Lmxlbmd0aCA9PT0gdGhpcy52YWx1ZS5sZW5ndGggJiYgdi5ldmVyeSgodmFsKSA9PiB0aGlzLnZhbHVlLnNvbWUoKGN1clZhbCkgPT4gY3VyVmFsID09PSB2YWwpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHYgPSB0aGlzLnNlbGVjdGVkTm9kZXMgJiYgdGhpcy5zZWxlY3RlZE5vZGVzLmRhdGEgPyB0aGlzLnNlbGVjdGVkTm9kZXM/LmRhdGFbdGhpcy52YWx1ZUZpZWxkXSA6XG4gICAgICAgICh0aGlzLnNlbGVjdGVkTm9kZXMgPyB0aGlzLnNlbGVjdGVkTm9kZXNbdGhpcy52YWx1ZUZpZWxkXSA6IG51bGwpO1xuICAgICAgY2hhbmdlZCA9IHYgIT09IHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWQgfHwgZm9yY2VQcm9wYWdhdGlvbikge1xuICAgICAgdGhpcy52YWx1ZSA9IHY7XG4gICAgICBpZiAodj8ubGVuZ3RoID4gMCAmJiB0aGlzLmlzU2VhcmNoKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB7XG4gICAgICAgICAgb3BlcmF0b3I6IHRoaXMuc2VhcmNoT3B0aW9uLFxuICAgICAgICAgIHZhbHVlOiB2LFxuICAgICAgICAgIGFjdHVhbE9wZXJhdG9yOiB0aGlzLnNlYXJjaE9wdGlvbiA9PT0gU2VhcmNoRmlsdGVyLk9QRVJBVE9SLlVTRV9OT1QgPyBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuSU4gOiBudWxsLFxuICAgICAgICAgIHVzZU5vdDogdGhpcy5zZWFyY2hPcHRpb24gPT09IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5VU0VfTk9UXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICB0aGlzLmlzUHJvcGFnYXRpbmdDaGFuZ2UgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRUcmVlKCkge1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlVmFsdWVzID0gW107XG4gICAgbGV0IHRyZWU6IFRyZWVOb2RlW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2xpc3QuZW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5hZGRUcmVlTm9kZSh0cmVlLCB0aGlzLl9saXN0LmVudHJpZXNbaV0pO1xuICAgIH1cbiAgICB0aGlzLnRyZWUgPSB0cmVlO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRUcmVlTm9kZShwYXJlbnROb2RlOiBUcmVlTm9kZVtdLCBsaXN0RW50cnkpIHtcbiAgICBpZiAodGhpcy5maWx0ZXJGdW5jdGlvbiAmJiAhdGhpcy5maWx0ZXJGdW5jdGlvbihsaXN0RW50cnkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBub2RlOiBUcmVlTm9kZSA9IHRoaXMubGlzdEVudHJ5VG9UcmVlTm9kZShsaXN0RW50cnkpO1xuICAgIGlmIChub2RlLnNlbGVjdGFibGUpIHtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlVmFsdWVzLnB1c2gobm9kZSk7XG4gICAgfVxuICAgIGlmIChsaXN0RW50cnlbdGhpcy5zdWJFbnRyaWVzRmllbGRdKSB7XG4gICAgICBub2RlLmNoaWxkcmVuID0gW107XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3RFbnRyeVt0aGlzLnN1YkVudHJpZXNGaWVsZF0ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy5hZGRUcmVlTm9kZShub2RlLmNoaWxkcmVuLCBsaXN0RW50cnlbdGhpcy5zdWJFbnRyaWVzRmllbGRdW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGxpc3RFbnRyeVt0aGlzLnByb2plY3RzRW50cmllc0ZpZWxkXSkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0RW50cnlbdGhpcy5wcm9qZWN0c0VudHJpZXNGaWVsZF0ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy5hZGRUcmVlTm9kZShub2RlLmNoaWxkcmVuLCBsaXN0RW50cnlbdGhpcy5wcm9qZWN0c0VudHJpZXNGaWVsZF1baV0pO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNoZWNrU2VsZWN0ZWQobm9kZSk7XG4gICAgcGFyZW50Tm9kZS5wdXNoKG5vZGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1NlbGVjdGVkKG5vZGU6IFRyZWVOb2RlKSB7XG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLm11bHRpc2VsZWN0ICYmIEFycmF5LmlzQXJyYXkodGhpcy5zZWxlY3RlZE5vZGVzKSkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGlzVHJlZU5vZGVWYWx1ZUluVmFsdWUgPSBub2RlLmRhdGFbdGhpcy52YWx1ZUZpZWxkXSA9PT0gdGhpcy52YWx1ZVtpXTtcbiAgICAgICAgaWYgKGlzVHJlZU5vZGVWYWx1ZUluVmFsdWUpIHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZE5vZGVUaGF0SGFzVmFsdWUgPSB0aGlzLnNlbGVjdGVkTm9kZXMuZmluZChzTiA9PiBzTlt0aGlzLnZhbHVlRmllbGRdID09PSB0aGlzLnZhbHVlW2ldKTtcbiAgICAgICAgICBpZiAoIXNlbGVjdGVkTm9kZVRoYXRIYXNWYWx1ZSkge1xuICAgICAgICAgICAgbm9kZS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMucHVzaChub2RlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2VsZWN0ZWROb2RlVGhhdEhhc1ZhbHVlLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKG5vZGUuZGF0YVt0aGlzLnZhbHVlRmllbGRdID09PSB0aGlzLnZhbHVlKSB7XG4gICAgICAgIG5vZGUuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBub2RlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbGlzdEVudHJ5VG9UcmVlTm9kZShsaXN0RW50cnkpOiBUcmVlTm9kZSB7XG4gICAgbGV0IHNlbGVjdGFibGU6IGJvb2xlYW47XG4gICAgaWYgKHRoaXMuX2xpc3QgJiYgdGhpcy5fbGlzdC5jb25maWcgJiYgdGhpcy5fbGlzdC5jb25maWcuYWxsZWxlbWVudHNzZWxlY3RhYmxlKSB7XG4gICAgICBzZWxlY3RhYmxlID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VsZWN0YWJsZSA9ICEobGlzdEVudHJ5W3RoaXMuc3ViRW50cmllc0ZpZWxkXSAmJiBsaXN0RW50cnlbdGhpcy5zdWJFbnRyaWVzRmllbGRdLmxlbmd0aCA+IDApO1xuICAgIH1cblxuICAgIGxldCB0aXRsZSA9IGxpc3RFbnRyeVt0aGlzLnRpdGxlXSB8fCBsaXN0RW50cnlbdGhpcy52YWx1ZUZpZWxkXTtcbiAgICBpZiAodGhpcy5pc0ZpbHRlckVsZW1lbnQpIHtcbiAgICAgIHRpdGxlICs9IGxpc3RFbnRyeS5tb2RlbHMgPyAnJyA6ICcgKCcgKyBsaXN0RW50cnlbdGhpcy52YWx1ZUZpZWxkXSArICcpJztcbiAgICB9IGVsc2UgaWYgKGxpc3RFbnRyeVt0aGlzLmRlc2NyaXB0aW9uRmllbGRdKSB7XG4gICAgICB0aXRsZSArPSAnICgnICsgbGlzdEVudHJ5W3RoaXMuZGVzY3JpcHRpb25GaWVsZF0gKyAnKSc7XG4gICAgfVxuXG4gICAgbGV0IHRyZWVOb2RlID0ge1xuICAgICAgaWQ6IGxpc3RFbnRyeS5pZCA/IGxpc3RFbnRyeS5pZCA6IGxpc3RFbnRyeVt0aGlzLnZhbHVlRmllbGRdLFxuICAgICAgbmFtZTogbGlzdEVudHJ5W3RoaXMuZGVzY3JpcHRpb25GaWVsZF0gPyBsaXN0RW50cnlbdGhpcy52YWx1ZUZpZWxkXSArICcgKCcgKyBsaXN0RW50cnlbdGhpcy5kZXNjcmlwdGlvbkZpZWxkXSArICcpJyA6IGxpc3RFbnRyeVt0aGlzLnZhbHVlRmllbGRdLFxuICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgZXhwYW5kZWQ6IGZhbHNlLFxuICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgc2VsZWN0YWJsZTogbGlzdEVudHJ5LnNlbGVjdGFibGUgPz8gc2VsZWN0YWJsZSxcbiAgICAgIGRhdGE6IGxpc3RFbnRyeVxuICAgIH07XG4gICAgdHJlZU5vZGVbdGhpcy52YWx1ZUZpZWxkXSA9IGxpc3RFbnRyeVt0aGlzLnZhbHVlRmllbGRdO1xuICAgIHRyZWVOb2RlLmRhdGFbJ3ZhbHVlJ10gPSBsaXN0RW50cnlbdGhpcy52YWx1ZUZpZWxkXTtcbiAgICB0cmVlTm9kZVt0aGlzLmRlc2NyaXB0aW9uRmllbGRdID0gbGlzdEVudHJ5W3RoaXMuZGVzY3JpcHRpb25GaWVsZF07XG4gICAgdHJlZU5vZGVbdGhpcy5zdWJFbnRyaWVzRmllbGRdID0gbGlzdEVudHJ5W3RoaXMuc3ViRW50cmllc0ZpZWxkXTtcblxuICAgIHJldHVybiB0cmVlTm9kZTtcbiAgfVxuXG4gIC8qKlxuICAqIEZpbHRlcnMgdGhlIGF1dG9jb21wbGV0ZSByZXN1bHRzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBzZWFyY2ggdGVybS5cbiAgKlxuICAqIFRoZSBtZXRob2QgZmlsdGVycyB0aGUgYGF1dG9jb21wbGV0ZVZhbHVlc2AgYXJyYXkgdG8gZmluZCBub2RlcyB0aGF0IG1hdGNoIHRoZSBzZWFyY2ggdGVybS5cbiAgKiBJdCBhbHNvIGFwcGxpZXMgYWRkaXRpb25hbCBmaWx0ZXJpbmcgYmFzZWQgb24gdGhlIGBmaWx0ZXJGdW5jdGlvbmAgYW5kIGBtdWx0aXNlbGVjdGAgcHJvcGVydGllcy5cbiAgKiAtIElmIGBmaWx0ZXJGdW5jdGlvbmAgaXMgZGVmaW5lZCwgaXQgZmlsdGVycyBvdXQgbm9kZXMgdGhhdCBkbyBub3QgcGFzcyB0aGUgZnVuY3Rpb24uXG4gICogLSBJZiBgc2l0dWF0aW9uYCBpcyAnU0VBUkNIJywgaXQgZXhjbHVkZXMgbm9kZXMgdGhhdCBhcmUgYWxyZWFkeSBzZWxlY3RlZC5cbiAgKiAtIEl0IG1hdGNoZXMgbm9kZXMgYmFzZWQgb24gdGhlIHNlYXJjaCB0ZXJtIGFnYWluc3QgdGhlIGB2YWx1ZUZpZWxkYCBhbmQgYGRlc2NyaXB0aW9uRmllbGRgLlxuICAqXG4gICogQHBhcmFtIHtzdHJpbmd9IHRlcm0gLSBUaGUgc2VhcmNoIHRlcm0gdXNlZCB0byBmaWx0ZXIgdGhlIGF1dG9jb21wbGV0ZSByZXN1bHRzLlxuICAqL1xuICBwcml2YXRlIGZpbHRlckF1dG9jb21wbGV0ZVJlc3VsdHModGVybTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5hdXRvY29tcGxldGVSZXMgPSB0aGlzLmF1dG9jb21wbGV0ZVZhbHVlcy5maWx0ZXIoKGFjTm9kZSkgPT4ge1xuICAgICAgY29uc3QgYWNOb2RlRGF0YSA9IGFjTm9kZS5kYXRhO1xuICAgICAgY29uc3QgYWNOb2RlVmFsdWUgPSBhY05vZGVEYXRhPy5bdGhpcy52YWx1ZUZpZWxkXTtcbiAgICAgIGNvbnN0IGFjTm9kZURlc2NyaXB0aW9uID0gYWNOb2RlRGF0YT8uW3RoaXMuZGVzY3JpcHRpb25GaWVsZF07XG5cbiAgICAgIGlmICh0aGlzLmZpbHRlckZ1bmN0aW9uICYmICF0aGlzLmZpbHRlckZ1bmN0aW9uKGFjTm9kZURhdGEpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuc2l0dWF0aW9uID09PSAnU0VBUkNIJyAmJiB0aGlzLnNlbGVjdGVkTm9kZXM/LnNvbWUoKG5vZGUpID0+IHtcbiAgICAgICAgY29uc3Qgbm9kZVZhbHVlID0gbm9kZS52YWx1ZSB8fCBub2RlPy5kYXRhPy5bdGhpcy52YWx1ZUZpZWxkXTtcbiAgICAgICAgcmV0dXJuIGFjTm9kZURhdGEgJiYgbm9kZVZhbHVlICYmIGFjTm9kZVZhbHVlID09PSBub2RlVmFsdWU7XG4gICAgICB9KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRlcm1Mb3dlciA9IHRlcm0/LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IGFjTm9kZVZhbHVlTG93ZXIgPSBhY05vZGVWYWx1ZT8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgY29uc3QgYWNOb2RlRGVzY3JpcHRpb25Mb3dlciA9IGFjTm9kZURlc2NyaXB0aW9uPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIGlmICh0ZXJtTG93ZXIuc3RhcnRzV2l0aCgnKicpKSB7XG4gICAgICAgIGNvbnN0IHRlcm0gPSB0ZXJtTG93ZXIuc2xpY2UoMSk7XG4gICAgICAgIHJldHVybiBhY05vZGVWYWx1ZUxvd2VyPy5lbmRzV2l0aCh0ZXJtKSB8fFxuICAgICAgICAgIChhY05vZGVEZXNjcmlwdGlvbkxvd2VyICYmIGFjTm9kZURlc2NyaXB0aW9uTG93ZXIuZW5kc1dpdGgodGVybSkpO1xuICAgICAgfSBlbHNlIGlmICh0ZXJtTG93ZXIuZW5kc1dpdGgoJyonKSkge1xuICAgICAgICBjb25zdCB0ZXJtID0gdGVybUxvd2VyLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgcmV0dXJuIGFjTm9kZVZhbHVlTG93ZXI/LnN0YXJ0c1dpdGgodGVybSkgfHxcbiAgICAgICAgICAoYWNOb2RlRGVzY3JpcHRpb25Mb3dlciAmJiBhY05vZGVEZXNjcmlwdGlvbkxvd2VyLnN0YXJ0c1dpdGgodGVybSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGFjTm9kZVZhbHVlTG93ZXI/LmluY2x1ZGVzKHRlcm1Mb3dlcikgfHxcbiAgICAgICAgICAoYWNOb2RlRGVzY3JpcHRpb25Mb3dlciAmJiBhY05vZGVEZXNjcmlwdGlvbkxvd2VyLmluY2x1ZGVzKHRlcm1Mb3dlcikpO1xuICAgICAgfVxuICAgIH0pLnNsaWNlKDAsIDEwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIGNhY2hlZCBhdXRvY29tcGxldGUgdmFsdWVzLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBzZXRzIHRoZSBgaGFzQXV0b2NvbXBsZXRlVmFsdWVzQ2FjaGVkYCBmbGFnIHRvIGBmYWxzZWAgYW5kIHJlbW92ZXNcbiAgICogdGhlIGNhY2hlZCBhdXRvY29tcGxldGUgdmFsdWVzIGZyb20gbG9jYWwgc3RvcmFnZSB1c2luZyB0aGUgYGZvcm1Db250cm9sTmFtZWAuXG4gICAqL1xuICBwcml2YXRlIHJlc2V0Q2FjaGVkVmFsdWVzKCk6IHZvaWQge1xuICAgIHRoaXMuaGFzQXV0b2NvbXBsZXRlVmFsdWVzQ2FjaGVkID0gZmFsc2U7XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oJ2F1dG9jb21wbGV0ZV8nICsgdGhpcy5mb3JtQ29udHJvbE5hbWUpO1xuICB9XG5cbn1cbiIsIjxlby1kaWFsb2cgI2xpc3REaWFsb2cgW3RpdGxlXT1cInBpY2tlclRpdGxlXCIgW3Zpc2libGVdPVwiZGlzcGxheVwiIFtuZ0NsYXNzXT1cIntlbXB0eTogIShsaXN0Py5lbnRyaWVzPy5sZW5ndGgpICYmIGRpc3BsYXl9XCJcbiAgW3N0eWxlQ2xhc3NdPVwiJ2R5bmxpc3QtZGlhbG9nJ1wiIChoaWRlKT1cImRpc3BsYXkgPSBmYWxzZVwiPlxuXG4gIDxlby10cmVlIFt0cmVlXT1cInRyZWVcIiAqbmdJZj1cImRpc3BsYXkgJiYgdHJlZVwiIFtpc0Rpc3BsYXllZF09XCJkaXNwbGF5XCIgW29wdGlvbnNdPVwie211bHRpc2VsZWN0OiBtdWx0aXNlbGVjdH1cIlxuICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWROb2Rlc1wiIChrZXl1cC5lbnRlcik9XCJzaG93RGlhbG9nKCRldmVudCwgZmFsc2UpXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIj5cbiAgPC9lby10cmVlPlxuXG4gIEBpZiAoIShsaXN0Py5lbnRyaWVzPy5sZW5ndGgpKSB7XG4gICAgPGRpdiBjbGFzcz1cImVtcHR5XCI+XG4gICAgICBAaWYgKGlzQXV0b2NvbXBsZXRlTG9hZGluZykge1xuICAgICAgICA8ZW8tbG9hZGluZy1zcGlubmVyIFtzaXplXT1cIidzbWFsbCdcIj48L2VvLWxvYWRpbmctc3Bpbm5lcj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5LmR5bmFtaWMubGlzdC5lbXB0eTwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG48L2VvLWRpYWxvZz5cblxuPGRpdiBjbGFzcz1cImVvLWR5bmFtaWMtbGlzdFwiIFtuZ0NsYXNzXT1cIntmdWxsOiBzZWxlY3RlZE5vZGVzICYmIHNlbGVjdGVkTm9kZXMubGVuZ3RoID09PSBhdXRvY29tcGxldGVWYWx1ZXMubGVuZ3RofVwiPlxuXG4gIEBpZiAoaXNTZWFyY2ggJiYgIWlzVGFibGVFbGVtZW50KSB7XG4gICAgPHl2Yy1kcm9wZG93biBbKG5nTW9kZWwpXT1cInNlYXJjaE9wdGlvblwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoKVwiIFtvcHRpb25zXT1cImF2YWlsYWJsZVNlYXJjaE9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCIgW2Rpc2FibGVDbGVhckJ1dHRvbl09XCJ0cnVlXCI+PC95dmMtZHJvcGRvd24+XG4gIH1cblxuICAgIDx5dmMtYXV0b2NvbXBsZXRlIFsobmdNb2RlbCldPVwic2VsZWN0ZWROb2Rlc1wiICNhdXRvY29tcGxldGUgKHN1Z2dlc3Rpb25TZWxlY3QpPVwib25BdXRvQ29tcGxldGVTZWxlY3QoJGV2ZW50KVwiIChzdWdnZXN0aW9uVW5zZWxlY3QpPVwib25BdXRvQ29tcGxldGVVbnNlbGVjdCgkZXZlbnQpXCIgKGZvY3VzKT1cIm9uQXV0b2NvbXBsZXRlRm9jdXMoKVwiIChpbnB1dCk9XCJvbkF1dG9jb21wbGV0ZUlucHV0KCRldmVudClcIiAoa2V5ZG93bik9XCJvbkF1dG9jb21wbGV0ZUtleWRvd24oJGV2ZW50KVwiIChibHVyKT1cIm9uQXV0b2NvbXBsZXRlQmx1cigpXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCIgW2ZvcmNlU2VsZWN0aW9uXT1cInRydWVcIiBbYXV0b2NvbXBsZXRlVmFsdWVzXT1cImF1dG9jb21wbGV0ZVJlc1wiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQXV0b2NvbXBsZXRlTW9kZWxDaGFuZ2UoJGV2ZW50KVwiIGZpZWxkPVwie3sgdmFsdWVGaWVsZCB9fVwiIChhdXRvY29tcGxldGVGbmMpPVwiYXV0b2NvbXBsZXRlRm4oJGV2ZW50KVwiIFttdWx0aXBsZV09XCJtdWx0aXNlbGVjdFwiIFtuZ0NsYXNzXT1cInsgJ2hpZGUtaW5wdXRUb2tlbic6ICFoYXNBdXRvY29tcGxldGVVcmwgfVwiXG4gID5cblxuICAgIDxuZy10ZW1wbGF0ZSBsZXQtaXRlbSAjY2hpcFRlbXBsYXRlPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3tpdGVtW3ZhbHVlRmllbGRdfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2F1dG9jb21wbGV0ZU9wdGlvblRlbXBsYXRlIGxldC1pdGVtPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3tpdGVtW3ZhbHVlRmllbGRdfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCIgc3R5bGU9XCJmb250LXN0eWxlOiBpdGFsaWM7IGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWNhcHRpb24pXCI+e3tpdGVtW2Rlc2NyaXB0aW9uRmllbGRdfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwveXZjLWF1dG9jb21wbGV0ZT5cblxuICA8YnV0dG9uICNidXR0b24gY2xhc3M9XCJ1aS1idXR0b25cIiAqbmdJZj1cIiFyZWFkb25seVwiIFtkaXNhYmxlZF09XCJyZWFkb25seVwiIChjbGljayk9XCJzaG93RGlhbG9nKCRldmVudCwgISEkZXZlbnQuZGV0YWlsKVwiXG4gICAgKGtleXVwLmFycm93RG93bik9XCJzaG93RGlhbG9nKCRldmVudClcIiAoa2V5dXAuZW50ZXIpPVwic2hvd0RpYWxvZygkZXZlbnQpXCIgKGtleXVwLnNwYWNlKT1cInNob3dEaWFsb2coJGV2ZW50KVwiPlxuICAgIDxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2Fycm93X2Rvd24uc3ZnJ1wiPjwvZW8taWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
713
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2Zvcm0tZWxlbWVudHMvZHluYW1pYy1saXN0L2R5bmFtaWMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2R5bmFtaWMtbGlzdC9keW5hbWljLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQVUsS0FBSyxFQUFFLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBSUwsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDZCxNQUFNLGdCQUFnQixDQUFDO0FBR3hCLE9BQU8sRUFBNEMsVUFBVSxFQUFnQixVQUFVLEVBQUUsWUFBWSxFQUFRLE1BQU0sY0FBYyxDQUFDO0FBQ2xJLE9BQU8sRUFBQyxZQUFZLEVBQWMsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQXFCckUsTUFBTSxPQUFPLG9CQUFvQjtJQStDL0IsbUNBQW1DO0lBQ25DLFlBQW9CLGtCQUFzQyxFQUFVLG1CQUF3QyxFQUFVLHVCQUFnRCxFQUFVLFlBQTBCO1FBQXRMLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFBVSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQVUsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBckNqTSxtQkFBYyxHQUFFLEtBQUssQ0FBQztRQUN0QixvQkFBZSxHQUFFLEtBQUssQ0FBQztRQUdoQyx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDM0IsZ0NBQTJCLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLHlCQUFvQixHQUFXLElBQUks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RUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjswTEFJMEIsaUJBQWlCO3NCQUEzQyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0osa0JBQWtCO3NCQUF0QyxTQUFTO3VCQUFDLFFBQVE7Z0JBRVYsU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkErREYsY0FBYztzQkFEakIsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBUW5CLFVBQVU7c0JBRGIsS0FBSzt1QkFBQyxZQUFZO2dCQVFmLGVBQWU7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgZm9yd2FyZFJlZiwgT25Jbml0LCBJbnB1dCwgVmlld0NoaWxkLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgVmFsaWRhdG9yLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgTkdfVkFMSURBVE9SU1xufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0F1dG9Db21wbGV0ZX0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQge1RyZWVOb2RlfSBmcm9tICcuLi8uLi90cmVlL3RyZWUuY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQge0xvY2FsU3RvcmFnZVNlcnZpY2UsIEF1dG9jb21wbGV0ZVJlc3BvbnNlLCBFbmFpb0V2ZW50LCBFdmVudFNlcnZpY2UsIFJhbmdlVmFsdWUsIFNlYXJjaEZpbHRlciwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7T2JqZWN0Rm9ybUhlbHBlclNlcnZpY2V9IGZyb20gJy4uLy4uL29iamVjdC1mb3JtL29iamVjdC1mb3JtLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7RHluYW1pY0xpc3RTZXJ2aWNlfSBmcm9tICcuL2R5bmFtaWMtbGlzdC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tZHluYW1pYy1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IER5bmFtaWNMaXN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRHluYW1pY0xpc3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBWaWV3Q2hpbGQoJ2F1dG9jb21wbGV0ZScpIGF1dG9Db21wbGV0ZUlucHV0OiBBdXRvQ29tcGxldGU7XG4gIEBWaWV3Q2hpbGQoJ2J1dHRvbicpIGF1dG9Db21wbGV0ZUJ1dHRvbjtcblxuICBASW5wdXQoKSBzaXR1YXRpb246IHN0cmluZztcbiAgQElucHV0KCkgbXVsdGlzZWxlY3Q6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHBpY2tlclRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xuICBASW5wdXQoKSBmb3JtQ29udHJvbE5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgZm9ybUVsZW1lbnRDaGFuZ2VzOiBPYnNlcnZhYmxlPGFueT47XG4gIEBJbnB1dCgpIGlzVGFibGVFbGVtZW50PSBmYWxzZTtcbiAgQElucHV0KCkgaXNGaWx0ZXJFbGVtZW50PSBmYWxzZTtcbiAgQElucHV0KCkgbWF4TGVuZ3RoOiBudW1iZXI7XG5cbiAgaGFzQXV0b2NvbXBsZXRlVXJsID0gZmFsc2U7XG4gIGhhc0F1dG9jb21wbGV0ZVZhbHVlc0NhY2hlZCA9IGZhbHNlO1xuICBhdXRvY29tcGxldGVVcmxWYWx1ZTogc3RyaW5nID0gbnVsbDtcbiAgaXNBdXRvY29tcGxldGVMb2FkaW5nID0gZmFsc2U7XG4gIHZhbHVlRmllbGQgPSAndmFsdWUnO1xuICBzdWJFbnRyaWVzRmllbGQgPSAnZW50cmllcyc7XG4gIHByb2plY3RzRW50cmllc0ZpZWxkID0gJ3Byb2plY3RzJztcbiAgZGVzY3JpcHRpb25GaWVsZCA9ICdkZXNjcmlwdGlvbic7XG4gIHRpdGxlID0gJ3RpdGxlJztcbiAgZGlzcGxheSA9IGZhbHNlO1xuICB2YWx1ZTtcbiAgdHJlZTogVHJlZU5vZGVbXTtcbiAgYXV0b2NvbXBsZXRlUmVzO1xuICBhdXRvY29tcGxldGVWYWx1ZXM6IFRyZWVOb2RlW10gPSBbXTtcbiAgcHJldmlvdXNTZWFyY2hWYWx1ZSA9IFwiXCI7XG4gIGhhc0Zvcm1FbGVtZW50Q2hhbmdlZCA9IGZhbHNlO1xuICBpc1NlYXJjaCA9IGZhbHNlO1xuICBpc1Byb3BhZ2F0aW5nQ2hhbmdlID0gZmFsc2U7XG4gIHByaXZhdGUgaW5pdGlhbFZhbHVlT25Gb2N1czogYW55ID0gbnVsbDtcblxuICBwdWJsaWMgYXZhaWxhYmxlU2VhcmNoT3B0aW9ucyA9IFtcbiAgICB7bGFiZWw6IFJhbmdlVmFsdWUuZ2V0T3BlcmF0b3JMYWJlbChTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuRVFVQUwpLCB2YWx1ZTogU2VhcmNoRmlsdGVyLk9QRVJBVE9SLklOfSxcbiAgICB7bGFiZWw6IFJhbmdlVmFsdWUuZ2V0T3BlcmF0b3JMYWJlbChTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuVVNFX05PVCksIHZhbHVlOiBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuVVNFX05PVCwgYWN0dWFsT3BlcmF0b3I6IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5JTn0sXG4gIF07XG5cbiAgcHVibGljIHNlYXJjaE9wdGlvbiA9IHRoaXMuYXZhaWxhYmxlU2VhcmNoT3B0aW9uc1swXS52YWx1ZTtcbiAgcHJpdmF0ZSBhdXRvY29tcGxldGVTZWFyY2hWYWx1ZSQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgX3NlbGVjdGVkTm9kZXM6IGFueTtcbiAgcHJpdmF0ZSBpc1ZhbGlkID0gdHJ1ZTtcbiAgcHJpdmF0ZSBmb3JtRWxlbWVudENoYW5nZXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBfbGlzdDogYW55O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZHluYW1pY0xpc3RTZXJ2aWNlOiBEeW5hbWljTGlzdFNlcnZpY2UsIHByaXZhdGUgbG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSwgcHJpdmF0ZSBvYmplY3RGb3JtSGVscGVyU2VydmljZTogT2JqZWN0Rm9ybUhlbHBlclNlcnZpY2UsIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UpIHtcblxuICAgIC8vIENoZWNrIGlmIHRoZSBuZXcgc2VhcmNoIHZhbHVlIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBwcmV2aW91cyBzZWFyY2ggdmFsdWUgYW5kIHRoZSBjdXJyZW50IHZhbHVlLlxuICAgIHRoaXMuYXV0b2NvbXBsZXRlU2VhcmNoVmFsdWUkLnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUoMzAwKVxuICAgICkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5wcmV2aW91c1NlYXJjaFZhbHVlICYmIHZhbHVlICE9PSB0aGlzLnZhbHVlKSB7XG4gICAgICAgIHRoaXMucHJldmlvdXNTZWFyY2hWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmZldGNoQXV0b2NvbXBsZXRlRGF0YSh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gdGhlIGxhdGVzdCBmb3JtIGVsZW1lbnQgY2hhbmdlcyBvYnNlcnZhYmxlIGFuZCAgdGhlIGZsYWcgaW5kaWNhdGluZyB0aGF0IHRoZSBmb3JtIGVsZW1lbnQgaGFzIGNoYW5nZWQuXG4gICAgdGhpcy5vYmplY3RGb3JtSGVscGVyU2VydmljZS5sYXRlc3RGb3JtRWxlbWVudENoYW5nZXMkXG4gICAgICAuc3Vic2NyaWJlKGxhdGVzdENoYW5nZXMgPT4ge1xuICAgICAgICB0aGlzLmhhc0Zvcm1FbGVtZW50Q2hhbmdlZCA9IHRydWU7XG4gICAgICB9KTtcbiAgfVxuXG4gIGdldCBsaXN0KCkge1xuICAgIHJldHVybiB0aGlzLl9saXN0O1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkTm9kZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkTm9kZXM7XG4gIH1cblxuICBASW5wdXQoJ2ZpbHRlckZ1bmN0aW9uJylcbiAgc2V0IGZpbHRlckZ1bmN0aW9uKGZ1bmM6IEZ1bmN0aW9uKSB7XG4gICAgaWYgKHRoaXMuX2xpc3QpIHtcbiAgICAgIHRoaXMuYnVpbGRUcmVlKCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdsaXN0T2JqZWN0JylcbiAgc2V0IGxpc3RPYmplY3QobG86IEF1dG9jb21wbGV0ZVJlc3BvbnNlKSB7XG4gICAgaWYgKGxvKSB7XG4gICAgICB0aGlzLnByb2Nlc3NMaXN0T2JqZWN0KGxvKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgYXV0b2NvbXBsZXRlVXJsKHVybDogc3RyaW5nKSB7XG4gICAgaWYgKHVybCkge1xuICAgICAgdGhpcy5oYXNBdXRvY29tcGxldGVVcmwgPSB0cnVlO1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVVcmxWYWx1ZSA9IHVybDtcbiAgICB9XG4gIH1cblxuICBzZXQgc2VsZWN0ZWROb2RlcyhuOiBhbnkpIHtcbiAgICBpZiAobiAmJiAhQXJyYXkuaXNBcnJheShuKSkge1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVGbihuWyh0aGlzLl9saXN0Py5jb25maWc/LnRpdGxlID8gdGhpcy5fbGlzdC5jb25maWcudGl0bGUgOiB0aGlzLl9saXN0Py5jb25maWc/LnZhbHVlRmllbGQpIHx8ICd2YWx1ZSddIHx8IChuLnRpdGxlID8gbi50aXRsZSA6IG4ubmFtZSkpO1xuICAgIH1cbiAgICB0aGlzLl9zZWxlY3RlZE5vZGVzID0gc3RydWN0dXJlZENsb25lKG4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgYXV0b2NvbXBsZXRlIGRhdGEgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHNlYXJjaCB2YWx1ZS5cbiAgICpcbiAgICogSWYgdGhlIGF1dG9jb21wbGV0ZSB2YWx1ZXMgYXJlIGNhY2hlZCBhbmQgdGhlcmUgaXMgbm8gc2VhcmNoIHZhbHVlIG9yIGZvcm0gZWxlbWVudCBjaGFuZ2UsXG4gICAqIGl0IHJldHJpZXZlcyB0aGUgY2FjaGVkIHZhbHVlcyBmcm9tIGxvY2FsIHN0b3JhZ2UuIE90aGVyd2lzZSwgaXQgbWFrZXMgYW4gSFRUUCByZXF1ZXN0IHRvIGZldGNoXG4gICAqIHRoZSBhdXRvY29tcGxldGUgZGF0YS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtzZWFyY2hWYWx1ZT1udWxsXSAtIFRoZSBzZWFyY2ggdmFsdWUgdXNlZCB0byBmaWx0ZXIgdGhlIGF1dG9jb21wbGV0ZSByZXN1bHRzLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIGZldGNoQXV0b2NvbXBsZXRlRGF0YShzZWFyY2hWYWx1ZTogc3RyaW5nID0gbnVsbCk6IHZvaWQge1xuICAgIGxldCBhdXRvY29tcGVsdGVMaXN0VmFsdWVzOiBBdXRvY29tcGxldGVSZXNwb25zZSA9IHt9IGFzIEF1dG9jb21wbGV0ZVJlc3BvbnNlO1xuICAgIGxldCB1cmwgPSB0aGlzLmF1dG9jb21wbGV0ZVVybFZhbHVlO1xuICAgIGlmICh0aGlzLmhhc0F1dG9jb21wbGV0ZVZhbHVlc0NhY2hlZCkge1xuICAgICAgYXV0b2NvbXBlbHRlTGlzdFZhbHVlcyA9IHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5nZXRJdGVtKCdhdXRvY29tcGxldGVfJyArIHRoaXMuZm9ybUNvbnRyb2xOYW1lKTtcbiAgICAgIHRoaXMucHJvY2Vzc0xpc3RPYmplY3QoYXV0b2NvbXBlbHRlTGlzdFZhbHVlcyk7XG4gICAgICBpZiAoc2VhcmNoVmFsdWUpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJBdXRvY29tcGxldGVSZXN1bHRzKHNlYXJjaFZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc0F1dG9jb21wbGV0ZUxvYWRpbmcgPSB0cnVlO1xuICAgICAgbGV0IHBhcmFtcyA9IHt9O1xuXG4gICAgICBpZiAoc2VhcmNoVmFsdWUpIHtcbiAgICAgICAgcGFyYW1zWydxdWVyeSddID0gc2VhcmNoVmFsdWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnNpdHVhdGlvbikge1xuICAgICAgICBwYXJhbXNbJ3NpdHVhdGlvbiddID0gU3RyaW5nKHRoaXMuc2l0dWF0aW9uKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmR5bmFtaWNMaXN0U2VydmljZS5nZXRBdXRvY29tcGxldGVEYXRhKHVybCwgcGFyYW1zKS5zdWJzY3JpYmUoKGRhdGE6IEF1dG9jb21wbGV0ZVJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuaXNBdXRvY29tcGxldGVMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIGlmICghc2VhcmNoVmFsdWUpIHtcbiAgICAgICAgICB0aGlzLmhhc0F1dG9jb21wbGV0ZVZhbHVlc0NhY2hlZCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oJ2F1dG9jb21wbGV0ZV8nICsgdGhpcy5mb3JtQ29udHJvbE5hbWUsIGRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJvY2Vzc0xpc3RPYmplY3QoZGF0YSk7XG4gICAgICAgIGlmIChzZWFyY2hWYWx1ZSkge1xuICAgICAgICAgIHRoaXMuZmlsdGVyQXV0b2NvbXBsZXRlUmVzdWx0cyhzZWFyY2hWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oYXNGb3JtRWxlbWVudENoYW5nZWQgPSBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuaXNQcm9wYWdhdGluZ0NoYW5nZSA9IHRydWU7XG5cbiAgICB0aGlzLnZhbHVlID0gdmFsdWU/LnZhbHVlIHx8IHZhbHVlIHx8IG51bGw7XG4gICAgY29uc3QgdmFsdWVzID0gIXRoaXMudmFsdWUgfHwgQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSA/IHRoaXMudmFsdWUgfHwgW10gOiBbdGhpcy52YWx1ZV07XG5cbiAgICBpZiAodmFsdWUgJiYgdmFsdWUub3BlcmF0b3IpIHtcbiAgICAgIGNvbnN0IG9wZXJhdG9yID0gdmFsdWU/LnVzZU5vdCA/IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5VU0VfTk9UIDogdmFsdWUub3BlcmF0b3I7XG4gICAgICBjb25zdCBtYXRjaCA9IHRoaXMuYXZhaWxhYmxlU2VhcmNoT3B0aW9ucy5maW5kKChvKSA9PiBvLnZhbHVlID09PSBvcGVyYXRvcik7XG4gICAgICB0aGlzLnNlYXJjaE9wdGlvbiA9IG1hdGNoID8gbWF0Y2gudmFsdWUgOiB0aGlzLmF2YWlsYWJsZVNlYXJjaE9wdGlvbnNbMF0udmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpc2VsZWN0ICYmICF0aGlzLmhhc0F1dG9jb21wbGV0ZVVybCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBbXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IG51bGw7XG4gICAgICB9XG4gICAgICB0aGlzLmxhc3RWYWxpZFNlbGVjdGVkTm9kZXMgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5tdWx0aXNlbGVjdCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSB2YWx1ZXMubWFwKHYgPT4ge1xuICAgICAgICAgIGxldCBub2RlID0ge307XG4gICAgICAgICAgbm9kZVt0aGlzLnZhbHVlRmllbGRdID0gdjtcbiAgICAgICAgICBub2RlWyd2YWx1ZSddID0gdjtcbiAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgbm9kZSA9IHt9O1xuICAgICAgICBpZiAodGhpcy50aXRsZSAmJiB0aGlzLl9saXN0ICYmIHRoaXMuaXNTZWFyY2gpIHtcbiAgICAgICAgICBjb25zdCBsaXN0RW50cmllcyA9IHRoaXMuX2xpc3Q/LmVudHJpZXMuZmluZChlbnRyeSA9PiBlbnRyeT8ubW9kZWxzPy5zb21lKG1vZGVsID0+IG1vZGVsLm5hbWUgPT09IHZhbHVlKSk7XG4gICAgICAgICAgaWYgKGxpc3RFbnRyaWVzKSB7XG4gICAgICAgICAgICBub2RlID0gbGlzdEVudHJpZXMubW9kZWxzPy5maW5kKG1vZGVsID0+IG1vZGVsLm5hbWUgPT09IHZhbHVlKSB8fCB7fTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbm9kZVt0aGlzLnZhbHVlRmllbGRdID0gdGhpcy52YWx1ZTtcbiAgICAgICAgICBub2RlWyd2YWx1ZSddID0gdGhpcy52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBub2RlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnN0b3JlTGFzdFZhbGlkU2VsZWN0aW9uKCk7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9kZXMgPSAhdGhpcy5zZWxlY3RlZE5vZGVzIHx8IEFycmF5LmlzQXJyYXkodGhpcy5zZWxlY3RlZE5vZGVzKSA/IHRoaXMuc2VsZWN0ZWROb2RlcyB8fCBbXSA6IFt0aGlzLnNlbGVjdGVkTm9kZXNdO1xuXG4gICAgaWYgKHRoaXMuX2xpc3QgJiYgKG5vZGVzLmxlbmd0aCAhPT0gdmFsdWVzLmxlbmd0aCB8fCBub2Rlcy5zb21lKChuLCBpKSA9PiBuW3RoaXMudGl0bGUgPyB0aGlzLnRpdGxlIDogdGhpcy52YWx1ZUZpZWxkXSAhPT0gdmFsdWVzW2ldKSkpIHtcbiAgICAgIHRoaXMuYnVpbGRUcmVlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5pc1Byb3BhZ2F0aW5nQ2hhbmdlID0gZmFsc2U7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZSh0cnVlKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gIH1cblxuICBvbkF1dG9Db21wbGV0ZVNlbGVjdChub2RlPyk6IHZvaWQge1xuICAgIGNvbnN0IHdhc0ludmFsaWQgPSAhdGhpcy5pc1ZhbGlkO1xuICAgIHRoaXMuaXNWYWxpZCA9IHRydWU7XG4gICAgdGhpcy5zdG9yZUxhc3RWYWxpZFNlbGVjdGlvbigpO1xuICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZSh3YXNJbnZhbGlkKTtcbiAgICBpZiAodGhpcy5oYXNBdXRvY29tcGxldGVVcmwpIHtcbiAgICAgIHRoaXMuZmV0Y2hBdXRvY29tcGxldGVEYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgb25BdXRvQ29tcGxldGVVbnNlbGVjdChub2RlPyk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IHRoaXMuc2VsZWN0ZWROb2Rlcy5maWx0ZXIoKHNOb2RlKSA9PiBzTm9kZS52YWx1ZSAhPT0gbm9kZS52YWx1ZSk7XG4gICAgdGhpcy5zZXRGb3JtQ29udHJvbFZhbHVlKCk7XG4gIH1cblxuICAvLyBQcmV2ZW50IGF1dG9jb21wbGV0ZSBmcm9tIGxvc2luZyB2YWx1ZXMgd2hlbiB1c2VyIGNsaWNrcyBpbi9vdXRcbiAgcHJpdmF0ZSB1c2VySW50ZW50aW9uYWxseUNsZWFyZWRWYWx1ZSA9IGZhbHNlO1xuICBwcml2YXRlIGhhc0ZvY3VzZWRJbnB1dCA9IGZhbHNlO1xuICBwcml2YXRlIGhhc1VzZXJJbnB1dCA9IGZhbHNlO1xuICBwcml2YXRlIGlucHV0RmllbGRWYWx1ZSA9ICcnO1xuXG4gIG9uQXV0b2NvbXBsZXRlTW9kZWxDaGFuZ2UobmV3VmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGlmICghbmV3VmFsdWUgfHwgKEFycmF5LmlzQXJyYXkobmV3VmFsdWUpICYmIG5ld1ZhbHVlLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkTm9kZXMgJiYgdGhpcy5pbnB1dEZpZWxkVmFsdWUgPT09ICcnKSB7XG4gICAgICAgIHRoaXMudXNlckludGVudGlvbmFsbHlDbGVhcmVkVmFsdWUgPSB0cnVlO1xuICAgICAgICB0aGlzLmxhc3RWYWxpZFNlbGVjdGVkTm9kZXMgPSBudWxsO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBudWxsO1xuICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgICAgdGhpcy5zZXRGb3JtQ29udHJvbFZhbHVlKHRydWUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXNlckludGVudGlvbmFsbHlDbGVhcmVkVmFsdWUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBSZXN0b3JlIHNlbGVjdGlvbiBpZiBhdXRvY29tcGxldGUgYWNjaWRlbnRhbGx5IGNsZWFycyBpdFxuICAgIGlmICghdGhpcy5pc1NlYXJjaCAmJiAhdGhpcy51c2VySW50ZW50aW9uYWxseUNsZWFyZWRWYWx1ZSAmJlxuICAgICAgKCghbmV3VmFsdWUgfHwgKEFycmF5LmlzQXJyYXkobmV3VmFsdWUpICYmIG5ld1ZhbHVlLmxlbmd0aCA9PT0gMCkpICYmIHRoaXMubGFzdFZhbGlkU2VsZWN0ZWROb2RlcykpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5sYXN0VmFsaWRTZWxlY3RlZE5vZGVzKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub25UcmVlU2VsZWN0aW9uQ2hhbmdlZChuZXdWYWx1ZSk7XG4gIH1cblxuICBvbkF1dG9jb21wbGV0ZUZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuaGFzRm9jdXNlZElucHV0ID0gdHJ1ZTtcbiAgICB0aGlzLmhhc1VzZXJJbnB1dCA9IGZhbHNlO1xuICAgIHRoaXMudXNlckludGVudGlvbmFsbHlDbGVhcmVkVmFsdWUgPSBmYWxzZTtcblxuICAgIC8vIFN0b3JlIGluaXRpYWwgdmFsdWUgdG8gZGV0ZWN0IGFjdHVhbCBjaGFuZ2VzIGxhdGVyXG4gICAgaWYgKHRoaXMudmFsdWUgIT09IG51bGwgJiYgdGhpcy52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmluaXRpYWxWYWx1ZU9uRm9jdXMgPSB0aGlzLnZhbHVlID8gc3RydWN0dXJlZENsb25lKHRoaXMudmFsdWUpIDogdGhpcy52YWx1ZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWROb2Rlcykge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5zZWxlY3RlZE5vZGVzKSkge1xuICAgICAgICB0aGlzLmluaXRpYWxWYWx1ZU9uRm9jdXMgPSB0aGlzLnNlbGVjdGVkTm9kZXMubWFwKG5vZGUgPT4gbm9kZVt0aGlzLnZhbHVlRmllbGRdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbFZhbHVlT25Gb2N1cyA9IHRoaXMuc2VsZWN0ZWROb2Rlc1t0aGlzLnZhbHVlRmllbGRdIHx8IHRoaXMuc2VsZWN0ZWROb2Rlcy52YWx1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbml0aWFsVmFsdWVPbkZvY3VzID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBvbkF1dG9jb21wbGV0ZUlucHV0KGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmhhc1VzZXJJbnB1dCA9IHRydWU7XG4gICAgY29uc3QgbmV3SW5wdXRWYWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZSB8fCAnJztcblxuICAgIGlmIChuZXdJbnB1dFZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudXNlckludGVudGlvbmFsbHlDbGVhcmVkVmFsdWUgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKG5ld0lucHV0VmFsdWUgPT09ICcnICYmIHRoaXMuc2VsZWN0ZWROb2Rlcykge1xuICAgICAgdGhpcy51c2VySW50ZW50aW9uYWxseUNsZWFyZWRWYWx1ZSA9IHRydWU7XG4gICAgfVxuXG4gICAgdGhpcy5pbnB1dEZpZWxkVmFsdWUgPSBuZXdJbnB1dFZhbHVlO1xuICB9XG5cbiAgb25BdXRvY29tcGxldGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKChldmVudC5rZXkgPT09ICdEZWxldGUnIHx8IGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScpKSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZE5vZGVzICYmICh0aGlzLmlucHV0RmllbGRWYWx1ZSA9PT0gJycgfHwgdGhpcy5pbnB1dEZpZWxkVmFsdWUubGVuZ3RoIDw9IDEpKSB7XG4gICAgICAgIHRoaXMudXNlckludGVudGlvbmFsbHlDbGVhcmVkVmFsdWUgPSB0cnVlO1xuICAgICAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUodHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25BdXRvY29tcGxldGVCbHVyKCk6IHZvaWQge1xuICAgIC8vIFNraXAgZm9ybSB1cGRhdGVzIGlmIHVzZXIganVzdCBjbGlja2VkIGluL291dCB3aXRob3V0IGNoYW5nZXNcbiAgICBpZiAoIXRoaXMuaGFzVXNlcklucHV0ICYmICF0aGlzLnVzZXJJbnRlbnRpb25hbGx5Q2xlYXJlZFZhbHVlKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XG4gICAgICB0aGlzLnJlc2V0VHJhY2tpbmdGbGFncygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlucHV0RmllbGRWYWx1ZSA9PT0gJycgJiYgdGhpcy5zZWxlY3RlZE5vZGVzICYmIHRoaXMuaGFzVXNlcklucHV0KSB7XG4gICAgICB0aGlzLnVzZXJJbnRlbnRpb25hbGx5Q2xlYXJlZFZhbHVlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBsZXQgc2hvdWxkUHJvcGFnYXRlQ2hhbmdlID0gZmFsc2U7XG4gICAgbGV0IGZpbmFsVmFsdWUgPSB0aGlzLnZhbHVlO1xuXG4gICAgaWYgKHRoaXMudXNlckludGVudGlvbmFsbHlDbGVhcmVkVmFsdWUpIHtcbiAgICAgIC8vIENoZWNrIGlmIHRoZXJlIHdhcyBhY3R1YWxseSBhIHZhbHVlIHRvIGNsZWFyXG4gICAgICBjb25zdCBoYWRWYWx1ZUJlZm9yZSA9ICh0aGlzLmluaXRpYWxWYWx1ZU9uRm9jdXMgIT09IG51bGwgJiYgdGhpcy5pbml0aWFsVmFsdWVPbkZvY3VzICE9PSB1bmRlZmluZWQpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuc2VsZWN0ZWROb2RlcyAhPT0gbnVsbCAmJiB0aGlzLnNlbGVjdGVkTm9kZXMgIT09IHVuZGVmaW5lZCk7XG5cbiAgICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IG51bGw7XG4gICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMubGFzdFZhbGlkU2VsZWN0ZWROb2RlcyA9IG51bGw7XG4gICAgICBmaW5hbFZhbHVlID0gbnVsbDtcblxuICAgICAgaWYgKGhhZFZhbHVlQmVmb3JlKSB7XG4gICAgICAgIHNob3VsZFByb3BhZ2F0ZUNoYW5nZSA9IHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENoZWNrIGlmIHJlc3RvcmF0aW9uIGlzIG5lZWRlZCAoYWNjaWRlbnRhbCBjbGVhcmluZylcbiAgICAgIGNvbnN0IG5lZWRzUmVzdG9yYXRpb24gPSAoIXRoaXMuc2VsZWN0ZWROb2RlcyB8fCAoQXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGVkTm9kZXMpICYmIHRoaXMuc2VsZWN0ZWROb2Rlcy5sZW5ndGggPT09IDApKVxuICAgICAgICAmJiB0aGlzLmxhc3RWYWxpZFNlbGVjdGVkTm9kZXM7XG5cbiAgICAgIGlmIChuZWVkc1Jlc3RvcmF0aW9uKSB7XG4gICAgICAgIHRoaXMucmVzdG9yZVNlbGVjdGlvbklmTmVlZGVkKCk7XG4gICAgICAgIGZpbmFsVmFsdWUgPSB0aGlzLnNlbGVjdGVkTm9kZXMgJiYgdGhpcy5zZWxlY3RlZE5vZGVzLmRhdGEgPyB0aGlzLnNlbGVjdGVkTm9kZXMuZGF0YVt0aGlzLnZhbHVlRmllbGRdIDpcbiAgICAgICAgICAodGhpcy5zZWxlY3RlZE5vZGVzID8gdGhpcy5zZWxlY3RlZE5vZGVzW3RoaXMudmFsdWVGaWVsZF0gOiBudWxsKTtcblxuICAgICAgICBpZiAoIXRoaXMudmFsdWVzQXJlRXF1YWwoZmluYWxWYWx1ZSwgdGhpcy5pbml0aWFsVmFsdWVPbkZvY3VzKSkge1xuICAgICAgICAgIHNob3VsZFByb3BhZ2F0ZUNoYW5nZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XG5cbiAgICBpZiAoc2hvdWxkUHJvcGFnYXRlQ2hhbmdlKSB7XG4gICAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUodHJ1ZSk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXNldFRyYWNraW5nRmxhZ3MoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRUcmFja2luZ0ZsYWdzKCk6IHZvaWQge1xuICAgIHRoaXMuaGFzRm9jdXNlZElucHV0ID0gZmFsc2U7XG4gICAgdGhpcy5oYXNVc2VySW5wdXQgPSBmYWxzZTtcbiAgICB0aGlzLnVzZXJJbnRlbnRpb25hbGx5Q2xlYXJlZFZhbHVlID0gZmFsc2U7XG4gICAgdGhpcy5pbnB1dEZpZWxkVmFsdWUgPSAnJztcbiAgICB0aGlzLmluaXRpYWxWYWx1ZU9uRm9jdXMgPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWx1ZXNBcmVFcXVhbCh2YWx1ZTE6IGFueSwgdmFsdWUyOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAodmFsdWUxID09PSB2YWx1ZTIpIHJldHVybiB0cnVlO1xuICAgIGlmICh2YWx1ZTEgPT09IG51bGwgfHwgdmFsdWUyID09PSBudWxsKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHZhbHVlMSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlMiA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZTEpICYmIEFycmF5LmlzQXJyYXkodmFsdWUyKSkge1xuICAgICAgaWYgKHZhbHVlMS5sZW5ndGggIT09IHZhbHVlMi5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICAgIHJldHVybiB2YWx1ZTEuZXZlcnkoKHZhbCwgaW5kZXgpID0+IHZhbCA9PT0gdmFsdWUyW2luZGV4XSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZTEgPT09ICdvYmplY3QnICYmIHR5cGVvZiB2YWx1ZTIgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAodmFsdWUxLm9wZXJhdG9yICE9PSB2YWx1ZTIub3BlcmF0b3IpIHJldHVybiBmYWxzZTtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlMS52YWx1ZSkgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZTIudmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlc0FyZUVxdWFsKHZhbHVlMS52YWx1ZSwgdmFsdWUyLnZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTEudmFsdWUgPT09IHZhbHVlMi52YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKGV2dCk6IHZvaWQge1xuICAgIGlmIChldnQgIT09IHVuZGVmaW5lZCAmJiBldnQgIT09IG51bGwpIHtcbiAgICAgIGlmICghdGhpcy5tdWx0aXNlbGVjdCkge1xuICAgICAgICB0aGlzLmRpc3BsYXkgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHdhc0ludmFsaWQgPSAhdGhpcy5pc1ZhbGlkO1xuICAgICAgdGhpcy5pc1ZhbGlkID0gdHJ1ZTtcbiAgICAgIHRoaXMuc3RvcmVMYXN0VmFsaWRTZWxlY3Rpb24oKTtcbiAgICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZSh3YXNJbnZhbGlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZXN0b3JlU2VsZWN0aW9uSWZOZWVkZWQoKTtcbiAgICB9XG4gIH1cblxuICBvbkF1dG9jb21wbGV0ZUNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMudXNlckludGVudGlvbmFsbHlDbGVhcmVkVmFsdWUgPSB0cnVlO1xuICAgIHRoaXMubGFzdFZhbGlkU2VsZWN0ZWROb2RlcyA9IG51bGw7XG4gICAgdGhpcy5zZWxlY3RlZE5vZGVzID0gbnVsbDtcbiAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGxhc3RWYWxpZFNlbGVjdGVkTm9kZXM6IGFueSA9IG51bGw7XG5cbiAgcHJpdmF0ZSBzdG9yZUxhc3RWYWxpZFNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZE5vZGVzKSB7XG4gICAgICB0aGlzLmxhc3RWYWxpZFNlbGVjdGVkTm9kZXMgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5zZWxlY3RlZE5vZGVzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc3RvcmVTZWxlY3Rpb25JZk5lZWRlZCgpOiB2b2lkIHtcbiAgICBpZiAoKCF0aGlzLnNlbGVjdGVkTm9kZXMgfHwgKEFycmF5LmlzQXJyYXkodGhpcy5zZWxlY3RlZE5vZGVzKSAmJiB0aGlzLnNlbGVjdGVkTm9kZXMubGVuZ3RoID09PSAwKSlcbiAgICAgICYmIHRoaXMubGFzdFZhbGlkU2VsZWN0ZWROb2RlcyAmJiAhdGhpcy51c2VySW50ZW50aW9uYWxseUNsZWFyZWRWYWx1ZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZE5vZGVzID0gc3RydWN0dXJlZENsb25lKHRoaXMubGFzdFZhbGlkU2VsZWN0ZWROb2Rlcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtYWludGFpblNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZE5vZGVzICYmIHRoaXMudmFsdWUpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5hdXRvQ29tcGxldGVJbnB1dCAmJiB0aGlzLnNlbGVjdGVkTm9kZXMpIHtcbiAgICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZUlucHV0LndyaXRlVmFsdWUodGhpcy5zZWxlY3RlZE5vZGVzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9ICgpID0+IHsgfTtcblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgYXV0b2NvbXBsZXRlIGZ1bmN0aW9uYWxpdHkgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHNlYXJjaCB0ZXJtLlxuICAgKlxuICAgKiBJZiBgaGFzQXV0b2NvbXBsZXRlVXJsYCBpcyB0cnVlLCBpdCB0cmlnZ2VycyBhbiBhdXRvY29tcGxldGUgc2VhcmNoIHZpYSBhbiBvYnNlcnZhYmxlLlxuICAgKiBPdGhlcndpc2UsIGl0IGZpbHRlcnMgdGhlIGF1dG9jb21wbGV0ZSByZXN1bHRzIGxvY2FsbHkuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXJtIC0gVGhlIHNlYXJjaCB0ZXJtIHVzZWQgZm9yIGF1dG9jb21wbGV0ZS5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBhdXRvY29tcGxldGVGbih0ZXJtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGVybSkge1xuICAgICAgdGhpcy5oYXNBdXRvY29tcGxldGVVcmxcbiAgICAgICAgPyB0aGlzLmF1dG9jb21wbGV0ZVNlYXJjaFZhbHVlJC5uZXh0KHRlcm0pXG4gICAgICAgIDogdGhpcy5maWx0ZXJBdXRvY29tcGxldGVSZXN1bHRzKHRlcm0pO1xuICAgIH1cbiAgfVxuXG4gIHNob3dEaWFsb2coZXZlbnQ/LCBkaXNwbGF5ID0gdHJ1ZSk6IHZvaWQge1xuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjbGljaycgJiYgZXZlbnQuZGV0YWlsID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuaGFzQXV0b2NvbXBsZXRlVXJsICYmICF0aGlzLmhhc0F1dG9jb21wbGV0ZVZhbHVlc0NhY2hlZCkge1xuICAgICAgICB0aGlzLmZldGNoQXV0b2NvbXBsZXRlRGF0YSgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmRpc3BsYXkgPSAhIWRpc3BsYXk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaXR1YXRpb24gPT09ICdTRUFSQ0gnKSB7XG4gICAgICB0aGlzLm11bHRpc2VsZWN0ID0gIXRoaXMuaXNUYWJsZUVsZW1lbnQ7XG4gICAgICB0aGlzLmlzU2VhcmNoID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLmV2ZW50U2VydmljZS5vbihFbmFpb0V2ZW50LkNMSUVOVF9MT0NBTEVfQ0hBTkdFRCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVzZXRDYWNoZWRWYWx1ZXMoKTtcbiAgICB9KTtcbiAgICB0aGlzLmV2ZW50U2VydmljZS5vbihFbmFpb0V2ZW50LlNDSEVNQV9MT0NBTEVfQ0hBTkdFRCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVzZXRDYWNoZWRWYWx1ZXMoKTtcbiAgICB9KTtcblxuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGM6IFVudHlwZWRGb3JtQ29udHJvbCk6IHtba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBib29sZWFuIHwge3ZhbGlkOiBib29sZWFufX0ge1xuICAgIHJldHVybiAodGhpcy5pc1ZhbGlkICYmICghdGhpcy52YWx1ZSB8fCAhdGhpcy5tYXhMZW5ndGggfHwgIXRoaXMudmFsdWUubGVuZ3RoIHx8IHRoaXMudmFsdWUubGVuZ3RoIDw9IHRoaXMubWF4TGVuZ3RoKSkgPyBudWxsIDoge1xuICAgICAgZHluYW1pY2xpc3Q6IHtcbiAgICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIC4uLih0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUubGVuZ3RoID4gdGhpcy5tYXhMZW5ndGggPyB7bWF4bGVuZ3RoOiB7dmFsaWQ6IGZhbHNlfX0gOiB7fSlcbiAgICB9O1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oJ2F1dG9jb21wbGV0ZV8nICsgdGhpcy5mb3JtQ29udHJvbE5hbWUpO1xuICAgIGlmICh0aGlzLmZvcm1FbGVtZW50Q2hhbmdlc1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5mb3JtRWxlbWVudENoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHJvY2Vzc2VzIHRoZSBnaXZlbiBsaXN0IG9iamVjdCBhbmQgdXBkYXRlcyB0aGUgY29tcG9uZW50J3Mgc3RhdGUgYWNjb3JkaW5nbHkuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIHVwZGF0ZXMgdGhlIGludGVybmFsIGxpc3QsIHNlbGVjdGVkIG5vZGVzLCBhbmQgdmFyaW91cyBjb25maWd1cmF0aW9uIGZpZWxkc1xuICAgKiBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgbGlzdCBvYmplY3QuIEl0IGFsc28gdHJpZ2dlcnMgdGhlIGJ1aWxkaW5nIG9mIHRoZSB0cmVlIHN0cnVjdHVyZS5cbiAgICpcbiAgICogQHBhcmFtIHtBdXRvY29tcGxldGVSZXNwb25zZX0gbGlzdE9iamVjdCAtIFRoZSBsaXN0IG9iamVjdCBjb250YWluaW5nIGNvbmZpZ3VyYXRpb24gYW5kIGRhdGEuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHByb2Nlc3NMaXN0T2JqZWN0KGxpc3RPYmplY3Q6IEF1dG9jb21wbGV0ZVJlc3BvbnNlKTogdm9pZCB7XG4gICAgdGhpcy5fbGlzdCA9IGxpc3RPYmplY3Q7XG4gICAgaWYgKGxpc3RPYmplY3QuY29uZmlnICYmIGxpc3RPYmplY3QuY29uZmlnLnZhbHVlRmllbGQpIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkTm9kZXMpIHtcbiAgICAgICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSB0aGlzLnNlbGVjdGVkTm9kZXMubWFwKHNuID0+IHtcbiAgICAgICAgICAgIHNuW2xpc3RPYmplY3QuY29uZmlnLnZhbHVlRmllbGRdID0gc25bdGhpcy52YWx1ZUZpZWxkXTtcbiAgICAgICAgICAgIHNuWyd2YWx1ZSddID0gc25bdGhpcy52YWx1ZUZpZWxkXTtcbiAgICAgICAgICAgIHJldHVybiBzbjtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXNbbGlzdE9iamVjdC5jb25maWcudmFsdWVGaWVsZF0gPSB0aGlzLnNlbGVjdGVkTm9kZXNbdGhpcy52YWx1ZUZpZWxkXTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXNbJ3ZhbHVlJ10gPSB0aGlzLnNlbGVjdGVkTm9kZXNbdGhpcy52YWx1ZUZpZWxkXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy52YWx1ZUZpZWxkID0gbGlzdE9iamVjdC5jb25maWcudmFsdWVGaWVsZDtcbiAgICAgIHRoaXMudGl0bGUgPSBsaXN0T2JqZWN0LmNvbmZpZy50aXRsZTtcbiAgICB9XG4gICAgaWYgKGxpc3RPYmplY3QuY29uZmlnICYmIGxpc3RPYmplY3QuY29uZmlnLmRlc2NyaXB0aW9uRmllbGQpIHtcbiAgICAgIHRoaXMuZGVzY3JpcHRpb25GaWVsZCA9IGxpc3RPYmplY3QuY29uZmlnLmRlc2NyaXB0aW9uRmllbGQ7XG4gICAgfVxuICAgIGlmIChsaXN0T2JqZWN0LmNvbmZpZyAmJiBsaXN0T2JqZWN0LmNvbmZpZy5zdWJFbnRyaWVzRmllbGQpIHtcbiAgICAgIHRoaXMuc3ViRW50cmllc0ZpZWxkID0gbGlzdE9iamVjdC5jb25maWcuc3ViRW50cmllc0ZpZWxkO1xuICAgIH1cbiAgICB0aGlzLmJ1aWxkVHJlZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgYW5kIHByb3BhZ2F0ZXMgdGhlIGZvcm0gY29udHJvbHMgdmFsdWUgYmFzZWQgb24gdGhlIGNvbXBvbmVudHMgaW5uZXIgdmFsdWVzLiBQcm9wYWdhdGVzIG9ubHkgd2hlbiB0aGUgdmFsdWUgaGFzIGNoYW5nZWQuXG4gICAqIEBwYXJhbSBmb3JjZVByb3BhZ2F0aW9uIC0gZm9yY2VzIHByb3BhZ2F0aW9uIGV2ZW4gaWYgdGhlIHZhbHVlIGhhc24ndCBiZWVuIGNoYW5nZWRcbiAgICovXG4gIHByaXZhdGUgc2V0Rm9ybUNvbnRyb2xWYWx1ZShmb3JjZVByb3BhZ2F0aW9uPzogYm9vbGVhbikge1xuICAgIHRoaXMuaXNQcm9wYWdhdGluZ0NoYW5nZSA9IHRydWU7XG5cbiAgICBsZXQgdjtcbiAgICBsZXQgY2hhbmdlZDogYm9vbGVhbjtcblxuICAgIGlmICh0aGlzLm11bHRpc2VsZWN0ICYmIEFycmF5LmlzQXJyYXkodGhpcy5zZWxlY3RlZE5vZGVzKSkge1xuICAgICAgdiA9IHRoaXMuc2VsZWN0ZWROb2RlcyA/IHRoaXMuc2VsZWN0ZWROb2Rlcz8ubWFwKChub2RlKSA9PiBub2RlW3RoaXMudmFsdWVGaWVsZF0pIDogW107XG4gICAgICBjaGFuZ2VkID0gIXRoaXMudmFsdWUgfHwgISh2Lmxlbmd0aCA9PT0gdGhpcy52YWx1ZS5sZW5ndGggJiYgdi5ldmVyeSgodmFsKSA9PiB0aGlzLnZhbHVlLnNvbWUoKGN1clZhbCkgPT4gY3VyVmFsID09PSB2YWwpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHYgPSB0aGlzLnNlbGVjdGVkTm9kZXMgJiYgdGhpcy5zZWxlY3RlZE5vZGVzLmRhdGEgPyB0aGlzLnNlbGVjdGVkTm9kZXM/LmRhdGFbdGhpcy52YWx1ZUZpZWxkXSA6XG4gICAgICAgICh0aGlzLnNlbGVjdGVkTm9kZXMgPyB0aGlzLnNlbGVjdGVkTm9kZXNbdGhpcy52YWx1ZUZpZWxkXSA6IG51bGwpO1xuICAgICAgY2hhbmdlZCA9IHYgIT09IHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWQgfHwgZm9yY2VQcm9wYWdhdGlvbikge1xuICAgICAgdGhpcy52YWx1ZSA9IHY7XG4gICAgICBpZiAodj8ubGVuZ3RoID4gMCAmJiB0aGlzLmlzU2VhcmNoKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB7XG4gICAgICAgICAgb3BlcmF0b3I6IHRoaXMuc2VhcmNoT3B0aW9uLFxuICAgICAgICAgIHZhbHVlOiB2LFxuICAgICAgICAgIGFjdHVhbE9wZXJhdG9yOiB0aGlzLnNlYXJjaE9wdGlvbiA9PT0gU2VhcmNoRmlsdGVyLk9QRVJBVE9SLlVTRV9OT1QgPyBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuSU4gOiBudWxsLFxuICAgICAgICAgIHVzZU5vdDogdGhpcy5zZWFyY2hPcHRpb24gPT09IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5VU0VfTk9UXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICB0aGlzLmlzUHJvcGFnYXRpbmdDaGFuZ2UgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRUcmVlKCkge1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlVmFsdWVzID0gW107XG4gICAgbGV0IHRyZWU6IFRyZWVOb2RlW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2xpc3QuZW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5hZGRUcmVlTm9kZSh0cmVlLCB0aGlzLl9saXN0LmVudHJpZXNbaV0pO1xuICAgIH1cbiAgICB0aGlzLnRyZWUgPSB0cmVlO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRUcmVlTm9kZShwYXJlbnROb2RlOiBUcmVlTm9kZVtdLCBsaXN0RW50cnkpIHtcbiAgICBpZiAodGhpcy5maWx0ZXJGdW5jdGlvbiAmJiAhdGhpcy5maWx0ZXJGdW5jdGlvbihsaXN0RW50cnkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBub2RlOiBUcmVlTm9kZSA9IHRoaXMubGlzdEVudHJ5VG9UcmVlTm9kZShsaXN0RW50cnkpO1xuICAgIGlmIChub2RlLnNlbGVjdGFibGUpIHtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlVmFsdWVzLnB1c2gobm9kZSk7XG4gICAgfVxuICAgIGlmIChsaXN0RW50cnlbdGhpcy5zdWJFbnRyaWVzRmllbGRdKSB7XG4gICAgICBub2RlLmNoaWxkcmVuID0gW107XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3RFbnRyeVt0aGlzLnN1YkVudHJpZXNGaWVsZF0ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy5hZGRUcmVlTm9kZShub2RlLmNoaWxkcmVuLCBsaXN0RW50cnlbdGhpcy5zdWJFbnRyaWVzRmllbGRdW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGxpc3RFbnRyeVt0aGlzLnByb2plY3RzRW50cmllc0ZpZWxkXSkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0RW50cnlbdGhpcy5wcm9qZWN0c0VudHJpZXNGaWVsZF0ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy5hZGRUcmVlTm9kZShub2RlLmNoaWxkcmVuLCBsaXN0RW50cnlbdGhpcy5wcm9qZWN0c0VudHJpZXNGaWVsZF1baV0pO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNoZWNrU2VsZWN0ZWQobm9kZSk7XG4gICAgcGFyZW50Tm9kZS5wdXNoKG5vZGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1NlbGVjdGVkKG5vZGU6IFRyZWVOb2RlKSB7XG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLm11bHRpc2VsZWN0ICYmIEFycmF5LmlzQXJyYXkodGhpcy5zZWxlY3RlZE5vZGVzKSkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGlzVHJlZU5vZGVWYWx1ZUluVmFsdWUgPSBub2RlLmRhdGFbdGhpcy52YWx1ZUZpZWxkXSA9PT0gdGhpcy52YWx1ZVtpXTtcbiAgICAgICAgaWYgKGlzVHJlZU5vZGVWYWx1ZUluVmFsdWUpIHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZE5vZGVUaGF0SGFzVmFsdWUgPSB0aGlzLnNlbGVjdGVkTm9kZXMuZmluZChzTiA9PiBzTlt0aGlzLnZhbHVlRmllbGRdID09PSB0aGlzLnZhbHVlW2ldKTtcbiAgICAgICAgICBpZiAoIXNlbGVjdGVkTm9kZVRoYXRIYXNWYWx1ZSkge1xuICAgICAgICAgICAgbm9kZS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMucHVzaChub2RlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2VsZWN0ZWROb2RlVGhhdEhhc1ZhbHVlLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKG5vZGUuZGF0YVt0aGlzLnZhbHVlRmllbGRdID09PSB0aGlzLnZhbHVlKSB7XG4gICAgICAgIG5vZGUuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBub2RlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbGlzdEVudHJ5VG9UcmVlTm9kZShsaXN0RW50cnkpOiBUcmVlTm9kZSB7XG4gICAgbGV0IHNlbGVjdGFibGU6IGJvb2xlYW47XG4gICAgaWYgKHRoaXMuX2xpc3QgJiYgdGhpcy5fbGlzdC5jb25maWcgJiYgdGhpcy5fbGlzdC5jb25maWcuYWxsZWxlbWVudHNzZWxlY3RhYmxlKSB7XG4gICAgICBzZWxlY3RhYmxlID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VsZWN0YWJsZSA9ICEobGlzdEVudHJ5W3RoaXMuc3ViRW50cmllc0ZpZWxkXSAmJiBsaXN0RW50cnlbdGhpcy5zdWJFbnRyaWVzRmllbGRdLmxlbmd0aCA+IDApO1xuICAgIH1cblxuICAgIGxldCB0aXRsZSA9IGxpc3RFbnRyeVt0aGlzLnRpdGxlXSB8fCBsaXN0RW50cnlbdGhpcy52YWx1ZUZpZWxkXTtcbiAgICBpZiAodGhpcy5pc0ZpbHRlckVsZW1lbnQpIHtcbiAgICAgIHRpdGxlICs9IGxpc3RFbnRyeS5tb2RlbHMgPyAnJyA6ICcgKCcgKyBsaXN0RW50cnlbdGhpcy52YWx1ZUZpZWxkXSArICcpJztcbiAgICB9IGVsc2UgaWYgKGxpc3RFbnRyeVt0aGlzLmRlc2NyaXB0aW9uRmllbGRdKSB7XG4gICAgICB0aXRsZSArPSAnICgnICsgbGlzdEVudHJ5W3RoaXMuZGVzY3JpcHRpb25GaWVsZF0gKyAnKSc7XG4gICAgfVxuXG4gICAgbGV0IHRyZWVOb2RlID0ge1xuICAgICAgaWQ6IGxpc3RFbnRyeS5pZCA/IGxpc3RFbnRyeS5pZCA6IGxpc3RFbnRyeVt0aGlzLnZhbHVlRmllbGRdLFxuICAgICAgbmFtZTogbGlzdEVudHJ5W3RoaXMuZGVzY3JpcHRpb25GaWVsZF0gPyBsaXN0RW50cnlbdGhpcy52YWx1ZUZpZWxkXSArICcgKCcgKyBsaXN0RW50cnlbdGhpcy5kZXNjcmlwdGlvbkZpZWxkXSArICcpJyA6IGxpc3RFbnRyeVt0aGlzLnZhbHVlRmllbGRdLFxuICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgZXhwYW5kZWQ6IGZhbHNlLFxuICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgc2VsZWN0YWJsZTogbGlzdEVudHJ5LnNlbGVjdGFibGUgPz8gc2VsZWN0YWJsZSxcbiAgICAgIGRhdGE6IGxpc3RFbnRyeVxuICAgIH07XG4gICAgdHJlZU5vZGVbdGhpcy52YWx1ZUZpZWxkXSA9IGxpc3RFbnRyeVt0aGlzLnZhbHVlRmllbGRdO1xuICAgIHRyZWVOb2RlLmRhdGFbJ3ZhbHVlJ10gPSBsaXN0RW50cnlbdGhpcy52YWx1ZUZpZWxkXTtcbiAgICB0cmVlTm9kZVt0aGlzLmRlc2NyaXB0aW9uRmllbGRdID0gbGlzdEVudHJ5W3RoaXMuZGVzY3JpcHRpb25GaWVsZF07XG4gICAgdHJlZU5vZGVbdGhpcy5zdWJFbnRyaWVzRmllbGRdID0gbGlzdEVudHJ5W3RoaXMuc3ViRW50cmllc0ZpZWxkXTtcblxuICAgIHJldHVybiB0cmVlTm9kZTtcbiAgfVxuXG4gIC8qKlxuICAqIEZpbHRlcnMgdGhlIGF1dG9jb21wbGV0ZSByZXN1bHRzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBzZWFyY2ggdGVybS5cbiAgKlxuICAqIFRoZSBtZXRob2QgZmlsdGVycyB0aGUgYGF1dG9jb21wbGV0ZVZhbHVlc2AgYXJyYXkgdG8gZmluZCBub2RlcyB0aGF0IG1hdGNoIHRoZSBzZWFyY2ggdGVybS5cbiAgKiBJdCBhbHNvIGFwcGxpZXMgYWRkaXRpb25hbCBmaWx0ZXJpbmcgYmFzZWQgb24gdGhlIGBmaWx0ZXJGdW5jdGlvbmAgYW5kIGBtdWx0aXNlbGVjdGAgcHJvcGVydGllcy5cbiAgKiAtIElmIGBmaWx0ZXJGdW5jdGlvbmAgaXMgZGVmaW5lZCwgaXQgZmlsdGVycyBvdXQgbm9kZXMgdGhhdCBkbyBub3QgcGFzcyB0aGUgZnVuY3Rpb24uXG4gICogLSBJZiBgc2l0dWF0aW9uYCBpcyAnU0VBUkNIJywgaXQgZXhjbHVkZXMgbm9kZXMgdGhhdCBhcmUgYWxyZWFkeSBzZWxlY3RlZC5cbiAgKiAtIEl0IG1hdGNoZXMgbm9kZXMgYmFzZWQgb24gdGhlIHNlYXJjaCB0ZXJtIGFnYWluc3QgdGhlIGB2YWx1ZUZpZWxkYCBhbmQgYGRlc2NyaXB0aW9uRmllbGRgLlxuICAqXG4gICogQHBhcmFtIHtzdHJpbmd9IHRlcm0gLSBUaGUgc2VhcmNoIHRlcm0gdXNlZCB0byBmaWx0ZXIgdGhlIGF1dG9jb21wbGV0ZSByZXN1bHRzLlxuICAqL1xuICBwcml2YXRlIGZpbHRlckF1dG9jb21wbGV0ZVJlc3VsdHModGVybTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5hdXRvY29tcGxldGVSZXMgPSB0aGlzLmF1dG9jb21wbGV0ZVZhbHVlcy5maWx0ZXIoKGFjTm9kZSkgPT4ge1xuICAgICAgY29uc3QgYWNOb2RlRGF0YSA9IGFjTm9kZS5kYXRhO1xuICAgICAgY29uc3QgYWNOb2RlVmFsdWUgPSBhY05vZGVEYXRhPy5bdGhpcy52YWx1ZUZpZWxkXTtcbiAgICAgIGNvbnN0IGFjTm9kZURlc2NyaXB0aW9uID0gYWNOb2RlRGF0YT8uW3RoaXMuZGVzY3JpcHRpb25GaWVsZF07XG5cbiAgICAgIGlmICh0aGlzLmZpbHRlckZ1bmN0aW9uICYmICF0aGlzLmZpbHRlckZ1bmN0aW9uKGFjTm9kZURhdGEpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuc2l0dWF0aW9uID09PSAnU0VBUkNIJyAmJiBBcnJheS5pc0FycmF5KHRoaXMuc2VsZWN0ZWROb2RlcykgJiYgdGhpcy5zZWxlY3RlZE5vZGVzPy5zb21lKChub2RlKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vZGVWYWx1ZSA9IG5vZGUudmFsdWUgfHwgbm9kZT8uZGF0YT8uW3RoaXMudmFsdWVGaWVsZF07XG4gICAgICAgIHJldHVybiBhY05vZGVEYXRhICYmIG5vZGVWYWx1ZSAmJiBhY05vZGVWYWx1ZSA9PT0gbm9kZVZhbHVlO1xuICAgICAgfSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0ZXJtTG93ZXIgPSB0ZXJtPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCBhY05vZGVWYWx1ZUxvd2VyID0gYWNOb2RlVmFsdWU/LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IGFjTm9kZURlc2NyaXB0aW9uTG93ZXIgPSBhY05vZGVEZXNjcmlwdGlvbj8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBpZiAodGVybUxvd2VyLnN0YXJ0c1dpdGgoJyonKSkge1xuICAgICAgICBjb25zdCB0ZXJtID0gdGVybUxvd2VyLnNsaWNlKDEpO1xuICAgICAgICByZXR1cm4gYWNOb2RlVmFsdWVMb3dlcj8uZW5kc1dpdGgodGVybSkgfHxcbiAgICAgICAgICAoYWNOb2RlRGVzY3JpcHRpb25Mb3dlciAmJiBhY05vZGVEZXNjcmlwdGlvbkxvd2VyLmVuZHNXaXRoKHRlcm0pKTtcbiAgICAgIH0gZWxzZSBpZiAodGVybUxvd2VyLmVuZHNXaXRoKCcqJykpIHtcbiAgICAgICAgY29uc3QgdGVybSA9IHRlcm1Mb3dlci5zbGljZSgwLCAtMSk7XG4gICAgICAgIHJldHVybiBhY05vZGVWYWx1ZUxvd2VyPy5zdGFydHNXaXRoKHRlcm0pIHx8XG4gICAgICAgICAgKGFjTm9kZURlc2NyaXB0aW9uTG93ZXIgJiYgYWNOb2RlRGVzY3JpcHRpb25Mb3dlci5zdGFydHNXaXRoKHRlcm0pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBhY05vZGVWYWx1ZUxvd2VyPy5pbmNsdWRlcyh0ZXJtTG93ZXIpIHx8XG4gICAgICAgICAgKGFjTm9kZURlc2NyaXB0aW9uTG93ZXIgJiYgYWNOb2RlRGVzY3JpcHRpb25Mb3dlci5pbmNsdWRlcyh0ZXJtTG93ZXIpKTtcbiAgICAgIH1cbiAgICB9KS5zbGljZSgwLCAxMCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBjYWNoZWQgYXV0b2NvbXBsZXRlIHZhbHVlcy5cbiAgICpcbiAgICogVGhpcyBtZXRob2Qgc2V0cyB0aGUgYGhhc0F1dG9jb21wbGV0ZVZhbHVlc0NhY2hlZGAgZmxhZyB0byBgZmFsc2VgIGFuZCByZW1vdmVzXG4gICAqIHRoZSBjYWNoZWQgYXV0b2NvbXBsZXRlIHZhbHVlcyBmcm9tIGxvY2FsIHN0b3JhZ2UgdXNpbmcgdGhlIGBmb3JtQ29udHJvbE5hbWVgLlxuICAgKi9cbiAgcHJpdmF0ZSByZXNldENhY2hlZFZhbHVlcygpOiB2b2lkIHtcbiAgICB0aGlzLmhhc0F1dG9jb21wbGV0ZVZhbHVlc0NhY2hlZCA9IGZhbHNlO1xuICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKCdhdXRvY29tcGxldGVfJyArIHRoaXMuZm9ybUNvbnRyb2xOYW1lKTtcbiAgfVxuXG59XG4iLCI8ZW8tZGlhbG9nICNsaXN0RGlhbG9nIFt0aXRsZV09XCJwaWNrZXJUaXRsZVwiIFt2aXNpYmxlXT1cImRpc3BsYXlcIiBbbmdDbGFzc109XCJ7ZW1wdHk6ICEobGlzdD8uZW50cmllcz8ubGVuZ3RoKSAmJiBkaXNwbGF5fVwiXG4gIFtzdHlsZUNsYXNzXT1cIidkeW5saXN0LWRpYWxvZydcIiAoaGlkZSk9XCJkaXNwbGF5ID0gZmFsc2VcIj5cblxuICA8ZW8tdHJlZSBbdHJlZV09XCJ0cmVlXCIgKm5nSWY9XCJkaXNwbGF5ICYmIHRyZWVcIiBbaXNEaXNwbGF5ZWRdPVwiZGlzcGxheVwiIFtvcHRpb25zXT1cInttdWx0aXNlbGVjdDogbXVsdGlzZWxlY3R9XCJcbiAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTm9kZXNcIiAoa2V5dXAuZW50ZXIpPVwic2hvd0RpYWxvZygkZXZlbnQsIGZhbHNlKVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25UcmVlU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCI+XG4gIDwvZW8tdHJlZT5cblxuICBAaWYgKCEobGlzdD8uZW50cmllcz8ubGVuZ3RoKSkge1xuICAgIDxkaXYgY2xhc3M9XCJlbXB0eVwiPlxuICAgICAgQGlmIChpc0F1dG9jb21wbGV0ZUxvYWRpbmcpIHtcbiAgICAgICAgPGVvLWxvYWRpbmctc3Bpbm5lciBbc2l6ZV09XCInc21hbGwnXCI+PC9lby1sb2FkaW5nLXNwaW5uZXI+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiB0cmFuc2xhdGU+ZW8uZm9ybS5wcm9wZXJ0eS5keW5hbWljLmxpc3QuZW1wdHk8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuPC9lby1kaWFsb2c+XG5cbjxkaXYgY2xhc3M9XCJlby1keW5hbWljLWxpc3RcIiBbbmdDbGFzc109XCJ7ZnVsbDogc2VsZWN0ZWROb2RlcyAmJiBzZWxlY3RlZE5vZGVzLmxlbmd0aCA9PT0gYXV0b2NvbXBsZXRlVmFsdWVzLmxlbmd0aH1cIj5cblxuICBAaWYgKGlzU2VhcmNoICYmICFpc1RhYmxlRWxlbWVudCkge1xuICAgIDx5dmMtZHJvcGRvd24gWyhuZ01vZGVsKV09XCJzZWFyY2hPcHRpb25cIiAobmdNb2RlbENoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKClcIiBbb3B0aW9uc109XCJhdmFpbGFibGVTZWFyY2hPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWFkb25seVwiIFtkaXNhYmxlQ2xlYXJCdXR0b25dPVwidHJ1ZVwiPjwveXZjLWRyb3Bkb3duPlxuICB9XG5cbiAgICA8eXZjLWF1dG9jb21wbGV0ZSBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTm9kZXNcIiAjYXV0b2NvbXBsZXRlIChzdWdnZXN0aW9uU2VsZWN0KT1cIm9uQXV0b0NvbXBsZXRlU2VsZWN0KCRldmVudClcIiAoc3VnZ2VzdGlvblVuc2VsZWN0KT1cIm9uQXV0b0NvbXBsZXRlVW5zZWxlY3QoJGV2ZW50KVwiIChmb2N1cyk9XCJvbkF1dG9jb21wbGV0ZUZvY3VzKClcIiAoaW5wdXQpPVwib25BdXRvY29tcGxldGVJbnB1dCgkZXZlbnQpXCIgKGtleWRvd24pPVwib25BdXRvY29tcGxldGVLZXlkb3duKCRldmVudClcIiAoYmx1cik9XCJvbkF1dG9jb21wbGV0ZUJsdXIoKVwiIFtkaXNhYmxlZF09XCJyZWFkb25seVwiIFtmb3JjZVNlbGVjdGlvbl09XCJ0cnVlXCIgW2F1dG9jb21wbGV0ZVZhbHVlc109XCJhdXRvY29tcGxldGVSZXNcIiAobmdNb2RlbENoYW5nZSk9XCJvbkF1dG9jb21wbGV0ZU1vZGVsQ2hhbmdlKCRldmVudClcIiBmaWVsZD1cInt7IHZhbHVlRmllbGQgfX1cIiAoYXV0b2NvbXBsZXRlRm5jKT1cImF1dG9jb21wbGV0ZUZuKCRldmVudClcIiBbbXVsdGlwbGVdPVwibXVsdGlzZWxlY3RcIiBbbmdDbGFzc109XCJ7ICdoaWRlLWlucHV0VG9rZW4nOiAhaGFzQXV0b2NvbXBsZXRlVXJsIH1cIlxuICA+XG5cbiAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW0gI2NoaXBUZW1wbGF0ZT5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPnt7aXRlbVt2YWx1ZUZpZWxkXX19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNhdXRvY29tcGxldGVPcHRpb25UZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPnt7aXRlbVt2YWx1ZUZpZWxkXX19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiIHN0eWxlPVwiZm9udC1zdHlsZTogaXRhbGljOyBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1jYXB0aW9uKVwiPnt7aXRlbVtkZXNjcmlwdGlvbkZpZWxkXX19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3l2Yy1hdXRvY29tcGxldGU+XG5cbiAgPGJ1dHRvbiAjYnV0dG9uIGNsYXNzPVwidWktYnV0dG9uXCIgKm5nSWY9XCIhcmVhZG9ubHlcIiBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIiAoY2xpY2spPVwic2hvd0RpYWxvZygkZXZlbnQsICEhJGV2ZW50LmRldGFpbClcIlxuICAgIChrZXl1cC5hcnJvd0Rvd24pPVwic2hvd0RpYWxvZygkZXZlbnQpXCIgKGtleXVwLmVudGVyKT1cInNob3dEaWFsb2coJGV2ZW50KVwiIChrZXl1cC5zcGFjZSk9XCJzaG93RGlhbG9nKCRldmVudClcIj5cbiAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hcnJvd19kb3duLnN2ZydcIj48L2VvLWljb24+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -7504,8 +7504,8 @@ class DynamicListComponent {
|
|
|
7504
7504
|
}
|
|
7505
7505
|
}
|
|
7506
7506
|
else {
|
|
7507
|
-
node[this.valueField] = value;
|
|
7508
|
-
node['value'] = value;
|
|
7507
|
+
node[this.valueField] = this.value;
|
|
7508
|
+
node['value'] = this.value;
|
|
7509
7509
|
}
|
|
7510
7510
|
this.selectedNodes = node;
|
|
7511
7511
|
}
|
|
@@ -7942,7 +7942,7 @@ class DynamicListComponent {
|
|
|
7942
7942
|
if (this.filterFunction && !this.filterFunction(acNodeData)) {
|
|
7943
7943
|
return false;
|
|
7944
7944
|
}
|
|
7945
|
-
if (this.situation === 'SEARCH' && this.selectedNodes?.some((node) => {
|
|
7945
|
+
if (this.situation === 'SEARCH' && Array.isArray(this.selectedNodes) && this.selectedNodes?.some((node) => {
|
|
7946
7946
|
const nodeValue = node.value || node?.data?.[this.valueField];
|
|
7947
7947
|
return acNodeData && nodeValue && acNodeValue === nodeValue;
|
|
7948
7948
|
})) {
|
|
@@ -24868,10 +24868,10 @@ class AboutStateComponent {
|
|
|
24868
24868
|
this.config = config;
|
|
24869
24869
|
this.titleService = titleService;
|
|
24870
24870
|
this.translate = translate;
|
|
24871
|
-
this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/styles", "version": "31.3.2", "license": "MIT" }, { "name": "@angular/animations", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/cdk", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/common", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/compiler", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/core", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/forms", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/router", "version": "18.1.0", "license": "MIT" }, { "name": "@carbon/charts-angular", "version": "1.16.3", "license": "Apache-2.0" }, { "name": "@eo-sdk/core", "version": "11.14.
|
|
24871
|
+
this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/styles", "version": "31.3.2", "license": "MIT" }, { "name": "@angular/animations", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/cdk", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/common", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/compiler", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/core", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/forms", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "18.1.0", "license": "MIT" }, { "name": "@angular/router", "version": "18.1.0", "license": "MIT" }, { "name": "@carbon/charts-angular", "version": "1.16.3", "license": "Apache-2.0" }, { "name": "@eo-sdk/core", "version": "11.14.30", "license": "MIT" }, { "name": "@ngneat/until-destroy", "version": "10.0.0", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "18.0.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "15.0.0", "license": "SEE LICENSE IN LICENSE" }, { "name": "@yuuvis/components", "version": "18.1.23", "license": "MIT" }, { "name": "@yuuvis/widget-grid", "version": "18.0.0", "license": "MIT" }, { "name": "core-js", "version": "2.6.12", "license": "MIT" }, { "name": "fast-xml-parser", "version": "5.4.1", "license": "MIT" }, { "name": "file-saver", "version": "2.0.5", "license": "MIT" }, { "name": "font-awesome", "version": "4.7.0", "license": "(OFL-1.1 AND MIT)" }, { "name": "karma-coverage-istanbul-reporter", "version": "3.0.3", "license": "MIT" }, { "name": "lodash-es", "version": "4.17.21", "license": "MIT" }, { "name": "moment", "version": "2.30.1", "license": "MIT" }, { "name": "ngx-toastr", "version": "19.0.0", "license": "MIT" }, { "name": "rxjs", "version": "7.8.1", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.6.3", "license": "0BSD" }, { "name": "zone.js", "version": "0.14.7", "license": "MIT" }];
|
|
24872
24872
|
this.ctrl = {
|
|
24873
24873
|
componentName: 'yuuvis® RAD client',
|
|
24874
|
-
componentVersion: '11.14.
|
|
24874
|
+
componentVersion: '11.14.31',
|
|
24875
24875
|
productName: '',
|
|
24876
24876
|
productVersion: ''
|
|
24877
24877
|
};
|