coer-elements 0.0.5 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. package/esm2022/index.mjs +2 -2
  2. package/esm2022/{Tools → tools}/index.mjs +1 -1
  3. package/esm2022/{Tools → tools}/src/Breadcrumbs.class.mjs +2 -2
  4. package/esm2022/{Tools → tools}/src/ControlValue.mjs +1 -1
  5. package/esm2022/{Tools → tools}/src/DateTime.class.mjs +1 -1
  6. package/esm2022/{Tools → tools}/src/Files.class.mjs +2 -2
  7. package/esm2022/tools/src/Page.class.mjs +162 -0
  8. package/esm2022/{Tools → tools}/src/Screen.class.mjs +1 -1
  9. package/esm2022/tools/src/Source.class.mjs +80 -0
  10. package/esm2022/{Tools → tools}/src/Tools.mjs +1 -1
  11. package/fesm2022/coer-elements.mjs +333 -333
  12. package/fesm2022/coer-elements.mjs.map +1 -1
  13. package/index.d.ts +1 -1
  14. package/package.json +1 -1
  15. package/{Tools → tools}/src/Breadcrumbs.class.ts +1 -1
  16. package/{Tools → tools}/src/Files.class.ts +1 -1
  17. package/{Tools → tools}/src/Page.class.ts +4 -2
  18. package/{Tools → tools}/src/Source.class.ts +2 -1
  19. package/Signals/index.ts +0 -3
  20. package/Signals/src/breakpoint.signal.ts +0 -3
  21. package/Signals/src/isLoading.signal.ts +0 -2
  22. package/Signals/src/isModalOpen.signal.ts +0 -2
  23. package/esm2022/Tools/src/Page.class.mjs +0 -160
  24. package/esm2022/Tools/src/Source.class.mjs +0 -79
  25. /package/{Tools → tools}/index.d.ts +0 -0
  26. /package/{Tools → tools}/index.ts +0 -0
  27. /package/{Tools → tools}/src/Breadcrumbs.class.d.ts +0 -0
  28. /package/{Tools → tools}/src/ControlValue.d.ts +0 -0
  29. /package/{Tools → tools}/src/ControlValue.ts +0 -0
  30. /package/{Tools → tools}/src/DateTime.class.d.ts +0 -0
  31. /package/{Tools → tools}/src/DateTime.class.ts +0 -0
  32. /package/{Tools → tools}/src/Files.class.d.ts +0 -0
  33. /package/{Tools → tools}/src/Page.class.d.ts +0 -0
  34. /package/{Tools → tools}/src/Screen.class.d.ts +0 -0
  35. /package/{Tools → tools}/src/Screen.class.ts +0 -0
  36. /package/{Tools → tools}/src/Source.class.d.ts +0 -0
  37. /package/{Tools → tools}/src/Tools.d.ts +0 -0
  38. /package/{Tools → tools}/src/Tools.ts +0 -0
package/esm2022/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export * from './Tools';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9Ub29scyc7Il19
1
+ export * from './tools';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90b29scyc7Il19
@@ -6,4 +6,4 @@ export * from './src/Page.class';
6
6
  export * from './src/Screen.class';
7
7
  export * from './src/Source.class';
8
8
  export * from './src/Tools';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL1Rvb2xzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NyYy9CcmVhZGNydW1icy5jbGFzcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3JjL0NvbnRyb2xWYWx1ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3JjL0RhdGVUaW1lLmNsYXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9zcmMvRmlsZXMuY2xhc3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NyYy9QYWdlLmNsYXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9zcmMvU2NyZWVuLmNsYXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9zcmMvU291cmNlLmNsYXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9zcmMvVG9vbHMnOyJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL3Rvb2xzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NyYy9CcmVhZGNydW1icy5jbGFzcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3JjL0NvbnRyb2xWYWx1ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3JjL0RhdGVUaW1lLmNsYXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9zcmMvRmlsZXMuY2xhc3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NyYy9QYWdlLmNsYXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9zcmMvU2NyZWVuLmNsYXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9zcmMvU291cmNlLmNsYXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9zcmMvVG9vbHMnOyJdfQ==
@@ -1,4 +1,4 @@
1
- import { Tools } from '../';
1
+ import { Tools } from "./Tools";
2
2
  export class Breadcrumbs {
3
3
  static { this.storage = 'COER-System'; }
4
4
  /** */
@@ -60,4 +60,4 @@ export class Breadcrumbs {
60
60
  }
61
61
  }
62
62
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJlYWRjcnVtYnMuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL1Rvb2xzL3NyYy9CcmVhZGNydW1icy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRTVCLE1BQU0sT0FBTyxXQUFXO2FBRUksWUFBTyxHQUFHLGFBQWEsQ0FBQztJQUVoRCxNQUFNO0lBQ0MsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFZLEVBQUUsSUFBWTtRQUN4QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDL0IsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVqRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3hCLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO0lBR0QsTUFBTTtJQUNDLE1BQU0sQ0FBQyxHQUFHO1FBQ2IsSUFBSSxPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFRLENBQUM7UUFFMUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRTlCLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO2dCQUN4QyxPQUFPLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3JELENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBR0QsYUFBYTtJQUNOLE1BQU0sQ0FBQyxRQUFRO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMvQixPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDbEUsQ0FBQztJQUdELE1BQU07SUFDQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQXlCO1FBQ3hDLElBQUksT0FBTyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBUSxDQUFDO1FBQzFELElBQUksT0FBTztZQUFFLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUdELE1BQU07SUFDQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQVk7UUFDN0IsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzdCLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXBHLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2IsV0FBVyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0wsQ0FBQztJQUdELE1BQU07SUFDQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQVksRUFBRSxJQUFZO1FBQzVDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUUvQixJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekIsV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0wsQ0FBQztJQUdELE1BQU07SUFDQyxNQUFNLENBQUMsVUFBVTtRQUNwQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFL0IsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pCLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUFwcFNvdXJjZSB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7IFRvb2xzIH0gZnJvbSAnLi4vJztcclxuXHJcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1icyB7XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgc3RvcmFnZSA9ICdDT0VSLVN5c3RlbSc7XHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgc3RhdGljIEFkZChwYWdlOiBzdHJpbmcsIHBhdGg6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGJyZWFkY3J1bWJzID0gdGhpcy5HZXQoKTtcclxuICAgICAgICBjb25zdCBwYXRocyA9IGJyZWFkY3J1bWJzLm1hcChpdGVtID0+IGl0ZW0ucGF0aCk7XHJcblxyXG4gICAgICAgIGlmICghcGF0aHMuaW5jbHVkZXMocGF0aCkpIHtcclxuICAgICAgICAgICAgYnJlYWRjcnVtYnMucHVzaCh7IHBhZ2UsIHBhdGggfSk7XHJcbiAgICAgICAgICAgIHRoaXMuU2F2ZShicmVhZGNydW1icyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0KCk6IElBcHBTb3VyY2VbXSB7XHJcbiAgICAgICAgbGV0IHN0b3JhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZSkgYXMgYW55O1xyXG5cclxuICAgICAgICBpZiAoc3RvcmFnZSkge1xyXG4gICAgICAgICAgICBzdG9yYWdlID0gSlNPTi5wYXJzZShzdG9yYWdlKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChzdG9yYWdlLmhhc093blByb3BlcnR5KCdicmVhZGNydW1icycpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gVG9vbHMuQnJlYWtSZWZlcmVuY2Uoc3RvcmFnZS5icmVhZGNydW1icyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqIFNvdXJjZSAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBHZXRGaXJzdCgpOiBJQXBwU291cmNlIHwgbnVsbCB7XHJcbiAgICAgICAgY29uc3QgYnJlYWRjcnVtYnMgPSB0aGlzLkdldCgpO1xyXG4gICAgICAgIHJldHVybiAoYnJlYWRjcnVtYnMubGVuZ3RoID4gMCkgPyBicmVhZGNydW1icy5zaGlmdCgpISA6IG51bGw7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBTYXZlKGJyZWFkY3J1bWJzOiBJQXBwU291cmNlW10pOiB2b2lkIHtcclxuICAgICAgICBsZXQgc3RvcmFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlKSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKHN0b3JhZ2UpIHN0b3JhZ2UgPSBKU09OLnBhcnNlKHN0b3JhZ2UpO1xyXG4gICAgICAgIHN0b3JhZ2UgPSBPYmplY3QuYXNzaWduKHt9LCBzdG9yYWdlLCB7IGJyZWFkY3J1bWJzIH0pO1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5zdG9yYWdlLCBKU09OLnN0cmluZ2lmeShzdG9yYWdlKSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBSZW1vdmUocGF0aDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgbGV0IGJyZWFkY3J1bWJzID0gdGhpcy5HZXQoKTtcclxuICAgICAgICBjb25zdCBpbmRleCA9IGJyZWFkY3J1bWJzLmZpbmRJbmRleCh4ID0+IHgucGF0aC50b0xvd2VyQ2FzZSgpLnRyaW0oKSA9PT0gcGF0aC50b0xvd2VyQ2FzZSgpLnRyaW0oKSk7XHJcblxyXG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgICAgIGJyZWFkY3J1bWJzID0gVG9vbHMuQnJlYWtSZWZlcmVuY2UoYnJlYWRjcnVtYnMpLnNwbGljZSgwLCBpbmRleCArIDEpO1xyXG4gICAgICAgICAgICB0aGlzLlNhdmUoYnJlYWRjcnVtYnMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgc3RhdGljIFNldExhc3QocGFnZTogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBicmVhZGNydW1icyA9IHRoaXMuR2V0KCk7XHJcblxyXG4gICAgICAgIGlmIChicmVhZGNydW1icy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGJyZWFkY3J1bWJzW2JyZWFkY3J1bWJzLmxlbmd0aCAtIDFdID0geyBwYWdlLCBwYXRoIH07XHJcbiAgICAgICAgICAgIHRoaXMuU2F2ZShicmVhZGNydW1icyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgUmVtb3ZlTGFzdCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBicmVhZGNydW1icyA9IHRoaXMuR2V0KCk7XHJcblxyXG4gICAgICAgIGlmIChicmVhZGNydW1icy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGJyZWFkY3J1bWJzLnBvcCgpO1xyXG4gICAgICAgICAgICB0aGlzLlNhdmUoYnJlYWRjcnVtYnMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJlYWRjcnVtYnMuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL3Rvb2xzL3NyYy9CcmVhZGNydW1icy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhDLE1BQU0sT0FBTyxXQUFXO2FBRUksWUFBTyxHQUFHLGFBQWEsQ0FBQztJQUVoRCxNQUFNO0lBQ0MsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFZLEVBQUUsSUFBWTtRQUN4QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDL0IsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVqRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3hCLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO0lBR0QsTUFBTTtJQUNDLE1BQU0sQ0FBQyxHQUFHO1FBQ2IsSUFBSSxPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFRLENBQUM7UUFFMUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRTlCLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO2dCQUN4QyxPQUFPLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3JELENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBR0QsYUFBYTtJQUNOLE1BQU0sQ0FBQyxRQUFRO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMvQixPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDbEUsQ0FBQztJQUdELE1BQU07SUFDQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQXlCO1FBQ3hDLElBQUksT0FBTyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBUSxDQUFDO1FBQzFELElBQUksT0FBTztZQUFFLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUdELE1BQU07SUFDQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQVk7UUFDN0IsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzdCLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXBHLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2IsV0FBVyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0wsQ0FBQztJQUdELE1BQU07SUFDQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQVksRUFBRSxJQUFZO1FBQzVDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUUvQixJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekIsV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0wsQ0FBQztJQUdELE1BQU07SUFDQyxNQUFNLENBQUMsVUFBVTtRQUNwQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFL0IsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pCLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUFwcFNvdXJjZSB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7IFRvb2xzIH0gZnJvbSBcIi4vVG9vbHNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1icyB7XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgc3RvcmFnZSA9ICdDT0VSLVN5c3RlbSc7XHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgc3RhdGljIEFkZChwYWdlOiBzdHJpbmcsIHBhdGg6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGJyZWFkY3J1bWJzID0gdGhpcy5HZXQoKTtcclxuICAgICAgICBjb25zdCBwYXRocyA9IGJyZWFkY3J1bWJzLm1hcChpdGVtID0+IGl0ZW0ucGF0aCk7XHJcblxyXG4gICAgICAgIGlmICghcGF0aHMuaW5jbHVkZXMocGF0aCkpIHtcclxuICAgICAgICAgICAgYnJlYWRjcnVtYnMucHVzaCh7IHBhZ2UsIHBhdGggfSk7XHJcbiAgICAgICAgICAgIHRoaXMuU2F2ZShicmVhZGNydW1icyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0KCk6IElBcHBTb3VyY2VbXSB7XHJcbiAgICAgICAgbGV0IHN0b3JhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZSkgYXMgYW55O1xyXG5cclxuICAgICAgICBpZiAoc3RvcmFnZSkge1xyXG4gICAgICAgICAgICBzdG9yYWdlID0gSlNPTi5wYXJzZShzdG9yYWdlKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChzdG9yYWdlLmhhc093blByb3BlcnR5KCdicmVhZGNydW1icycpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gVG9vbHMuQnJlYWtSZWZlcmVuY2Uoc3RvcmFnZS5icmVhZGNydW1icyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqIFNvdXJjZSAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBHZXRGaXJzdCgpOiBJQXBwU291cmNlIHwgbnVsbCB7XHJcbiAgICAgICAgY29uc3QgYnJlYWRjcnVtYnMgPSB0aGlzLkdldCgpO1xyXG4gICAgICAgIHJldHVybiAoYnJlYWRjcnVtYnMubGVuZ3RoID4gMCkgPyBicmVhZGNydW1icy5zaGlmdCgpISA6IG51bGw7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBTYXZlKGJyZWFkY3J1bWJzOiBJQXBwU291cmNlW10pOiB2b2lkIHtcclxuICAgICAgICBsZXQgc3RvcmFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlKSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKHN0b3JhZ2UpIHN0b3JhZ2UgPSBKU09OLnBhcnNlKHN0b3JhZ2UpO1xyXG4gICAgICAgIHN0b3JhZ2UgPSBPYmplY3QuYXNzaWduKHt9LCBzdG9yYWdlLCB7IGJyZWFkY3J1bWJzIH0pO1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5zdG9yYWdlLCBKU09OLnN0cmluZ2lmeShzdG9yYWdlKSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBSZW1vdmUocGF0aDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgbGV0IGJyZWFkY3J1bWJzID0gdGhpcy5HZXQoKTtcclxuICAgICAgICBjb25zdCBpbmRleCA9IGJyZWFkY3J1bWJzLmZpbmRJbmRleCh4ID0+IHgucGF0aC50b0xvd2VyQ2FzZSgpLnRyaW0oKSA9PT0gcGF0aC50b0xvd2VyQ2FzZSgpLnRyaW0oKSk7XHJcblxyXG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgICAgIGJyZWFkY3J1bWJzID0gVG9vbHMuQnJlYWtSZWZlcmVuY2UoYnJlYWRjcnVtYnMpLnNwbGljZSgwLCBpbmRleCArIDEpO1xyXG4gICAgICAgICAgICB0aGlzLlNhdmUoYnJlYWRjcnVtYnMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgc3RhdGljIFNldExhc3QocGFnZTogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBicmVhZGNydW1icyA9IHRoaXMuR2V0KCk7XHJcblxyXG4gICAgICAgIGlmIChicmVhZGNydW1icy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGJyZWFkY3J1bWJzW2JyZWFkY3J1bWJzLmxlbmd0aCAtIDFdID0geyBwYWdlLCBwYXRoIH07XHJcbiAgICAgICAgICAgIHRoaXMuU2F2ZShicmVhZGNydW1icyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgUmVtb3ZlTGFzdCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBicmVhZGNydW1icyA9IHRoaXMuR2V0KCk7XHJcblxyXG4gICAgICAgIGlmIChicmVhZGNydW1icy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGJyZWFkY3J1bWJzLnBvcCgpO1xyXG4gICAgICAgICAgICB0aGlzLlNhdmUoYnJlYWRjcnVtYnMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
@@ -41,4 +41,4 @@ export class ControlValue {
41
41
  this._IsTouched = callback;
42
42
  }
