tango-app-ui-store-builder 1.0.76 → 1.0.77

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.
@@ -4,7 +4,7 @@ import { finalize } from "rxjs";
4
4
  import { DatePickerComponent } from "../../../date-picker/date-picker.component";
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@ng-bootstrap/ng-bootstrap";
7
- import * as i2 from "projects/tango-store-builder/src/lib/services/store-builder.service";
7
+ import * as i2 from "../../../../services/store-builder.service";
8
8
  export class ScheduleTaskPopupComponent {
9
9
  activeModal;
10
10
  apiService;
@@ -162,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
162
162
  }], storeName: [{
163
163
  type: Input
164
164
  }] } });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtdGFzay1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1zdG9yZS1idWlsZGVyL3NyYy9saWIvY29tcG9uZW50cy9tYW5hZ2Utc3RvcmUtcGxhbm8vcG9wdXBzL3NjaGVkdWxlLXRhc2stcG9wdXAvc2NoZWR1bGUtdGFzay1wb3B1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1zdG9yZS1idWlsZGVyL3NyYy9saWIvY29tcG9uZW50cy9tYW5hZ2Utc3RvcmUtcGxhbm8vcG9wdXBzL3NjaGVkdWxlLXRhc2stcG9wdXAvc2NoZWR1bGUtdGFzay1wb3B1cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7OztBQVVqRixNQUFNLE9BQU8sMEJBQTBCO0lBa0IzQjtJQUNBO0lBbEJELFFBQVEsQ0FBTTtJQUNkLFNBQVMsQ0FBUztJQUUzQixRQUFRLEdBQVUsRUFBRSxDQUFDO0lBQ3JCLFdBQVcsR0FBYSxFQUFFLENBQUM7SUFFM0IsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDbkIsYUFBYSxDQUFTO0lBRXRCLGNBQWMsR0FBWSxLQUFLLENBQUM7SUFDaEMsdUJBQXVCLEdBQVksS0FBSyxDQUFDO0lBRXpDLFNBQVMsR0FBVyxDQUFDLENBQUM7SUFDdEIsWUFBWSxHQUFXLEVBQUUsQ0FBQztJQUNULGNBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7SUFFN0UsWUFDVSxXQUEyQixFQUMzQixVQUErQjtRQUQvQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7SUFDdEMsQ0FBQztJQUVKLFFBQVE7UUFDTix1RUFBdUU7UUFDdkUsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUNsQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDN0IsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsV0FBVyxJQUFJLEVBQUUsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLENBQUMsSUFBSTtvQkFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNqQztTQUNGO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXZDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM3QyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLE1BQU0sWUFBWSxHQUFVLENBQUMsRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDO1lBRWpELGdFQUFnRTtZQUNoRSxNQUFNLGVBQWUsR0FBNkIsRUFBRSxDQUFDO1lBQ3JELEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDbkMsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztnQkFDakUsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHO29CQUN0QixHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsQ0FBQztpQkFDbEUsQ0FBQzthQUNIO1lBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ2pCLElBQUksRUFDRixDQUFDLEVBQUUscUJBQXFCLElBQUksTUFBTTtvQkFDaEMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLHVCQUF1QixFQUFFO29CQUN0QyxDQUFDLENBQUMsT0FBTztnQkFDYixHQUFHLEVBQUUsUUFBUSxDQUFDLEVBQUUsYUFBYSxFQUFFO2dCQUMvQixLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLO2dCQUN2QixJQUFJLEVBQUUsQ0FBQyxFQUFFLGVBQWU7Z0JBQ3hCLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxZQUFZLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFO2dCQUN6RCxTQUFTLEVBQUUsWUFBWSxDQUFDLE1BQU07Z0JBQzlCLHlDQUF5QztnQkFDekMsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLGVBQWUsSUFBSSxDQUFDO2dCQUN6QywyQ0FBMkM7Z0JBQzNDLGVBQWU7YUFDaEIsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2Qsb0JBQW9CO1FBQ3BCLGtCQUFrQjtRQUNsQixXQUFXO1FBQ1gsc0JBQXNCO1FBQ3RCLFlBQVk7UUFDWixZQUFZO1FBQ1osaUJBQWlCO1FBQ2pCLHlCQUF5QjtRQUN6QixrRUFBa0U7UUFDbEUsS0FBSztRQUVMLDZDQUE2QztRQUM3QyxzQkFBc0I7UUFDdEIscUJBQXFCO1FBQ3JCLHVCQUF1QjtRQUN2QixzQkFBc0I7UUFDdEIsc0JBQXNCO1FBQ3RCLDJCQUEyQjtRQUMzQixrQ0FBa0M7UUFDbEMsNkJBQTZCO1FBQzdCLGlFQUFpRTtRQUNqRSxPQUFPO1FBQ1AsTUFBTTtRQUVOLGlFQUFpRTtRQUNqRSwwQ0FBMEM7UUFDMUMsNERBQTREO1FBRTVELDZEQUE2RDtRQUM3RCxxQkFBcUI7UUFDckIsUUFBUTtRQUNSLEtBQUs7UUFDTCx5REFBeUQ7UUFFekQsUUFBUTtRQUVSLG9CQUFvQjtRQUNwQix3REFBd0Q7UUFDeEQsSUFBSTtRQUVKLElBQUksSUFBSSxDQUFDLHVCQUF1QjtZQUFFLE9BQU87UUFFekMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztRQUVwQyxJQUFJLENBQUMsVUFBVTthQUNaLGNBQWMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDO2FBQzdCLElBQUksQ0FDSCxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixNQUFNLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxDQUN2RCxlQUFlLEVBQ2YsR0FBRyxDQUNKLENBQUM7Z0JBRUYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLEdBQUcsYUFBYSxNQUFNLENBQUMsQ0FBQztZQUMvRCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNsRCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFjO1FBQ25CLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxNQUFNLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3RDO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQztZQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztTQUNwQjtRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzFCLE1BQU0sTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNCLE1BQU0sTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRTNCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ25DLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ2pDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ2pDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQzthQUN2QztZQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7WUFDbEMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNsQyxPQUFPLENBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO2dCQUNsQyxPQUFPLEVBQUUsSUFBSTtnQkFDYixXQUFXLEVBQUUsTUFBTTthQUNwQixDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FDcEIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNyQixNQUFNLEVBQUUsUUFBUTtZQUNoQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7U0FDbEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFTO1FBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDO3dHQTlLVSwwQkFBMEI7NEZBQTFCLDBCQUEwQix5SUNoQnZDLG1rVUF5SkEsa3lCRDNJWSxPQUFPLG9GQUFFLE9BQU8sMkVBQUUsS0FBSyxtSEFBRSxtQkFBbUIsNEVBQUUsUUFBUTs7NEZBRXJELDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDRSxxQkFBcUIsY0FHbkIsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxDQUFDO3FIQUd4RCxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSwgTmdDbGFzcywgTmdGb3IsIE5nU3R5bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcblxuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tIFwicnhqc1wiO1xuXHJcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vLi4vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFN0b3JlQnVpbGRlclNlcnZpY2UgfSBmcm9tIFwicHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL3NlcnZpY2VzL3N0b3JlLWJ1aWxkZXIuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwic2NoZWR1bGUtdGFzay1wb3B1cFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vc2NoZWR1bGUtdGFzay1wb3B1cC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vc2NoZWR1bGUtdGFzay1wb3B1cC5jb21wb25lbnQuc2Nzc1wiLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW05nQ2xhc3MsIE5nU3R5bGUsIE5nRm9yLCBEYXRlUGlja2VyQ29tcG9uZW50LCBEYXRlUGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTY2hlZHVsZVRhc2tQb3B1cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZml4dHVyZXM6IGFueTtcclxuICBASW5wdXQoKSBzdG9yZU5hbWU6IHN0cmluZztcclxuXHJcbiAgbWJxSXRlbXM6IGFueVtdID0gW107XHJcbiAgem9uZUNvbHVtbnM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICBzY2hlZHVsZWREYXRlOiBzdHJpbmc7XHJcblxyXG4gIHNob3dJbmZvQmFubmVyOiBib29sZWFuID0gZmFsc2U7XG4gIGlzRG93bmxvYWRCdXR0b25Mb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgc29ydE9yZGVyOiBudW1iZXIgPSAxO1xuICBzb3J0ZWRDb2x1bW46IHN0cmluZyA9IFwiXCI7XG4gIHByaXZhdGUgcmVhZG9ubHkgbnVtZXJpY0NvbHVtbnMgPSBuZXcgU2V0KFtcInBhcnRpdGlvblwiLCBcInN0YW5kYXJkQ2FwYWNpdHlcIl0pO1xuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbCxcclxuICAgIHByaXZhdGUgYXBpU2VydmljZTogU3RvcmVCdWlsZGVyU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy8gQ29sbGVjdCBhbGwgdW5pcXVlIHpvbmUgbmFtZXMgYWNyb3NzIGFsbCBmaXh0dXJlcyBpbiBpbnNlcnRpb24gb3JkZXJcclxuICAgIGNvbnN0IHpvbmVTZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuICAgIGZvciAoY29uc3QgZiBvZiB0aGlzLmZpeHR1cmVzKSB7XHJcbiAgICAgIGZvciAoY29uc3QgcyBvZiBmPy5zaGVsZkNvbmZpZyA/PyBbXSkge1xyXG4gICAgICAgIGlmIChzLnpvbmUpIHpvbmVTZXQuYWRkKHMuem9uZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuem9uZUNvbHVtbnMgPSBBcnJheS5mcm9tKHpvbmVTZXQpO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5maXh0dXJlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBmID0gdGhpcy5maXh0dXJlc1tpXTtcclxuICAgICAgY29uc3Qgc2hlbGZEZXRhaWxzOiBhbnlbXSA9IGY/LnNoZWxmQ29uZmlnID8/IFtdO1xyXG5cclxuICAgICAgLy8gR3JvdXAgc2hlbHZlcyBieSB6b25lIGFuZCBjb2xsZWN0IHVuaXF1ZSBicmFuZCBuYW1lcyBwZXIgem9uZVxyXG4gICAgICBjb25zdCB6b25lQWxsb2NhdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9O1xyXG4gICAgICBmb3IgKGNvbnN0IHpvbmUgb2YgdGhpcy56b25lQ29sdW1ucykge1xyXG4gICAgICAgIGNvbnN0IHNoZWx2ZXMgPSBzaGVsZkRldGFpbHMuZmlsdGVyKChzOiBhbnkpID0+IHMuem9uZSA9PT0gem9uZSk7XHJcbiAgICAgICAgem9uZUFsbG9jYXRpb25zW3pvbmVdID0gW1xyXG4gICAgICAgICAgLi4ubmV3IFNldChzaGVsdmVzLmZsYXRNYXAoKHM6IGFueSkgPT4gcy5wcm9kdWN0QnJhbmROYW1lID8/IFtdKSksXHJcbiAgICAgICAgXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5tYnFJdGVtcy5wdXNoKHtcclxuICAgICAgICB3YWxsOlxyXG4gICAgICAgICAgZj8uYXNzb2NpYXRlZEVsZW1lbnRUeXBlID09IFwid2FsbFwiXHJcbiAgICAgICAgICAgID8gYFdhbGwgJHtmPy5hc3NvY2lhdGVkRWxlbWVudE51bWJlcn1gXHJcbiAgICAgICAgICAgIDogXCJGbG9vclwiLFxyXG4gICAgICAgIHVmbjogYEZYIC0gJHtmPy5maXh0dXJlTnVtYmVyfWAsXHJcbiAgICAgICAgYnJhbmQ6IGY/LmhlYWRlcj8ubGFiZWwsXHJcbiAgICAgICAgdHlwZTogZj8uZml4dHVyZUNhdGVnb3J5LFxyXG4gICAgICAgIHNpemU6IGAke2Y/LmZpeHR1cmVXaWR0aD8udmFsdWV9JHtmPy5maXh0dXJlV2lkdGg/LnVuaXR9YCxcclxuICAgICAgICBwYXJ0aXRpb246IHNoZWxmRGV0YWlscy5sZW5ndGgsXHJcbiAgICAgICAgLy8gZGlzcGxheVBhcnRpdGlvbjogc2hlbGZEZXRhaWxzLmxlbmd0aCxcclxuICAgICAgICBzdGFuZGFyZENhcGFjaXR5OiBmPy5maXh0dXJlQ2FwYWNpdHkgPz8gMCxcclxuICAgICAgICAvLyBhY3R1YWxDYXBhY2l0eTogZj8uZml4dHVyZUNhcGFjaXR5ID8/IDAsXHJcbiAgICAgICAgem9uZUFsbG9jYXRpb25zLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRvd25sb2FkTUJRU2hlZXQoKSB7XG4gICAgLy8gY29uc3QgaGVhZGVycyA9IFtcclxuICAgIC8vICAgXCJXYWxsL0Zsb29yXCIsXHJcbiAgICAvLyAgIFwiVUZOXCIsXHJcbiAgICAvLyAgIFwiQnJhbmQgQ2F0ZWdvcnlcIixcclxuICAgIC8vICAgXCJUeXBlXCIsXHJcbiAgICAvLyAgIFwiU2l6ZVwiLFxyXG4gICAgLy8gICBcIlBhcnRpdGlvblwiLFxyXG4gICAgLy8gICBcIlN0YW5kYXJkIENhcGFjaXR5XCIsXHJcbiAgICAvLyAgIC4uLnRoaXMuem9uZUNvbHVtbnMubWFwKCh6b25lKSA9PiBgJHt6b25lfSBab25lIEFsbG9jYXRpb25gKSxcclxuICAgIC8vIF07XHJcblxyXG4gICAgLy8gY29uc3Qgcm93cyA9IHRoaXMubWJxSXRlbXMubWFwKChpdGVtKSA9PiBbXHJcbiAgICAvLyAgIGl0ZW0/LndhbGwgPz8gXCJcIixcclxuICAgIC8vICAgaXRlbT8udWZuID8/IFwiXCIsXHJcbiAgICAvLyAgIGl0ZW0/LmJyYW5kID8/IFwiXCIsXHJcbiAgICAvLyAgIGl0ZW0/LnR5cGUgPz8gXCJcIixcclxuICAgIC8vICAgaXRlbT8uc2l6ZSA/PyBcIlwiLFxyXG4gICAgLy8gICBpdGVtPy5wYXJ0aXRpb24gPz8gXCJcIixcclxuICAgIC8vICAgaXRlbT8uc3RhbmRhcmRDYXBhY2l0eSA/PyBcIlwiLFxyXG4gICAgLy8gICAuLi50aGlzLnpvbmVDb2x1bW5zLm1hcChcclxuICAgIC8vICAgICAoem9uZSkgPT4gaXRlbT8uem9uZUFsbG9jYXRpb25zPy5bem9uZV0/LmpvaW4oXCIsIFwiKSB8fCBcIi1cIlxyXG4gICAgLy8gICApLFxyXG4gICAgLy8gXSk7XHJcblxyXG4gICAgLy8gY29uc3Qgd29ya3NoZWV0ID0gWExTWC51dGlscy5hb2FfdG9fc2hlZXQoW2hlYWRlcnMsIC4uLnJvd3NdKTtcclxuICAgIC8vIGNvbnN0IHdvcmtib29rID0gWExTWC51dGlscy5ib29rX25ldygpO1xyXG4gICAgLy8gWExTWC51dGlscy5ib29rX2FwcGVuZF9zaGVldCh3b3JrYm9vaywgd29ya3NoZWV0LCBcIk1CUVwiKTtcclxuXHJcbiAgICAvLyBjb25zdCBzYWZlU3RvcmVOYW1lID0gKHRoaXMuc3RvcmVOYW1lIHx8IFwic3RvcmVcIikucmVwbGFjZShcclxuICAgIC8vICAgL1tcXFxcLzoqP1wiPD58XS9nLFxyXG4gICAgLy8gICBcIl9cIlxyXG4gICAgLy8gKTtcclxuICAgIC8vIFhMU1gud3JpdGVGaWxlKHdvcmtib29rLCBgJHtzYWZlU3RvcmVOYW1lfV9tYnEueGxzeGApO1xyXG5cclxuICAgIC8vIHRyeSB7XHJcblxyXG4gICAgLy8gfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIC8vICAgY29uc29sZS5sb2coXCJAQCB+IGRvd25sb2FkTUJRU2hlZXQgW0VSUl06XCIsIGVycm9yKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc0Rvd25sb2FkQnV0dG9uTG9hZGluZykgcmV0dXJuO1xuXG4gICAgY29uc3Qgc3RvcmVOYW1lID0gW3RoaXMuc3RvcmVOYW1lXTtcbiAgICB0aGlzLmlzRG93bmxvYWRCdXR0b25Mb2FkaW5nID0gdHJ1ZTtcblxuICAgIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmV4cG9ydE1CUVNoZWV0KHsgc3RvcmVOYW1lIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNEb3dubG9hZEJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3Qgc2FmZVN0b3JlTmFtZSA9ICh0aGlzLnN0b3JlTmFtZSB8fCBcInN0b3JlXCIpLnJlcGxhY2UoXG4gICAgICAgICAgICAvW1xcXFwvOio/XCI8PnxdL2csXG4gICAgICAgICAgICBcIl9cIixcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy5hcGlTZXJ2aWNlLnNhdmVBc0V4Y2VsRmlsZShyZXMsIGAke3NhZmVTdG9yZU5hbWV9X21icWApO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFwiQEAgZG93bmxvYWRNQlFTaGVldCBbRVJSXTogXCIsIGVycik7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXHJcbiAgb25Tb3J0KGNvbHVtbjogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5zb3J0ZWRDb2x1bW4gPT09IGNvbHVtbikge1xyXG4gICAgICB0aGlzLnNvcnRPcmRlciA9IHRoaXMuc29ydE9yZGVyICogLTE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNvcnRlZENvbHVtbiA9IGNvbHVtbjtcclxuICAgICAgdGhpcy5zb3J0T3JkZXIgPSAxO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubWJxSXRlbXMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICBjb25zdCBhVmFsdWUgPSBhPy5bY29sdW1uXTtcclxuICAgICAgY29uc3QgYlZhbHVlID0gYj8uW2NvbHVtbl07XHJcblxyXG4gICAgICBpZiAodGhpcy5udW1lcmljQ29sdW1ucy5oYXMoY29sdW1uKSkge1xyXG4gICAgICAgIGNvbnN0IGFOdW0gPSBOdW1iZXIoYVZhbHVlID8/IDApO1xyXG4gICAgICAgIGNvbnN0IGJOdW0gPSBOdW1iZXIoYlZhbHVlID8/IDApO1xyXG4gICAgICAgIHJldHVybiAoYU51bSAtIGJOdW0pICogdGhpcy5zb3J0T3JkZXI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGFTdHIgPSBTdHJpbmcoYVZhbHVlID8/IFwiXCIpO1xyXG4gICAgICBjb25zdCBiU3RyID0gU3RyaW5nKGJWYWx1ZSA/PyBcIlwiKTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICBhU3RyLmxvY2FsZUNvbXBhcmUoYlN0ciwgdW5kZWZpbmVkLCB7XHJcbiAgICAgICAgICBudW1lcmljOiB0cnVlLFxyXG4gICAgICAgICAgc2Vuc2l0aXZpdHk6IFwiYmFzZVwiLFxyXG4gICAgICAgIH0pICogdGhpcy5zb3J0T3JkZXJcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2NoZWR1bGVUYXNrKCkge1xyXG4gICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSh7XHJcbiAgICAgIHN0YXR1czogXCJzdWJtaXRcIixcclxuICAgICAgc2NoZWR1bGVkRGF0ZTogdGhpcy5zY2hlZHVsZWREYXRlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkRhdGVTZWxlY3RlZChkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuc2NoZWR1bGVkRGF0ZSA9IGRhdGE7XHJcbiAgICB0aGlzLnNob3dJbmZvQmFubmVyID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG9uQ2FuY2VsKCkge1xyXG4gICAgdGhpcy5hY3RpdmVNb2RhbC5kaXNtaXNzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtb2RhbC13cmFwcGVyXCI+XHJcbiAgICA8aDMgY2xhc3M9XCJtYi0zXCI+UHVibGlzaCBWZXJpZmljYXRpb24gVGFzazwvaDM+XHJcbiAgICA8cD5Zb3UgYXJlIGFib3V0IHRvIHNlbmQgYSB2ZXJpZmljYXRpb24gdGFzayB0byA8Yj57e3N0b3JlTmFtZX19PC9iPi4gQ2hvb3NlIGlmIHlvdSB3YW50IHRvIHNjaGVkdWxlIHRoZSB0YXNrXHJcbiAgICAgICAgZm9yIGxhdGVyLlxyXG4gICAgPC9wPlxyXG5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMyBtYi0zXCI+XHJcbiAgICAgICAgPGg0IGNsYXNzPVwibWUtYXV0b1wiPk1CUSBmb3Ige3tzdG9yZU5hbWV9fTwvaDQ+XHJcblxyXG4gICAgICAgIDxkYXRlLXBpY2tlciAoZGF0ZUNoYW5nZSk9XCJvbkRhdGVTZWxlY3RlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9kYXRlLXBpY2tlcj5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGJnLXdoaXRlIHNoYWRvdy1zbSBtYnEtZG93bmxvYWQtYnRuXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImRvd25sb2FkTUJRU2hlZXQoKVwiIFtkaXNhYmxlZF09XCJpc0Rvd25sb2FkQnV0dG9uTG9hZGluZ1wiIHN0eWxlPVwicGFkZGluZzogOXB4IDEycHg7XCI+XHJcbiAgICAgICAgICAgIEBpZiAoIWlzRG93bmxvYWRCdXR0b25Mb2FkaW5nKSB7XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjJcIiBoZWlnaHQ9XCIyMlwiIHZpZXdCb3g9XCIwIDAgMjYgMjZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDAwMDBcIiBzdHJva2Utd2lkdGg9XCIwLjI0MDAwMDAwMDAwMDAwMDA1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9XCJTVkdSZXBvX2JnQ2FycmllclwiIHN0cm9rZS13aWR0aD1cIjBcIj48L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9XCJTVkdSZXBvX3RyYWNlckNhcnJpZXJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBzdHJva2U9XCIjQ0NDQ0NDXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMC4zODRcIj48L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9XCJTVkdSZXBvX2ljb25DYXJyaWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjU1MzUgMTYuNTA2MUMxMi40MTE0IDE2LjY2MTUgMTIuMjEwNiAxNi43NSAxMiAxNi43NUMxMS43ODk0IDE2Ljc1IDExLjU4ODYgMTYuNjYxNSAxMS40NDY1IDE2LjUwNjFMNy40NDY0OCAxMi4xMzExQzcuMTY2OTggMTEuODI1NCA3LjE4ODIyIDExLjM1MSA3LjQ5MzkyIDExLjA3MTVDNy43OTk2MyAxMC43OTIgOC4yNzQwMiAxMC44MTMyIDguNTUzNTIgMTEuMTE4OUwxMS4yNSAxNC4wNjgyVjNDMTEuMjUgMi41ODU3OSAxMS41ODU4IDIuMjUgMTIgMi4yNUMxMi40MTQyIDIuMjUgMTIuNzUgMi41ODU3OSAxMi43NSAzVjE0LjA2ODJMMTUuNDQ2NSAxMS4xMTg5QzE1LjcyNiAxMC44MTMyIDE2LjIwMDQgMTAuNzkyIDE2LjUwNjEgMTEuMDcxNUMxNi44MTE4IDExLjM1MSAxNi44MzMgMTEuODI1NCAxNi41NTM1IDEyLjEzMTFMMTIuNTUzNSAxNi41MDYxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzFEMjkzOVwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMy43NSAxNUMzLjc1IDE0LjU4NTggMy40MTQyMiAxNC4yNSAzIDE0LjI1QzIuNTg1NzkgMTQuMjUgMi4yNSAxNC41ODU4IDIuMjUgMTVWMTUuMDU0OUMyLjI0OTk4IDE2LjQyMjUgMi4yNDk5NiAxNy41MjQ4IDIuMzY2NTIgMTguMzkxOEMyLjQ4NzU0IDE5LjI5MTkgMi43NDY0MyAyMC4wNDk3IDMuMzQ4MzUgMjAuNjUxNkMzLjk1MDI3IDIxLjI1MzYgNC43MDgxNCAyMS41MTI1IDUuNjA4MjUgMjEuNjMzNUM2LjQ3NTIyIDIxLjc1IDcuNTc3NTQgMjEuNzUgOC45NDUxMyAyMS43NUgxNS4wNTQ5QzE2LjQyMjUgMjEuNzUgMTcuNTI0OCAyMS43NSAxOC4zOTE4IDIxLjYzMzVDMTkuMjkxOSAyMS41MTI1IDIwLjA0OTcgMjEuMjUzNiAyMC42NTE3IDIwLjY1MTZDMjEuMjUzNiAyMC4wNDk3IDIxLjUxMjUgMTkuMjkxOSAyMS42MzM1IDE4LjM5MThDMjEuNzUgMTcuNTI0OCAyMS43NSAxNi40MjI1IDIxLjc1IDE1LjA1NDlWMTVDMjEuNzUgMTQuNTg1OCAyMS40MTQyIDE0LjI1IDIxIDE0LjI1QzIwLjU4NTggMTQuMjUgMjAuMjUgMTQuNTg1OCAyMC4yNSAxNUMyMC4yNSAxNi40MzU0IDIwLjI0ODQgMTcuNDM2NSAyMC4xNDY5IDE4LjE5MTlDMjAuMDQ4MiAxOC45MjU3IDE5Ljg2NzggMTkuMzE0MiAxOS41OTEgMTkuNTkxQzE5LjMxNDIgMTkuODY3OCAxOC45MjU3IDIwLjA0ODIgMTguMTkxOSAyMC4xNDY5QzE3LjQzNjUgMjAuMjQ4NCAxNi40MzU0IDIwLjI1IDE1IDIwLjI1SDlDNy41NjQ1OSAyMC4yNSA2LjU2MzQ3IDIwLjI0ODQgNS44MDgxMiAyMC4xNDY5QzUuMDc0MzUgMjAuMDQ4MiA0LjY4NTc3IDE5Ljg2NzggNC40MDkwMSAxOS41OTFDNC4xMzIyNSAxOS4zMTQyIDMuOTUxOCAxOC45MjU3IDMuODUzMTUgMTguMTkxOUMzLjc1MTU5IDE3LjQzNjUgMy43NSAxNi40MzU0IDMuNzUgMTVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMUQyOTM5XCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJzcGlubmVyXCIgdmlld0JveD1cIjAgMCA1MCA1MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJwYXRoXCIgY3g9XCIyNVwiIGN5PVwiMjVcIiByPVwiMjBcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjRcIj48L2NpcmNsZT5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICBAaWYoc2hvd0luZm9CYW5uZXIpe1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWJhbm5lclwiPlxyXG4gICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTdcIiBoZWlnaHQ9XCIxOVwiIHZpZXdCb3g9XCIwIDAgMTcgMTlcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS42NjkzIDAuODM0OTYxVjQuMTY4MjlNNS4wMDI2IDAuODM0OTYxVjQuMTY4MjlNMC44MzU5MzggNy41MDE2M0gxNS44MzU5TTIuNTAyNiAyLjUwMTYzSDE0LjE2OTNDMTUuMDg5NyAyLjUwMTYzIDE1LjgzNTkgMy4yNDc4MiAxNS44MzU5IDQuMTY4MjlWMTUuODM1QzE1LjgzNTkgMTYuNzU1NCAxNS4wODk3IDE3LjUwMTYgMTQuMTY5MyAxNy41MDE2SDIuNTAyNkMxLjU4MjEzIDE3LjUwMTYgMC44MzU5MzggMTYuNzU1NCAwLjgzNTkzOCAxNS44MzVWNC4xNjgyOUMwLjgzNTkzOCAzLjI0NzgyIDEuNTgyMTMgMi41MDE2MyAyLjUwMjYgMi41MDE2M1pcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgIFlvdSBhcmUgc2NoZWR1bGluZyB0aGUgbGF5b3V0IHZlcmlmaWNhdGlvbiB0YXNrIGZvciA8Yj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzY2hlZHVsZWREYXRlID09PSAodG9kYXkgfCBkYXRlOid5eXl5LU1NLWRkJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ1RvZGF5J1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoc2NoZWR1bGVkRGF0ZSB8IGRhdGU6J2RkIE1NTU0sIHl5eXknKVxyXG4gICAgICAgICAgICAgICAgfX08L2I+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJtcy1hdXRvIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNob3dJbmZvQmFubmVyID0gZmFsc2U7XCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCJcclxuICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTggMThcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTMuNSA0LjVMNC41IDEzLjVNNC41IDQuNUwxMy41IDEzLjVcIiBzdHJva2U9XCIjMTAxODI4XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInctMTAwIHRhYmxlIGJvdHRvbS1ib3JkZXIgdGV4dC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uU29ydCgnd2FsbCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFdhbGwvRmxvb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBtcy0xIG10LTFcIiBbbmdTdHlsZV09XCJ7IGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICd3YWxsJyA/ICcjMDA5QkYzJyA6ICcnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic29ydE9yZGVyID09PSAxICYmIHNvcnRlZENvbHVtbiA9PT0gJ3dhbGwnID8gJ2ZhLWFycm93LXVwJyA6ICdmYS1hcnJvdy1kb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ3VmbicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFVGTlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIG1zLTEgbXQtMVwiIFtuZ1N0eWxlXT1cInsgY29sb3I6IHNvcnRlZENvbHVtbiA9PT0gJ3VmbicgPyAnIzAwOUJGMycgOiAnJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICd1Zm4nID8gJ2ZhLWFycm93LXVwJyA6ICdmYS1hcnJvdy1kb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ2JyYW5kJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQnJhbmQgQ2F0ZWdvcnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBtcy0xIG10LTFcIiBbbmdTdHlsZV09XCJ7IGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICdicmFuZCcgPyAnIzAwOUJGMycgOiAnJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICdicmFuZCcgPyAnZmEtYXJyb3ctdXAnIDogJ2ZhLWFycm93LWRvd24nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uU29ydCgndHlwZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFR5cGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBtcy0xIG10LTFcIiBbbmdTdHlsZV09XCJ7IGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICd0eXBlJyA/ICcjMDA5QkYzJyA6ICcnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic29ydE9yZGVyID09PSAxICYmIHNvcnRlZENvbHVtbiA9PT0gJ3R5cGUnID8gJ2ZhLWFycm93LXVwJyA6ICdmYS1hcnJvdy1kb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ3NpemUnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBTaXplXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgbXMtMSBtdC0xXCIgW25nU3R5bGVdPVwieyBjb2xvcjogc29ydGVkQ29sdW1uID09PSAnc2l6ZScgPyAnIzAwOUJGMycgOiAnJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICdzaXplJyA/ICdmYS1hcnJvdy11cCcgOiAnZmEtYXJyb3ctZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdwYXJ0aXRpb24nKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBQYXJ0aXRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBtcy0xIG10LTFcIiBbbmdTdHlsZV09XCJ7IGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICdwYXJ0aXRpb24nID8gJyMwMDlCRjMnIDogJycgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzb3J0T3JkZXIgPT09IDEgJiYgc29ydGVkQ29sdW1uID09PSAncGFydGl0aW9uJyA/ICdmYS1hcnJvdy11cCcgOiAnZmEtYXJyb3ctZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8dGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgUGVyIFBhcnRpdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIG1zLTEgbXQtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICdkaXNwbGF5UGFydGl0aW9uJyA/ICcjMDA5QkYzJyA6ICcnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic29ydE9yZGVyID09PSAxICYmIHNvcnRlZENvbHVtbiA9PT0gJ2Rpc3BsYXlQYXJ0aXRpb24nID8gJ2ZhLWFycm93LXVwJyA6ICdmYS1hcnJvdy1kb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90aD4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdzdGFuZGFyZENhcGFjaXR5JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgU3RhbmRhcmQgQ2FwYWNpdHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBtcy0xIG10LTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogc29ydGVkQ29sdW1uID09PSAnc3RhbmRhcmRDYXBhY2l0eScgPyAnIzAwOUJGMycgOiAnJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICdzdGFuZGFyZENhcGFjaXR5JyA/ICdmYS1hcnJvdy11cCcgOiAnZmEtYXJyb3ctZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8dGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEFjdHVhbCBDYXBhY2l0eVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIG1zLTEgbXQtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICdhY3R1YWxDYXBhY2l0eScgPyAnIzAwOUJGMycgOiAnJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICdhY3R1YWxDYXBhY2l0eScgPyAnZmEtYXJyb3ctdXAnIDogJ2ZhLWFycm93LWRvd24nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L3RoPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IHpvbmUgb2Ygem9uZUNvbHVtbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3t6b25lfX0gWm9uZSBBbGxvY2F0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgbXMtMSBtdC0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3RoZWFkPlxyXG5cclxuICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1icUl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPnt7aXRlbT8ud2FsbH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+e3tpdGVtPy51Zm59fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPnt7aXRlbT8uYnJhbmR9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPnt7aXRlbT8udHlwZX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+e3tpdGVtPy5zaXplfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD57e2l0ZW0/LnBhcnRpdGlvbn19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDx0ZD57e2l0ZW0/LmRpc3BsYXlQYXJ0aXRpb259fTwvdGQ+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD57e2l0ZW0/LnN0YW5kYXJkQ2FwYWNpdHl9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8dGQ+e3tpdGVtPy5hY3R1YWxDYXBhY2l0eX19PC90ZD4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCB6b25lIG9mIHpvbmVDb2x1bW5zXCI+e3tpdGVtPy56b25lQWxsb2NhdGlvbnM/Llt6b25lXT8uam9pbignLCAnKSB8fCAnLSd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgIDwvdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYWN0aW9uc1wiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lXCIgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJzY2hlZHVsZVRhc2soKVwiPlxyXG4gICAgICAgICAgICBTY2hlZHVsZSBUYXNrXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtdGFzay1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1zdG9yZS1idWlsZGVyL3NyYy9saWIvY29tcG9uZW50cy9tYW5hZ2Utc3RvcmUtcGxhbm8vcG9wdXBzL3NjaGVkdWxlLXRhc2stcG9wdXAvc2NoZWR1bGUtdGFzay1wb3B1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1zdG9yZS1idWlsZGVyL3NyYy9saWIvY29tcG9uZW50cy9tYW5hZ2Utc3RvcmUtcGxhbm8vcG9wdXBzL3NjaGVkdWxlLXRhc2stcG9wdXAvc2NoZWR1bGUtdGFzay1wb3B1cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7OztBQVVqRixNQUFNLE9BQU8sMEJBQTBCO0lBa0IzQjtJQUNBO0lBbEJELFFBQVEsQ0FBTTtJQUNkLFNBQVMsQ0FBUztJQUUzQixRQUFRLEdBQVUsRUFBRSxDQUFDO0lBQ3JCLFdBQVcsR0FBYSxFQUFFLENBQUM7SUFFM0IsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDbkIsYUFBYSxDQUFTO0lBRXRCLGNBQWMsR0FBWSxLQUFLLENBQUM7SUFDaEMsdUJBQXVCLEdBQVksS0FBSyxDQUFDO0lBRXpDLFNBQVMsR0FBVyxDQUFDLENBQUM7SUFDdEIsWUFBWSxHQUFXLEVBQUUsQ0FB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Q0FBQyxJQUFTO1FBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDO3dHQTlLVSwwQkFBMEI7NEZBQTFCLDBCQUEwQix5SUNoQnZDLG1rVUF5SkEsa3lCRDNJWSxPQUFPLG9GQUFFLE9BQU8sMkVBQUUsS0FBSyxtSEFBRSxtQkFBbUIsNEVBQUUsUUFBUTs7NEZBRXJELDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDRSxxQkFBcUIsY0FHbkIsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxDQUFDO3FIQUd4RCxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSwgTmdDbGFzcywgTmdGb3IsIE5nU3R5bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsIH0gZnJvbSBcIkBuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwXCI7XHJcblxyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uLy4uL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTdG9yZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2VzL3N0b3JlLWJ1aWxkZXIuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwic2NoZWR1bGUtdGFzay1wb3B1cFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vc2NoZWR1bGUtdGFzay1wb3B1cC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vc2NoZWR1bGUtdGFzay1wb3B1cC5jb21wb25lbnQuc2Nzc1wiLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW05nQ2xhc3MsIE5nU3R5bGUsIE5nRm9yLCBEYXRlUGlja2VyQ29tcG9uZW50LCBEYXRlUGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTY2hlZHVsZVRhc2tQb3B1cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZml4dHVyZXM6IGFueTtcclxuICBASW5wdXQoKSBzdG9yZU5hbWU6IHN0cmluZztcclxuXHJcbiAgbWJxSXRlbXM6IGFueVtdID0gW107XHJcbiAgem9uZUNvbHVtbnM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICBzY2hlZHVsZWREYXRlOiBzdHJpbmc7XHJcblxyXG4gIHNob3dJbmZvQmFubmVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNEb3dubG9hZEJ1dHRvbkxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgc29ydE9yZGVyOiBudW1iZXIgPSAxO1xyXG4gIHNvcnRlZENvbHVtbjogc3RyaW5nID0gXCJcIjtcclxuICBwcml2YXRlIHJlYWRvbmx5IG51bWVyaWNDb2x1bW5zID0gbmV3IFNldChbXCJwYXJ0aXRpb25cIiwgXCJzdGFuZGFyZENhcGFjaXR5XCJdKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbCxcclxuICAgIHByaXZhdGUgYXBpU2VydmljZTogU3RvcmVCdWlsZGVyU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy8gQ29sbGVjdCBhbGwgdW5pcXVlIHpvbmUgbmFtZXMgYWNyb3NzIGFsbCBmaXh0dXJlcyBpbiBpbnNlcnRpb24gb3JkZXJcclxuICAgIGNvbnN0IHpvbmVTZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuICAgIGZvciAoY29uc3QgZiBvZiB0aGlzLmZpeHR1cmVzKSB7XHJcbiAgICAgIGZvciAoY29uc3QgcyBvZiBmPy5zaGVsZkNvbmZpZyA/PyBbXSkge1xyXG4gICAgICAgIGlmIChzLnpvbmUpIHpvbmVTZXQuYWRkKHMuem9uZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuem9uZUNvbHVtbnMgPSBBcnJheS5mcm9tKHpvbmVTZXQpO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5maXh0dXJlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBmID0gdGhpcy5maXh0dXJlc1tpXTtcclxuICAgICAgY29uc3Qgc2hlbGZEZXRhaWxzOiBhbnlbXSA9IGY/LnNoZWxmQ29uZmlnID8/IFtdO1xyXG5cclxuICAgICAgLy8gR3JvdXAgc2hlbHZlcyBieSB6b25lIGFuZCBjb2xsZWN0IHVuaXF1ZSBicmFuZCBuYW1lcyBwZXIgem9uZVxyXG4gICAgICBjb25zdCB6b25lQWxsb2NhdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9O1xyXG4gICAgICBmb3IgKGNvbnN0IHpvbmUgb2YgdGhpcy56b25lQ29sdW1ucykge1xyXG4gICAgICAgIGNvbnN0IHNoZWx2ZXMgPSBzaGVsZkRldGFpbHMuZmlsdGVyKChzOiBhbnkpID0+IHMuem9uZSA9PT0gem9uZSk7XHJcbiAgICAgICAgem9uZUFsbG9jYXRpb25zW3pvbmVdID0gW1xyXG4gICAgICAgICAgLi4ubmV3IFNldChzaGVsdmVzLmZsYXRNYXAoKHM6IGFueSkgPT4gcy5wcm9kdWN0QnJhbmROYW1lID8/IFtdKSksXHJcbiAgICAgICAgXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5tYnFJdGVtcy5wdXNoKHtcclxuICAgICAgICB3YWxsOlxyXG4gICAgICAgICAgZj8uYXNzb2NpYXRlZEVsZW1lbnRUeXBlID09IFwid2FsbFwiXHJcbiAgICAgICAgICAgID8gYFdhbGwgJHtmPy5hc3NvY2lhdGVkRWxlbWVudE51bWJlcn1gXHJcbiAgICAgICAgICAgIDogXCJGbG9vclwiLFxyXG4gICAgICAgIHVmbjogYEZYIC0gJHtmPy5maXh0dXJlTnVtYmVyfWAsXHJcbiAgICAgICAgYnJhbmQ6IGY/LmhlYWRlcj8ubGFiZWwsXHJcbiAgICAgICAgdHlwZTogZj8uZml4dHVyZUNhdGVnb3J5LFxyXG4gICAgICAgIHNpemU6IGAke2Y/LmZpeHR1cmVXaWR0aD8udmFsdWV9JHtmPy5maXh0dXJlV2lkdGg/LnVuaXR9YCxcclxuICAgICAgICBwYXJ0aXRpb246IHNoZWxmRGV0YWlscy5sZW5ndGgsXHJcbiAgICAgICAgLy8gZGlzcGxheVBhcnRpdGlvbjogc2hlbGZEZXRhaWxzLmxlbmd0aCxcclxuICAgICAgICBzdGFuZGFyZENhcGFjaXR5OiBmPy5maXh0dXJlQ2FwYWNpdHkgPz8gMCxcclxuICAgICAgICAvLyBhY3R1YWxDYXBhY2l0eTogZj8uZml4dHVyZUNhcGFjaXR5ID8/IDAsXHJcbiAgICAgICAgem9uZUFsbG9jYXRpb25zLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRvd25sb2FkTUJRU2hlZXQoKSB7XHJcbiAgICAvLyBjb25zdCBoZWFkZXJzID0gW1xyXG4gICAgLy8gICBcIldhbGwvRmxvb3JcIixcclxuICAgIC8vICAgXCJVRk5cIixcclxuICAgIC8vICAgXCJCcmFuZCBDYXRlZ29yeVwiLFxyXG4gICAgLy8gICBcIlR5cGVcIixcclxuICAgIC8vICAgXCJTaXplXCIsXHJcbiAgICAvLyAgIFwiUGFydGl0aW9uXCIsXHJcbiAgICAvLyAgIFwiU3RhbmRhcmQgQ2FwYWNpdHlcIixcclxuICAgIC8vICAgLi4udGhpcy56b25lQ29sdW1ucy5tYXAoKHpvbmUpID0+IGAke3pvbmV9IFpvbmUgQWxsb2NhdGlvbmApLFxyXG4gICAgLy8gXTtcclxuXHJcbiAgICAvLyBjb25zdCByb3dzID0gdGhpcy5tYnFJdGVtcy5tYXAoKGl0ZW0pID0+IFtcclxuICAgIC8vICAgaXRlbT8ud2FsbCA/PyBcIlwiLFxyXG4gICAgLy8gICBpdGVtPy51Zm4gPz8gXCJcIixcclxuICAgIC8vICAgaXRlbT8uYnJhbmQgPz8gXCJcIixcclxuICAgIC8vICAgaXRlbT8udHlwZSA/PyBcIlwiLFxyXG4gICAgLy8gICBpdGVtPy5zaXplID8/IFwiXCIsXHJcbiAgICAvLyAgIGl0ZW0/LnBhcnRpdGlvbiA/PyBcIlwiLFxyXG4gICAgLy8gICBpdGVtPy5zdGFuZGFyZENhcGFjaXR5ID8/IFwiXCIsXHJcbiAgICAvLyAgIC4uLnRoaXMuem9uZUNvbHVtbnMubWFwKFxyXG4gICAgLy8gICAgICh6b25lKSA9PiBpdGVtPy56b25lQWxsb2NhdGlvbnM/Llt6b25lXT8uam9pbihcIiwgXCIpIHx8IFwiLVwiXHJcbiAgICAvLyAgICksXHJcbiAgICAvLyBdKTtcclxuXHJcbiAgICAvLyBjb25zdCB3b3Jrc2hlZXQgPSBYTFNYLnV0aWxzLmFvYV90b19zaGVldChbaGVhZGVycywgLi4ucm93c10pO1xyXG4gICAgLy8gY29uc3Qgd29ya2Jvb2sgPSBYTFNYLnV0aWxzLmJvb2tfbmV3KCk7XHJcbiAgICAvLyBYTFNYLnV0aWxzLmJvb2tfYXBwZW5kX3NoZWV0KHdvcmtib29rLCB3b3Jrc2hlZXQsIFwiTUJRXCIpO1xyXG5cclxuICAgIC8vIGNvbnN0IHNhZmVTdG9yZU5hbWUgPSAodGhpcy5zdG9yZU5hbWUgfHwgXCJzdG9yZVwiKS5yZXBsYWNlKFxyXG4gICAgLy8gICAvW1xcXFwvOio/XCI8PnxdL2csXHJcbiAgICAvLyAgIFwiX1wiXHJcbiAgICAvLyApO1xyXG4gICAgLy8gWExTWC53cml0ZUZpbGUod29ya2Jvb2ssIGAke3NhZmVTdG9yZU5hbWV9X21icS54bHN4YCk7XHJcblxyXG4gICAgLy8gdHJ5IHtcclxuXHJcbiAgICAvLyB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8gICBjb25zb2xlLmxvZyhcIkBAIH4gZG93bmxvYWRNQlFTaGVldCBbRVJSXTpcIiwgZXJyb3IpO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIGlmICh0aGlzLmlzRG93bmxvYWRCdXR0b25Mb2FkaW5nKSByZXR1cm47XHJcblxyXG4gICAgY29uc3Qgc3RvcmVOYW1lID0gW3RoaXMuc3RvcmVOYW1lXTtcclxuICAgIHRoaXMuaXNEb3dubG9hZEJ1dHRvbkxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuYXBpU2VydmljZVxyXG4gICAgICAuZXhwb3J0TUJRU2hlZXQoeyBzdG9yZU5hbWUgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc0Rvd25sb2FkQnV0dG9uTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc3Qgc2FmZVN0b3JlTmFtZSA9ICh0aGlzLnN0b3JlTmFtZSB8fCBcInN0b3JlXCIpLnJlcGxhY2UoXHJcbiAgICAgICAgICAgIC9bXFxcXC86Kj9cIjw+fF0vZyxcclxuICAgICAgICAgICAgXCJfXCIsXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgIHRoaXMuYXBpU2VydmljZS5zYXZlQXNFeGNlbEZpbGUocmVzLCBgJHtzYWZlU3RvcmVOYW1lfV9tYnFgKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIkBAIGRvd25sb2FkTUJRU2hlZXQgW0VSUl06IFwiLCBlcnIpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25Tb3J0KGNvbHVtbjogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5zb3J0ZWRDb2x1bW4gPT09IGNvbHVtbikge1xyXG4gICAgICB0aGlzLnNvcnRPcmRlciA9IHRoaXMuc29ydE9yZGVyICogLTE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNvcnRlZENvbHVtbiA9IGNvbHVtbjtcclxuICAgICAgdGhpcy5zb3J0T3JkZXIgPSAxO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubWJxSXRlbXMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICBjb25zdCBhVmFsdWUgPSBhPy5bY29sdW1uXTtcclxuICAgICAgY29uc3QgYlZhbHVlID0gYj8uW2NvbHVtbl07XHJcblxyXG4gICAgICBpZiAodGhpcy5udW1lcmljQ29sdW1ucy5oYXMoY29sdW1uKSkge1xyXG4gICAgICAgIGNvbnN0IGFOdW0gPSBOdW1iZXIoYVZhbHVlID8/IDApO1xyXG4gICAgICAgIGNvbnN0IGJOdW0gPSBOdW1iZXIoYlZhbHVlID8/IDApO1xyXG4gICAgICAgIHJldHVybiAoYU51bSAtIGJOdW0pICogdGhpcy5zb3J0T3JkZXI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGFTdHIgPSBTdHJpbmcoYVZhbHVlID8/IFwiXCIpO1xyXG4gICAgICBjb25zdCBiU3RyID0gU3RyaW5nKGJWYWx1ZSA/PyBcIlwiKTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICBhU3RyLmxvY2FsZUNvbXBhcmUoYlN0ciwgdW5kZWZpbmVkLCB7XHJcbiAgICAgICAgICBudW1lcmljOiB0cnVlLFxyXG4gICAgICAgICAgc2Vuc2l0aXZpdHk6IFwiYmFzZVwiLFxyXG4gICAgICAgIH0pICogdGhpcy5zb3J0T3JkZXJcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2NoZWR1bGVUYXNrKCkge1xyXG4gICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSh7XHJcbiAgICAgIHN0YXR1czogXCJzdWJtaXRcIixcclxuICAgICAgc2NoZWR1bGVkRGF0ZTogdGhpcy5zY2hlZHVsZWREYXRlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkRhdGVTZWxlY3RlZChkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuc2NoZWR1bGVkRGF0ZSA9IGRhdGE7XHJcbiAgICB0aGlzLnNob3dJbmZvQmFubmVyID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG9uQ2FuY2VsKCkge1xyXG4gICAgdGhpcy5hY3RpdmVNb2RhbC5kaXNtaXNzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtb2RhbC13cmFwcGVyXCI+XHJcbiAgICA8aDMgY2xhc3M9XCJtYi0zXCI+UHVibGlzaCBWZXJpZmljYXRpb24gVGFzazwvaDM+XHJcbiAgICA8cD5Zb3UgYXJlIGFib3V0IHRvIHNlbmQgYSB2ZXJpZmljYXRpb24gdGFzayB0byA8Yj57e3N0b3JlTmFtZX19PC9iPi4gQ2hvb3NlIGlmIHlvdSB3YW50IHRvIHNjaGVkdWxlIHRoZSB0YXNrXHJcbiAgICAgICAgZm9yIGxhdGVyLlxyXG4gICAgPC9wPlxyXG5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMyBtYi0zXCI+XHJcbiAgICAgICAgPGg0IGNsYXNzPVwibWUtYXV0b1wiPk1CUSBmb3Ige3tzdG9yZU5hbWV9fTwvaDQ+XHJcblxyXG4gICAgICAgIDxkYXRlLXBpY2tlciAoZGF0ZUNoYW5nZSk9XCJvbkRhdGVTZWxlY3RlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9kYXRlLXBpY2tlcj5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGJnLXdoaXRlIHNoYWRvdy1zbSBtYnEtZG93bmxvYWQtYnRuXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImRvd25sb2FkTUJRU2hlZXQoKVwiIFtkaXNhYmxlZF09XCJpc0Rvd25sb2FkQnV0dG9uTG9hZGluZ1wiIHN0eWxlPVwicGFkZGluZzogOXB4IDEycHg7XCI+XHJcbiAgICAgICAgICAgIEBpZiAoIWlzRG93bmxvYWRCdXR0b25Mb2FkaW5nKSB7XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjJcIiBoZWlnaHQ9XCIyMlwiIHZpZXdCb3g9XCIwIDAgMjYgMjZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDAwMDBcIiBzdHJva2Utd2lkdGg9XCIwLjI0MDAwMDAwMDAwMDAwMDA1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9XCJTVkdSZXBvX2JnQ2FycmllclwiIHN0cm9rZS13aWR0aD1cIjBcIj48L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9XCJTVkdSZXBvX3RyYWNlckNhcnJpZXJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBzdHJva2U9XCIjQ0NDQ0NDXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMC4zODRcIj48L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9XCJTVkdSZXBvX2ljb25DYXJyaWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjU1MzUgMTYuNTA2MUMxMi40MTE0IDE2LjY2MTUgMTIuMjEwNiAxNi43NSAxMiAxNi43NUMxMS43ODk0IDE2Ljc1IDExLjU4ODYgMTYuNjYxNSAxMS40NDY1IDE2LjUwNjFMNy40NDY0OCAxMi4xMzExQzcuMTY2OTggMTEuODI1NCA3LjE4ODIyIDExLjM1MSA3LjQ5MzkyIDExLjA3MTVDNy43OTk2MyAxMC43OTIgOC4yNzQwMiAxMC44MTMyIDguNTUzNTIgMTEuMTE4OUwxMS4yNSAxNC4wNjgyVjNDMTEuMjUgMi41ODU3OSAxMS41ODU4IDIuMjUgMTIgMi4yNUMxMi40MTQyIDIuMjUgMTIuNzUgMi41ODU3OSAxMi43NSAzVjE0LjA2ODJMMTUuNDQ2NSAxMS4xMTg5QzE1LjcyNiAxMC44MTMyIDE2LjIwMDQgMTAuNzkyIDE2LjUwNjEgMTEuMDcxNUMxNi44MTE4IDExLjM1MSAxNi44MzMgMTEuODI1NCAxNi41NTM1IDEyLjEzMTFMMTIuNTUzNSAxNi41MDYxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzFEMjkzOVwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMy43NSAxNUMzLjc1IDE0LjU4NTggMy40MTQyMiAxNC4yNSAzIDE0LjI1QzIuNTg1NzkgMTQuMjUgMi4yNSAxNC41ODU4IDIuMjUgMTVWMTUuMDU0OUMyLjI0OTk4IDE2LjQyMjUgMi4yNDk5NiAxNy41MjQ4IDIuMzY2NTIgMTguMzkxOEMyLjQ4NzU0IDE5LjI5MTkgMi43NDY0MyAyMC4wNDk3IDMuMzQ4MzUgMjAuNjUxNkMzLjk1MDI3IDIxLjI1MzYgNC43MDgxNCAyMS41MTI1IDUuNjA4MjUgMjEuNjMzNUM2LjQ3NTIyIDIxLjc1IDcuNTc3NTQgMjEuNzUgOC45NDUxMyAyMS43NUgxNS4wNTQ5QzE2LjQyMjUgMjEuNzUgMTcuNTI0OCAyMS43NSAxOC4zOTE4IDIxLjYzMzVDMTkuMjkxOSAyMS41MTI1IDIwLjA0OTcgMjEuMjUzNiAyMC42NTE3IDIwLjY1MTZDMjEuMjUzNiAyMC4wNDk3IDIxLjUxMjUgMTkuMjkxOSAyMS42MzM1IDE4LjM5MThDMjEuNzUgMTcuNTI0OCAyMS43NSAxNi40MjI1IDIxLjc1IDE1LjA1NDlWMTVDMjEuNzUgMTQuNTg1OCAyMS40MTQyIDE0LjI1IDIxIDE0LjI1QzIwLjU4NTggMTQuMjUgMjAuMjUgMTQuNTg1OCAyMC4yNSAxNUMyMC4yNSAxNi40MzU0IDIwLjI0ODQgMTcuNDM2NSAyMC4xNDY5IDE4LjE5MTlDMjAuMDQ4MiAxOC45MjU3IDE5Ljg2NzggMTkuMzE0MiAxOS41OTEgMTkuNTkxQzE5LjMxNDIgMTkuODY3OCAxOC45MjU3IDIwLjA0ODIgMTguMTkxOSAyMC4xNDY5QzE3LjQzNjUgMjAuMjQ4NCAxNi40MzU0IDIwLjI1IDE1IDIwLjI1SDlDNy41NjQ1OSAyMC4yNSA2LjU2MzQ3IDIwLjI0ODQgNS44MDgxMiAyMC4xNDY5QzUuMDc0MzUgMjAuMDQ4MiA0LjY4NTc3IDE5Ljg2NzggNC40MDkwMSAxOS41OTFDNC4xMzIyNSAxOS4zMTQyIDMuOTUxOCAxOC45MjU3IDMuODUzMTUgMTguMTkxOUMzLjc1MTU5IDE3LjQzNjUgMy43NSAxNi40MzU0IDMuNzUgMTVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMUQyOTM5XCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJzcGlubmVyXCIgdmlld0JveD1cIjAgMCA1MCA1MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJwYXRoXCIgY3g9XCIyNVwiIGN5PVwiMjVcIiByPVwiMjBcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjRcIj48L2NpcmNsZT5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICBAaWYoc2hvd0luZm9CYW5uZXIpe1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWJhbm5lclwiPlxyXG4gICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTdcIiBoZWlnaHQ9XCIxOVwiIHZpZXdCb3g9XCIwIDAgMTcgMTlcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS42NjkzIDAuODM0OTYxVjQuMTY4MjlNNS4wMDI2IDAuODM0OTYxVjQuMTY4MjlNMC44MzU5MzggNy41MDE2M0gxNS44MzU5TTIuNTAyNiAyLjUwMTYzSDE0LjE2OTNDMTUuMDg5NyAyLjUwMTYzIDE1LjgzNTkgMy4yNDc4MiAxNS44MzU5IDQuMTY4MjlWMTUuODM1QzE1LjgzNTkgMTYuNzU1NCAxNS4wODk3IDE3LjUwMTYgMTQuMTY5MyAxNy41MDE2SDIuNTAyNkMxLjU4MjEzIDE3LjUwMTYgMC44MzU5MzggMTYuNzU1NCAwLjgzNTkzOCAxNS44MzVWNC4xNjgyOUMwLjgzNTkzOCAzLjI0NzgyIDEuNTgyMTMgMi41MDE2MyAyLjUwMjYgMi41MDE2M1pcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgIFlvdSBhcmUgc2NoZWR1bGluZyB0aGUgbGF5b3V0IHZlcmlmaWNhdGlvbiB0YXNrIGZvciA8Yj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzY2hlZHVsZWREYXRlID09PSAodG9kYXkgfCBkYXRlOid5eXl5LU1NLWRkJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ1RvZGF5J1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoc2NoZWR1bGVkRGF0ZSB8IGRhdGU6J2RkIE1NTU0sIHl5eXknKVxyXG4gICAgICAgICAgICAgICAgfX08L2I+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJtcy1hdXRvIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNob3dJbmZvQmFubmVyID0gZmFsc2U7XCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCJcclxuICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTggMThcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTMuNSA0LjVMNC41IDEzLjVNNC41IDQuNUwxMy41IDEzLjVcIiBzdHJva2U9XCIjMTAxODI4XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInctMTAwIHRhYmxlIGJvdHRvbS1ib3JkZXIgdGV4dC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uU29ydCgnd2FsbCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFdhbGwvRmxvb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBtcy0xIG10LTFcIiBbbmdTdHlsZV09XCJ7IGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICd3YWxsJyA/ICcjMDA5QkYzJyA6ICcnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic29ydE9yZGVyID09PSAxICYmIHNvcnRlZENvbHVtbiA9PT0gJ3dhbGwnID8gJ2ZhLWFycm93LXVwJyA6ICdmYS1hcnJvdy1kb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ3VmbicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFVGTlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIG1zLTEgbXQtMVwiIFtuZ1N0eWxlXT1cInsgY29sb3I6IHNvcnRlZENvbHVtbiA9PT0gJ3VmbicgPyAnIzAwOUJGMycgOiAnJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICd1Zm4nID8gJ2ZhLWFycm93LXVwJyA6ICdmYS1hcnJvdy1kb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ2JyYW5kJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQnJhbmQgQ2F0ZWdvcnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBtcy0xIG10LTFcIiBbbmdTdHlsZV09XCJ7IGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICdicmFuZCcgPyAnIzAwOUJGMycgOiAnJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICdicmFuZCcgPyAnZmEtYXJyb3ctdXAnIDogJ2ZhLWFycm93LWRvd24nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uU29ydCgndHlwZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFR5cGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBtcy0xIG10LTFcIiBbbmdTdHlsZV09XCJ7IGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICd0eXBlJyA/ICcjMDA5QkYzJyA6ICcnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic29ydE9yZGVyID09PSAxICYmIHNvcnRlZENvbHVtbiA9PT0gJ3R5cGUnID8gJ2ZhLWFycm93LXVwJyA6ICdmYS1hcnJvdy1kb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ3NpemUnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBTaXplXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgbXMtMSBtdC0xXCIgW25nU3R5bGVdPVwieyBjb2xvcjogc29ydGVkQ29sdW1uID09PSAnc2l6ZScgPyAnIzAwOUJGMycgOiAnJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICdzaXplJyA/ICdmYS1hcnJvdy11cCcgOiAnZmEtYXJyb3ctZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdwYXJ0aXRpb24nKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBQYXJ0aXRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBtcy0xIG10LTFcIiBbbmdTdHlsZV09XCJ7IGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICdwYXJ0aXRpb24nID8gJyMwMDlCRjMnIDogJycgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzb3J0T3JkZXIgPT09IDEgJiYgc29ydGVkQ29sdW1uID09PSAncGFydGl0aW9uJyA/ICdmYS1hcnJvdy11cCcgOiAnZmEtYXJyb3ctZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8dGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgUGVyIFBhcnRpdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIG1zLTEgbXQtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICdkaXNwbGF5UGFydGl0aW9uJyA/ICcjMDA5QkYzJyA6ICcnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic29ydE9yZGVyID09PSAxICYmIHNvcnRlZENvbHVtbiA9PT0gJ2Rpc3BsYXlQYXJ0aXRpb24nID8gJ2ZhLWFycm93LXVwJyA6ICdmYS1hcnJvdy1kb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90aD4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdzdGFuZGFyZENhcGFjaXR5JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgU3RhbmRhcmQgQ2FwYWNpdHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBtcy0xIG10LTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogc29ydGVkQ29sdW1uID09PSAnc3RhbmRhcmRDYXBhY2l0eScgPyAnIzAwOUJGMycgOiAnJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICdzdGFuZGFyZENhcGFjaXR5JyA/ICdmYS1hcnJvdy11cCcgOiAnZmEtYXJyb3ctZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8dGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEFjdHVhbCBDYXBhY2l0eVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIG1zLTEgbXQtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICdhY3R1YWxDYXBhY2l0eScgPyAnIzAwOUJGMycgOiAnJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICdhY3R1YWxDYXBhY2l0eScgPyAnZmEtYXJyb3ctdXAnIDogJ2ZhLWFycm93LWRvd24nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L3RoPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IHpvbmUgb2Ygem9uZUNvbHVtbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3t6b25lfX0gWm9uZSBBbGxvY2F0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgbXMtMSBtdC0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3RoZWFkPlxyXG5cclxuICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1icUl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPnt7aXRlbT8ud2FsbH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+e3tpdGVtPy51Zm59fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPnt7aXRlbT8uYnJhbmR9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPnt7aXRlbT8udHlwZX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+e3tpdGVtPy5zaXplfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD57e2l0ZW0/LnBhcnRpdGlvbn19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDx0ZD57e2l0ZW0/LmRpc3BsYXlQYXJ0aXRpb259fTwvdGQ+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD57e2l0ZW0/LnN0YW5kYXJkQ2FwYWNpdHl9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8dGQ+e3tpdGVtPy5hY3R1YWxDYXBhY2l0eX19PC90ZD4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCB6b25lIG9mIHpvbmVDb2x1bW5zXCI+e3tpdGVtPy56b25lQWxsb2NhdGlvbnM/Llt6b25lXT8uam9pbignLCAnKSB8fCAnLSd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgIDwvdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYWN0aW9uc1wiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lXCIgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJzY2hlZHVsZVRhc2soKVwiPlxyXG4gICAgICAgICAgICBTY2hlZHVsZSBUYXNrXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -24,10 +24,9 @@ import JSZip from 'jszip';
