fantasy-ngzorro 2.2.6 → 2.2.8

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.
@@ -58,6 +58,8 @@ export class HdFormComponent {
58
58
  */
59
59
  ngOnInit() {
60
60
  if (!this.formList || this.formList.length === 0) {
61
+ // 模板始终绑定 [formGroup],空列表时也必须有 FormGroup 实例
62
+ this.validateHdForm = this.fb.group({});
61
63
  return;
62
64
  }
63
65
  this.init();
@@ -71,6 +73,7 @@ export class HdFormComponent {
71
73
  JSON.stringify(changes["formList"].currentValue) !==
72
74
  JSON.stringify(changes["formList"].previousValue)) {
73
75
  if (!this.formList || this.formList.length === 0) {
76
+ this.validateHdForm = this.fb.group({});
74
77
  return;
75
78
  }
76
79
  this.init();
@@ -689,4 +692,4 @@ if (false) {
689
692
  */
690
693
  HdFormComponent.prototype.fb;
691
694
  }
692
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9mYW50YXN5LW5nem9ycm8vIiwic291cmNlcyI6WyJoZC1mb3JtL2hkLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBWSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixxQkFBcUIsR0FDdEIsTUFBTSx3QkFBd0IsQ0FBQzs7QUFPaEMsTUFBTSxPQUFPLGVBQWU7Ozs7SUFjMUIsWUFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7UUFaekIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSW5DLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7UUFDdkQsb0JBQWUsR0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBR3RDLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO1FBQzNELDhCQUF5QixHQUFXLENBQUMsQ0FBQztRQWtlckMsZ0NBQTJCOzs7O1FBQUcsQ0FBQyxLQUFjLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBQztRQUN4RCw2QkFBd0I7Ozs7UUFBRyxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFDO1FBRTdELDBCQUFxQixHQUFHLHFCQUFxQixDQUFDO1FBQzlDLDZCQUF3QixHQUFHLHdCQUF3QixDQUFDO1FBQ3BELHlC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IElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IEZvcm1JdGVtLCBGb3JtTGlzdFR5cGUgfSBmcm9tIFwiLi9oZC1mb3JtLnNlcnZpY2VcIjtcbmltcG9ydCB7XG4gIGdldENhc2NhZGVyTWVudUNsYXNzTmFtZSxcbiAgZ2V0Q2FzY2FkZXJNZW51U3R5bGUsXG4gIGdldENhc2NhZGVyU2hvd1NlYXJjaCxcbn0gZnJvbSBcIi4uL3V0aWxzL2Nhc2NhZGVyLnV0aWxcIjtcbi8vIGltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImhkLWZvcm1cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9oZC1mb3JtLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9oZC1mb3JtLmNvbXBvbmVudC5sZXNzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBIZEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBmb3JtTGlzdDogQXJyYXk8Rm9ybUl0ZW0+O1xuICBAT3V0cHV0KCkgY2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHZhbGlkYXRlSGRGb3JtOiBGb3JtR3JvdXA7XG4gIGlucHV0VmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIHNlYXJjaFN1YmplY3QgPSBuZXcgU3ViamVjdDx7IGZuOiBhbnk7IGV2ZW50OiBhbnkgfT4oKTtcbiAgcHJpdmF0ZSBkZWJvdW5jZVRpbWVvdXQ6IG51bWJlciA9IDA7IC8vIOm7mOiupOmYsuaKluaXtumXtFxuICBwcml2YXRlIHNlYXJjaFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgb3BlbkNoYW5nZVN1YmplY3QgPSBuZXcgU3ViamVjdDx7IGZuOiBhbnk7IGV2ZW50OiBhbnkgfT4oKTtcbiAgcHJpdmF0ZSBvcGVuQ2hhbmdlRGVib3VuY2VUaW1lb3V0OiBudW1iZXIgPSAwO1xuICBwcml2YXRlIG9wZW5DaGFuZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge1xuICAgIHRoaXMuc2VhcmNoU3Vic2NyaXB0aW9uID0gdGhpcy5zZWFyY2hTdWJqZWN0XG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWVvdXQpKVxuICAgICAgLnN1YnNjcmliZSgoeyBmbiwgZXZlbnQgfSkgPT4gdGhpcy50cmlnZ2VyRXZlbnQoZm4sIGV2ZW50KSk7XG4gICAgdGhpcy5vcGVuQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5vcGVuQ2hhbmdlU3ViamVjdFxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMub3BlbkNoYW5nZURlYm91bmNlVGltZW91dCkpXG4gICAgICAuc3Vic2NyaWJlKCh7IGZuLCBldmVudCB9KSA9PiB7XG4gICAgICAgIC8vIOmYsuaKlue7k+adn+WQjuS7heWxleW8gOaAgeinpuWPkeS4muWKoeWbnuiwg++8jOmBv+WFjemikee5geW8gOWFs+S7jeaJk+aOpeWPo1xuICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICB0aGlzLnRyaWdnZXJFdmVudChmbiwgZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5mb3JtTGlzdCB8fCB0aGlzLmZvcm1MaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChcbiAgICAgIGNoYW5nZXNbXCJmb3JtTGlzdFwiXSAmJlxuICAgICAgSlNPTi5zdHJpbmdpZnkoY2hhbmdlc1tcImZvcm1MaXN0XCJdLmN1cnJlbnRWYWx1ZSkgIT09XG4gICAgICAgIEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbXCJmb3JtTGlzdFwiXS5wcmV2aW91c1ZhbHVlKVxuICAgICkge1xuICAgICAgaWYgKCF0aGlzLmZvcm1MaXN0IHx8IHRoaXMuZm9ybUxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoRXZlbnQoZm46IGFueSwgZXZlbnQ6IGFueSwgb25TZWFyY2hFdmVudERlYm91bmNlVGltZTogYW55KSB7XG4gICAgaWYgKCFmbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkZWJvdW5jZU1zID1cbiAgICAgIG9uU2VhcmNoRXZlbnREZWJvdW5jZVRpbWUgIT0gbnVsbCA/IG9uU2VhcmNoRXZlbnREZWJvdW5jZVRpbWUgOiAwO1xuICAgIC8vIOacqumFjee9ruaIluS4uiAw77ya5ZCM5q2l6Kem5Y+R77yM5LiN6LWwIGRlYm91bmNlVGltZe+8iOmBv+WFjeW8guatpe+8iVxuICAgIGlmICghZGVib3VuY2VNcykge1xuICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoZm4sIGV2ZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kZWJvdW5jZVRpbWVvdXQgPSBkZWJvdW5jZU1zO1xuICAgIGlmICh0aGlzLnNlYXJjaFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zZWFyY2hTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy5zZWFyY2hTdWJzY3JpcHRpb24gPSB0aGlzLnNlYXJjaFN1YmplY3RcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZW91dCkpXG4gICAgICAuc3Vic2NyaWJlKCh7IGZuLCBldmVudCB9KSA9PiB0aGlzLnRyaWdnZXJFdmVudChmbiwgZXZlbnQpKTtcbiAgICB0aGlzLnNlYXJjaFN1YmplY3QubmV4dCh7IGZuLCBldmVudCB9KTtcbiAgfVxuXG4gIG9uT3BlbkNoYW5nZUV2ZW50KFxuICAgIGZuOiBhbnksXG4gICAgb3BlbjogYm9vbGVhbixcbiAgICBvbk9wZW5DaGFuZ2VFdmVudERlYm91bmNlVGltZTogYW55LFxuICAgIGZvcm1JdGVtPzogYW55LFxuICApIHtcbiAgICBpZiAoIWZuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIOWxleW8gOaXtuWFiOa4heepuuaXpyBvcHRpb25z77yM6YG/5YWN5p2h5Lu25Y+Y5YyW5ZCO6K+35rGC6L+U5Zue5YmN5LuN5bGV56S65LiK5LiA5om55LiL5ouJ5pWw5o2uXG4gICAgaWYgKG9wZW4pIHtcbiAgICAgIHRoaXMuY2xlYXJTZWxlY3RPcHRpb25zT25PcGVuKGZvcm1JdGVtKTtcbiAgICB9XG4gICAgY29uc3QgZGVib3VuY2VNcyA9XG4gICAgICBvbk9wZW5DaGFuZ2VFdmVudERlYm91bmNlVGltZSAhPSBudWxsXG4gICAgICAgID8gb25PcGVuQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWVcbiAgICAgICAgOiAwO1xuICAgIC8vIOacqumFjee9ruaIluS4uiAw77ya5ZCM5q2l6Kem5Y+R77yM5LiN6LWwIGRlYm91bmNlVGltZe+8iOmBv+WFjeW8guatpe+8iVxuICAgIGlmICghZGVib3VuY2VNcykge1xuICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoZm4sIG9wZW4pO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9wZW5DaGFuZ2VEZWJvdW5jZVRpbWVvdXQgPSBkZWJvdW5jZU1zO1xuICAgIGlmICh0aGlzLm9wZW5DaGFuZ2VTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMub3BlbkNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLm9wZW5DaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLm9wZW5DaGFuZ2VTdWJqZWN0XG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5vcGVuQ2hhbmdlRGVib3VuY2VUaW1lb3V0KSlcbiAgICAgIC5zdWJzY3JpYmUoKHsgZm4sIGV2ZW50IH0pID0+IHtcbiAgICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoZm4sIGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgdGhpcy5vcGVuQ2hhbmdlU3ViamVjdC5uZXh0KHsgZm4sIGV2ZW50OiBvcGVuIH0pO1xuICB9XG5cbiAgLyoqIOaciSBvbk9wZW5DaGFuZ2VFdmVudCDml7blsZXlvIDkuIvmi4nlhYjmuIXnqbrpgInpobnvvIznlLHkuJrliqHlm57osIPlho3lhpnlhaXmlrDmlbDmja4gKi9cbiAgcHJpdmF0ZSBjbGVhclNlbGVjdE9wdGlvbnNPbk9wZW4oZm9ybUl0ZW06IGFueSk6IHZvaWQge1xuICAgIGlmICghZm9ybUl0ZW0gfHwgIWZvcm1JdGVtLnNlbGVjdE9wdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBvcHQgPSBmb3JtSXRlbS5zZWxlY3RPcHRpb247XG4gICAgaWYgKG9wdC5zZWxlY3RMaXN0ICE9IG51bGwpIHtcbiAgICAgIG9wdC5zZWxlY3RMaXN0ID0gW107XG4gICAgfVxuICB9XG5cbiAgdHJpZ2dlckV2ZW50KGZuOiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZm4pIHtcbiAgICAgIGZuKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXQoKTogdm9pZCB7XG4gICAgLy8g5byC5bi45o2V6I63XG4gICAgaWYgKCF0aGlzLmNoZWNrTGlzdCh0aGlzLmZvcm1MaXN0KSkge1xuICAgICAgdGhyb3cgXCJmb3Jt57uE5Lu25pWw5o2u5qC85byP5LiN6KeE6IyDXCI7XG4gICAgfVxuICAgIC8vIFJlZ2lvbkFkZHJlc3Mg5Zu65a6a5Y2g5Lik5YiX77yM5L+d6K+B57qn6IGU5a695LiO5Y2V5YiX5o6n5Lu25a+56b2QXG4gICAgdGhpcy5mb3JtTGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS50eXBlID09PSBGb3JtTGlzdFR5cGUuUmVnaW9uQWRkcmVzcykge1xuICAgICAgICBpdGVtLndpZHRoID0gMjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAvLyDlr7nooajljZXmlbDmja7lgZrliJ3lp4vljJbvvIznlKhyb3fpmpTnprvmr4/ooYzmlbDmja5pdGVtXG4gICAgdGhpcy5kZWFsUm93KCk7XG4gICAgLy8g6aaW5YWI5qC55o2u5a6a5LmJ55qE57uE5Lu25pWw57uEICDljrvliJ3lp4vljJbooajljZVcbiAgICBsZXQgZm9ybUdyb3VwTGlzdCA9IHt9O1xuICAgIHRoaXMuZm9ybUxpc3QuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIC8vIOaXpeacn+ebuOWFs+eahOaOp+S7tuWBmueJueauiuWkhOeQhlxuICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gMiAmJiBpdGVtLnZhbHVlKSB7XG4gICAgICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IGl0ZW0udmFsdWVcbiAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgIC5zcGxpdChcIi1cIilcbiAgICAgICAgICAubWFwKChzdHIpID0+IHBhcnNlSW50KHN0cikpO1xuICAgICAgICBjb25zdCBuZXdEYXRlU3RyID0gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXkpXG4gICAgICAgICAgLnRvTG9jYWxlRGF0ZVN0cmluZyhcInpoLUhhbnMtQ05cIiwge1xuICAgICAgICAgICAgeWVhcjogXCJudW1lcmljXCIsXG4gICAgICAgICAgICBtb250aDogXCIyLWRpZ2l0XCIsXG4gICAgICAgICAgICBkYXk6IFwiMi1kaWdpdFwiLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnJlcGxhY2UoL1xcLy9nLCBcIi1cIik7XG4gICAgICAgIGlmIChpdGVtLnZhbGlkYXRvcikge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbChcbiAgICAgICAgICAgIHsgdmFsdWU6IG5ldyBEYXRlKG5ld0RhdGVTdHIpLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LFxuICAgICAgICAgICAgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGVcbiAgICAgICAgICAgICAgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgaXRlbS52YWxpZGF0b3JdXG4gICAgICAgICAgICAgIDogW10sXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woXG4gICAgICAgICAgICB7IHZhbHVlOiBuZXcgRGF0ZShuZXdEYXRlU3RyKSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSxcbiAgICAgICAgICAgIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10sXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09IDMgJiYgaXRlbS52YWx1ZSkge1xuICAgICAgICBsZXQgZm9ybUl0ZW1EYXRlID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShpdGVtLnZhbHVlKSk7XG4gICAgICAgIGlmIChmb3JtSXRlbURhdGUgJiYgZm9ybUl0ZW1EYXRlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICBmb3JtSXRlbURhdGUgPSBmb3JtSXRlbURhdGUubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBbeWVhciwgbW9udGgsIGRheV0gPSBpdGVtXG4gICAgICAgICAgICAgIC5zcGxpdChcIi1cIilcbiAgICAgICAgICAgICAgLm1hcCgoc3RyKSA9PiBwYXJzZUludChzdHIpKTtcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGVTdHIgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSlcbiAgICAgICAgICAgICAgLnRvTG9jYWxlRGF0ZVN0cmluZyhcInpoLUhhbnMtQ05cIiwge1xuICAgICAgICAgICAgICAgIHllYXI6IFwibnVtZXJpY1wiLFxuICAgICAgICAgICAgICAgIG1vbnRoOiBcIjItZGlnaXRcIixcbiAgICAgICAgICAgICAgICBkYXk6IFwiMi1kaWdpdFwiLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAucmVwbGFjZSgvXFwvL2csIFwiLVwiKTtcbiAgICAgICAgICAgIGl0ZW0gPSBuZXcgRGF0ZShuZXdEYXRlU3RyKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbChcbiAgICAgICAgICAgICAgeyB2YWx1ZTogZm9ybUl0ZW1EYXRlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LFxuICAgICAgICAgICAgICBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZVxuICAgICAgICAgICAgICAgID8gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGl0ZW0udmFsaWRhdG9yXVxuICAgICAgICAgICAgICAgIDogW10sXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woXG4gICAgICAgICAgICAgIHsgdmFsdWU6IGZvcm1JdGVtRGF0ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSxcbiAgICAgICAgICAgICAgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGUgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IFwiZm9ybee7hOS7tuS4rURhdGVSYW5nZeaOp+S7tnZhbHVl5YC85qC85byP5LiN6KeE6IyD77yM5q2j56Gu56S65L6LWycyMDIwLTAxLTIyJywgJzIwMjAtMDEtMjMnXVwiO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gRm9ybUxpc3RUeXBlLkNoZWNrYm94ICYmIGl0ZW0uY2hlY2tib3hPcHRpb24pIHtcbiAgICAgICAgY29uc3QgY2hlY2tib3hWYWx1ZSA9IEFycmF5LmlzQXJyYXkoaXRlbS52YWx1ZSkgPyBpdGVtLnZhbHVlIDogW107XG4gICAgICAgIGlmIChpdGVtLnZhbGlkYXRvcikge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbChcbiAgICAgICAgICAgIHsgdmFsdWU6IGNoZWNrYm94VmFsdWUsIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sXG4gICAgICAgICAgICBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZVxuICAgICAgICAgICAgICA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBpdGVtLnZhbGlkYXRvcl1cbiAgICAgICAgICAgICAgOiBbXSxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbChcbiAgICAgICAgICAgIHsgdmFsdWU6IGNoZWNrYm94VmFsdWUsIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sXG4gICAgICAgICAgICBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09PSBGb3JtTGlzdFR5cGUuQ2hlY2tib3gpIHtcbiAgICAgICAgY29uc3QgY2hlY2tib3hWYWx1ZSA9IGl0ZW0udmFsdWUgIT0gbnVsbCA/IGl0ZW0udmFsdWUgOiBmYWxzZTtcbiAgICAgICAgaWYgKGl0ZW0udmFsaWRhdG9yKSB7XG4gICAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLm5hbWVdID0gdGhpcy5mYi5jb250cm9sKFxuICAgICAgICAgICAgeyB2YWx1ZTogY2hlY2tib3hWYWx1ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSxcbiAgICAgICAgICAgIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlXG4gICAgICAgICAgICAgID8gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGl0ZW0udmFsaWRhdG9yXVxuICAgICAgICAgICAgICA6IFtdLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLm5hbWVdID0gdGhpcy5mYi5jb250cm9sKFxuICAgICAgICAgICAgeyB2YWx1ZTogY2hlY2tib3hWYWx1ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSxcbiAgICAgICAgICAgIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10sXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09IEZvcm1MaXN0VHlwZS5SZWdpb25BZGRyZXNzKSB7XG4gICAgICAgIGNvbnN0IHJlZ2lvblZhbHVlID0gQXJyYXkuaXNBcnJheShpdGVtLnZhbHVlKSA/IGl0ZW0udmFsdWUgOiBudWxsO1xuICAgICAgICBjb25zdCBhZGRyZXNzVmFsdWUgPVxuICAgICAgICAgIGl0ZW0uYWRkcmVzc1ZhbHVlICE9IG51bGwgPyBpdGVtLmFkZHJlc3NWYWx1ZSA6IG51bGw7XG4gICAgICAgIGNvbnN0IHJlcXVpcmVWYWxpZGF0b3JzID1cbiAgICAgICAgICBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdO1xuICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woXG4gICAgICAgICAgICB7IHZhbHVlOiByZWdpb25WYWx1ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSxcbiAgICAgICAgICAgIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlXG4gICAgICAgICAgICAgID8gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGl0ZW0udmFsaWRhdG9yXVxuICAgICAgICAgICAgICA6IFtpdGVtLnZhbGlkYXRvcl0sXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woXG4gICAgICAgICAgICB7IHZhbHVlOiByZWdpb25WYWx1ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSxcbiAgICAgICAgICAgIHJlcXVpcmVWYWxpZGF0b3JzLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLmFkZHJlc3NOYW1lXSA9IHRoaXMuZmIuY29udHJvbChcbiAgICAgICAgICB7IHZhbHVlOiBhZGRyZXNzVmFsdWUsIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sXG4gICAgICAgICAgcmVxdWlyZVZhbGlkYXRvcnMsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woXG4gICAgICAgICAgICB7IHZhbHVlOiBpdGVtLnZhbHVlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LFxuICAgICAgICAgICAgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGVcbiAgICAgICAgICAgICAgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgaXRlbS52YWxpZGF0b3JdXG4gICAgICAgICAgICAgIDogW10sXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woXG4gICAgICAgICAgICB7IHZhbHVlOiBpdGVtLnZhbHVlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LFxuICAgICAgICAgICAgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGUgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnZhbGlkYXRlSGRGb3JtID0gdGhpcy5mYi5ncm91cChmb3JtR3JvdXBMaXN0KTtcblxuICAgIHRoaXMuZm9ybUxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKGl0ZW0ub25DaGFuZ2VFdmVudCkge1xuICAgICAgICBjb25zdCBkZWJvdW5jZU1zID1cbiAgICAgICAgICBpdGVtLm9uQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWUgIT0gbnVsbFxuICAgICAgICAgICAgPyBpdGVtLm9uQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWVcbiAgICAgICAgICAgIDogMDtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0KGl0ZW0ubmFtZSk7XG4gICAgICAgIC8vIOacqumFjee9ruaIluS4uiAw77ya5ZCM5q2l6K6i6ZiF77yM5LiN6LWwIGRlYm91bmNlVGltZe+8iOmBv+WFjeW8guatpeegtOWdjyBwYXRjaFZhbHVlIOiBlOWKqOWbnuaYvu+8iVxuICAgICAgICBpZiAoZGVib3VuY2VNcyA+IDApIHtcbiAgICAgICAgICBjb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKGRlYm91bmNlTXMpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+XG4gICAgICAgICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KGl0ZW0ub25DaGFuZ2VFdmVudCwgdmFsdWUpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PlxuICAgICAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoaXRlbS5vbkNoYW5nZUV2ZW50LCB2YWx1ZSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMudmFsaWRhdGVIZEZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoZGF0YSkgPT5cbiAgICAgIHRoaXMub25IZEZvcm1WYWx1ZUNoYW5nZWQoZGF0YSksXG4gICAgKTtcbiAgICB0aGlzLm9uSGRGb3JtVmFsdWVDaGFuZ2VkKCk7XG4gIH1cblxuICBwcml2YXRlIGRlYWxSb3coKSB7XG4gICAgLy8g5LiA6Zi25q61IOmBjeWOhuaVsOaNruiuoeeul+ebuOWFs+aVsOaNrlxuICAgIGNvbnN0IGZvcm1MaXN0TGVuZ3RoID0gdGhpcy5mb3JtTGlzdC5sZW5ndGg7XG4gICAgbGV0IHN0ZXAgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybUxpc3RMZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCF0aGlzLmZvcm1MaXN0W2ldLmhpZGUpIHtcbiAgICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgICB0aGlzLmZvcm1MaXN0W2ldLnRvdGFsV2lkdGggPSB0aGlzLmZvcm1MaXN0W2ldLndpZHRoIHx8IDE7XG4gICAgICAgICAgdGhpcy5mb3JtTGlzdFtpXS5pc1Jvd0ZpcnN0ID0gMTtcbiAgICAgICAgICBzdGVwID0gc3RlcCArIDQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8g5Y675om+5Yiw5YmN5LiA5Liq6Z2eaGlkZeeahOaOp+S7tlxuICAgICAgICAgIGZvciAobGV0IGogPSBpIC0gMTsgaiA+PSAwOyBqLS0pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1MaXN0W2pdLnRvdGFsV2lkdGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtTGlzdFtpXS50b3RhbFdpZHRoID1cbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1MaXN0W2pdLnRvdGFsV2lkdGggKyAodGhpcy5mb3JtTGlzdFtpXS53aWR0aCB8fCAxKTtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUxpc3Rbal0udG90YWxXaWR0aCArICh0aGlzLmZvcm1MaXN0W2ldLndpZHRoIHx8IDEpID5cbiAgICAgICAgICAgICAgICAgIHN0ZXAgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1MaXN0W2pdLnRvdGFsV2lkdGggPD0gc3RlcFxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBzdGVwID0gc3RlcCArIDQ7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtTGlzdFtpXS5pc1Jvd0ZpcnN0ID0gMTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1MaXN0W2ldLmlzUm93Rmlyc3QgPSAwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIOS6jOmYtuautSBpc1Jvd0ZpcnN055qE5pWw57uE6aG55aKe5Yqg5a2Q6IqC54K5XG4gICAgZm9yIChsZXQgbSA9IDA7IG0gPCBmb3JtTGlzdExlbmd0aDsgbSsrKSB7XG4gICAgICBpZiAodGhpcy5mb3JtTGlzdFttXS5pc1Jvd0ZpcnN0ID09PSAxKSB7XG4gICAgICAgIHRoaXMuZm9ybUxpc3RbbV0uY29sdW1uSXRlbXMgPSBbXTtcbiAgICAgICAgbGV0IHNwYWNlID0gMDtcbiAgICAgICAgZm9yIChsZXQgbiA9IDE7IG4gPCBmb3JtTGlzdExlbmd0aCAtIG07IG4rKykge1xuICAgICAgICAgIGlmIChzcGFjZSA9PT0gNCB8fCB0aGlzLmZvcm1MaXN0W20gKyBuXS5pc1Jvd0ZpcnN0ID09PSAxKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMuZm9ybUxpc3RbbSArIG5dLmhpZGUgJiZcbiAgICAgICAgICAgIHRoaXMuZm9ybUxpc3RbbSArIG5dICYmXG4gICAgICAgICAgICB0aGlzLmZvcm1MaXN0W20gKyBuXS5pc1Jvd0ZpcnN0ID09PSAwXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1MaXN0W21dLmNvbHVtbkl0ZW1zLnB1c2godGhpcy5mb3JtTGlzdFttICsgbl0pO1xuICAgICAgICAgICAgc3BhY2UrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uSGRGb3JtVmFsdWVDaGFuZ2VkKGRhdGE/OiBhbnkpIHtcbiAgICB0aGlzLmNoYW5nZUV2ZW50LmVtaXQodGhpcy52YWxpZGF0ZUhkRm9ybSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrTGlzdChsaXN0OiBBcnJheTxGb3JtSXRlbT4pOiBib29sZWFuIHtcbiAgICBpZiAoIWxpc3QgfHwgKGxpc3QgJiYgbGlzdC5sZW5ndGggPT09IDApKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGxldCBuYW1lTGlzdCA9IFtdO1xuICAgIGxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgLy8g5qCh6aqM5Y2V6aG56YCJ5oup5ZmoXG4gICAgICAvLyBpZiAoaXRlbS50eXBlID09PSBGb3JtTGlzdFR5cGUuU2VsZWN0ICYmICghaXRlbS5zZWxlY3RPcHRpb24uc2VsZWN0TGlzdCB8fCAoaXRlbS5zZWxlY3RPcHRpb24uc2VsZWN0TGlzdCAmJiBpdGVtLnNlbGVjdE9wdGlvbi5zZWxlY3RMaXN0Lmxlbmd0aCA9PT0gMCkpKSB7XG4gICAgICAvLyAgIHRocm93ICdmb3Jt57uE5Lu25pWw5o2u5qC85byP5LiN6KeE6IyD77yM5a2Y5Zyo5Y2V6aG56YCJ5oup5Zmo5rKh5pyJ5Lyg5YWl6YCJ6aG5ISdcbiAgICAgIC8vIH1cbiAgICAgIGlmIChpdGVtLnR5cGUgPT09IEZvcm1MaXN0VHlwZS5SZWdpb25BZGRyZXNzICYmICFpdGVtLmFkZHJlc3NOYW1lKSB7XG4gICAgICAgIHRocm93IFwiZm9ybee7hOS7tiBSZWdpb25BZGRyZXNzIOW/hemhu+mFjee9riBhZGRyZXNzTmFtZVwiO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBpdGVtLnR5cGUgPT09IEZvcm1MaXN0VHlwZS5SZWdpb25BZGRyZXNzICYmXG4gICAgICAgICghaXRlbS5jYXNjYWRlck9wdGlvbiB8fCAhaXRlbS5jYXNjYWRlck9wdGlvbi5vcHRpb25zKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IFwiZm9ybee7hOS7tiBSZWdpb25BZGRyZXNzIOW/hemhu+mFjee9riBjYXNjYWRlck9wdGlvbi5vcHRpb25zXCI7XG4gICAgICB9XG4gICAgICBuYW1lTGlzdC5wdXNoKGl0ZW0ubmFtZSk7XG4gICAgICBpZiAoaXRlbS50eXBlID09PSBGb3JtTGlzdFR5cGUuUmVnaW9uQWRkcmVzcykge1xuICAgICAgICBuYW1lTGlzdC5wdXNoKGl0ZW0uYWRkcmVzc05hbWUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIC8vIOagoemqjCBuYW1lIC8gYWRkcmVzc05hbWUg5piv5ZCm6YeN5aSNXG4gICAgaWYgKFsuLi5uZXcgU2V0KG5hbWVMaXN0KV0ubGVuZ3RoICE9PSBuYW1lTGlzdC5sZW5ndGgpIHtcbiAgICAgIHRocm93IFwiZm9ybee7hOS7tuaVsOaNruagvOW8j+S4jeinhOiMg++8jOWtmOWcqOmHjeWkjW5hbWXlgLwhXCI7XG4gICAgfVxuICAgIC8vIC4uLm1vcmUgY2hlY2tcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBSZWdpb25BZGRyZXNzIOWPjOaOp+S7tuS7u+S4gOiEj+S4lOaXoOaViOaXtuaYvuekuiBlcnJvciAqL1xuICBnZXRSZWdpb25BZGRyZXNzVmFsaWRhdGVTdGF0dXMoaXRlbTogRm9ybUl0ZW0pOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy52YWxpZGF0ZUhkRm9ybSkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIGNvbnN0IHJlZ2lvbiA9IHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0KGl0ZW0ubmFtZSk7XG4gICAgY29uc3QgYWRkcmVzcyA9IGl0ZW0uYWRkcmVzc05hbWVcbiAgICAgID8gdGhpcy52YWxpZGF0ZUhkRm9ybS5nZXQoaXRlbS5hZGRyZXNzTmFtZSlcbiAgICAgIDogbnVsbDtcbiAgICBjb25zdCBpbnZhbGlkRGlydHkgPSAoY29udHJvbCkgPT5cbiAgICAgIGNvbnRyb2wgJiYgY29udHJvbC5kaXJ0eSAmJiBjb250cm9sLmludmFsaWQ7XG4gICAgaWYgKGludmFsaWREaXJ0eShyZWdpb24pIHx8IGludmFsaWREaXJ0eShhZGRyZXNzKSkge1xuICAgICAgcmV0dXJuIFwiZXJyb3JcIjtcbiAgICB9XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICBnZXRSZWdpb25BZGRyZXNzRXJyb3JUaXAoaXRlbTogRm9ybUl0ZW0pOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy52YWxpZGF0ZUhkRm9ybSkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIGNvbnN0IHJlZ2lvbiA9IHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0KGl0ZW0ubmFtZSk7XG4gICAgY29uc3QgYWRkcmVzcyA9IGl0ZW0uYWRkcmVzc05hbWVcbiAgICAgID8gdGhpcy52YWxpZGF0ZUhkRm9ybS5nZXQoaXRlbS5hZGRyZXNzTmFtZSlcbiAgICAgIDogbnVsbDtcbiAgICBpZiAocmVnaW9uICYmIHJlZ2lvbi5kaXJ0eSAmJiByZWdpb24uaGFzRXJyb3IoXCJyZXF1aXJlZFwiKSkge1xuICAgICAgcmV0dXJuIGl0ZW0ubGFiZWwgKyBcIuS4jeiDveS4uuepulwiO1xuICAgIH1cbiAgICBpZiAoYWRkcmVzcyAmJiBhZGRyZXNzLmRpcnR5ICYmIGFkZHJlc3MuaGFzRXJyb3IoXCJyZXF1aXJlZFwiKSkge1xuICAgICAgcmV0dXJuIFwi6K+m57uG5Zyw5Z2A5LiN6IO95Li656m6XCI7XG4gICAgfVxuICAgIGlmIChpdGVtLnZhbGlkYXRvcktleXMgJiYgcmVnaW9uKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW0udmFsaWRhdG9yS2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBrZXkgPSBpdGVtLnZhbGlkYXRvcktleXNbaV07XG4gICAgICAgIGlmIChyZWdpb24uaGFzRXJyb3Ioa2V5LmtleSkpIHtcbiAgICAgICAgICByZXR1cm4ga2V5LmxhYmVsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpdGVtLmxhYmVsICsgXCLkuI3og73kuLrnqbpcIjtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRGb3JtKCk6IHZvaWQge1xuICAgIE9iamVjdC52YWx1ZXModGhpcy52YWxpZGF0ZUhkRm9ybS5jb250cm9scykuZm9yRWFjaCgoY29udHJvbCkgPT4ge1xuICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSk7XG4gICAgdGhpcy5jaGFuZ2VFdmVudC5lbWl0KHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0UmF3VmFsdWUoKSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXRGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMudmFsaWRhdGVIZEZvcm0ucmVzZXQoKTtcbiAgICBPYmplY3QudmFsdWVzKHRoaXMudmFsaWRhdGVIZEZvcm0uY29udHJvbHMpLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH0pO1xuICAgIHRoaXMuY2hhbmdlRXZlbnQuZW1pdCh0aGlzLnZhbGlkYXRlSGRGb3JtLmdldFJhd1ZhbHVlKCkpO1xuICB9XG5cbiAgcHVibGljIGlucHV0Q2xlYW4oZmlsdGVyOiBGb3JtSXRlbSk6IHZvaWQge1xuICAgIGNvbnN0IHBhdGNoT2JqZWN0ID0ge307XG4gICAgcGF0Y2hPYmplY3RbZmlsdGVyLm5hbWVdID0gbnVsbDtcbiAgICB0aGlzLnZhbGlkYXRlSGRGb3JtLnBhdGNoVmFsdWUocGF0Y2hPYmplY3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIOaYr+WQpuWFgeiuuOa4heepuu+8muS8mOWFiCBGb3JtSXRlbS5oZEFsbG93Q2xlYXLvvIzlhbbmrKEgc2VsZWN0T3B0aW9uLmhkQWxsb3dDbGVhcu+8jOm7mOiupCB0cnVlXG4gICAqL1xuICBpc0FsbG93Q2xlYXIoaXRlbTogRm9ybUl0ZW0pOiBib29sZWFuIHtcbiAgICBpZiAoIWl0ZW0pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoaXRlbS5oZEFsbG93Q2xlYXIgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuICEhaXRlbS5oZEFsbG93Q2xlYXI7XG4gICAgfVxuICAgIGlmIChpdGVtLnNlbGVjdE9wdGlvbiAmJiBpdGVtLnNlbGVjdE9wdGlvbi5oZEFsbG93Q2xlYXIgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuICEhaXRlbS5zZWxlY3RPcHRpb24uaGRBbGxvd0NsZWFyO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlzQ2hlY2tib3hDaGVja2VkKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnZhbGlkYXRlSGRGb3JtLmdldChuYW1lKTtcbiAgICBjb25zdCBjdXJyZW50ID0gY29udHJvbCA/IGNvbnRyb2wudmFsdWUgOiBudWxsO1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGN1cnJlbnQpICYmIGN1cnJlbnQuaW5kZXhPZih2YWx1ZSkgIT09IC0xO1xuICB9XG5cbiAgb25DaGVja2JveEl0ZW1DaGFuZ2UobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55LCBjaGVja2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0KG5hbWUpO1xuICAgIGlmICghY29udHJvbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50ID0gQXJyYXkuaXNBcnJheShjb250cm9sLnZhbHVlKSA/IFsuLi5jb250cm9sLnZhbHVlXSA6IFtdO1xuICAgIGNvbnN0IGluZGV4ID0gY3VycmVudC5pbmRleE9mKHZhbHVlKTtcbiAgICBpZiAoY2hlY2tlZCAmJiBpbmRleCA9PT0gLTEpIHtcbiAgICAgIGN1cnJlbnQucHVzaCh2YWx1ZSk7XG4gICAgfSBlbHNlIGlmICghY2hlY2tlZCAmJiBpbmRleCAhPT0gLTEpIHtcbiAgICAgIGN1cnJlbnQuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gICAgY29udHJvbC5zZXRWYWx1ZShjdXJyZW50KTtcbiAgICBjb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICByZWFkb25seSBpbnB1dE51bWJlckRlZmF1bHRGb3JtYXR0ZXIgPSAodmFsdWU6IHVua25vd24pID0+IHZhbHVlO1xuICByZWFkb25seSBpbnB1dE51bWJlckRlZmF1bHRQYXJzZXIgPSAodmFsdWU6IHN0cmluZykgPT4gdmFsdWU7XG5cbiAgZ2V0Q2FzY2FkZXJTaG93U2VhcmNoID0gZ2V0Q2FzY2FkZXJTaG93U2VhcmNoO1xuICBnZXRDYXNjYWRlck1lbnVDbGFzc05hbWUgPSBnZXRDYXNjYWRlck1lbnVDbGFzc05hbWU7XG4gIGdldENhc2NhZGVyTWVudVN0eWxlID0gZ2V0Q2FzY2FkZXJNZW51U3R5bGU7XG59XG4iXX0=
695
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9mYW50YXN5LW5nem9ycm8vIiwic291cmNlcyI6WyJoZC1mb3JtL2hkLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBWSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixxQkFBcUIsR0FDdEIsTUFBTSx3QkFBd0IsQ0FBQzs7QUFPaEMsTUFBTSxPQUFPLGVBQWU7Ozs7SUFjMUIsWUFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7UUFaekIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSW5DLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7UUFDdkQsb0JBQWUsR0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBR3RDLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO1FBQzNELDhCQUF5QixHQUFXLENBQUMsQ0FBQztRQXFlckMsZ0NBQTJCOzs7O1FBQUcsQ0FBQyxLQUFjLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBQztRQUN4RCw2QkFBd0I7Ozs7UUFBRyxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFDO1FBRTdELDBCQUFxQixHQUFHLHFCQUFxQixDQUFDO1FBQzlDLDZCQUF3QixHQUFHLHdCQUF3QixDQUFDO1FBQ3BELHlC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QUF5RDs7SUFvZXpELHNEQUFpRTs7SUFDakUsbURBQTZEOztJQUU3RCxnREFBOEM7O0lBQzlDLG1EQUFvRDs7SUFDcEQsK0NBQTRDOzs7OztJQXZlaEMsNkJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IEZvcm1JdGVtLCBGb3JtTGlzdFR5cGUgfSBmcm9tIFwiLi9oZC1mb3JtLnNlcnZpY2VcIjtcbmltcG9ydCB7XG4gIGdldENhc2NhZGVyTWVudUNsYXNzTmFtZSxcbiAgZ2V0Q2FzY2FkZXJNZW51U3R5bGUsXG4gIGdldENhc2NhZGVyU2hvd1NlYXJjaCxcbn0gZnJvbSBcIi4uL3V0aWxzL2Nhc2NhZGVyLnV0aWxcIjtcbi8vIGltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImhkLWZvcm1cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9oZC1mb3JtLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9oZC1mb3JtLmNvbXBvbmVudC5sZXNzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBIZEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBmb3JtTGlzdDogQXJyYXk8Rm9ybUl0ZW0+O1xuICBAT3V0cHV0KCkgY2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHZhbGlkYXRlSGRGb3JtOiBGb3JtR3JvdXA7XG4gIGlucHV0VmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIHNlYXJjaFN1YmplY3QgPSBuZXcgU3ViamVjdDx7IGZuOiBhbnk7IGV2ZW50OiBhbnkgfT4oKTtcbiAgcHJpdmF0ZSBkZWJvdW5jZVRpbWVvdXQ6IG51bWJlciA9IDA7IC8vIOm7mOiupOmYsuaKluaXtumXtFxuICBwcml2YXRlIHNlYXJjaFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgb3BlbkNoYW5nZVN1YmplY3QgPSBuZXcgU3ViamVjdDx7IGZuOiBhbnk7IGV2ZW50OiBhbnkgfT4oKTtcbiAgcHJpdmF0ZSBvcGVuQ2hhbmdlRGVib3VuY2VUaW1lb3V0OiBudW1iZXIgPSAwO1xuICBwcml2YXRlIG9wZW5DaGFuZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge1xuICAgIHRoaXMuc2VhcmNoU3Vic2NyaXB0aW9uID0gdGhpcy5zZWFyY2hTdWJqZWN0XG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWVvdXQpKVxuICAgICAgLnN1YnNjcmliZSgoeyBmbiwgZXZlbnQgfSkgPT4gdGhpcy50cmlnZ2VyRXZlbnQoZm4sIGV2ZW50KSk7XG4gICAgdGhpcy5vcGVuQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5vcGVuQ2hhbmdlU3ViamVjdFxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMub3BlbkNoYW5nZURlYm91bmNlVGltZW91dCkpXG4gICAgICAuc3Vic2NyaWJlKCh7IGZuLCBldmVudCB9KSA9PiB7XG4gICAgICAgIC8vIOmYsuaKlue7k+adn+WQjuS7heWxleW8gOaAgeinpuWPkeS4muWKoeWbnuiwg++8jOmBv+WFjemikee5geW8gOWFs+S7jeaJk+aOpeWPo1xuICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICB0aGlzLnRyaWdnZXJFdmVudChmbiwgZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5mb3JtTGlzdCB8fCB0aGlzLmZvcm1MaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8g5qih5p2/5aeL57uI57uR5a6aIFtmb3JtR3JvdXBd77yM56m65YiX6KGo5pe25Lmf5b+F6aG75pyJIEZvcm1Hcm91cCDlrp7kvotcbiAgICAgIHRoaXMudmFsaWRhdGVIZEZvcm0gPSB0aGlzLmZiLmdyb3VwKHt9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzW1wiZm9ybUxpc3RcIl0gJiZcbiAgICAgIEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbXCJmb3JtTGlzdFwiXS5jdXJyZW50VmFsdWUpICE9PVxuICAgICAgICBKU09OLnN0cmluZ2lmeShjaGFuZ2VzW1wiZm9ybUxpc3RcIl0ucHJldmlvdXNWYWx1ZSlcbiAgICApIHtcbiAgICAgIGlmICghdGhpcy5mb3JtTGlzdCB8fCB0aGlzLmZvcm1MaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRlSGRGb3JtID0gdGhpcy5mYi5ncm91cCh7fSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoRXZlbnQoZm46IGFueSwgZXZlbnQ6IGFueSwgb25TZWFyY2hFdmVudERlYm91bmNlVGltZTogYW55KSB7XG4gICAgaWYgKCFmbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkZWJvdW5jZU1zID1cbiAgICAgIG9uU2VhcmNoRXZlbnREZWJvdW5jZVRpbWUgIT0gbnVsbCA/IG9uU2VhcmNoRXZlbnREZWJvdW5jZVRpbWUgOiAwO1xuICAgIC8vIOacqumFjee9ruaIluS4uiAw77ya5ZCM5q2l6Kem5Y+R77yM5LiN6LWwIGRlYm91bmNlVGltZe+8iOmBv+WFjeW8guatpe+8iVxuICAgIGlmICghZGVib3VuY2VNcykge1xuICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoZm4sIGV2ZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kZWJvdW5jZVRpbWVvdXQgPSBkZWJvdW5jZU1zO1xuICAgIGlmICh0aGlzLnNlYXJjaFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zZWFyY2hTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy5zZWFyY2hTdWJzY3JpcHRpb24gPSB0aGlzLnNlYXJjaFN1YmplY3RcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZW91dCkpXG4gICAgICAuc3Vic2NyaWJlKCh7IGZuLCBldmVudCB9KSA9PiB0aGlzLnRyaWdnZXJFdmVudChmbiwgZXZlbnQpKTtcbiAgICB0aGlzLnNlYXJjaFN1YmplY3QubmV4dCh7IGZuLCBldmVudCB9KTtcbiAgfVxuXG4gIG9uT3BlbkNoYW5nZUV2ZW50KFxuICAgIGZuOiBhbnksXG4gICAgb3BlbjogYm9vbGVhbixcbiAgICBvbk9wZW5DaGFuZ2VFdmVudERlYm91bmNlVGltZTogYW55LFxuICAgIGZvcm1JdGVtPzogYW55LFxuICApIHtcbiAgICBpZiAoIWZuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIOWxleW8gOaXtuWFiOa4heepuuaXpyBvcHRpb25z77yM6YG/5YWN5p2h5Lu25Y+Y5YyW5ZCO6K+35rGC6L+U5Zue5YmN5LuN5bGV56S65LiK5LiA5om55LiL5ouJ5pWw5o2uXG4gICAgaWYgKG9wZW4pIHtcbiAgICAgIHRoaXMuY2xlYXJTZWxlY3RPcHRpb25zT25PcGVuKGZvcm1JdGVtKTtcbiAgICB9XG4gICAgY29uc3QgZGVib3VuY2VNcyA9XG4gICAgICBvbk9wZW5DaGFuZ2VFdmVudERlYm91bmNlVGltZSAhPSBudWxsXG4gICAgICAgID8gb25PcGVuQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWVcbiAgICAgICAgOiAwO1xuICAgIC8vIOacqumFjee9ruaIluS4uiAw77ya5ZCM5q2l6Kem5Y+R77yM5LiN6LWwIGRlYm91bmNlVGltZe+8iOmBv+WFjeW8guatpe+8iVxuICAgIGlmICghZGVib3VuY2VNcykge1xuICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoZm4sIG9wZW4pO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9wZW5DaGFuZ2VEZWJvdW5jZVRpbWVvdXQgPSBkZWJvdW5jZU1zO1xuICAgIGlmICh0aGlzLm9wZW5DaGFuZ2VTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMub3BlbkNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLm9wZW5DaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLm9wZW5DaGFuZ2VTdWJqZWN0XG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5vcGVuQ2hhbmdlRGVib3VuY2VUaW1lb3V0KSlcbiAgICAgIC5zdWJzY3JpYmUoKHsgZm4sIGV2ZW50IH0pID0+IHtcbiAgICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoZm4sIGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgdGhpcy5vcGVuQ2hhbmdlU3ViamVjdC5uZXh0KHsgZm4sIGV2ZW50OiBvcGVuIH0pO1xuICB9XG5cbiAgLyoqIOaciSBvbk9wZW5DaGFuZ2VFdmVudCDml7blsZXlvIDkuIvmi4nlhYjmuIXnqbrpgInpobnvvIznlLHkuJrliqHlm57osIPlho3lhpnlhaXmlrDmlbDmja4gKi9cbiAgcHJpdmF0ZSBjbGVhclNlbGVjdE9wdGlvbnNPbk9wZW4oZm9ybUl0ZW06IGFueSk6IHZvaWQge1xuICAgIGlmICghZm9ybUl0ZW0gfHwgIWZvcm1JdGVtLnNlbGVjdE9wdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBvcHQgPSBmb3JtSXRlbS5zZWxlY3RPcHRpb247XG4gICAgaWYgKG9wdC5zZWxlY3RMaXN0ICE9IG51bGwpIHtcbiAgICAgIG9wdC5zZWxlY3RMaXN0ID0gW107XG4gICAgfVxuICB9XG5cbiAgdHJpZ2dlckV2ZW50KGZuOiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZm4pIHtcbiAgICAgIGZuKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXQoKTogdm9pZCB7XG4gICAgLy8g5byC5bi45o2V6I63XG4gICAgaWYgKCF0aGlzLmNoZWNrTGlzdCh0aGlzLmZvcm1MaXN0KSkge1xuICAgICAgdGhyb3cgXCJmb3Jt57uE5Lu25pWw5o2u5qC85byP5LiN6KeE6IyDXCI7XG4gICAgfVxuICAgIC8vIFJlZ2lvbkFkZHJlc3Mg5Zu65a6a5Y2g5Lik5YiX77yM5L+d6K+B57qn6IGU5a695LiO5Y2V5YiX5o6n5Lu25a+56b2QXG4gICAgdGhpcy5mb3JtTGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS50eXBlID09PSBGb3JtTGlzdFR5cGUuUmVnaW9uQWRkcmVzcykge1xuICAgICAgICBpdGVtLndpZHRoID0gMjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAvLyDlr7nooajljZXmlbDmja7lgZrliJ3lp4vljJbvvIznlKhyb3fpmpTnprvmr4/ooYzmlbDmja5pdGVtXG4gICAgdGhpcy5kZWFsUm93KCk7XG4gICAgLy8g6aaW5YWI5qC55o2u5a6a5LmJ55qE57uE5Lu25pWw57uEICDljrvliJ3lp4vljJbooajljZVcbiAgICBsZXQgZm9ybUdyb3VwTGlzdCA9IHt9O1xuICAgIHRoaXMuZm9ybUxpc3QuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIC8vIOaXpeacn+ebuOWFs+eahOaOp+S7tuWBmueJueauiuWkhOeQhlxuICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gMiAmJiBpdGVtLnZhbHVlKSB7XG4gICAgICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IGl0ZW0udmFsdWVcbiAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgIC5zcGxpdChcIi1cIilcbiAgICAgICAgICAubWFwKChzdHIpID0+IHBhcnNlSW50KHN0cikpO1xuICAgICAgICBjb25zdCBuZXdEYXRlU3RyID0gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXkpXG4gICAgICAgICAgLnRvTG9jYWxlRGF0ZVN0cmluZyhcInpoLUhhbnMtQ05cIiwge1xuICAgICAgICAgICAgeWVhcjogXCJudW1lcmljXCIsXG4gICAgICAgICAgICBtb250aDogXCIyLWRpZ2l0XCIsXG4gICAgICAgICAgICBkYXk6IFwiMi1kaWdpdFwiLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnJlcGxhY2UoL1xcLy9nLCBcIi1cIik7XG4gICAgICAgIGlmIChpdGVtLnZhbGlkYXRvcikge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbChcbiAgICAgICAgICAgIHsgdmFsdWU6IG5ldyBEYXRlKG5ld0RhdGVTdHIpLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LFxuICAgICAgICAgICAgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGVcbiAgICAgICAgICAgICAgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgaXRlbS52YWxpZGF0b3JdXG4gICAgICAgICAgICAgIDogW10sXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woXG4gICAgICAgICAgICB7IHZhbHVlOiBuZXcgRGF0ZShuZXdEYXRlU3RyKSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSxcbiAgICAgICAgICAgIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10sXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09IDMgJiYgaXRlbS52YWx1ZSkge1xuICAgICAgICBsZXQgZm9ybUl0ZW1EYXRlID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShpdGVtLnZhbHVlKSk7XG4gICAgICAgIGlmIChmb3JtSXRlbURhdGUgJiYgZm9ybUl0ZW1EYXRlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICBmb3JtSXRlbURhdGUgPSBmb3JtSXRlbURhdGUubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBbeWVhciwgbW9udGgsIGRheV0gPSBpdGVtXG4gICAgICAgICAgICAgIC5zcGxpdChcIi1cIilcbiAgICAgICAgICAgICAgLm1hcCgoc3RyKSA9PiBwYXJzZUludChzdHIpKTtcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGVTdHIgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSlcbiAgICAgICAgICAgICAgLnRvTG9jYWxlRGF0ZVN0cmluZyhcInpoLUhhbnMtQ05cIiwge1xuICAgICAgICAgICAgICAgIHllYXI6IFwibnVtZXJpY1wiLFxuICAgICAgICAgICAgICAgIG1vbnRoOiBcIjItZGlnaXRcIixcbiAgICAgICAgICAgICAgICBkYXk6IFwiMi1kaWdpdFwiLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAucmVwbGFjZSgvXFwvL2csIFwiLVwiKTtcbiAgICAgICAgICAgIGl0ZW0gPSBuZXcgRGF0ZShuZXdEYXRlU3RyKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbChcbiAgICAgICAgICAgICAgeyB2YWx1ZTogZm9ybUl0ZW1EYXRlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LFxuICAgICAgICAgICAgICBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZVxuICAgICAgICAgICAgICAgID8gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGl0ZW0udmFsaWRhdG9yXVxuICAgICAgICAgICAgICAgIDogW10sXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woXG4gICAgICAgICAgICAgIHsgdmFsdWU6IGZvcm1JdGVtRGF0ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSxcbiAgICAgICAgICAgICAgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGUgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IFwiZm9ybee7hOS7tuS4rURhdGVSYW5nZeaOp+S7tnZhbHVl5YC85qC85byP5LiN6KeE6IyD77yM5q2j56Gu56S65L6LWycyMDIwLTAxLTIyJywgJzIwMjAtMDEtMjMnXVwiO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gRm9ybUxpc3RUeXBlLkNoZWNrYm94ICYmIGl0ZW0uY2hlY2tib3hPcHRpb24pIHtcbiAgICAgICAgY29uc3QgY2hlY2tib3hWYWx1ZSA9IEFycmF5LmlzQXJyYXkoaXRlbS52YWx1ZSkgPyBpdGVtLnZhbHVlIDogW107XG4gICAgICAgIGlmIChpdGVtLnZhbGlkYXRvcikge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbChcbiAgICAgICAgICAgIHsgdmFsdWU6IGNoZWNrYm94VmFsdWUsIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sXG4gICAgICAgICAgICBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZVxuICAgICAgICAgICAgICA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBpdGVtLnZhbGlkYXRvcl1cbiAgICAgICAgICAgICAgOiBbXSxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbChcbiAgICAgICAgICAgIHsgdmFsdWU6IGNoZWNrYm94VmFsdWUsIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sXG4gICAgICAgICAgICBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09PSBGb3JtTGlzdFR5cGUuQ2hlY2tib3gpIHtcbiAgICAgICAgY29uc3QgY2hlY2tib3hWYWx1ZSA9IGl0ZW0udmFsdWUgIT0gbnVsbCA/IGl0ZW0udmFsdWUgOiBmYWxzZTtcbiAgICAgICAgaWYgKGl0ZW0udmFsaWRhdG9yKSB7XG4gICAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLm5hbWVdID0gdGhpcy5mYi5jb250cm9sKFxuICAgICAgICAgICAgeyB2YWx1ZTogY2hlY2tib3hWYWx1ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSxcbiAgICAgICAgICAgIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlXG4gICAgICAgICAgICAgID8gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGl0ZW0udmFsaWRhdG9yXVxuICAgICAgICAgICAgICA6IFtdLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLm5hbWVdID0gdGhpcy5mYi5jb250cm9sKFxuICAgICAgICAgICAgeyB2YWx1ZTogY2hlY2tib3hWYWx1ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSxcbiAgICAgICAgICAgIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10sXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09IEZvcm1MaXN0VHlwZS5SZWdpb25BZGRyZXNzKSB7XG4gICAgICAgIGNvbnN0IHJlZ2lvblZhbHVlID0gQXJyYXkuaXNBcnJheShpdGVtLnZhbHVlKSA/IGl0ZW0udmFsdWUgOiBudWxsO1xuICAgICAgICBjb25zdCBhZGRyZXNzVmFsdWUgPVxuICAgICAgICAgIGl0ZW0uYWRkcmVzc1ZhbHVlICE9IG51bGwgPyBpdGVtLmFkZHJlc3NWYWx1ZSA6IG51bGw7XG4gICAgICAgIGNvbnN0IHJlcXVpcmVWYWxpZGF0b3JzID1cbiAgICAgICAgICBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdO1xuICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woXG4gICAgICAgICAgICB7IHZhbHVlOiByZWdpb25WYWx1ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSxcbiAgICAgICAgICAgIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlXG4gICAgICAgICAgICAgID8gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGl0ZW0udmFsaWRhdG9yXVxuICAgICAgICAgICAgICA6IFtpdGVtLnZhbGlkYXRvcl0sXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woXG4gICAgICAgICAgICB7IHZhbHVlOiByZWdpb25WYWx1ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSxcbiAgICAgICAgICAgIHJlcXVpcmVWYWxpZGF0b3JzLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLmFkZHJlc3NOYW1lXSA9IHRoaXMuZmIuY29udHJvbChcbiAgICAgICAgICB7IHZhbHVlOiBhZGRyZXNzVmFsdWUsIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sXG4gICAgICAgICAgcmVxdWlyZVZhbGlkYXRvcnMsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woXG4gICAgICAgICAgICB7IHZhbHVlOiBpdGVtLnZhbHVlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LFxuICAgICAgICAgICAgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGVcbiAgICAgICAgICAgICAgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgaXRlbS52YWxpZGF0b3JdXG4gICAgICAgICAgICAgIDogW10sXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woXG4gICAgICAgICAgICB7IHZhbHVlOiBpdGVtLnZhbHVlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LFxuICAgICAgICAgICAgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGUgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnZhbGlkYXRlSGRGb3JtID0gdGhpcy5mYi5ncm91cChmb3JtR3JvdXBMaXN0KTtcblxuICAgIHRoaXMuZm9ybUxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKGl0ZW0ub25DaGFuZ2VFdmVudCkge1xuICAgICAgICBjb25zdCBkZWJvdW5jZU1zID1cbiAgICAgICAgICBpdGVtLm9uQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWUgIT0gbnVsbFxuICAgICAgICAgICAgPyBpdGVtLm9uQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWVcbiAgICAgICAgICAgIDogMDtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0KGl0ZW0ubmFtZSk7XG4gICAgICAgIC8vIOacqumFjee9ruaIluS4uiAw77ya5ZCM5q2l6K6i6ZiF77yM5LiN6LWwIGRlYm91bmNlVGltZe+8iOmBv+WFjeW8guatpeegtOWdjyBwYXRjaFZhbHVlIOiBlOWKqOWbnuaYvu+8iVxuICAgICAgICBpZiAoZGVib3VuY2VNcyA+IDApIHtcbiAgICAgICAgICBjb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKGRlYm91bmNlTXMpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+XG4gICAgICAgICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KGl0ZW0ub25DaGFuZ2VFdmVudCwgdmFsdWUpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PlxuICAgICAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoaXRlbS5vbkNoYW5nZUV2ZW50LCB2YWx1ZSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMudmFsaWRhdGVIZEZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoZGF0YSkgPT5cbiAgICAgIHRoaXMub25IZEZvcm1WYWx1ZUNoYW5nZWQoZGF0YSksXG4gICAgKTtcbiAgICB0aGlzLm9uSGRGb3JtVmFsdWVDaGFuZ2VkKCk7XG4gIH1cblxuICBwcml2YXRlIGRlYWxSb3coKSB7XG4gICAgLy8g5LiA6Zi25q61IOmBjeWOhuaVsOaNruiuoeeul+ebuOWFs+aVsOaNrlxuICAgIGNvbnN0IGZvcm1MaXN0TGVuZ3RoID0gdGhpcy5mb3JtTGlzdC5sZW5ndGg7XG4gICAgbGV0IHN0ZXAgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybUxpc3RMZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCF0aGlzLmZvcm1MaXN0W2ldLmhpZGUpIHtcbiAgICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgICB0aGlzLmZvcm1MaXN0W2ldLnRvdGFsV2lkdGggPSB0aGlzLmZvcm1MaXN0W2ldLndpZHRoIHx8IDE7XG4gICAgICAgICAgdGhpcy5mb3JtTGlzdFtpXS5pc1Jvd0ZpcnN0ID0gMTtcbiAgICAgICAgICBzdGVwID0gc3RlcCArIDQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8g5Y675om+5Yiw5YmN5LiA5Liq6Z2eaGlkZeeahOaOp+S7tlxuICAgICAgICAgIGZvciAobGV0IGogPSBpIC0gMTsgaiA+PSAwOyBqLS0pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1MaXN0W2pdLnRvdGFsV2lkdGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtTGlzdFtpXS50b3RhbFdpZHRoID1cbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1MaXN0W2pdLnRvdGFsV2lkdGggKyAodGhpcy5mb3JtTGlzdFtpXS53aWR0aCB8fCAxKTtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUxpc3Rbal0udG90YWxXaWR0aCArICh0aGlzLmZvcm1MaXN0W2ldLndpZHRoIHx8IDEpID5cbiAgICAgICAgICAgICAgICAgIHN0ZXAgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1MaXN0W2pdLnRvdGFsV2lkdGggPD0gc3RlcFxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBzdGVwID0gc3RlcCArIDQ7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtTGlzdFtpXS5pc1Jvd0ZpcnN0ID0gMTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1MaXN0W2ldLmlzUm93Rmlyc3QgPSAwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIOS6jOmYtuautSBpc1Jvd0ZpcnN055qE5pWw57uE6aG55aKe5Yqg5a2Q6IqC54K5XG4gICAgZm9yIChsZXQgbSA9IDA7IG0gPCBmb3JtTGlzdExlbmd0aDsgbSsrKSB7XG4gICAgICBpZiAodGhpcy5mb3JtTGlzdFttXS5pc1Jvd0ZpcnN0ID09PSAxKSB7XG4gICAgICAgIHRoaXMuZm9ybUxpc3RbbV0uY29sdW1uSXRlbXMgPSBbXTtcbiAgICAgICAgbGV0IHNwYWNlID0gMDtcbiAgICAgICAgZm9yIChsZXQgbiA9IDE7IG4gPCBmb3JtTGlzdExlbmd0aCAtIG07IG4rKykge1xuICAgICAgICAgIGlmIChzcGFjZSA9PT0gNCB8fCB0aGlzLmZvcm1MaXN0W20gKyBuXS5pc1Jvd0ZpcnN0ID09PSAxKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMuZm9ybUxpc3RbbSArIG5dLmhpZGUgJiZcbiAgICAgICAgICAgIHRoaXMuZm9ybUxpc3RbbSArIG5dICYmXG4gICAgICAgICAgICB0aGlzLmZvcm1MaXN0W20gKyBuXS5pc1Jvd0ZpcnN0ID09PSAwXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1MaXN0W21dLmNvbHVtbkl0ZW1zLnB1c2godGhpcy5mb3JtTGlzdFttICsgbl0pO1xuICAgICAgICAgICAgc3BhY2UrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uSGRGb3JtVmFsdWVDaGFuZ2VkKGRhdGE/OiBhbnkpIHtcbiAgICB0aGlzLmNoYW5nZUV2ZW50LmVtaXQodGhpcy52YWxpZGF0ZUhkRm9ybSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrTGlzdChsaXN0OiBBcnJheTxGb3JtSXRlbT4pOiBib29sZWFuIHtcbiAgICBpZiAoIWxpc3QgfHwgKGxpc3QgJiYgbGlzdC5sZW5ndGggPT09IDApKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGxldCBuYW1lTGlzdCA9IFtdO1xuICAgIGxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgLy8g5qCh6aqM5Y2V6aG56YCJ5oup5ZmoXG4gICAgICAvLyBpZiAoaXRlbS50eXBlID09PSBGb3JtTGlzdFR5cGUuU2VsZWN0ICYmICghaXRlbS5zZWxlY3RPcHRpb24uc2VsZWN0TGlzdCB8fCAoaXRlbS5zZWxlY3RPcHRpb24uc2VsZWN0TGlzdCAmJiBpdGVtLnNlbGVjdE9wdGlvbi5zZWxlY3RMaXN0Lmxlbmd0aCA9PT0gMCkpKSB7XG4gICAgICAvLyAgIHRocm93ICdmb3Jt57uE5Lu25pWw5o2u5qC85byP5LiN6KeE6IyD77yM5a2Y5Zyo5Y2V6aG56YCJ5oup5Zmo5rKh5pyJ5Lyg5YWl6YCJ6aG5ISdcbiAgICAgIC8vIH1cbiAgICAgIGlmIChpdGVtLnR5cGUgPT09IEZvcm1MaXN0VHlwZS5SZWdpb25BZGRyZXNzICYmICFpdGVtLmFkZHJlc3NOYW1lKSB7XG4gICAgICAgIHRocm93IFwiZm9ybee7hOS7tiBSZWdpb25BZGRyZXNzIOW/hemhu+mFjee9riBhZGRyZXNzTmFtZVwiO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBpdGVtLnR5cGUgPT09IEZvcm1MaXN0VHlwZS5SZWdpb25BZGRyZXNzICYmXG4gICAgICAgICghaXRlbS5jYXNjYWRlck9wdGlvbiB8fCAhaXRlbS5jYXNjYWRlck9wdGlvbi5vcHRpb25zKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IFwiZm9ybee7hOS7tiBSZWdpb25BZGRyZXNzIOW/hemhu+mFjee9riBjYXNjYWRlck9wdGlvbi5vcHRpb25zXCI7XG4gICAgICB9XG4gICAgICBuYW1lTGlzdC5wdXNoKGl0ZW0ubmFtZSk7XG4gICAgICBpZiAoaXRlbS50eXBlID09PSBGb3JtTGlzdFR5cGUuUmVnaW9uQWRkcmVzcykge1xuICAgICAgICBuYW1lTGlzdC5wdXNoKGl0ZW0uYWRkcmVzc05hbWUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIC8vIOagoemqjCBuYW1lIC8gYWRkcmVzc05hbWUg5piv5ZCm6YeN5aSNXG4gICAgaWYgKFsuLi5uZXcgU2V0KG5hbWVMaXN0KV0ubGVuZ3RoICE9PSBuYW1lTGlzdC5sZW5ndGgpIHtcbiAgICAgIHRocm93IFwiZm9ybee7hOS7tuaVsOaNruagvOW8j+S4jeinhOiMg++8jOWtmOWcqOmHjeWkjW5hbWXlgLwhXCI7XG4gICAgfVxuICAgIC8vIC4uLm1vcmUgY2hlY2tcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBSZWdpb25BZGRyZXNzIOWPjOaOp+S7tuS7u+S4gOiEj+S4lOaXoOaViOaXtuaYvuekuiBlcnJvciAqL1xuICBnZXRSZWdpb25BZGRyZXNzVmFsaWRhdGVTdGF0dXMoaXRlbTogRm9ybUl0ZW0pOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy52YWxpZGF0ZUhkRm9ybSkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIGNvbnN0IHJlZ2lvbiA9IHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0KGl0ZW0ubmFtZSk7XG4gICAgY29uc3QgYWRkcmVzcyA9IGl0ZW0uYWRkcmVzc05hbWVcbiAgICAgID8gdGhpcy52YWxpZGF0ZUhkRm9ybS5nZXQoaXRlbS5hZGRyZXNzTmFtZSlcbiAgICAgIDogbnVsbDtcbiAgICBjb25zdCBpbnZhbGlkRGlydHkgPSAoY29udHJvbCkgPT5cbiAgICAgIGNvbnRyb2wgJiYgY29udHJvbC5kaXJ0eSAmJiBjb250cm9sLmludmFsaWQ7XG4gICAgaWYgKGludmFsaWREaXJ0eShyZWdpb24pIHx8IGludmFsaWREaXJ0eShhZGRyZXNzKSkge1xuICAgICAgcmV0dXJuIFwiZXJyb3JcIjtcbiAgICB9XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICBnZXRSZWdpb25BZGRyZXNzRXJyb3JUaXAoaXRlbTogRm9ybUl0ZW0pOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy52YWxpZGF0ZUhkRm9ybSkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIGNvbnN0IHJlZ2lvbiA9IHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0KGl0ZW0ubmFtZSk7XG4gICAgY29uc3QgYWRkcmVzcyA9IGl0ZW0uYWRkcmVzc05hbWVcbiAgICAgID8gdGhpcy52YWxpZGF0ZUhkRm9ybS5nZXQoaXRlbS5hZGRyZXNzTmFtZSlcbiAgICAgIDogbnVsbDtcbiAgICBpZiAocmVnaW9uICYmIHJlZ2lvbi5kaXJ0eSAmJiByZWdpb24uaGFzRXJyb3IoXCJyZXF1aXJlZFwiKSkge1xuICAgICAgcmV0dXJuIGl0ZW0ubGFiZWwgKyBcIuS4jeiDveS4uuepulwiO1xuICAgIH1cbiAgICBpZiAoYWRkcmVzcyAmJiBhZGRyZXNzLmRpcnR5ICYmIGFkZHJlc3MuaGFzRXJyb3IoXCJyZXF1aXJlZFwiKSkge1xuICAgICAgcmV0dXJuIFwi6K+m57uG5Zyw5Z2A5LiN6IO95Li656m6XCI7XG4gICAgfVxuICAgIGlmIChpdGVtLnZhbGlkYXRvcktleXMgJiYgcmVnaW9uKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW0udmFsaWRhdG9yS2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBrZXkgPSBpdGVtLnZhbGlkYXRvcktleXNbaV07XG4gICAgICAgIGlmIChyZWdpb24uaGFzRXJyb3Ioa2V5LmtleSkpIHtcbiAgICAgICAgICByZXR1cm4ga2V5LmxhYmVsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpdGVtLmxhYmVsICsgXCLkuI3og73kuLrnqbpcIjtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRGb3JtKCk6IHZvaWQge1xuICAgIE9iamVjdC52YWx1ZXModGhpcy52YWxpZGF0ZUhkRm9ybS5jb250cm9scykuZm9yRWFjaCgoY29udHJvbCkgPT4ge1xuICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSk7XG4gICAgdGhpcy5jaGFuZ2VFdmVudC5lbWl0KHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0UmF3VmFsdWUoKSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXRGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMudmFsaWRhdGVIZEZvcm0ucmVzZXQoKTtcbiAgICBPYmplY3QudmFsdWVzKHRoaXMudmFsaWRhdGVIZEZvcm0uY29udHJvbHMpLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH0pO1xuICAgIHRoaXMuY2hhbmdlRXZlbnQuZW1pdCh0aGlzLnZhbGlkYXRlSGRGb3JtLmdldFJhd1ZhbHVlKCkpO1xuICB9XG5cbiAgcHVibGljIGlucHV0Q2xlYW4oZmlsdGVyOiBGb3JtSXRlbSk6IHZvaWQge1xuICAgIGNvbnN0IHBhdGNoT2JqZWN0ID0ge307XG4gICAgcGF0Y2hPYmplY3RbZmlsdGVyLm5hbWVdID0gbnVsbDtcbiAgICB0aGlzLnZhbGlkYXRlSGRGb3JtLnBhdGNoVmFsdWUocGF0Y2hPYmplY3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIOaYr+WQpuWFgeiuuOa4heepuu+8muS8mOWFiCBGb3JtSXRlbS5oZEFsbG93Q2xlYXLvvIzlhbbmrKEgc2VsZWN0T3B0aW9uLmhkQWxsb3dDbGVhcu+8jOm7mOiupCB0cnVlXG4gICAqL1xuICBpc0FsbG93Q2xlYXIoaXRlbTogRm9ybUl0ZW0pOiBib29sZWFuIHtcbiAgICBpZiAoIWl0ZW0pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoaXRlbS5oZEFsbG93Q2xlYXIgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuICEhaXRlbS5oZEFsbG93Q2xlYXI7XG4gICAgfVxuICAgIGlmIChpdGVtLnNlbGVjdE9wdGlvbiAmJiBpdGVtLnNlbGVjdE9wdGlvbi5oZEFsbG93Q2xlYXIgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuICEhaXRlbS5zZWxlY3RPcHRpb24uaGRBbGxvd0NsZWFyO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlzQ2hlY2tib3hDaGVja2VkKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnZhbGlkYXRlSGRGb3JtLmdldChuYW1lKTtcbiAgICBjb25zdCBjdXJyZW50ID0gY29udHJvbCA/IGNvbnRyb2wudmFsdWUgOiBudWxsO1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGN1cnJlbnQpICYmIGN1cnJlbnQuaW5kZXhPZih2YWx1ZSkgIT09IC0xO1xuICB9XG5cbiAgb25DaGVja2JveEl0ZW1DaGFuZ2UobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55LCBjaGVja2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0KG5hbWUpO1xuICAgIGlmICghY29udHJvbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50ID0gQXJyYXkuaXNBcnJheShjb250cm9sLnZhbHVlKSA/IFsuLi5jb250cm9sLnZhbHVlXSA6IFtdO1xuICAgIGNvbnN0IGluZGV4ID0gY3VycmVudC5pbmRleE9mKHZhbHVlKTtcbiAgICBpZiAoY2hlY2tlZCAmJiBpbmRleCA9PT0gLTEpIHtcbiAgICAgIGN1cnJlbnQucHVzaCh2YWx1ZSk7XG4gICAgfSBlbHNlIGlmICghY2hlY2tlZCAmJiBpbmRleCAhPT0gLTEpIHtcbiAgICAgIGN1cnJlbnQuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gICAgY29udHJvbC5zZXRWYWx1ZShjdXJyZW50KTtcbiAgICBjb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICByZWFkb25seSBpbnB1dE51bWJlckRlZmF1bHRGb3JtYXR0ZXIgPSAodmFsdWU6IHVua25vd24pID0+IHZhbHVlO1xuICByZWFkb25seSBpbnB1dE51bWJlckRlZmF1bHRQYXJzZXIgPSAodmFsdWU6IHN0cmluZykgPT4gdmFsdWU7XG5cbiAgZ2V0Q2FzY2FkZXJTaG93U2VhcmNoID0gZ2V0Q2FzY2FkZXJTaG93U2VhcmNoO1xuICBnZXRDYXNjYWRlck1lbnVDbGFzc05hbWUgPSBnZXRDYXNjYWRlck1lbnVDbGFzc05hbWU7XG4gIGdldENhc2NhZGVyTWVudVN0eWxlID0gZ2V0Q2FzY2FkZXJNZW51U3R5bGU7XG59XG4iXX0=
@@ -153,8 +153,8 @@ var HdAccessoryListComponent = /** @class */ (function () {
153
153
  HdAccessoryListComponent.decorators = [
154
154
  { type: Component, args: [{
155
155
  selector: "hd-accessory-list",
156
- template: "<div class=\"hd-accessory-list\" *ngIf=\"groups && groups.length\">\n <div class=\"hd-accessory-group\" *ngFor=\"let group of groups; trackBy: trackByGroup\">\n <div class=\"hd-accessory-group-label\" *ngIf=\"getLabelText(group)\">\n {{ getLabelText(group) }}\n </div>\n <div class=\"hd-accessory-files\" *ngIf=\"group.accessoryList && group.accessoryList.length\">\n <a class=\"hd-accessory-file\" *ngFor=\"let file of group.accessoryList; trackBy: trackByFile\"\n href=\"javascript:void(0)\"\n (click)=\"onFileClick(group, file, $event)\"\n [attr.title]=\"getFileName(file)\">\n <span class=\"hd-accessory-file-main\">\n <i nz-icon class=\"hd-accessory-file-icon\" nzType=\"link\" nzTheme=\"outline\"></i>\n <span class=\"hd-accessory-file-name\">{{ getFileName(file) || '\u672A\u547D\u540D\u6587\u4EF6' }}</span>\n </span>\n <span class=\"hd-accessory-file-size\" *ngIf=\"getFileSizeText(file)\">{{ getFileSizeText(file) }}</span>\n </a>\n </div>\n </div>\n</div>\n",
157
- styles: ["::ng-deep .common-btn-group>a{font-size:14px;font-weight:400;color:#20b95d!important;white-space:nowrap}::ng-deep .common-btn-group .common-danger-btn:hover{color:#f05b24!important}::ng-deep .common-btn-group>a:hover{color:#20bd62!important}::ng-deep .common-btn-group>a:not(:last-child)::after{content:'';margin:0 2px}::ng-deep .common-billNumber>a{color:#3b77e3}button{box-shadow:unset;text-shadow:unset}::ng-deep .ant-form-item-label>label{color:#4b504e;font-size:14px}::ng-deep .ant-input-number-input{height:32px}::ng-deep .ant-input-number{height:32px}textarea.ant-input{height:auto;min-height:32px}::ng-deep .ant-select-selection--multiple{min-height:32px}::ng-deep .ant-select-selection__rendered>ul>li{height:26px!important;margin-top:3px!important;line-height:26px!important}::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:0!important}::ng-deep .ant-select-selection--single{height:32px!important}::ng-deep .ant-input{height:32px}::ng-deep .ant-input[disabled]:hover{border-color:#d9d9d9!important}::ng-deep .ant-select-selection__rendered{line-height:32px!important}::ng-deep .ant-calendar-range-picker-input{text-align:left!important}::ng-deep .ant-calendar-picker{width:100%!important}::ng-deep .ant-row{margin-right:0!important;margin-left:0!important}::ng-deep .ant-col-6{padding-left:12px;padding-right:12px}::ng-deep .ant-col-12{padding-left:12px;padding-right:12px}::ng-deep .ant-col-18{padding-left:12px;padding-right:12px}::ng-deep .ant-col-24{padding-left:12px;padding-right:12px}::ng-deep .ant-alert-info{background-color:#f5f8f6;border:1px solid #cfe3d4}::ng-deep .hd-table-container .ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-th-right-sticky{z-index:2;transform:translateZ(0)}::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-right-sticky{background:#f5f8f6!important}::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-right-sticky{background:#fff}::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-right-sticky{background:#ecf8f1!important}::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-th-right-sticky{box-shadow:none!important}::ng-deep .hd-table-container .ant-table-fixed-right{right:0!important}:host ::ng-deep th{background:#f5f8f6!important;font-weight:700!important;white-space:nowrap;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;color:#2a3634;padding:8px!important;box-sizing:border-box}:host ::ng-deep td{font-weight:400;font-style:normal;font-size:14px;color:#2a3634;text-align:left;white-space:nowrap;padding:8px!important;box-sizing:border-box}::ng-deep .ant-pagination-options{display:inline-flex;align-items:center}::ng-deep .ant-pagination-options .ant-select,::ng-deep .ant-pagination-options .ant-select-selection--single{min-width:100px}::ng-deep .ant-pagination-options-size-changer.ant-select{min-width:100px}::ng-deep .ant-time-picker{width:100%}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child{width:-webkit-max-content!important;width:-moz-max-content!important;width:max-content!important;min-width:var(--hd-cascader-menu-min-width,auto);max-width:560px}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child .ant-cascader-menu-item{white-space:nowrap}.ant-input-number-disabled,.ant-input[disabled],.ant-select-disabled{color:#4b504e}.hd-accessory-list{width:100%;font-size:14px;line-height:22px}.hd-accessory-list .hd-accessory-group+.hd-accessory-group{margin-top:16px}.hd-accessory-list .hd-accessory-group-label{padding:5px 0;min-height:32px;box-sizing:border-box;color:#4e5369;line-height:22px}.hd-accessory-list .hd-accessory-files{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.hd-accessory-list .hd-accessory-file{display:flex;align-items:center;gap:12px;min-width:0;padding:7px 12px;box-sizing:border-box;background:#f7f8fa;border-radius:4px;color:#20b95d;text-decoration:none;cursor:pointer}.hd-accessory-list .hd-accessory-file:hover .hd-accessory-file-icon,.hd-accessory-list .hd-accessory-file:hover .hd-accessory-file-name{color:#20bd62}.hd-accessory-list .hd-accessory-file-main{display:flex;flex:1;min-width:0;align-items:center;gap:4px}.hd-accessory-list .hd-accessory-file-icon{flex-shrink:0;font-size:16px;color:inherit}.hd-accessory-list .hd-accessory-file-name{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:inherit;font-size:14px;line-height:22px}.hd-accessory-list .hd-accessory-file-size{flex-shrink:0;color:#8d918f;font-size:12px;line-height:18px}"]
156
+ template: "<div class=\"hd-accessory-list\" *ngIf=\"groups && groups.length\">\n <div class=\"hd-accessory-group\" *ngFor=\"let group of groups; trackBy: trackByGroup\">\n <div class=\"hd-accessory-group-label\" *ngIf=\"getLabelText(group)\">\n {{ getLabelText(group) }}\n </div>\n <div class=\"hd-accessory-files\" *ngIf=\"group.accessoryList && group.accessoryList.length\">\n <a class=\"hd-accessory-file\" *ngFor=\"let file of group.accessoryList; trackBy: trackByFile\"\n href=\"javascript:void(0)\"\n (click)=\"onFileClick(group, file, $event)\"\n [attr.title]=\"getFileName(file)\">\n <span class=\"hd-accessory-file-main\">\n <i nz-icon class=\"hd-accessory-file-icon\" nzType=\"link\" nzTheme=\"outline\"></i>\n <span class=\"hd-accessory-file-name\">{{ getFileName(file) || '\u672A\u547D\u540D\u6587\u4EF6' }}</span>\n </span>\n <span class=\"hd-accessory-file-size\" *ngIf=\"getFileSizeText(file)\">{{ getFileSizeText(file) }}</span>\n </a>\n </div>\n <div class=\"hd-accessory-empty\" *ngIf=\"!group.accessoryList || !group.accessoryList.length\">\n \u6682\u65E0\u9644\u4EF6\n </div>\n </div>\n</div>\n",
157
+ styles: ["::ng-deep .common-btn-group>a{font-size:14px;font-weight:400;color:#20b95d!important;white-space:nowrap}::ng-deep .common-btn-group .common-danger-btn:hover{color:#f05b24!important}::ng-deep .common-btn-group>a:hover{color:#20bd62!important}::ng-deep .common-btn-group>a:not(:last-child)::after{content:'';margin:0 2px}::ng-deep .common-billNumber>a{color:#3b77e3}button{box-shadow:unset;text-shadow:unset}::ng-deep .ant-form-item-label>label{color:#4b504e;font-size:14px}::ng-deep .ant-input-number-input{height:32px}::ng-deep .ant-input-number{height:32px}textarea.ant-input{height:auto;min-height:32px}::ng-deep .ant-select-selection--multiple{min-height:32px}::ng-deep .ant-select-selection__rendered>ul>li{height:26px!important;margin-top:3px!important;line-height:26px!important}::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:0!important}::ng-deep .ant-select-selection--single{height:32px!important}::ng-deep .ant-input{height:32px}::ng-deep .ant-input[disabled]:hover{border-color:#d9d9d9!important}::ng-deep .ant-select-selection__rendered{line-height:32px!important}::ng-deep .ant-calendar-range-picker-input{text-align:left!important}::ng-deep .ant-calendar-picker{width:100%!important}::ng-deep .ant-row{margin-right:0!important;margin-left:0!important}::ng-deep .ant-col-6{padding-left:12px;padding-right:12px}::ng-deep .ant-col-12{padding-left:12px;padding-right:12px}::ng-deep .ant-col-18{padding-left:12px;padding-right:12px}::ng-deep .ant-col-24{padding-left:12px;padding-right:12px}::ng-deep .ant-alert-info{background-color:#f5f8f6;border:1px solid #cfe3d4}::ng-deep .hd-table-container .ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-th-right-sticky{z-index:2;transform:translateZ(0)}::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-right-sticky{background:#f5f8f6!important}::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-right-sticky{background:#fff}::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-right-sticky{background:#ecf8f1!important}::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-th-right-sticky{box-shadow:none!important}::ng-deep .hd-table-container .ant-table-fixed-right{right:0!important}:host ::ng-deep th{background:#f5f8f6!important;font-weight:700!important;white-space:nowrap;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;color:#2a3634;padding:8px!important;box-sizing:border-box}:host ::ng-deep td{font-weight:400;font-style:normal;font-size:14px;color:#2a3634;text-align:left;white-space:nowrap;padding:8px!important;box-sizing:border-box}::ng-deep .ant-pagination-options{display:inline-flex;align-items:center}::ng-deep .ant-pagination-options .ant-select,::ng-deep .ant-pagination-options .ant-select-selection--single{min-width:100px}::ng-deep .ant-pagination-options-size-changer.ant-select{min-width:100px}::ng-deep .ant-time-picker{width:100%}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child{width:-webkit-max-content!important;width:-moz-max-content!important;width:max-content!important;min-width:var(--hd-cascader-menu-min-width,auto);max-width:560px}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child .ant-cascader-menu-item{white-space:nowrap}.ant-input-number-disabled,.ant-input[disabled],.ant-select-disabled{color:#4b504e}.hd-accessory-list{width:100%;font-size:14px;line-height:22px}.hd-accessory-list .hd-accessory-group+.hd-accessory-group{margin-top:16px}.hd-accessory-list .hd-accessory-group-label{padding:5px 0;min-height:32px;box-sizing:border-box;color:#4e5369;line-height:22px}.hd-accessory-list .hd-accessory-files{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.hd-accessory-list .hd-accessory-empty{padding:7px 0;color:#8d918f;font-size:14px;line-height:22px}.hd-accessory-list .hd-accessory-file{display:flex;align-items:center;gap:12px;min-width:0;padding:7px 12px;box-sizing:border-box;background:#f7f8fa;border-radius:4px;color:#20b95d;text-decoration:none;cursor:pointer}.hd-accessory-list .hd-accessory-file:hover .hd-accessory-file-icon,.hd-accessory-list .hd-accessory-file:hover .hd-accessory-file-name{color:#20bd62}.hd-accessory-list .hd-accessory-file-main{display:flex;flex:1;min-width:0;align-items:center;gap:4px}.hd-accessory-list .hd-accessory-file-icon{flex-shrink:0;font-size:16px;color:inherit}.hd-accessory-list .hd-accessory-file-name{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:inherit;font-size:14px;line-height:22px}.hd-accessory-list .hd-accessory-file-size{flex-shrink:0;color:#8d918f;font-size:12px;line-height:18px}"]
158
158
  }] }
159
159
  ];
160
160
  /** @nocollapse */
@@ -194,4 +194,4 @@ if (false) {
194
194
  /** @type {?} */
195
195
  HdAccessoryListComponent.prototype.trackByFile;
196
196
  }
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtYWNjZXNzb3J5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vZmFudGFzeS1uZ3pvcnJvLyIsInNvdXJjZXMiOlsiaGQtYWNjZXNzb3J5LWxpc3QvaGQtYWNjZXNzb3J5LWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCO0lBb0JFO1FBQUEsaUJBQWdCOzs7O1FBYlAsV0FBTSxHQUE0QixFQUFFLENBQUM7Ozs7UUFFckMsZUFBVSxHQUFZLElBQUksQ0FBQzs7OztRQUUzQixhQUFRLEdBQVksSUFBSSxDQUFDOzs7O1FBR3hCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFJbEMsQ0FBQzs7UUF5RUwsaUJBQVk7Ozs7O1FBQUcsVUFBQyxLQUFhLEVBQUUsS0FBdUI7WUFDcEQsT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDO1FBQ3hDLENBQUMsRUFBQztRQUVGLGdCQUFXOzs7OztRQUFHLFVBQUMsS0FBYSxFQUFFLElBQXFCO1lBQ2pELE9BQU8sS0FBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQztRQUNuRSxDQUFDLEVBQUM7SUE3RWEsQ0FBQzs7OztJQUVoQiwyQ0FBUTs7O0lBQVIsY0FBWSxDQUFDOzs7OztJQUViLDhDQUFXOzs7O0lBQVgsVUFBWSxJQUFxQjtRQUMvQixJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFFO1lBQzlCLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7Ozs7SUFFRCw4Q0FBVzs7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OzRCQUdMLE1BQU07O0lBb0ZULCtCQUFDO0NBQUEsQUFsR0QsSUFrR0M7U0E3Rlksd0JBQXdCOzs7Ozs7SUFFbkMsMENBQThDOzs7OztJQUU5Qyw4Q0FBb0M7Ozs7O0lBRXBDLDRDQUFrQzs7Ozs7SUFHbEMsNkNBSUs7O0lBeUVMLGdEQUVFOztJQUVGLCtDQUVFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEhkQWNjZXNzb3J5RmlsZSwgSGRBY2Nlc3NvcnlHcm91cCB9IGZyb20gXCIuL2hkLWFjY2Vzc29yeS1saXN0LnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImhkLWFjY2Vzc29yeS1saXN0XCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vaGQtYWNjZXNzb3J5LWxpc3QuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2hkLWFjY2Vzc29yeS1saXN0LmNvbXBvbmVudC5sZXNzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBIZEFjY2Vzc29yeUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKiog5YiG57uE5YiX6KGo77ya5q+P6aG55ZCrIG5hbWUgKyBhY2Nlc3NvcnlMaXN0ICovXG4gIEBJbnB1dCgpIGdyb3VwczogQXJyYXk8SGRBY2Nlc3NvcnlHcm91cD4gPSBbXTtcbiAgLyoqIOWIhue7hOagh+etvuWQjuaYr+WQpuiHquWKqOWKoOWGkuWPt++8jOm7mOiupCB0cnVlICovXG4gIEBJbnB1dCgpIGxhYmVsQ29sb246IGJvb2xlYW4gPSB0cnVlO1xuICAvKiog54K55Ye76ZmE5Lu25pe25piv5ZCm6buY6K6kIHdpbmRvdy5vcGVuIOS4i+i9vS/mn6XnnIvvvIzpu5jorqQgdHJ1ZSAqL1xuICBASW5wdXQoKSBhdXRvT3BlbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqIOeCueWHu+mZhOS7tuWbnuiwg++8iOWcqCBhdXRvT3BlbiDkuYvliY3op6blj5HvvIkgKi9cbiAgQE91dHB1dCgpIGZpbGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIGdyb3VwOiBIZEFjY2Vzc29yeUdyb3VwO1xuICAgIGZpbGU6IEhkQWNjZXNzb3J5RmlsZTtcbiAgICBwYXRoOiBzdHJpbmc7XG4gIH0+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICBnZXRGaWxlTmFtZShmaWxlOiBIZEFjY2Vzc29yeUZpbGUpOiBzdHJpbmcge1xuICAgIGlmICghZmlsZSB8fCBmaWxlLm5hbWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIHJldHVybiBTdHJpbmcoZmlsZS5uYW1lKTtcbiAgfVxuXG4gIGdldEZpbGVQYXRoKGZpbGU6IEhkQWNjZXNzb3J5RmlsZSk6IHN0cmluZyB7XG4gICAgaWYgKCFmaWxlIHx8IGZpbGUucGF0aCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgcmV0dXJuIFN0cmluZyhmaWxlLnBhdGgpO1xuICB9XG5cbiAgZ2V0RmlsZVNpemVUZXh0KGZpbGU6IEhkQWNjZXNzb3J5RmlsZSk6IHN0cmluZyB7XG4gICAgaWYgKCFmaWxlKSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgY29uc3QgcmF3ID0gZmlsZS5zaXplO1xuICAgIGlmIChyYXcgPT0gbnVsbCB8fCByYXcgPT09IFwiXCIpIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHJhdyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgcmV0dXJuIHJhdztcbiAgICB9XG4gICAgY29uc3QgYnl0ZXMgPSBOdW1iZXIocmF3KTtcbiAgICBpZiAoaXNOYU4oYnl0ZXMpIHx8IGJ5dGVzIDwgMCkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIGlmIChieXRlcyA8IDEwMjQpIHtcbiAgICAgIHJldHVybiBieXRlcyArIFwiIEJcIjtcbiAgICB9XG4gICAgaWYgKGJ5dGVzIDwgMTAyNCAqIDEwMjQpIHtcbiAgICAgIHJldHVybiAoYnl0ZXMgLyAxMDI0KS50b0ZpeGVkKGJ5dGVzIDwgMTAgKiAxMDI0ID8gMSA6IDApICsgXCIgS0JcIjtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIChieXRlcyAvICgxMDI0ICogMTAyNCkpLnRvRml4ZWQoYnl0ZXMgPCAxMCAqIDEwMjQgKiAxMDI0ID8gMSA6IDApICsgXCIgTUJcIlxuICAgICk7XG4gIH1cblxuICBnZXRMYWJlbFRleHQoZ3JvdXA6IEhkQWNjZXNzb3J5R3JvdXApOiBzdHJpbmcge1xuICAgIGNvbnN0IG5hbWUgPSBncm91cCAmJiBncm91cC5uYW1lICE9IG51bGwgPyBTdHJpbmcoZ3JvdXAubmFtZSkgOiBcIlwiO1xuICAgIGlmICghbmFtZSkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIGlmICghdGhpcy5sYWJlbENvbG9uKSB7XG4gICAgICByZXR1cm4gbmFtZTtcbiAgICB9XG4gICAgcmV0dXJuIC9bOu+8ml0kLy50ZXN0KG5hbWUpID8gbmFtZSA6IG5hbWUgKyBcIu+8mlwiO1xuICB9XG5cbiAgb25GaWxlQ2xpY2soXG4gICAgZ3JvdXA6IEhkQWNjZXNzb3J5R3JvdXAsXG4gICAgZmlsZTogSGRBY2Nlc3NvcnlGaWxlLFxuICAgIGV2ZW50OiBFdmVudCxcbiAgKTogdm9pZCB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBjb25zdCBwYXRoID0gdGhpcy5nZXRGaWxlUGF0aChmaWxlKTtcbiAgICB0aGlzLmZpbGVDbGljay5lbWl0KHsgZ3JvdXAsIGZpbGUsIHBhdGggfSk7XG4gICAgaWYgKHRoaXMuYXV0b09wZW4gJiYgcGF0aCkge1xuICAgICAgd2luZG93Lm9wZW4ocGF0aCwgXCJfYmxhbmtcIik7XG4gICAgfVxuICB9XG5cbiAgLy8g55So566t5aS05Ye95pWw77yabmdGb3Ig55qEIHRyYWNrQnkg6LCD55So5pe25LiN5Lya57uR5a6a57uE5Lu2IHRoaXNcbiAgdHJhY2tCeUdyb3VwID0gKGluZGV4OiBudW1iZXIsIGdyb3VwOiBIZEFjY2Vzc29yeUdyb3VwKTogYW55ID0+IHtcbiAgICByZXR1cm4gKGdyb3VwICYmIGdyb3VwLm5hbWUpIHx8IGluZGV4O1xuICB9O1xuXG4gIHRyYWNrQnlGaWxlID0gKGluZGV4OiBudW1iZXIsIGZpbGU6IEhkQWNjZXNzb3J5RmlsZSk6IGFueSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RmlsZVBhdGgoZmlsZSkgfHwgdGhpcy5nZXRGaWxlTmFtZShmaWxlKSB8fCBpbmRleDtcbiAgfTtcbn1cbiJdfQ==
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtYWNjZXNzb3J5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vZmFudGFzeS1uZ3pvcnJvLyIsInNvdXJjZXMiOlsiaGQtYWNjZXNzb3J5LWxpc3QvaGQtYWNjZXNzb3J5LWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCO0lBb0JFO1FBQUEsaUJBQWdCOzs7O1FBYlAsV0FBTSxHQUE0QixFQUFFLENBQUM7Ozs7UUFFckMsZUFBVSxHQUFZLElBQUksQ0FBQzs7OztRQUUzQixhQUFRLEdBQVksSUFBSSxDQUFDOzs7O1FBR3hCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFJbEMsQ0FBQzs7UUF5RUwsaUJBQVk7Ozs7O1FBQUcsVUFBQyxLQUFhLEVBQUUsS0FBdUI7WUFDcEQsT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDO1FBQ3hDLENBQUMsRUFBQztRQUVGLGdCQUFXOzs7OztRQUFHLFVBQUMsS0FBYSxFQUFFLElBQXFCO1lBQ2pELE9BQU8sS0FBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQztRQUNuRSxDQUFDLEVBQUM7SUE3RWEsQ0FBQzs7OztJQUVoQiwyQ0FBUTs7O0lBQVIsY0FBWSxDQUFDOzs7OztJQUViLDhDQUFXOzs7O0lBQVgsVUFBWSxJQUFxQjtRQUMvQixJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFFO1lBQzlCLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7Ozs7SUFFRCw4Q0FBVzs7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OzRCQUdMLE1BQU07O0lBb0ZULCtCQUFDO0NBQUEsQUFsR0QsSUFrR0M7U0E3Rlksd0JBQXdCOzs7Ozs7SUFFbkMsMENBQThDOzs7OztJQUU5Qyw4Q0FBb0M7Ozs7O0lBRXBDLDRDQUFrQzs7Ozs7SUFHbEMsNkNBSUs7O0lBeUVMLGdEQUVFOztJQUVGLCtDQUVFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEhkQWNjZXNzb3J5RmlsZSwgSGRBY2Nlc3NvcnlHcm91cCB9IGZyb20gXCIuL2hkLWFjY2Vzc29yeS1saXN0LnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImhkLWFjY2Vzc29yeS1saXN0XCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vaGQtYWNjZXNzb3J5LWxpc3QuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2hkLWFjY2Vzc29yeS1saXN0LmNvbXBvbmVudC5sZXNzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBIZEFjY2Vzc29yeUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKiog5YiG57uE5YiX6KGo77ya5q+P6aG55ZCrIG5hbWUgKyBhY2Nlc3NvcnlMaXN0ICovXG4gIEBJbnB1dCgpIGdyb3VwczogQXJyYXk8SGRBY2Nlc3NvcnlHcm91cD4gPSBbXTtcbiAgLyoqIOWIhue7hOagh+etvuWQjuaYr+WQpuiHquWKqOWKoOWGkuWPt++8jOm7mOiupCB0cnVlICovXG4gIEBJbnB1dCgpIGxhYmVsQ29sb246IGJvb2xlYW4gPSB0cnVlO1xuICAvKiog54K55Ye76ZmE5Lu25pe25piv5ZCm6buY6K6kIHdpbmRvdy5vcGVuIOS4i+i9vS/mn6XnnIvvvIzpu5jorqQgdHJ1ZSAqL1xuICBASW5wdXQoKSBhdXRvT3BlbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqIOeCueWHu+mZhOS7tuWbnuiwg++8iOWcqCBhdXRvT3BlbiDkuYvliY3op6blj5HvvIkgKi9cbiAgQE91dHB1dCgpIGZpbGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIGdyb3VwOiBIZEFjY2Vzc29yeUdyb3VwO1xuICAgIGZpbGU6IEhkQWNjZXNzb3J5RmlsZTtcbiAgICBwYXRoOiBzdHJpbmc7XG4gIH0+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICBnZXRGaWxlTmFtZShmaWxlOiBIZEFjY2Vzc29yeUZpbGUpOiBzdHJpbmcge1xuICAgIGlmICghZmlsZSB8fCBmaWxlLm5hbWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIHJldHVybiBTdHJpbmcoZmlsZS5uYW1lKTtcbiAgfVxuXG4gIGdldEZpbGVQYXRoKGZpbGU6IEhkQWNjZXNzb3J5RmlsZSk6IHN0cmluZyB7XG4gICAgaWYgKCFmaWxlIHx8IGZpbGUucGF0aCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgcmV0dXJuIFN0cmluZyhmaWxlLnBhdGgpO1xuICB9XG5cbiAgZ2V0RmlsZVNpemVUZXh0KGZpbGU6IEhkQWNjZXNzb3J5RmlsZSk6IHN0cmluZyB7XG4gICAgaWYgKCFmaWxlKSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgY29uc3QgcmF3ID0gZmlsZS5zaXplO1xuICAgIGlmIChyYXcgPT0gbnVsbCB8fCByYXcgPT09IFwiXCIpIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHJhdyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgcmV0dXJuIHJhdztcbiAgICB9XG4gICAgY29uc3QgYnl0ZXMgPSBOdW1iZXIocmF3KTtcbiAgICBpZiAoaXNOYU4oYnl0ZXMpIHx8IGJ5dGVzIDwgMCkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIGlmIChieXRlcyA8IDEwMjQpIHtcbiAgICAgIHJldHVybiBieXRlcyArIFwiIEJcIjtcbiAgICB9XG4gICAgaWYgKGJ5dGVzIDwgMTAyNCAqIDEwMjQpIHtcbiAgICAgIHJldHVybiAoYnl0ZXMgLyAxMDI0KS50b0ZpeGVkKGJ5dGVzIDwgMTAgKiAxMDI0ID8gMSA6IDApICsgXCIgS0JcIjtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIChieXRlcyAvICgxMDI0ICogMTAyNCkpLnRvRml4ZWQoYnl0ZXMgPCAxMCAqIDEwMjQgKiAxMDI0ID8gMSA6IDApICsgXCIgTUJcIlxuICAgICk7XG4gIH1cblxuICBnZXRMYWJlbFRleHQoZ3JvdXA6IEhkQWNjZXNzb3J5R3JvdXApOiBzdHJpbmcge1xuICAgIGNvbnN0IG5hbWUgPSBncm91cCAmJiBncm91cC5uYW1lICE9IG51bGwgPyBTdHJpbmcoZ3JvdXAubmFtZSkgOiBcIlwiO1xuICAgIGlmICghbmFtZSkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIGlmICghdGhpcy5sYWJlbENvbG9uKSB7XG4gICAgICByZXR1cm4gbmFtZTtcbiAgICB9XG4gICAgcmV0dXJuIC9bOu+8ml0kLy50ZXN0KG5hbWUpID8gbmFtZSA6IG5hbWUgKyBcIu+8mlwiO1xuICB9XG5cbiAgb25GaWxlQ2xpY2soXG4gICAgZ3JvdXA6IEhkQWNjZXNzb3J5R3JvdXAsXG4gICAgZmlsZTogSGRBY2Nlc3NvcnlGaWxlLFxuICAgIGV2ZW50OiBFdmVudCxcbiAgKTogdm9pZCB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBjb25zdCBwYXRoID0gdGhpcy5nZXRGaWxlUGF0aChmaWxlKTtcbiAgICB0aGlzLmZpbGVDbGljay5lbWl0KHsgZ3JvdXAsIGZpbGUsIHBhdGggfSk7XG4gICAgaWYgKHRoaXMuYXV0b09wZW4gJiYgcGF0aCkge1xuICAgICAgd2luZG93Lm9wZW4ocGF0aCwgXCJfYmxhbmtcIik7XG4gICAgfVxuICB9XG5cbiAgLy8g55So566t5aS05Ye95pWw77yabmdGb3Ig55qEIHRyYWNrQnkg6LCD55So5pe25LiN5Lya57uR5a6a57uE5Lu2IHRoaXNcbiAgdHJhY2tCeUdyb3VwID0gKGluZGV4OiBudW1iZXIsIGdyb3VwOiBIZEFjY2Vzc29yeUdyb3VwKTogYW55ID0+IHtcbiAgICByZXR1cm4gKGdyb3VwICYmIGdyb3VwLm5hbWUpIHx8IGluZGV4O1xuICB9O1xuXG4gIHRyYWNrQnlGaWxlID0gKGluZGV4OiBudW1iZXIsIGZpbGU6IEhkQWNjZXNzb3J5RmlsZSk6IGFueSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RmlsZVBhdGgoZmlsZSkgfHwgdGhpcy5nZXRGaWxlTmFtZShmaWxlKSB8fCBpbmRleDtcbiAgfTtcbn1cbiJdfQ==