@eo-sdk/client 7.14.1 → 7.16.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/app/eo-framework/prepare-details/prepare-details.component.d.ts +6 -0
  2. package/assets/_default/api/compare/index.html +1 -1
  3. package/assets/_default/api/error/index.html +1 -1
  4. package/assets/_default/api/img/index.html +1 -1
  5. package/assets/_default/api/mail/index.html +1 -1
  6. package/assets/_default/api/monaco/index.html +1 -1
  7. package/assets/_default/api/pdf/web/viewer.js +1 -1
  8. package/assets/_default/api/text/index.html +1 -1
  9. package/assets/_default/api/video/index.html +1 -1
  10. package/assets/_default/i18n/de.json +12 -1
  11. package/assets/_default/i18n/en.json +12 -1
  12. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +26 -16
  13. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
  14. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +2 -2
  15. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
  16. package/bundles/eo-sdk-client.umd.js +32 -8
  17. package/bundles/eo-sdk-client.umd.js.map +1 -1
  18. package/bundles/eo-sdk-client.umd.min.js +1 -1
  19. package/bundles/eo-sdk-client.umd.min.js.map +1 -1
  20. package/eo-sdk-client.metadata.json +1 -1
  21. package/esm2015/app/eo-client/about-state/about-state.component.js +3 -3
  22. package/esm2015/app/eo-client/prepare-state/prepare-state/prepare-state.component.js +3 -3
  23. package/esm2015/app/eo-framework/object-details/object-history/object-history.component.js +2 -2
  24. package/esm2015/app/eo-framework/prepare-details/prepare-details.component.js +21 -3
  25. package/esm2015/app/eo-framework/process/history/process-history.component.js +2 -2
  26. package/esm2015/projects/eo-sdk/core/lib/config/translate-json-loader.js +4 -1
  27. package/esm2015/projects/eo-sdk/core/lib/model/dms-object-history.model.js +2 -8
  28. package/esm2015/projects/eo-sdk/core/lib/model/work-item-history.model.js +3 -5
  29. package/esm2015/projects/eo-sdk/core/lib/service/backend/backend.service.js +3 -3
  30. package/esm2015/projects/eo-sdk/core/lib/service/prepare/prepare.service.js +16 -1
  31. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +22 -12
  32. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
  33. package/fesm2015/eo-sdk-client.js +26 -8
  34. package/fesm2015/eo-sdk-client.js.map +1 -1
  35. package/misc/scripts/copy-client-assets.js +3 -0
  36. package/package.json +2 -2
  37. package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.metadata.json +1 -1
  38. package/projects/eo-sdk/core/lib/model/work-item-history.model.d.ts +0 -2
  39. package/projects/eo-sdk/core/lib/service/backend/backend.service.d.ts +2 -2
  40. package/projects/eo-sdk/core/lib/service/prepare/prepare.service.d.ts +10 -0
  41. package/projects/eo-sdk/core/package.json +1 -1
@@ -7,8 +7,6 @@ export class WorkItemHistoryEntry {
7
7
  * @param json The JSON object received from the backend. This will be used to construct the new work item history instance
8
8
  */
9
9
  constructor(json) {
10
- this.TYPE_DEADLINE_START = 'deadline_start';
11
- this.TYPE_DEADLINE_REACHED = 'deadline_reached';
12
10
  this.title = json.activityName;
13
11
  this.description = json.description;
14
12
  this.number = json.number;
@@ -25,7 +23,7 @@ export class WorkItemHistoryEntry {
25
23
  this.data = {
26
24
  periodFireTime: json.periodFireTime
27
25
  };
28
- this.type = this.TYPE_DEADLINE_START;
26
+ this.type = json.type;
29
27
  break;
30
28
  }
31
29
  // deadline reached
@@ -36,7 +34,7 @@ export class WorkItemHistoryEntry {
36
34
  this.data = {
37
35
  periodFireTime: json.periodFireTime
38
36
  };
39
- this.type = this.TYPE_DEADLINE_REACHED;
37
+ this.type = json.type;
40
38
  break;
41
39
  }
42
40
  }
@@ -53,4 +51,4 @@ export class WorkItemHistoryEntry {
53
51
  }
54
52
  }
55
53
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1pdGVtLWhpc3RvcnkubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL21vZGVsL3dvcmstaXRlbS1oaXN0b3J5Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFvQjtJQXVDL0I7OztPQUdHO0lBQ0gsWUFBWSxJQUFTO1FBekNyQix3QkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUN2QywwQkFBcUIsR0FBRyxrQkFBa0IsQ0FBQztRQTBDekMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUVmLGlEQUFpRDtRQUNqRCxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDakIsbUJBQW1CO1lBQ25CLEtBQUssZ0JBQWdCLENBQUMsQ0FBQztnQkFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUN2RCw0Q0FBNEM7Z0JBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHO29CQUNWLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztpQkFDcEMsQ0FBQztnQkFDRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztnQkFDckMsTUFBTTthQUNQO1lBQ0QsbUJBQW1CO1lBQ25CLEtBQUssZUFBZSxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDdkQsNENBQTRDO2dCQUM1QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztnQkFDeEIsSUFBSSxDQUFDLElBQUksR0FBRztvQkFDVixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7aUJBQ3BDLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUM7Z0JBQ3ZDLE1BQU07YUFDUDtTQUNGO1FBRUQsdURBQXVEO1FBQ3ZELGdDQUFnQztRQUNoQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQztZQUN0RixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUMsU0FBUyxLQUFLLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBQyxDQUFDLENBQUMsQ0FBQztTQUM1SDtRQUVELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUN6QjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T3JnVXNlcn0gZnJvbSAnLi9vcmcubW9kZWwnO1xyXG5cclxuLyoqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgV29ya0l0ZW1IaXN0b3J5UGVyZm9ybWVyIHtcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgbGFiZWw6IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIEhpc3RvcnkgZW50cnkgb2YgYSB3b3JrIGl0ZW0uXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgV29ya0l0ZW1IaXN0b3J5RW50cnkge1xyXG5cclxuICBUWVBFX0RFQURMSU5FX1NUQVJUID0gJ2RlYWRsaW5lX3N0YXJ0JztcclxuICBUWVBFX0RFQURMSU5FX1JFQUNIRUQgPSAnZGVhZGxpbmVfcmVhY2hlZCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRpdGxlIG9mIHRoZSBoaXN0b3J5IGVudHJ5XHJcbiAgICovXHJcbiAgdGl0bGU6IHN0cmluZztcclxuICAvKipcclxuICAgKiBTaG9ydCBkZXNjcmlwdGlvbiBvZiB0aGUgaGlzdG9yeSBlbnRyeVxyXG4gICAqL1xyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogVGhlIGRhdGUgKHRpbWUpIHRoaXMgZW50cnkgd2FzIGNyZWF0ZWRcclxuICAgKi9cclxuICB0aW1lOiBEYXRlO1xyXG4gIC8qKlxyXG4gICAqIEluZGV4IG9mIHRoZSBoaXN0b3J5IGVudHJ5IChtYXkgYmUgdXNlZCBmb3Igb3JkZXJpbmcpXHJcbiAgICovXHJcbiAgbnVtYmVyOiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogSGlzdG9yeSBlbnRyaWVzIHR5cGVcclxuICAgKi9cclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogVXNlciB0aGF0IHdhcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhpcyBlbnRyeSAoZS5nLiBieSBleGVjdXRpbmcgYW4gYWN0aW9uKVxyXG4gICAqL1xyXG4gIGVkaXRvcjogT3JnVXNlcjtcclxuICAvKipcclxuICAgKiBDb2xsZWN0aW9uIG9mIHBlcmZvcm1lcnMuIFBlcmZvcm1lcnMgYXJlIHVzZXJzLCBncm91cHMgb3Igcm9sZXMgdGhhdCByZWNlaXZlZCBhIHdvcmsgaXRlbSB0aGF0IGxldCB0byB0aGUgY3JlYXRpb24gb2YgYSBoaXN0b3J5IGVudHJ5LlxyXG4gICAqIElmIGZvciBleGFtcGxlIGEgd29yayBpdGVtIHdhcyBmb3J3YXJkZWQsIHRoZSBoaXN0b3J5IGVudHJ5IGNyZWF0ZWQgZm9yIHRoYXQgYWN0aW9uIHdpbGwgY29udGFpbiB0aGUgcmVjaXBpZW50cyBvZiB0aGUgZm9yd2FyZGVkIGFjdGlvbi5cclxuICAgKi9cclxuICBwZXJmb3JtZXI6IFdvcmtJdGVtSGlzdG9yeVBlcmZvcm1lcltdO1xyXG4gIC8qKlxyXG4gICAqIEFkZGl0aW9uYWwgZGF0YSBmb3Igc3BlY2lhbCBraW5kcyBvZiBlbnRyaWVzIGxpa2UgZXJyb3JzLCBwZXJzb25hbGl6YXRpb24sIHBlcmlvZHNcclxuICAgKi9cclxuICBkYXRhOiBhbnk7XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2VcclxuICAgKiBAcGFyYW0ganNvbiBUaGUgSlNPTiBvYmplY3QgcmVjZWl2ZWQgZnJvbSB0aGUgYmFja2VuZC4gVGhpcyB3aWxsIGJlIHVzZWQgdG8gY29uc3RydWN0IHRoZSBuZXcgd29yayBpdGVtIGhpc3RvcnkgaW5zdGFuY2VcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihqc29uOiBhbnkpIHtcclxuXHJcbiAgICB0aGlzLnRpdGxlID0ganNvbi5hY3Rpdml0eU5hbWU7XHJcbiAgICB0aGlzLmRlc2NyaXB0aW9uID0ganNvbi5kZXNjcmlwdGlvbjtcclxuICAgIHRoaXMubnVtYmVyID0ganNvbi5udW1iZXI7XHJcbiAgICB0aGlzLnRpbWUgPSBqc29uLnRpbWU7XHJcbiAgICB0aGlzLnR5cGUgPSBqc29uLnR5cGU7XHJcbiAgICB0aGlzLmRhdGEgPSB7fTtcclxuXHJcbiAgICAvLyBvdmVycmlkZXMgZm9yIHNwZWNpYWwgdHlwZXMgb2YgaGlzdG9yeSBlbnRyaWVzXHJcbiAgICBzd2l0Y2ggKGpzb24udHlwZSkge1xyXG4gICAgICAvLyBkZWFkbGluZSBzdGFydGVkXHJcbiAgICAgIGNhc2UgJ0RFQURMSU5FX1NUQVJUJzoge1xyXG4gICAgICAgIHRoaXMudGl0bGUgPSBgJHtqc29uLnBlcmlvZE5hbWV9OiAke2pzb24uZGVzY3JpcHRpb259YDtcclxuICAgICAgICAvLyBkZXNjcmlwdGlvbiB3aWxsIGJlIGdlbmVyYXRlZCBpbiB0ZW1wbGF0ZVxyXG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IHtcclxuICAgICAgICAgIHBlcmlvZEZpcmVUaW1lOiBqc29uLnBlcmlvZEZpcmVUaW1lXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLnR5cGUgPSB0aGlzLlRZUEVfREVBRExJTkVfU1RBUlQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgLy8gZGVhZGxpbmUgcmVhY2hlZFxyXG4gICAgICBjYXNlICdERUFETElORV9GSVJFJzoge1xyXG4gICAgICAgIHRoaXMudGl0bGUgPSBgJHtqc29uLnBlcmlvZE5hbWV9OiAke2pzb24uZGVzY3JpcHRpb259YDtcclxuICAgICAgICAvLyBkZXNjcmlwdGlvbiB3aWxsIGJlIGdlbmVyYXRlZCBpbiB0ZW1wbGF0ZVxyXG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IHtcclxuICAgICAgICAgIHBlcmlvZEZpcmVUaW1lOiBqc29uLnBlcmlvZEZpcmVUaW1lXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLnR5cGUgPSB0aGlzLlRZUEVfREVBRExJTkVfUkVBQ0hFRDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIGFyZSB0aGVyZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwZXJmb3JtZXJcclxuICAgIC8vIHRoYXQgY2F1c2VkIHRoZSBoaXN0b3J5IGVudHJ5XHJcbiAgICBpZiAoanNvbi5wZXJmb3JtZXIpIHtcclxuICAgICAgdGhpcy5wZXJmb3JtZXIgPSBbXTtcclxuICAgICAganNvbi5wZXJmb3JtZXIuZ3JvdXBzLmZvckVhY2goZyA9PiB0aGlzLnBlcmZvcm1lci5wdXNoKHt0eXBlOiAnZ3JvdXAnLCBsYWJlbDogZy5uYW1lfSkpO1xyXG4gICAgICBqc29uLnBlcmZvcm1lci5yb2xlcy5mb3JFYWNoKHIgPT4gdGhpcy5wZXJmb3JtZXIucHVzaCh7dHlwZTogJ3JvbGUnLCBsYWJlbDogci5uYW1lfSkpO1xyXG4gICAgICBqc29uLnBlcmZvcm1lci51c2Vycy5mb3JFYWNoKHUgPT4gdGhpcy5wZXJmb3JtZXIucHVzaCh7dHlwZTogJ3VzZXInLCBsYWJlbDogYCR7dS5sYXN0bmFtZX0sICR7dS5maXJzdG5hbWV9ICgke3UubmFtZX0pYH0pKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoanNvbi51c2VyKSB7XHJcbiAgICAgIHRoaXMuZWRpdG9yID0ganNvbi51c2VyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1pdGVtLWhpc3RvcnkubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL21vZGVsL3dvcmstaXRlbS1oaXN0b3J5Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFvQjtJQW9DL0I7OztPQUdHO0lBQ0gsWUFBWSxJQUFTO1FBRW5CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFFZixpREFBaUQ7UUFDakQsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2pCLG1CQUFtQjtZQUNuQixLQUFLLGdCQUFnQixDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDdkQsNENBQTRDO2dCQUM1QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztnQkFDeEIsSUFBSSxDQUFDLElBQUksR0FBRztvQkFDVixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7aUJBQ3BDLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUN0QixNQUFNO2FBQ1A7WUFDRCxtQkFBbUI7WUFDbkIsS0FBSyxlQUFlLENBQUMsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUN2RCw0Q0FBNEM7Z0JBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHO29CQUNWLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztpQkFDcEMsQ0FBQztnQkFDRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ3RCLE1BQU07YUFDUDtTQUNGO1FBRUQsdURBQXVEO1FBQ3ZELGdDQUFnQztRQUNoQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQztZQUN0RixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUMsU0FBUyxLQUFLLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBQyxDQUFDLENBQUMsQ0FBQztTQUM1SDtRQUVELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUN6QjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T3JnVXNlcn0gZnJvbSAnLi9vcmcubW9kZWwnO1xyXG5cclxuLyoqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgV29ya0l0ZW1IaXN0b3J5UGVyZm9ybWVyIHtcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgbGFiZWw6IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIEhpc3RvcnkgZW50cnkgb2YgYSB3b3JrIGl0ZW0uXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgV29ya0l0ZW1IaXN0b3J5RW50cnkge1xyXG5cclxuICAvKipcclxuICAgKiBUaXRsZSBvZiB0aGUgaGlzdG9yeSBlbnRyeVxyXG4gICAqL1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogU2hvcnQgZGVzY3JpcHRpb24gb2YgdGhlIGhpc3RvcnkgZW50cnlcclxuICAgKi9cclxuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIFRoZSBkYXRlICh0aW1lKSB0aGlzIGVudHJ5IHdhcyBjcmVhdGVkXHJcbiAgICovXHJcbiAgdGltZTogRGF0ZTtcclxuICAvKipcclxuICAgKiBJbmRleCBvZiB0aGUgaGlzdG9yeSBlbnRyeSAobWF5IGJlIHVzZWQgZm9yIG9yZGVyaW5nKVxyXG4gICAqL1xyXG4gIG51bWJlcjogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEhpc3RvcnkgZW50cmllcyB0eXBlXHJcbiAgICovXHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIFVzZXIgdGhhdCB3YXMgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIHRoaXMgZW50cnkgKGUuZy4gYnkgZXhlY3V0aW5nIGFuIGFjdGlvbilcclxuICAgKi9cclxuICBlZGl0b3I6IE9yZ1VzZXI7XHJcbiAgLyoqXHJcbiAgICogQ29sbGVjdGlvbiBvZiBwZXJmb3JtZXJzLiBQZXJmb3JtZXJzIGFyZSB1c2VycywgZ3JvdXBzIG9yIHJvbGVzIHRoYXQgcmVjZWl2ZWQgYSB3b3JrIGl0ZW0gdGhhdCBsZXQgdG8gdGhlIGNyZWF0aW9uIG9mIGEgaGlzdG9yeSBlbnRyeS5cclxuICAgKiBJZiBmb3IgZXhhbXBsZSBhIHdvcmsgaXRlbSB3YXMgZm9yd2FyZGVkLCB0aGUgaGlzdG9yeSBlbnRyeSBjcmVhdGVkIGZvciB0aGF0IGFjdGlvbiB3aWxsIGNvbnRhaW4gdGhlIHJlY2lwaWVudHMgb2YgdGhlIGZvcndhcmRlZCBhY3Rpb24uXHJcbiAgICovXHJcbiAgcGVyZm9ybWVyOiBXb3JrSXRlbUhpc3RvcnlQZXJmb3JtZXJbXTtcclxuICAvKipcclxuICAgKiBBZGRpdGlvbmFsIGRhdGEgZm9yIHNwZWNpYWwga2luZHMgb2YgZW50cmllcyBsaWtlIGVycm9ycywgcGVyc29uYWxpemF0aW9uLCBwZXJpb2RzXHJcbiAgICovXHJcbiAgZGF0YTogYW55O1xyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlXHJcbiAgICogQHBhcmFtIGpzb24gVGhlIEpTT04gb2JqZWN0IHJlY2VpdmVkIGZyb20gdGhlIGJhY2tlbmQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgbmV3IHdvcmsgaXRlbSBoaXN0b3J5IGluc3RhbmNlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoanNvbjogYW55KSB7XHJcblxyXG4gICAgdGhpcy50aXRsZSA9IGpzb24uYWN0aXZpdHlOYW1lO1xyXG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IGpzb24uZGVzY3JpcHRpb247XHJcbiAgICB0aGlzLm51bWJlciA9IGpzb24ubnVtYmVyO1xyXG4gICAgdGhpcy50aW1lID0ganNvbi50aW1lO1xyXG4gICAgdGhpcy50eXBlID0ganNvbi50eXBlO1xyXG4gICAgdGhpcy5kYXRhID0ge307XHJcblxyXG4gICAgLy8gb3ZlcnJpZGVzIGZvciBzcGVjaWFsIHR5cGVzIG9mIGhpc3RvcnkgZW50cmllc1xyXG4gICAgc3dpdGNoIChqc29uLnR5cGUpIHtcclxuICAgICAgLy8gZGVhZGxpbmUgc3RhcnRlZFxyXG4gICAgICBjYXNlICdERUFETElORV9TVEFSVCc6IHtcclxuICAgICAgICB0aGlzLnRpdGxlID0gYCR7anNvbi5wZXJpb2ROYW1lfTogJHtqc29uLmRlc2NyaXB0aW9ufWA7XHJcbiAgICAgICAgLy8gZGVzY3JpcHRpb24gd2lsbCBiZSBnZW5lcmF0ZWQgaW4gdGVtcGxhdGVcclxuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gbnVsbDtcclxuICAgICAgICB0aGlzLmRhdGEgPSB7XHJcbiAgICAgICAgICBwZXJpb2RGaXJlVGltZToganNvbi5wZXJpb2RGaXJlVGltZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy50eXBlID0ganNvbi50eXBlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGRlYWRsaW5lIHJlYWNoZWRcclxuICAgICAgY2FzZSAnREVBRExJTkVfRklSRSc6IHtcclxuICAgICAgICB0aGlzLnRpdGxlID0gYCR7anNvbi5wZXJpb2ROYW1lfTogJHtqc29uLmRlc2NyaXB0aW9ufWA7XHJcbiAgICAgICAgLy8gZGVzY3JpcHRpb24gd2lsbCBiZSBnZW5lcmF0ZWQgaW4gdGVtcGxhdGVcclxuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gbnVsbDtcclxuICAgICAgICB0aGlzLmRhdGEgPSB7XHJcbiAgICAgICAgICBwZXJpb2RGaXJlVGltZToganNvbi5wZXJpb2RGaXJlVGltZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy50eXBlID0ganNvbi50eXBlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYXJlIHRoZXJlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHBlcmZvcm1lclxyXG4gICAgLy8gdGhhdCBjYXVzZWQgdGhlIGhpc3RvcnkgZW50cnlcclxuICAgIGlmIChqc29uLnBlcmZvcm1lcikge1xyXG4gICAgICB0aGlzLnBlcmZvcm1lciA9IFtdO1xyXG4gICAgICBqc29uLnBlcmZvcm1lci5ncm91cHMuZm9yRWFjaChnID0+IHRoaXMucGVyZm9ybWVyLnB1c2goe3R5cGU6ICdncm91cCcsIGxhYmVsOiBnLm5hbWV9KSk7XHJcbiAgICAgIGpzb24ucGVyZm9ybWVyLnJvbGVzLmZvckVhY2gociA9PiB0aGlzLnBlcmZvcm1lci5wdXNoKHt0eXBlOiAncm9sZScsIGxhYmVsOiByLm5hbWV9KSk7XHJcbiAgICAgIGpzb24ucGVyZm9ybWVyLnVzZXJzLmZvckVhY2godSA9PiB0aGlzLnBlcmZvcm1lci5wdXNoKHt0eXBlOiAndXNlcicsIGxhYmVsOiBgJHt1Lmxhc3RuYW1lfSwgJHt1LmZpcnN0bmFtZX0gKCR7dS5uYW1lfSlgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChqc29uLnVzZXIpIHtcclxuICAgICAgdGhpcy5lZGl0b3IgPSBqc29uLnVzZXI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { of as observableOf } from 'rxjs';
2
- import { filter, tap } from 'rxjs/operators';
2
+ import { map, tap } from 'rxjs/operators';
3
3
  import { Injectable } from '@angular/core';