24
24
  import * as fabric from 'fabric';
25
25
  import * as i2$2 from 'ngx-daterangepicker-material';
26
26
  import { NgxDaterangepickerMd } from 'ngx-daterangepicker-material';
27
- import * as i2$3 from 'projects/tango-store-builder/src/lib/services/store-builder.service';
28
27
  import * as i9 from 'ngx-drag-drop';
29
28
  import { DndModule } from 'ngx-drag-drop';
30
- import * as i2$4 from '@angular/platform-browser';
29
+ import * as i2$3 from '@angular/platform-browser';
31
30
  import { map, filter, distinctUntilChanged } from 'rxjs/operators';
32
31
  import 'dayjs/locale/en';
33
32
  import { Loader } from '@googlemaps/js-api-loader';
@@ -7088,13 +7087,13 @@ class ScheduleTaskPopupComponent {
7088
7087
  onCancel() {
7089
7088
  this.activeModal.dismiss();
7090
7089
  }
7091
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScheduleTaskPopupComponent, deps: [{ token: i1$1.NgbActiveModal }, { token: i2$3.StoreBuilderService }], target: i0.ɵɵFactoryTarget.Component });
7090
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScheduleTaskPopupComponent, deps: [{ token: i1$1.NgbActiveModal }, { token: StoreBuilderService }], target: i0.ɵɵFactoryTarget.Component });
7092
7091
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ScheduleTaskPopupComponent, isStandalone: true, selector: "schedule-task-popup", inputs: { fixtures: "fixtures", storeName: "storeName" }, ngImport: i0, template: "<div class=\"modal-wrapper\">\r\n <h3 class=\"mb-3\">Publish Verification Task</h3>\r\n <p>You are about to send a verification task to <b>{{storeName}}</b>. Choose if you want to schedule the task\r\n for later.\r\n </p>\r\n\r\n\r\n <div class=\"d-flex align-items-center gap-3 mb-3\">\r\n <h4 class=\"me-auto\">MBQ for {{storeName}}</h4>\r\n\r\n <date-picker (dateChange)=\"onDateSelected($event)\">\r\n </date-picker>\r\n\r\n <button type=\"button\" class=\"btn btn-outline d-flex align-items-center justify-content-center bg-white shadow-sm mbq-download-btn\"\r\n (click)=\"downloadMBQSheet()\" [disabled]=\"isDownloadButtonLoading\" style=\"padding: 9px 12px;\">\r\n @if (!isDownloadButtonLoading) {\r\n <svg width=\"22\" height=\"22\" viewBox=\"0 0 26 26\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n stroke=\"#000000\" stroke-width=\"0.24000000000000005\">\r\n <g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"></g>\r\n <g id=\"SVGRepo_tracerCarrier\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke=\"#CCCCCC\"\r\n stroke-width=\"0.384\"></g>\r\n <g id=\"SVGRepo_iconCarrier\">\r\n <path\r\n d=\"M12.5535 16.5061C12.4114 16.6615 12.2106 16.75 12 16.75C11.7894 16.75 11.5886 16.6615 11.4465 16.5061L7.44648 12.1311C7.16698 11.8254 7.18822 11.351 7.49392 11.0715C7.79963 10.792 8.27402 10.8132 8.55352 11.1189L11.25 14.0682V3C11.25 2.58579 11.5858 2.25 12 2.25C12.4142 2.25 12.75 2.58579 12.75 3V14.0682L15.4465 11.1189C15.726 10.8132 16.2004 10.792 16.5061 11.0715C16.8118 11.351 16.833 11.8254 16.5535 12.1311L12.5535 16.5061Z\"\r\n fill=\"#1D2939\"></path>\r\n <path\r\n d=\"M3.75 15C3.75 14.5858 3.41422 14.25 3 14.25C2.58579 14.25 2.25 14.5858 2.25 15V15.0549C2.24998 16.4225 2.24996 17.5248 2.36652 18.3918C2.48754 19.2919 2.74643 20.0497 3.34835 20.6516C3.95027 21.2536 4.70814 21.5125 5.60825 21.6335C6.47522 21.75 7.57754 21.75 8.94513 21.75H15.0549C16.4225 21.75 17.5248 21.75 18.3918 21.6335C19.2919 21.5125 20.0497 21.2536 20.6517 20.6516C21.2536 20.0497 21.5125 19.2919 21.6335 18.3918C21.75 17.5248 21.75 16.4225 21.75 15.0549V15C21.75 14.5858 21.4142 14.25 21 14.25C20.5858 14.25 20.25 14.5858 20.25 15C20.25 16.4354 20.2484 17.4365 20.1469 18.1919C20.0482 18.9257 19.8678 19.3142 19.591 19.591C19.3142 19.8678 18.9257 20.0482 18.1919 20.1469C17.4365 20.2484 16.4354 20.25 15 20.25H9C7.56459 20.25 6.56347 20.2484 5.80812 20.1469C5.07435 20.0482 4.68577 19.8678 4.40901 19.591C4.13225 19.3142 3.9518 18.9257 3.85315 18.1919C3.75159 17.4365 3.75 16.4354 3.75 15Z\"\r\n fill=\"#1D2939\"></path>\r\n </g>\r\n </svg>\r\n } @else {\r\n <svg class=\"spinner\" viewBox=\"0 0 50 50\">\r\n <circle class=\"path\" cx=\"25\" cy=\"25\" r=\"20\" fill=\"none\" stroke-width=\"4\"></circle>\r\n </svg>\r\n }\r\n </button>\r\n </div>\r\n\r\n @if(showInfoBanner){\r\n <div class=\"info-banner\">\r\n <svg width=\"17\" height=\"19\" viewBox=\"0 0 17 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M11.6693 0.834961V4.16829M5.0026 0.834961V4.16829M0.835938 7.50163H15.8359M2.5026 2.50163H14.1693C15.0897 2.50163 15.8359 3.24782 15.8359 4.16829V15.835C15.8359 16.7554 15.0897 17.5016 14.1693 17.5016H2.5026C1.58213 17.5016 0.835938 16.7554 0.835938 15.835V4.16829C0.835938 3.24782 1.58213 2.50163 2.5026 2.50163Z\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n\r\n <span>\r\n You are scheduling the layout verification task for <b>{{\r\n scheduledDate === (today | date:'yyyy-MM-dd')\r\n ? 'Today'\r\n : (scheduledDate | date:'dd MMMM, yyyy')\r\n }}</b>\r\n </span>\r\n\r\n <svg class=\"ms-auto cursor-pointer\" (click)=\"showInfoBanner = false;\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M13.5 4.5L4.5 13.5M4.5 4.5L13.5 13.5\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n }\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('wall')\">\r\n Wall/Floor\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{ color: sortedColumn === 'wall' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'wall' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"></i>\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('ufn')\">\r\n UFN\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{ color: sortedColumn === 'ufn' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'ufn' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"></i>\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('brand')\">\r\n Brand Category\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{ color: sortedColumn === 'brand' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'brand' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"></i>\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('type')\">\r\n Type\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{ color: sortedColumn === 'type' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'type' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"></i>\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('size')\">\r\n Size\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{ color: sortedColumn === 'size' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'size' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"></i>\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('partition')\">\r\n Partition\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{ color: sortedColumn === 'partition' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'partition' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"></i>\r\n </th>\r\n <!-- <th>\r\n Display Per Partition\r\n <i class=\"fa ms-1 mt-1\"\r\n [ngStyle]=\"{ color: sortedColumn === 'displayPartition' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'displayPartition' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"></i>\r\n </th> -->\r\n <th class=\"cursor-pointer\" (click)=\"onSort('standardCapacity')\">\r\n Standard Capacity\r\n <i class=\"fa ms-1 mt-1\"\r\n [ngStyle]=\"{ color: sortedColumn === 'standardCapacity' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'standardCapacity' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"></i>\r\n </th>\r\n <!-- <th>\r\n Actual Capacity\r\n <i class=\"fa ms-1 mt-1\"\r\n [ngStyle]=\"{ color: sortedColumn === 'actualCapacity' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'actualCapacity' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"></i>\r\n </th> -->\r\n <th *ngFor=\"let zone of zoneColumns\">\r\n {{zone}} Zone Allocation\r\n <i class=\"fa ms-1 mt-1\" aria-hidden=\"true\"></i>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr *ngFor=\"let item of mbqItems\">\r\n <td>{{item?.wall}}</td>\r\n <td>{{item?.ufn}}</td>\r\n <td>{{item?.brand}}</td>\r\n <td>{{item?.type}}</td>\r\n <td>{{item?.size}}</td>\r\n <td>{{item?.partition}}</td>\r\n <!-- <td>{{item?.displayPartition}}</td> -->\r\n <td>{{item?.standardCapacity}}</td>\r\n <!-- <td>{{item?.actualCapacity}}</td> -->\r\n <td *ngFor=\"let zone of zoneColumns\">{{item?.zoneAllocations?.[zone]?.join(', ') || '-'}}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n <div class=\"modal-actions\">\r\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"scheduleTask()\">\r\n Schedule Task\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".modal-wrapper{padding:24px}.table-responsive{max-height:58vh}.info-banner{background:#f6fcff;margin-bottom:12px;border:1px solid #6bcaff;border-radius:4px;padding:12px;display:flex;align-items:center;gap:10px;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0%;color:#1d2939}.modal-actions{display:flex;justify-content:end;gap:12px}::ng-deep .modal-content{border-radius:12px!important}.btn .spinner{height:22px;width:22px;animation:spin .9s linear infinite}.btn .spinner .path{stroke-width:6px;stroke:currentColor;stroke-linecap:round;stroke-dasharray:80;stroke-dashoffset:60}@keyframes spin{to{transform:rotate(360deg)}}.mbq-download-btn{min-width:38px}::ng-deep .schedule-task-modal .modal-dialog{max-width:700px;width:100%}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: DatePickerComponent, selector: "date-picker", outputs: ["dateChange"] }, { kind: "pipe", type: DatePipe, name: "date" }] });
7093
7092
  }