43
43
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJvbFZhbHVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9Ub29scy9zcmMvQ29udHJvbFZhbHVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFJLFNBQVksRUFBRSxFQUFFO0lBQzdDLE9BQU87UUFDSCxPQUFPLEVBQUUsaUJBQWlCO1FBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3hDLEtBQUssRUFBRSxJQUFJO0tBQ2QsQ0FBQTtBQUNMLENBQUMsQ0FBQTtBQUdELE1BQU0sT0FBTyxZQUFZO0lBQXpCO1FBSVksZUFBVSxHQUFZLEtBQUssQ0FBQztJQThDeEMsQ0FBQztJQXpDRyxJQUFXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFHRCxNQUFNO0lBQ0ksUUFBUSxDQUFDLEtBQVU7UUFDekIsSUFBRyxPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUdELE1BQU07SUFDQyxVQUFVLENBQUMsU0FBa0I7UUFDaEMsSUFBRyxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUdELE1BQU07SUFDQyxVQUFVLENBQUMsS0FBVTtRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBR0QsTUFBTTtJQUNDLGdCQUFnQixDQUFDLFFBQWtCO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFHRCxNQUFNO0lBQ0MsaUJBQWlCLENBQUMsUUFBa0I7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7SUFDL0IsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IENPTlRST0xfVkFMVUUgPSA8VD4oY29tcG9uZW50OiBUKSA9PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IGNvbXBvbmVudCksXHJcbiAgICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBDb250cm9sVmFsdWUgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gICAgLy9WYXJpYWJsZXNcclxuICAgIHByb3RlY3RlZCBfdmFsdWU6IGFueTtcclxuICAgIHByaXZhdGUgX2lzVG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJvdGVjdGVkIF9VcGRhdGVWYWx1ZSE6IEZ1bmN0aW9uO1xyXG4gICAgcHJpdmF0ZSBfSXNUb3VjaGVkITogRnVuY3Rpb247XHJcblxyXG5cclxuICAgIHB1YmxpYyBnZXQgaXNUb3VjaGVkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9pc1RvdWNoZWQ7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIFNldFZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZih0eXBlb2YgdGhpcy5fVXBkYXRlVmFsdWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgdGhpcy5fVXBkYXRlVmFsdWUodmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgU2V0VG91Y2hlZChpc1RvdWNoZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBpZih0eXBlb2YgdGhpcy5fSXNUb3VjaGVkID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX0lzVG91Y2hlZChpc1RvdWNoZWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5faXNUb3VjaGVkID0gaXNUb3VjaGVkO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGNhbGxiYWNrOiBGdW5jdGlvbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX1VwZGF0ZVZhbHVlID0gY2FsbGJhY2s7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGNhbGxiYWNrOiBGdW5jdGlvbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX0lzVG91Y2hlZCA9IGNhbGxiYWNrO1xyXG4gICAgfVxyXG59Il19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJvbFZhbHVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy90b29scy9zcmMvQ29udHJvbFZhbHVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFJLFNBQVksRUFBRSxFQUFFO0lBQzdDLE9BQU87UUFDSCxPQUFPLEVBQUUsaUJBQWlCO1FBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3hDLEtBQUssRUFBRSxJQUFJO0tBQ2QsQ0FBQTtBQUNMLENBQUMsQ0FBQTtBQUdELE1BQU0sT0FBTyxZQUFZO0lBQXpCO1FBSVksZUFBVSxHQUFZLEtBQUssQ0FBQztJQThDeEMsQ0FBQztJQXpDRyxJQUFXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFHRCxNQUFNO0lBQ0ksUUFBUSxDQUFDLEtBQVU7UUFDekIsSUFBRyxPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUdELE1BQU07SUFDQyxVQUFVLENBQUMsU0FBa0I7UUFDaEMsSUFBRyxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUdELE1BQU07SUFDQyxVQUFVLENBQUMsS0FBVTtRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBR0QsTUFBTTtJQUNDLGdCQUFnQixDQUFDLFFBQWtCO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFHRCxNQUFNO0lBQ0MsaUJBQWlCLENBQUMsUUFBa0I7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7SUFDL0IsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IENPTlRST0xfVkFMVUUgPSA8VD4oY29tcG9uZW50OiBUKSA9PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IGNvbXBvbmVudCksXHJcbiAgICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBDb250cm9sVmFsdWUgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gICAgLy9WYXJpYWJsZXNcclxuICAgIHByb3RlY3RlZCBfdmFsdWU6IGFueTtcclxuICAgIHByaXZhdGUgX2lzVG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJvdGVjdGVkIF9VcGRhdGVWYWx1ZSE6IEZ1bmN0aW9uO1xyXG4gICAgcHJpdmF0ZSBfSXNUb3VjaGVkITogRnVuY3Rpb247XHJcblxyXG5cclxuICAgIHB1YmxpYyBnZXQgaXNUb3VjaGVkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9pc1RvdWNoZWQ7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIFNldFZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZih0eXBlb2YgdGhpcy5fVXBkYXRlVmFsdWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgdGhpcy5fVXBkYXRlVmFsdWUodmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgU2V0VG91Y2hlZChpc1RvdWNoZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBpZih0eXBlb2YgdGhpcy5fSXNUb3VjaGVkID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX0lzVG91Y2hlZChpc1RvdWNoZWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5faXNUb3VjaGVkID0gaXNUb3VjaGVkO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGNhbGxiYWNrOiBGdW5jdGlvbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX1VwZGF0ZVZhbHVlID0gY2FsbGJhY2s7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGNhbGxiYWNrOiBGdW5jdGlvbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX0lzVG91Y2hlZCA9IGNhbGxiYWNrO1xyXG4gICAgfVxyXG59Il19
@@ -19,4 +19,4 @@ export class DateTime {
19
19
  return moment(date).parseZone().local(true).format('DD MMM YYYY');
20
20
  }
21
21
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0ZVRpbWUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL1Rvb2xzL3NyYy9EYXRlVGltZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsTUFBTSxPQUFPLFFBQVE7SUFDakIscUJBQXFCO0lBQ2QsTUFBTSxDQUFDLFlBQVk7UUFDdEIsT0FBTyxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBR0QscUNBQXFDO0lBQzlCLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBc0M7UUFDNUQsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBR0QscUNBQXFDO0lBQzlCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBc0M7UUFDdEQsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBR0Qsa0JBQWtCO0lBQ1gsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFtQztRQUMzRCxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDO1lBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWUge1xyXG4gICAgLyoqIEdldCBVVEMgT2Zmc2V0ICovXHJcbiAgICBwdWJsaWMgc3RhdGljIEdldFVUQ09mZnNldCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBtb21lbnQoKS51dGNPZmZzZXQoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqIENvbnZlcnQgVVRDIERhdGUgdG8gTG9jYWwgWm9uZSAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBUb0xvY2FsWm9uZSh1dGNEYXRlOiBzdHJpbmcgfCBEYXRlIHwgbW9tZW50Lk1vbWVudCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIG1vbWVudCh1dGNEYXRlKS5hZGQoRGF0ZVRpbWUuR2V0VVRDT2Zmc2V0KCksICdtaW51dGVzJykuZm9ybWF0KCdZWVlZLU1NLUREIEhIOm1tOnNzJyk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiBDb252ZXJ0IExvY2FsIFpvbmUgRGF0ZSB0byBVVEMgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgVG9VVEModXRjRGF0ZTogc3RyaW5nIHwgRGF0ZSB8IG1vbWVudC5Nb21lbnQpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBtb21lbnQodXRjRGF0ZSkuc3VidHJhY3QoRGF0ZVRpbWUuR2V0VVRDT2Zmc2V0KCksICdtaW51dGVzJykuZm9ybWF0KCdZWVlZLU1NLUREIEhIOm1tOnNzJyk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiBERCBNTU0gWVlZWSAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBHZXREYXRlRm9ybWF0KGRhdGU6IHN0cmluZyB8IERhdGUgfCBtb21lbnQuTW9tZW50KTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoKHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykpIGRhdGUgPSBkYXRlLnJlcGxhY2VBbGwoJy8nLCAnLScpO1xyXG4gICAgICAgIHJldHVybiBtb21lbnQoZGF0ZSkucGFyc2Vab25lKCkubG9jYWwodHJ1ZSkuZm9ybWF0KCdERCBNTU0gWVlZWScpO1xyXG4gICAgfVxyXG59Il19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0ZVRpbWUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL3Rvb2xzL3NyYy9EYXRlVGltZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsTUFBTSxPQUFPLFFBQVE7SUFDakIscUJBQXFCO0lBQ2QsTUFBTSxDQUFDLFlBQVk7UUFDdEIsT0FBTyxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBR0QscUNBQXFDO0lBQzlCLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBc0M7UUFDNUQsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBR0QscUNBQXFDO0lBQzlCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBc0M7UUFDdEQsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBR0Qsa0JBQWtCO0lBQ1gsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFtQztRQUMzRCxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDO1lBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWUge1xyXG4gICAgLyoqIEdldCBVVEMgT2Zmc2V0ICovXHJcbiAgICBwdWJsaWMgc3RhdGljIEdldFVUQ09mZnNldCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBtb21lbnQoKS51dGNPZmZzZXQoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqIENvbnZlcnQgVVRDIERhdGUgdG8gTG9jYWwgWm9uZSAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBUb0xvY2FsWm9uZSh1dGNEYXRlOiBzdHJpbmcgfCBEYXRlIHwgbW9tZW50Lk1vbWVudCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIG1vbWVudCh1dGNEYXRlKS5hZGQoRGF0ZVRpbWUuR2V0VVRDT2Zmc2V0KCksICdtaW51dGVzJykuZm9ybWF0KCdZWVlZLU1NLUREIEhIOm1tOnNzJyk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiBDb252ZXJ0IExvY2FsIFpvbmUgRGF0ZSB0byBVVEMgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgVG9VVEModXRjRGF0ZTogc3RyaW5nIHwgRGF0ZSB8IG1vbWVudC5Nb21lbnQpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBtb21lbnQodXRjRGF0ZSkuc3VidHJhY3QoRGF0ZVRpbWUuR2V0VVRDT2Zmc2V0KCksICdtaW51dGVzJykuZm9ybWF0KCdZWVlZLU1NLUREIEhIOm1tOnNzJyk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiBERCBNTU0gWVlZWSAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBHZXREYXRlRm9ybWF0KGRhdGU6IHN0cmluZyB8IERhdGUgfCBtb21lbnQuTW9tZW50KTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoKHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykpIGRhdGUgPSBkYXRlLnJlcGxhY2VBbGwoJy8nLCAnLScpO1xyXG4gICAgICAgIHJldHVybiBtb21lbnQoZGF0ZSkucGFyc2Vab25lKCkubG9jYWwodHJ1ZSkuZm9ybWF0KCdERCBNTU0gWVlZWScpO1xyXG4gICAgfVxyXG59Il19
@@ -1,5 +1,5 @@
1
- import { Tools } from "../";
2
1
  import * as XLSX from 'xlsx';
2
+ import { Tools } from './Tools';
3
3
  export class Files {
4
4
  static { this.EXCEL_EXTENSIONS = ['xls', 'xlsx', 'csv']; }
5
5
  /** Get Extension File */
@@ -90,4 +90,4 @@ export class Files {
90
90
  });
91
91
  }