4
4
  import { HttpClient, HttpHeaders } from '@angular/common/http';
5
5
  import { Config } from '../config/config.service';
@@ -19,7 +19,7 @@ export class BackendService {
19
19
  this.http = http;
20
20
  this.logger = logger;
21
21
  this.config = config;
22
- this.gridDataFilter = filter((v) => !v.__removed);
22
+ this.gridDataFilter = map((data) => data === null || data === void 0 ? void 0 : data.filter((v) => !v.__removed));
23
23
  this.cache = new Map();
24
24
  this.temp = new Map();
25
25
  this.headers = this.setDefaultHeaders();
@@ -314,4 +314,4 @@ BackendService.ctorParameters = () => [
314
314
  { type: Logger },
315
315
  { type: Config }
316
316
  ];
317
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxFQUFFLElBQUksWUFBWSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBRXBELE9BQU8sRUFBQyxNQUFNLEVBQU8sR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsVUFBVSxFQUFFLFdBQVcsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBRTNFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRCxPQUFPLEtBQUssU0FBUyxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFJeEMsT0FBTyxFQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQXlCckQ7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyxjQUFjO0lBU3pCOztPQUVHO0lBQ0gsWUFBb0IsSUFBZ0IsRUFDaEIsTUFBYyxFQUNkLE1BQWM7UUFGZCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBWjNCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUdqRCxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQztRQUMvQixTQUFJLEdBQUcsSUFBSSxHQUFHLEVBQTJCLENBQUM7UUFDMUMsWUFBTyxHQUFHLElBQUksQ0FB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RixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssT0FBTyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUNqRyxDQUFDO0lBR0Q7Ozs7T0FJRztJQUNLLGlCQUFpQjtRQUN2QixPQUFPLElBQUksV0FBVyxDQUFDO1lBQ3JCLGNBQWMsRUFBRSxrQkFBa0I7WUFDbEMsb0JBQW9CLEVBQUUsT0FBTztZQUM3QixzQkFBc0IsRUFBRSxPQUFPO1lBQy9CLGlCQUFpQixFQUFFLE1BQU07U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBelVGLFVBQVU7OztZQXZDSCxVQUFVO1lBS1YsTUFBTTtZQUhOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge29mIGFzIG9ic2VydmFibGVPZiwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQge2ZpbHRlciwgbWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7SUh0dHBPcHRpb25zfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UvaHR0cC1vcHRpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcvY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQge0Rtc09iamVjdH0gZnJvbSAnLi4vLi4vbW9kZWwvZG1zLW9iamVjdC5tb2RlbCc7XHJcbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHtMb2dnZXJ9IGZyb20gJy4uL2xvZ2dlci9sb2dnZXInO1xyXG5pbXBvcnQge0F1dGhQcm9maWxlfSBmcm9tICcuLi9hdXRoL2F1dGgtcHJvZmlsZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0h0dHBQYXJhbXN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtVdGlsc30gZnJvbSAnLi4vLi4vdXRpbC91dGlscyc7XHJcbmltcG9ydCB7ZmluYWxpemUsIHNoYXJlUmVwbGF5fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG4vKipcclxuICogSHR0cE9wdGlvbnMgZm9yIGh0dHAgcmVxdWVzdFxyXG4gKiBAcGFyYW0gb2JzZXJ2ZTogJ2JvZHknIHwgJ2V2ZW50cycgfCAncmVzcG9uc2UnXHJcbiAqIEBwYXJhbSByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgfCAnYmxvYicgfCAnanNvbicgfCAndGV4dCdcclxuICovXHJcbiBleHBvcnQgaW50ZXJmYWNlIEh0dHBPcHRpb25zIHtcclxuICBoZWFkZXJzPzpcclxuICAgIHwgSHR0cEhlYWRlcnNcclxuICAgIHwge1xyXG4gICAgICAgIFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gICAgICB9O1xyXG4gIG9ic2VydmU/OiBhbnk7XHJcbiAgcGFyYW1zPzpcclxuICAgIHwgSHR0cFBhcmFtc1xyXG4gICAgfCB7XHJcbiAgICAgICAgW3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICAgICAgfTtcclxuICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW47XHJcbiAgcmVzcG9uc2VUeXBlPzogYW55O1xyXG4gIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogYEJhY2tlbmRTZXJ2aWNlYCBlbmNhcHN1bGF0ZXMgdGhlIGNvbW11bmljYXRpb24gd2l0aCB0aGUgeXV1dmlzPHN1cD4mcmVnOzwvc3VwPiBSQUQgUkVTVCBlbmRwb2ludHMuXHJcbiAqXHJcbiAqIEFzIHl1dXZpczxzdXA+JnJlZzs8L3N1cD4gUkFEIHByb3ZpZGVzIGRpZmZlcmVudCBzZXJ2aWNlcywgdGhpcyBzZXJ2aWNlIGlzIGFsc28gY2FwYWJsZSBvZiBwcm92aWRpbmcgdGhlIGJhc2UgVVJJcyBmb3IgdGhvc2Ugc2VydmljZXMuXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBCYWNrZW5kU2VydmljZSB7XHJcblxyXG4gIHB1YmxpYyBncmlkRGF0YUZpbHRlciA9IGZpbHRlcigodjogYW55KSA9PiAhdi5fX3JlbW92ZWQpO1xyXG5cclxuICBwcml2YXRlIGF1dGhQcm9maWxlOiBBdXRoUHJvZmlsZTtcclxuICBwcml2YXRlIGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcclxuICBwcml2YXRlIHRlbXAgPSBuZXcgTWFwPHN0cmluZywgT2JzZXJ2YWJsZTxhbnk+PigpO1xyXG4gIHByaXZhdGUgaGVhZGVycyA9IHRoaXMuc2V0RGVmYXVsdEhlYWRlcnMoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICAgICAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgY29uZmlnOiBDb25maWcpIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGRlZmF1bHQgcHJvZmlsZSBpcyBzdXBwb3NlZCB0byB1c2UgTlRMTVxyXG4gICAgICogQHR5cGUge2hvc3Q6IHN0cmluZzsgbnRsbTogYm9vbGVhbn1cclxuICAgICAqL1xyXG4gICAgdGhpcy5hdXRoUHJvZmlsZSA9IHtcclxuICAgICAgaG9zdDogJycsXHJcbiAgICAgIG50bG06IHRydWVcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgcHVibGljIHNldEF1dGhQcm9maWxlKHByb2ZpbGU/OiBBdXRoUHJvZmlsZSkge1xyXG4gICAgaWYgKHByb2ZpbGUpIHtcclxuICAgICAgdGhpcy5oZWFkZXJzID0gdGhpcy5zZXREZWZhdWx0SGVhZGVycygpO1xyXG4gICAgICB0aGlzLmF1dGhQcm9maWxlID0gcHJvZmlsZTtcclxuICAgICAgaWYgKHRoaXMuYXV0aFByb2ZpbGUuYXV0aCkge1xyXG4gICAgICAgIC8vIHRoaXMuc2V0SGVhZGVyKCdBdXRob3JpemF0aW9uJywgdGhpcy5hdXRoUHJvZmlsZS5hdXRoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmhlYWRlcnMuZGVsZXRlKCdBdXRob3JpemF0aW9uJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSBuZXcgaGVhZGVyLlxyXG4gICAqIEBwYXJhbSBrZXkgVGhlIGhlYWRlcnMgbmFtZVxyXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWVcclxuICAgKi9cclxuICBwdWJsaWMgc2V0SGVhZGVyKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuaGVhZGVycyA9IHRoaXMuaGVhZGVycy5zZXQoa2V5LCB2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgaGVhZGVyc1xyXG4gICAqIEByZXR1cm5zIFRoZSBgSHR0cEhlYWRlcnNgIHRoYXQgYXJlIGN1cnJlbnRseSBzZXQgdXBcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0SGVhZGVycygpOiBIdHRwSGVhZGVycyB7XHJcbiAgICByZXR1cm4gdGhpcy5oZWFkZXJzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRIdHRwT3B0aW9ucyhyZXF1ZXN0T3B0aW9ucz86IEh0dHBPcHRpb25zKTogSHR0cE9wdGlvbnMge1xyXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe2hlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpfSwgcmVxdWVzdE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgYmFzZSBVUkkgZm9yIHRoZSBETVMtU2VydmljZSBlbmRwb2ludFxyXG4gICAqIEByZXR1cm5zIEJhc2UgVVJJXHJcbiAgICovXHJcbiAgcHVibGljIGdldFNlcnZpY2VCYXNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0SG9zdCgpICsgdGhpcy5jb25maWcuZ2V0VXJpKCdzZXJ2aWNlQmFzZScpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgYmFzZSBVUkkgZm9yIHRoZSBTZWFyY2gtU2VydmljZSBlbmRwb2ludFxyXG4gICAqIEByZXR1cm5zIEJhc2UgVVJJXHJcbiAgICovXHJcbiAgcHVibGljIGdldFNlYXJjaEJhc2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRIb3N0KCkgKyB0aGlzLmNvbmZpZy5nZXRVcmkoJ3NlYXJjaEJhc2UnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGJhc2UgVVJJIGZvciB0aGUgQ29udGV4dC1TZXJ2aWNlIGVuZHBvaW50XHJcbiAgICogQHJldHVybnMgQmFzZSBVUklcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0Q29udGV4dEJhc2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRIb3N0KCkgKyB0aGlzLmNvbmZpZy5nZXRVcmkoJ2NvbnRleHRCYXNlJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBiYXNlIFVSSSBmb3IgdGhlIEluYm94LVNlcnZpY2UgZW5kcG9pbnRcclxuICAgKiBAcmV0dXJucyBCYXNlIFVSSVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRJbmJveEJhc2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRIb3N0KCkgKyB0aGlzLmNvbmZpZy5nZXRVcmkoJ2luYm94QmFzZScpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgYmFzZSBVUkkgZm9yIHRoZSBCUE0tU2VydmljZSBlbmRwb2ludFxyXG4gICAqIEByZXR1cm5zIEJhc2UgVVJJXHJcbiAgICovXHJcbiAgcHVibGljIGdldEJwbUJhc2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRIb3N0KCkgKyB0aGlzLmNvbmZpZy5nZXRVcmkoJ2JwbUJhc2UnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGJhc2UgVVJJIGZvciB0aGUgQWdlbnQtU2VydmljZSBlbmRwb2ludFxyXG4gICAqIEByZXR1cm5zIEJhc2UgVVJJXHJcbiAgICovXHJcbiAgcHVibGljIGdldEFnZW50QmFzZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmdldEhvc3QoKSArIHRoaXMuY29uZmlnLmdldFVyaSgnYWdlbnRCYXNlJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBiYXNlIFVSSSBmb3IgdGhlIFN0YXR1cy1TZXJ2aWNlIGVuZHBvaW50XHJcbiAgICogQHJldHVybnMgQmFzZSBVUklcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0U3RhdHVzQmFzZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmdldEhvc3QoKSArIHRoaXMuY29uZmlnLmdldFVyaSgnc3RhdHVzQmFzZScpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRJY29uQmFzZShpZDogc3RyaW5nID0gJycpIHtcclxuICAgIHJldHVybiB0aGlzLmdldFNlcnZpY2VCYXNlKCkgKyAnL3VpL2ljb24vJyArIGlkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRIb3N0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYXV0aFByb2ZpbGUuaG9zdCB8fCAnJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdyYXBwZWQgSFRUUCBHRVQgbWV0aG9kXHJcbiAgICogQHBhcmFtIHVyaSBUaGUgUkVTVCBVUkkgdG8gYmUgcXVlcmllZFxyXG4gICAqIEBwYXJhbSBiYXNlIFRoZSBCYXNlIFVSSSAoYmFja2VuZCBzZXJ2aWNlKSB0byBiZSB1c2VkXHJcbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEFkZGl0aW9uYWwgcmVxdWVzdCBvcHRpb25zXHJcbiAgICogQHJldHVybnMgVGhlIGRhdGEgcmV0cmlldmVkIGZyb20gdGhlIGdpdmVuIGVuZHBvaW50XHJcbiAgICovXHJcbiAgcHVibGljIGdldCh1cmk6IHN0cmluZywgYmFzZT86IHN0cmluZywgcmVxdWVzdE9wdGlvbnM/OiBIdHRwT3B0aW9ucyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCgoYmFzZSB8fCB0aGlzLmdldFNlcnZpY2VCYXNlKCkpICsgdXJpLCB0aGlzLmdldEh0dHBPcHRpb25zKHJlcXVlc3RPcHRpb25zKSk7XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIFdyYXBwZWQgSFRUUCBQVVQgbWV0aG9kXHJcbiAgICogQHBhcmFtIHVyaSBUaGUgdGFyZ2V0IFJFU1QgVVJJXHJcbiAgICogQHBhcmFtIGRhdGEgRGF0YSB0byBiZSAncG9zdGVkJ1xyXG4gICAqIEBwYXJhbSBiYXNlIFRoZSBCYXNlIFVSSSAoYmFja2VuZCBzZXJ2aWNlKSB0byBiZSB1c2VkXHJcbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEFkZGl0aW9uYWwgcmVxdWVzdCBvcHRpb25zXHJcbiAgICogQHJldHVybnMgVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgdGFyZ2V0IFBVVCBlbmRwb2ludFxyXG4gICAqL1xyXG4gIHB1YmxpYyBwdXQodXJpOiBzdHJpbmcsIGRhdGE/OiBhbnksIGJhc2U/OiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoKGJhc2UgfHwgdGhpcy5nZXRTZXJ2aWNlQmFzZSgpKSArIHVyaSwgZGF0YSwgdGhpcy5nZXRIdHRwT3B0aW9ucyhyZXF1ZXN0T3B0aW9ucykpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRKc29uKHVyaTogc3RyaW5nLCBiYXNlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmdldCh1cmksIGJhc2UgfHwgdGhpcy5nZXRTZXJ2aWNlQmFzZSgpLCB7cmVzcG9uc2VUeXBlOiAnanNvbid9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdyYXBwZWQgSFRUUCBQT1NUIG1ldGhvZFxyXG4gICAqIEBwYXJhbSB1cmkgVGhlIHRhcmdldCBSRVNUIFVSSVxyXG4gICAqIEBwYXJhbSBkYXRhIERhdGEgdG8gYmUgJ3Bvc3RlZCdcclxuICAgKiBAcGFyYW0gYmFzZSBUaGUgQmFzZSBVUkkgKGJhY2tlbmQgc2VydmljZSkgdG8gYmUgdXNlZFxyXG4gICAqIEBwYXJhbSByZXF1ZXN0T3B0aW9ucyBBZGRpdGlvbmFsIHJlcXVlc3Qgb3B0aW9uc1xyXG4gICAqIEByZXR1cm5zIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHRhcmdldCBQT1NUIGVuZHBvaW50XHJcbiAgICovXHJcbiAgcHVibGljIHBvc3QodXJpOiBzdHJpbmcsIGRhdGE/LCBiYXNlPzogc3RyaW5nLCByZXF1ZXN0T3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IGJhc2VVcmkgPSBiYXNlIHx8IHRoaXMuZ2V0U2VydmljZUJhc2UoKTtcclxuICAgIGNvbnN0IHBheWxvYWQgPSBkYXRhID8gSlNPTi5zdHJpbmdpZnkoZGF0YSkgOiAnJztcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHtiYXNlVXJpfSR7dXJpfWAsIHBheWxvYWQsIHRoaXMuZ2V0SHR0cE9wdGlvbnMocmVxdWVzdE9wdGlvbnMpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBlcmZvcm1zIGEgbXVsdGlwYXJ0IGZvcm0gZGF0YSBQT1NUIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIHVyaSBUaGUgdGFyZ2V0IFJFU1QgVVJJXHJcbiAgICogQHBhcmFtIGZvcm1EYXRhIEZvcm1EYXRhIHRvIGJlICdwb3N0ZWQnXHJcbiAgICogQHBhcmFtIGJhc2UgVGhlIEJhc2UgVVJJIChiYWNrZW5kIHNlcnZpY2UpIHRvIGJlIHVzZWRcclxuICAgKiBAcGFyYW0gcmVxdWVzdE9wdGlvbnMgQWRkaXRpb25hbCByZXF1ZXN0IG9wdGlvbnNcclxuICAgKiBAcmV0dXJucyBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSB0YXJnZXQgUE9TVCBlbmRwb2ludFxyXG4gICAqL1xyXG4gIHB1YmxpYyBwb3N0TXVsdGlQYXJ0KHVyaTogc3RyaW5nLCBmb3JtRGF0YTogRm9ybURhdGEsIGJhc2U/OiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgYmFzZVVyaSA9IGJhc2UgfHwgdGhpcy5nZXRTZXJ2aWNlQmFzZSgpO1xyXG4gICAgY29uc3QgaGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVycygpO1xyXG4gICAgaGVhZGVycy5kZWxldGUoJ0NvbnRlbnQtVHlwZScpO1xyXG4gICAgY29uc3QgcmVxT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe2hlYWRlcnM6IGhlYWRlcnN9LCByZXF1ZXN0T3B0aW9ucyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7YmFzZVVyaX0ke3VyaX1gLCBmb3JtRGF0YSwgcmVxT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXcmFwcGVkIEhUVFAgREVMRVRFIG1ldGhvZFxyXG4gICAqIEBwYXJhbSB1cmkgVGhlIHRhcmdldCBSRVNUIFVSSVxyXG4gICAqIEBwYXJhbSBiYXNlIFRoZSBCYXNlIFVSSSAoYmFja2VuZCBzZXJ2aWNlKSB0byBiZSB1c2VkXHJcbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEFkZGl0aW9uYWwgcmVxdWVzdCBvcHRpb25zXHJcbiAgICogQHJldHVybnMgVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgdGFyZ2V0IERFTEVURSBlbmRwb2ludFxyXG4gICAqL1xyXG4gIHB1YmxpYyBkZWwodXJpOiBzdHJpbmcsIGJhc2U/OiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoKGJhc2UgfHwgdGhpcy5nZXRTZXJ2aWNlQmFzZSgpKSArIHVyaSwgdGhpcy5nZXRIdHRwT3B0aW9ucyhyZXF1ZXN0T3B0aW9ucykpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqIFNvZnQgdXBkYXRlIGZvciBsaXN0cyAtIGVuYWJsZXMgZ3JpZCB0byBoYW5kbGUgYWxsIGNoYW5nZXNcclxuICAgKiB0byBhZGQgbmV3IC0gb25seSBpdGVtIHNob3VsZCBiZSBzcGVjaWZpZWRcclxuICAgKiB0byByZW1vdmUgLSBvbmx5IGlkIHNob3VsZCBiZSBzcGVjaWZpZWRcclxuICAgKiB0byB1cGRhdGUgLSBib3RoIHBhcmFtcyBzaG91bGQgYmUgc3BlY2lmaWVkXHJcbiAgICpcclxuICAgKiBAcGFyYW0gYW55W10gbGlzdCBPcmlnaW5hbCBsaXN0IG9mIGl0ZW1zXHJcbiAgICogQHBhcmFtIGlkPzogc3RyaW5nOyBpdGVtPzogYW55IGRhdGFbXVxyXG4gICAqIEByZXR1cm5zIGFueVtdXHJcbiAgICovXHJcbiAgcHVibGljIHVwZGF0ZShsaXN0OiBhbnlbXSwgZGF0YTogeyBpZD86IHN0cmluZywgaXRlbT86IGFueSB9W10pIHtcclxuICAgIGRhdGEuZm9yRWFjaCgoe2lkLCBpdGVtfSkgPT4ge1xyXG4gICAgICBpZiAoaWQpIHtcclxuICAgICAgICBjb25zdCBfaXRlbSA9IGxpc3QuZmluZChsID0+IGwuaWQgPT09IGlkKTtcclxuICAgICAgICBPYmplY3QuYXNzaWduKF9pdGVtLCBpdGVtLCBpdGVtID8ge19fdXBkYXRlZDogdHJ1ZX0gOiB7X19yZW1vdmVkOiB0cnVlfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaXRlbSkge1xyXG4gICAgICAgIGxpc3QudW5zaGlmdChPYmplY3QuYXNzaWduKGl0ZW0sIHtfX2FkZGVkOiB0cnVlfSkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBsaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqIENhY2hlIGZvciBzbWFsbCByZXF1ZXN0cyBsaWtlIGljb25zIGFuZCBjb25maWdzXHJcbiAgICpcclxuICAgKiBAcGFyYW0gc3RyaW5nIHVyaVxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRWaWFDYWNoZSh1cmk6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBpZiAodGhpcy5jYWNoZS5oYXModXJpKSkge1xyXG4gICAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKHRoaXMuY2FjaGUuZ2V0KHVyaSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0VmlhVGVtcENhY2hlKHVyaSwgKCkgPT4gdGhpcy5odHRwLmdldCh1cmksIHtyZXNwb25zZVR5cGU6ICd0ZXh0J30pLnBpcGUoXHJcbiAgICAgICAgdGFwKHRleHQgPT4gdGhpcy5jYWNoZS5zZXQodXJpLCB0ZXh0KSkpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKiBUZW1wb3JhcnkgQ2FjaGUgZm9yIG11bHRpcGxlIGlkZW50aWNhbCByZXF1ZXN0c1xyXG4gICAqXHJcbiAgICogQHBhcmFtIHN0cmluZyBpZFxyXG4gICAqIEBwYXJhbSBGdW5jdGlvbiByZXF1ZXN0XHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XHJcbiAgICovXHJcbiAgcHVibGljIGdldFZpYVRlbXBDYWNoZShpZDogc3RyaW5nLCByZXF1ZXN0PzogRnVuY3Rpb24pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgaWYgKHRoaXMudGVtcC5oYXMoaWQpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRlbXAuZ2V0KGlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHJlc3AgPSAocmVxdWVzdCA/IHJlcXVlc3QoKSA6IHRoaXMuZ2V0KGlkKSkucGlwZShcclxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLnRlbXAuZGVsZXRlKGlkKSksXHJcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcclxuICAgICAgKTtcclxuICAgICAgdGhpcy50ZW1wLnNldChpZCwgcmVzcCk7XHJcbiAgICAgIHJldHVybiByZXNwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRG93bmxvYWQgdGhlIGNvbnRlbnQgb2YgZG1zIG9iamVjdHMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gRG1zT2JqZWN0W10gZG1zT2JqZWN0cyBBcnJheSBvZiBkbXMgb2JqZWN0cyB0byBiZSBkb3dubG9hZGVkXHJcbiAgICogQHBhcmFtIFwiUERGXCIgfCBcIlRJRkZcIiB8IFwiVEVYVFwiIHwgXCJKUEVHXCIgcmVuZGl0aW9uIFRoZSB0eXBlIG9mIHJlbmRpdGlvbiB0byBiZSBkb3dubG9hZGVkLiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3JpZ2luYWwgY29udGVudCB3aWxsIGJlIGRvd25sb2FkZWQuXHJcbiAgICogUG9zc2libGUgcmVuZGl0aW9ucyBhcmUgYFBERmAsIGBUSUZGYCwgYFRFWFRgLCBgSlBFR2AuXHJcbiAgICovXHJcbiAgcHVibGljIGRvd25sb2FkQ29udGVudChkbXNPYmplY3RzOiBEbXNPYmplY3RbXSwgcmVuZGl0aW9uPzogJ1BERicgfCAnVElGRicgfCAnVEVYVCcgfCAnSlBFRycsIGZpbGVOYW1lV2l0aFZlcnNpb25OdW1iZXI/OiBib29sZWFuKSB7XHJcblxyXG4gICAgZG1zT2JqZWN0cy5mb3JFYWNoKGRtc09iamVjdCA9PiB7XHJcbiAgICAgIGlmIChkbXNPYmplY3QuY29udGVudCkge1xyXG5cclxuICAgICAgICBsZXQgdXJpID0gYCR7dGhpcy5nZXRTZXJ2aWNlQmFzZSgpfS9kbXMvJHtkbXNPYmplY3QuY29udGVudC5pZH0vY29udGVudD90eXBlPSR7ZG1zT2JqZWN0LmNvbnRlbnQudHlwZX0mYXNkb3dubG9hZD10cnVlYDtcclxuICAgICAgICBpZiAocmVuZGl0aW9uKSB7XHJcbiAgICAgICAgICB1cmkgKz0gYCZyZW5kaXRpb249JHtyZW5kaXRpb259Jl9pbnRlbnQ9RE9XTkxPQURfJHtyZW5kaXRpb259YDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdXJpICs9ICcmX2ludGVudD1ET1dOTE9BRCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkbXNPYmplY3QuY29udGVudC5pZCA9PT0gZG1zT2JqZWN0LmlkKSB7XHJcbiAgICAgICAgICB1cmkgKz0gYCZ2ZXJzaW9uPSR7ZG1zT2JqZWN0LnZlcnNpb259YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kb3dubG9hZCh1cmksIGZpbGVOYW1lV2l0aFZlcnNpb25OdW1iZXIgPyBkbXNPYmplY3QudmVyc2lvbiA6IG51bGwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdUaGUgcHJvdmlkZWQgZG1zIG9iamVjdCBoYXMgbm8gY29udGVudCcsIGRtc09iamVjdCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRvd25sb2FkKHVyaTogc3RyaW5nLCB2ZXJzaW9uPzogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmh0dHAuZ2V0KHVyaSwge29ic2VydmU6ICdyZXNwb25zZScsIHJlc3BvbnNlVHlwZTogJ2Jsb2InfSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhcclxuICAgICAgICAgIHJlcy5ib2R5LFxyXG4gICAgICAgICAgdGhpcy5nZXRGaWxlTmFtZUZyb21IdHRwUmVzcG9uc2UocmVzLCB2ZXJzaW9uKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGaWxlTmFtZUZyb21IdHRwUmVzcG9uc2UocmVzOiBIdHRwUmVzcG9uc2U8YW55PiwgdmVyc2lvbjogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBjb250ZW50RGlzcG9zaXRpb25IZWFkZXIgPSByZXMuaGVhZGVycy5nZXQoJ0NvbnRlbnQtRGlzcG9zaXRpb24nKSB8fCAnJztcclxuICAgIGNvbnN0IGVuY29kZWRGaWxlTmFtZU1hdGNoUmVzdWx0ID0gY29udGVudERpc3Bvc2l0aW9uSGVhZGVyLm1hdGNoKCdmaWxlbmFtZVxcXFwqPVVURi04XFwnXFwnKC4qKScpXHJcbiAgICAgIHx8IGNvbnRlbnREaXNwb3NpdGlvbkhlYWRlci5tYXRjaCgnZmlsZW5hbWU9XFxcIiguKilcXFwiJyk7XHJcbiAgICBjb25zdCBlbmNvZGVkRmlsZU5hbWUgPSBlbmNvZGVkRmlsZU5hbWVNYXRjaFJlc3VsdCA/IGVuY29kZWRGaWxlTmFtZU1hdGNoUmVzdWx0WzFdIDogbnVsbDtcclxuICAgIGNvbnN0IGZpbGVuYW1lID0gZW5jb2RlZEZpbGVOYW1lID8gZGVjb2RlVVJJQ29tcG9uZW50KGVuY29kZWRGaWxlTmFtZSkgOiAndW5rbm93bic7XHJcbiAgICBjb25zdCBpbmRleCA9ICF+ZmlsZW5hbWUubGFzdEluZGV4T2YoJy4nKSA/IGZpbGVuYW1lLmxlbmd0aCA6IGZpbGVuYW1lLmxhc3RJbmRleE9mKCcuJyk7XHJcbiAgICByZXR1cm4gIXZlcnNpb24gPyBmaWxlbmFtZSA6IGAke2ZpbGVuYW1lLnNsaWNlKDAsIGluZGV4KX1fdiR7dmVyc2lvbn0ke2ZpbGVuYW1lLnNsaWNlKGluZGV4KX1gO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHRlciBmb3IgdGhlIEhUVFAgSGVhZGVyc1xyXG4gICAqXHJcbiAgICogQHJldHVybnMgSHR0cEhlYWRlcnNcclxuICAgKi9cclxuICBwcml2YXRlIHNldERlZmF1bHRIZWFkZXJzKCk6IEh0dHBIZWFkZXJzIHtcclxuICAgIHJldHVybiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAnWC1vcy1pbmNsdWRlLWxpbmtzJzogJ2ZhbHNlJyxcclxuICAgICAgJ1gtb3MtaW5jbHVkZS1hY3Rpb25zJzogJ2ZhbHNlJyxcclxuICAgICAgJ1gtb3Mtc3luYy1pbmRleCc6ICd0cnVlJ1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
317
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxFQUFFLElBQUksWUFBWSxFQUF1QyxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBRSxXQUFXLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFaEQsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBR3hDLE9BQU8sRUFBQyxRQUFRLEVBQUUsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUF5QnJEOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sY0FBYztJQVN6Qjs7T0FFRztJQUNILFlBQW9CLElBQWdCLEVBQ2hCLE1BQWMsRUFDZCxNQUFjO1FBRmQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVozQixtQkFBYyxHQUFrQyxHQUFHLENBQUMsQ0FBQyxJQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxNQUFNLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFHNUcsVUFBSyxHQUFHLElBQUksR0FB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QUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEYsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLE9BQU8sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDakcsQ0FBQztJQUdEOzs7O09BSUc7SUFDSyxpQkFBaUI7UUFDdkIsT0FBTyxJQUFJLFdBQVcsQ0FBQztZQUNyQixjQUFjLEVBQUUsa0JBQWtCO1lBQ2xDLG9CQUFvQixFQUFFLE9BQU87WUFDN0Isc0JBQXNCLEVBQUUsT0FBTztZQUMvQixpQkFBaUIsRUFBRSxNQUFNO1NBQzFCLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQXpVRixVQUFVOzs7WUFyQ0gsVUFBVTtZQUlWLE1BQU07WUFITixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtvZiBhcyBvYnNlcnZhYmxlT2YsIE9ic2VydmFibGUsIE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7bWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcvY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQge0Rtc09iamVjdH0gZnJvbSAnLi4vLi4vbW9kZWwvZG1zLW9iamVjdC5tb2RlbCc7XHJcbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHtMb2dnZXJ9IGZyb20gJy4uL2xvZ2dlci9sb2dnZXInO1xyXG5pbXBvcnQge0F1dGhQcm9maWxlfSBmcm9tICcuLi9hdXRoL2F1dGgtcHJvZmlsZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0h0dHBQYXJhbXN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtmaW5hbGl6ZSwgc2hhcmVSZXBsYXl9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbi8qKlxyXG4gKiBIdHRwT3B0aW9ucyBmb3IgaHR0cCByZXF1ZXN0XHJcbiAqIEBwYXJhbSBvYnNlcnZlOiAnYm9keScgfCAnZXZlbnRzJyB8ICdyZXNwb25zZSdcclxuICogQHBhcmFtIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyB8ICdibG9iJyB8ICdqc29uJyB8ICd0ZXh0J1xyXG4gKi9cclxuIGV4cG9ydCBpbnRlcmZhY2UgSHR0cE9wdGlvbnMge1xyXG4gIGhlYWRlcnM/OlxyXG4gICAgfCBIdHRwSGVhZGVyc1xyXG4gICAgfCB7XHJcbiAgICAgICAgW2hlYWRlcjogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgICAgIH07XHJcbiAgb2JzZXJ2ZT86IGFueTtcclxuICBwYXJhbXM/OlxyXG4gICAgfCBIdHRwUGFyYW1zXHJcbiAgICB8IHtcclxuICAgICAgICBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gICAgICB9O1xyXG4gIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbjtcclxuICByZXNwb25zZVR5cGU/OiBhbnk7XHJcbiAgd2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBgQmFja2VuZFNlcnZpY2VgIGVuY2Fwc3VsYXRlcyB0aGUgY29tbXVuaWNhdGlvbiB3aXRoIHRoZSB5dXV2aXM8c3VwPiZyZWc7PC9zdXA+IFJBRCBSRVNUIGVuZHBvaW50cy5cclxuICpcclxuICogQXMgeXV1dmlzPHN1cD4mcmVnOzwvc3VwPiBSQUQgcHJvdmlkZXMgZGlmZmVyZW50IHNlcnZpY2VzLCB0aGlzIHNlcnZpY2UgaXMgYWxzbyBjYXBhYmxlIG9mIHByb3ZpZGluZyB0aGUgYmFzZSBVUklzIGZvciB0aG9zZSBzZXJ2aWNlcy5cclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEJhY2tlbmRTZXJ2aWNlIHtcclxuXHJcbiAgcHVibGljIGdyaWREYXRhRmlsdGVyOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248YW55PiA9IG1hcCgoZGF0YTogYW55W10pID0+IGRhdGE/LmZpbHRlcigodjogYW55KSA9PiAhdi5fX3JlbW92ZWQpKTtcclxuXHJcbiAgcHJpdmF0ZSBhdXRoUHJvZmlsZTogQXV0aFByb2ZpbGU7XHJcbiAgcHJpdmF0ZSBjYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XHJcbiAgcHJpdmF0ZSB0ZW1wID0gbmV3IE1hcDxzdHJpbmcsIE9ic2VydmFibGU8YW55Pj4oKTtcclxuICBwcml2YXRlIGhlYWRlcnMgPSB0aGlzLnNldERlZmF1bHRIZWFkZXJzKCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlcixcclxuICAgICAgICAgICAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnKSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBkZWZhdWx0IHByb2ZpbGUgaXMgc3VwcG9zZWQgdG8gdXNlIE5UTE1cclxuICAgICAqIEB0eXBlIHtob3N0OiBzdHJpbmc7IG50bG06IGJvb2xlYW59XHJcbiAgICAgKi9cclxuICAgIHRoaXMuYXV0aFByb2ZpbGUgPSB7XHJcbiAgICAgIGhvc3Q6ICcnLFxyXG4gICAgICBudGxtOiB0cnVlXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRBdXRoUHJvZmlsZShwcm9maWxlPzogQXV0aFByb2ZpbGUpIHtcclxuICAgIGlmIChwcm9maWxlKSB7XHJcbiAgICAgIHRoaXMuaGVhZGVycyA9IHRoaXMuc2V0RGVmYXVsdEhlYWRlcnMoKTtcclxuICAgICAgdGhpcy5hdXRoUHJvZmlsZSA9IHByb2ZpbGU7XHJcbiAgICAgIGlmICh0aGlzLmF1dGhQcm9maWxlLmF1dGgpIHtcclxuICAgICAgICAvLyB0aGlzLnNldEhlYWRlcignQXV0aG9yaXphdGlvbicsIHRoaXMuYXV0aFByb2ZpbGUuYXV0aCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5oZWFkZXJzLmRlbGV0ZSgnQXV0aG9yaXphdGlvbicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGEgbmV3IGhlYWRlci5cclxuICAgKiBAcGFyYW0ga2V5IFRoZSBoZWFkZXJzIG5hbWVcclxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlXHJcbiAgICovXHJcbiAgcHVibGljIHNldEhlYWRlcihrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlICYmIHZhbHVlLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmhlYWRlcnMgPSB0aGlzLmhlYWRlcnMuc2V0KGtleSwgdmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBjdXJyZW50IGhlYWRlcnNcclxuICAgKiBAcmV0dXJucyBUaGUgYEh0dHBIZWFkZXJzYCB0aGF0IGFyZSBjdXJyZW50bHkgc2V0IHVwXHJcbiAgICovXHJcbiAgcHVibGljIGdldEhlYWRlcnMoKTogSHR0cEhlYWRlcnMge1xyXG4gICAgcmV0dXJuIHRoaXMuaGVhZGVycztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0SHR0cE9wdGlvbnMocmVxdWVzdE9wdGlvbnM/OiBIdHRwT3B0aW9ucyk6IEh0dHBPcHRpb25zIHtcclxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHtoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKX0sIHJlcXVlc3RPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGJhc2UgVVJJIGZvciB0aGUgRE1TLVNlcnZpY2UgZW5kcG9pbnRcclxuICAgKiBAcmV0dXJucyBCYXNlIFVSSVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRTZXJ2aWNlQmFzZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmdldEhvc3QoKSArIHRoaXMuY29uZmlnLmdldFVyaSgnc2VydmljZUJhc2UnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGJhc2UgVVJJIGZvciB0aGUgU2VhcmNoLVNlcnZpY2UgZW5kcG9pbnRcclxuICAgKiBAcmV0dXJucyBCYXNlIFVSSVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRTZWFyY2hCYXNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0SG9zdCgpICsgdGhpcy5jb25maWcuZ2V0VXJpKCdzZWFyY2hCYXNlJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBiYXNlIFVSSSBmb3IgdGhlIENvbnRleHQtU2VydmljZSBlbmRwb2ludFxyXG4gICAqIEByZXR1cm5zIEJhc2UgVVJJXHJcbiAgICovXHJcbiAgcHVibGljIGdldENvbnRleHRCYXNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0SG9zdCgpICsgdGhpcy5jb25maWcuZ2V0VXJpKCdjb250ZXh0QmFzZScpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgYmFzZSBVUkkgZm9yIHRoZSBJbmJveC1TZXJ2aWNlIGVuZHBvaW50XHJcbiAgICogQHJldHVybnMgQmFzZSBVUklcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0SW5ib3hCYXNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0SG9zdCgpICsgdGhpcy5jb25maWcuZ2V0VXJpKCdpbmJveEJhc2UnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGJhc2UgVVJJIGZvciB0aGUgQlBNLVNlcnZpY2UgZW5kcG9pbnRcclxuICAgKiBAcmV0dXJucyBCYXNlIFVSSVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRCcG1CYXNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0SG9zdCgpICsgdGhpcy5jb25maWcuZ2V0VXJpKCdicG1CYXNlJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBiYXNlIFVSSSBmb3IgdGhlIEFnZW50LVNlcnZpY2UgZW5kcG9pbnRcclxuICAgKiBAcmV0dXJucyBCYXNlIFVSSVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRBZ2VudEJhc2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRIb3N0KCkgKyB0aGlzLmNvbmZpZy5nZXRVcmkoJ2FnZW50QmFzZScpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgYmFzZSBVUkkgZm9yIHRoZSBTdGF0dXMtU2VydmljZSBlbmRwb2ludFxyXG4gICAqIEByZXR1cm5zIEJhc2UgVVJJXHJcbiAgICovXHJcbiAgcHVibGljIGdldFN0YXR1c0Jhc2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRIb3N0KCkgKyB0aGlzLmNvbmZpZy5nZXRVcmkoJ3N0YXR1c0Jhc2UnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0SWNvbkJhc2UoaWQ6IHN0cmluZyA9ICcnKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRTZXJ2aWNlQmFzZSgpICsgJy91aS9pY29uLycgKyBpZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0SG9zdCgpIHtcclxuICAgIHJldHVybiB0aGlzLmF1dGhQcm9maWxlLmhvc3QgfHwgJyc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXcmFwcGVkIEhUVFAgR0VUIG1ldGhvZFxyXG4gICAqIEBwYXJhbSB1cmkgVGhlIFJFU1QgVVJJIHRvIGJlIHF1ZXJpZWRcclxuICAgKiBAcGFyYW0gYmFzZSBUaGUgQmFzZSBVUkkgKGJhY2tlbmQgc2VydmljZSkgdG8gYmUgdXNlZFxyXG4gICAqIEBwYXJhbSByZXF1ZXN0T3B0aW9ucyBBZGRpdGlvbmFsIHJlcXVlc3Qgb3B0aW9uc1xyXG4gICAqIEByZXR1cm5zIFRoZSBkYXRhIHJldHJpZXZlZCBmcm9tIHRoZSBnaXZlbiBlbmRwb2ludFxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQodXJpOiBzdHJpbmcsIGJhc2U/OiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoKGJhc2UgfHwgdGhpcy5nZXRTZXJ2aWNlQmFzZSgpKSArIHVyaSwgdGhpcy5nZXRIdHRwT3B0aW9ucyhyZXF1ZXN0T3B0aW9ucykpO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBXcmFwcGVkIEhUVFAgUFVUIG1ldGhvZFxyXG4gICAqIEBwYXJhbSB1cmkgVGhlIHRhcmdldCBSRVNUIFVSSVxyXG4gICAqIEBwYXJhbSBkYXRhIERhdGEgdG8gYmUgJ3Bvc3RlZCdcclxuICAgKiBAcGFyYW0gYmFzZSBUaGUgQmFzZSBVUkkgKGJhY2tlbmQgc2VydmljZSkgdG8gYmUgdXNlZFxyXG4gICAqIEBwYXJhbSByZXF1ZXN0T3B0aW9ucyBBZGRpdGlvbmFsIHJlcXVlc3Qgb3B0aW9uc1xyXG4gICAqIEByZXR1cm5zIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHRhcmdldCBQVVQgZW5kcG9pbnRcclxuICAgKi9cclxuICBwdWJsaWMgcHV0KHVyaTogc3RyaW5nLCBkYXRhPzogYW55LCBiYXNlPzogc3RyaW5nLCByZXF1ZXN0T3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KChiYXNlIHx8IHRoaXMuZ2V0U2VydmljZUJhc2UoKSkgKyB1cmksIGRhdGEsIHRoaXMuZ2V0SHR0cE9wdGlvbnMocmVxdWVzdE9wdGlvbnMpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0SnNvbih1cmk6IHN0cmluZywgYmFzZT86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXQodXJpLCBiYXNlIHx8IHRoaXMuZ2V0U2VydmljZUJhc2UoKSwge3Jlc3BvbnNlVHlwZTogJ2pzb24nfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXcmFwcGVkIEhUVFAgUE9TVCBtZXRob2RcclxuICAgKiBAcGFyYW0gdXJpIFRoZSB0YXJnZXQgUkVTVCBVUklcclxuICAgKiBAcGFyYW0gZGF0YSBEYXRhIHRvIGJlICdwb3N0ZWQnXHJcbiAgICogQHBhcmFtIGJhc2UgVGhlIEJhc2UgVVJJIChiYWNrZW5kIHNlcnZpY2UpIHRvIGJlIHVzZWRcclxuICAgKiBAcGFyYW0gcmVxdWVzdE9wdGlvbnMgQWRkaXRpb25hbCByZXF1ZXN0IG9wdGlvbnNcclxuICAgKiBAcmV0dXJucyBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSB0YXJnZXQgUE9TVCBlbmRwb2ludFxyXG4gICAqL1xyXG4gIHB1YmxpYyBwb3N0KHVyaTogc3RyaW5nLCBkYXRhPywgYmFzZT86IHN0cmluZywgcmVxdWVzdE9wdGlvbnM/OiBIdHRwT3B0aW9ucyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCBiYXNlVXJpID0gYmFzZSB8fCB0aGlzLmdldFNlcnZpY2VCYXNlKCk7XHJcbiAgICBjb25zdCBwYXlsb2FkID0gZGF0YSA/IEpTT04uc3RyaW5naWZ5KGRhdGEpIDogJyc7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7YmFzZVVyaX0ke3VyaX1gLCBwYXlsb2FkLCB0aGlzLmdldEh0dHBPcHRpb25zKHJlcXVlc3RPcHRpb25zKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQZXJmb3JtcyBhIG11bHRpcGFydCBmb3JtIGRhdGEgUE9TVCByZXF1ZXN0LlxyXG4gICAqIEBwYXJhbSB1cmkgVGhlIHRhcmdldCBSRVNUIFVSSVxyXG4gICAqIEBwYXJhbSBmb3JtRGF0YSBGb3JtRGF0YSB0byBiZSAncG9zdGVkJ1xyXG4gICAqIEBwYXJhbSBiYXNlIFRoZSBCYXNlIFVSSSAoYmFja2VuZCBzZXJ2aWNlKSB0byBiZSB1c2VkXHJcbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEFkZGl0aW9uYWwgcmVxdWVzdCBvcHRpb25zXHJcbiAgICogQHJldHVybnMgVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgdGFyZ2V0IFBPU1QgZW5kcG9pbnRcclxuICAgKi9cclxuICBwdWJsaWMgcG9zdE11bHRpUGFydCh1cmk6IHN0cmluZywgZm9ybURhdGE6IEZvcm1EYXRhLCBiYXNlPzogc3RyaW5nLCByZXF1ZXN0T3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IGJhc2VVcmkgPSBiYXNlIHx8IHRoaXMuZ2V0U2VydmljZUJhc2UoKTtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLmdldEhlYWRlcnMoKTtcclxuICAgIGhlYWRlcnMuZGVsZXRlKCdDb250ZW50LVR5cGUnKTtcclxuICAgIGNvbnN0IHJlcU9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHtoZWFkZXJzOiBoZWFkZXJzfSwgcmVxdWVzdE9wdGlvbnMpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke2Jhc2VVcml9JHt1cml9YCwgZm9ybURhdGEsIHJlcU9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV3JhcHBlZCBIVFRQIERFTEVURSBtZXRob2RcclxuICAgKiBAcGFyYW0gdXJpIFRoZSB0YXJnZXQgUkVTVCBVUklcclxuICAgKiBAcGFyYW0gYmFzZSBUaGUgQmFzZSBVUkkgKGJhY2tlbmQgc2VydmljZSkgdG8gYmUgdXNlZFxyXG4gICAqIEBwYXJhbSByZXF1ZXN0T3B0aW9ucyBBZGRpdGlvbmFsIHJlcXVlc3Qgb3B0aW9uc1xyXG4gICAqIEByZXR1cm5zIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHRhcmdldCBERUxFVEUgZW5kcG9pbnRcclxuICAgKi9cclxuICBwdWJsaWMgZGVsKHVyaTogc3RyaW5nLCBiYXNlPzogc3RyaW5nLCByZXF1ZXN0T3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKChiYXNlIHx8IHRoaXMuZ2V0U2VydmljZUJhc2UoKSkgKyB1cmksIHRoaXMuZ2V0SHR0cE9wdGlvbnMocmVxdWVzdE9wdGlvbnMpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKiBTb2Z0IHVwZGF0ZSBmb3IgbGlzdHMgLSBlbmFibGVzIGdyaWQgdG8gaGFuZGxlIGFsbCBjaGFuZ2VzXHJcbiAgICogdG8gYWRkIG5ldyAtIG9ubHkgaXRlbSBzaG91bGQgYmUgc3BlY2lmaWVkXHJcbiAgICogdG8gcmVtb3ZlIC0gb25seSBpZCBzaG91bGQgYmUgc3BlY2lmaWVkXHJcbiAgICogdG8gdXBkYXRlIC0gYm90aCBwYXJhbXMgc2hvdWxkIGJlIHNwZWNpZmllZFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGFueVtdIGxpc3QgT3JpZ2luYWwgbGlzdCBvZiBpdGVtc1xyXG4gICAqIEBwYXJhbSBpZD86IHN0cmluZzsgaXRlbT86IGFueSBkYXRhW11cclxuICAgKiBAcmV0dXJucyBhbnlbXVxyXG4gICAqL1xyXG4gIHB1YmxpYyB1cGRhdGUobGlzdDogYW55W10sIGRhdGE6IHsgaWQ/OiBzdHJpbmcsIGl0ZW0/OiBhbnkgfVtdKSB7XHJcbiAgICBkYXRhLmZvckVhY2goKHtpZCwgaXRlbX0pID0+IHtcclxuICAgICAgaWYgKGlkKSB7XHJcbiAgICAgICAgY29uc3QgX2l0ZW0gPSBsaXN0LmZpbmQobCA9PiBsLmlkID09PSBpZCk7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihfaXRlbSwgaXRlbSwgaXRlbSA/IHtfX3VwZGF0ZWQ6IHRydWV9IDoge19fcmVtb3ZlZDogdHJ1ZX0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGl0ZW0pIHtcclxuICAgICAgICBsaXN0LnVuc2hpZnQoT2JqZWN0LmFzc2lnbihpdGVtLCB7X19hZGRlZDogdHJ1ZX0pKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbGlzdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKiBDYWNoZSBmb3Igc21hbGwgcmVxdWVzdHMgbGlrZSBpY29ucyBhbmQgY29uZmlnc1xyXG4gICAqXHJcbiAgICogQHBhcmFtIHN0cmluZyB1cmlcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0VmlhQ2FjaGUodXJpOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgaWYgKHRoaXMuY2FjaGUuaGFzKHVyaSkpIHtcclxuICAgICAgcmV0dXJuIG9ic2VydmFibGVPZih0aGlzLmNhY2hlLmdldCh1cmkpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldFZpYVRlbXBDYWNoZSh1cmksICgpID0+IHRoaXMuaHR0cC5nZXQodXJpLCB7cmVzcG9uc2VUeXBlOiAndGV4dCd9KS5waXBlKFxyXG4gICAgICAgIHRhcCh0ZXh0ID0+IHRoaXMuY2FjaGUuc2V0KHVyaSwgdGV4dCkpKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICogVGVtcG9yYXJ5IENhY2hlIGZvciBtdWx0aXBsZSBpZGVudGljYWwgcmVxdWVzdHNcclxuICAgKlxyXG4gICAqIEBwYXJhbSBzdHJpbmcgaWRcclxuICAgKiBAcGFyYW0gRnVuY3Rpb24gcmVxdWVzdFxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRWaWFUZW1wQ2FjaGUoaWQ6IHN0cmluZywgcmVxdWVzdD86IEZ1bmN0aW9uKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGlmICh0aGlzLnRlbXAuaGFzKGlkKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy50ZW1wLmdldChpZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCByZXNwID0gKHJlcXVlc3QgPyByZXF1ZXN0KCkgOiB0aGlzLmdldChpZCkpLnBpcGUoXHJcbiAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy50ZW1wLmRlbGV0ZShpZCkpLFxyXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMudGVtcC5zZXQoaWQsIHJlc3ApO1xyXG4gICAgICByZXR1cm4gcmVzcDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERvd25sb2FkIHRoZSBjb250ZW50IG9mIGRtcyBvYmplY3RzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIERtc09iamVjdFtdIGRtc09iamVjdHMgQXJyYXkgb2YgZG1zIG9iamVjdHMgdG8gYmUgZG93bmxvYWRlZFxyXG4gICAqIEBwYXJhbSBcIlBERlwiIHwgXCJUSUZGXCIgfCBcIlRFWFRcIiB8IFwiSlBFR1wiIHJlbmRpdGlvbiBUaGUgdHlwZSBvZiByZW5kaXRpb24gdG8gYmUgZG93bmxvYWRlZC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG9yaWdpbmFsIGNvbnRlbnQgd2lsbCBiZSBkb3dubG9hZGVkLlxyXG4gICAqIFBvc3NpYmxlIHJlbmRpdGlvbnMgYXJlIGBQREZgLCBgVElGRmAsIGBURVhUYCwgYEpQRUdgLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBkb3dubG9hZENvbnRlbnQoZG1zT2JqZWN0czogRG1zT2JqZWN0W10sIHJlbmRpdGlvbj86ICdQREYnIHwgJ1RJRkYnIHwgJ1RFWFQnIHwgJ0pQRUcnLCBmaWxlTmFtZVdpdGhWZXJzaW9uTnVtYmVyPzogYm9vbGVhbikge1xyXG5cclxuICAgIGRtc09iamVjdHMuZm9yRWFjaChkbXNPYmplY3QgPT4ge1xyXG4gICAgICBpZiAoZG1zT2JqZWN0LmNvbnRlbnQpIHtcclxuXHJcbiAgICAgICAgbGV0IHVyaSA9IGAke3RoaXMuZ2V0U2VydmljZUJhc2UoKX0vZG1zLyR7ZG1zT2JqZWN0LmNvbnRlbnQuaWR9L2NvbnRlbnQ/dHlwZT0ke2Rtc09iamVjdC5jb250ZW50LnR5cGV9JmFzZG93bmxvYWQ9dHJ1ZWA7XHJcbiAgICAgICAgaWYgKHJlbmRpdGlvbikge1xyXG4gICAgICAgICAgdXJpICs9IGAmcmVuZGl0aW9uPSR7cmVuZGl0aW9ufSZfaW50ZW50PURPV05MT0FEXyR7cmVuZGl0aW9ufWA7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHVyaSArPSAnJl9pbnRlbnQ9RE9XTkxPQUQnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZG1zT2JqZWN0LmNvbnRlbnQuaWQgPT09IGRtc09iamVjdC5pZCkge1xyXG4gICAgICAgICAgdXJpICs9IGAmdmVyc2lvbj0ke2Rtc09iamVjdC52ZXJzaW9ufWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZG93bmxvYWQodXJpLCBmaWxlTmFtZVdpdGhWZXJzaW9uTnVtYmVyID8gZG1zT2JqZWN0LnZlcnNpb24gOiBudWxsKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignVGhlIHByb3ZpZGVkIGRtcyBvYmplY3QgaGFzIG5vIGNvbnRlbnQnLCBkbXNPYmplY3QpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkb3dubG9hZCh1cmk6IHN0cmluZywgdmVyc2lvbj86IG51bWJlcikge1xyXG4gICAgdGhpcy5odHRwLmdldCh1cmksIHtvYnNlcnZlOiAncmVzcG9uc2UnLCByZXNwb25zZVR5cGU6ICdibG9iJ30pXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIEZpbGVTYXZlci5zYXZlQXMoXHJcbiAgICAgICAgICByZXMuYm9keSxcclxuICAgICAgICAgIHRoaXMuZ2V0RmlsZU5hbWVGcm9tSHR0cFJlc3BvbnNlKHJlcywgdmVyc2lvbilcclxuICAgICAgICApO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RmlsZU5hbWVGcm9tSHR0cFJlc3BvbnNlKHJlczogSHR0cFJlc3BvbnNlPGFueT4sIHZlcnNpb246IG51bWJlcikge1xyXG4gICAgY29uc3QgY29udGVudERpc3Bvc2l0aW9uSGVhZGVyID0gcmVzLmhlYWRlcnMuZ2V0KCdDb250ZW50LURpc3Bvc2l0aW9uJykgfHwgJyc7XHJcbiAgICBjb25zdCBlbmNvZGVkRmlsZU5hbWVNYXRjaFJlc3VsdCA9IGNvbnRlbnREaXNwb3NpdGlvbkhlYWRlci5tYXRjaCgnZmlsZW5hbWVcXFxcKj1VVEYtOFxcJ1xcJyguKiknKVxyXG4gICAgICB8fCBjb250ZW50RGlzcG9zaXRpb25IZWFkZXIubWF0Y2goJ2ZpbGVuYW1lPVxcXCIoLiopXFxcIicpO1xyXG4gICAgY29uc3QgZW5jb2RlZEZpbGVOYW1lID0gZW5jb2RlZEZpbGVOYW1lTWF0Y2hSZXN1bHQgPyBlbmNvZGVkRmlsZU5hbWVNYXRjaFJlc3VsdFsxXSA6IG51bGw7XHJcbiAgICBjb25zdCBmaWxlbmFtZSA9IGVuY29kZWRGaWxlTmFtZSA/IGRlY29kZVVSSUNvbXBvbmVudChlbmNvZGVkRmlsZU5hbWUpIDogJ3Vua25vd24nO1xyXG4gICAgY29uc3QgaW5kZXggPSAhfmZpbGVuYW1lLmxhc3RJbmRleE9mKCcuJykgPyBmaWxlbmFtZS5sZW5ndGggOiBmaWxlbmFtZS5sYXN0SW5kZXhPZignLicpO1xyXG4gICAgcmV0dXJuICF2ZXJzaW9uID8gZmlsZW5hbWUgOiBgJHtmaWxlbmFtZS5zbGljZSgwLCBpbmRleCl9X3Yke3ZlcnNpb259JHtmaWxlbmFtZS5zbGljZShpbmRleCl9YDtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBHZXR0ZXIgZm9yIHRoZSBIVFRQIEhlYWRlcnNcclxuICAgKlxyXG4gICAqIEByZXR1cm5zIEh0dHBIZWFkZXJzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZXREZWZhdWx0SGVhZGVycygpOiBIdHRwSGVhZGVycyB7XHJcbiAgICByZXR1cm4gbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgJ1gtb3MtaW5jbHVkZS1saW5rcyc6ICdmYWxzZScsXHJcbiAgICAgICdYLW9zLWluY2x1ZGUtYWN0aW9ucyc6ICdmYWxzZScsXHJcbiAgICAgICdYLW9zLXN5bmMtaW5kZXgnOiAndHJ1ZSdcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -274,6 +274,21 @@ export class PrepareService {
274
274
  }
275
275
  return uri;
276
276
  }