7094
7093
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScheduleTaskPopupComponent, decorators: [{
7095
7094
  type: Component,
7096
7095
  args: [{ selector: "schedule-task-popup", standalone: true, imports: [NgClass, NgStyle, NgFor, DatePickerComponent, DatePipe], template: "<div class=\"modal-wrapper\">\r\n <h3 class=\"mb-3\">Publish Verification Task</h3>\r\n <p>You are about to send a verification task to <b>{{storeName}}</b>. Choose if you want to schedule the task\r\n for later.\r\n </p>\r\n\r\n\r\n <div class=\"d-flex align-items-center gap-3 mb-3\">\r\n <h4 class=\"me-auto\">MBQ for {{storeName}}</h4>\r\n\r\n <date-picker (dateChange)=\"onDateSelected($event)\">\r\n </date-picker>\r\n\r\n <button type=\"button\" class=\"btn btn-outline d-flex align-items-center justify-content-center bg-white shadow-sm mbq-download-btn\"\r\n (click)=\"downloadMBQSheet()\" [disabled]=\"isDownloadButtonLoading\" style=\"padding: 9px 12px;\">\r\n @if (!isDownloadButtonLoading) {\r\n <svg width=\"22\" height=\"22\" viewBox=\"0 0 26 26\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n stroke=\"#000000\" stroke-width=\"0.24000000000000005\">\r\n <g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"></g>\r\n <g id=\"SVGRepo_tracerCarrier\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke=\"#CCCCCC\"\r\n stroke-width=\"0.384\"></g>\r\n <g id=\"SVGRepo_iconCarrier\">\r\n <path\r\n d=\"M12.5535 16.5061C12.4114 16.6615 12.2106 16.75 12 16.75C11.7894 16.75 11.5886 16.6615 11.4465 16.5061L7.44648 12.1311C7.16698 11.8254 7.18822 11.351 7.49392 11.0715C7.79963 10.792 8.27402 10.8132 8.55352 11.1189L11.25 14.0682V3C11.25 2.58579 11.5858 2.25 12 2.25C12.4142 2.25 12.75 2.58579 12.75 3V14.0682L15.4465 11.1189C15.726 10.8132 16.2004 10.792 16.5061 11.0715C16.8118 11.351 16.833 11.8254 16.5535 12.1311L12.5535 16.5061Z\"\r\n fill=\"#1D2939\"></path>\r\n <path\r\n d=\"M3.75 15C3.75 14.5858 3.41422 14.25 3 14.25C2.58579 14.25 2.25 14.5858 2.25 15V15.0549C2.24998 16.4225 2.24996 17.5248 2.36652 18.3918C2.48754 19.2919 2.74643 20.0497 3.34835 20.6516C3.95027 21.2536 4.70814 21.5125 5.60825 21.6335C6.47522 21.75 7.57754 21.75 8.94513 21.75H15.0549C16.4225 21.75 17.5248 21.75 18.3918 21.6335C19.2919 21.5125 20.0497 21.2536 20.6517 20.6516C21.2536 20.0497 21.5125 19.2919 21.6335 18.3918C21.75 17.5248 21.75 16.4225 21.75 15.0549V15C21.75 14.5858 21.4142 14.25 21 14.25C20.5858 14.25 20.25 14.5858 20.25 15C20.25 16.4354 20.2484 17.4365 20.1469 18.1919C20.0482 18.9257 19.8678 19.3142 19.591 19.591C19.3142 19.8678 18.9257 20.0482 18.1919 20.1469C17.4365 20.2484 16.4354 20.25 15 20.25H9C7.56459 20.25 6.56347 20.2484 5.80812 20.1469C5.07435 20.0482 4.68577 19.8678 4.40901 19.591C4.13225 19.3142 3.9518 18.9257 3.85315 18.1919C3.75159 17.4365 3.75 16.4354 3.75 15Z\"\r\n fill=\"#1D2939\"></path>\r\n </g>\r\n </svg>\r\n } @else {\r\n <svg class=\"spinner\" viewBox=\"0 0 50 50\">\r\n <circle class=\"path\" cx=\"25\" cy=\"25\" r=\"20\" fill=\"none\" stroke-width=\"4\"></circle>\r\n </svg>\r\n }\r\n </button>\r\n </div>\r\n\r\n @if(showInfoBanner){\r\n <div class=\"info-banner\">\r\n <svg width=\"17\" height=\"19\" viewBox=\"0 0 17 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M11.6693 0.834961V4.16829M5.0026 0.834961V4.16829M0.835938 7.50163H15.8359M2.5026 2.50163H14.1693C15.0897 2.50163 15.8359 3.24782 15.8359 4.16829V15.835C15.8359 16.7554 15.0897 17.5016 14.1693 17.5016H2.5026C1.58213 17.5016 0.835938 16.7554 0.835938 15.835V4.16829C0.835938 3.24782 1.58213 2.50163 2.5026 2.50163Z\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n\r\n <span>\r\n You are scheduling the layout verification task for <b>{{\r\n scheduledDate === (today | date:'yyyy-MM-dd')\r\n ? 'Today'\r\n : (scheduledDate | date:'dd MMMM, yyyy')\r\n }}</b>\r\n </span>\r\n\r\n <svg class=\"ms-auto cursor-pointer\" (click)=\"showInfoBanner = false;\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M13.5 4.5L4.5 13.5M4.5 4.5L13.5 13.5\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n }\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('wall')\">\r\n Wall/Floor\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{ color: sortedColumn === 'wall' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'wall' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"></i>\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('ufn')\">\r\n UFN\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{ color: sortedColumn === 'ufn' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'ufn' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"></i>\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('brand')\">\r\n Brand Category\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{ color: sortedColumn === 'brand' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'brand' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"></i>\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('type')\">\r\n Type\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{ color: sortedColumn === 'type' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'type' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"></i>\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('size')\">\r\n Size\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{ color: sortedColumn === 'size' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'size' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"></i>\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('partition')\">\r\n Partition\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{ color: sortedColumn === 'partition' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'partition' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"></i>\r\n </th>\r\n <!-- <th>\r\n Display Per Partition\r\n <i class=\"fa ms-1 mt-1\"\r\n [ngStyle]=\"{ color: sortedColumn === 'displayPartition' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'displayPartition' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"></i>\r\n </th> -->\r\n <th class=\"cursor-pointer\" (click)=\"onSort('standardCapacity')\">\r\n Standard Capacity\r\n <i class=\"fa ms-1 mt-1\"\r\n [ngStyle]=\"{ color: sortedColumn === 'standardCapacity' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'standardCapacity' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"></i>\r\n </th>\r\n <!-- <th>\r\n Actual Capacity\r\n <i class=\"fa ms-1 mt-1\"\r\n [ngStyle]=\"{ color: sortedColumn === 'actualCapacity' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'actualCapacity' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"></i>\r\n </th> -->\r\n <th *ngFor=\"let zone of zoneColumns\">\r\n {{zone}} Zone Allocation\r\n <i class=\"fa ms-1 mt-1\" aria-hidden=\"true\"></i>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr *ngFor=\"let item of mbqItems\">\r\n <td>{{item?.wall}}</td>\r\n <td>{{item?.ufn}}</td>\r\n <td>{{item?.brand}}</td>\r\n <td>{{item?.type}}</td>\r\n <td>{{item?.size}}</td>\r\n <td>{{item?.partition}}</td>\r\n <!-- <td>{{item?.displayPartition}}</td> -->\r\n <td>{{item?.standardCapacity}}</td>\r\n <!-- <td>{{item?.actualCapacity}}</td> -->\r\n <td *ngFor=\"let zone of zoneColumns\">{{item?.zoneAllocations?.[zone]?.join(', ') || '-'}}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n <div class=\"modal-actions\">\r\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"scheduleTask()\">\r\n Schedule Task\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".modal-wrapper{padding:24px}.table-responsive{max-height:58vh}.info-banner{background:#f6fcff;margin-bottom:12px;border:1px solid #6bcaff;border-radius:4px;padding:12px;display:flex;align-items:center;gap:10px;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0%;color:#1d2939}.modal-actions{display:flex;justify-content:end;gap:12px}::ng-deep .modal-content{border-radius:12px!important}.btn .spinner{height:22px;width:22px;animation:spin .9s linear infinite}.btn .spinner .path{stroke-width:6px;stroke:currentColor;stroke-linecap:round;stroke-dasharray:80;stroke-dashoffset:60}@keyframes spin{to{transform:rotate(360deg)}}.mbq-download-btn{min-width:38px}::ng-deep .schedule-task-modal .modal-dialog{max-width:700px;width:100%}\n"] }]
7097
- }], ctorParameters: () => [{ type: i1$1.NgbActiveModal }, { type: i2$3.StoreBuilderService }], propDecorators: { fixtures: [{
7096
+ }], ctorParameters: () => [{ type: i1$1.NgbActiveModal }, { type: StoreBuilderService }], propDecorators: { fixtures: [{
7098
7097
  type: Input
7099
7098
  }], storeName: [{
7100
7099
  type: Input
@@ -10703,13 +10702,13 @@ class ActionConfirmPopupComponent {
10703
10702
  onOk() {
10704
10703
  this.activeModal.close({ action: "ok", remark: this.remark });
10705
10704
  }
10706
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionConfirmPopupComponent, deps: [{ token: i1$1.NgbActiveModal }, { token: i2$4.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
10705
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionConfirmPopupComponent, deps: [{ token: i1$1.NgbActiveModal }, { token: i2$3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
10707
10706
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActionConfirmPopupComponent, selector: "lib-action-confirm-popup", inputs: { type: "type" }, ngImport: i0, template: "<div class=\"modal-wrapper\">\r\n <div class=\"d-flex gap-3 align-items-center mb-5\">\r\n <div *ngIf=\"safeIcon\" [innerHTML]=\"safeIcon\"></div>\r\n <h3 class=\"title\">{{ title }}</h3>\r\n </div>\r\n\r\n <p class=\"description\">{{ description }}</p>\r\n\r\n <div *ngIf=\"type != 'deleteVM'\" class=\"d-flex flex-column gap-2 mb-4\">\r\n <label for=\"remark\">Remarks</label>\r\n <textarea class=\"form-control\" id=\"remark\" [(ngModel)]=\"remark\" rows=\"3\"\r\n placeholder=\"Enter your remark here...\"></textarea>\r\n </div>\r\n\r\n <div class=\"modal-actions mt-5\">\r\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-primary px-4\" (click)=\"onOk()\">\r\n {{btnText}}\r\n </button>\r\n </div>\r\n</div>", styles: [".modal-wrapper{padding:24px}.modal-wrapper .title{font-family:Inter;font-weight:600;font-size:18px;line-height:28px;color:#1d2939;margin:0}.modal-wrapper .description{font-family:Inter;font-weight:400;font-size:16px;line-height:24px;color:#1d2939;margin-bottom:18px}.modal-actions{display:flex;justify-content:end;gap:12px}::ng-deep .modal-content{border-radius:12px!important}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
10708
10707
  }
10709
10708
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionConfirmPopupComponent, decorators: [{
10710
10709
  type: Component,
10711
10710
  args: [{ selector: "lib-action-confirm-popup", template: "<div class=\"modal-wrapper\">\r\n <div class=\"d-flex gap-3 align-items-center mb-5\">\r\n <div *ngIf=\"safeIcon\" [innerHTML]=\"safeIcon\"></div>\r\n <h3 class=\"title\">{{ title }}</h3>\r\n </div>\r\n\r\n <p class=\"description\">{{ description }}</p>\r\n\r\n <div *ngIf=\"type != 'deleteVM'\" class=\"d-flex flex-column gap-2 mb-4\">\r\n <label for=\"remark\">Remarks</label>\r\n <textarea class=\"form-control\" id=\"remark\" [(ngModel)]=\"remark\" rows=\"3\"\r\n placeholder=\"Enter your remark here...\"></textarea>\r\n </div>\r\n\r\n <div class=\"modal-actions mt-5\">\r\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-primary px-4\" (click)=\"onOk()\">\r\n {{btnText}}\r\n </button>\r\n </div>\r\n</div>", styles: [".modal-wrapper{padding:24px}.modal-wrapper .title{font-family:Inter;font-weight:600;font-size:18px;line-height:28px;color:#1d2939;margin:0}.modal-wrapper .description{font-family:Inter;font-weight:400;font-size:16px;line-height:24px;color:#1d2939;margin-bottom:18px}.modal-actions{display:flex;justify-content:end;gap:12px}::ng-deep .modal-content{border-radius:12px!important}\n"] }]
10712
- }], ctorParameters: () => [{ type: i1$1.NgbActiveModal }, { type: i2$4.DomSanitizer }], propDecorators: { type: [{
10711
+ }], ctorParameters: () => [{ type: i1$1.NgbActiveModal }, { type: i2$3.DomSanitizer }], propDecorators: { type: [{
10713
10712
  type: Input
10714
10713
  }] } });
10715
10714