ets-fe-ng-sdk 18.0.112 → 18.0.113

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.
@@ -113,7 +113,7 @@ export class TableBaseComponent {
113
113
  // const dateFields = { createdOn: 1, updatedOn: 1 };
114
114
  for (let index = 0; index < columns.length; index++) {
115
115
  const item = columns[index];
116
- item.customTemplate = customTemplates[item.f];
116
+ item.customTemplate = customTemplates?.[item.f];
117
117
  if (!(item.previewOnHover === false ||
118
118
  (!item.onHoverHandler && !this.tS.generalColumnPropMap[item.f]?.onHoverHandler))) {
119
119
  item._onHoverFunction = (event, row) => (item.onHoverHandler || this.tS.generalColumnPropMap[item.f]?.onHoverHandler).action(row, event);
@@ -286,4 +286,4 @@ class TableColFormatted extends TableCol {
286
286
  this._onHoverDelay = 0;
287
287
  }
288
288
  }
289
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvdGFibGUvdGFibGUtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUdOLFNBQVMsRUFFVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLElBQUksWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWpELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFdEMsT0FBTyxFQUtMLFFBQVEsR0FDVCxNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFPLE1BQU0sTUFBTSxDQUFDOztBQVMzQyxNQUFNLE9BQWdCLGtCQUFrQjtJQUx4QztRQU1xQixRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDMUMsZ0JBQVcsR0FBRyxLQUFLLENBQXNCLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3hF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Z0JBQ0UsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPOztBQXdOcEIsTUFBTSxpQkFBd0IsU0FBUSxRQUFjO0lBQXBEOztRQUVFLGtCQUFhLEdBQVksQ0FBQyxDQUFDO0lBQzdCLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvbkNoYW5nZSwgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPdXRwdXQsXG4gIFNpZ25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgV3JpdGFibGVTaWduYWwsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFBhZ2luYXRvciBhcyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgTWF0U29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgTWF0VGFibGUgYXMgTWF0VGFibGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgSUZvcm1TY2hlbWEgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1zY2hlbWEubW9kZWwnO1xuaW1wb3J0IHtcbiAgSU9iamVjdExpdGVyYWwsXG4gIElSb3dPcHRpb24sXG4gIElTdHJpY3RGb3JtR3JvdXAsXG4gIFNvcnRUeXBlLFxuICBUYWJsZUNvbCxcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL2luZGV4Lm1vZGVsJztcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vU2VydmljZXMvdXRpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IFRhYmxlU2VydmljZSB9IGZyb20gJy4vdGFibGUtcGxhaW4uc2VydmljZSc7XG5pbXBvcnQgeyBvdXRwdXRGcm9tT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL21vZGFsL21vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBORUxFdmVudCwgTkVMTW91c2VFdmVudEhhbmRsZXIgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL25hdGl2ZS1ldmVudC1saXN0ZW5lcnMuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiAnJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRhYmxlQmFzZUNvbXBvbmVudDxUSXRlbSBleHRlbmRzIElPYmplY3RMaXRlcmFsPiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICByZWFkb25seSBfcm93T3B0aW9ucyA9IGlucHV0PElSb3dPcHRpb248VEl0ZW0+W10+KG51bGwsIHsgYWxpYXM6ICdyb3dPcHRpb25zJyB9KTtcbiAgcmVhZG9ubHkgcm93T3B0aW9uc01hcCA9IGlucHV0PChyb3c6IFRJdGVtKSA9PiAoSVJvd09wdGlvbjxUSXRlbT4gfCBudWxsKVtdPigpO1xuICByZWFkb25seSBjZW50ZXJDZWxscyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgY3VydnkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGRpc3RpbmN0ID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIC8qKkFwcGVhcnMgYWJvdmUgdGhlIHRhYmxlICovXG4gIHJlYWRvbmx5IGhlYWRlciA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgaXNFeHBhbmRhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICAvKiogVXNlZCB0byBuYW1lIG1ldGFkYXRhIG9mIHRoZSB0YWJsZSBsaWtlIGV4cG9ydGVkIGZpbGVzICovXG4gIHJlYWRvbmx5IGxhYmVsID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBpc0Rpc2FibGVkRnVuYyA9IGlucHV0PChyb3c6IFRJdGVtKSA9PiBib29sZWFuPigpO1xuICByZWFkb25seSBub0l0ZW1UeHQgPSBpbnB1dCgnVGhlcmUgYXJlIG5vIGl0ZW1zJyk7XG4gIHJlYWRvbmx5IG5vd3JhcCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBkZWJ1ZyA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGV4cGFuZGVkUm93VGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+PigpO1xuICByZWFkb25seSBvcmRlckRpcmVjdGlvbiA9IGlucHV0PFNvcnRUeXBlPignYXNjJyk7XG4gIHJlYWRvbmx5IG9yZGVyRmllbGQgPSBpbnB1dDxrZXlvZiBUSXRlbT4oKTtcbiAgcmVhZG9ubHkgcGFnZVNpemUgPSBpbnB1dCgxMCk7XG4gIHJlYWRvbmx5IGN1c3RvbVRlbXBsYXRlcyA9IGlucHV0PHsgW3ggaW4ga2V5b2YgVEl0ZW1dPzogVGVtcGxhdGVSZWY8YW55PiB9PigpO1xuICByZWFkb25seSBzdGFydFNlY3Rpb25UZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4oKTtcbiAgcmVhZG9ubHkgY29tcHV0ZWRQYWdlU2l6ZU9wdGlvbnMgPSBjb21wdXRlZDxudW1iZXJbXT4oKCkgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRQYWdlU2l6ZU9wdGlvbnMgPSB0aGlzLmRlZmF1bHRQYWdlU2l6ZU9wdGlvbnMoKSxcbiAgICAgIHBhZ2VTaXplT3B0aW9ucyA9IHRoaXMucGFnZVNpemVPcHRpb25zKCksXG4gICAgICByZXN1bHRzTGVuZ3RoID0gdGhpcy5yZXN1bHRzTGVuZ3RoKCk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHBhZ2VTaXplT3B0aW9ucz8ubGVuZ3RoID8gcGFnZVNpemVPcHRpb25zIDogZGVmYXVsdFBhZ2VTaXplT3B0aW9ucztcbiAgICByZXR1cm4gb3B0aW9ucy5jb25jYXQob3B0aW9ucz8ubGFzdEl0ZW0oKSA+IHJlc3VsdHNMZW5ndGggPyBbXSA6IFtyZXN1bHRzTGVuZ3RoXSk7XG4gIH0pO1xuICByZWFkb25seSBkZWZhdWx0UGFnZVNpemVPcHRpb25zID0gc2lnbmFsKFs1LCAxMCwgMjAsIDUwLCAxMDAsIDUwMCwgMTAwMCwgNTAwMF0pO1xuICByZWFkb25seSBwYWdlU2l6ZU9wdGlvbnMgPSBpbnB1dDxudW1iZXJbXT4oKTtcbiAgcmVhZG9ubHkgcGxhY2VTZWxlY3Rpb25BdFJpZ2h0ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpOyAvLyBzdXBwb3J0IGN1c3RvbWl6aW5nIHRoZSBwb3NpdGlvbiBvZiB0aGUgc2VsZWN0IGNoZWNrYm94ZXMuXG4gIHJlYWRvbmx5IHNob3dBZGRpdGlvbmFsQ29sdW1ucyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgc2hvd0V4cG9ydCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgc2hvd1Jvd1BvaW50ZXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHNtYWxsZXJGb250cyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgc3RyaXBlZCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSB0YWJsZUNvbnRhaW5lckNsYXNzID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSB1c2VTZWxlY3Rpb24gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgcmVhZG9ubHkgZm9ybVNjaGVtYVRvQ29sdW1ucyA9IGlucHV0PElGb3JtU2NoZW1hPElTdHJpY3RGb3JtR3JvdXA8VEl0ZW0+PltdPigpO1xuICByZWFkb25seSB1cGxvYWRTY2hlbWFUb0NvbHVtbnMgPSBpbnB1dDx7IGZpZWxkPzoga2V5b2YgVEl0ZW07IGxhYmVsPzogc3RyaW5nIH1bXT4oKTtcblxuICByZWFkb25seSBfZGlzcGxheWVkQ29sdW1ucyA9IGlucHV0PFRhYmxlQ29sPFRJdGVtPltdPihbXSwgeyBhbGlhczogJ2Rpc3BsYXllZENvbHVtbnMnIH0pO1xuICByZWFkb25seSBkaXNwbGF5ZWRDb2x1bW5zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLl9kaXNwbGF5ZWRDb2x1bW5zKCk/LmZpbHRlcigoeCkgPT4gIXguaWdub3JlKTtcbiAgICByZXR1cm4gdGhpcy51c2VDdXN0b21MYWJlbHMoKSA/IHRoaXMudFMuZ2xvYmFsQ29sdW1uc0Zvcm1hdHRlcihjb2x1bW5zKSA6IGNvbHVtbnM7XG4gIH0pO1xuICAvKipVc2VkIHRvIHVwZGF0ZSB0aGUgZGlzcGxheWVkIGNvbHVtbnMgdGhyb3VnaCBpbnRlcm5hbCBhY3Rpdml0aWVzIGxpa2UgbW9kaWZpY2F0aW9uIGZyb20gQWRkaXRpb25hbCBjb2x1bW5zICovXG4gIC8vIHByb3RlY3RlZFxuICByZWFkb25seSBvdmVycmlkZURpc3BsYXllZENvbHVtbnMgPSBzaWduYWw8VGFibGVDb2w8VEl0ZW0+W10+KG51bGwpO1xuXG4gIC8qKkNvbHVtbnMgdGhhdCBhcmUgbm90IG1hcmtlZCBhcyBBZGRpdGlvbmFsIENvbHVtbnMgYW5kIGFyZSBub3QgZGlzYWJsZWQqL1xuICByZWFkb25seSBwcmVzZW50YWJsZUNvbHVtbnMgPSBjb21wdXRlZCgoKSA9PlxuICAgIGNsb25lRGVlcCh0aGlzLmRpc3BsYXllZENvbHVtbnMoKT8uZmlsdGVyKCh4KSA9PiAheC5hZGRpdGlvbmFsQ29sdW1uICYmICF4LmRpc2FibGVkKSksXG4gICk7XG4gIHJlYWRvbmx5IGRpc3BsYXllZENvbHVtbnNNYXAgPSBjb21wdXRlZCgoKSA9PiBjbG9uZURlZXAodGhpcy5kaXNwbGF5ZWRDb2x1bW5zKCk/LnRvTWFwKCdmJykpKTtcbiAgcmVhZG9ubHkgY29tcHV0ZWREaXNwbGF5ZWRDb2x1bW5zTWFwID0gY29tcHV0ZWQoKCkgPT5cbiAgICBjbG9uZURlZXAoXG4gICAgICB0aGlzLmNvbXB1dGVkRGlzcGxheWVkQ29sdW1ucygpPy50b01hcCgnZicpIGFzIHtcbiAgICAgICAgW2sgaW4ga2V5b2YgVEl0ZW1dOiBUYWJsZUNvbEZvcm1hdHRlZDxUSXRlbT47XG4gICAgICB9LFxuICAgICksXG4gICk7XG5cbiAgcmVhZG9ubHkgY29tcHV0ZWREaXNwbGF5ZWRDb2x1bW5zID0gY29tcHV0ZWQ8VGFibGVDb2xGb3JtYXR0ZWQ8VEl0ZW0+W10+KCgpID0+IHtcbiAgICBjb25zdCBkYyA9XG4gICAgICAgIHRoaXMucHJlc2VudGFibGVDb2x1bW5zKCk/Lm1hcCgoYykgPT4ge1xuICAgICAgICAgIGlmICghYy50KSB7XG4gICAgICAgICAgICBpZiAoYy50eXBlID09ICdidXR0b24nKSBjLnQgPSAnQWN0aW9uJztcbiAgICAgICAgICAgIGVsc2UgaWYgKGMudHlwZSA9PSAnYnRucycpIGMudCA9ICdBY3Rpb25zJztcbiAgICAgICAgICAgIGMuc3RpY2t5ID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGM7XG4gICAgICAgIH0pIHx8IFtdLFxuICAgICAgb3ZlcnJpZGVDb2x1bW5zID0gdGhpcy5vdmVycmlkZURpc3BsYXllZENvbHVtbnMoKSxcbiAgICAgIGZvcm1TY2hlbWFUb0NvbHVtbnMgPSB0aGlzLmZvcm1TY2hlbWFUb0NvbHVtbnMoKSxcbiAgICAgIHVwbG9hZFNjaGVtYVRvQ29sdW1ucyA9IHRoaXMudXBsb2FkU2NoZW1hVG9Db2x1bW5zKCk7XG4gICAgbGV0IGNvbHVtbnMgPSAob3ZlcnJpZGVDb2x1bW5zPy5sZW5ndGggPyBvdmVycmlkZUNvbHVtbnMgOiBkYylcbiAgICAgIC5jb25jYXQoXG4gICAgICAgIGZvcm1TY2hlbWFUb0NvbHVtbnM/Lm1hcCgoeCkgPT4gKHtcbiAgICAgICAgICBmOiB4LmZpZWxkIGFzIFRhYmxlQ29sPFRJdGVtPlsnZiddLFxuICAgICAgICAgIHQ6IHgubGFiZWwsXG4gICAgICAgICAgZm9ybWF0dGVyOiB4LnRhYmxlRm9ybWF0dGVyLFxuICAgICAgICB9KSkgfHwgW10sXG4gICAgICApXG4gICAgICAuY29uY2F0KFxuICAgICAgICB1cGxvYWRTY2hlbWFUb0NvbHVtbnNcbiAgICAgICAgICA/LmZpbHRlcigoeCkgPT4geC5maWVsZClcbiAgICAgICAgICAubWFwKCh4KSA9PiAoeyBmOiB4LmZpZWxkIGFzIFRhYmxlQ29sPFRJdGVtPlsnZiddLCB0OiB4LmxhYmVsIH0pKSB8fCBbXSxcbiAgICAgICk7XG4gICAgY29sdW1ucyA9IGNvbHVtbnMuZmlsdGVyKCh4KSA9PiB4LmYpO1xuICAgIHRoaXMuaGFuZGxlQ29sdW1ucyhjb2x1bW5zKTtcbiAgICByZXR1cm4gY29sdW1ucztcbiAgfSk7XG5cbiAgQE91dHB1dCgncm93Q2xpY2snKSBfcm93Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFRJdGVtPigpO1xuICBAT3V0cHV0KCkgZW1pdENoZWNrYm94ID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgZmllbGQ6IGtleW9mIFRJdGVtO1xuICAgIGl0ZW06IFRJdGVtO1xuICAgIHZhbHVlOiBib29sZWFuO1xuICB9PigpO1xuXG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yKSBwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0OiBNYXRTb3J0O1xuICBAVmlld0NoaWxkKCd0YWJsZScpIHRhYmxlOiBNYXRUYWJsZTxhbnk+O1xuICByZWFkb25seSByZXN1bHRzTGVuZ3RoOiBTaWduYWw8bnVtYmVyPjtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0YXJ0ZXJTZWN0aW9uQ2xhc3MgPSBzaWduYWwoJ3JvdyByb3ctY29scy1sZy1hdXRvIGctMyBhbGlnbi1pdGVtcy1jZW50ZXInKTtcbiAgcmVhZG9ubHkgcmF3Q29sdW1ucyA9IGNvbXB1dGVkPHN0cmluZ1tdPigoKSA9PlxuICAgIHRoaXMudFMuZ2V0UmF3RmllbGRzKFxuICAgICAgdGhpcy5jb21wdXRlZERpc3BsYXllZENvbHVtbnMoKSxcbiAgICAgIHRoaXMuaGFzUm93T3B0aW9ucygpLFxuICAgICAgdGhpcy51c2VTZWxlY3Rpb24oKSxcbiAgICAgIHRoaXMucGxhY2VTZWxlY3Rpb25BdFJpZ2h0KCksXG4gICAgICB0aGlzLmlzRXhwYW5kYWJsZSgpLFxuICAgICksXG4gICk7XG4gIHJlYWRvbmx5IGV4cGFuZGVkRWxlbWVudCA9IHNpZ25hbDxUSXRlbT4obnVsbCk7XG4gIHJlYWRvbmx5IHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxUSXRlbT4odHJ1ZSwgW10pO1xuICBwcm90ZWN0ZWQgX3NlbGVjdGlvbkNoYW5nZWQgPSB0b1NpZ25hbCh0aGlzLnNlbGVjdGlvbi5jaGFuZ2VkKTtcbiAgcmVhZG9ubHkgc2VsZWN0ZWRJdGVtc1NpZ25hbCA9IHRvU2lnbmFsKFxuICAgIHRoaXMuc2VsZWN0aW9uLmNoYW5nZWQucGlwZShcbiAgICAgIG1hcCgocikgPT4gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQpLFxuICAgICAgc3RhcnRXaXRoKFtdKSxcbiAgICApLFxuICApO1xuICByZWFkb25seSBzZWxlY3Rpb25DaGFuZ2VkID0gb3V0cHV0RnJvbU9ic2VydmFibGUodGhpcy5zZWxlY3Rpb24uY2hhbmdlZCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNlbGxGb3JtYXR0ZXJNYXA6IHtcbiAgICBbayBpbiBrZXlvZiBUSXRlbV0/OiBQYXJ0aWFsPFRhYmxlQ29sRm9ybWF0dGVkPFRJdGVtPj47XG4gIH0gPSB7fTtcbiAgcHVibGljIHVTID0gaW5qZWN0KFV0aWxpdHlTZXJ2aWNlKTtcbiAgcHVibGljIHRTID0gaW5qZWN0KFRhYmxlU2VydmljZSk7XG4gIHJlYWRvbmx5IHVzZUN1c3RvbUxhYmVscyA9IG1vZGVsKHRydWUpO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQgZWxlbWVudHMgbWF0Y2hlcyB0aGUgdG90YWwgbnVtYmVyIG9mIHJvd3MuICovXG4gIHJlYWRvbmx5IGlzQWxsU2VsZWN0ZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlbGVjdGVkSXRlbXNTaWduYWwoKS5sZW5ndGggPT0gdGhpcy5kYXRhKCk/Lmxlbmd0aCk7XG4gIHJlYWRvbmx5IGlzQW55U2VsZWN0ZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlbGVjdGVkSXRlbXNTaWduYWwoKS5sZW5ndGggPiAwKTtcbiAgcmVhZG9ubHkgcm93T3B0aW9ucyA9IGNvbXB1dGVkPElSb3dPcHRpb248VEl0ZW0+W10+KCgpID0+XG4gICAgdGhpcy5fcm93T3B0aW9ucygpPy5maWx0ZXIoKHgpID0+ICEheCAmJiAheC5pZ25vcmUpLFxuICApO1xuICByZWFkb25seSBoYXNSb3dPcHRpb25zID0gY29tcHV0ZWQoKCkgPT4gISF0aGlzLnJvd09wdGlvbnMoKT8ubGVuZ3RoIHx8ICEhdGhpcy5yb3dPcHRpb25zTWFwKCkpO1xuXG4gIC8qKiBUaGUgbGFiZWwgZm9yIHRoZSBjaGVja2JveCBvbiB0aGUgcGFzc2VkIHJvdyAqL1xuICBjaGVja2JveExhYmVsKHJvdz86IFRJdGVtKTogc3RyaW5nIHtcbiAgICBpZiAoIXJvdykgcmV0dXJuIGAke3RoaXMuaXNBbGxTZWxlY3RlZCgpID8gJ2Rlc2VsZWN0JyA6ICdzZWxlY3QnfSBhbGxgO1xuICAgIHJldHVybiBgJHt0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkKHJvdykgPyAnZGVzZWxlY3QnIDogJ3NlbGVjdCd9IHJvdyBgO1xuICB9XG5cbiAgZmllbGRzQ2hhbmdlZCgkZXZlbnQ6IHsgbkZpZWxkczogVGFibGVDb2xbXTsgYWxsRmllbGRzOiBUYWJsZUNvbFtdIH0pIHtcbiAgICBjb25zdCBjb2xzID0gJGV2ZW50Lm5GaWVsZHM7XG4gICAgdGhpcy5vdmVycmlkZURpc3BsYXllZENvbHVtbnMuc2V0KFxuICAgICAgY29sc1xuICAgICAgICAuZmlsdGVyKCh4KSA9PiAhKHgudHlwZSA9PSAnYnRucycgJiYgeC5zdGlja3kpKVxuICAgICAgICAuY29uY2F0KGNvbHMuZmlsdGVyKCh4KSA9PiB4LnR5cGUgPT0gJ2J0bnMnICYmIHguc3RpY2t5KSlcbiAgICAgICAgLm1hcCgoeCkgPT4ge1xuICAgICAgICAgIGlmICh4LnR5cGUgPT09ICdudW1iZXInKSB4LmZvcm1hdHRlciA9IHRoaXMudVMubW9uZXlQYXJzZXI7XG4gICAgICAgICAgcmV0dXJuIHg7XG4gICAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBnZXRBY3Rpb25TdGF0dXNDYWxsYmFjayhjb2wpIHtcbiAgICByZXR1cm4gKHN0YXRlOiBib29sZWFuKSA9PiAoY29sLmJ0bi5sb2FkaW5nID0gc3RhdGUpO1xuICB9XG4gIHJlYWRvbmx5IGRhdGE6IFdyaXRhYmxlU2lnbmFsPFRJdGVtW10+O1xuXG4gIHByb3RlY3RlZCBoYW5kbGVDb2x1bW5zID0gKGNvbHVtbnM6IFRhYmxlQ29sRm9ybWF0dGVkPFRJdGVtPltdKSA9PiB7XG4gICAgaWYgKHRoaXMuZGVidWcoKSkgZGVidWdnZXI7XG4gICAgaWYgKCFjb2x1bW5zPy5sZW5ndGgpIHJldHVybjtcblxuICAgIGNvbnN0IGN1c3RvbVRlbXBsYXRlcyA9IHRoaXMuY3VzdG9tVGVtcGxhdGVzKCk7XG4gICAgY29uc3QgY2VsbHNUb0NoZWNrRm9yOiB7IFtrIGluIGtleW9mIFRJdGVtXT86IG51bWJlciB9ID0ge307XG4gICAgLy8gY29uc3QgZGF0ZUZpZWxkcyA9IHsgY3JlYXRlZE9uOiAxLCB1cGRhdGVkT246IDEgfTtcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgY29sdW1ucy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSBjb2x1bW5zW2luZGV4XTtcbiAgICAgIGl0ZW0uY3VzdG9tVGVtcGxhdGUgPSBjdXN0b21UZW1wbGF0ZXNbaXRlbS5mXTtcbiAgICAgIGlmIChcbiAgICAgICAgIShcbiAgICAgICAgICBpdGVtLnByZXZpZXdPbkhvdmVyID09PSBmYWxzZSB8fFxuICAgICAgICAgICghaXRlbS5vbkhvdmVySGFuZGxlciAmJiAhdGhpcy50Uy5nZW5lcmFsQ29sdW1uUHJvcE1hcFtpdGVtLmZdPy5vbkhvdmVySGFuZGxlcilcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIGl0ZW0uX29uSG92ZXJGdW5jdGlvbiA9IChldmVudCwgcm93KSA9PlxuICAgICAgICAgIChpdGVtLm9uSG92ZXJIYW5kbGVyIHx8IHRoaXMudFMuZ2VuZXJhbENvbHVtblByb3BNYXBbaXRlbS5mXT8ub25Ib3ZlckhhbmRsZXIpLmFjdGlvbihcbiAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICk7XG4gICAgICAgIGl0ZW0uX29uSG92ZXJEZWxheSA9IChcbiAgICAgICAgICBpdGVtLm9uSG92ZXJIYW5kbGVyIHx8IHRoaXMudFMuZ2VuZXJhbENvbHVtblByb3BNYXBbaXRlbS5mXT8ub25Ib3ZlckhhbmRsZXJcbiAgICAgICAgKS5kZWxheTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtLm5vRm9ybWF0IHx8IGl0ZW0uZm9ybWF0dGVyIHx8IGl0ZW0uZm9ybWF0dGVyUm93KSB7XG4gICAgICAgIHRoaXMuY2VsbEZvcm1hdHRlck1hcFtpdGVtLmZdID0ge1xuICAgICAgICAgIG5vRm9ybWF0OiBpdGVtLm5vRm9ybWF0LFxuICAgICAgICAgIGZvcm1hdHRlcjogaXRlbS5mb3JtYXR0ZXIsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3Qgc2F2ZWRDb25maWcgPSB0aGlzLmNlbGxGb3JtYXR0ZXJNYXBbaXRlbS5mXTtcbiAgICAgIGlmIChzYXZlZENvbmZpZykge1xuICAgICAgICBpdGVtLm5vRm9ybWF0ID0gc2F2ZWRDb25maWcubm9Gb3JtYXQ7XG4gICAgICAgIGl0ZW0uZm9ybWF0dGVyID0gc2F2ZWRDb25maWcuZm9ybWF0dGVyO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGl0ZW1GaWVsZExvd2VyID0gaXRlbS5mPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBpdGVtRmllbGRMb3dlciA9PSAnaWQnIHx8XG4gICAgICAgICAgaXRlbUZpZWxkTG93ZXIuaW5jbHVkZXMoJ3llYXInKSB8fFxuICAgICAgICAgIGl0ZW1GaWVsZExvd2VyLmluY2x1ZGVzKCdhZ2UnKVxuICAgICAgICApIHtcbiAgICAgICAgICBpdGVtLm5vRm9ybWF0ID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmNlbGxGb3JtYXR0ZXJNYXBbaXRlbS5mXSA9IGl0ZW07XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY2VsbHNUb0NoZWNrRm9yW2l0ZW0uZl0gPSBpbmRleDtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmRhdGEoKSkgcmV0dXJuO1xuICAgIC8vIGNvbnNvbGUubG9nKCdjZWxsc1RvQ2hlY2tGb3InLCBKU09OLnN0cmluZ2lmeShjZWxsc1RvQ2hlY2tGb3IpKTtcbiAgICBmb3IgKGNvbnN0IHJvdyBvZiB0aGlzLmRhdGEoKSkge1xuICAgICAgaWYgKCFPYmplY3Qua2V5cyhjZWxsc1RvQ2hlY2tGb3IpLmxlbmd0aCkgYnJlYWs7XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBjZWxsc1RvQ2hlY2tGb3IpIHtcbiAgICAgICAgY29uc3QgY2VsbCA9IGNvbHVtbnNbY2VsbHNUb0NoZWNrRm9yW2tleV1dO1xuICAgICAgICBjb25zdCB0eXBlbyA9IHR5cGVvZiByb3dba2V5XTtcbiAgICAgICAgaWYgKHR5cGVvID09ICdib29sZWFuJykge1xuICAgICAgICAgIGNlbGwuZm9ybWF0dGVyID0gdGhpcy51Uy55ZXNOb0NlbGxGb3JtYXR0ZXI7XG4gICAgICAgICAgZGVsZXRlIGNlbGxzVG9DaGVja0ZvcltrZXldO1xuICAgICAgICAgIHRoaXMuY2VsbEZvcm1hdHRlck1hcFtrZXldID0gY2VsbDtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlbyA9PSAnbnVtYmVyJykge1xuICAgICAgICAgIGNlbGwuZm9ybWF0dGVyID0gdGhpcy51Uy5tb25leVBhcnNlcjtcbiAgICAgICAgICBkZWxldGUgY2VsbHNUb0NoZWNrRm9yW2tleV07XG4gICAgICAgICAgdGhpcy5jZWxsRm9ybWF0dGVyTWFwW2tleV0gPSBjZWxsO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudVMuaXNEYXRUaW1lVmFsdWUocm93W2tleV0pKSB7XG4gICAgICAgICAgY2VsbC5mb3JtYXR0ZXIgPSB0aGlzLnVTLmZ1bGxEYXRlVGltZTtcbiAgICAgICAgICBkZWxldGUgY2VsbHNUb0NoZWNrRm9yW2tleV07XG4gICAgICAgICAgdGhpcy5jZWxsRm9ybWF0dGVyTWFwW2tleV0gPSBjZWxsO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudVMuaXNEYXRlVmFsdWUocm93W2tleV0pKSB7XG4gICAgICAgICAgY2VsbC5mb3JtYXR0ZXIgPSB0aGlzLnVTLmRhdGVGb3JtYXQ7XG4gICAgICAgICAgZGVsZXRlIGNlbGxzVG9DaGVja0ZvcltrZXldO1xuICAgICAgICAgIHRoaXMuY2VsbEZvcm1hdHRlck1hcFtrZXldID0gY2VsbDtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBjZWxsc1RvQ2hlY2tGb3IpIHRoaXMuY2VsbEZvcm1hdHRlck1hcFtrZXldID0geyBub0Zvcm1hdDogdHJ1ZSB9O1xuICB9O1xuXG4gIG91dHB1dENoZWNrYm94KGZpZWxkOiBrZXlvZiBUSXRlbSwgaXRlbTogVEl0ZW0sIHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmVtaXRDaGVja2JveC5lbWl0KHsgZmllbGQsIGl0ZW0sIHZhbHVlIH0pO1xuICB9XG5cbiAgcmVhZG9ubHkgYWxsVGFibGVDb2x1bW5zID0gY29tcHV0ZWQ8VGFibGVDb2w8VEl0ZW0+W10+KCgpID0+IHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModGhpcy5kYXRhKCk/LlswXSB8fCB7fSksXG4gICAgICBkaXNwbGF5ZWRDb2x1bW5zTWFwID0gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zTWFwKCksXG4gICAgICBjb21wdXRlZERpc3BsYXllZENvbHVtbnNNYXAgPSB0aGlzLmNvbXB1dGVkRGlzcGxheWVkQ29sdW1uc01hcCgpO1xuXG4gICAgcmV0dXJuIGtleXNcbiAgICAgIC5tYXAoKGspID0+IHtcbiAgICAgICAgY29uc3QgZSA9IGRpc3BsYXllZENvbHVtbnNNYXBba107XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uZSxcbiAgICAgICAgICBmOiBrIGFzIGFueSxcbiAgICAgICAgICB0OiBlPy50IHx8IHRoaXMudVMuZm9ybWF0RmllbGQoayksXG4gICAgICAgICAgYWN0aXZlOiAhIWNvbXB1dGVkRGlzcGxheWVkQ29sdW1uc01hcFtrXSxcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAoeCkgPT5cbiAgICAgICAgICAheC5kaXNhYmxlZCAmJlxuICAgICAgICAgICEoeD8uZj8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKCdpZCcpICYmIHg/LmY/LnRvU3RyaW5nKCkubGVuZ3RoID09PSAyKSxcbiAgICAgIClcbiAgICAgIC5zb3J0MigndCcsIHRydWUpO1xuICB9KTtcblxuICByb3dDbGljayhlOiBUSXRlbSkge1xuICAgIHRoaXMuX3Jvd0NsaWNrLmVtaXQoZSk7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRJdGVtcygpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQ7XG4gIH1cbiAgcmVhZG9ubHkgZm9ybU9wdGlvbnNNYXAgPSBzaWduYWwoKHJvdzogVEl0ZW0pID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5yb3dPcHRpb25zTWFwKCk/Lihyb3cpPy5maWx0ZXIoKHgpID0+ICEheCAmJiAheC5pZ25vcmUpO1xuICAgIHJldHVybiBvcHRpb25zPy5sZW5ndGggPyBvcHRpb25zIDogbnVsbDtcbiAgfSk7XG5cbiAgZXh0cmFjdFJvdXRlID0gKGNlbGw6IFRhYmxlQ29sLCByb3c6IFRJdGVtKTogeyByb3V0ZTogc3RyaW5nOyBxdWVyeVBhcmFtczoge30gfSA9PiB7XG4gICAgY29uc3QgW3JvdXRlLCBxcF0gPSBjZWxsLnJvdXRlRm9ybWF0dGVyKHJvdyk/LnNwbGl0KCc/Jyk7XG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSAoY2VsbC5tcXVlcnlQYXJhbXMgPyBjZWxsLm1xdWVyeVBhcmFtcyhyb3cpIDoge30pIHx8IHt9O1xuICAgIGlmIChxcClcbiAgICAgIHFwLnNwbGl0KCcmJykuZm9yRWFjaCgocSkgPT4ge1xuICAgICAgICBjb25zdCBbZmllbGQsIHZhbF0gPSBxLnNwbGl0KCc9Jyk7XG4gICAgICAgIHF1ZXJ5UGFyYW1zW2ZpZWxkXSA9IHZhbDtcbiAgICAgIH0pO1xuICAgIC8vIGNvbnNvbGUubG9nKHJvdXRlLCBxcCk7XG4gICAgcmV0dXJuIHsgcm91dGUsIHF1ZXJ5UGFyYW1zIH07XG4gIH07XG5cbiAgcmVhZG9ubHkgbmdBZnRlclZpZXdJbml0U2lnbmFsID0gc2lnbmFsPG51bWJlcj4obnVsbCk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0ZWRDZWxsRm9yRXhwYW5zaW9uID0gc2lnbmFsPHsgY29sdW1uOiBUYWJsZUNvbDsgcm93OiBUSXRlbSB9Pih1bmRlZmluZWQpO1xuXG4gIGV4cGFuZENlbGwocm93OiBUSXRlbSwgY29sdW1uOiBUYWJsZUNvbCwgbW9kYWw6IE1vZGFsQ29tcG9uZW50KSB7XG4gICAgdGhpcy5zZWxlY3RlZENlbGxGb3JFeHBhbnNpb24uc2V0KHsgcm93LCBjb2x1bW4gfSk7XG4gICAgbW9kYWwub3BlbigpO1xuICB9XG5cbiAgY2xvc2VFeHBhbmRlZENlbGwoKSB7XG4gICAgdGhpcy5zZWxlY3RlZENlbGxGb3JFeHBhbnNpb24uc2V0KHVuZGVmaW5lZCk7XG4gIH1cblxuICByZWZyZXNoVUkoKSB7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG59XG5cbmNsYXNzIFRhYmxlQ29sRm9ybWF0dGVkPFRSb3c+IGV4dGVuZHMgVGFibGVDb2w8VFJvdz4ge1xuICBfb25Ib3ZlckZ1bmN0aW9uPzogTkVMTW91c2VFdmVudEhhbmRsZXI8VFJvdz5bJ2FjdGlvbiddO1xuICBfb25Ib3ZlckRlbGF5PzogbnVtYmVyID0gMDtcbn1cbiJdfQ==
289
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvdGFibGUvdGFibGUtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUdOLFNBQVMsRUFFVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLElBQUksWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWpELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFdEMsT0FBTyxFQUtMLFFBQVEsR0FDVCxNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFPLE1BQU0sTUFBTSxDQUFDOztBQVMzQyxNQUFNLE9BQWdCLGtCQUFrQjtJQUx4QztRQU1xQixRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDMUMsZ0JBQVcsR0FBRyxLQUFLLENBQXNCLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3hF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T0FBTztnQkFDRSxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87O0FBd05wQixNQUFNLGlCQUF3QixTQUFRLFFBQWM7SUFBcEQ7O1FBRUUsa0JBQWEsR0FBWSxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0aW9uQ2hhbmdlLCBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIE91dHB1dCxcbiAgU2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBXcml0YWJsZVNpZ25hbCxcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yIGFzIE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBNYXRTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBNYXRUYWJsZSBhcyBNYXRUYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBJRm9ybVNjaGVtYSB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXNjaGVtYS5tb2RlbCc7XG5pbXBvcnQge1xuICBJT2JqZWN0TGl0ZXJhbCxcbiAgSVJvd09wdGlvbixcbiAgSVN0cmljdEZvcm1Hcm91cCxcbiAgU29ydFR5cGUsXG4gIFRhYmxlQ29sLFxufSBmcm9tICcuLi8uLi9tb2RlbHMvaW5kZXgubW9kZWwnO1xuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9TZXJ2aWNlcy91dGlsaXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFibGVTZXJ2aWNlIH0gZnJvbSAnLi90YWJsZS1wbGFpbi5zZXJ2aWNlJztcbmltcG9ydCB7IG91dHB1dEZyb21PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kYWwvbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IE5FTEV2ZW50LCBORUxNb3VzZUV2ZW50SGFuZGxlciB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvbmF0aXZlLWV2ZW50LWxpc3RlbmVycy5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6ICcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXSxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVGFibGVCYXNlQ29tcG9uZW50PFRJdGVtIGV4dGVuZHMgSU9iamVjdExpdGVyYWw+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5IF9yb3dPcHRpb25zID0gaW5wdXQ8SVJvd09wdGlvbjxUSXRlbT5bXT4obnVsbCwgeyBhbGlhczogJ3Jvd09wdGlvbnMnIH0pO1xuICByZWFkb25seSByb3dPcHRpb25zTWFwID0gaW5wdXQ8KHJvdzogVEl0ZW0pID0+IChJUm93T3B0aW9uPFRJdGVtPiB8IG51bGwpW10+KCk7XG4gIHJlYWRvbmx5IGNlbnRlckNlbGxzID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBjdXJ2eSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgZGlzdGluY3QgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgLyoqQXBwZWFycyBhYm92ZSB0aGUgdGFibGUgKi9cbiAgcmVhZG9ubHkgaGVhZGVyID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBpc0V4cGFuZGFibGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIC8qKiBVc2VkIHRvIG5hbWUgbWV0YWRhdGEgb2YgdGhlIHRhYmxlIGxpa2UgZXhwb3J0ZWQgZmlsZXMgKi9cbiAgcmVhZG9ubHkgbGFiZWwgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGlzRGlzYWJsZWRGdW5jID0gaW5wdXQ8KHJvdzogVEl0ZW0pID0+IGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IG5vSXRlbVR4dCA9IGlucHV0KCdUaGVyZSBhcmUgbm8gaXRlbXMnKTtcbiAgcmVhZG9ubHkgbm93cmFwID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IGRlYnVnID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgZXhwYW5kZWRSb3dUZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4+KCk7XG4gIHJlYWRvbmx5IG9yZGVyRGlyZWN0aW9uID0gaW5wdXQ8U29ydFR5cGU+KCdhc2MnKTtcbiAgcmVhZG9ubHkgb3JkZXJGaWVsZCA9IGlucHV0PGtleW9mIFRJdGVtPigpO1xuICByZWFkb25seSBwYWdlU2l6ZSA9IGlucHV0KDEwKTtcbiAgcmVhZG9ubHkgY3VzdG9tVGVtcGxhdGVzID0gaW5wdXQ8eyBbeCBpbiBrZXlvZiBUSXRlbV0/OiBUZW1wbGF0ZVJlZjxhbnk+IH0+KCk7XG4gIHJlYWRvbmx5IHN0YXJ0U2VjdGlvblRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+PigpO1xuICByZWFkb25seSBjb21wdXRlZFBhZ2VTaXplT3B0aW9ucyA9IGNvbXB1dGVkPG51bWJlcltdPigoKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdFBhZ2VTaXplT3B0aW9ucyA9IHRoaXMuZGVmYXVsdFBhZ2VTaXplT3B0aW9ucygpLFxuICAgICAgcGFnZVNpemVPcHRpb25zID0gdGhpcy5wYWdlU2l6ZU9wdGlvbnMoKSxcbiAgICAgIHJlc3VsdHNMZW5ndGggPSB0aGlzLnJlc3VsdHNMZW5ndGgoKTtcbiAgICBjb25zdCBvcHRpb25zID0gcGFnZVNpemVPcHRpb25zPy5sZW5ndGggPyBwYWdlU2l6ZU9wdGlvbnMgOiBkZWZhdWx0UGFnZVNpemVPcHRpb25zO1xuICAgIHJldHVybiBvcHRpb25zLmNvbmNhdChvcHRpb25zPy5sYXN0SXRlbSgpID4gcmVzdWx0c0xlbmd0aCA/IFtdIDogW3Jlc3VsdHNMZW5ndGhdKTtcbiAgfSk7XG4gIHJlYWRvbmx5IGRlZmF1bHRQYWdlU2l6ZU9wdGlvbnMgPSBzaWduYWwoWzUsIDEwLCAyMCwgNTAsIDEwMCwgNTAwLCAxMDAwLCA1MDAwXSk7XG4gIHJlYWRvbmx5IHBhZ2VTaXplT3B0aW9ucyA9IGlucHV0PG51bWJlcltdPigpO1xuICByZWFkb25seSBwbGFjZVNlbGVjdGlvbkF0UmlnaHQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7IC8vIHN1cHBvcnQgY3VzdG9taXppbmcgdGhlIHBvc2l0aW9uIG9mIHRoZSBzZWxlY3QgY2hlY2tib3hlcy5cbiAgcmVhZG9ubHkgc2hvd0FkZGl0aW9uYWxDb2x1bW5zID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzaG93RXhwb3J0ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzaG93Um93UG9pbnRlciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgc21hbGxlckZvbnRzID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzdHJpcGVkID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IHRhYmxlQ29udGFpbmVyQ2xhc3MgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IHVzZVNlbGVjdGlvbiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICByZWFkb25seSBmb3JtU2NoZW1hVG9Db2x1bW5zID0gaW5wdXQ8SUZvcm1TY2hlbWE8SVN0cmljdEZvcm1Hcm91cDxUSXRlbT4+W10+KCk7XG4gIHJlYWRvbmx5IHVwbG9hZFNjaGVtYVRvQ29sdW1ucyA9IGlucHV0PHsgZmllbGQ/OiBrZXlvZiBUSXRlbTsgbGFiZWw/OiBzdHJpbmcgfVtdPigpO1xuXG4gIHJlYWRvbmx5IF9kaXNwbGF5ZWRDb2x1bW5zID0gaW5wdXQ8VGFibGVDb2w8VEl0ZW0+W10+KFtdLCB7IGFsaWFzOiAnZGlzcGxheWVkQ29sdW1ucycgfSk7XG4gIHJlYWRvbmx5IGRpc3BsYXllZENvbHVtbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29sdW1ucyA9IHRoaXMuX2Rpc3BsYXllZENvbHVtbnMoKT8uZmlsdGVyKCh4KSA9PiAheC5pZ25vcmUpO1xuICAgIHJldHVybiB0aGlzLnVzZUN1c3RvbUxhYmVscygpID8gdGhpcy50Uy5nbG9iYWxDb2x1bW5zRm9ybWF0dGVyKGNvbHVtbnMpIDogY29sdW1ucztcbiAgfSk7XG4gIC8qKlVzZWQgdG8gdXBkYXRlIHRoZSBkaXNwbGF5ZWQgY29sdW1ucyB0aHJvdWdoIGludGVybmFsIGFjdGl2aXRpZXMgbGlrZSBtb2RpZmljYXRpb24gZnJvbSBBZGRpdGlvbmFsIGNvbHVtbnMgKi9cbiAgLy8gcHJvdGVjdGVkXG4gIHJlYWRvbmx5IG92ZXJyaWRlRGlzcGxheWVkQ29sdW1ucyA9IHNpZ25hbDxUYWJsZUNvbDxUSXRlbT5bXT4obnVsbCk7XG5cbiAgLyoqQ29sdW1ucyB0aGF0IGFyZSBub3QgbWFya2VkIGFzIEFkZGl0aW9uYWwgQ29sdW1ucyBhbmQgYXJlIG5vdCBkaXNhYmxlZCovXG4gIHJlYWRvbmx5IHByZXNlbnRhYmxlQ29sdW1ucyA9IGNvbXB1dGVkKCgpID0+XG4gICAgY2xvbmVEZWVwKHRoaXMuZGlzcGxheWVkQ29sdW1ucygpPy5maWx0ZXIoKHgpID0+ICF4LmFkZGl0aW9uYWxDb2x1bW4gJiYgIXguZGlzYWJsZWQpKSxcbiAgKTtcbiAgcmVhZG9ubHkgZGlzcGxheWVkQ29sdW1uc01hcCA9IGNvbXB1dGVkKCgpID0+IGNsb25lRGVlcCh0aGlzLmRpc3BsYXllZENvbHVtbnMoKT8udG9NYXAoJ2YnKSkpO1xuICByZWFkb25seSBjb21wdXRlZERpc3BsYXllZENvbHVtbnNNYXAgPSBjb21wdXRlZCgoKSA9PlxuICAgIGNsb25lRGVlcChcbiAgICAgIHRoaXMuY29tcHV0ZWREaXNwbGF5ZWRDb2x1bW5zKCk/LnRvTWFwKCdmJykgYXMge1xuICAgICAgICBbayBpbiBrZXlvZiBUSXRlbV06IFRhYmxlQ29sRm9ybWF0dGVkPFRJdGVtPjtcbiAgICAgIH0sXG4gICAgKSxcbiAgKTtcblxuICByZWFkb25seSBjb21wdXRlZERpc3BsYXllZENvbHVtbnMgPSBjb21wdXRlZDxUYWJsZUNvbEZvcm1hdHRlZDxUSXRlbT5bXT4oKCkgPT4ge1xuICAgIGNvbnN0IGRjID1cbiAgICAgICAgdGhpcy5wcmVzZW50YWJsZUNvbHVtbnMoKT8ubWFwKChjKSA9PiB7XG4gICAgICAgICAgaWYgKCFjLnQpIHtcbiAgICAgICAgICAgIGlmIChjLnR5cGUgPT0gJ2J1dHRvbicpIGMudCA9ICdBY3Rpb24nO1xuICAgICAgICAgICAgZWxzZSBpZiAoYy50eXBlID09ICdidG5zJykgYy50ID0gJ0FjdGlvbnMnO1xuICAgICAgICAgICAgYy5zdGlja3kgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYztcbiAgICAgICAgfSkgfHwgW10sXG4gICAgICBvdmVycmlkZUNvbHVtbnMgPSB0aGlzLm92ZXJyaWRlRGlzcGxheWVkQ29sdW1ucygpLFxuICAgICAgZm9ybVNjaGVtYVRvQ29sdW1ucyA9IHRoaXMuZm9ybVNjaGVtYVRvQ29sdW1ucygpLFxuICAgICAgdXBsb2FkU2NoZW1hVG9Db2x1bW5zID0gdGhpcy51cGxvYWRTY2hlbWFUb0NvbHVtbnMoKTtcbiAgICBsZXQgY29sdW1ucyA9IChvdmVycmlkZUNvbHVtbnM/Lmxlbmd0aCA/IG92ZXJyaWRlQ29sdW1ucyA6IGRjKVxuICAgICAgLmNvbmNhdChcbiAgICAgICAgZm9ybVNjaGVtYVRvQ29sdW1ucz8ubWFwKCh4KSA9PiAoe1xuICAgICAgICAgIGY6IHguZmllbGQgYXMgVGFibGVDb2w8VEl0ZW0+WydmJ10sXG4gICAgICAgICAgdDogeC5sYWJlbCxcbiAgICAgICAgICBmb3JtYXR0ZXI6IHgudGFibGVGb3JtYXR0ZXIsXG4gICAgICAgIH0pKSB8fCBbXSxcbiAgICAgIClcbiAgICAgIC5jb25jYXQoXG4gICAgICAgIHVwbG9hZFNjaGVtYVRvQ29sdW1uc1xuICAgICAgICAgID8uZmlsdGVyKCh4KSA9PiB4LmZpZWxkKVxuICAgICAgICAgIC5tYXAoKHgpID0+ICh7IGY6IHguZmllbGQgYXMgVGFibGVDb2w8VEl0ZW0+WydmJ10sIHQ6IHgubGFiZWwgfSkpIHx8IFtdLFxuICAgICAgKTtcbiAgICBjb2x1bW5zID0gY29sdW1ucy5maWx0ZXIoKHgpID0+IHguZik7XG4gICAgdGhpcy5oYW5kbGVDb2x1bW5zKGNvbHVtbnMpO1xuICAgIHJldHVybiBjb2x1bW5zO1xuICB9KTtcblxuICBAT3V0cHV0KCdyb3dDbGljaycpIF9yb3dDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8VEl0ZW0+KCk7XG4gIEBPdXRwdXQoKSBlbWl0Q2hlY2tib3ggPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICBmaWVsZDoga2V5b2YgVEl0ZW07XG4gICAgaXRlbTogVEl0ZW07XG4gICAgdmFsdWU6IGJvb2xlYW47XG4gIH0+KCk7XG5cbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IpIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuICBAVmlld0NoaWxkKE1hdFNvcnQpIHNvcnQ6IE1hdFNvcnQ7XG4gIEBWaWV3Q2hpbGQoJ3RhYmxlJykgdGFibGU6IE1hdFRhYmxlPGFueT47XG4gIHJlYWRvbmx5IHJlc3VsdHNMZW5ndGg6IFNpZ25hbDxudW1iZXI+O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RhcnRlclNlY3Rpb25DbGFzcyA9IHNpZ25hbCgncm93IHJvdy1jb2xzLWxnLWF1dG8gZy0zIGFsaWduLWl0ZW1zLWNlbnRlcicpO1xuICByZWFkb25seSByYXdDb2x1bW5zID0gY29tcHV0ZWQ8c3RyaW5nW10+KCgpID0+XG4gICAgdGhpcy50Uy5nZXRSYXdGaWVsZHMoXG4gICAgICB0aGlzLmNvbXB1dGVkRGlzcGxheWVkQ29sdW1ucygpLFxuICAgICAgdGhpcy5oYXNSb3dPcHRpb25zKCksXG4gICAgICB0aGlzLnVzZVNlbGVjdGlvbigpLFxuICAgICAgdGhpcy5wbGFjZVNlbGVjdGlvbkF0UmlnaHQoKSxcbiAgICAgIHRoaXMuaXNFeHBhbmRhYmxlKCksXG4gICAgKSxcbiAgKTtcbiAgcmVhZG9ubHkgZXhwYW5kZWRFbGVtZW50ID0gc2lnbmFsPFRJdGVtPihudWxsKTtcbiAgcmVhZG9ubHkgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbk1vZGVsPFRJdGVtPih0cnVlLCBbXSk7XG4gIHByb3RlY3RlZCBfc2VsZWN0aW9uQ2hhbmdlZCA9IHRvU2lnbmFsKHRoaXMuc2VsZWN0aW9uLmNoYW5nZWQpO1xuICByZWFkb25seSBzZWxlY3RlZEl0ZW1zU2lnbmFsID0gdG9TaWduYWwoXG4gICAgdGhpcy5zZWxlY3Rpb24uY2hhbmdlZC5waXBlKFxuICAgICAgbWFwKChyKSA9PiB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZCksXG4gICAgICBzdGFydFdpdGgoW10pLFxuICAgICksXG4gICk7XG4gIHJlYWRvbmx5IHNlbGVjdGlvbkNoYW5nZWQgPSBvdXRwdXRGcm9tT2JzZXJ2YWJsZSh0aGlzLnNlbGVjdGlvbi5jaGFuZ2VkKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2VsbEZvcm1hdHRlck1hcDoge1xuICAgIFtrIGluIGtleW9mIFRJdGVtXT86IFBhcnRpYWw8VGFibGVDb2xGb3JtYXR0ZWQ8VEl0ZW0+PjtcbiAgfSA9IHt9O1xuICBwdWJsaWMgdVMgPSBpbmplY3QoVXRpbGl0eVNlcnZpY2UpO1xuICBwdWJsaWMgdFMgPSBpbmplY3QoVGFibGVTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgdXNlQ3VzdG9tTGFiZWxzID0gbW9kZWwodHJ1ZSk7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG51bWJlciBvZiBzZWxlY3RlZCBlbGVtZW50cyBtYXRjaGVzIHRoZSB0b3RhbCBudW1iZXIgb2Ygcm93cy4gKi9cbiAgcmVhZG9ubHkgaXNBbGxTZWxlY3RlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VsZWN0ZWRJdGVtc1NpZ25hbCgpLmxlbmd0aCA9PSB0aGlzLmRhdGEoKT8ubGVuZ3RoKTtcbiAgcmVhZG9ubHkgaXNBbnlTZWxlY3RlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VsZWN0ZWRJdGVtc1NpZ25hbCgpLmxlbmd0aCA+IDApO1xuICByZWFkb25seSByb3dPcHRpb25zID0gY29tcHV0ZWQ8SVJvd09wdGlvbjxUSXRlbT5bXT4oKCkgPT5cbiAgICB0aGlzLl9yb3dPcHRpb25zKCk/LmZpbHRlcigoeCkgPT4gISF4ICYmICF4Lmlnbm9yZSksXG4gICk7XG4gIHJlYWRvbmx5IGhhc1Jvd09wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiAhIXRoaXMucm93T3B0aW9ucygpPy5sZW5ndGggfHwgISF0aGlzLnJvd09wdGlvbnNNYXAoKSk7XG5cbiAgLyoqIFRoZSBsYWJlbCBmb3IgdGhlIGNoZWNrYm94IG9uIHRoZSBwYXNzZWQgcm93ICovXG4gIGNoZWNrYm94TGFiZWwocm93PzogVEl0ZW0pOiBzdHJpbmcge1xuICAgIGlmICghcm93KSByZXR1cm4gYCR7dGhpcy5pc0FsbFNlbGVjdGVkKCkgPyAnZGVzZWxlY3QnIDogJ3NlbGVjdCd9IGFsbGA7XG4gICAgcmV0dXJuIGAke3RoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93KSA/ICdkZXNlbGVjdCcgOiAnc2VsZWN0J30gcm93IGA7XG4gIH1cblxuICBmaWVsZHNDaGFuZ2VkKCRldmVudDogeyBuRmllbGRzOiBUYWJsZUNvbFtdOyBhbGxGaWVsZHM6IFRhYmxlQ29sW10gfSkge1xuICAgIGNvbnN0IGNvbHMgPSAkZXZlbnQubkZpZWxkcztcbiAgICB0aGlzLm92ZXJyaWRlRGlzcGxheWVkQ29sdW1ucy5zZXQoXG4gICAgICBjb2xzXG4gICAgICAgIC5maWx0ZXIoKHgpID0+ICEoeC50eXBlID09ICdidG5zJyAmJiB4LnN0aWNreSkpXG4gICAgICAgIC5jb25jYXQoY29scy5maWx0ZXIoKHgpID0+IHgudHlwZSA9PSAnYnRucycgJiYgeC5zdGlja3kpKVxuICAgICAgICAubWFwKCh4KSA9PiB7XG4gICAgICAgICAgaWYgKHgudHlwZSA9PT0gJ251bWJlcicpIHguZm9ybWF0dGVyID0gdGhpcy51Uy5tb25leVBhcnNlcjtcbiAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIGdldEFjdGlvblN0YXR1c0NhbGxiYWNrKGNvbCkge1xuICAgIHJldHVybiAoc3RhdGU6IGJvb2xlYW4pID0+IChjb2wuYnRuLmxvYWRpbmcgPSBzdGF0ZSk7XG4gIH1cbiAgcmVhZG9ubHkgZGF0YTogV3JpdGFibGVTaWduYWw8VEl0ZW1bXT47XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNvbHVtbnMgPSAoY29sdW1uczogVGFibGVDb2xGb3JtYXR0ZWQ8VEl0ZW0+W10pID0+IHtcbiAgICBpZiAodGhpcy5kZWJ1ZygpKSBkZWJ1Z2dlcjtcbiAgICBpZiAoIWNvbHVtbnM/Lmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgY29uc3QgY3VzdG9tVGVtcGxhdGVzID0gdGhpcy5jdXN0b21UZW1wbGF0ZXMoKTtcbiAgICBjb25zdCBjZWxsc1RvQ2hlY2tGb3I6IHsgW2sgaW4ga2V5b2YgVEl0ZW1dPzogbnVtYmVyIH0gPSB7fTtcbiAgICAvLyBjb25zdCBkYXRlRmllbGRzID0geyBjcmVhdGVkT246IDEsIHVwZGF0ZWRPbjogMSB9O1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBjb2x1bW5zLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgaXRlbSA9IGNvbHVtbnNbaW5kZXhdO1xuICAgICAgaXRlbS5jdXN0b21UZW1wbGF0ZSA9IGN1c3RvbVRlbXBsYXRlcz8uW2l0ZW0uZl07XG4gICAgICBpZiAoXG4gICAgICAgICEoXG4gICAgICAgICAgaXRlbS5wcmV2aWV3T25Ib3ZlciA9PT0gZmFsc2UgfHxcbiAgICAgICAgICAoIWl0ZW0ub25Ib3ZlckhhbmRsZXIgJiYgIXRoaXMudFMuZ2VuZXJhbENvbHVtblByb3BNYXBbaXRlbS5mXT8ub25Ib3ZlckhhbmRsZXIpXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICBpdGVtLl9vbkhvdmVyRnVuY3Rpb24gPSAoZXZlbnQsIHJvdykgPT5cbiAgICAgICAgICAoaXRlbS5vbkhvdmVySGFuZGxlciB8fCB0aGlzLnRTLmdlbmVyYWxDb2x1bW5Qcm9wTWFwW2l0ZW0uZl0/Lm9uSG92ZXJIYW5kbGVyKS5hY3Rpb24oXG4gICAgICAgICAgICByb3csXG4gICAgICAgICAgICBldmVudCxcbiAgICAgICAgICApO1xuICAgICAgICBpdGVtLl9vbkhvdmVyRGVsYXkgPSAoXG4gICAgICAgICAgaXRlbS5vbkhvdmVySGFuZGxlciB8fCB0aGlzLnRTLmdlbmVyYWxDb2x1bW5Qcm9wTWFwW2l0ZW0uZl0/Lm9uSG92ZXJIYW5kbGVyXG4gICAgICAgICkuZGVsYXk7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbS5ub0Zvcm1hdCB8fCBpdGVtLmZvcm1hdHRlciB8fCBpdGVtLmZvcm1hdHRlclJvdykge1xuICAgICAgICB0aGlzLmNlbGxGb3JtYXR0ZXJNYXBbaXRlbS5mXSA9IHtcbiAgICAgICAgICBub0Zvcm1hdDogaXRlbS5ub0Zvcm1hdCxcbiAgICAgICAgICBmb3JtYXR0ZXI6IGl0ZW0uZm9ybWF0dGVyLFxuICAgICAgICB9O1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNhdmVkQ29uZmlnID0gdGhpcy5jZWxsRm9ybWF0dGVyTWFwW2l0ZW0uZl07XG4gICAgICBpZiAoc2F2ZWRDb25maWcpIHtcbiAgICAgICAgaXRlbS5ub0Zvcm1hdCA9IHNhdmVkQ29uZmlnLm5vRm9ybWF0O1xuICAgICAgICBpdGVtLmZvcm1hdHRlciA9IHNhdmVkQ29uZmlnLmZvcm1hdHRlcjtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpdGVtRmllbGRMb3dlciA9IGl0ZW0uZj8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgaXRlbUZpZWxkTG93ZXIgPT0gJ2lkJyB8fFxuICAgICAgICAgIGl0ZW1GaWVsZExvd2VyLmluY2x1ZGVzKCd5ZWFyJykgfHxcbiAgICAgICAgICBpdGVtRmllbGRMb3dlci5pbmNsdWRlcygnYWdlJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgaXRlbS5ub0Zvcm1hdCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5jZWxsRm9ybWF0dGVyTWFwW2l0ZW0uZl0gPSBpdGVtO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNlbGxzVG9DaGVja0ZvcltpdGVtLmZdID0gaW5kZXg7XG4gICAgfVxuICAgIGlmICghdGhpcy5kYXRhKCkpIHJldHVybjtcbiAgICAvLyBjb25zb2xlLmxvZygnY2VsbHNUb0NoZWNrRm9yJywgSlNPTi5zdHJpbmdpZnkoY2VsbHNUb0NoZWNrRm9yKSk7XG4gICAgZm9yIChjb25zdCByb3cgb2YgdGhpcy5kYXRhKCkpIHtcbiAgICAgIGlmICghT2JqZWN0LmtleXMoY2VsbHNUb0NoZWNrRm9yKS5sZW5ndGgpIGJyZWFrO1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gY2VsbHNUb0NoZWNrRm9yKSB7XG4gICAgICAgIGNvbnN0IGNlbGwgPSBjb2x1bW5zW2NlbGxzVG9DaGVja0ZvcltrZXldXTtcbiAgICAgICAgY29uc3QgdHlwZW8gPSB0eXBlb2Ygcm93W2tleV07XG4gICAgICAgIGlmICh0eXBlbyA9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICBjZWxsLmZvcm1hdHRlciA9IHRoaXMudVMueWVzTm9DZWxsRm9ybWF0dGVyO1xuICAgICAgICAgIGRlbGV0ZSBjZWxsc1RvQ2hlY2tGb3Jba2V5XTtcbiAgICAgICAgICB0aGlzLmNlbGxGb3JtYXR0ZXJNYXBba2V5XSA9IGNlbGw7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW8gPT0gJ251bWJlcicpIHtcbiAgICAgICAgICBjZWxsLmZvcm1hdHRlciA9IHRoaXMudVMubW9uZXlQYXJzZXI7XG4gICAgICAgICAgZGVsZXRlIGNlbGxzVG9DaGVja0ZvcltrZXldO1xuICAgICAgICAgIHRoaXMuY2VsbEZvcm1hdHRlck1hcFtrZXldID0gY2VsbDtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnVTLmlzRGF0VGltZVZhbHVlKHJvd1trZXldKSkge1xuICAgICAgICAgIGNlbGwuZm9ybWF0dGVyID0gdGhpcy51Uy5mdWxsRGF0ZVRpbWU7XG4gICAgICAgICAgZGVsZXRlIGNlbGxzVG9DaGVja0ZvcltrZXldO1xuICAgICAgICAgIHRoaXMuY2VsbEZvcm1hdHRlck1hcFtrZXldID0gY2VsbDtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnVTLmlzRGF0ZVZhbHVlKHJvd1trZXldKSkge1xuICAgICAgICAgIGNlbGwuZm9ybWF0dGVyID0gdGhpcy51Uy5kYXRlRm9ybWF0O1xuICAgICAgICAgIGRlbGV0ZSBjZWxsc1RvQ2hlY2tGb3Jba2V5XTtcbiAgICAgICAgICB0aGlzLmNlbGxGb3JtYXR0ZXJNYXBba2V5XSA9IGNlbGw7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBrZXkgaW4gY2VsbHNUb0NoZWNrRm9yKSB0aGlzLmNlbGxGb3JtYXR0ZXJNYXBba2V5XSA9IHsgbm9Gb3JtYXQ6IHRydWUgfTtcbiAgfTtcblxuICBvdXRwdXRDaGVja2JveChmaWVsZDoga2V5b2YgVEl0ZW0sIGl0ZW06IFRJdGVtLCB2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5lbWl0Q2hlY2tib3guZW1pdCh7IGZpZWxkLCBpdGVtLCB2YWx1ZSB9KTtcbiAgfVxuXG4gIHJlYWRvbmx5IGFsbFRhYmxlQ29sdW1ucyA9IGNvbXB1dGVkPFRhYmxlQ29sPFRJdGVtPltdPigoKSA9PiB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuZGF0YSgpPy5bMF0gfHwge30pLFxuICAgICAgZGlzcGxheWVkQ29sdW1uc01hcCA9IHRoaXMuZGlzcGxheWVkQ29sdW1uc01hcCgpLFxuICAgICAgY29tcHV0ZWREaXNwbGF5ZWRDb2x1bW5zTWFwID0gdGhpcy5jb21wdXRlZERpc3BsYXllZENvbHVtbnNNYXAoKTtcblxuICAgIHJldHVybiBrZXlzXG4gICAgICAubWFwKChrKSA9PiB7XG4gICAgICAgIGNvbnN0IGUgPSBkaXNwbGF5ZWRDb2x1bW5zTWFwW2tdO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgZjogayBhcyBhbnksXG4gICAgICAgICAgdDogZT8udCB8fCB0aGlzLnVTLmZvcm1hdEZpZWxkKGspLFxuICAgICAgICAgIGFjdGl2ZTogISFjb21wdXRlZERpc3BsYXllZENvbHVtbnNNYXBba10sXG4gICAgICAgIH07XG4gICAgICB9KVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKHgpID0+XG4gICAgICAgICAgIXguZGlzYWJsZWQgJiZcbiAgICAgICAgICAhKHg/LmY/LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgnaWQnKSAmJiB4Py5mPy50b1N0cmluZygpLmxlbmd0aCA9PT0gMiksXG4gICAgICApXG4gICAgICAuc29ydDIoJ3QnLCB0cnVlKTtcbiAgfSk7XG5cbiAgcm93Q2xpY2soZTogVEl0ZW0pIHtcbiAgICB0aGlzLl9yb3dDbGljay5lbWl0KGUpO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkSXRlbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkO1xuICB9XG4gIHJlYWRvbmx5IGZvcm1PcHRpb25zTWFwID0gc2lnbmFsKChyb3c6IFRJdGVtKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMucm93T3B0aW9uc01hcCgpPy4ocm93KT8uZmlsdGVyKCh4KSA9PiAhIXggJiYgIXguaWdub3JlKTtcbiAgICByZXR1cm4gb3B0aW9ucz8ubGVuZ3RoID8gb3B0aW9ucyA6IG51bGw7XG4gIH0pO1xuXG4gIGV4dHJhY3RSb3V0ZSA9IChjZWxsOiBUYWJsZUNvbCwgcm93OiBUSXRlbSk6IHsgcm91dGU6IHN0cmluZzsgcXVlcnlQYXJhbXM6IHt9IH0gPT4ge1xuICAgIGNvbnN0IFtyb3V0ZSwgcXBdID0gY2VsbC5yb3V0ZUZvcm1hdHRlcihyb3cpPy5zcGxpdCgnPycpO1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gKGNlbGwubXF1ZXJ5UGFyYW1zID8gY2VsbC5tcXVlcnlQYXJhbXMocm93KSA6IHt9KSB8fCB7fTtcbiAgICBpZiAocXApXG4gICAgICBxcC5zcGxpdCgnJicpLmZvckVhY2goKHEpID0+IHtcbiAgICAgICAgY29uc3QgW2ZpZWxkLCB2YWxdID0gcS5zcGxpdCgnPScpO1xuICAgICAgICBxdWVyeVBhcmFtc1tmaWVsZF0gPSB2YWw7XG4gICAgICB9KTtcbiAgICAvLyBjb25zb2xlLmxvZyhyb3V0ZSwgcXApO1xuICAgIHJldHVybiB7IHJvdXRlLCBxdWVyeVBhcmFtcyB9O1xuICB9O1xuXG4gIHJlYWRvbmx5IG5nQWZ0ZXJWaWV3SW5pdFNpZ25hbCA9IHNpZ25hbDxudW1iZXI+KG51bGwpO1xuXG4gIHJlYWRvbmx5IHNlbGVjdGVkQ2VsbEZvckV4cGFuc2lvbiA9IHNpZ25hbDx7IGNvbHVtbjogVGFibGVDb2w7IHJvdzogVEl0ZW0gfT4odW5kZWZpbmVkKTtcblxuICBleHBhbmRDZWxsKHJvdzogVEl0ZW0sIGNvbHVtbjogVGFibGVDb2wsIG1vZGFsOiBNb2RhbENvbXBvbmVudCkge1xuICAgIHRoaXMuc2VsZWN0ZWRDZWxsRm9yRXhwYW5zaW9uLnNldCh7IHJvdywgY29sdW1uIH0pO1xuICAgIG1vZGFsLm9wZW4oKTtcbiAgfVxuXG4gIGNsb3NlRXhwYW5kZWRDZWxsKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRDZWxsRm9yRXhwYW5zaW9uLnNldCh1bmRlZmluZWQpO1xuICB9XG5cbiAgcmVmcmVzaFVJKCkge1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuXG5jbGFzcyBUYWJsZUNvbEZvcm1hdHRlZDxUUm93PiBleHRlbmRzIFRhYmxlQ29sPFRSb3c+IHtcbiAgX29uSG92ZXJGdW5jdGlvbj86IE5FTE1vdXNlRXZlbnRIYW5kbGVyPFRSb3c+WydhY3Rpb24nXTtcbiAgX29uSG92ZXJEZWxheT86IG51bWJlciA9IDA7XG59XG4iXX0=
@@ -15030,7 +15030,7 @@ class TableBaseComponent {
15030
15030
  // const dateFields = { createdOn: 1, updatedOn: 1 };
15031
15031
  for (let index = 0; index < columns.length; index++) {
15032
15032
  const item = columns[index];
15033
- item.customTemplate = customTemplates[item.f];
15033
+ item.customTemplate = customTemplates?.[item.f];
15034
15034
  if (!(item.previewOnHover === false ||
15035
15035
  (!item.onHoverHandler && !this.tS.generalColumnPropMap[item.f]?.onHoverHandler))) {
15036
15036
  item._onHoverFunction = (event, row) => (item.onHoverHandler || this.tS.generalColumnPropMap[item.f]?.onHoverHandler).action(row, event);