92
92
  }
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZXMuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL1Rvb2xzL3NyYy9GaWxlcy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQzVCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRTdCLE1BQU0sT0FBTyxLQUFLO2FBQ1MscUJBQWdCLEdBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRTNFLHlCQUF5QjtJQUNsQixNQUFNLENBQUMsWUFBWSxDQUFDLElBQVU7UUFDakMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUUzQixJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN6QixJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBYSxDQUFDO1lBRTdDLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRyxDQUFDO2dCQUM5QixTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUMzQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztvQkFBRSxPQUFPLFNBQVMsQ0FBQztZQUMvQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFHRCxvQkFBb0I7SUFDYixNQUFNLENBQUMsT0FBTyxDQUFDLElBQVU7UUFDNUIsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUzQyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1lB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QUNoQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTNCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO2dCQUNqQixPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM3QyxDQUFDLENBQUE7WUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTtnQkFDbEIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hCLENBQUMsQ0FBQTtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRvb2xzIH0gZnJvbSBcIi4uL1wiO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpbGVzIHtcclxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRVhDRUxfRVhURU5TSU9OUzogc3RyaW5nW10gPSBbJ3hscycsICd4bHN4JywgJ2NzdiddO1xyXG5cclxuICAgIC8qKiBHZXQgRXh0ZW5zaW9uIEZpbGUgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0RXh0ZW5zaW9uKGZpbGU6IEZpbGUpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGZpbGUubmFtZTtcclxuXHJcbiAgICAgICAgaWYgKGZpbGVOYW1lLmluY2x1ZGVzKCcuJykpIHtcclxuICAgICAgICAgICAgbGV0IHdvcmxkcyA9IGZpbGVOYW1lLnNwbGl0KCcuJykgYXMgc3RyaW5nW107XHJcblxyXG4gICAgICAgICAgICBpZiAod29ybGRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGxldCBleHRlbnNpb24gPSB3b3JsZHMucG9wKCkhO1xyXG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uID0gZXh0ZW5zaW9uLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGV4dGVuc2lvbi5sZW5ndGggPiAwKSByZXR1cm4gZXh0ZW5zaW9uO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqIElzIEV4Y2VsIEZpbGUgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgSXNFeGNlbChmaWxlOiBGaWxlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgRVhURU5TSU9OID0gRmlsZXMuR2V0RXh0ZW5zaW9uKGZpbGUpO1xyXG5cclxuICAgICAgICByZXR1cm4gVG9vbHMuSXNOb3ROdWxsKEVYVEVOU0lPTilcclxuICAgICAgICAgICAgPyB0aGlzLkVYQ0VMX0VYVEVOU0lPTlMuaW5jbHVkZXMoRVhURU5TSU9OISlcclxuICAgICAgICAgICAgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqIFJlYWQgZXhjZWwgZmlsZSAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBSZWFkRXhjZWw8VD4oZmlsZTogRmlsZSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx7IGNvbHVtbnM6IHN0cmluZ1tdOyByb3dzOiBUW107IH0+KFJlc29sdmUgPT4ge1xyXG4gICAgICAgICAgICBsZXQgY29sdW1uczogc3RyaW5nW10gPSBbXTtcclxuICAgICAgICAgICAgbGV0IHJvd3M6IFRbXSA9IFtdO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpO1xyXG5cclxuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFCeXRlcyA9IG5ldyBVaW50OEFycmF5KHJlYWRlci5yZXN1bHQgYXMgYW55KTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0YUJ5dGVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd29ya2Jvb2sgPSBYTFNYLnJlYWQoZGF0YUJ5dGVzLCB7fSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2hlZXQgPSB3b3JrYm9vay5TaGVldHNbd29ya2Jvb2suU2hlZXROYW1lc1swXV07XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGFTaGVldDogYW55W10gPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24oc2hlZXQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyOiBbJ0EnLCAnQicsICdDJywgJ0QnLCAnRScsICdGJywgJ0cnLCAnSCcsICdJJywgJ0onLCAnSycsICdMJywgJ00nLCAnTicsICdPJywgJ1AnLCAnUScsICdSJywgJ1MnLCAnVCcsICdVJywgJ1YnLCAnVycsICdYJywgJ1knLCAnWiddXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vR2V0IEhlYWRlcnNcclxuICAgICAgICAgICAgICAgICAgICBmb3IoY29uc3QgY29sdW1uIGluIGRhdGFTaGVldFswXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zLnB1c2goVG9vbHMuRmlyc3RDaGFyVG9Mb3dlcihTdHJpbmcoZGF0YVNoZWV0WzBdW2NvbHVtbl0pLnJlcGxhY2VBbGwoJyAnLCAnJykpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vR2V0IFJvd3NcclxuICAgICAgICAgICAgICAgICAgICByb3dzID0gWExTWC51dGlscy5zaGVldF90b19qc29uKHNoZWV0LCB7IGhlYWRlcjogY29sdW1ucyB9KTtcclxuICAgICAgICAgICAgICAgICAgICByb3dzLnNoaWZ0KCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJvd3MgPSByb3dzLm1hcChyb3cgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gVG9vbHMuQnJlYWtSZWZlcmVuY2U8YW55Pihyb3cpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgaXRlbVsnX19yb3dOdW1fXyddO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBSZXNvbHZlKHsgY29sdW1ucywgcm93cyB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoKSA9PiB7IFJlc29sdmUoeyBjb2x1bW5zLCByb3dzIH0pIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqIEV4cG9ydCB0byBleGNlbCBmaWxlICovXHJcbiAgICBwdWJsaWMgc3RhdGljIEV4cG9ydEV4Y2VsPFQ+KGRhdGE6IFRbXSwgZmlsZU5hbWU6IHN0cmluZyA9ICdjb2VyX3JlcG9ydCcsIHNoZWV0TmFtZTogc3RyaW5nID0gJ1NoZWV0MScpIHtcclxuICAgICAgICBzaGVldE5hbWUgPSBUb29scy5DbGVhblVwQmxhbmtzKHNoZWV0TmFtZSk7XHJcbiAgICAgICAgZmlsZU5hbWUgPSBUb29scy5DbGVhblVwQmxhbmtzKGZpbGVOYW1lKTtcclxuXHJcbiAgICAgICAgaWYoZmlsZU5hbWUuZW5kc1dpdGgoJy54bHMnKSB8fCBmaWxlTmFtZS5lbmRzV2l0aCgnLnhsc3gnKSB8fCBmaWxlTmFtZS5lbmRzV2l0aCgnLmNzdicpKSB7XHJcbiAgICAgICAgICAgIGlmIChmaWxlTmFtZS5pbmNsdWRlcygnLnhscycpKSB7XHJcbiAgICAgICAgICAgICAgICBmaWxlTmFtZSA9IGZpbGVOYW1lLnJlcGxhY2VBbGwoJy54bHMnLCAnLnhsc3gnKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGZpbGVOYW1lLmluY2x1ZGVzKCcuY3N2JykpIHtcclxuICAgICAgICAgICAgICAgIGZpbGVOYW1lID0gZmlsZU5hbWUucmVwbGFjZUFsbCgnLmNzdicsICcueGxzeCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgZmlsZU5hbWUgKz0gJy54bHN4JztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IFdPUktfU0hFRVQgPSBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoZGF0YSk7XHJcbiAgICAgICAgY29uc3QgV09SS19CT09LID0gWExTWC51dGlscy5ib29rX25ldygpO1xyXG4gICAgICAgIFhMU1gudXRpbHMuYm9va19hcHBlbmRfc2hlZXQoV09SS19CT09LLCBXT1JLX1NIRUVULCAnU2hlZXQxJyk7XHJcbiAgICAgICAgWExTWC53cml0ZUZpbGUoV09SS19CT09LLCBmaWxlTmFtZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiBDb252ZXJ0IGZpbGUgdG8gc3RyaW5nIGJhc2U2NCAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBDb252ZXJ0VG9CYXNlNjQoZmlsZTogRmlsZSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KFJlc29sdmUgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuXHJcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBSZXNvbHZlKHJlYWRlci5yZXN1bHQ/LnRvU3RyaW5nKCkgfHwgJycpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZWFkZXIub25lcnJvciA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIFJlc29sdmUoJycpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0iXX0=
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZXMuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL3Rvb2xzL3NyYy9GaWxlcy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhDLE1BQU0sT0FBTyxLQUFLO2FBQ1MscUJBQWdCLEdBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRTNFLHlCQUF5QjtJQUNsQixNQUFNLENBQUMsWUFBWSxDQUFDLElBQVU7UUFDakMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUUzQixJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN6QixJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBYSxDQUFDO1lBRTdDLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRyxDQUFDO2dCQUM5QixTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUMzQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztvQkFBRSxPQUFPLFNBQVMsQ0FBQztZQUMvQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFHRCxvQkFBb0I7SUFDYixNQUFNLENBQUMsT0FBTyxDQUFDLElBQVU7UUFDNUIsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUzQyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFNBQVUsQ0FBQztZQUM1QyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2hCLENBQUM7SUFHRCxzQkFBc0I7SUFDZixNQUFNLENBQUMsU0FBUyxDQUFJLElBQVU7UUFDakMsT0FBTyxJQUFJLE9BQU8sQ0FBb0MsT0FBTyxDQUFDLEVBQUU7WUFDNUQsSUFBSSxPQUFPLEdBQWEsRUFBRSxDQUFDO1lBQzNCLElBQUksSUFBSSxHQUFRLEVBQUUsQ0FBQztZQUVuQixNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUUvQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDakIsTUFBTSxTQUFTLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQWEsQ0FBQyxDQUFDO2dCQUV2RCxJQUFJLFNBQVMsRUFBRSxDQUFDO29CQUNaLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUMxQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdEQsSUFBSSxTQUFTLEdBQVUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO3dCQUNuRCxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO3FCQUM3SSxDQUFDLENBQUM7b0JBRUgsYUFBYTtvQkFDYixLQUFJLE1BQU0sTUFBTSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUMvQixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzNGLENBQUM7b0JBRUQsVUFBVTtvQkFDVixJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7b0JBQzVELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFFYixJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTt3QkFDbEIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBTSxHQUFHLENBQUMsQ0FBQzt3QkFDNUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7d0JBQzFCLE9BQU8sSUFBSSxDQUFDO29CQUNoQixDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDO2dCQUVELE9BQU8sQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQTtZQUVELE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUE7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBR0QsMkJBQTJCO0lBQ3BCLE1BQU0sQ0FBQyxXQUFXLENBQUksSUFBUyxFQUFFLFdBQW1CLGFBQWEsRUFBRSxZQUFvQixRQUFRO1FBQ2xHLFNBQVMsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNDLFFBQVEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXpDLElBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN0RixJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsUUFBUSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELENBQUM7WUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsUUFBUSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELENBQUM7UUFDTCxDQUFDO2FBRUksQ0FBQztZQUNGLFFBQVEsSUFBSSxPQUFPLENBQUM7UUFDeEIsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFHRCxvQ0FBb0M7SUFDN0IsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFVO1FBQ3BDLE9BQU8sSUFBSSxPQUFPLENBQVMsT0FBTyxDQUFDLEVBQUU7WUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNoQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTNCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO2dCQUNqQixPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM3QyxDQUFDLENBQUE7WUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTtnQkFDbEIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hCLENBQUMsQ0FBQTtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XHJcbmltcG9ydCB7IFRvb2xzIH0gZnJvbSAnLi9Ub29scyc7XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsZXMge1xyXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBFWENFTF9FWFRFTlNJT05TOiBzdHJpbmdbXSA9IFsneGxzJywgJ3hsc3gnLCAnY3N2J107XHJcblxyXG4gICAgLyoqIEdldCBFeHRlbnNpb24gRmlsZSAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBHZXRFeHRlbnNpb24oZmlsZTogRmlsZSk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIGNvbnN0IGZpbGVOYW1lID0gZmlsZS5uYW1lO1xyXG5cclxuICAgICAgICBpZiAoZmlsZU5hbWUuaW5jbHVkZXMoJy4nKSkge1xyXG4gICAgICAgICAgICBsZXQgd29ybGRzID0gZmlsZU5hbWUuc3BsaXQoJy4nKSBhcyBzdHJpbmdbXTtcclxuXHJcbiAgICAgICAgICAgIGlmICh3b3JsZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGV4dGVuc2lvbiA9IHdvcmxkcy5wb3AoKSE7XHJcbiAgICAgICAgICAgICAgICBleHRlbnNpb24gPSBleHRlbnNpb24udHJpbSgpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXh0ZW5zaW9uLmxlbmd0aCA+IDApIHJldHVybiBleHRlbnNpb247XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogSXMgRXhjZWwgRmlsZSAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBJc0V4Y2VsKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBFWFRFTlNJT04gPSBGaWxlcy5HZXRFeHRlbnNpb24oZmlsZSk7XHJcblxyXG4gICAgICAgIHJldHVybiBUb29scy5Jc05vdE51bGwoRVhURU5TSU9OKVxyXG4gICAgICAgICAgICA/IHRoaXMuRVhDRUxfRVhURU5TSU9OUy5pbmNsdWRlcyhFWFRFTlNJT04hKVxyXG4gICAgICAgICAgICA6IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogUmVhZCBleGNlbCBmaWxlICovXHJcbiAgICBwdWJsaWMgc3RhdGljIFJlYWRFeGNlbDxUPihmaWxlOiBGaWxlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHsgY29sdW1uczogc3RyaW5nW107IHJvd3M6IFRbXTsgfT4oUmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBjb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgICAgICBsZXQgcm93czogVFtdID0gW107XHJcblxyXG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7XHJcblxyXG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YUJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkocmVhZGVyLnJlc3VsdCBhcyBhbnkpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChkYXRhQnl0ZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB3b3JrYm9vayA9IFhMU1gucmVhZChkYXRhQnl0ZXMsIHt9KTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaGVldCA9IHdvcmtib29rLlNoZWV0c1t3b3JrYm9vay5TaGVldE5hbWVzWzBdXTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YVNoZWV0OiBhbnlbXSA9IFhMU1gudXRpbHMuc2hlZXRfdG9fanNvbihzaGVldCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXI6IFsnQScsICdCJywgJ0MnLCAnRCcsICdFJywgJ0YnLCAnRycsICdIJywgJ0knLCAnSicsICdLJywgJ0wnLCAnTScsICdOJywgJ08nLCAnUCcsICdRJywgJ1InLCAnUycsICdUJywgJ1UnLCAnVicsICdXJywgJ1gnLCAnWScsICdaJ11cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy9HZXQgSGVhZGVyc1xyXG4gICAgICAgICAgICAgICAgICAgIGZvcihjb25zdCBjb2x1bW4gaW4gZGF0YVNoZWV0WzBdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnMucHVzaChUb29scy5GaXJzdENoYXJUb0xvd2VyKFN0cmluZyhkYXRhU2hlZXRbMF1bY29sdW1uXSkucmVwbGFjZUFsbCgnICcsICcnKSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy9HZXQgUm93c1xyXG4gICAgICAgICAgICAgICAgICAgIHJvd3MgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24oc2hlZXQsIHsgaGVhZGVyOiBjb2x1bW5zIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJvd3Muc2hpZnQoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcm93cyA9IHJvd3MubWFwKHJvdyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBUb29scy5CcmVha1JlZmVyZW5jZTxhbnk+KHJvdyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtWydfX3Jvd051bV9fJ107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIFJlc29sdmUoeyBjb2x1bW5zLCByb3dzIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZWFkZXIub25lcnJvciA9ICgpID0+IHsgUmVzb2x2ZSh7IGNvbHVtbnMsIHJvd3MgfSkgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogRXhwb3J0IHRvIGV4Y2VsIGZpbGUgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgRXhwb3J0RXhjZWw8VD4oZGF0YTogVFtdLCBmaWxlTmFtZTogc3RyaW5nID0gJ2NvZXJfcmVwb3J0Jywgc2hlZXROYW1lOiBzdHJpbmcgPSAnU2hlZXQxJykge1xyXG4gICAgICAgIHNoZWV0TmFtZSA9IFRvb2xzLkNsZWFuVXBCbGFua3Moc2hlZXROYW1lKTtcclxuICAgICAgICBmaWxlTmFtZSA9IFRvb2xzLkNsZWFuVXBCbGFua3MoZmlsZU5hbWUpO1xyXG5cclxuICAgICAgICBpZihmaWxlTmFtZS5lbmRzV2l0aCgnLnhscycpIHx8IGZpbGVOYW1lLmVuZHNXaXRoKCcueGxzeCcpIHx8IGZpbGVOYW1lLmVuZHNXaXRoKCcuY3N2JykpIHtcclxuICAgICAgICAgICAgaWYgKGZpbGVOYW1lLmluY2x1ZGVzKCcueGxzJykpIHtcclxuICAgICAgICAgICAgICAgIGZpbGVOYW1lID0gZmlsZU5hbWUucmVwbGFjZUFsbCgnLnhscycsICcueGxzeCcpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoZmlsZU5hbWUuaW5jbHVkZXMoJy5jc3YnKSkge1xyXG4gICAgICAgICAgICAgICAgZmlsZU5hbWUgPSBmaWxlTmFtZS5yZXBsYWNlQWxsKCcuY3N2JywgJy54bHN4Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBmaWxlTmFtZSArPSAnLnhsc3gnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgV09SS19TSEVFVCA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldChkYXRhKTtcclxuICAgICAgICBjb25zdCBXT1JLX0JPT0sgPSBYTFNYLnV0aWxzLmJvb2tfbmV3KCk7XHJcbiAgICAgICAgWExTWC51dGlscy5ib29rX2FwcGVuZF9zaGVldChXT1JLX0JPT0ssIFdPUktfU0hFRVQsICdTaGVldDEnKTtcclxuICAgICAgICBYTFNYLndyaXRlRmlsZShXT1JLX0JPT0ssIGZpbGVOYW1lKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqIENvbnZlcnQgZmlsZSB0byBzdHJpbmcgYmFzZTY0ICovXHJcbiAgICBwdWJsaWMgc3RhdGljIENvbnZlcnRUb0Jhc2U2NChmaWxlOiBGaWxlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oUmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG5cclxuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIFJlc29sdmUocmVhZGVyLnJlc3VsdD8udG9TdHJpbmcoKSB8fCAnJyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJlYWRlci5vbmVycm9yID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgUmVzb2x2ZSgnJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxufSJdfQ==
@@ -0,0 +1,162 @@
1
+ import { ActivatedRoute, Router } from '@angular/router';
2
+ import { Component, Inject, inject } from '@angular/core';
3
+ import { CoerAlert } from '../../components';
4
+ import { Source } from './Source.class';
5
+ import { Tools } from './Tools';
6
+ import { Breadcrumbs } from './Breadcrumbs.class';
7
+ import * as i0 from "@angular/core";
8
+ export class Page {
9
+ constructor(page) {
10
+ //Injection
11
+ this.alert = inject(CoerAlert);
12
+ this.router = inject(Router);
13
+ this.activatedRoute = inject(ActivatedRoute);
14
+ /** */
15
+ this.isUpdate = false;
16
+ /** */
17
+ this.isLoading = false;
18
+ /** */
19
+ this.isReady = false;
20
+ /** */
21
+ this.enableAnimations = false;
22
+ /** */
23
+ this.breadcrumbs = [];
24
+ /** */
25
+ this.pageResponse = null;
26
+ /** */
27
+ this.goBack = { show: false };
28
+ //Private Variables
29
+ this._page = '';
30
+ this._source = null;
31
+ this._preventDestroy = false;
32
+ /** */
33
+ this.GoBack = (path) => (() => {
34
+ if (path)
35
+ Breadcrumbs.Remove(path);
36
+ else
37
+ Breadcrumbs.RemoveLast();
38
+ });
39
+ /** Returns true if the value is null or undefined, false otherwise */
40
+ this.IsNotNull = Tools.IsNotNull;
41
+ /** Returns true if the value is null or undefined, false otherwise */
42
+ this.IsNull = Tools.IsNull;
43
+ /** Returns true if the value is null or undefined or contains only whitespace, false otherwise */
44
+ this.IsOnlyWhiteSpace = Tools.IsOnlyWhiteSpace;
45
+ this.SetPageName(page);
46
+ this.SetSource();
47
+ this.GetSource();
48
+ this.GetNavigation();
49
+ this.SetGoBack();
50
+ this.GetPageResponse();
51
+ }
52
+ ngAfterViewInit() {
53
+ this.routeParams = this.activatedRoute.snapshot.params;
54
+ this.queryParams = this.activatedRoute.snapshot.queryParams;
55
+ setTimeout(() => {
56
+ this.isReady = true;
57
+ this.RunPage();
58
+ setTimeout(() => { this.enableAnimations = true; }, 1000);
59
+ });
60
+ }
61
+ ngOnDestroy() {
62
+ if (!this._preventDestroy)
63
+ Source.ClearPageResponse();
64
+ }
65
+ /** Main method. Starts after ngAfterViewInit() */
66
+ RunPage() { }
67
+ ;
68
+ /** Rename the last breadcrumb and update the url id */
69
+ SetPageName(name, id = null) {
70
+ this._page = name;
71
+ let path = this.router.url;
72
+ if (path.includes('?'))
73
+ path = path.split('?')[0];
74
+ if (id) {
75
+ const PATH_ARRAY = path.split('/');
76
+ const PATH_ID = Tools.BreakReference(PATH_ARRAY).pop();
77
+ if (PATH_ID) {
78
+ PATH_ARRAY[PATH_ARRAY.length - 1] = String(id);
79
+ path = PATH_ARRAY.join('/');
80
+ }
81
+ }
82
+ if (this.breadcrumbs.length > 0) {
83
+ this.breadcrumbs[this.breadcrumbs.length - 1].page = name;
84
+ this.breadcrumbs[this.breadcrumbs.length - 1].path = path;
85
+ Breadcrumbs.SetLast(name, path);
86
+ }
87
+ this.router.navigateByUrl(path);
88
+ }
89
+ /** */
90
+ SetSource() {
91
+ Source.Set(this._page);
92
+ }
93
+ /** */
94
+ GetSource() {
95
+ this._source = Source.Get();
96
+ }
97
+ /** */
98
+ GetPageResponse() {
99
+ this.pageResponse = Source.GetPageResponse();
100
+ }
101
+ /** */
102
+ GetNavigation() {
103
+ if (this._source) {
104
+ this.breadcrumbs = Breadcrumbs.Get().map(item => Object.assign({
105
+ page: item.page,
106
+ path: item.path,
107
+ click: this.GoBack(item.path)
108
+ }));
109
+ }
110
+ else
111
+ this.breadcrumbs = [{ page: this._page }];
112
+ }
113
+ /** */
114
+ SetGoBack() {
115
+ if (this._source) {
116
+ this.goBack = {
117
+ show: true,
118
+ path: this._source.path,
119
+ click: this.GoBack()
120
+ };
121
+ }
122
+ }
123
+ /** Navigate to previous page */
124
+ GoToSource(pageResponse = null) {
125
+ if (this._source) {
126
+ Breadcrumbs.RemoveLast();
127
+ this.SetPageResponse(pageResponse);
128
+ Tools.Sleep().then(_ => this.router.navigateByUrl(this._source.path));
129
+ }
130
+ }
131
+ ;
132
+ /** */
133
+ SetPageResponse(pageResponse = null) {
134
+ if (Tools.IsNotNull(pageResponse)) {
135
+ this._preventDestroy = true;
136
+ Source.SetPageResponse(pageResponse);
137
+ }
138
+ }
139
+ ;
140
+ /** */
141
+ ReloadPage() {
142
+ Breadcrumbs.RemoveLast();
143
+ Tools.Sleep().then(_ => window.location.reload());
144
+ }
145
+ /** */
146
+ Log(value, log = null) {
147
+ if (Tools.IsNotNull(log))
148
+ console.log({ log, value });
149
+ else
150
+ console.log(value);
151
+ }
152
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: Page, deps: [{ token: String }], target: i0.ɵɵFactoryTarget.Component }); }
153
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: Page, selector: "ng-component", ngImport: i0, template: '', isInline: true }); }
154
+ }
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: Page, decorators: [{
156
+ type: Component,
157
+ args: [{ template: '' }]
158
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
159
+ type: Inject,
160
+ args: [String]
161
+ }] }] });
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFnZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvdG9vbHMvc3JjL1BhZ2UuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQWlCLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXBGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBR2xELE1BQU0sT0FBTyxJQUFJO0lBd0NiLFlBQTRCLElBQVk7UUF0Q3hDLFdBQVc7UUFDUSxVQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFCLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUIsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFekQsTUFBTTtRQUNJLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFcEMsTUFBTTtRQUNJLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFFckMsTUFBTTtRQUNJLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFbkMsTUFBTTtRQUNJLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQVE1QyxNQUFNO1FBQ0ksZ0JBQVcsR0FBa0IsRUFBRSxDQUFDO1FBRTFDLE1BQU07UUFDSSxpQkFBWSxHQUFRLElBQUksQ0FBQztRQUVuQyxNQUFNO1FBQ0ksV0FBTSxHQUFZLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBRTVDLG1CQUFtQjtR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SyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7O1lBQ2pELE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzsrR0FoTFEsSUFBSSxrQkF3Q08sTUFBTTttR0F4Q2pCLElBQUksb0RBRE0sRUFBRTs7NEZBQ1osSUFBSTtrQkFEaEIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7OzBCQXlDVixNQUFNOzJCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbmplY3QsIGluamVjdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElBcHBTb3VyY2UsIElCcmVhZGNydW1iLCBJR29CYWNrIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IENvZXJBbGVydCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBTb3VyY2UgfSBmcm9tICcuL1NvdXJjZS5jbGFzcyc7XHJcbmltcG9ydCB7IFRvb2xzIH0gZnJvbSAnLi9Ub29scyc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJzIH0gZnJvbSAnLi9CcmVhZGNydW1icy5jbGFzcyc7XHJcblxyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBQYWdlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgICAvL0luamVjdGlvblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFsZXJ0ID0gaW5qZWN0KENvZXJBbGVydCk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBpc1VwZGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIGlzUmVhZHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBlbmFibGVBbmltYXRpb25zOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgcm91dGVQYXJhbXM6IGFueTtcclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBxdWVyeVBhcmFtczogYW55O1xyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIGJyZWFkY3J1bWJzOiBJQnJlYWRjcnVtYltdID0gW107XHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgcGFnZVJlc3BvbnNlOiBhbnkgPSBudWxsO1xyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIGdvQmFjazogSUdvQmFjayA9IHsgc2hvdzogZmFsc2UgfTtcclxuXHJcbiAgICAvL1ByaXZhdGUgVmFyaWFibGVzXHJcbiAgICBwcml2YXRlIF9wYWdlOiBzdHJpbmcgPSAnJztcclxuICAgIHByaXZhdGUgX3NvdXJjZTogSUFwcFNvdXJjZSB8IG51bGwgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBfcHJldmVudERlc3Ryb3k6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChTdHJpbmcpIHBhZ2U6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuU2V0UGFnZU5hbWUocGFnZSk7XHJcbiAgICAgICAgdGhpcy5TZXRTb3VyY2UoKTtcclxuICAgICAgICB0aGlzLkdldFNvdXJjZSgpO1xyXG4gICAgICAgIHRoaXMuR2V0TmF2aWdhdGlvbigpO1xyXG4gICAgICAgIHRoaXMuU2V0R29CYWNrKCk7XHJcbiAgICAgICAgdGhpcy5HZXRQYWdlUmVzcG9uc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZVBhcmFtcyA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyYW1zO1xyXG4gICAgICAgIHRoaXMucXVlcnlQYXJhbXMgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zO1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pc1JlYWR5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5SdW5QYWdlKCk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyB0aGlzLmVuYWJsZUFuaW1hdGlvbnMgPSB0cnVlIH0sIDEwMDApO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX3ByZXZlbnREZXN0cm95KSBTb3VyY2UuQ2xlYXJQYWdlUmVzcG9uc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogTWFpbiBtZXRob2QuIFN0YXJ0cyBhZnRlciBuZ0FmdGVyVmlld0luaXQoKSAqL1xyXG4gICAgcHJvdGVjdGVkIFJ1blBhZ2UoKTogdm9pZCB7fTtcclxuXHJcblxyXG4gICAgLyoqIFJlbmFtZSB0aGUgbGFzdCBicmVhZGNydW1iIGFuZCB1cGRhdGUgdGhlIHVybCBpZCAqL1xyXG4gICAgcHJvdGVjdGVkIFNldFBhZ2VOYW1lKG5hbWU6IHN0cmluZywgaWQ6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcGFnZSA9IG5hbWU7XHJcblxyXG4gICAgICAgIGxldCBwYXRoID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgICAgIGlmIChwYXRoLmluY2x1ZGVzKCc/JykpIHBhdGggPSBwYXRoLnNwbGl0KCc/JylbMF07XHJcblxyXG4gICAgICAgIGlmIChpZCkge1xyXG4gICAgICAgICAgICBjb25zdCBQQVRIX0FSUkFZID0gcGF0aC5zcGxpdCgnLycpO1xyXG4gICAgICAgICAgICBjb25zdCBQQVRIX0lEID0gVG9vbHMuQnJlYWtSZWZlcmVuY2UoUEFUSF9BUlJBWSkucG9wKCk7XHJcbiAgICAgICAgICAgIGlmIChQQVRIX0lEKSB7XHJcbiAgICAgICAgICAgICAgICBQQVRIX0FSUkFZW1BBVEhfQVJSQVkubGVuZ3RoIC0gMV0gPSBTdHJpbmcoaWQpO1xyXG4gICAgICAgICAgICAgICAgcGF0aCA9IFBBVEhfQVJSQVkuam9pbignLycpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5icmVhZGNydW1icy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYnJlYWRjcnVtYnNbdGhpcy5icmVhZGNydW1icy5sZW5ndGggLSAxXS5wYWdlID0gbmFtZTtcclxuICAgICAgICAgICAgdGhpcy5icmVhZGNydW1ic1t0aGlzLmJyZWFkY3J1bWJzLmxlbmd0aCAtIDFdLnBhdGggPSBwYXRoO1xyXG4gICAgICAgICAgICBCcmVhZGNydW1icy5TZXRMYXN0KG5hbWUsIHBhdGgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChwYXRoKVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByaXZhdGUgU2V0U291cmNlKCk6IHZvaWQge1xyXG4gICAgICAgIFNvdXJjZS5TZXQodGhpcy5fcGFnZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJpdmF0ZSBHZXRTb3VyY2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc291cmNlID0gU291cmNlLkdldCgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBHZXRQYWdlUmVzcG9uc2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5wYWdlUmVzcG9uc2UgPSBTb3VyY2UuR2V0UGFnZVJlc3BvbnNlKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJpdmF0ZSBHZXROYXZpZ2F0aW9uKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9zb3VyY2UpIHtcclxuICAgICAgICAgICAgdGhpcy5icmVhZGNydW1icyA9IEJyZWFkY3J1bWJzLkdldCgpLm1hcChpdGVtID0+IE9iamVjdC5hc3NpZ24oe1xyXG4gICAgICAgICAgICAgICAgcGFnZTogaXRlbS5wYWdlLFxyXG4gICAgICAgICAgICAgICAgcGF0aDogaXRlbS5wYXRoLFxyXG4gICAgICAgICAgICAgICAgY2xpY2s6IHRoaXMuR29CYWNrKGl0ZW0ucGF0aClcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWxzZSB0aGlzLmJyZWFkY3J1bWJzID0gW3sgcGFnZTogdGhpcy5fcGFnZSB9XTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcml2YXRlIFNldEdvQmFjaygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fc291cmNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ29CYWNrID0ge1xyXG4gICAgICAgICAgICAgICAgc2hvdzogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHBhdGg6IHRoaXMuX3NvdXJjZS5wYXRoLFxyXG4gICAgICAgICAgICAgICAgY2xpY2s6IHRoaXMuR29CYWNrKClcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJpdmF0ZSBHb0JhY2sgPSAocGF0aD86IHN0cmluZykgPT4gKCgpID0+IHtcclxuICAgICAgICBpZiAocGF0aCkgQnJlYWRjcnVtYnMuUmVtb3ZlKHBhdGgpO1xyXG4gICAgICAgIGVsc2UgQnJlYWRjcnVtYnMuUmVtb3ZlTGFzdCgpO1xyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIC8qKiBOYXZpZ2F0ZSB0byBwcmV2aW91cyBwYWdlICovXHJcbiAgICBwcm90ZWN0ZWQgR29Ub1NvdXJjZTxUPihwYWdlUmVzcG9uc2U6IFQgfCBudWxsID0gbnVsbCk6IHZvaWQge1xyXG4gICAgICAgIGlmKHRoaXMuX3NvdXJjZSkge1xyXG4gICAgICAgICAgICBCcmVhZGNydW1icy5SZW1vdmVMYXN0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuU2V0UGFnZVJlc3BvbnNlKHBhZ2VSZXNwb25zZSk7XHJcbiAgICAgICAgICAgIFRvb2xzLlNsZWVwKCkudGhlbihfID0+IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5fc291cmNlIS5wYXRoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgU2V0UGFnZVJlc3BvbnNlPFQ+KHBhZ2VSZXNwb25zZTogVCB8IG51bGwgPSBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKFRvb2xzLklzTm90TnVsbChwYWdlUmVzcG9uc2UpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ByZXZlbnREZXN0cm95ID0gdHJ1ZTtcclxuICAgICAgICAgICAgU291cmNlLlNldFBhZ2VSZXNwb25zZShwYWdlUmVzcG9uc2UpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIFJlbG9hZFBhZ2UoKTogdm9pZCB7XHJcbiAgICAgICAgQnJlYWRjcnVtYnMuUmVtb3ZlTGFzdCgpO1xyXG4gICAgICAgIFRvb2xzLlNsZWVwKCkudGhlbihfID0+IHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIExvZyh2YWx1ZTogYW55LCBsb2c6IHN0cmluZyB8IG51bGwgPSBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKFRvb2xzLklzTm90TnVsbChsb2cpKSBjb25zb2xlLmxvZyh7IGxvZywgdmFsdWUgfSk7XHJcbiAgICAgICAgZWxzZSBjb25zb2xlLmxvZyh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHZhbHVlIGlzIG51bGwgb3IgdW5kZWZpbmVkLCBmYWxzZSBvdGhlcndpc2UgKi9cclxuICAgIHByb3RlY3RlZCBJc05vdE51bGwgPSBUb29scy5Jc05vdE51bGw7XHJcblxyXG4gICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgdmFsdWUgaXMgbnVsbCBvciB1bmRlZmluZWQsIGZhbHNlIG90aGVyd2lzZSAqL1xyXG4gICAgcHJvdGVjdGVkIElzTnVsbCA9IFRvb2xzLklzTnVsbDtcclxuXHJcbiAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSB2YWx1ZSBpcyBudWxsIG9yIHVuZGVmaW5lZCBvciBjb250YWlucyBvbmx5IHdoaXRlc3BhY2UsIGZhbHNlIG90aGVyd2lzZSAqL1xyXG4gICAgcHJvdGVjdGVkIElzT25seVdoaXRlU3BhY2UgID0gVG9vbHMuSXNPbmx5V2hpdGVTcGFjZTtcclxufSJdfQ==
@@ -40,4 +40,4 @@ export class Screen {
40
40
  };