277
+ /**
278
+ * Deletes a prepared creation object content element by index or the complete content.
279
+ * If you provide an index the content consists only of one element,
280
+ * the content is completely removed from the prepared creation object.
281
+ *
282
+ * @param preparedItemId ID of the item with the content to be removed
283
+ * @param index Parameter that determines which content element should be deleted.
284
+ * @returns Observable<PreparedItem> The updated prepared item
285
+ */
286
+ deletePreparedItemContent(preparedItemId, index) {
287
+ const url = `/prepare/${preparedItemId}/content` + (index !== undefined ? `?index=${index}` : '');
288
+ return this.backend
289
+ .del(url)
290
+ .pipe(map(res => new PreparedItem(res)));
291
+ }
277
292
  }
278
293
  PrepareService.decorators = [
279
294
  { type: Injectable }
@@ -282,4 +297,4 @@ PrepareService.ctorParameters = () => [
282
297
  { type: BackendService },
283
298
  { type: UploadService }
284
299
  ];
285
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL3ByZXBhcmUvcHJlcGFyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQWEsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsWUFBWSxFQUF1QixNQUFNLGlDQUFpQyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFpQjdEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFVekIsWUFBb0IsT0FBdUIsRUFDdkIsYUFBNEI7UUFENUIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFSeEMsd0JBQW1CLEdBQUcsSUFBSSxhQUFhLENBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQzVELG1CQUFjLEdBQStCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUdwRiw0QkFBdUIsR0FBRyxJQUFJLGFBQWEsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUN4RCx1QkFBa0IsR0FBdUIsSUFBSSxDQUFDLHVCQUF1QixDQUFD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LEVBQUU7Z0JBQ3pDLFVBQVUsRUFBRSxDQUFDLGNBQWM7Z0JBQzNCLFNBQVMsRUFBRSxZQUFZLENBQUMsU0FBUyxJQUFJLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO2FBQ2hILENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDOzs7WUFoVUYsVUFBVTs7O1lBekJILGNBQWM7WUFJZCxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHttZXJnZU1hcCwgbWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtVdGlsc30gZnJvbSAnLi4vLi4vdXRpbC91dGlscyc7XHJcbmltcG9ydCB7QmFja2VuZFNlcnZpY2V9IGZyb20gJy4uL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlJztcclxuaW1wb3J0IHtPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0fSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtPYmplY3RUeXBlfSBmcm9tICcuLi8uLi9tb2RlbC9vYmplY3QtdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7UHJlcGFyZWRJdGVtLCBQcmVwYXJlZEl0ZW1UZW1wbGF0ZX0gZnJvbSAnLi4vLi4vbW9kZWwvcHJlcGFyZWQtaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7VXBsb2FkU2VydmljZX0gZnJvbSAnLi4vdXBsb2FkL3VwbG9hZC5zZXJ2aWNlJztcclxuaW1wb3J0IHtVcGxvYWRUYXJnZXR9IGZyb20gJy4uLy4uL21vZGVsL3VwbG9hZC10YXJnZXQubW9kZWwnO1xyXG5pbXBvcnQge1VwbG9hZEZpbGVJdGVtfSBmcm9tICcuLi8uLi9tb2RlbC91cGxvYWQtZmlsZS1pdGVtLm1vZGVsJztcclxuaW1wb3J0IHtJUHJlcGFyZUNoaWxkVHlwZXN9IGZyb20gJy4vb2JqZWN0VHlwZXMuaW50ZXJmYWNlJztcclxuXHJcbi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFByZXBhcmVkUG9zdFBhcmFtIHtcclxuICBwYXJlbnRJZDogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0byBjcmVhdGUgb25lIFByZXBhcmVkSXRlbSB1c2luZyBtdWx0aXBsZSBmaWxlcyB1cGxvYWRlZCAoZmFsc2UpXHJcbiAgICogb3IgY3JlYXRpbmcgYSBQcmVwYXJlZEl0ZW0gZm9yIGVhY2ggZmlsZSBwb3N0ZWQgdG8gdGhlIFVSTCAodHJ1ZSlcclxuICAgKi9cclxuICBjcmVhdGVNYW55PzogYm9vbGVhbjtcclxuICBjaGlsZFR5cGU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb2xsZWN0aW9uIG9mIFByZXBhcmUgU2VydmljZXNcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFByZXBhcmVTZXJ2aWNlIHtcclxuXHJcbiAgcHJpdmF0ZSBwcmVwYXJlZEl0ZW1zOiBQcmVwYXJlZEl0ZW1bXTtcclxuICBwcml2YXRlIHByZXBhcmVkSXRlbXNTb3VyY2UgPSBuZXcgUmVwbGF5U3ViamVjdDxQcmVwYXJlZEl0ZW1bXT4oMSk7XHJcbiAgcHVibGljIHByZXBhcmVkSXRlbXMkOiBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbVtdPiA9IHRoaXMucHJlcGFyZWRJdGVtc1NvdXJjZS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSBwcmVwYXJlZEl0ZW1Db3VudDogbnVtYmVyO1xyXG4gIHByaXZhdGUgcHJlcGFyZWRJdGVtQ291bnRTb3VyY2UgPSBuZXcgUmVwbGF5U3ViamVjdDxudW1iZXI+KDEpO1xyXG4gIHB1YmxpYyBwcmVwYXJlZEl0ZW1Db3VudCQ6IE9ic2VydmFibGU8bnVtYmVyPiA9IHRoaXMucHJlcGFyZWRJdGVtQ291bnRTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSB1cGxvYWRTZXJ2aWNlOiBVcGxvYWRTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQdWJsaWMgRmV0Y2ggUHJlcGFyZSBpdGVtc1xyXG4gICAqL1xyXG4gIHJlZnJlc2hQcmVwYXJlZEl0ZW1zQ291bnQoKSB7XHJcbiAgICB0aGlzLmZldGNoUHJlcGFyZWRJdGVtc0NvdW50KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBudW1iZXIgb2YgcHJlcGFyZWQgaXRlbXMgZm9yIHRoZSBjdXJyZW50IHVzZXIuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBmZXRjaFByZXBhcmVkSXRlbXNDb3VudCgpIHtcclxuICAgIHRoaXMuYmFja2VuZC5nZXRKc29uKCcvcHJlcGFyZS9zdGF0ZScpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzKSA9PiByZXMuY291bnQpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5wcmVwYXJlZEl0ZW1Db3VudCA9IHJlcztcclxuICAgICAgICB0aGlzLnByZXBhcmVkSXRlbUNvdW50U291cmNlLm5leHQodGhpcy5wcmVwYXJlZEl0ZW1Db3VudCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIHByZXBhcmVkIGl0ZW0gb24gdGhlIGJhY2tlZCBzaWRlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmVudElkIFRoZSBJRCBvZiB0aGUgcGFyZW50IGRtcyBvYmplY3QgdG8gYWRkIHRoZSBwcmVwYXJlZCBpdGVtIHRvXHJcbiAgICogQHBhcmFtIGNoaWxkVHlwZSBUaGUgdHlwZSBvZiBvYmplY3QgdG8gYmUgY3JlYXRlZFxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxyXG4gICAqL1xyXG4gIHB1YmxpYyBjcmVhdGVQcmVwYXJlZEl0ZW0ocGFyZW50SWQ6IHN0cmluZywgY2hpbGRUeXBlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5wb3N0KHRoaXMuY3JlYXRlUHJlcGFyZWRJdGVtUG9zdFVybCh7XHJcbiAgICAgICAgcGFyZW50SWQ6IHBhcmVudElkLFxyXG4gICAgICAgIGNoaWxkVHlwZTogY2hpbGRUeXBlID8gY2hpbGRUeXBlIDogbnVsbFxyXG4gICAgICB9KSwge30pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmdldFByZXBhcmVkSXRlbXMkKCkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBwcmVwYXJlZEl0ZW1JZFxyXG4gICAqIEBwYXJhbSBkYXRhXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XHJcbiAgICovXHJcbiAgcHVibGljIHVwZGF0ZVByZXBhcmVkSXRlbUluZGV4RGF0YShwcmVwYXJlZEl0ZW1JZCwgZGF0YSkge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAucHV0KCcvcHJlcGFyZS8nICsgcHJlcGFyZWRJdGVtSWQsIGRhdGEpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmdldFByZXBhcmVkSXRlbXMkKCkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGFuIFVSTCBmb3IgY3JlYXRpbmcgYSBQcmVwYXJlZEl0ZW0uXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGFyYW1zIFBhcmFtcyBmb3IgZ2VuZXJhdGluZyBhcHByb3ByaWF0ZSB1cmkuXHJcbiAgICogQHJldHVybnMgc3RyaW5nIEEgUE9TVCBVUkwgZm9yIGNyZWF0aW5nIFByZXBhcmVkSXRlbXNcclxuICAgKi9cclxuICBwdWJsaWMgY3JlYXRlUHJlcGFyZWRJdGVtUG9zdFVybChwYXJhbXM6IFByZXBhcmVkUG9zdFBhcmFtKTogc3RyaW5nIHtcclxuXHJcbiAgICBsZXQgdXJsID0gcGFyYW1zLmNyZWF0ZU1hbnkgPyAnL3ByZXBhcmUvY3JlYXRlbWFueScgOiAnL3ByZXBhcmUvY3JlYXRlJztcclxuICAgIGlmIChwYXJhbXMpIHtcclxuICAgICAgdXJsID0gVXRpbHMuYnVpbGRVcmkodXJsLCBwYXJhbXMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVybDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgdGhlIHVzZXJzIHByZXBhcmVkIGl0ZW1zLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIG5vRm9ybXMgSWYgc2V0IHRvIHRydWUgdGhlIHByZXBhcmVkIGl0ZW1zIHdpbGwgYmUgZmV0Y2hlZCB3aXRob3V0IHRoZSBmb3JtIHdoaWNoIGlzIGZhc3RlclxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8UHJlcGFyZWRJdGVtW10+IEEgY29sbGVjdGlvbiBvZiBwcmVwYXJlZCBpdGVtIG9iamVjdHNcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0UHJlcGFyZWRJdGVtcyQobm9Gb3Jtcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbVtdPiB7XHJcbiAgICB0aGlzLmZldGNoUHJlcGFyZWRJdGVtcyhub0Zvcm1zKS5zdWJzY3JpYmUoKTtcclxuICAgIHJldHVybiB0aGlzLnByZXBhcmVkSXRlbXMkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgUHJlcGFyZUl0ZW1zIGFuZCBmb3JtIHRoZW1cclxuICAgKlxyXG4gICAqIEBwYXJhbSBib29sZWFuIG5vRm9ybXNcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbVtdPlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZmV0Y2hQcmVwYXJlZEl0ZW1zKG5vRm9ybXM/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW1bXT4ge1xyXG4gICAgbGV0IHVyaSA9IChub0Zvcm1zKSA/ICcvcHJlcGFyZScgOiAnL3ByZXBhcmU/Zm9ybT10cnVlJztcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLmdldEpzb24odXJpKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlczogYW55KSA9PiByZXMubWFwKGkgPT4gbmV3IFByZXBhcmVkSXRlbShpKSkpLFxyXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmZldGNoUHJlcGFyZWRJdGVtc0NvdW50KCkpLFxyXG4gICAgICAgIHRhcCgocHJlcGFyZWRJdGVtczogUHJlcGFyZWRJdGVtW10pID0+IHRoaXMucHJlcGFyZWRJdGVtc1NvdXJjZS5uZXh0KHByZXBhcmVkSXRlbXMuc29ydChVdGlscy5zb3J0VmFsdWVzKCdjcmVhdGVkJywgJ2Rlc2MnKSkpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyBhIHByZXBhcmVkIGl0ZW0uXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcHJlcGFyZWRJdGVtSWQgSUQgb2YgdGhlIGl0ZW0gdG8gYmUgcmVtb3ZlZFxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PiBTZXJ2ZXIgcmVzcG9uc2VcclxuICAgKi9cclxuICBkZWxldGVQcmVwYXJlZEl0ZW0ocHJlcGFyZWRJdGVtSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5kZWwoYC9wcmVwYXJlLyR7cHJlcGFyZWRJdGVtSWR9YClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuZ2V0UHJlcGFyZWRJdGVtcyQoKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYSBsaXN0IG9mIG9iamVjdCB0eXBlcyBhbGxvd2VkIHRvIGJlIHBsYWNlZCBkaXJlY3RseSBiZWxvdyByb290LlxyXG4gICAqXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxPYmplY3RUeXBlW10+IEEgbGlzdCBvZiBzdXBwb3J0ZWQgb2JqZWN0IHR5cGVzXHJcbiAgICovXHJcbiAgcHVibGljIGdldFByZXBhcmVSb290VHlwZXMoKTogT2JzZXJ2YWJsZTxPYmplY3RUeXBlW10+IHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLmdldFZpYVRlbXBDYWNoZSgnL3ByZXBhcmUvdHlwZXMnKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlcykgPT4gcmVzLnR5cGVzLm1hcCgodHlwZSkgPT4gbmV3IE9iamVjdFR5cGUodHlwZSkpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhIGxpc3Qgb2YgYWxsb3dlZCBjaGlsZCBvYmplY3QgdHlwZXMgZm9yIGEgc2VsZWN0ZWQgcGFyZW50LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmVudElkIFRoZSBpZCBvZiB0aGUgcGFyZW50IGRtcyBvYmplY3QgKGNvbnRleHQgZm9sZGVyKVxyXG4gICAqIEBwYXJhbSB3aXRoQ29udGVudE9ubHkgSWYgc2V0IHRvIHRydWUgb25seSBjaGlsZCB0eXBlcywgdGhhdCBzdXBwb3J0IGNvbnRlbnQgYXJlIHJldHVybmVkLlxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8SVByZXBhcmVDaGlsZFR5cGVzPiBBIGxpc3Qgb2Ygc3VwcG9ydGVkIG9iamVjdCB0eXBlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRQcmVwYXJlQ2hpbGRUeXBlcyhwYXJlbnRJZDogc3RyaW5nLCB3aXRoQ29udGVudE9ubHk/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxJUHJlcGFyZUNoaWxkVHlwZXM+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHBhcmVudElkID8ge3BhcmVudElkLCB3aXRoY29udGVudDogd2l0aENvbnRlbnRPbmx5fSA6IHt3aXRoY29udGVudDogd2l0aENvbnRlbnRPbmx5fVxyXG4gICAgY29uc3QgdXJpID0gVXRpbHMuYnVpbGRVcmkoJy9wcmVwYXJlL3R5cGVzJywgcGFyYW1zKTtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLmdldFZpYVRlbXBDYWNoZSh1cmkpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChyZXMgPT4gKHtwYXJlbnQ6IHJlcy5wYXJlbnQsIHR5cGVzOiByZXMudHlwZXMubWFwKCh0eXBlKSA9PiBuZXcgT2JqZWN0VHlwZSh0eXBlKSl9KSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGZldGNoIHRoZSBwcmV2aWV3IHVyaSBmb3IgYSBwcmVwYXJlZCBpdGVtXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBwcmVwYXJlZCBpdGVtXHJcbiAgICogQHBhcmFtIGluZGV4IFdoZW4gYSBwcmVwYXJlZCBpdGVtIGNvbnRhaW5zIG1vcmUgdGhhbiBvbmUgY29udGVudHMsIHRoZSBpbmRleCBzcGVjaWZpZXMgd2hpY2ggY29udGVudFxyXG4gICAqIEBwYXJhbSByZW5kaXRpb24gVGFyZ2V0IHJlbmRpdGlvbiAoUERGKVxyXG4gICAqIHRvIHJldHJpZXZlIHRoZSBwcmV2aWV3IHVyaSBmb3JcclxuICAgKiBAcmV0dXJucyBzdHJpbmcgUHJldmlldyB1cmlcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0UHJldmlld1VyaShpZDogc3RyaW5nLCBpbmRleD86IG51bWJlciwgcmVuZGl0aW9uPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBVdGlscy5idWlsZFVyaShgJHt0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKX0vcHJlcGFyZS8ke2lkfS9jb250ZW50YCwge3JlbmRpdGlvbiwgaW5kZXh9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIHByZXBhcmVkIGl0ZW1zIHRhcmdldCBvYmplY3QgdHlwZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBvYmplY3RUeXBlIFRoZSB0YXJnZXQgb2JqZWN0IHR5cGVzIG5hbWVcclxuICAgKiBAcGFyYW0gcHJlcGFyZWRJdGVtSWQgVGhlIGlkIG9mIHRoZSBwcmVwYXJlZCBpdGVtIHRvIHNldCB0aGUgdHlwZSBmb3JcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbT4gVGhlIHVwZGF0ZWQgcHJlcGFyZWQgaXRlbVxyXG4gICAqL1xyXG4gIHB1YmxpYyB1cGRhdGVDaGlsZFR5cGUob2JqZWN0VHlwZTogc3RyaW5nLCBwcmVwYXJlZEl0ZW1JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW0+IHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLnB1dChgL3ByZXBhcmUvJHtwcmVwYXJlZEl0ZW1JZH0vJHtvYmplY3RUeXBlfT9mb3JtPXRydWUmY29udGVudG1ldGE9dHJ1ZWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChyZXMgPT4gbmV3IFByZXBhcmVkSXRlbShyZXMpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGEgdGVtcGxhdGUgdG8gYSBwcmVwYXJlZCBpdGVtLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHByZXBhcmVkSXRlbUlkIFRoZSBpZCBvZiB0aGUgcHJlcGFyZWQgaXRlbSB0byBhZGQgdGhlIHRlbXBsYXRlIHRvXHJcbiAgICogQHBhcmFtIHRlbXBsYXRlSWQgVGhlIGlkIG9mIHRoZSB0ZW1wbGF0ZSB0byBiZSBhZGRlZFxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8UHJlcGFyZWRJdGVtPiAgVGhlIHVwZGF0ZWQgcHJlcGFyZWQgaXRlbVxyXG4gICAqL1xyXG4gIHB1YmxpYyBhZGRUZW1wbGF0ZShwcmVwYXJlZEl0ZW1JZCwgdGVtcGxhdGVJZCk6IE9ic2VydmFibGU8UHJlcGFyZWRJdGVtPiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5wdXQoYC9wcmVwYXJlLyR7cHJlcGFyZWRJdGVtSWR9L3RlbXBsYXRlP3RlbXBsYXRlaWQ9JHt0ZW1wbGF0ZUlkfWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChyZXMgPT4gbmV3IFByZXBhcmVkSXRlbShyZXMpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhIGxpc3Qgb2YgYXZhaWxhYmxlIHRlbXBsYXRlcyBmb3IgYSBnaXZlbiBvYmplY3QgdHlwZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbVRlbXBsYXRlW10+IG9iamVjdFR5cGVOYW1lXHJcbiAgICovXHJcbiAgcHVibGljIGdldFRlbXBsYXRlcyhvYmplY3RUeXBlTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW1UZW1wbGF0ZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5nZXRKc29uKCcvdGVtcGxhdGUvbGlzdD90eXBlPScgKyBvYmplY3RUeXBlTmFtZSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXM6IGFueSkgPT4gcmVzIGFzIFByZXBhcmVkSXRlbVRlbXBsYXRlW10pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHVybCBvZiBhIHRlbXBsYXRlIHByZXZpZXdcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCBUZW1wbGF0ZSBJRFxyXG4gICAqIEBwYXJhbSByZW5kaXRpb24gVGFyZ2V0IHJlbmRpdGlvbiAoUERGKVxyXG4gICAqIEByZXR1cm5zIHN0cmluZyBUaGUgdGVtcGxhdGUgcHJldmlldyB1cmwuXHJcbiAgICovXHJcbiAgcHVibGljIGdldFRlbXBsYXRlUHJldmlld1VyaShpZCwgcmVuZGl0aW9uPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBVdGlscy5idWlsZFVyaShgJHt0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKX0vdGVtcGxhdGUvJHtpZH0vY29udGVudGAsIHtyZW5kaXRpb259KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbW1pdCBhIHByZXBhcmVkIGl0ZW0uIFRoaXMgd2lsbCBjcmVhdGUgYW4gYWN0dWFsIGRtcyBvYmplY3QuXHJcbiAgICogVXBkYXRlcyB0aGUgcHJlcGFyZWQgY3JlYXRpb24gb2JqZWN0IHRhcmdldCB0eXBlXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcHJlcGFyZWRJdGVtSWQgSUQgb2YgdGhlIHByZXBhcmVkIGl0ZW1cclxuICAgKiBAcGFyYW0gcHJlcGFyZWRJdGVtVHlwZSBOYW1lIG9mIHRoZSBwcmVwYXJlZCBpdGVtcyB0YXJnZXQgb2JqZWN0IHR5cGVcclxuICAgKiBAcGFyYW0gcHJlcGFyZWRJdGVtRGF0YSBPYmplY3QgaG9sZGluZyBkYXRhIG9mIHRoZSBwcmVwYXJlZCBpdGVtXHJcbiAgICogQHJldHVybnMgVGhlIGlkIG9mIHRoZSBjcmVhdGVkIGRtcyBvYmplY3RcclxuICAgKi9cclxuICBwdWJsaWMgY29tbWl0UHJlcGFyZWRJdGVtKHByZXBhcmVkSXRlbUlkLCBwcmVwYXJlZEl0ZW1UeXBlLCBwcmVwYXJlZEl0ZW1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLnB1dChgL3ByZXBhcmUvJHtwcmVwYXJlZEl0ZW1JZH0vJHtwcmVwYXJlZEl0ZW1UeXBlfWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuYmFja2VuZC5wb3N0KGAvcHJlcGFyZS9jb21taXQvJHtwcmVwYXJlZEl0ZW1JZH1gLCBwcmVwYXJlZEl0ZW1EYXRhKSksXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuZ2V0UHJlcGFyZWRJdGVtcyQoKSksXHJcbiAgICAgICAgbWFwKHJlcyA9PiByZXMuaWQpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGxvYWQgQ29udGVudFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHN0cmluZyBwcmVwYXJlZEl0ZW1JZFxyXG4gICAqIEBwYXJhbSBGaWxlIGZpbGVcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cclxuICAgKi9cclxuICB1cGxvYWRDb250ZW50KHByZXBhcmVkSXRlbUlkOiBzdHJpbmcsIGZpbGU6IEZpbGUpIHtcclxuICAgIGNvbnN0IHVyaSA9IGAke3RoaXMuYmFja2VuZC5nZXRTZXJ2aWNlQmFzZSgpfS9wcmVwYXJlLyR7cHJlcGFyZWRJdGVtSWR9L2NvbnRlbnQuanNvbj9mb3JtPXRydWUmY29udGVudG1ldGE9dHJ1ZWA7XHJcbiAgICByZXR1cm4gdGhpcy51cGxvYWRTZXJ2aWNlXHJcbiAgICAgIC51cGxvYWQodXJpLCBbZmlsZV0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIHRhcCgoKSA9PiB0aGlzLmdldFByZXBhcmVkSXRlbXMkKCkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGxvYWRzIGZpbGVzIHRvIGFuIHVwbG9hZCB0YXJnZXQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gdXBsb2FkVGFyZ2V0IFRoZSB1cGxvYWQgdGFyZ2V0IHRvIHVwbG9hZCBmaWxlcyB0b1xyXG4gICAqIEBwYXJhbSB1cGxvYWRGaWxlcyBGaWxlcyB0byBiZSB1cGxvYWRlZFxyXG4gICAqIEBwYXJhbSB1c2VCYXRjaFVwbG9hZCBGbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdG8gdXNlIGJhdGNoIHByb2Nlc3Npbmcgb24gdGhlIGJhY2tlbmQgc2lkZVxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxyXG4gICAqL1xyXG4gIHVwbG9hZFRvVGFyZ2V0KHVwbG9hZFRhcmdldDogVXBsb2FkVGFyZ2V0LCB1cGxvYWRGaWxlczogVXBsb2FkRmlsZUl0ZW1bXSwgdXNlQmF0Y2hVcGxvYWQ/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHJcbiAgICBjb25zdCBmaWxlcyA9IHVwbG9hZEZpbGVzLm1hcChmID0+IGYuX2ZpbGUpO1xyXG4gICAgcmV0dXJuIHRoaXMudXBsb2FkU2VydmljZVxyXG4gICAgICAudXBsb2FkKHRoaXMuZ2V0VXBsb2FkVGFyZ2V0KHVwbG9hZFRhcmdldCwgdXNlQmF0Y2hVcGxvYWQpLCBmaWxlcylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuZ2V0UHJlcGFyZWRJdGVtcyQoKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgdXJpIHRvIHBvc3QgZmlsZXMgdG8gYmFzZWQgb24gdGhlIHVwbG9hZCB0YXJnZXQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gdXBsb2FkVGFyZ2V0IFRoZSB0YXJnZXQgdG8gdXBsb2FkIGZpbGVzIHRvXHJcbiAgICogQHBhcmFtIHVzZUJhdGNoVXBsb2FkIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0byB1cGxvYWQgYWxsIGZpbGVzIGluIGEgc2luZ2xlIHBvc3RcclxuICAgKiBAcmV0dXJucyBzdHJpbmcgdGhlIHVyaVxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0VXBsb2FkVGFyZ2V0KHVwbG9hZFRhcmdldDogVXBsb2FkVGFyZ2V0LCB1c2VCYXRjaFVwbG9hZD86IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgbGV0IHVyaTtcclxuXHJcbiAgICBpZiAodXBsb2FkVGFyZ2V0LnR5cGUgPT09IFVwbG9hZFRhcmdldC5ST09UKSB7XHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiB1cGxvYWQgdG8gZ2VuZXJhbCBmaWxpbmcgbG9jYXRpb25cclxuICAgICAgICpcclxuICAgICAgICogQHR5cGUgc3RyaW5nXHJcbiAgICAgICAqL1xyXG4gICAgICB1cmkgPSB0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKSArIHRoaXMuY3JlYXRlUHJlcGFyZWRJdGVtUG9zdFVybCh7XHJcbiAgICAgICAgICBwYXJlbnRJZDogbnVsbCxcclxuICAgICAgICAgIGNyZWF0ZU1hbnk6ICF1c2VCYXRjaFVwbG9hZFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKHVwbG9hZFRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuT0JKRUNUKSB7XHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiB1cGxvYWQgdG8gZG1zIG9iamVjdCwgbWVhbnMgYWRkaW5nIG9yIHJlcGxhY2luZyBjb250ZW50IGZpbGVcclxuICAgICAgICovXHJcbiAgICAgIGNvbnN0IHtyZWZlcmVuY2VPYmplY3R9ID0gdXBsb2FkVGFyZ2V0O1xyXG4gICAgICB1cmkgPSBgJHt0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKX0vZG1zLyR7cmVmZXJlbmNlT2JqZWN0LmlkfS9jb250ZW50cz90eXBlPSR7cmVmZXJlbmNlT2JqZWN0LnR5cGUubmFtZX1gO1xyXG5cclxuICAgIH0gZWxzZSBpZiAodXBsb2FkVGFyZ2V0LnR5cGUgPT09IFVwbG9hZFRhcmdldC5DT05URVhUIHx8IHVwbG9hZFRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuQ09OVEVYVF9UUkVFKSB7XHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiB1cGxvYWQgdG8gY29udGV4dCBmb2xkZXIsIG1lYW5zIGFkZGluZyBhIG5ldyBkbXMgb2JqZWN0IHRvIGEgc3BlY2lmaWNcclxuICAgICAgICogY29udGV4dCBmb2xkZXIgLi4uXHJcbiAgICAgICAqIC4uLiBpZiB3ZSBnb3QgYSBzdWJGb2xkZXIgKG5vZGUgZnJvbSB0aGUgY29udGV4dCB0cmVlKSBzZXQgdXAgd2UnbGwgYWRkIHRoYXQgdG9vXHJcbiAgICAgICAqXHJcbiAgICAgICAqIEB0eXBlIHN0cmluZ1xyXG4gICAgICAgKi9cclxuICAgICAgdXJpID0gdGhpcy5iYWNrZW5kLmdldFNlcnZpY2VCYXNlKCkgKyB0aGlzLmNyZWF0ZVByZXBhcmVkSXRlbVBvc3RVcmwoe1xyXG4gICAgICAgIHBhcmVudElkOiB1cGxvYWRUYXJnZXQucmVmZXJlbmNlT2JqZWN0LmlkLFxyXG4gICAgICAgIGNyZWF0ZU1hbnk6ICF1c2VCYXRjaFVwbG9hZCxcclxuICAgICAgICBjaGlsZFR5cGU6IHVwbG9hZFRhcmdldC5zdWJGb2xkZXIgJiYgdXBsb2FkVGFyZ2V0LnN1YkZvbGRlci5kYXRhLnR5cGUgPyB1cGxvYWRUYXJnZXQuc3ViRm9sZGVyLmRhdGEudHlwZSA6IG51bGxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdXJpO1xyXG4gIH1cclxufVxyXG4iXX0=
300
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL3ByZXBhcmUvcHJlcGFyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQWEsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsWUFBWSxFQUF1QixNQUFNLGlDQUFpQyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFpQjdEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFVekIsWUFBb0IsT0FBdUIsRUFDdkIsYUFBNEI7UUFENUIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFSeEMsd0JBQW1CLEdBQUcsSUFBSSxhQUFhLENBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQzVELG1CQUFjLEdBQStCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUdwRiw0QkFBdUIsR0FBRyxJQUFJLGFBQWEsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUN4RCx1QkFBa0IsR0FBdUIsSUFBSSxDQUFDLHVCQUF1QixDQUFD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LEVBQUU7Z0JBQ3pDLFVBQVUsRUFBRSxDQUFDLGNBQWM7Z0JBQzNCLFNBQVMsRUFBRSxZQUFZLENBQUMsU0FBUyxJQUFJLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO2FBQ2hILENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSx5QkFBeUIsQ0FBQyxjQUFzQixFQUFFLEtBQWM7UUFDckUsTUFBTSxHQUFHLEdBQUcsWUFBWSxjQUFjLFVBQVUsR0FBRyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xHLE9BQU8sSUFBSSxDQUFDLE9BQU87YUFDaEIsR0FBRyxDQUFDLEdBQUcsQ0FBQzthQUNSLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNsQyxDQUFDO0lBQ04sQ0FBQzs7O1lBbFZGLFVBQVU7OztZQXpCSCxjQUFjO1lBSWQsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7bWVyZ2VNYXAsIG1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xyXG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlfSBmcm9tICcuLi9iYWNrZW5kL2JhY2tlbmQuc2VydmljZSc7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7T2JqZWN0VHlwZX0gZnJvbSAnLi4vLi4vbW9kZWwvb2JqZWN0LXR5cGUubW9kZWwnO1xyXG5pbXBvcnQge1ByZXBhcmVkSXRlbSwgUHJlcGFyZWRJdGVtVGVtcGxhdGV9IGZyb20gJy4uLy4uL21vZGVsL3ByZXBhcmVkLWl0ZW0ubW9kZWwnO1xyXG5pbXBvcnQge1VwbG9hZFNlcnZpY2V9IGZyb20gJy4uL3VwbG9hZC91cGxvYWQuc2VydmljZSc7XHJcbmltcG9ydCB7VXBsb2FkVGFyZ2V0fSBmcm9tICcuLi8uLi9tb2RlbC91cGxvYWQtdGFyZ2V0Lm1vZGVsJztcclxuaW1wb3J0IHtVcGxvYWRGaWxlSXRlbX0gZnJvbSAnLi4vLi4vbW9kZWwvdXBsb2FkLWZpbGUtaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7SVByZXBhcmVDaGlsZFR5cGVzfSBmcm9tICcuL29iamVjdFR5cGVzLmludGVyZmFjZSc7XHJcblxyXG4vKipcclxuICogQGlnbm9yZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBQcmVwYXJlZFBvc3RQYXJhbSB7XHJcbiAgcGFyZW50SWQ6IHN0cmluZztcclxuICAvKipcclxuICAgKiBmbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdG8gY3JlYXRlIG9uZSBQcmVwYXJlZEl0ZW0gdXNpbmcgbXVsdGlwbGUgZmlsZXMgdXBsb2FkZWQgKGZhbHNlKVxyXG4gICAqIG9yIGNyZWF0aW5nIGEgUHJlcGFyZWRJdGVtIGZvciBlYWNoIGZpbGUgcG9zdGVkIHRvIHRoZSBVUkwgKHRydWUpXHJcbiAgICovXHJcbiAgY3JlYXRlTWFueT86IGJvb2xlYW47XHJcbiAgY2hpbGRUeXBlPzogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogQ29sbGVjdGlvbiBvZiBQcmVwYXJlIFNlcnZpY2VzXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBQcmVwYXJlU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgcHJlcGFyZWRJdGVtczogUHJlcGFyZWRJdGVtW107XHJcbiAgcHJpdmF0ZSBwcmVwYXJlZEl0ZW1zU291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8UHJlcGFyZWRJdGVtW10+KDEpO1xyXG4gIHB1YmxpYyBwcmVwYXJlZEl0ZW1zJDogT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW1bXT4gPSB0aGlzLnByZXBhcmVkSXRlbXNTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHByaXZhdGUgcHJlcGFyZWRJdGVtQ291bnQ6IG51bWJlcjtcclxuICBwcml2YXRlIHByZXBhcmVkSXRlbUNvdW50U291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8bnVtYmVyPigxKTtcclxuICBwdWJsaWMgcHJlcGFyZWRJdGVtQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj4gPSB0aGlzLnByZXBhcmVkSXRlbUNvdW50U291cmNlLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgdXBsb2FkU2VydmljZTogVXBsb2FkU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHVibGljIEZldGNoIFByZXBhcmUgaXRlbXNcclxuICAgKi9cclxuICByZWZyZXNoUHJlcGFyZWRJdGVtc0NvdW50KCkge1xyXG4gICAgdGhpcy5mZXRjaFByZXBhcmVkSXRlbXNDb3VudCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgbnVtYmVyIG9mIHByZXBhcmVkIGl0ZW1zIGZvciB0aGUgY3VycmVudCB1c2VyLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZmV0Y2hQcmVwYXJlZEl0ZW1zQ291bnQoKSB7XHJcbiAgICB0aGlzLmJhY2tlbmQuZ2V0SnNvbignL3ByZXBhcmUvc3RhdGUnKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlcykgPT4gcmVzLmNvdW50KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMucHJlcGFyZWRJdGVtQ291bnQgPSByZXM7XHJcbiAgICAgICAgdGhpcy5wcmVwYXJlZEl0ZW1Db3VudFNvdXJjZS5uZXh0KHRoaXMucHJlcGFyZWRJdGVtQ291bnQpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBwcmVwYXJlZCBpdGVtIG9uIHRoZSBiYWNrZWQgc2lkZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwYXJlbnRJZCBUaGUgSUQgb2YgdGhlIHBhcmVudCBkbXMgb2JqZWN0IHRvIGFkZCB0aGUgcHJlcGFyZWQgaXRlbSB0b1xyXG4gICAqIEBwYXJhbSBjaGlsZFR5cGUgVGhlIHR5cGUgb2Ygb2JqZWN0IHRvIGJlIGNyZWF0ZWRcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cclxuICAgKi9cclxuICBwdWJsaWMgY3JlYXRlUHJlcGFyZWRJdGVtKHBhcmVudElkOiBzdHJpbmcsIGNoaWxkVHlwZT86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAucG9zdCh0aGlzLmNyZWF0ZVByZXBhcmVkSXRlbVBvc3RVcmwoe1xyXG4gICAgICAgIHBhcmVudElkOiBwYXJlbnRJZCxcclxuICAgICAgICBjaGlsZFR5cGU6IGNoaWxkVHlwZSA/IGNoaWxkVHlwZSA6IG51bGxcclxuICAgICAgfSksIHt9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5nZXRQcmVwYXJlZEl0ZW1zJCgpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcHJlcGFyZWRJdGVtSWRcclxuICAgKiBAcGFyYW0gZGF0YVxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxyXG4gICAqL1xyXG4gIHB1YmxpYyB1cGRhdGVQcmVwYXJlZEl0ZW1JbmRleERhdGEocHJlcGFyZWRJdGVtSWQsIGRhdGEpIHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLnB1dCgnL3ByZXBhcmUvJyArIHByZXBhcmVkSXRlbUlkLCBkYXRhKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5nZXRQcmVwYXJlZEl0ZW1zJCgpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhbiBVUkwgZm9yIGNyZWF0aW5nIGEgUHJlcGFyZWRJdGVtLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmFtcyBQYXJhbXMgZm9yIGdlbmVyYXRpbmcgYXBwcm9wcmlhdGUgdXJpLlxyXG4gICAqIEByZXR1cm5zIHN0cmluZyBBIFBPU1QgVVJMIGZvciBjcmVhdGluZyBQcmVwYXJlZEl0ZW1zXHJcbiAgICovXHJcbiAgcHVibGljIGNyZWF0ZVByZXBhcmVkSXRlbVBvc3RVcmwocGFyYW1zOiBQcmVwYXJlZFBvc3RQYXJhbSk6IHN0cmluZyB7XHJcblxyXG4gICAgbGV0IHVybCA9IHBhcmFtcy5jcmVhdGVNYW55ID8gJy9wcmVwYXJlL2NyZWF0ZW1hbnknIDogJy9wcmVwYXJlL2NyZWF0ZSc7XHJcbiAgICBpZiAocGFyYW1zKSB7XHJcbiAgICAgIHVybCA9IFV0aWxzLmJ1aWxkVXJpKHVybCwgcGFyYW1zKTtcclxuICAgIH1cclxuICAgIHJldHVybiB1cmw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIHRoZSB1c2VycyBwcmVwYXJlZCBpdGVtcy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBub0Zvcm1zIElmIHNldCB0byB0cnVlIHRoZSBwcmVwYXJlZCBpdGVtcyB3aWxsIGJlIGZldGNoZWQgd2l0aG91dCB0aGUgZm9ybSB3aGljaCBpcyBmYXN0ZXJcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbVtdPiBBIGNvbGxlY3Rpb24gb2YgcHJlcGFyZWQgaXRlbSBvYmplY3RzXHJcbiAgICovXHJcbiAgcHVibGljIGdldFByZXBhcmVkSXRlbXMkKG5vRm9ybXM/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW1bXT4ge1xyXG4gICAgdGhpcy5mZXRjaFByZXBhcmVkSXRlbXMobm9Gb3Jtcykuc3Vic2NyaWJlKCk7XHJcbiAgICByZXR1cm4gdGhpcy5wcmVwYXJlZEl0ZW1zJDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIFByZXBhcmVJdGVtcyBhbmQgZm9ybSB0aGVtXHJcbiAgICpcclxuICAgKiBAcGFyYW0gYm9vbGVhbiBub0Zvcm1zXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW1bXT5cclxuICAgKi9cclxuICBwcml2YXRlIGZldGNoUHJlcGFyZWRJdGVtcyhub0Zvcm1zPzogYm9vbGVhbik6IE9ic2VydmFibGU8UHJlcGFyZWRJdGVtW10+IHtcclxuICAgIGxldCB1cmkgPSAobm9Gb3JtcykgPyAnL3ByZXBhcmUnIDogJy9wcmVwYXJlP2Zvcm09dHJ1ZSc7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5nZXRKc29uKHVyaSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXM6IGFueSkgPT4gcmVzLm1hcChpID0+IG5ldyBQcmVwYXJlZEl0ZW0oaSkpKSxcclxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5mZXRjaFByZXBhcmVkSXRlbXNDb3VudCgpKSxcclxuICAgICAgICB0YXAoKHByZXBhcmVkSXRlbXM6IFByZXBhcmVkSXRlbVtdKSA9PiB0aGlzLnByZXBhcmVkSXRlbXNTb3VyY2UubmV4dChwcmVwYXJlZEl0ZW1zLnNvcnQoVXRpbHMuc29ydFZhbHVlcygnY3JlYXRlZCcsICdkZXNjJykpKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgYSBwcmVwYXJlZCBpdGVtLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHByZXBhcmVkSXRlbUlkIElEIG9mIHRoZSBpdGVtIHRvIGJlIHJlbW92ZWRcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT4gU2VydmVyIHJlc3BvbnNlXHJcbiAgICovXHJcbiAgZGVsZXRlUHJlcGFyZWRJdGVtKHByZXBhcmVkSXRlbUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAuZGVsKGAvcHJlcGFyZS8ke3ByZXBhcmVkSXRlbUlkfWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmdldFByZXBhcmVkSXRlbXMkKCkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGEgbGlzdCBvZiBvYmplY3QgdHlwZXMgYWxsb3dlZCB0byBiZSBwbGFjZWQgZGlyZWN0bHkgYmVsb3cgcm9vdC5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8T2JqZWN0VHlwZVtdPiBBIGxpc3Qgb2Ygc3VwcG9ydGVkIG9iamVjdCB0eXBlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRQcmVwYXJlUm9vdFR5cGVzKCk6IE9ic2VydmFibGU8T2JqZWN0VHlwZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5nZXRWaWFUZW1wQ2FjaGUoJy9wcmVwYXJlL3R5cGVzJylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXMpID0+IHJlcy50eXBlcy5tYXAoKHR5cGUpID0+IG5ldyBPYmplY3RUeXBlKHR5cGUpKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYSBsaXN0IG9mIGFsbG93ZWQgY2hpbGQgb2JqZWN0IHR5cGVzIGZvciBhIHNlbGVjdGVkIHBhcmVudC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwYXJlbnRJZCBUaGUgaWQgb2YgdGhlIHBhcmVudCBkbXMgb2JqZWN0IChjb250ZXh0IGZvbGRlcilcclxuICAgKiBAcGFyYW0gd2l0aENvbnRlbnRPbmx5IElmIHNldCB0byB0cnVlIG9ubHkgY2hpbGQgdHlwZXMsIHRoYXQgc3VwcG9ydCBjb250ZW50IGFyZSByZXR1cm5lZC5cclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPElQcmVwYXJlQ2hpbGRUeXBlcz4gQSBsaXN0IG9mIHN1cHBvcnRlZCBvYmplY3QgdHlwZXNcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0UHJlcGFyZUNoaWxkVHlwZXMocGFyZW50SWQ6IHN0cmluZywgd2l0aENvbnRlbnRPbmx5PzogYm9vbGVhbik6IE9ic2VydmFibGU8SVByZXBhcmVDaGlsZFR5cGVzPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBwYXJlbnRJZCA/IHtwYXJlbnRJZCwgd2l0aGNvbnRlbnQ6IHdpdGhDb250ZW50T25seX0gOiB7d2l0aGNvbnRlbnQ6IHdpdGhDb250ZW50T25seX1cclxuICAgIGNvbnN0IHVyaSA9IFV0aWxzLmJ1aWxkVXJpKCcvcHJlcGFyZS90eXBlcycsIHBhcmFtcyk7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5nZXRWaWFUZW1wQ2FjaGUodXJpKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAocmVzID0+ICh7cGFyZW50OiByZXMucGFyZW50LCB0eXBlczogcmVzLnR5cGVzLm1hcCgodHlwZSkgPT4gbmV3IE9iamVjdFR5cGUodHlwZSkpfSkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBmZXRjaCB0aGUgcHJldmlldyB1cmkgZm9yIGEgcHJlcGFyZWQgaXRlbVxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgcHJlcGFyZWQgaXRlbVxyXG4gICAqIEBwYXJhbSBpbmRleCBXaGVuIGEgcHJlcGFyZWQgaXRlbSBjb250YWlucyBtb3JlIHRoYW4gb25lIGNvbnRlbnRzLCB0aGUgaW5kZXggc3BlY2lmaWVzIHdoaWNoIGNvbnRlbnRcclxuICAgKiBAcGFyYW0gcmVuZGl0aW9uIFRhcmdldCByZW5kaXRpb24gKFBERilcclxuICAgKiB0byByZXRyaWV2ZSB0aGUgcHJldmlldyB1cmkgZm9yXHJcbiAgICogQHJldHVybnMgc3RyaW5nIFByZXZpZXcgdXJpXHJcbiAgICovXHJcbiAgcHVibGljIGdldFByZXZpZXdVcmkoaWQ6IHN0cmluZywgaW5kZXg/OiBudW1iZXIsIHJlbmRpdGlvbj86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gVXRpbHMuYnVpbGRVcmkoYCR7dGhpcy5iYWNrZW5kLmdldFNlcnZpY2VCYXNlKCl9L3ByZXBhcmUvJHtpZH0vY29udGVudGAsIHtyZW5kaXRpb24sIGluZGV4fSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBwcmVwYXJlZCBpdGVtcyB0YXJnZXQgb2JqZWN0IHR5cGUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gb2JqZWN0VHlwZSBUaGUgdGFyZ2V0IG9iamVjdCB0eXBlcyBuYW1lXHJcbiAgICogQHBhcmFtIHByZXBhcmVkSXRlbUlkIFRoZSBpZCBvZiB0aGUgcHJlcGFyZWQgaXRlbSB0byBzZXQgdGhlIHR5cGUgZm9yXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW0+IFRoZSB1cGRhdGVkIHByZXBhcmVkIGl0ZW1cclxuICAgKi9cclxuICBwdWJsaWMgdXBkYXRlQ2hpbGRUeXBlKG9iamVjdFR5cGU6IHN0cmluZywgcHJlcGFyZWRJdGVtSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8UHJlcGFyZWRJdGVtPiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5wdXQoYC9wcmVwYXJlLyR7cHJlcGFyZWRJdGVtSWR9LyR7b2JqZWN0VHlwZX0/Zm9ybT10cnVlJmNvbnRlbnRtZXRhPXRydWVgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAocmVzID0+IG5ldyBQcmVwYXJlZEl0ZW0ocmVzKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBhIHRlbXBsYXRlIHRvIGEgcHJlcGFyZWQgaXRlbS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwcmVwYXJlZEl0ZW1JZCBUaGUgaWQgb2YgdGhlIHByZXBhcmVkIGl0ZW0gdG8gYWRkIHRoZSB0ZW1wbGF0ZSB0b1xyXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZUlkIFRoZSBpZCBvZiB0aGUgdGVtcGxhdGUgdG8gYmUgYWRkZWRcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbT4gIFRoZSB1cGRhdGVkIHByZXBhcmVkIGl0ZW1cclxuICAgKi9cclxuICBwdWJsaWMgYWRkVGVtcGxhdGUocHJlcGFyZWRJdGVtSWQsIHRlbXBsYXRlSWQpOiBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAucHV0KGAvcHJlcGFyZS8ke3ByZXBhcmVkSXRlbUlkfS90ZW1wbGF0ZT90ZW1wbGF0ZWlkPSR7dGVtcGxhdGVJZH1gKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAocmVzID0+IG5ldyBQcmVwYXJlZEl0ZW0ocmVzKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYSBsaXN0IG9mIGF2YWlsYWJsZSB0ZW1wbGF0ZXMgZm9yIGEgZ2l2ZW4gb2JqZWN0IHR5cGUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW1UZW1wbGF0ZVtdPiBvYmplY3RUeXBlTmFtZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRUZW1wbGF0ZXMob2JqZWN0VHlwZU5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8UHJlcGFyZWRJdGVtVGVtcGxhdGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAuZ2V0SnNvbignL3RlbXBsYXRlL2xpc3Q/dHlwZT0nICsgb2JqZWN0VHlwZU5hbWUpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzOiBhbnkpID0+IHJlcyBhcyBQcmVwYXJlZEl0ZW1UZW1wbGF0ZVtdKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB1cmwgb2YgYSB0ZW1wbGF0ZSBwcmV2aWV3XHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgVGVtcGxhdGUgSURcclxuICAgKiBAcGFyYW0gcmVuZGl0aW9uIFRhcmdldCByZW5kaXRpb24gKFBERilcclxuICAgKiBAcmV0dXJucyBzdHJpbmcgVGhlIHRlbXBsYXRlIHByZXZpZXcgdXJsLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRUZW1wbGF0ZVByZXZpZXdVcmkoaWQsIHJlbmRpdGlvbj86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gVXRpbHMuYnVpbGRVcmkoYCR7dGhpcy5iYWNrZW5kLmdldFNlcnZpY2VCYXNlKCl9L3RlbXBsYXRlLyR7aWR9L2NvbnRlbnRgLCB7cmVuZGl0aW9ufSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb21taXQgYSBwcmVwYXJlZCBpdGVtLiBUaGlzIHdpbGwgY3JlYXRlIGFuIGFjdHVhbCBkbXMgb2JqZWN0LlxyXG4gICAqIFVwZGF0ZXMgdGhlIHByZXBhcmVkIGNyZWF0aW9uIG9iamVjdCB0YXJnZXQgdHlwZVxyXG4gICAqXHJcbiAgICogQHBhcmFtIHByZXBhcmVkSXRlbUlkIElEIG9mIHRoZSBwcmVwYXJlZCBpdGVtXHJcbiAgICogQHBhcmFtIHByZXBhcmVkSXRlbVR5cGUgTmFtZSBvZiB0aGUgcHJlcGFyZWQgaXRlbXMgdGFyZ2V0IG9iamVjdCB0eXBlXHJcbiAgICogQHBhcmFtIHByZXBhcmVkSXRlbURhdGEgT2JqZWN0IGhvbGRpbmcgZGF0YSBvZiB0aGUgcHJlcGFyZWQgaXRlbVxyXG4gICAqIEByZXR1cm5zIFRoZSBpZCBvZiB0aGUgY3JlYXRlZCBkbXMgb2JqZWN0XHJcbiAgICovXHJcbiAgcHVibGljIGNvbW1pdFByZXBhcmVkSXRlbShwcmVwYXJlZEl0ZW1JZCwgcHJlcGFyZWRJdGVtVHlwZSwgcHJlcGFyZWRJdGVtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5wdXQoYC9wcmVwYXJlLyR7cHJlcGFyZWRJdGVtSWR9LyR7cHJlcGFyZWRJdGVtVHlwZX1gKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtZXJnZU1hcCgoKSA9PiB0aGlzLmJhY2tlbmQucG9zdChgL3ByZXBhcmUvY29tbWl0LyR7cHJlcGFyZWRJdGVtSWR9YCwgcHJlcGFyZWRJdGVtRGF0YSkpLFxyXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmdldFByZXBhcmVkSXRlbXMkKCkpLFxyXG4gICAgICAgIG1hcChyZXMgPT4gcmVzLmlkKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBsb2FkIENvbnRlbnRcclxuICAgKlxyXG4gICAqIEBwYXJhbSBzdHJpbmcgcHJlcGFyZWRJdGVtSWRcclxuICAgKiBAcGFyYW0gRmlsZSBmaWxlXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XHJcbiAgICovXHJcbiAgdXBsb2FkQ29udGVudChwcmVwYXJlZEl0ZW1JZDogc3RyaW5nLCBmaWxlOiBGaWxlKSB7XHJcbiAgICBjb25zdCB1cmkgPSBgJHt0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKX0vcHJlcGFyZS8ke3ByZXBhcmVkSXRlbUlkfS9jb250ZW50Lmpzb24/Zm9ybT10cnVlJmNvbnRlbnRtZXRhPXRydWVgO1xyXG4gICAgcmV0dXJuIHRoaXMudXBsb2FkU2VydmljZVxyXG4gICAgICAudXBsb2FkKHVyaSwgW2ZpbGVdKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICAvLyB0YXAoKCkgPT4gdGhpcy5nZXRQcmVwYXJlZEl0ZW1zJCgpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBsb2FkcyBmaWxlcyB0byBhbiB1cGxvYWQgdGFyZ2V0LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHVwbG9hZFRhcmdldCBUaGUgdXBsb2FkIHRhcmdldCB0byB1cGxvYWQgZmlsZXMgdG9cclxuICAgKiBAcGFyYW0gdXBsb2FkRmlsZXMgRmlsZXMgdG8gYmUgdXBsb2FkZWRcclxuICAgKiBAcGFyYW0gdXNlQmF0Y2hVcGxvYWQgRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHRvIHVzZSBiYXRjaCBwcm9jZXNzaW5nIG9uIHRoZSBiYWNrZW5kIHNpZGVcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cclxuICAgKi9cclxuICB1cGxvYWRUb1RhcmdldCh1cGxvYWRUYXJnZXQ6IFVwbG9hZFRhcmdldCwgdXBsb2FkRmlsZXM6IFVwbG9hZEZpbGVJdGVtW10sIHVzZUJhdGNoVXBsb2FkPzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XHJcblxyXG4gICAgY29uc3QgZmlsZXMgPSB1cGxvYWRGaWxlcy5tYXAoZiA9PiBmLl9maWxlKTtcclxuICAgIHJldHVybiB0aGlzLnVwbG9hZFNlcnZpY2VcclxuICAgICAgLnVwbG9hZCh0aGlzLmdldFVwbG9hZFRhcmdldCh1cGxvYWRUYXJnZXQsIHVzZUJhdGNoVXBsb2FkKSwgZmlsZXMpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmdldFByZXBhcmVkSXRlbXMkKCkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIHVyaSB0byBwb3N0IGZpbGVzIHRvIGJhc2VkIG9uIHRoZSB1cGxvYWQgdGFyZ2V0LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHVwbG9hZFRhcmdldCBUaGUgdGFyZ2V0IHRvIHVwbG9hZCBmaWxlcyB0b1xyXG4gICAqIEBwYXJhbSB1c2VCYXRjaFVwbG9hZCBGbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdG8gdXBsb2FkIGFsbCBmaWxlcyBpbiBhIHNpbmdsZSBwb3N0XHJcbiAgICogQHJldHVybnMgc3RyaW5nIHRoZSB1cmlcclxuICAgKi9cclxuICBwcml2YXRlIGdldFVwbG9hZFRhcmdldCh1cGxvYWRUYXJnZXQ6IFVwbG9hZFRhcmdldCwgdXNlQmF0Y2hVcGxvYWQ/OiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgIGxldCB1cmk7XHJcblxyXG4gICAgaWYgKHVwbG9hZFRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuUk9PVCkge1xyXG4gICAgICAvKipcclxuICAgICAgICogdXBsb2FkIHRvIGdlbmVyYWwgZmlsaW5nIGxvY2F0aW9uXHJcbiAgICAgICAqXHJcbiAgICAgICAqIEB0eXBlIHN0cmluZ1xyXG4gICAgICAgKi9cclxuICAgICAgdXJpID0gdGhpcy5iYWNrZW5kLmdldFNlcnZpY2VCYXNlKCkgKyB0aGlzLmNyZWF0ZVByZXBhcmVkSXRlbVBvc3RVcmwoe1xyXG4gICAgICAgICAgcGFyZW50SWQ6IG51bGwsXHJcbiAgICAgICAgICBjcmVhdGVNYW55OiAhdXNlQmF0Y2hVcGxvYWRcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcblxyXG4gICAgfSBlbHNlIGlmICh1cGxvYWRUYXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0Lk9CSkVDVCkge1xyXG4gICAgICAvKipcclxuICAgICAgICogdXBsb2FkIHRvIGRtcyBvYmplY3QsIG1lYW5zIGFkZGluZyBvciByZXBsYWNpbmcgY29udGVudCBmaWxlXHJcbiAgICAgICAqL1xyXG4gICAgICBjb25zdCB7cmVmZXJlbmNlT2JqZWN0fSA9IHVwbG9hZFRhcmdldDtcclxuICAgICAgdXJpID0gYCR7dGhpcy5iYWNrZW5kLmdldFNlcnZpY2VCYXNlKCl9L2Rtcy8ke3JlZmVyZW5jZU9iamVjdC5pZH0vY29udGVudHM/dHlwZT0ke3JlZmVyZW5jZU9iamVjdC50eXBlLm5hbWV9YDtcclxuXHJcbiAgICB9IGVsc2UgaWYgKHVwbG9hZFRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuQ09OVEVYVCB8fCB1cGxvYWRUYXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0LkNPTlRFWFRfVFJFRSkge1xyXG4gICAgICAvKipcclxuICAgICAgICogdXBsb2FkIHRvIGNvbnRleHQgZm9sZGVyLCBtZWFucyBhZGRpbmcgYSBuZXcgZG1zIG9iamVjdCB0byBhIHNwZWNpZmljXHJcbiAgICAgICAqIGNvbnRleHQgZm9sZGVyIC4uLlxyXG4gICAgICAgKiAuLi4gaWYgd2UgZ290IGEgc3ViRm9sZGVyIChub2RlIGZyb20gdGhlIGNvbnRleHQgdHJlZSkgc2V0IHVwIHdlJ2xsIGFkZCB0aGF0IHRvb1xyXG4gICAgICAgKlxyXG4gICAgICAgKiBAdHlwZSBzdHJpbmdcclxuICAgICAgICovXHJcbiAgICAgIHVyaSA9IHRoaXMuYmFja2VuZC5nZXRTZXJ2aWNlQmFzZSgpICsgdGhpcy5jcmVhdGVQcmVwYXJlZEl0ZW1Qb3N0VXJsKHtcclxuICAgICAgICBwYXJlbnRJZDogdXBsb2FkVGFyZ2V0LnJlZmVyZW5jZU9iamVjdC5pZCxcclxuICAgICAgICBjcmVhdGVNYW55OiAhdXNlQmF0Y2hVcGxvYWQsXHJcbiAgICAgICAgY2hpbGRUeXBlOiB1cGxvYWRUYXJnZXQuc3ViRm9sZGVyICYmIHVwbG9hZFRhcmdldC5zdWJGb2xkZXIuZGF0YS50eXBlID8gdXBsb2FkVGFyZ2V0LnN1YkZvbGRlci5kYXRhLnR5cGUgOiBudWxsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVyaTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgYSBwcmVwYXJlZCBjcmVhdGlvbiBvYmplY3QgY29udGVudCBlbGVtZW50IGJ5IGluZGV4IG9yIHRoZSBjb21wbGV0ZSBjb250ZW50LlxyXG4gICAqIElmIHlvdSBwcm92aWRlIGFuIGluZGV4IHRoZSBjb250ZW50IGNvbnNpc3RzIG9ubHkgb2Ygb25lIGVsZW1lbnQsXHJcbiAgICogdGhlIGNvbnRlbnQgaXMgY29tcGxldGVseSByZW1vdmVkIGZyb20gdGhlIHByZXBhcmVkIGNyZWF0aW9uIG9iamVjdC5cclxuICAgKiBcclxuICAgKiBAcGFyYW0gcHJlcGFyZWRJdGVtSWQgSUQgb2YgdGhlIGl0ZW0gd2l0aCB0aGUgY29udGVudCB0byBiZSByZW1vdmVkXHJcbiAgICogQHBhcmFtIGluZGV4IFBhcmFtZXRlciB0aGF0IGRldGVybWluZXMgd2hpY2ggY29udGVudCBlbGVtZW50IHNob3VsZCBiZSBkZWxldGVkLlxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8UHJlcGFyZWRJdGVtPiBUaGUgdXBkYXRlZCBwcmVwYXJlZCBpdGVtXHJcbiAgICovXHJcbiAgcHVibGljIGRlbGV0ZVByZXBhcmVkSXRlbUNvbnRlbnQocHJlcGFyZWRJdGVtSWQ6IHN0cmluZywgaW5kZXg/OiBudW1iZXIpOiBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbT4ge1xyXG4gICAgY29uc3QgdXJsID0gYC9wcmVwYXJlLyR7cHJlcGFyZWRJdGVtSWR9L2NvbnRlbnRgICsgKGluZGV4ICE9PSB1bmRlZmluZWQgPyBgP2luZGV4PSR7aW5kZXh9YCA6ICcnKTtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLmRlbCh1cmwpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChyZXMgPT4gbmV3IFByZXBhcmVkSXRlbShyZXMpKVxyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -23,6 +23,8 @@ import localeRu from '@angular/common/locales/ru';
23
23
  import localeExtraRu from '@angular/common/locales/extra/ru';
24
24
  import localeIt from '@angular/common/locales/it';
25
25
  import localeExtraIt from '@angular/common/locales/extra/it';
26
+ import localeNl from '@angular/common/locales/nl';
27
+ import localeExtraNl from '@angular/common/locales/extra/nl';
26
28
  import localeSk from '@angular/common/locales/sk';
27
29
  import localeExtraSk from '@angular/common/locales/extra/sk';
28
30
  import localePl from '@angular/common/locales/pl';
@@ -110,6 +112,7 @@ class EoxTranslateJsonLoader {
110
112
  registerLocaleData(localeLv, 'lv', localeExtraLv); // Latvian
111
113
  registerLocaleData(localeRu, 'ru', localeExtraRu); // Russian
112
114
  registerLocaleData(localeIt, 'it', localeExtraIt); // Italian
115
+ registerLocaleData(localeNl, 'nl', localeExtraNl); // Dutch
113
116
  registerLocaleData(localeSk, 'sk', localeExtraSk); // Slovak
114
117
  registerLocaleData(localePl, 'pl', localeExtraPl); // Polish
115
118
  registerLocaleData(localeUk, 'uk', localeExtraUk); // Ukrainian
@@ -855,7 +858,7 @@ class BackendService {
855
858
  this.http = http;
856
859
  this.logger = logger;
857
860
  this.config = config;
858
- this.gridDataFilter = filter((v) => !v.__removed);
861
+ this.gridDataFilter = map((data) => data === null || data === void 0 ? void 0 : data.filter((v) => !v.__removed));
859
862
  this.cache = new Map();
860
863
  this.temp = new Map();
861
864
  this.headers = this.setDefaultHeaders();
@@ -2207,6 +2210,21 @@ class PrepareService {
2207
2210
  }
2208
2211
  return uri;
2209
2212
  }
2213
+ /**
2214
+ * Deletes a prepared creation object content element by index or the complete content.
2215
+ * If you provide an index the content consists only of one element,
2216
+ * the content is completely removed from the prepared creation object.
2217
+ *
2218
+ * @param preparedItemId ID of the item with the content to be removed
2219
+ * @param index Parameter that determines which content element should be deleted.
2220
+ * @returns Observable<PreparedItem> The updated prepared item
2221
+ */
2222
+ deletePreparedItemContent(preparedItemId, index) {
2223
+ const url = `/prepare/${preparedItemId}/content` + (index !== undefined ? `?index=${index}` : '');
2224
+ return this.backend
2225
+ .del(url)
2226
+ .pipe(map(res => new PreparedItem(res)));
2227
+ }
2210
2228
  }
2211
2229
  PrepareService.decorators = [
2212
2230
  { type: Injectable }
@@ -2511,8 +2529,6 @@ class WorkItemHistoryEntry {
2511
2529
  * @param json The JSON object received from the backend. This will be used to construct the new work item history instance
2512
2530
  */
2513
2531
  constructor(json) {
2514
- this.TYPE_DEADLINE_START = 'deadline_start';
2515
- this.TYPE_DEADLINE_REACHED = 'deadline_reached';
2516
2532
  this.title = json.activityName;
2517
2533
  this.description = json.description;
2518
2534
  this.number = json.number;
@@ -2529,7 +2545,7 @@ class WorkItemHistoryEntry {
2529
2545
  this.data = {
2530
2546
  periodFireTime: json.periodFireTime
2531
2547
  };
2532
- this.type = this.TYPE_DEADLINE_START;
2548
+ this.type = json.type;
2533
2549
  break;
2534
2550
  }
2535
2551
  // deadline reached
@@ -2540,7 +2556,7 @@ class WorkItemHistoryEntry {
2540
2556
  this.data = {
2541
2557
  periodFireTime: json.periodFireTime
2542
2558
  };
2543
- this.type = this.TYPE_DEADLINE_REACHED;
2559
+ this.type = json.type;
2544
2560
  break;
2545
2561
  }
2546
2562
  }
@@ -3579,13 +3595,7 @@ class DmsObjectHistoryEntry {
3579
3595
  this.type = json.type;
3580
3596
  this.user = json.user;
3581
3597
  if (json.parameter) {
3582
- this.parameter = {
3583
- processId: json.parameter.procId,
3584
- processName: json.parameter.procName,
3585
- activityId: json.parameter.actId,
3586
- activityName: json.parameter.actName,
3587
- type: json.parameter.type
3588
- };
3598
+ this.parameter = Object.assign(Object.assign({}, json.parameter), { processId: json.parameter.procId, processName: json.parameter.procName, activityId: json.parameter.actId, activityName: json.parameter.actName });
3589
3599
  }
3590
3600
  }
3591
3601
  }