tnx-shared 5.3.425 → 5.3.427

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.
Files changed (30) hide show
  1. package/bundles/tnx-shared.umd.js +61 -28
  2. package/bundles/tnx-shared.umd.js.map +1 -1
  3. package/bundles/tnx-shared.umd.min.js +1 -1
  4. package/bundles/tnx-shared.umd.min.js.map +1 -1
  5. package/classes/base/list-component-base.d.ts.map +1 -1
  6. package/classes/form-schema.d.ts +2 -0
  7. package/classes/form-schema.d.ts.map +1 -1
  8. package/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.d.ts.map +1 -1
  9. package/components/entity-picker/entity-picker-dialog/components/entity-picker-search-form/entity-picker-search-form.component.d.ts.map +1 -1
  10. package/components/entity-picker/entity-picker.component.d.ts +1 -0
  11. package/components/entity-picker/entity-picker.component.d.ts.map +1 -1
  12. package/components/user-picker/models/user-picker-setting.d.ts +2 -0
  13. package/components/user-picker/models/user-picker-setting.d.ts.map +1 -1
  14. package/components/user-picker/user-picker-box/user-picker-box.component.d.ts +4 -1
  15. package/components/user-picker/user-picker-box/user-picker-box.component.d.ts.map +1 -1
  16. package/components/user-picker/user-picker.component.d.ts +1 -0
  17. package/components/user-picker/user-picker.component.d.ts.map +1 -1
  18. package/esm2015/classes/base/list-component-base.js +3 -2
  19. package/esm2015/classes/form-schema.js +2 -1
  20. package/esm2015/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.js +5 -2
  21. package/esm2015/components/entity-picker/entity-picker-dialog/components/entity-picker-search-form/entity-picker-search-form.component.js +4 -3
  22. package/esm2015/components/entity-picker/entity-picker.component.js +9 -1
  23. package/esm2015/components/file-upload/file-upload.component.js +1 -1
  24. package/esm2015/components/user-picker/models/user-picker-setting.js +6 -6
  25. package/esm2015/components/user-picker/user-picker-box/user-picker-box.component.js +11 -3
  26. package/esm2015/components/user-picker/user-picker.component.js +4 -1
  27. package/fesm2015/tnx-shared.js +36 -12
  28. package/fesm2015/tnx-shared.js.map +1 -1
  29. package/package.json +2 -2
  30. package/tnx-shared.metadata.json +1 -1
@@ -32,7 +32,7 @@ export class EntityPickerDataComponent extends DataListBase {
32
32
  this._triggerProcessData();
33
33
  }