41
41
  }); }
42
42
  }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NyZWVuLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9Ub29scy9zcmMvU2NyZWVuLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsTUFBTSxPQUFPLE1BQU07SUFFUixNQUFNLEtBQUssWUFBWTtRQUMxQixPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUdNLE1BQU0sS0FBSyxhQUFhO1FBQzNCLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQztJQUM5QixDQUFDO0lBR00sTUFBTSxLQUFLLFlBQVk7UUFDMUIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBR00sTUFBTSxLQUFLLGFBQWE7UUFDM0IsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBR00sTUFBTSxLQUFLLFVBQVU7UUFDeEIsSUFBSSxNQUFNLENBQUMsVUFBVSxHQUFHLEdBQUc7WUFBRSxPQUFPLElBQUksQ0FBQzthQUNwQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksR0FBRyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEdBQUcsR0FBRztZQUFFLE9BQU8sSUFBSSxDQUFDO2FBQ3JFLElBQUksTUFBTSxDQUFDLFVBQVUsSUFBSSxHQUFHLElBQUksTUFBTSxDQUFDLFVBQVUsR0FBRyxHQUFHO1lBQUUsT0FBTyxJQUFJLENBQUM7YUFDckUsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLEdBQUcsSUFBSSxNQUFNLENBQUMsVUFBVSxHQUFHLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQzthQUN0RSxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSTtZQUFFLE9BQU8sSUFBSSxDQUFDOztZQUN2RSxPQUFPLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBR0QsTUFBTTthQUNRLFdBQU0sR0FBRyxJQUFJLFVBQVUsQ0FBYyxVQUFVLENBQUMsRUFBRTtRQUM1RCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUNqQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsUUFBUSxHQUFHLEdBQUcsRUFBRTtZQUNuQixVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUNaLEtBQUssRUFBRSxNQUFNLENBQUMsVUFBVTtnQkFDeEIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxXQUFXO2dCQUMxQixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7YUFDN0IsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFBO0lBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJU2NyZWVuU2l6ZSB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNjcmVlbiB7XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXQgV0lORE9XX1dJRFRIKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldCBXSU5ET1dfSEVJR0hUKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXQgREVWSUNFX1dJRFRIKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5zY3JlZW4ud2lkdGg7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IERFVklDRV9IRUlHSFQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gd2luZG93LnNjcmVlbi5oZWlnaHQ7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IEJSRUFLUE9JTlQoKTogJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgfCAneHhsJyB7XHJcbiAgICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgNTc2KSByZXR1cm4gJ3hzJztcclxuICAgICAgICBlbHNlIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA+PSA1NzYgJiYgd2luZG93LmlubmVyV2lkdGggPCA3NjgpIHJldHVybiAnc20nO1xyXG4gICAgICAgIGVsc2UgaWYgKHdpbmRvdy5pbm5lcldpZHRoID49IDc2OCAmJiB3aW5kb3cuaW5uZXJXaWR0aCA8IDk5MikgcmV0dXJuICdtZCc7XHJcbiAgICAgICAgZWxzZSBpZiAod2luZG93LmlubmVyV2lkdGggPj0gOTkyICYmIHdpbmRvdy5pbm5lcldpZHRoIDwgMTIwMCkgcmV0dXJuICdsZyc7XHJcbiAgICAgICAgZWxzZSBpZiAod2luZG93LmlubmVyV2lkdGggPj0gMTIwMCAmJiB3aW5kb3cuaW5uZXJXaWR0aCA8IDE0MDApIHJldHVybiAneGwnO1xyXG4gICAgICAgIGVsc2UgcmV0dXJuICd4eGwnO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgUmVzaXplID0gbmV3IE9ic2VydmFibGU8SVNjcmVlblNpemU+KHN1YnNjcmliZXIgPT4ge1xyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgncmVzaXplJykpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB3aW5kb3cub25yZXNpemUgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogd2luZG93LmlubmVyV2lkdGgsXHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHdpbmRvdy5pbm5lckhlaWdodCxcclxuICAgICAgICAgICAgICAgIGJyZWFrcG9pbjogdGhpcy5CUkVBS1BPSU5UXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG59Il19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NyZWVuLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy90b29scy9zcmMvU2NyZWVuLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsTUFBTSxPQUFPLE1BQU07SUFFUixNQUFNLEtBQUssWUFBWTtRQUMxQixPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUdNLE1BQU0sS0FBSyxhQUFhO1FBQzNCLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQztJQUM5QixDQUFDO0lBR00sTUFBTSxLQUFLLFlBQVk7UUFDMUIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBR00sTUFBTSxLQUFLLGFBQWE7UUFDM0IsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBR00sTUFBTSxLQUFLLFVBQVU7UUFDeEIsSUFBSSxNQUFNLENBQUMsVUFBVSxHQUFHLEdBQUc7WUFBRSxPQUFPLElBQUksQ0FBQzthQUNwQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksR0FBRyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEdBQUcsR0FBRztZQUFFLE9BQU8sSUFBSSxDQUFDO2FBQ3JFLElBQUksTUFBTSxDQUFDLFVBQVUsSUFBSSxHQUFHLElBQUksTUFBTSxDQUFDLFVBQVUsR0FBRyxHQUFHO1lBQUUsT0FBTyxJQUFJLENBQUM7YUFDckUsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLEdBQUcsSUFBSSxNQUFNLENBQUMsVUFBVSxHQUFHLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQzthQUN0RSxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSTtZQUFFLE9BQU8sSUFBSSxDQUFDOztZQUN2RSxPQUFPLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBR0QsTUFBTTthQUNRLFdBQU0sR0FBRyxJQUFJLFVBQVUsQ0FBYyxVQUFVLENBQUMsRUFBRTtRQUM1RCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUNqQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsUUFBUSxHQUFHLEdBQUcsRUFBRTtZQUNuQixVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUNaLEtBQUssRUFBRSxNQUFNLENBQUMsVUFBVTtnQkFDeEIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxXQUFXO2dCQUMxQixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7YUFDN0IsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFBO0lBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJU2NyZWVuU2l6ZSB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNjcmVlbiB7XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXQgV0lORE9XX1dJRFRIKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldCBXSU5ET1dfSEVJR0hUKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXQgREVWSUNFX1dJRFRIKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5zY3JlZW4ud2lkdGg7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IERFVklDRV9IRUlHSFQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gd2luZG93LnNjcmVlbi5oZWlnaHQ7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IEJSRUFLUE9JTlQoKTogJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgfCAneHhsJyB7XHJcbiAgICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgNTc2KSByZXR1cm4gJ3hzJztcclxuICAgICAgICBlbHNlIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA+PSA1NzYgJiYgd2luZG93LmlubmVyV2lkdGggPCA3NjgpIHJldHVybiAnc20nO1xyXG4gICAgICAgIGVsc2UgaWYgKHdpbmRvdy5pbm5lcldpZHRoID49IDc2OCAmJiB3aW5kb3cuaW5uZXJXaWR0aCA8IDk5MikgcmV0dXJuICdtZCc7XHJcbiAgICAgICAgZWxzZSBpZiAod2luZG93LmlubmVyV2lkdGggPj0gOTkyICYmIHdpbmRvdy5pbm5lcldpZHRoIDwgMTIwMCkgcmV0dXJuICdsZyc7XHJcbiAgICAgICAgZWxzZSBpZiAod2luZG93LmlubmVyV2lkdGggPj0gMTIwMCAmJiB3aW5kb3cuaW5uZXJXaWR0aCA8IDE0MDApIHJldHVybiAneGwnO1xyXG4gICAgICAgIGVsc2UgcmV0dXJuICd4eGwnO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgUmVzaXplID0gbmV3IE9ic2VydmFibGU8SVNjcmVlblNpemU+KHN1YnNjcmliZXIgPT4ge1xyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgncmVzaXplJykpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB3aW5kb3cub25yZXNpemUgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogd2luZG93LmlubmVyV2lkdGgsXHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHdpbmRvdy5pbm5lckhlaWdodCxcclxuICAgICAgICAgICAgICAgIGJyZWFrcG9pbjogdGhpcy5CUkVBS1BPSU5UXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG59Il19
