gamma-app-controller 1.1.12 → 1.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/application-controller/application-dataset-component/create-dataset/create-dataset.component.mjs +8 -1
- package/esm2020/lib/application-controller/application-dataset-component/create-dataset-sql/create-dataset-sql.component.mjs +17 -7
- package/esm2020/lib/application-controller/application-filter/application-filter.component.mjs +26 -16
- package/esm2020/lib/application-controller/application-view-components/create-comp-view/create-comp-view.component.mjs +1 -2
- package/esm2020/lib/application-controller/page-controller/page-config/page-config.component.mjs +21 -1
- package/fesm2015/gamma-app-controller.mjs +70 -21
- package/fesm2015/gamma-app-controller.mjs.map +1 -1
- package/fesm2020/gamma-app-controller.mjs +67 -21
- package/fesm2020/gamma-app-controller.mjs.map +1 -1
- package/lib/application-controller/application-filter/application-filter.component.d.ts +3 -1
- package/lib/application-controller/page-controller/page-config/page-config.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -133,6 +133,13 @@ export class CreateDatasetComponent {
|
|
|
133
133
|
"operatorName": "lte",
|
|
134
134
|
"defaultValue": "",
|
|
135
135
|
"dataType": "string"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"localColumn": "limit",
|
|
139
|
+
"serverColumn": "limit",
|
|
140
|
+
"operatorName": "eq",
|
|
141
|
+
"defaultValue": "5000",
|
|
142
|
+
"dataType": "string"
|
|
136
143
|
}
|
|
137
144
|
]
|
|
138
145
|
}
|
|
@@ -346,4 +353,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
346
353
|
type: Input,
|
|
347
354
|
args: ['selectedDatasetId']
|
|
348
355
|
}] } });
|
|
349
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWRhdGFzZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2NyZWF0ZS1kYXRhc2V0L2NyZWF0ZS1kYXRhc2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC9jcmVhdGUtZGF0YXNldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXekQsTUFBTSxPQUFPLHNCQUFzQjtJQTZMakMsWUFDVSxPQUFrQyxFQUNsQyxNQUFxQixFQUN0QixhQUE0QixFQUMzQixNQUFjLEVBQ2QsY0FBOEI7UUFKOUIsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUMzQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBaE14QyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyx1QkFBa0IsR0FBRztZQUNuQixhQUFhLEVBQUUsRUFBRTtZQUNqQixhQUFhLEVBQUUsRUFBRTtTQUNsQixDQUFDO1FBRUYseUJBQW9CLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxL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QUcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNyQyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7U0FDOUI7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUN4QyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTthQUM5QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQzthQUM5QjtTQUNGO0lBSUgsQ0FBQzs7bUhBMVhVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLG9JQ1huQywrakZBbURNOzJGRHhDTyxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9COzBOQStKckIsUUFBUTtzQkFBaEIsS0FBSztnQkFHRixpQkFBaUI7c0JBRHBCLEtBQUs7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkNvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBwbGljYXRpb24tY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jcmVhdGUtZGF0YXNldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtZGF0YXNldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS1kYXRhc2V0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3JlYXRlRGF0YXNldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGxvYWRpbmdNb2RhbDogYm9vbGVhbjtcbiAgaXNEdXBsaWRhdGVWaWV3OiBib29sZWFuID0gZmFsc2U7XG4gIGNyZWF0RGF0YXNldE9iamVjdCA9IHtcbiAgICBcImRhdGFzZXROYW1lXCI6IFwiXCIsXG4gICAgXCJkYXRhc2V0VHlwZVwiOiBcIlwiXG4gIH07XG5cbiAgZGF0YVNldFR5cGVDb250YWluZXIgPSBbeyBuYW1lOiBcIlF1ZXJ5IEJ1aWxkZXJcIiwgdmFsdWU6IFwicXVlcnlidWlsZGVyXCIgfSwgeyBuYW1lOiBcIlNlcnZpY2UgSlNPTlwiLCB2YWx1ZTogXCJtb25nb1wiIH0sXG4gIHsgbmFtZTogXCJSZXN0IEFQSVwiLCB2YWx1ZTogXCJzaW1wbGVBcGlcIiB9LCB7IG5hbWU6IFwiU1FMIEJ1aWxkZXJcIiwgdmFsdWU6IFwic3FsUXVlcnlcIiB9LCB7IG5hbWU6IFwiUGxhaW4gSlNPTlwiLCB2YWx1ZTogXCJwbGFpbmpzb25cIiB9XVxuICBtb25nb0RhdGFzZXQgPSB7XG4gICAgXCJhcGlcIjogXCIva3BpL3RyZW5kcy9uZXR3b3JrL2dldC1tZXRyaWMtZGF0YVwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiXCIsXG4gICAgXCJhcGlUeXBlXCI6IFwicG9zdFwiLFxuICAgIFwiZmlsdGVySXRlbXNcIjogW1xuICAgICAge1xuICAgICAgICBcImFwaU5hbWVcIjogXCJzdGFydERhdGVcIixcbiAgICAgICAgXCJsYWJlbFwiOiBcIlN0YXJ0IERhdGVcIixcbiAgICAgICAgXCJmaWx0ZXJUeXBlXCI6IFwiZGF0ZVwiLFxuICAgICAgICBcIm9wZXJhdG9yTmFtZVwiOiBcIlwiLFxuICAgICAgICBcImRlZmF1bHRGaWx0ZXJUeXBlXCI6IFwiZHluYW1pY1wiLFxuICAgICAgICBcImRlZmF1bHRGaWx0ZXJWYWx1ZVwiOiBcIllZWVktTU0tRERcIixcbiAgICAgICAgXCJtb21lbnRGdW5jdGlvblwiOiBcInN1YnRyYWN0XCIsXG4gICAgICAgIFwibW9tZW50Rm9ybWF0ZVwiOiBcIjE1LGRheXNcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJhcGlOYW1lXCI6IFwiZW5kRGF0ZVwiLFxuICAgICAgICBcImxhYmVsXCI6IFwiRW5kIERhdGVcIixcbiAgICAgICAgXCJmaWx0ZXJUeXBlXCI6IFwiZGF0ZVwiLFxuICAgICAgICBcIm9wZXJhdG9yTmFtZVwiOiBcIlwiLFxuICAgICAgICBcImRlZmF1bHRGaWx0ZXJUeXBlXCI6IFwiZHluYW1pY1wiLFxuICAgICAgICBcImRlZmF1bHRGaWx0ZXJWYWx1ZVwiOiBcIllZWVktTU0tRERcIixcbiAgICAgICAgXCJtb21lbnRGdW5jdGlvblwiOiBcInN1YnRyYWN0XCIsXG4gICAgICAgIFwibW9tZW50Rm9ybWF0ZVwiOiBcIjEsZGF5c1wiXG4gICAgICB9XG4gICAgXSxcbiAgICBcImZpeE9wZXJhdGlvbkxldmxlc1wiOiBbXVxuICB9XG5cbiAgcXVlcnlCdWxkZXJEYXRhc2V0ID0ge1xuICAgIFwiYXBpXCI6IFwiL2twaS9nZW5lcmljQWdncmVnYXRlUGFnaW5hdGVkS3BpU2VydmljZVJlc3BvbnNlXCIsXG4gICAgXCJhcGlUeXBlXCI6IFwicG9zdFwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiXCIsXG4gICAgXCJxdWVyeUNvbmZpZ1wiOiB7XG4gICAgICBcIm1hcGVkRmlsdGVyc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImxvY2FsQ29sdW1uXCI6IFwic3RhcnREYXRlXCIsXG4gICAgICAgICAgXCJzZXJ2ZXJDb2x1bW5cIjogXCJyZWNvcmRfZGF0ZVwiLFxuICAgICAgICAgIFwib3BlcmF0b3JOYW1lXCI6IFwiZ3RlXCIsXG4gICAgICAgICAgXCJkZWZhdWx0VmFsdWVcIjogXCJcIixcbiAgICAgICAgICBcImRhdGFUeXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibG9jYWxDb2x1bW5cIjogXCJlbmREYXRlXCIsXG4gICAgICAgICAgXCJzZXJ2ZXJDb2x1bW5cIjogXCJyZWNvcmRfZGF0ZVwiLFxuICAgICAgICAgIFwib3BlcmF0b3JOYW1lXCI6IFwibHRlXCIsXG4gICAgICAgICAgXCJkZWZhdWx0VmFsdWVcIjogXCJcIixcbiAgICAgICAgICBcImRhdGFUeXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFwic29ydGVyc1wiOiBbXG5cbiAgICAgIF0sXG4gICAgICBcInJlcUZpZWxkc1wiOiBbXG5cbiAgICAgIF0sXG4gICAgICBcIm1lYXN1cmVzXCI6IFtcblxuICAgICAgXSxcbiAgICAgIFwiZmlsdGVyXCI6IFtcblxuICAgICAgXSxcbiAgICAgIFwiaGF2aW5nc1wiOiBbXSxcbiAgICAgIFwiY29tbW9uQ29uZmlnXCI6IHt9LFxuICAgICAgXCJjb2x1bW5zXCI6IFtcbiAgICAgIF1cbiAgICB9XG4gIH1cblxuICByZXN0QXBpRGF0YXNldCA9IHtcbiAgICBcImFwaVwiOiBcIlwiLFxuICAgIFwiYXBpVHlwZVwiOiBcInBvc3RcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIlwiLFxuICAgIFwicXVlcnlDb25maWdcIjoge1xuICAgICAgXCJtYXBlZEZpbHRlcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJsb2NhbENvbHVtblwiOiBcInN0YXJ0RGF0ZVwiLFxuICAgICAgICAgIFwic2VydmVyQ29sdW1uXCI6IFwicmVjb3JkRGF0ZVwiLFxuICAgICAgICAgIFwib3BlcmF0b3JOYW1lXCI6IFwiZ3RlXCIsXG4gICAgICAgICAgXCJkZWZhdWx0VmFsdWVcIjogXCJcIixcbiAgICAgICAgICBcImRhdGFUeXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibG9jYWxDb2x1bW5cIjogXCJlbmREYXRlXCIsXG4gICAgICAgICAgXCJzZXJ2ZXJDb2x1bW5cIjogXCJyZWNvcmREYXRlXCIsXG4gICAgICAgICAgXCJvcGVyYXRvck5hbWVcIjogXCJsdGVcIixcbiAgICAgICAgICBcImRlZmF1bHRWYWx1ZVwiOiBcIlwiLFxuICAgICAgICAgIFwiZGF0YVR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9O1xuICBzcWxBcGlEYXRhc2V0ID0ge1xuICAgIFwiYXBpXCI6IFwiL2twaS9nZW5lcmljU3FsUXVlcnlSZXNwb25zZVwiLFxuICAgIFwiYXBpVHlwZVwiOiBcInBvc3RcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIlwiLFxuICAgIFwicXVlcnlDb25maWdcIjoge1xuICAgICAgXCJ0ZW1wbGF0ZVF1ZXJ5XCI6IFwiXCIsXG4gICAgICBcImRhdGFiYXNlTmFtZVwiOiBcIlwiLFxuICAgICAgXCJkYkNvbmZpZ1wiOiBcIlwiLFxuICAgICAgXCJlbnJpY2htZW50c1wiOiBbXSxcbiAgICAgIFwibWFwZWRGaWx0ZXJzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwibG9jYWxDb2x1bW5cIjogXCJzdGFydERhdGVcIixcbiAgICAgICAgICBcInNlcnZlckNvbHVtblwiOiBcInJlY29yZF9kYXRlXCIsXG4gICAgICAgICAgXCJvcGVyYXRvck5hbWVcIjogXCJndGVcIixcbiAgICAgICAgICBcImRlZmF1bHRWYWx1ZVwiOiBcIlwiLFxuICAgICAgICAgIFwiZGF0YVR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJsb2NhbENvbHVtblwiOiBcImVuZERhdGVcIixcbiAgICAgICAgICBcInNlcnZlckNvbHVtblwiOiBcInJlY29yZF9kYXRlXCIsXG4gICAgICAgICAgXCJvcGVyYXRvck5hbWVcIjogXCJsdGVcIixcbiAgICAgICAgICBcImRlZmF1bHRWYWx1ZVwiOiBcIlwiLFxuICAgICAgICAgIFwiZGF0YVR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9O1xuXG4gIGpzb25EYXRhc2V0ID0ge1xuICAgIFwiYXBpXCI6IFwiL2twaS1jb25maWcvZ2V0SnNvbkRhdGFzZXRQYXlsb2FkXCIsXG4gICAgXCJhcGlUeXBlXCI6IFwiZ2V0XCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJcIixcbiAgICBcInF1ZXJ5Q29uZmlnXCI6IHtcbiAgICAgIFwibWFwZWRGaWx0ZXJzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwibG9jYWxDb2x1bW5cIjogXCJzdGFydERhdGVcIixcbiAgICAgICAgICBcInNlcnZlckNvbHVtblwiOiBcInJlY29yZERhdGVcIixcbiAgICAgICAgICBcIm9wZXJhdG9yTmFtZVwiOiBcImd0ZVwiLFxuICAgICAgICAgIFwiZGVmYXVsdFZhbHVlXCI6IFwiXCIsXG4gICAgICAgICAgXCJkYXRhVHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImxvY2FsQ29sdW1uXCI6IFwiZW5kRGF0ZVwiLFxuICAgICAgICAgIFwic2VydmVyQ29sdW1uXCI6IFwicmVjb3JkRGF0ZVwiLFxuICAgICAgICAgIFwib3BlcmF0b3JOYW1lXCI6IFwibHRlXCIsXG4gICAgICAgICAgXCJkZWZhdWx0VmFsdWVcIjogXCJcIixcbiAgICAgICAgICBcImRhdGFUeXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfVxuXG4gIGlucHV0RGF0YXNldElEOiBhbnk7XG4gIEBJbnB1dCgpIGlzSGVhZGVyOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoJ3NlbGVjdGVkRGF0YXNldElkJylcbiAgc2V0IHNlbGVjdGVkRGF0YXNldElkKHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmlucHV0RGF0YXNldElEID0gdmFsdWVcbiAgICAgIHRoaXMuc2VydmljZS5nZXRBcHBEYXRhc2V0Q29uZmlnKHZhbHVlKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nTW9kYWwgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmNyZWF0RGF0YXNldE9iamVjdCA9IGRhdGE7XG4gICAgICAgICAgaWYgKGRhdGEuZGF0YXNldFR5cGUgPT0gJ21vbmdvJykge1xuICAgICAgICAgICAgdGhpcy5tb25nb0RhdGFzZXQgPSBkYXRhLmNvbmZpZ1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5kYXRhc2V0VHlwZSA9PSAncXVlcnlidWlsZGVyJykge1xuICAgICAgICAgICAgdGhpcy5xdWVyeUJ1bGRlckRhdGFzZXQgPSBkYXRhLmNvbmZpZ1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5kYXRhc2V0VHlwZSA9PSAnc2ltcGxlQXBpJykge1xuICAgICAgICAgICAgdGhpcy5yZXN0QXBpRGF0YXNldCA9IGRhdGEuY29uZmlnO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5kYXRhc2V0VHlwZSA9PSAnc3FsUXVlcnknKSB7XG4gICAgICAgICAgICB0aGlzLnNxbEFwaURhdGFzZXQgPSBkYXRhLmNvbmZpZztcbiAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEuZGF0YXNldFR5cGUgPT0gJ3BsYWluanNvbicpIHtcbiAgICAgICAgICAgIHRoaXMuanNvbkRhdGFzZXQgPSBkYXRhLmNvbmZpZztcbiAgICAgICAgICB9XG4gICAgICAgIH0sIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmdNb2RhbCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdVbmV4cGVjdGVkIFNlcnZlciBFeGNlcHRpb24uIFBsZWFzZSBjb250YWN0IFN5c3RlbSBBZG1pbi4nLCAnRGF0YXNldCBDcmVhdGlvbicpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcblxuXG4gICAgfVxuXG5cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2VydmljZTogQXBwbGljYXRpb25Db250ZW50U2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSxcbiAgICBwdWJsaWMgY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgbGV0IGRhdGFzZXRJZCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ2RhdGFzZXRJZCddO1xuICAgIGxldCBjb250ZW50VHlwZSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ2NvbnRlbnRUeXBlJ107XG4gICAgaWYgKGNvbnRlbnRUeXBlID09IFwiY2xvbmVcIikge1xuICAgICAgdGhpcy5pc0R1cGxpZGF0ZVZpZXcgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoZGF0YXNldElkKSB7XG4gICAgICB0aGlzLmxvYWRpbmdNb2RhbCA9IHRydWU7XG5cbiAgICAgIHRoaXMuc2VydmljZS5nZXRBcHBEYXRhc2V0Q29uZmlnKGRhdGFzZXRJZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGluZ01vZGFsID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5jcmVhdERhdGFzZXRPYmplY3QgPSBkYXRhO1xuICAgICAgICAgIGlmIChkYXRhLmRhdGFzZXRUeXBlID09ICdtb25nbycpIHtcbiAgICAgICAgICAgIHRoaXMubW9uZ29EYXRhc2V0ID0gZGF0YS5jb25maWdcbiAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEuZGF0YXNldFR5cGUgPT0gJ3F1ZXJ5YnVpbGRlcicpIHtcbiAgICAgICAgICAgIHRoaXMucXVlcnlCdWxkZXJEYXRhc2V0ID0gZGF0YS5jb25maWdcbiAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEuZGF0YXNldFR5cGUgPT0gJ3NpbXBsZUFwaScpIHtcbiAgICAgICAgICAgIHRoaXMucmVzdEFwaURhdGFzZXQgPSBkYXRhLmNvbmZpZztcbiAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEuZGF0YXNldFR5cGUgPT0gJ3BsYWluanNvbicpIHtcbiAgICAgICAgICAgIHRoaXMuanNvbkRhdGFzZXQgPSBkYXRhLmNvbmZpZztcbiAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEuZGF0YXNldFR5cGUgPT0gJ3NxbFF1ZXJ5Jykge1xuICAgICAgICAgICAgdGhpcy5zcWxBcGlEYXRhc2V0ID0gZGF0YS5jb25maWc7XG4gICAgICAgICAgfVxuICAgICAgICB9LCBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nTW9kYWwgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignVW5leHBlY3RlZCBTZXJ2ZXIgRXhjZXB0aW9uLiBQbGVhc2UgY29udGFjdCBTeXN0ZW0gQWRtaW4uJywgJ0RhdGFzZXQgQ3JlYXRpb24nKVxuICAgICAgICB9XG4gICAgICB9KVxuXG5cbiAgICAgIC8vIHRoaXMuc2VydmljZS5nZXRBcHBEYXRhc2V0Q29uZmlncygpLnN1YnNjcmliZSh7XG4gICAgICAvLyAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcbiAgICAgIC8vICAgICBjb25zdCBmb3VuZE9iamVjdCA9IGRhdGEuZmluZChkYXRhc2V0ID0+IGRhdGFzZXQuZGF0YXNldElkID09PSBkYXRhc2V0SWQpO1xuICAgICAgLy8gICAgIHRoaXMubG9hZGluZ01vZGFsID0gZmFsc2U7XG4gICAgICAvLyAgICAgdGhpcy5jcmVhdERhdGFzZXRPYmplY3QgPSBmb3VuZE9iamVjdDtcbiAgICAgIC8vICAgICBpZiAoZm91bmRPYmplY3QuZGF0YXNldFR5cGUgPT0gJ21vbmdvJykge1xuICAgICAgLy8gICAgICAgdGhpcy5tb25nb0RhdGFzZXQgPSBmb3VuZE9iamVjdC5jb25maWdcbiAgICAgIC8vICAgICB9IGVsc2UgaWYgKGZvdW5kT2JqZWN0LmRhdGFzZXRUeXBlID09ICdxdWVyeWJ1aWxkZXInKSB7XG4gICAgICAvLyAgICAgICB0aGlzLnF1ZXJ5QnVsZGVyRGF0YXNldCA9IGZvdW5kT2JqZWN0LmNvbmZpZ1xuICAgICAgLy8gICAgIH0gZWxzZSBpZiAoZm91bmRPYmplY3QuZGF0YXNldFR5cGUgPT0gJ3NpbXBsZUFwaScpIHtcbiAgICAgIC8vICAgICAgIHRoaXMucmVzdEFwaURhdGFzZXQgPSBmb3VuZE9iamVjdC5jb25maWc7XG4gICAgICAvLyAgICAgfVxuICAgICAgLy8gICB9XG4gICAgICAvLyB9KVxuICAgIH1cblxuICB9XG5cblxuICBjcmVhdGVNb25nb1NlcnZpY2VEYXRhU2V0KGRhdGEpIHtcblxuICAgIHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0Wydjb25maWcnXSA9IGRhdGE7XG4gICAgY29uc29sZS5sb2codGhpcy5jcmVhdERhdGFzZXRPYmplY3QpO1xuICAgIHRoaXMubG9hZGluZ01vZGFsID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5pc0R1cGxpZGF0ZVZpZXcpIHtcblxuICAgICAgdGhpcy5jcmVhdGVOZURhdGFTZXRDb25maWcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0WydkYXRhc2V0SWQnXSkge1xuICAgICAgICB0aGlzLnVwZGF0YU5ld0RhdGFTZXRDb25naWcoKVxuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNyZWF0ZU5lRGF0YVNldENvbmZpZygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBjcmVhdGVRdWVyeUJ1aWxkZXJEYXRhU2V0KGRhdGEpIHtcblxuICAgIHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0Wydjb25maWcnXSA9IGRhdGE7XG4gICAgY29uc29sZS5sb2codGhpcy5jcmVhdERhdGFzZXRPYmplY3QpO1xuICAgIHRoaXMubG9hZGluZ01vZGFsID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5pc0R1cGxpZGF0ZVZpZXcpIHtcblxuICAgICAgdGhpcy5jcmVhdGVOZURhdGFTZXRDb25maWcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0WydkYXRhc2V0SWQnXSkge1xuICAgICAgICB0aGlzLnVwZGF0YU5ld0RhdGFTZXRDb25naWcoKVxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncXVlcnlidWlsZGVyJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3JlYXRlTmVEYXRhU2V0Q29uZmlnKCk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdxdWVyeWJ1aWxkZXInKVxuXG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICBjcmVhdGVTcWxRdWVyeUJ1aWxkZXJEYXRhU2V0KGRhdGEpIHtcblxuICAgIHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0Wydjb25maWcnXSA9IGRhdGE7XG4gICAgY29uc29sZS5sb2codGhpcy5jcmVhdERhdGFzZXRPYmplY3QpO1xuICAgIHRoaXMubG9hZGluZ01vZGFsID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5pc0R1cGxpZGF0ZVZpZXcpIHtcblxuICAgICAgdGhpcy5jcmVhdGVOZURhdGFTZXRDb25maWcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0WydkYXRhc2V0SWQnXSkge1xuICAgICAgICB0aGlzLnVwZGF0YU5ld0RhdGFTZXRDb25naWcoKVxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncXVlcnlidWlsZGVyJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3JlYXRlTmVEYXRhU2V0Q29uZmlnKCk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdxdWVyeWJ1aWxkZXInKVxuXG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuXG5cbiAgY3JlYXRlUmVzdEFwaURhdGFTZXQoZGF0YSkge1xuICAgIHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0Wydjb25maWcnXSA9IGRhdGE7XG4gICAgY29uc29sZS5sb2codGhpcy5jcmVhdERhdGFzZXRPYmplY3QpO1xuICAgIHRoaXMubG9hZGluZ01vZGFsID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLmlzRHVwbGlkYXRlVmlldykge1xuICAgICAgdGhpcy5jcmVhdGVOZURhdGFTZXRDb25maWcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0WydkYXRhc2V0SWQnXSkge1xuICAgICAgICB0aGlzLnVwZGF0YU5ld0RhdGFTZXRDb25naWcoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jcmVhdGVOZURhdGFTZXRDb25maWcoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG5cbiAgY3JlYXRlTmVEYXRhU2V0Q29uZmlnKCkge1xuICAgIHRoaXMuc2VydmljZS5jcmVhdGVBcHBEYXRhc2V0KHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAvLyB0aGlzLmlzTmV3RGF0YVNldENyZWF0ZVZpZXcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc0R1cGxpZGF0ZVZpZXcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sb2FkaW5nTW9kYWwgPSBmYWxzZTtcbiAgICAgICAgdGhpcy50b2FzdHIuc3VjY2VzcygnRGF0YXNldCBDcmVhdGVkIFN1Y2Nlc3NmdWxseScpXG4gICAgICAgIC8vIGlmICh0aGlzLmlzSGVhZGVyKSB7XG4gICAgICAgIC8vICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydhcHBzL2NvbnRyb2xQYW5lbC9hcHBsaWNhdGlvbkRhdGFzZXQvJ10pXG4gICAgICAgIC8vIH1cblxuICAgICAgfSwgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignVW5leHBlY3RlZCBTZXJ2ZXIgRXhjZXB0aW9uLiBQbGVhc2UgY29udGFjdCBTeXN0ZW0gQWRtaW4uJywgJ0RhdGFzZXQgQ3JlYXRpb24nKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICB1cGRhdGFOZXdEYXRhU2V0Q29uZ2lnKCkge1xuICAgIHRoaXMuc2VydmljZS51cGRhdGVBcHBEYXRhc2V0Q29uZmlnKHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAvLyB0aGlzLmlzTmV3RGF0YVNldENyZWF0ZVZpZXcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sb2FkaW5nTW9kYWwgPSBmYWxzZTtcbiAgICAgICAgdGhpcy50b2FzdHIuc3VjY2VzcygnRGF0YXNldCBVcGRhdGVkIFN1Y2Nlc3NmdWxseScpXG4gICAgICAgIC8vIGlmICh0aGlzLmlzSGVhZGVyKSB7XG4gICAgICAgIC8vICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydhcHBzL2NvbnRyb2xQYW5lbC9hcHBsaWNhdGlvbkRhdGFzZXQvJ10pXG4gICAgICAgIC8vIH1cbiAgICAgIH0sIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ1VuZXhwZWN0ZWQgU2VydmVyIEV4Y2VwdGlvbi4gUGxlYXNlIGNvbnRhY3QgU3lzdGVtIEFkbWluLicsICdEYXRhc2V0IENyZWF0aW9uJylcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgZ290b0FsbERhdGFzZXRzKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnYXBwcy9jb250cm9sUGFuZWwvYXBwbGljYXRpb25EYXRhc2V0LyddKVxuICB9XG5cblxuICBjcmVhdGVEYXRhU2V0V2l0aEpzb24oZGF0YSkge1xuICAgIHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0Wydjb25maWcnXSA9IGRhdGE7XG4gICAgY29uc29sZS5sb2codGhpcy5jcmVhdERhdGFzZXRPYmplY3QpO1xuICAgIGlmICh0aGlzLmlzRHVwbGlkYXRlVmlldykge1xuICAgICAgdGhpcy5jcmVhdGVOZURhdGFTZXRDb25maWcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0WydkYXRhc2V0SWQnXSkge1xuICAgICAgICB0aGlzLnVwZGF0YU5ld0RhdGFTZXRDb25naWcoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jcmVhdGVOZURhdGFTZXRDb25maWcoKTtcbiAgICAgIH1cbiAgICB9XG5cblxuXG4gIH1cblxufVxuIiwiPGFwcC1sb2FkaW5nICpuZ0lmPVwibG9hZGluZ01vZGFsXCI+PC9hcHAtbG9hZGluZz5cblxuPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZmxleC1hdXRvIG1pbi13LTBcIj5cblxuICAgIDxsaWItY29tbW9uLWhlYWRlciBbcGFnZVRpdGxlXT1cIidEYXRhc2V0IEVkaXRvcidcIiAqbmdJZj1cImlzSGVhZGVyXCI+PC9saWItY29tbW9uLWhlYWRlcj5cblxuXG4gICAgPGRpdiBjbGFzcz1cInAtMiB3LWZ1bGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tMyBwLTQgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHNoYWRvdy1tZCBkYXJrOmJnLWdyYXktODAwIGRhcms6Ym9yZGVyLWdyYXktNzAwXCI+XG4gICAgICAgICAgICA8aDZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1iLTIgZm9udC1ib2xkIHRleHQtbGcgdHJhY2tpbmctdGlnaHQgdGV4dC1ncmF5LTkwMCBkYXJrOnRleHQtd2hpdGUgYm9yZGVyLWIgcGItMyBmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGFibGUgbXItMlwiPjwvaT4gRGF0YXNldCBFZGl0b3JcblxuICAgICAgICAgICAgPC9oNj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IG15LTRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMiB3LTEvM1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0yXCI+RGF0YXNldCBOYW1lPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBbKG5nTW9kZWwpXT1cImNyZWF0RGF0YXNldE9iamVjdC5kYXRhc2V0TmFtZVwiPjwvZHgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTIgdy0xLzNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgbWItMlwiPlNlbGVjdCBEYXRhc2V0IFR5cGU8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGR4LXNlbGVjdC1ib3ggW2l0ZW1zXT1cImRhdGFTZXRUeXBlQ29udGFpbmVyXCIgZGlzcGxheUV4cHI9XCJuYW1lXCIgdmFsdWVFeHByPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjcmVhdERhdGFzZXRPYmplY3QuZGF0YXNldFR5cGVcIj48L2R4LXNlbGVjdC1ib3g+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLTUgYm9yZGVyXCI+XG4gICAgICAgICAgICAgICAgPGFwcC1kYXRhc2V0LW1vbmdvICpuZ0lmPVwiY3JlYXREYXRhc2V0T2JqZWN0LmRhdGFzZXRUeXBlID09ICdtb25nbydcIiBbbW9uZ29EYXRhc2V0XT1cIm1vbmdvRGF0YXNldFwiXG4gICAgICAgICAgICAgICAgICAgIChnZXRNb25nb1NlcnZpY2VEYXRhU2V0KT1cImNyZWF0ZU1vbmdvU2VydmljZURhdGFTZXQoJGV2ZW50KVwiPjwvYXBwLWRhdGFzZXQtbW9uZ28+XG5cbiAgICAgICAgICAgICAgICA8YXBwLWRhdGFzZXQtcmVzdC1hcGkgKm5nSWY9XCJjcmVhdERhdGFzZXRPYmplY3QuZGF0YXNldFR5cGUgPT0gJ3NpbXBsZUFwaSdcIlxuICAgICAgICAgICAgICAgICAgICBbcmVzdEFwaURhdGFzZXRdPVwicmVzdEFwaURhdGFzZXRcIlxuICAgICAgICAgICAgICAgICAgICAoZ2V0UmVzdEFwaUJ1bGJkZXJEYXRhU2V0KT1cImNyZWF0ZVJlc3RBcGlEYXRhU2V0KCRldmVudClcIj48L2FwcC1kYXRhc2V0LXJlc3QtYXBpPlxuXG4gICAgICAgICAgICAgICAgPGFwcC1kYXRhc2V0LXF1ZXJ5LWJ1bGRlciAqbmdJZj1cImNyZWF0RGF0YXNldE9iamVjdC5kYXRhc2V0VHlwZSA9PSAncXVlcnlidWlsZGVyJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtidWxkZXJEYXRhc2V0XT1cInF1ZXJ5QnVsZGVyRGF0YXNldFwiXG4gICAgICAgICAgICAgICAgICAgIChnZXRRdWVyeUJ1bGJkZXJEYXRhU2V0KT1cImNyZWF0ZVF1ZXJ5QnVpbGRlckRhdGFTZXQoJGV2ZW50KVwiPjwvYXBwLWRhdGFzZXQtcXVlcnktYnVsZGVyPlxuXG4gICAgICAgICAgICAgICAgPGFwcC1jcmVhdGUtZGF0YXNldC1zcWwgKm5nSWY9XCJjcmVhdERhdGFzZXRPYmplY3QuZGF0YXNldFR5cGUgPT0gJ3NxbFF1ZXJ5J1wiXG4gICAgICAgICAgICAgICAgICAgIFtzcWxCdWxkZXJEYXRhc2V0XT1cInNxbEFwaURhdGFzZXRcIlxuICAgICAgICAgICAgICAgICAgICAoZ2V0U3FsUXVlcnlCdWxiZGVyRGF0YVNldCk9XCJjcmVhdGVTcWxRdWVyeUJ1aWxkZXJEYXRhU2V0KCRldmVudClcIj48L2FwcC1jcmVhdGUtZGF0YXNldC1zcWw+XG5cbiAgICAgICAgICAgICAgICA8YXBwLWNyZWF0ZS1kYXRhc2V0LWpzb24gKm5nSWY9XCJjcmVhdERhdGFzZXRPYmplY3QuZGF0YXNldFR5cGUgPT0gJ3BsYWluanNvbidcIlxuICAgICAgICAgICAgICAgICAgICBbanNvbkRhdGFzZXRdPVwianNvbkRhdGFzZXRcIlxuICAgICAgICAgICAgICAgICAgICAoZ2V0SnNvbkRhdGFzZXQpPVwiY3JlYXRlRGF0YVNldFdpdGhKc29uKCRldmVudClcIj48L2FwcC1jcmVhdGUtZGF0YXNldC1qc29uPlxuICAgICAgICAgICAgPC9kaXY+XG5cblxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuXG48L2Rpdj4iXX0=
|
|
356
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWRhdGFzZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2NyZWF0ZS1kYXRhc2V0L2NyZWF0ZS1kYXRhc2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC9jcmVhdGUtZGF0YXNldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXekQsTUFBTSxPQUFPLHNCQUFzQjtJQW9NakMsWUFDVSxPQUFrQyxFQUNsQyxNQUFxQixFQUN0QixhQUE0QixFQUMzQixNQUFjLEVBQ2QsY0FBOEI7UUFKOUIsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUMzQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBdk14QyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyx1QkFBa0IsR0FBRztZQUNuQixhQUFhLEVBQUUsRUFBRTtZQUNqQixhQUFhLEVBQUUsRUFBRTtTQUNsQixDQUFDO1FBRUYseUJBQW9CLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxL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dUMsQ0FBQyxDQUFDLENBQUE7SUFDakUsQ0FBQztJQUdELHFCQUFxQixDQUFDLElBQUk7UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztTQUM5QjthQUFNO1lBQ0wsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFBO2FBQzlCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2FBQzlCO1NBQ0Y7SUFJSCxDQUFDOzttSEFqWVUsc0JBQXNCO3VHQUF0QixzQkFBc0Isb0lDWG5DLCtqRkFtRE07MkZEeENPLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0I7ME5Bc0tyQixRQUFRO3NCQUFoQixLQUFLO2dCQUdGLGlCQUFpQjtzQkFEcEIsS0FBSzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uQ29udGVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcHBsaWNhdGlvbi1jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNyZWF0ZS1kYXRhc2V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1kYXRhc2V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLWRhdGFzZXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVEYXRhc2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgbG9hZGluZ01vZGFsOiBib29sZWFuO1xuICBpc0R1cGxpZGF0ZVZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY3JlYXREYXRhc2V0T2JqZWN0ID0ge1xuICAgIFwiZGF0YXNldE5hbWVcIjogXCJcIixcbiAgICBcImRhdGFzZXRUeXBlXCI6IFwiXCJcbiAgfTtcblxuICBkYXRhU2V0VHlwZUNvbnRhaW5lciA9IFt7IG5hbWU6IFwiUXVlcnkgQnVpbGRlclwiLCB2YWx1ZTogXCJxdWVyeWJ1aWxkZXJcIiB9LCB7IG5hbWU6IFwiU2VydmljZSBKU09OXCIsIHZhbHVlOiBcIm1vbmdvXCIgfSxcbiAgeyBuYW1lOiBcIlJlc3QgQVBJXCIsIHZhbHVlOiBcInNpbXBsZUFwaVwiIH0sIHsgbmFtZTogXCJTUUwgQnVpbGRlclwiLCB2YWx1ZTogXCJzcWxRdWVyeVwiIH0sIHsgbmFtZTogXCJQbGFpbiBKU09OXCIsIHZhbHVlOiBcInBsYWluanNvblwiIH1dXG4gIG1vbmdvRGF0YXNldCA9IHtcbiAgICBcImFwaVwiOiBcIi9rcGkvdHJlbmRzL25ldHdvcmsvZ2V0LW1ldHJpYy1kYXRhXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJcIixcbiAgICBcImFwaVR5cGVcIjogXCJwb3N0XCIsXG4gICAgXCJmaWx0ZXJJdGVtc1wiOiBbXG4gICAgICB7XG4gICAgICAgIFwiYXBpTmFtZVwiOiBcInN0YXJ0RGF0ZVwiLFxuICAgICAgICBcImxhYmVsXCI6IFwiU3RhcnQgRGF0ZVwiLFxuICAgICAgICBcImZpbHRlclR5cGVcIjogXCJkYXRlXCIsXG4gICAgICAgIFwib3BlcmF0b3JOYW1lXCI6IFwiXCIsXG4gICAgICAgIFwiZGVmYXVsdEZpbHRlclR5cGVcIjogXCJkeW5hbWljXCIsXG4gICAgICAgIFwiZGVmYXVsdEZpbHRlclZhbHVlXCI6IFwiWVlZWS1NTS1ERFwiLFxuICAgICAgICBcIm1vbWVudEZ1bmN0aW9uXCI6IFwic3VidHJhY3RcIixcbiAgICAgICAgXCJtb21lbnRGb3JtYXRlXCI6IFwiMTUsZGF5c1wiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcImFwaU5hbWVcIjogXCJlbmREYXRlXCIsXG4gICAgICAgIFwibGFiZWxcIjogXCJFbmQgRGF0ZVwiLFxuICAgICAgICBcImZpbHRlclR5cGVcIjogXCJkYXRlXCIsXG4gICAgICAgIFwib3BlcmF0b3JOYW1lXCI6IFwiXCIsXG4gICAgICAgIFwiZGVmYXVsdEZpbHRlclR5cGVcIjogXCJkeW5hbWljXCIsXG4gICAgICAgIFwiZGVmYXVsdEZpbHRlclZhbHVlXCI6IFwiWVlZWS1NTS1ERFwiLFxuICAgICAgICBcIm1vbWVudEZ1bmN0aW9uXCI6IFwic3VidHJhY3RcIixcbiAgICAgICAgXCJtb21lbnRGb3JtYXRlXCI6IFwiMSxkYXlzXCJcbiAgICAgIH1cbiAgICBdLFxuICAgIFwiZml4T3BlcmF0aW9uTGV2bGVzXCI6IFtdXG4gIH1cblxuICBxdWVyeUJ1bGRlckRhdGFzZXQgPSB7XG4gICAgXCJhcGlcIjogXCIva3BpL2dlbmVyaWNBZ2dyZWdhdGVQYWdpbmF0ZWRLcGlTZXJ2aWNlUmVzcG9uc2VcIixcbiAgICBcImFwaVR5cGVcIjogXCJwb3N0XCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJcIixcbiAgICBcInF1ZXJ5Q29uZmlnXCI6IHtcbiAgICAgIFwibWFwZWRGaWx0ZXJzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwibG9jYWxDb2x1bW5cIjogXCJzdGFydERhdGVcIixcbiAgICAgICAgICBcInNlcnZlckNvbHVtblwiOiBcInJlY29yZF9kYXRlXCIsXG4gICAgICAgICAgXCJvcGVyYXRvck5hbWVcIjogXCJndGVcIixcbiAgICAgICAgICBcImRlZmF1bHRWYWx1ZVwiOiBcIlwiLFxuICAgICAgICAgIFwiZGF0YVR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJsb2NhbENvbHVtblwiOiBcImVuZERhdGVcIixcbiAgICAgICAgICBcInNlcnZlckNvbHVtblwiOiBcInJlY29yZF9kYXRlXCIsXG4gICAgICAgICAgXCJvcGVyYXRvck5hbWVcIjogXCJsdGVcIixcbiAgICAgICAgICBcImRlZmF1bHRWYWx1ZVwiOiBcIlwiLFxuICAgICAgICAgIFwiZGF0YVR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgXCJzb3J0ZXJzXCI6IFtcblxuICAgICAgXSxcbiAgICAgIFwicmVxRmllbGRzXCI6IFtcblxuICAgICAgXSxcbiAgICAgIFwibWVhc3VyZXNcIjogW1xuXG4gICAgICBdLFxuICAgICAgXCJmaWx0ZXJcIjogW1xuXG4gICAgICBdLFxuICAgICAgXCJoYXZpbmdzXCI6IFtdLFxuICAgICAgXCJjb21tb25Db25maWdcIjoge30sXG4gICAgICBcImNvbHVtbnNcIjogW1xuICAgICAgXVxuICAgIH1cbiAgfVxuXG4gIHJlc3RBcGlEYXRhc2V0ID0ge1xuICAgIFwiYXBpXCI6IFwiXCIsXG4gICAgXCJhcGlUeXBlXCI6IFwicG9zdFwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiXCIsXG4gICAgXCJxdWVyeUNvbmZpZ1wiOiB7XG4gICAgICBcIm1hcGVkRmlsdGVyc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImxvY2FsQ29sdW1uXCI6IFwic3RhcnREYXRlXCIsXG4gICAgICAgICAgXCJzZXJ2ZXJDb2x1bW5cIjogXCJyZWNvcmREYXRlXCIsXG4gICAgICAgICAgXCJvcGVyYXRvck5hbWVcIjogXCJndGVcIixcbiAgICAgICAgICBcImRlZmF1bHRWYWx1ZVwiOiBcIlwiLFxuICAgICAgICAgIFwiZGF0YVR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJsb2NhbENvbHVtblwiOiBcImVuZERhdGVcIixcbiAgICAgICAgICBcInNlcnZlckNvbHVtblwiOiBcInJlY29yZERhdGVcIixcbiAgICAgICAgICBcIm9wZXJhdG9yTmFtZVwiOiBcImx0ZVwiLFxuICAgICAgICAgIFwiZGVmYXVsdFZhbHVlXCI6IFwiXCIsXG4gICAgICAgICAgXCJkYXRhVHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH07XG4gIHNxbEFwaURhdGFzZXQgPSB7XG4gICAgXCJhcGlcIjogXCIva3BpL2dlbmVyaWNTcWxRdWVyeVJlc3BvbnNlXCIsXG4gICAgXCJhcGlUeXBlXCI6IFwicG9zdFwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiXCIsXG4gICAgXCJxdWVyeUNvbmZpZ1wiOiB7XG4gICAgICBcInRlbXBsYXRlUXVlcnlcIjogXCJcIixcbiAgICAgIFwiZGF0YWJhc2VOYW1lXCI6IFwiXCIsXG4gICAgICBcImRiQ29uZmlnXCI6IFwiXCIsXG4gICAgICBcImVucmljaG1lbnRzXCI6IFtdLFxuICAgICAgXCJtYXBlZEZpbHRlcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJsb2NhbENvbHVtblwiOiBcInN0YXJ0RGF0ZVwiLFxuICAgICAgICAgIFwic2VydmVyQ29sdW1uXCI6IFwicmVjb3JkX2RhdGVcIixcbiAgICAgICAgICBcIm9wZXJhdG9yTmFtZVwiOiBcImd0ZVwiLFxuICAgICAgICAgIFwiZGVmYXVsdFZhbHVlXCI6IFwiXCIsXG4gICAgICAgICAgXCJkYXRhVHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImxvY2FsQ29sdW1uXCI6IFwiZW5kRGF0ZVwiLFxuICAgICAgICAgIFwic2VydmVyQ29sdW1uXCI6IFwicmVjb3JkX2RhdGVcIixcbiAgICAgICAgICBcIm9wZXJhdG9yTmFtZVwiOiBcImx0ZVwiLFxuICAgICAgICAgIFwiZGVmYXVsdFZhbHVlXCI6IFwiXCIsXG4gICAgICAgICAgXCJkYXRhVHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImxvY2FsQ29sdW1uXCI6IFwibGltaXRcIixcbiAgICAgICAgICBcInNlcnZlckNvbHVtblwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgXCJvcGVyYXRvck5hbWVcIjogXCJlcVwiLFxuICAgICAgICAgIFwiZGVmYXVsdFZhbHVlXCI6IFwiNTAwMFwiLFxuICAgICAgICAgIFwiZGF0YVR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9O1xuXG4gIGpzb25EYXRhc2V0ID0ge1xuICAgIFwiYXBpXCI6IFwiL2twaS1jb25maWcvZ2V0SnNvbkRhdGFzZXRQYXlsb2FkXCIsXG4gICAgXCJhcGlUeXBlXCI6IFwiZ2V0XCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJcIixcbiAgICBcInF1ZXJ5Q29uZmlnXCI6IHtcbiAgICAgIFwibWFwZWRGaWx0ZXJzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwibG9jYWxDb2x1bW5cIjogXCJzdGFydERhdGVcIixcbiAgICAgICAgICBcInNlcnZlckNvbHVtblwiOiBcInJlY29yZERhdGVcIixcbiAgICAgICAgICBcIm9wZXJhdG9yTmFtZVwiOiBcImd0ZVwiLFxuICAgICAgICAgIFwiZGVmYXVsdFZhbHVlXCI6IFwiXCIsXG4gICAgICAgICAgXCJkYXRhVHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImxvY2FsQ29sdW1uXCI6IFwiZW5kRGF0ZVwiLFxuICAgICAgICAgIFwic2VydmVyQ29sdW1uXCI6IFwicmVjb3JkRGF0ZVwiLFxuICAgICAgICAgIFwib3BlcmF0b3JOYW1lXCI6IFwibHRlXCIsXG4gICAgICAgICAgXCJkZWZhdWx0VmFsdWVcIjogXCJcIixcbiAgICAgICAgICBcImRhdGFUeXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfVxuXG4gIGlucHV0RGF0YXNldElEOiBhbnk7XG4gIEBJbnB1dCgpIGlzSGVhZGVyOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoJ3NlbGVjdGVkRGF0YXNldElkJylcbiAgc2V0IHNlbGVjdGVkRGF0YXNldElkKHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmlucHV0RGF0YXNldElEID0gdmFsdWVcbiAgICAgIHRoaXMuc2VydmljZS5nZXRBcHBEYXRhc2V0Q29uZmlnKHZhbHVlKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nTW9kYWwgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmNyZWF0RGF0YXNldE9iamVjdCA9IGRhdGE7XG4gICAgICAgICAgaWYgKGRhdGEuZGF0YXNldFR5cGUgPT0gJ21vbmdvJykge1xuICAgICAgICAgICAgdGhpcy5tb25nb0RhdGFzZXQgPSBkYXRhLmNvbmZpZ1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5kYXRhc2V0VHlwZSA9PSAncXVlcnlidWlsZGVyJykge1xuICAgICAgICAgICAgdGhpcy5xdWVyeUJ1bGRlckRhdGFzZXQgPSBkYXRhLmNvbmZpZ1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5kYXRhc2V0VHlwZSA9PSAnc2ltcGxlQXBpJykge1xuICAgICAgICAgICAgdGhpcy5yZXN0QXBpRGF0YXNldCA9IGRhdGEuY29uZmlnO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5kYXRhc2V0VHlwZSA9PSAnc3FsUXVlcnknKSB7XG4gICAgICAgICAgICB0aGlzLnNxbEFwaURhdGFzZXQgPSBkYXRhLmNvbmZpZztcbiAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEuZGF0YXNldFR5cGUgPT0gJ3BsYWluanNvbicpIHtcbiAgICAgICAgICAgIHRoaXMuanNvbkRhdGFzZXQgPSBkYXRhLmNvbmZpZztcbiAgICAgICAgICB9XG4gICAgICAgIH0sIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmdNb2RhbCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdVbmV4cGVjdGVkIFNlcnZlciBFeGNlcHRpb24uIFBsZWFzZSBjb250YWN0IFN5c3RlbSBBZG1pbi4nLCAnRGF0YXNldCBDcmVhdGlvbicpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcblxuXG4gICAgfVxuXG5cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2VydmljZTogQXBwbGljYXRpb25Db250ZW50U2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSxcbiAgICBwdWJsaWMgY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgbGV0IGRhdGFzZXRJZCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ2RhdGFzZXRJZCddO1xuICAgIGxldCBjb250ZW50VHlwZSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ2NvbnRlbnRUeXBlJ107XG4gICAgaWYgKGNvbnRlbnRUeXBlID09IFwiY2xvbmVcIikge1xuICAgICAgdGhpcy5pc0R1cGxpZGF0ZVZpZXcgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoZGF0YXNldElkKSB7XG4gICAgICB0aGlzLmxvYWRpbmdNb2RhbCA9IHRydWU7XG5cbiAgICAgIHRoaXMuc2VydmljZS5nZXRBcHBEYXRhc2V0Q29uZmlnKGRhdGFzZXRJZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGluZ01vZGFsID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5jcmVhdERhdGFzZXRPYmplY3QgPSBkYXRhO1xuICAgICAgICAgIGlmIChkYXRhLmRhdGFzZXRUeXBlID09ICdtb25nbycpIHtcbiAgICAgICAgICAgIHRoaXMubW9uZ29EYXRhc2V0ID0gZGF0YS5jb25maWdcbiAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEuZGF0YXNldFR5cGUgPT0gJ3F1ZXJ5YnVpbGRlcicpIHtcbiAgICAgICAgICAgIHRoaXMucXVlcnlCdWxkZXJEYXRhc2V0ID0gZGF0YS5jb25maWdcbiAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEuZGF0YXNldFR5cGUgPT0gJ3NpbXBsZUFwaScpIHtcbiAgICAgICAgICAgIHRoaXMucmVzdEFwaURhdGFzZXQgPSBkYXRhLmNvbmZpZztcbiAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEuZGF0YXNldFR5cGUgPT0gJ3BsYWluanNvbicpIHtcbiAgICAgICAgICAgIHRoaXMuanNvbkRhdGFzZXQgPSBkYXRhLmNvbmZpZztcbiAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEuZGF0YXNldFR5cGUgPT0gJ3NxbFF1ZXJ5Jykge1xuICAgICAgICAgICAgdGhpcy5zcWxBcGlEYXRhc2V0ID0gZGF0YS5jb25maWc7XG4gICAgICAgICAgfVxuICAgICAgICB9LCBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nTW9kYWwgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignVW5leHBlY3RlZCBTZXJ2ZXIgRXhjZXB0aW9uLiBQbGVhc2UgY29udGFjdCBTeXN0ZW0gQWRtaW4uJywgJ0RhdGFzZXQgQ3JlYXRpb24nKVxuICAgICAgICB9XG4gICAgICB9KVxuXG5cbiAgICAgIC8vIHRoaXMuc2VydmljZS5nZXRBcHBEYXRhc2V0Q29uZmlncygpLnN1YnNjcmliZSh7XG4gICAgICAvLyAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcbiAgICAgIC8vICAgICBjb25zdCBmb3VuZE9iamVjdCA9IGRhdGEuZmluZChkYXRhc2V0ID0+IGRhdGFzZXQuZGF0YXNldElkID09PSBkYXRhc2V0SWQpO1xuICAgICAgLy8gICAgIHRoaXMubG9hZGluZ01vZGFsID0gZmFsc2U7XG4gICAgICAvLyAgICAgdGhpcy5jcmVhdERhdGFzZXRPYmplY3QgPSBmb3VuZE9iamVjdDtcbiAgICAgIC8vICAgICBpZiAoZm91bmRPYmplY3QuZGF0YXNldFR5cGUgPT0gJ21vbmdvJykge1xuICAgICAgLy8gICAgICAgdGhpcy5tb25nb0RhdGFzZXQgPSBmb3VuZE9iamVjdC5jb25maWdcbiAgICAgIC8vICAgICB9IGVsc2UgaWYgKGZvdW5kT2JqZWN0LmRhdGFzZXRUeXBlID09ICdxdWVyeWJ1aWxkZXInKSB7XG4gICAgICAvLyAgICAgICB0aGlzLnF1ZXJ5QnVsZGVyRGF0YXNldCA9IGZvdW5kT2JqZWN0LmNvbmZpZ1xuICAgICAgLy8gICAgIH0gZWxzZSBpZiAoZm91bmRPYmplY3QuZGF0YXNldFR5cGUgPT0gJ3NpbXBsZUFwaScpIHtcbiAgICAgIC8vICAgICAgIHRoaXMucmVzdEFwaURhdGFzZXQgPSBmb3VuZE9iamVjdC5jb25maWc7XG4gICAgICAvLyAgICAgfVxuICAgICAgLy8gICB9XG4gICAgICAvLyB9KVxuICAgIH1cblxuICB9XG5cblxuICBjcmVhdGVNb25nb1NlcnZpY2VEYXRhU2V0KGRhdGEpIHtcblxuICAgIHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0Wydjb25maWcnXSA9IGRhdGE7XG4gICAgY29uc29sZS5sb2codGhpcy5jcmVhdERhdGFzZXRPYmplY3QpO1xuICAgIHRoaXMubG9hZGluZ01vZGFsID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5pc0R1cGxpZGF0ZVZpZXcpIHtcblxuICAgICAgdGhpcy5jcmVhdGVOZURhdGFTZXRDb25maWcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0WydkYXRhc2V0SWQnXSkge1xuICAgICAgICB0aGlzLnVwZGF0YU5ld0RhdGFTZXRDb25naWcoKVxuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNyZWF0ZU5lRGF0YVNldENvbmZpZygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBjcmVhdGVRdWVyeUJ1aWxkZXJEYXRhU2V0KGRhdGEpIHtcblxuICAgIHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0Wydjb25maWcnXSA9IGRhdGE7XG4gICAgY29uc29sZS5sb2codGhpcy5jcmVhdERhdGFzZXRPYmplY3QpO1xuICAgIHRoaXMubG9hZGluZ01vZGFsID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5pc0R1cGxpZGF0ZVZpZXcpIHtcblxuICAgICAgdGhpcy5jcmVhdGVOZURhdGFTZXRDb25maWcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0WydkYXRhc2V0SWQnXSkge1xuICAgICAgICB0aGlzLnVwZGF0YU5ld0RhdGFTZXRDb25naWcoKVxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncXVlcnlidWlsZGVyJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3JlYXRlTmVEYXRhU2V0Q29uZmlnKCk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdxdWVyeWJ1aWxkZXInKVxuXG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICBjcmVhdGVTcWxRdWVyeUJ1aWxkZXJEYXRhU2V0KGRhdGEpIHtcblxuICAgIHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0Wydjb25maWcnXSA9IGRhdGE7XG4gICAgY29uc29sZS5sb2codGhpcy5jcmVhdERhdGFzZXRPYmplY3QpO1xuICAgIHRoaXMubG9hZGluZ01vZGFsID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5pc0R1cGxpZGF0ZVZpZXcpIHtcblxuICAgICAgdGhpcy5jcmVhdGVOZURhdGFTZXRDb25maWcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0WydkYXRhc2V0SWQnXSkge1xuICAgICAgICB0aGlzLnVwZGF0YU5ld0RhdGFTZXRDb25naWcoKVxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncXVlcnlidWlsZGVyJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3JlYXRlTmVEYXRhU2V0Q29uZmlnKCk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdxdWVyeWJ1aWxkZXInKVxuXG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuXG5cbiAgY3JlYXRlUmVzdEFwaURhdGFTZXQoZGF0YSkge1xuICAgIHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0Wydjb25maWcnXSA9IGRhdGE7XG4gICAgY29uc29sZS5sb2codGhpcy5jcmVhdERhdGFzZXRPYmplY3QpO1xuICAgIHRoaXMubG9hZGluZ01vZGFsID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLmlzRHVwbGlkYXRlVmlldykge1xuICAgICAgdGhpcy5jcmVhdGVOZURhdGFTZXRDb25maWcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0WydkYXRhc2V0SWQnXSkge1xuICAgICAgICB0aGlzLnVwZGF0YU5ld0RhdGFTZXRDb25naWcoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jcmVhdGVOZURhdGFTZXRDb25maWcoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG5cbiAgY3JlYXRlTmVEYXRhU2V0Q29uZmlnKCkge1xuICAgIHRoaXMuc2VydmljZS5jcmVhdGVBcHBEYXRhc2V0KHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAvLyB0aGlzLmlzTmV3RGF0YVNldENyZWF0ZVZpZXcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc0R1cGxpZGF0ZVZpZXcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sb2FkaW5nTW9kYWwgPSBmYWxzZTtcbiAgICAgICAgdGhpcy50b2FzdHIuc3VjY2VzcygnRGF0YXNldCBDcmVhdGVkIFN1Y2Nlc3NmdWxseScpXG4gICAgICAgIC8vIGlmICh0aGlzLmlzSGVhZGVyKSB7XG4gICAgICAgIC8vICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydhcHBzL2NvbnRyb2xQYW5lbC9hcHBsaWNhdGlvbkRhdGFzZXQvJ10pXG4gICAgICAgIC8vIH1cblxuICAgICAgfSwgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignVW5leHBlY3RlZCBTZXJ2ZXIgRXhjZXB0aW9uLiBQbGVhc2UgY29udGFjdCBTeXN0ZW0gQWRtaW4uJywgJ0RhdGFzZXQgQ3JlYXRpb24nKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICB1cGRhdGFOZXdEYXRhU2V0Q29uZ2lnKCkge1xuICAgIHRoaXMuc2VydmljZS51cGRhdGVBcHBEYXRhc2V0Q29uZmlnKHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAvLyB0aGlzLmlzTmV3RGF0YVNldENyZWF0ZVZpZXcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sb2FkaW5nTW9kYWwgPSBmYWxzZTtcbiAgICAgICAgdGhpcy50b2FzdHIuc3VjY2VzcygnRGF0YXNldCBVcGRhdGVkIFN1Y2Nlc3NmdWxseScpXG4gICAgICAgIC8vIGlmICh0aGlzLmlzSGVhZGVyKSB7XG4gICAgICAgIC8vICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydhcHBzL2NvbnRyb2xQYW5lbC9hcHBsaWNhdGlvbkRhdGFzZXQvJ10pXG4gICAgICAgIC8vIH1cbiAgICAgIH0sIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ1VuZXhwZWN0ZWQgU2VydmVyIEV4Y2VwdGlvbi4gUGxlYXNlIGNvbnRhY3QgU3lzdGVtIEFkbWluLicsICdEYXRhc2V0IENyZWF0aW9uJylcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgZ290b0FsbERhdGFzZXRzKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnYXBwcy9jb250cm9sUGFuZWwvYXBwbGljYXRpb25EYXRhc2V0LyddKVxuICB9XG5cblxuICBjcmVhdGVEYXRhU2V0V2l0aEpzb24oZGF0YSkge1xuICAgIHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0Wydjb25maWcnXSA9IGRhdGE7XG4gICAgY29uc29sZS5sb2codGhpcy5jcmVhdERhdGFzZXRPYmplY3QpO1xuICAgIGlmICh0aGlzLmlzRHVwbGlkYXRlVmlldykge1xuICAgICAgdGhpcy5jcmVhdGVOZURhdGFTZXRDb25maWcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY3JlYXREYXRhc2V0T2JqZWN0WydkYXRhc2V0SWQnXSkge1xuICAgICAgICB0aGlzLnVwZGF0YU5ld0RhdGFTZXRDb25naWcoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jcmVhdGVOZURhdGFTZXRDb25maWcoKTtcbiAgICAgIH1cbiAgICB9XG5cblxuXG4gIH1cblxufVxuIiwiPGFwcC1sb2FkaW5nICpuZ0lmPVwibG9hZGluZ01vZGFsXCI+PC9hcHAtbG9hZGluZz5cblxuPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZmxleC1hdXRvIG1pbi13LTBcIj5cblxuICAgIDxsaWItY29tbW9uLWhlYWRlciBbcGFnZVRpdGxlXT1cIidEYXRhc2V0IEVkaXRvcidcIiAqbmdJZj1cImlzSGVhZGVyXCI+PC9saWItY29tbW9uLWhlYWRlcj5cblxuXG4gICAgPGRpdiBjbGFzcz1cInAtMiB3LWZ1bGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tMyBwLTQgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHNoYWRvdy1tZCBkYXJrOmJnLWdyYXktODAwIGRhcms6Ym9yZGVyLWdyYXktNzAwXCI+XG4gICAgICAgICAgICA8aDZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1iLTIgZm9udC1ib2xkIHRleHQtbGcgdHJhY2tpbmctdGlnaHQgdGV4dC1ncmF5LTkwMCBkYXJrOnRleHQtd2hpdGUgYm9yZGVyLWIgcGItMyBmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGFibGUgbXItMlwiPjwvaT4gRGF0YXNldCBFZGl0b3JcblxuICAgICAgICAgICAgPC9oNj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IG15LTRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMiB3LTEvM1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0yXCI+RGF0YXNldCBOYW1lPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBbKG5nTW9kZWwpXT1cImNyZWF0RGF0YXNldE9iamVjdC5kYXRhc2V0TmFtZVwiPjwvZHgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTIgdy0xLzNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgbWItMlwiPlNlbGVjdCBEYXRhc2V0IFR5cGU8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGR4LXNlbGVjdC1ib3ggW2l0ZW1zXT1cImRhdGFTZXRUeXBlQ29udGFpbmVyXCIgZGlzcGxheUV4cHI9XCJuYW1lXCIgdmFsdWVFeHByPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjcmVhdERhdGFzZXRPYmplY3QuZGF0YXNldFR5cGVcIj48L2R4LXNlbGVjdC1ib3g+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLTUgYm9yZGVyXCI+XG4gICAgICAgICAgICAgICAgPGFwcC1kYXRhc2V0LW1vbmdvICpuZ0lmPVwiY3JlYXREYXRhc2V0T2JqZWN0LmRhdGFzZXRUeXBlID09ICdtb25nbydcIiBbbW9uZ29EYXRhc2V0XT1cIm1vbmdvRGF0YXNldFwiXG4gICAgICAgICAgICAgICAgICAgIChnZXRNb25nb1NlcnZpY2VEYXRhU2V0KT1cImNyZWF0ZU1vbmdvU2VydmljZURhdGFTZXQoJGV2ZW50KVwiPjwvYXBwLWRhdGFzZXQtbW9uZ28+XG5cbiAgICAgICAgICAgICAgICA8YXBwLWRhdGFzZXQtcmVzdC1hcGkgKm5nSWY9XCJjcmVhdERhdGFzZXRPYmplY3QuZGF0YXNldFR5cGUgPT0gJ3NpbXBsZUFwaSdcIlxuICAgICAgICAgICAgICAgICAgICBbcmVzdEFwaURhdGFzZXRdPVwicmVzdEFwaURhdGFzZXRcIlxuICAgICAgICAgICAgICAgICAgICAoZ2V0UmVzdEFwaUJ1bGJkZXJEYXRhU2V0KT1cImNyZWF0ZVJlc3RBcGlEYXRhU2V0KCRldmVudClcIj48L2FwcC1kYXRhc2V0LXJlc3QtYXBpPlxuXG4gICAgICAgICAgICAgICAgPGFwcC1kYXRhc2V0LXF1ZXJ5LWJ1bGRlciAqbmdJZj1cImNyZWF0RGF0YXNldE9iamVjdC5kYXRhc2V0VHlwZSA9PSAncXVlcnlidWlsZGVyJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtidWxkZXJEYXRhc2V0XT1cInF1ZXJ5QnVsZGVyRGF0YXNldFwiXG4gICAgICAgICAgICAgICAgICAgIChnZXRRdWVyeUJ1bGJkZXJEYXRhU2V0KT1cImNyZWF0ZVF1ZXJ5QnVpbGRlckRhdGFTZXQoJGV2ZW50KVwiPjwvYXBwLWRhdGFzZXQtcXVlcnktYnVsZGVyPlxuXG4gICAgICAgICAgICAgICAgPGFwcC1jcmVhdGUtZGF0YXNldC1zcWwgKm5nSWY9XCJjcmVhdERhdGFzZXRPYmplY3QuZGF0YXNldFR5cGUgPT0gJ3NxbFF1ZXJ5J1wiXG4gICAgICAgICAgICAgICAgICAgIFtzcWxCdWxkZXJEYXRhc2V0XT1cInNxbEFwaURhdGFzZXRcIlxuICAgICAgICAgICAgICAgICAgICAoZ2V0U3FsUXVlcnlCdWxiZGVyRGF0YVNldCk9XCJjcmVhdGVTcWxRdWVyeUJ1aWxkZXJEYXRhU2V0KCRldmVudClcIj48L2FwcC1jcmVhdGUtZGF0YXNldC1zcWw+XG5cbiAgICAgICAgICAgICAgICA8YXBwLWNyZWF0ZS1kYXRhc2V0LWpzb24gKm5nSWY9XCJjcmVhdERhdGFzZXRPYmplY3QuZGF0YXNldFR5cGUgPT0gJ3BsYWluanNvbidcIlxuICAgICAgICAgICAgICAgICAgICBbanNvbkRhdGFzZXRdPVwianNvbkRhdGFzZXRcIlxuICAgICAgICAgICAgICAgICAgICAoZ2V0SnNvbkRhdGFzZXQpPVwiY3JlYXRlRGF0YVNldFdpdGhKc29uKCRldmVudClcIj48L2FwcC1jcmVhdGUtZGF0YXNldC1qc29uPlxuICAgICAgICAgICAgPC9kaXY+XG5cblxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuXG48L2Rpdj4iXX0=
|
|
@@ -36,6 +36,16 @@ export class CreateDatasetSqlComponent {
|
|
|
36
36
|
if (value.queryConfig.templateQuery != "") {
|
|
37
37
|
this.queryStringData = value.queryConfig.templateQuery;
|
|
38
38
|
}
|
|
39
|
+
const hasLimit = value.queryConfig.mapedFilters.some(filter => filter.serverColumn === 'limit');
|
|
40
|
+
if (!hasLimit) {
|
|
41
|
+
value.queryConfig.mapedFilters.push({
|
|
42
|
+
localColumn: "limit",
|
|
43
|
+
serverColumn: "limit",
|
|
44
|
+
operatorName: "eq",
|
|
45
|
+
defaultValue: "5000",
|
|
46
|
+
dataType: "string"
|
|
47
|
+
});
|
|
48
|
+
}
|
|
39
49
|
this.apiBulderDataset = value;
|
|
40
50
|
}
|
|
41
51
|
ngOnInit() {
|
|
@@ -76,36 +86,36 @@ export class CreateDatasetSqlComponent {
|
|
|
76
86
|
}
|
|
77
87
|
else {
|
|
78
88
|
fval = this.sqlFormatter.transform(val);
|
|
79
|
-
splittedValuesOfQuery =
|
|
80
|
-
return item.trim().replace(/(^,)|(,)|(;)/g, '');
|
|
81
|
-
});
|
|
89
|
+
splittedValuesOfQuery = fval.match(/'[^']*'|\S+/g) || [];
|
|
82
90
|
this.queryStringData = fval;
|
|
83
91
|
const re = /{([^}]+)}/g;
|
|
84
92
|
let m = [];
|
|
85
93
|
while (m = re.exec(fval)) {
|
|
86
94
|
this.duplicateMatches.push(m[1]);
|
|
87
95
|
}
|
|
96
|
+
let limit_key = [];
|
|
97
|
+
limit_key = splittedValuesOfQuery.filter(s => s.toLowerCase().includes('limit'));
|
|
88
98
|
this.matches = this.duplicateMatches.filter((v, i) => this.duplicateMatches.indexOf(v) === i);
|
|
89
99
|
for (let i = 0; i < this.matches.length; i++) {
|
|
90
100
|
let value;
|
|
91
101
|
let key;
|
|
92
102
|
let th_key;
|
|
93
103
|
let keyarr = [];
|
|
94
|
-
let th_keyArr = [];
|
|
95
104
|
value = this.matches[i];
|
|
96
105
|
keyarr = splittedValuesOfQuery.filter(s => s.includes('$P{' + this.matches[i] + '}'));
|
|
97
|
-
th_keyArr = splittedValuesOfQuery.filter(s => s.includes('$T{' + this.matches[i] + '}'));
|
|
98
106
|
if (keyarr.length !== 0) {
|
|
99
107
|
if (keyarr[0].split('=')[0].indexOf('.') > 0) {
|
|
100
108
|
key = keyarr[0].split('=')[0].split('.')[1];
|
|
101
109
|
}
|
|
102
110
|
else {
|
|
103
111
|
key = keyarr[0].split('=')[0];
|
|
104
|
-
let labelName = key.replace(/^./, key[0].toUpperCase());
|
|
105
112
|
}
|
|
106
113
|
}
|
|
107
114
|
this.argumentData.push(key);
|
|
108
115
|
}
|
|
116
|
+
if (limit_key && limit_key.length !== 0) {
|
|
117
|
+
this.argumentData.push(limit_key[0].toLowerCase());
|
|
118
|
+
}
|
|
109
119
|
this.isValidate = false;
|
|
110
120
|
this.isNotValidate = true;
|
|
111
121
|
}
|
|
@@ -174,4 +184,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
174
184
|
type: Input,
|
|
175
185
|
args: ['sqlBulderDataset']
|
|
176
186
|
}] } });
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWRhdGFzZXQtc3FsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC1zcWwvY3JlYXRlLWRhdGFzZXQtc3FsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC1zcWwvY3JlYXRlLWRhdGFzZXQtc3FsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3pDLE9BQU8sU0FBUyxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7O0FBUzVDLE1BQU0sT0FBTyx5QkFBeUI7SUErQnBDLFlBQ1UsTUFBcUIsRUFDdEIsYUFBNEIsRUFDM0IsWUFBcUIsRUFDckIsT0FBa0M7UUFIbEMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUMzQixpQkFBWSxHQUFaLFlBQVksQ0FBUztRQUNyQixZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQWxDNUMsaUJBQVksR0FBUSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUE7UUFDckYsaUJBQVksR0FBUSxDQUFDLElB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QUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQzVELENBQUM7O3NIQXZNVSx5QkFBeUI7MEdBQXpCLHlCQUF5Qix3S0FIekIsQ0FBQyxPQUFPLENBQUMsMEJDYnRCLHlnVkFzTU07MkZEdExPLHlCQUF5QjtrQkFQckMsU0FBUzsrQkFDRSx3QkFBd0IsYUFHdkIsQ0FBQyxPQUFPLENBQUM7OExBTUgseUJBQXlCO3NCQUF6QyxNQUFNO2dCQWdCSCxnQkFBZ0I7c0JBRG5CLEtBQUs7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7IFNxbFBpcGUgfSBmcm9tICcuL3NxbEZvcm1hdHRlcic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkNvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBwbGljYXRpb24tY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24nO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gtZXMvY2xvbmVEZWVwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNyZWF0ZS1kYXRhc2V0LXNxbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtZGF0YXNldC1zcWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jcmVhdGUtZGF0YXNldC1zcWwuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbU3FsUGlwZV0sXG5cbn0pXG5leHBvcnQgY2xhc3MgQ3JlYXRlRGF0YXNldFNxbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGtwaV9mdW5jdGlvbjogYW55ID0gW1wic3VtXCIsIFwiY291bnRcIiwgXCJhdmdcIiwgXCJtYXhcIiwgXCJtaW5cIiwgXCJzdGRkZXZcIiwgXCJjb3VudF9kaXN0aW5jdFwiXVxuICBrcGlfb3BlcmF0b3I6IGFueSA9IFtcImVxXCIsIFwiZ3RlXCIsIFwibHRlXCIsIFwibmVcIiwgXCJpblwiLCBcIm5vdEluXCIsIFwiY29udGFpbnNcIiwgXCJzdGFydHNXaXRoXCIsIFwiZW5kc1dpdGhcIl1cbiAgQE91dHB1dCgpIHB1YmxpYyBnZXRTcWxRdWVyeUJ1bGJkZXJEYXRhU2V0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgYXBpQnVsZGVyRGF0YXNldDogYW55O1xuICBxdWVyeVN0cmluZ0RhdGE6IHN0cmluZztcbiAgc3FsU3RyaW5nID0gJyc7XG4gIHZhbGlkYXRlQXJndW1lbnRFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBmb3JtYXRCdXR0b25TdGF0dXM6IGJvb2xlYW4gPSB0cnVlO1xuICB2YWxpZGF0ZVN0YXR1czogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGlzVmFsaWRhdGU6IGJvb2xlYW4gPSB0cnVlO1xuICBpc05vdFZhbGlkYXRlOiBib29sZWFuID0gdHJ1ZTtcbiAgYXJndW1lbnREYXRhOiBhbnkgPSBbXTtcblxuICBkdXBsaWNhdGVNYXRjaGVzOiBhbnk7XG4gIG1hdGNoZXM6IGFueTtcbiAga3BpX2VucmljaG1lbnRfbmFtZTogYW55ID0gW107XG4gIEBJbnB1dCgnc3FsQnVsZGVyRGF0YXNldCcpXG4gIHNldCBzcWxCdWxkZXJEYXRhc2V0KHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlLnF1ZXJ5Q29uZmlnLm1hcGVkRmlsdGVycyA9PSB1bmRlZmluZWQpIHtcbiAgICAgIHZhbHVlLnF1ZXJ5Q29uZmlnLm1hcGVkRmlsdGVycyA9IFtdO1xuICAgICAgdmFsdWUucXVlcnlDb25maWcubWFwZWRGaWx0ZXJzLnB1c2goeyBcImxvY2FsQ29sdW1uXCI6IFwiXCIsIFwic2VydmVyQ29sdW1uXCI6IFwiXCIsIFwib3BlcmF0b3JOYW1lXCI6IFwiXCIsIFwiZGVmYXVsdFZhbHVlXCI6IFwiXCIsIFwiZGF0YVR5cGVcIjogXCJcIixcImZvcm1hdHRlclwiOlwiXCIgfSlcbiAgICB9XG4gICAgaWYgKHZhbHVlLnF1ZXJ5Q29uZmlnLnRlbXBsYXRlUXVlcnkgIT0gXCJcIikge1xuICAgICAgdGhpcy5xdWVyeVN0cmluZ0RhdGEgPSB2YWx1ZS5xdWVyeUNvbmZpZy50ZW1wbGF0ZVF1ZXJ5O1xuICAgIH1cblxuICAgIHRoaXMuYXBpQnVsZGVyRGF0YXNldCA9IHZhbHVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2UsXG4gICAgcHVibGljIGNvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzcWxGb3JtYXR0ZXI6IFNxbFBpcGUsXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBBcHBsaWNhdGlvbkNvbnRlbnRTZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXJ2aWNlLmxpc3RDb2x1bW5FbnJpY2htZW50RnVuY3Rpb25zKCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy5rcGlfZW5yaWNobWVudF9uYW1lID0gZGF0YTtcbiAgICB9KVxuICB9XG5cbiAgYWRkRmlsdGVyTWFwaW5nQ29sdW1ucygpIHtcbiAgICBsZXQgb2JqID0geyBcImxvY2FsQ29sdW1uXCI6IFwiXCIsIFwic2VydmVyQ29sdW1uXCI6IFwiXCIsIFwib3BlcmF0b3JOYW1lXCI6IFwiXCIsIFwiZGVmYXVsdFZhbHVlXCI6IFwiXCIsIFwiZGF0YVR5cGVcIjogXCJcIixcImZvcm1hdHRlclwiOlwiXCIgfVxuICAgIHRoaXMuYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5tYXBlZEZpbHRlcnMucHVzaChvYmopO1xuXG4gIH1cblxuICBkZWxldGVGaWx0ZXJNYXBpbmdDb2x1bW5zKGkpIHtcbiAgICB0aGlzLmFwaUJ1bGRlckRhdGFzZXQucXVlcnlDb25maWcubWFwZWRGaWx0ZXJzLnNwbGljZShpLCAxKVxuXG4gIH1cblxuICBzYXZlQ29sdW1uTWFwaW5nKCkge1xuICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MoJ01hcGVkIEZpbHRlciBTdWNjZXNzZnVsbHknKTtcblxuICB9XG5cblxuXG4gIG1vdmVJdGVtRm9yQ29sdW1ucyhpbmRleDogbnVtYmVyLCBkaXJlY3Rpb246ICd1cCcgfCAnZG93bicpOiB2b2lkIHtcbiAgICAvLyBQcmV2ZW50IG1vdmluZyBiZXlvbmQgYXJyYXkgYm91bmRzXG4gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0aGlzLmFwaUJ1bGRlckRhdGFzZXQucXVlcnlDb25maWcubWFwZWRGaWx0ZXJzLmxlbmd0aCkgcmV0dXJuO1xuICAgIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlyZWN0aW9uID09PSAndXAnID8gaW5kZXggLSAxIDogaW5kZXggKyAxO1xuICAgIC8vIFByZXZlbnQgbW92aW5nIGJleW9uZCBhcnJheSBib3VuZHNcbiAgICBpZiAobmV3UG9zaXRpb24gPCAwIHx8IG5ld1Bvc2l0aW9uID49IHRoaXMuYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5tYXBlZEZpbHRlcnMubGVuZ3RoKSByZXR1cm47XG5cbiAgICAvLyBNb3ZlIGl0ZW1cbiAgICBjb25zdCBpdGVtVG9Nb3ZlID0gdGhpcy5hcGlCdWxkZXJEYXRhc2V0LnF1ZXJ5Q29uZmlnLm1hcGVkRmlsdGVyc1tpbmRleF07XG4gICAgdGhpcy5hcGlCdWxkZXJEYXRhc2V0LnF1ZXJ5Q29uZmlnLm1hcGVkRmlsdGVycy5zcGxpY2UoaW5kZXgsIDEpOyAvLyBSZW1vdmUgaXRlbSBmcm9tIGN1cnJlbnQgcG9zaXRpb25cbiAgICB0aGlzLmFwaUJ1bGRlckRhdGFzZXQucXVlcnlDb25maWcubWFwZWRGaWx0ZXJzLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgaXRlbVRvTW92ZSk7IC8vIEluc2VydCBpdGVtIGluIG5ldyBwb3NpdGlvblxuICB9XG5cblxuXG4gIGZvcm1hdCgpOiBhbnkge1xuICAgIHRoaXMubWF0Y2hlcyA9IFtdO1xuICAgIHRoaXMuZHVwbGljYXRlTWF0Y2hlcyA9IFtdO1xuICAgIHRoaXMuYXJndW1lbnREYXRhID0gW107XG4gICAgbGV0IHZhbDogYW55O1xuICAgIGxldCBmdmFsOiBhbnk7XG4gICAgbGV0IHNwbGl0dGVkVmFsdWVzT2ZRdWVyeTogYW55O1xuICAgIC8vIHZhbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlVGV4dGFyZWEnKVsndmFsdWUnXTtcbiAgICB2YWwgPSB0aGlzLnF1ZXJ5U3RyaW5nRGF0YTtcbiAgICBjb25zdCBuZXdWYWwgPSB2YWwudHJpbSgpO1xuICAgIGlmIChuZXdWYWwgPT09ICcnIHx8IG5ld1ZhbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyB0aGlzLnRvYXN0ci5lcnJvcignUXVlcnkgRW1wdHknKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZnZhbCA9IHRoaXMuc3FsRm9ybWF0dGVyLnRyYW5zZm9ybSh2YWwpO1xuICAgICAgc3BsaXR0ZWRWYWx1ZXNPZlF1ZXJ5ID0gdmFsLnNwbGl0KCcgJykubWFwKGZ1bmN0aW9uIChpdGVtKTogYW55IHtcbiAgICAgICAgcmV0dXJuIGl0ZW0udHJpbSgpLnJlcGxhY2UoLyheLCl8KCwpfCg7KS9nLCAnJyk7XG4gICAgICB9KTtcbiAgICAgIC8vIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlVGV4dGFyZWEnKVsndmFsdWUnXSA9IGZ2YWw7XG4gICAgICB0aGlzLnF1ZXJ5U3RyaW5nRGF0YSA9IGZ2YWw7XG4gICAgICAvLyB0aGlzLnRvYXN0ci5zdWNjZXNzKCdRdWVyeSBGb3JtYXR0ZWQnKTtcbiAgICAgIGNvbnN0IHJlID0gL3soW159XSspfS9nO1xuICAgICAgbGV0IG0gPSBbXTtcbiAgICAgIHdoaWxlIChtID0gcmUuZXhlYyhmdmFsKSkge1xuICAgICAgICB0aGlzLmR1cGxpY2F0ZU1hdGNoZXMucHVzaChtWzFdKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubWF0Y2hlcyA9IHRoaXMuZHVwbGljYXRlTWF0Y2hlcy5maWx0ZXIoKHYsIGkpID0+IHRoaXMuZHVwbGljYXRlTWF0Y2hlcy5pbmRleE9mKHYpID09PSBpKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5tYXRjaGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxldCB2YWx1ZTogYW55O1xuICAgICAgICBsZXQga2V5OiBhbnk7XG4gICAgICAgIGxldCB0aF9rZXk6IGFueTtcbiAgICAgICAgbGV0IGtleWFyciA9IFtdO1xuICAgICAgICBsZXQgdGhfa2V5QXJyID0gW107XG4gICAgICAgIHZhbHVlID0gdGhpcy5tYXRjaGVzW2ldO1xuICAgICAgICBrZXlhcnIgPSBzcGxpdHRlZFZhbHVlc09mUXVlcnkuZmlsdGVyKHMgPT4gcy5pbmNsdWRlcygnJFB7JyArIHRoaXMubWF0Y2hlc1tpXSArICd9JykpO1xuICAgICAgICB0aF9rZXlBcnIgPSBzcGxpdHRlZFZhbHVlc09mUXVlcnkuZmlsdGVyKHMgPT4gcy5pbmNsdWRlcygnJFR7JyArIHRoaXMubWF0Y2hlc1tpXSArICd9JykpO1xuXG5cbiAgICAgICAgaWYgKGtleWFyci5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICBpZiAoa2V5YXJyWzBdLnNwbGl0KCc9JylbMF0uaW5kZXhPZignLicpID4gMCkge1xuICAgICAgICAgICAga2V5ID0ga2V5YXJyWzBdLnNwbGl0KCc9JylbMF0uc3BsaXQoJy4nKVsxXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAga2V5ID0ga2V5YXJyWzBdLnNwbGl0KCc9JylbMF07XG4gICAgICAgICAgICBsZXQgbGFiZWxOYW1lID0ga2V5LnJlcGxhY2UoL14uLywga2V5WzBdLnRvVXBwZXJDYXNlKCkpO1xuXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXJndW1lbnREYXRhLnB1c2goa2V5KVxuXG4gICAgICB9XG5cbiAgICAgIHRoaXMuaXNWYWxpZGF0ZSA9IGZhbHNlO1xuICAgICAgdGhpcy5pc05vdFZhbGlkYXRlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmFyZ3VtZW50RGF0YSlcblxuXG5cbiAgfVxuXG5cbiAgdmFsaWRhdGVOZXdSZXBvcnQoKSB7XG4gICAgY29uc3QgYXJndW1lbnREYXRhID0gY2xvbmVEZWVwKHRoaXMuYXJndW1lbnREYXRhKS5tYXAoaXRlbSA9PiBpdGVtLnJlcGxhY2UoLy4qXFx7KC4qKVxcfS4qLywgJyQxJykpO1xuICAgIGNvbnN0IG1hcHBlZEZpbHRlckNvbHVtbnMgPSB0aGlzLmFwaUJ1bGRlckRhdGFzZXQucXVlcnlDb25maWcubWFwZWRGaWx0ZXJzLm1hcChlbGVtZW50ID0+IGVsZW1lbnQubG9jYWxDb2x1bW4pO1xuXG4gICAgdGhpcy5hcGlCdWxkZXJEYXRhc2V0LnF1ZXJ5Q29uZmlnLm1hcGVkRmlsdGVycy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgaWYgKGFyZ3VtZW50RGF0YS5zb21lKGtleSA9PiBlbGVtZW50LmxvY2FsQ29sdW1uID09IGtleSkpIHtcbiAgICAgICAgdGhpcy50b2FzdHIuc3VjY2VzcygnVmFsaWRhdGUgRm9yICcgKyBlbGVtZW50LmxvY2FsQ29sdW1uKTtcbiAgICAgICAgdGhpcy5pc05vdFZhbGlkYXRlID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRvYXN0ci5pbmZvKCdNaXNzaW5nIEFsaWFzJywgZWxlbWVudC5sb2NhbENvbHVtbik7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBhcmd1bWVudERhdGEuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKCFtYXBwZWRGaWx0ZXJDb2x1bW5zLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgdGhpcy50b2FzdHIuaW5mbygnRXh0cmEgQXJndW1lbnQgRGF0YScsIGtleSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgfVxuXG4gIG1vdmVJdGVtRm9yTWVhc3VyZXNDb2x1bW5zKGluZGV4OiBudW1iZXIsIGRpcmVjdGlvbjogJ3VwJyB8ICdkb3duJyk6IHZvaWQge1xuICAgIC8vIFByZXZlbnQgbW92aW5nIGJleW9uZCBhcnJheSBib3VuZHNcbiAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IHRoaXMuYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5lbnJpY2htZW50cy5sZW5ndGgpIHJldHVybjtcbiAgICBjb25zdCBuZXdQb3NpdGlvbiA9IGRpcmVjdGlvbiA9PT0gJ3VwJyA/IGluZGV4IC0gMSA6IGluZGV4ICsgMTtcbiAgICAvLyBQcmV2ZW50IG1vdmluZyBiZXlvbmQgYXJyYXkgYm91bmRzXG4gICAgaWYgKG5ld1Bvc2l0aW9uIDwgMCB8fCBuZXdQb3NpdGlvbiA+PSB0aGlzLmFwaUJ1bGRlckRhdGFzZXQucXVlcnlDb25maWcuZW5yaWNobWVudHMubGVuZ3RoKSByZXR1cm47XG5cbiAgICAvLyBNb3ZlIGl0ZW1cbiAgICBjb25zdCBpdGVtVG9Nb3ZlID0gdGhpcy5hcGlCdWxkZXJEYXRhc2V0LnF1ZXJ5Q29uZmlnLmVucmljaG1lbnRzW2luZGV4XTtcbiAgICB0aGlzLmFwaUJ1bGRlckRhdGFzZXQucXVlcnlDb25maWcuZW5yaWNobWVudHMuc3BsaWNlKGluZGV4LCAxKTsgLy8gUmVtb3ZlIGl0ZW0gZnJvbSBjdXJyZW50IHBvc2l0aW9uXG4gICAgdGhpcy5hcGlCdWxkZXJEYXRhc2V0LnF1ZXJ5Q29uZmlnLmVucmljaG1lbnRzLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgaXRlbVRvTW92ZSk7IC8vIEluc2VydCBpdGVtIGluIG5ldyBwb3NpdGlvblxuICB9XG5cbiAgYWRkQ29sdW1ucygpIHtcbiAgICBpZih0aGlzLmFwaUJ1bGRlckRhdGFzZXQucXVlcnlDb25maWcuZW5yaWNobWVudHMgJiYgdGhpcy5hcGlCdWxkZXJEYXRhc2V0LnF1ZXJ5Q29uZmlnLmVucmljaG1lbnRzLmxlbmd0aCAhPT0gMCApe1xuICAgICAgbGV0IG9iaiA9IHtcbiAgICAgICAgXCJjb2x1bW5OYW1lXCI6IFwiXCIsXG4gICAgICAgIFwiZW5yaWNoRnVuY3Rpb25cIjogXCJcIixcbiAgICAgIH1cbiAgICAgIHRoaXMuYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5lbnJpY2htZW50cy5wdXNoKG9iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5lbnJpY2htZW50cyA9IFtdO1xuICAgICAgbGV0IG9iaiA9IHtcbiAgICAgICAgXCJjb2x1bW5OYW1lXCI6IFwiXCIsXG4gICAgICAgIFwiZW5yaWNoRnVuY3Rpb25cIjogXCJcIixcbiAgICAgIH1cbiAgICAgIHRoaXMuYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5lbnJpY2htZW50cy5wdXNoKG9iaik7XG4gICAgfVxuICAgXG4gIH1cblxuXG4gIGRlbGV0ZUNvbHVtbnMoaSkge1xuICAgIHRoaXMuYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5lbnJpY2htZW50cy5zcGxpY2UoaSwgMSlcbiAgfVxuXG5cbiAgY3JlYXRlRGF0YVNldCgpIHtcbiAgICB0aGlzLmFwaUJ1bGRlckRhdGFzZXQucXVlcnlDb25maWdbJ3RlbXBsYXRlUXVlcnknXSA9IHRoaXMucXVlcnlTdHJpbmdEYXRhO1xuICAgIHRoaXMuZ2V0U3FsUXVlcnlCdWxiZGVyRGF0YVNldC5lbWl0KHRoaXMuYXBpQnVsZGVyRGF0YXNldClcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwibS0yXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgbWItMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMiB3LTEvM1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgbWItMlwiPkVuZCBQb2ludDwvZGl2PlxuICAgICAgICAgICAgPGR4LXRleHQtYm94IFsobmdNb2RlbCldPVwiYXBpQnVsZGVyRGF0YXNldC5hcGlcIj48L2R4LXRleHQtYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm14LTIgdy0xLzNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTJcIj5BcGkgVHlwZTwvZGl2PlxuICAgICAgICAgICAgPGR4LXNlbGVjdC1ib3ggW2RhdGFTb3VyY2VdPVwiWydnZXQnLCdwb3N0J11cIiBbKG5nTW9kZWwpXT1cImFwaUJ1bGRlckRhdGFzZXQuYXBpVHlwZVwiPlxuICAgICAgICAgICAgPC9keC1zZWxlY3QtYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm14LTIgdy0xLzNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTJcIj5EYXRhYmFzZSBOYW1lPC9kaXY+XG4gICAgICAgICAgICA8ZHgtdGV4dC1ib3ggWyhuZ01vZGVsKV09XCJhcGlCdWxkZXJEYXRhc2V0LnF1ZXJ5Q29uZmlnLmRhdGFiYXNlTmFtZVwiPlxuICAgICAgICAgICAgPC9keC10ZXh0LWJveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJteC0yIHctMS8zXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0yXCI+REIgQ29uZmlnPC9kaXY+XG4gICAgICAgICAgICA8ZHgtc2VsZWN0LWJveCBbaXRlbXNdPVwiWydpbXBhbGEnLCdwb3N0Z3JlcycsJ215c3FsJywnYmlncXVlcnknXVwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJhcGlCdWxkZXJEYXRhc2V0LnF1ZXJ5Q29uZmlnLmRiQ29uZmlnXCI+PC9keC1zZWxlY3QtYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtYXV0byBtaW4tdy0wIG15LTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgcHktMiBmb250LWV4dHJhYm9sZCBib3JkZXItYiBiZy1ncmF5LTcwMCB0ZXh0LXdoaXRlIHB4LTJcIj4gRmlsdGVyIE1hcGluZ1xuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInB0LTIgYm9yZGVyLXggYm9yZGVyLWIgXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMiBmbGV4IGp1c3RpZnktYmV0d2VlblwiXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5tYXBlZEZpbHRlcnM7IGxldCBpID0gaW5kZXg7XCI+XG5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0xIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgbWItMlwiPiBTZXJ2ZXIgQ29sdW1uPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBbKG5nTW9kZWwpXT1cIml0ZW0uc2VydmVyQ29sdW1uXCI+PC9keC10ZXh0LWJveD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMSBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTJcIj4gTG9jYWwgQ29sdW1uKGFsaWFzTmFtZSk8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IFsobmdNb2RlbCldPVwiaXRlbS5sb2NhbENvbHVtblwiPjwvZHgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTEgbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0yXCI+IE9wZXJhdG9yPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94IFtzZWFyY2hFbmFibGVkXT1cInRydWVcIiBbaXRlbXNdPVwia3BpX29wZXJhdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS5vcGVyYXRvck5hbWVcIj48L2R4LXNlbGVjdC1ib3g+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTEgbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0yXCI+IERhdGF0eXBlPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94IFtzZWFyY2hFbmFibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cIlsnZGF0ZScsJ3N0cmluZycsJ3RpbWVzdGFtcCcsJ2ludCcsICdkb3VibGUnLCAnYm9vbGVhbiddXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS5kYXRhVHlwZVwiPjwvZHgtc2VsZWN0LWJveD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMSBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTJcIj4gRm9ybWF0dGVyPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBbKG5nTW9kZWwpXT1cIml0ZW0uZm9ybWF0dGVyXCI+PC9keC10ZXh0LWJveD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMSBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTJcIj4gRGVmYXVsdCBWYWx1ZTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggWyhuZ01vZGVsKV09XCJpdGVtLmRlZmF1bHRWYWx1ZVwiPjwvZHgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTEgbXQtOFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImkgIT09IDBcIiBjbGFzcz1cInt7Y29tbW9uU2VydmljZS5idG5fbGlnaHRfc219fSBjdXJzb3ItcG9pbnRlciBteC0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibW92ZUl0ZW1Gb3JDb2x1bW5zKGksICd1cCcpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1hcnJvdy11cFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaSAhPT0gYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5tYXBlZEZpbHRlcnMubGVuZ3RoIC0gMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX2xpZ2h0X3NtfX0gY3Vyc29yLXBvaW50ZXIgbXgtMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vdmVJdGVtRm9yQ29sdW1ucyhpLCAnZG93bicpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1hcnJvdy1kb3duXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0xIG10LTggdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInt7Y29tbW9uU2VydmljZS5idG5fZGFuZ2VyX3NtfX0gY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUZpbHRlck1hcGluZ0NvbHVtbnMoaSlcIj48aSBjbGFzcz1cImZhIGZhLXRyYXNoLW9cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMS8yXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1lbmQgbXktMlwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwie3tjb21tb25TZXJ2aWNlLmJ0bl9zdWNjZXNzX3NtfX0gY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic2F2ZUNvbHVtbk1hcGluZygpXCI+U2F2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgTWFwaW5nPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX3ByaW1hcnlfc219fSBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkRmlsdGVyTWFwaW5nQ29sdW1ucygpXCI+QWRkXG4gICAgICAgICAgICAgICAgICAgICAgICBNYXBpbmc8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLTMgcC00IGJnLXdoaXRlIGJvcmRlciBib3JkZXItZ3JheS0yMDAgcm91bmRlZC1sZyBzaGFkb3ctbWQgZGFyazpiZy1ncmF5LTgwMCBkYXJrOmJvcmRlci1ncmF5LTcwMFwiPlxuICAgICAgICAgICAgPGg2IGNsYXNzPVwibWItMiBmb250LWJvbGQgdHJhY2tpbmctdGlnaHQgdGV4dC1ncmF5LTkwMCBkYXJrOnRleHQtd2hpdGUgYm9yZGVyLWIgcGItM1wiPlxuICAgICAgICAgICAgICAgIENvbmZpZ3VyZSBTUUwgRXhwcmVzc2lvblxuICAgICAgICAgICAgPC9oNj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTUgZm9udC1saWdodCBib3JkZXIgYm9yZGVyLWItMCBib3JkZXItZ3JheS0yMDAgZGFyazpib3JkZXItZ3JheS03MDAgZGFyazpiZy1ncmF5LTkwMFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01IHAtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgaWQ9XCJtZXNzYWdlXCIgcm93cz1cIjIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmxvY2sgcC0yLjUgdy1mdWxsIHRleHQtbGcgdGV4dC1ncmF5LTkwMCBiZy1ncmF5LTUwIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBmb2N1czpyaW5nLWJsdWUtNTAwIGZvY3VzOmJvcmRlci1ibHVlLTUwMCBkYXJrOmJnLWdyYXktNzAwIGRhcms6Ym9yZGVyLWdyYXktNjAwIGRhcms6cGxhY2Vob2xkZXItZ3JheS00MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6Zm9jdXM6cmluZy1ibHVlLTUwMCBkYXJrOmZvY3VzOmJvcmRlci1ibHVlLTUwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIldyaXRlIHlvdXIgU1FMIHF1ZXJ5IGhlcmUuLi5cIiBbKG5nTW9kZWwpXT1cInF1ZXJ5U3RyaW5nRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImV4YW1wbGVUZXh0YXJlYVwiPnt7ICBzcWxTdHJpbmcgfCBzcWwgfX08L3RleHRhcmVhPlxuXG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBuby1tYXJnaW5cIiAqbmdJZj1cInZhbGlkYXRlQXJndW1lbnRFcnJvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXJlZC00MDBcIj5UaGlzIHF1ZXJ5IGlzIG5vdCB2YWxpZDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJmb3JtYXRCdXR0b25TdGF0dXNcIiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvY3VzOm91dGxpbmUtbm9uZSB0ZXh0LXdoaXRlIGJnLXB1cnBsZS03MDAgaG92ZXI6YmctcHVycGxlLTgwMCBmb2N1czpyaW5nLTRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1czpyaW5nLXB1cnBsZS0zMDAgZm9udC1tZWRpdW0gZGFyazpiZy1wdXJwbGUtNjAwIG15LTIgcHgtNSBweS0yLjUgZGFyazpob3ZlcjpiZy1wdXJwbGUtNzAwIGRhcms6Zm9jdXM6cmluZy1wdXJwbGUtOTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZm9ybWF0KClcIj5Gb3JtYXRcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCIhZm9ybWF0QnV0dG9uU3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvY3VzOm91dGxpbmUtbm9uZSB0ZXh0LXdoaXRlIGJnLXllbGxvdy04MDAgaG92ZXI6YmcteWVsbG93LTUwMCBmb2N1czpyaW5nLTRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1czpyaW5nLXllbGxvdy0zMDAgZm9udC1tZWRpdW0gbXItMiBweC01IHB5LTIuNSBteS0yIGRhcms6Zm9jdXM6cmluZy15ZWxsb3ctOTAwXCIgKGNsaWNrKT1cImZvcm1hdCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVmb3JtYXRcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZCBtdC0yXCI+XG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm15LTJcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm0tMyBwLTQgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHNoYWRvdy1tZCBkYXJrOmJnLWdyYXktODAwIGRhcms6Ym9yZGVyLWdyYXktNzAwIFwiPlxuICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cIm1iLTIgZm9udC1ib2xkIHRyYWNraW5nLXRpZ2h0IHRleHQtZ3JheS05MDAgZGFyazp0ZXh0LXdoaXRlIGJvcmRlci1iIHBiLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgRGF0YSBFbnJpY2htZW50XG4gICAgICAgICAgICAgICAgPC9oNj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMSBnYXAtMiB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMiB3LWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5lbnJpY2htZW50czsgbGV0IGkgPSBpbmRleDtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTEgbWItMiB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgbWItMlwiPiBWYWx1ZSBGaWVsZChhbGlhc05hbWUpPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBbKG5nTW9kZWwpXT1cIml0ZW0uY29sdW1uTmFtZVwiPjwvZHgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTEgbWItMiB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgbWItMlwiPiBFbnJpY2ggVHlwZTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHgtc2VsZWN0LWJveCBbaXRlbXNdPVwiWydCYXNpYycsJ0xvb2t1cCddXCI+PC9keC1zZWxlY3QtYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0xIG1iLTIgdy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTJcIj4gRW5yaWNoIE5hbWU8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR4LXNlbGVjdC1ib3ggW3NlYXJjaEVuYWJsZWRdPVwidHJ1ZVwiIFtpdGVtc109XCJrcGlfZW5yaWNobWVudF9uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS5lbnJpY2hGdW5jdGlvblwiPjwvZHgtc2VsZWN0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMSBtdC04XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaSAhPT0gMFwiIGNsYXNzPVwie3tjb21tb25TZXJ2aWNlLmJ0bl9saWdodF9zbX19IGN1cnNvci1wb2ludGVyIG14LTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtb3ZlSXRlbUZvck1lYXN1cmVzQ29sdW1ucyhpLCAndXAnKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYXJyb3ctdXBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImkgIT09IGFwaUJ1bGRlckRhdGFzZXQucXVlcnlDb25maWcuZW5yaWNobWVudHMubGVuZ3RoIC0gMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX2xpZ2h0X3NtfX0gY3Vyc29yLXBvaW50ZXIgbXgtMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vdmVJdGVtRm9yTWVhc3VyZXNDb2x1bW5zKGksICdkb3duJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWFycm93LWRvd25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTEgbXQtOCB0ZXh0LWNlbnRlclwiPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX2Rhbmdlcl9zbX19IGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVDb2x1bW5zKGkpXCI+PGkgY2xhc3M9XCJmYSBmYS10cmFzaC1vXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZCBtdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX3ByaW1hcnlfbWR9fSBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJhZGRDb2x1bW5zKClcIj5BZGRcbiAgICAgICAgICAgICAgICAgICAgICAgIENvbHVtbnM8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuXG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggdy1mdWxsIGp1c3RpZnktZW5kIG10LTUgYm9yZGVyLXRcIj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwie3tjb21tb25TZXJ2aWNlLmJ0bl9wcmltYXJ5X21kfX0gY3Vyc29yLXBvaW50ZXIgbXgtMSBteS0yXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidmFsaWRhdGVOZXdSZXBvcnQoKVwiIFtkaXNhYmxlZF09XCJpc1ZhbGlkYXRlXCI+XG4gICAgICAgICAgICAgICAgVmFsaWRhdGVcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInt7Y29tbW9uU2VydmljZS5idG5fc3VjY2Vzc19tZH19IGN1cnNvci1wb2ludGVyIG14LTEgbXktMlwiIChjbGljayk9XCJjcmVhdGVEYXRhU2V0KClcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc05vdFZhbGlkYXRlXCI+XG4gICAgICAgICAgICAgICAgU3VibWl0IERhdGFTZXRcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuPC9kaXY+Il19
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWRhdGFzZXQtc3FsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC1zcWwvY3JlYXRlLWRhdGFzZXQtc3FsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC1zcWwvY3JlYXRlLWRhdGFzZXQtc3FsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3pDLE9BQU8sU0FBUyxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7O0FBUzVDLE1BQU0sT0FBTyx5QkFBeUI7SUEwQ3BDLFlBQ1UsTUFBcUIsRUFDdEIsYUFBNEIsRUFDM0IsWUFBcUIsRUFDckIsT0FBa0M7UUFIbEMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUMzQixpQkFBWSxHQUFaLFlBQVksQ0FBUztRQUNyQixZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQTdDNUMsaUJBQVksR0FBUSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUE7UUFDckYsaUJBQVksR0FBUSxDQUFDLElB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QUFDLENBQUM7UUFDYixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzVELENBQUM7SUFHRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzFFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFDNUQsQ0FBQzs7c0hBbE5VLHlCQUF5QjswR0FBekIseUJBQXlCLHdLQUh6QixDQUFDLE9BQU8sQ0FBQywwQkNidEIseWdWQXNNTTsyRkR0TE8seUJBQXlCO2tCQVByQyxTQUFTOytCQUNFLHdCQUF3QixhQUd2QixDQUFDLE9BQU8sQ0FBQzs4TEFNSCx5QkFBeUI7c0JBQXpDLE1BQU07Z0JBZ0JILGdCQUFnQjtzQkFEbkIsS0FBSzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHsgU3FsUGlwZSB9IGZyb20gJy4vc3FsRm9ybWF0dGVyJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uQ29udGVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcHBsaWNhdGlvbi1jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbic7XG5pbXBvcnQgY2xvbmVEZWVwIGZyb20gJ2xvZGFzaC1lcy9jbG9uZURlZXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY3JlYXRlLWRhdGFzZXQtc3FsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1kYXRhc2V0LXNxbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS1kYXRhc2V0LXNxbC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtTcWxQaXBlXSxcblxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVEYXRhc2V0U3FsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAga3BpX2Z1bmN0aW9uOiBhbnkgPSBbXCJzdW1cIiwgXCJjb3VudFwiLCBcImF2Z1wiLCBcIm1heFwiLCBcIm1pblwiLCBcInN0ZGRldlwiLCBcImNvdW50X2Rpc3RpbmN0XCJdXG4gIGtwaV9vcGVyYXRvcjogYW55ID0gW1wiZXFcIiwgXCJndGVcIiwgXCJsdGVcIiwgXCJuZVwiLCBcImluXCIsIFwibm90SW5cIiwgXCJjb250YWluc1wiLCBcInN0YXJ0c1dpdGhcIiwgXCJlbmRzV2l0aFwiXVxuICBAT3V0cHV0KCkgcHVibGljIGdldFNxbFF1ZXJ5QnVsYmRlckRhdGFTZXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBhcGlCdWxkZXJEYXRhc2V0OiBhbnk7XG4gIHF1ZXJ5U3RyaW5nRGF0YTogc3RyaW5nO1xuICBzcWxTdHJpbmcgPSAnJztcbiAgdmFsaWRhdGVBcmd1bWVudEVycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGZvcm1hdEJ1dHRvblN0YXR1czogYm9vbGVhbiA9IHRydWU7XG4gIHZhbGlkYXRlU3RhdHVzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgaXNWYWxpZGF0ZTogYm9vbGVhbiA9IHRydWU7XG4gIGlzTm90VmFsaWRhdGU6IGJvb2xlYW4gPSB0cnVlO1xuICBhcmd1bWVudERhdGE6IGFueSA9IFtdO1xuXG4gIGR1cGxpY2F0ZU1hdGNoZXM6IGFueTtcbiAgbWF0Y2hlczogYW55O1xuICBrcGlfZW5yaWNobWVudF9uYW1lOiBhbnkgPSBbXTtcbiAgQElucHV0KCdzcWxCdWxkZXJEYXRhc2V0JylcbiAgc2V0IHNxbEJ1bGRlckRhdGFzZXQodmFsdWUpIHtcbiAgICBpZiAodmFsdWUucXVlcnlDb25maWcubWFwZWRGaWx0ZXJzID09IHVuZGVmaW5lZCkge1xuICAgICAgdmFsdWUucXVlcnlDb25maWcubWFwZWRGaWx0ZXJzID0gW107XG4gICAgICB2YWx1ZS5xdWVyeUNvbmZpZy5tYXBlZEZpbHRlcnMucHVzaCh7IFwibG9jYWxDb2x1bW5cIjogXCJcIiwgXCJzZXJ2ZXJDb2x1bW5cIjogXCJcIiwgXCJvcGVyYXRvck5hbWVcIjogXCJcIiwgXCJkZWZhdWx0VmFsdWVcIjogXCJcIiwgXCJkYXRhVHlwZVwiOiBcIlwiLCBcImZvcm1hdHRlclwiOiBcIlwiIH0pXG4gICAgfVxuICAgIGlmICh2YWx1ZS5xdWVyeUNvbmZpZy50ZW1wbGF0ZVF1ZXJ5ICE9IFwiXCIpIHtcbiAgICAgIHRoaXMucXVlcnlTdHJpbmdEYXRhID0gdmFsdWUucXVlcnlDb25maWcudGVtcGxhdGVRdWVyeTtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNMaW1pdCA9IHZhbHVlLnF1ZXJ5Q29uZmlnLm1hcGVkRmlsdGVycy5zb21lKGZpbHRlciA9PiBmaWx0ZXIuc2VydmVyQ29sdW1uID09PSAnbGltaXQnKTtcblxuICAgIGlmICghaGFzTGltaXQpIHtcbiAgICAgIHZhbHVlLnF1ZXJ5Q29uZmlnLm1hcGVkRmlsdGVycy5wdXNoKHtcbiAgICAgICAgbG9jYWxDb2x1bW46IFwibGltaXRcIixcbiAgICAgICAgc2VydmVyQ29sdW1uOiBcImxpbWl0XCIsXG4gICAgICAgIG9wZXJhdG9yTmFtZTogXCJlcVwiLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IFwiNTAwMFwiLFxuICAgICAgICBkYXRhVHlwZTogXCJzdHJpbmdcIlxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuYXBpQnVsZGVyRGF0YXNldCA9IHZhbHVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2UsXG4gICAgcHVibGljIGNvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzcWxGb3JtYXR0ZXI6IFNxbFBpcGUsXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBBcHBsaWNhdGlvbkNvbnRlbnRTZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXJ2aWNlLmxpc3RDb2x1bW5FbnJpY2htZW50RnVuY3Rpb25zKCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy5rcGlfZW5yaWNobWVudF9uYW1lID0gZGF0YTtcbiAgICB9KVxuICB9XG5cbiAgYWRkRmlsdGVyTWFwaW5nQ29sdW1ucygpIHtcbiAgICBsZXQgb2JqID0geyBcImxvY2FsQ29sdW1uXCI6IFwiXCIsIFwic2VydmVyQ29sdW1uXCI6IFwiXCIsIFwib3BlcmF0b3JOYW1lXCI6IFwiXCIsIFwiZGVmYXVsdFZhbHVlXCI6IFwiXCIsIFwiZGF0YVR5cGVcIjogXCJcIiwgXCJmb3JtYXR0ZXJcIjogXCJcIiB9XG4gICAgdGhpcy5hcGlCdWxkZXJEYXRhc2V0LnF1ZXJ5Q29uZmlnLm1hcGVkRmlsdGVycy5wdXNoKG9iaik7XG5cbiAgfVxuXG4gIGRlbGV0ZUZpbHRlck1hcGluZ0NvbHVtbnMoaSkge1xuICAgIHRoaXMuYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5tYXBlZEZpbHRlcnMuc3BsaWNlKGksIDEpXG5cbiAgfVxuXG4gIHNhdmVDb2x1bW5NYXBpbmcoKSB7XG4gICAgdGhpcy50b2FzdHIuc3VjY2VzcygnTWFwZWQgRmlsdGVyIFN1Y2Nlc3NmdWxseScpO1xuXG4gIH1cblxuXG5cbiAgbW92ZUl0ZW1Gb3JDb2x1bW5zKGluZGV4OiBudW1iZXIsIGRpcmVjdGlvbjogJ3VwJyB8ICdkb3duJyk6IHZvaWQge1xuICAgIC8vIFByZXZlbnQgbW92aW5nIGJleW9uZCBhcnJheSBib3VuZHNcbiAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IHRoaXMuYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5tYXBlZEZpbHRlcnMubGVuZ3RoKSByZXR1cm47XG4gICAgY29uc3QgbmV3UG9zaXRpb24gPSBkaXJlY3Rpb24gPT09ICd1cCcgPyBpbmRleCAtIDEgOiBpbmRleCArIDE7XG4gICAgLy8gUHJldmVudCBtb3ZpbmcgYmV5b25kIGFycmF5IGJvdW5kc1xuICAgIGlmIChuZXdQb3NpdGlvbiA8IDAgfHwgbmV3UG9zaXRpb24gPj0gdGhpcy5hcGlCdWxkZXJEYXRhc2V0LnF1ZXJ5Q29uZmlnLm1hcGVkRmlsdGVycy5sZW5ndGgpIHJldHVybjtcblxuICAgIC8vIE1vdmUgaXRlbVxuICAgIGNvbnN0IGl0ZW1Ub01vdmUgPSB0aGlzLmFwaUJ1bGRlckRhdGFzZXQucXVlcnlDb25maWcubWFwZWRGaWx0ZXJzW2luZGV4XTtcbiAgICB0aGlzLmFwaUJ1bGRlckRhdGFzZXQucXVlcnlDb25maWcubWFwZWRGaWx0ZXJzLnNwbGljZShpbmRleCwgMSk7IC8vIFJlbW92ZSBpdGVtIGZyb20gY3VycmVudCBwb3NpdGlvblxuICAgIHRoaXMuYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5tYXBlZEZpbHRlcnMuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCBpdGVtVG9Nb3ZlKTsgLy8gSW5zZXJ0IGl0ZW0gaW4gbmV3IHBvc2l0aW9uXG4gIH1cblxuXG5cbiAgZm9ybWF0KCk6IGFueSB7XG4gICAgdGhpcy5tYXRjaGVzID0gW107XG4gICAgdGhpcy5kdXBsaWNhdGVNYXRjaGVzID0gW107XG4gICAgdGhpcy5hcmd1bWVudERhdGEgPSBbXTtcbiAgICBsZXQgdmFsOiBhbnk7XG4gICAgbGV0IGZ2YWw6IGFueTtcbiAgICBsZXQgc3BsaXR0ZWRWYWx1ZXNPZlF1ZXJ5OiBhbnk7XG4gICAgLy8gdmFsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVUZXh0YXJlYScpWyd2YWx1ZSddO1xuICAgIHZhbCA9IHRoaXMucXVlcnlTdHJpbmdEYXRhO1xuICAgIGNvbnN0IG5ld1ZhbCA9IHZhbC50cmltKCk7XG4gICAgaWYgKG5ld1ZhbCA9PT0gJycgfHwgbmV3VmFsID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIHRoaXMudG9hc3RyLmVycm9yKCdRdWVyeSBFbXB0eScpO1xuICAgIH0gZWxzZSB7XG5cbiAgICAgIGZ2YWwgPSB0aGlzLnNxbEZvcm1hdHRlci50cmFuc2Zvcm0odmFsKTtcbiAgICAgIHNwbGl0dGVkVmFsdWVzT2ZRdWVyeSA9IGZ2YWwubWF0Y2goLydbXiddKid8XFxTKy9nKSB8fCBbXTtcbiAgICAgIC8vIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlVGV4dGFyZWEnKVsndmFsdWUnXSA9IGZ2YWw7XG4gICAgICB0aGlzLnF1ZXJ5U3RyaW5nRGF0YSA9IGZ2YWw7XG4gICAgICAvLyB0aGlzLnRvYXN0ci5zdWNjZXNzKCdRdWVyeSBGb3JtYXR0ZWQnKTtcbiAgICAgIGNvbnN0IHJlID0gL3soW159XSspfS9nO1xuICAgICAgbGV0IG0gPSBbXTtcbiAgICAgIHdoaWxlIChtID0gcmUuZXhlYyhmdmFsKSkge1xuICAgICAgICB0aGlzLmR1cGxpY2F0ZU1hdGNoZXMucHVzaChtWzFdKTtcbiAgICAgIH1cbiAgICAgIGxldCBsaW1pdF9rZXkgPSBbXTtcbiAgICAgIGxpbWl0X2tleSA9IHNwbGl0dGVkVmFsdWVzT2ZRdWVyeS5maWx0ZXIocyA9PiBzLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2xpbWl0JykpO1xuICAgICAgdGhpcy5tYXRjaGVzID0gdGhpcy5kdXBsaWNhdGVNYXRjaGVzLmZpbHRlcigodiwgaSkgPT4gdGhpcy5kdXBsaWNhdGVNYXRjaGVzLmluZGV4T2YodikgPT09IGkpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm1hdGNoZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGV0IHZhbHVlOiBhbnk7XG4gICAgICAgIGxldCBrZXk6IGFueTtcbiAgICAgICAgbGV0IHRoX2tleTogYW55O1xuICAgICAgICBsZXQga2V5YXJyID0gW107XG4gICAgICAgIHZhbHVlID0gdGhpcy5tYXRjaGVzW2ldO1xuICAgICAgICBrZXlhcnIgPSBzcGxpdHRlZFZhbHVlc09mUXVlcnkuZmlsdGVyKHMgPT4gcy5pbmNsdWRlcygnJFB7JyArIHRoaXMubWF0Y2hlc1tpXSArICd9JykpO1xuICAgICAgICBpZiAoa2V5YXJyLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgIGlmIChrZXlhcnJbMF0uc3BsaXQoJz0nKVswXS5pbmRleE9mKCcuJykgPiAwKSB7XG4gICAgICAgICAgICBrZXkgPSBrZXlhcnJbMF0uc3BsaXQoJz0nKVswXS5zcGxpdCgnLicpWzFdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBrZXkgPSBrZXlhcnJbMF0uc3BsaXQoJz0nKVswXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hcmd1bWVudERhdGEucHVzaChrZXkpXG5cbiAgICAgIH1cbiAgICAgIGlmIChsaW1pdF9rZXkgJiYgbGltaXRfa2V5Lmxlbmd0aCAhPT0gMCkge1xuICAgICAgICB0aGlzLmFyZ3VtZW50RGF0YS5wdXNoKGxpbWl0X2tleVswXS50b0xvd2VyQ2FzZSgpKVxuXG4gICAgICB9XG5cblxuICAgICAgdGhpcy5pc1ZhbGlkYXRlID0gZmFsc2U7XG4gICAgICB0aGlzLmlzTm90VmFsaWRhdGUgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuYXJndW1lbnREYXRhKVxuXG5cblxuICB9XG5cblxuICB2YWxpZGF0ZU5ld1JlcG9ydCgpIHtcbiAgICBjb25zdCBhcmd1bWVudERhdGEgPSBjbG9uZURlZXAodGhpcy5hcmd1bWVudERhdGEpLm1hcChpdGVtID0+IGl0ZW0ucmVwbGFjZSgvLipcXHsoLiopXFx9LiovLCAnJDEnKSk7XG4gICAgY29uc3QgbWFwcGVkRmlsdGVyQ29sdW1ucyA9IHRoaXMuYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5tYXBlZEZpbHRlcnMubWFwKGVsZW1lbnQgPT4gZWxlbWVudC5sb2NhbENvbHVtbik7XG5cbiAgICB0aGlzLmFwaUJ1bGRlckRhdGFzZXQucXVlcnlDb25maWcubWFwZWRGaWx0ZXJzLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICBpZiAoYXJndW1lbnREYXRhLnNvbWUoa2V5ID0+IGVsZW1lbnQubG9jYWxDb2x1bW4gPT0ga2V5KSkge1xuICAgICAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKCdWYWxpZGF0ZSBGb3IgJyArIGVsZW1lbnQubG9jYWxDb2x1bW4pO1xuICAgICAgICB0aGlzLmlzTm90VmFsaWRhdGUgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudG9hc3RyLmluZm8oJ01pc3NpbmcgQWxpYXMnLCBlbGVtZW50LmxvY2FsQ29sdW1uKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGFyZ3VtZW50RGF0YS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBpZiAoIW1hcHBlZEZpbHRlckNvbHVtbnMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICB0aGlzLnRvYXN0ci5pbmZvKCdFeHRyYSBBcmd1bWVudCBEYXRhJywga2V5KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICB9XG5cbiAgbW92ZUl0ZW1Gb3JNZWFzdXJlc0NvbHVtbnMoaW5kZXg6IG51bWJlciwgZGlyZWN0aW9uOiAndXAnIHwgJ2Rvd24nKTogdm9pZCB7XG4gICAgLy8gUHJldmVudCBtb3ZpbmcgYmV5b25kIGFycmF5IGJvdW5kc1xuICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gdGhpcy5hcGlCdWxkZXJEYXRhc2V0LnF1ZXJ5Q29uZmlnLmVucmljaG1lbnRzLmxlbmd0aCkgcmV0dXJuO1xuICAgIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlyZWN0aW9uID09PSAndXAnID8gaW5kZXggLSAxIDogaW5kZXggKyAxO1xuICAgIC8vIFByZXZlbnQgbW92aW5nIGJleW9uZCBhcnJheSBib3VuZHNcbiAgICBpZiAobmV3UG9zaXRpb24gPCAwIHx8IG5ld1Bvc2l0aW9uID49IHRoaXMuYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5lbnJpY2htZW50cy5sZW5ndGgpIHJldHVybjtcblxuICAgIC8vIE1vdmUgaXRlbVxuICAgIGNvbnN0IGl0ZW1Ub01vdmUgPSB0aGlzLmFwaUJ1bGRlckRhdGFzZXQucXVlcnlDb25maWcuZW5yaWNobWVudHNbaW5kZXhdO1xuICAgIHRoaXMuYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5lbnJpY2htZW50cy5zcGxpY2UoaW5kZXgsIDEpOyAvLyBSZW1vdmUgaXRlbSBmcm9tIGN1cnJlbnQgcG9zaXRpb25cbiAgICB0aGlzLmFwaUJ1bGRlckRhdGFzZXQucXVlcnlDb25maWcuZW5yaWNobWVudHMuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCBpdGVtVG9Nb3ZlKTsgLy8gSW5zZXJ0IGl0ZW0gaW4gbmV3IHBvc2l0aW9uXG4gIH1cblxuICBhZGRDb2x1bW5zKCkge1xuICAgIGlmICh0aGlzLmFwaUJ1bGRlckRhdGFzZXQucXVlcnlDb25maWcuZW5yaWNobWVudHMgJiYgdGhpcy5hcGlCdWxkZXJEYXRhc2V0LnF1ZXJ5Q29uZmlnLmVucmljaG1lbnRzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgbGV0IG9iaiA9IHtcbiAgICAgICAgXCJjb2x1bW5OYW1lXCI6IFwiXCIsXG4gICAgICAgIFwiZW5yaWNoRnVuY3Rpb25cIjogXCJcIixcbiAgICAgIH1cbiAgICAgIHRoaXMuYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5lbnJpY2htZW50cy5wdXNoKG9iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5lbnJpY2htZW50cyA9IFtdO1xuICAgICAgbGV0IG9iaiA9IHtcbiAgICAgICAgXCJjb2x1bW5OYW1lXCI6IFwiXCIsXG4gICAgICAgIFwiZW5yaWNoRnVuY3Rpb25cIjogXCJcIixcbiAgICAgIH1cbiAgICAgIHRoaXMuYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5lbnJpY2htZW50cy5wdXNoKG9iaik7XG4gICAgfVxuXG4gIH1cblxuXG4gIGRlbGV0ZUNvbHVtbnMoaSkge1xuICAgIHRoaXMuYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5lbnJpY2htZW50cy5zcGxpY2UoaSwgMSlcbiAgfVxuXG5cbiAgY3JlYXRlRGF0YVNldCgpIHtcbiAgICB0aGlzLmFwaUJ1bGRlckRhdGFzZXQucXVlcnlDb25maWdbJ3RlbXBsYXRlUXVlcnknXSA9IHRoaXMucXVlcnlTdHJpbmdEYXRhO1xuICAgIHRoaXMuZ2V0U3FsUXVlcnlCdWxiZGVyRGF0YVNldC5lbWl0KHRoaXMuYXBpQnVsZGVyRGF0YXNldClcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwibS0yXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgbWItMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMiB3LTEvM1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgbWItMlwiPkVuZCBQb2ludDwvZGl2PlxuICAgICAgICAgICAgPGR4LXRleHQtYm94IFsobmdNb2RlbCldPVwiYXBpQnVsZGVyRGF0YXNldC5hcGlcIj48L2R4LXRleHQtYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm14LTIgdy0xLzNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTJcIj5BcGkgVHlwZTwvZGl2PlxuICAgICAgICAgICAgPGR4LXNlbGVjdC1ib3ggW2RhdGFTb3VyY2VdPVwiWydnZXQnLCdwb3N0J11cIiBbKG5nTW9kZWwpXT1cImFwaUJ1bGRlckRhdGFzZXQuYXBpVHlwZVwiPlxuICAgICAgICAgICAgPC9keC1zZWxlY3QtYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm14LTIgdy0xLzNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTJcIj5EYXRhYmFzZSBOYW1lPC9kaXY+XG4gICAgICAgICAgICA8ZHgtdGV4dC1ib3ggWyhuZ01vZGVsKV09XCJhcGlCdWxkZXJEYXRhc2V0LnF1ZXJ5Q29uZmlnLmRhdGFiYXNlTmFtZVwiPlxuICAgICAgICAgICAgPC9keC10ZXh0LWJveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJteC0yIHctMS8zXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0yXCI+REIgQ29uZmlnPC9kaXY+XG4gICAgICAgICAgICA8ZHgtc2VsZWN0LWJveCBbaXRlbXNdPVwiWydpbXBhbGEnLCdwb3N0Z3JlcycsJ215c3FsJywnYmlncXVlcnknXVwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJhcGlCdWxkZXJEYXRhc2V0LnF1ZXJ5Q29uZmlnLmRiQ29uZmlnXCI+PC9keC1zZWxlY3QtYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtYXV0byBtaW4tdy0wIG15LTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgcHktMiBmb250LWV4dHJhYm9sZCBib3JkZXItYiBiZy1ncmF5LTcwMCB0ZXh0LXdoaXRlIHB4LTJcIj4gRmlsdGVyIE1hcGluZ1xuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInB0LTIgYm9yZGVyLXggYm9yZGVyLWIgXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMiBmbGV4IGp1c3RpZnktYmV0d2VlblwiXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5tYXBlZEZpbHRlcnM7IGxldCBpID0gaW5kZXg7XCI+XG5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0xIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgbWItMlwiPiBTZXJ2ZXIgQ29sdW1uPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBbKG5nTW9kZWwpXT1cIml0ZW0uc2VydmVyQ29sdW1uXCI+PC9keC10ZXh0LWJveD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMSBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTJcIj4gTG9jYWwgQ29sdW1uKGFsaWFzTmFtZSk8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IFsobmdNb2RlbCldPVwiaXRlbS5sb2NhbENvbHVtblwiPjwvZHgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTEgbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0yXCI+IE9wZXJhdG9yPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94IFtzZWFyY2hFbmFibGVkXT1cInRydWVcIiBbaXRlbXNdPVwia3BpX29wZXJhdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS5vcGVyYXRvck5hbWVcIj48L2R4LXNlbGVjdC1ib3g+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTEgbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0yXCI+IERhdGF0eXBlPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94IFtzZWFyY2hFbmFibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cIlsnZGF0ZScsJ3N0cmluZycsJ3RpbWVzdGFtcCcsJ2ludCcsICdkb3VibGUnLCAnYm9vbGVhbiddXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS5kYXRhVHlwZVwiPjwvZHgtc2VsZWN0LWJveD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMSBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTJcIj4gRm9ybWF0dGVyPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBbKG5nTW9kZWwpXT1cIml0ZW0uZm9ybWF0dGVyXCI+PC9keC10ZXh0LWJveD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMSBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTJcIj4gRGVmYXVsdCBWYWx1ZTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggWyhuZ01vZGVsKV09XCJpdGVtLmRlZmF1bHRWYWx1ZVwiPjwvZHgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTEgbXQtOFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImkgIT09IDBcIiBjbGFzcz1cInt7Y29tbW9uU2VydmljZS5idG5fbGlnaHRfc219fSBjdXJzb3ItcG9pbnRlciBteC0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibW92ZUl0ZW1Gb3JDb2x1bW5zKGksICd1cCcpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1hcnJvdy11cFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaSAhPT0gYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5tYXBlZEZpbHRlcnMubGVuZ3RoIC0gMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX2xpZ2h0X3NtfX0gY3Vyc29yLXBvaW50ZXIgbXgtMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vdmVJdGVtRm9yQ29sdW1ucyhpLCAnZG93bicpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1hcnJvdy1kb3duXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0xIG10LTggdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInt7Y29tbW9uU2VydmljZS5idG5fZGFuZ2VyX3NtfX0gY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUZpbHRlck1hcGluZ0NvbHVtbnMoaSlcIj48aSBjbGFzcz1cImZhIGZhLXRyYXNoLW9cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMS8yXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1lbmQgbXktMlwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwie3tjb21tb25TZXJ2aWNlLmJ0bl9zdWNjZXNzX3NtfX0gY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic2F2ZUNvbHVtbk1hcGluZygpXCI+U2F2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgTWFwaW5nPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX3ByaW1hcnlfc219fSBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkRmlsdGVyTWFwaW5nQ29sdW1ucygpXCI+QWRkXG4gICAgICAgICAgICAgICAgICAgICAgICBNYXBpbmc8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLTMgcC00IGJnLXdoaXRlIGJvcmRlciBib3JkZXItZ3JheS0yMDAgcm91bmRlZC1sZyBzaGFkb3ctbWQgZGFyazpiZy1ncmF5LTgwMCBkYXJrOmJvcmRlci1ncmF5LTcwMFwiPlxuICAgICAgICAgICAgPGg2IGNsYXNzPVwibWItMiBmb250LWJvbGQgdHJhY2tpbmctdGlnaHQgdGV4dC1ncmF5LTkwMCBkYXJrOnRleHQtd2hpdGUgYm9yZGVyLWIgcGItM1wiPlxuICAgICAgICAgICAgICAgIENvbmZpZ3VyZSBTUUwgRXhwcmVzc2lvblxuICAgICAgICAgICAgPC9oNj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTUgZm9udC1saWdodCBib3JkZXIgYm9yZGVyLWItMCBib3JkZXItZ3JheS0yMDAgZGFyazpib3JkZXItZ3JheS03MDAgZGFyazpiZy1ncmF5LTkwMFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01IHAtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgaWQ9XCJtZXNzYWdlXCIgcm93cz1cIjIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmxvY2sgcC0yLjUgdy1mdWxsIHRleHQtbGcgdGV4dC1ncmF5LTkwMCBiZy1ncmF5LTUwIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBmb2N1czpyaW5nLWJsdWUtNTAwIGZvY3VzOmJvcmRlci1ibHVlLTUwMCBkYXJrOmJnLWdyYXktNzAwIGRhcms6Ym9yZGVyLWdyYXktNjAwIGRhcms6cGxhY2Vob2xkZXItZ3JheS00MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6Zm9jdXM6cmluZy1ibHVlLTUwMCBkYXJrOmZvY3VzOmJvcmRlci1ibHVlLTUwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIldyaXRlIHlvdXIgU1FMIHF1ZXJ5IGhlcmUuLi5cIiBbKG5nTW9kZWwpXT1cInF1ZXJ5U3RyaW5nRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImV4YW1wbGVUZXh0YXJlYVwiPnt7ICBzcWxTdHJpbmcgfCBzcWwgfX08L3RleHRhcmVhPlxuXG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBuby1tYXJnaW5cIiAqbmdJZj1cInZhbGlkYXRlQXJndW1lbnRFcnJvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXJlZC00MDBcIj5UaGlzIHF1ZXJ5IGlzIG5vdCB2YWxpZDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJmb3JtYXRCdXR0b25TdGF0dXNcIiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvY3VzOm91dGxpbmUtbm9uZSB0ZXh0LXdoaXRlIGJnLXB1cnBsZS03MDAgaG92ZXI6YmctcHVycGxlLTgwMCBmb2N1czpyaW5nLTRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1czpyaW5nLXB1cnBsZS0zMDAgZm9udC1tZWRpdW0gZGFyazpiZy1wdXJwbGUtNjAwIG15LTIgcHgtNSBweS0yLjUgZGFyazpob3ZlcjpiZy1wdXJwbGUtNzAwIGRhcms6Zm9jdXM6cmluZy1wdXJwbGUtOTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZm9ybWF0KClcIj5Gb3JtYXRcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCIhZm9ybWF0QnV0dG9uU3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvY3VzOm91dGxpbmUtbm9uZSB0ZXh0LXdoaXRlIGJnLXllbGxvdy04MDAgaG92ZXI6YmcteWVsbG93LTUwMCBmb2N1czpyaW5nLTRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1czpyaW5nLXllbGxvdy0zMDAgZm9udC1tZWRpdW0gbXItMiBweC01IHB5LTIuNSBteS0yIGRhcms6Zm9jdXM6cmluZy15ZWxsb3ctOTAwXCIgKGNsaWNrKT1cImZvcm1hdCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVmb3JtYXRcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZCBtdC0yXCI+XG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm15LTJcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm0tMyBwLTQgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHNoYWRvdy1tZCBkYXJrOmJnLWdyYXktODAwIGRhcms6Ym9yZGVyLWdyYXktNzAwIFwiPlxuICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cIm1iLTIgZm9udC1ib2xkIHRyYWNraW5nLXRpZ2h0IHRleHQtZ3JheS05MDAgZGFyazp0ZXh0LXdoaXRlIGJvcmRlci1iIHBiLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgRGF0YSBFbnJpY2htZW50XG4gICAgICAgICAgICAgICAgPC9oNj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMSBnYXAtMiB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMiB3LWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYXBpQnVsZGVyRGF0YXNldC5xdWVyeUNvbmZpZy5lbnJpY2htZW50czsgbGV0IGkgPSBpbmRleDtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTEgbWItMiB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgbWItMlwiPiBWYWx1ZSBGaWVsZChhbGlhc05hbWUpPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBbKG5nTW9kZWwpXT1cIml0ZW0uY29sdW1uTmFtZVwiPjwvZHgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTEgbWItMiB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgbWItMlwiPiBFbnJpY2ggVHlwZTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHgtc2VsZWN0LWJveCBbaXRlbXNdPVwiWydCYXNpYycsJ0xvb2t1cCddXCI+PC9keC1zZWxlY3QtYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0xIG1iLTIgdy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTJcIj4gRW5yaWNoIE5hbWU8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR4LXNlbGVjdC1ib3ggW3NlYXJjaEVuYWJsZWRdPVwidHJ1ZVwiIFtpdGVtc109XCJrcGlfZW5yaWNobWVudF9uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS5lbnJpY2hGdW5jdGlvblwiPjwvZHgtc2VsZWN0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMSBtdC04XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaSAhPT0gMFwiIGNsYXNzPVwie3tjb21tb25TZXJ2aWNlLmJ0bl9saWdodF9zbX19IGN1cnNvci1wb2ludGVyIG14LTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtb3ZlSXRlbUZvck1lYXN1cmVzQ29sdW1ucyhpLCAndXAnKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYXJyb3ctdXBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImkgIT09IGFwaUJ1bGRlckRhdGFzZXQucXVlcnlDb25maWcuZW5yaWNobWVudHMubGVuZ3RoIC0gMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX2xpZ2h0X3NtfX0gY3Vyc29yLXBvaW50ZXIgbXgtMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vdmVJdGVtRm9yTWVhc3VyZXNDb2x1bW5zKGksICdkb3duJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWFycm93LWRvd25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTEgbXQtOCB0ZXh0LWNlbnRlclwiPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX2Rhbmdlcl9zbX19IGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVDb2x1bW5zKGkpXCI+PGkgY2xhc3M9XCJmYSBmYS10cmFzaC1vXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZCBtdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX3ByaW1hcnlfbWR9fSBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJhZGRDb2x1bW5zKClcIj5BZGRcbiAgICAgICAgICAgICAgICAgICAgICAgIENvbHVtbnM8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuXG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggdy1mdWxsIGp1c3RpZnktZW5kIG10LTUgYm9yZGVyLXRcIj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwie3tjb21tb25TZXJ2aWNlLmJ0bl9wcmltYXJ5X21kfX0gY3Vyc29yLXBvaW50ZXIgbXgtMSBteS0yXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidmFsaWRhdGVOZXdSZXBvcnQoKVwiIFtkaXNhYmxlZF09XCJpc1ZhbGlkYXRlXCI+XG4gICAgICAgICAgICAgICAgVmFsaWRhdGVcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInt7Y29tbW9uU2VydmljZS5idG5fc3VjY2Vzc19tZH19IGN1cnNvci1wb2ludGVyIG14LTEgbXktMlwiIChjbGljayk9XCJjcmVhdGVEYXRhU2V0KClcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc05vdFZhbGlkYXRlXCI+XG4gICAgICAgICAgICAgICAgU3VibWl0IERhdGFTZXRcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuPC9kaXY+Il19
|