34
34
  ngOnInit() {
35
- var _a;
35
+ var _a, _b;
36
36
  this.loadDetailFromQueryParam = true;
37
37
  this.plusUrl = this.control.plusUrl;
38
38
  this.setting.hiddenAuthorizeButton = true;
@@ -56,6 +56,9 @@ export class EntityPickerDataComponent extends DataListBase {
56
56
  if (this.control.baseService instanceof CanBoHoSoService) {
57
57
  this.datasourceFieldFilter = DatasourceFilterCanBo;
58
58
  }
59
+ if ((_b = this.control.datasourceFieldFilter) === null || _b === void 0 ? void 0 : _b.length) {
60
+ this.datasourceFieldFilter = this.control.datasourceFieldFilter;
61
+ }
59
62
  this.control.columns.forEach(column => {
60
63
  if (column.isDisplay) {
61
64
  const newCol = new ColumnSchemaBase({
@@ -242,4 +245,4 @@ EntityPickerDataComponent.propDecorators = {
242
245
  onPickAll: [{ type: Output }],
243
246
  onPickSelected: [{ type: Output }]
244
247
  };
245
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXBpY2tlci1kYXRhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL2VudGl0eS1waWNrZXIvZW50aXR5LXBpY2tlci1kaWFsb2cvY29tcG9uZW50cy9lbnRpdHktcGlja2VyLWRhdGEvZW50aXR5LXBpY2tlci1kYXRhLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSx5QkFBeUIsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRW5KLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNqRixPQUFPLEVBQUUsdUJBQXVCLEVBQW1CLE1BQU0sNkJBQTZCLENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFRM0YsTUFBTSxPQUFPLHlCQUEwQixTQUFRLFlBQVk7SUE4QnZELFlBQ0ks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QUFTLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQzs7YUFDdkM7OztZQWxCaUMsUUFBUTtZQUVqQyxxQkFBcUI7WUFEckIsWUFBWTs7O3dCQW1CaEIsS0FBSzs0QkFDTCxLQUFLOzBCQUNMLEtBQUs7c0JBQ0wsS0FBSztvQ0FDTCxLQUFLOzRCQUlMLEtBQUs7Z0NBTUwsS0FBSztzQkFDTCxLQUFLOzBCQUVMLEtBQUs7NEJBRUwsTUFBTTswQkFDTixNQUFNO3FCQUNOLE1BQU07d0JBQ04sTUFBTTs2QkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XG5pbXBvcnQgeyBDb21wb25lbnRDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2FwcC1jb250ZXh0L2NvbXBvbmVudC1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0YUxpc3RCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2RhdGEtbGlzdC1iYXNlJztcbmltcG9ydCB7IENvbHVtblNjaGVtYUJhc2UsIENydWRMaXN0U2V0dGluZywgRW50aXR5UGlja2VyQ29udHJvbFNjaGVtYSwgSGVpZ2h0VHlwZSwgT3BlcmF0b3IsIFBvcHVwU2l6ZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NsYXNzZXMvZm9ybS1zY2hlbWEnO1xuaW1wb3J0IHsgRmlsdGVyLCBHcmlkSW5mbyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL21vZGVscy9ncmlkLWluZm8nO1xuaW1wb3J0IHsgQ29udHJvbFRyZWVOb2RlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY3J1ZC9jcnVkLWZvcm0vY3J1ZC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZHZhbmNlRGF0YUVudGl0eVBpY2tlciwgU2VhcmNoRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvYWR2YW5jZS1kYXRhJztcbmltcG9ydCB7IGFwcGVuZERlZmF1bHRGaWx0ZXIgfSBmcm9tICcuLy4uLy4uLy4uLy4uLy4uL3V0aWxzL2NvbW1vbic7XG5pbXBvcnQgeyBDYW5Cb0hvU29TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vcHVibGljLWFwaSc7XG5pbXBvcnQgeyBEYXRhc291cmNlRmlsdGVyQ2FuQm8gfSBmcm9tICcuLi8uLi8uLi8uLi91c2VyLXBpY2tlci9tb2RlbHMvdXNlci1waWNrZXItc2V0dGluZyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWVudGl0eS1waWNrZXItZGF0YScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VudGl0eS1waWNrZXItZGF0YS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZW50aXR5LXBpY2tlci1kYXRhLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbQ29tcG9uZW50Q29udGV4dFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEVudGl0eVBpY2tlckRhdGFDb21wb25lbnQgZXh0ZW5kcyBEYXRhTGlzdEJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIHRlbXBsYXRlczogUXVlcnlMaXN0PFRlbXBsYXRlUmVmPGFueT4+O1xuICAgIEBJbnB1dCgpIHBhcmVudFNldHRpbmc6IENydWRMaXN0U2V0dGluZztcbiAgICBASW5wdXQoKSBhZHZhbmNlRGF0YTogQWR2YW5jZURhdGFFbnRpdHlQaWNrZXI7XG4gICAgQElucHV0KCkgY29udHJvbDogRW50aXR5UGlja2VyQ29udHJvbFNjaGVtYTtcbiAgICBASW5wdXQoKSBkYXRhc291cmNlRmllbGRGaWx0ZXIgPSBbXTtcbiAgICBfc2VsZWN0ZWRWYWx1ZTogYW55O1xuICAgIF92YWx1ZTogYW55O1xuXG4gICAgQElucHV0KCkgc2V0IHNlbGVjdGVkVmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoKTtcbiAgICAgICAgdGhpcy5fdHJpZ2dlclByb2Nlc3NEYXRhKCk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgaXNTaW5nbGVTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBmaWx0ZXJzOiBGaWx0ZXJbXTtcblxuICAgIEBJbnB1dCgpIGN1cnJlbnROb2RlOiBDb250cm9sVHJlZU5vZGU7IC8vIEN1cnJlbnQgbm9kZSBjaG8gbMO6YyBjb21wb25lbnQgxJFhbmcg4bufIHRyb25nIGZvcm1cblxuICAgIEBPdXRwdXQoKSBvbkNvbnRlbnRJbml0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25Sb3dTZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvblBpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvblBpY2tBbGw6IEV2ZW50RW1pdHRlcjxhbnlbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9uUGlja1NlbGVjdGVkOiBFdmVudEVtaXR0ZXI8YW55W10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgc2hvd0Zvcm1BZHZhbmNlZFNlYXJjaCA9IGZhbHNlO1xuICAgIHBvcHVwU2l6ZVNlYXJjaEZvcm0gPSBuZXcgUG9wdXBTaXplKHsgd2lkdGg6IDEwMDAsIGhlaWdodDogNzAwIH0pO1xuICAgIHNlYXJjaERhdGE6IFNlYXJjaERhdGFNb2RlbDtcbiAgICBsc3REYXRhTm90RXhpc3QgPSBbXTtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHVibGljIF9kZXZpY2VEZXRlY3RvclNlcnZpY2U6IERldmljZURldGVjdG9yU2VydmljZSxcbiAgICAgICAgcHVibGljIGRvbTogRG9tU2FuaXRpemVyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKF9pbmplY3Rvcik7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMubG9hZERldGFpbEZyb21RdWVyeVBhcmFtID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wbHVzVXJsID0gdGhpcy5jb250cm9sLnBsdXNVcmw7XG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5BdXRob3JpemVCdXR0b24gPSB0cnVlO1xuICAgICAgICB0aGlzLnNldHRpbmcuYmFzZVNlcnZpY2UgPSB0aGlzLmNvbnRyb2wuYmFzZVNlcnZpY2U7XG4gICAgICAgIHRoaXMuc2V0dGluZy5wYWdlU2V0dGluZy5wYWdlU2l6ZSA9IHRoaXMuY29udHJvbC5wYWdlU2l6ZSA/PyAzMDtcbiAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlbkNoZWNrYm94ID0gIXRoaXMuY29udHJvbC5tdWx0aXBsZTtcbiAgICAgICAgdGhpcy5zZXR0aW5nLmhlaWdodFR5cGUgPSBIZWlnaHRUeXBlLmN1c3RvbTtcbiAgICAgICAgdGhpcy5zZXR0aW5nLnNob3dFZGl0TGluayA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNldHRpbmcuc2V0dGluZ0tleSA9ICdlbnRpdHlQaWNrZXJEYXRhJztcbiAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlbkFkdmFuY2VTZWFyY2ggPSB0aGlzLnBhcmVudFNldHRpbmcuaGlkZGVuQWR2YW5jZVNlYXJjaDtcbiAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlblNldHRpbmdXb3JrZmxvdyA9IHRydWU7XG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5TZXR0aW5nUGVybWlzc2lvbiA9IHRydWU7XG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5Xb3JrZmxvd0NvbHVtbiA9IHRydWU7XG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5Xb3JrZmxvd0hpc3RvcnkgPSB0cnVlO1xuICAgICAgICB0aGlzLnNldHRpbmcudGl0bGUgPSAnRGFuaCBzw6FjaCBjw6FjIG3hu6VjIGNoxrBhIGNo4buNbic7XG4gICAgICAgIC8vIHRoaXMuc2V0dGluZy5jb2xzID0gWy4uLnRoaXMucGFyZW50U2V0dGluZy5jb2xzLm1hcChwID0+ICh7IC4uLnAgfSkpXTtcbiAgICAgICAgdGhpcy5zZXR0aW5nLmNvbHVtblNldHRpbmcgPSB0aGlzLnBhcmVudFNldHRpbmcuY29sdW1uU2V0dGluZztcbiAgICAgICAgdGhpcy5zZXR0aW5nLmZpZWxkU2VhcmNoVGV4dCA9IHRoaXMucGFyZW50U2V0dGluZy5maWVsZFNlYXJjaFRleHQ7XG4gICAgICAgIHRoaXMuc2V0dGluZy5tdWx0aXBsZUNoZWNrV2hlbkNsaWNrUm93ID0gIXRoaXMuaXNTaW5nbGVTZWxlY3Rpb247XG4gICAgICAgIC8vIFRvZG86IEhpZXVORFxuICAgICAgICBpZiAodGhpcy5jb250cm9sLmJhc2VTZXJ2aWNlIGluc3RhbmNlb2YgQ2FuQm9Ib1NvU2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5kYXRhc291cmNlRmllbGRGaWx0ZXIgPSBEYXRhc291cmNlRmlsdGVyQ2FuQm87XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250cm9sLmNvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgICAgICAgICAgaWYgKGNvbHVtbi5pc0Rpc3BsYXkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdDb2wgPSBuZXcgQ29sdW1uU2NoZW1hQmFzZSh7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBjb2x1bW4uY29kZSxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGU6IGNvbHVtbi5tdWx0aXBsZSxcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6IGNvbHVtbi5vcGVyYXRvcixcbiAgICAgICAgICAgICAgICAgICAgaXNBcnJheUZpZWxkOiBjb2x1bW4uaXNBcnJheUZpZWxkLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGNvbHVtbi5sYWJlbCksXG4gICAgICAgICAgICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGRhdGFUeXBlOiBjb2x1bW4uZGF0YVR5cGUsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjb2x1bW4ud2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIG1kV2lkdGg6IGNvbHVtbi5tZFdpZHRoLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0QWxpZ246IGNvbHVtbi50ZXh0QWxpZ24sXG4gICAgICAgICAgICAgICAgICAgIGJhc2VTZXJ2aWNlOiBjb2x1bW4uYmFzZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlRmllbGQ6IGNvbHVtbi52YWx1ZUZpZWxkLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5RmllbGQ6IGNvbHVtbi5kaXNwbGF5RmllbGQsXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkUGx1czogY29sdW1uLmZpZWxkUGx1cyxcbiAgICAgICAgICAgICAgICAgICAgc29ydEZpZWxkOiBjb2x1bW4uc29ydEZpZWxkLFxuICAgICAgICAgICAgICAgICAgICBzb3J0RGlyOiBjb2x1bW4uc29ydERpcixcbiAgICAgICAgICAgICAgICAgICAgc29ydDogY29sdW1uLnNvcnQsXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkRmlsdGVyOiBjb2x1bW4uZmllbGRGaWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgIGFsbG93RmlsdGVyOiBjb2x1bW4uYWxsb3dGaWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgIG1vZGlmeUZpbHRlcjogY29sdW1uLm1vZGlmeUZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEZpbHRlcnM6IGNvbHVtbi5kZWZhdWx0RmlsdGVycyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGVGaWx0ZXI6IGNvbHVtbi50ZW1wbGF0ZUZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgZnVuY0dldExhYmVsOiBjb2x1bW4uZnVuY0dldExhYmVsLFxuICAgICAgICAgICAgICAgICAgICBmdW5jU2V0VmFsdWVSb3c6IGNvbHVtbi5mdW5jU2V0VmFsdWVSb3csXG4gICAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2U6IGNvbHVtbi5kYXRhU291cmNlLFxuICAgICAgICAgICAgICAgICAgICBncm91cENvZGU6IGNvbHVtbi5ncm91cENvZGUsXG4gICAgICAgICAgICAgICAgICAgIGlzT3ZlcnJpZGVGaWx0ZXI6IGNvbHVtbi5pc092ZXJyaWRlRmlsdGVyLFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogY29sdW1uLm9yZGVyLFxuICAgICAgICAgICAgICAgICAgICBpc1RyZWU6IGNvbHVtbi5pc1RyZWUsXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkVHJlZTogY29sdW1uLmZpZWxkVHJlZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVQYXJlbnRSb290OiBjb2x1bW4udmFsdWVQYXJlbnRSb290LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChjb2x1bW4uZGF0YVR5cGUgPT0gJ2N1c3RvbScpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3Q29sLmRhdGFUeXBlID0gY29sdW1uLmNvZGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZy5jb2xzLnB1c2gobmV3Q29sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUoKSB7XG4gICAgICAgIGlmICh0aGlzLl9zZWxlY3RlZFZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnRyb2wubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX3NlbGVjdGVkVmFsdWUubWFwKGl0ZW0gPT4gaXRlbVt0aGlzLmNvbnRyb2wudmFsdWVGaWVsZF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9zZWxlY3RlZFZhbHVlW3RoaXMuY29udHJvbC52YWx1ZUZpZWxkXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZVJvd1NlbGVjdChldmVudCkge1xuICAgICAgICB0aGlzLm9uUm93U2VsZWN0LmVtaXQoZXZlbnQuZGF0YSk7XG4gICAgfVxuXG4gICAgcGlja0VudGl0eShkYXRhKSB7XG4gICAgICAgIHRoaXMub25QaWNrLmVtaXQoZGF0YSk7XG4gICAgfVxuXG4gICAgYXN5bmMgcGlja0FsbCgpIHtcbiAgICAgICAgY29uc3QgbHN0RGF0YSA9IChhd2FpdCB0aGlzLnNldHRpbmcuYmFzZVNlcnZpY2UuZ2V0RGF0YUN1c3RvbVJvdXRlKHRoaXMucGx1c1VybCwgdGhpcy5jdXJyZW50R3JpZEluZm8uZmlsdGVycywgdGhpcy5jb250cm9sLmZpZWxkc1BpY2tlZCA/PyB0aGlzLmNvbnRyb2wudmFsdWVGaWVsZCwgdGhpcy5jdXJyZW50R3JpZEluZm8uc29ydHMsIC0xKSkuZGF0YSA/PyBbXTtcbiAgICAgICAgaWYgKGxzdERhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLm9uUGlja0FsbC5lbWl0KGxzdERhdGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcGlja1NlbGVjdGVkKGRhdGEpIHtcbiAgICAgICAgdGhpcy5vblBpY2tTZWxlY3RlZC5lbWl0KGRhdGEpO1xuICAgIH1cblxuICAgIGFzeW5jIG1vZGlmeUdyaWRJbmZvKGdyaWRJbmZvOiBHcmlkSW5mbykge1xuICAgICAgICBncmlkSW5mby5maWVsZHMgPSB0aGlzLmFkdmFuY2VEYXRhLmZpZWxkcztcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5tdWx0aXBsZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3ZhbHVlICYmIHRoaXMuX3ZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBncmlkSW5mby5maWx0ZXJzLnB1c2godGhpcy5uZXdGaWx0ZXIodGhpcy5jb250cm9sLnZhbHVlRmllbGQsIE9wZXJhdG9yLm5vdEluLCB0aGlzLl92YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5fdmFsdWVcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mICh0aGlzLl92YWx1ZSkgPT0gJ29iamVjdCcpXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5fdmFsdWVbdGhpcy5jb250cm9sLnZhbHVlRmllbGQgPz8gJ2lkJ107XG4gICAgICAgICAgICAgICAgZ3JpZEluZm8uZmlsdGVycy5wdXNoKHRoaXMubmV3RmlsdGVyKHRoaXMuY29udHJvbC52YWx1ZUZpZWxkLCBPcGVyYXRvci5ub3RFcXVhbCwgdmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBhd2FpdCBhcHBlbmREZWZhdWx0RmlsdGVyKGdyaWRJbmZvLmZpbHRlcnMsIHRoaXMuY29udHJvbC5kZWZhdWx0RmlsdGVycyk7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wubW9kaWZ5RmlsdGVyKSB7XG4gICAgICAgICAgICBjb25zdCBhbGxvdyA9IGF3YWl0IHRoaXMuY29udHJvbC5tb2RpZnlGaWx0ZXIoZ3JpZEluZm8uZmlsdGVycywgdGhpcywgdGhpcy5jdXJyZW50Tm9kZSk7XG4gICAgICAgICAgICBpZiAoYWxsb3cgPT09IGZhbHNlKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5maWx0ZXJXaGlsZVByb2Nlc3MpIHtcbiAgICAgICAgICAgIGF3YWl0IGFwcGVuZERlZmF1bHRGaWx0ZXIoZ3JpZEluZm8uZmlsdGVycywgdGhpcy5jb250cm9sLmZpbHRlcldoaWxlUHJvY2Vzcyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgKHRoaXMuc2V0dGluZy5jb2x1bW5TZXR0aW5nLnNvcnRGaWVsZCkge1xuICAgICAgICAvLyAgICAgZ3JpZEluZm8uc29ydHMucHVzaCg8U29ydD57XG4gICAgICAgIC8vICAgICAgICAgZmllbGQ6IHRoaXMuc2V0dGluZy5jb2x1bW5TZXR0aW5nLnNvcnRGaWVsZCxcbiAgICAgICAgLy8gICAgICAgICBkaXI6IHRoaXMuc2V0dGluZy5jb2x1bW5TZXR0aW5nLnNvcnREaXIgPyAxIDogLTFcbiAgICAgICAgLy8gICAgIH0pO1xuICAgICAgICAvLyB9XG4gICAgICAgIGlmICh0aGlzLnNlYXJjaERhdGEgJiYgQXJyYXkuaXNBcnJheSh0aGlzLnNlYXJjaERhdGEubHN0RGF0YSkpIHtcbiAgICAgICAgICAgIGdyaWRJbmZvLmZpbHRlcnMucHVzaCh0aGlzLm5ld0ZpbHRlcih0aGlzLnNlYXJjaERhdGEuZmllbGRGaWx0ZXIsIE9wZXJhdG9yLmluLCB0aGlzLnNlYXJjaERhdGEubHN0RGF0YSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgYmVmb3JlUmVuZGVyRGF0YVNvdXJjZShkYXRhKSB7XG4gICAgICAgIGRhdGEuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGl0ZW0uX2Ryb3Bkb3dudmFsdWUgPSB0aGlzLmNvbnRyb2wudmFsdWVGaWVsZDtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wuYmVmb3JlUmVuZGVyRGF0YVNvdXJjZVVuUGlja2VkKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNvbnRyb2wuYmVmb3JlUmVuZGVyRGF0YVNvdXJjZVVuUGlja2VkKGRhdGEsIHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cblxuICAgIGFzeW5jIGFmdGVyR2V0RGF0YSgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5hZnRlckdldERhdGFVblBpY2tlZCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5jb250cm9sLmFmdGVyR2V0RGF0YVVuUGlja2VkKHRoaXMubW9kZWwuZGF0YVNvdXJjZSwgdGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoRGF0YSAmJiB0aGlzLnNob3dGb3JtQWR2YW5jZWRTZWFyY2hcbiAgICAgICAgICAgICYmIHRoaXMubW9kZWwuZGF0YVNvdXJjZS5sZW5ndGggIT0gdGhpcy5zZWFyY2hEYXRhLmxzdERhdGEubGVuZ3RoXG4gICAgICAgICAgICAmJiB0aGlzLm1vZGVsLnRvdGFsIDwgdGhpcy5zZWFyY2hEYXRhLmxzdERhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJDaGVja0V4aXN0ID0gW3RoaXMubmV3RmlsdGVyKHRoaXMuc2VhcmNoRGF0YS5maWVsZEZpbHRlciwgT3BlcmF0b3IuaW4sIHRoaXMuc2VhcmNoRGF0YS5sc3REYXRhKV07XG4gICAgICAgICAgICBjb25zdCBsc3REYXRhQ2hlY2tFeGlzdCA9IChhd2FpdCB0aGlzLnNldHRpbmcuYmFzZVNlcnZpY2UuZ2V0QWxsV2l0aElnbm9yZShmaWx0ZXJDaGVja0V4aXN0LCB0aGlzLnNlYXJjaERhdGEuZmllbGRGaWx0ZXIpKS5kYXRhO1xuXG4gICAgICAgICAgICB0aGlzLmxzdERhdGFOb3RFeGlzdCA9IHRoaXMuc2VhcmNoRGF0YS5sc3REYXRhLmZpbHRlcihwID0+ICFsc3REYXRhQ2hlY2tFeGlzdC5zb21lKGMgPT4gY1t0aGlzLnNlYXJjaERhdGEuZmllbGRGaWx0ZXJdID09IHApKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0Zvcm1BZHZhbmNlZFNlYXJjaCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2FuY2VsKCkge1xuICAgIH1cblxuICAgIG9uVW5zZWxlY3RQaWNrZXJVc2VyKCRldmVudCkge1xuICAgIH1cblxuICAgIG9uU2VsZWN0UGlja2VyVXNlcigkZXZlbnQpIHtcbiAgICB9XG5cbiAgICBvblRvcGJhclNlYXJjaENsaWNrKCkge1xuICAgIH1cblxuICAgIGNsZWFyRmlsdGVyKGV2dCkge1xuICAgIH1cblxuICAgIGhhbmRsZUFkdmFuc2VhcmNoKCkge1xuICAgICAgICB0aGlzLnNob3dGb3JtQWR2YW5jZWRTZWFyY2ggPSB0cnVlO1xuICAgIH1cbiAgICBoYW5kbGVTZWFyY2gobW9kZWwpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hEYXRhID0gbW9kZWw7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJQcm9jZXNzRGF0YSgpO1xuICAgIH1cbn1cblxuIl19
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXBpY2tlci1kYXRhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL2VudGl0eS1waWNrZXIvZW50aXR5LXBpY2tlci1kaWFsb2cvY29tcG9uZW50cy9lbnRpdHktcGlja2VyLWRhdGEvZW50aXR5LXBpY2tlci1kYXRhLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSx5QkFBeUIsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRW5KLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNqRixPQUFPLEVBQUUsdUJBQXVCLEVBQW1CLE1BQU0sNkJBQTZCLENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFRM0YsTUFBTSxPQUFPLHlCQUEwQixTQUFRLFlBQVk7SUE4QnZELFlBQ0ks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LEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7OztZQXRPSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMscTRHQUFrRDtnQkFFbEQsU0FBUyxFQUFFLENBQUMsdUJBQXVCLENBQUM7O2FBQ3ZDOzs7WUFsQmlDLFFBQVE7WUFFakMscUJBQXFCO1lBRHJCLFlBQVk7Ozt3QkFtQmhCLEtBQUs7NEJBQ0wsS0FBSzswQkFDTCxLQUFLO3NCQUNMLEtBQUs7b0NBQ0wsS0FBSzs0QkFJTCxLQUFLO2dDQU1MLEtBQUs7c0JBQ0wsS0FBSzswQkFFTCxLQUFLOzRCQUVMLE1BQU07MEJBQ04sTUFBTTtxQkFDTixNQUFNO3dCQUNOLE1BQU07NkJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IERldmljZURldGVjdG9yU2VydmljZSB9IGZyb20gJ25neC1kZXZpY2UtZGV0ZWN0b3InO1xuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9hcHAtY29udGV4dC9jb21wb25lbnQtY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFMaXN0QmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NsYXNzZXMvYmFzZS9kYXRhLWxpc3QtYmFzZSc7XG5pbXBvcnQgeyBDb2x1bW5TY2hlbWFCYXNlLCBDcnVkTGlzdFNldHRpbmcsIEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWEsIEhlaWdodFR5cGUsIE9wZXJhdG9yLCBQb3B1cFNpemUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcbmltcG9ydCB7IEZpbHRlciwgR3JpZEluZm8gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9tb2RlbHMvZ3JpZC1pbmZvJztcbmltcG9ydCB7IENvbnRyb2xUcmVlTm9kZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NydWQvY3J1ZC1mb3JtL2NydWQtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWR2YW5jZURhdGFFbnRpdHlQaWNrZXIsIFNlYXJjaERhdGFNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVsL2FkdmFuY2UtZGF0YSc7XG5pbXBvcnQgeyBhcHBlbmREZWZhdWx0RmlsdGVyIH0gZnJvbSAnLi8uLi8uLi8uLi8uLi8uLi91dGlscy9jb21tb24nO1xuaW1wb3J0IHsgQ2FuQm9Ib1NvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgRGF0YXNvdXJjZUZpbHRlckNhbkJvIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXNlci1waWNrZXIvbW9kZWxzL3VzZXItcGlja2VyLXNldHRpbmcnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1lbnRpdHktcGlja2VyLWRhdGEnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lbnRpdHktcGlja2VyLWRhdGEuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2VudGl0eS1waWNrZXItZGF0YS5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW0NvbXBvbmVudENvbnRleHRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBFbnRpdHlQaWNrZXJEYXRhQ29tcG9uZW50IGV4dGVuZHMgRGF0YUxpc3RCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxUZW1wbGF0ZVJlZjxhbnk+PjtcbiAgICBASW5wdXQoKSBwYXJlbnRTZXR0aW5nOiBDcnVkTGlzdFNldHRpbmc7XG4gICAgQElucHV0KCkgYWR2YW5jZURhdGE6IEFkdmFuY2VEYXRhRW50aXR5UGlja2VyO1xuICAgIEBJbnB1dCgpIGNvbnRyb2w6IEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWE7XG4gICAgQElucHV0KCkgZGF0YXNvdXJjZUZpZWxkRmlsdGVyID0gW107XG4gICAgX3NlbGVjdGVkVmFsdWU6IGFueTtcbiAgICBfdmFsdWU6IGFueTtcblxuICAgIEBJbnB1dCgpIHNldCBzZWxlY3RlZFZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldFZhbHVlKCk7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJQcm9jZXNzRGF0YSgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGlzU2luZ2xlU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgQElucHV0KCkgZmlsdGVyczogRmlsdGVyW107XG5cbiAgICBASW5wdXQoKSBjdXJyZW50Tm9kZTogQ29udHJvbFRyZWVOb2RlOyAvLyBDdXJyZW50IG5vZGUgY2hvIGzDumMgY29tcG9uZW50IMSRYW5nIOG7nyB0cm9uZyBmb3JtXG5cbiAgICBAT3V0cHV0KCkgb25Db250ZW50SW5pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9uUm93U2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25QaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25QaWNrQWxsOiBFdmVudEVtaXR0ZXI8YW55W10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvblBpY2tTZWxlY3RlZDogRXZlbnRFbWl0dGVyPGFueVtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHNob3dGb3JtQWR2YW5jZWRTZWFyY2ggPSBmYWxzZTtcbiAgICBwb3B1cFNpemVTZWFyY2hGb3JtID0gbmV3IFBvcHVwU2l6ZSh7IHdpZHRoOiAxMDAwLCBoZWlnaHQ6IDcwMCB9KTtcbiAgICBzZWFyY2hEYXRhOiBTZWFyY2hEYXRhTW9kZWw7XG4gICAgbHN0RGF0YU5vdEV4aXN0ID0gW107XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHB1YmxpYyBfZGV2aWNlRGV0ZWN0b3JTZXJ2aWNlOiBEZXZpY2VEZXRlY3RvclNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBkb206IERvbVNhbml0aXplclxuICAgICkge1xuICAgICAgICBzdXBlcihfaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmxvYWREZXRhaWxGcm9tUXVlcnlQYXJhbSA9IHRydWU7XG4gICAgICAgIHRoaXMucGx1c1VybCA9IHRoaXMuY29udHJvbC5wbHVzVXJsO1xuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuQXV0aG9yaXplQnV0dG9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZXR0aW5nLmJhc2VTZXJ2aWNlID0gdGhpcy5jb250cm9sLmJhc2VTZXJ2aWNlO1xuICAgICAgICB0aGlzLnNldHRpbmcucGFnZVNldHRpbmcucGFnZVNpemUgPSB0aGlzLmNvbnRyb2wucGFnZVNpemUgPz8gMzA7XG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5DaGVja2JveCA9ICF0aGlzLmNvbnRyb2wubXVsdGlwbGU7XG4gICAgICAgIHRoaXMuc2V0dGluZy5oZWlnaHRUeXBlID0gSGVpZ2h0VHlwZS5jdXN0b207XG4gICAgICAgIHRoaXMuc2V0dGluZy5zaG93RWRpdExpbmsgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZXR0aW5nLnNldHRpbmdLZXkgPSAnZW50aXR5UGlja2VyRGF0YSc7XG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5BZHZhbmNlU2VhcmNoID0gdGhpcy5wYXJlbnRTZXR0aW5nLmhpZGRlbkFkdmFuY2VTZWFyY2g7XG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5TZXR0aW5nV29ya2Zsb3cgPSB0cnVlO1xuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuU2V0dGluZ1Blcm1pc3Npb24gPSB0cnVlO1xuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuV29ya2Zsb3dDb2x1bW4gPSB0cnVlO1xuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuV29ya2Zsb3dIaXN0b3J5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZXR0aW5nLnRpdGxlID0gJ0Rhbmggc8OhY2ggY8OhYyBt4bulYyBjaMawYSBjaOG7jW4nO1xuICAgICAgICAvLyB0aGlzLnNldHRpbmcuY29scyA9IFsuLi50aGlzLnBhcmVudFNldHRpbmcuY29scy5tYXAocCA9PiAoeyAuLi5wIH0pKV07XG4gICAgICAgIHRoaXMuc2V0dGluZy5jb2x1bW5TZXR0aW5nID0gdGhpcy5wYXJlbnRTZXR0aW5nLmNvbHVtblNldHRpbmc7XG4gICAgICAgIHRoaXMuc2V0dGluZy5maWVsZFNlYXJjaFRleHQgPSB0aGlzLnBhcmVudFNldHRpbmcuZmllbGRTZWFyY2hUZXh0O1xuICAgICAgICB0aGlzLnNldHRpbmcubXVsdGlwbGVDaGVja1doZW5DbGlja1JvdyA9ICF0aGlzLmlzU2luZ2xlU2VsZWN0aW9uO1xuICAgICAgICAvLyBUb2RvOiBIaWV1TkRcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5iYXNlU2VydmljZSBpbnN0YW5jZW9mIENhbkJvSG9Tb1NlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YXNvdXJjZUZpZWxkRmlsdGVyID0gRGF0YXNvdXJjZUZpbHRlckNhbkJvO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wuZGF0YXNvdXJjZUZpZWxkRmlsdGVyPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YXNvdXJjZUZpZWxkRmlsdGVyID0gdGhpcy5jb250cm9sLmRhdGFzb3VyY2VGaWVsZEZpbHRlcjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbnRyb2wuY29sdW1ucy5mb3JFYWNoKGNvbHVtbiA9PiB7XG4gICAgICAgICAgICBpZiAoY29sdW1uLmlzRGlzcGxheSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0NvbCA9IG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IGNvbHVtbi5jb2RlLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZTogY29sdW1uLm11bHRpcGxlLFxuICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcjogY29sdW1uLm9wZXJhdG9yLFxuICAgICAgICAgICAgICAgICAgICBpc0FycmF5RmllbGQ6IGNvbHVtbi5pc0FycmF5RmllbGQsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoY29sdW1uLmxhYmVsKSxcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU6IGNvbHVtbi5kYXRhVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNvbHVtbi53aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgbWRXaWR0aDogY29sdW1uLm1kV2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIHRleHRBbGlnbjogY29sdW1uLnRleHRBbGlnbixcbiAgICAgICAgICAgICAgICAgICAgYmFzZVNlcnZpY2U6IGNvbHVtbi5iYXNlU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVGaWVsZDogY29sdW1uLnZhbHVlRmllbGQsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlGaWVsZDogY29sdW1uLmRpc3BsYXlGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgZmllbGRQbHVzOiBjb2x1bW4uZmllbGRQbHVzLFxuICAgICAgICAgICAgICAgICAgICBzb3J0RmllbGQ6IGNvbHVtbi5zb3J0RmllbGQsXG4gICAgICAgICAgICAgICAgICAgIHNvcnREaXI6IGNvbHVtbi5zb3J0RGlyLFxuICAgICAgICAgICAgICAgICAgICBzb3J0OiBjb2x1bW4uc29ydCxcbiAgICAgICAgICAgICAgICAgICAgZmllbGRGaWx0ZXI6IGNvbHVtbi5maWVsZEZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dGaWx0ZXI6IGNvbHVtbi5hbGxvd0ZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgbW9kaWZ5RmlsdGVyOiBjb2x1bW4ubW9kaWZ5RmlsdGVyLFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0RmlsdGVyczogY29sdW1uLmRlZmF1bHRGaWx0ZXJzLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZUZpbHRlcjogY29sdW1uLnRlbXBsYXRlRmlsdGVyLFxuICAgICAgICAgICAgICAgICAgICBmdW5jR2V0TGFiZWw6IGNvbHVtbi5mdW5jR2V0TGFiZWwsXG4gICAgICAgICAgICAgICAgICAgIGZ1bmNTZXRWYWx1ZVJvdzogY29sdW1uLmZ1bmNTZXRWYWx1ZVJvdyxcbiAgICAgICAgICAgICAgICAgICAgZGF0YVNvdXJjZTogY29sdW1uLmRhdGFTb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwQ29kZTogY29sdW1uLmdyb3VwQ29kZSxcbiAgICAgICAgICAgICAgICAgICAgaXNPdmVycmlkZUZpbHRlcjogY29sdW1uLmlzT3ZlcnJpZGVGaWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiBjb2x1bW4ub3JkZXIsXG4gICAgICAgICAgICAgICAgICAgIGlzVHJlZTogY29sdW1uLmlzVHJlZSxcbiAgICAgICAgICAgICAgICAgICAgZmllbGRUcmVlOiBjb2x1bW4uZmllbGRUcmVlLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZVBhcmVudFJvb3Q6IGNvbHVtbi52YWx1ZVBhcmVudFJvb3QsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKGNvbHVtbi5kYXRhVHlwZSA9PSAnY3VzdG9tJykge1xuICAgICAgICAgICAgICAgICAgICBuZXdDb2wuZGF0YVR5cGUgPSBjb2x1bW4uY29kZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zZXR0aW5nLmNvbHMucHVzaChuZXdDb2wpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB9XG5cbiAgICBzZXRWYWx1ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkVmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29udHJvbC5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fc2VsZWN0ZWRWYWx1ZS5tYXAoaXRlbSA9PiBpdGVtW3RoaXMuY29udHJvbC52YWx1ZUZpZWxkXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX3NlbGVjdGVkVmFsdWVbdGhpcy5jb250cm9sLnZhbHVlRmllbGRdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlUm93U2VsZWN0KGV2ZW50KSB7XG4gICAgICAgIHRoaXMub25Sb3dTZWxlY3QuZW1pdChldmVudC5kYXRhKTtcbiAgICB9XG5cbiAgICBwaWNrRW50aXR5KGRhdGEpIHtcbiAgICAgICAgdGhpcy5vblBpY2suZW1pdChkYXRhKTtcbiAgICB9XG5cbiAgICBhc3luYyBwaWNrQWxsKCkge1xuICAgICAgICBjb25zdCBsc3REYXRhID0gKGF3YWl0IHRoaXMuc2V0dGluZy5iYXNlU2VydmljZS5nZXREYXRhQ3VzdG9tUm91dGUodGhpcy5wbHVzVXJsLCB0aGlzLmN1cnJlbnRHcmlkSW5mby5maWx0ZXJzLCB0aGlzLmNvbnRyb2wuZmllbGRzUGlja2VkID8/IHRoaXMuY29udHJvbC52YWx1ZUZpZWxkLCB0aGlzLmN1cnJlbnRHcmlkSW5mby5zb3J0cywgLTEpKS5kYXRhID8/IFtdO1xuICAgICAgICBpZiAobHN0RGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMub25QaWNrQWxsLmVtaXQobHN0RGF0YSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwaWNrU2VsZWN0ZWQoZGF0YSkge1xuICAgICAgICB0aGlzLm9uUGlja1NlbGVjdGVkLmVtaXQoZGF0YSk7XG4gICAgfVxuXG4gICAgYXN5bmMgbW9kaWZ5R3JpZEluZm8oZ3JpZEluZm86IEdyaWRJbmZvKSB7XG4gICAgICAgIGdyaWRJbmZvLmZpZWxkcyA9IHRoaXMuYWR2YW5jZURhdGEuZmllbGRzO1xuICAgICAgICBpZiAodGhpcy5jb250cm9sLm11bHRpcGxlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fdmFsdWUgJiYgdGhpcy5fdmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGdyaWRJbmZvLmZpbHRlcnMucHVzaCh0aGlzLm5ld0ZpbHRlcih0aGlzLmNvbnRyb2wudmFsdWVGaWVsZCwgT3BlcmF0b3Iubm90SW4sIHRoaXMuX3ZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fdmFsdWUpIHtcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLl92YWx1ZVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgKHRoaXMuX3ZhbHVlKSA9PSAnb2JqZWN0JylcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB0aGlzLl92YWx1ZVt0aGlzLmNvbnRyb2wudmFsdWVGaWVsZCA/PyAnaWQnXTtcbiAgICAgICAgICAgICAgICBncmlkSW5mby5maWx0ZXJzLnB1c2godGhpcy5uZXdGaWx0ZXIodGhpcy5jb250cm9sLnZhbHVlRmllbGQsIE9wZXJhdG9yLm5vdEVxdWFsLCB2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGF3YWl0IGFwcGVuZERlZmF1bHRGaWx0ZXIoZ3JpZEluZm8uZmlsdGVycywgdGhpcy5jb250cm9sLmRlZmF1bHRGaWx0ZXJzKTtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5tb2RpZnlGaWx0ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGFsbG93ID0gYXdhaXQgdGhpcy5jb250cm9sLm1vZGlmeUZpbHRlcihncmlkSW5mby5maWx0ZXJzLCB0aGlzLCB0aGlzLmN1cnJlbnROb2RlKTtcbiAgICAgICAgICAgIGlmIChhbGxvdyA9PT0gZmFsc2UpIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb250cm9sLmZpbHRlcldoaWxlUHJvY2Vzcykge1xuICAgICAgICAgICAgYXdhaXQgYXBwZW5kRGVmYXVsdEZpbHRlcihncmlkSW5mby5maWx0ZXJzLCB0aGlzLmNvbnRyb2wuZmlsdGVyV2hpbGVQcm9jZXNzKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpZiAodGhpcy5zZXR0aW5nLmNvbHVtblNldHRpbmcuc29ydEZpZWxkKSB7XG4gICAgICAgIC8vICAgICBncmlkSW5mby5zb3J0cy5wdXNoKDxTb3J0PntcbiAgICAgICAgLy8gICAgICAgICBmaWVsZDogdGhpcy5zZXR0aW5nLmNvbHVtblNldHRpbmcuc29ydEZpZWxkLFxuICAgICAgICAvLyAgICAgICAgIGRpcjogdGhpcy5zZXR0aW5nLmNvbHVtblNldHRpbmcuc29ydERpciA/IDEgOiAtMVxuICAgICAgICAvLyAgICAgfSk7XG4gICAgICAgIC8vIH1cbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoRGF0YSAmJiBBcnJheS5pc0FycmF5KHRoaXMuc2VhcmNoRGF0YS5sc3REYXRhKSkge1xuICAgICAgICAgICAgZ3JpZEluZm8uZmlsdGVycy5wdXNoKHRoaXMubmV3RmlsdGVyKHRoaXMuc2VhcmNoRGF0YS5maWVsZEZpbHRlciwgT3BlcmF0b3IuaW4sIHRoaXMuc2VhcmNoRGF0YS5sc3REYXRhKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBiZWZvcmVSZW5kZXJEYXRhU291cmNlKGRhdGEpIHtcbiAgICAgICAgZGF0YS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaXRlbS5fZHJvcGRvd252YWx1ZSA9IHRoaXMuY29udHJvbC52YWx1ZUZpZWxkO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5iZWZvcmVSZW5kZXJEYXRhU291cmNlVW5QaWNrZWQpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY29udHJvbC5iZWZvcmVSZW5kZXJEYXRhU291cmNlVW5QaWNrZWQoZGF0YSwgdGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgYXN5bmMgYWZ0ZXJHZXREYXRhKCkge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sLmFmdGVyR2V0RGF0YVVuUGlja2VkKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNvbnRyb2wuYWZ0ZXJHZXREYXRhVW5QaWNrZWQodGhpcy5tb2RlbC5kYXRhU291cmNlLCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zZWFyY2hEYXRhICYmIHRoaXMuc2hvd0Zvcm1BZHZhbmNlZFNlYXJjaFxuICAgICAgICAgICAgJiYgdGhpcy5tb2RlbC5kYXRhU291cmNlLmxlbmd0aCAhPSB0aGlzLnNlYXJjaERhdGEubHN0RGF0YS5sZW5ndGhcbiAgICAgICAgICAgICYmIHRoaXMubW9kZWwudG90YWwgPCB0aGlzLnNlYXJjaERhdGEubHN0RGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlckNoZWNrRXhpc3QgPSBbdGhpcy5uZXdGaWx0ZXIodGhpcy5zZWFyY2hEYXRhLmZpZWxkRmlsdGVyLCBPcGVyYXRvci5pbiwgdGhpcy5zZWFyY2hEYXRhLmxzdERhdGEpXTtcbiAgICAgICAgICAgIGNvbnN0IGxzdERhdGFDaGVja0V4aXN0ID0gKGF3YWl0IHRoaXMuc2V0dGluZy5iYXNlU2VydmljZS5nZXRBbGxXaXRoSWdub3JlKGZpbHRlckNoZWNrRXhpc3QsIHRoaXMuc2VhcmNoRGF0YS5maWVsZEZpbHRlcikpLmRhdGE7XG5cbiAgICAgICAgICAgIHRoaXMubHN0RGF0YU5vdEV4aXN0ID0gdGhpcy5zZWFyY2hEYXRhLmxzdERhdGEuZmlsdGVyKHAgPT4gIWxzdERhdGFDaGVja0V4aXN0LnNvbWUoYyA9PiBjW3RoaXMuc2VhcmNoRGF0YS5maWVsZEZpbHRlcl0gPT0gcCkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zaG93Rm9ybUFkdmFuY2VkU2VhcmNoID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjYW5jZWwoKSB7XG4gICAgfVxuXG4gICAgb25VbnNlbGVjdFBpY2tlclVzZXIoJGV2ZW50KSB7XG4gICAgfVxuXG4gICAgb25TZWxlY3RQaWNrZXJVc2VyKCRldmVudCkge1xuICAgIH1cblxuICAgIG9uVG9wYmFyU2VhcmNoQ2xpY2soKSB7XG4gICAgfVxuXG4gICAgY2xlYXJGaWx0ZXIoZXZ0KSB7XG4gICAgfVxuXG4gICAgaGFuZGxlQWR2YW5zZWFyY2goKSB7XG4gICAgICAgIHRoaXMuc2hvd0Zvcm1BZHZhbmNlZFNlYXJjaCA9IHRydWU7XG4gICAgfVxuICAgIGhhbmRsZVNlYXJjaChtb2RlbCkge1xuICAgICAgICB0aGlzLnNlYXJjaERhdGEgPSBtb2RlbDtcbiAgICAgICAgdGhpcy5fdHJpZ2dlclByb2Nlc3NEYXRhKCk7XG4gICAgfVxufVxuXG4iXX0=
@@ -33,8 +33,8 @@ export class EntityPickerSearchFormComponent extends DataFormBase {
33
33
  mdWidth: 12,
34
34
  hidden: !this.datasourceFieldFilter.length,
35
35
  onChanged: (evt) => {
36
- const plusPlaceholder = evt.parentModel.fieldFilter == 'email' ? '@gmail.com' : '';
37
- evt.formControls['lstDataCheck'].placeholder = `linh123${plusPlaceholder}\nnam123${plusPlaceholder}`;
36
+ var _a;
37
+ evt.formControls['lstDataCheck'].placeholder = (_a = this.datasourceFieldFilter.find(p => p.id == evt.parentModel.fieldFilter)) === null || _a === void 0 ? void 0 : _a.placeholder;
38
38
  }
39
39
  }),
40
40
  new TextAreaControlSchema({
@@ -64,6 +64,7 @@ export class EntityPickerSearchFormComponent extends DataFormBase {
64
64
  return __awaiter(this, void 0, void 0, function* () {
65
65
  if (this.datasourceFieldFilter.length) {
66
66
  evt.rootModel.fieldFilter = this.datasourceFieldFilter[0].id;
67
+ evt.formControls['lstDataCheck'].placeholder = this.datasourceFieldFilter[0].placeholder;
67
68
  }
68
69
  evt.rootModel.lstDataCheck = undefined;
69
70
  evt.rootModel.lstDataNotExist = undefined;
@@ -102,4 +103,4 @@ EntityPickerSearchFormComponent.propDecorators = {
102
103
  lstDataNotExist: [{ type: Input }],
103
104
  onSearch: [{ type: Output }]
104
105
  };
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXBpY2tlci1zZWFyY2gtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXItZGlhbG9nL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci1zZWFyY2gtZm9ybS9lbnRpdHktcGlja2VyLXNlYXJjaC1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFlBQVksRUFBYSw0QkFBNEIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBUWxKLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxZQUFZO0lBa0I3RCxZQUNjLFNBQW1CO1FBRzdCLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUhQLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFqQnhCLDBCQUFxQixHQUFHLEVBQUUsQ0FBQztRQUMzQixhQUFRLEdBQVE7WUFDckIsV0FBVyxFQUFFLGlCQUFpQjtZQUM5QixRQUFRLEVBQUUsWUFBWTtZQUN0QixRQUFRLEVBQUUsY0FBYztZQUN4QixTQUFTLEVBQUUsVUFBVTtTQUN4QixDQUFDO1FBU1EsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFNN0MsQ0FBQztJQWRELElBQWEsZUFBZSxDQUFDLEtBQWU7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUUxQixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFD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Q0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLENBQUM7S0FBQTs7O1lBdkZKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyw2bEJBQXlEO2dCQUV6RCxTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQzs7YUFDdkM7OztZQVJpQyxRQUFROzs7b0NBV3JDLEtBQUs7dUJBQ0wsS0FBSzs4QkFNTCxLQUFLO3VCQVFMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UsIERhdGFGb3JtQmFzZSwgRXZlbnREYXRhLCBSYWRpb0J1dHRvbkxpc3RDb250cm9sU2NoZW1hLCBUZXh0QXJlYUNvbnRyb2xTY2hlbWEgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9wdWJsaWMtYXBpJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlbnRpdHktcGlja2VyLXNlYXJjaC1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZW50aXR5LXBpY2tlci1zZWFyY2gtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZW50aXR5LXBpY2tlci1zZWFyY2gtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW0NvbXBvbmVudENvbnRleHRTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgRW50aXR5UGlja2VyU2VhcmNoRm9ybUNvbXBvbmVudCBleHRlbmRzIERhdGFGb3JtQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBASW5wdXQoKSBkYXRhc291cmNlRmllbGRGaWx0ZXIgPSBbXTtcbiAgICBASW5wdXQoKSBmb3JtRGF0YTogYW55ID0ge1xuICAgICAgICBwbGFjZWhvbGRlcjogJ2xpbmgxMjNcXG5uYW0xMjMnLFxuICAgICAgICBkb2lUdW9uZzogJ25nxrDhu51pIGTDuW5nJyxcbiAgICAgICAgaWNvblNhdmU6ICdwaSBwaS1zZWFyY2gnLFxuICAgICAgICBsYWJlbFNhdmU6ICdUw6xtIGtp4bq/bSdcbiAgICB9O1xuICAgIEBJbnB1dCgpIHNldCBsc3REYXRhTm90RXhpc3QodmFsdWU6IHN0cmluZ1tdKSB7XG4gICAgICAgIGlmICghdmFsdWUubGVuZ3RoKSByZXR1cm47XG5cbiAgICAgICAgY29uc3Qgc3RyVmFsdWUgPSB2YWx1ZS5qb2luKCdcXG4nKTtcbiAgICAgICAgdGhpcy5tb2RlbC5kYXRhLmxzdERhdGFOb3RFeGlzdCA9IHN0clZhbHVlO1xuICAgICAgICB0aGlzLmNydWRGb3JtLl9tb2RlbERhdGEubHN0RGF0YU5vdEV4aXN0ID0gc3RyVmFsdWU7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2xzWydsc3REYXRhTm90RXhpc3QnXS5oaWRkZW4gPSBmYWxzZTtcbiAgICB9XG4gICAgQE91dHB1dCgpIG9uU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBfaW5qZWN0b3I6IEluamVjdG9yLFxuXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKF9pbmplY3Rvcik7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZG9Ob3RDaGVja0Jhc2VTZXJ2aWNlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZXR0aW5nLnNjaGVtYSA9IFtcbiAgICAgICAgICAgIG5ldyBSYWRpb0J1dHRvbkxpc3RDb250cm9sU2NoZW1hKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2ZpZWxkRmlsdGVyJyxcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0No4buNbiB0acOqdSBjaMOtIHTDrG0ga2nhur9tJyxcbiAgICAgICAgICAgICAgICBkYXRhU291cmNlOiB0aGlzLmRhdGFzb3VyY2VGaWVsZEZpbHRlcixcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBtZFdpZHRoOiAxMixcbiAgICAgICAgICAgICAgICBoaWRkZW46ICF0aGlzLmRhdGFzb3VyY2VGaWVsZEZpbHRlci5sZW5ndGgsXG4gICAgICAgICAgICAgICAgb25DaGFuZ2VkOiAoZXZ0OiBFdmVudERhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGx1c1BsYWNlaG9sZGVyID0gZXZ0LnBhcmVudE1vZGVsLmZpZWxkRmlsdGVyID09ICdlbWFpbCcgPyAnQGdtYWlsLmNvbScgOiAnJztcbiAgICAgICAgICAgICAgICAgICAgZXZ0LmZvcm1Db250cm9sc1snbHN0RGF0YUNoZWNrJ10ucGxhY2Vob2xkZXIgPSBgbGluaDEyMyR7cGx1c1BsYWNlaG9sZGVyfVxcbm5hbTEyMyR7cGx1c1BsYWNlaG9sZGVyfWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgVGV4dEFyZWFDb250cm9sU2NoZW1hKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2xzdERhdGFDaGVjaycsXG4gICAgICAgICAgICAgICAgbGFiZWw6IGBEYW5oIHPDoWNoICR7dGhpcy5mb3JtRGF0YS5kb2lUdW9uZ31gLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgbmjhuq1wIG3hu5dpICR7dGhpcy5mb3JtRGF0YS5kb2lUdW9uZ30gbMOgIG3hu5l0IGTDsm5nYCxcbiAgICAgICAgICAgICAgICBtZFdpZHRoOiAxMixcbiAgICAgICAgICAgICAgICByb3dzOiAxMCxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5mb3JtRGF0YS5wbGFjZWhvbGRlclxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgVGV4dEFyZWFDb250cm9sU2NoZW1hKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2xzdERhdGFOb3RFeGlzdCcsXG4gICAgICAgICAgICAgICAgbGFiZWw6IGBEYW5oIHPDoWNoICR7dGhpcy5mb3JtRGF0YS5kb2lUdW9uZ30ga2jDtG5nIGjhu6NwIGzhu4dgLFxuICAgICAgICAgICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBtZFdpZHRoOiAxMlxuICAgICAgICAgICAgfSksXG4gICAgICAgIF07XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgfVxuXG4gICAgYXN5bmMgb25Gb3JtSW5pdGlhbGl6ZWQoY29udHJvbHM6IEV2ZW50RGF0YSkge1xuICAgICAgICAvLyB0aeG7gW4geOG7rSBsw70gZOG7ryBsaeG7h3UgKHbDrSBk4bulIHThu5VuZyBo4bujcCBkYXRhc291cmNlKSwgdHLGsOG7m2Mga2hpIGfhu41pIGFwaSBnZXQgZGV0YWlsXG5cbiAgICB9XG4gICAgYXN5bmMgaW5pdERhdGFBZGQoZXZ0OiBFdmVudERhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YXNvdXJjZUZpZWxkRmlsdGVyLmxlbmd0aCkge1xuICAgICAgICAgICAgZXZ0LnJvb3RNb2RlbC5maWVsZEZpbHRlciA9IHRoaXMuZGF0YXNvdXJjZUZpZWxkRmlsdGVyWzBdLmlkO1xuICAgICAgICB9XG4gICAgICAgIGV2dC5yb290TW9kZWwubHN0RGF0YUNoZWNrID0gdW5kZWZpbmVkO1xuICAgICAgICBldnQucm9vdE1vZGVsLmxzdERhdGFOb3RFeGlzdCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBhc3luYyBtb2RpZnlEZXRhaWxEYXRhKGRhdGEpIHtcbiAgICAgICAgLy8geOG7rSBsw70gZOG7ryBsaeG7h3UgbOG6pXkgdOG7qyBnZXQgZGV0YWlsIHbhu4FcbiAgICB9XG5cbiAgICBhc3luYyBjdXN0b21TYXZlKCkge1xuICAgICAgICAvLyB0csaw4bubYyBraGkgbMawdVxuICAgICAgICBjb25zdCBpc1ZhbGlkID0gYXdhaXQgdGhpcy5jcnVkRm9ybS52YWxpZGF0ZUZvcm0oKTtcbiAgICAgICAgaWYgKCFpc1ZhbGlkKSByZXR1cm47XG4gICAgICAgIHRoaXMubW9kZWwuZGF0YS5sc3REYXRhID0gdGhpcy5tb2RlbC5kYXRhLmxzdERhdGFDaGVjay5zcGxpdCgnXFxuJykubWFwKHAgPT4gcC50cmltKCkpLmZpbHRlcihwID0+IHApO1xuICAgICAgICB0aGlzLm9uU2VhcmNoLmVtaXQodGhpcy5tb2RlbC5kYXRhKTtcbiAgICB9XG5cbn1cbiJdfQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXBpY2tlci1zZWFyY2gtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXItZGlhbG9nL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci1zZWFyY2gtZm9ybS9lbnRpdHktcGlja2VyLXNlYXJjaC1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFlBQVksRUFBYSw0QkFBNEIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBUWxKLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxZQUFZO0lBa0I3RCxZQUNjLFNBQW1CO1FBRzdCLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUhQLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFqQnhCLDBCQUFxQixHQUFHLEVBQUUsQ0FBQztRQUMzQixhQUFRLEdBQVE7WUFDckIsV0FBVyxFQUFFLGlCQUFpQjtZQUM5QixRQUFRLEVBQUUsWUFBWTtZQUN0QixRQUFRLEVBQUUsY0FBYztZQUN4QixTQUFTLEVBQUUsVUFBVTtTQUN4QixDQUFDO1FBU1EsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFNN0MsQ0FBQztJQWRELElBQWEsZUFBZSxDQUFDLEtBQWU7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUUxQixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFD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LENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxDQUFDO0tBQUE7OztZQXZGSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsNmxCQUF5RDtnQkFFekQsU0FBUyxFQUFFLENBQUMsdUJBQXVCLENBQUM7O2FBQ3ZDOzs7WUFSaUMsUUFBUTs7O29DQVdyQyxLQUFLO3VCQUNMLEtBQUs7OEJBTUwsS0FBSzt1QkFRTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudENvbnRleHRTZXJ2aWNlLCBEYXRhRm9ybUJhc2UsIEV2ZW50RGF0YSwgUmFkaW9CdXR0b25MaXN0Q29udHJvbFNjaGVtYSwgVGV4dEFyZWFDb250cm9sU2NoZW1hIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vcHVibGljLWFwaSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZW50aXR5LXBpY2tlci1zZWFyY2gtZm9ybScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VudGl0eS1waWNrZXItc2VhcmNoLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2VudGl0eS1waWNrZXItc2VhcmNoLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtDb21wb25lbnRDb250ZXh0U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEVudGl0eVBpY2tlclNlYXJjaEZvcm1Db21wb25lbnQgZXh0ZW5kcyBEYXRhRm9ybUJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQElucHV0KCkgZGF0YXNvdXJjZUZpZWxkRmlsdGVyID0gW107XG4gICAgQElucHV0KCkgZm9ybURhdGE6IGFueSA9IHtcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdsaW5oMTIzXFxubmFtMTIzJyxcbiAgICAgICAgZG9pVHVvbmc6ICduZ8aw4budaSBkw7luZycsXG4gICAgICAgIGljb25TYXZlOiAncGkgcGktc2VhcmNoJyxcbiAgICAgICAgbGFiZWxTYXZlOiAnVMOsbSBraeG6v20nXG4gICAgfTtcbiAgICBASW5wdXQoKSBzZXQgbHN0RGF0YU5vdEV4aXN0KHZhbHVlOiBzdHJpbmdbXSkge1xuICAgICAgICBpZiAoIXZhbHVlLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHN0clZhbHVlID0gdmFsdWUuam9pbignXFxuJyk7XG4gICAgICAgIHRoaXMubW9kZWwuZGF0YS5sc3REYXRhTm90RXhpc3QgPSBzdHJWYWx1ZTtcbiAgICAgICAgdGhpcy5jcnVkRm9ybS5fbW9kZWxEYXRhLmxzdERhdGFOb3RFeGlzdCA9IHN0clZhbHVlO1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sc1snbHN0RGF0YU5vdEV4aXN0J10uaGlkZGVuID0gZmFsc2U7XG4gICAgfVxuICAgIEBPdXRwdXQoKSBvblNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgX2luamVjdG9yOiBJbmplY3RvcixcblxuICAgICkge1xuICAgICAgICBzdXBlcihfaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmRvTm90Q2hlY2tCYXNlU2VydmljZSA9IHRydWU7XG4gICAgICAgIHRoaXMuc2V0dGluZy5zY2hlbWEgPSBbXG4gICAgICAgICAgICBuZXcgUmFkaW9CdXR0b25MaXN0Q29udHJvbFNjaGVtYSh7XG4gICAgICAgICAgICAgICAgZmllbGQ6ICdmaWVsZEZpbHRlcicsXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdDaOG7jW4gdGnDqnUgY2jDrSB0w6xtIGtp4bq/bScsXG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZTogdGhpcy5kYXRhc291cmNlRmllbGRGaWx0ZXIsXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgbWRXaWR0aDogMTIsXG4gICAgICAgICAgICAgICAgaGlkZGVuOiAhdGhpcy5kYXRhc291cmNlRmllbGRGaWx0ZXIubGVuZ3RoLFxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlZDogKGV2dDogRXZlbnREYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV2dC5mb3JtQ29udHJvbHNbJ2xzdERhdGFDaGVjayddLnBsYWNlaG9sZGVyID0gdGhpcy5kYXRhc291cmNlRmllbGRGaWx0ZXIuZmluZChwID0+IHAuaWQgPT0gZXZ0LnBhcmVudE1vZGVsLmZpZWxkRmlsdGVyKT8ucGxhY2Vob2xkZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgVGV4dEFyZWFDb250cm9sU2NoZW1hKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2xzdERhdGFDaGVjaycsXG4gICAgICAgICAgICAgICAgbGFiZWw6IGBEYW5oIHPDoWNoICR7dGhpcy5mb3JtRGF0YS5kb2lUdW9uZ31gLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgbmjhuq1wIG3hu5dpICR7dGhpcy5mb3JtRGF0YS5kb2lUdW9uZ30gbMOgIG3hu5l0IGTDsm5nYCxcbiAgICAgICAgICAgICAgICBtZFdpZHRoOiAxMixcbiAgICAgICAgICAgICAgICByb3dzOiAxMCxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5mb3JtRGF0YS5wbGFjZWhvbGRlclxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgVGV4dEFyZWFDb250cm9sU2NoZW1hKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2xzdERhdGFOb3RFeGlzdCcsXG4gICAgICAgICAgICAgICAgbGFiZWw6IGBEYW5oIHPDoWNoICR7dGhpcy5mb3JtRGF0YS5kb2lUdW9uZ30ga2jDtG5nIGjhu6NwIGzhu4dgLFxuICAgICAgICAgICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBtZFdpZHRoOiAxMlxuICAgICAgICAgICAgfSksXG4gICAgICAgIF07XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgfVxuXG4gICAgYXN5bmMgb25Gb3JtSW5pdGlhbGl6ZWQoY29udHJvbHM6IEV2ZW50RGF0YSkge1xuICAgICAgICAvLyB0aeG7gW4geOG7rSBsw70gZOG7ryBsaeG7h3UgKHbDrSBk4bulIHThu5VuZyBo4bujcCBkYXRhc291cmNlKSwgdHLGsOG7m2Mga2hpIGfhu41pIGFwaSBnZXQgZGV0YWlsXG5cbiAgICB9XG4gICAgYXN5bmMgaW5pdERhdGFBZGQoZXZ0OiBFdmVudERhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YXNvdXJjZUZpZWxkRmlsdGVyLmxlbmd0aCkge1xuICAgICAgICAgICAgZXZ0LnJvb3RNb2RlbC5maWVsZEZpbHRlciA9IHRoaXMuZGF0YXNvdXJjZUZpZWxkRmlsdGVyWzBdLmlkO1xuICAgICAgICAgICAgZXZ0LmZvcm1Db250cm9sc1snbHN0RGF0YUNoZWNrJ10ucGxhY2Vob2xkZXIgPSB0aGlzLmRhdGFzb3VyY2VGaWVsZEZpbHRlclswXS5wbGFjZWhvbGRlcjtcbiAgICAgICAgfVxuICAgICAgICBldnQucm9vdE1vZGVsLmxzdERhdGFDaGVjayA9IHVuZGVmaW5lZDtcbiAgICAgICAgZXZ0LnJvb3RNb2RlbC5sc3REYXRhTm90RXhpc3QgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgYXN5bmMgbW9kaWZ5RGV0YWlsRGF0YShkYXRhKSB7XG4gICAgICAgIC8vIHjhu60gbMO9IGThu68gbGnhu4d1IGzhuqV5IHThu6sgZ2V0IGRldGFpbCB24buBXG4gICAgfVxuXG4gICAgYXN5bmMgY3VzdG9tU2F2ZSgpIHtcbiAgICAgICAgLy8gdHLGsOG7m2Mga2hpIGzGsHVcbiAgICAgICAgY29uc3QgaXNWYWxpZCA9IGF3YWl0IHRoaXMuY3J1ZEZvcm0udmFsaWRhdGVGb3JtKCk7XG4gICAgICAgIGlmICghaXNWYWxpZCkgcmV0dXJuO1xuICAgICAgICB0aGlzLm1vZGVsLmRhdGEubHN0RGF0YSA9IHRoaXMubW9kZWwuZGF0YS5sc3REYXRhQ2hlY2suc3BsaXQoJ1xcbicpLm1hcChwID0+IHAudHJpbSgpKS5maWx0ZXIocCA9PiBwKTtcbiAgICAgICAgdGhpcy5vblNlYXJjaC5lbWl0KHRoaXMubW9kZWwuZGF0YSk7XG4gICAgfVxuXG59XG4iXX0=
@@ -288,6 +288,14 @@ export class EntityPickerComponent extends DataListBase {
288
288
  setDisabledState(isDisabled) {
289
289
  this.disabled = isDisabled;
290
290
  }
291
+ _view(rowData) {
292
+ return __awaiter(this, void 0, void 0, function* () {
293
+ if (this.control.onViewDetail) {
294
+ yield this.control.onViewDetail(rowData);
295
+ return;
296
+ }
297
+ });
298
+ }
291
299
  }
292
300
  EntityPickerComponent.decorators = [
293
301
  { type: Component, args: [{
@@ -322,4 +330,4 @@ EntityPickerComponent.propDecorators = {
322
330
  onUnSelect: [{ type: Output, args: ['onUnSelect',] }],
323
331
  onChanged: [{ type: Output, args: ['onChanged',] }]
324
332
  };
325
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsUUFBUSxFQUNSLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUVaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx5QkFBeUIsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQWdCL0QsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFlBQVk7SUF3Qm5ELFlBQ1ksb0JBQXlDLEVBQ3pDLGFBQTJCLEVBQ3pCLFlBQXlCLEVBQ25DLFNBQW1CO1FBRW5CLEtBQUssQ0FBQyxTQUFTLENBQUMs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RUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7d0JBQ3BELEtBQUssRUFBRSxJQUFJO3FCQUNkO29CQUNELHVCQUF1QjtvQkFDdkIscUJBQXFCO2lCQUN4Qjs7YUFDSjs7O1lBbkJRLG1CQUFtQjtZQU5uQixZQUFZO1lBT1osV0FBVztZQWZoQixRQUFROzs7c0JBc0NQLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxLQUFLO3VCQUNMLEtBQUs7dUJBQ0wsS0FBSztxQkFFTCxNQUFNO3VCQUNOLE1BQU0sU0FBQyxVQUFVO3lCQUNqQixNQUFNLFNBQUMsWUFBWTt3QkFDbkIsTUFBTSxTQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcHAtY29udGV4dC9jb21wb25lbnQtY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFMaXN0QmFzZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvYmFzZS9kYXRhLWxpc3QtYmFzZSc7XG5pbXBvcnQgeyBDb2x1bW5TY2hlbWFCYXNlLCBFbnRpdHlQaWNrZXJDb250cm9sU2NoZW1hLCBIZWlnaHRUeXBlLCBPcGVyYXRvciwgUG9wdXBTaXplIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYSc7XG5pbXBvcnQgeyBHcmlkSW5mbyB9IGZyb20gJy4uLy4uL21vZGVscy9ncmlkLWluZm8nO1xuaW1wb3J0IHsgRW50aXR5TWV0YWRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZW50aXR5LW1ldGFkYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW50aXR5UGlja2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VudGl0eS1waWNrZXIuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBhcHBlbmREZWZhdWx0RmlsdGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29tbW9uJztcbmltcG9ydCB7IEVudGl0eVBpY2tlckJveENvbXBvbmVudCB9IGZyb20gJy4vZW50aXR5LXBpY2tlci1ib3gvZW50aXR5LXBpY2tlci1ib3guY29tcG9uZW50JztcbmltcG9ydCB7IEFkdmFuY2VEYXRhRW50aXR5UGlja2VyIH0gZnJvbSAnLi9tb2RlbC9hZHZhbmNlLWRhdGEnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VudGl0eS1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lbnRpdHktcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lbnRpdHktcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRW50aXR5UGlja2VyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIENvbXBvbmVudENvbnRleHRTZXJ2aWNlLFxuICAgICAgICBFbnRpdHlNZXRhZGF0YVNlcnZpY2VcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEVudGl0eVBpY2tlckNvbXBvbmVudCBleHRlbmRzIERhdGFMaXN0QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIG9uQ2hhbmdlOiBGdW5jdGlvbjtcbiAgICBvblRvdWNoZWQ6IEZ1bmN0aW9uO1xuXG4gICAgQElucHV0KCkgY29udHJvbDogRW50aXR5UGlja2VyQ29udHJvbFNjaGVtYTtcbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHJlYWRPbmx5ID0gZmFsc2U7XG4gICAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBjaGlsZHJlbjogUXVlcnlMaXN0PFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgQE91dHB1dCgpIG9uSW5pdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoJ29uU2VsZWN0Jykgb25TZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgnb25VblNlbGVjdCcpIG9uVW5TZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgnb25DaGFuZ2VkJykgb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgcG9wdXBTaXplOiBQb3B1cFNpemUgPSBuZXcgUG9wdXBTaXplKHtcbiAgICAgICAgd2lkdGg6IDExMDAsXG4gICAgICAgIGhlaWdodDogOTAwLFxuICAgICAgICBtYXhpbWl6ZTogdHJ1ZVxuICAgIH0pO1xuICAgIHNlbGVjdGVkRW50aXR5UGlja2VyQm94Um93RGF0YTogYW55O1xuICAgIHNlbGVjdGVkVmFsdWU6IGFueTtcbiAgICBhZHZhbmNlRGF0YTogQWR2YW5jZURhdGFFbnRpdHlQaWNrZXIgPSBuZXcgQWR2YW5jZURhdGFFbnRpdHlQaWNrZXIoKTtcbiAgICBkaXJ0eSA9IGZhbHNlO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9lbnRpdHlQaWNrZXJTZXJ2aWNlOiBFbnRpdHlQaWNrZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9kb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgcHJvdGVjdGVkIF91c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgICAgIF9pbmplY3RvcjogSW5qZWN0b3JcbiAgICApIHtcbiAgICAgICAgc3VwZXIoX2luamVjdG9yKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5sb2FkRGV0YWlsRnJvbVF1ZXJ5UGFyYW0gPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5jb250cm9sLnVzZURlZmF1bHRQbHVzbFVybEluTGlzdCkge1xuICAgICAgICAgICAgdGhpcy5wbHVzVXJsID0gdGhpcy5jb250cm9sLnBsdXNVcmw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5wYWdlU2l6ZU9mTGlzdCkge1xuICAgICAgICAgICAgdGhpcy5zZXR0aW5nLnBhZ2VTZXR0aW5nLnBhZ2VTaXplID0gdGhpcy5jb250cm9sLnBhZ2VTaXplT2ZMaXN0O1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuY29udHJvbC5wYWdlU2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5zZXR0aW5nLnBhZ2VTZXR0aW5nLnBhZ2VTaXplID0gdGhpcy5jb250cm9sLnBhZ2VTaXplO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0dGluZy5jb2xzID0gW107XG4gICAgICAgIHRoaXMuc2V0dGluZy50aXRsZSA9ICcnO1xuICAgICAgICB0aGlzLnNldHRpbmcuYmFzZVNlcnZpY2UgPSB0aGlzLmNvbnRyb2wuYmFzZVNlcnZpY2U7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wuaWdub3JlV29ya2Zsb3cpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZy5iYXNlU2VydmljZS51c2VXb3JrZmxvdyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0dGluZy5oZWlnaHRUeXBlID0gSGVpZ2h0VHlwZS5keW5hbWljO1xuICAgICAgICB0aGlzLnNldHRpbmcuZml4SGVpZ2h0VHlwZUluRGlhbG9nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5BdXRob3JpemVCdXR0b24gPSB0cnVlO1xuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuQ2hlY2tib3ggPSB0aGlzLmNvbnRyb2wuaGlkZGVuQ2hlY2tib3g7XG4gICAgICAgIHRoaXMuc2V0dGluZy5zZXR0aW5nS2V5ID0gJ2VudGl0eVBpY2tlcic7XG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5TZXR0aW5nV29ya2Zsb3cgPSB0cnVlO1xuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuU2V0dGluZ1Blcm1pc3Npb24gPSB0cnVlO1xuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuQWR2YW5jZVNlYXJjaCA9IHRoaXMuY29udHJvbC5oaWRkZW5BZHZhbmNlU2VhcmNoO1xuICAgICAgICB0aGlzLnNldHRpbmcuZmllbGRTZWFyY2hUZXh0ID0gdGhpcy5jb250cm9sLmZpZWxkU2VhcmNoVGV4dDtcbiAgICAgICAgdGhpcy5zZXR0aW5nLnNob3dFZGl0TGluayA9ICF0aGlzLnJlYWRPbmx5ICYmIHRoaXMuY29udHJvbC5zaG93RWRpdExpbms7XG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5QYWdlU2V0dGluZyA9IHRoaXMuY29udHJvbC5oaWRkZW5QYWdlU2V0dGluZztcbiAgICAgICAgdGhpcy5zZXR0aW5nLmNvbHVtblNldHRpbmcuc29ydEZpZWxkID0gdGhpcy5jb250cm9sLnNvcnRGaWVsZDtcbiAgICAgICAgdGhpcy5zZXR0aW5nLmNvbHVtblNldHRpbmcuc29ydERpciA9IHRoaXMuY29udHJvbC5zb3J0RGlyO1xuICAgICAgICB0aGlzLnBsdXNVcmwgPSB0aGlzLmNvbnRyb2wucGx1c1VybDtcbiAgICAgICAgLy8gVG9kbzogSGlldU5EXG4gICAgICAgIHRoaXMuY29udHJvbC5jb2x1bW5zLmZvckVhY2goY29sdW1uID0+IHtcbiAgICAgICAgICAgIGlmIChjb2x1bW4uaXNEaXNwbGF5KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3Q29sID0gbmV3IENvbHVtblNjaGVtYUJhc2Uoe1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogY29sdW1uLmNvZGUsXG4gICAgICAgICAgICAgICAgICAgIG11bHRpcGxlOiBjb2x1bW4ubXVsdGlwbGUsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoY29sdW1uLmxhYmVsKSxcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU6IGNvbHVtbi5kYXRhVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNvbHVtbi53aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgbWRXaWR0aDogY29sdW1uLm1kV2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIHRleHRBbGlnbjogY29sdW1uLnRleHRBbGlnbixcbiAgICAgICAgICAgICAgICAgICAgYmFzZVNlcnZpY2U6IGNvbHVtbi5iYXNlU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVGaWVsZDogY29sdW1uLnZhbHVlRmllbGQsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlGaWVsZDogY29sdW1uLmRpc3BsYXlGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgZmllbGRQbHVzOiBjb2x1bW4uZmllbGRQbHVzLFxuICAgICAgICAgICAgICAgICAgICBzb3J0RmllbGQ6IGNvbHVtbi5zb3J0RmllbGQsXG4gICAgICAgICAgICAgICAgICAgIHNvcnREaXI6IGNvbHVtbi5zb3J0RGlyLFxuICAgICAgICAgICAgICAgICAgICBmaWVsZEZpbHRlcjogY29sdW1uLmZpZWxkRmlsdGVyLFxuICAgICAgICAgICAgICAgICAgICBhbGxvd0ZpbHRlcjogY29sdW1uLmFsbG93RmlsdGVyLFxuICAgICAgICAgICAgICAgICAgICBtb2RpZnlGaWx0ZXI6IGNvbHVtbi5tb2RpZnlGaWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRGaWx0ZXJzOiBjb2x1bW4uZGVmYXVsdEZpbHRlcnMsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlRmlsdGVyOiBjb2x1bW4udGVtcGxhdGVGaWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgIGZ1bmNHZXRMYWJlbDogY29sdW1uLmZ1bmNHZXRMYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgZnVuY1NldFZhbHVlUm93OiBjb2x1bW4uZnVuY1NldFZhbHVlUm93LFxuICAgICAgICAgICAgICAgICAgICBpbmNsdWRlU2VsZWN0OiBjb2x1bW4uaW5jbHVkZVNlbGVjdCxcbiAgICAgICAgICAgICAgICAgICAgZGF0YVNvdXJjZTogY29sdW1uLmRhdGFTb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwQ29kZTogY29sdW1uLmdyb3VwQ29kZSxcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IGNvbHVtbi5vcmRlcixcbiAgICAgICAgICAgICAgICAgICAgc29ydDogY29sdW1uLnNvcnQsXG4gICAgICAgICAgICAgICAgICAgIHNob3dFZGl0TGluazogY29sdW1uLnNob3dFZGl0TGlua1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChjb2x1bW4uZGF0YVR5cGUgPT0gJ2N1c3RvbScpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3Q29sLmRhdGFUeXBlID0gY29sdW1uLmNvZGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZy5jb2xzLnB1c2gobmV3Q29sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYWR2YW5jZURhdGEuZmllbGRzID0gdGhpcy5nZXRGaWVsZHMoKTtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5vbkluaXQuZW1pdCh0aGlzKTtcbiAgICB9XG5cbiAgICBzZWxlY3RFbnRpdHkoKSB7XG4gICAgICAgIHRoaXMuc2hvd0RldGFpbEZvcm0gPSB0cnVlO1xuICAgICAgICB0aGlzLmRpcnR5ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgYXN5bmMgbW9kaWZ5R3JpZEluZm8oZ3JpZEluZm86IEdyaWRJbmZvKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wubXVsdGlwbGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVmFsdWUgPT0gbnVsbCB8fCB0aGlzLnNlbGVjdGVkVmFsdWUubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBncmlkSW5mby5maWx0ZXJzLnB1c2godGhpcy5uZXdGaWx0ZXIodGhpcy5jb250cm9sLnZhbHVlRmllbGQsIE9wZXJhdG9yLmluLCB0aGlzLnNlbGVjdGVkVmFsdWUubWFwKHggPT4geFt0aGlzLmNvbnRyb2wudmFsdWVGaWVsZF0pKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBncmlkSW5mby5maWx0ZXJzLnB1c2godGhpcy5uZXdGaWx0ZXIodGhpcy5jb250cm9sLnZhbHVlRmllbGQsIE9wZXJhdG9yLmVxdWFsLCB0aGlzLnNlbGVjdGVkVmFsdWVbdGhpcy5jb250cm9sLnZhbHVlRmllbGRdKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb250cm9sLnVzZURlZmF1bHRGaWx0ZXJJbkxpc3QgJiYgdGhpcy5jb250cm9sLmRlZmF1bHRGaWx0ZXJzKSB7XG4gICAgICAgICAgICBhd2FpdCBhcHBlbmREZWZhdWx0RmlsdGVyKGdyaWRJbmZvLmZpbHRlcnMsIHRoaXMuY29udHJvbC5kZWZhdWx0RmlsdGVycyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBiZWZvcmVSZW5kZXJEYXRhU291cmNlKGRhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5iZWZvcmVSZW5kZXJEYXRhU291cmNlKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNvbnRyb2wuYmVmb3JlUmVuZGVyRGF0YVNvdXJjZShkYXRhLCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBhc3luYyBhZnRlckdldERhdGEoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wuYWZ0ZXJHZXREYXRhKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNvbnRyb2wuYWZ0ZXJHZXREYXRhKHRoaXMubW9kZWwuZGF0YVNvdXJjZSwgdGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBM4bqleSB1bmlvbiBj4bunYTogc2VsZWN0ZWRGaWVsZCwgZmllbGRQbHVzLCBkaXNwbGF5IGZpZWxkcyBjw7MgdHJvbmcgdGFibGUuXG4gICAgZ2V0RmllbGRzKCkge1xuICAgICAgICBjb25zdCBhcnJGaWVsZDogc3RyaW5nW10gPSBbJ2lkJ107XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wudmFsdWVGaWVsZCAmJiB0aGlzLmNvbnRyb2wudmFsdWVGaWVsZCAhPSAnaWQnKSB7XG4gICAgICAgICAgICBhcnJGaWVsZC5wdXNoKHRoaXMuY29udHJvbC52YWx1ZUZpZWxkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wuZmllbGRQbHVzKSB7XG4gICAgICAgICAgICBhcnJGaWVsZC5wdXNoKC4uLnRoaXMuY29udHJvbC5maWVsZFBsdXMuc3BsaXQoJywnKSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhcnJEaXNwbGF5RmllbGQgPSB0aGlzLmNvbnRyb2wuY29sdW1ucy5maWx0ZXIoeCA9PiB4LmlzRGlzcGxheSA9PSB0cnVlICYmICF4Lm5vdEluRmllbGRzICYmIHguZGF0YVR5cGUgIT0gJ2N1c3RvbScpXG4gICAgICAgICAgICAubWFwKHggPT4geC5jb2RlKTtcblxuICAgICAgICB0aGlzLl9jb21tb25TZXJ2aWNlLmFkZERpc3RpbmN0KGFyckRpc3BsYXlGaWVsZCwgYXJyRmllbGQpO1xuICAgICAgICByZXR1cm4gYXJyRmllbGQudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBhc3luYyBvbkJlZm9yZVVuUGljayhkYXRhKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wub25EZWxldGluZykge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuY29udHJvbC5vbkRlbGV0aW5nKGRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGFzeW5jIGhhbmRsZVVuUGlja0VudGl0eShkYXRhKSB7XG4gICAgICAgIGNvbnN0IGlzQWxsb3dVblBpY2sgPSBhd2FpdCB0aGlzLm9uQmVmb3JlVW5QaWNrKGRhdGEpO1xuICAgICAgICBpZiAoIWlzQWxsb3dVblBpY2spIHJldHVybjtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5tdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdGhpcy5zZWxlY3RlZFZhbHVlLmZpbHRlcih4ID0+IHhbdGhpcy5jb250cm9sLnZhbHVlRmllbGRdICE9IGRhdGFbdGhpcy5jb250cm9sLnZhbHVlRmllbGRdKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGVkVmFsdWUpO1xuXG4gICAgICAgIC8vIGRhdGEgZW1pdCBwaOG6o2kgZ2nhu5FuZyB24bubaSBow6BtIGhhbmRsZVVuU2VsZWN0RW50aXR5XG4gICAgICAgIHRoaXMub25VblNlbGVjdC5lbWl0KHtcbiAgICAgICAgICAgIGl0ZW1zOiBbZGF0YV0sXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5zZWxlY3RlZFZhbHVlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZmlyZUNoYW5nZUV2ZW50KCk7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJQcm9jZXNzRGF0YSgpO1xuICAgIH1cblxuICAgIGhhbmRsZVVuTXVsdGlQaWNrRW50aXR5KCkge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sLm11bHRpcGxlKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZXNVblNlbGVjdCA9IHRoaXMubW9kZWwuc2VsZWN0ZWRJdGVtcy5tYXAoeCA9PiB4W3RoaXMuY29udHJvbC52YWx1ZUZpZWxkXSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB0aGlzLnNlbGVjdGVkVmFsdWUuZmlsdGVyKHggPT4gIXZhbHVlc1VuU2VsZWN0LmluY2x1ZGVzKHhbdGhpcy5jb250cm9sLnZhbHVlRmllbGRdKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5zZWxlY3RlZFZhbHVlKTtcblxuICAgICAgICAvLyBkYXRhIGVtaXQgcGjhuqNpIGdp4buRbmcgduG7m2kgaMOgbSBoYW5kbGVVblNlbGVjdEVudGl0eVxuICAgICAgICB0aGlzLm9uVW5TZWxlY3QuZW1pdCh7XG4gICAgICAgICAgICBpdGVtczogdGhpcy5tb2RlbC5zZWxlY3RlZEl0ZW1zLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuc2VsZWN0ZWRWYWx1ZVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZpcmVDaGFuZ2VFdmVudCgpO1xuICAgICAgICB0aGlzLl90cmlnZ2VyUHJvY2Vzc0RhdGEoKTtcbiAgICB9XG5cbiAgICBoYW5kbGVFbnRpdHlQaWNrZXJCb3hSb3dTZWxlY3QoaXRlbSkge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sLm11bHRpcGxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlbGVjdGVkRW50aXR5UGlja2VyQm94Um93RGF0YSA9IGl0ZW07XG4gICAgfVxuXG4gICAgaGFuZGxlU2VsZWN0RW50aXR5KGV2dCkge1xuICAgICAgICB0aGlzLm9uU2VsZWN0LmVtaXQoZXZ0KTtcbiAgICB9XG5cbiAgICBoYW5kbGVVblNlbGVjdEVudGl0eShldnQpIHtcbiAgICAgICAgdGhpcy5vblVuU2VsZWN0LmVtaXQoZXZ0KTtcbiAgICB9XG5cbiAgICBoYW5kbGVDaGFuZ2VFbnRpdHkoZXZ0KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IGV2dC52YWx1ZTtcbiAgICAgICAgdGhpcy5kaXJ0eSA9IHRydWU7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5zZWxlY3RlZFZhbHVlKTtcbiAgICAgICAgdGhpcy5maXJlQ2hhbmdlRXZlbnQoKTtcblxuICAgIH1cblxuICAgIGhhbmRsZUhpZGUoZGF0YSkge1xuICAgICAgICB0aGlzLnNob3dEZXRhaWxGb3JtID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLmRpcnR5KSB7XG4gICAgICAgICAgICB0aGlzLl90cmlnZ2VyUHJvY2Vzc0RhdGEoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2xpY2tTdWJtaXRCdXR0b24oZXZ0LCBlbnRpdHlQaWNrZXJCb3g6IEVudGl0eVBpY2tlckJveENvbXBvbmVudCkge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sLm11bHRpcGxlKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUhpZGUoZXZ0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLnNlbGVjdGVkRW50aXR5UGlja2VyQm94Um93RGF0YSkge1xuICAgICAgICAgICAgZW50aXR5UGlja2VyQm94ICYmIGVudGl0eVBpY2tlckJveC5oYW5kbGVQaWNrKHRoaXMuc2VsZWN0ZWRFbnRpdHlQaWNrZXJCb3hSb3dEYXRhKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0RldGFpbEZvcm0gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZpcmVDaGFuZ2VFdmVudCgpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5zZWxlY3RlZFZhbHVlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5tdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gW107XG4gICAgICAgICAgICBpZiAob2JqKSB7XG4gICAgICAgICAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IG9iajtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gb2JqLm1hcCh4ID0+IHRoaXMuZ2V0T2JqU2VsZWN0VmFsdWVGcm9tVmFsdWUoeCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyUHJvY2Vzc0RhdGEoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgaWYgKG9iaikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHRoaXMuZ2V0T2JqU2VsZWN0VmFsdWVGcm9tVmFsdWUob2JqKTtcbiAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyUHJvY2Vzc0RhdGEoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTYW5nIFZWIMSRw6Mgc+G7rWFcbiAgICBwcml2YXRlIGdldE9ialNlbGVjdFZhbHVlRnJvbVZhbHVlKHZhbHVlKSB7XG4gICAgICAgIGxldCB0ZW1wID0ge307XG4gICAgICAgIGlmKHR5cGVvZih2YWx1ZSkgPT0gJ29iamVjdCcpe1xuICAgICAgICAgICAgdGVtcCA9IHtcbiAgICAgICAgICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgICAgICAgICBfZHJvcGRvd252YWx1ZTogdGhpcy5jb250cm9sLnZhbHVlRmllbGQsXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0ZW1wID0ge1xuICAgICAgICAgICAgICAgIF9kcm9wZG93bnZhbHVlOiB0aGlzLmNvbnRyb2wudmFsdWVGaWVsZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0ZW1wW3RoaXMuY29udHJvbC52YWx1ZUZpZWxkXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0ZW1wO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxufVxuIl19
333
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsUUFBUSxFQUNSLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUVaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx5QkFBeUIsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQWdCL0QsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFlBQVk7SUF3Qm5ELFlBQ1ksb0JBQXlDLEVBQ3pDLGFBQTJCLEVBQ3pCLFlBQXlCLEVBQ25DLFNBQW1CO1FBRW5CLEtBQUssQ0FBQyxTQUFTLENBQUMs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LENBQUM7Z0JBQ3pDLE9BQU87YUFDVjtRQUVMLENBQUM7S0FBQTs7O1lBM1VKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsbzdHQUE2QztnQkFFN0MsU0FBUyxFQUFFO29CQUNQO3dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7d0JBQ3BELEtBQUssRUFBRSxJQUFJO3FCQUNkO29CQUNELHVCQUF1QjtvQkFDdkIscUJBQXFCO2lCQUN4Qjs7YUFDSjs7O1lBbkJRLG1CQUFtQjtZQU5uQixZQUFZO1lBT1osV0FBVztZQWZoQixRQUFROzs7c0JBc0NQLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxLQUFLO3VCQUNMLEtBQUs7dUJBQ0wsS0FBSztxQkFFTCxNQUFNO3VCQUNOLE1BQU0sU0FBQyxVQUFVO3lCQUNqQixNQUFNLFNBQUMsWUFBWTt3QkFDbkIsTUFBTSxTQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcHAtY29udGV4dC9jb21wb25lbnQtY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFMaXN0QmFzZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvYmFzZS9kYXRhLWxpc3QtYmFzZSc7XG5pbXBvcnQgeyBDb2x1bW5TY2hlbWFCYXNlLCBFbnRpdHlQaWNrZXJDb250cm9sU2NoZW1hLCBIZWlnaHRUeXBlLCBPcGVyYXRvciwgUG9wdXBTaXplIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYSc7XG5pbXBvcnQgeyBHcmlkSW5mbyB9IGZyb20gJy4uLy4uL21vZGVscy9ncmlkLWluZm8nO1xuaW1wb3J0IHsgRW50aXR5TWV0YWRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZW50aXR5LW1ldGFkYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW50aXR5UGlja2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VudGl0eS1waWNrZXIuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBhcHBlbmREZWZhdWx0RmlsdGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29tbW9uJztcbmltcG9ydCB7IEVudGl0eVBpY2tlckJveENvbXBvbmVudCB9IGZyb20gJy4vZW50aXR5LXBpY2tlci1ib3gvZW50aXR5LXBpY2tlci1ib3guY29tcG9uZW50JztcbmltcG9ydCB7IEFkdmFuY2VEYXRhRW50aXR5UGlja2VyIH0gZnJvbSAnLi9tb2RlbC9hZHZhbmNlLWRhdGEnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VudGl0eS1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lbnRpdHktcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lbnRpdHktcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRW50aXR5UGlja2VyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIENvbXBvbmVudENvbnRleHRTZXJ2aWNlLFxuICAgICAgICBFbnRpdHlNZXRhZGF0YVNlcnZpY2VcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEVudGl0eVBpY2tlckNvbXBvbmVudCBleHRlbmRzIERhdGFMaXN0QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIG9uQ2hhbmdlOiBGdW5jdGlvbjtcbiAgICBvblRvdWNoZWQ6IEZ1bmN0aW9uO1xuXG4gICAgQElucHV0KCkgY29udHJvbDogRW50aXR5UGlja2VyQ29udHJvbFNjaGVtYTtcbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHJlYWRPbmx5ID0gZmFsc2U7XG4gICAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBjaGlsZHJlbjogUXVlcnlMaXN0PFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgQE91dHB1dCgpIG9uSW5pdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoJ29uU2VsZWN0Jykgb25TZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgnb25VblNlbGVjdCcpIG9uVW5TZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgnb25DaGFuZ2VkJykgb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgcG9wdXBTaXplOiBQb3B1cFNpemUgPSBuZXcgUG9wdXBTaXplKHtcbiAgICAgICAgd2lkdGg6IDExMDAsXG4gICAgICAgIGhlaWdodDogOTAwLFxuICAgICAgICBtYXhpbWl6ZTogdHJ1ZVxuICAgIH0pO1xuICAgIHNlbGVjdGVkRW50aXR5UGlja2VyQm94Um93RGF0YTogYW55O1xuICAgIHNlbGVjdGVkVmFsdWU6IGFueTtcbiAgICBhZHZhbmNlRGF0YTogQWR2YW5jZURhdGFFbnRpdHlQaWNrZXIgPSBuZXcgQWR2YW5jZURhdGFFbnRpdHlQaWNrZXIoKTtcbiAgICBkaXJ0eSA9IGZhbHNlO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9lbnRpdHlQaWNrZXJTZXJ2aWNlOiBFbnRpdHlQaWNrZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9kb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgcHJvdGVjdGVkIF91c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgICAgIF9pbmplY3RvcjogSW5qZWN0b3JcbiAgICApIHtcbiAgICAgICAgc3VwZXIoX2luamVjdG9yKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5sb2FkRGV0YWlsRnJvbVF1ZXJ5UGFyYW0gPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5jb250cm9sLnVzZURlZmF1bHRQbHVzbFVybEluTGlzdCkge1xuICAgICAgICAgICAgdGhpcy5wbHVzVXJsID0gdGhpcy5jb250cm9sLnBsdXNVcmw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5wYWdlU2l6ZU9mTGlzdCkge1xuICAgICAgICAgICAgdGhpcy5zZXR0aW5nLnBhZ2VTZXR0aW5nLnBhZ2VTaXplID0gdGhpcy5jb250cm9sLnBhZ2VTaXplT2ZMaXN0O1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuY29udHJvbC5wYWdlU2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5zZXR0aW5nLnBhZ2VTZXR0aW5nLnBhZ2VTaXplID0gdGhpcy5jb250cm9sLnBhZ2VTaXplO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0dGluZy5jb2xzID0gW107XG4gICAgICAgIHRoaXMuc2V0dGluZy50aXRsZSA9ICcnO1xuICAgICAgICB0aGlzLnNldHRpbmcuYmFzZVNlcnZpY2UgPSB0aGlzLmNvbnRyb2wuYmFzZVNlcnZpY2U7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wuaWdub3JlV29ya2Zsb3cpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZy5iYXNlU2VydmljZS51c2VXb3JrZmxvdyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0dGluZy5oZWlnaHRUeXBlID0gSGVpZ2h0VHlwZS5keW5hbWljO1xuICAgICAgICB0aGlzLnNldHRpbmcuZml4SGVpZ2h0VHlwZUluRGlhbG9nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5BdXRob3JpemVCdXR0b24gPSB0cnVlO1xuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuQ2hlY2tib3ggPSB0aGlzLmNvbnRyb2wuaGlkZGVuQ2hlY2tib3g7XG4gICAgICAgIHRoaXMuc2V0dGluZy5zZXR0aW5nS2V5ID0gJ2VudGl0eVBpY2tlcic7XG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5TZXR0aW5nV29ya2Zsb3cgPSB0cnVlO1xuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuU2V0dGluZ1Blcm1pc3Npb24gPSB0cnVlO1xuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuQWR2YW5jZVNlYXJjaCA9IHRoaXMuY29udHJvbC5oaWRkZW5BZHZhbmNlU2VhcmNoO1xuICAgICAgICB0aGlzLnNldHRpbmcuZmllbGRTZWFyY2hUZXh0ID0gdGhpcy5jb250cm9sLmZpZWxkU2VhcmNoVGV4dDtcbiAgICAgICAgdGhpcy5zZXR0aW5nLnNob3dFZGl0TGluayA9ICF0aGlzLnJlYWRPbmx5ICYmIHRoaXMuY29udHJvbC5zaG93RWRpdExpbms7XG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5QYWdlU2V0dGluZyA9IHRoaXMuY29udHJvbC5oaWRkZW5QYWdlU2V0dGluZztcbiAgICAgICAgdGhpcy5zZXR0aW5nLmNvbHVtblNldHRpbmcuc29ydEZpZWxkID0gdGhpcy5jb250cm9sLnNvcnRGaWVsZDtcbiAgICAgICAgdGhpcy5zZXR0aW5nLmNvbHVtblNldHRpbmcuc29ydERpciA9IHRoaXMuY29udHJvbC5zb3J0RGlyO1xuICAgICAgICB0aGlzLnBsdXNVcmwgPSB0aGlzLmNvbnRyb2wucGx1c1VybDtcbiAgICAgICAgLy8gVG9kbzogSGlldU5EXG4gICAgICAgIHRoaXMuY29udHJvbC5jb2x1bW5zLmZvckVhY2goY29sdW1uID0+IHtcbiAgICAgICAgICAgIGlmIChjb2x1bW4uaXNEaXNwbGF5KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3Q29sID0gbmV3IENvbHVtblNjaGVtYUJhc2Uoe1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogY29sdW1uLmNvZGUsXG4gICAgICAgICAgICAgICAgICAgIG11bHRpcGxlOiBjb2x1bW4ubXVsdGlwbGUsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoY29sdW1uLmxhYmVsKSxcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU6IGNvbHVtbi5kYXRhVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNvbHVtbi53aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgbWRXaWR0aDogY29sdW1uLm1kV2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIHRleHRBbGlnbjogY29sdW1uLnRleHRBbGlnbixcbiAgICAgICAgICAgICAgICAgICAgYmFzZVNlcnZpY2U6IGNvbHVtbi5iYXNlU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVGaWVsZDogY29sdW1uLnZhbHVlRmllbGQsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlGaWVsZDogY29sdW1uLmRpc3BsYXlGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgZmllbGRQbHVzOiBjb2x1bW4uZmllbGRQbHVzLFxuICAgICAgICAgICAgICAgICAgICBzb3J0RmllbGQ6IGNvbHVtbi5zb3J0RmllbGQsXG4gICAgICAgICAgICAgICAgICAgIHNvcnREaXI6IGNvbHVtbi5zb3J0RGlyLFxuICAgICAgICAgICAgICAgICAgICBmaWVsZEZpbHRlcjogY29sdW1uLmZpZWxkRmlsdGVyLFxuICAgICAgICAgICAgICAgICAgICBhbGxvd0ZpbHRlcjogY29sdW1uLmFsbG93RmlsdGVyLFxuICAgICAgICAgICAgICAgICAgICBtb2RpZnlGaWx0ZXI6IGNvbHVtbi5tb2RpZnlGaWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRGaWx0ZXJzOiBjb2x1bW4uZGVmYXVsdEZpbHRlcnMsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlRmlsdGVyOiBjb2x1bW4udGVtcGxhdGVGaWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgIGZ1bmNHZXRMYWJlbDogY29sdW1uLmZ1bmNHZXRMYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgZnVuY1NldFZhbHVlUm93OiBjb2x1bW4uZnVuY1NldFZhbHVlUm93LFxuICAgICAgICAgICAgICAgICAgICBpbmNsdWRlU2VsZWN0OiBjb2x1bW4uaW5jbHVkZVNlbGVjdCxcbiAgICAgICAgICAgICAgICAgICAgZGF0YVNvdXJjZTogY29sdW1uLmRhdGFTb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwQ29kZTogY29sdW1uLmdyb3VwQ29kZSxcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IGNvbHVtbi5vcmRlcixcbiAgICAgICAgICAgICAgICAgICAgc29ydDogY29sdW1uLnNvcnQsXG4gICAgICAgICAgICAgICAgICAgIHNob3dFZGl0TGluazogY29sdW1uLnNob3dFZGl0TGlua1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChjb2x1bW4uZGF0YVR5cGUgPT0gJ2N1c3RvbScpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3Q29sLmRhdGFUeXBlID0gY29sdW1uLmNvZGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZy5jb2xzLnB1c2gobmV3Q29sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYWR2YW5jZURhdGEuZmllbGRzID0gdGhpcy5nZXRGaWVsZHMoKTtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5vbkluaXQuZW1pdCh0aGlzKTtcbiAgICB9XG5cbiAgICBzZWxlY3RFbnRpdHkoKSB7XG4gICAgICAgIHRoaXMuc2hvd0RldGFpbEZvcm0gPSB0cnVlO1xuICAgICAgICB0aGlzLmRpcnR5ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgYXN5bmMgbW9kaWZ5R3JpZEluZm8oZ3JpZEluZm86IEdyaWRJbmZvKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wubXVsdGlwbGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVmFsdWUgPT0gbnVsbCB8fCB0aGlzLnNlbGVjdGVkVmFsdWUubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBncmlkSW5mby5maWx0ZXJzLnB1c2godGhpcy5uZXdGaWx0ZXIodGhpcy5jb250cm9sLnZhbHVlRmllbGQsIE9wZXJhdG9yLmluLCB0aGlzLnNlbGVjdGVkVmFsdWUubWFwKHggPT4geFt0aGlzLmNvbnRyb2wudmFsdWVGaWVsZF0pKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBncmlkSW5mby5maWx0ZXJzLnB1c2godGhpcy5uZXdGaWx0ZXIodGhpcy5jb250cm9sLnZhbHVlRmllbGQsIE9wZXJhdG9yLmVxdWFsLCB0aGlzLnNlbGVjdGVkVmFsdWVbdGhpcy5jb250cm9sLnZhbHVlRmllbGRdKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb250cm9sLnVzZURlZmF1bHRGaWx0ZXJJbkxpc3QgJiYgdGhpcy5jb250cm9sLmRlZmF1bHRGaWx0ZXJzKSB7XG4gICAgICAgICAgICBhd2FpdCBhcHBlbmREZWZhdWx0RmlsdGVyKGdyaWRJbmZvLmZpbHRlcnMsIHRoaXMuY29udHJvbC5kZWZhdWx0RmlsdGVycyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBiZWZvcmVSZW5kZXJEYXRhU291cmNlKGRhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5iZWZvcmVSZW5kZXJEYXRhU291cmNlKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNvbnRyb2wuYmVmb3JlUmVuZGVyRGF0YVNvdXJjZShkYXRhLCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBhc3luYyBhZnRlckdldERhdGEoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wuYWZ0ZXJHZXREYXRhKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNvbnRyb2wuYWZ0ZXJHZXREYXRhKHRoaXMubW9kZWwuZGF0YVNvdXJjZSwgdGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBM4bqleSB1bmlvbiBj4bunYTogc2VsZWN0ZWRGaWVsZCwgZmllbGRQbHVzLCBkaXNwbGF5IGZpZWxkcyBjw7MgdHJvbmcgdGFibGUuXG4gICAgZ2V0RmllbGRzKCkge1xuICAgICAgICBjb25zdCBhcnJGaWVsZDogc3RyaW5nW10gPSBbJ2lkJ107XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wudmFsdWVGaWVsZCAmJiB0aGlzLmNvbnRyb2wudmFsdWVGaWVsZCAhPSAnaWQnKSB7XG4gICAgICAgICAgICBhcnJGaWVsZC5wdXNoKHRoaXMuY29udHJvbC52YWx1ZUZpZWxkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wuZmllbGRQbHVzKSB7XG4gICAgICAgICAgICBhcnJGaWVsZC5wdXNoKC4uLnRoaXMuY29udHJvbC5maWVsZFBsdXMuc3BsaXQoJywnKSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhcnJEaXNwbGF5RmllbGQgPSB0aGlzLmNvbnRyb2wuY29sdW1ucy5maWx0ZXIoeCA9PiB4LmlzRGlzcGxheSA9PSB0cnVlICYmICF4Lm5vdEluRmllbGRzICYmIHguZGF0YVR5cGUgIT0gJ2N1c3RvbScpXG4gICAgICAgICAgICAubWFwKHggPT4geC5jb2RlKTtcblxuICAgICAgICB0aGlzLl9jb21tb25TZXJ2aWNlLmFkZERpc3RpbmN0KGFyckRpc3BsYXlGaWVsZCwgYXJyRmllbGQpO1xuICAgICAgICByZXR1cm4gYXJyRmllbGQudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBhc3luYyBvbkJlZm9yZVVuUGljayhkYXRhKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wub25EZWxldGluZykge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuY29udHJvbC5vbkRlbGV0aW5nKGRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGFzeW5jIGhhbmRsZVVuUGlja0VudGl0eShkYXRhKSB7XG4gICAgICAgIGNvbnN0IGlzQWxsb3dVblBpY2sgPSBhd2FpdCB0aGlzLm9uQmVmb3JlVW5QaWNrKGRhdGEpO1xuICAgICAgICBpZiAoIWlzQWxsb3dVblBpY2spIHJldHVybjtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5tdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdGhpcy5zZWxlY3RlZFZhbHVlLmZpbHRlcih4ID0+IHhbdGhpcy5jb250cm9sLnZhbHVlRmllbGRdICE9IGRhdGFbdGhpcy5jb250cm9sLnZhbHVlRmllbGRdKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGVkVmFsdWUpO1xuXG4gICAgICAgIC8vIGRhdGEgZW1pdCBwaOG6o2kgZ2nhu5FuZyB24bubaSBow6BtIGhhbmRsZVVuU2VsZWN0RW50aXR5XG4gICAgICAgIHRoaXMub25VblNlbGVjdC5lbWl0KHtcbiAgICAgICAgICAgIGl0ZW1zOiBbZGF0YV0sXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5zZWxlY3RlZFZhbHVlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZmlyZUNoYW5nZUV2ZW50KCk7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJQcm9jZXNzRGF0YSgpO1xuICAgIH1cblxuICAgIGhhbmRsZVVuTXVsdGlQaWNrRW50aXR5KCkge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sLm11bHRpcGxlKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZXNVblNlbGVjdCA9IHRoaXMubW9kZWwuc2VsZWN0ZWRJdGVtcy5tYXAoeCA9PiB4W3RoaXMuY29udHJvbC52YWx1ZUZpZWxkXSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB0aGlzLnNlbGVjdGVkVmFsdWUuZmlsdGVyKHggPT4gIXZhbHVlc1VuU2VsZWN0LmluY2x1ZGVzKHhbdGhpcy5jb250cm9sLnZhbHVlRmllbGRdKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5zZWxlY3RlZFZhbHVlKTtcblxuICAgICAgICAvLyBkYXRhIGVtaXQgcGjhuqNpIGdp4buRbmcgduG7m2kgaMOgbSBoYW5kbGVVblNlbGVjdEVudGl0eVxuICAgICAgICB0aGlzLm9uVW5TZWxlY3QuZW1pdCh7XG4gICAgICAgICAgICBpdGVtczogdGhpcy5tb2RlbC5zZWxlY3RlZEl0ZW1zLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuc2VsZWN0ZWRWYWx1ZVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZpcmVDaGFuZ2VFdmVudCgpO1xuICAgICAgICB0aGlzLl90cmlnZ2VyUHJvY2Vzc0RhdGEoKTtcbiAgICB9XG5cbiAgICBoYW5kbGVFbnRpdHlQaWNrZXJCb3hSb3dTZWxlY3QoaXRlbSkge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sLm11bHRpcGxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlbGVjdGVkRW50aXR5UGlja2VyQm94Um93RGF0YSA9IGl0ZW07XG4gICAgfVxuXG4gICAgaGFuZGxlU2VsZWN0RW50aXR5KGV2dCkge1xuICAgICAgICB0aGlzLm9uU2VsZWN0LmVtaXQoZXZ0KTtcbiAgICB9XG5cbiAgICBoYW5kbGVVblNlbGVjdEVudGl0eShldnQpIHtcbiAgICAgICAgdGhpcy5vblVuU2VsZWN0LmVtaXQoZXZ0KTtcbiAgICB9XG5cbiAgICBoYW5kbGVDaGFuZ2VFbnRpdHkoZXZ0KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IGV2dC52YWx1ZTtcbiAgICAgICAgdGhpcy5kaXJ0eSA9IHRydWU7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5zZWxlY3RlZFZhbHVlKTtcbiAgICAgICAgdGhpcy5maXJlQ2hhbmdlRXZlbnQoKTtcblxuICAgIH1cblxuICAgIGhhbmRsZUhpZGUoZGF0YSkge1xuICAgICAgICB0aGlzLnNob3dEZXRhaWxGb3JtID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLmRpcnR5KSB7XG4gICAgICAgICAgICB0aGlzLl90cmlnZ2VyUHJvY2Vzc0RhdGEoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2xpY2tTdWJtaXRCdXR0b24oZXZ0LCBlbnRpdHlQaWNrZXJCb3g6IEVudGl0eVBpY2tlckJveENvbXBvbmVudCkge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sLm11bHRpcGxlKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUhpZGUoZXZ0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLnNlbGVjdGVkRW50aXR5UGlja2VyQm94Um93RGF0YSkge1xuICAgICAgICAgICAgZW50aXR5UGlja2VyQm94ICYmIGVudGl0eVBpY2tlckJveC5oYW5kbGVQaWNrKHRoaXMuc2VsZWN0ZWRFbnRpdHlQaWNrZXJCb3hSb3dEYXRhKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0RldGFpbEZvcm0gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZpcmVDaGFuZ2VFdmVudCgpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5zZWxlY3RlZFZhbHVlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5tdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gW107XG4gICAgICAgICAgICBpZiAob2JqKSB7XG4gICAgICAgICAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IG9iajtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gb2JqLm1hcCh4ID0+IHRoaXMuZ2V0T2JqU2VsZWN0VmFsdWVGcm9tVmFsdWUoeCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyUHJvY2Vzc0RhdGEoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgaWYgKG9iaikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHRoaXMuZ2V0T2JqU2VsZWN0VmFsdWVGcm9tVmFsdWUob2JqKTtcbiAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyUHJvY2Vzc0RhdGEoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTYW5nIFZWIMSRw6Mgc+G7rWFcbiAgICBwcml2YXRlIGdldE9ialNlbGVjdFZhbHVlRnJvbVZhbHVlKHZhbHVlKSB7XG4gICAgICAgIGxldCB0ZW1wID0ge307XG4gICAgICAgIGlmICh0eXBlb2YgKHZhbHVlKSA9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgdGVtcCA9IHtcbiAgICAgICAgICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgICAgICAgICBfZHJvcGRvd252YWx1ZTogdGhpcy5jb250cm9sLnZhbHVlRmllbGQsXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0ZW1wID0ge1xuICAgICAgICAgICAgICAgIF9kcm9wZG93bnZhbHVlOiB0aGlzLmNvbnRyb2wudmFsdWVGaWVsZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0ZW1wW3RoaXMuY29udHJvbC52YWx1ZUZpZWxkXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0ZW1wO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuICAgIGFzeW5jIF92aWV3KHJvd0RhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5vblZpZXdEZXRhaWwpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY29udHJvbC5vblZpZXdEZXRhaWwocm93RGF0YSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgIH1cbn1cbiJdfQ==
@@ -753,7 +753,7 @@ FileUploadComponent.decorators = [
753
753
  },
754
754
  ComponentContextService
755
755
  ],
756
- styles: ["::ng-deep .file-upload{display:flex;border:1px solid #ced4da;border-radius:4px}::ng-deep .file-upload .fl-icon{flex:0 0 30px;display:flex;font-size:20px;justify-content:center;align-items:center;border-right:1px solid #ced4da}::ng-deep .file-upload .fl-icon>i{font-size:16px!important}::ng-deep .file-upload .fl-file-name{display:flex;align-items:center;flex-grow:1;cursor:pointer;opacity:.8;padding-left:12px;color:#109bf8;width:calc(100% - 110px);position:relative}::ng-deep .file-upload .fl-file-name>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::ng-deep .file-upload .fl-file-name:hover{opacity:1}::ng-deep .file-upload .fl-buttons{flex:0 0 80px;display:flex;border-right:1px solid #ced4da;align-items:center;justify-content:space-evenly;border-left:1px solid #ced4da}::ng-deep .file-upload .nfl-signature{display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:.8;padding:0 10px;color:#109bf8;overflow:hidden}::ng-deep .file-upload .nfl-signature:hover{opacity:1}::ng-deep .file-upload .signature i{position:absolute;top:0;right:0}"]
756
+ styles: ["::ng-deep .file-upload{display:flex;border:1px solid #ced4da;border-radius:4px}::ng-deep .file-upload .fl-icon{flex:0 0 30px;display:flex;font-size:20px;justify-content:center;align-items:center;border-right:1px solid #ced4da}::ng-deep .file-upload .fl-icon>i{font-size:16px!important}::ng-deep .file-upload .fl-file-name{display:flex;align-items:center;flex-grow:1;cursor:pointer;opacity:.8;padding-left:12px;color:#109bf8;width:calc(100% - 110px);position:relative}::ng-deep .file-upload .fl-file-name>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::ng-deep .file-upload .fl-file-name:hover{opacity:1}::ng-deep .file-upload .fl-buttons{flex:0 0 80px;display:flex;border-right:1px solid #ced4da;align-items:center;justify-content:space-evenly;border-left:1px solid #ced4da}::ng-deep .file-upload .nfl-signature{display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:.8;padding:0 10px;color:#109bf8;overflow:hidden}::ng-deep .file-upload .nfl-signature:hover{opacity:1}::ng-deep .file-upload .signature i{position:absolute;top:50%!important;transform:translate(-50%,-50%)!important;right:0}"]
757
757
  },] }
758
758
  ];
759
759
  FileUploadComponent.ctorParameters = () => [
@@ -6,12 +6,12 @@ export class UserPickerSetting {
6
6
  }
7
7
  }
8
8
  export const DatasourceFieldFilter = [
9
- { id: 'userName', ten: 'Tài khoản' },
10
- { id: 'code', ten: 'Mã' },
11
- { id: 'email', ten: 'Email' },
9
+ { id: 'userName', ten: 'Tài khoản', placeholder: 'thuan.pd\nvan.nbt' },
10
+ { id: 'code', ten: 'Mã cán bộ', placeholder: '00000408\n00014270' },
11
+ { id: 'email', ten: 'Email', placeholder: 'linh123@gmail.com\ntnam123@gmail.com' },
12
12
  ];
13
13
  export const DatasourceFilterCanBo = [
14
- { id: 'code', ten: 'Mã' },
15
- { id: 'email', ten: 'Email' }
14
+ { id: 'code', ten: 'Mã cán bộ', placeholder: '00000408\n00014270' },
15
+ { id: 'email', ten: 'Email', placeholder: 'linh123@gmail.com\ntnam123@gmail.com' },
16
16
  ];
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1waWNrZXItc2V0dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3VzZXItcGlja2VyL21vZGVscy91c2VyLXBpY2tlci1zZXR0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxpQkFBaUI7SUFBOUI7UUFFSSx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFFN0IsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0NBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNqQyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRTtJQUNwQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRTtJQUN6QixFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRTtDQUNoQyxDQUFDO0FBR0YsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFDakMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUU7SUFDekIsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUU7Q0FDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbHRlciB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ncmlkLWluZm8nO1xuXG5leHBvcnQgY2xhc3MgVXNlclBpY2tlclNldHRpbmcge1xuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+O1xuICAgIGxhenlMb2FkT3JnYW5pemF0aW9uID0gZmFsc2U7XG4gICAgcGFyZW50T3JnQ29kZT86IHN0cmluZztcbiAgICBwbGFjZWhvbGRlcj89ICcnO1xuICAgIHJlcXVpcmVkPz0gZmFsc2U7XG59XG5cbmV4cG9ydCBjb25zdCBEYXRhc291cmNlRmllbGRGaWx0ZXIgPSBbXG4gICAgeyBpZDogJ3VzZXJOYW1lJywgdGVuOiAnVMOgaSBraG/huqNuJyB9LFxuICAgIHsgaWQ6ICdjb2RlJywgdGVuOiAnTcOjJyB9LFxuICAgIHsgaWQ6ICdlbWFpbCcsIHRlbjogJ0VtYWlsJyB9LFxuXTtcblxuXG5leHBvcnQgY29uc3QgRGF0YXNvdXJjZUZpbHRlckNhbkJvID0gW1xuICAgIHsgaWQ6ICdjb2RlJywgdGVuOiAnTcOjJyB9LFxuICAgIHsgaWQ6ICdlbWFpbCcsIHRlbjogJ0VtYWlsJyB9XG5dOyJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1waWNrZXItc2V0dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3VzZXItcGlja2VyL21vZGVscy91c2VyLXBpY2tlci1zZXR0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxpQkFBaUI7SUFBOUI7UUFFSSx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFFN0IsZ0JBQVcsR0FBSSxFQUFFLENBQUM7UUFDbEIsYUFBUSxHQUFJLEtBQUssQ0FBQztJQUN0QixDQUFDO0NBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNqQyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUU7SUFDdEUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFO0lBQ25FLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxzQ0FBc0MsRUFBRTtDQUNyRixDQUFDO0FBR0YsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFDakMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFO0lBQ25FLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxzQ0FBc0MsRUFBRTtDQUNyRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dyaWQtaW5mbyc7XG5cbmV4cG9ydCBjbGFzcyBVc2VyUGlja2VyU2V0dGluZyB7XG4gICAgZGVmYXVsdEZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47XG4gICAgbGF6eUxvYWRPcmdhbml6YXRpb24gPSBmYWxzZTtcbiAgICBwYXJlbnRPcmdDb2RlPzogc3RyaW5nO1xuICAgIHBsYWNlaG9sZGVyPyA9ICcnO1xuICAgIHJlcXVpcmVkPyA9IGZhbHNlO1xufVxuXG5leHBvcnQgY29uc3QgRGF0YXNvdXJjZUZpZWxkRmlsdGVyID0gW1xuICAgIHsgaWQ6ICd1c2VyTmFtZScsIHRlbjogJ1TDoGkga2hv4bqjbicsIHBsYWNlaG9sZGVyOiAndGh1YW4ucGRcXG52YW4ubmJ0JyB9LFxuICAgIHsgaWQ6ICdjb2RlJywgdGVuOiAnTcOjIGPDoW4gYuG7mScsIHBsYWNlaG9sZGVyOiAnMDAwMDA0MDhcXG4wMDAxNDI3MCcgfSxcbiAgICB7IGlkOiAnZW1haWwnLCB0ZW46ICdFbWFpbCcsIHBsYWNlaG9sZGVyOiAnbGluaDEyM0BnbWFpbC5jb21cXG50bmFtMTIzQGdtYWlsLmNvbScgfSxcbl07XG5cblxuZXhwb3J0IGNvbnN0IERhdGFzb3VyY2VGaWx0ZXJDYW5CbyA9IFtcbiAgICB7IGlkOiAnY29kZScsIHRlbjogJ03DoyBjw6FuIGLhu5knLCBwbGFjZWhvbGRlcjogJzAwMDAwNDA4XFxuMDAwMTQyNzAnIH0sXG4gICAgeyBpZDogJ2VtYWlsJywgdGVuOiAnRW1haWwnLCBwbGFjZWhvbGRlcjogJ2xpbmgxMjNAZ21haWwuY29tXFxudG5hbTEyM0BnbWFpbC5jb20nIH0sXG5dOyJdfQ==
@@ -11,12 +11,15 @@ import { EntityPickerBoxComponent } from '../../entity-picker/entity-picker-box/
11
11
  import { AdvanceDataEntityPicker } from '../../entity-picker/model/advance-data';
12
12
  import { CoCauToChucTestService } from '../servicetest/cocautochuc-test.service';
13
13
  import { DatasourceFieldFilter } from '../models/user-picker-setting';
14
+ import { ModuleConfigService } from '../../../services/module-config.service';
14
15
  export class UserPickerBoxComponent extends ComponentBase {
15
- constructor(_injector, _userV5Service, _organizationService, _coCauToChucService) {
16
+ constructor(_injector, _userV5Service, _organizationService, _coCauToChucService, _moduleConfigService) {
17
+ var _a, _b, _c;
16
18
  super(_injector);
17
19
  this._userV5Service = _userV5Service;
18
20
  this._organizationService = _organizationService;
19
21
  this._coCauToChucService = _coCauToChucService;
22
+ this._moduleConfigService = _moduleConfigService;
20
23
  this.multiple = false;
21
24
  this.disabled = false;
22
25
  this.enableCaching = true;
@@ -45,6 +48,10 @@ export class UserPickerBoxComponent extends ComponentBase {
45
48
  this.rootFilter = {};
46
49
  this.treeLoading = false;
47
50
  this.datasourceFieldFilter = DatasourceFieldFilter;
51
+ const _environment = _moduleConfigService.getConfig().environment;
52
+ if (((_b = (_a = _environment.cauHinhNghiepVu) === null || _a === void 0 ? void 0 : _a.datasourceFieldFilterCanBo) === null || _b === void 0 ? void 0 : _b.length) > 0) {
53
+ this.datasourceFieldFilter = (_c = _environment.cauHinhNghiepVu) === null || _c === void 0 ? void 0 : _c.datasourceFieldFilterCanBo;
54
+ }
48
55
  }
49
56
  ngOnInit() {
50
57
  this.control.plusUrl = 'ForUserPicker';
@@ -190,7 +197,8 @@ UserPickerBoxComponent.ctorParameters = () => [
190
197
  { type: Injector },
191
198
  { type: UserV5Service },
192
199
  { type: OrganizationService },
193
- { type: CoCauToChucTestService }
200
+ { type: CoCauToChucTestService },
201
+ { type: ModuleConfigService }
194
202
  ];
195
203
  UserPickerBoxComponent.propDecorators = {
196
204
  multiple: [{ type: Input }],
@@ -211,4 +219,4 @@ UserPickerBoxComponent.propDecorators = {
211
219
  onUnSelect: [{ type: Output }],
212
220
  onDone: [{ type: Output }]
213
221
  };
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1waWNrZXItYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3VzZXItcGlja2VyL3VzZXItcGlja2VyLWJveC91c2VyLXBpY2tlci1ib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHcEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JFLE9BQU8sRUFDSCxlQUFlLEVBQ2YseUJBQXlCLEVBQ3pCLFFBQVEsRUFDUix1QkFBdUIsRUFDdkIsUUFBUSxFQUNYLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQVF0RSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsYUFBYTtJQTZDckQsWUFDSSxTQUFtQixFQUNULGNBQTZCLEVBQzdCLG9CQUF5QyxFQUN6QyxtQkFBMkM7UUFFckQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBSlAsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUN6Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXdCO1FBaERoRCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFNckIsVUFBSyxHQUFHLElBQUksQ0FBQztRQUNiLFdBQU0sR0FBRyxHQUFHLENBQUM7UUFNWixnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BELGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsRCxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakQsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25ELFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoRCxpQ0FBNEIsR0FBRywwQkFBMEIsQ0FBQztRQUMxRCxvQ0FBK0IsR0FBRyw2QkFBNkIsQ0FBQztRQUNoRSx1Q0FBa0MsR0FBRyxnQ0FBZ0MsQ0FBQztRQUN0RSwwQ0FBcUMsR0FBRywwQkFBMEIsQ0FBQztRQUNuRSxhQUFRLEdBQUcsUUFBUSxDQUFDO1FBRTdCLGlCQUFZLEdBQWU7WUFDdkI7Z0JBQ0ksS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsWUFBWSxFQUFFLG1CQUFtQjtnQkFDakMsYUFBYSxFQUFFLGNBQWM7Z0JBQzdCLFFBQVEsRUFBRSxFQUFFO2FBQ2Y7U0FBQyxDQUFDO1FBRVAsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUdyQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQiwwQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQztJQVM5QyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLGVBQWUsQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixHQUFHO1lBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7U0FDM0UsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDckQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ25CO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFLO1FBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQUs7SUFDeEIsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFLO0lBRWxCLENBQUM7SUFFSyxVQUFVLENBQUMsS0FBSzs7WUFDbEIsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7WUFDeEMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDMUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7YUFDckM7aUJBQ0k7Z0JBQ0QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQzlDLElBQUksTUFBTSxFQUFFO29CQUNSLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO2lCQUNyQztxQkFDSTtvQkFDRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQzNDO2FBQ0o7WUFDRCxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN4RixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLE1BQU0sQ0FBQztnQkFDbEMsS0FBSyxFQUFFLG9CQUFvQjtnQkFDM0IsUUFBUSxFQUFFLFFBQVEsQ0FBQyxPQUFPO2dCQUMxQixLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEdBQUc7YUFDdEMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsR0FBRztnQkFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUM7YUFDbkUsQ0FBQztZQUVGLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDekQsZ0VBQWdFO1FBQ3BFLENBQUM7S0FBQTtJQUVLLFFBQVE7O1lBQ1YsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixFQUFFO2dCQUMxQyxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQ3RHLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUUxQyw0RkFBNEY7Z0JBQzVGLCtCQUErQjtnQkFDL0IsNkNBQTZDO2FBQ2hEO2lCQUNJO2dCQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdkI7UUFDTCxDQUFDO0tBQUE7SUFFRCxRQUFRLENBQUMsS0FBVSxFQUFFLE1BQU87UUFDeEIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixFQUFFO1lBQzFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUMxRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUU7b0JBQ2IsS0FBSyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO29CQUM3QixJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO3dCQUMvQyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztxQkFDckI7b0JBRUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFO3dCQUMzQiwrQkFBK0I7d0JBQy9CLG1EQUFtRDt3QkFDbkQsd0JBQXdCO3dCQUN4QixPQUFPO3dCQUNQLHlCQUF5Qjt3QkFDekIscUJBQXFCO3dCQUNyQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7cUJBQ2pDO2lCQUNKO2dCQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUV4QixJQUFJLE1BQU0sRUFBRTtvQkFDUixLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztpQkFDekI7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQ0k7WUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBTSxNQUFNLEVBQUMsRUFBRTtnQkFDakcsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUV4QixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFO29CQUVuQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLE1BQU0sQ0FBQzt3QkFDbEMsS0FBSyxFQUFFLG9CQUFvQjt3QkFDM0IsUUFBUSxFQUFFLFFBQVEsQ0FBQyxPQUFPO3dCQUMxQixLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRztxQkFDMUMsQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2lCQUM1QjtZQUNMLENBQUMsQ0FBQSxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFSyxZQUFZLENBQUMsT0FBTzs7WUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN4QyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN4QyxDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0UsQ0FBQztLQUFBO0lBRUQsVUFBVSxDQUFDLElBQUk7UUFDWCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6RixNQUFNLFlBQVksR0FBZTtZQUM3QixLQUFLO1lBQ0wsS0FBSyxFQUFFLEtBQUs7WUFDWixLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDekIsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxlQUFlLENBQUMsR0FBRztRQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxHQUFHO1FBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxHQUFHO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUFJO1FBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBRztRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7OztZQTdNSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IsNjhFQUErQztnQkFFL0MsU0FBUyxFQUFFLENBQUMsdUJBQXVCLENBQUM7O2FBQ3ZDOzs7WUExQmlDLFFBQVE7WUFjakMsYUFBYTtZQURiLG1CQUFtQjtZQUtuQixzQkFBc0I7Ozt1QkFVMUIsS0FBSzt1QkFDTCxLQUFLOzRCQUNMLEtBQUs7NkJBQ0wsS0FBSzs0QkFFTCxLQUFLOzBCQUNMLEtBQUs7c0JBQ0wsS0FBSztvQkFDTCxLQUFLO3FCQUNMLEtBQUs7NEJBQ0wsS0FBSzs2QkFDTCxLQUFLOzhCQUVMLFNBQVMsU0FBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7MEJBRTlDLE1BQU07d0JBQ04sTUFBTTt1QkFDTixNQUFNO3lCQUNOLE1BQU07cUJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlbGVjdEl0ZW0sIFRyZWVOb2RlIH0gZnJvbSAndG4tY3VzdG9tLXByaW1lbmcvYXBpJztcblxuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hcHAtY29udGV4dC9jb21wb25lbnQtY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBvbmVudEJhc2UgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Jhc2UvY29tcG9uZW50LWJhc2UnO1xuaW1wb3J0IHtcbiAgICBDcnVkTGlzdFNldHRpbmcsXG4gICAgRW50aXR5UGlja2VyQ29udHJvbFNjaGVtYSxcbiAgICBPcGVyYXRvcixcbiAgICBVc2VyUGlja2VyQ29udHJvbFNjaGVtYSxcbiAgICBVc2VyVHlwZVxufSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ncmlkLWluZm8nO1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL29yZ2FuaXphdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJWNVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91c2VyLXY1LnNlcnZpY2UnO1xuaW1wb3J0IHsgYXBwZW5kRGVmYXVsdEZpbHRlciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NvbW1vbic7XG5pbXBvcnQgeyBFbnRpdHlQaWNrZXJCb3hDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXItYm94L2VudGl0eS1waWNrZXItYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZHZhbmNlRGF0YUVudGl0eVBpY2tlciB9IGZyb20gJy4uLy4uL2VudGl0eS1waWNrZXIvbW9kZWwvYWR2YW5jZS1kYXRhJztcbmltcG9ydCB7IENvQ2F1VG9DaHVjVGVzdFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNldGVzdC9jb2NhdXRvY2h1Yy10ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0YXNvdXJjZUZpZWxkRmlsdGVyIH0gZnJvbSAnLi4vbW9kZWxzL3VzZXItcGlja2VyLXNldHRpbmcnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VzZXItcGlja2VyLWJveCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VzZXItcGlja2VyLWJveC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdXNlci1waWNrZXItYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbQ29tcG9uZW50Q29udGV4dFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBVc2VyUGlja2VyQm94Q29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGVuYWJsZUNhY2hpbmcgPSB0cnVlO1xuICAgIEBJbnB1dCgpIGNvbnRyb2xTZXR0aW5nOiBVc2VyUGlja2VyQ29udHJvbFNjaGVtYTtcblxuICAgIEBJbnB1dCgpIHBhcmVudFNldHRpbmc6IENydWRMaXN0U2V0dGluZztcbiAgICBASW5wdXQoKSBhZHZhbmNlRGF0YTogQWR2YW5jZURhdGFFbnRpdHlQaWNrZXI7XG4gICAgQElucHV0KCkgY29udHJvbDogRW50aXR5UGlja2VyQ29udHJvbFNjaGVtYTtcbiAgICBASW5wdXQoKSB3aWR0aCA9IDExNzA7XG4gICAgQElucHV0KCkgaGVpZ2h0ID0gOTAwO1xuICAgIEBJbnB1dCgpIHNlbGVjdGVkVmFsdWU7XG4gICAgQElucHV0KCkgcmVhZE9ubHlWYWx1ZXM6IHN0cmluZ1tdO1xuXG4gICAgQFZpZXdDaGlsZCgnZW50aXR5UGlja2VyQm94JywgeyBzdGF0aWM6IGZhbHNlIH0pIGVudGl0eVBpY2tlckJveDogRW50aXR5UGlja2VyQm94Q29tcG9uZW50O1xuXG4gICAgQE91dHB1dCgpIG9uUm93U2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25TZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvblVuU2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25Eb25lOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHJlYWRvbmx5IFNUT1JBR0VfS0VZX1VTRVJfUElDS0VSX05BTUUgPSAndXNlcl9waWNrZXJfc3RvcmFnZV9uYW1lJztcbiAgICByZWFkb25seSBTVE9SQUdFX0tFWV9VU0VSX1BJQ0tFUl9JRF9VU0VSID0gJ3VzZXJfcGlja2VyX3N0b3JhZ2VfaWRfdXNlcic7XG4gICAgcmVhZG9ubHkgU1RPUkFHRV9LRVlfVVNFUl9QSUNLRVJfU0VBUkNIX0tFWSA9ICd1c2VyX3BpY2tlcl9zdG9yYWdlX3NlYXJjaF9rZXknO1xuICAgIHJlYWRvbmx5IFNUT1JBR0VfS0VZX1VTRVJfUElDS0VSX05PREVfU0VMRUNURUQgPSAndXNlcl9waWNrZXJfc3RvcmFnZV9ub2RlJztcbiAgICByZWFkb25seSB1c2VyVHlwZSA9IFVzZXJUeXBlO1xuXG4gICAgcm9vdFRyZWVOb2RlOiBUcmVlTm9kZVtdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogJycsXG4gICAgICAgICAgICBkYXRhOiAnLTEnLFxuICAgICAgICAgICAgZXhwYW5kZWRJY29uOiAncGkgcGktZm9sZGVyLW9wZW4nLFxuICAgICAgICAgICAgY29sbGFwc2VkSWNvbjogJ3BpIHBpLWZvbGRlcicsXG4gICAgICAgICAgICBjaGlsZHJlbjogW11cbiAgICAgICAgfV07XG5cbiAgICBpc0ZpcnN0TG9hZCA9IHRydWU7XG4gICAgcm9vdEZpbHRlcjogYW55ID0ge307XG5cbiAgICBzZWxlY3RlZFRyZWVOb2RlOiBhbnk7XG4gICAgdHJlZUxvYWRpbmcgPSBmYWxzZTtcbiAgICBzZWxlY3RlZE5vZGVEYXRhOiBhbnk7XG4gICAgZGF0YXNvdXJjZUZpZWxkRmlsdGVyID0gRGF0YXNvdXJjZUZpZWxkRmlsdGVyO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByb3RlY3RlZCBfdXNlclY1U2VydmljZTogVXNlclY1U2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIF9vcmdhbml6YXRpb25TZXJ2aWNlOiBPcmdhbml6YXRpb25TZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgX2NvQ2F1VG9DaHVjU2VydmljZTogQ29DYXVUb0NodWNUZXN0U2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcihfaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmNvbnRyb2wucGx1c1VybCA9ICdGb3JVc2VyUGlja2VyJztcbiAgICAgICAgdGhpcy5jb250cm9sLmZpbHRlcldoaWxlUHJvY2VzcyA9IFtcbiAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCd1c2VyVHlwZScsIE9wZXJhdG9yLmVxdWFsLCB0aGlzLmNvbnRyb2xTZXR0aW5nLnVzZXJUeXBlKVxuICAgICAgICBdO1xuICAgICAgICBpZiAodGhpcy5jb250cm9sU2V0dGluZy51c2VyVHlwZSA9PSB0aGlzLnVzZXJUeXBlLkNhbkJvKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRUcmVlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVTZWxlY3QoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5vblNlbGVjdC5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBoYW5kbGVDYW5jZWxEaWFsb2coZXZlbnQpIHtcbiAgICB9XG5cbiAgICBvbk5vZGVFeHBhbmQoZXZlbnQpIHtcblxuICAgIH1cblxuICAgIGFzeW5jIG5vZGVTZWxlY3QoZXZlbnQpIHtcbiAgICAgICAgbGV0IHRhcmdldCA9IGV2ZW50Lm9yaWdpbmFsRXZlbnQudGFyZ2V0O1xuICAgICAgICBpZiAodGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnY3VzdG9tLW5vZGUnKSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGVEYXRhID0gdGFyZ2V0LmlkO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoJy5jdXN0b20tbm9kZScpO1xuICAgICAgICAgICAgaWYgKHRhcmdldCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlRGF0YSA9IHRhcmdldC5pZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlRGF0YSA9IGV2ZW50Lm5vZGUuZGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLlNUT1JBR0VfS0VZX1VTRVJfUElDS0VSX05PREVfU0VMRUNURUQsIHRoaXMuc2VsZWN0ZWROb2RlRGF0YSk7XG4gICAgICAgIHRoaXMucm9vdEZpbHRlci5wYXJlbnRJZCA9IG5ldyBGaWx0ZXIoe1xuICAgICAgICAgICAgZmllbGQ6ICdpZFBhdGhPcmdhbml6YXRpb24nLFxuICAgICAgICAgICAgb3BlcmF0b3I6IE9wZXJhdG9yLmNvbnRhaW4sXG4gICAgICAgICAgICB2YWx1ZTogYDske3RoaXMuc2VsZWN0ZWROb2RlRGF0YX07YFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb250cm9sLmZpbHRlcldoaWxlUHJvY2VzcyA9IFtcbiAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCdpZERvblZpJywgT3BlcmF0b3IuZXF1YWwsIHRoaXMuc2VsZWN0ZWROb2RlRGF0YSlcbiAgICAgICAgXTtcblxuICAgICAgICB0aGlzLmVudGl0eVBpY2tlckJveC5kYXRhQ29tcG9uZW50Ll90cmlnZ2VyUHJvY2Vzc0RhdGEoKTtcbiAgICAgICAgLy8gdGhpcy5lbnRpdHlQaWNrZXJCb3guc2VsZWN0ZWRDb21wb25lbnQuX3RyaWdnZXJQcm9jZXNzRGF0YSgpO1xuICAgIH1cblxuICAgIGFzeW5jIGluaXRUcmVlKCkge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sU2V0dGluZy5sYXp5TG9hZE9yZ2FuaXphdGlvbikge1xuICAgICAgICAgICAgY29uc3QgcnMgPSBhd2FpdCB0aGlzLl9vcmdhbml6YXRpb25TZXJ2aWNlLmdldE9yZ2FuaXphdGlvbkJ5UGFyZW50SWQodGhpcy5fY29tbW9uU2VydmljZS5ndWlkRW1wdHkoKSk7XG4gICAgICAgICAgICB0aGlzLnJvb3RUcmVlTm9kZSA9IHJzLmRhdGE7XG4gICAgICAgICAgICB0aGlzLmxvYWRUcmVlKHRoaXMucm9vdFRyZWVOb2RlWzBdLCB0cnVlKTtcblxuICAgICAgICAgICAgLy8gY29uc3QgcnMgPSBhd2FpdCB0aGlzLl9jb0NhdVRvQ2h1Y1NlcnZpY2UuZ2V0QnlQYXJlbnRJZCh0aGlzLl9jb21tb25TZXJ2aWNlLmd1aWRFbXB0eSgpKTtcbiAgICAgICAgICAgIC8vIHRoaXMucm9vdFRyZWVOb2RlID0gcnMuZGF0YTtcbiAgICAgICAgICAgIC8vIHRoaXMubG9hZFRyZWUodGhpcy5yb290VHJlZU5vZGVbMF0sIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5sb2FkVHJlZShudWxsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxvYWRUcmVlKGV2ZW50OiBhbnksIGlzUm9vdD8pIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbFNldHRpbmcubGF6eUxvYWRPcmdhbml6YXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuX29yZ2FuaXphdGlvblNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uQnlQYXJlbnRJZChldmVudC5kYXRhKS50aGVuKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5kYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LmNoaWxkcmVuID0gcmVzdWx0LmRhdGE7XG4gICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5jaGlsZHJlbiAmJiBldmVudC5jaGlsZHJlbi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmxlYWYgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gcmVzdWx0LmRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhciBpdGVtID0gcmVzdWx0LmRhdGFba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIChpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGl0ZW0ubGVhZiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgaXRlbS5sZWFmID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBjP3Agbmg/dCBBUElcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5kYXRhW2tleV0ubGVhZiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMudHJlZUxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgaWYgKGlzUm9vdCkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5leHBhbmRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9vcmdhbml6YXRpb25TZXJ2aWNlLmdldE9yZ2FuaXphdGlvblRyZWUodGhpcy5jb250cm9sU2V0dGluZy5wYXJlbnRPcmdDb2RlKS50aGVuKGFzeW5jIHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb290VHJlZU5vZGUgPSByZXN1bHQuZGF0YTtcbiAgICAgICAgICAgICAgICB0aGlzLnJvb3RUcmVlTm9kZVswXS5leHBhbmRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy50cmVlTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb250cm9sU2V0dGluZy5wYXJlbnRPcmdDb2RlKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb290RmlsdGVyLnBhcmVudElkID0gbmV3IEZpbHRlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZDogJ2lkUGF0aE9yZ2FuaXphdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcjogT3BlcmF0b3IuY29udGFpbixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBgOyR7dGhpcy5yb290VHJlZU5vZGVbMF0uZGF0YX07YFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ZpcnN0TG9hZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgbW9kaWZ5RmlsdGVyKGZpbHRlcnMpIHtcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5yb290RmlsdGVyKS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgZmlsdGVycy5wdXNoKHRoaXMucm9vdEZpbHRlcltpdGVtXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBhd2FpdCBhcHBlbmREZWZhdWx0RmlsdGVyKGZpbHRlcnMsIHRoaXMuY29udHJvbFNldHRpbmcuZGVmYXVsdEZpbHRlcnMpO1xuICAgIH1cblxuICAgIHNlbGVjdFVzZXIodXNlcikge1xuICAgICAgICBjb25zdCBsYWJlbCA9IHVzZXIuZW1haWwgPyBgJHt1c2VyLmZ1bGxOYW1lTmV3fSAoJHt1c2VyLmVtYWlsfSlgIDogYCR7dXNlci5mdWxsTmFtZU5ld31gO1xuICAgICAgICBjb25zdCBzZWxlY3RlZFVzZXIgPSA8U2VsZWN0SXRlbT57XG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIHRpdGxlOiBsYWJlbCxcbiAgICAgICAgICAgIHZhbHVlOiB1c2VyLmluc3RhbmNlSWRcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLm9uU2VsZWN0LmVtaXQoc2VsZWN0ZWRVc2VyKTtcbiAgICB9XG5cbiAgICBoYW5kbGVSb3dTZWxlY3QoZXZ0KSB7XG4gICAgICAgIHRoaXMub25Sb3dTZWxlY3QuZW1pdChldnQpO1xuICAgIH1cblxuICAgIGhhbmRsZVNlbGVjdEVudGl0eShldnQpIHtcbiAgICAgICAgdGhpcy5vblNlbGVjdC5lbWl0KGV2dCk7XG4gICAgfVxuXG4gICAgaGFuZGxlVW5TZWxlY3RFbnRpdHkoZXZ0KSB7XG4gICAgICAgIHRoaXMub25VblNlbGVjdC5lbWl0KGV2dCk7XG4gICAgfVxuXG4gICAgaGFuZGxlQ2hhbmdlZEVudGl0eShkYXRhKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VkLmVtaXQoZGF0YSk7XG4gICAgfVxuXG4gICAgaGFuZGxlRG9uZShldnQpIHtcbiAgICAgICAgdGhpcy5vbkRvbmUuZW1pdChldnQpO1xuICAgIH1cbn1cbiJdfQ==
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1waWNrZXItYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3VzZXItcGlja2VyL3VzZXItcGlja2VyLWJveC91c2VyLXBpY2tlci1ib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHcEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JFLE9BQU8sRUFDSCxlQUFlLEVBQ2YseUJBQXlCLEVBQ3pCLFFBQVEsRUFDUix1QkFBdUIsRUFDdkIsUUFBUSxFQUNYLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQVE5RSxNQUFNLE9B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S0FBSzs4QkFFTCxTQUFTLFNBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOzBCQUU5QyxNQUFNO3dCQUNOLE1BQU07dUJBQ04sTUFBTTt5QkFDTixNQUFNO3FCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3RJdGVtLCBUcmVlTm9kZSB9IGZyb20gJ3RuLWN1c3RvbS1wcmltZW5nL2FwaSc7XG5cbmltcG9ydCB7IENvbXBvbmVudENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLWNvbnRleHQvY29tcG9uZW50LWNvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2NvbXBvbmVudC1iYXNlJztcbmltcG9ydCB7XG4gICAgQ3J1ZExpc3RTZXR0aW5nLFxuICAgIEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWEsXG4gICAgT3BlcmF0b3IsXG4gICAgVXNlclBpY2tlckNvbnRyb2xTY2hlbWEsXG4gICAgVXNlclR5cGVcbn0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYSc7XG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ3JpZC1pbmZvJztcbmltcG9ydCB7IE9yZ2FuaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmdhbml6YXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyVjVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXNlci12NS5zZXJ2aWNlJztcbmltcG9ydCB7IGFwcGVuZERlZmF1bHRGaWx0ZXIgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb21tb24nO1xuaW1wb3J0IHsgRW50aXR5UGlja2VyQm94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLWJveC9lbnRpdHktcGlja2VyLWJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWR2YW5jZURhdGFFbnRpdHlQaWNrZXIgfSBmcm9tICcuLi8uLi9lbnRpdHktcGlja2VyL21vZGVsL2FkdmFuY2UtZGF0YSc7XG5pbXBvcnQgeyBDb0NhdVRvQ2h1Y1Rlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXRlc3QvY29jYXV0b2NodWMtdGVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFzb3VyY2VGaWVsZEZpbHRlciB9IGZyb20gJy4uL21vZGVscy91c2VyLXBpY2tlci1zZXR0aW5nJztcbmltcG9ydCB7IE1vZHVsZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tb2R1bGUtY29uZmlnLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VzZXItcGlja2VyLWJveCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VzZXItcGlja2VyLWJveC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdXNlci1waWNrZXItYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbQ29tcG9uZW50Q29udGV4dFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBVc2VyUGlja2VyQm94Q29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGVuYWJsZUNhY2hpbmcgPSB0cnVlO1xuICAgIEBJbnB1dCgpIGNvbnRyb2xTZXR0aW5nOiBVc2VyUGlja2VyQ29udHJvbFNjaGVtYTtcblxuICAgIEBJbnB1dCgpIHBhcmVudFNldHRpbmc6IENydWRMaXN0U2V0dGluZztcbiAgICBASW5wdXQoKSBhZHZhbmNlRGF0YTogQWR2YW5jZURhdGFFbnRpdHlQaWNrZXI7XG4gICAgQElucHV0KCkgY29udHJvbDogRW50aXR5UGlja2VyQ29udHJvbFNjaGVtYTtcbiAgICBASW5wdXQoKSB3aWR0aCA9IDExNzA7XG4gICAgQElucHV0KCkgaGVpZ2h0ID0gOTAwO1xuICAgIEBJbnB1dCgpIHNlbGVjdGVkVmFsdWU7XG4gICAgQElucHV0KCkgcmVhZE9ubHlWYWx1ZXM6IHN0cmluZ1tdO1xuXG4gICAgQFZpZXdDaGlsZCgnZW50aXR5UGlja2VyQm94JywgeyBzdGF0aWM6IGZhbHNlIH0pIGVudGl0eVBpY2tlckJveDogRW50aXR5UGlja2VyQm94Q29tcG9uZW50O1xuXG4gICAgQE91dHB1dCgpIG9uUm93U2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25TZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvblVuU2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25Eb25lOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHJlYWRvbmx5IFNUT1JBR0VfS0VZX1VTRVJfUElDS0VSX05BTUUgPSAndXNlcl9waWNrZXJfc3RvcmFnZV9uYW1lJztcbiAgICByZWFkb25seSBTVE9SQUdFX0tFWV9VU0VSX1BJQ0tFUl9JRF9VU0VSID0gJ3VzZXJfcGlja2VyX3N0b3JhZ2VfaWRfdXNlcic7XG4gICAgcmVhZG9ubHkgU1RPUkFHRV9LRVlfVVNFUl9QSUNLRVJfU0VBUkNIX0tFWSA9ICd1c2VyX3BpY2tlcl9zdG9yYWdlX3NlYXJjaF9rZXknO1xuICAgIHJlYWRvbmx5IFNUT1JBR0VfS0VZX1VTRVJfUElDS0VSX05PREVfU0VMRUNURUQgPSAndXNlcl9waWNrZXJfc3RvcmFnZV9ub2RlJztcbiAgICByZWFkb25seSB1c2VyVHlwZSA9IFVzZXJUeXBlO1xuXG4gICAgcm9vdFRyZWVOb2RlOiBUcmVlTm9kZVtdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogJycsXG4gICAgICAgICAgICBkYXRhOiAnLTEnLFxuICAgICAgICAgICAgZXhwYW5kZWRJY29uOiAncGkgcGktZm9sZGVyLW9wZW4nLFxuICAgICAgICAgICAgY29sbGFwc2VkSWNvbjogJ3BpIHBpLWZvbGRlcicsXG4gICAgICAgICAgICBjaGlsZHJlbjogW11cbiAgICAgICAgfV07XG5cbiAgICBpc0ZpcnN0TG9hZCA9IHRydWU7XG4gICAgcm9vdEZpbHRlcjogYW55ID0ge307XG5cbiAgICBzZWxlY3RlZFRyZWVOb2RlOiBhbnk7XG4gICAgdHJlZUxvYWRpbmcgPSBmYWxzZTtcbiAgICBzZWxlY3RlZE5vZGVEYXRhOiBhbnk7XG4gICAgZGF0YXNvdXJjZUZpZWxkRmlsdGVyID0gRGF0YXNvdXJjZUZpZWxkRmlsdGVyO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByb3RlY3RlZCBfdXNlclY1U2VydmljZTogVXNlclY1U2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIF9vcmdhbml6YXRpb25TZXJ2aWNlOiBPcmdhbml6YXRpb25TZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgX2NvQ2F1VG9DaHVjU2VydmljZTogQ29DYXVUb0NodWNUZXN0U2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIF9tb2R1bGVDb25maWdTZXJ2aWNlOiBNb2R1bGVDb25maWdTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICBzdXBlcihfaW5qZWN0b3IpO1xuICAgICAgICBjb25zdCBfZW52aXJvbm1lbnQgPSBfbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5lbnZpcm9ubWVudDtcbiAgICAgICAgaWYgKF9lbnZpcm9ubWVudC5jYXVIaW5oTmdoaWVwVnU/LmRhdGFzb3VyY2VGaWVsZEZpbHRlckNhbkJvPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFzb3VyY2VGaWVsZEZpbHRlciA9IF9lbnZpcm9ubWVudC5jYXVIaW5oTmdoaWVwVnU/LmRhdGFzb3VyY2VGaWVsZEZpbHRlckNhbkJvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuY29udHJvbC5wbHVzVXJsID0gJ0ZvclVzZXJQaWNrZXInO1xuICAgICAgICB0aGlzLmNvbnRyb2wuZmlsdGVyV2hpbGVQcm9jZXNzID0gW1xuICAgICAgICAgICAgdGhpcy5uZXdGaWx0ZXIoJ3VzZXJUeXBlJywgT3BlcmF0b3IuZXF1YWwsIHRoaXMuY29udHJvbFNldHRpbmcudXNlclR5cGUpXG4gICAgICAgIF07XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2xTZXR0aW5nLnVzZXJUeXBlID09IHRoaXMudXNlclR5cGUuQ2FuQm8pIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdFRyZWUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZVNlbGVjdChldmVudCkge1xuICAgICAgICB0aGlzLm9uU2VsZWN0LmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIGhhbmRsZUNhbmNlbERpYWxvZyhldmVudCkge1xuICAgIH1cblxuICAgIG9uTm9kZUV4cGFuZChldmVudCkge1xuXG4gICAgfVxuXG4gICAgYXN5bmMgbm9kZVNlbGVjdChldmVudCkge1xuICAgICAgICBsZXQgdGFyZ2V0ID0gZXZlbnQub3JpZ2luYWxFdmVudC50YXJnZXQ7XG4gICAgICAgIGlmICh0YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdjdXN0b20tbm9kZScpKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZURhdGEgPSB0YXJnZXQuaWQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0YXJnZXQgPSB0YXJnZXQucXVlcnlTZWxlY3RvcignLmN1c3RvbS1ub2RlJyk7XG4gICAgICAgICAgICBpZiAodGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGVEYXRhID0gdGFyZ2V0LmlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGVEYXRhID0gZXZlbnQubm9kZS5kYXRhO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuU1RPUkFHRV9LRVlfVVNFUl9QSUNLRVJfTk9ERV9TRUxFQ1RFRCwgdGhpcy5zZWxlY3RlZE5vZGVEYXRhKTtcbiAgICAgICAgdGhpcy5yb290RmlsdGVyLnBhcmVudElkID0gbmV3IEZpbHRlcih7XG4gICAgICAgICAgICBmaWVsZDogJ2lkUGF0aE9yZ2FuaXphdGlvbicsXG4gICAgICAgICAgICBvcGVyYXRvcjogT3BlcmF0b3IuY29udGFpbixcbiAgICAgICAgICAgIHZhbHVlOiBgOyR7dGhpcy5zZWxlY3RlZE5vZGVEYXRhfTtgXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvbnRyb2wuZmlsdGVyV2hpbGVQcm9jZXNzID0gW1xuICAgICAgICAgICAgdGhpcy5uZXdGaWx0ZXIoJ2lkRG9uVmknLCBPcGVyYXRvci5lcXVhbCwgdGhpcy5zZWxlY3RlZE5vZGVEYXRhKVxuICAgICAgICBdO1xuXG4gICAgICAgIHRoaXMuZW50aXR5UGlja2VyQm94LmRhdGFDb21wb25lbnQuX3RyaWdnZXJQcm9jZXNzRGF0YSgpO1xuICAgICAgICAvLyB0aGlzLmVudGl0eVBpY2tlckJveC5zZWxlY3RlZENvbXBvbmVudC5fdHJpZ2dlclByb2Nlc3NEYXRhKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgaW5pdFRyZWUoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2xTZXR0aW5nLmxhenlMb2FkT3JnYW5pemF0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBycyA9IGF3YWl0IHRoaXMuX29yZ2FuaXphdGlvblNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uQnlQYXJlbnRJZCh0aGlzLl9jb21tb25TZXJ2aWNlLmd1aWRFbXB0eSgpKTtcbiAgICAgICAgICAgIHRoaXMucm9vdFRyZWVOb2RlID0gcnMuZGF0YTtcbiAgICAgICAgICAgIHRoaXMubG9hZFRyZWUodGhpcy5yb290VHJlZU5vZGVbMF0sIHRydWUpO1xuXG4gICAgICAgICAgICAvLyBjb25zdCBycyA9IGF3YWl0IHRoaXMuX2NvQ2F1VG9DaHVjU2VydmljZS5nZXRCeVBhcmVudElkKHRoaXMuX2NvbW1vblNlcnZpY2UuZ3VpZEVtcHR5KCkpO1xuICAgICAgICAgICAgLy8gdGhpcy5yb290VHJlZU5vZGUgPSBycy5kYXRhO1xuICAgICAgICAgICAgLy8gdGhpcy5sb2FkVHJlZSh0aGlzLnJvb3RUcmVlTm9kZVswXSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRUcmVlKG51bGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbG9hZFRyZWUoZXZlbnQ6IGFueSwgaXNSb290Pykge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sU2V0dGluZy5sYXp5TG9hZE9yZ2FuaXphdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fb3JnYW5pemF0aW9uU2VydmljZS5nZXRPcmdhbml6YXRpb25CeVBhcmVudElkKGV2ZW50LmRhdGEpLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuY2hpbGRyZW4gPSByZXN1bHQuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmNoaWxkcmVuICYmIGV2ZW50LmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQubGVhZiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiByZXN1bHQuZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFyIGl0ZW0gPSByZXN1bHQuZGF0YVtrZXldO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgKGl0ZW0uY2hpbGRyZW4gJiYgaXRlbS5jaGlsZHJlbi5sZW5ndGggPT09IDApXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgaXRlbS5sZWFmID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBpdGVtLmxlYWYgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IGM/cCBuaD90IEFQSVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmRhdGFba2V5XS5sZWFmID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy50cmVlTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICBpZiAoaXNSb290KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX29yZ2FuaXphdGlvblNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uVHJlZSh0aGlzLmNvbnRyb2xTZXR0aW5nLnBhcmVudE9yZ0NvZGUpLnRoZW4oYXN5bmMgcmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvb3RUcmVlTm9kZSA9IHJlc3VsdC5kYXRhO1xuICAgICAgICAgICAgICAgIHRoaXMucm9vdFRyZWVOb2RlWzBdLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWVMb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbnRyb2xTZXR0aW5nLnBhcmVudE9yZ0NvZGUpIHtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvb3RGaWx0ZXIucGFyZW50SWQgPSBuZXcgRmlsdGVyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkOiAnaWRQYXRoT3JnYW5pemF0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBPcGVyYXRvci5jb250YWluLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGA7JHt0aGlzLnJvb3RUcmVlTm9kZVswXS5kYXRhfTtgXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRmlyc3RMb2FkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBtb2RpZnlGaWx0ZXIoZmlsdGVycykge1xuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLnJvb3RGaWx0ZXIpLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBmaWx0ZXJzLnB1c2godGhpcy5yb290RmlsdGVyW2l0ZW1dKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IGFwcGVuZERlZmF1bHRGaWx0ZXIoZmlsdGVycywgdGhpcy5jb250cm9sU2V0dGluZy5kZWZhdWx0RmlsdGVycyk7XG4gICAgfVxuXG4gICAgc2VsZWN0VXNlcih1c2VyKSB7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gdXNlci5lbWFpbCA/IGAke3VzZXIuZnVsbE5hbWVOZXd9ICgke3VzZXIuZW1haWx9KWAgOiBgJHt1c2VyLmZ1bGxOYW1lTmV3fWA7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVXNlciA9IDxTZWxlY3RJdGVtPntcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgdGl0bGU6IGxhYmVsLFxuICAgICAgICAgICAgdmFsdWU6IHVzZXIuaW5zdGFuY2VJZFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMub25TZWxlY3QuZW1pdChzZWxlY3RlZFVzZXIpO1xuICAgIH1cblxuICAgIGhhbmRsZVJvd1NlbGVjdChldnQpIHtcbiAgICAgICAgdGhpcy5vblJvd1NlbGVjdC5lbWl0KGV2dCk7XG4gICAgfVxuXG4gICAgaGFuZGxlU2VsZWN0RW50aXR5KGV2dCkge1xuICAgICAgICB0aGlzLm9uU2VsZWN0LmVtaXQoZXZ0KTtcbiAgICB9XG5cbiAgICBoYW5kbGVVblNlbGVjdEVudGl0eShldnQpIHtcbiAgICAgICAgdGhpcy5vblVuU2VsZWN0LmVtaXQoZXZ0KTtcbiAgICB9XG5cbiAgICBoYW5kbGVDaGFuZ2VkRW50aXR5KGRhdGEpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZWQuZW1pdChkYXRhKTtcbiAgICB9XG5cbiAgICBoYW5kbGVEb25lKGV2dCkge1xuICAgICAgICB0aGlzLm9uRG9uZS5lbWl0KGV2dCk7XG4gICAgfVxufVxuIl19