@@ -0,0 +1,80 @@
1
+ import { Router } from '@angular/router';
2
+ import { inject } from "@angular/core";
3
+ import { Breadcrumbs } from './Breadcrumbs.class';
4
+ import { Tools } from './Tools';
5
+ export class Source {
6
+ static { this.storage = 'COER-System'; }
7
+ /** */
8
+ static Set(page) {
9
+ const ROUTER = inject(Router);
10
+ let path = ROUTER.url;
11
+ if (path.includes('?'))
12
+ path = path.split('?')[0];
13
+ Breadcrumbs.Add(page, path);
14
+ const breadcrumbs = Breadcrumbs.Get();
15
+ if (breadcrumbs.length >= 2) {
16
+ breadcrumbs.pop();
17
+ const breadcrumb = breadcrumbs.pop();
18
+ this.Save({ page: breadcrumb.page, path: breadcrumb.path });
19
+ }
20
+ else
21
+ this.Save(null);
22
+ }
23
+ /** */
24
+ static Save(source) {
25
+ let storage = sessionStorage.getItem(this.storage);
26
+ if (storage)
27
+ storage = JSON.parse(storage);
28
+ storage = Object.assign({}, storage, { source });
29
+ sessionStorage.setItem(this.storage, JSON.stringify(storage));
30
+ }
31
+ /** */
32
+ static Get() {
33
+ let storage = sessionStorage.getItem(this.storage);
34
+ if (storage) {
35
+ storage = JSON.parse(storage);
36
+ if (storage.hasOwnProperty('source')) {
37
+ return storage.source;
38
+ }
39
+ }
40
+ return null;
41
+ }
42
+ /** */
43
+ static GetRoot() {
44
+ const breadcrumbs = Breadcrumbs.Get();
45
+ return (breadcrumbs.length > 0) ? breadcrumbs.shift() : null;
46
+ }
47
+ /** */
48
+ static SetPageResponse(pageResponse) {
49
+ let storage = sessionStorage.getItem(this.storage);
50
+ storage = JSON.parse(storage);
51
+ storage = Object.assign({}, storage, { pageResponse });
52
+ sessionStorage.setItem(this.storage, JSON.stringify(storage));
53
+ }
54
+ /** */
55
+ static GetPageResponse() {
56
+ let storage = sessionStorage.getItem(this.storage);
57
+ if (storage) {
58
+ storage = JSON.parse(storage);
59
+ if (storage.hasOwnProperty('pageResponse')) {
60
+ return Tools.BreakReference(storage.pageResponse);
61
+ }
62
+ }
63
+ return null;
64
+ }
65
+ /** */
66
+ static ClearPageResponse() {
67
+ let storage = sessionStorage.getItem(this.storage);
68
+ storage = JSON.parse(storage);
69
+ if (storage.hasOwnProperty('pageResponse')) {
70
+ delete storage.pageResponse;
71
+ }
72
+ storage = Object.assign({}, storage);
73
+ sessionStorage.setItem(this.storage, JSON.stringify(storage));
74
+ }
75
+ /** Clear Source */
76
+ static Reset() {
77
+ sessionStorage.removeItem(this.storage);
78
+ }
79
+ }
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU291cmNlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy90b29scy9zcmMvU291cmNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhDLE1BQU0sT0FBTyxNQUFNO2FBRVMsWUFBTyxHQUFHLGFBQWEsQ0FBQztJQUVoRCxNQUFNO0lBQ0MsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFZO1FBQzFCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU5QixJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQ3RCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVsRCxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU1QixNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFdEMsSUFBRyxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3pCLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQixNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFHLENBQUM7WUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLENB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QUM7WUFDekMsT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQ2hDLENBQUM7UUFFRCxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBR0QsbUJBQW1CO0lBQ1osTUFBTSxDQUFDLEtBQUs7UUFDZixjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSUFwcFNvdXJjZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBCcmVhZGNydW1icyB9IGZyb20gJy4vQnJlYWRjcnVtYnMuY2xhc3MnO1xyXG5pbXBvcnQgeyBUb29scyB9IGZyb20gJy4vVG9vbHMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNvdXJjZSB7XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgc3RvcmFnZSA9ICdDT0VSLVN5c3RlbSc7XHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgc3RhdGljIFNldChwYWdlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBST1VURVIgPSBpbmplY3QoUm91dGVyKTtcclxuXHJcbiAgICAgICAgbGV0IHBhdGggPSBST1VURVIudXJsO1xyXG4gICAgICAgIGlmIChwYXRoLmluY2x1ZGVzKCc/JykpIHBhdGggPSBwYXRoLnNwbGl0KCc/JylbMF07XHJcblxyXG4gICAgICAgIEJyZWFkY3J1bWJzLkFkZChwYWdlLCBwYXRoKTtcclxuXHJcbiAgICAgICAgY29uc3QgYnJlYWRjcnVtYnMgPSBCcmVhZGNydW1icy5HZXQoKTtcclxuXHJcbiAgICAgICAgaWYoYnJlYWRjcnVtYnMubGVuZ3RoID49IDIpIHtcclxuICAgICAgICAgICAgYnJlYWRjcnVtYnMucG9wKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGJyZWFkY3J1bWIgPSBicmVhZGNydW1icy5wb3AoKSE7XHJcbiAgICAgICAgICAgIHRoaXMuU2F2ZSh7IHBhZ2U6IGJyZWFkY3J1bWIucGFnZSwgcGF0aDogYnJlYWRjcnVtYi5wYXRoIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWxzZSB0aGlzLlNhdmUobnVsbCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgU2F2ZShzb3VyY2U6IElBcHBTb3VyY2UgfCBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgbGV0IHN0b3JhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZSkgYXMgYW55O1xyXG4gICAgICAgIGlmIChzdG9yYWdlKSBzdG9yYWdlID0gSlNPTi5wYXJzZShzdG9yYWdlKTtcclxuICAgICAgICBzdG9yYWdlID0gT2JqZWN0LmFzc2lnbih7fSwgc3RvcmFnZSwgeyBzb3VyY2UgfSk7XHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0b3JhZ2UsIEpTT04uc3RyaW5naWZ5KHN0b3JhZ2UpKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgc3RhdGljIEdldCgpOiBJQXBwU291cmNlIHwgbnVsbCB7XHJcbiAgICAgICAgbGV0IHN0b3JhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZSkgYXMgYW55O1xyXG5cclxuICAgICAgICBpZiAoc3RvcmFnZSkge1xyXG4gICAgICAgICAgICBzdG9yYWdlID0gSlNPTi5wYXJzZShzdG9yYWdlKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChzdG9yYWdlLmhhc093blByb3BlcnR5KCdzb3VyY2UnKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0b3JhZ2Uuc291cmNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgc3RhdGljIEdldFJvb3QoKTogSUFwcFNvdXJjZSB8IG51bGwge1xyXG4gICAgICAgIGNvbnN0IGJyZWFkY3J1bWJzID0gQnJlYWRjcnVtYnMuR2V0KCk7XHJcbiAgICAgICAgcmV0dXJuIChicmVhZGNydW1icy5sZW5ndGggPiAwKSA/IGJyZWFkY3J1bWJzLnNoaWZ0KCkhIDogbnVsbDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgc3RhdGljIFNldFBhZ2VSZXNwb25zZTxUPihwYWdlUmVzcG9uc2U6IFQpOiB2b2lkIHtcclxuICAgICAgICBsZXQgc3RvcmFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlKSBhcyBhbnk7XHJcbiAgICAgICAgc3RvcmFnZSA9IEpTT04ucGFyc2Uoc3RvcmFnZSk7XHJcbiAgICAgICAgc3RvcmFnZSA9IE9iamVjdC5hc3NpZ24oe30sIHN0b3JhZ2UsIHsgcGFnZVJlc3BvbnNlIH0pO1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5zdG9yYWdlLCBKU09OLnN0cmluZ2lmeShzdG9yYWdlKSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBHZXRQYWdlUmVzcG9uc2U8VD4oKTogVCB8IG51bGwge1xyXG4gICAgICAgIGxldCBzdG9yYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2UpIGFzIGFueTtcclxuXHJcbiAgICAgICAgaWYgKHN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgc3RvcmFnZSA9IEpTT04ucGFyc2Uoc3RvcmFnZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAoc3RvcmFnZS5oYXNPd25Qcm9wZXJ0eSgncGFnZVJlc3BvbnNlJykpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBUb29scy5CcmVha1JlZmVyZW5jZShzdG9yYWdlLnBhZ2VSZXNwb25zZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgQ2xlYXJQYWdlUmVzcG9uc2UoKTogdm9pZCB7XHJcbiAgICAgICAgbGV0IHN0b3JhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZSkgYXMgYW55O1xyXG4gICAgICAgIHN0b3JhZ2UgPSBKU09OLnBhcnNlKHN0b3JhZ2UpO1xyXG5cclxuICAgICAgICBpZiAoc3RvcmFnZS5oYXNPd25Qcm9wZXJ0eSgncGFnZVJlc3BvbnNlJykpIHtcclxuICAgICAgICAgICAgZGVsZXRlIHN0b3JhZ2UucGFnZVJlc3BvbnNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3RvcmFnZSA9IE9iamVjdC5hc3NpZ24oe30sIHN0b3JhZ2UpO1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5zdG9yYWdlLCBKU09OLnN0cmluZ2lmeShzdG9yYWdlKSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiBDbGVhciBTb3VyY2UgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgUmVzZXQoKTogdm9pZCB7XHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLnN0b3JhZ2UpO1xyXG4gICAgfVxyXG59Il19
@@ -197,4 +197,4 @@ export const Tools = {
197
197
  });
