asksuite-citrus 2.0.0-beta.0 → 2.0.0-beta.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.
- package/esm2022/lib/classes/richtext-wrapper.mjs +23 -1
- package/esm2022/lib/components/autocomplete/autocomplete.component.mjs +2 -2
- package/esm2022/lib/components/date-picker/date-picker-calendar/date-picker-calendar.component.mjs +22 -2
- package/esm2022/lib/components/date-picker/date-picker.component.mjs +14 -3
- package/esm2022/lib/components/phone-ddi/phone-ddi.component.mjs +9 -5
- package/esm2022/lib/components/table/table.component.mjs +4 -3
- package/fesm2022/asksuite-citrus.mjs +68 -10
- package/fesm2022/asksuite-citrus.mjs.map +1 -1
- package/lib/classes/richtext-wrapper.d.ts +1 -0
- package/lib/components/date-picker/date-picker-calendar/date-picker-calendar.component.d.ts +5 -1
- package/lib/components/date-picker/date-picker.component.d.ts +5 -1
- package/lib/components/table/table.component.d.ts +1 -0
- package/package.json +3 -3
@@ -43,6 +43,27 @@ export class RichtextWrapper {
|
|
43
43
|
this.enter$ = new Subject();
|
44
44
|
this.maxLength = -1;
|
45
45
|
this.breakOnEnter = false;
|
46
|
+
this.quillFormats = [
|
47
|
+
'background',
|
48
|
+
'bold',
|
49
|
+
'color',
|
50
|
+
'font',
|
51
|
+
'code',
|
52
|
+
'italic',
|
53
|
+
'link',
|
54
|
+
'size',
|
55
|
+
'strike',
|
56
|
+
'script',
|
57
|
+
'underline',
|
58
|
+
'blockquote',
|
59
|
+
'header',
|
60
|
+
'indent',
|
61
|
+
'list',
|
62
|
+
'align',
|
63
|
+
'direction',
|
64
|
+
'code-block',
|
65
|
+
'formula'
|
66
|
+
];
|
46
67
|
this.textChangeHandler = () => {
|
47
68
|
this.update();
|
48
69
|
};
|
@@ -94,6 +115,7 @@ export class RichtextWrapper {
|
|
94
115
|
},
|
95
116
|
keyboard: { bindings: this.bindings },
|
96
117
|
},
|
118
|
+
formats: this.quillFormats
|
97
119
|
});
|
98
120
|
this.listenEditorChanges();
|
99
121
|
}
|
@@ -303,4 +325,4 @@ export const QuillProxy = {
|
|
303
325
|
export const RichtextWrapperProxy = {
|
304
326
|
RichtextWrapper
|
305
327
|
};
|
306
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaHRleHQtd3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NsYXNzZXMvcmljaHRleHQtd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQXdGLE1BQU0sT0FBTyxDQUFDO0FBQzdHLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFnQixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVF0RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUQsTUFBTSxPQUFPLGVBQWU7SUF5RTFCLElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUE7SUFDOUIsQ0FBQztJQUlELElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDO2FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FDbkQsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ3JELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDaEIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQ2pDLENBQUM7SUFFRCxJQUFX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QWU7Q0FDaEIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBRdWlsbCwgeyBCb3VuZHNTdGF0aWMsIFJhbmdlU3RhdGljLCBTZWxlY3Rpb25DaGFuZ2VIYW5kbGVyLCBTb3VyY2VzLCBUZXh0Q2hhbmdlSGFuZGxlciB9IGZyb20gJ3F1aWxsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBmaWx0ZXIsIGZyb21FdmVudCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBSaWNoVGV4dEZ1bmN0aW9ucyxcbiAgUmljaHRleHRGb3JtYXRzLFxuICBUb29sLFxuICBUb29sS2V5cyxcbiAgVG9vbHNTdGF0ZSxcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yaWNodGV4dC10b29sYm94LmludGVyZmFjZSc7XG5pbXBvcnQgeyBVUkxfUkVHRVggfSBmcm9tICcuLi9jb25zdGFudHMvdXJsLXJlZ2V4LmNvbnN0YW50JztcblxuZXhwb3J0IGNsYXNzIFJpY2h0ZXh0V3JhcHBlciBpbXBsZW1lbnRzIFJpY2hUZXh0RnVuY3Rpb25zIHtcbiAgcHJpdmF0ZSBxdWlsbCE6IFF1aWxsO1xuICBwcml2YXRlIHN0YXRlU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUb29sc1N0YXRlPih7XG4gICAgaGFzU2VsZWN0aW9uOiBmYWxzZSxcbiAgICBoYXNGb2N1czogZmFsc2UsXG4gICAgZm9ybWF0czoge1xuICAgICAgaXRhbGljOiBmYWxzZSxcbiAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgdW5kZXJsaW5lOiBmYWxzZSxcbiAgICAgIHN0cmlrZTogZmFsc2UsXG4gICAgICBsaW5rOiAnJyxcbiAgICAgIGxpc3RfYnVsbGV0ZWQ6IGZhbHNlLFxuICAgICAgbGlzdF9udW1iZXJlZDogZmFsc2UsXG4gICAgICBqdXN0aWZ5X2xlZnQ6IGZhbHNlLFxuICAgICAganVzdGlmeV9jZW50ZXI6IGZhbHNlLFxuICAgICAganVzdGlmeV9yaWdodDogZmFsc2UsXG4gICAgfSxcbiAgICBkaXNhYmxlZFRvb2xzOiBbXVxuICB9KTtcbiAgcHJpdmF0ZSBlc2MkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSBlbnRlciQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcml2YXRlIG1heExlbmd0aCA9IC0xO1xuICBwcml2YXRlIGJyZWFrT25FbnRlciA9IGZhbHNlO1xuXG4gIHByaXZhdGUgdGV4dENoYW5nZUhhbmRsZXI6IFRleHRDaGFuZ2VIYW5kbGVyID0gKCkgPT4ge1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBzZWxlY3Rpb25DaGFuZ2VIYW5kbGVyOiBTZWxlY3Rpb25DaGFuZ2VIYW5kbGVyID0gKFxuICAgIHZhbHVlOiBSYW5nZVN0YXRpYyxcbiAgICBvbGRSYW5nZTogUmFuZ2VTdGF0aWMsXG4gICAgc291cmNlOiBTb3VyY2VzXG4gICkgPT4ge1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBiaW5kaW5ncyA9IHtcbiAgICBib2xkOiB7XG4gICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0Qm9sZCgpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9LFxuICAgIH0sXG4gICAgaXRhbGljOiB7XG4gICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0SXRhbGljKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICB1bmRlcmxpbmU6IHtcbiAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRVbmRlcmxpbmUoKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSxcbiAgICB9LFxuICAgIGVzY2FwZTp7XG4gICAgICBrZXk6ICdlc2NhcGUnLFxuICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmVzYyQubmV4dCh0cnVlKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0sXG4gICAgZW50ZXI6IHtcbiAgICAgIGtleTogJ2VudGVyJyxcbiAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgdGhpcy5lbnRlciQubmV4dCh0cnVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnJlYWtPbkVudGVyO1xuICAgICAgfVxuICAgIH1cblxuICB9O1xuICBwcml2YXRlIG1heExlbmd0aFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICBwdWJsaWMgZ2V0IHN0YXRlKCl7XG4gICAgICByZXR1cm4gdGhpcy5zdGF0ZVN1Yi52YWx1ZVxuICB9XG4gIFxuICBwdWJsaWMgc3RhdGUkID0gdGhpcy5zdGF0ZVN1Yi5hc09ic2VydmFibGUoKTtcbiAgICBcbiAgcHVibGljIGdldCBsaXN0ZW5UZXh0Q2hhbmdlcyQoKXtcbiAgICByZXR1cm4gZnJvbUV2ZW50KHRoaXMucXVpbGwsICd0ZXh0LWNoYW5nZScpXG4gICAgICAucGlwZShtYXAoKCkgPT4gdGhpcy5xdWlsbC5yb290LmlubmVySFRNTCkpOyBcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGlzdGVuT25Ub3VjaGVkJCgpIHtcbiAgICByZXR1cm4gZnJvbUV2ZW50KHRoaXMucXVpbGwsICdzZWxlY3Rpb24tY2hhbmdlJykucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiBCb29sZWFuKHRoaXMucXVpbGwuZ2V0U2VsZWN0aW9uKGZhbHNlKSkpLFxuICAgICAgbWFwKCgpID0+IG51bGwpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGlzdGVuRXNjYXBlJCgpe1xuICAgIHJldHVybiB0aGlzLmVzYyQuYXNPYnNlcnZhYmxlKClcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGlzdGVuRW50ZXIkKCl7XG4gICAgcmV0dXJuIHRoaXMuZW50ZXIkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICApIHtcbiAgICBjb25zdCBlZGl0b3JJZCA9IGBlZGl0b3ItJHtuZXcgRGF0ZSgpLmdldFRpbWUoKX1gO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnaWQnLCBlZGl0b3JJZCk7XG4gICAgdGhpcy5xdWlsbCA9IG5ldyBRdWlsbFByb3h5LlF1aWxsKGAjJHtlZGl0b3JJZH1gLCB7XG4gICAgICBwbGFjZWhvbGRlcjogJycsXG4gICAgICBtb2R1bGVzOiB7XG4gICAgICAgIGNsaXBib2FyZDoge1xuICAgICAgICAgIG1hdGNoZXJzOiBbW05vZGUuVEVYVF9OT0RFLCB0aGlzLnVybE1hdGNoZXIuYmluZCh0aGlzKV1dLFxuICAgICAgICB9LFxuICAgICAgICBrZXlib2FyZDogeyBiaW5kaW5nczogdGhpcy5iaW5kaW5ncyB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLmxpc3RlbkVkaXRvckNoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRJdGFsaWMoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnaXRhbGljJykpIHJldHVybjtcbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgnaXRhbGljJywgIXRoaXMuc3RhdGUuZm9ybWF0cy5pdGFsaWMpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0Qm9sZCgpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCdib2xkJykpIHJldHVyblxuICAgIHRoaXMucXVpbGwuZm9ybWF0KCdib2xkJywgIXRoaXMuc3RhdGUuZm9ybWF0cy5ib2xkKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldFVuZGVybGluZSgpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCd1bmRlcmxpbmUnKSkgcmV0dXJuO1xuICAgIHRoaXMucXVpbGwuZm9ybWF0KCd1bmRlcmxpbmUnLCAhdGhpcy5zdGF0ZS5mb3JtYXRzLnVuZGVybGluZSk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTdHJpa2UoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnc3RyaWtlJykpIHJldHVybjtcbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgnc3RyaWtlJywgIXRoaXMuc3RhdGUuZm9ybWF0cy5zdHJpa2UpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0TGlzdE51bWJlcmVkKCkge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ2xpc3RfbnVtYmVyZWQnKSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnN0YXRlLmZvcm1hdHMubGlzdF9udW1iZXJlZClcbiAgICAgIHRoaXMucXVpbGwuZm9ybWF0KCdsaXN0JywgbnVsbCk7XG4gICAgZWxzZSAgXG4gICAgICB0aGlzLnF1aWxsLmZvcm1hdCgnbGlzdCcsICdvcmRlcmVkJyk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRMaXN0QnVsbGV0ZWQoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnbGlzdF9idWxsZXRlZCcpKSByZXR1cm47XG4gICAgaWYgKHRoaXMuc3RhdGUuZm9ybWF0cy5saXN0X2J1bGxldGVkKVxuICAgICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2xpc3QnLCBudWxsKTtcbiAgICBlbHNlICBcbiAgICAgIHRoaXMucXVpbGwuZm9ybWF0KCdsaXN0JywgJ2J1bGxldGVkJyk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRMaW5rKGxpbms6IHN0cmluZykge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ2xpbmsnKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgcmFuZ2UgPSB0aGlzLnF1aWxsLmdldFNlbGVjdGlvbih0cnVlKTtcblxuICAgIGlmIChyYW5nZSAmJiAhcmFuZ2UubGVuZ3RoKSB7XG4gICAgICBjb25zdCBbdGV4dEJsb2F0LCBvZmZzZXRdID0gdGhpcy5xdWlsbC5nZXRMZWFmKHJhbmdlIS5pbmRleCk7XG5cbiAgICAgIGNvbnN0IHN0YXJ0ID0gcmFuZ2UhLmluZGV4IC0gb2Zmc2V0O1xuICAgICAgY29uc3QgbGVuZ3RoID0gdGV4dEJsb2F0Lmxlbmd0aCgpO1xuXG4gICAgICB0aGlzLnF1aWxsLmZvcm1hdFRleHQoc3RhcnQsIGxlbmd0aCwgJ2xpbmsnLCBsaW5rKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2xpbmsnLCBsaW5rKTtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldEp1c3RpZnlMZWZ0KCkge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ2p1c3RpZnlfbGVmdCcpKSByZXR1cm47XG4gICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2FsaWduJywgbnVsbCk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRKdXN0aWZ5Q2VudGVyKCkge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ2p1c3RpZnlfY2VudGVyJykpIHJldHVybjtcbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgnYWxpZ24nLCAnY2VudGVyJyk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRKdXN0aWZ5UmlnaHQoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnanVzdGlmeV9yaWdodCcpKSByZXR1cm47XG4gICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2FsaWduJywgJ3JpZ2h0Jyk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRSZW1vdmUoKSB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoc2VsZWN0aW9uKSB0aGlzLnF1aWxsLnJlbW92ZUZvcm1hdChzZWxlY3Rpb24hLmluZGV4LCBzZWxlY3Rpb24hLmxlbmd0aCk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRQbGFjZWhvbGRlcihwbGFjZWhvbGRlcjogc3RyaW5nKXtcbiAgICB0aGlzLnF1aWxsLnJvb3QuZGF0YXNldFsncGxhY2Vob2xkZXInXSA9IHBsYWNlaG9sZGVyO1xuICB9XG5cbiAgcHVibGljIHNldFRleHQodGV4dDogc3RyaW5nKXtcbiAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKHRoaXMucXVpbGwuY2xpcGJvYXJkLmNvbnZlcnQodGV4dCksICdzaWxlbnQnKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRNYXhMZW5ndGgobGVuZ3RoOiBudW1iZXIpe1xuICAgIHRoaXMubWF4TGVuZ3RoID0gbGVuZ3RoO1xuXG4gICAgdGhpcy5tYXhMZW5ndGhTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgaWYodGhpcy5tYXhMZW5ndGggPiAwKVxuICAgICAgdGhpcy5tYXhMZW5ndGhTdWJzY3JpcHRpb24gPSBcbiAgICAgICAgZnJvbUV2ZW50KHRoaXMucXVpbGwsICd0ZXh0LWNoYW5nZScpXG4gICAgICAgIC5waXBlKGZpbHRlcigoKSA9PiB0aGlzLnF1aWxsLmdldExlbmd0aCgpID4gdGhpcy5tYXhMZW5ndGgpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnF1aWxsLmRlbGV0ZVRleHQodGhpcy5tYXhMZW5ndGggLTEsIHRoaXMucXVpbGwuZ2V0TGVuZ3RoKCkpO1xuICAgICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFRvb2xzKHRvb2xzOiBUb29sS2V5cyl7XG4gICAgaWYoSlNPTi5zdHJpbmdpZnkodG9vbHMpICE9PSBKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXRlU3ViLnZhbHVlLmRpc2FibGVkVG9vbHMpKVxuICAgICAgdGhpcy5zdGF0ZVN1Yi5uZXh0KHsuLi50aGlzLnN0YXRlU3ViLnZhbHVlLCBkaXNhYmxlZFRvb2xzOiB0b29scywgfSlcbiAgfVxuXG4gIHB1YmxpYyBzZXRFZGl0b3JDbGFzcyhjbGFzc05hbWU6IHN0cmluZyl7XG4gICAgaWYoIWNsYXNzTmFtZSkgcmV0dXJuO1xuICAgIHRoaXMucXVpbGwucm9vdC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RWRpdG9yRWxlbWVudCgpe1xuICAgIHJldHVybiB0aGlzLnF1aWxsLnJvb3Q7XG4gIH1cblxuICBwdWJsaWMgZ2V0VGV4dExlbmd0aCgpe1xuICAgIHJldHVybiB0aGlzLnF1aWxsLmdldExlbmd0aCgpO1xuICB9XG5cbiAgcHVibGljIGRpc2FibGUoKXtcbiAgICB0aGlzLnF1aWxsLmRpc2FibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBlbmFibGUoKXtcbiAgICB0aGlzLnF1aWxsLmVuYWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKCl7XG4gICAgdGhpcy5xdWlsbC5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIHNldEJyZWFrT25FbnRlcihicmVha09uRW50ZXI6IGJvb2xlYW4pe1xuICAgIHRoaXMuYnJlYWtPbkVudGVyID0gYnJlYWtPbkVudGVyO1xuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5xdWlsbC5vZmYoJ3NlbGVjdGlvbi1jaGFuZ2UnLCB0aGlzLnNlbGVjdGlvbkNoYW5nZUhhbmRsZXIpO1xuICAgIHRoaXMucXVpbGwub2ZmKCd0ZXh0LWNoYW5nZScsIHRoaXMudGV4dENoYW5nZUhhbmRsZXIpO1xuICAgIHRoaXMuZXNjJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZW50ZXIkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdGF0ZVN1Yi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMubWF4TGVuZ3RoU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Rvb2xEaXNhYmxlZCh0b29sOiBUb29sKXtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZVN1Yi52YWx1ZS5kaXNhYmxlZFRvb2xzLmluY2x1ZGVzKHRvb2wpXG4gIH1cblxuICBwcml2YXRlIHVybE1hdGNoZXIobm9kZTogYW55LCBkZWx0YTogYW55KSB7XG4gICAgaWYgKHR5cGVvZiBub2RlLmRhdGEgIT09ICdzdHJpbmcnKSByZXR1cm47XG4gICAgY29uc3QgbWF0Y2hlcyA9IG5vZGUuZGF0YS5tYXRjaChVUkxfUkVHRVgpO1xuXG4gICAgaWYgKG1hdGNoZXMgJiYgbWF0Y2hlcy5sZW5ndGggPiAwKSB7XG4gICAgICBsZXQgdGV4dCA9ICcnO1xuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24odHJ1ZSk7XG4gICAgICBpZiAoc2VsZWN0aW9uLmxlbmd0aClcbiAgICAgICAgdGV4dCA9IHRoaXMucXVpbGwuZ2V0VGV4dChzZWxlY3Rpb24hLmluZGV4LCBzZWxlY3Rpb24hLmxlbmd0aCk7XG5cbiAgICAgIGNvbnN0IG9wcyA9IFtdO1xuICAgICAgbGV0IHN0ciA9IG5vZGUuZGF0YTtcbiAgICAgIG1hdGNoZXMuZm9yRWFjaChmdW5jdGlvbiAobWF0Y2g6IGFueSkge1xuICAgICAgICBjb25zdCBzcGxpdCA9IHN0ci5zcGxpdChtYXRjaCk7XG4gICAgICAgIGNvbnN0IGJlZm9yZUxpbmsgPSBzcGxpdC5zaGlmdCgpO1xuICAgICAgICBvcHMucHVzaCh7IGluc2VydDogYmVmb3JlTGluayB9KTtcbiAgICAgICAgb3BzLnB1c2goeyBpbnNlcnQ6IHRleHQgfHwgbWF0Y2gsIGF0dHJpYnV0ZXM6IHsgbGluazogbWF0Y2ggfSB9KTtcbiAgICAgICAgc3RyID0gc3BsaXQuam9pbihtYXRjaCk7XG4gICAgICB9KTtcbiAgICAgIG9wcy5wdXNoKHsgaW5zZXJ0OiBzdHIgfSk7XG4gICAgICBkZWx0YS5vcHMgPSBvcHM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlbHRhO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5FZGl0b3JDaGFuZ2VzKCkge1xuICAgIHRoaXMucXVpbGwub24oJ3NlbGVjdGlvbi1jaGFuZ2UnLCB0aGlzLnNlbGVjdGlvbkNoYW5nZUhhbmRsZXIpO1xuICAgIHRoaXMucXVpbGwub24oJ3RleHQtY2hhbmdlJywgdGhpcy50ZXh0Q2hhbmdlSGFuZGxlcik7XG4gIH1cblxuXG4gIHByaXZhdGUgdXBkYXRlKCkge1xuICAgIGxldCBib3VuZHM6IEJvdW5kc1N0YXRpYyB8IHVuZGVmaW5lZDtcbiAgICBsZXQgZm9ybWF0c0FycjtcblxuICAgIGNvbnN0IHJhbmdlID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24oZmFsc2UpO1xuICAgIGlmICAocmFuZ2UpeyBcbiAgICAgIGJvdW5kcyA9IHRoaXMucXVpbGwuZ2V0Qm91bmRzKHJhbmdlLmluZGV4LCByYW5nZS5sZW5ndGgpO1xuICAgICAgZm9ybWF0c0FyciA9IHRoaXMucXVpbGwuZ2V0Rm9ybWF0KHJhbmdlKSBhcyBhbnk7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybWF0czogUmljaHRleHRGb3JtYXRzID0ge1xuICAgICAgaXRhbGljOiBmb3JtYXRzQXJyPy5pdGFsaWMgfHwgZmFsc2UsXG4gICAgICBib2xkOiBmb3JtYXRzQXJyPy5ib2xkIHx8IGZhbHNlLFxuICAgICAgdW5kZXJsaW5lOiBmb3JtYXRzQXJyPy51bmRlcmxpbmUgfHwgZmFsc2UsXG4gICAgICBzdHJpa2U6IGZvcm1hdHNBcnI/LnN0cmlrZSB8fCBmYWxzZSxcbiAgICAgIGxpbms6IGZvcm1hdHNBcnI/LmxpbmsgfHwgJycsXG4gICAgICBsaXN0X2J1bGxldGVkOiBmb3JtYXRzQXJyPy5saXN0ID09PSAnYnVsbGV0JyxcbiAgICAgIGxpc3RfbnVtYmVyZWQ6IGZvcm1hdHNBcnI/Lmxpc3QgPT09ICdvcmRlcmVkJyxcbiAgICAgIGp1c3RpZnlfbGVmdDogZm9ybWF0c0Fycj8uYWxpZ24gPT09ICdsZWZ0JyxcbiAgICAgIGp1c3RpZnlfY2VudGVyOiBmb3JtYXRzQXJyPy5hbGlnbiA9PT0gJ2NlbnRlcicsXG4gICAgICBqdXN0aWZ5X3JpZ2h0OiBmb3JtYXRzQXJyPy5hbGlnbiA9PT0gJ3JpZ2h0JyxcbiAgICB9O1xuXG4gICAgY29uc3QgaGFzU2VsZWN0aW9uID0gISFyYW5nZT8ubGVuZ3RoO1xuICAgIGNvbnN0IGhhc0ZvY3VzID0gISFyYW5nZTtcblxuICAgIGNvbnN0IG5ld1N0YXRlOiBUb29sc1N0YXRlID0geyBcbiAgICAgIC4uLnRoaXMuc3RhdGVTdWIudmFsdWUsIFxuICAgICAgaGFzU2VsZWN0aW9uLCBcbiAgICAgIGZvcm1hdHMsIFxuICAgICAgYm91bmRzLCBcbiAgICAgIGhhc0ZvY3VzIFxuICAgIH07XG5cbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5zdGF0ZVN1Yi5uZXh0KG5ld1N0YXRlKTtcbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfSlcbiAgfVxufVxuXG4vL3RvIHdvcmsgYXJvdW5kIHRlc3RpbmcgcHJvYmxlbXMgXG5leHBvcnQgY29uc3QgUXVpbGxQcm94eSA9e1xuICBRdWlsbFxufVxuXG4vL3RvIHdvcmsgYXJvdW5kIHRlc3RpbmcgcHJvYmxlbXMgXG5leHBvcnQgY29uc3QgUmljaHRleHRXcmFwcGVyUHJveHkgPSB7XG4gIFJpY2h0ZXh0V3JhcHBlclxufSJdfQ==
|
328
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaHRleHQtd3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NsYXNzZXMvcmljaHRleHQtd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQXdGLE1BQU0sT0FBTyxDQUFDO0FBQzdHLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFnQixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVF0RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUQsTUFBTSxPQUFPLGVBQWU7SUE4RjFCLElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUE7SUFDOUIsQ0FBQztJQUlELElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDO2FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FDbkQsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ3JELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDaEIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQ2pDLENBQUM7SUFFRCxJQUFX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QUU7WUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRjtBQUVELGtDQUFrQztBQUNsQyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUU7SUFDdkIsS0FBSztDQUNOLENBQUE7QUFFRCxrQ0FBa0M7QUFDbEMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUc7SUFDbEMsZUFBZTtDQUNoQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IFF1aWxsLCB7IEJvdW5kc1N0YXRpYywgUmFuZ2VTdGF0aWMsIFNlbGVjdGlvbkNoYW5nZUhhbmRsZXIsIFNvdXJjZXMsIFRleHRDaGFuZ2VIYW5kbGVyIH0gZnJvbSAncXVpbGwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZpbHRlciwgZnJvbUV2ZW50LCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIFJpY2hUZXh0RnVuY3Rpb25zLFxuICBSaWNodGV4dEZvcm1hdHMsXG4gIFRvb2wsXG4gIFRvb2xLZXlzLFxuICBUb29sc1N0YXRlLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzL3JpY2h0ZXh0LXRvb2xib3guaW50ZXJmYWNlJztcbmltcG9ydCB7IFVSTF9SRUdFWCB9IGZyb20gJy4uL2NvbnN0YW50cy91cmwtcmVnZXguY29uc3RhbnQnO1xuXG5leHBvcnQgY2xhc3MgUmljaHRleHRXcmFwcGVyIGltcGxlbWVudHMgUmljaFRleHRGdW5jdGlvbnMge1xuICBwcml2YXRlIHF1aWxsITogUXVpbGw7XG4gIHByaXZhdGUgc3RhdGVTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRvb2xzU3RhdGU+KHtcbiAgICBoYXNTZWxlY3Rpb246IGZhbHNlLFxuICAgIGhhc0ZvY3VzOiBmYWxzZSxcbiAgICBmb3JtYXRzOiB7XG4gICAgICBpdGFsaWM6IGZhbHNlLFxuICAgICAgYm9sZDogZmFsc2UsXG4gICAgICB1bmRlcmxpbmU6IGZhbHNlLFxuICAgICAgc3RyaWtlOiBmYWxzZSxcbiAgICAgIGxpbms6ICcnLFxuICAgICAgbGlzdF9idWxsZXRlZDogZmFsc2UsXG4gICAgICBsaXN0X251bWJlcmVkOiBmYWxzZSxcbiAgICAgIGp1c3RpZnlfbGVmdDogZmFsc2UsXG4gICAgICBqdXN0aWZ5X2NlbnRlcjogZmFsc2UsXG4gICAgICBqdXN0aWZ5X3JpZ2h0OiBmYWxzZSxcbiAgICB9LFxuICAgIGRpc2FibGVkVG9vbHM6IFtdXG4gIH0pO1xuICBwcml2YXRlIGVzYyQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcml2YXRlIGVudGVyJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgbWF4TGVuZ3RoID0gLTE7XG4gIHByaXZhdGUgYnJlYWtPbkVudGVyID0gZmFsc2U7XG4gIHByaXZhdGUgcXVpbGxGb3JtYXRzID0gW1xuICAgICdiYWNrZ3JvdW5kJyxcbiAgICAnYm9sZCcsXG4gICAgJ2NvbG9yJyxcbiAgICAnZm9udCcsXG4gICAgJ2NvZGUnLFxuICAgICdpdGFsaWMnLFxuICAgICdsaW5rJyxcbiAgICAnc2l6ZScsXG4gICAgJ3N0cmlrZScsXG4gICAgJ3NjcmlwdCcsXG4gICAgJ3VuZGVybGluZScsXG4gICAgJ2Jsb2NrcXVvdGUnLFxuICAgICdoZWFkZXInLFxuICAgICdpbmRlbnQnLFxuICAgICdsaXN0JyxcbiAgICAnYWxpZ24nLFxuICAgICdkaXJlY3Rpb24nLFxuICAgICdjb2RlLWJsb2NrJyxcbiAgICAnZm9ybXVsYSdcbiAgXVxuXG4gIHByaXZhdGUgdGV4dENoYW5nZUhhbmRsZXI6IFRleHRDaGFuZ2VIYW5kbGVyID0gKCkgPT4ge1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBzZWxlY3Rpb25DaGFuZ2VIYW5kbGVyOiBTZWxlY3Rpb25DaGFuZ2VIYW5kbGVyID0gKFxuICAgIHZhbHVlOiBSYW5nZVN0YXRpYyxcbiAgICBvbGRSYW5nZTogUmFuZ2VTdGF0aWMsXG4gICAgc291cmNlOiBTb3VyY2VzXG4gICkgPT4ge1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBiaW5kaW5ncyA9IHtcbiAgICBib2xkOiB7XG4gICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0Qm9sZCgpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9LFxuICAgIH0sXG4gICAgaXRhbGljOiB7XG4gICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0SXRhbGljKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICB1bmRlcmxpbmU6IHtcbiAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRVbmRlcmxpbmUoKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSxcbiAgICB9LFxuICAgIGVzY2FwZTp7XG4gICAgICBrZXk6ICdlc2NhcGUnLFxuICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmVzYyQubmV4dCh0cnVlKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0sXG4gICAgZW50ZXI6IHtcbiAgICAgIGtleTogJ2VudGVyJyxcbiAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgdGhpcy5lbnRlciQubmV4dCh0cnVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnJlYWtPbkVudGVyO1xuICAgICAgfVxuICAgIH1cblxuICB9O1xuICBwcml2YXRlIG1heExlbmd0aFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICBwdWJsaWMgZ2V0IHN0YXRlKCl7XG4gICAgICByZXR1cm4gdGhpcy5zdGF0ZVN1Yi52YWx1ZVxuICB9XG4gIFxuICBwdWJsaWMgc3RhdGUkID0gdGhpcy5zdGF0ZVN1Yi5hc09ic2VydmFibGUoKTtcbiAgICBcbiAgcHVibGljIGdldCBsaXN0ZW5UZXh0Q2hhbmdlcyQoKXtcbiAgICByZXR1cm4gZnJvbUV2ZW50KHRoaXMucXVpbGwsICd0ZXh0LWNoYW5nZScpXG4gICAgICAucGlwZShtYXAoKCkgPT4gdGhpcy5xdWlsbC5yb290LmlubmVySFRNTCkpOyBcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGlzdGVuT25Ub3VjaGVkJCgpIHtcbiAgICByZXR1cm4gZnJvbUV2ZW50KHRoaXMucXVpbGwsICdzZWxlY3Rpb24tY2hhbmdlJykucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiBCb29sZWFuKHRoaXMucXVpbGwuZ2V0U2VsZWN0aW9uKGZhbHNlKSkpLFxuICAgICAgbWFwKCgpID0+IG51bGwpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGlzdGVuRXNjYXBlJCgpe1xuICAgIHJldHVybiB0aGlzLmVzYyQuYXNPYnNlcnZhYmxlKClcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGlzdGVuRW50ZXIkKCl7XG4gICAgcmV0dXJuIHRoaXMuZW50ZXIkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICApIHtcbiAgICBjb25zdCBlZGl0b3JJZCA9IGBlZGl0b3ItJHtuZXcgRGF0ZSgpLmdldFRpbWUoKX1gO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnaWQnLCBlZGl0b3JJZCk7XG4gICAgdGhpcy5xdWlsbCA9IG5ldyBRdWlsbFByb3h5LlF1aWxsKGAjJHtlZGl0b3JJZH1gLCB7XG4gICAgICBwbGFjZWhvbGRlcjogJycsXG4gICAgICBtb2R1bGVzOiB7XG4gICAgICAgIGNsaXBib2FyZDoge1xuICAgICAgICAgIG1hdGNoZXJzOiBbW05vZGUuVEVYVF9OT0RFLCB0aGlzLnVybE1hdGNoZXIuYmluZCh0aGlzKV1dLFxuICAgICAgICB9LFxuICAgICAgICBrZXlib2FyZDogeyBiaW5kaW5nczogdGhpcy5iaW5kaW5ncyB9LFxuICAgICAgfSxcbiAgICAgIGZvcm1hdHM6IHRoaXMucXVpbGxGb3JtYXRzXG4gICAgfSk7XG4gICAgdGhpcy5saXN0ZW5FZGl0b3JDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0SXRhbGljKCkge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ2l0YWxpYycpKSByZXR1cm47XG4gICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2l0YWxpYycsICF0aGlzLnN0YXRlLmZvcm1hdHMuaXRhbGljKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldEJvbGQoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnYm9sZCcpKSByZXR1cm5cbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgnYm9sZCcsICF0aGlzLnN0YXRlLmZvcm1hdHMuYm9sZCk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRVbmRlcmxpbmUoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgndW5kZXJsaW5lJykpIHJldHVybjtcbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgndW5kZXJsaW5lJywgIXRoaXMuc3RhdGUuZm9ybWF0cy51bmRlcmxpbmUpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0U3RyaWtlKCkge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ3N0cmlrZScpKSByZXR1cm47XG4gICAgdGhpcy5xdWlsbC5mb3JtYXQoJ3N0cmlrZScsICF0aGlzLnN0YXRlLmZvcm1hdHMuc3RyaWtlKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldExpc3ROdW1iZXJlZCgpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCdsaXN0X251bWJlcmVkJykpIHJldHVybjtcbiAgICBpZiAodGhpcy5zdGF0ZS5mb3JtYXRzLmxpc3RfbnVtYmVyZWQpXG4gICAgICB0aGlzLnF1aWxsLmZvcm1hdCgnbGlzdCcsIG51bGwpO1xuICAgIGVsc2UgIFxuICAgICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2xpc3QnLCAnb3JkZXJlZCcpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0TGlzdEJ1bGxldGVkKCkge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ2xpc3RfYnVsbGV0ZWQnKSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnN0YXRlLmZvcm1hdHMubGlzdF9idWxsZXRlZClcbiAgICAgIHRoaXMucXVpbGwuZm9ybWF0KCdsaXN0JywgbnVsbCk7XG4gICAgZWxzZSAgXG4gICAgICB0aGlzLnF1aWxsLmZvcm1hdCgnbGlzdCcsICdidWxsZXRlZCcpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0TGluayhsaW5rOiBzdHJpbmcpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCdsaW5rJykpIHJldHVybjtcblxuICAgIGNvbnN0IHJhbmdlID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24odHJ1ZSk7XG5cbiAgICBpZiAocmFuZ2UgJiYgIXJhbmdlLmxlbmd0aCkge1xuICAgICAgY29uc3QgW3RleHRCbG9hdCwgb2Zmc2V0XSA9IHRoaXMucXVpbGwuZ2V0TGVhZihyYW5nZSEuaW5kZXgpO1xuXG4gICAgICBjb25zdCBzdGFydCA9IHJhbmdlIS5pbmRleCAtIG9mZnNldDtcbiAgICAgIGNvbnN0IGxlbmd0aCA9IHRleHRCbG9hdC5sZW5ndGgoKTtcblxuICAgICAgdGhpcy5xdWlsbC5mb3JtYXRUZXh0KHN0YXJ0LCBsZW5ndGgsICdsaW5rJywgbGluayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucXVpbGwuZm9ybWF0KCdsaW5rJywgbGluayk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRKdXN0aWZ5TGVmdCgpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCdqdXN0aWZ5X2xlZnQnKSkgcmV0dXJuO1xuICAgIHRoaXMucXVpbGwuZm9ybWF0KCdhbGlnbicsIG51bGwpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0SnVzdGlmeUNlbnRlcigpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCdqdXN0aWZ5X2NlbnRlcicpKSByZXR1cm47XG4gICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2FsaWduJywgJ2NlbnRlcicpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0SnVzdGlmeVJpZ2h0KCkge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ2p1c3RpZnlfcmlnaHQnKSkgcmV0dXJuO1xuICAgIHRoaXMucXVpbGwuZm9ybWF0KCdhbGlnbicsICdyaWdodCcpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0UmVtb3ZlKCkge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMucXVpbGwuZ2V0U2VsZWN0aW9uKCk7XG4gICAgaWYgKHNlbGVjdGlvbikgdGhpcy5xdWlsbC5yZW1vdmVGb3JtYXQoc2VsZWN0aW9uIS5pbmRleCwgc2VsZWN0aW9uIS5sZW5ndGgpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0UGxhY2Vob2xkZXIocGxhY2Vob2xkZXI6IHN0cmluZyl7XG4gICAgdGhpcy5xdWlsbC5yb290LmRhdGFzZXRbJ3BsYWNlaG9sZGVyJ10gPSBwbGFjZWhvbGRlcjtcbiAgfVxuXG4gIHB1YmxpYyBzZXRUZXh0KHRleHQ6IHN0cmluZyl7XG4gICAgdGhpcy5xdWlsbC5zZXRDb250ZW50cyh0aGlzLnF1aWxsLmNsaXBib2FyZC5jb252ZXJ0KHRleHQpLCAnc2lsZW50Jyk7XG4gIH1cblxuICBwdWJsaWMgc2V0TWF4TGVuZ3RoKGxlbmd0aDogbnVtYmVyKXtcbiAgICB0aGlzLm1heExlbmd0aCA9IGxlbmd0aDtcblxuICAgIHRoaXMubWF4TGVuZ3RoU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIGlmKHRoaXMubWF4TGVuZ3RoID4gMClcbiAgICAgIHRoaXMubWF4TGVuZ3RoU3Vic2NyaXB0aW9uID0gXG4gICAgICAgIGZyb21FdmVudCh0aGlzLnF1aWxsLCAndGV4dC1jaGFuZ2UnKVxuICAgICAgICAucGlwZShmaWx0ZXIoKCkgPT4gdGhpcy5xdWlsbC5nZXRMZW5ndGgoKSA+IHRoaXMubWF4TGVuZ3RoKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5xdWlsbC5kZWxldGVUZXh0KHRoaXMubWF4TGVuZ3RoIC0xLCB0aGlzLnF1aWxsLmdldExlbmd0aCgpKTtcbiAgICAgIH0pXG4gIH1cblxuICBwdWJsaWMgc2V0RGlzYWJsZWRUb29scyh0b29sczogVG9vbEtleXMpe1xuICAgIGlmKEpTT04uc3RyaW5naWZ5KHRvb2xzKSAhPT0gSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0ZVN1Yi52YWx1ZS5kaXNhYmxlZFRvb2xzKSlcbiAgICAgIHRoaXMuc3RhdGVTdWIubmV4dCh7Li4udGhpcy5zdGF0ZVN1Yi52YWx1ZSwgZGlzYWJsZWRUb29sczogdG9vbHMsIH0pXG4gIH1cblxuICBwdWJsaWMgc2V0RWRpdG9yQ2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcpe1xuICAgIGlmKCFjbGFzc05hbWUpIHJldHVybjtcbiAgICB0aGlzLnF1aWxsLnJvb3QuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO1xuICB9XG5cbiAgcHVibGljIGdldEVkaXRvckVsZW1lbnQoKXtcbiAgICByZXR1cm4gdGhpcy5xdWlsbC5yb290O1xuICB9XG5cbiAgcHVibGljIGdldFRleHRMZW5ndGgoKXtcbiAgICByZXR1cm4gdGhpcy5xdWlsbC5nZXRMZW5ndGgoKTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNhYmxlKCl7XG4gICAgdGhpcy5xdWlsbC5kaXNhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZW5hYmxlKCl7XG4gICAgdGhpcy5xdWlsbC5lbmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1cygpe1xuICAgIHRoaXMucXVpbGwuZm9jdXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRCcmVha09uRW50ZXIoYnJlYWtPbkVudGVyOiBib29sZWFuKXtcbiAgICB0aGlzLmJyZWFrT25FbnRlciA9IGJyZWFrT25FbnRlcjtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCkge1xuICAgIHRoaXMucXVpbGwub2ZmKCdzZWxlY3Rpb24tY2hhbmdlJywgdGhpcy5zZWxlY3Rpb25DaGFuZ2VIYW5kbGVyKTtcbiAgICB0aGlzLnF1aWxsLm9mZigndGV4dC1jaGFuZ2UnLCB0aGlzLnRleHRDaGFuZ2VIYW5kbGVyKTtcbiAgICB0aGlzLmVzYyQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmVudGVyJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3RhdGVTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm1heExlbmd0aFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNUb29sRGlzYWJsZWQodG9vbDogVG9vbCl7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVTdWIudmFsdWUuZGlzYWJsZWRUb29scy5pbmNsdWRlcyh0b29sKVxuICB9XG5cbiAgcHJpdmF0ZSB1cmxNYXRjaGVyKG5vZGU6IGFueSwgZGVsdGE6IGFueSkge1xuICAgIGlmICh0eXBlb2Ygbm9kZS5kYXRhICE9PSAnc3RyaW5nJykgcmV0dXJuO1xuICAgIGNvbnN0IG1hdGNoZXMgPSBub2RlLmRhdGEubWF0Y2goVVJMX1JFR0VYKTtcblxuICAgIGlmIChtYXRjaGVzICYmIG1hdGNoZXMubGVuZ3RoID4gMCkge1xuICAgICAgbGV0IHRleHQgPSAnJztcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMucXVpbGwuZ2V0U2VsZWN0aW9uKHRydWUpO1xuICAgICAgaWYgKHNlbGVjdGlvbi5sZW5ndGgpXG4gICAgICAgIHRleHQgPSB0aGlzLnF1aWxsLmdldFRleHQoc2VsZWN0aW9uIS5pbmRleCwgc2VsZWN0aW9uIS5sZW5ndGgpO1xuXG4gICAgICBjb25zdCBvcHMgPSBbXTtcbiAgICAgIGxldCBzdHIgPSBub2RlLmRhdGE7XG4gICAgICBtYXRjaGVzLmZvckVhY2goZnVuY3Rpb24gKG1hdGNoOiBhbnkpIHtcbiAgICAgICAgY29uc3Qgc3BsaXQgPSBzdHIuc3BsaXQobWF0Y2gpO1xuICAgICAgICBjb25zdCBiZWZvcmVMaW5rID0gc3BsaXQuc2hpZnQoKTtcbiAgICAgICAgb3BzLnB1c2goeyBpbnNlcnQ6IGJlZm9yZUxpbmsgfSk7XG4gICAgICAgIG9wcy5wdXNoKHsgaW5zZXJ0OiB0ZXh0IHx8IG1hdGNoLCBhdHRyaWJ1dGVzOiB7IGxpbms6IG1hdGNoIH0gfSk7XG4gICAgICAgIHN0ciA9IHNwbGl0LmpvaW4obWF0Y2gpO1xuICAgICAgfSk7XG4gICAgICBvcHMucHVzaCh7IGluc2VydDogc3RyIH0pO1xuICAgICAgZGVsdGEub3BzID0gb3BzO1xuICAgIH1cblxuICAgIHJldHVybiBkZWx0YTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuRWRpdG9yQ2hhbmdlcygpIHtcbiAgICB0aGlzLnF1aWxsLm9uKCdzZWxlY3Rpb24tY2hhbmdlJywgdGhpcy5zZWxlY3Rpb25DaGFuZ2VIYW5kbGVyKTtcbiAgICB0aGlzLnF1aWxsLm9uKCd0ZXh0LWNoYW5nZScsIHRoaXMudGV4dENoYW5nZUhhbmRsZXIpO1xuICB9XG5cblxuICBwcml2YXRlIHVwZGF0ZSgpIHtcbiAgICBsZXQgYm91bmRzOiBCb3VuZHNTdGF0aWMgfCB1bmRlZmluZWQ7XG4gICAgbGV0IGZvcm1hdHNBcnI7XG5cbiAgICBjb25zdCByYW5nZSA9IHRoaXMucXVpbGwuZ2V0U2VsZWN0aW9uKGZhbHNlKTtcbiAgICBpZiAgKHJhbmdlKXsgXG4gICAgICBib3VuZHMgPSB0aGlzLnF1aWxsLmdldEJvdW5kcyhyYW5nZS5pbmRleCwgcmFuZ2UubGVuZ3RoKTtcbiAgICAgIGZvcm1hdHNBcnIgPSB0aGlzLnF1aWxsLmdldEZvcm1hdChyYW5nZSkgYXMgYW55O1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1hdHM6IFJpY2h0ZXh0Rm9ybWF0cyA9IHtcbiAgICAgIGl0YWxpYzogZm9ybWF0c0Fycj8uaXRhbGljIHx8IGZhbHNlLFxuICAgICAgYm9sZDogZm9ybWF0c0Fycj8uYm9sZCB8fCBmYWxzZSxcbiAgICAgIHVuZGVybGluZTogZm9ybWF0c0Fycj8udW5kZXJsaW5lIHx8IGZhbHNlLFxuICAgICAgc3RyaWtlOiBmb3JtYXRzQXJyPy5zdHJpa2UgfHwgZmFsc2UsXG4gICAgICBsaW5rOiBmb3JtYXRzQXJyPy5saW5rIHx8ICcnLFxuICAgICAgbGlzdF9idWxsZXRlZDogZm9ybWF0c0Fycj8ubGlzdCA9PT0gJ2J1bGxldCcsXG4gICAgICBsaXN0X251bWJlcmVkOiBmb3JtYXRzQXJyPy5saXN0ID09PSAnb3JkZXJlZCcsXG4gICAgICBqdXN0aWZ5X2xlZnQ6IGZvcm1hdHNBcnI/LmFsaWduID09PSAnbGVmdCcsXG4gICAgICBqdXN0aWZ5X2NlbnRlcjogZm9ybWF0c0Fycj8uYWxpZ24gPT09ICdjZW50ZXInLFxuICAgICAganVzdGlmeV9yaWdodDogZm9ybWF0c0Fycj8uYWxpZ24gPT09ICdyaWdodCcsXG4gICAgfTtcblxuICAgIGNvbnN0IGhhc1NlbGVjdGlvbiA9ICEhcmFuZ2U/Lmxlbmd0aDtcbiAgICBjb25zdCBoYXNGb2N1cyA9ICEhcmFuZ2U7XG5cbiAgICBjb25zdCBuZXdTdGF0ZTogVG9vbHNTdGF0ZSA9IHsgXG4gICAgICAuLi50aGlzLnN0YXRlU3ViLnZhbHVlLCBcbiAgICAgIGhhc1NlbGVjdGlvbiwgXG4gICAgICBmb3JtYXRzLCBcbiAgICAgIGJvdW5kcywgXG4gICAgICBoYXNGb2N1cyBcbiAgICB9O1xuXG4gICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgIHRoaXMuc3RhdGVTdWIubmV4dChuZXdTdGF0ZSk7XG4gICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pXG4gIH1cbn1cblxuLy90byB3b3JrIGFyb3VuZCB0ZXN0aW5nIHByb2JsZW1zIFxuZXhwb3J0IGNvbnN0IFF1aWxsUHJveHkgPXtcbiAgUXVpbGxcbn1cblxuLy90byB3b3JrIGFyb3VuZCB0ZXN0aW5nIHByb2JsZW1zIFxuZXhwb3J0IGNvbnN0IFJpY2h0ZXh0V3JhcHBlclByb3h5ID0ge1xuICBSaWNodGV4dFdyYXBwZXJcbn0iXX0=
|
@@ -115,7 +115,7 @@ export class AutocompleteComponent extends OverlayComponent {
|
|
115
115
|
handleOptionSelected(item) {
|
116
116
|
this.selectedOption = item;
|
117
117
|
this.onChange(this.selectedOption);
|
118
|
-
this.
|
118
|
+
this.close();
|
119
119
|
this.change.detectChanges();
|
120
120
|
}
|
121
121
|
handleAutocompleteClick(event) {
|
@@ -334,4 +334,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
|
|
334
334
|
}], optionRemoved: [{
|
335
335
|
type: Output
|
336
336
|
}] } });
|
337
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsVUFBVSxFQUVWLFlBQVksRUFDWixVQUFVLEVBRVYsTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBSU4sU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBb0MsV0FBVyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDakcsT0FBTyxFQUFDLFlBQVksRUFBYSxHQUFHLEVBQWdCLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUdyRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7OztBQUVqRSxNQUFNLGFBQWEsR0FBYTtJQUM5QixPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLEtBQUssRUFBRSxJQUFJO0lBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztDQUNyRCxDQUFBO0FBU0QsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGdCQUFnQjtJQTJGekQsWUFBb0IsV0FBd0IsRUFDaEMsT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQzFCLE1BQXlCLEVBQ3pCLFNBQTJCO1FBQzdDLEtBQUssQ0FBQyxPQUFPLEVB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SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7OEdBNVdVLHFCQUFxQjtrR0FBckIscUJBQXFCLDBoQkFIckIsQ0FBQyxhQUFhLENBQUMsb2JDdEM1QixvZ0xBOEtBOzsyRkRySWEscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLGtCQUFrQixhQUdqQixDQUFDLGFBQWEsQ0FBQyxtQkFDVCx1QkFBdUIsQ0FBQyxNQUFNO29NQUlwQixLQUFLO3NCQUEvQixTQUFTO3VCQUFDLGNBQWM7Z0JBQ04sSUFBSTtzQkFBdEIsU0FBUzt1QkFBQyxNQUFNO2dCQUNLLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFDUyxjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFxQzNCLFFBQVE7c0JBRFAsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLHNCQUFzQjtzQkFEckIsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQU1OLFNBQVM7c0JBRFIsTUFBTTtnQkFJUCxhQUFhO3NCQURaLE1BQU07Z0JBSVAsYUFBYTtzQkFEWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgUHJvdmlkZXIsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBmcm9tRXZlbnQsIG1hcCwgU3Vic2NyaXB0aW9uLCB0YXB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge092ZXJsYXksIE92ZXJsYXlSZWZ9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHtUZW1wbGF0ZVBvcnRhbH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3BcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7T3ZlcmxheUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2NsYXNzZXMvb3ZlcmxheS5jb21wb25lbnRcIjtcblxuY29uc3QgdmFsdWVBY2Nlc3NvcjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBtdWx0aTogdHJ1ZSxcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXV0b2NvbXBsZXRlQ29tcG9uZW50KSxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXNrLWF1dG9jb21wbGV0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbdmFsdWVBY2Nlc3Nvcl0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZUNvbXBvbmVudCBleHRlbmRzIE92ZXJsYXlDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzIHtcblxuICBAVmlld0NoaWxkKFwiYXV0b2NvbXBsZXRlXCIpIGlucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkXG4gIEBWaWV3Q2hpbGQoXCJsaXN0XCIpIGxpc3Q6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWRcbiAgQFZpZXdDaGlsZChcIndyYXBwZXJcIikgd3JhcHBlcjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZFxuICBAVmlld0NoaWxkKCdvdmVybGF5Q29udGVudCcpIG92ZXJsYXlDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG5cbiAgcHJvdGVjdGVkIGlucHV0Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChcIlwiKVxuICBwcm90ZWN0ZWQgZml4ZWRPcHRpb25zSXRlbXM6IGFueVtdID0gW107XG4gIHByb3RlY3RlZCBmaWx0ZXJlZE9wdGlvbnM6IGFueVtdID0gW107XG4gIHByb3RlY3RlZCBwYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnM6IGFueVtdID0gW107XG4gIHByb3RlY3RlZCBzZWxlY3RlZE9wdGlvbj86IGFueTtcbiAgcHJvdGVjdGVkIHNlbGVjdGlvbjogYW55W10gPSBbXTtcbiAgcHJvdGVjdGVkIGNsb3NlZCA9IHRydWU7XG4gIHByb3RlY3RlZCBjaGlwc0NvbGxhcHNlZCA9IHRydWVcbiAgcHJvdGVjdGVkIGNoZWNrQWxsVmFsdWUgPSBmYWxzZVxuICBwcm90ZWN0ZWQgZGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHNob3dDaGlwcyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc2hvd0FsbFNlbGVjdGlvbkJ0biA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc2hvd1BsYWNlaG9sZGVyID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzaG93RXhwYW5kZWRTZWxlY3Rpb25BY3Rpb25zID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzaG93U2VsZWN0QWxsQ2hlY2tib3ggPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGNoaXBzQ29udGFpbmVyQ2xhc3NlcyA9IHtcbiAgICBcIi10d29cIjogZmFsc2UsXG4gICAgXCItdGhyZWVcIjogZmFsc2UsXG4gICAgXCItZm91clwiOiBmYWxzZSxcbiAgICBcIi1tYW55XCI6IGZhbHNlXG4gIH07XG4gIHByb3RlY3RlZCBvcHRpb25zU2VsZWN0ZWQ6IHtba2V5OiBzdHJpbmcgfCBudW1iZXJdOiBib29sZWFufSA9IHt9XG4gIHByaXZhdGUgY2hhbmdlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX3BvcnRhbDogVGVtcGxhdGVQb3J0YWw8YW55PiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfZGVzdHJveSA9IGluamVjdChEZXN0cm95UmVmKVxuICBwcml2YXRlIHJlYWRvbmx5IElURU1TX1BFUl9QQUdFID0gNDBcbiAgcHJpdmF0ZSBfcGFnZU51bWJlciA9IDFcbiAgX3NlbGVjdEFsbE1lc3NhZ2UgPSAnJztcblxuICBwcml2YXRlIHNjcm9sbFN1Yj86IFN1YnNjcmlwdGlvbjtcblxuXG4gIEBJbnB1dCgpXG4gIGZpbHRlckZuPzogKGl0ZW06IHN0cmluZykgPT4gYW55W107XG5cbiAgQElucHV0KClcbiAgZGlzcGxheUZuPzogKGl0ZW06IGFueSkgPT4gc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIG11bHRpcGxlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgdmFsdWVQcm9wOiBzdHJpbmcgPSAnJ1xuXG4gIEBJbnB1dCgpXG4gIG9wdGlvbnM6IGFueVtdID0gW11cblxuICBASW5wdXQoKVxuICBmaXhlZE9wdGlvbnM6IGFueVtdID0gW11cblxuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlciA9ICcnXG5cbiAgQElucHV0KClcbiAgZW1wdHlNZXNzYWdlID0gJ05PX09QVElPTlMnO1xuXG4gIEBJbnB1dCgpXG4gIHNlbGVjdEFsbCA9IGZhbHNlXG5cbiAgQElucHV0KClcbiAgYWxsT3B0aW9uc1NlbGVjdGVkVGV4dDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgc2VsZWN0QWxsTWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ1NFTEVDVF9BTEwnKTtcblxuICBASW5wdXQoKVxuICBpY29uUHJvcFJlZmVyZW5jZT86IHN0cmluZztcblxuICBASW5wdXQoKVxuICBlbmFibGVSZW1vdmUgPSB0cnVlO1xuXG4gIHBvc2l0aW9uOiAnYWJvdmUnIHwgJ2JlbG93JyA9ICdiZWxvdyc7XG5cbiAgQE91dHB1dCgpXG4gIGl0ZW1DaGVjayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgc2VsZWN0aW9uRG9uZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgb3B0aW9uUmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgICAgICAgb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjaGFuZ2U6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xuICAgIHN1cGVyKG92ZXJsYXksIHZpZXdDb250YWluZXJSZWYpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY2hlY2tBbGxWYWx1ZSA9IHRoaXMuaXNBbGxPcHRpb25zU2VsZWN0ZWRcbiAgICB0aGlzLmNoZWNrRml4ZWRPcHRpb25zKCk7XG4gICAgdGhpcy5oYW5kbGVJbnB1dENoYW5nZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0ZpeGVkT3B0aW9ucygpIHtcbiAgICB0aGlzLmZpeGVkT3B0aW9uc0l0ZW1zID0gdGhpcy5vcHRpb25zLmZpbHRlcihvcHRpb24gPT4gdGhpcy5maXhlZE9wdGlvbnMuaW5jbHVkZXMob3B0aW9uW3RoaXMudmFsdWVQcm9wXSkpO1xuICB9XG5cbiAgZ2V0IGlzQWxsT3B0aW9uc1NlbGVjdGVkKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbi5sZW5ndGggPT09IHRoaXMub3B0aW9ucy5sZW5ndGhcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snb3B0aW9ucyddKSB7XG4gICAgICB0aGlzLl9wYWdlTnVtYmVyID0gMVxuICAgICAgdGhpcy5wYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnMgPSBbXVxuXG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IGNoYW5nZXNbJ29wdGlvbnMnXS5jdXJyZW50VmFsdWVcbiAgICAgICAgLmZpbHRlcigob3B0aW9uOiBhbnkpID0+ICF0aGlzLmZpeGVkT3B0aW9ucy5pbmNsdWRlcyhvcHRpb25bdGhpcy52YWx1ZVByb3BdKSlcbiAgICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVJbnB1dENoYW5nZSgpIHtcbiAgICB0aGlzLmlucHV0Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95KSxcbiAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgdGhpcy5fcGFnZU51bWJlciA9IDFcbiAgICAgICAgdGhpcy5wYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnMgPSBbXVxuICAgICAgfSksXG4gICAgICBtYXAodmFsdWUgPT4gdGhpcy5maWx0ZXJGbiA/IHRoaXMuZmlsdGVyRm4odmFsdWUgfHwgJycpIDogW10pXG4gICAgKS5zdWJzY3JpYmUoaXRlbXMgPT4ge1xuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBpdGVtcy5maWx0ZXIoKG9wdGlvbjogYW55KSA9PiAhdGhpcy5maXhlZE9wdGlvbnMuaW5jbHVkZXMob3B0aW9uW3RoaXMudmFsdWVQcm9wXSkpXG4gICAgICB0aGlzLmdldE1vcmVJdGVtcygpXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHZhbHVlczogYW55W10pIHtcbiAgICB0aGlzLnNlbGVjdGlvbiA9IHZhbHVlc1xuICAgIHRoaXMuY2hlY2tBbGxWYWx1ZSA9IHRoaXMuaXNBbGxPcHRpb25zU2VsZWN0ZWRcblxuICAgIGlmICghdGhpcy5jaGlwc0NvbGxhcHNlZCkge1xuICAgICAgdGhpcy5jaGlwc0NvbGxhcHNlZCA9IHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA8IDJcbiAgICB9XG4gICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKClcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ2hpcHNDb250YWluZXJDbGFzc2VzKCkge1xuICAgIHRoaXMuY2hpcHNDb250YWluZXJDbGFzc2VzID0ge1xuICAgICAgXCItdHdvXCI6IHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMixcbiAgICAgIFwiLXRocmVlXCI6IHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMyxcbiAgICAgIFwiLWZvdXJcIjogdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSA0LFxuICAgICAgXCItbWFueVwiOiB0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPj0gNVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZU9wdGlvblNlbGVjdGVkKGl0ZW06IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBpdGVtO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy5zZWxlY3RlZE9wdGlvbilcbiAgICB0aGlzLmhpZGVPcHRpb25zKClcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBoYW5kbGVBdXRvY29tcGxldGVDbGljayhldmVudD86IEV2ZW50KSB7XG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmNoaXBzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgICAgIHRoaXMuY2xvc2VkXG4gICAgICAgID8gdGhpcy5zaG93T3B0aW9ucygpXG4gICAgICAgIDogdGhpcy5oaWRlT3B0aW9ucygpXG4gICAgfVxuICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpO1xuICAgIHRoaXMudXBkYXRlQ2hpcHNDb250YWluZXJDbGFzc2VzKClcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDaGlwc0xpc3RBY3Rpb25DbGljayhldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgIHRoaXMuY2hpcHNDb2xsYXBzZWQgPSAhdGhpcy5jaGlwc0NvbGxhcHNlZDtcbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKVxuICAgIHRoaXMudXBkYXRlQ2hpcHNDb250YWluZXJDbGFzc2VzKClcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKClcbiAgICB0aGlzLmNoYW5nZWQgPSB0cnVlXG4gIH1cblxuICBzaG93T3B0aW9ucygpIHtcbiAgICBpZiAodGhpcy5jbG9zZWQgJiYgdGhpcy53cmFwcGVyICYmIHRoaXMub3ZlcmxheUNvbnRlbnQpIHtcbiAgICAgIHRoaXMub3Blbih0aGlzLndyYXBwZXIsIHRoaXMub3ZlcmxheUNvbnRlbnQsIHtcbiAgICAgICAgYmFja2Ryb3BDbGFzczogXCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiLFxuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jbG9zZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgICBpZiAodGhpcy5wYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnMubGVuZ3RoID09PSAwKSB0aGlzLmdldE1vcmVJdGVtcygpXG4gIH1cblxuICBoaWRlT3B0aW9ucygpIHtcbiAgICB0aGlzLmNsb3NlZCA9IHRydWU7XG4gICAgdGhpcy5jaGlwc0NvbGxhcHNlZCA9IHRydWU7XG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpXG4gICAgdGhpcy5fcGFnZU51bWJlciA9IDE7XG4gICAgdGhpcy5wYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnMgPSBbXTtcbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgICB0aGlzLnNjcm9sbFN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICBpZiAodGhpcy5jaGFuZ2VkKVxuICAgICAgdGhpcy5zZWxlY3Rpb25Eb25lLmVtaXQoKTtcbiAgICB0aGlzLmNoYW5nZWQgPSBmYWxzZVxuICB9XG5cbiAgb3ZlcnJpZGUgYWZ0ZXJDbG9zZWQoKSB7XG4gICAgdGhpcy5oaWRlT3B0aW9ucygpXG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICBvdmVycmlkZSBzaG91bGRDbG9zZShldmVudDogRXZlbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuY2xvc2VkXG4gICAgICAmJiAhdGhpcy53cmFwcGVyPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcbiAgICAgICYmICF0aGlzLmxpc3Q/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KTtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZE9wdGlvbnMoKTogYW55W10ge1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSkgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb24gPyBbdGhpcy5zZWxlY3RlZE9wdGlvbl0gOiBbXVxuXG4gICAgcmV0dXJuIHRoaXMuY2hpcHNDb2xsYXBzZWRcbiAgICAgID8gdGhpcy5zZWxlY3Rpb24uc2xpY2UoMCwgMSlcbiAgICAgIDogdGhpcy5zZWxlY3Rpb247XG4gIH1cblxuICBoYW5kbGVTZWxlY3RBbGwoY2hlY2tlZDogYm9vbGVhbikge1xuICAgIHRoaXMuc2VsZWN0QWxsT3B0aW9ucyhjaGVja2VkKTtcbiAgICB0aGlzLnNlbGVjdGlvbiA9IGNoZWNrZWQgPyB0aGlzLm9wdGlvbnMgOiBbXVxuICAgIHRoaXMub25DaGFuZ2UodGhpcy5zZWxlY3Rpb24pXG4gICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKClcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKClcbiAgICB0aGlzLml0ZW1DaGVjay5lbWl0KHRoaXMuc2VsZWN0aW9uKTtcbiAgICB0aGlzLmNoYW5nZWQgPSB0cnVlXG4gIH1cblxuICB2YWx1ZUNoYW5nZShvcHRpb246IGFueSwgdmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm9wdGlvbnNTZWxlY3RlZFtvcHRpb25bdGhpcy52YWx1ZVByb3BdXSA9IHZhbHVlXG4gICAgdGhpcy5zZWxlY3Rpb24gPSB0aGlzLm9wdGlvbnMuZmlsdGVyKG8gPT4gdGhpcy5vcHRpb25zU2VsZWN0ZWRbb1t0aGlzLnZhbHVlUHJvcF1dKVxuICAgIHRoaXMuY2hlY2tBbGxWYWx1ZSA9IHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA9PT0gdGhpcy5vcHRpb25zLmxlbmd0aFxuICAgIHRoaXMub25DaGFuZ2UodGhpcy5zZWxlY3Rpb24pXG4gICAgdGhpcy5vblRvdWNoZWQoKVxuXG4gICAgdGhpcy51cGRhdGVDaGlwc0NvbnRhaW5lckNsYXNzZXMoKVxuICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpO1xuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLml0ZW1DaGVjay5lbWl0KHRoaXMuc2VsZWN0aW9uKTtcbiAgICB0aGlzLmNoYW5nZWQgPSB0cnVlXG4gIH1cblxuICBzZWxlY3RBbGxPcHRpb25zKHNlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5vcHRpb25zU2VsZWN0ZWQgPSB0aGlzLm9wdGlvbnNcbiAgICAgIC5yZWR1Y2UoKGFjYywgY3VycikgPT4ge1xuICAgICAgICBhY2NbY3Vyclt0aGlzLnZhbHVlUHJvcF1dID0gc2VsZWN0ZWRcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9IGFzIHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9KVxuICB9XG5cbiAgaGFuZGxlQ2hpcEFjdGlvbihvcHRpb246IGFueSkge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLm9wdGlvbnNTZWxlY3RlZFtvcHRpb25bdGhpcy52YWx1ZVByb3BdXSA9IGZhbHNlXG4gICAgICB0aGlzLnNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uLmZpbHRlcihzZWxlY3RlZE9wdGlvbiA9PlxuICAgICAgICBzZWxlY3RlZE9wdGlvblt0aGlzLnZhbHVlUHJvcF0gIT09IG9wdGlvblt0aGlzLnZhbHVlUHJvcF0pXG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc2VsZWN0aW9uKVxuICAgICAgdGhpcy5vcHRpb25SZW1vdmVkLmVtaXQob3B0aW9uKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gbnVsbDtcbiAgICAgIHRoaXMub25DaGFuZ2UoW10pXG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVDaGlwc0NvbnRhaW5lckNsYXNzZXMoKVxuICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpO1xuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGRpc3BsYXkob3B0aW9uOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5Rm4gJiYgdGhpcy5kaXNwbGF5Rm4ob3B0aW9uKVxuICB9XG5cbiAgZ2V0TW9yZUl0ZW1zKCkge1xuICAgIGNvbnN0IHNvcnRlZEZpbHRlcmVkT3B0aW9ucyA9IFsuLi50aGlzLmZpbHRlcmVkT3B0aW9uc107XG5cbiAgICB0aGlzLnNvcnRTZWxlY3RlZEZpcnN0KHNvcnRlZEZpbHRlcmVkT3B0aW9ucywgdGhpcy5zZWxlY3Rpb24sIHRoaXMudmFsdWVQcm9wKVxuICAgIGNvbnN0IG5leHRQYWdlSXRlbXMgPSBzb3J0ZWRGaWx0ZXJlZE9wdGlvbnNcbiAgICAgIC5zbGljZShcbiAgICAgICAgdGhpcy5JVEVNU19QRVJfUEFHRSAqICh0aGlzLl9wYWdlTnVtYmVyIC0gMSksXG4gICAgICAgIHRoaXMuSVRFTVNfUEVSX1BBR0UgKiB0aGlzLl9wYWdlTnVtYmVyXG4gICAgICApO1xuXG4gICAgaWYgKG5leHRQYWdlSXRlbXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucyA9IFsuLi50aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucywgLi4ubmV4dFBhZ2VJdGVtc107XG4gICAgICB0aGlzLl9wYWdlTnVtYmVyICs9IDFcbiAgICB9XG4gICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKCk7XG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICBzb3J0U2VsZWN0ZWRGaXJzdChpdGVtczogQXJyYXk8YW55Piwgc2VsZWN0ZWRJdGVtczogQXJyYXk8YW55PiwgcHJvcDogc3RyaW5nKSB7XG4gICAgaXRlbXMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgY29uc3QgYUlzU2VsZWN0ZWQgPSBzZWxlY3RlZEl0ZW1zLnNvbWUoaXRlbSA9PiBpdGVtW3Byb3BdID09PSBhW3Byb3BdKTtcbiAgICAgIGNvbnN0IGJJc1NlbGVjdGVkID0gc2VsZWN0ZWRJdGVtcy5zb21lKGl0ZW0gPT4gaXRlbVtwcm9wXSA9PT0gYltwcm9wXSk7XG5cbiAgICAgIGlmIChhSXNTZWxlY3RlZCAmJiAhYklzU2VsZWN0ZWQpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfSBlbHNlIGlmICghYUlzU2VsZWN0ZWQgJiYgYklzU2VsZWN0ZWQpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVWYWxpZGF0aW9uKCkge1xuICAgIHRoaXMuY2hlY2tBbGxWYWx1ZSA9IHRoaXMuaXNBbGxPcHRpb25zU2VsZWN0ZWRcbiAgICB0aGlzLnNob3dDaGlwcyA9IEJvb2xlYW4odGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoKSAmJiB0aGlzLmNsb3NlZCAmJiAoXG4gICAgICAhdGhpcy5tdWx0aXBsZSB8fCAhdGhpcy5jaGVja0FsbFZhbHVlIHx8ICh0aGlzLmNoZWNrQWxsVmFsdWUgJiYgIUJvb2xlYW4odGhpcy5hbGxPcHRpb25zU2VsZWN0ZWRUZXh0KSlcbiAgICApO1xuICAgIHRoaXMuc2hvd0FsbFNlbGVjdGlvbkJ0biA9IHRoaXMubXVsdGlwbGUgJiYgQm9vbGVhbih0aGlzLnNlbGVjdGlvbi5sZW5ndGggPiAxKSAmJiB0aGlzLmNoaXBzQ29sbGFwc2VkO1xuICAgIHRoaXMuc2hvd1BsYWNlaG9sZGVyID0gdGhpcy5jbG9zZWQgJiYgKFxuICAgICAgIXRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCB8fCAodGhpcy5jaGVja0FsbFZhbHVlICYmIEJvb2xlYW4odGhpcy5hbGxPcHRpb25zU2VsZWN0ZWRUZXh0KSAmJiB0aGlzLm11bHRpcGxlKVxuICAgICk7XG4gICAgdGhpcy5zaG93RXhwYW5kZWRTZWxlY3Rpb25BY3Rpb25zID0gdGhpcy5tdWx0aXBsZSAmJiAhdGhpcy5jaGlwc0NvbGxhcHNlZDtcbiAgICB0aGlzLnNob3dTZWxlY3RBbGxDaGVja2JveCA9IEJvb2xlYW4odGhpcy5wYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnMubGVuZ3RoKSAmJiB0aGlzLnNlbGVjdEFsbDtcbiAgfVxuXG4gIC8vIENvbnRyb2wgVmFsdWUgQWNjZXNzb3JcblxuICB3cml0ZVZhbHVlKG9iajogYW55W10gfCBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbiA9IFtdO1xuICAgIGlmICh0aGlzLm11bHRpcGxlICYmIEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgdGhpcy5vcHRpb25zU2VsZWN0ZWQgPSB7fVxuICAgICAgb2JqLmZvckVhY2gob3B0aW9uID0+IHRoaXMub3B0aW9uc1NlbGVjdGVkW29wdGlvblt0aGlzLnZhbHVlUHJvcF1dID0gdHJ1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IG9ialxuICAgIH1cblxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLmhhbmRsZVNlbGVjdGlvbkNoYW5nZShvYmopXG4gICAgfVxuXG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyXCJcbiAgZGF0YS10ZXN0aWQ9XCJhdXRvY29tcGxldGUtd3JhcHBlclwiXG4gIFtjbGFzcy4tY2xvc2VkXT1cImNsb3NlZFwiXG4gIFtjbGFzcy4tb3BlbmVkXT1cIiFjbG9zZWRcIlxuICBbY2xhc3MuLW11bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgW2NsYXNzLi13aXRoLXNlbGVjdGlvbl09XCJzZWxlY3Rpb24ubGVuZ3RoID4gMCAmJiAhaXNBbGxPcHRpb25zU2VsZWN0ZWRcIlxuICBbY2xhc3MuLWJlbG93XT1cInBvc2l0aW9uID09PSAnYmVsb3cnXCJcbiAgW2NsYXNzLi1hYm92ZV09XCJwb3NpdGlvbiA9PT0gJ2Fib3ZlJ1wiXG4gICN3cmFwcGVyXG4gIChjbGljayk9XCJoYW5kbGVBdXRvY29tcGxldGVDbGljaygpXCJcbj5cbiAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZVwiICNhdXRvY29tcGxldGU+XG4gICAgPGlucHV0XG4gICAgICBjbGFzcz1cInNlYXJjaC1maWVsZFwiXG4gICAgICBhc2tBdXRvZm9jdXNcbiAgICAgICpuZ0lmPVwiIWNsb3NlZDsgZWxzZSBzZWxlY3Rpb25PclBsYWNlaG9sZGVyXCJcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgW2Zvcm1Db250cm9sXT1cImlucHV0Q29udHJvbFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIC8+XG4gICAgPG5nLXRlbXBsYXRlICNzZWxlY3Rpb25PclBsYWNlaG9sZGVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dDaGlwc1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJjaGlwLWxpc3RcIlxuICAgICAgICAgIFtjbGFzcy4tY29sbGFwc2VkXT1cImNoaXBzQ29sbGFwc2VkXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJjaGlwc0NvbnRhaW5lckNsYXNzZXNcIlxuICAgICAgICAgICpuZ0lmPVwibXVsdGlwbGU7IGVsc2Ugc2luZ2xlU2VsZWN0aW9uXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxhc2stY2hpcHNcbiAgICAgICAgICAgIFtzdHlsZS5tYXgtd2lkdGhdPVwiY2hpcHNDb2xsYXBzZWQgPyAnODUlJyA6ICc5NSUnXCJcbiAgICAgICAgICAgIFtzaG93QWN0aW9uXT1cImVuYWJsZVJlbW92ZVwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHNlbGVjdGVkT3B0aW9uc1wiXG4gICAgICAgICAgICAoYWN0aW9uKT1cImhhbmRsZUNoaXBBY3Rpb24ob3B0aW9uKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgZGlzcGxheShvcHRpb24pIH19XG4gICAgICAgICAgPC9hc2stY2hpcHM+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwiZXhwYW5kXCJcbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwic2VlLW1vcmVcIlxuICAgICAgICAgICAgKm5nSWY9XCJzaG93QWxsU2VsZWN0aW9uQnRuXCJcbiAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVDaGlwc0xpc3RBY3Rpb25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICAre3sgc2VsZWN0aW9uLmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImVtcHR5LXBsYWNlaG9sZGVyXCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICpuZ0lmPVwic2hvd1BsYWNlaG9sZGVyXCJcbiAgICAgID5cbiAgICAgICAge3tcbiAgICAgICAgICBjaGVja0FsbFZhbHVlICYmIGFsbE9wdGlvbnNTZWxlY3RlZFRleHRcbiAgICAgICAgICAgID8gYWxsT3B0aW9uc1NlbGVjdGVkVGV4dFxuICAgICAgICAgICAgOiBwbGFjZWhvbGRlclxuICAgICAgICB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiYnRuLWV4cGFuZCBtYXRlcmlhbC1pY29uc1wiXG4gICAgICBkYXRhLXRlc3RpZD1cImJ0bi1leHBhbmRcIlxuICAgICAgW2NsYXNzLi1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAqbmdJZj1cImNoaXBzQ29sbGFwc2VkXCJcbiAgICA+XG4gICAgICB7eyBjbG9zZWQgPyBcImV4cGFuZF9tb3JlXCIgOiBcImV4cGFuZF9sZXNzXCIgfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiICpuZ0lmPVwic2hvd0V4cGFuZGVkU2VsZWN0aW9uQWN0aW9uc1wiPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cInNlZS1tb3JlXCJcbiAgICAgIGRhdGEtdGVzdGlkPVwic2VlLWxlc3NcIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZUNoaXBzTGlzdEFjdGlvbkNsaWNrKCRldmVudClcIlxuICAgID5cbiAgICAgIHt7IFwiU0VFX0xFU1NcIiB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvc3Bhbj5cbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJidG4tZXhwYW5kIG1hdGVyaWFsLWljb25zXCJcbiAgICAgIGRhdGEtdGVzdGlkPVwiYnRuLWV4cGFuZFwiXG4gICAgICBbY2xhc3MuLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICA+XG4gICAgICB7eyBjbG9zZWQgPyBcImV4cGFuZF9tb3JlXCIgOiBcImV4cGFuZF9sZXNzXCIgfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjb3ZlcmxheUNvbnRlbnQ+XG4gIDxkaXYgI2xpc3QgY2xhc3M9XCJtZW51LWNvbnRhaW5lclwiXG4gICAgICAgW2NsYXNzLi1tdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICAgW2NsYXNzLi1iZWxvd109XCJwb3NpdGlvbiA9PT0gJ2JlbG93J1wiXG4gICAgICAgW2NsYXNzLi1hYm92ZV09XCJwb3NpdGlvbiA9PT0gJ2Fib3ZlJ1wiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW11bHRpcGxlOyBlbHNlIG11bHRpcGxlU2VsZWN0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdFwiIGFza1Njcm9sbCBbYXNrU2Nyb2xsVGhyZXNob2xkXT1cIjUwXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBwYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnNcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cIm9wdGlvbi1pdGVtXCJcbiAgICAgICAgICAgIFtjbGFzcy4taGlnaGxpZ2h0ZWRdPVwiXG4gICAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9uICYmIHNlbGVjdGVkT3B0aW9uW3ZhbHVlUHJvcF0gPT09IG9wdGlvblt2YWx1ZVByb3BdXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU9wdGlvblNlbGVjdGVkKG9wdGlvbilcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dFwiPnt7IGRpc3BsYXkob3B0aW9uKSB9fTwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI211bHRpcGxlU2VsZWN0aW9uPlxuICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbi1pdGVtXCIgKm5nSWY9XCJzaG93U2VsZWN0QWxsQ2hlY2tib3hcIj5cbiAgICAgICAgPGFzay1jaGVja2JveFxuICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJoYW5kbGVTZWxlY3RBbGwoJGV2ZW50KVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjaGVja0FsbFZhbHVlXCJcbiAgICAgICAgICA+e3tzZWxlY3RBbGxNZXNzYWdlfX08L2Fzay1jaGVja2JveFxuICAgICAgICA+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpeGVkT3B0aW9uc0l0ZW1zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb24taXRlbVwiPlxuICAgICAgICAgIDxhc2stY2hlY2tib3hcbiAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25zU2VsZWN0ZWRbb3B0aW9uW3ZhbHVlUHJvcF1dXCJcbiAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJ2YWx1ZUNoYW5nZShvcHRpb24sICRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveC1jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImNoZWNrYm94LWl0ZW0taWNvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImljb25Qcm9wUmVmZXJlbmNlXCJcbiAgICAgICAgICAgICAgICBbc3JjXT1cIm9wdGlvbltpY29uUHJvcFJlZmVyZW5jZV1cIlxuICAgICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIHt7IGRpc3BsYXkob3B0aW9uKSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9hc2stY2hlY2tib3g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgYXNrU2Nyb2xsXG4gICAgICAgIFthc2tTY3JvbGxUaHJlc2hvbGRdPVwiNTBcIlxuICAgICAgICAoc2Nyb2xsRW5kKT1cImdldE1vcmVJdGVtcygpXCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJvcHRpb25zLWZvcm1cIlxuICAgICAgICBjbGFzcz1cIm9wdGlvbnMtZm9ybVwiXG4gICAgICAgIFtjbGFzcy4tc2VsZWN0LWFsbF09XCJzaG93U2VsZWN0QWxsQ2hlY2tib3hcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICA8YXNrLWNoZWNrYm94XG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25zU2VsZWN0ZWRbb3B0aW9uW3ZhbHVlUHJvcF1dXCJcbiAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlKG9wdGlvbiwgJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJjaGVja2JveC1pdGVtLWljb25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaWNvblByb3BSZWZlcmVuY2VcIlxuICAgICAgICAgICAgICAgICAgW3NyY109XCJvcHRpb25baWNvblByb3BSZWZlcmVuY2VdXCJcbiAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB7eyBkaXNwbGF5KG9wdGlvbikgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Fzay1jaGVja2JveD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxzcGFuIGNsYXNzPVwiZW1wdHlcIiAqbmdJZj1cIiFmaWx0ZXJlZE9wdGlvbnMubGVuZ3RoXCI+e3tcbiAgICAgIGVtcHR5TWVzc2FnZSB8IHRyYW5zbGF0ZVxuICAgIH19PC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2luZ2xlU2VsZWN0aW9uPlxuICA8c3BhbiBkYXRhLXRlc3RpZD1cInNlbGVjdGVkLW9wdGlvblwiPnt7ZGlzcGxheShzZWxlY3RlZE9wdGlvbnNbMF0pfX08L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
|
337
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsVUFBVSxFQUVWLFlBQVksRUFDWixVQUFVLEVBRVYsTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBSU4sU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBb0MsV0FBVyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDakcsT0FBTyxFQUFDLFlBQVksRUFBYSxHQUFHLEVBQWdCLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUdyRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7OztBQUVqRSxNQUFNLGFBQWEsR0FBYTtJQUM5QixPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLEtBQUssRUFBRSxJQUFJO0lBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztDQUNyRCxDQUFBO0FBU0QsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGdCQUFnQjtJQTJGekQsWUFBb0IsV0FBd0IsRUFDaEMsT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQzFCLE1BQXlCLEVBQ3pCLFNBQTJCO1FBQzdDLEtBQUssQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUxmLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBR3hCLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQ3pCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBeEZyQyxpQkFBWSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ2xDLHNCQUFpQixHQUFVLEVBQUUsQ0FBQztRQUM5QixvQkFBZSxHQUFVLEVBQUUsQ0FBQztRQUM1Qiw2QkFBd0IsR0FBVSxFQUFFLENBQUM7UUFFckMsY0FBUyxHQUFVLEVBQUUsQ0FBQztRQUN0QixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsbUJBQWMsR0FBRyxJQUFJLENBQUE7UUFDckIsa0JBQWEsR0FBRyxLQUFLLENBQUE7UUFDckIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUM1QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixpQ0FBNEIsR0FBRyxLQUFLLENBQUM7UUFDckMsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLDBCQUFxQixHQUFHO1lBQ2hDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsUUFBUSxFQUFFLEtBQUs7WUFDZixPQUFPLEVBQUUsS0FBSztZQUNkLE9BQU8sRUFBRSxLQUFLO1NBQ2YsQ0FBQztRQUNRLG9CQUFlLEdBQXNDLEVBQUUsQ0FBQTtRQUN6RCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBSWhCLGFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDcEIsbUJBQWMsR0FBRyxFQUFFLENBQUE7UUFDNUIsZ0JBQVcsR0FBRyxDQUFDLENBQUE7UUFDdkIsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBWXZCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsY0FBUyxHQUFXLEVBQUUsQ0FBQTtRQUd0QixZQUFPLEdBQVUsRUFBRSxDQUFBO1FBR25CLGlCQUFZLEdBQVUsRUFBRSxDQUFBO1FBR3hCLGdCQUFXLEdBQUcsRUFBRSxDQUFBO1FBR2hCLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1FBRzVCLGNBQVMsR0FBRyxLQUFLLENBQUE7UUFHakIsMkJBQXNCLEdBQWtCLElBQUksQ0FBQztRQUc3QyxxQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQU14RCxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUVwQixhQUFRLEdBQXNCLE9BQU8sQ0FBQztRQUd0QyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUcvQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHbkMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBcVFuQyxhQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQTtRQU16QixjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFBO0lBblFwQixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFBO1FBQzlDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0csQ0FBQztJQUVELElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUE7SUFDdEQsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFBO1lBQ3BCLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxFQUFFLENBQUE7WUFFbEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWTtpQkFDbkQsTUFBTSxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQy9FLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDakMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUNqQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQTtZQUNwQixJQUFJLENBQUMsd0JBQXdCLEdBQUcsRUFBRSxDQUFBO1FBQ3BDLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FDOUQsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ3pHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUNyQixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxNQUFhO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFBO1FBRTlDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUE7UUFDakQsQ0FBQztRQUNELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDN0IsQ0FBQztJQUVPLDJCQUEyQjtRQUNqQyxJQUFJLENBQUMscUJBQXFCLEdBQUc7WUFDM0IsTUFBTSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUM7WUFDekMsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUM7WUFDM0MsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUM7WUFDMUMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxJQUFJLENBQUM7U0FDMUMsQ0FBQTtJQUNILENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFTO1FBQzVCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ2xDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELHVCQUF1QixDQUFDLEtBQWE7UUFDbkMsS0FBSyxFQUFFLGVBQWUsRUFBRSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7WUFDM0IsSUFBSSxDQUFDLE1BQU07Z0JBQ1QsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3BCLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDeEIsQ0FBQztRQUNELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFBO1FBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDN0IsQ0FBQztJQUVTLDBCQUEwQixDQUFDLEtBQVk7UUFDL0MsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzNDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBQ3ZCLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFBO1FBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQzNDLGFBQWEsRUFBRSxrQ0FBa0M7Z0JBQ2pELFdBQVcsRUFBRSxJQUFJO2FBQ2xCLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLENBQUM7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUNyRSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLE9BQU87WUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO0lBQ3RCLENBQUM7SUFFUSxXQUFXO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQzdCLENBQUM7SUFFUSxXQUFXLENBQUMsS0FBWTtRQUMvQixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU07ZUFDZCxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO2VBQ25ELENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUUzRSxPQUFPLElBQUksQ0FBQyxjQUFjO1lBQ3hCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxlQUFlLENBQUMsT0FBZ0I7UUFDOUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7UUFDNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7SUFDckIsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFXLEVBQUUsS0FBYztRQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUE7UUFDcEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDbEYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQTtRQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUM3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7UUFFaEIsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUE7UUFDbEMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7SUFDckIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFFBQWlCO1FBQ2hDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU87YUFDaEMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ3BCLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFBO1lBQ3BDLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQWdDLENBQUMsQ0FBQTtJQUN4QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBVztRQUMxQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUE7WUFDcEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUN0RCxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtZQUM1RCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNqQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDbkIsQ0FBQztRQUVELElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFBO1FBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFXO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2pELENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXhELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUM3RSxNQUFNLGFBQWEsR0FBRyxxQkFBcUI7YUFDeEMsS0FBSyxDQUNKLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxFQUM1QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQ3ZDLENBQUM7UUFFSixJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDO1lBQ3JGLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFBO1FBQ3ZCLENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQzdCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFpQixFQUFFLGFBQXlCLEVBQUUsSUFBWTtRQUMxRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2xCLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdkUsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUV2RSxJQUFJLFdBQVcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNoQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ1osQ0FBQztpQkFBTSxJQUFJLENBQUMsV0FBVyxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUN2QyxPQUFPLENBQUMsQ0FBQztZQUNYLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLENBQUMsQ0FBQztZQUNYLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxnQkFBZ0I7UUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUE7UUFDOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQ3RFLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQ3ZHLENBQUM7UUFDRixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUN0RyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FDcEMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDOUcsQ0FBQztRQUNGLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMxRSxJQUFJLENBQUMscUJBQXFCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQy9GLENBQUM7SUFFRCx5QkFBeUI7SUFFekIsVUFBVSxDQUFDLEdBQWdCO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUE7WUFDekIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO1FBQzVFLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUE7UUFDM0IsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNqQyxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBSUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBSUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQzs4R0E1V1UscUJBQXFCO2tHQUFyQixxQkFBcUIsMGhCQUhyQixDQUFDLGFBQWEsQ0FBQyxvYkN0QzVCLG9nTEE4S0E7OzJGRHJJYSxxQkFBcUI7a0JBUGpDLFNBQVM7K0JBQ0Usa0JBQWtCLGFBR2pCLENBQUMsYUFBYSxDQUFDLG1CQUNULHVCQUF1QixDQUFDLE1BQU07b01BSXBCLEtBQUs7c0JBQS9CLFNBQVM7dUJBQUMsY0FBYztnQkFDTixJQUFJO3NCQUF0QixTQUFTO3VCQUFDLE1BQU07Z0JBQ0ssT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNTLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQXFDM0IsUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sc0JBQXNCO3NCQURyQixLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBTU4sU0FBUztzQkFEUixNQUFNO2dCQUlQLGFBQWE7c0JBRFosTUFBTTtnQkFJUCxhQUFhO3NCQURaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBQcm92aWRlcixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGZyb21FdmVudCwgbWFwLCBTdWJzY3JpcHRpb24sIHRhcH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7T3ZlcmxheSwgT3ZlcmxheVJlZn0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQge1RlbXBsYXRlUG9ydGFsfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gXCJAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcFwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtPdmVybGF5Q29tcG9uZW50fSBmcm9tIFwiLi4vLi4vY2xhc3Nlcy9vdmVybGF5LmNvbXBvbmVudFwiO1xuXG5jb25zdCB2YWx1ZUFjY2Vzc29yOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIG11bHRpOiB0cnVlLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBdXRvY29tcGxldGVDb21wb25lbnQpLFxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhc2stYXV0b2NvbXBsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt2YWx1ZUFjY2Vzc29yXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ29tcG9uZW50IGV4dGVuZHMgT3ZlcmxheUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkNoYW5nZXMge1xuXG4gIEBWaWV3Q2hpbGQoXCJhdXRvY29tcGxldGVcIikgaW5wdXQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWRcbiAgQFZpZXdDaGlsZChcImxpc3RcIikgbGlzdDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZFxuICBAVmlld0NoaWxkKFwid3JhcHBlclwiKSB3cmFwcGVyOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkXG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlDb250ZW50Jykgb3ZlcmxheUNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcblxuICBwcm90ZWN0ZWQgaW5wdXRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKFwiXCIpXG4gIHByb3RlY3RlZCBmaXhlZE9wdGlvbnNJdGVtczogYW55W10gPSBbXTtcbiAgcHJvdGVjdGVkIGZpbHRlcmVkT3B0aW9uczogYW55W10gPSBbXTtcbiAgcHJvdGVjdGVkIHBhZ2luYXRlZEZpbHRlcmVkT3B0aW9uczogYW55W10gPSBbXTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkT3B0aW9uPzogYW55O1xuICBwcm90ZWN0ZWQgc2VsZWN0aW9uOiBhbnlbXSA9IFtdO1xuICBwcm90ZWN0ZWQgY2xvc2VkID0gdHJ1ZTtcbiAgcHJvdGVjdGVkIGNoaXBzQ29sbGFwc2VkID0gdHJ1ZVxuICBwcm90ZWN0ZWQgY2hlY2tBbGxWYWx1ZSA9IGZhbHNlXG4gIHByb3RlY3RlZCBkaXNhYmxlZCA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc2hvd0NoaXBzID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzaG93QWxsU2VsZWN0aW9uQnRuID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzaG93UGxhY2Vob2xkZXIgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHNob3dFeHBhbmRlZFNlbGVjdGlvbkFjdGlvbnMgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHNob3dTZWxlY3RBbGxDaGVja2JveCA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgY2hpcHNDb250YWluZXJDbGFzc2VzID0ge1xuICAgIFwiLXR3b1wiOiBmYWxzZSxcbiAgICBcIi10aHJlZVwiOiBmYWxzZSxcbiAgICBcIi1mb3VyXCI6IGZhbHNlLFxuICAgIFwiLW1hbnlcIjogZmFsc2VcbiAgfTtcbiAgcHJvdGVjdGVkIG9wdGlvbnNTZWxlY3RlZDoge1trZXk6IHN0cmluZyB8IG51bWJlcl06IGJvb2xlYW59ID0ge31cbiAgcHJpdmF0ZSBjaGFuZ2VkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfcG9ydGFsOiBUZW1wbGF0ZVBvcnRhbDxhbnk+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9kZXN0cm95ID0gaW5qZWN0KERlc3Ryb3lSZWYpXG4gIHByaXZhdGUgcmVhZG9ubHkgSVRFTVNfUEVSX1BBR0UgPSA0MFxuICBwcml2YXRlIF9wYWdlTnVtYmVyID0gMVxuICBfc2VsZWN0QWxsTWVzc2FnZSA9ICcnO1xuXG4gIHByaXZhdGUgc2Nyb2xsU3ViPzogU3Vic2NyaXB0aW9uO1xuXG5cbiAgQElucHV0KClcbiAgZmlsdGVyRm4/OiAoaXRlbTogc3RyaW5nKSA9PiBhbnlbXTtcblxuICBASW5wdXQoKVxuICBkaXNwbGF5Rm4/OiAoaXRlbTogYW55KSA9PiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgbXVsdGlwbGUgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICB2YWx1ZVByb3A6IHN0cmluZyA9ICcnXG5cbiAgQElucHV0KClcbiAgb3B0aW9uczogYW55W10gPSBbXVxuXG4gIEBJbnB1dCgpXG4gIGZpeGVkT3B0aW9uczogYW55W10gPSBbXVxuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyID0gJydcblxuICBASW5wdXQoKVxuICBlbXB0eU1lc3NhZ2UgPSAnTk9fT1BUSU9OUyc7XG5cbiAgQElucHV0KClcbiAgc2VsZWN0QWxsID0gZmFsc2VcblxuICBASW5wdXQoKVxuICBhbGxPcHRpb25zU2VsZWN0ZWRUZXh0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKVxuICBzZWxlY3RBbGxNZXNzYWdlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnU0VMRUNUX0FMTCcpO1xuXG4gIEBJbnB1dCgpXG4gIGljb25Qcm9wUmVmZXJlbmNlPzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGVuYWJsZVJlbW92ZSA9IHRydWU7XG5cbiAgcG9zaXRpb246ICdhYm92ZScgfCAnYmVsb3cnID0gJ2JlbG93JztcblxuICBAT3V0cHV0KClcbiAgaXRlbUNoZWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBzZWxlY3Rpb25Eb25lID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBvcHRpb25SZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICAgICAgICBvdmVybGF5OiBPdmVybGF5LFxuICAgICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIGNoYW5nZTogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgc3VwZXIob3ZlcmxheSwgdmlld0NvbnRhaW5lclJlZik7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jaGVja0FsbFZhbHVlID0gdGhpcy5pc0FsbE9wdGlvbnNTZWxlY3RlZFxuICAgIHRoaXMuY2hlY2tGaXhlZE9wdGlvbnMoKTtcbiAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlKCk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRml4ZWRPcHRpb25zKCkge1xuICAgIHRoaXMuZml4ZWRPcHRpb25zSXRlbXMgPSB0aGlzLm9wdGlvbnMuZmlsdGVyKG9wdGlvbiA9PiB0aGlzLmZpeGVkT3B0aW9ucy5pbmNsdWRlcyhvcHRpb25bdGhpcy52YWx1ZVByb3BdKSk7XG4gIH1cblxuICBnZXQgaXNBbGxPcHRpb25zU2VsZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA9PT0gdGhpcy5vcHRpb25zLmxlbmd0aFxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydvcHRpb25zJ10pIHtcbiAgICAgIHRoaXMuX3BhZ2VOdW1iZXIgPSAxXG4gICAgICB0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucyA9IFtdXG5cbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gY2hhbmdlc1snb3B0aW9ucyddLmN1cnJlbnRWYWx1ZVxuICAgICAgICAuZmlsdGVyKChvcHRpb246IGFueSkgPT4gIXRoaXMuZml4ZWRPcHRpb25zLmluY2x1ZGVzKG9wdGlvblt0aGlzLnZhbHVlUHJvcF0pKVxuICAgICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKClcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUlucHV0Q2hhbmdlKCkge1xuICAgIHRoaXMuaW5wdXRDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3kpLFxuICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLl9wYWdlTnVtYmVyID0gMVxuICAgICAgICB0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucyA9IFtdXG4gICAgICB9KSxcbiAgICAgIG1hcCh2YWx1ZSA9PiB0aGlzLmZpbHRlckZuID8gdGhpcy5maWx0ZXJGbih2YWx1ZSB8fCAnJykgOiBbXSlcbiAgICApLnN1YnNjcmliZShpdGVtcyA9PiB7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IGl0ZW1zLmZpbHRlcigob3B0aW9uOiBhbnkpID0+ICF0aGlzLmZpeGVkT3B0aW9ucy5pbmNsdWRlcyhvcHRpb25bdGhpcy52YWx1ZVByb3BdKSlcbiAgICAgIHRoaXMuZ2V0TW9yZUl0ZW1zKClcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTZWxlY3Rpb25DaGFuZ2UodmFsdWVzOiBhbnlbXSkge1xuICAgIHRoaXMuc2VsZWN0aW9uID0gdmFsdWVzXG4gICAgdGhpcy5jaGVja0FsbFZhbHVlID0gdGhpcy5pc0FsbE9wdGlvbnNTZWxlY3RlZFxuXG4gICAgaWYgKCF0aGlzLmNoaXBzQ29sbGFwc2VkKSB7XG4gICAgICB0aGlzLmNoaXBzQ29sbGFwc2VkID0gdGhpcy5zZWxlY3Rpb24ubGVuZ3RoIDwgMlxuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKVxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDaGlwc0NvbnRhaW5lckNsYXNzZXMoKSB7XG4gICAgdGhpcy5jaGlwc0NvbnRhaW5lckNsYXNzZXMgPSB7XG4gICAgICBcIi10d29cIjogdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAyLFxuICAgICAgXCItdGhyZWVcIjogdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAzLFxuICAgICAgXCItZm91clwiOiB0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDQsXG4gICAgICBcIi1tYW55XCI6IHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+PSA1XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlT3B0aW9uU2VsZWN0ZWQoaXRlbTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IGl0ZW07XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGVkT3B0aW9uKVxuICAgIHRoaXMuY2xvc2UoKVxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGhhbmRsZUF1dG9jb21wbGV0ZUNsaWNrKGV2ZW50PzogRXZlbnQpIHtcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKClcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuY2hpcHNDb2xsYXBzZWQgPSB0cnVlO1xuICAgICAgdGhpcy5jbG9zZWRcbiAgICAgICAgPyB0aGlzLnNob3dPcHRpb25zKClcbiAgICAgICAgOiB0aGlzLmhpZGVPcHRpb25zKClcbiAgICB9XG4gICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKCk7XG4gICAgdGhpcy51cGRhdGVDaGlwc0NvbnRhaW5lckNsYXNzZXMoKVxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNoaXBzTGlzdEFjdGlvbkNsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgdGhpcy5jaGlwc0NvbGxhcHNlZCA9ICF0aGlzLmNoaXBzQ29sbGFwc2VkO1xuICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpXG4gICAgdGhpcy51cGRhdGVDaGlwc0NvbnRhaW5lckNsYXNzZXMoKVxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKVxuICAgIHRoaXMuY2hhbmdlZCA9IHRydWVcbiAgfVxuXG4gIHNob3dPcHRpb25zKCkge1xuICAgIGlmICh0aGlzLmNsb3NlZCAmJiB0aGlzLndyYXBwZXIgJiYgdGhpcy5vdmVybGF5Q29udGVudCkge1xuICAgICAgdGhpcy5vcGVuKHRoaXMud3JhcHBlciwgdGhpcy5vdmVybGF5Q29udGVudCwge1xuICAgICAgICBiYWNrZHJvcENsYXNzOiBcImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCIsXG4gICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmNsb3NlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpO1xuICAgIGlmICh0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucy5sZW5ndGggPT09IDApIHRoaXMuZ2V0TW9yZUl0ZW1zKClcbiAgfVxuXG4gIGhpZGVPcHRpb25zKCkge1xuICAgIHRoaXMuY2xvc2VkID0gdHJ1ZTtcbiAgICB0aGlzLmNoaXBzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKClcbiAgICB0aGlzLl9wYWdlTnVtYmVyID0gMTtcbiAgICB0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucyA9IFtdO1xuICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpO1xuICAgIHRoaXMuc2Nyb2xsU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIGlmICh0aGlzLmNoYW5nZWQpXG4gICAgICB0aGlzLnNlbGVjdGlvbkRvbmUuZW1pdCgpO1xuICAgIHRoaXMuY2hhbmdlZCA9IGZhbHNlXG4gIH1cblxuICBvdmVycmlkZSBhZnRlckNsb3NlZCgpIHtcbiAgICB0aGlzLmhpZGVPcHRpb25zKClcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIG92ZXJyaWRlIHNob3VsZENsb3NlKGV2ZW50OiBFdmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5jbG9zZWRcbiAgICAgICYmICF0aGlzLndyYXBwZXI/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KVxuICAgICAgJiYgIXRoaXMubGlzdD8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkT3B0aW9ucygpOiBhbnlbXSB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbiA/IFt0aGlzLnNlbGVjdGVkT3B0aW9uXSA6IFtdXG5cbiAgICByZXR1cm4gdGhpcy5jaGlwc0NvbGxhcHNlZFxuICAgICAgPyB0aGlzLnNlbGVjdGlvbi5zbGljZSgwLCAxKVxuICAgICAgOiB0aGlzLnNlbGVjdGlvbjtcbiAgfVxuXG4gIGhhbmRsZVNlbGVjdEFsbChjaGVja2VkOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZWxlY3RBbGxPcHRpb25zKGNoZWNrZWQpO1xuICAgIHRoaXMuc2VsZWN0aW9uID0gY2hlY2tlZCA/IHRoaXMub3B0aW9ucyA6IFtdXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGlvbilcbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKVxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKVxuICAgIHRoaXMuaXRlbUNoZWNrLmVtaXQodGhpcy5zZWxlY3Rpb24pO1xuICAgIHRoaXMuY2hhbmdlZCA9IHRydWVcbiAgfVxuXG4gIHZhbHVlQ2hhbmdlKG9wdGlvbjogYW55LCB2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMub3B0aW9uc1NlbGVjdGVkW29wdGlvblt0aGlzLnZhbHVlUHJvcF1dID0gdmFsdWVcbiAgICB0aGlzLnNlbGVjdGlvbiA9IHRoaXMub3B0aW9ucy5maWx0ZXIobyA9PiB0aGlzLm9wdGlvbnNTZWxlY3RlZFtvW3RoaXMudmFsdWVQcm9wXV0pXG4gICAgdGhpcy5jaGVja0FsbFZhbHVlID0gdGhpcy5zZWxlY3Rpb24ubGVuZ3RoID09PSB0aGlzLm9wdGlvbnMubGVuZ3RoXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGlvbilcbiAgICB0aGlzLm9uVG91Y2hlZCgpXG5cbiAgICB0aGlzLnVwZGF0ZUNoaXBzQ29udGFpbmVyQ2xhc3NlcygpXG4gICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKCk7XG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuaXRlbUNoZWNrLmVtaXQodGhpcy5zZWxlY3Rpb24pO1xuICAgIHRoaXMuY2hhbmdlZCA9IHRydWVcbiAgfVxuXG4gIHNlbGVjdEFsbE9wdGlvbnMoc2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm9wdGlvbnNTZWxlY3RlZCA9IHRoaXMub3B0aW9uc1xuICAgICAgLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiB7XG4gICAgICAgIGFjY1tjdXJyW3RoaXMudmFsdWVQcm9wXV0gPSBzZWxlY3RlZFxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwge30gYXMgeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0pXG4gIH1cblxuICBoYW5kbGVDaGlwQWN0aW9uKG9wdGlvbjogYW55KSB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMub3B0aW9uc1NlbGVjdGVkW29wdGlvblt0aGlzLnZhbHVlUHJvcF1dID0gZmFsc2VcbiAgICAgIHRoaXMuc2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb24uZmlsdGVyKHNlbGVjdGVkT3B0aW9uID0+XG4gICAgICAgIHNlbGVjdGVkT3B0aW9uW3RoaXMudmFsdWVQcm9wXSAhPT0gb3B0aW9uW3RoaXMudmFsdWVQcm9wXSlcbiAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5zZWxlY3Rpb24pXG4gICAgICB0aGlzLm9wdGlvblJlbW92ZWQuZW1pdChvcHRpb24pXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBudWxsO1xuICAgICAgdGhpcy5vbkNoYW5nZShbXSlcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZUNoaXBzQ29udGFpbmVyQ2xhc3NlcygpXG4gICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKCk7XG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZGlzcGxheShvcHRpb246IGFueSkge1xuICAgIHJldHVybiB0aGlzLmRpc3BsYXlGbiAmJiB0aGlzLmRpc3BsYXlGbihvcHRpb24pXG4gIH1cblxuICBnZXRNb3JlSXRlbXMoKSB7XG4gICAgY29uc3Qgc29ydGVkRmlsdGVyZWRPcHRpb25zID0gWy4uLnRoaXMuZmlsdGVyZWRPcHRpb25zXTtcblxuICAgIHRoaXMuc29ydFNlbGVjdGVkRmlyc3Qoc29ydGVkRmlsdGVyZWRPcHRpb25zLCB0aGlzLnNlbGVjdGlvbiwgdGhpcy52YWx1ZVByb3ApXG4gICAgY29uc3QgbmV4dFBhZ2VJdGVtcyA9IHNvcnRlZEZpbHRlcmVkT3B0aW9uc1xuICAgICAgLnNsaWNlKFxuICAgICAgICB0aGlzLklURU1TX1BFUl9QQUdFICogKHRoaXMuX3BhZ2VOdW1iZXIgLSAxKSxcbiAgICAgICAgdGhpcy5JVEVNU19QRVJfUEFHRSAqIHRoaXMuX3BhZ2VOdW1iZXJcbiAgICAgICk7XG5cbiAgICBpZiAobmV4dFBhZ2VJdGVtcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMucGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zID0gWy4uLnRoaXMucGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zLCAuLi5uZXh0UGFnZUl0ZW1zXTtcbiAgICAgIHRoaXMuX3BhZ2VOdW1iZXIgKz0gMVxuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIHNvcnRTZWxlY3RlZEZpcnN0KGl0ZW1zOiBBcnJheTxhbnk+LCBzZWxlY3RlZEl0ZW1zOiBBcnJheTxhbnk+LCBwcm9wOiBzdHJpbmcpIHtcbiAgICBpdGVtcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICBjb25zdCBhSXNTZWxlY3RlZCA9IHNlbGVjdGVkSXRlbXMuc29tZShpdGVtID0+IGl0ZW1bcHJvcF0gPT09IGFbcHJvcF0pO1xuICAgICAgY29uc3QgYklzU2VsZWN0ZWQgPSBzZWxlY3RlZEl0ZW1zLnNvbWUoaXRlbSA9PiBpdGVtW3Byb3BdID09PSBiW3Byb3BdKTtcblxuICAgICAgaWYgKGFJc1NlbGVjdGVkICYmICFiSXNTZWxlY3RlZCkge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9IGVsc2UgaWYgKCFhSXNTZWxlY3RlZCAmJiBiSXNTZWxlY3RlZCkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZVZhbGlkYXRpb24oKSB7XG4gICAgdGhpcy5jaGVja0FsbFZhbHVlID0gdGhpcy5pc0FsbE9wdGlvbnNTZWxlY3RlZFxuICAgIHRoaXMuc2hvd0NoaXBzID0gQm9vbGVhbih0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGgpICYmIHRoaXMuY2xvc2VkICYmIChcbiAgICAgICF0aGlzLm11bHRpcGxlIHx8ICF0aGlzLmNoZWNrQWxsVmFsdWUgfHwgKHRoaXMuY2hlY2tBbGxWYWx1ZSAmJiAhQm9vbGVhbih0aGlzLmFsbE9wdGlvbnNTZWxlY3RlZFRleHQpKVxuICAgICk7XG4gICAgdGhpcy5zaG93QWxsU2VsZWN0aW9uQnRuID0gdGhpcy5tdWx0aXBsZSAmJiBCb29sZWFuKHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA+IDEpICYmIHRoaXMuY2hpcHNDb2xsYXBzZWQ7XG4gICAgdGhpcy5zaG93UGxhY2Vob2xkZXIgPSB0aGlzLmNsb3NlZCAmJiAoXG4gICAgICAhdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoIHx8ICh0aGlzLmNoZWNrQWxsVmFsdWUgJiYgQm9vbGVhbih0aGlzLmFsbE9wdGlvbnNTZWxlY3RlZFRleHQpICYmIHRoaXMubXVsdGlwbGUpXG4gICAgKTtcbiAgICB0aGlzLnNob3dFeHBhbmRlZFNlbGVjdGlvbkFjdGlvbnMgPSB0aGlzLm11bHRpcGxlICYmICF0aGlzLmNoaXBzQ29sbGFwc2VkO1xuICAgIHRoaXMuc2hvd1NlbGVjdEFsbENoZWNrYm94ID0gQm9vbGVhbih0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpICYmIHRoaXMuc2VsZWN0QWxsO1xuICB9XG5cbiAgLy8gQ29udHJvbCBWYWx1ZSBBY2Nlc3NvclxuXG4gIHdyaXRlVmFsdWUob2JqOiBhbnlbXSB8IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0aW9uID0gW107XG4gICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICB0aGlzLm9wdGlvbnNTZWxlY3RlZCA9IHt9XG4gICAgICBvYmouZm9yRWFjaChvcHRpb24gPT4gdGhpcy5vcHRpb25zU2VsZWN0ZWRbb3B0aW9uW3RoaXMudmFsdWVQcm9wXV0gPSB0cnVlKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gb2JqXG4gICAgfVxuXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKG9iailcbiAgICB9XG5cbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHt9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgb25Ub3VjaGVkID0gKCkgPT4ge31cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXJcIlxuICBkYXRhLXRlc3RpZD1cImF1dG9jb21wbGV0ZS13cmFwcGVyXCJcbiAgW2NsYXNzLi1jbG9zZWRdPVwiY2xvc2VkXCJcbiAgW2NsYXNzLi1vcGVuZWRdPVwiIWNsb3NlZFwiXG4gIFtjbGFzcy4tbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICBbY2xhc3MuLXdpdGgtc2VsZWN0aW9uXT1cInNlbGVjdGlvbi5sZW5ndGggPiAwICYmICFpc0FsbE9wdGlvbnNTZWxlY3RlZFwiXG4gIFtjbGFzcy4tYmVsb3ddPVwicG9zaXRpb24gPT09ICdiZWxvdydcIlxuICBbY2xhc3MuLWFib3ZlXT1cInBvc2l0aW9uID09PSAnYWJvdmUnXCJcbiAgI3dyYXBwZXJcbiAgKGNsaWNrKT1cImhhbmRsZUF1dG9jb21wbGV0ZUNsaWNrKClcIlxuPlxuICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlXCIgI2F1dG9jb21wbGV0ZT5cbiAgICA8aW5wdXRcbiAgICAgIGNsYXNzPVwic2VhcmNoLWZpZWxkXCJcbiAgICAgIGFza0F1dG9mb2N1c1xuICAgICAgKm5nSWY9XCIhY2xvc2VkOyBlbHNlIHNlbGVjdGlvbk9yUGxhY2Vob2xkZXJcIlxuICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiaW5wdXRDb250cm9sXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgLz5cbiAgICA8bmctdGVtcGxhdGUgI3NlbGVjdGlvbk9yUGxhY2Vob2xkZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0NoaXBzXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImNoaXAtbGlzdFwiXG4gICAgICAgICAgW2NsYXNzLi1jb2xsYXBzZWRdPVwiY2hpcHNDb2xsYXBzZWRcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cImNoaXBzQ29udGFpbmVyQ2xhc3Nlc1wiXG4gICAgICAgICAgKm5nSWY9XCJtdWx0aXBsZTsgZWxzZSBzaW5nbGVTZWxlY3Rpb25cIlxuICAgICAgICA+XG4gICAgICAgICAgPGFzay1jaGlwc1xuICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aF09XCJjaGlwc0NvbGxhcHNlZCA/ICc4NSUnIDogJzk1JSdcIlxuICAgICAgICAgICAgW3Nob3dBY3Rpb25dPVwiZW5hYmxlUmVtb3ZlXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc2VsZWN0ZWRPcHRpb25zXCJcbiAgICAgICAgICAgIChhY3Rpb24pPVwiaGFuZGxlQ2hpcEFjdGlvbihvcHRpb24pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBkaXNwbGF5KG9wdGlvbikgfX1cbiAgICAgICAgICA8L2Fzay1jaGlwcz5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJleHBhbmRcIlxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJzZWUtbW9yZVwiXG4gICAgICAgICAgICAqbmdJZj1cInNob3dBbGxTZWxlY3Rpb25CdG5cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUNoaXBzTGlzdEFjdGlvbkNsaWNrKCRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgICt7eyBzZWxlY3Rpb24ubGVuZ3RoIC0gMSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwiZW1wdHktcGxhY2Vob2xkZXJcIlxuICAgICAgICBkYXRhLXRlc3RpZD1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgKm5nSWY9XCJzaG93UGxhY2Vob2xkZXJcIlxuICAgICAgPlxuICAgICAgICB7e1xuICAgICAgICAgIGNoZWNrQWxsVmFsdWUgJiYgYWxsT3B0aW9uc1NlbGVjdGVkVGV4dFxuICAgICAgICAgICAgPyBhbGxPcHRpb25zU2VsZWN0ZWRUZXh0XG4gICAgICAgICAgICA6IHBsYWNlaG9sZGVyXG4gICAgICAgIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJidG4tZXhwYW5kIG1hdGVyaWFsLWljb25zXCJcbiAgICAgIGRhdGEtdGVzdGlkPVwiYnRuLWV4cGFuZFwiXG4gICAgICBbY2xhc3MuLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICpuZ0lmPVwiY2hpcHNDb2xsYXBzZWRcIlxuICAgID5cbiAgICAgIHt7IGNsb3NlZCA/IFwiZXhwYW5kX21vcmVcIiA6IFwiZXhwYW5kX2xlc3NcIiB9fVxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCIgKm5nSWY9XCJzaG93RXhwYW5kZWRTZWxlY3Rpb25BY3Rpb25zXCI+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwic2VlLW1vcmVcIlxuICAgICAgZGF0YS10ZXN0aWQ9XCJzZWUtbGVzc1wiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQ2hpcHNMaXN0QWN0aW9uQ2xpY2soJGV2ZW50KVwiXG4gICAgPlxuICAgICAge3sgXCJTRUVfTEVTU1wiIHwgdHJhbnNsYXRlIH19XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cImJ0bi1leHBhbmQgbWF0ZXJpYWwtaWNvbnNcIlxuICAgICAgZGF0YS10ZXN0aWQ9XCJidG4tZXhwYW5kXCJcbiAgICAgIFtjbGFzcy4tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgID5cbiAgICAgIHt7IGNsb3NlZCA/IFwiZXhwYW5kX21vcmVcIiA6IFwiZXhwYW5kX2xlc3NcIiB9fVxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNvdmVybGF5Q29udGVudD5cbiAgPGRpdiAjbGlzdCBjbGFzcz1cIm1lbnUtY29udGFpbmVyXCJcbiAgICAgICBbY2xhc3MuLW11bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICAgICBbY2xhc3MuLWJlbG93XT1cInBvc2l0aW9uID09PSAnYmVsb3cnXCJcbiAgICAgICBbY2xhc3MuLWFib3ZlXT1cInBvc2l0aW9uID09PSAnYWJvdmUnXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbXVsdGlwbGU7IGVsc2UgbXVsdGlwbGVTZWxlY3Rpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0XCIgYXNrU2Nyb2xsIFthc2tTY3JvbGxUaHJlc2hvbGRdPVwiNTBcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHBhZ2luYXRlZEZpbHRlcmVkT3B0aW9uc1wiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwib3B0aW9uLWl0ZW1cIlxuICAgICAgICAgICAgW2NsYXNzLi1oaWdobGlnaHRlZF09XCJcbiAgICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb24gJiYgc2VsZWN0ZWRPcHRpb25bdmFsdWVQcm9wXSA9PT0gb3B0aW9uW3ZhbHVlUHJvcF1cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT3B0aW9uU2VsZWN0ZWQob3B0aW9uKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0XCI+e3sgZGlzcGxheShvcHRpb24pIH19PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjbXVsdGlwbGVTZWxlY3Rpb24+XG4gICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLWl0ZW1cIiAqbmdJZj1cInNob3dTZWxlY3RBbGxDaGVja2JveFwiPlxuICAgICAgICA8YXNrLWNoZWNrYm94XG4gICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImhhbmRsZVNlbGVjdEFsbCgkZXZlbnQpXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNoZWNrQWxsVmFsdWVcIlxuICAgICAgICAgID57e3NlbGVjdEFsbE1lc3NhZ2V9fTwvYXNrLWNoZWNrYm94XG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZml4ZWRPcHRpb25zSXRlbXNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbi1pdGVtXCI+XG4gICAgICAgICAgPGFzay1jaGVja2JveFxuICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbnNTZWxlY3RlZFtvcHRpb25bdmFsdWVQcm9wXV1cIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlKG9wdGlvbiwgJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiY2hlY2tib3gtaXRlbS1pY29uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImljb25cIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaWNvblByb3BSZWZlcmVuY2VcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwib3B0aW9uW2ljb25Qcm9wUmVmZXJlbmNlXVwiXG4gICAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAge3sgZGlzcGxheShvcHRpb24pIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Fzay1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPGRpdlxuICAgICAgICBhc2tTY3JvbGxcbiAgICAgICAgW2Fza1Njcm9sbFRocmVzaG9sZF09XCI1MFwiXG4gICAgICAgIChzY3JvbGxFbmQpPVwiZ2V0TW9yZUl0ZW1zKClcIlxuICAgICAgICBkYXRhLXRlc3RpZD1cIm9wdGlvbnMtZm9ybVwiXG4gICAgICAgIGNsYXNzPVwib3B0aW9ucy1mb3JtXCJcbiAgICAgICAgW2NsYXNzLi1zZWxlY3QtYWxsXT1cInNob3dTZWxlY3RBbGxDaGVja2JveFwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBwYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxhc2stY2hlY2tib3hcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbnNTZWxlY3RlZFtvcHRpb25bdmFsdWVQcm9wXV1cIlxuICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwidmFsdWVDaGFuZ2Uob3B0aW9uLCAkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImNoZWNrYm94LWl0ZW0taWNvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25cIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpY29uUHJvcFJlZmVyZW5jZVwiXG4gICAgICAgICAgICAgICAgICBbc3JjXT1cIm9wdGlvbltpY29uUHJvcFJlZmVyZW5jZV1cIlxuICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIHt7IGRpc3BsYXkob3B0aW9uKSB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvYXNrLWNoZWNrYm94PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHNwYW4gY2xhc3M9XCJlbXB0eVwiICpuZ0lmPVwiIWZpbHRlcmVkT3B0aW9ucy5sZW5ndGhcIj57e1xuICAgICAgZW1wdHlNZXNzYWdlIHwgdHJhbnNsYXRlXG4gICAgfX08L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzaW5nbGVTZWxlY3Rpb24+XG4gIDxzcGFuIGRhdGEtdGVzdGlkPVwic2VsZWN0ZWQtb3B0aW9uXCI+e3tkaXNwbGF5KHNlbGVjdGVkT3B0aW9uc1swXSl9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|