198
198
  }
199
199
  };
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL1Rvb2xzL3NyYy9Ub29scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFNLEVBQUUsQ0FBQyxDQUFDO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRztJQUNqQixzQkFBc0I7SUFDdEIsT0FBTyxFQUFFLENBQUMsT0FBZSxhQUFhLEVBQUUsRUFBRTtRQUN0QyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDN0IsT0FBTyxJQUFJLEdBQUcsdUNBQXVDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3pFLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1lBQ25ELElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQTtZQUM1QixPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDbEUsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBR0Qsc0VBQXNFO0lBQ3RFLE1BQU0sRUFBRSxDQUFJLEtBQTJCLEVBQVcsRUFBRTtRQUNoRCxJQUFJLEtBQUssS0FBSyxTQUFTO1lB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QkFDL0MsYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUMsU0FBVSxDQUFDLENBQUMsQ0FBQztnQkFDbEQsQ0FBQztnQkFFRCxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFO29CQUNuRCxDQUFDLFNBQVUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7d0JBQzFCLE9BQU8sRUFBRSxDQUFDO3dCQUNWLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFNBQVUsQ0FBQyxDQUFDLENBQUM7d0JBQzlDLE1BQU0sVUFBVSxHQUFHLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxFQUFFLENBQUM7d0JBQzdDLE9BQU8sVUFBVSxDQUFDLFNBQVUsQ0FBQyxDQUFDO3dCQUM5QixnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFDLENBQUM7b0JBQzVDLENBQUMsRUFBRSxZQUFZLENBQUM7aUJBQ25CLENBQUMsQ0FBQyxDQUFDO1lBQ1IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmNvbnN0IHJlZmVyZW5jZV9zaWduYWwgPSBzaWduYWw8YW55Pih7fSk7XHJcblxyXG5leHBvcnQgY29uc3QgVG9vbHMgPSB7XHJcbiAgICAvKiogR2VuZXJhdGUgYSBHdWlkICovXHJcbiAgICBHZXRHdWlkOiAoc2VlZDogc3RyaW5nID0gJ2NvZXItc3lzdGVtJykgPT4ge1xyXG4gICAgICAgIGxldCB0aW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgc2VlZCA9IHNlZWQudG9TdHJpbmcoKS50cmltKClcclxuICAgICAgICByZXR1cm4gc2VlZCArIGAteHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4YC5yZXBsYWNlKC9beHldL2csIChjKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJhbmRvbSA9ICh0aW1lICsgTWF0aC5yYW5kb20oKSAqIDE2KSAlIDE2IHwgMFxyXG4gICAgICAgICAgICB0aW1lID0gTWF0aC5mbG9vcih0aW1lIC8gMTYpXHJcbiAgICAgICAgICAgIHJldHVybiAoYyA9PSAneCcgPyByYW5kb20gOiAocmFuZG9tICYgMHgzIHwgMHg4KSkudG9TdHJpbmcoMTYpXHJcbiAgICAgICAgfSlcclxuICAgIH0sXHJcblxyXG5cclxuICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHZhbHVlIGlzIG51bGwgb3IgdW5kZWZpbmVkLCBmYWxzZSBvdGhlcndpc2UgKi9cclxuICAgIElzTnVsbDogPFQ+KHZhbHVlOiBUIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT4ge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0sXHJcblxyXG5cclxuICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHZhbHVlIGlzIG5vdCBudWxsIG9yIHVuZGVmaW5lZCwgZmFsc2Ugb3RoZXJ3aXNlICovXHJcbiAgICBJc05vdE51bGw6IDxUPih2YWx1ZTogVCB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuID0+IHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSxcclxuXHJcblxyXG4gICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgdmFsdWUgaXMgbnVsbCBvciB1bmRlZmluZWQgb3IgY29udGFpbnMgb25seSB3aGl0ZXNwYWNlLCBmYWxzZSBvdGhlcndpc2UgKi9cclxuICAgIElzT25seVdoaXRlU3BhY2U6IDxUPih2YWx1ZTogVCB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuID0+IHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZigodmFsdWUgYXMgc3RyaW5nKS50b1N0cmluZygpLnRyaW0oKSA9PT0gJycpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0sXHJcblxyXG5cclxuICAgIC8qKiBCcmVhayByZWZlcmVuY2Ugb2YgYSBvYmplY3Qgb3IgYXJyYXkgKi9cclxuICAgIEJyZWFrUmVmZXJlbmNlOiA8VD4ob2JqZWN0OiBUKTogVCA9PiB7XHJcbiAgICAgICAgaWYgKG9iamVjdCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkIGFzIFQ7XHJcbiAgICAgICAgaWYgKG9iamVjdCA9PT0gbnVsbCkgcmV0dXJuIG51bGwgYXMgVDtcclxuICAgICAgICBjb25zdCBPQkpFQ1QgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iamVjdCkpXHJcbiAgICAgICAgcmV0dXJuIChBcnJheS5pc0FycmF5KE9CSkVDVCkpID8gWy4uLk9CSkVDVF0gOiB7IC4uLk9CSkVDVCB9XHJcbiAgICB9LFxyXG5cclxuXHJcbiAgICAvKiogQ2xlYW4gZXh0cmEgd2hpdGVzcGFjZXMgKi9cclxuICAgIENsZWFuVXBCbGFua3M6ICh0ZXh0OiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcgPT4ge1xyXG4gICAgICAgIGlmKFRvb2xzLklzTnVsbCh0ZXh0KSkgcmV0dXJuICcnO1xyXG4gICAgICAgIGxldCB3b3JsZHM6IHN0cmluZ1tdID0gU3RyaW5nKHRleHQpLnNwbGl0KCcgJyk7XHJcbiAgICAgICAgd29ybGRzID0gd29ybGRzLmZpbHRlcih4ID0+IHgubGVuZ3RoID4gMCk7XHJcbiAgICAgICAgcmV0dXJuIHdvcmxkcy5qb2luKCcgJyk7XHJcbiAgICB9LFxyXG5cclxuXHJcbiAgICAvKiogR2V0IHByb3BlcnRpZXMgb2YgYW4gb2JqZWN0ICovXHJcbiAgICBHZXRPYmplY3RQcm9wZXJ0aWVzOiA8VD4ob2JqOiBUIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZ1tdID0+IHtcclxuICAgICAgICBjb25zdCBwcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgIGlmKFRvb2xzLklzTnVsbChvYmopKSByZXR1cm4gcHJvcGVydGllcztcclxuICAgICAgICBmb3IoY29uc3QgcHJvcGVydHkgaW4gb2JqKSBwcm9wZXJ0aWVzLnB1c2goU3RyaW5nKHByb3BlcnR5KSk7XHJcbiAgICAgICAgcmV0dXJuIHByb3BlcnRpZXM7XHJcbiAgICB9LFxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCBhbiBpbmRleCBhbmQgbWVyZ2UgbW9yZSBhcnJheXMgb2YgdGhlIHNhbWUgdHlwZVxyXG4gICAgICogQHJldHVybnMgQSBuZXcgYXJyYXlcclxuICAgICAqICovXHJcbiAgICBTZXRJbmRleDogPFQ+KGFycmF5OiBUW10sIC4uLmFyZ3M6IFRbXVtdKTogVFtdID0+IHtcclxuICAgICAgICBsZXQgaW5kZXggPSAwO1xyXG4gICAgICAgIGZvciAoY29uc3QgYXJnIG9mIGFyZ3MpIHtcclxuICAgICAgICAgICAgYXJyYXkgPSBUb29scy5CcmVha1JlZmVyZW5jZShhcnJheSkuY29uY2F0KFRvb2xzLkJyZWFrUmVmZXJlbmNlKGFyZykpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIFRvb2xzLkJyZWFrUmVmZXJlbmNlKGFycmF5KS5tYXAoaXRlbSA9PiBPYmplY3QuYXNzaWduKHsgaW5kZXg6IGluZGV4KysgfSwgaXRlbSkpO1xyXG4gICAgfSxcclxuXHJcblxyXG4gICAgLyoqIFNldCBGaXJzdCBDaGFyIFRvIExvd2VyICovXHJcbiAgICBGaXJzdENoYXJUb0xvd2VyOiAodGV4dDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyA9PiB7XHJcbiAgICAgICAgaWYgKFRvb2xzLklzTnVsbCh0ZXh0KSkgcmV0dXJuICcnO1xyXG5cclxuICAgICAgICBjb25zdCB0ZXh0QXJyYXk6IHN0cmluZ1tdID0gW107XHJcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHRleHQhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmKGkgPT09IDApIHRleHRBcnJheS5wdXNoKHRleHQhW2ldLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgICAgICBlbHNlIHRleHRBcnJheS5wdXNoKHRleHQhW2ldKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0ZXh0QXJyYXkuam9pbignJyk7XHJcbiAgICB9LFxyXG5cclxuXHJcbiAgICAvKiogU2V0IEZpcnN0IENoYXIgVG8gVXBwZXIgKi9cclxuICAgIEZpcnN0Q2hhclRvVXBwZXI6ICh0ZXh0OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RyaW5nID0+IHtcclxuICAgICAgICBpZiAoVG9vbHMuSXNOdWxsKHRleHQpKSByZXR1cm4gJyc7XHJcblxyXG4gICAgICAgIGNvbnN0IHRleHRBcnJheTogc3RyaW5nW10gPSBbXTtcclxuICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgdGV4dCEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYoaSA9PT0gMCkgdGV4dEFycmF5LnB1c2godGV4dCFbaV0udG9VcHBlckNhc2UoKSk7XHJcbiAgICAgICAgICAgIGVsc2UgdGV4dEFycmF5LnB1c2godGV4dCFbaV0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRleHRBcnJheS5qb2luKCcnKTtcclxuICAgIH0sXHJcblxyXG5cclxuICAgIC8qKiBTb3J0IGFuIGFycmF5IGluIGFzY2VuZGluZyBvcmRlciBieSBwcm9wZXJ0eSAqL1xyXG4gICAgU29ydEJ5OiA8VD4oYXJyYXk6IFRbXSwgcHJvcGVydHk6IHN0cmluZywgcHJvcGVydHlUeXBlOiAnc3RyaW5nJyB8ICdudW1iZXInID0gJ3N0cmluZycpOiBUW10gPT4ge1xyXG4gICAgICAgIHN3aXRjaCAocHJvcGVydHlUeXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBhcnJheS5zb3J0KCh4OiBhbnksIHk6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChTdHJpbmcoeFtwcm9wZXJ0eV0pLnRvVXBwZXJDYXNlKCkudHJpbSgpIDwgU3RyaW5nKHlbcHJvcGVydHldKS50b1VwcGVyQ2FzZSgpLnRyaW0oKSkgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKFN0cmluZyh4W3Byb3BlcnR5XSkudG9VcHBlckNhc2UoKS50cmltKCkgPiBTdHJpbmcoeVtwcm9wZXJ0eV0pLnRvVXBwZXJDYXNlKCkudHJpbSgpKSByZXR1cm4gMTtcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHJldHVybiAwO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBhcnJheS5zb3J0KCh4OiBhbnksIHk6IGFueSkgPT4gTnVtYmVyKHhbcHJvcGVydHldIC0gTnVtYmVyKHlbcHJvcGVydHldKSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcblxyXG4gICAgLyoqIFNvcnQgYW4gYXJyYXkgaW4gZGVzY2VuZGluZyBvcmRlciBieSBwcm9wZXJ0eSAqL1xyXG4gICAgU29ydEJ5RGVzYzogPFQ+KGFycmF5OiBUW10sIHByb3BlcnR5OiBzdHJpbmcsIHByb3BlcnR5VHlwZTogJ3N0cmluZycgfCAnbnVtYmVyJyA9ICdzdHJpbmcnKTogVFtdID0+IHtcclxuICAgICAgICBzd2l0Y2ggKHByb3BlcnR5VHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlICdzdHJpbmcnOiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYXJyYXkuc29ydCgoeDogYW55LCB5OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoU3RyaW5nKHhbcHJvcGVydHldKS50b1VwcGVyQ2FzZSgpLnRyaW0oKSA8IFN0cmluZyh5W3Byb3BlcnR5XSkudG9VcHBlckNhc2UoKS50cmltKCkpIHJldHVybiAxO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKFN0cmluZyh4W3Byb3BlcnR5XSkudG9VcHBlckNhc2UoKS50cmltKCkgPiBTdHJpbmcoeVtwcm9wZXJ0eV0pLnRvVXBwZXJDYXNlKCkudHJpbSgpKSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSByZXR1cm4gMDtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjYXNlICdudW1iZXInOiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYXJyYXkuc29ydCgoeDogYW55LCB5OiBhbnkpID0+IE51bWJlcihOdW1iZXIoeVtwcm9wZXJ0eV0pKSAtIHhbcHJvcGVydHldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG5cclxuICAgIC8qKiBSZXR1cm4gYSBzdHJpbmcgd2l0aCBmb3JtYW4gbnVtZXJpYyAqL1xyXG4gICAgR2V0TnVtZXJpY0Zvcm1hdDogKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBkZWNpbWFsczogbnVtYmVyID0gMCk6IHN0cmluZyA9PiB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICB8fCB2YWx1ZSA9PSBudWxsXHJcbiAgICAgICAgICAgIHx8IHZhbHVlLnRvU3RyaW5nKCkudHJpbSgpID09ICcnXHJcbiAgICAgICAgICAgIHx8IGlzTmFOKE51bWJlcih2YWx1ZSkpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnMCc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdmFsdWVJbnRlZ2VyID0gJyc7XHJcbiAgICAgICAgbGV0IHZhbHVlRGVjaW1hbCA9ICcnO1xyXG4gICAgICAgIHZhbHVlID0gdmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlQWxsKCcgJywgJycpO1xyXG5cclxuICAgICAgICBpZiAodmFsdWUuaW5jbHVkZXMoJy4nKSB8fCAoZGVjaW1hbHMgPiAwKSkge1xyXG4gICAgICAgICAgICB2YWx1ZUludGVnZXIgPSB2YWx1ZS5pbmNsdWRlcygnLicpID8gdmFsdWUuc3BsaXQoJy4nKVswXSA6IHZhbHVlO1xyXG5cclxuICAgICAgICAgICAgaWYgKGRlY2ltYWxzID4gMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgUEFERElORyA9IGRlY2ltYWxzIC0gdmFsdWVEZWNpbWFsLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgIHZhbHVlRGVjaW1hbCA9IHZhbHVlLmluY2x1ZGVzKCcuJykgPyB2YWx1ZS5zcGxpdCgnLicpWzFdIDogJyc7XHJcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgUEFERElORzsgaSsrKSB2YWx1ZURlY2ltYWwgKz0gJzAnO1xyXG4gICAgICAgICAgICAgICAgdmFsdWVEZWNpbWFsID0gdmFsdWVEZWNpbWFsLnN1YnN0cmluZygwLCBkZWNpbWFscyk7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZURlY2ltYWwgPSBgLiR7dmFsdWVEZWNpbWFsfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB2YWx1ZUludGVnZXIgPSB2YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBjb3VudGVyID0gMDtcclxuICAgICAgICBjb25zdCBWQUxVRV9JTlRFR0VSX0FSUkFZOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgIGZvcihjb25zdCBjaGFyIG9mIHZhbHVlSW50ZWdlci5zcGxpdCgnJykucmV2ZXJzZSgpKSB7XHJcbiAgICAgICAgICAgIGlmIChjb3VudGVyID09IDMpIHtcclxuICAgICAgICAgICAgICAgIFZBTFVFX0lOVEVHRVJfQVJSQVkucHVzaCgnLCcpO1xyXG4gICAgICAgICAgICAgICAgY291bnRlciA9IDA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIFZBTFVFX0lOVEVHRVJfQVJSQVkucHVzaChjaGFyKTtcclxuICAgICAgICAgICAgKytjb3VudGVyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFsdWVJbnRlZ2VyID0gVkFMVUVfSU5URUdFUl9BUlJBWS5yZXZlcnNlKCkuam9pbignJyk7XHJcbiAgICAgICAgcmV0dXJuIGAke3ZhbHVlSW50ZWdlcn0ke3ZhbHVlRGVjaW1hbH1gO1xyXG4gICAgfSxcclxuXHJcblxyXG4gICAgLyoqIFdhaXQgdGhlIHRpbWUgaW5kaWNhdGVkICovXHJcbiAgICBTbGVlcDogKG1pbGxpc2Vjb25kczogbnVtYmVyID0gMCwgcmVmZXJlbmNlOiBzdHJpbmcgfCBudWxsID0gbnVsbCkgPT4ge1xyXG4gICAgICAgIGlmIChUb29scy5Jc051bGwocmVmZXJlbmNlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoUmVzb2x2ZSA9PiBzZXRUaW1lb3V0KFJlc29sdmUsIG1pbGxpc2Vjb25kcykpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWxzZSByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oUmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIHJlZmVyZW5jZSA9IHJlZmVyZW5jZSEucmVwbGFjZUFsbCgnICcsICdfJykudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChyZWZlcmVuY2Vfc2lnbmFsKCkuaGFzT3duUHJvcGVydHkocmVmZXJlbmNlKSkge1xyXG4gICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChyZWZlcmVuY2Vfc2lnbmFsKClbcmVmZXJlbmNlIV0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZWZlcmVuY2Vfc2lnbmFsLnNldChPYmplY3QuYXNzaWduKHJlZmVyZW5jZV9zaWduYWwoKSwge1xyXG4gICAgICAgICAgICAgICAgW3JlZmVyZW5jZSFdOiBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBSZXNvbHZlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChyZWZlcmVuY2Vfc2lnbmFsKClbcmVmZXJlbmNlIV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IF9yZWZlcmVuY2UgPSB7IC4uLnJlZmVyZW5jZV9zaWduYWwoKSB9O1xyXG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBfcmVmZXJlbmNlW3JlZmVyZW5jZSFdO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZV9zaWduYWwuc2V0KHsgLi4uX3JlZmVyZW5jZSB9KTtcclxuICAgICAgICAgICAgICAgIH0sIG1pbGxpc2Vjb25kcylcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59OyJdfQ==
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL3Rvb2xzL3NyYy9Ub29scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFNLEVBQUUsQ0FBQyxDQUFDO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRztJQUNqQixzQkFBc0I7SUFDdEIsT0FBTyxFQUFFLENBQUMsT0FBZSxhQUFhLEVBQUUsRUFBRTtRQUN0QyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDN0IsT0FBTyxJQUFJLEdBQUcsdUNBQXVDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3pFLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1lBQ25ELElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQTtZQUM1QixPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDbEUsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBR0Qsc0VBQXNFO0lBQ3RFLE1BQU0sRUFBRSxDQUFJLEtBQTJCLEVBQVcsRUFBRTtRQUNoRCxJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDckMsSUFBSSxLQUFLLEtBQUssSUFBSTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ2hDLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFHRCwwRUFBMEU7SUFDMUUsU0FBUyxFQUFFLENBQUksS0FBMkIsRUFBVyxFQUFFO1FBQ25ELElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN0QyxJQUFJLEtBQUssS0FBSyxJQUFJO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUdELGtHQUFrRztJQUNsRyxnQkFBZ0IsRUFBRSxDQUFJLEtBQTJCLEVBQVcsRUFBRTtRQUMxRCxJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDckMsSUFBSSxLQUFLLEtBQUssSUFBSTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ2hDLElBQUksS0FBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDM0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUdELDJDQUEyQztJQUMzQyxjQUFjLEVBQUUsQ0FBSSxNQUFTLEVBQUssRUFBRTtRQUNoQyxJQUFJLE1BQU0sS0FBSyxTQUFTO1lBQUUsT0FBTyxTQUFjLENBQUM7UUFDaEQsSUFBSSxNQUFNLEtBQUssSUFBSTtZQUFFLE9BQU8sSUFBUyxDQUFDO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQ2pELE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFBO0lBQ2hFLENBQUM7SUFHRCw4QkFBOEI7SUFDOUIsYUFBYSxFQUFFLENBQUMsSUFBcUIsRUFBVSxFQUFFO1FBQzdDLElBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNqQyxJQUFJLE1BQU0sR0FBYSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUdELGtDQUFrQztJQUNsQyxtQkFBbUIsRUFBRSxDQUFJLEdBQXlCLEVBQVksRUFBRTtRQUM1RCxNQUFNLFVBQVUsR0FBYSxFQUFFLENBQUM7UUFDaEMsSUFBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sVUFBVSxDQUFDO1FBQ3hDLEtBQUksTUFBTSxRQUFRLElBQUksR0FBRztZQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDN0QsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUdEOzs7U0FHSztJQUNMLFFBQVEsRUFBRSxDQUFJLEtBQVUsRUFBRSxHQUFHLElBQVcsRUFBTyxFQUFFO1FBQzdDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDckIsS0FBSyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFHRCw4QkFBOEI7SUFDOUIsZ0JBQWdCLEVBQUUsQ0FBQyxJQUErQixFQUFVLEVBQUU7UUFDMUQsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRWxDLE1BQU0sU0FBUyxHQUFhLEVBQUUsQ0FBQztRQUMvQixLQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ25DLElBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQzs7Z0JBQzlDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBR0QsOEJBQThCO0lBQzlCLGdCQUFnQixFQUFFLENBQUMsSUFBK0IsRUFBVSxFQUFFO1FBQzFELElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUVsQyxNQUFNLFNBQVMsR0FBYSxFQUFFLENBQUM7UUFDL0IsS0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNuQyxJQUFHLENBQUMsS0FBSyxDQUFDO2dCQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7O2dCQUM5QyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUdELG1EQUFtRDtJQUNuRCxNQUFNLEVBQUUsQ0FBSSxLQUFVLEVBQUUsUUFBZ0IsRUFBRSxlQUFvQyxRQUFRLEVBQU8sRUFBRTtRQUMzRixRQUFRLFlBQVksRUFBRSxDQUFDO1lBQ25CLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDWixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsQ0FBTSxFQUFFLEVBQUU7b0JBQ2pDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUU7d0JBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQzt5QkFDOUYsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRTt3QkFBRSxPQUFPLENBQUMsQ0FBQzs7d0JBQ2xHLE9BQU8sQ0FBQyxDQUFDO2dCQUNsQixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7WUFFRCxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ1osT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLENBQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JGLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUdELG9EQUFvRDtJQUNwRCxVQUFVLEVBQUUsQ0FBSSxLQUFVLEVBQUUsUUFBZ0IsRUFBRSxlQUFvQyxRQUFRLEVBQU8sRUFBRTtRQUMvRixRQUFRLFlBQVksRUFBRSxDQUFDO1lBQ25CLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDWixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsQ0FBTSxFQUFFLEVBQUU7b0JBQ2pDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUU7d0JBQUUsT0FBTyxDQUFDLENBQUM7eUJBQzdGLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUU7d0JBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQzs7d0JBQ25HLE9BQU8sQ0FBQyxDQUFDO2dCQUNsQixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7WUFFRCxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ1osT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLENBQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3JGLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUdELDBDQUEwQztJQUMxQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQXlDLEVBQUUsV0FBbUIsQ0FBQyxFQUFVLEVBQUU7UUFDMUYsSUFBSSxLQUFLLElBQUksU0FBUztlQUNmLEtBQUssSUFBSSxJQUFJO2VBQ2IsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7ZUFDN0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDMUIsT0FBTyxHQUFHLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN0QixLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFN0MsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDeEMsWUFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUVqRSxJQUFJLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDZixNQUFNLE9BQU8sR0FBRyxRQUFRLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQztnQkFDL0MsWUFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDOUQsS0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sRUFBRSxDQUFDLEVBQUU7b0JBQUUsWUFBWSxJQUFJLEdBQUcsQ0FBQztnQkFDckQsWUFBWSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNuRCxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUN0QyxDQUFDO1FBQ0wsQ0FBQzthQUVJLENBQUM7WUFDRixZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUM7UUFFRCxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDaEIsTUFBTSxtQkFBbUIsR0FBYSxFQUFFLENBQUM7UUFDekMsS0FBSSxNQUFNLElBQUksSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDakQsSUFBSSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2YsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM5QixPQUFPLEdBQUcsQ0FBQyxDQUFDO1lBQ2hCLENBQUM7WUFFRCxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsRUFBRSxPQUFPLENBQUM7UUFDZCxDQUFDO1FBRUQsWUFBWSxHQUFHLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0RCxPQUFPLEdBQUcsWUFBWSxHQUFHLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFHRCw4QkFBOEI7SUFDOUIsS0FBSyxFQUFFLENBQUMsZUFBdUIsQ0FBQyxFQUFFLFlBQTJCLElBQUksRUFBRSxFQUFFO1FBQ2pFLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDckUsQ0FBQzs7WUFFSSxPQUFPLElBQUksT0FBTyxDQUFPLE9BQU8sQ0FBQyxFQUFFO2dCQUNwQyxTQUFTLEdBQUcsU0FBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBRTFELElBQUksZ0JBQWdCLEVBQUUsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztvQkFDL0MsYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUMsU0FBVSxDQUFDLENBQUMsQ0FBQztnQkFDbEQsQ0FBQztnQkFFRCxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFO29CQUNuRCxDQUFDLFNBQVUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7d0JBQzFCLE9BQU8sRUFBRSxDQUFDO3dCQUNWLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFNBQVUsQ0FBQyxDQUFDLENBQUM7d0JBQzlDLE1BQU0sVUFBVSxHQUFHLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxFQUFFLENBQUM7d0JBQzdDLE9BQU8sVUFBVSxDQUFDLFNBQVUsQ0FBQyxDQUFDO3dCQUM5QixnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFDLENBQUM7b0JBQzVDLENBQUMsRUFBRSxZQUFZLENBQUM7aUJBQ25CLENBQUMsQ0FBQyxDQUFDO1lBQ1IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmNvbnN0IHJlZmVyZW5jZV9zaWduYWwgPSBzaWduYWw8YW55Pih7fSk7XHJcblxyXG5leHBvcnQgY29uc3QgVG9vbHMgPSB7XHJcbiAgICAvKiogR2VuZXJhdGUgYSBHdWlkICovXHJcbiAgICBHZXRHdWlkOiAoc2VlZDogc3RyaW5nID0gJ2NvZXItc3lzdGVtJykgPT4ge1xyXG4gICAgICAgIGxldCB0aW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgc2VlZCA9IHNlZWQudG9TdHJpbmcoKS50cmltKClcclxuICAgICAgICByZXR1cm4gc2VlZCArIGAteHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4YC5yZXBsYWNlKC9beHldL2csIChjKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJhbmRvbSA9ICh0aW1lICsgTWF0aC5yYW5kb20oKSAqIDE2KSAlIDE2IHwgMFxyXG4gICAgICAgICAgICB0aW1lID0gTWF0aC5mbG9vcih0aW1lIC8gMTYpXHJcbiAgICAgICAgICAgIHJldHVybiAoYyA9PSAneCcgPyByYW5kb20gOiAocmFuZG9tICYgMHgzIHwgMHg4KSkudG9TdHJpbmcoMTYpXHJcbiAgICAgICAgfSlcclxuICAgIH0sXHJcblxyXG5cclxuICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHZhbHVlIGlzIG51bGwgb3IgdW5kZWZpbmVkLCBmYWxzZSBvdGhlcndpc2UgKi9cclxuICAgIElzTnVsbDogPFQ+KHZhbHVlOiBUIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT4ge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0sXHJcblxyXG5cclxuICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHZhbHVlIGlzIG5vdCBudWxsIG9yIHVuZGVmaW5lZCwgZmFsc2Ugb3RoZXJ3aXNlICovXHJcbiAgICBJc05vdE51bGw6IDxUPih2YWx1ZTogVCB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuID0+IHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSxcclxuXHJcblxyXG4gICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgdmFsdWUgaXMgbnVsbCBvciB1bmRlZmluZWQgb3IgY29udGFpbnMgb25seSB3aGl0ZXNwYWNlLCBmYWxzZSBvdGhlcndpc2UgKi9cclxuICAgIElzT25seVdoaXRlU3BhY2U6IDxUPih2YWx1ZTogVCB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuID0+IHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZigodmFsdWUgYXMgc3RyaW5nKS50b1N0cmluZygpLnRyaW0oKSA9PT0gJycpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0sXHJcblxyXG5cclxuICAgIC8qKiBCcmVhayByZWZlcmVuY2Ugb2YgYSBvYmplY3Qgb3IgYXJyYXkgKi9cclxuICAgIEJyZWFrUmVmZXJlbmNlOiA8VD4ob2JqZWN0OiBUKTogVCA9PiB7XHJcbiAgICAgICAgaWYgKG9iamVjdCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkIGFzIFQ7XHJcbiAgICAgICAgaWYgKG9iamVjdCA9PT0gbnVsbCkgcmV0dXJuIG51bGwgYXMgVDtcclxuICAgICAgICBjb25zdCBPQkpFQ1QgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iamVjdCkpXHJcbiAgICAgICAgcmV0dXJuIChBcnJheS5pc0FycmF5KE9CSkVDVCkpID8gWy4uLk9CSkVDVF0gOiB7IC4uLk9CSkVDVCB9XHJcbiAgICB9LFxyXG5cclxuXHJcbiAgICAvKiogQ2xlYW4gZXh0cmEgd2hpdGVzcGFjZXMgKi9cclxuICAgIENsZWFuVXBCbGFua3M6ICh0ZXh0OiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcgPT4ge1xyXG4gICAgICAgIGlmKFRvb2xzLklzTnVsbCh0ZXh0KSkgcmV0dXJuICcnO1xyXG4gICAgICAgIGxldCB3b3JsZHM6IHN0cmluZ1tdID0gU3RyaW5nKHRleHQpLnNwbGl0KCcgJyk7XHJcbiAgICAgICAgd29ybGRzID0gd29ybGRzLmZpbHRlcih4ID0+IHgubGVuZ3RoID4gMCk7XHJcbiAgICAgICAgcmV0dXJuIHdvcmxkcy5qb2luKCcgJyk7XHJcbiAgICB9LFxyXG5cclxuXHJcbiAgICAvKiogR2V0IHByb3BlcnRpZXMgb2YgYW4gb2JqZWN0ICovXHJcbiAgICBHZXRPYmplY3RQcm9wZXJ0aWVzOiA8VD4ob2JqOiBUIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZ1tdID0+IHtcclxuICAgICAgICBjb25zdCBwcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgIGlmKFRvb2xzLklzTnVsbChvYmopKSByZXR1cm4gcHJvcGVydGllcztcclxuICAgICAgICBmb3IoY29uc3QgcHJvcGVydHkgaW4gb2JqKSBwcm9wZXJ0aWVzLnB1c2goU3RyaW5nKHByb3BlcnR5KSk7XHJcbiAgICAgICAgcmV0dXJuIHByb3BlcnRpZXM7XHJcbiAgICB9LFxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCBhbiBpbmRleCBhbmQgbWVyZ2UgbW9yZSBhcnJheXMgb2YgdGhlIHNhbWUgdHlwZVxyXG4gICAgICogQHJldHVybnMgQSBuZXcgYXJyYXlcclxuICAgICAqICovXHJcbiAgICBTZXRJbmRleDogPFQ+KGFycmF5OiBUW10sIC4uLmFyZ3M6IFRbXVtdKTogVFtdID0+IHtcclxuICAgICAgICBsZXQgaW5kZXggPSAwO1xyXG4gICAgICAgIGZvciAoY29uc3QgYXJnIG9mIGFyZ3MpIHtcclxuICAgICAgICAgICAgYXJyYXkgPSBUb29scy5CcmVha1JlZmVyZW5jZShhcnJheSkuY29uY2F0KFRvb2xzLkJyZWFrUmVmZXJlbmNlKGFyZykpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIFRvb2xzLkJyZWFrUmVmZXJlbmNlKGFycmF5KS5tYXAoaXRlbSA9PiBPYmplY3QuYXNzaWduKHsgaW5kZXg6IGluZGV4KysgfSwgaXRlbSkpO1xyXG4gICAgfSxcclxuXHJcblxyXG4gICAgLyoqIFNldCBGaXJzdCBDaGFyIFRvIExvd2VyICovXHJcbiAgICBGaXJzdENoYXJUb0xvd2VyOiAodGV4dDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyA9PiB7XHJcbiAgICAgICAgaWYgKFRvb2xzLklzTnVsbCh0ZXh0KSkgcmV0dXJuICcnO1xyXG5cclxuICAgICAgICBjb25zdCB0ZXh0QXJyYXk6IHN0cmluZ1tdID0gW107XHJcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHRleHQhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmKGkgPT09IDApIHRleHRBcnJheS5wdXNoKHRleHQhW2ldLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgICAgICBlbHNlIHRleHRBcnJheS5wdXNoKHRleHQhW2ldKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0ZXh0QXJyYXkuam9pbignJyk7XHJcbiAgICB9LFxyXG5cclxuXHJcbiAgICAvKiogU2V0IEZpcnN0IENoYXIgVG8gVXBwZXIgKi9cclxuICAgIEZpcnN0Q2hhclRvVXBwZXI6ICh0ZXh0OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RyaW5nID0+IHtcclxuICAgICAgICBpZiAoVG9vbHMuSXNOdWxsKHRleHQpKSByZXR1cm4gJyc7XHJcblxyXG4gICAgICAgIGNvbnN0IHRleHRBcnJheTogc3RyaW5nW10gPSBbXTtcclxuICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgdGV4dCEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYoaSA9PT0gMCkgdGV4dEFycmF5LnB1c2godGV4dCFbaV0udG9VcHBlckNhc2UoKSk7XHJcbiAgICAgICAgICAgIGVsc2UgdGV4dEFycmF5LnB1c2godGV4dCFbaV0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRleHRBcnJheS5qb2luKCcnKTtcclxuICAgIH0sXHJcblxyXG5cclxuICAgIC8qKiBTb3J0IGFuIGFycmF5IGluIGFzY2VuZGluZyBvcmRlciBieSBwcm9wZXJ0eSAqL1xyXG4gICAgU29ydEJ5OiA8VD4oYXJyYXk6IFRbXSwgcHJvcGVydHk6IHN0cmluZywgcHJvcGVydHlUeXBlOiAnc3RyaW5nJyB8ICdudW1iZXInID0gJ3N0cmluZycpOiBUW10gPT4ge1xyXG4gICAgICAgIHN3aXRjaCAocHJvcGVydHlUeXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBhcnJheS5zb3J0KCh4OiBhbnksIHk6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChTdHJpbmcoeFtwcm9wZXJ0eV0pLnRvVXBwZXJDYXNlKCkudHJpbSgpIDwgU3RyaW5nKHlbcHJvcGVydHldKS50b1VwcGVyQ2FzZSgpLnRyaW0oKSkgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKFN0cmluZyh4W3Byb3BlcnR5XSkudG9VcHBlckNhc2UoKS50cmltKCkgPiBTdHJpbmcoeVtwcm9wZXJ0eV0pLnRvVXBwZXJDYXNlKCkudHJpbSgpKSByZXR1cm4gMTtcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHJldHVybiAwO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBhcnJheS5zb3J0KCh4OiBhbnksIHk6IGFueSkgPT4gTnVtYmVyKHhbcHJvcGVydHldIC0gTnVtYmVyKHlbcHJvcGVydHldKSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcblxyXG4gICAgLyoqIFNvcnQgYW4gYXJyYXkgaW4gZGVzY2VuZGluZyBvcmRlciBieSBwcm9wZXJ0eSAqL1xyXG4gICAgU29ydEJ5RGVzYzogPFQ+KGFycmF5OiBUW10sIHByb3BlcnR5OiBzdHJpbmcsIHByb3BlcnR5VHlwZTogJ3N0cmluZycgfCAnbnVtYmVyJyA9ICdzdHJpbmcnKTogVFtdID0+IHtcclxuICAgICAgICBzd2l0Y2ggKHByb3BlcnR5VHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlICdzdHJpbmcnOiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYXJyYXkuc29ydCgoeDogYW55LCB5OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoU3RyaW5nKHhbcHJvcGVydHldKS50b1VwcGVyQ2FzZSgpLnRyaW0oKSA8IFN0cmluZyh5W3Byb3BlcnR5XSkudG9VcHBlckNhc2UoKS50cmltKCkpIHJldHVybiAxO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKFN0cmluZyh4W3Byb3BlcnR5XSkudG9VcHBlckNhc2UoKS50cmltKCkgPiBTdHJpbmcoeVtwcm9wZXJ0eV0pLnRvVXBwZXJDYXNlKCkudHJpbSgpKSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSByZXR1cm4gMDtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjYXNlICdudW1iZXInOiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYXJyYXkuc29ydCgoeDogYW55LCB5OiBhbnkpID0+IE51bWJlcihOdW1iZXIoeVtwcm9wZXJ0eV0pKSAtIHhbcHJvcGVydHldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG5cclxuICAgIC8qKiBSZXR1cm4gYSBzdHJpbmcgd2l0aCBmb3JtYW4gbnVtZXJpYyAqL1xyXG4gICAgR2V0TnVtZXJpY0Zvcm1hdDogKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBkZWNpbWFsczogbnVtYmVyID0gMCk6IHN0cmluZyA9PiB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICB8fCB2YWx1ZSA9PSBudWxsXHJcbiAgICAgICAgICAgIHx8IHZhbHVlLnRvU3RyaW5nKCkudHJpbSgpID09ICcnXHJcbiAgICAgICAgICAgIHx8IGlzTmFOKE51bWJlcih2YWx1ZSkpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnMCc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdmFsdWVJbnRlZ2VyID0gJyc7XHJcbiAgICAgICAgbGV0IHZhbHVlRGVjaW1hbCA9ICcnO1xyXG4gICAgICAgIHZhbHVlID0gdmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlQWxsKCcgJywgJycpO1xyXG5cclxuICAgICAgICBpZiAodmFsdWUuaW5jbHVkZXMoJy4nKSB8fCAoZGVjaW1hbHMgPiAwKSkge1xyXG4gICAgICAgICAgICB2YWx1ZUludGVnZXIgPSB2YWx1ZS5pbmNsdWRlcygnLicpID8gdmFsdWUuc3BsaXQoJy4nKVswXSA6IHZhbHVlO1xyXG5cclxuICAgICAgICAgICAgaWYgKGRlY2ltYWxzID4gMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgUEFERElORyA9IGRlY2ltYWxzIC0gdmFsdWVEZWNpbWFsLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgIHZhbHVlRGVjaW1hbCA9IHZhbHVlLmluY2x1ZGVzKCcuJykgPyB2YWx1ZS5zcGxpdCgnLicpWzFdIDogJyc7XHJcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgUEFERElORzsgaSsrKSB2YWx1ZURlY2ltYWwgKz0gJzAnO1xyXG4gICAgICAgICAgICAgICAgdmFsdWVEZWNpbWFsID0gdmFsdWVEZWNpbWFsLnN1YnN0cmluZygwLCBkZWNpbWFscyk7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZURlY2ltYWwgPSBgLiR7dmFsdWVEZWNpbWFsfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB2YWx1ZUludGVnZXIgPSB2YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBjb3VudGVyID0gMDtcclxuICAgICAgICBjb25zdCBWQUxVRV9JTlRFR0VSX0FSUkFZOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgIGZvcihjb25zdCBjaGFyIG9mIHZhbHVlSW50ZWdlci5zcGxpdCgnJykucmV2ZXJzZSgpKSB7XHJcbiAgICAgICAgICAgIGlmIChjb3VudGVyID09IDMpIHtcclxuICAgICAgICAgICAgICAgIFZBTFVFX0lOVEVHRVJfQVJSQVkucHVzaCgnLCcpO1xyXG4gICAgICAgICAgICAgICAgY291bnRlciA9IDA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIFZBTFVFX0lOVEVHRVJfQVJSQVkucHVzaChjaGFyKTtcclxuICAgICAgICAgICAgKytjb3VudGVyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFsdWVJbnRlZ2VyID0gVkFMVUVfSU5URUdFUl9BUlJBWS5yZXZlcnNlKCkuam9pbignJyk7XHJcbiAgICAgICAgcmV0dXJuIGAke3ZhbHVlSW50ZWdlcn0ke3ZhbHVlRGVjaW1hbH1gO1xyXG4gICAgfSxcclxuXHJcblxyXG4gICAgLyoqIFdhaXQgdGhlIHRpbWUgaW5kaWNhdGVkICovXHJcbiAgICBTbGVlcDogKG1pbGxpc2Vjb25kczogbnVtYmVyID0gMCwgcmVmZXJlbmNlOiBzdHJpbmcgfCBudWxsID0gbnVsbCkgPT4ge1xyXG4gICAgICAgIGlmIChUb29scy5Jc051bGwocmVmZXJlbmNlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoUmVzb2x2ZSA9PiBzZXRUaW1lb3V0KFJlc29sdmUsIG1pbGxpc2Vjb25kcykpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWxzZSByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oUmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIHJlZmVyZW5jZSA9IHJlZmVyZW5jZSEucmVwbGFjZUFsbCgnICcsICdfJykudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChyZWZlcmVuY2Vfc2lnbmFsKCkuaGFzT3duUHJvcGVydHkocmVmZXJlbmNlKSkge1xyXG4gICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChyZWZlcmVuY2Vfc2lnbmFsKClbcmVmZXJlbmNlIV0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZWZlcmVuY2Vfc2lnbmFsLnNldChPYmplY3QuYXNzaWduKHJlZmVyZW5jZV9zaWduYWwoKSwge1xyXG4gICAgICAgICAgICAgICAgW3JlZmVyZW5jZSFdOiBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBSZXNvbHZlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChyZWZlcmVuY2Vfc2lnbmFsKClbcmVmZXJlbmNlIV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IF9yZWZlcmVuY2UgPSB7IC4uLnJlZmVyZW5jZV9zaWduYWwoKSB9O1xyXG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBfcmVmZXJlbmNlW3JlZmVyZW5jZSFdO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZV9zaWduYWwuc2V0KHsgLi4uX3JlZmVyZW5jZSB9KTtcclxuICAgICAgICAgICAgICAgIH0sIG1pbGxpc2Vjb25kcylcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59OyJdfQ==